@measured/puck-plugin-emotion-cache 0.21.0-canary.74d9a160 → 0.21.0-canary.8416d520
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 +64 -45
- package/dist/index.d.ts +64 -45
- 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>;
|
|
@@ -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,17 @@ 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
|
+
key?: string;
|
|
122
|
+
}
|
|
123
|
+
interface SlotField extends BaseField {
|
|
123
124
|
type: "slot";
|
|
124
125
|
allow?: string[];
|
|
125
126
|
disallow?: string[];
|
|
126
|
-
}
|
|
127
|
+
}
|
|
127
128
|
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
128
129
|
[key: string]: any;
|
|
129
130
|
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
@@ -151,7 +152,7 @@ type DropZoneProps = {
|
|
|
151
152
|
};
|
|
152
153
|
|
|
153
154
|
type PuckContext = {
|
|
154
|
-
renderDropZone: React.
|
|
155
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
155
156
|
metadata: Metadata;
|
|
156
157
|
isEditing: boolean;
|
|
157
158
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -199,6 +200,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
199
200
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
200
201
|
props?: Partial<Props>;
|
|
201
202
|
};
|
|
203
|
+
interface ComponentConfigExtensions {
|
|
204
|
+
}
|
|
202
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.
|
|
203
206
|
UserField extends BaseField = {}> = {
|
|
204
207
|
render: PuckComponent<RenderProps>;
|
|
@@ -214,7 +217,7 @@ UserField extends BaseField = {}> = {
|
|
|
214
217
|
fields: Fields<FieldProps>;
|
|
215
218
|
lastFields: Fields<FieldProps>;
|
|
216
219
|
lastData: DataShape | null;
|
|
217
|
-
metadata:
|
|
220
|
+
metadata: ComponentMetadata;
|
|
218
221
|
appState: AppState;
|
|
219
222
|
parent: ComponentData | null;
|
|
220
223
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -223,7 +226,7 @@ UserField extends BaseField = {}> = {
|
|
|
223
226
|
id: string;
|
|
224
227
|
}>;
|
|
225
228
|
lastData: DataShape | null;
|
|
226
|
-
metadata:
|
|
229
|
+
metadata: ComponentMetadata;
|
|
227
230
|
trigger: ResolveDataTrigger;
|
|
228
231
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
229
232
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -235,8 +238,8 @@ UserField extends BaseField = {}> = {
|
|
|
235
238
|
appState: AppState;
|
|
236
239
|
lastData: DataShape | null;
|
|
237
240
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
238
|
-
metadata?:
|
|
239
|
-
};
|
|
241
|
+
metadata?: ComponentMetadata;
|
|
242
|
+
} & ComponentConfigExtensions;
|
|
240
243
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
241
244
|
type Category<ComponentName> = {
|
|
242
245
|
components?: ComponentName[];
|
|
@@ -263,6 +266,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
263
266
|
type: string;
|
|
264
267
|
} ? UserField : Field;
|
|
265
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
|
+
};
|
|
266
275
|
|
|
267
276
|
type BaseData<Props extends {
|
|
268
277
|
[key: string]: any;
|
|
@@ -302,10 +311,17 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
302
311
|
type Metadata = {
|
|
303
312
|
[key: string]: any;
|
|
304
313
|
};
|
|
314
|
+
interface PuckMetadata extends Metadata {
|
|
315
|
+
}
|
|
316
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
317
|
+
}
|
|
318
|
+
interface FieldMetadata extends Metadata {
|
|
319
|
+
}
|
|
305
320
|
|
|
306
321
|
type ItemWithId = {
|
|
307
322
|
_arrayId: string;
|
|
308
323
|
_originalIndex: number;
|
|
324
|
+
_currentIndex: number;
|
|
309
325
|
};
|
|
310
326
|
type ArrayState = {
|
|
311
327
|
items: ItemWithId[];
|
|
@@ -316,6 +332,7 @@ type UiState = {
|
|
|
316
332
|
rightSideBarVisible: boolean;
|
|
317
333
|
leftSideBarWidth?: number | null;
|
|
318
334
|
rightSideBarWidth?: number | null;
|
|
335
|
+
mobilePanelExpanded?: boolean;
|
|
319
336
|
itemSelector: ItemSelector | null;
|
|
320
337
|
arrayState: Record<string, ArrayState | undefined>;
|
|
321
338
|
previewMode: "interactive" | "edit";
|
|
@@ -328,7 +345,7 @@ type UiState = {
|
|
|
328
345
|
isDragging: boolean;
|
|
329
346
|
viewports: {
|
|
330
347
|
current: {
|
|
331
|
-
width: number;
|
|
348
|
+
width: number | "100%";
|
|
332
349
|
height: number | "auto";
|
|
333
350
|
};
|
|
334
351
|
controlsVisible: boolean;
|
|
@@ -337,6 +354,9 @@ type UiState = {
|
|
|
337
354
|
field: {
|
|
338
355
|
focus?: string | null;
|
|
339
356
|
};
|
|
357
|
+
plugin: {
|
|
358
|
+
current: string | null;
|
|
359
|
+
};
|
|
340
360
|
};
|
|
341
361
|
type AppState<UserData extends Data = Data> = {
|
|
342
362
|
data: UserData;
|
|
@@ -370,12 +390,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
370
390
|
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
391
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
372
392
|
} : 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
393
|
type FieldsExtension = {
|
|
380
394
|
[Type in string]: {
|
|
381
395
|
type: Type;
|
|
@@ -386,6 +400,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
386
400
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
387
401
|
never
|
|
388
402
|
] ? False : True;
|
|
403
|
+
type RenderFunc<Props extends {
|
|
404
|
+
[key: string]: any;
|
|
405
|
+
} = {
|
|
406
|
+
children: ReactNode;
|
|
407
|
+
}> = (props: Props) => ReactElement;
|
|
389
408
|
|
|
390
409
|
type MapFnParams<ThisField = Field> = {
|
|
391
410
|
value: any;
|
|
@@ -409,11 +428,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
409
428
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
410
429
|
}>;
|
|
411
430
|
|
|
412
|
-
type RenderFunc<Props extends {
|
|
413
|
-
[key: string]: any;
|
|
414
|
-
} = {
|
|
415
|
-
children: ReactNode;
|
|
416
|
-
}> = (props: Props) => ReactElement;
|
|
417
431
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
418
432
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
419
433
|
type OverridesGeneric<Shape extends {
|
|
@@ -484,7 +498,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
484
498
|
|
|
485
499
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
486
500
|
type Viewport = {
|
|
487
|
-
width: number;
|
|
501
|
+
width: number | "100%";
|
|
488
502
|
height?: number | "auto";
|
|
489
503
|
label?: string;
|
|
490
504
|
icon?: iconTypes | ReactNode;
|
|
@@ -498,8 +512,13 @@ type Permissions = {
|
|
|
498
512
|
insert: boolean;
|
|
499
513
|
} & Record<string, boolean>;
|
|
500
514
|
type Plugin<UserConfig extends Config = Config> = {
|
|
515
|
+
name?: string;
|
|
516
|
+
label?: string;
|
|
517
|
+
icon?: ReactNode;
|
|
518
|
+
render?: () => ReactElement;
|
|
501
519
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
502
520
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
521
|
+
mobilePanelHeight?: "toggle" | "min-content";
|
|
503
522
|
};
|
|
504
523
|
type Slot<Props extends {
|
|
505
524
|
[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,17 @@ 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
|
+
key?: string;
|
|
122
|
+
}
|
|
123
|
+
interface SlotField extends BaseField {
|
|
123
124
|
type: "slot";
|
|
124
125
|
allow?: string[];
|
|
125
126
|
disallow?: string[];
|
|
126
|
-
}
|
|
127
|
+
}
|
|
127
128
|
type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
|
|
128
129
|
[key: string]: any;
|
|
129
130
|
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
@@ -151,7 +152,7 @@ type DropZoneProps = {
|
|
|
151
152
|
};
|
|
152
153
|
|
|
153
154
|
type PuckContext = {
|
|
154
|
-
renderDropZone: React.
|
|
155
|
+
renderDropZone: (props: DropZoneProps) => React.ReactNode;
|
|
155
156
|
metadata: Metadata;
|
|
156
157
|
isEditing: boolean;
|
|
157
158
|
dragRef: ((element: Element | null) => void) | null;
|
|
@@ -199,6 +200,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
|
|
|
199
200
|
type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
|
|
200
201
|
props?: Partial<Props>;
|
|
201
202
|
};
|
|
203
|
+
interface ComponentConfigExtensions {
|
|
204
|
+
}
|
|
202
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.
|
|
203
206
|
UserField extends BaseField = {}> = {
|
|
204
207
|
render: PuckComponent<RenderProps>;
|
|
@@ -214,7 +217,7 @@ UserField extends BaseField = {}> = {
|
|
|
214
217
|
fields: Fields<FieldProps>;
|
|
215
218
|
lastFields: Fields<FieldProps>;
|
|
216
219
|
lastData: DataShape | null;
|
|
217
|
-
metadata:
|
|
220
|
+
metadata: ComponentMetadata;
|
|
218
221
|
appState: AppState;
|
|
219
222
|
parent: ComponentData | null;
|
|
220
223
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -223,7 +226,7 @@ UserField extends BaseField = {}> = {
|
|
|
223
226
|
id: string;
|
|
224
227
|
}>;
|
|
225
228
|
lastData: DataShape | null;
|
|
226
|
-
metadata:
|
|
229
|
+
metadata: ComponentMetadata;
|
|
227
230
|
trigger: ResolveDataTrigger;
|
|
228
231
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
229
232
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -235,8 +238,8 @@ UserField extends BaseField = {}> = {
|
|
|
235
238
|
appState: AppState;
|
|
236
239
|
lastData: DataShape | null;
|
|
237
240
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
238
|
-
metadata?:
|
|
239
|
-
};
|
|
241
|
+
metadata?: ComponentMetadata;
|
|
242
|
+
} & ComponentConfigExtensions;
|
|
240
243
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
241
244
|
type Category<ComponentName> = {
|
|
242
245
|
components?: ComponentName[];
|
|
@@ -263,6 +266,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
263
266
|
type: string;
|
|
264
267
|
} ? UserField : Field;
|
|
265
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
|
+
};
|
|
266
275
|
|
|
267
276
|
type BaseData<Props extends {
|
|
268
277
|
[key: string]: any;
|
|
@@ -302,10 +311,17 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
302
311
|
type Metadata = {
|
|
303
312
|
[key: string]: any;
|
|
304
313
|
};
|
|
314
|
+
interface PuckMetadata extends Metadata {
|
|
315
|
+
}
|
|
316
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
317
|
+
}
|
|
318
|
+
interface FieldMetadata extends Metadata {
|
|
319
|
+
}
|
|
305
320
|
|
|
306
321
|
type ItemWithId = {
|
|
307
322
|
_arrayId: string;
|
|
308
323
|
_originalIndex: number;
|
|
324
|
+
_currentIndex: number;
|
|
309
325
|
};
|
|
310
326
|
type ArrayState = {
|
|
311
327
|
items: ItemWithId[];
|
|
@@ -316,6 +332,7 @@ type UiState = {
|
|
|
316
332
|
rightSideBarVisible: boolean;
|
|
317
333
|
leftSideBarWidth?: number | null;
|
|
318
334
|
rightSideBarWidth?: number | null;
|
|
335
|
+
mobilePanelExpanded?: boolean;
|
|
319
336
|
itemSelector: ItemSelector | null;
|
|
320
337
|
arrayState: Record<string, ArrayState | undefined>;
|
|
321
338
|
previewMode: "interactive" | "edit";
|
|
@@ -328,7 +345,7 @@ type UiState = {
|
|
|
328
345
|
isDragging: boolean;
|
|
329
346
|
viewports: {
|
|
330
347
|
current: {
|
|
331
|
-
width: number;
|
|
348
|
+
width: number | "100%";
|
|
332
349
|
height: number | "auto";
|
|
333
350
|
};
|
|
334
351
|
controlsVisible: boolean;
|
|
@@ -337,6 +354,9 @@ type UiState = {
|
|
|
337
354
|
field: {
|
|
338
355
|
focus?: string | null;
|
|
339
356
|
};
|
|
357
|
+
plugin: {
|
|
358
|
+
current: string | null;
|
|
359
|
+
};
|
|
340
360
|
};
|
|
341
361
|
type AppState<UserData extends Data = Data> = {
|
|
342
362
|
data: UserData;
|
|
@@ -370,12 +390,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
370
390
|
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
391
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
372
392
|
} : 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
393
|
type FieldsExtension = {
|
|
380
394
|
[Type in string]: {
|
|
381
395
|
type: Type;
|
|
@@ -386,6 +400,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
386
400
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
387
401
|
never
|
|
388
402
|
] ? False : True;
|
|
403
|
+
type RenderFunc<Props extends {
|
|
404
|
+
[key: string]: any;
|
|
405
|
+
} = {
|
|
406
|
+
children: ReactNode;
|
|
407
|
+
}> = (props: Props) => ReactElement;
|
|
389
408
|
|
|
390
409
|
type MapFnParams<ThisField = Field> = {
|
|
391
410
|
value: any;
|
|
@@ -409,11 +428,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
409
428
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
410
429
|
}>;
|
|
411
430
|
|
|
412
|
-
type RenderFunc<Props extends {
|
|
413
|
-
[key: string]: any;
|
|
414
|
-
} = {
|
|
415
|
-
children: ReactNode;
|
|
416
|
-
}> = (props: Props) => ReactElement;
|
|
417
431
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
418
432
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
419
433
|
type OverridesGeneric<Shape extends {
|
|
@@ -484,7 +498,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
484
498
|
|
|
485
499
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
486
500
|
type Viewport = {
|
|
487
|
-
width: number;
|
|
501
|
+
width: number | "100%";
|
|
488
502
|
height?: number | "auto";
|
|
489
503
|
label?: string;
|
|
490
504
|
icon?: iconTypes | ReactNode;
|
|
@@ -498,8 +512,13 @@ type Permissions = {
|
|
|
498
512
|
insert: boolean;
|
|
499
513
|
} & Record<string, boolean>;
|
|
500
514
|
type Plugin<UserConfig extends Config = Config> = {
|
|
515
|
+
name?: string;
|
|
516
|
+
label?: string;
|
|
517
|
+
icon?: ReactNode;
|
|
518
|
+
render?: () => ReactElement;
|
|
501
519
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
502
520
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
521
|
+
mobilePanelHeight?: "toggle" | "min-content";
|
|
503
522
|
};
|
|
504
523
|
type Slot<Props extends {
|
|
505
524
|
[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.8416d520",
|
|
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.8416d520",
|
|
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",
|