@measured/puck-plugin-emotion-cache 0.21.0-canary.e310a175 → 0.21.0-canary.e9d5c0ea

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