@measured/puck-plugin-emotion-cache 0.21.0-canary.6dae6cb7 → 0.21.0-canary.7dca3a5a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts 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
- 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>;
@@ -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,16 +114,16 @@ 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
+ }
122
+ interface SlotField extends BaseField {
119
123
  type: "slot";
120
124
  allow?: string[];
121
125
  disallow?: string[];
122
- };
126
+ }
123
127
  type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
124
128
  [key: string]: any;
125
129
  }[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
@@ -147,7 +151,7 @@ type DropZoneProps = {
147
151
  };
148
152
 
149
153
  type PuckContext = {
150
- renderDropZone: React.FC<DropZoneProps>;
154
+ renderDropZone: (props: DropZoneProps) => React.ReactNode;
151
155
  metadata: Metadata;
152
156
  isEditing: boolean;
153
157
  dragRef: ((element: Element | null) => void) | null;
@@ -195,6 +199,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
195
199
  type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
196
200
  props?: Partial<Props>;
197
201
  };
202
+ interface ComponentConfigExtensions {
203
+ }
198
204
  type ComponentConfigInternal<RenderProps extends DefaultComponentProps, FieldProps extends DefaultComponentProps, DataShape = Omit<ComponentData<FieldProps>, "type">, // NB this doesn't include AllProps, so types will not contain deep slot types. To fix, we require a breaking change.
199
205
  UserField extends BaseField = {}> = {
200
206
  render: PuckComponent<RenderProps>;
@@ -210,7 +216,7 @@ UserField extends BaseField = {}> = {
210
216
  fields: Fields<FieldProps>;
211
217
  lastFields: Fields<FieldProps>;
212
218
  lastData: DataShape | null;
213
- metadata: Metadata;
219
+ metadata: ComponentMetadata;
214
220
  appState: AppState;
215
221
  parent: ComponentData | null;
216
222
  }) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
@@ -219,7 +225,7 @@ UserField extends BaseField = {}> = {
219
225
  id: string;
220
226
  }>;
221
227
  lastData: DataShape | null;
222
- metadata: Metadata;
228
+ metadata: ComponentMetadata;
223
229
  trigger: ResolveDataTrigger;
224
230
  }) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
225
231
  resolvePermissions?: (data: DataShape, params: {
@@ -231,8 +237,8 @@ UserField extends BaseField = {}> = {
231
237
  appState: AppState;
232
238
  lastData: DataShape | null;
233
239
  }) => Promise<Partial<Permissions>> | Partial<Permissions>;
234
- metadata?: Metadata;
235
- };
240
+ metadata?: ComponentMetadata;
241
+ } & ComponentConfigExtensions;
236
242
  type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
237
243
  type Category<ComponentName> = {
238
244
  components?: ComponentName[];
@@ -259,6 +265,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
259
265
  type: string;
260
266
  } ? UserField : Field;
261
267
  } : never;
268
+ type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
269
+ components?: Components;
270
+ root?: RootProps;
271
+ categories?: CategoryNames;
272
+ fields?: AssertHasValue<UserFields>;
273
+ };
262
274
 
