@measured/puck-plugin-emotion-cache 0.21.0-canary.2e1b5267 → 0.21.0-canary.304940ae
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.mts +60 -56
- package/dist/index.d.ts +60 -56
- package/dist/index.js +7 -7
- package/dist/index.mjs +4 -4
- package/package.json +3 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactElement, CSSProperties, ReactNode, JSX } from 'react';
|
|
1
|
+
import { ReactElement, CSSProperties, ElementType, ReactNode, JSX } from 'react';
|
|
2
2
|
|
|
3
3
|
type ItemSelector = {
|
|
4
4
|
index: number;
|
|
@@ -10,63 +10,63 @@ type FieldOption = {
|
|
|
10
10
|
value: string | number | boolean | undefined | null | object;
|
|
11
11
|
};
|
|
12
12
|
type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
|
|
13
|
-
|
|
13
|
+
interface BaseField {
|
|
14
14
|
label?: string;
|
|
15
15
|
labelIcon?: ReactElement;
|
|
16
|
-
metadata?:
|
|
16
|
+
metadata?: FieldMetadata;
|
|
17
17
|
visible?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
18
|
+
}
|
|
19
|
+
interface TextField extends BaseField {
|
|
20
20
|
type: "text";
|
|
21
21
|
placeholder?: string;
|
|
22
22
|
contentEditable?: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
23
|
+
}
|
|
24
|
+
interface NumberField extends BaseField {
|
|
25
25
|
type: "number";
|
|
26
26
|
placeholder?: string;
|
|
27
27
|
min?: number;
|
|
28
28
|
max?: number;
|
|
29
29
|
step?: number;
|
|
30
|
-
}
|
|
31
|
-
|
|
30
|
+
}
|
|
31
|
+
interface TextareaField extends BaseField {
|
|
32
32
|
type: "textarea";
|
|
33
33
|
placeholder?: string;
|
|
34
34
|
contentEditable?: boolean;
|
|
35
|
-
}
|
|
36
|
-
|
|
35
|
+
}
|
|
36
|
+
interface SelectField extends BaseField {
|
|
37
37
|
type: "select";
|
|
38
38
|
options: FieldOptions;
|
|
39
|
-
}
|
|
40
|
-
|
|
39
|
+
}
|
|
40
|
+
interface RadioField extends BaseField {
|
|
41
41
|
type: "radio";
|
|
42
42
|
options: FieldOptions;
|
|
43
|
-
}
|
|
44
|
-
|
|
43
|
+
}
|
|
44
|
+
interface ArrayField<Props extends {
|
|
45
45
|
[key: string]: any;
|
|
46
46
|
}[] = {
|
|
47
47
|
[key: string]: any;
|
|
48
|
-
}[], UserField extends {} = {}>
|
|
48
|
+
}[], UserField extends {} = {}> extends BaseField {
|
|
49
49
|
type: "array";
|
|
50
50
|
arrayFields: {
|
|
51
51
|
[SubPropName in keyof Props[0]]: UserField extends {
|
|
52
52
|
type: PropertyKey;
|
|
53
53
|
} ? Field<Props[0][SubPropName], UserField> | UserField : Field<Props[0][SubPropName], UserField>;
|
|
54
54
|
};
|
|
55
|
-
defaultItemProps?: Props[0];
|
|
55
|
+
defaultItemProps?: Props[0] | ((index: number) => Props[0]);
|
|
56
56
|
getItemSummary?: (item: Props[0], index?: number) => string;
|
|
57
57
|
max?: number;
|
|
58
58
|
min?: number;
|
|
59
|
-
}
|
|
60
|
-
|
|
59
|
+
}
|
|
60
|
+
interface ObjectField<Props extends any = {
|
|
61
61
|
[key: string]: any;
|
|
62
|
-
}, UserField extends {} = {}>
|
|
62
|
+
}, UserField extends {} = {}> extends BaseField {
|
|
63
63
|
type: "object";
|
|
64
64
|
objectFields: {
|
|
65
65
|
[SubPropName in keyof Props]: UserField extends {
|
|
66
66
|
type: PropertyKey;
|
|
67
67
|
} ? Field<Props[SubPropName]> | UserField : Field<Props[SubPropName]>;
|
|
68
68
|
};
|
|
69
|
-
}
|
|
69
|
+
}
|
|
70
70
|
type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, PropShape = TableShape> = {
|
|
71
71
|
name: string;
|
|
72
72
|
fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
|
|
@@ -82,10 +82,14 @@ type ExternalFieldWithAdaptor<Props extends any = {
|
|
|
82
82
|
adaptorParams?: object;
|
|
83
83
|
getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
|
|
84
84
|
};
|
|
85
|
-
type
|
|
85
|
+
type CacheOpts = {
|
|
86
|
+
enabled?: boolean;
|
|
87
|
+
};
|
|
88
|
+
interface ExternalField<Props extends any = {
|
|
86
89
|
[key: string]: any;
|
|
87
|
-
}>
|
|
90
|
+
}> extends BaseField {
|
|
88
91
|
type: "external";
|
|
92
|
+
cache?: CacheOpts;
|
|
89
93
|
placeholder?: string;
|
|
90
94
|
fetchList: (params: {
|
|
91
95
|
query: string;
|
|
@@ -101,7 +105,7 @@ type ExternalField<Props extends any = {
|
|
|
101
105
|
initialQuery?: string;
|
|
102
106
|
filterFields?: Record<string, Field>;
|
|
103
107
|
initialFilters?: Record<string, any>;
|
|
104
|
-
}
|
|
108
|
+
}
|
|
105
109
|
type CustomFieldRender<Value extends any> = (props: {
|
|
106
110
|
field: CustomField<Value>;
|
|
107
111
|
name: string;
|
|
@@ -110,16 +114,17 @@ type CustomFieldRender<Value extends any> = (props: {
|
|
|
110
114
|
onChange: (value: Value) => void;
|
|
111
115
|
readOnly?: boolean;
|
|
112
116
|
}) => ReactElement;
|
|
113
|
-
|
|
117
|
+
interface CustomField<Value extends any> extends BaseField {
|
|
114
118
|
type: "custom";
|
|
115
119
|
render: CustomFieldRender<Value>;
|
|
116
120
|
contentEditable?: boolean;
|
|
117
|
-
|
|
118
|
-
|
|
121
|
+
key?: string;
|
|
122
|
+
}
|
|
123
|
+
interface SlotField extends BaseField {
|
|
119
124
|
type: "slot";
|
|
120
125
|
allow?: string[];
|
|
121
126
|
disallow?: string[];
|
|
122
|
-
}
|
|
127
|
+
}
|
|
123
128
|
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
124
129
|
[key: string]: any;
|
|
125
130
|
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
@@ -144,10 +149,11 @@ type DropZoneProps = {
|
|
|
144
149
|
minEmptyHeight?: number;
|
|
145
150
|
className?: string;
|
|
146
151
|
collisionAxis?: DragAxis;
|
|
152
|
+
as?: ElementType;
|
|
147
153
|
};
|
|
148
154
|
|
|
149
155
|
type PuckContext = {
|
|
150
|
-
renderDropZone: React.
|
|
156
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
151
157
|
metadata: Metadata;
|
|
152
158
|
isEditing: boolean;
|
|
153
159
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -195,6 +201,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
195
201
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
196
202
|
props?: Partial<Props>;
|
|
197
203
|
};
|
|
204
|
+
interface ComponentConfigExtensions {
|
|
205
|
+
}
|
|
198
206
|
type ComponentConfigInternal<RenderProps extends DefaultComponentProps, FieldProps extends DefaultComponentProps, DataShape = Omit<ComponentData<FieldProps>, "type">, // NB this doesn't include AllProps, so types will not contain deep slot types. To fix, we require a breaking change.
|
|
199
207
|
UserField extends BaseField = {}> = {
|
|
200
208
|
render: PuckComponent<RenderProps>;
|
|
@@ -210,7 +218,7 @@ UserField extends BaseField = {}> = {
|
|
|
210
218
|
fields: Fields<FieldProps>;
|
|
211
219
|
lastFields: Fields<FieldProps>;
|
|
212
220
|
lastData: DataShape | null;
|
|
213
|
-
metadata:
|
|
221
|
+
metadata: ComponentMetadata;
|
|
214
222
|
appState: AppState;
|
|
215
223
|
parent: ComponentData | null;
|
|
216
224
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -219,7 +227,7 @@ UserField extends BaseField = {}> = {
|
|
|
219
227
|
id: string;
|
|
220
228
|
}>;
|
|
221
229
|
lastData: DataShape | null;
|
|
222
|
-
metadata:
|
|
230
|
+
metadata: ComponentMetadata;
|
|
223
231
|
trigger: ResolveDataTrigger;
|
|
224
232
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
225
233
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -231,8 +239,8 @@ UserField extends BaseField = {}> = {
|
|
|
231
239
|
appState: AppState;
|
|
232
240
|
lastData: DataShape | null;
|
|
233
241
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
234
|
-
metadata?:
|
|
235
|
-
};
|
|
242
|
+
metadata?: ComponentMetadata;
|
|
243
|
+
} & ComponentConfigExtensions;
|
|
236
244
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
237
245
|
type Category<ComponentName> = {
|
|
238
246
|
components?: ComponentName[];
|
|
@@ -259,6 +267,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
259
267
|
type: string;
|
|
260
268
|
} ? UserField : Field;
|
|
261
269
|
} : never;
|
|
270
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
271
|
+
components?: Components;
|
|
272
|
+
root?: RootProps;
|
|
273
|
+
categories?: CategoryNames;
|
|
274
|
+
fields?: AssertHasValue<UserFields>;
|
|
275
|
+
};
|
|
262
276
|
|
|
263
277
|
type BaseData<Props extends {
|
|
264
278
|
[key: string]: any;
|
|
@@ -298,11 +312,16 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
298
312
|
type Metadata = {
|
|
299
313
|
[key: string]: any;
|
|
300
314
|
};
|
|
315
|
+
interface PuckMetadata extends Metadata {
|
|
316
|
+
}
|
|
317
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
318
|
+
}
|
|
319
|
+
interface FieldMetadata extends Metadata {
|
|
320
|
+
}
|
|
301
321
|
|
|
302
322
|
type ItemWithId = {
|
|
303
323
|
_arrayId: string;
|
|
304
324
|
_originalIndex: number;
|
|
305
|
-
_currentIndex: number;
|
|
306
325
|
};
|
|
307
326
|
type ArrayState = {
|
|
308
327
|
items: ItemWithId[];
|
|
@@ -313,7 +332,6 @@ type UiState = {
|
|
|
313
332
|
rightSideBarVisible: boolean;
|
|
314
333
|
leftSideBarWidth?: number | null;
|
|
315
334
|
rightSideBarWidth?: number | null;
|
|
316
|
-
mobilePanelExpanded?: boolean;
|
|
317
335
|
itemSelector: ItemSelector | null;
|
|
318
336
|
arrayState: Record<string, ArrayState | undefined>;
|
|
319
337
|
previewMode: "interactive" | "edit";
|
|
@@ -326,7 +344,7 @@ type UiState = {
|
|
|
326
344
|
isDragging: boolean;
|
|
327
345
|
viewports: {
|
|
328
346
|
current: {
|
|
329
|
-
width: number
|
|
347
|
+
width: number;
|
|
330
348
|
height: number | "auto";
|
|
331
349
|
};
|
|
332
350
|
controlsVisible: boolean;
|
|
@@ -335,9 +353,6 @@ type UiState = {
|
|
|
335
353
|
field: {
|
|
336
354
|
focus?: string | null;
|
|
337
355
|
};
|
|
338
|
-
plugin: {
|
|
339
|
-
current: string | null;
|
|
340
|
-
};
|
|
341
356
|
};
|
|
342
357
|
type AppState<UserData extends Data = Data> = {
|
|
343
358
|
data: UserData;
|
|
@@ -371,12 +386,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
371
386
|
type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
|
|
372
387
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
373
388
|
} : T;
|
|
374
|
-
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
375
|
-
components?: Components;
|
|
376
|
-
root?: RootProps;
|
|
377
|
-
categories?: CategoryNames;
|
|
378
|
-
fields?: AssertHasValue<UserFields>;
|
|
379
|
-
};
|
|
380
389
|
type FieldsExtension = {
|
|
381
390
|
[Type in string]: {
|
|
382
391
|
type: Type;
|
|
@@ -387,11 +396,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
387
396
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
388
397
|
never
|
|
389
398
|
] ? False : True;
|
|
390
|
-
type RenderFunc<Props extends {
|
|
391
|
-
[key: string]: any;
|
|
392
|
-
} = {
|
|
393
|
-
children: ReactNode;
|
|
394
|
-
}> = (props: Props) => ReactElement;
|
|
395
399
|
|
|
396
400
|
type MapFnParams<ThisField = Field> = {
|
|
397
401
|
value: any;
|
|
@@ -415,6 +419,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
415
419
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
416
420
|
}>;
|
|
417
421
|
|
|
422
|
+
type RenderFunc<Props extends {
|
|
423
|
+
[key: string]: any;
|
|
424
|
+
} = {
|
|
425
|
+
children: ReactNode;
|
|
426
|
+
}> = (props: Props) => ReactElement;
|
|
418
427
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
419
428
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
420
429
|
type OverridesGeneric<Shape extends {
|
|
@@ -485,7 +494,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
485
494
|
|
|
486
495
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
487
496
|
type Viewport = {
|
|
488
|
-
width: number
|
|
497
|
+
width: number;
|
|
489
498
|
height?: number | "auto";
|
|
490
499
|
label?: string;
|
|
491
500
|
icon?: iconTypes | ReactNode;
|
|
@@ -499,13 +508,8 @@ type Permissions = {
|
|
|
499
508
|
insert: boolean;
|
|
500
509
|
} & Record<string, boolean>;
|
|
501
510
|
type Plugin<UserConfig extends Config = Config> = {
|
|
502
|
-
name?: string;
|
|
503
|
-
label?: string;
|
|
504
|
-
icon?: ReactNode;
|
|
505
|
-
render?: () => ReactElement;
|
|
506
511
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
507
512
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
508
|
-
mobilePanelHeight?: "toggle" | "min-content";
|
|
509
513
|
};
|
|
510
514
|
type Slot<Props extends {
|
|
511
515
|
[key: string]: DefaultComponentProps;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactElement, CSSProperties, ReactNode, JSX } from 'react';
|
|
1
|
+
import { ReactElement, CSSProperties, ElementType, ReactNode, JSX } from 'react';
|
|
2
2
|
|
|
3
3
|
type ItemSelector = {
|
|
4
4
|
index: number;
|
|
@@ -10,63 +10,63 @@ type FieldOption = {
|
|
|
10
10
|
value: string | number | boolean | undefined | null | object;
|
|
11
11
|
};
|
|
12
12
|
type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
|
|
13
|
-
|
|
13
|
+
interface BaseField {
|
|
14
14
|
label?: string;
|
|
15
15
|
labelIcon?: ReactElement;
|
|
16
|
-
metadata?:
|
|
16
|
+
metadata?: FieldMetadata;
|
|
17
17
|
visible?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
18
|
+
}
|
|
19
|
+
interface TextField extends BaseField {
|
|
20
20
|
type: "text";
|
|
21
21
|
placeholder?: string;
|
|
22
22
|
contentEditable?: boolean;
|
|
23
|
-
}
|
|
24
|
-
|
|
23
|
+
}
|
|
24
|
+
interface NumberField extends BaseField {
|
|
25
25
|
type: "number";
|
|
26
26
|
placeholder?: string;
|
|
27
27
|
min?: number;
|
|
28
28
|
max?: number;
|
|
29
29
|
step?: number;
|
|
30
|
-
}
|
|
31
|
-
|
|
30
|
+
}
|
|
31
|
+
interface TextareaField extends BaseField {
|
|
32
32
|
type: "textarea";
|
|
33
33
|
placeholder?: string;
|
|
34
34
|
contentEditable?: boolean;
|
|
35
|
-
}
|
|
36
|
-
|
|
35
|
+
}
|
|
36
|
+
interface SelectField extends BaseField {
|
|
37
37
|
type: "select";
|
|
38
38
|
options: FieldOptions;
|
|
39
|
-
}
|
|
40
|
-
|
|
39
|
+
}
|
|
40
|
+
interface RadioField extends BaseField {
|
|
41
41
|
type: "radio";
|
|
42
42
|
options: FieldOptions;
|
|
43
|
-
}
|
|
44
|
-
|
|
43
|
+
}
|
|
44
|
+
interface ArrayField<Props extends {
|
|
45
45
|
[key: string]: any;
|
|
46
46
|
}[] = {
|
|
47
47
|
[key: string]: any;
|
|
48
|
-
}[], UserField extends {} = {}>
|
|
48
|
+
}[], UserField extends {} = {}> extends BaseField {
|
|
49
49
|
type: "array";
|
|
50
50
|
arrayFields: {
|
|
51
51
|
[SubPropName in keyof Props[0]]: UserField extends {
|
|
52
52
|
type: PropertyKey;
|
|
53
53
|
} ? Field<Props[0][SubPropName], UserField> | UserField : Field<Props[0][SubPropName], UserField>;
|
|
54
54
|
};
|
|
55
|
-
defaultItemProps?: Props[0];
|
|
55
|
+
defaultItemProps?: Props[0] | ((index: number) => Props[0]);
|
|
56
56
|
getItemSummary?: (item: Props[0], index?: number) => string;
|
|
57
57
|
max?: number;
|
|
58
58
|
min?: number;
|
|
59
|
-
}
|
|
60
|
-
|
|
59
|
+
}
|
|
60
|
+
interface ObjectField<Props extends any = {
|
|
61
61
|
[key: string]: any;
|
|
62
|
-
}, UserField extends {} = {}>
|
|
62
|
+
}, UserField extends {} = {}> extends BaseField {
|
|
63
63
|
type: "object";
|
|
64
64
|
objectFields: {
|
|
65
65
|
[SubPropName in keyof Props]: UserField extends {
|
|
66
66
|
type: PropertyKey;
|
|
67
67
|
} ? Field<Props[SubPropName]> | UserField : Field<Props[SubPropName]>;
|
|
68
68
|
};
|
|
69
|
-
}
|
|
69
|
+
}
|
|
70
70
|
type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, PropShape = TableShape> = {
|
|
71
71
|
name: string;
|
|
72
72
|
fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
|
|
@@ -82,10 +82,14 @@ type ExternalFieldWithAdaptor<Props extends any = {
|
|
|
82
82
|
adaptorParams?: object;
|
|
83
83
|
getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
|
|
84
84
|
};
|
|
85
|
-
type
|
|
85
|
+
type CacheOpts = {
|
|
86
|
+
enabled?: boolean;
|
|
87
|
+
};
|
|
88
|
+
interface ExternalField<Props extends any = {
|
|
86
89
|
[key: string]: any;
|
|
87
|
-
}>
|
|
90
|
+
}> extends BaseField {
|
|
88
91
|
type: "external";
|
|
92
|
+
cache?: CacheOpts;
|
|
89
93
|
placeholder?: string;
|
|
90
94
|
fetchList: (params: {
|
|
91
95
|
query: string;
|
|
@@ -101,7 +105,7 @@ type ExternalField<Props extends any = {
|
|
|
101
105
|
initialQuery?: string;
|
|
102
106
|
filterFields?: Record<string, Field>;
|
|
103
107
|
initialFilters?: Record<string, any>;
|
|
104
|
-
}
|
|
108
|
+
}
|
|
105
109
|
type CustomFieldRender<Value extends any> = (props: {
|
|
106
110
|
field: CustomField<Value>;
|
|
107
111
|
name: string;
|
|
@@ -110,16 +114,17 @@ type CustomFieldRender<Value extends any> = (props: {
|
|
|
110
114
|
onChange: (value: Value) => void;
|
|
111
115
|
readOnly?: boolean;
|
|
112
116
|
}) => ReactElement;
|
|
113
|
-
|
|
117
|
+
interface CustomField<Value extends any> extends BaseField {
|
|
114
118
|
type: "custom";
|
|
115
119
|
render: CustomFieldRender<Value>;
|
|
116
120
|
contentEditable?: boolean;
|
|
117
|
-
|
|
118
|
-
|
|
121
|
+
key?: string;
|
|
122
|
+
}
|
|
123
|
+
interface SlotField extends BaseField {
|
|
119
124
|
type: "slot";
|
|
120
125
|
allow?: string[];
|
|
121
126
|
disallow?: string[];
|
|
122
|
-
}
|
|
127
|
+
}
|
|
123
128
|
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
124
129
|
[key: string]: any;
|
|
125
130
|
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
@@ -144,10 +149,11 @@ type DropZoneProps = {
|
|
|
144
149
|
minEmptyHeight?: number;
|
|
145
150
|
className?: string;
|
|
146
151
|
collisionAxis?: DragAxis;
|
|
152
|
+
as?: ElementType;
|
|
147
153
|
};
|
|
148
154
|
|
|
149
155
|
type PuckContext = {
|
|
150
|
-
renderDropZone: React.
|
|
156
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
151
157
|
metadata: Metadata;
|
|
152
158
|
isEditing: boolean;
|
|
153
159
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -195,6 +201,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
195
201
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
196
202
|
props?: Partial<Props>;
|
|
197
203
|
};
|
|
204
|
+
interface ComponentConfigExtensions {
|
|
205
|
+
}
|
|
198
206
|
type ComponentConfigInternal<RenderProps extends DefaultComponentProps, FieldProps extends DefaultComponentProps, DataShape = Omit<ComponentData<FieldProps>, "type">, // NB this doesn't include AllProps, so types will not contain deep slot types. To fix, we require a breaking change.
|
|
199
207
|
UserField extends BaseField = {}> = {
|
|
200
208
|
render: PuckComponent<RenderProps>;
|
|
@@ -210,7 +218,7 @@ UserField extends BaseField = {}> = {
|
|
|
210
218
|
fields: Fields<FieldProps>;
|
|
211
219
|
lastFields: Fields<FieldProps>;
|
|
212
220
|
lastData: DataShape | null;
|
|
213
|
-
metadata:
|
|
221
|
+
metadata: ComponentMetadata;
|
|
214
222
|
appState: AppState;
|
|
215
223
|
parent: ComponentData | null;
|
|
216
224
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -219,7 +227,7 @@ UserField extends BaseField = {}> = {
|
|
|
219
227
|
id: string;
|
|
220
228
|
}>;
|
|
221
229
|
lastData: DataShape | null;
|
|
222
|
-
metadata:
|
|
230
|
+
metadata: ComponentMetadata;
|
|
223
231
|
trigger: ResolveDataTrigger;
|
|
224
232
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
225
233
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -231,8 +239,8 @@ UserField extends BaseField = {}> = {
|
|
|
231
239
|
appState: AppState;
|
|
232
240
|
lastData: DataShape | null;
|
|
233
241
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
234
|
-
metadata?:
|
|
235
|
-
};
|
|
242
|
+
metadata?: ComponentMetadata;
|
|
243
|
+
} & ComponentConfigExtensions;
|
|
236
244
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
237
245
|
type Category<ComponentName> = {
|
|
238
246
|
components?: ComponentName[];
|
|
@@ -259,6 +267,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
259
267
|
type: string;
|
|
260
268
|
} ? UserField : Field;
|
|
261
269
|
} : never;
|
|
270
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
271
|
+
components?: Components;
|
|
272
|
+
root?: RootProps;
|
|
273
|
+
categories?: CategoryNames;
|
|
274
|
+
fields?: AssertHasValue<UserFields>;
|
|
275
|
+
};
|
|
262
276
|
|
|
263
277
|
type BaseData<Props extends {
|
|
264
278
|
[key: string]: any;
|
|
@@ -298,11 +312,16 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
298
312
|
type Metadata = {
|
|
299
313
|
[key: string]: any;
|
|
300
314
|
};
|
|
315
|
+
interface PuckMetadata extends Metadata {
|
|
316
|
+
}
|
|
317
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
318
|
+
}
|
|
319
|
+
interface FieldMetadata extends Metadata {
|
|
320
|
+
}
|
|
301
321
|
|
|
302
322
|
type ItemWithId = {
|
|
303
323
|
_arrayId: string;
|
|
304
324
|
_originalIndex: number;
|
|
305
|
-
_currentIndex: number;
|
|
306
325
|
};
|
|
307
326
|
type ArrayState = {
|
|
308
327
|
items: ItemWithId[];
|
|
@@ -313,7 +332,6 @@ type UiState = {
|
|
|
313
332
|
rightSideBarVisible: boolean;
|
|
314
333
|
leftSideBarWidth?: number | null;
|
|
315
334
|
rightSideBarWidth?: number | null;
|
|
316
|
-
mobilePanelExpanded?: boolean;
|
|
317
335
|
itemSelector: ItemSelector | null;
|
|
318
336
|
arrayState: Record<string, ArrayState | undefined>;
|
|
319
337
|
previewMode: "interactive" | "edit";
|
|
@@ -326,7 +344,7 @@ type UiState = {
|
|
|
326
344
|
isDragging: boolean;
|
|
327
345
|
viewports: {
|
|
328
346
|
current: {
|
|
329
|
-
width: number
|
|
347
|
+
width: number;
|
|
330
348
|
height: number | "auto";
|
|
331
349
|
};
|
|
332
350
|
controlsVisible: boolean;
|
|
@@ -335,9 +353,6 @@ type UiState = {
|
|
|
335
353
|
field: {
|
|
336
354
|
focus?: string | null;
|
|
337
355
|
};
|
|
338
|
-
plugin: {
|
|
339
|
-
current: string | null;
|
|
340
|
-
};
|
|
341
356
|
};
|
|
342
357
|
type AppState<UserData extends Data = Data> = {
|
|
343
358
|
data: UserData;
|
|
@@ -371,12 +386,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
371
386
|
type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
|
|
372
387
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
373
388
|
} : T;
|
|
374
|
-
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
375
|
-
components?: Components;
|
|
376
|
-
root?: RootProps;
|
|
377
|
-
categories?: CategoryNames;
|
|
378
|
-
fields?: AssertHasValue<UserFields>;
|
|
379
|
-
};
|
|
380
389
|
type FieldsExtension = {
|
|
381
390
|
[Type in string]: {
|
|
382
391
|
type: Type;
|
|
@@ -387,11 +396,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
387
396
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
388
397
|
never
|
|
389
398
|
] ? False : True;
|
|
390
|
-
type RenderFunc<Props extends {
|
|
391
|
-
[key: string]: any;
|
|
392
|
-
} = {
|
|
393
|
-
children: ReactNode;
|
|
394
|
-
}> = (props: Props) => ReactElement;
|
|
395
399
|
|
|
396
400
|
type MapFnParams<ThisField = Field> = {
|
|
397
401
|
value: any;
|
|
@@ -415,6 +419,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
415
419
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
416
420
|
}>;
|
|
417
421
|
|
|
422
|
+
type RenderFunc<Props extends {
|
|
423
|
+
[key: string]: any;
|
|
424
|
+
} = {
|
|
425
|
+
children: ReactNode;
|
|
426
|
+
}> = (props: Props) => ReactElement;
|
|
418
427
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
419
428
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
420
429
|
type OverridesGeneric<Shape extends {
|
|
@@ -485,7 +494,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
485
494
|
|
|
486
495
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
487
496
|
type Viewport = {
|
|
488
|
-
width: number
|
|
497
|
+
width: number;
|
|
489
498
|
height?: number | "auto";
|
|
490
499
|
label?: string;
|
|
491
500
|
icon?: iconTypes | ReactNode;
|
|
@@ -499,13 +508,8 @@ type Permissions = {
|
|
|
499
508
|
insert: boolean;
|
|
500
509
|
} & Record<string, boolean>;
|
|
501
510
|
type Plugin<UserConfig extends Config = Config> = {
|
|
502
|
-
name?: string;
|
|
503
|
-
label?: string;
|
|
504
|
-
icon?: ReactNode;
|
|
505
|
-
render?: () => ReactElement;
|
|
506
511
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
507
512
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
508
|
-
mobilePanelHeight?: "toggle" | "min-content";
|
|
509
513
|
};
|
|
510
514
|
type Slot<Props extends {
|
|
511
515
|
[key: string]: DefaultComponentProps;
|
package/dist/index.js
CHANGED
|
@@ -28,11 +28,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
30
|
// index.tsx
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
33
|
-
default: () =>
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
default: () => index_default
|
|
34
34
|
});
|
|
35
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(index_exports);
|
|
36
36
|
|
|
37
37
|
// ../tsup-config/react-import.js
|
|
38
38
|
var import_react = __toESM(require("react"));
|
|
@@ -63,7 +63,7 @@ function createStyleElement(options) {
|
|
|
63
63
|
tag.setAttribute("data-s", "");
|
|
64
64
|
return tag;
|
|
65
65
|
}
|
|
66
|
-
var StyleSheet = /* @__PURE__ */ function() {
|
|
66
|
+
var StyleSheet = /* @__PURE__ */ (function() {
|
|
67
67
|
function StyleSheet2(options) {
|
|
68
68
|
var _this = this;
|
|
69
69
|
this._insertTag = function(tag) {
|
|
@@ -121,7 +121,7 @@ var StyleSheet = /* @__PURE__ */ function() {
|
|
|
121
121
|
this.ctr = 0;
|
|
122
122
|
};
|
|
123
123
|
return StyleSheet2;
|
|
124
|
-
}();
|
|
124
|
+
})();
|
|
125
125
|
|
|
126
126
|
// ../../node_modules/stylis/src/Enum.js
|
|
127
127
|
var MS = "-ms-";
|
|
@@ -924,4 +924,4 @@ var createEmotionCachePlugin = (key) => {
|
|
|
924
924
|
}
|
|
925
925
|
};
|
|
926
926
|
};
|
|
927
|
-
var
|
|
927
|
+
var index_default = createEmotionCachePlugin;
|
package/dist/index.mjs
CHANGED
|
@@ -27,7 +27,7 @@ function createStyleElement(options) {
|
|
|
27
27
|
tag.setAttribute("data-s", "");
|
|
28
28
|
return tag;
|
|
29
29
|
}
|
|
30
|
-
var StyleSheet = /* @__PURE__ */ function() {
|
|
30
|
+
var StyleSheet = /* @__PURE__ */ (function() {
|
|
31
31
|
function StyleSheet2(options) {
|
|
32
32
|
var _this = this;
|
|
33
33
|
this._insertTag = function(tag) {
|
|
@@ -85,7 +85,7 @@ var StyleSheet = /* @__PURE__ */ function() {
|
|
|
85
85
|
this.ctr = 0;
|
|
86
86
|
};
|
|
87
87
|
return StyleSheet2;
|
|
88
|
-
}();
|
|
88
|
+
})();
|
|
89
89
|
|
|
90
90
|
// ../../node_modules/stylis/src/Enum.js
|
|
91
91
|
var MS = "-ms-";
|
|
@@ -888,7 +888,7 @@ var createEmotionCachePlugin = (key) => {
|
|
|
888
888
|
}
|
|
889
889
|
};
|
|
890
890
|
};
|
|
891
|
-
var
|
|
891
|
+
var index_default = createEmotionCachePlugin;
|
|
892
892
|
export {
|
|
893
|
-
|
|
893
|
+
index_default as default
|
|
894
894
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@measured/puck-plugin-emotion-cache",
|
|
3
|
-
"version": "0.21.0-canary.
|
|
3
|
+
"version": "0.21.0-canary.304940ae",
|
|
4
4
|
"author": "Chris Villa <chris@puckeditor.com>",
|
|
5
5
|
"repository": "measuredco/puck",
|
|
6
6
|
"bugs": "https://github.com/measuredco/puck/issues",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
],
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@emotion/react": "^11.13.3",
|
|
27
|
-
"@measured/puck": "^0.21.0-canary.
|
|
27
|
+
"@measured/puck": "^0.21.0-canary.304940ae",
|
|
28
|
+
"@types/minimatch": "3.0.5",
|
|
28
29
|
"@types/react": "^19.0.1",
|
|
29
30
|
"@types/react-dom": "^19.0.2",
|
|
30
31
|
"eslint": "^7.32.0",
|