@webiny/website-builder-vue 6.4.0-beta.4 → 6.4.0-beta.6
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/LICENSE +21 -0
- package/README.md +11 -0
- package/components/ConnectToEditor.d.ts +35 -0
- package/components/ConnectToEditor.js +40 -0
- package/components/ConnectToEditor.js.map +1 -0
- package/components/DocumentFragment.d.ts +67 -0
- package/components/DocumentFragment.js +24 -0
- package/components/DocumentFragment.js.map +1 -0
- package/components/DocumentRenderer.d.ts +59 -0
- package/components/DocumentRenderer.js +68 -0
- package/components/DocumentRenderer.js.map +1 -0
- package/components/DocumentStoreProvider.d.ts +37 -0
- package/components/DocumentStoreProvider.js +32 -0
- package/components/DocumentStoreProvider.js.map +1 -0
- package/components/EditingElementRenderer/EditingElementRenderer.d.ts +22 -0
- package/components/EditingElementRenderer/EditingElementRenderer.js +53 -0
- package/components/EditingElementRenderer/EditingElementRenderer.js.map +1 -0
- package/components/EditingElementRenderer/EditingElementRenderer.presenter.d.ts +15 -0
- package/components/EditingElementRenderer/EditingElementRenderer.presenter.js +37 -0
- package/components/EditingElementRenderer/EditingElementRenderer.presenter.js.map +1 -0
- package/components/EditingElementRenderer/index.js +2 -0
- package/components/ElementIndexProvider.d.ts +19 -0
- package/components/ElementIndexProvider.js +19 -0
- package/components/ElementIndexProvider.js.map +1 -0
- package/components/ElementRenderer.d.ts +19 -0
- package/components/ElementRenderer.js +33 -0
- package/components/ElementRenderer.js.map +1 -0
- package/components/ElementSlot.d.ts +39 -0
- package/components/ElementSlot.js +36 -0
- package/components/ElementSlot.js.map +1 -0
- package/components/ElementSlotDepthProvider.d.ts +19 -0
- package/components/ElementSlotDepthProvider.js +19 -0
- package/components/ElementSlotDepthProvider.js.map +1 -0
- package/components/FragmentsProvider.d.ts +46 -0
- package/components/FragmentsProvider.js +40 -0
- package/components/FragmentsProvider.js.map +1 -0
- package/components/LiveElementRenderer.d.ts +24 -0
- package/components/LiveElementRenderer.js +74 -0
- package/components/LiveElementRenderer.js.map +1 -0
- package/components/LiveElementSlot.d.ts +21 -0
- package/components/LiveElementSlot.js +36 -0
- package/components/LiveElementSlot.js.map +1 -0
- package/components/PreviewElementSlot.d.ts +38 -0
- package/components/PreviewElementSlot.js +45 -0
- package/components/PreviewElementSlot.js.map +1 -0
- package/{src/components/index.ts → components/index.d.ts} +2 -11
- package/components/index.js +8 -0
- package/composables/useBindingsForElement.d.ts +825 -0
- package/composables/useBindingsForElement.js +24 -0
- package/composables/useBindingsForElement.js.map +1 -0
- package/composables/useDocumentState.d.ts +5 -0
- package/composables/useDocumentState.js +11 -0
- package/composables/useDocumentState.js.map +1 -0
- package/composables/useObservable.d.ts +13 -0
- package/composables/useObservable.js +14 -0
- package/composables/useObservable.js.map +1 -0
- package/{src/composables/useSelectFromState.ts → composables/useSelectFromState.d.ts} +2 -10
- package/composables/useSelectFromState.js +9 -0
- package/composables/useSelectFromState.js.map +1 -0
- package/composables/useViewport.d.ts +7 -0
- package/composables/useViewport.js +18 -0
- package/composables/useViewport.js.map +1 -0
- package/createComponent.d.ts +21 -0
- package/createComponent.js +31 -0
- package/createComponent.js.map +1 -0
- package/editorComponents/Box.d.ts +7 -0
- package/editorComponents/Box.js +4 -0
- package/editorComponents/Box.js.map +1 -0
- package/editorComponents/Box.manifest.d.ts +1 -0
- package/{src/editorComponents/Box.manifest.ts → editorComponents/Box.manifest.js} +6 -4
- package/editorComponents/Box.manifest.js.map +1 -0
- package/editorComponents/Fragment.d.ts +13 -0
- package/editorComponents/Fragment.js +39 -0
- package/editorComponents/Fragment.js.map +1 -0
- package/editorComponents/Fragment.manifest.d.ts +1 -0
- package/{src/editorComponents/Fragment.manifest.ts → editorComponents/Fragment.manifest.js} +6 -4
- package/editorComponents/Fragment.manifest.js.map +1 -0
- package/editorComponents/Grid.d.ts +24 -0
- package/editorComponents/Grid.js +33 -0
- package/editorComponents/Grid.js.map +1 -0
- package/editorComponents/Grid.manifest.d.ts +1 -0
- package/{src/editorComponents/Grid.manifest.ts → editorComponents/Grid.manifest.js} +58 -55
- package/editorComponents/Grid.manifest.js.map +1 -0
- package/editorComponents/GridColumn.d.ts +5 -0
- package/editorComponents/GridColumn.js +4 -0
- package/editorComponents/GridColumn.js.map +1 -0
- package/editorComponents/GridColumn.manifest.d.ts +1 -0
- package/{src/editorComponents/GridColumn.manifest.ts → editorComponents/GridColumn.manifest.js} +9 -5
- package/editorComponents/GridColumn.manifest.js.map +1 -0
- package/editorComponents/Image.d.ts +37 -0
- package/editorComponents/Image.js +115 -0
- package/editorComponents/Image.js.map +1 -0
- package/editorComponents/Image.manifest.d.ts +1 -0
- package/{src/editorComponents/Image.manifest.ts → editorComponents/Image.manifest.js} +17 -12
- package/editorComponents/Image.manifest.js.map +1 -0
- package/editorComponents/Lexical.d.ts +18 -0
- package/editorComponents/Lexical.js +15 -0
- package/editorComponents/Lexical.js.map +1 -0
- package/editorComponents/Lexical.manifest.d.ts +1 -0
- package/editorComponents/Lexical.manifest.js +24 -0
- package/editorComponents/Lexical.manifest.js.map +1 -0
- package/editorComponents/Root.d.ts +7 -0
- package/editorComponents/Root.js +4 -0
- package/editorComponents/Root.js.map +1 -0
- package/editorComponents/Root.manifest.d.ts +1 -0
- package/{src/editorComponents/Root.manifest.ts → editorComponents/Root.manifest.js} +5 -3
- package/editorComponents/Root.manifest.js.map +1 -0
- package/{src/editorComponents/index.ts → editorComponents/index.d.ts} +1 -3
- package/editorComponents/index.js +20 -0
- package/editorComponents/index.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +9 -4
- package/package.json +11 -10
- package/{src/types.ts → types.d.ts} +11 -32
- package/types.js +0 -0
- package/src/components/ConnectToEditor.ts +0 -46
- package/src/components/DocumentFragment.ts +0 -43
- package/src/components/DocumentRenderer.ts +0 -102
- package/src/components/DocumentStoreProvider.ts +0 -53
- package/src/components/EditingElementRenderer/EditingElementRenderer.presenter.ts +0 -59
- package/src/components/EditingElementRenderer/EditingElementRenderer.ts +0 -70
- package/src/components/ElementIndexProvider.ts +0 -24
- package/src/components/ElementRenderer.ts +0 -42
- package/src/components/ElementSlot.ts +0 -34
- package/src/components/ElementSlotDepthProvider.ts +0 -24
- package/src/components/FragmentsProvider.ts +0 -87
- package/src/components/LiveElementRenderer.ts +0 -102
- package/src/components/LiveElementSlot.ts +0 -46
- package/src/components/PreviewElementSlot.ts +0 -43
- package/src/composables/useBindingsForElement.ts +0 -40
- package/src/composables/useDocumentState.ts +0 -13
- package/src/composables/useObservable.ts +0 -30
- package/src/composables/useViewport.ts +0 -27
- package/src/createComponent.ts +0 -55
- package/src/editorComponents/Box.ts +0 -8
- package/src/editorComponents/Fragment.ts +0 -57
- package/src/editorComponents/Grid.ts +0 -72
- package/src/editorComponents/GridColumn.ts +0 -6
- package/src/editorComponents/Image.ts +0 -144
- package/src/editorComponents/Lexical.manifest.ts +0 -24
- package/src/editorComponents/Lexical.ts +0 -23
- package/src/editorComponents/Root.ts +0 -8
- package/src/index.ts +0 -52
- package/tsconfig.build.json +0 -16
- package/tsconfig.json +0 -16
- package/webiny.config.js +0 -8
- /package/{src/components/EditingElementRenderer/index.ts → components/EditingElementRenderer/index.d.ts} +0 -0
- /package/{src/lexical.css → lexical.css} +0 -0
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { defineComponent, ref, watch, h, Fragment, type PropType } from "vue";
|
|
2
|
-
import { contentSdk } from "@webiny/website-builder-sdk";
|
|
3
|
-
import type { CssProperties } from "@webiny/website-builder-sdk";
|
|
4
|
-
|
|
5
|
-
const SUPPORTED_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];
|
|
6
|
-
|
|
7
|
-
type ImageInputs = {
|
|
8
|
-
title: string;
|
|
9
|
-
altText: string;
|
|
10
|
-
image: {
|
|
11
|
-
id: string;
|
|
12
|
-
name: string;
|
|
13
|
-
size: number;
|
|
14
|
-
mimeType: string;
|
|
15
|
-
src: string;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const getSrcSet = (src: string, widths: number[]) =>
|
|
20
|
-
widths.map(w => `${src}?width=${w} ${w}w`).join(", ");
|
|
21
|
-
|
|
22
|
-
const computeSrcSetWidths = (width?: string | number): number[] => {
|
|
23
|
-
if (width && String(width).endsWith("px")) {
|
|
24
|
-
const px = parseInt(String(width));
|
|
25
|
-
const widths: number[] = [];
|
|
26
|
-
for (const w of SUPPORTED_WIDTHS) {
|
|
27
|
-
widths.push(w);
|
|
28
|
-
if (w >= px) {
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return widths;
|
|
33
|
-
}
|
|
34
|
-
return SUPPORTED_WIDTHS;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const ImagePlaceholder = (props: { style: CssProperties }) =>
|
|
38
|
-
h(
|
|
39
|
-
"div",
|
|
40
|
-
{
|
|
41
|
-
style: {
|
|
42
|
-
display: "flex",
|
|
43
|
-
height: "200px",
|
|
44
|
-
backgroundColor: "#f4f4f4",
|
|
45
|
-
justifyContent: "center",
|
|
46
|
-
alignItems: "center",
|
|
47
|
-
fill: "#ffffff",
|
|
48
|
-
...props.style
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
[
|
|
52
|
-
h(
|
|
53
|
-
"svg",
|
|
54
|
-
{
|
|
55
|
-
style: {
|
|
56
|
-
width: "70px",
|
|
57
|
-
height: "70px",
|
|
58
|
-
filter: "drop-shadow(rgba(0, 0, 0, 0.16) 0px 1px 0px)"
|
|
59
|
-
},
|
|
60
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
61
|
-
height: "24px",
|
|
62
|
-
viewBox: "0 -960 960 960",
|
|
63
|
-
width: "24px"
|
|
64
|
-
},
|
|
65
|
-
[
|
|
66
|
-
h("path", {
|
|
67
|
-
d: "M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"
|
|
68
|
-
})
|
|
69
|
-
]
|
|
70
|
-
)
|
|
71
|
-
]
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
export const ImageComponent = defineComponent({
|
|
75
|
-
name: "WebinyImageComponent",
|
|
76
|
-
props: {
|
|
77
|
-
inputs: { type: Object as PropType<ImageInputs>, required: true },
|
|
78
|
-
styles: { type: Object as PropType<CssProperties>, default: () => ({}) }
|
|
79
|
-
},
|
|
80
|
-
setup(props) {
|
|
81
|
-
// In editing mode start as not-loaded (fade in after load).
|
|
82
|
-
// In live mode start as loaded (no fade effect needed).
|
|
83
|
-
const isLoaded = ref(!contentSdk.isEditing());
|
|
84
|
-
|
|
85
|
-
watch(
|
|
86
|
-
() => props.inputs?.image?.src,
|
|
87
|
-
src => {
|
|
88
|
-
if (!src) {
|
|
89
|
-
isLoaded.value = false;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
function onLoad() {
|
|
95
|
-
if (contentSdk.isEditing()) {
|
|
96
|
-
setTimeout(() => {
|
|
97
|
-
isLoaded.value = true;
|
|
98
|
-
}, 100);
|
|
99
|
-
} else {
|
|
100
|
-
isLoaded.value = true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return () => {
|
|
105
|
-
const { inputs, styles } = props;
|
|
106
|
-
const { title = "", altText, image } = inputs;
|
|
107
|
-
const src = image?.src;
|
|
108
|
-
|
|
109
|
-
if (!src) {
|
|
110
|
-
return h(ImagePlaceholder, { style: styles });
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (src.endsWith(".svg")) {
|
|
114
|
-
return h("object", {
|
|
115
|
-
style: { maxWidth: "100%", ...styles },
|
|
116
|
-
title,
|
|
117
|
-
data: src
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
122
|
-
const imageStyles: CssProperties = {
|
|
123
|
-
maxWidth: "100%",
|
|
124
|
-
opacity: isLoaded.value ? 1 : 0,
|
|
125
|
-
transition: "opacity 0.3s ease",
|
|
126
|
-
...styles
|
|
127
|
-
} as any;
|
|
128
|
-
|
|
129
|
-
const srcSet = getSrcSet(src, computeSrcSetWidths(styles.width));
|
|
130
|
-
|
|
131
|
-
return h(Fragment, null, [
|
|
132
|
-
!isLoaded.value ? h(ImagePlaceholder, { style: styles }) : null,
|
|
133
|
-
h("img", {
|
|
134
|
-
alt: altText,
|
|
135
|
-
title,
|
|
136
|
-
src,
|
|
137
|
-
srcset: srcSet,
|
|
138
|
-
style: imageStyles,
|
|
139
|
-
onLoad
|
|
140
|
-
})
|
|
141
|
-
]);
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { createLexicalInput } from "@webiny/website-builder-sdk";
|
|
3
|
-
import { createComponent } from "~/createComponent.js";
|
|
4
|
-
import { LexicalComponent, createLexicalValue } from "./Lexical.js";
|
|
5
|
-
|
|
6
|
-
export const Lexical = createComponent(LexicalComponent, {
|
|
7
|
-
name: "Webiny/Lexical",
|
|
8
|
-
label: "Rich Text",
|
|
9
|
-
group: "basic",
|
|
10
|
-
image: `<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M280-160v-520H80v-120h520v120H400v520H280Zm360 0v-320H520v-120h360v120H760v320H640Z"/></svg>`,
|
|
11
|
-
inputs: [
|
|
12
|
-
createLexicalInput({
|
|
13
|
-
name: "content",
|
|
14
|
-
label: "Content"
|
|
15
|
-
})
|
|
16
|
-
],
|
|
17
|
-
defaults: {
|
|
18
|
-
inputs: {
|
|
19
|
-
content: createLexicalValue(
|
|
20
|
-
"Examine she brother prudent add day ham. Far stairs now coming bed oppose hunted become his. You zealously departure had procuring suspicion. Books whose front would purse if be do decay. Quitting you way formerly disposed perceive ladyship are. Common turned boy direct and yet."
|
|
21
|
-
)
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { h } from "vue";
|
|
2
|
-
import type { ComponentProps } from "~/types.js";
|
|
3
|
-
|
|
4
|
-
export const createLexicalValue = (value: string) => ({
|
|
5
|
-
state: `{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"${value}","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"wby-paragraph","version":1,"textFormat":0,"textStyle":""}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}`,
|
|
6
|
-
html: `<p class="wb-paragraph-1">${value}</p>`
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
type LexicalProps = ComponentProps<{
|
|
10
|
-
content: { html?: string };
|
|
11
|
-
}>;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Renders Lexical rich-text content as raw HTML.
|
|
15
|
-
* The HTML is produced by the editor and stored in `inputs.content.html`.
|
|
16
|
-
*/
|
|
17
|
-
export const LexicalComponent = (props: LexicalProps) => {
|
|
18
|
-
const html = props.inputs?.content?.html;
|
|
19
|
-
if (!html) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
return h("div", { innerHTML: html });
|
|
23
|
-
};
|
package/src/index.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// Re-export the full framework-agnostic SDK surface (types, inputs, SDK instance, etc.)
|
|
2
|
-
export {
|
|
3
|
-
createTextInput,
|
|
4
|
-
createLongTextInput,
|
|
5
|
-
createNumberInput,
|
|
6
|
-
createBooleanInput,
|
|
7
|
-
createColorInput,
|
|
8
|
-
createFileInput,
|
|
9
|
-
createDateInput,
|
|
10
|
-
createLexicalInput,
|
|
11
|
-
createSelectInput,
|
|
12
|
-
createRadioInput,
|
|
13
|
-
createObjectInput,
|
|
14
|
-
createTagsInput,
|
|
15
|
-
createSlotInput,
|
|
16
|
-
createInput,
|
|
17
|
-
createElement,
|
|
18
|
-
createTheme,
|
|
19
|
-
contentSdk,
|
|
20
|
-
environment,
|
|
21
|
-
setHeadersProvider,
|
|
22
|
-
getHeadersProvider,
|
|
23
|
-
registerComponentGroup,
|
|
24
|
-
type CssProperties,
|
|
25
|
-
type Document,
|
|
26
|
-
type DocumentElement,
|
|
27
|
-
type Breakpoint,
|
|
28
|
-
type CreateElementParams,
|
|
29
|
-
type ContentSDKConfig,
|
|
30
|
-
type ComponentManifest,
|
|
31
|
-
type ComponentInput,
|
|
32
|
-
type ComponentConstraint,
|
|
33
|
-
type WebsiteBuilderThemeInput,
|
|
34
|
-
StyleSettings
|
|
35
|
-
} from "@webiny/website-builder-sdk";
|
|
36
|
-
|
|
37
|
-
// Vue-specific exports
|
|
38
|
-
export { createComponent } from "./createComponent.js";
|
|
39
|
-
export * from "./components/index.js";
|
|
40
|
-
export * from "./editorComponents/index.js";
|
|
41
|
-
export * from "./composables/useViewport.js";
|
|
42
|
-
export * from "./composables/useSelectFromState.js";
|
|
43
|
-
export * from "./composables/useObservable.js";
|
|
44
|
-
export * from "./composables/useBindingsForElement.js";
|
|
45
|
-
export * from "./composables/useDocumentState.js";
|
|
46
|
-
export type {
|
|
47
|
-
ComponentProps,
|
|
48
|
-
ComponentPropsWithChildren,
|
|
49
|
-
InferManifest,
|
|
50
|
-
InferComponentChange,
|
|
51
|
-
InferDescendantChange
|
|
52
|
-
} from "./types.js";
|
package/tsconfig.build.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.build.json",
|
|
3
|
-
"include": ["src"],
|
|
4
|
-
"references": [{ "path": "../website-builder-sdk/tsconfig.build.json" }],
|
|
5
|
-
"compilerOptions": {
|
|
6
|
-
"rootDir": "./src",
|
|
7
|
-
"outDir": "./dist",
|
|
8
|
-
"declarationDir": "./dist",
|
|
9
|
-
"paths": {
|
|
10
|
-
"~/*": ["./src/*"],
|
|
11
|
-
"~tests/*": ["./__tests__/*"],
|
|
12
|
-
"@webiny/website-builder-sdk/*": ["../website-builder-sdk/src/*"],
|
|
13
|
-
"@webiny/website-builder-sdk": ["../website-builder-sdk/src"]
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.json",
|
|
3
|
-
"include": ["src", "__tests__"],
|
|
4
|
-
"references": [{ "path": "../website-builder-sdk" }],
|
|
5
|
-
"compilerOptions": {
|
|
6
|
-
"rootDirs": ["./src", "./__tests__"],
|
|
7
|
-
"outDir": "./dist",
|
|
8
|
-
"declarationDir": "./dist",
|
|
9
|
-
"paths": {
|
|
10
|
-
"~/*": ["./src/*"],
|
|
11
|
-
"~tests/*": ["./__tests__/*"],
|
|
12
|
-
"@webiny/website-builder-sdk/*": ["../website-builder-sdk/src/*"],
|
|
13
|
-
"@webiny/website-builder-sdk": ["../website-builder-sdk/src"]
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
package/webiny.config.js
DELETED
|
File without changes
|
|
File without changes
|