@measured/puck-plugin-emotion-cache 0.21.0-canary.74d9a160 → 0.21.0-canary.7dca3a5a
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 +62 -45
- package/dist/index.d.ts +62 -45
- package/package.json +2 -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>;
|
|
@@ -85,9 +85,9 @@ type ExternalFieldWithAdaptor<Props extends any = {
|
|
|
85
85
|
type CacheOpts = {
|
|
86
86
|
enabled?: boolean;
|
|
87
87
|
};
|
|
88
|
-
|
|
88
|
+
interface ExternalField<Props extends any = {
|
|
89
89
|
[key: string]: any;
|
|
90
|
-
}>
|
|
90
|
+
}> extends BaseField {
|
|
91
91
|
type: "external";
|
|
92
92
|
cache?: CacheOpts;
|
|
93
93
|
placeholder?: string;
|
|
@@ -105,7 +105,7 @@ type ExternalField<Props extends any = {
|
|
|
105
105
|
initialQuery?: string;
|
|
106
106
|
filterFields?: Record<string, Field>;
|
|
107
107
|
initialFilters?: Record<string, any>;
|
|
108
|
-
}
|
|
108
|
+
}
|
|
109
109
|
type CustomFieldRender<Value extends any> = (props: {
|
|
110
110
|
field: CustomField<Value>;
|
|
111
111
|
name: string;
|
|
@@ -114,16 +114,16 @@ type CustomFieldRender<Value extends any> = (props: {
|
|
|
114
114
|
onChange: (value: Value) => void;
|
|
115
115
|
readOnly?: boolean;
|
|
116
116
|
}) => ReactElement;
|
|
117
|
-
|
|
117
|
+
interface CustomField<Value extends any> extends BaseField {
|
|
118
118
|
type: "custom";
|
|
119
119
|
render: CustomFieldRender<Value>;
|
|
120
120
|
contentEditable?: boolean;
|
|
121
|
-
}
|
|
122
|
-
|
|
121
|
+
}
|
|
122
|
+
interface SlotField extends BaseField {
|
|
123
123
|
type: "slot";
|
|
124
124
|
allow?: string[];
|
|
125
125
|
disallow?: string[];
|
|
126
|
-
}
|
|
126
|
+
}
|
|
127
127
|
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
128
128
|
[key: string]: any;
|
|
129
129
|
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
@@ -151,7 +151,7 @@ type DropZoneProps = {
|
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
type PuckContext = {
|
|
154
|
-
renderDropZone: React.
|
|
154
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
155
155
|
metadata: Metadata;
|
|
156
156
|
isEditing: boolean;
|
|
157
157
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -199,6 +199,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
199
199
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
200
200
|
props?: Partial<Props>;
|
|
201
201
|
};
|
|
202
|
+
interface ComponentConfigExtensions {
|
|
203
|
+
}
|
|
202
204
|
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.
|
|
203
205
|
UserField extends BaseField = {}> = {
|
|
204
206
|
render: PuckComponent<RenderProps>;
|
|
@@ -214,7 +216,7 @@ UserField extends BaseField = {}> = {
|
|
|
214
216
|
fields: Fields<FieldProps>;
|
|
215
217
|
lastFields: Fields<FieldProps>;
|
|
216
218
|
lastData: DataShape | null;
|
|
217
|
-
metadata:
|
|
219
|
+
metadata: ComponentMetadata;
|
|
218
220
|
appState: AppState;
|
|
219
221
|
parent: ComponentData | null;
|
|
220
222
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -223,7 +225,7 @@ UserField extends BaseField = {}> = {
|
|
|
223
225
|
id: string;
|
|
224
226
|
}>;
|
|
225
227
|
lastData: DataShape | null;
|
|
226
|
-
metadata:
|
|
228
|
+
metadata: ComponentMetadata;
|
|
227
229
|
trigger: ResolveDataTrigger;
|
|
228
230
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
229
231
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -235,8 +237,8 @@ UserField extends BaseField = {}> = {
|
|
|
235
237
|
appState: AppState;
|
|
236
238
|
lastData: DataShape | null;
|
|
237
239
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
238
|
-
metadata?:
|
|
239
|
-
};
|
|
240
|
+
metadata?: ComponentMetadata;
|
|
241
|
+
} & ComponentConfigExtensions;
|
|
240
242
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
241
243
|
type Category<ComponentName> = {
|
|
242
244
|
components?: ComponentName[];
|
|
@@ -263,6 +265,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
263
265
|
type: string;
|
|
264
266
|
} ? UserField : Field;
|
|
265
267
|
} : never;
|
|
268
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
269
|
+
components?: Components;
|
|
270
|
+
root?: RootProps;
|
|
271
|
+
categories?: CategoryNames;
|
|
272
|
+
fields?: AssertHasValue<UserFields>;
|
|
273
|
+
};
|
|
266
274
|
|
|
267
275
|
type BaseData<Props extends {
|
|
268
276
|
[key: string]: any;
|
|
@@ -302,6 +310,12 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
302
310
|
type Metadata = {
|
|
303
311
|
[key: string]: any;
|
|
304
312
|
};
|
|
313
|
+
interface PuckMetadata extends Metadata {
|
|
314
|
+
}
|
|
315
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
316
|
+
}
|
|
317
|
+
interface FieldMetadata extends Metadata {
|
|
318
|
+
}
|
|
305
319
|
|
|
306
320
|
type ItemWithId = {
|
|
307
321
|
_arrayId: string;
|
|
@@ -316,6 +330,7 @@ type UiState = {
|
|
|
316
330
|
rightSideBarVisible: boolean;
|
|
317
331
|
leftSideBarWidth?: number | null;
|
|
318
332
|
rightSideBarWidth?: number | null;
|
|
333
|
+
mobilePanelExpanded?: boolean;
|
|
319
334
|
itemSelector: ItemSelector | null;
|
|
320
335
|
arrayState: Record<string, ArrayState | undefined>;
|
|
321
336
|
previewMode: "interactive" | "edit";
|
|
@@ -328,7 +343,7 @@ type UiState = {
|
|
|
328
343
|
isDragging: boolean;
|
|
329
344
|
viewports: {
|
|
330
345
|
current: {
|
|
331
|
-
width: number;
|
|
346
|
+
width: number | "100%";
|
|
332
347
|
height: number | "auto";
|
|
333
348
|
};
|
|
334
349
|
controlsVisible: boolean;
|
|
@@ -337,6 +352,9 @@ type UiState = {
|
|
|
337
352
|
field: {
|
|
338
353
|
focus?: string | null;
|
|
339
354
|
};
|
|
355
|
+
plugin: {
|
|
356
|
+
current: string | null;
|
|
357
|
+
};
|
|
340
358
|
};
|
|
341
359
|
type AppState<UserData extends Data = Data> = {
|
|
342
360
|
data: UserData;
|
|
@@ -370,12 +388,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
370
388
|
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 ? {
|
|
371
389
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
372
390
|
} : T;
|
|
373
|
-
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
374
|
-
components?: Components;
|
|
375
|
-
root?: RootProps;
|
|
376
|
-
categories?: CategoryNames;
|
|
377
|
-
fields?: AssertHasValue<UserFields>;
|
|
378
|
-
};
|
|
379
391
|
type FieldsExtension = {
|
|
380
392
|
[Type in string]: {
|
|
381
393
|
type: Type;
|
|
@@ -386,6 +398,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
386
398
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
387
399
|
never
|
|
388
400
|
] ? False : True;
|
|
401
|
+
type RenderFunc<Props extends {
|
|
402
|
+
[key: string]: any;
|
|
403
|
+
} = {
|
|
404
|
+
children: ReactNode;
|
|
405
|
+
}> = (props: Props) => ReactElement;
|
|
389
406
|
|
|
390
407
|
type MapFnParams<ThisField = Field> = {
|
|
391
408
|
value: any;
|
|
@@ -409,11 +426,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
409
426
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
410
427
|
}>;
|
|
411
428
|
|
|
412
|
-
type RenderFunc<Props extends {
|
|
413
|
-
[key: string]: any;
|
|
414
|
-
} = {
|
|
415
|
-
children: ReactNode;
|
|
416
|
-
}> = (props: Props) => ReactElement;
|
|
417
429
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
418
430
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
419
431
|
type OverridesGeneric<Shape extends {
|
|
@@ -484,7 +496,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
484
496
|
|
|
485
497
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
486
498
|
type Viewport = {
|
|
487
|
-
width: number;
|
|
499
|
+
width: number | "100%";
|
|
488
500
|
height?: number | "auto";
|
|
489
501
|
label?: string;
|
|
490
502
|
icon?: iconTypes | ReactNode;
|
|
@@ -498,8 +510,13 @@ type Permissions = {
|
|
|
498
510
|
insert: boolean;
|
|
499
511
|
} & Record<string, boolean>;
|
|
500
512
|
type Plugin<UserConfig extends Config = Config> = {
|
|
513
|
+
name?: string;
|
|
514
|
+
label?: string;
|
|
515
|
+
icon?: ReactNode;
|
|
516
|
+
render?: () => ReactElement;
|
|
501
517
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
502
518
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
519
|
+
mobilePanelHeight?: "toggle" | "min-content";
|
|
503
520
|
};
|
|
504
521
|
type Slot<Props extends {
|
|
505
522
|
[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>;
|
|
@@ -85,9 +85,9 @@ type ExternalFieldWithAdaptor<Props extends any = {
|
|
|
85
85
|
type CacheOpts = {
|
|
86
86
|
enabled?: boolean;
|
|
87
87
|
};
|
|
88
|
-
|
|
88
|
+
interface ExternalField<Props extends any = {
|
|
89
89
|
[key: string]: any;
|
|
90
|
-
}>
|
|
90
|
+
}> extends BaseField {
|
|
91
91
|
type: "external";
|
|
92
92
|
cache?: CacheOpts;
|
|
93
93
|
placeholder?: string;
|
|
@@ -105,7 +105,7 @@ type ExternalField<Props extends any = {
|
|
|
105
105
|
initialQuery?: string;
|
|
106
106
|
filterFields?: Record<string, Field>;
|
|
107
107
|
initialFilters?: Record<string, any>;
|
|
108
|
-
}
|
|
108
|
+
}
|
|
109
109
|
type CustomFieldRender<Value extends any> = (props: {
|
|
110
110
|
field: CustomField<Value>;
|
|
111
111
|
name: string;
|
|
@@ -114,16 +114,16 @@ type CustomFieldRender<Value extends any> = (props: {
|
|
|
114
114
|
onChange: (value: Value) => void;
|
|
115
115
|
readOnly?: boolean;
|
|
116
116
|
}) => ReactElement;
|
|
117
|
-
|
|
117
|
+
interface CustomField<Value extends any> extends BaseField {
|
|
118
118
|
type: "custom";
|
|
119
119
|
render: CustomFieldRender<Value>;
|
|
120
120
|
contentEditable?: boolean;
|
|
121
|
-
}
|
|
122
|
-
|
|
121
|
+
}
|
|
122
|
+
interface SlotField extends BaseField {
|
|
123
123
|
type: "slot";
|
|
124
124
|
allow?: string[];
|
|
125
125
|
disallow?: string[];
|
|
126
|
-
}
|
|
126
|
+
}
|
|
127
127
|
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
128
128
|
[key: string]: any;
|
|
129
129
|
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
@@ -151,7 +151,7 @@ type DropZoneProps = {
|
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
type PuckContext = {
|
|
154
|
-
renderDropZone: React.
|
|
154
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
155
155
|
metadata: Metadata;
|
|
156
156
|
isEditing: boolean;
|
|
157
157
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -199,6 +199,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
199
199
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
200
200
|
props?: Partial<Props>;
|
|
201
201
|
};
|
|
202
|
+
interface ComponentConfigExtensions {
|
|
203
|
+
}
|
|
202
204
|
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.
|
|
203
205
|
UserField extends BaseField = {}> = {
|
|
204
206
|
render: PuckComponent<RenderProps>;
|
|
@@ -214,7 +216,7 @@ UserField extends BaseField = {}> = {
|
|
|
214
216
|
fields: Fields<FieldProps>;
|
|
215
217
|
lastFields: Fields<FieldProps>;
|
|
216
218
|
lastData: DataShape | null;
|
|
217
|
-
metadata:
|
|
219
|
+
metadata: ComponentMetadata;
|
|
218
220
|
appState: AppState;
|
|
219
221
|
parent: ComponentData | null;
|
|
220
222
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -223,7 +225,7 @@ UserField extends BaseField = {}> = {
|
|
|
223
225
|
id: string;
|
|
224
226
|
}>;
|
|
225
227
|
lastData: DataShape | null;
|
|
226
|
-
metadata:
|
|
228
|
+
metadata: ComponentMetadata;
|
|
227
229
|
trigger: ResolveDataTrigger;
|
|
228
230
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
229
231
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -235,8 +237,8 @@ UserField extends BaseField = {}> = {
|
|
|
235
237
|
appState: AppState;
|
|
236
238
|
lastData: DataShape | null;
|
|
237
239
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
238
|
-
metadata?:
|
|
239
|
-
};
|
|
240
|
+
metadata?: ComponentMetadata;
|
|
241
|
+
} & ComponentConfigExtensions;
|
|
240
242
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
241
243
|
type Category<ComponentName> = {
|
|
242
244
|
components?: ComponentName[];
|
|
@@ -263,6 +265,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
263
265
|
type: string;
|
|
264
266
|
} ? UserField : Field;
|
|
265
267
|
} : never;
|
|
268
|
+
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
269
|
+
components?: Components;
|
|
270
|
+
root?: RootProps;
|
|
271
|
+
categories?: CategoryNames;
|
|
272
|
+
fields?: AssertHasValue<UserFields>;
|
|
273
|
+
};
|
|
266
274
|
|
|
267
275
|
type BaseData<Props extends {
|
|
268
276
|
[key: string]: any;
|
|
@@ -302,6 +310,12 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
302
310
|
type Metadata = {
|
|
303
311
|
[key: string]: any;
|
|
304
312
|
};
|
|
313
|
+
interface PuckMetadata extends Metadata {
|
|
314
|
+
}
|
|
315
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
316
|
+
}
|
|
317
|
+
interface FieldMetadata extends Metadata {
|
|
318
|
+
}
|
|
305
319
|
|
|
306
320
|
type ItemWithId = {
|
|
307
321
|
_arrayId: string;
|
|
@@ -316,6 +330,7 @@ type UiState = {
|
|
|
316
330
|
rightSideBarVisible: boolean;
|
|
317
331
|
leftSideBarWidth?: number | null;
|
|
318
332
|
rightSideBarWidth?: number | null;
|
|
333
|
+
mobilePanelExpanded?: boolean;
|
|
319
334
|
itemSelector: ItemSelector | null;
|
|
320
335
|
arrayState: Record<string, ArrayState | undefined>;
|
|
321
336
|
previewMode: "interactive" | "edit";
|
|
@@ -328,7 +343,7 @@ type UiState = {
|
|
|
328
343
|
isDragging: boolean;
|
|
329
344
|
viewports: {
|
|
330
345
|
current: {
|
|
331
|
-
width: number;
|
|
346
|
+
width: number | "100%";
|
|
332
347
|
height: number | "auto";
|
|
333
348
|
};
|
|
334
349
|
controlsVisible: boolean;
|
|
@@ -337,6 +352,9 @@ type UiState = {
|
|
|
337
352
|
field: {
|
|
338
353
|
focus?: string | null;
|
|
339
354
|
};
|
|
355
|
+
plugin: {
|
|
356
|
+
current: string | null;
|
|
357
|
+
};
|
|
340
358
|
};
|
|
341
359
|
type AppState<UserData extends Data = Data> = {
|
|
342
360
|
data: UserData;
|
|
@@ -370,12 +388,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
370
388
|
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 ? {
|
|
371
389
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
372
390
|
} : T;
|
|
373
|
-
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
374
|
-
components?: Components;
|
|
375
|
-
root?: RootProps;
|
|
376
|
-
categories?: CategoryNames;
|
|
377
|
-
fields?: AssertHasValue<UserFields>;
|
|
378
|
-
};
|
|
379
391
|
type FieldsExtension = {
|
|
380
392
|
[Type in string]: {
|
|
381
393
|
type: Type;
|
|
@@ -386,6 +398,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
386
398
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
387
399
|
never
|
|
388
400
|
] ? False : True;
|
|
401
|
+
type RenderFunc<Props extends {
|
|
402
|
+
[key: string]: any;
|
|
403
|
+
} = {
|
|
404
|
+
children: ReactNode;
|
|
405
|
+
}> = (props: Props) => ReactElement;
|
|
389
406
|
|
|
390
407
|
type MapFnParams<ThisField = Field> = {
|
|
391
408
|
value: any;
|
|
@@ -409,11 +426,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
409
426
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
410
427
|
}>;
|
|
411
428
|
|
|
412
|
-
type RenderFunc<Props extends {
|
|
413
|
-
[key: string]: any;
|
|
414
|
-
} = {
|
|
415
|
-
children: ReactNode;
|
|
416
|
-
}> = (props: Props) => ReactElement;
|
|
417
429
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
418
430
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
419
431
|
type OverridesGeneric<Shape extends {
|
|
@@ -484,7 +496,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
484
496
|
|
|
485
497
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
486
498
|
type Viewport = {
|
|
487
|
-
width: number;
|
|
499
|
+
width: number | "100%";
|
|
488
500
|
height?: number | "auto";
|
|
489
501
|
label?: string;
|
|
490
502
|
icon?: iconTypes | ReactNode;
|
|
@@ -498,8 +510,13 @@ type Permissions = {
|
|
|
498
510
|
insert: boolean;
|
|
499
511
|
} & Record<string, boolean>;
|
|
500
512
|
type Plugin<UserConfig extends Config = Config> = {
|
|
513
|
+
name?: string;
|
|
514
|
+
label?: string;
|
|
515
|
+
icon?: ReactNode;
|
|
516
|
+
render?: () => ReactElement;
|
|
501
517
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
502
518
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
519
|
+
mobilePanelHeight?: "toggle" | "min-content";
|
|
503
520
|
};
|
|
504
521
|
type Slot<Props extends {
|
|
505
522
|
[key: string]: DefaultComponentProps;
|
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.7dca3a5a",
|
|
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,7 @@
|
|
|
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.7dca3a5a",
|
|
28
28
|
"@types/react": "^19.0.1",
|
|
29
29
|
"@types/react-dom": "^19.0.2",
|
|
30
30
|
"eslint": "^7.32.0",
|