@contentful/experiences-components-react 2.0.2 → 2.0.3-dev-20250806T1045-216ad42.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.d.ts +30 -85
- package/dist/index.js +37 -79
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { ComponentDefinition, OptimizedImageAsset,
|
|
2
|
-
import React
|
|
1
|
+
import { ComponentDefinition, OptimizedImageAsset, StructureComponentProps, StyleProps } from '@contentful/experiences-core/types';
|
|
2
|
+
import React, { HTMLAttributes } from 'react';
|
|
3
3
|
import { Document } from '@contentful/rich-text-types';
|
|
4
|
-
import { EntityStore } from '@contentful/experiences-core';
|
|
5
4
|
|
|
6
|
-
interface ButtonProps extends React
|
|
5
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
7
6
|
/**
|
|
8
7
|
* The URL to navigate to when the button is clicked. When provided, the button will be wrapped in an anchor tag.
|
|
9
8
|
* @default undefined
|
|
@@ -60,13 +59,13 @@ interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
60
59
|
* <Button>Go</Button>
|
|
61
60
|
* ```
|
|
62
61
|
*/
|
|
63
|
-
children?: React
|
|
62
|
+
children?: React.ReactNode;
|
|
64
63
|
}
|
|
65
|
-
declare const Button: React
|
|
64
|
+
declare const Button: React.FC<ButtonProps>;
|
|
66
65
|
|
|
67
66
|
declare const ButtonComponentDefinition: ComponentDefinition;
|
|
68
67
|
|
|
69
|
-
interface HeadingProps extends React
|
|
68
|
+
interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
70
69
|
/**
|
|
71
70
|
* The text to display in the heading. If not provided, children will be used instead.
|
|
72
71
|
* @default undefined
|
|
@@ -86,7 +85,7 @@ interface HeadingProps extends React$1.HTMLAttributes<HTMLHeadingElement> {
|
|
|
86
85
|
* <Heading>My Heading</Heading>
|
|
87
86
|
* ```
|
|
88
87
|
*/
|
|
89
|
-
children?: React
|
|
88
|
+
children?: React.ReactNode;
|
|
90
89
|
/**
|
|
91
90
|
* The type of heading to render
|
|
92
91
|
* @default h1
|
|
@@ -98,11 +97,11 @@ interface HeadingProps extends React$1.HTMLAttributes<HTMLHeadingElement> {
|
|
|
98
97
|
*/
|
|
99
98
|
type?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
100
99
|
}
|
|
101
|
-
declare const Heading: React
|
|
100
|
+
declare const Heading: React.FC<HeadingProps>;
|
|
102
101
|
|
|
103
102
|
declare const HeadingComponentDefinition: ComponentDefinition;
|
|
104
103
|
|
|
105
|
-
interface RichTextProps extends Omit<React
|
|
104
|
+
interface RichTextProps extends Omit<React.HTMLAttributes<HTMLElement>, 'value'> {
|
|
106
105
|
/**
|
|
107
106
|
* Renders the text in a specific HTML tag.
|
|
108
107
|
* @default p
|
|
@@ -132,11 +131,11 @@ interface RichTextProps extends Omit<React$1.HTMLAttributes<HTMLElement>, 'value
|
|
|
132
131
|
*/
|
|
133
132
|
value: Document;
|
|
134
133
|
}
|
|
135
|
-
declare const RichText: React
|
|
134
|
+
declare const RichText: React.FC<RichTextProps>;
|
|
136
135
|
|
|
137
136
|
declare const RichTextComponentDefinition: ComponentDefinition;
|
|
138
137
|
|
|
139
|
-
interface TextProps extends React
|
|
138
|
+
interface TextProps extends React.HTMLAttributes<HTMLElement> {
|
|
140
139
|
/**
|
|
141
140
|
* The URL to navigate to when the text is clicked. When provided, the text will be wrapped in an anchor tag.
|
|
142
141
|
* @default undefined
|
|
@@ -194,7 +193,7 @@ interface TextProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
194
193
|
* <Text>My Text</Text>
|
|
195
194
|
* ```
|
|
196
195
|
*/
|
|
197
|
-
children?: React
|
|
196
|
+
children?: React.ReactNode;
|
|
198
197
|
/**
|
|
199
198
|
* Renders the text in a specific HTML tag.
|
|
200
199
|
* @default p
|
|
@@ -206,38 +205,24 @@ interface TextProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
206
205
|
*/
|
|
207
206
|
as?: 'p' | 'span' | 'div' | 'label' | 'caption' | 'small' | 'strong' | 'em';
|
|
208
207
|
}
|
|
209
|
-
declare const Text: React
|
|
208
|
+
declare const Text: React.FC<TextProps>;
|
|
210
209
|
|
|
211
210
|
declare const TextComponentDefinition: ComponentDefinition;
|
|
212
211
|
|
|
213
|
-
interface ImageProps extends React
|
|
212
|
+
interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
|
|
214
213
|
cfImageAsset?: OptimizedImageAsset | string;
|
|
215
214
|
}
|
|
216
|
-
declare const Image: React
|
|
215
|
+
declare const Image: React.FC<ImageProps>;
|
|
217
216
|
|
|
218
217
|
declare const ImageComponentDefinition: ComponentDefinition;
|
|
219
218
|
|
|
220
|
-
type ContentfulContainerAsHyperlinkProps
|
|
221
|
-
editorMode?: EditorMode;
|
|
222
|
-
node: ExperienceTreeNode;
|
|
223
|
-
dataSource?: ExperienceDataSource;
|
|
224
|
-
unboundValues?: ExperienceUnboundValues;
|
|
225
|
-
resolveDesignValue?: any;
|
|
226
|
-
entityStore?: RefObject<EntityStore>;
|
|
227
|
-
areEntitiesFetched?: boolean;
|
|
228
|
-
renderDropzone: (node: ExperienceTreeNode, props?: Record<string, any>) => React$1.ReactNode;
|
|
229
|
-
} : {
|
|
230
|
-
editorMode: EditorMode;
|
|
231
|
-
}) & {
|
|
232
|
-
children?: React$1.ReactNode;
|
|
219
|
+
type ContentfulContainerAsHyperlinkProps = StructureComponentProps<{
|
|
233
220
|
className?: string;
|
|
234
221
|
cfHyperlink?: StyleProps['cfHyperlink'];
|
|
235
222
|
cfOpenInNewTab?: StyleProps['cfOpenInNewTab'];
|
|
236
|
-
|
|
237
|
-
dragProps?: DragWrapperProps;
|
|
238
|
-
};
|
|
223
|
+
}>;
|
|
239
224
|
|
|
240
|
-
declare const ContentfulContainer: React
|
|
225
|
+
declare const ContentfulContainer: React.FC<ContentfulContainerAsHyperlinkProps>;
|
|
241
226
|
|
|
242
227
|
declare const containerDefinition: ComponentDefinition;
|
|
243
228
|
declare const sectionDefinition: ComponentDefinition;
|
|
@@ -246,71 +231,31 @@ type ContentfulDividerProps = {
|
|
|
246
231
|
className?: string;
|
|
247
232
|
dragProps?: unknown;
|
|
248
233
|
};
|
|
249
|
-
declare const ContentfulDivider: ({ className, dragProps: _, ...props }: ContentfulDividerProps) => React
|
|
234
|
+
declare const ContentfulDivider: ({ className, dragProps: _, ...props }: ContentfulDividerProps) => React.JSX.Element;
|
|
250
235
|
|
|
251
236
|
declare const dividerDefinition: ComponentDefinition;
|
|
252
237
|
|
|
253
|
-
|
|
254
|
-
editorMode: boolean;
|
|
238
|
+
type ColumnsProps = StructureComponentProps<{
|
|
255
239
|
className?: string;
|
|
256
|
-
|
|
257
|
-
}
|
|
258
|
-
interface ColumnsEditorModeProps extends ColumnsBaseProps {
|
|
259
|
-
editorMode: true;
|
|
260
|
-
cfColumns: string;
|
|
261
|
-
node: ExperienceTreeNode;
|
|
262
|
-
renderDropzone: (node: ExperienceTreeNode, props?: Record<string, unknown>) => React.ReactNode;
|
|
263
|
-
dragProps?: unknown;
|
|
264
|
-
}
|
|
265
|
-
interface ColumnsDeliveryModeProps extends ColumnsBaseProps {
|
|
266
|
-
editorMode: false;
|
|
267
|
-
}
|
|
268
|
-
interface SingleColumnEditorModeProps extends ColumnsBaseProps {
|
|
269
|
-
editorMode: true;
|
|
270
|
-
node: ExperienceTreeNode;
|
|
271
|
-
renderDropzone: (node: ExperienceTreeNode, props?: Record<string, unknown>) => React.ReactNode;
|
|
272
|
-
cfColumnSpan: string;
|
|
273
|
-
dragProps?: unknown;
|
|
274
|
-
['data-ctfl-draggable-id']: string;
|
|
275
|
-
style?: CSSProperties;
|
|
276
|
-
className: string;
|
|
277
|
-
onMouseOver: (e: SyntheticEvent<Element, Event>) => void;
|
|
278
|
-
onMouseOut: (e: SyntheticEvent<Element, Event>) => void;
|
|
279
|
-
onMouseDown: (e: SyntheticEvent<Element, Event>) => void;
|
|
280
|
-
onMouseUp: (e: SyntheticEvent<Element, Event>) => void;
|
|
281
|
-
onClick: (e: SyntheticEvent<Element, Event>) => void;
|
|
282
|
-
}
|
|
283
|
-
interface SingleColumnDeliveryModeProps extends ColumnsBaseProps {
|
|
284
|
-
editorMode: false;
|
|
285
|
-
}
|
|
286
|
-
type ColumnsProps = ColumnsEditorModeProps | ColumnsDeliveryModeProps;
|
|
287
|
-
type SingleColumnProps = SingleColumnEditorModeProps | SingleColumnDeliveryModeProps;
|
|
240
|
+
}>;
|
|
241
|
+
declare const Columns: ({ className, children, ...otherProps }: ColumnsProps) => React.JSX.Element;
|
|
288
242
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
243
|
+
type SingleColumnProps = StructureComponentProps<{
|
|
244
|
+
className?: string;
|
|
245
|
+
}>;
|
|
246
|
+
declare const SingleColumn: React.FC<SingleColumnProps>;
|
|
292
247
|
|
|
293
248
|
declare const columnsDefinition: ComponentDefinition;
|
|
294
249
|
declare const singleColumnDefinition: ComponentDefinition;
|
|
295
250
|
|
|
296
|
-
type AssemblyProps
|
|
297
|
-
|
|
298
|
-
className?: string;
|
|
299
|
-
cfHyperlink?: StyleProps['cfHyperlink'];
|
|
300
|
-
cfOpenInNewTab?: StyleProps['cfOpenInNewTab'];
|
|
301
|
-
editorMode?: EditorMode;
|
|
302
|
-
node: ExperienceTreeNode;
|
|
303
|
-
resolveDesignValue?: ResolveDesignValueType;
|
|
304
|
-
dragProps?: Record<string, any>;
|
|
305
|
-
renderDropzone: (node: ExperienceTreeNode, props?: Record<string, any>) => React$1.ReactNode;
|
|
306
|
-
} : Record<string, any>;
|
|
307
|
-
declare const Assembly: React$1.FC<AssemblyProps>;
|
|
251
|
+
type AssemblyProps = StructureComponentProps<HTMLAttributes<HTMLDivElement>>;
|
|
252
|
+
declare const Assembly: React.FC<AssemblyProps>;
|
|
308
253
|
|
|
309
254
|
interface CarouselProps {
|
|
310
255
|
className?: string;
|
|
311
|
-
children?: React
|
|
256
|
+
children?: React.ReactNode;
|
|
312
257
|
}
|
|
313
|
-
declare const Carousel: React
|
|
258
|
+
declare const Carousel: React.FC<CarouselProps>;
|
|
314
259
|
|
|
315
260
|
declare const carouselDefinition: ComponentDefinition;
|
|
316
261
|
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { create } from 'zustand';
|
|
|
10
10
|
var css_248z$8 = "@import url(https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,500;0,600;1,400;1,600&display=swap);:root{--cf-color-white:#fff;--cf-color-black:#000;--cf-color-gray100:#f7f9fa;--cf-color-gray400:#aec1cc;--cf-color-gray400-rgb:174,193,204;--cf-spacing-0:0rem;--cf-spacing-1:0.125rem;--cf-spacing-2:0.25rem;--cf-spacing-3:0.375rem;--cf-spacing-4:0.5rem;--cf-spacing-5:0.625rem;--cf-spacing-6:0.75rem;--cf-spacing-7:0.875rem;--cf-spacing-8:1rem;--cf-spacing-9:1.25rem;--cf-spacing-10:1.5rem;--cf-spacing-11:1.75rem;--cf-spacing-12:2rem;--cf-spacing-13:2.25rem;--cf-text-xs:0.75rem;--cf-text-sm:0.875rem;--cf-text-base:1rem;--cf-text-lg:1.125rem;--cf-text-xl:1.25rem;--cf-text-2xl:1.5rem;--cf-text-3xl:2rem;--cf-text-4xl:2.75rem;--cf-font-light:300;--cf-font-normal:400;--cf-font-medium:500;--cf-font-semibold:600;--cf-font-bold:700;--cf-font-extra-bold:800;--cf-font-black:900;--cf-border-radius-none:0px;--cf-border-radius-sm:0.125rem;--cf-border-radius:0.25rem;--cf-border-radius-md:0.375rem;--cf-border-radius-lg:0.5rem;--cf-border-radius-xl:0.75rem;--cf-border-radius-2xl:1rem;--cf-border-radius-3xl:1.5rem;--cf-border-radius-full:9999px;--cf-font-family-sans:Archivo,Helvetica,Arial,sans-serif;--cf-font-family-serif:Georgia,Cambria,Times New Roman,Times,serif;--cf-max-width-full:100%;--cf-button-bg:var(--cf-color-black);--cf-button-color:var(--cf-color-white);--cf-text-color:var(--cf-color-black)}*{box-sizing:border-box}";
|
|
11
11
|
styleInject(css_248z$8);
|
|
12
12
|
|
|
13
|
+
/** @deprecated will be removed when dropping backward compatibility for old DND */
|
|
13
14
|
/**
|
|
14
15
|
* These modes are ONLY intended to be internally used within the context of
|
|
15
16
|
* editing an experience inside of Contentful Studio. i.e. these modes
|
|
@@ -2054,7 +2055,7 @@ var VisualEditorMode;
|
|
|
2054
2055
|
VisualEditorMode["InjectScript"] = "injectScript";
|
|
2055
2056
|
})(VisualEditorMode || (VisualEditorMode = {}));
|
|
2056
2057
|
|
|
2057
|
-
var css_248z$2 = ".contentful-container{display:flex;pointer-events:all;position:relative}.contentful-container::-webkit-scrollbar{display:none}.cf-
|
|
2058
|
+
var css_248z$2 = ".contentful-container{display:flex;pointer-events:all;position:relative}.contentful-container::-webkit-scrollbar{display:none}.cf-container-wrapper{position:relative;width:100%}.contentful-container:after{align-items:center;bottom:0;color:var(--exp-builder-gray400);content:\"\";display:block;display:flex;font-family:var(--exp-builder-font-stack-primary);font-size:12px;justify-content:center;left:0;overflow-x:clip;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.contentful-section-label:after{content:\"Section\"}.contentful-container-label:after{content:\"Container\"}.contentful-container-link,.contentful-container-link:active,.contentful-container-link:focus-visible,.contentful-container-link:hover,.contentful-container-link:read-write,.contentful-container-link:visited{color:inherit;outline:unset;text-decoration:unset}";
|
|
2058
2059
|
styleInject(css_248z$2);
|
|
2059
2060
|
|
|
2060
2061
|
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) => {
|
|
@@ -2079,31 +2080,29 @@ const Flex = forwardRef(({ id, children, onMouseEnter, onMouseUp, onMouseLeave,
|
|
|
2079
2080
|
});
|
|
2080
2081
|
Flex.displayName = 'Flex';
|
|
2081
2082
|
|
|
2082
|
-
|
|
2083
|
+
function extractRenderProps(props) {
|
|
2084
|
+
if (props.editorMode) {
|
|
2085
|
+
const { editorMode, node, children, ...renderProps } = props;
|
|
2086
|
+
return renderProps;
|
|
2087
|
+
}
|
|
2088
|
+
const { editorMode, children, ...renderProps } = props;
|
|
2089
|
+
return renderProps;
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2083
2092
|
const ContentfulContainerAsHyperlink = (props) => {
|
|
2084
|
-
const { cfHyperlink, cfOpenInNewTab, editorMode, className, children } = props;
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
rel: 'noopener noreferrer',
|
|
2091
|
-
};
|
|
2093
|
+
const { cfHyperlink, cfOpenInNewTab, editorMode, className, children, ...otherProps } = props;
|
|
2094
|
+
const eventHandlingProps = editorMode === true ? { onClick: stopEventPropagation } : {};
|
|
2095
|
+
const anchorTagProps = cfOpenInNewTab
|
|
2096
|
+
? {
|
|
2097
|
+
target: '_blank',
|
|
2098
|
+
rel: 'noopener noreferrer',
|
|
2092
2099
|
}
|
|
2093
|
-
|
|
2094
|
-
}
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
};
|
|
2100
|
-
return renderDropzone(node, {
|
|
2101
|
-
['data-test-id']: 'contentful-container',
|
|
2102
|
-
className: combineClasses(className, 'contentful-container', 'contentful-container-link'),
|
|
2103
|
-
zoneId: node.data.id,
|
|
2104
|
-
WrapperComponent: 'a',
|
|
2105
|
-
onClick: stopPropagationInEditorMode,
|
|
2106
|
-
});
|
|
2100
|
+
: {};
|
|
2101
|
+
return (React.createElement("a", { className: combineClasses(className, 'contentful-container', 'contentful-container-link'), href: cfHyperlink, ...anchorTagProps, ...eventHandlingProps, ...extractRenderProps(otherProps) }, children));
|
|
2102
|
+
};
|
|
2103
|
+
const stopEventPropagation = (event) => {
|
|
2104
|
+
event.stopPropagation();
|
|
2105
|
+
event.preventDefault();
|
|
2107
2106
|
};
|
|
2108
2107
|
|
|
2109
2108
|
/* eslint-disable */
|
|
@@ -2112,21 +2111,14 @@ const ContentfulContainer = (props) => {
|
|
|
2112
2111
|
if (cfHyperlink) {
|
|
2113
2112
|
return React.createElement(ContentfulContainerAsHyperlink, { ...props }, children);
|
|
2114
2113
|
}
|
|
2115
|
-
if (editorMode
|
|
2114
|
+
if (!editorMode) {
|
|
2116
2115
|
return (React.createElement(Flex, { "data-test-id": "contentful-container", className: combineClasses(className, 'contentful-container') }, children));
|
|
2117
2116
|
}
|
|
2118
2117
|
// Extract properties that are only available in editor mode
|
|
2119
|
-
const {
|
|
2118
|
+
const { node } = props;
|
|
2120
2119
|
const isEmpty = !node.children.length;
|
|
2121
2120
|
const isSection = node.data.blockId === CONTENTFUL_COMPONENTS$1.section.id;
|
|
2122
|
-
return
|
|
2123
|
-
...editorModeProps,
|
|
2124
|
-
['data-test-id']: 'contentful-container',
|
|
2125
|
-
id: 'ContentfulContainer',
|
|
2126
|
-
className: combineClasses('contentful-container', className, isEmpty ? (isSection ? 'contentful-section-label' : 'contentful-container-label') : ''),
|
|
2127
|
-
WrapperComponent: Flex,
|
|
2128
|
-
dragProps,
|
|
2129
|
-
});
|
|
2121
|
+
return (React.createElement(Flex, { "data-test-id": "contentful-container", ...extractRenderProps(props), className: combineClasses(className, 'contentful-container', isEmpty ? (isSection ? 'contentful-section-label' : 'contentful-container-label') : '') }, children));
|
|
2130
2122
|
};
|
|
2131
2123
|
|
|
2132
2124
|
const containerDefinition = {
|
|
@@ -2150,7 +2142,7 @@ const sectionDefinition = {
|
|
|
2150
2142
|
},
|
|
2151
2143
|
};
|
|
2152
2144
|
|
|
2153
|
-
var css_248z$1 = ".cf-divider{display:contents;height:100%;position:relative;width:100%}.cf-divider hr{border:none}
|
|
2145
|
+
var css_248z$1 = ".cf-divider{display:contents;height:100%;position:relative;width:100%}.cf-divider hr{border:none}";
|
|
2154
2146
|
styleInject(css_248z$1);
|
|
2155
2147
|
|
|
2156
2148
|
const ContentfulDivider = ({ className = '',
|
|
@@ -2171,48 +2163,25 @@ const dividerDefinition = {
|
|
|
2171
2163
|
},
|
|
2172
2164
|
};
|
|
2173
2165
|
|
|
2174
|
-
var css_248z = ".cf-columns{display:flex;flex-direction:column;gap:24px;grid-template-columns:repeat(12,1fr);min-height:0;min-width:0}@media (min-width:768px){.cf-columns{display:grid}}.cf-single-column-wrapper{
|
|
2166
|
+
var css_248z = ".cf-columns{display:flex;flex-direction:column;gap:24px;grid-template-columns:repeat(12,1fr);min-height:0;min-width:0}@media (min-width:768px){.cf-columns{display:grid}}.cf-single-column-wrapper{position:relative}.cf-single-column-wrapper:after{align-items:center;bottom:0;color:var(--exp-builder-gray400);content:\"\";display:block;display:flex;font-family:var(--exp-builder-font-stack-primary);font-size:12px;justify-content:center;left:0;overflow-x:clip;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.cf-single-column-label:after{content:\"Column\"}";
|
|
2175
2167
|
styleInject(css_248z);
|
|
2176
2168
|
|
|
2177
|
-
const
|
|
2178
|
-
return (React.createElement("div", {
|
|
2179
|
-
...(props.style || {}),
|
|
2169
|
+
const Columns = ({ className, children, ...otherProps }) => {
|
|
2170
|
+
return (React.createElement("div", { className: combineClasses(className, 'cf-columns'), style: {
|
|
2180
2171
|
display: 'grid',
|
|
2181
2172
|
gridTemplateColumns: 'repeat(12, [col-start] 1fr)',
|
|
2182
|
-
} },
|
|
2183
|
-
});
|
|
2184
|
-
ColumnWrapper.displayName = 'ColumnWrapper';
|
|
2185
|
-
const Columns = (props) => {
|
|
2186
|
-
const { editorMode, className, children } = props;
|
|
2187
|
-
if (!editorMode) {
|
|
2188
|
-
return (React.createElement(ColumnWrapper, { className: combineClasses(className, 'cf-columns') }, children));
|
|
2189
|
-
}
|
|
2190
|
-
const { node, renderDropzone, dragProps = {}, ...rest } = props;
|
|
2191
|
-
return renderDropzone(node, {
|
|
2192
|
-
...rest,
|
|
2193
|
-
['data-test-id']: 'contentful-columns',
|
|
2194
|
-
id: 'ContentfulContainer',
|
|
2195
|
-
className: combineClasses('cf-columns', className),
|
|
2196
|
-
WrapperComponent: ColumnWrapper,
|
|
2197
|
-
dragProps,
|
|
2198
|
-
});
|
|
2173
|
+
}, ...extractRenderProps(otherProps) }, children));
|
|
2199
2174
|
};
|
|
2200
2175
|
|
|
2201
2176
|
const SingleColumn = (props) => {
|
|
2202
|
-
const { className, editorMode
|
|
2203
|
-
if (editorMode
|
|
2204
|
-
return React.createElement(Flex, { className: className }, children);
|
|
2177
|
+
const { className, editorMode } = props;
|
|
2178
|
+
if (!editorMode) {
|
|
2179
|
+
return React.createElement(Flex, { className: className }, props.children);
|
|
2205
2180
|
}
|
|
2206
|
-
const {
|
|
2181
|
+
const { node, children } = props;
|
|
2207
2182
|
const isEmpty = !node.children.length;
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
id: 'ContentfulSingleColumn',
|
|
2211
|
-
className: combineClasses('cf-single-column-wrapper', className, isEmpty ? 'cf-single-column-label' : ''),
|
|
2212
|
-
WrapperComponent: Flex,
|
|
2213
|
-
dragProps,
|
|
2214
|
-
...editorProps,
|
|
2215
|
-
});
|
|
2183
|
+
const mixedClassName = combineClasses('cf-single-column-wrapper', className, isEmpty ? 'cf-single-column-label' : '');
|
|
2184
|
+
return (React.createElement(Flex, { ...extractRenderProps(props), className: mixedClassName }, children));
|
|
2216
2185
|
};
|
|
2217
2186
|
|
|
2218
2187
|
const columnsDefinition = {
|
|
@@ -2234,18 +2203,7 @@ const singleColumnDefinition = {
|
|
|
2234
2203
|
};
|
|
2235
2204
|
|
|
2236
2205
|
const assemblyStyle = { display: 'contents' };
|
|
2237
|
-
// Feel free to do any magic as regards variable definitions for assemblies
|
|
2238
|
-
// Or if this isn't necessary by the time we figure that part out, we can bid this part farewell
|
|
2239
2206
|
const Assembly = (props) => {
|
|
2240
|
-
if (props.editorMode) {
|
|
2241
|
-
const { node, dragProps, ...editorModeProps } = props;
|
|
2242
|
-
return props.renderDropzone(node, {
|
|
2243
|
-
...editorModeProps,
|
|
2244
|
-
['data-test-id']: 'contentful-assembly',
|
|
2245
|
-
className: props.className,
|
|
2246
|
-
dragProps,
|
|
2247
|
-
});
|
|
2248
|
-
}
|
|
2249
2207
|
// Using a display contents so assembly content/children
|
|
2250
2208
|
// can appear as if they are direct children of the div wrapper's parent
|
|
2251
2209
|
return React.createElement("div", { "data-test-id": "assembly", ...props, style: assemblyStyle });
|