@webiny/website-builder-react 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9
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 +16 -18
- package/components/ConnectToEditor.js.map +1 -1
- package/components/DocumentFragment.js +5 -7
- package/components/DocumentFragment.js.map +1 -1
- package/components/DocumentRenderer.js +37 -46
- package/components/DocumentRenderer.js.map +1 -1
- package/components/DocumentStoreProvider.js +15 -21
- package/components/DocumentStoreProvider.js.map +1 -1
- package/components/EditingElementRenderer/EditingElementRenderer.js +31 -35
- package/components/EditingElementRenderer/EditingElementRenderer.js.map +1 -1
- package/components/EditingElementRenderer/EditingElementRenderer.presenter.js +29 -35
- package/components/EditingElementRenderer/EditingElementRenderer.presenter.js.map +1 -1
- package/components/EditingElementRenderer/index.js +0 -2
- package/components/ElementIndexProvider.js +9 -14
- package/components/ElementIndexProvider.js.map +1 -1
- package/components/ElementRenderer.js +11 -16
- package/components/ElementRenderer.js.map +1 -1
- package/components/ElementSlot.js +6 -9
- package/components/ElementSlot.js.map +1 -1
- package/components/ElementSlotDepthProvider.js +9 -14
- package/components/ElementSlotDepthProvider.js.map +1 -1
- package/components/FragmentsProvider.js +30 -36
- package/components/FragmentsProvider.js.map +1 -1
- package/components/LiveElementRenderer.js +53 -68
- package/components/LiveElementRenderer.js.map +1 -1
- package/components/LiveElementSlot.js +12 -14
- package/components/LiveElementSlot.js.map +1 -1
- package/components/PreviewElementSlot.js +17 -23
- package/components/PreviewElementSlot.js.map +1 -1
- package/components/index.js +0 -2
- package/components/useBindingsForElement.d.ts +80 -48
- package/components/useBindingsForElement.js +13 -11
- package/components/useBindingsForElement.js.map +1 -1
- package/components/useDocumentState.js +4 -3
- package/components/useDocumentState.js.map +1 -1
- package/components/useSelectFromState.js +29 -35
- package/components/useSelectFromState.js.map +1 -1
- package/components/useViewportInfo.js +5 -6
- package/components/useViewportInfo.js.map +1 -1
- package/createComponent.js +26 -30
- package/createComponent.js.map +1 -1
- package/createComponent.test.js +108 -119
- package/createComponent.test.js.map +1 -1
- package/editorComponents/Box.js +3 -6
- package/editorComponents/Box.js.map +1 -1
- package/editorComponents/Box.manifest.js +15 -14
- package/editorComponents/Box.manifest.js.map +1 -1
- package/editorComponents/Fragment.js +23 -32
- package/editorComponents/Fragment.js.map +1 -1
- package/editorComponents/Fragment.manifest.js +14 -11
- package/editorComponents/Fragment.manifest.js.map +1 -1
- package/editorComponents/Grid.js +33 -61
- package/editorComponents/Grid.js.map +1 -1
- package/editorComponents/Grid.manifest.js +163 -166
- package/editorComponents/Grid.manifest.js.map +1 -1
- package/editorComponents/GridColumn.js +3 -6
- package/editorComponents/GridColumn.js.map +1 -1
- package/editorComponents/GridColumn.manifest.js +20 -17
- package/editorComponents/GridColumn.manifest.js.map +1 -1
- package/editorComponents/Image.js +99 -119
- package/editorComponents/Image.js.map +1 -1
- package/editorComponents/Image.manifest.js +33 -32
- package/editorComponents/Image.manifest.js.map +1 -1
- package/editorComponents/Lexical.js +13 -21
- package/editorComponents/Lexical.js.map +1 -1
- package/editorComponents/Lexical.manifest.js +17 -14
- package/editorComponents/Lexical.manifest.js.map +1 -1
- package/editorComponents/Root.js +3 -6
- package/editorComponents/Root.js.map +1 -1
- package/editorComponents/Root.manifest.js +7 -6
- package/editorComponents/Root.manifest.js.map +1 -1
- package/editorComponents/index.js +10 -1
- package/editorComponents/index.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +1 -3
- package/package.json +14 -14
- package/types.d.ts +36 -1
- package/types.js +0 -3
- package/components/EditingElementRenderer/index.js.map +0 -1
- package/components/index.js.map +0 -1
- package/index.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
value: depth
|
|
11
|
-
}, children);
|
|
12
|
-
};
|
|
13
|
-
export const useElementSlotDepth = () => {
|
|
14
|
-
const context = React.useContext(ElementSlotDepthContext);
|
|
15
|
-
return context ?? 0;
|
|
2
|
+
import react from "react";
|
|
3
|
+
const ElementSlotDepthContext = /*#__PURE__*/ react.createContext(0);
|
|
4
|
+
const ElementSlotDepthProvider = ({ children, depth })=>/*#__PURE__*/ react.createElement(ElementSlotDepthContext.Provider, {
|
|
5
|
+
value: depth
|
|
6
|
+
}, children);
|
|
7
|
+
const useElementSlotDepth = ()=>{
|
|
8
|
+
const context = react.useContext(ElementSlotDepthContext);
|
|
9
|
+
return context ?? 0;
|
|
16
10
|
};
|
|
11
|
+
export { ElementSlotDepthProvider, useElementSlotDepth };
|
|
17
12
|
|
|
18
13
|
//# sourceMappingURL=ElementSlotDepthProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"components/ElementSlotDepthProvider.js","sources":["../../src/components/ElementSlotDepthProvider.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\n\nconst ElementSlotDepthContext = React.createContext<number>(0);\n\ninterface ElementSlotDepthProviderProps {\n depth: number;\n children: React.ReactNode;\n}\n\nexport const ElementSlotDepthProvider = ({ children, depth }: ElementSlotDepthProviderProps) => {\n return (\n <ElementSlotDepthContext.Provider value={depth}>\n {children}\n </ElementSlotDepthContext.Provider>\n );\n};\n\nexport const useElementSlotDepth = () => {\n const context = React.useContext(ElementSlotDepthContext);\n\n return context ?? 0;\n};\n"],"names":["ElementSlotDepthContext","React","ElementSlotDepthProvider","children","depth","useElementSlotDepth","context"],"mappings":";;AAGA,MAAMA,0BAA0B,WAAHA,GAAGC,MAAAA,aAAmB,CAAS;AAOrD,MAAMC,2BAA2B,CAAC,EAAEC,QAAQ,EAAEC,KAAK,EAAiC,GAChF,WAAP,GACI,oBAACJ,wBAAwB,QAAQ;QAAC,OAAOI;OACpCD;AAKN,MAAME,sBAAsB;IAC/B,MAAMC,UAAUL,MAAAA,UAAgB,CAACD;IAEjC,OAAOM,WAAW;AACtB"}
|
|
@@ -1,43 +1,37 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import React, { useEffect } from "react";
|
|
2
|
+
import react, { useEffect } from "react";
|
|
4
3
|
import { contentSdk } from "@webiny/website-builder-sdk";
|
|
5
|
-
const FragmentsContext = /*#__PURE__*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
4
|
+
const FragmentsContext = /*#__PURE__*/ react.createContext(void 0);
|
|
5
|
+
const FragmentsProvider = ({ fragments, children })=>{
|
|
6
|
+
useEffect(()=>{
|
|
7
|
+
if (contentSdk.isEditing()) {
|
|
8
|
+
const fragmentsData = fragments.map((fragment)=>{
|
|
9
|
+
if ("fixed" === fragment.type) return {
|
|
10
|
+
type: "fixed",
|
|
11
|
+
name: fragment.name
|
|
12
|
+
};
|
|
13
|
+
return {
|
|
14
|
+
type: "component",
|
|
15
|
+
component: fragment.component,
|
|
16
|
+
inputs: fragment.inputs
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
contentSdk.getEditingSdk().messenger.send("document.fragments", {
|
|
20
|
+
fragments: fragmentsData
|
|
21
|
+
});
|
|
19
22
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
contentSdk.getEditingSdk().messenger.send("document.fragments", {
|
|
27
|
-
fragments: fragmentsData
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}, [fragments.length]);
|
|
31
|
-
return /*#__PURE__*/React.createElement(FragmentsContext.Provider, {
|
|
32
|
-
value: fragments
|
|
33
|
-
}, children);
|
|
23
|
+
}, [
|
|
24
|
+
fragments.length
|
|
25
|
+
]);
|
|
26
|
+
return /*#__PURE__*/ react.createElement(FragmentsContext.Provider, {
|
|
27
|
+
value: fragments
|
|
28
|
+
}, children);
|
|
34
29
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
39
|
-
}
|
|
40
|
-
return context;
|
|
30
|
+
const useDocumentFragments = ()=>{
|
|
31
|
+
const context = react.useContext(FragmentsContext);
|
|
32
|
+
if (!context) return [];
|
|
33
|
+
return context;
|
|
41
34
|
};
|
|
35
|
+
export { FragmentsProvider, useDocumentFragments };
|
|
42
36
|
|
|
43
37
|
//# sourceMappingURL=FragmentsProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"components/FragmentsProvider.js","sources":["../../src/components/FragmentsProvider.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect } from \"react\";\nimport { contentSdk } from \"@webiny/website-builder-sdk\";\n\ntype FragmentConfig =\n | {\n type: \"fixed\";\n name: string;\n element: React.ReactNode;\n }\n | { type: \"component\"; component: string; inputs: Record<string, any> };\n\nexport type DocumentFragments = FragmentConfig[];\n\nconst FragmentsContext = React.createContext<DocumentFragments | undefined>(undefined);\n\ninterface FragmentsProviderProps {\n fragments: DocumentFragments;\n children: React.ReactNode;\n}\n\nexport const FragmentsProvider = ({ fragments, children }: FragmentsProviderProps) => {\n useEffect(() => {\n if (contentSdk.isEditing()) {\n // Extract serializable data\n const fragmentsData = fragments.map(fragment => {\n if (fragment.type === \"fixed\") {\n return {\n type: \"fixed\",\n name: fragment.name\n };\n }\n\n return {\n type: \"component\",\n component: fragment.component,\n inputs: fragment.inputs\n };\n });\n\n contentSdk\n .getEditingSdk()!\n .messenger.send(\"document.fragments\", { fragments: fragmentsData });\n }\n }, [fragments.length]);\n\n return <FragmentsContext.Provider value={fragments}>{children}</FragmentsContext.Provider>;\n};\n\nexport const useDocumentFragments = () => {\n const context = React.useContext(FragmentsContext);\n if (!context) {\n return [];\n }\n\n return context;\n};\n"],"names":["FragmentsContext","React","undefined","FragmentsProvider","fragments","children","useEffect","contentSdk","fragmentsData","fragment","useDocumentFragments","context"],"mappings":";;;AAcA,MAAMA,mBAAmB,WAAHA,GAAGC,MAAAA,aAAmB,CAAgCC;AAOrE,MAAMC,oBAAoB,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAA0B;IAC7EC,UAAU;QACN,IAAIC,WAAW,SAAS,IAAI;YAExB,MAAMC,gBAAgBJ,UAAU,GAAG,CAACK,CAAAA;gBAChC,IAAIA,AAAkB,YAAlBA,SAAS,IAAI,EACb,OAAO;oBACH,MAAM;oBACN,MAAMA,SAAS,IAAI;gBACvB;gBAGJ,OAAO;oBACH,MAAM;oBACN,WAAWA,SAAS,SAAS;oBAC7B,QAAQA,SAAS,MAAM;gBAC3B;YACJ;YAEAF,WAAAA,aACkB,GACb,SAAS,CAAC,IAAI,CAAC,sBAAsB;gBAAE,WAAWC;YAAc;QACzE;IACJ,GAAG;QAACJ,UAAU,MAAM;KAAC;IAErB,OAAO,WAAP,GAAO,oBAACJ,iBAAiB,QAAQ;QAAC,OAAOI;OAAYC;AACzD;AAEO,MAAMK,uBAAuB;IAChC,MAAMC,UAAUV,MAAAA,UAAgB,CAACD;IACjC,IAAI,CAACW,SACD,OAAO,EAAE;IAGb,OAAOA;AACX"}
|
|
@@ -1,78 +1,63 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import React, { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import react, { useCallback, useEffect, useState } from "react";
|
|
4
3
|
import { observer } from "mobx-react-lite";
|
|
5
4
|
import { contentSdk } from "@webiny/website-builder-sdk";
|
|
6
5
|
import { ElementSlot } from "./ElementSlot.js";
|
|
7
6
|
import { useViewport } from "./useViewportInfo.js";
|
|
8
7
|
import { useBindingsForElement } from "./useBindingsForElement.js";
|
|
9
8
|
import { useDocumentState } from "./useDocumentState.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
element,
|
|
62
|
-
breakpoint: viewport.breakpoint
|
|
63
|
-
};
|
|
64
|
-
const autoApplyStyles = manifest.autoApplyStyles !== false;
|
|
65
|
-
const userElement = /*#__PURE__*/React.createElement(Component, Object.assign({
|
|
66
|
-
key: element.id
|
|
67
|
-
}, props));
|
|
68
|
-
if (!autoApplyStyles) {
|
|
69
|
-
return userElement;
|
|
70
|
-
}
|
|
71
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
72
|
-
key: index,
|
|
73
|
-
style: styles
|
|
74
|
-
}, userElement);
|
|
75
|
-
}));
|
|
9
|
+
const LiveElementRenderer = observer(({ element })=>{
|
|
10
|
+
const viewport = useViewport();
|
|
11
|
+
const [breakpoint, setBreakpoint] = useState("desktop");
|
|
12
|
+
useEffect(()=>{
|
|
13
|
+
if (viewport.breakpoint && viewport.breakpoint !== breakpoint) setBreakpoint(viewport.breakpoint);
|
|
14
|
+
}, [
|
|
15
|
+
viewport.breakpoint,
|
|
16
|
+
breakpoint
|
|
17
|
+
]);
|
|
18
|
+
const elementBindings = useBindingsForElement(element.id, breakpoint);
|
|
19
|
+
const state = useDocumentState();
|
|
20
|
+
const onResolved = useCallback((value, input)=>{
|
|
21
|
+
if ("slot" === input.type) return /*#__PURE__*/ react.createElement(ElementSlot, {
|
|
22
|
+
key: element.id,
|
|
23
|
+
parentId: element.id,
|
|
24
|
+
slot: input.name,
|
|
25
|
+
elements: input.list ? value : [
|
|
26
|
+
value
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
return value;
|
|
30
|
+
}, [
|
|
31
|
+
element.id
|
|
32
|
+
]);
|
|
33
|
+
if (!element || !element.component) return null;
|
|
34
|
+
const instances = contentSdk.resolveElement({
|
|
35
|
+
element,
|
|
36
|
+
state,
|
|
37
|
+
elementBindings,
|
|
38
|
+
onResolved
|
|
39
|
+
});
|
|
40
|
+
if (!instances) return null;
|
|
41
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, instances.map((resolvedElement, index)=>{
|
|
42
|
+
const { component: Component, inputs, styles, manifest } = resolvedElement;
|
|
43
|
+
const props = {
|
|
44
|
+
inputs,
|
|
45
|
+
styles,
|
|
46
|
+
element,
|
|
47
|
+
breakpoint: viewport.breakpoint
|
|
48
|
+
};
|
|
49
|
+
const autoApplyStyles = false !== manifest.autoApplyStyles;
|
|
50
|
+
const userElement = /*#__PURE__*/ react.createElement(Component, {
|
|
51
|
+
key: element.id,
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
if (!autoApplyStyles) return userElement;
|
|
55
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
56
|
+
key: index,
|
|
57
|
+
style: styles
|
|
58
|
+
}, userElement);
|
|
59
|
+
}));
|
|
76
60
|
});
|
|
61
|
+
export { LiveElementRenderer };
|
|
77
62
|
|
|
78
63
|
//# sourceMappingURL=LiveElementRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"components/LiveElementRenderer.js","sources":["../../src/components/LiveElementRenderer.tsx"],"sourcesContent":["\"use client\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport type {\n DocumentElement,\n DocumentElementBindings,\n OnResolved\n} from \"@webiny/website-builder-sdk\";\nimport { contentSdk } from \"@webiny/website-builder-sdk\";\nimport { ElementSlot } from \"./ElementSlot.js\";\nimport { useViewport } from \"./useViewportInfo.js\";\nimport { useBindingsForElement } from \"./useBindingsForElement.js\";\nimport { useDocumentState } from \"./useDocumentState.js\";\n\ninterface LiveElementRendererProps {\n element: DocumentElement;\n bindings?: DocumentElementBindings;\n}\n\nexport const LiveElementRenderer = observer(({ element }: LiveElementRendererProps) => {\n const viewport = useViewport();\n\n // 1. Start breakpoint as \"desktop\" on both server and initial client render.\n const [breakpoint, setBreakpoint] = useState<\"desktop\" | string>(\"desktop\");\n\n // 2. Update breakpoint on the client after mount, using real viewport value.\n useEffect(() => {\n if (viewport.breakpoint && viewport.breakpoint !== breakpoint) {\n setBreakpoint(viewport.breakpoint);\n }\n }, [viewport.breakpoint, breakpoint]);\n\n // Bindings for current breakpoint\n const elementBindings = useBindingsForElement(element.id, breakpoint); // pass breakpoint explicitly if possible\n const state = useDocumentState();\n\n const onResolved = useCallback(\n ((value, input) => {\n if (input.type === \"slot\") {\n return (\n <ElementSlot\n key={element.id}\n parentId={element.id}\n slot={input.name}\n elements={input.list ? value : [value]}\n />\n );\n }\n return value;\n }) as OnResolved,\n [element.id]\n );\n\n if (!element || !element.component) {\n return null;\n }\n\n const instances = contentSdk.resolveElement({\n element,\n state,\n elementBindings,\n onResolved\n });\n\n if (!instances) {\n return null;\n }\n\n return (\n <>\n {instances.map((resolvedElement, index) => {\n const { component: Component, inputs, styles, manifest } = resolvedElement;\n const props = { inputs, styles, element, breakpoint: viewport.breakpoint };\n const autoApplyStyles = manifest.autoApplyStyles !== false;\n\n const userElement = <Component key={element.id} {...props} />;\n\n if (!autoApplyStyles) {\n return userElement;\n }\n\n return (\n <div key={index} style={styles}>\n {userElement}\n </div>\n );\n })}\n </>\n );\n});\n"],"names":["LiveElementRenderer","observer","element","viewport","useViewport","breakpoint","setBreakpoint","useState","useEffect","elementBindings","useBindingsForElement","state","useDocumentState","onResolved","useCallback","value","input","ElementSlot","instances","contentSdk","resolvedElement","index","Component","inputs","styles","manifest","props","autoApplyStyles","userElement"],"mappings":";;;;;;;;AAmBO,MAAMA,sBAAsBC,SAAS,CAAC,EAAEC,OAAO,EAA4B;IAC9E,MAAMC,WAAWC;IAGjB,MAAM,CAACC,YAAYC,cAAc,GAAGC,SAA6B;IAGjEC,UAAU;QACN,IAAIL,SAAS,UAAU,IAAIA,SAAS,UAAU,KAAKE,YAC/CC,cAAcH,SAAS,UAAU;IAEzC,GAAG;QAACA,SAAS,UAAU;QAAEE;KAAW;IAGpC,MAAMI,kBAAkBC,sBAAsBR,QAAQ,EAAE,EAAEG;IAC1D,MAAMM,QAAQC;IAEd,MAAMC,aAAaC,YACd,CAACC,OAAOC;QACL,IAAIA,AAAe,WAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACC,aAAWA;YACR,KAAKf,QAAQ,EAAE;YACf,UAAUA,QAAQ,EAAE;YACpB,MAAMc,MAAM,IAAI;YAChB,UAAUA,MAAM,IAAI,GAAGD,QAAQ;gBAACA;aAAM;;QAIlD,OAAOA;IACX,GACA;QAACb,QAAQ,EAAE;KAAC;IAGhB,IAAI,CAACA,WAAW,CAACA,QAAQ,SAAS,EAC9B,OAAO;IAGX,MAAMgB,YAAYC,WAAW,cAAc,CAAC;QACxCjB;QACAS;QACAF;QACAI;IACJ;IAEA,IAAI,CAACK,WACD,OAAO;IAGX,OAAO,WAAP,GACI,0CACKA,UAAU,GAAG,CAAC,CAACE,iBAAiBC;QAC7B,MAAM,EAAE,WAAWC,SAAS,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAGL;QAC3D,MAAMM,QAAQ;YAAEH;YAAQC;YAAQtB;YAAS,YAAYC,SAAS,UAAU;QAAC;QACzE,MAAMwB,kBAAkBF,AAA6B,UAA7BA,SAAS,eAAe;QAEhD,MAAMG,cAAc,WAAdA,GAAc,oBAACN,WAAAA;YAAU,KAAKpB,QAAQ,EAAE;YAAG,GAAGwB,KAAK;;QAEzD,IAAI,CAACC,iBACD,OAAOC;QAGX,OAAO,WAAP,GACI,oBAAC;YAAI,KAAKP;YAAO,OAAOG;WACnBI;IAGb;AAGZ"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import React from "react";
|
|
2
|
+
import react from "react";
|
|
4
3
|
import { ElementRenderer } from "./ElementRenderer.js";
|
|
5
4
|
import { ElementSlotDepthProvider, useElementSlotDepth } from "./ElementSlotDepthProvider.js";
|
|
6
5
|
import { ElementIndexProvider } from "./ElementIndexProvider.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
id: id
|
|
18
|
-
})))));
|
|
6
|
+
const LiveElementSlot = ({ elements = [] })=>{
|
|
7
|
+
const depth = useElementSlotDepth();
|
|
8
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(ElementSlotDepthProvider, {
|
|
9
|
+
depth: depth + 1
|
|
10
|
+
}, elements.map((id, index)=>/*#__PURE__*/ react.createElement(ElementIndexProvider, {
|
|
11
|
+
key: id,
|
|
12
|
+
index: index
|
|
13
|
+
}, /*#__PURE__*/ react.createElement(ElementRenderer, {
|
|
14
|
+
id: id
|
|
15
|
+
})))));
|
|
19
16
|
};
|
|
17
|
+
export { LiveElementSlot };
|
|
20
18
|
|
|
21
19
|
//# sourceMappingURL=LiveElementSlot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"components/LiveElementSlot.js","sources":["../../src/components/LiveElementSlot.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { ElementRenderer } from \"./ElementRenderer.js\";\nimport type { ElementSlotProps } from \"./ElementSlot.js\";\nimport { ElementSlotDepthProvider, useElementSlotDepth } from \"./ElementSlotDepthProvider.js\";\nimport { ElementIndexProvider } from \"./ElementIndexProvider.js\";\n\nexport const LiveElementSlot = ({ elements = [] }: Pick<ElementSlotProps, \"elements\">) => {\n const depth = useElementSlotDepth();\n return (\n <>\n <ElementSlotDepthProvider depth={depth + 1}>\n {elements.map((id, index) => (\n <ElementIndexProvider key={id} index={index}>\n <ElementRenderer id={id} />\n </ElementIndexProvider>\n ))}\n </ElementSlotDepthProvider>\n </>\n );\n};\n"],"names":["LiveElementSlot","elements","depth","useElementSlotDepth","ElementSlotDepthProvider","id","index","ElementIndexProvider","ElementRenderer"],"mappings":";;;;;AAOO,MAAMA,kBAAkB,CAAC,EAAEC,WAAW,EAAE,EAAsC;IACjF,MAAMC,QAAQC;IACd,OAAO,WAAP,GACI,wDACI,oBAACC,0BAAwBA;QAAC,OAAOF,QAAQ;OACpCD,SAAS,GAAG,CAAC,CAACI,IAAIC,QAAAA,WAAAA,GACf,oBAACC,sBAAoBA;YAAC,KAAKF;YAAI,OAAOC;yBAClC,oBAACE,iBAAeA;YAAC,IAAIH;;AAM7C"}
|
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import React from "react";
|
|
2
|
+
import react from "react";
|
|
4
3
|
import { LiveElementSlot } from "./LiveElementSlot.js";
|
|
5
4
|
import { useElementSlotDepth } from "./ElementSlotDepthProvider.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"data-depth": depth,
|
|
22
|
-
"data-empty": true
|
|
5
|
+
const PreviewElementSlot = ({ parentId, slot, elements = [] })=>{
|
|
6
|
+
const depth = useElementSlotDepth();
|
|
7
|
+
if (!elements.length) return /*#__PURE__*/ react.createElement("div", {
|
|
8
|
+
style: {
|
|
9
|
+
height: 100,
|
|
10
|
+
width: "100% !important"
|
|
11
|
+
},
|
|
12
|
+
"data-role": "element-slot",
|
|
13
|
+
"data-parent-id": parentId,
|
|
14
|
+
"data-parent-slot": slot,
|
|
15
|
+
"data-depth": depth,
|
|
16
|
+
"data-empty": true
|
|
17
|
+
});
|
|
18
|
+
return /*#__PURE__*/ react.createElement(LiveElementSlot, {
|
|
19
|
+
elements: elements
|
|
23
20
|
});
|
|
24
|
-
}
|
|
25
|
-
return /*#__PURE__*/React.createElement(LiveElementSlot, {
|
|
26
|
-
elements: elements
|
|
27
|
-
});
|
|
28
21
|
};
|
|
22
|
+
export { PreviewElementSlot };
|
|
29
23
|
|
|
30
24
|
//# sourceMappingURL=PreviewElementSlot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"components/PreviewElementSlot.js","sources":["../../src/components/PreviewElementSlot.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { LiveElementSlot } from \"./LiveElementSlot.js\";\nimport { useElementSlotDepth } from \"./ElementSlotDepthProvider.js\";\n\ninterface ElementSlotProps {\n // Element that contains this slot.\n parentId: string;\n // Path to the array of elements within the element's data structure.\n slot: string;\n // IDs of the elements to render.\n elements: string[];\n}\n\nexport const PreviewElementSlot = ({ parentId, slot, elements = [] }: ElementSlotProps) => {\n const depth = useElementSlotDepth();\n\n if (!elements.length) {\n return (\n <div\n style={{ height: 100, width: \"100% !important\" }}\n data-role={\"element-slot\"}\n data-parent-id={parentId}\n data-parent-slot={slot}\n data-depth={depth}\n data-empty={true}\n />\n );\n }\n\n return <LiveElementSlot elements={elements} />;\n};\n"],"names":["PreviewElementSlot","parentId","slot","elements","depth","useElementSlotDepth","LiveElementSlot"],"mappings":";;;;AAcO,MAAMA,qBAAqB,CAAC,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,WAAW,EAAE,EAAoB;IAClF,MAAMC,QAAQC;IAEd,IAAI,CAACF,SAAS,MAAM,EAChB,OAAO,WAAP,GACI,oBAAC;QACG,OAAO;YAAE,QAAQ;YAAK,OAAO;QAAkB;QAC/C,aAAW;QACX,kBAAgBF;QAChB,oBAAkBC;QAClB,cAAYE;QACZ,cAAY;;IAKxB,OAAO,WAAP,GAAO,oBAACE,iBAAeA;QAAC,UAAUH;;AACtC"}
|