@contentful/experiences-visual-editor-react 1.42.0-dev-20250630T1405-f8cda11.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/renderApp.js CHANGED
@@ -37,8 +37,8 @@ function styleInject(css, ref) {
37
37
  }
38
38
  }
39
39
 
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);
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 ParameterSchema$1 = z.object({
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, ParameterSchema$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,30 +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
- parameterId: propertyKeySchema$1,
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
- const PassToNodeSchema$1 = z
43440
- .object({
43441
- nodeId: propertyKeySchema$1,
43442
- parameterId: propertyKeySchema$1,
43443
- prebindingId: propertyKeySchema$1,
43444
- })
43445
- .strict();
43439
+ // TODO: finalize schema structure before release
43440
+ // https://contentful.atlassian.net/browse/LUMOS-523
43446
43441
  const ParameterDefinitionSchema$1 = z.object({
43447
- defaultSource: z
43448
- .strictObject({
43449
- type: z.enum(['Entry']),
43450
- contentTypeId: z.string(),
43451
- link: z.strictObject({
43452
- sys: z.strictObject({
43453
- type: z.literal('Link'),
43454
- id: z.string(),
43455
- linkType: z.enum(['Entry']),
43456
- }),
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']),
43457
43448
  }),
43458
- })
43449
+ }))
43459
43450
  .optional(),
43460
43451
  contentTypes: z.record(z.string(), z.object({
43461
43452
  sys: z.object({
@@ -43464,28 +43455,18 @@ const ParameterDefinitionSchema$1 = z.object({
43464
43455
  linkType: z.enum(['ContentType']),
43465
43456
  }),
43466
43457
  })),
43467
- passToNodes: z.array(PassToNodeSchema$1).optional(),
43468
43458
  });
43469
43459
  const ParameterDefinitionsSchema$1 = z.record(propertyKeySchema$1, ParameterDefinitionSchema$1);
43470
43460
  const VariableMappingsSchema$1 = z.record(propertyKeySchema$1, VariableMappingSchema$1);
43471
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
43472
43462
  ComponentVariableSchema$1);
