@webiny/website-builder-vue 6.4.0-beta.6 → 6.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ConnectToEditor.js +1 -1
- package/components/ConnectToEditor.js.map +1 -1
- package/components/DocumentRenderer.js +1 -1
- package/components/DocumentRenderer.js.map +1 -1
- package/editorComponents/Root.manifest.js +2 -1
- package/editorComponents/Root.manifest.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/ConnectToEditor.js","sources":["../../src/components/ConnectToEditor.ts"],"sourcesContent":["import { defineComponent, ref, onMounted, h, type PropType } from \"vue\";\nimport { contentSdk, type Component, type Document } from \"@webiny/website-builder-sdk\";\nimport { DocumentStoreProvider } from \"./DocumentStoreProvider.js\";\nimport { ElementRenderer } from \"./ElementRenderer.js\";\n\n/**\n * Used in editing mode: fetches a fresh copy of the page from the SDK,\n * then mounts a DocumentStoreProvider + ElementRenderer for it.\n *\n * `document` is optional — when omitted (e.g. the live page is a draft not\n * yet published), the current URL pathname is used as the page path so the\n * editing SDK can still receive the document via the editor's postMessage.\n *\n * Equivalent of the React ConnectToEditor component.\n */\nexport const ConnectToEditor = defineComponent({\n name: \"WebinyConnectToEditor\",\n\n props: {\n document: { type: Object as PropType<Document | undefined>, default: undefined },\n components: { type: Array as PropType<Component[]>, required: true }\n },\n\n setup(props) {\n const data = ref<Document | null>(null);\n\n onMounted(() => {\n const path = props.document?.properties?.path ?? window.location.pathname;\n contentSdk.getPage(path).then(doc => {\n data.value = doc;\n });\n });\n\n return () => {\n if (!data.value) {\n return null;\n }\n\n return h(\n DocumentStoreProvider,\n { id: data.value.
|
|
1
|
+
{"version":3,"file":"components/ConnectToEditor.js","sources":["../../src/components/ConnectToEditor.ts"],"sourcesContent":["import { defineComponent, ref, onMounted, h, type PropType } from \"vue\";\nimport { contentSdk, type Component, type Document } from \"@webiny/website-builder-sdk\";\nimport { DocumentStoreProvider } from \"./DocumentStoreProvider.js\";\nimport { ElementRenderer } from \"./ElementRenderer.js\";\n\n/**\n * Used in editing mode: fetches a fresh copy of the page from the SDK,\n * then mounts a DocumentStoreProvider + ElementRenderer for it.\n *\n * `document` is optional — when omitted (e.g. the live page is a draft not\n * yet published), the current URL pathname is used as the page path so the\n * editing SDK can still receive the document via the editor's postMessage.\n *\n * Equivalent of the React ConnectToEditor component.\n */\nexport const ConnectToEditor = defineComponent({\n name: \"WebinyConnectToEditor\",\n\n props: {\n document: { type: Object as PropType<Document | undefined>, default: undefined },\n components: { type: Array as PropType<Component[]>, required: true }\n },\n\n setup(props) {\n const data = ref<Document | null>(null);\n\n onMounted(() => {\n const path = props.document?.properties?.path ?? window.location.pathname;\n contentSdk.getPage(path).then(doc => {\n data.value = doc;\n });\n });\n\n return () => {\n if (!data.value) {\n return null;\n }\n\n return h(\n DocumentStoreProvider,\n { id: data.value.id, document: data.value },\n { default: () => h(ElementRenderer, { id: \"root\" }) }\n );\n };\n }\n});\n"],"names":["ConnectToEditor","defineComponent","Object","undefined","Array","props","data","ref","onMounted","path","window","contentSdk","doc","h","DocumentStoreProvider","ElementRenderer"],"mappings":";;;;AAeO,MAAMA,kBAAkBC,gBAAgB;IAC3C,MAAM;IAEN,OAAO;QACH,UAAU;YAAE,MAAMC;YAA0C,SAASC;QAAU;QAC/E,YAAY;YAAE,MAAMC;YAAgC,UAAU;QAAK;IACvE;IAEA,OAAMC,KAAK;QACP,MAAMC,OAAOC,IAAqB;QAElCC,UAAU;YACN,MAAMC,OAAOJ,MAAM,QAAQ,EAAE,YAAY,QAAQK,OAAO,QAAQ,CAAC,QAAQ;YACzEC,WAAW,OAAO,CAACF,MAAM,IAAI,CAACG,CAAAA;gBAC1BN,KAAK,KAAK,GAAGM;YACjB;QACJ;QAEA,OAAO;YACH,IAAI,CAACN,KAAK,KAAK,EACX,OAAO;YAGX,OAAOO,EACHC,uBACA;gBAAE,IAAIR,KAAK,KAAK,CAAC,EAAE;gBAAE,UAAUA,KAAK,KAAK;YAAC,GAC1C;gBAAE,SAAS,IAAMO,EAAEE,iBAAiB;wBAAE,IAAI;oBAAO;YAAG;QAE5D;IACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/DocumentRenderer.js","sources":["../../src/components/DocumentRenderer.ts"],"sourcesContent":["import { defineComponent, computed, h, type PropType } from \"vue\";\nimport { contentSdk, type Component, type Document } from \"@webiny/website-builder-sdk\";\nimport { DocumentStoreProvider } from \"./DocumentStoreProvider.js\";\nimport { ConnectToEditor } from \"./ConnectToEditor.js\";\nimport { FragmentsProvider, type DocumentFragmentConfig } from \"./FragmentsProvider.js\";\nimport { ElementRenderer } from \"./ElementRenderer.js\";\nimport { editorComponents } from \"~/editorComponents/index.js\";\n\n/**\n * Top-level rendering component. Accepts a Webiny document and a list of\n * custom components, then renders the full page tree.\n *\n * **Named-slot fragments**\n *\n * Inject app-level Vue subtrees into named fragment slots:\n * ```vue\n * <DocumentRenderer :document=\"page.document\" :components=\"myComps\">\n * <template #fragment:header><MySiteHeader /></template>\n * <template #fragment:footer><MySiteFooter /></template>\n * </DocumentRenderer>\n * ```\n *\n * **Component fragments** (reference built-in editor components by name):\n * ```ts\n * const fragments = [\n * { type: \"component\", component: \"Webiny/MyNav\", inputs: { label: \"Nav\" } }\n * ];\n * ```\n */\nexport const DocumentRenderer = defineComponent({\n name: \"WebinyDocumentRenderer\",\n\n props: {\n document: {\n type: Object as PropType<Document | null>,\n default: null\n },\n components: {\n type: Array as PropType<Component[]>,\n default: () => []\n },\n /** Additional fragment configs (component-type or pre-built fixed fragments). */\n fragments: {\n type: Array as PropType<DocumentFragmentConfig[]>,\n default: () => []\n }\n },\n\n setup(props, { slots }) {\n // Collect named slot fragments: <template #fragment:header> etc.\n const slotFragments = computed((): DocumentFragmentConfig[] =>\n Object.entries(slots)\n .filter(([name]) => name.startsWith(\"fragment:\"))\n .map(\n ([name, slot]): DocumentFragmentConfig => ({\n type: \"fixed\",\n name: name.slice(\"fragment:\".length),\n element: slot!\n })\n )\n );\n\n const allFragments = computed(() => [...slotFragments.value, ...props.fragments]);\n\n return () => {\n const { document, components } = props;\n\n // Register all components with the SDK on every render (idempotent).\n const allComponents = [...editorComponents, ...components];\n allComponents.forEach(c => contentSdk.registerComponent(c));\n\n if (!document && !contentSdk.isEditing()) {\n return h(\"div\", { \"data-role\": \"document-renderer\" }, slots.default?.());\n }\n\n return h(\"div\", { \"data-role\": \"document-renderer\" }, [\n h(\n FragmentsProvider,\n { fragments: allFragments.value },\n {\n default: () =>\n contentSdk.isEditing()\n ? h(ConnectToEditor, {\n document: document ?? undefined,\n components\n })\n : h(\n DocumentStoreProvider,\n {\n id: document!.
|
|
1
|
+
{"version":3,"file":"components/DocumentRenderer.js","sources":["../../src/components/DocumentRenderer.ts"],"sourcesContent":["import { defineComponent, computed, h, type PropType } from \"vue\";\nimport { contentSdk, type Component, type Document } from \"@webiny/website-builder-sdk\";\nimport { DocumentStoreProvider } from \"./DocumentStoreProvider.js\";\nimport { ConnectToEditor } from \"./ConnectToEditor.js\";\nimport { FragmentsProvider, type DocumentFragmentConfig } from \"./FragmentsProvider.js\";\nimport { ElementRenderer } from \"./ElementRenderer.js\";\nimport { editorComponents } from \"~/editorComponents/index.js\";\n\n/**\n * Top-level rendering component. Accepts a Webiny document and a list of\n * custom components, then renders the full page tree.\n *\n * **Named-slot fragments**\n *\n * Inject app-level Vue subtrees into named fragment slots:\n * ```vue\n * <DocumentRenderer :document=\"page.document\" :components=\"myComps\">\n * <template #fragment:header><MySiteHeader /></template>\n * <template #fragment:footer><MySiteFooter /></template>\n * </DocumentRenderer>\n * ```\n *\n * **Component fragments** (reference built-in editor components by name):\n * ```ts\n * const fragments = [\n * { type: \"component\", component: \"Webiny/MyNav\", inputs: { label: \"Nav\" } }\n * ];\n * ```\n */\nexport const DocumentRenderer = defineComponent({\n name: \"WebinyDocumentRenderer\",\n\n props: {\n document: {\n type: Object as PropType<Document | null>,\n default: null\n },\n components: {\n type: Array as PropType<Component[]>,\n default: () => []\n },\n /** Additional fragment configs (component-type or pre-built fixed fragments). */\n fragments: {\n type: Array as PropType<DocumentFragmentConfig[]>,\n default: () => []\n }\n },\n\n setup(props, { slots }) {\n // Collect named slot fragments: <template #fragment:header> etc.\n const slotFragments = computed((): DocumentFragmentConfig[] =>\n Object.entries(slots)\n .filter(([name]) => name.startsWith(\"fragment:\"))\n .map(\n ([name, slot]): DocumentFragmentConfig => ({\n type: \"fixed\",\n name: name.slice(\"fragment:\".length),\n element: slot!\n })\n )\n );\n\n const allFragments = computed(() => [...slotFragments.value, ...props.fragments]);\n\n return () => {\n const { document, components } = props;\n\n // Register all components with the SDK on every render (idempotent).\n const allComponents = [...editorComponents, ...components];\n allComponents.forEach(c => contentSdk.registerComponent(c));\n\n if (!document && !contentSdk.isEditing()) {\n return h(\"div\", { \"data-role\": \"document-renderer\" }, slots.default?.());\n }\n\n return h(\"div\", { \"data-role\": \"document-renderer\" }, [\n h(\n FragmentsProvider,\n { fragments: allFragments.value },\n {\n default: () =>\n contentSdk.isEditing()\n ? h(ConnectToEditor, {\n document: document ?? undefined,\n components\n })\n : h(\n DocumentStoreProvider,\n {\n id: document!.id,\n document: document!\n },\n {\n default: () => h(ElementRenderer, { id: \"root\" })\n }\n )\n }\n )\n ]);\n };\n }\n});\n"],"names":["DocumentRenderer","defineComponent","Object","Array","props","slots","slotFragments","computed","name","slot","allFragments","document","components","allComponents","editorComponents","c","contentSdk","h","FragmentsProvider","ConnectToEditor","undefined","DocumentStoreProvider","ElementRenderer"],"mappings":";;;;;;;AA6BO,MAAMA,mBAAmBC,gBAAgB;IAC5C,MAAM;IAEN,OAAO;QACH,UAAU;YACN,MAAMC;YACN,SAAS;QACb;QACA,YAAY;YACR,MAAMC;YACN,SAAS,IAAM,EAAE;QACrB;QAEA,WAAW;YACP,MAAMA;YACN,SAAS,IAAM,EAAE;QACrB;IACJ;IAEA,OAAMC,KAAK,EAAE,EAAEC,KAAK,EAAE;QAElB,MAAMC,gBAAgBC,SAAS,IAC3BL,OAAO,OAAO,CAACG,OACV,MAAM,CAAC,CAAC,CAACG,KAAK,GAAKA,KAAK,UAAU,CAAC,cACnC,GAAG,CACA,CAAC,CAACA,MAAMC,KAAK,GAA8B;oBACvC,MAAM;oBACN,MAAMD,KAAK,KAAK,CAAC;oBACjB,SAASC;gBACb;QAIZ,MAAMC,eAAeH,SAAS,IAAM;mBAAID,cAAc,KAAK;mBAAKF,MAAM,SAAS;aAAC;QAEhF,OAAO;YACH,MAAM,EAAEO,QAAQ,EAAEC,UAAU,EAAE,GAAGR;YAGjC,MAAMS,gBAAgB;mBAAIC;mBAAqBF;aAAW;YAC1DC,cAAc,OAAO,CAACE,CAAAA,IAAKC,WAAW,iBAAiB,CAACD;YAExD,IAAI,CAACJ,YAAY,CAACK,WAAW,SAAS,IAClC,OAAOC,EAAE,OAAO;gBAAE,aAAa;YAAoB,GAAGZ,MAAM,OAAO;YAGvE,OAAOY,EAAE,OAAO;gBAAE,aAAa;YAAoB,GAAG;gBAClDA,EACIC,mBACA;oBAAE,WAAWR,aAAa,KAAK;gBAAC,GAChC;oBACI,SAAS,IACLM,WAAW,SAAS,KACdC,EAAEE,iBAAiB;4BACf,UAAUR,YAAYS;4BACtBR;wBACJ,KACAK,EACII,uBACA;4BACI,IAAIV,SAAU,EAAE;4BAChB,UAAUA;wBACd,GACA;4BACI,SAAS,IAAMM,EAAEK,iBAAiB;oCAAE,IAAI;gCAAO;wBACnD;gBAElB;aAEP;QACL;IACJ;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorComponents/Root.manifest.js","sources":["../../src/editorComponents/Root.manifest.ts"],"sourcesContent":["\"use client\";\nimport { createComponent } from \"~/createComponent.js\";\nimport { RootComponent } from \"./Root.js\";\n\nexport const Root = createComponent(RootComponent, {\n name: \"Webiny/Root\",\n label: \"Main Content\",\n acceptsChildren: true,\n hideFromToolbar: true\n});\n"],"names":["Root","createComponent","RootComponent"],"mappings":";;;AAIO,MAAMA,OAAOC,gBAAgBC,eAAe;IAC/C,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"editorComponents/Root.manifest.js","sources":["../../src/editorComponents/Root.manifest.ts"],"sourcesContent":["\"use client\";\nimport { createComponent } from \"~/createComponent.js\";\nimport { RootComponent } from \"./Root.js\";\n\nexport const Root = createComponent(RootComponent, {\n name: \"Webiny/Root\",\n label: \"Main Content\",\n acceptsChildren: true,\n hideFromToolbar: true,\n useInAiContentGeneration: false\n});\n"],"names":["Root","createComponent","RootComponent"],"mappings":";;;AAIO,MAAMA,OAAOC,gBAAgBC,eAAe;IAC/C,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,iBAAiB;IACjB,0BAA0B;AAC9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/website-builder-vue",
|
|
3
|
-
"version": "6.4.0
|
|
3
|
+
"version": "6.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
],
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@webiny/website-builder-sdk": "6.4.0
|
|
20
|
+
"@webiny/website-builder-sdk": "6.4.0",
|
|
21
21
|
"deep-equal": "2.2.3",
|
|
22
22
|
"mobx": "6.15.3",
|
|
23
23
|
"vue": "3.5.34"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@webiny/build-tools": "6.4.0
|
|
26
|
+
"@webiny/build-tools": "6.4.0",
|
|
27
27
|
"typescript": "6.0.3"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|