@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/index.js +63 -74
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +63 -74
- 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$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";
|
|
16
|
+
styleInject(css_248z$b);
|
|
17
17
|
|
|
18
18
|
const INCOMING_EVENTS$1 = {
|
|
19
19
|
RequestEditorMode: 'requestEditorMode',
|
|
@@ -721,11 +721,11 @@ const ComponentPropertyValueSchema$1 = z.discriminatedUnion('type', [
|
|
|
721
721
|
]);
|
|
722
722
|
// TODO: finalize schema structure before release
|
|
723
723
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
724
|
-
const
|
|
724
|
+
const PatternPropertySchema$1 = z.object({
|
|
725
725
|
type: z.literal('BoundValue'),
|
|
726
726
|
path: z.string(),
|
|
727
727
|
});
|
|
728
|
-
const ParametersSchema$1 = z.record(propertyKeySchema$1,
|
|
728
|
+
const ParametersSchema$1 = z.record(propertyKeySchema$1, PatternPropertySchema$1);
|
|
729
729
|
const BreakpointSchema$1 = z
|
|
730
730
|
.object({
|
|
731
731
|
id: propertyKeySchema$1,
|
|
@@ -811,30 +811,21 @@ 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
|
+
parameterDefinitionId: propertyKeySchema$1,
|
|
815
815
|
type: z.literal('ContentTypeMapping'),
|
|
816
816
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
817
817
|
});
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
nodeId: propertyKeySchema$1,
|
|
821
|
-
parameterId: propertyKeySchema$1,
|
|
822
|
-
prebindingId: propertyKeySchema$1,
|
|
823
|
-
})
|
|
824
|
-
.strict();
|
|
818
|
+
// TODO: finalize schema structure before release
|
|
819
|
+
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
825
820
|
const ParameterDefinitionSchema$1 = z.object({
|
|
826
|
-
|
|
827
|
-
.
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
type: z.literal('Link'),
|
|
833
|
-
id: z.string(),
|
|
834
|
-
linkType: z.enum(['Entry']),
|
|
835
|
-
}),
|
|
821
|
+
defaultValue: z
|
|
822
|
+
.record(z.string(), z.object({
|
|
823
|
+
sys: z.object({
|
|
824
|
+
type: z.literal('Link'),
|
|
825
|
+
id: z.string(),
|
|
826
|
+
linkType: z.enum(['Entry']),
|
|
836
827
|
}),
|
|
837
|
-
})
|
|
828
|
+
}))
|
|
838
829
|
.optional(),
|
|
839
830
|
contentTypes: z.record(z.string(), z.object({
|
|
840
831
|
sys: z.object({
|
|
@@ -843,28 +834,18 @@ const ParameterDefinitionSchema$1 = z.object({
|
|
|
843
834
|
linkType: z.enum(['ContentType']),
|
|
844
835
|
}),
|
|
845
836
|
})),
|
|
846
|
-
passToNodes: z.array(PassToNodeSchema$1).optional(),
|
|
847
837
|
});
|
|
848
838
|
const ParameterDefinitionsSchema$1 = z.record(propertyKeySchema$1, ParameterDefinitionSchema$1);
|
|
849
839
|
const VariableMappingsSchema$1 = z.record(propertyKeySchema$1, VariableMappingSchema$1);
|
|
850
840
|
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
|
|
851
841
|
ComponentVariableSchema$1);
|
|
852
|
-
const
|
|
853
|
-
.object({
|
|
854
|
-
id: propertyKeySchema$1,
|
|
855
|
-
parameterDefinitions: ParameterDefinitionsSchema$1,
|
|
856
|
-
variableMappings: VariableMappingsSchema$1.optional(),
|
|
857
|
-
allowedVariableOverrides: z.array(z.string()).optional(),
|
|
858
|
-
})
|
|
859
|
-
.strict();
|
|
860
|
-
const ComponentSettingsSchema$1 = z
|
|
861
|
-
.object({
|
|
842
|
+
const ComponentSettingsSchema$1 = z.object({
|
|
862
843
|
variableDefinitions: ComponentVariablesSchema$1,
|
|
863
844
|
thumbnailId: z.enum(THUMBNAIL_IDS$1).optional(),
|
|
864
845
|
category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
846
|
+
variableMappings: VariableMappingsSchema$1.optional(),
|
|
847
|
+
parameterDefinitions: ParameterDefinitionsSchema$1.optional(),
|
|
848
|
+
});
|
|
868
849
|
z.object({
|
|
869
850
|
componentTree: localeWrapper$1(ComponentTreeSchema$1),
|
|
870
851
|
dataSource: localeWrapper$1(DataSourceSchema$1),
|
|
@@ -3181,9 +3162,9 @@ const cloneDeepAsPOJO = (obj) => {
|
|
|
3181
3162
|
return JSON.parse(JSON.stringify(obj));
|
|
3182
3163
|
};
|
|
3183
3164
|
|
|
3184
|
-
var css_248z$
|
|
3165
|
+
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";
|
|
3185
3166
|
var styles$3 = {"hitbox":"render-module_hitbox__l4ysJ","hitboxLower":"render-module_hitboxLower__tgsA1","canvasBottomSpacer":"render-module_canvasBottomSpacer__JuxVh","container":"render-module_container__-C3d7"};
|
|
3186
|
-
styleInject(css_248z$
|
|
3167
|
+
styleInject(css_248z$a);
|
|
3187
3168
|
|
|
3188
3169
|
// TODO: In order to support integrations without React, we should extract this heavy logic into simple
|
|
3189
3170
|
// functions that we can reuse in other frameworks.
|
|
@@ -3350,6 +3331,9 @@ const useEditorStore = create((set, get) => ({
|
|
|
3350
3331
|
},
|
|
3351
3332
|
}));
|
|
3352
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
|
+
|
|
3353
3337
|
/**
|
|
3354
3338
|
* These modes are ONLY intended to be internally used within the context of
|
|
3355
3339
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -3367,6 +3351,21 @@ var PostMessageMethods$1;
|
|
|
3367
3351
|
PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
|
|
3368
3352
|
})(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
|
|
3369
3353
|
|
|
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
|
+
|
|
3370
3369
|
/**
|
|
3371
3370
|
* These modes are ONLY intended to be internally used within the context of
|
|
3372
3371
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -3579,11 +3578,11 @@ const ComponentPropertyValueSchema = z.discriminatedUnion('type', [
|
|
|
3579
3578
|
]);
|
|
3580
3579
|
// TODO: finalize schema structure before release
|
|
3581
3580
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3582
|
-
const
|
|
3581
|
+
const PatternPropertySchema = z.object({
|
|
3583
3582
|
type: z.literal('BoundValue'),
|
|
3584
3583
|
path: z.string(),
|
|
3585
3584
|
});
|
|
3586
|
-
const ParametersSchema = z.record(propertyKeySchema,
|
|
3585
|
+
const ParametersSchema = z.record(propertyKeySchema, PatternPropertySchema);
|
|
3587
3586
|
const BreakpointSchema = z
|
|
3588
3587
|
.object({
|
|
3589
3588
|
id: propertyKeySchema,
|
|
@@ -3669,30 +3668,21 @@ const THUMBNAIL_IDS = [
|
|
|
3669
3668
|
// TODO: finalize schema structure before release
|
|
3670
3669
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3671
3670
|
const VariableMappingSchema = z.object({
|
|
3672
|
-
|
|
3671
|
+
parameterDefinitionId: propertyKeySchema,
|
|
3673
3672
|
type: z.literal('ContentTypeMapping'),
|
|
3674
3673
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
3675
3674
|
});
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
nodeId: propertyKeySchema,
|
|
3679
|
-
parameterId: propertyKeySchema,
|
|
3680
|
-
prebindingId: propertyKeySchema,
|
|
3681
|
-
})
|
|
3682
|
-
.strict();
|
|
3675
|
+
// TODO: finalize schema structure before release
|
|
3676
|
+
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3683
3677
|
const ParameterDefinitionSchema = z.object({
|
|
3684
|
-
|
|
3685
|
-
.
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
type: z.literal('Link'),
|
|
3691
|
-
id: z.string(),
|
|
3692
|
-
linkType: z.enum(['Entry']),
|
|
3693
|
-
}),
|
|
3678
|
+
defaultValue: z
|
|
3679
|
+
.record(z.string(), z.object({
|
|
3680
|
+
sys: z.object({
|
|
3681
|
+
type: z.literal('Link'),
|
|
3682
|
+
id: z.string(),
|
|
3683
|
+
linkType: z.enum(['Entry']),
|
|
3694
3684
|
}),
|
|
3695
|
-
})
|
|
3685
|
+
}))
|
|
3696
3686
|
.optional(),
|
|
3697
3687
|
contentTypes: z.record(z.string(), z.object({
|
|
3698
3688
|
sys: z.object({
|
|
@@ -3701,28 +3691,18 @@ const ParameterDefinitionSchema = z.object({
|
|
|
3701
3691
|
linkType: z.enum(['ContentType']),
|
|
3702
3692
|
}),
|
|
3703
3693
|
})),
|
|
3704
|
-
passToNodes: z.array(PassToNodeSchema).optional(),
|
|
3705
3694
|
});
|
|
3706
3695
|
const ParameterDefinitionsSchema = z.record(propertyKeySchema, ParameterDefinitionSchema);
|
|
3707
3696
|
const VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);
|
|
3708
3697
|
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
|
|
3709
3698
|
ComponentVariableSchema);
|
|
3710
|
-
const
|
|
3711
|
-
.object({
|
|
3712
|
-
id: propertyKeySchema,
|
|
3713
|
-
parameterDefinitions: ParameterDefinitionsSchema,
|
|
3714
|
-
variableMappings: VariableMappingsSchema.optional(),
|
|
3715
|
-
allowedVariableOverrides: z.array(z.string()).optional(),
|
|
3716
|
-
})
|
|
3717
|
-
.strict();
|
|
3718
|
-
const ComponentSettingsSchema = z
|
|
3719
|
-
.object({
|
|
3699
|
+
const ComponentSettingsSchema = z.object({
|
|
3720
3700
|
variableDefinitions: ComponentVariablesSchema,
|
|
3721
3701
|
thumbnailId: z.enum(THUMBNAIL_IDS).optional(),
|
|
3722
3702
|
category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3703
|
+
variableMappings: VariableMappingsSchema.optional(),
|
|
3704
|
+
parameterDefinitions: ParameterDefinitionsSchema.optional(),
|
|
3705
|
+
});
|
|
3726
3706
|
z.object({
|
|
3727
3707
|
componentTree: localeWrapper(ComponentTreeSchema),
|
|
3728
3708
|
dataSource: localeWrapper(DataSourceSchema),
|
|
@@ -3932,6 +3912,9 @@ var VisualEditorMode;
|
|
|
3932
3912
|
VisualEditorMode["InjectScript"] = "injectScript";
|
|
3933
3913
|
})(VisualEditorMode || (VisualEditorMode = {}));
|
|
3934
3914
|
|
|
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
|
+
|
|
3935
3918
|
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) => {
|
|
3936
3919
|
return (React.createElement("div", { id: id, ref: ref, style: {
|
|
3937
3920
|
display: 'flex',
|
|
@@ -3954,6 +3937,12 @@ const Flex = forwardRef(({ id, children, onMouseEnter, onMouseUp, onMouseLeave,
|
|
|
3954
3937
|
});
|
|
3955
3938
|
Flex.displayName = 'Flex';
|
|
3956
3939
|
|
|
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
|
+
|
|
3957
3946
|
const ColumnWrapper = forwardRef((props, ref) => {
|
|
3958
3947
|
return (React.createElement("div", { ref: ref, ...props, style: {
|
|
3959
3948
|
...(props.style || {}),
|