43473
- const PrebindingDefinitionSchema$1 = z
43474
- .object({
43475
- id: propertyKeySchema$1,
43476
- parameterDefinitions: ParameterDefinitionsSchema$1,
43477
- variableMappings: VariableMappingsSchema$1.optional(),
43478
- allowedVariableOverrides: z.array(z.string()).optional(),
43479
- })
43480
- .strict();
43481
- const ComponentSettingsSchema$1 = z
43482
- .object({
43463
+ const ComponentSettingsSchema$1 = z.object({
43483
43464
  variableDefinitions: ComponentVariablesSchema$1,
43484
43465
  thumbnailId: z.enum(THUMBNAIL_IDS$1).optional(),
43485
43466
  category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
43486
- prebindingDefinitions: z.array(PrebindingDefinitionSchema$1).max(1).optional(),
43487
- })
43488
- .strict();
43467
+ variableMappings: VariableMappingsSchema$1.optional(),
43468
+ parameterDefinitions: ParameterDefinitionsSchema$1.optional(),
43469
+ });
43489
43470
  z.object({
43490
43471
  componentTree: localeWrapper$1(ComponentTreeSchema$1),
43491
43472
  dataSource: localeWrapper$1(DataSourceSchema$1),
@@ -56869,9 +56850,9 @@ const cloneDeepAsPOJO = (obj) => {
56869
56850
  return JSON.parse(JSON.stringify(obj));
56870
56851
  };
56871
56852
 
56872
- 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";
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";
56873
56854
  var styles$3 = {"hitbox":"render-module_hitbox__l4ysJ","hitboxLower":"render-module_hitboxLower__tgsA1","canvasBottomSpacer":"render-module_canvasBottomSpacer__JuxVh","container":"render-module_container__-C3d7"};
56874
- styleInject(css_248z$3);
56855
+ styleInject(css_248z$a);
56875
56856
 
56876
56857
  // TODO: In order to support integrations without React, we should extract this heavy logic into simple
56877
56858
  // functions that we can reuse in other frameworks.
@@ -58264,6 +58245,9 @@ function getSchemaWithNodeType(nodeType) {
58264
58245
 
58265
58246
  } (dist));
58266
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
+
58267
58251
  /**
58268
58252
  * These modes are ONLY intended to be internally used within the context of
58269
58253
  * editing an experience inside of Contentful Studio. i.e. these modes
@@ -58281,6 +58265,21 @@ var PostMessageMethods$1;
58281
58265
  PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
58282
58266
  })(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
58283
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
+
58284
58283
  /**
58285
58284
  * These modes are ONLY intended to be internally used within the context of
58286
58285
  * editing an experience inside of Contentful Studio. i.e. these modes
@@ -58493,11 +58492,11 @@ const ComponentPropertyValueSchema = z.discriminatedUnion('type', [
58493
58492
  ]);
58494
58493
  // TODO: finalize schema structure before release
58495
58494
  // https://contentful.atlassian.net/browse/LUMOS-523
58496
- const ParameterSchema = z.object({
58495
+ const PatternPropertySchema = z.object({
58497
58496
  type: z.literal('BoundValue'),
58498
58497
  path: z.string(),
58499
58498
  });
58500
- const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);
58499
+ const ParametersSchema = z.record(propertyKeySchema, PatternPropertySchema);
58501
58500
  const BreakpointSchema = z
58502
58501
  .object({
58503
58502
  id: propertyKeySchema,
@@ -58583,30 +58582,21 @@ const THUMBNAIL_IDS = [
58583
58582
  // TODO: finalize schema structure before release
58584
58583
  // https://contentful.atlassian.net/browse/LUMOS-523
58585
58584
  const VariableMappingSchema = z.object({
58586
- parameterId: propertyKeySchema,
58585
+ parameterDefinitionId: propertyKeySchema,
58587
58586
  type: z.literal('ContentTypeMapping'),
58588
58587
  pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
58589
58588
  });
58590
- const PassToNodeSchema = z
58591
- .object({
58592
- nodeId: propertyKeySchema,
58593
- parameterId: propertyKeySchema,
58594
- prebindingId: propertyKeySchema,
58595
- })
58596
- .strict();
58589
+ // TODO: finalize schema structure before release
58590
+ // https://contentful.atlassian.net/browse/LUMOS-523
58597
58591
  const ParameterDefinitionSchema = z.object({
58598
- defaultSource: z
58599
- .strictObject({
58600
- type: z.enum(['Entry']),
58601
- contentTypeId: z.string(),
58602
- link: z.strictObject({
58603
- sys: z.strictObject({
58604
- type: z.literal('Link'),
58605
- id: z.string(),
58606
- linkType: z.enum(['Entry']),
58607
- }),
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']),
58608
58598
  }),
58609
- })
58599
+ }))
58610
58600
  .optional(),
58611
58601
  contentTypes: z.record(z.string(), z.object({
58612
58602
  sys: z.object({
@@ -58615,28 +58605,18 @@ const ParameterDefinitionSchema = z.object({
58615
58605
  linkType: z.enum(['ContentType']),
58616
58606
  }),
58617
58607
  })),
58618
- passToNodes: z.array(PassToNodeSchema).optional(),
58619
58608
  });
58620
58609
  const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);
58621
58610
  const VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);
58622
58611
  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
58623
58612
  ComponentVariableSchema);
58624
- const PrebindingDefinitionSchema = z
58625
- .object({
58626
- id: propertyKeySchema,
58627
- parameterDefinitions: ParameterDefinitionsSchema,
58628
- variableMappings: VariableMappingsSchema.optional(),
58629
- allowedVariableOverrides: z.array(z.string()).optional(),
58630
- })
58631
- .strict();
58632
- const ComponentSettingsSchema = z
58633
- .object({
58613
+ const ComponentSettingsSchema = z.object({
58634
58614
  variableDefinitions: ComponentVariablesSchema,
58635
58615
  thumbnailId: z.enum(THUMBNAIL_IDS).optional(),
58636
58616
  category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
58637
- prebindingDefinitions: z.array(PrebindingDefinitionSchema).max(1).optional(),
58638
- })
58639
- .strict();
58617
+ variableMappings: VariableMappingsSchema.optional(),
58618
+ parameterDefinitions: ParameterDefinitionsSchema.optional(),
58619
+ });
58640
58620
  z.object({
58641
58621
  componentTree: localeWrapper(ComponentTreeSchema),
58642
58622
  dataSource: localeWrapper(DataSourceSchema),
@@ -58846,6 +58826,9 @@ var VisualEditorMode;
58846
58826
  VisualEditorMode["InjectScript"] = "injectScript";
58847
58827
  })(VisualEditorMode || (VisualEditorMode = {}));
58848
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
+
58849
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) => {
58850
58833
  return (React$1.createElement("div", { id: id, ref: ref, style: {
58851
58834
  display: 'flex',
@@ -58868,6 +58851,12 @@ const Flex = reactExports.forwardRef(({ id, children, onMouseEnter, onMouseUp, o
58868
58851
  });
58869
58852
  Flex.displayName = 'Flex';
58870
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
+
58871
58860
  const ColumnWrapper = reactExports.forwardRef((props, ref) => {
58872
58861
  return (React$1.createElement("div", { ref: ref, ...props, style: {
58873
58862
  ...(props.style || {}),