@measured/puck-plugin-emotion-cache 0.21.0-canary.d32e582b → 0.21.0-canary.dfecd012
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 +63 -58
- package/dist/index.d.ts +63 -58
- package/dist/index.js +7 -7
- package/dist/index.mjs +4 -4
- package/package.json +4 -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,69 +10,69 @@ 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>;
|
|
73
73
|
mapProp?: (value: TableShape) => PropShape;
|
|
74
74
|
};
|
|
75
|
-
type NotUndefined<T> = T extends undefined ?
|
|
75
|
+
type NotUndefined<T> = T extends undefined ? never : T;
|
|
76
76
|
type ExternalFieldWithAdaptor<Props extends any = {
|
|
77
77
|
[key: string]: any;
|
|
78
78
|
}> = BaseField & {
|
|
@@ -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,19 +114,20 @@ 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
|
-
}[] ? ValueType :
|
|
130
|
+
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
126
131
|
type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps, UserField extends {} = {}> = {
|
|
127
132
|
[PropName in keyof Omit<ComponentProps, "editMode">]: UserField extends {
|
|
128
133
|
type: PropertyKey;
|
|
@@ -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,6 +218,7 @@ UserField extends BaseField = {}> = {
|
|
|
210
218
|
fields: Fields<FieldProps>;
|
|
211
219
|
lastFields: Fields<FieldProps>;
|
|
212
220
|
lastData: DataShape | null;
|
|
221
|
+
metadata: ComponentMetadata;
|
|
213
222
|
appState: AppState;
|
|
214
223
|
parent: ComponentData | null;
|
|
215
224
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -218,7 +227,7 @@ UserField extends BaseField = {}> = {
|
|
|
218
227
|
id: string;
|
|
219
228
|
}>;
|
|
220
229
|
lastData: DataShape | null;
|
|
221
|
-
metadata:
|
|
230
|
+
metadata: ComponentMetadata;
|
|
222
231
|
trigger: ResolveDataTrigger;
|
|
223
232
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
224
233
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -230,8 +239,8 @@ UserField extends BaseField = {}> = {
|
|
|
230
239
|
appState: AppState;
|
|
231
240
|
lastData: DataShape | null;
|
|
232
241
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
233
|
-
metadata?:
|
|
234
|
-
};
|
|
242
|
+
metadata?: ComponentMetadata;
|
|
243
|
+
} & ComponentConfigExtensions;
|
|
235
244
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
236
245
|
type Category<ComponentName> = {
|
|
237
246
|
components?: ComponentName[];
|
|
@@ -249,7 +258,7 @@ type ConfigInternal<Props extends DefaultComponents = DefaultComponents, RootPro
|
|
|
249
258
|
root?: RootConfigInternal<RootProps, UserField>;
|
|
250
259
|
};
|
|
251
260
|
type DefaultComponents = Record<string, any>;
|
|
252
|
-
type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps =
|
|
261
|
+
type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps = any, CategoryName extends string = string> = PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, never> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number]> : PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, infer ParamFields> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number], ParamFields[keyof ParamFields] & BaseField> : PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, any> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number], {}> : ConfigInternal<PropsOrParams, RootProps, CategoryName>;
|
|
253
262
|
type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends ConfigInternal<infer PropsOrParams, infer RootProps, infer CategoryName, infer UserField> ? {
|
|
254
263
|
props: PropsOrParams;
|
|
255
264
|
rootProps: RootProps & DefaultRootFieldProps;
|
|
@@ -258,6 +267,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
258
267
|
type: string;
|
|
259
268
|
} ? UserField : Field;
|
|
260
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
|
+
};
|
|
261
276
|
|
|
262
277
|
type BaseData<Props extends {
|
|
263
278
|
[key: string]: any;
|
|
@@ -297,11 +312,16 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
297
312
|
type Metadata = {
|
|
298
313
|
[key: string]: any;
|
|
299
314
|
};
|
|
315
|
+
interface PuckMetadata extends Metadata {
|
|
316
|
+
}
|
|
317
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
318
|
+
}
|
|
319
|
+
interface FieldMetadata extends Metadata {
|
|
320
|
+
}
|
|
300
321
|
|
|
301
322
|
type ItemWithId = {
|
|
302
323
|
_arrayId: string;
|
|
303
324
|
_originalIndex: number;
|
|
304
|
-
_currentIndex: number;
|
|
305
325
|
};
|
|
306
326
|
type ArrayState = {
|
|
307
327
|
items: ItemWithId[];
|
|
@@ -312,7 +332,6 @@ type UiState = {
|
|
|
312
332
|
rightSideBarVisible: boolean;
|
|
313
333
|
leftSideBarWidth?: number | null;
|
|
314
334
|
rightSideBarWidth?: number | null;
|
|
315
|
-
mobilePanelExpanded?: boolean;
|
|
316
335
|
itemSelector: ItemSelector | null;
|
|
317
336
|
arrayState: Record<string, ArrayState | undefined>;
|
|
318
337
|
previewMode: "interactive" | "edit";
|
|
@@ -325,7 +344,7 @@ type UiState = {
|
|
|
325
344
|
isDragging: boolean;
|
|
326
345
|
viewports: {
|
|
327
346
|
current: {
|
|
328
|
-
width: number
|
|
347
|
+
width: number;
|
|
329
348
|
height: number | "auto";
|
|
330
349
|
};
|
|
331
350
|
controlsVisible: boolean;
|
|
@@ -334,9 +353,6 @@ type UiState = {
|
|
|
334
353
|
field: {
|
|
335
354
|
focus?: string | null;
|
|
336
355
|
};
|
|
337
|
-
plugin: {
|
|
338
|
-
current: string | null;
|
|
339
|
-
};
|
|
340
356
|
};
|
|
341
357
|
type AppState<UserData extends Data = Data> = {
|
|
342
358
|
data: UserData;
|
|
@@ -370,12 +386,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
370
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 ? {
|
|
371
387
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
372
388
|
} : T;
|
|
373
|
-
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
374
|
-
components?: Components;
|
|
375
|
-
root?: RootProps;
|
|
376
|
-
categories?: CategoryNames;
|
|
377
|
-
fields?: AssertHasValue<UserFields>;
|
|
378
|
-
};
|
|
379
389
|
type FieldsExtension = {
|
|
380
390
|
[Type in string]: {
|
|
381
391
|
type: Type;
|
|
@@ -386,11 +396,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
386
396
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
387
397
|
never
|
|
388
398
|
] ? False : True;
|
|
389
|
-
type RenderFunc<Props extends {
|
|
390
|
-
[key: string]: any;
|
|
391
|
-
} = {
|
|
392
|
-
children: ReactNode;
|
|
393
|
-
}> = (props: Props) => ReactElement;
|
|
394
399
|
|
|
395
400
|
type MapFnParams<ThisField = Field> = {
|
|
396
401
|
value: any;
|
|
@@ -414,6 +419,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
414
419
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
415
420
|
}>;
|
|
416
421
|
|
|
422
|
+
type RenderFunc<Props extends {
|
|
423
|
+
[key: string]: any;
|
|
424
|
+
} = {
|
|
425
|
+
children: ReactNode;
|
|
426
|
+
}> = (props: Props) => ReactElement;
|
|
417
427
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
418
428
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
419
429
|
type OverridesGeneric<Shape extends {
|
|
@@ -484,7 +494,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
484
494
|
|
|
485
495
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
486
496
|
type Viewport = {
|
|
487
|
-
width: number
|
|
497
|
+
width: number;
|
|
488
498
|
height?: number | "auto";
|
|
489
499
|
label?: string;
|
|
490
500
|
icon?: iconTypes | ReactNode;
|
|
@@ -498,13 +508,8 @@ type Permissions = {
|
|
|
498
508
|
insert: boolean;
|
|
499
509
|
} & Record<string, boolean>;
|
|
500
510
|
type Plugin<UserConfig extends Config = Config> = {
|
|
501
|
-
name?: string;
|
|
502
|
-
label?: string;
|
|
503
|
-
icon?: ReactNode;
|
|
504
|
-
render?: () => ReactElement;
|
|
505
511
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
506
512
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
507
|
-
mobilePanelHeight?: "toggle" | "min-content";
|
|
508
513
|
};
|
|
509
514
|
type Slot<Props extends {
|
|
510
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,69 +10,69 @@ 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>;
|
|
73
73
|
mapProp?: (value: TableShape) => PropShape;
|
|
74
74
|
};
|
|
75
|
-
type NotUndefined<T> = T extends undefined ?
|
|
75
|
+
type NotUndefined<T> = T extends undefined ? never : T;
|
|
76
76
|
type ExternalFieldWithAdaptor<Props extends any = {
|
|
77
77
|
[key: string]: any;
|
|
78
78
|
}> = BaseField & {
|
|
@@ -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,19 +114,20 @@ 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
|
-
}[] ? ValueType :
|
|
130
|
+
}[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
|
|
126
131
|
type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps, UserField extends {} = {}> = {
|
|
127
132
|
[PropName in keyof Omit<ComponentProps, "editMode">]: UserField extends {
|
|
128
133
|
type: PropertyKey;
|
|
@@ -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,6 +218,7 @@ UserField extends BaseField = {}> = {
|
|
|
210
218
|
fields: Fields<FieldProps>;
|
|
211
219
|
lastFields: Fields<FieldProps>;
|
|
212
220
|
lastData: DataShape | null;
|
|
221
|
+
metadata: ComponentMetadata;
|
|
213
222
|
appState: AppState;
|
|
214
223
|
parent: ComponentData | null;
|
|
215
224
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
|
@@ -218,7 +227,7 @@ UserField extends BaseField = {}> = {
|
|
|
218
227
|
id: string;
|
|
219
228
|
}>;
|
|
220
229
|
lastData: DataShape | null;
|
|
221
|
-
metadata:
|
|
230
|
+
metadata: ComponentMetadata;
|
|
222
231
|
trigger: ResolveDataTrigger;
|
|
223
232
|
}) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
|
|
224
233
|
resolvePermissions?: (data: DataShape, params: {
|
|
@@ -230,8 +239,8 @@ UserField extends BaseField = {}> = {
|
|
|
230
239
|
appState: AppState;
|
|
231
240
|
lastData: DataShape | null;
|
|
232
241
|
}) => Promise<Partial<Permissions>> | Partial<Permissions>;
|
|
233
|
-
metadata?:
|
|
234
|
-
};
|
|
242
|
+
metadata?: ComponentMetadata;
|
|
243
|
+
} & ComponentConfigExtensions;
|
|
235
244
|
type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
|
|
236
245
|
type Category<ComponentName> = {
|
|
237
246
|
components?: ComponentName[];
|
|
@@ -249,7 +258,7 @@ type ConfigInternal<Props extends DefaultComponents = DefaultComponents, RootPro
|
|
|
249
258
|
root?: RootConfigInternal<RootProps, UserField>;
|
|
250
259
|
};
|
|
251
260
|
type DefaultComponents = Record<string, any>;
|
|
252
|
-
type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps =
|
|
261
|
+
type Config<PropsOrParams extends LeftOrExactRight<PropsOrParams, DefaultComponents, ConfigParams> = DefaultComponents | ConfigParams, RootProps extends DefaultComponentProps = any, CategoryName extends string = string> = PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, never> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number]> : PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, infer ParamFields> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number], ParamFields[keyof ParamFields] & BaseField> : PropsOrParams extends ConfigParams<infer ParamComponents, infer ParamRoot, infer ParamCategoryName, any> ? ConfigInternal<ParamComponents, ParamRoot, ParamCategoryName[number], {}> : ConfigInternal<PropsOrParams, RootProps, CategoryName>;
|
|
253
262
|
type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends ConfigInternal<infer PropsOrParams, infer RootProps, infer CategoryName, infer UserField> ? {
|
|
254
263
|
props: PropsOrParams;
|
|
255
264
|
rootProps: RootProps & DefaultRootFieldProps;
|
|
@@ -258,6 +267,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
|
|
|
258
267
|
type: string;
|
|
259
268
|
} ? UserField : Field;
|
|
260
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
|
+
};
|
|
261
276
|
|
|
262
277
|
type BaseData<Props extends {
|
|
263
278
|
[key: string]: any;
|
|
@@ -297,11 +312,16 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
|
|
|
297
312
|
type Metadata = {
|
|
298
313
|
[key: string]: any;
|
|
299
314
|
};
|
|
315
|
+
interface PuckMetadata extends Metadata {
|
|
316
|
+
}
|
|
317
|
+
interface ComponentMetadata extends PuckMetadata {
|
|
318
|
+
}
|
|
319
|
+
interface FieldMetadata extends Metadata {
|
|
320
|
+
}
|
|
300
321
|
|
|
301
322
|
type ItemWithId = {
|
|
302
323
|
_arrayId: string;
|
|
303
324
|
_originalIndex: number;
|
|
304
|
-
_currentIndex: number;
|
|
305
325
|
};
|
|
306
326
|
type ArrayState = {
|
|
307
327
|
items: ItemWithId[];
|
|
@@ -312,7 +332,6 @@ type UiState = {
|
|
|
312
332
|
rightSideBarVisible: boolean;
|
|
313
333
|
leftSideBarWidth?: number | null;
|
|
314
334
|
rightSideBarWidth?: number | null;
|
|
315
|
-
mobilePanelExpanded?: boolean;
|
|
316
335
|
itemSelector: ItemSelector | null;
|
|
317
336
|
arrayState: Record<string, ArrayState | undefined>;
|
|
318
337
|
previewMode: "interactive" | "edit";
|
|
@@ -325,7 +344,7 @@ type UiState = {
|
|
|
325
344
|
isDragging: boolean;
|
|
326
345
|
viewports: {
|
|
327
346
|
current: {
|
|
328
|
-
width: number
|
|
347
|
+
width: number;
|
|
329
348
|
height: number | "auto";
|
|
330
349
|
};
|
|
331
350
|
controlsVisible: boolean;
|
|
@@ -334,9 +353,6 @@ type UiState = {
|
|
|
334
353
|
field: {
|
|
335
354
|
focus?: string | null;
|
|
336
355
|
};
|
|
337
|
-
plugin: {
|
|
338
|
-
current: string | null;
|
|
339
|
-
};
|
|
340
356
|
};
|
|
341
357
|
type AppState<UserData extends Data = Data> = {
|
|
342
358
|
data: UserData;
|
|
@@ -370,12 +386,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
|
|
|
370
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 ? {
|
|
371
387
|
[K in keyof T]: WithDeepSlots<T[K], SlotType>;
|
|
372
388
|
} : T;
|
|
373
|
-
type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = DefaultComponentProps, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
|
|
374
|
-
components?: Components;
|
|
375
|
-
root?: RootProps;
|
|
376
|
-
categories?: CategoryNames;
|
|
377
|
-
fields?: AssertHasValue<UserFields>;
|
|
378
|
-
};
|
|
379
389
|
type FieldsExtension = {
|
|
380
390
|
[Type in string]: {
|
|
381
391
|
type: Type;
|
|
@@ -386,11 +396,6 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
|
|
|
386
396
|
type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
|
|
387
397
|
never
|
|
388
398
|
] ? False : True;
|
|
389
|
-
type RenderFunc<Props extends {
|
|
390
|
-
[key: string]: any;
|
|
391
|
-
} = {
|
|
392
|
-
children: ReactNode;
|
|
393
|
-
}> = (props: Props) => ReactElement;
|
|
394
399
|
|
|
395
400
|
type MapFnParams<ThisField = Field> = {
|
|
396
401
|
value: any;
|
|
@@ -414,6 +419,11 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
|
|
|
414
419
|
[Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
|
|
415
420
|
}>;
|
|
416
421
|
|
|
422
|
+
type RenderFunc<Props extends {
|
|
423
|
+
[key: string]: any;
|
|
424
|
+
} = {
|
|
425
|
+
children: ReactNode;
|
|
426
|
+
}> = (props: Props) => ReactElement;
|
|
417
427
|
declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
|
|
418
428
|
type OverrideKey = (typeof overrideKeys)[number];
|
|
419
429
|
type OverridesGeneric<Shape extends {
|
|
@@ -484,7 +494,7 @@ type DragAxis = "dynamic" | "y" | "x";
|
|
|
484
494
|
|
|
485
495
|
type iconTypes = "Smartphone" | "Monitor" | "Tablet";
|
|
486
496
|
type Viewport = {
|
|
487
|
-
width: number
|
|
497
|
+
width: number;
|
|
488
498
|
height?: number | "auto";
|
|
489
499
|
label?: string;
|
|
490
500
|
icon?: iconTypes | ReactNode;
|
|
@@ -498,13 +508,8 @@ type Permissions = {
|
|
|
498
508
|
insert: boolean;
|
|
499
509
|
} & Record<string, boolean>;
|
|
500
510
|
type Plugin<UserConfig extends Config = Config> = {
|
|
501
|
-
name?: string;
|
|
502
|
-
label?: string;
|
|
503
|
-
icon?: ReactNode;
|
|
504
|
-
render?: () => ReactElement;
|
|
505
511
|
overrides?: Partial<Overrides<UserConfig>>;
|
|
506
512
|
fieldTransforms?: FieldTransforms<UserConfig>;
|
|
507
|
-
mobilePanelHeight?: "toggle" | "min-content";
|
|
508
513
|
};
|
|
509
514
|
type Slot<Props extends {
|
|
510
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.dfecd012",
|
|
4
4
|
"author": "Chris Villa <chris@puckeditor.com>",
|
|
5
5
|
"repository": "measuredco/puck",
|
|
6
6
|
"bugs": "https://github.com/measuredco/puck/issues",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"exports": {
|
|
12
12
|
"import": "./dist/index.mjs",
|
|
13
|
+
"require": "./dist/index.js",
|
|
13
14
|
"types": "./dist/index.d.ts"
|
|
14
15
|
},
|
|
15
16
|
"license": "MIT",
|
|
@@ -23,7 +24,8 @@
|
|
|
23
24
|
],
|
|
24
25
|
"devDependencies": {
|
|
25
26
|
"@emotion/react": "^11.13.3",
|
|
26
|
-
"@measured/puck": "^0.21.0-canary.
|
|
27
|
+
"@measured/puck": "^0.21.0-canary.dfecd012",
|
|
28
|
+
"@types/minimatch": "3.0.5",
|
|
27
29
|
"@types/react": "^19.0.1",
|
|
28
30
|
"@types/react-dom": "^19.0.2",
|
|
29
31
|
"eslint": "^7.32.0",
|