@contentful/experiences-visual-editor-react 1.42.0-prerelease-20250620T1900-059481b.0 → 1.42.0-prerelease-20250625T0902-d9db401.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 +40 -59
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +40 -59
- 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$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";
|
|
16
|
+
styleInject(css_248z$4);
|
|
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
|
|
728
|
+
const PatternPropertiesSchema$1 = z.record(propertyKeySchema$1, PatternPropertySchema$1);
|
|
729
729
|
const BreakpointSchema$1 = z
|
|
730
730
|
.object({
|
|
731
731
|
id: propertyKeySchema$1,
|
|
@@ -742,7 +742,7 @@ const BaseComponentTreeNodeSchema$1 = z.object({
|
|
|
742
742
|
displayName: z.string().optional(),
|
|
743
743
|
slotId: z.string().optional(),
|
|
744
744
|
variables: z.record(propertyKeySchema$1, ComponentPropertyValueSchema$1),
|
|
745
|
-
|
|
745
|
+
patternProperties: PatternPropertiesSchema$1.optional(),
|
|
746
746
|
});
|
|
747
747
|
const ComponentVariableSchema$1 = z.object({
|
|
748
748
|
displayName: z.string().optional(),
|
|
@@ -811,21 +811,25 @@ 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
|
+
patternPropertyDefinitionId: propertyKeySchema$1,
|
|
815
815
|
type: z.literal('ContentTypeMapping'),
|
|
816
816
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
817
817
|
});
|
|
818
818
|
// TODO: finalize schema structure before release
|
|
819
819
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
820
|
-
const
|
|
821
|
-
|
|
822
|
-
.
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
820
|
+
const PatternPropertyDefinitionSchema$1 = z.object({
|
|
821
|
+
defaultSource: z
|
|
822
|
+
.strictObject({
|
|
823
|
+
type: z.enum(['Entry']),
|
|
824
|
+
contentTypeId: z.string(),
|
|
825
|
+
link: z.strictObject({
|
|
826
|
+
sys: z.strictObject({
|
|
827
|
+
type: z.literal('Link'),
|
|
828
|
+
id: z.string(),
|
|
829
|
+
linkType: z.enum(['Entry']),
|
|
830
|
+
}),
|
|
827
831
|
}),
|
|
828
|
-
})
|
|
832
|
+
})
|
|
829
833
|
.optional(),
|
|
830
834
|
contentTypes: z.record(z.string(), z.object({
|
|
831
835
|
sys: z.object({
|
|
@@ -835,7 +839,7 @@ const ParameterDefinitionSchema$1 = z.object({
|
|
|
835
839
|
}),
|
|
836
840
|
})),
|
|
837
841
|
});
|
|
838
|
-
const
|
|
842
|
+
const PatternPropertyDefinitionsSchema$1 = z.record(propertyKeySchema$1, PatternPropertyDefinitionSchema$1);
|
|
839
843
|
const VariableMappingsSchema$1 = z.record(propertyKeySchema$1, VariableMappingSchema$1);
|
|
840
844
|
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
|
|
841
845
|
ComponentVariableSchema$1);
|
|
@@ -844,7 +848,7 @@ const ComponentSettingsSchema$1 = z.object({
|
|
|
844
848
|
thumbnailId: z.enum(THUMBNAIL_IDS$1).optional(),
|
|
845
849
|
category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
|
|
846
850
|
variableMappings: VariableMappingsSchema$1.optional(),
|
|
847
|
-
|
|
851
|
+
patternPropertyDefinitions: PatternPropertyDefinitionsSchema$1.optional(),
|
|
848
852
|
});
|
|
849
853
|
z.object({
|
|
850
854
|
componentTree: localeWrapper$1(ComponentTreeSchema$1),
|
|
@@ -3162,9 +3166,9 @@ const cloneDeepAsPOJO = (obj) => {
|
|
|
3162
3166
|
return JSON.parse(JSON.stringify(obj));
|
|
3163
3167
|
};
|
|
3164
3168
|
|
|
3165
|
-
var css_248z$
|
|
3169
|
+
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";
|
|
3166
3170
|
var styles$3 = {"hitbox":"render-module_hitbox__l4ysJ","hitboxLower":"render-module_hitboxLower__tgsA1","canvasBottomSpacer":"render-module_canvasBottomSpacer__JuxVh","container":"render-module_container__-C3d7"};
|
|
3167
|
-
styleInject(css_248z$
|
|
3171
|
+
styleInject(css_248z$3);
|
|
3168
3172
|
|
|
3169
3173
|
// TODO: In order to support integrations without React, we should extract this heavy logic into simple
|
|
3170
3174
|
// functions that we can reuse in other frameworks.
|
|
@@ -3331,9 +3335,6 @@ const useEditorStore = create((set, get) => ({
|
|
|
3331
3335
|
},
|
|
3332
3336
|
}));
|
|
3333
3337
|
|
|
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
|
-
|
|
3337
3338
|
/**
|
|
3338
3339
|
* These modes are ONLY intended to be internally used within the context of
|
|
3339
3340
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -3351,21 +3352,6 @@ var PostMessageMethods$1;
|
|
|
3351
3352
|
PostMessageMethods["REQUESTED_ENTITIES"] = "REQUESTED_ENTITIES";
|
|
3352
3353
|
})(PostMessageMethods$1 || (PostMessageMethods$1 = {}));
|
|
3353
3354
|
|
|
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
|
-
|
|
3369
3355
|
/**
|
|
3370
3356
|
* These modes are ONLY intended to be internally used within the context of
|
|
3371
3357
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -3578,11 +3564,11 @@ const ComponentPropertyValueSchema = z.discriminatedUnion('type', [
|
|
|
3578
3564
|
]);
|
|
3579
3565
|
// TODO: finalize schema structure before release
|
|
3580
3566
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3581
|
-
const
|
|
3567
|
+
const PatternPropertySchema = z.object({
|
|
3582
3568
|
type: z.literal('BoundValue'),
|
|
3583
3569
|
path: z.string(),
|
|
3584
3570
|
});
|
|
3585
|
-
const
|
|
3571
|
+
const PatternPropertiesSchema = z.record(propertyKeySchema, PatternPropertySchema);
|
|
3586
3572
|
const BreakpointSchema = z
|
|
3587
3573
|
.object({
|
|
3588
3574
|
id: propertyKeySchema,
|
|
@@ -3599,7 +3585,7 @@ const BaseComponentTreeNodeSchema = z.object({
|
|
|
3599
3585
|
displayName: z.string().optional(),
|
|
3600
3586
|
slotId: z.string().optional(),
|
|
3601
3587
|
variables: z.record(propertyKeySchema, ComponentPropertyValueSchema),
|
|
3602
|
-
|
|
3588
|
+
patternProperties: PatternPropertiesSchema.optional(),
|
|
3603
3589
|
});
|
|
3604
3590
|
const ComponentVariableSchema = z.object({
|
|
3605
3591
|
displayName: z.string().optional(),
|
|
@@ -3668,21 +3654,25 @@ const THUMBNAIL_IDS = [
|
|
|
3668
3654
|
// TODO: finalize schema structure before release
|
|
3669
3655
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3670
3656
|
const VariableMappingSchema = z.object({
|
|
3671
|
-
|
|
3657
|
+
patternPropertyDefinitionId: propertyKeySchema,
|
|
3672
3658
|
type: z.literal('ContentTypeMapping'),
|
|
3673
3659
|
pathsByContentType: z.record(z.string(), z.object({ path: z.string() })),
|
|
3674
3660
|
});
|
|
3675
3661
|
// TODO: finalize schema structure before release
|
|
3676
3662
|
// https://contentful.atlassian.net/browse/LUMOS-523
|
|
3677
|
-
const
|
|
3678
|
-
|
|
3679
|
-
.
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3663
|
+
const PatternPropertyDefinitionSchema = z.object({
|
|
3664
|
+
defaultSource: z
|
|
3665
|
+
.strictObject({
|
|
3666
|
+
type: z.enum(['Entry']),
|
|
3667
|
+
contentTypeId: z.string(),
|
|
3668
|
+
link: z.strictObject({
|
|
3669
|
+
sys: z.strictObject({
|
|
3670
|
+
type: z.literal('Link'),
|
|
3671
|
+
id: z.string(),
|
|
3672
|
+
linkType: z.enum(['Entry']),
|
|
3673
|
+
}),
|
|
3684
3674
|
}),
|
|
3685
|
-
})
|
|
3675
|
+
})
|
|
3686
3676
|
.optional(),
|
|
3687
3677
|
contentTypes: z.record(z.string(), z.object({
|
|
3688
3678
|
sys: z.object({
|
|
@@ -3692,7 +3682,7 @@ const ParameterDefinitionSchema = z.object({
|
|
|
3692
3682
|
}),
|
|
3693
3683
|
})),
|
|
3694
3684
|
});
|
|
3695
|
-
const
|
|
3685
|
+
const PatternPropertyDefinitionsSchema = z.record(propertyKeySchema, PatternPropertyDefinitionSchema);
|
|
3696
3686
|
const VariableMappingsSchema = z.record(propertyKeySchema, VariableMappingSchema);
|
|
3697
3687
|
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
|
|
3698
3688
|
ComponentVariableSchema);
|
|
@@ -3701,7 +3691,7 @@ const ComponentSettingsSchema = z.object({
|
|
|
3701
3691
|
thumbnailId: z.enum(THUMBNAIL_IDS).optional(),
|
|
3702
3692
|
category: z.string().max(50, 'Category must contain at most 50 characters').optional(),
|
|
3703
3693
|
variableMappings: VariableMappingsSchema.optional(),
|
|
3704
|
-
|
|
3694
|
+
patternPropertyDefinitions: PatternPropertyDefinitionsSchema.optional(),
|
|
3705
3695
|
});
|
|
3706
3696
|
z.object({
|
|
3707
3697
|
componentTree: localeWrapper(ComponentTreeSchema),
|
|
@@ -3912,9 +3902,6 @@ var VisualEditorMode;
|
|
|
3912
3902
|
VisualEditorMode["InjectScript"] = "injectScript";
|
|
3913
3903
|
})(VisualEditorMode || (VisualEditorMode = {}));
|
|
3914
3904
|
|
|
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
|
-
|
|
3918
3905
|
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) => {
|
|
3919
3906
|
return (React.createElement("div", { id: id, ref: ref, style: {
|
|
3920
3907
|
display: 'flex',
|
|
@@ -3937,12 +3924,6 @@ const Flex = forwardRef(({ id, children, onMouseEnter, onMouseUp, onMouseLeave,
|
|
|
3937
3924
|
});
|
|
3938
3925
|
Flex.displayName = 'Flex';
|
|
3939
3926
|
|
|
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
|
-
|
|
3946
3927
|
const ColumnWrapper = forwardRef((props, ref) => {
|
|
3947
3928
|
return (React.createElement("div", { ref: ref, ...props, style: {
|
|
3948
3929
|
...(props.style || {}),
|