diff --git a/ui.apps/src/main/content/META-INF/vault/filter.xml b/ui.apps/src/main/content/META-INF/vault/filter.xml
index d6fedd0ff..faef05235 100644
--- a/ui.apps/src/main/content/META-INF/vault/filter.xml
+++ b/ui.apps/src/main/content/META-INF/vault/filter.xml
@@ -5,10 +5,12 @@
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/clientlib-injector/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/clientlib-injector/.content.xml
index 9b9d25b57..e16bbfe53 100644
--- a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/clientlib-injector/.content.xml
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/clientlib-injector/.content.xml
@@ -3,5 +3,5 @@
xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="cq:ClientLibraryFolder"
categories="[cq.authoring.dialog]"
- dependencies="[cq.authoring.dependson,cq.authoring.dependson.fixes,lists.item-dialog]"
+ dependencies="[cq.authoring.dependson,cq.authoring.dependson.fixes,lists.item-dialog,content-blueprints.toolbar-action,content-blueprints.limit-parsys]"
/>
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/console/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/console/.content.xml
new file mode 100644
index 000000000..27f299572
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/console/.content.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/.content.xml
new file mode 100644
index 000000000..5be96c98f
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/.content.xml
@@ -0,0 +1,6 @@
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/import-action.js b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/import-action.js
new file mode 100644
index 000000000..a5cd09122
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/import-action.js
@@ -0,0 +1,59 @@
+/**
+ * Import Toolbar Action to import "template" page content into current position
+ **/
+(function ($document, author, ns) {
+ const IMPORT_ACTION = 'content-blueprint-import-action';
+
+ const JCR_CONTENT = '/jcr:content/';
+ const NEWPAR_TYPES = ['foundation/components/parsys/newpar', 'wcm/foundation/components/parsys/newpar', 'wcm/foundation/components/responsivegrid/new'];
+ const IMPORT_DIALOG_PATH = '/mnt/override/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/_cq_dialog.html';
+
+ function condition(editable) {
+ return author.pageInfoHelper.canModify() && editable.hasAction('INSERT');
+ }
+
+ function openImportDialog(editable) {
+ const target = editable.getParent();
+ const path = target.path;
+ const order = NEWPAR_TYPES.includes(editable.type) ? 'last' : `after ${editable.name}`;
+ const parentType = editable.getParent().type;
+
+ const page = path.substr(0, path.indexOf(JCR_CONTENT) + JCR_CONTENT.length);
+ const dialogPath = ns.EToolboxContentBlueprints.joinJCRPath(IMPORT_DIALOG_PATH, page);
+ const dialogConfig = {
+ src: ns.HTTP.externalize(dialogPath.replace(/\*\//, '')),
+ loadingMode: 'auto',
+ layout: 'auto'
+ };
+ const dlg = new author.ui.Dialog({
+ getConfig: () => dialogConfig,
+ getRequestData: () => ({ order, parentType, path }),
+ onSuccess: () => setTimeout(() => {
+ author.editableHelper.actions.REFRESH.execute(target);
+ }, 250)
+ });
+
+ author.DialogFrame.openDialog(dlg);
+ }
+
+ $document.off('cq-layer-activated.content-blueprint-import-action').on('cq-layer-activated.content-blueprint-import-action', function (ev) {
+ if (ev.layer === 'Edit') {
+ author.EditorFrame.editableToolbar.registerAction(IMPORT_ACTION, {
+ icon: 'coral-Icon--dataUpload',
+ text: Granite.I18n.get('Import from EToolbox Content Blueprint'),
+ handler: openImportDialog,
+ condition: condition,
+ isNonMulti: false
+ });
+ // Restore custom action after MSM
+ setTimeout(() => {
+ const action = author.EditorFrame.editableToolbar.config.actions[IMPORT_ACTION];
+ if (action && action.decoratedCondition) {
+ action.condition = action.decoratedCondition;
+ delete action.decoratedCondition;
+ console.log('Action "', action.name, '" undecorated');
+ }
+ });
+ }
+ });
+})($(document), Granite.author, Granite);
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/import-helper.js b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/import-helper.js
new file mode 100644
index 000000000..296d88303
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/import-helper.js
@@ -0,0 +1,111 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+(function (author, ns) {
+ 'use strict';
+
+ /**
+ * Join JCR path parts
+ * */
+ ns.joinJCRPath = function (path1, path2, ...rest) {
+ if (rest.length > 0) return ns.joinJCRPath(ns.joinJCRPath(path1, path2), ...rest);
+ return (path1 + '/' + path2).replace(/\/(\/)+/g, '/');
+ };
+
+ /**
+ * Join and normalize JCR path. Removes ending '/'
+ * */
+ ns.resolveJCRPath = function (path, ...rest) {
+ if (rest.length > 0) return ns.resolveJCRPath(ns.joinJCRPath(path, ...rest));
+ return path.replace(/\/$/, '').replace(/\/_jcr_content\//g, '/jcr:content/');
+ };
+
+ /**
+ * Resolve path to the JCR content
+ * */
+ ns.resolveJCRContentPath = function (path) {
+ return path ? ns.joinJCRPath(path, '/_jcr_content/') : '';
+ };
+
+ /**
+ * Check if the passed resource type can be placed inside of passed path
+ * */
+ ns.canInsert = function (resourceType, parentPath) {
+ if (!resourceType) return Granite.I18n.get('No component to insert');
+ if (!parentPath) return Granite.I18n.get('Insertion target is incorrect');
+
+ const component = author.components.find({ resourceType })[0];
+ if (!component) return Granite.I18n.get('Component resourceType is not is the list');
+
+ const componentPath = component.getPath();
+ const componentRelativePath = componentPath.replace(/^\/[a-z]+\//, '');
+ const componentGroup = 'group:' + component.getGroup();
+
+ const resolvedPath = ns.resolveJCRPath(parentPath);
+ const allowedComponents = author.components.allowedComponentsFor[resolvedPath];
+
+ if (!allowedComponents || !allowedComponents.length) {
+ return Granite.I18n.get('No allowed components found for {0}').replace('{0}', resolvedPath);
+ }
+
+ if (allowedComponents.indexOf(componentPath) === -1 &&
+ allowedComponents.indexOf(componentRelativePath) === -1 &&
+ allowedComponents.indexOf(componentGroup) === -1) {
+ return Granite.I18n.get('Component {0} is not allowed for current target').replace('{0}', component.getTitle());
+ }
+ return true;
+ };
+
+ const isValidComponentNode = (item) => {
+ return item && item['sling:resourceType'];
+ };
+
+ const findRootName = (content) => {
+ if (Object.hasOwnProperty.call(content, 'content-blueprints-parsys')) return 'content-blueprints-parsys';
+ return null;
+ };
+
+ /**
+ * Add ending '/' to the form action.
+ * @returns result path
+ * */
+ ns.setupInsertionFormTarget = function ($el, path) {
+ path = ns.joinJCRPath(path, '/');
+ $el.closest('form[action]').attr('action', path);
+ return path;
+ };
+
+ /**
+ * Fetch action successful response handler to resolve first content component
+ * */
+ ns.mapImportResourcePath = function (response, parentName, parentPath) {
+ try {
+ const rootName = findRootName(response);
+ if (!rootName) return '';
+ const root = response[rootName];
+ const nodeNames = Object.keys(root);
+ for (const name of nodeNames) {
+ const node = root[name];
+ if (!isValidComponentNode(node)) continue;
+ const path = ns.resolveJCRPath(parentPath, '/', rootName, '/', name);
+ const type = node['sling:resourceType'];
+ return JSON.stringify({ type, path, name });
+ }
+ } catch {
+ // no action
+ }
+ return '';
+ };
+ /** Fetch action unsuccessful response handler stub */
+ ns.mapImportResourcePathError = () => '';
+}(Granite.author, Granite.EToolboxContentBlueprints = (Granite.EToolboxContentBlueprints || {})));
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/js.txt b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/js.txt
new file mode 100644
index 000000000..539cd2948
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/clientlibs/action/js.txt
@@ -0,0 +1,2 @@
+import-helper.js
+import-action.js
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/.content.xml
new file mode 100644
index 000000000..c37d95dc0
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/.content.xml
@@ -0,0 +1,4 @@
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/_cq_dialog/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/_cq_dialog/.content.xml
new file mode 100644
index 000000000..01149be18
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/content/toolbar/dialog/_cq_dialog/.content.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/structure/page-content-blueprint/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/structure/page-content-blueprint/.content.xml
new file mode 100644
index 000000000..7373bc2b2
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/structure/page-content-blueprint/.content.xml
@@ -0,0 +1,6 @@
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/structure/page-content-blueprint/_cq_dialog.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/structure/page-content-blueprint/_cq_dialog.xml
new file mode 100644
index 000000000..cf7d552d0
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/content-blueprints/components/structure/page-content-blueprint/_cq_dialog.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/.content.xml b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/.content.xml
new file mode 100644
index 000000000..51cf9b205
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/.content.xml
@@ -0,0 +1,6 @@
+
+
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/js.txt b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/js.txt
new file mode 100644
index 000000000..7829480e1
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/js.txt
@@ -0,0 +1 @@
+limit-parsys-helper.js
diff --git a/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/limit-parsys-helper.js b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/limit-parsys-helper.js
new file mode 100644
index 000000000..42eb96ef7
--- /dev/null
+++ b/ui.apps/src/main/content/jcr_root/apps/etoolbox-authoring-kit/limit-parsys/limit-parsys-helper.js
@@ -0,0 +1,107 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * A simple clientlib that disables insert, drag/drop and copy/paste to an editable more components than defined
+ * in 'childrenLimit' property
+ */
+(function ($document, author) {
+ 'use strict';
+ const INSERT_ACTION = 'INSERT';
+ const LIMIT_PROPERTY = 'childrenLimit';
+
+ /**
+ * @returns the value of the given property defined in the policy
+ */
+ function findPropertyFromPolicy(editable, propertyName) {
+ const cell = author.util.resolveProperty(author.pageDesign, editable.config.policyPath);
+ return cell && cell[propertyName] ? cell[propertyName] : null;
+ }
+
+ /**
+ * @see /libs/cq/gui/components/authoring/editors/clientlibs/core/js/storage/components.js _findAllowedComponentsFromDesign
+ * @returns the value of the given property from design object
+ */
+ function findPropertyFromDesign(editable, propertyName) {
+ const cellSearchPaths = editable.config.cellSearchPath;
+
+ if (cellSearchPaths) {
+ for (let i = 0; i < cellSearchPaths.length; i++) {
+ const cell = author.util.resolveProperty(author.pageDesign, cellSearchPaths[i]);
+
+ if (cell && cell[propertyName]) {
+ return cell[propertyName];
+ }
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * @returns the value of the given property of an editable from policy or design configuration
+ */
+ function findPropertyFromConfig(editable, propertyName) {
+ if (editable && editable.config) {
+ if (editable.config.policyPath) {
+ return findPropertyFromPolicy(editable, propertyName);
+ } else {
+ return findPropertyFromDesign(editable, propertyName);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Checks if editable contains equal or less children than defined in 'childrenLimit' property
+ */
+ function isChildrenInLimit(editable) {
+ const limitCfg = findPropertyFromConfig(editable, LIMIT_PROPERTY);
+ const limit = limitCfg === null ? Number.POSITIVE_INFINITY : +limitCfg;
+ const children = author.editables.getChildren(editable, false);
+ return (children.length <= limit);
+ }
+
+ /**
+ * Show/hide all editables' insert parsys depending on {@link isChildrenInLimit} function
+ */
+ function toggleInsertParsys() {
+ author.editables.forEach((editable) => {
+ const insertEditable = author.editables.find(editable.path + '/*')[0];
+ insertEditable && insertEditable.overlay.setVisible(isChildrenInLimit(editable));
+ });
+ }
+
+ const toggleInsertParsysDebounced = $.debounce(100, toggleInsertParsys);
+
+ $document.on('cq-layer-activated', function (ev) {
+ if (ev.layer === 'Edit') {
+ const action = author.edit.EditableActions[INSERT_ACTION];
+ const defaultInsertActionCondition = action.condition;
+
+ // override of the original action condition by adding children amount check
+ action.condition = function (editableBefore) {
+ return isChildrenInLimit(editableBefore) && defaultInsertActionCondition.apply(this, arguments);
+ };
+
+ // set initial visibility state
+ toggleInsertParsysDebounced();
+
+ // track editables and overlays updates to hide insert parsys
+ $document
+ .off('cq-editables-updated.limited-parsys cq-overlays-repositioned.limited-parsys')
+ .on('cq-editables-updated.limited-parsys cq-overlays-repositioned.limited-parsys', toggleInsertParsysDebounced);
+ }
+ });
+}($(document), Granite.author));
diff --git a/ui.apps/src/main/content/jcr_root/apps/wcm/core/content/sites/.content.xml b/ui.apps/src/main/content/jcr_root/apps/wcm/core/content/sites/.content.xml
index 21e7d6a4f..b0b2406f5 100644
--- a/ui.apps/src/main/content/jcr_root/apps/wcm/core/content/sites/.content.xml
+++ b/ui.apps/src/main/content/jcr_root/apps/wcm/core/content/sites/.content.xml
@@ -25,6 +25,19 @@
nesting="hide"
src.uritemplate="/mnt/overlay/etoolbox-authoring-kit/lists/components/content/console/createpagedialog.html{+id}"/>
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/policies/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/policies/.content.xml
index cb95920da..c12cc614d 100644
--- a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/policies/.content.xml
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/policies/.content.xml
@@ -21,6 +21,19 @@
cq:styleDefaultClasses="etoolbox-list"
policyResourceType="wcm/foundation/components/responsivegrid">
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/.content.xml
new file mode 100644
index 000000000..4b4875a77
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/.content.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/_rep_policy.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/_rep_policy.xml
new file mode 100644
index 000000000..949da4a0e
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/_rep_policy.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/.content.xml
new file mode 100644
index 000000000..d554e0e07
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/.content.xml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/initial/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/initial/.content.xml
new file mode 100644
index 000000000..24ca17f23
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/initial/.content.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/policies/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/policies/.content.xml
new file mode 100644
index 000000000..14bc431ca
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/policies/.content.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/structure/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/structure/.content.xml
new file mode 100644
index 000000000..d6f48ddbe
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/template-types/content-blueprint/structure/.content.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/list/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/list/.content.xml
index 720502818..c391d29c1 100644
--- a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/list/.content.xml
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/list/.content.xml
@@ -2,7 +2,6 @@
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/.content.xml
new file mode 100644
index 000000000..8eed3a4a0
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/.content.xml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/initial/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/initial/.content.xml
new file mode 100644
index 000000000..4feacae32
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/initial/.content.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/policies/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/policies/.content.xml
new file mode 100644
index 000000000..ae78a74cb
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/policies/.content.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/structure/.content.xml b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/structure/.content.xml
new file mode 100644
index 000000000..4bd7572aa
--- /dev/null
+++ b/ui.content/src/main/content/jcr_root/conf/etoolbox-authoring-kit/settings/wcm/templates/simple-content-blueprint/structure/.content.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+