@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 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
- type BaseField = {
13
+ interface BaseField {
14
14
  label?: string;
15
15
  labelIcon?: ReactElement;
16
- metadata?: Metadata;
16
+ metadata?: FieldMetadata;
17
17
  visible?: boolean;
18
- };
19
- type TextField = BaseField & {
18
+ }
19
+ interface TextField extends BaseField {
20
20
  type: "text";
21
21
  placeholder?: string;
22
22
  contentEditable?: boolean;
23
- };
24
- type NumberField = BaseField & {
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
- type TextareaField = BaseField & {
30
+ }
31
+ interface TextareaField extends BaseField {
32
32
  type: "textarea";
33
33
  placeholder?: string;
34
34
  contentEditable?: boolean;
35
- };
36
- type SelectField = BaseField & {
35
+ }
36
+ interface SelectField extends BaseField {
37
37
  type: "select";
38
38
  options: FieldOptions;
39
- };
40
- type RadioField = BaseField & {
39
+ }
40
+ interface RadioField extends BaseField {
41
41
  type: "radio";
42
42
  options: FieldOptions;
43
- };
44
- type ArrayField<Props extends {
43
+ }
44
+ interface ArrayField<Props extends {
45
45
  [key: string]: any;
46
46
  }[] = {
47
47
  [key: string]: any;
48
- }[], UserField extends {} = {}> = BaseField & {
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
- type ObjectField<Props extends any = {
59
+ }
60
+ interface ObjectField<Props extends any = {
61
61
  [key: string]: any;
62
- }, UserField extends {} = {}> = BaseField & {
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 ? Record<string, any> : T;
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 ExternalField<Props extends any = {
85
+ type CacheOpts = {
86
+ enabled?: boolean;
87
+ };
88
+ interface ExternalField<Props extends any = {
86
89
  [key: string]: any;
87
- }> = BaseField & {
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
- type CustomField<Value extends any> = BaseField & {
117
+ interface CustomField<Value extends any> extends BaseField {
114
118
  type: "custom";
115
119
  render: CustomFieldRender<Value>;
116
120
  contentEditable?: boolean;
117
- };
118
- type SlotField = BaseField & {
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 : {}[], UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
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.FC<DropZoneProps>;
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: 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?: 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 = DefaultComponentProps, 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>;
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 | "100%";
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 | "100%";
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
- type BaseField = {
13
+ interface BaseField {
14
14
  label?: string;
15
15
  labelIcon?: ReactElement;
16
- metadata?: Metadata;
16
+ metadata?: FieldMetadata;
17
17
  visible?: boolean;
18
- };
19
- type TextField = BaseField & {
18
+ }
19
+ interface TextField extends BaseField {
20
20
  type: "text";
21
21
  placeholder?: string;
22
22
  contentEditable?: boolean;
23
- };
24
- type NumberField = BaseField & {
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
- type TextareaField = BaseField & {
30
+ }
31
+ interface TextareaField extends BaseField {
32
32
  type: "textarea";
33
33
  placeholder?: string;
34
34
  contentEditable?: boolean;
35
- };
36
- type SelectField = BaseField & {
35
+ }
36
+ interface SelectField extends BaseField {
37
37
  type: "select";
38
38
  options: FieldOptions;
39
- };
40
- type RadioField = BaseField & {
39
+ }
40
+ interface RadioField extends BaseField {
41
41
  type: "radio";
42
42
  options: FieldOptions;
43
- };
44
- type ArrayField<Props extends {
43
+ }
44
+ interface ArrayField<Props extends {
45
45
  [key: string]: any;
46
46
  }[] = {
47
47
  [key: string]: any;
48
- }[], UserField extends {} = {}> = BaseField & {
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
- type ObjectField<Props extends any = {
59
+ }
60
+ interface ObjectField<Props extends any = {
61
61
  [key: string]: any;
62
- }, UserField extends {} = {}> = BaseField & {
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 ? Record<string, any> : T;
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 ExternalField<Props extends any = {
85
+ type CacheOpts = {
86
+ enabled?: boolean;
87
+ };
88
+ interface ExternalField<Props extends any = {
86
89
  [key: string]: any;
87
- }> = BaseField & {
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
- type CustomField<Value extends any> = BaseField & {
117
+ interface CustomField<Value extends any> extends BaseField {
114
118
  type: "custom";
115
119
  render: CustomFieldRender<Value>;
116
120
  contentEditable?: boolean;
117
- };
118
- type SlotField = BaseField & {
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 : {}[], UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
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.FC<DropZoneProps>;
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: 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?: 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 = DefaultComponentProps, 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>;
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 | "100%";
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 | "100%";
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 plugin_emotion_cache_exports = {};
32
- __export(plugin_emotion_cache_exports, {
33
- default: () => plugin_emotion_cache_default
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ default: () => index_default
34
34
  });
35
- module.exports = __toCommonJS(plugin_emotion_cache_exports);
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 plugin_emotion_cache_default = createEmotionCachePlugin;
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 plugin_emotion_cache_default = createEmotionCachePlugin;
891
+ var index_default = createEmotionCachePlugin;
892
892
  export {
893
- plugin_emotion_cache_default as default
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.d32e582b",
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.d32e582b",
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",