@contentful/experiences-visual-editor-react 1.42.0-prerelease-20250620T1900-059481b.0 → 1.42.0-prerelease-20250626T1154-6ca57b0.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/dist/index.js +6 -33
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +6 -33
- package/dist/renderApp.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -12,8 +12,8 @@ import { v4 } from 'uuid';
|
|
|
12
12
|
import { createPortal } from 'react-dom';
|
|
13
13
|
import classNames from 'classnames';
|
|
14
14
|
|
|
15
|
-
var css_248z$
|
|
16
|
-
styleInject(css_248z$
|
|
15
|
+
var css_248z$4 = "html,\nbody {\n margin: 0;\n padding: 0;\n}\n\n/*\n * All of these variables are tokens from Forma-36 and should not be adjusted as these\n * are global variables that may affect multiple places.\n * As our customers may use other design libraries, we try to avoid overlapping global\n * variables by always using the prefix `--exp-builder-` inside this SDK.\n */\n\n:root {\n /* Color tokens from Forma 36: https://f36.contentful.com/tokens/color-system */\n --exp-builder-blue100: #e8f5ff;\n --exp-builder-blue200: #ceecff;\n --exp-builder-blue300: #98cbff;\n --exp-builder-blue400: #40a0ff;\n --exp-builder-blue500: #036fe3;\n --exp-builder-blue600: #0059c8;\n --exp-builder-blue700: #0041ab;\n --exp-builder-blue800: #003298;\n --exp-builder-blue900: #002a8e;\n --exp-builder-gray100: #f7f9fa;\n --exp-builder-gray200: #e7ebee;\n --exp-builder-gray300: #cfd9e0;\n --exp-builder-gray400: #aec1cc;\n --exp-builder-gray500: #67728a;\n --exp-builder-gray600: #5a657c;\n --exp-builder-gray700: #414d63;\n --exp-builder-gray800: #1b273a;\n --exp-builder-gray900: #111b2b;\n --exp-builder-purple600: #6c3ecf;\n --exp-builder-red200: #ffe0e0;\n --exp-builder-red800: #7f0010;\n --exp-builder-color-white: #ffffff;\n --exp-builder-glow-primary: 0px 0px 0px 3px #e8f5ff;\n\n /* RGB colors for applying opacity */\n --exp-builder-blue100-rgb: 232, 245, 255;\n --exp-builder-blue300-rgb: 152, 203, 255;\n\n /* Spacing tokens from Forma 36: https://f36.contentful.com/tokens/spacing */\n --exp-builder-spacing-s: 0.75rem;\n --exp-builder-spacing-2xs: 0.25rem;\n\n /* Typography tokens from Forma 36: https://f36.contentful.com/tokens/typography */\n --exp-builder-font-size-l: 1rem;\n --exp-builder-font-size-m: 0.875rem;\n --exp-builder-font-stack-primary: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;\n --exp-builder-line-height-condensed: 1.25;\n}\n";
|
|
16
|
+
styleInject(css_248z$4);
|
|
17
17
|
|
|
18
18
|
const INCOMING_EVENTS$1 = {
|
|
19
19
|
RequestEditorMode: 'requestEditorMode',
|
|
@@ -811,7 +811,7 @@ const THUMBNAIL_IDS$1 = [
|
|
|
811
811
|
// TODO: finalize schema structure before release
|
|
812
812
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
813
813
|
const VariableMappingSchema$1 = z.object({
|
|
814
|
-
|
|
814
|
+
parameterId: propertyKeySchema$1,
|
|
815
815
|
type: z.literal('ContentTypeMapping'),
|
|
816
816
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
817
817
|
});
|
|
@@ -3162,9 +3162,9 @@ const cloneDeepAsPOJO = (obj) => {
|
|
|
3162
3162
|
return JSON.parse(JSON.stringify(obj));
|
|
3163
3163
|
};
|
|
3164
3164
|
|
|
3165
|
-
var css_248z$
|
|
3165
|
+
var css_248z$3 = ".render-module_hitbox__l4ysJ {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 10px;\n z-index: 1000000;\n}\n\n.render-module_hitboxLower__tgsA1 {\n position: absolute;\n bottom: -20px;\n left: 0;\n width: 100%;\n height: 20px;\n z-index: 1000000;\n}\n\n.render-module_canvasBottomSpacer__JuxVh {\n position: absolute;\n width: 100%;\n height: 50px;\n}\n\n.render-module_container__-C3d7 {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n\nbody {\n margin: 0;\n}\n\nhtml {\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n scrollbar-width: none; /* Firefox */\n}\n\nhtml::-webkit-scrollbar {\n display: none;\n}\n";
|
|
3166
3166
|
var styles$3 = {"hitbox":"render-module_hitbox__l4ysJ","hitboxLower":"render-module_hitboxLower__tgsA1","canvasBottomSpacer":"render-module_canvasBottomSpacer__JuxVh","container":"render-module_container__-C3d7"};
|
|
3167
|
-
styleInject(css_248z$
|
|
3167
|
+
styleInject(css_248z$3);
|
|
3168
3168
|
|
|
3169
3169
|
// TODO: In order to support integrations without React, we should extract this heavy logic into simple
|
|
3170
3170
|
// functions that we can reuse in other frameworks.
|
|
@@ -3331,9 +3331,6 @@ const useEditorStore = create((set, get) => ({
|
|
|
3331
3331
|
},
|
|
3332
3332
|
}));
|
|
3333
3333
|
|
|
3334
|
-
var css_248z$8 = "/* Initially added with PR #253 for each component, this is now a global setting\n * It is recommended on MDN to use this as a default for layouting.\n*/\n* {\n box-sizing: border-box;\n}\n";
|
|
3335
|
-
styleInject(css_248z$8);
|
|
3336
|
-
|
|
3337
3334
|
/**
|
|
3338
3335
|
* These modes are ONLY intended to be internally used within the context of
|
|
3339
3336
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -3351,21 +3348,6 @@ var PostMessageMethods$1;
|
|
|
3351
3348
|
PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
|
|
3352
3349
|
})(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
|
|
3353
3350
|
|
|
3354
|
-
var css_248z$7 = "/* If the label is empty, still render the normal height by adding this pseudo element */\n.cf-button:empty::before {\n content: '';\n display: inline-block;\n}\n";
|
|
3355
|
-
styleInject(css_248z$7);
|
|
3356
|
-
|
|
3357
|
-
var css_248z$6 = ".cf-heading {\n white-space: pre-line;\n}\n";
|
|
3358
|
-
styleInject(css_248z$6);
|
|
3359
|
-
|
|
3360
|
-
var css_248z$5 = ".cf-richtext {\n white-space: pre-line;\n}\n\n.cf-richtext > *:first-child {\n margin-top: 0;\n}\n\n.cf-richtext > *:last-child {\n margin-bottom: 0;\n}\n";
|
|
3361
|
-
styleInject(css_248z$5);
|
|
3362
|
-
|
|
3363
|
-
var css_248z$4 = ".cf-text {\n white-space: pre-line;\n}\n\n.cf-text-link .cf-text {\n margin: 0;\n}\n";
|
|
3364
|
-
styleInject(css_248z$4);
|
|
3365
|
-
|
|
3366
|
-
var css_248z$3 = "@import url(https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,500;0,600;1,400;1,600&display=swap);\n\n:root {\n /* All sizing comments based of 16px base body font size */\n\n /* color */\n --cf-color-white: #fff;\n --cf-color-black: #000;\n --cf-color-gray100: #f7f9fa;\n --cf-color-gray400: #aec1cc;\n --cf-color-gray400-rgb: 174, 193, 204;\n\n /* spacing */\n --cf-spacing-0: 0rem; /* 0px */\n --cf-spacing-1: 0.125rem; /* 2px */\n --cf-spacing-2: 0.25rem; /* 4px */\n --cf-spacing-3: 0.375rem; /* 6px */\n --cf-spacing-4: 0.5rem; /* 8px */\n --cf-spacing-5: 0.625rem; /* 10px */\n --cf-spacing-6: 0.75rem; /* 12px */\n --cf-spacing-7: 0.875rem; /* 14px */\n --cf-spacing-8: 1rem; /* 16px */\n --cf-spacing-9: 1.25rem; /* 20px */\n --cf-spacing-10: 1.5rem; /* 24px */\n --cf-spacing-11: 1.75rem; /* 28px */\n --cf-spacing-12: 2rem; /* 32px */\n --cf-spacing-13: 2.25rem; /* 36px */\n\n /* font-size */\n --cf-text-xs: 0.75rem; /* 12px */\n --cf-text-sm: 0.875rem; /* 14px */\n --cf-text-base: 1rem; /* 16px */\n --cf-text-lg: 1.125rem; /* 18px */\n --cf-text-xl: 1.25rem; /* 20px */\n --cf-text-2xl: 1.5rem; /* 24px */\n --cf-text-3xl: 2rem; /* 32px */\n --cf-text-4xl: 2.75rem; /* 44px */\n\n /* font-weight */\n --cf-font-light: 300;\n --cf-font-normal: 400;\n --cf-font-medium: 500;\n --cf-font-semibold: 600;\n --cf-font-bold: 700;\n --cf-font-extra-bold: 800;\n --cf-font-black: 900;\n\n /* border-radius */\n --cf-border-radius-none: 0px; /* none */\n --cf-border-radius-sm: 0.125rem; /* 2px */\n --cf-border-radius: 0.25rem; /* 4px */\n --cf-border-radius-md: 0.375rem; /* 6px */\n --cf-border-radius-lg: 0.5rem; /* 8px */\n --cf-border-radius-xl: 0.75rem; /* 12px */\n --cf-border-radius-2xl: 1rem; /* 16px */\n --cf-border-radius-3xl: 1.5rem; /* 24px */\n --cf-border-radius-full: 9999px; /* full */\n\n /* font-family */\n --cf-font-family-sans: Archivo, Helvetica, Arial, sans-serif;\n --cf-font-family-serif: Georgia, Cambria, Times New Roman, Times, serif;\n\n /* max widths */\n --cf-max-width-full: 100%;\n\n /* component specific colors */\n --cf-button-bg: var(--cf-color-black);\n --cf-button-color: var(--cf-color-white);\n --cf-text-color: var(--cf-color-black);\n}\n\ndiv.cf-placeholder-wrapper {\n /* Required for the absolute positioned icon to render in the center */\n position: relative;\n}\n\nimg.cf-placeholder-image {\n background-color: var(--cf-color-gray100);\n outline-offset: -2px;\n outline: 2px solid rgba(var(--cf-color-gray400-rgb), 0.5);\n width: 100%;\n height: 100%;\n}\n\nsvg.cf-placeholder-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n height: var(--cf-text-3xl);\n width: var(--cf-text-3xl);\n max-height: 100%;\n max-width: 100%;\n}\n\nsvg.cf-placeholder-icon path {\n fill: var(--cf-color-gray400);\n}\n";
|
|
3367
|
-
styleInject(css_248z$3);
|
|
3368
|
-
|
|
3369
3351
|
/**
|
|
3370
3352
|
* These modes are ONLY intended to be internally used within the context of
|
|
3371
3353
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -3668,7 +3650,7 @@ const THUMBNAIL_IDS = [
|
|
|
3668
3650
|
// TODO: finalize schema structure before release
|
|
3669
3651
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3670
3652
|
const VariableMappingSchema = z.object({
|
|
3671
|
-
|
|
3653
|
+
parameterId: propertyKeySchema,
|
|
3672
3654
|
type: z.literal('ContentTypeMapping'),
|
|
3673
3655
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
3674
3656
|
});
|
|
@@ -3912,9 +3894,6 @@ var VisualEditorMode;
|
|
|
3912
3894
|
VisualEditorMode["InjectScript"] = "injectScript";
|
|
3913
3895
|
})(VisualEditorMode || (VisualEditorMode = {}));
|
|
3914
3896
|
|
|
3915
|
-
var css_248z$2$1 = ".contentful-container {\n position: relative;\n display: flex;\n pointer-events: all;\n}\n\n.contentful-container::-webkit-scrollbar {\n display: none; /* Safari and Chrome */\n}\n\n.cf-single-column-wrapper {\n position: relative;\n}\n\n.cf-container-wrapper {\n position: relative;\n width: 100%;\n}\n\n.contentful-container:after {\n content: '';\n display: block;\n position: absolute;\n pointer-events: none;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-x: clip;\n font-family: var(--exp-builder-font-stack-primary);\n font-size: 12px;\n color: var(--exp-builder-gray400);\n z-index: 1;\n}\n\n.contentful-section-label:after {\n content: 'Section';\n}\n\n.contentful-container-label:after {\n content: 'Container';\n}\n\n/* used by ContentfulSectionAsHyperlink.tsx */\n\n.contentful-container-link,\n.contentful-container-link:active,\n.contentful-container-link:visited,\n.contentful-container-link:hover,\n.contentful-container-link:read-write,\n.contentful-container-link:focus-visible {\n color: inherit;\n text-decoration: unset;\n outline: unset;\n}\n";
|
|
3916
|
-
styleInject(css_248z$2$1);
|
|
3917
|
-
|
|
3918
3897
|
const Flex = forwardRef(({ id, children, onMouseEnter, onMouseUp, onMouseLeave, onMouseDown, onClick, flex, flexBasis, flexShrink, flexDirection, gap, justifyContent, justifyItems, justifySelf, alignItems, alignSelf, alignContent, order, flexWrap, flexGrow, className, cssStyles, ...props }, ref) => {
|
|
3919
3898
|
return (React.createElement("div", { id: id, ref: ref, style: {
|
|
3920
3899
|
display: 'flex',
|
|
@@ -3937,12 +3916,6 @@ const Flex = forwardRef(({ id, children, onMouseEnter, onMouseUp, onMouseLeave,
|
|
|
3937
3916
|
});
|
|
3938
3917
|
Flex.displayName = 'Flex';
|
|
3939
3918
|
|
|
3940
|
-
var css_248z$1$1 = ".cf-divider {\n display: contents;\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.cf-divider hr {\n border: none;\n}\n\n/* For the editor mode add this 10px tolerance to make it easier picking up the divider component.\n * Using the DND zone as precondition makes sure that we don't render this pseudo element in delivery. */\n\n[data-ctfl-zone-id='root'] .cf-divider::before {\n content: \"\";\n position: absolute;\n top: -5px;\n left: -5px;\n bottom: -5px;\n right: -5px;\n pointer-events: all;\n}\n";
|
|
3941
|
-
styleInject(css_248z$1$1);
|
|
3942
|
-
|
|
3943
|
-
var css_248z$9 = ".cf-columns {\n display: flex;\n gap: 24px;\n grid-template-columns: repeat(12, 1fr);\n flex-direction: column;\n min-height: 0; /* NEW */\n min-width: 0; /* NEW; needed for Firefox */\n}\n\n@media (min-width: 768px) {\n .cf-columns {\n display: grid;\n }\n}\n\n.cf-single-column-wrapper {\n position: relative;\n display: flex;\n}\n\n.cf-single-column {\n pointer-events: all;\n}\n\n.cf-single-column-wrapper:after {\n content: '';\n display: block;\n position: absolute;\n pointer-events: none;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-x: clip;\n font-family: var(--exp-builder-font-stack-primary);\n font-size: 12px;\n color: var(--exp-builder-gray400);\n z-index: 1;\n}\n\n.cf-single-column-label:after {\n content: 'Column';\n}\n";
|
|
3944
|
-
styleInject(css_248z$9);
|
|
3945
|
-
|
|
3946
3919
|
const ColumnWrapper = forwardRef((props, ref) => {
|
|
3947
3920
|
return (React.createElement("div", { ref: ref, ...props, style: {
|
|
3948
3921
|
...(props.style || {}),
|