@contentful/experiences-visual-editor-react 1.42.0-dev-20250630T1149-4da2e67.0 → 1.42.0-prerelease-20250620T0958-8e54295.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 +51 -32
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +51 -32
- package/dist/renderApp.js.map +1 -1
- package/package.json +4 -4
package/dist/renderApp.js
CHANGED
|
@@ -37,8 +37,8 @@ function styleInject(css, ref) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
var css_248z$
|
|
41
|
-
styleInject(css_248z$
|
|
40
|
+
var css_248z$b = "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";
|
|
41
|
+
styleInject(css_248z$b);
|
|
42
42
|
|
|
43
43
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
44
44
|
|
|
@@ -43342,11 +43342,11 @@ const ComponentPropertyValueSchema$1 = z.discriminatedUnion('type', [
|
|
|
43342
43342
|
]);
|
|
43343
43343
|
// TODO: finalize schema structure before release
|
|
43344
43344
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
43345
|
-
const
|
|
43345
|
+
const PatternPropertySchema$1 = z.object({
|
|
43346
43346
|
type: z.literal('BoundValue'),
|
|
43347
43347
|
path: z.string(),
|
|
43348
43348
|
});
|
|
43349
|
-
const ParametersSchema$1 = z.record(propertyKeySchema$1,
|
|
43349
|
+
const ParametersSchema$1 = z.record(propertyKeySchema$1, PatternPropertySchema$1);
|
|
43350
43350
|
const BreakpointSchema$1 = z
|
|
43351
43351
|
.object({
|
|
43352
43352
|
id: propertyKeySchema$1,
|
|
@@ -43432,25 +43432,21 @@ const THUMBNAIL_IDS$1 = [
|
|
|
43432
43432
|
// TODO: finalize schema structure before release
|
|
43433
43433
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
43434
43434
|
const VariableMappingSchema$1 = z.object({
|
|
43435
|
-
|
|
43435
|
+
parameterDefinitionId: propertyKeySchema$1,
|
|
43436
43436
|
type: z.literal('ContentTypeMapping'),
|
|
43437
43437
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
43438
43438
|
});
|
|
43439
43439
|
// TODO: finalize schema structure before release
|
|
43440
43440
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
43441
43441
|
const ParameterDefinitionSchema$1 = z.object({
|
|
43442
|
-
|
|
43443
|
-
.
|
|
43444
|
-
|
|
43445
|
-
|
|
43446
|
-
|
|
43447
|
-
|
|
43448
|
-
type: z.literal('Link'),
|
|
43449
|
-
id: z.string(),
|
|
43450
|
-
linkType: z.enum(['Entry']),
|
|
43451
|
-
}),
|
|
43442
|
+
defaultValue: z
|
|
43443
|
+
.record(z.string(), z.object({
|
|
43444
|
+
sys: z.object({
|
|
43445
|
+
type: z.literal('Link'),
|
|
43446
|
+
id: z.string(),
|
|
43447
|
+
linkType: z.enum(['Entry']),
|
|
43452
43448
|
}),
|
|
43453
|
-
})
|
|
43449
|
+
}))
|
|
43454
43450
|
.optional(),
|
|
43455
43451
|
contentTypes: z.record(z.string(), z.object({
|
|
43456
43452
|
sys: z.object({
|
|
@@ -56854,9 +56850,9 @@ const cloneDeepAsPOJO = (obj) => {
|
|
|
56854
56850
|
return JSON.parse(JSON.stringify(obj));
|
|
56855
56851
|
};
|
|
56856
56852
|
|
|
56857
|
-
var css_248z$
|
|
56853
|
+
var css_248z$a = ".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";
|
|
56858
56854
|
var styles$3 = {"hitbox":"render-module_hitbox__l4ysJ","hitboxLower":"render-module_hitboxLower__tgsA1","canvasBottomSpacer":"render-module_canvasBottomSpacer__JuxVh","container":"render-module_container__-C3d7"};
|
|
56859
|
-
styleInject(css_248z$
|
|
56855
|
+
styleInject(css_248z$a);
|
|
56860
56856
|
|
|
56861
56857
|
// TODO: In order to support integrations without React, we should extract this heavy logic into simple
|
|
56862
56858
|
// functions that we can reuse in other frameworks.
|
|
@@ -58249,6 +58245,9 @@ function getSchemaWithNodeType(nodeType) {
|
|
|
58249
58245
|
|
|
58250
58246
|
} (dist));
|
|
58251
58247
|
|
|
58248
|
+
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";
|
|
58249
|
+
styleInject(css_248z$8);
|
|
58250
|
+
|
|
58252
58251
|
/**
|
|
58253
58252
|
* These modes are ONLY intended to be internally used within the context of
|
|
58254
58253
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -58266,6 +58265,21 @@ var PostMessageMethods$1;
|
|
|
58266
58265
|
PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
|
|
58267
58266
|
})(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
|
|
58268
58267
|
|
|
58268
|
+
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";
|
|
58269
|
+
styleInject(css_248z$7);
|
|
58270
|
+
|
|
58271
|
+
var css_248z$6 = ".cf-heading {\n white-space: pre-line;\n}\n";
|
|
58272
|
+
styleInject(css_248z$6);
|
|
58273
|
+
|
|
58274
|
+
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";
|
|
58275
|
+
styleInject(css_248z$5);
|
|
58276
|
+
|
|
58277
|
+
var css_248z$4 = ".cf-text {\n white-space: pre-line;\n}\n\n.cf-text-link .cf-text {\n margin: 0;\n}\n";
|
|
58278
|
+
styleInject(css_248z$4);
|
|
58279
|
+
|
|
58280
|
+
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";
|
|
58281
|
+
styleInject(css_248z$3);
|
|
58282
|
+
|
|
58269
58283
|
/**
|
|
58270
58284
|
* These modes are ONLY intended to be internally used within the context of
|
|
58271
58285
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -58478,11 +58492,11 @@ const ComponentPropertyValueSchema = z.discriminatedUnion('type', [
|
|
|
58478
58492
|
]);
|
|
58479
58493
|
// TODO: finalize schema structure before release
|
|
58480
58494
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
58481
|
-
const
|
|
58495
|
+
const PatternPropertySchema = z.object({
|
|
58482
58496
|
type: z.literal('BoundValue'),
|
|
58483
58497
|
path: z.string(),
|
|
58484
58498
|
});
|
|
58485
|
-
const ParametersSchema = z.record(propertyKeySchema,
|
|
58499
|
+
const ParametersSchema = z.record(propertyKeySchema, PatternPropertySchema);
|
|
58486
58500
|
const BreakpointSchema = z
|
|
58487
58501
|
.object({
|
|
58488
58502
|
id: propertyKeySchema,
|
|
@@ -58568,25 +58582,21 @@ const THUMBNAIL_IDS = [
|
|
|
58568
58582
|
// TODO: finalize schema structure before release
|
|
58569
58583
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
58570
58584
|
const VariableMappingSchema = z.object({
|
|
58571
|
-
|
|
58585
|
+
parameterDefinitionId: propertyKeySchema,
|
|
58572
58586
|
type: z.literal('ContentTypeMapping'),
|
|
58573
58587
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
58574
58588
|
});
|
|
58575
58589
|
// TODO: finalize schema structure before release
|
|
58576
58590
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
58577
58591
|
const ParameterDefinitionSchema = z.object({
|
|
58578
|
-
|
|
58579
|
-
.
|
|
58580
|
-
|
|
58581
|
-
|
|
58582
|
-
|
|
58583
|
-
|
|
58584
|
-
type: z.literal('Link'),
|
|
58585
|
-
id: z.string(),
|
|
58586
|
-
linkType: z.enum(['Entry']),
|
|
58587
|
-
}),
|
|
58592
|
+
defaultValue: z
|
|
58593
|
+
.record(z.string(), z.object({
|
|
58594
|
+
sys: z.object({
|
|
58595
|
+
type: z.literal('Link'),
|
|
58596
|
+
id: z.string(),
|
|
58597
|
+
linkType: z.enum(['Entry']),
|
|
58588
58598
|
}),
|
|
58589
|
-
})
|
|
58599
|
+
}))
|
|
58590
58600
|
.optional(),
|
|
58591
58601
|
contentTypes: z.record(z.string(), z.object({
|
|
58592
58602
|
sys: z.object({
|
|
@@ -58816,6 +58826,9 @@ var VisualEditorMode;
|
|
|
58816
58826
|
VisualEditorMode["InjectScript"] = "injectScript";
|
|
58817
58827
|
})(VisualEditorMode || (VisualEditorMode = {}));
|
|
58818
58828
|
|
|
58829
|
+
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";
|
|
58830
|
+
styleInject(css_248z$2$1);
|
|
58831
|
+
|
|
58819
58832
|
const Flex = reactExports.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) => {
|
|
58820
58833
|
return (React$1.createElement("div", { id: id, ref: ref, style: {
|
|
58821
58834
|
display: 'flex',
|
|
@@ -58838,6 +58851,12 @@ const Flex = reactExports.forwardRef(({ id, children, onMouseEnter, onMouseUp, o
|
|
|
58838
58851
|
});
|
|
58839
58852
|
Flex.displayName = 'Flex';
|
|
58840
58853
|
|
|
58854
|
+
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";
|
|
58855
|
+
styleInject(css_248z$1$1);
|
|
58856
|
+
|
|
58857
|
+
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";
|
|
58858
|
+
styleInject(css_248z$9);
|
|
58859
|
+
|
|
58841
58860
|
const ColumnWrapper = reactExports.forwardRef((props, ref) => {
|
|
58842
58861
|
return (React$1.createElement("div", { ref: ref, ...props, style: {
|
|
58843
58862
|
...(props.style || {}),
|