@contentful/experiences-visual-editor-react 1.42.0-beta.0 → 1.42.0-dev-20250617T0920-3f313ab.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 PatternPropertiesSchema$1 = z.record(propertyKeySchema$1, PatternPropertySchema$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
- parameters: ParametersSchema$1.optional(),
43366
+ patternProperties: PatternPropertiesSchema$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
- parameterId: propertyKeySchema$1,
43435
+ patternPropertyDefinitionId: 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 ParameterDefinitionSchema$1 = z.object({
43441
+ const PatternPropertyDefinitionSchema$1 = z.object({
43442
43442
  defaultValue: z
43443
43443
  .record(z.string(), z.object({
43444
43444
  sys: z.object({
@@ -43456,7 +43456,7 @@ const ParameterDefinitionSchema$1 = z.object({
43456
43456
  }),
43457
43457
  })),
43458
43458
  });
43459
- const ParameterDefinitionsSchema$1 = z.record(propertyKeySchema$1, ParameterDefinitionSchema$1);
43459
+ const PatternPropertyDefinitionsSchema$1 = z.record(propertyKeySchema$1, PatternPropertyDefinitionSchema$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
- parameterDefinitions: ParameterDefinitionsSchema$1.optional(),
43468
+ patternPropertyDefinitions: PatternPropertyDefinitionsSchema$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$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";
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$3);
56855
+ styleInject(css_248z$a);
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,6 +58245,9 @@ 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
+
58248
58251
  /**
58249
58252
  * These modes are ONLY intended to be internally used within the context of
58250
58253
  * editing an experience inside of Contentful Studio. i.e. these modes
@@ -58262,6 +58265,21 @@ var PostMessageMethods$1;
58262
58265
  PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
58263
58266
  })(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
58264
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
+
58265
58283
  /**
58266
58284
  * These modes are ONLY intended to be internally used within the context of
58267
58285
  * editing an experience inside of Contentful Studio. i.e. these modes
@@ -58474,11 +58492,11 @@ const ComponentPropertyValueSchema = z.discriminatedUnion('type', [
58474
58492
  ]);
58475
58493
  // TODO: finalize schema structure before release
58476
58494
  // https://contentful.atlassian.net/browse/LUMOS-523
58477
- const ParameterSchema = z.object({
58495
+ const PatternPropertySchema = z.object({
58478
58496
  type: z.literal('BoundValue'),
58479
58497
  path: z.string(),
58480
58498
  });
58481
- const ParametersSchema = z.record(propertyKeySchema, ParameterSchema);
58499
+ const PatternPropertiesSchema = z.record(propertyKeySchema, PatternPropertySchema);
58482
58500
  const BreakpointSchema = z
58483
58501
  .object({
58484
58502
  id: propertyKeySchema,
@@ -58495,7 +58513,7 @@ const BaseComponentTreeNodeSchema = z.object({
58495
58513
  displayName: z.string().optional(),
58496
58514
  slotId: z.string().optional(),
58497
58515
  variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),
58498
- parameters: ParametersSchema.optional(),
58516
+ patternProperties: PatternPropertiesSchema.optional(),
58499
58517
  });
58500
58518
  const ComponentVariableSchema = z.object({
58501
58519
  displayName: z.string().optional(),
@@ -58564,13 +58582,13 @@ const THUMBNAIL_IDS = [
58564
58582
  // TODO: finalize schema structure before release
58565
58583
  // https://contentful.atlassian.net/browse/LUMOS-523
58566
58584
  const VariableMappingSchema = z.object({
58567
- parameterId: propertyKeySchema,
58585
+ patternPropertyDefinitionId: propertyKeySchema,
58568
58586
  type: z.literal('ContentTypeMapping'),
58569
58587
  pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
58570
58588
  });
58571
58589
  // TODO: finalize schema structure before release
58572
58590
  // https://contentful.atlassian.net/browse/LUMOS-523
58573
- const ParameterDefinitionSchema = z.object({
58591
+ const PatternPropertyDefinitionSchema = z.object({
58574
58592
  defaultValue: z
58575
58593
  .record(z.string(), z.object({
58576
58594
  sys: z.object({
@@ -58588,7 +58606,7 @@ const ParameterDefinitionSchema = z.object({
58588
58606
  }),
58589
58607
  })),
58590
58608
  });
58591
- const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);
58609
+ const PatternPropertyDefinitionsSchema = z.record(propertyKeySchema, PatternPropertyDefinitionSchema);
58592
58610
  const VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);
58593
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
58594
58612
  ComponentVariableSchema);
@@ -58597,7 +58615,7 @@ const ComponentSettingsSchema = z.object({
58597
58615
  thumbnailId: z.enum(THUMBNAIL_IDS).optional(),
58598
58616
  category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
58599
58617
  variableMappings: VariableMappingsSchema.optional(),
58600
- parameterDefinitions: ParameterDefinitionsSchema.optional(),
58618
+ patternPropertyDefinitions: PatternPropertyDefinitionsSchema.optional(),
58601
58619
  });
58602
58620
  z.object({
58603
58621
  componentTree: localeWrapper(ComponentTreeSchema),
@@ -58808,6 +58826,9 @@ var VisualEditorMode;
58808
58826
  VisualEditorMode["InjectScript"] = "injectScript";
58809
58827
  })(VisualEditorMode || (VisualEditorMode = {}));
58810
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
+
58811
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) => {
58812
58833
  return (React$1.createElement("div", { id: id, ref: ref, style: {
58813
58834
  display: 'flex',
@@ -58830,6 +58851,12 @@ const Flex = reactExports.forwardRef(({ id, children, onMouseEnter, onMouseUp, o
58830
58851
  });
58831
58852
  Flex.displayName = 'Flex';
58832
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
+
58833
58860
  const ColumnWrapper = reactExports.forwardRef((props, ref) => {
58834
58861
  return (React$1.createElement("div", { ref: ref, ...props, style: {
58835
58862
  ...(props.style || {}),