@contentful/experiences-visual-editor-react 1.41.1-dev-20250616T1604-5af1e75.0 → 1.42.0-beta.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 +18 -45
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +18 -45
- 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$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";
|
|
41
|
+
styleInject(css_248z$4);
|
|
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 ParameterSchema$1 = z.object({
|
|
43346
43346
|
type: z.literal('BoundValue'),
|
|
43347
43347
|
path: z.string(),
|
|
43348
43348
|
});
|
|
43349
|
-
const
|
|
43349
|
+
const ParametersSchema$1 = z.record(propertyKeySchema$1, ParameterSchema$1);
|
|
43350
43350
|
const BreakpointSchema$1 = z
|
|
43351
43351
|
.object({
|
|
43352
43352
|
id: propertyKeySchema$1,
|
|
@@ -43363,7 +43363,7 @@ const BaseComponentTreeNodeSchema$1 = z.object({
|
|
|
43363
43363
|
displayName: z.string().optional(),
|
|
43364
43364
|
slotId: z.string().optional(),
|
|
43365
43365
|
variables: z.record(propertyKeySchema$1, ComponentPropertyValueSchema$1),
|
|
43366
|
-
|
|
43366
|
+
parameters: ParametersSchema$1.optional(),
|
|
43367
43367
|
});
|
|
43368
43368
|
const ComponentVariableSchema$1 = z.object({
|
|
43369
43369
|
displayName: z.string().optional(),
|
|
@@ -43432,13 +43432,13 @@ 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
|
+
parameterId: 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
|
-
const
|
|
43441
|
+
const ParameterDefinitionSchema$1 = z.object({
|
|
43442
43442
|
defaultValue: z
|
|
43443
43443
|
.record(z.string(), z.object({
|
|
43444
43444
|
sys: z.object({
|
|
@@ -43456,7 +43456,7 @@ const PatternPropertyDefinitionSchema$1 = z.object({
|
|
|
43456
43456
|
}),
|
|
43457
43457
|
})),
|
|
43458
43458
|
});
|
|
43459
|
-
const
|
|
43459
|
+
const ParameterDefinitionsSchema$1 = z.record(propertyKeySchema$1, ParameterDefinitionSchema$1);
|
|
43460
43460
|
const VariableMappingsSchema$1 = z.record(propertyKeySchema$1, VariableMappingSchema$1);
|
|
43461
43461
|
const ComponentVariablesSchema$1 = z.record(z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length
|
|
43462
43462
|
ComponentVariableSchema$1);
|
|
@@ -43465,7 +43465,7 @@ const ComponentSettingsSchema$1 = z.object({
|
|
|
43465
43465
|
thumbnailId: z.enum(THUMBNAIL_IDS$1).optional(),
|
|
43466
43466
|
category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
|
|
43467
43467
|
variableMappings: VariableMappingsSchema$1.optional(),
|
|
43468
|
-
|
|
43468
|
+
parameterDefinitions: ParameterDefinitionsSchema$1.optional(),
|
|
43469
43469
|
});
|
|
43470
43470
|
z.object({
|
|
43471
43471
|
componentTree: localeWrapper$1(ComponentTreeSchema$1),
|
|
@@ -56850,9 +56850,9 @@ const cloneDeepAsPOJO = (obj) => {
|
|
|
56850
56850
|
return JSON.parse(JSON.stringify(obj));
|
|
56851
56851
|
};
|
|
56852
56852
|
|
|
56853
|
-
var css_248z$
|
|
56853
|
+
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";
|
|
56854
56854
|
var styles$3 = {"hitbox":"render-module_hitbox__l4ysJ","hitboxLower":"render-module_hitboxLower__tgsA1","canvasBottomSpacer":"render-module_canvasBottomSpacer__JuxVh","container":"render-module_container__-C3d7"};
|
|
56855
|
-
styleInject(css_248z$
|
|
56855
|
+
styleInject(css_248z$3);
|
|
56856
56856
|
|
|
56857
56857
|
// TODO: In order to support integrations without React, we should extract this heavy logic into simple
|
|
56858
56858
|
// functions that we can reuse in other frameworks.
|
|
@@ -58245,9 +58245,6 @@ function getSchemaWithNodeType(nodeType) {
|
|
|
58245
58245
|
|
|
58246
58246
|
} (dist));
|
|
58247
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
|
-
|
|
58251
58248
|
/**
|
|
58252
58249
|
* These modes are ONLY intended to be internally used within the context of
|
|
58253
58250
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -58265,21 +58262,6 @@ var PostMessageMethods$1;
|
|
|
58265
58262
|
PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
|
|
58266
58263
|
})(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
|
|
58267
58264
|
|
|
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
|
-
|
|
58283
58265
|
/**
|
|
58284
58266
|
* These modes are ONLY intended to be internally used within the context of
|
|
58285
58267
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -58492,11 +58474,11 @@ const ComponentPropertyValueSchema = z.discriminatedUnion('type', [
|
|
|
58492
58474
|
]);
|
|
58493
58475
|
// TODO: finalize schema structure before release
|
|
58494
58476
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
58495
|
-
const
|
|
58477
|
+
const ParameterSchema = z.object({
|
|
58496
58478
|
type: z.literal('BoundValue'),
|
|
58497
58479
|
path: z.string(),
|
|
58498
58480
|
});
|
|
58499
|
-
const
|
|
58481
|
+
const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);
|
|
58500
58482
|
const BreakpointSchema = z
|
|
58501
58483
|
.object({
|
|
58502
58484
|
id: propertyKeySchema,
|
|
@@ -58513,7 +58495,7 @@ const BaseComponentTreeNodeSchema = z.object({
|
|
|
58513
58495
|
displayName: z.string().optional(),
|
|
58514
58496
|
slotId: z.string().optional(),
|
|
58515
58497
|
variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),
|
|
58516
|
-
|
|
58498
|
+
parameters: ParametersSchema.optional(),
|
|
58517
58499
|
});
|
|
58518
58500
|
const ComponentVariableSchema = z.object({
|
|
58519
58501
|
displayName: z.string().optional(),
|
|
@@ -58582,13 +58564,13 @@ const THUMBNAIL_IDS = [
|
|
|
58582
58564
|
// TODO: finalize schema structure before release
|
|
58583
58565
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
58584
58566
|
const VariableMappingSchema = z.object({
|
|
58585
|
-
|
|
58567
|
+
parameterId: propertyKeySchema,
|
|
58586
58568
|
type: z.literal('ContentTypeMapping'),
|
|
58587
58569
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
58588
58570
|
});
|
|
58589
58571
|
// TODO: finalize schema structure before release
|
|
58590
58572
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
58591
|
-
const
|
|
58573
|
+
const ParameterDefinitionSchema = z.object({
|
|
58592
58574
|
defaultValue: z
|
|
58593
58575
|
.record(z.string(), z.object({
|
|
58594
58576
|
sys: z.object({
|
|
@@ -58606,7 +58588,7 @@ const PatternPropertyDefinitionSchema = z.object({
|
|
|
58606
58588
|
}),
|
|
58607
58589
|
})),
|
|
58608
58590
|
});
|
|
58609
|
-
const
|
|
58591
|
+
const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);
|
|
58610
58592
|
const VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);
|
|
58611
58593
|
const ComponentVariablesSchema = z.record(z.string().regex(/^[a-zA-Z0-9-_]{1,54}$/), // Here the key is <variableName>_<nanoidId> so we need to allow for a longer length
|
|
58612
58594
|
ComponentVariableSchema);
|
|
@@ -58615,7 +58597,7 @@ const ComponentSettingsSchema = z.object({
|
|
|
58615
58597
|
thumbnailId: z.enum(THUMBNAIL_IDS).optional(),
|
|
58616
58598
|
category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
|
|
58617
58599
|
variableMappings: VariableMappingsSchema.optional(),
|
|
58618
|
-
|
|
58600
|
+
parameterDefinitions: ParameterDefinitionsSchema.optional(),
|
|
58619
58601
|
});
|
|
58620
58602
|
z.object({
|
|
58621
58603
|
componentTree: localeWrapper(ComponentTreeSchema),
|
|
@@ -58826,9 +58808,6 @@ var VisualEditorMode;
|
|
|
58826
58808
|
VisualEditorMode["InjectScript"] = "injectScript";
|
|
58827
58809
|
})(VisualEditorMode || (VisualEditorMode = {}));
|
|
58828
58810
|
|
|
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
|
-
|
|
58832
58811
|
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) => {
|
|
58833
58812
|
return (React$1.createElement("div", { id: id, ref: ref, style: {
|
|
58834
58813
|
display: 'flex',
|
|
@@ -58851,12 +58830,6 @@ const Flex = reactExports.forwardRef(({ id, children, onMouseEnter, onMouseUp, o
|
|
|
58851
58830
|
});
|
|
58852
58831
|
Flex.displayName = 'Flex';
|
|
58853
58832
|
|
|
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
|
-
|
|
58860
58833
|
const ColumnWrapper = reactExports.forwardRef((props, ref) => {
|
|
58861
58834
|
return (React$1.createElement("div", { ref: ref, ...props, style: {
|
|
58862
58835
|
...(props.style || {}),
|