@measured/puck-plugin-emotion-cache 0.21.0-canary.a3dabae1 → 0.21.0-canary.ace4c8b3
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 +58 -55
- package/dist/index.d.ts +58 -55
- package/dist/index.js +7 -7
- package/dist/index.mjs +4 -4
- package/package.json +3 -2
package/dist/index.d.mts
CHANGED
|
@@ -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;
|
|
@@ -147,7 +152,7 @@ type DropZoneProps = {
|
|
|
147
152
|
};
|
|
148
153
|
|
|
149
154
|
type PuckContext = {
|
|
150
|
-
renderDropZone: React.
|
|
155
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
151
156
|
metadata: Metadata;
|
|
152
157
|
isEditing: boolean;
|
|
153
158
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -195,6 +200,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
195
200
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
196
201
|
props?: Partial<Props>;
|
|
197
202
|
};
|
|
203
|
+
interface ComponentConfigExtensions {
|
|
204
|
+
}
|
|
198
205
|
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
206
|
UserField extends BaseField = {}> = {
|
|
200
207
|
render: PuckComponent<RenderProps>;
|
|
@@ -210,7 +217,7 @@ UserField extends BaseField = {}> = {
|
|
|
210
217
|
fields: Fields<FieldProps>;
|
|
211
218
|
lastFields: Fields<FieldProps>;
|
|
212
219
|
lastData: DataShape | null;
|
|
213
|
-
metadata:
|
|
220
|
+
metadata: ComponentMetadata;
|
|
214
221
|
appState: AppState;
|
|
215
222
|
parent: ComponentData | null;
|
|
216
223
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -219,7 +226,7 @@ UserField extends BaseField = {}> = {
|
|
|
219
226
|
id: string;
|
|
220
227
|
}>;
|
|
221
228
|
lastData: DataShape | null;
|
|
222
|
-
metadata:
|
|
229
|
+
metadata: ComponentMetadata;
|
|
223
230
|
trigger: ResolveDataTrigger;
|
|
224
231
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
225
232
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -231,8 +238,8 @@ UserField extends BaseField = {}> = {
|
|
|
231
238
|
appState: AppState;
|
|
232
239
|
lastData: DataShape | null;
|
|
233
240
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
234
|
-
metadata?:
|
|
235
|
-
};
|
|
241
|
+
metadata?: ComponentMetadata;
|
|
242
|
+
} & ComponentConfigExtensions;
|
|
236
243
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
237
244
|
type Category<ComponentName> = {
|
|
238
245
|
components?: ComponentName[];
|
|
@@ -259,6 +266,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
259
266
|
type: string;
|
|
260
267
|
} ? UserField : Field;
|
|
261
268
|
} : never;
|
|
269
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
270
|
+
components?: Components;
|
|
271
|
+
root?: RootProps;
|
|
272
|
+
categories?: CategoryNames;
|
|
273
|
+
fields?: AssertHasValue<UserFields>;
|
|
274
|
+
};
|
|
262
275
|
|
|
263
276
|
type BaseData<Props extends {
|
|
264
277
|
[key: string]: any;
|
|
@@ -298,11 +311,16 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
298
311
|
type Metadata = {
|
|
299
312
|
[key: string]: any;
|
|
300
313
|
};
|
|
314
|
+
interface PuckMetadata extends Metadata {
|
|
315
|
+
}
|
|
316
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
317
|
+
}
|
|
318
|
+
interface FieldMetadata extends Metadata {
|
|
319
|
+
}
|
|
301
320
|
|
|
302
321
|
type ItemWithId = {
|
|
303
322
|
_arrayId: string;
|
|
304
323
|
_originalIndex: number;
|
|
305
|
-
_currentIndex: number;
|
|
306
324
|
};
|
|
307
325
|
type ArrayState = {
|
|
308
326
|
items: ItemWithId[];
|
|
@@ -313,7 +331,6 @@ type UiState = {
|
|
|
313
331
|
rightSideBarVisible: boolean;
|
|
314
332
|
leftSideBarWidth?: number | null;
|
|
315
333
|
rightSideBarWidth?: number | null;
|
|
316
|
-
mobilePanelExpanded?: boolean;
|
|
317
334
|
itemSelector: ItemSelector | null;
|
|
318
335
|
arrayState: Record<string, ArrayState | undefined>;
|
|
319
336
|
previewMode: "interactive" | "edit";
|
|
@@ -326,7 +343,7 @@ type UiState = {
|
|
|
326
343
|
isDragging: boolean;
|
|
327
344
|
viewports: {
|
|
328
345
|
current: {
|
|
329
|
-
width: number
|
|
346
|
+
width: number;
|
|
330
347
|
height: number | "auto";
|
|
331
348
|
};
|
|
332
349
|
controlsVisible: boolean;
|
|
@@ -335,9 +352,6 @@ type UiState = {
|
|
|
335
352
|
field: {
|
|
336
353
|
focus?: string | null;
|
|
337
354
|
};
|
|
338
|
-
plugin: {
|
|
339
|
-
current: string | null;
|
|
340
|
-
};
|
|
341
355
|
};
|
|
342
356
|
type AppState<UserData extends Data = Data> = {
|
|
343
357
|
data: UserData;
|
|
@@ -371,12 +385,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
371
385
|
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
386
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
373
387
|
} : 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
388
|
type FieldsExtension = {
|
|
381
389
|
[Type in string]: {
|
|
382
390
|
type: Type;
|
|
@@ -387,11 +395,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
387
395
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
388
396
|
never
|
|
389
397
|
] ? False : True;
|
|
390
|
-
type RenderFunc<Props extends {
|
|
391
|
-
[key: string]: any;
|
|
392
|
-
} = {
|
|
393
|
-
children: ReactNode;
|
|
394
|
-
}> = (props: Props) => ReactElement;
|
|
395
398
|
|
|
396
399
|
type MapFnParams<ThisField = Field> = {
|
|
397
400
|
value: any;
|
|
@@ -415,6 +418,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
415
418
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
416
419
|
}>;
|
|
417
420
|
|
|
421
|
+
type RenderFunc<Props extends {
|
|
422
|
+
[key: string]: any;
|
|
423
|
+
} = {
|
|
424
|
+
children: ReactNode;
|
|
425
|
+
}> = (props: Props) => ReactElement;
|
|
418
426
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
419
427
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
420
428
|
type OverridesGeneric<Shape extends {
|
|
@@ -485,7 +493,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
485
493
|
|
|
486
494
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
487
495
|
type Viewport = {
|
|
488
|
-
width: number
|
|
496
|
+
width: number;
|
|
489
497
|
height?: number | "auto";
|
|
490
498
|
label?: string;
|
|
491
499
|
icon?: iconTypes | ReactNode;
|
|
@@ -499,13 +507,8 @@ type Permissions = {
|
|
|
499
507
|
insert: boolean;
|
|
500
508
|
} & Record<string, boolean>;
|
|
501
509
|
type Plugin<UserConfig extends Config = Config> = {
|
|
502
|
-
name?: string;
|
|
503
|
-
label?: string;
|
|
504
|
-
icon?: ReactNode;
|
|
505
|
-
render?: () => ReactElement;
|
|
506
510
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
507
511
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
508
|
-
mobilePanelHeight?: "toggle" | "min-content";
|
|
509
512
|
};
|
|
510
513
|
type Slot<Props extends {
|
|
511
514
|
[key: string]: DefaultComponentProps;
|
package/dist/index.d.ts
CHANGED
|
@@ -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;
|
|
@@ -147,7 +152,7 @@ type DropZoneProps = {
|
|
|
147
152
|
};
|
|
148
153
|
|
|
149
154
|
type PuckContext = {
|
|
150
|
-
renderDropZone: React.
|
|
155
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
151
156
|
metadata: Metadata;
|
|
152
157
|
isEditing: boolean;
|
|
153
158
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -195,6 +200,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
195
200
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
196
201
|
props?: Partial<Props>;
|
|
197
202
|
};
|
|
203
|
+
interface ComponentConfigExtensions {
|
|
204
|
+
}
|
|
198
205
|
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
206
|
UserField extends BaseField = {}> = {
|
|
200
207
|
render: PuckComponent<RenderProps>;
|
|
@@ -210,7 +217,7 @@ UserField extends BaseField = {}> = {
|
|
|
210
217
|
fields: Fields<FieldProps>;
|
|
211
218
|
lastFields: Fields<FieldProps>;
|
|
212
219
|
lastData: DataShape | null;
|
|
213
|
-
metadata:
|
|
220
|
+
metadata: ComponentMetadata;
|
|
214
221
|
appState: AppState;
|
|
215
222
|
parent: ComponentData | null;
|
|
216
223
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -219,7 +226,7 @@ UserField extends BaseField = {}> = {
|
|
|
219
226
|
id: string;
|
|
220
227
|
}>;
|
|
221
228
|
lastData: DataShape | null;
|
|
222
|
-
metadata:
|
|
229
|
+
metadata: ComponentMetadata;
|
|
223
230
|
trigger: ResolveDataTrigger;
|
|
224
231
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
225
232
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -231,8 +238,8 @@ UserField extends BaseField = {}> = {
|
|
|
231
238
|
appState: AppState;
|
|
232
239
|
lastData: DataShape | null;
|
|
233
240
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
234
|
-
metadata?:
|
|
235
|
-
};
|
|
241
|
+
metadata?: ComponentMetadata;
|
|
242
|
+
} & ComponentConfigExtensions;
|
|
236
243
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
237
244
|
type Category<ComponentName> = {
|
|
238
245
|
components?: ComponentName[];
|
|
@@ -259,6 +266,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
259
266
|
type: string;
|
|
260
267
|
} ? UserField : Field;
|
|
261
268
|
} : never;
|
|
269
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
270
|
+
components?: Components;
|
|
271
|
+
root?: RootProps;
|
|
272
|
+
categories?: CategoryNames;
|
|
273
|
+
fields?: AssertHasValue<UserFields>;
|
|
274
|
+
};
|
|
262
275
|
|
|
263
276
|
type BaseData<Props extends {
|
|
264
277
|
[key: string]: any;
|
|
@@ -298,11 +311,16 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
298
311
|
type Metadata = {
|
|
299
312
|
[key: string]: any;
|
|
300
313
|
};
|
|
314
|
+
interface PuckMetadata extends Metadata {
|
|
315
|
+
}
|
|
316
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
317
|
+
}
|
|
318
|
+
interface FieldMetadata extends Metadata {
|
|
319
|
+
}
|
|
301
320
|
|
|
302
321
|
type ItemWithId = {
|
|
303
322
|
_arrayId: string;
|
|
304
323
|
_originalIndex: number;
|
|
305
|
-
_currentIndex: number;
|
|
306
324
|
};
|
|
307
325
|
type ArrayState = {
|
|
308
326
|
items: ItemWithId[];
|
|
@@ -313,7 +331,6 @@ type UiState = {
|
|
|
313
331
|
rightSideBarVisible: boolean;
|
|
314
332
|
leftSideBarWidth?: number | null;
|
|
315
333
|
rightSideBarWidth?: number | null;
|
|
316
|
-
mobilePanelExpanded?: boolean;
|
|
317
334
|
itemSelector: ItemSelector | null;
|
|
318
335
|
arrayState: Record<string, ArrayState | undefined>;
|
|
319
336
|
previewMode: "interactive" | "edit";
|
|
@@ -326,7 +343,7 @@ type UiState = {
|
|
|
326
343
|
isDragging: boolean;
|
|
327
344
|
viewports: {
|
|
328
345
|
current: {
|
|
329
|
-
width: number
|
|
346
|
+
width: number;
|
|
330
347
|
height: number | "auto";
|
|
331
348
|
};
|
|
332
349
|
controlsVisible: boolean;
|
|
@@ -335,9 +352,6 @@ type UiState = {
|
|
|
335
352
|
field: {
|
|
336
353
|
focus?: string | null;
|
|
337
354
|
};
|
|
338
|
-
plugin: {
|
|
339
|
-
current: string | null;
|
|
340
|
-
};
|
|
341
355
|
};
|
|
342
356
|
type AppState<UserData extends Data = Data> = {
|
|
343
357
|
data: UserData;
|
|
@@ -371,12 +385,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
371
385
|
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
386
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
373
387
|
} : 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
388
|
type FieldsExtension = {
|
|
381
389
|
[Type in string]: {
|
|
382
390
|
type: Type;
|
|
@@ -387,11 +395,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
387
395
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
388
396
|
never
|
|
389
397
|
] ? False : True;
|
|
390
|
-
type RenderFunc<Props extends {
|
|
391
|
-
[key: string]: any;
|
|
392
|
-
} = {
|
|
393
|
-
children: ReactNode;
|
|
394
|
-
}> = (props: Props) => ReactElement;
|
|
395
398
|
|
|
396
399
|
type MapFnParams<ThisField = Field> = {
|
|
397
400
|
value: any;
|
|
@@ -415,6 +418,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
415
418
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
416
419
|
}>;
|
|
417
420
|
|
|
421
|
+
type RenderFunc<Props extends {
|
|
422
|
+
[key: string]: any;
|
|
423
|
+
} = {
|
|
424
|
+
children: ReactNode;
|
|
425
|
+
}> = (props: Props) => ReactElement;
|
|
418
426
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
419
427
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
420
428
|
type OverridesGeneric<Shape extends {
|
|
@@ -485,7 +493,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
485
493
|
|
|
486
494
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
487
495
|
type Viewport = {
|
|
488
|
-
width: number
|
|
496
|
+
width: number;
|
|
489
497
|
height?: number | "auto";
|
|
490
498
|
label?: string;
|
|
491
499
|
icon?: iconTypes | ReactNode;
|
|
@@ -499,13 +507,8 @@ type Permissions = {
|
|
|
499
507
|
insert: boolean;
|
|
500
508
|
} & Record<string, boolean>;
|
|
501
509
|
type Plugin<UserConfig extends Config = Config> = {
|
|
502
|
-
name?: string;
|
|
503
|
-
label?: string;
|
|
504
|
-
icon?: ReactNode;
|
|
505
|
-
render?: () => ReactElement;
|
|
506
510
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
507
511
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
508
|
-
mobilePanelHeight?: "toggle" | "min-content";
|
|
509
512
|
};
|
|
510
513
|
type Slot<Props extends {
|
|
511
514
|
[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.ace4c8b3",
|
|
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.ace4c8b3",
|
|
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",
|