263
275
  type BaseData<Props extends {
264
276
  [key: string]: any;
@@ -298,6 +310,12 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
298
310
  type Metadata = {
299
311
  [key: string]: any;
300
312
  };
313
+ interface PuckMetadata extends Metadata {
314
+ }
315
+ interface ComponentMetadata extends PuckMetadata {
316
+ }
317
+ interface FieldMetadata extends Metadata {
318
+ }
301
319
 
302
320
  type ItemWithId = {
303
321
  _arrayId: string;
@@ -312,6 +330,7 @@ type UiState = {
312
330
  rightSideBarVisible: boolean;
313
331
  leftSideBarWidth?: number | null;
314
332
  rightSideBarWidth?: number | null;
333
+ mobilePanelExpanded?: boolean;
315
334
  itemSelector: ItemSelector | null;
316
335
  arrayState: Record<string, ArrayState | undefined>;
317
336
  previewMode: "interactive" | "edit";
@@ -324,7 +343,7 @@ type UiState = {
324
343
  isDragging: boolean;
325
344
  viewports: {
326
345
  current: {
327
- width: number;
346
+ width: number | "100%";
328
347
  height: number | "auto";
329
348
  };
330
349
  controlsVisible: boolean;
@@ -333,6 +352,9 @@ type UiState = {
333
352
  field: {
334
353
  focus?: string | null;
335
354
  };
355
+ plugin: {
356
+ current: string | null;
357
+ };
336
358
  };
337
359
  type AppState<UserData extends Data = Data> = {
338
360
  data: UserData;
@@ -366,12 +388,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
366
388
  type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
367
389
  [K in keyof T]: WithDeepSlots<T[K], SlotType>;
368
390
  } : T;
369
- type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
370
- components?: Components;
371
- root?: RootProps;
372
- categories?: CategoryNames;
373
- fields?: AssertHasValue<UserFields>;
374
- };
375
391
  type FieldsExtension = {
376
392
  [Type in string]: {
377
393
  type: Type;
@@ -382,6 +398,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
382
398
  type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
383
399
  never
384
400
  ] ? False : True;
401
+ type RenderFunc<Props extends {
402
+ [key: string]: any;
403
+ } = {
404
+ children: ReactNode;
405
+ }> = (props: Props) => ReactElement;
385
406
 
386
407
  type MapFnParams<ThisField = Field> = {
387
408
  value: any;
@@ -405,11 +426,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
405
426
  [Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
406
427
  }>;
407
428
 
408
- type RenderFunc<Props extends {
409
- [key: string]: any;
410
- } = {
411
- children: ReactNode;
412
- }> = (props: Props) => ReactElement;
413
429
  declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
414
430
  type OverrideKey = (typeof overrideKeys)[number];
415
431
  type OverridesGeneric<Shape extends {
@@ -480,7 +496,7 @@ type DragAxis = "dynamic" | "y" | "x";
480
496
 
481
497
  type iconTypes = "Smartphone" | "Monitor" | "Tablet";
482
498
  type Viewport = {
483
- width: number;
499
+ width: number | "100%";
484
500
  height?: number | "auto";
485
501
  label?: string;
486
502
  icon?: iconTypes | ReactNode;
@@ -494,8 +510,13 @@ type Permissions = {
494
510
  insert: boolean;
495
511
  } & Record<string, boolean>;
496
512
  type Plugin<UserConfig extends Config = Config> = {
513
+ name?: string;
514
+ label?: string;
515
+ icon?: ReactNode;
516
+ render?: () => ReactElement;
497
517
  overrides?: Partial<Overrides<UserConfig>>;
498
518
  fieldTransforms?: FieldTransforms<UserConfig>;
519
+ mobilePanelHeight?: "toggle" | "min-content";
499
520
  };
500
521
  type Slot<Props extends {
501
522
  [key: string]: DefaultComponentProps;
package/dist/index.d.ts CHANGED
@@ -10,63 +10,63 @@ type FieldOption = {
10
10
  value: string | number | boolean | undefined | null | object;
11
11
  };
12
12
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
13
- 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>;
@@ -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,16 +114,16 @@ 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
+ }
122
+ interface SlotField extends BaseField {
119
123
  type: "slot";
120
124
  allow?: string[];
121
125
  disallow?: string[];
122
- };
126
+ }
123
127
  type Field<ValueType = any, UserField extends {} = {}> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType extends {
124
128
  [key: string]: any;
125
129
  }[] ? ValueType : never, UserField> | ObjectField<ValueType, UserField> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
@@ -147,7 +151,7 @@ type DropZoneProps = {
147
151
  };
148
152
 
149
153
  type PuckContext = {
150
- renderDropZone: React.FC<DropZoneProps>;
154
+ renderDropZone: (props: DropZoneProps) => React.ReactNode;
151
155
  metadata: Metadata;
152
156
  isEditing: boolean;
153
157
  dragRef: ((element: Element | null) => void) | null;
@@ -195,6 +199,8 @@ type ResolveDataTrigger = "insert" | "replace" | "load" | "force";
195
199
  type WithPartialProps<T, Props extends DefaultComponentProps> = Omit<T, "props"> & {
196
200
  props?: Partial<Props>;
197
201
  };
202
+ interface ComponentConfigExtensions {
203
+ }
198
204
  type ComponentConfigInternal<RenderProps extends DefaultComponentProps, FieldProps extends DefaultComponentProps, DataShape = Omit<ComponentData<FieldProps>, "type">, // NB this doesn't include AllProps, so types will not contain deep slot types. To fix, we require a breaking change.
199
205
  UserField extends BaseField = {}> = {
200
206
  render: PuckComponent<RenderProps>;
@@ -210,7 +216,7 @@ UserField extends BaseField = {}> = {
210
216
  fields: Fields<FieldProps>;
211
217
  lastFields: Fields<FieldProps>;
212
218
  lastData: DataShape | null;
213
- metadata: Metadata;
219
+ metadata: ComponentMetadata;
214
220
  appState: AppState;
215
221
  parent: ComponentData | null;
216
222
  }) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
@@ -219,7 +225,7 @@ UserField extends BaseField = {}> = {
219
225
  id: string;
220
226
  }>;
221
227
  lastData: DataShape | null;
222
- metadata: Metadata;
228
+ metadata: ComponentMetadata;
223
229
  trigger: ResolveDataTrigger;
224
230
  }) => Promise<WithPartialProps<DataShape, FieldProps>> | WithPartialProps<DataShape, FieldProps>;
225
231
  resolvePermissions?: (data: DataShape, params: {
@@ -231,8 +237,8 @@ UserField extends BaseField = {}> = {
231
237
  appState: AppState;
232
238
  lastData: DataShape | null;
233
239
  }) => Promise<Partial<Permissions>> | Partial<Permissions>;
234
- metadata?: Metadata;
235
- };
240
+ metadata?: ComponentMetadata;
241
+ } & ComponentConfigExtensions;
236
242
  type RootConfigInternal<RootProps extends DefaultComponentProps = DefaultComponentProps, UserField extends BaseField = {}> = Partial<ComponentConfigInternal<WithChildren<RootProps>, AsFieldProps<RootProps>, RootData<AsFieldProps<RootProps>>, UserField>>;
237
243
  type Category<ComponentName> = {
238
244
  components?: ComponentName[];
@@ -259,6 +265,12 @@ type ExtractConfigParams<UserConfig extends ConfigInternal> = UserConfig extends
259
265
  type: string;
260
266
  } ? UserField : Field;
261
267
  } : never;
268
+ type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
269
+ components?: Components;
270
+ root?: RootProps;
271
+ categories?: CategoryNames;
272
+ fields?: AssertHasValue<UserFields>;
273
+ };
262
274
 
263
275
  type BaseData<Props extends {
264
276
  [key: string]: any;
@@ -298,6 +310,12 @@ type Data<Components extends DefaultComponents = DefaultComponents, RootProps ex
298
310
  type Metadata = {
299
311
  [key: string]: any;
300
312
  };
313
+ interface PuckMetadata extends Metadata {
314
+ }
315
+ interface ComponentMetadata extends PuckMetadata {
316
+ }
317
+ interface FieldMetadata extends Metadata {
318
+ }
301
319
 
302
320
  type ItemWithId = {
303
321
  _arrayId: string;
@@ -312,6 +330,7 @@ type UiState = {
312
330
  rightSideBarVisible: boolean;
313
331
  leftSideBarWidth?: number | null;
314
332
  rightSideBarWidth?: number | null;
333
+ mobilePanelExpanded?: boolean;
315
334
  itemSelector: ItemSelector | null;
316
335
  arrayState: Record<string, ArrayState | undefined>;
317
336
  previewMode: "interactive" | "edit";
@@ -324,7 +343,7 @@ type UiState = {
324
343
  isDragging: boolean;
325
344
  viewports: {
326
345
  current: {
327
- width: number;
346
+ width: number | "100%";
328
347
  height: number | "auto";
329
348
  };
330
349
  controlsVisible: boolean;
@@ -333,6 +352,9 @@ type UiState = {
333
352
  field: {
334
353
  focus?: string | null;
335
354
  };
355
+ plugin: {
356
+ current: string | null;
357
+ };
336
358
  };
337
359
  type AppState<UserData extends Data = Data> = {
338
360
  data: UserData;
@@ -366,12 +388,6 @@ type BuiltinTypes = Date | RegExp | Error | Function | symbol | null | undefined
366
388
  type WithDeepSlots<T, SlotType = T> = T extends Slot ? SlotType : T extends (infer U)[] ? Array<WithDeepSlots<U, SlotType>> : T extends (infer U)[] ? WithDeepSlots<U, SlotType>[] : T extends BuiltinTypes ? T : T extends object ? {
367
389
  [K in keyof T]: WithDeepSlots<T[K], SlotType>;
368
390
  } : T;
369
- type ConfigParams<Components extends DefaultComponents = DefaultComponents, RootProps extends DefaultComponentProps = any, CategoryNames extends string[] = string[], UserFields extends FieldsExtension = FieldsExtension> = {
370
- components?: Components;
371
- root?: RootProps;
372
- categories?: CategoryNames;
373
- fields?: AssertHasValue<UserFields>;
374
- };
375
391
  type FieldsExtension = {
376
392
  [Type in string]: {
377
393
  type: Type;
@@ -382,6 +398,11 @@ type LeftOrExactRight<Union, Left, Right> = (Left & Union extends Right ? Exact<
382
398
  type AssertHasValue<T, True = T, False = never> = [keyof T] extends [
383
399
  never
384
400
  ] ? False : True;
401
+ type RenderFunc<Props extends {
402
+ [key: string]: any;
403
+ } = {
404
+ children: ReactNode;
405
+ }> = (props: Props) => ReactElement;
385
406
 
386
407
  type MapFnParams<ThisField = Field> = {
387
408
  value: any;
@@ -405,11 +426,6 @@ G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>, UserField extends
405
426
  [Type in UserField["type"]]: FieldTransformFn<ExtractField<UserField, Type>>;
406
427
  }>;
407
428
 
408
- type RenderFunc<Props extends {
409
- [key: string]: any;
410
- } = {
411
- children: ReactNode;
412
- }> = (props: Props) => ReactElement;
413
429
  declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
414
430
  type OverrideKey = (typeof overrideKeys)[number];
415
431
  type OverridesGeneric<Shape extends {
@@ -480,7 +496,7 @@ type DragAxis = "dynamic" | "y" | "x";
480
496
 
481
497
  type iconTypes = "Smartphone" | "Monitor" | "Tablet";
482
498
  type Viewport = {
483
- width: number;
499
+ width: number | "100%";
484
500
  height?: number | "auto";
485
501
  label?: string;
486
502
  icon?: iconTypes | ReactNode;
@@ -494,8 +510,13 @@ type Permissions = {
494
510
  insert: boolean;
495
511
  } & Record<string, boolean>;
496
512
  type Plugin<UserConfig extends Config = Config> = {
513
+ name?: string;
514
+ label?: string;
515
+ icon?: ReactNode;
516
+ render?: () => ReactElement;
497
517
  overrides?: Partial<Overrides<UserConfig>>;
498
518
  fieldTransforms?: FieldTransforms<UserConfig>;
519
+ mobilePanelHeight?: "toggle" | "min-content";
499
520
  };
500
521
  type Slot<Props extends {
501
522
  [key: string]: DefaultComponentProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck-plugin-emotion-cache",
3
- "version": "0.21.0-canary.6dae6cb7",
3
+ "version": "0.21.0-canary.7dca3a5a",
4
4
  "author": "Chris Villa <chris@puckeditor.com>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "devDependencies": {
26
26
  "@emotion/react": "^11.13.3",
27
- "@measured/puck": "^0.21.0-canary.6dae6cb7",
27
+ "@measured/puck": "^0.21.0-canary.7dca3a5a",
28
28
  "@types/react": "^19.0.1",
29
29
  "@types/react-dom": "^19.0.2",
30
30
  "eslint": "^7.32.0",