@measured/puck 0.20.0-canary.755737e8 → 0.20.0-canary.77cef35d

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/rsc.mjs CHANGED
@@ -1,10 +1,14 @@
1
1
  import {
2
2
  Render,
3
+ init_react_import,
3
4
  migrate,
4
5
  resolveAllData,
5
6
  transformProps,
6
7
  walkTree
7
- } from "./chunk-IM42S4YL.mjs";
8
+ } from "./chunk-IP64IXIP.mjs";
9
+
10
+ // bundle/rsc.tsx
11
+ init_react_import();
8
12
  export {
9
13
  Render,
10
14
  migrate,
@@ -17,7 +17,7 @@ type DropZoneProps = {
17
17
 
18
18
  type FieldOption = {
19
19
  label: string;
20
- value: string | number | boolean;
20
+ value: string | number | boolean | undefined | null | object;
21
21
  };
22
22
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
23
23
  type BaseField = {
@@ -29,6 +29,7 @@ type BaseField = {
29
29
  type TextField = BaseField & {
30
30
  type: "text";
31
31
  placeholder?: string;
32
+ contentEditable?: boolean;
32
33
  };
33
34
  type NumberField = BaseField & {
34
35
  type: "number";
@@ -40,6 +41,7 @@ type NumberField = BaseField & {
40
41
  type TextareaField = BaseField & {
41
42
  type: "textarea";
42
43
  placeholder?: string;
44
+ contentEditable?: boolean;
43
45
  };
44
46
  type SelectField = BaseField & {
45
47
  type: "select";
@@ -49,11 +51,11 @@ type RadioField = BaseField & {
49
51
  type: "radio";
50
52
  options: FieldOptions;
51
53
  };
52
- type ArrayField<Props extends {
54
+ type ArrayField<Props extends any = {
53
55
  [key: string]: any;
54
- } = {
56
+ }> = Props extends {
55
57
  [key: string]: any;
56
- }> = BaseField & {
58
+ } ? BaseField & {
57
59
  type: "array";
58
60
  arrayFields: {
59
61
  [SubPropName in keyof Props[0]]: Field<Props[0][SubPropName]>;
@@ -62,14 +64,12 @@ type ArrayField<Props extends {
62
64
  getItemSummary?: (item: Props[0], index?: number) => string;
63
65
  max?: number;
64
66
  min?: number;
65
- };
66
- type ObjectField<Props extends {
67
- [key: string]: any;
68
- } = {
67
+ } : never;
68
+ type ObjectField<Props extends any = {
69
69
  [key: string]: any;
70
70
  }> = BaseField & {
71
71
  type: "object";
72
- objectFields: Props extends any[] ? never : {
72
+ objectFields: {
73
73
  [SubPropName in keyof Props]: Field<Props[SubPropName]>;
74
74
  };
75
75
  };
@@ -78,20 +78,17 @@ type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, Pr
78
78
  fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
79
79
  mapProp?: (value: TableShape) => PropShape;
80
80
  };
81
- type ExternalFieldWithAdaptor<Props extends {
82
- [key: string]: any;
83
- } = {
81
+ type NotUndefined<T> = T extends undefined ? Record<string, any> : T;
82
+ type ExternalFieldWithAdaptor<Props extends any = {
84
83
  [key: string]: any;
85
84
  }> = BaseField & {
86
85
  type: "external";
87
86
  placeholder?: string;
88
87
  adaptor: Adaptor<any, any, Props>;
89
88
  adaptorParams?: object;
90
- getItemSummary: (item: Props, index?: number) => string;
89
+ getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
91
90
  };
92
- type ExternalField<Props extends {
93
- [key: string]: any;
94
- } = {
91
+ type ExternalField<Props extends any = {
95
92
  [key: string]: any;
96
93
  }> = BaseField & {
97
94
  type: "external";
@@ -102,7 +99,7 @@ type ExternalField<Props extends {
102
99
  }) => Promise<any[] | null>;
103
100
  mapProp?: (value: any) => Props;
104
101
  mapRow?: (value: any) => Record<string, string | number | ReactElement>;
105
- getItemSummary?: (item: Props, index?: number) => string;
102
+ getItemSummary?: (item: NotUndefined<Props>, index?: number) => string;
106
103
  showSearch?: boolean;
107
104
  renderFooter?: (props: {
108
105
  items: any[];
@@ -122,21 +119,14 @@ type CustomFieldRender<Value extends any> = (props: {
122
119
  type CustomField<Value extends any> = BaseField & {
123
120
  type: "custom";
124
121
  render: CustomFieldRender<Value>;
122
+ contentEditable?: boolean;
125
123
  };
126
124
  type SlotField = BaseField & {
127
125
  type: "slot";
128
126
  allow?: string[];
129
127
  disallow?: string[];
130
128
  };
131
- type Field<Props extends any = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<Props extends {
132
- [key: string]: any;
133
- } ? Props : any> | ObjectField<Props extends {
134
- [key: string]: any;
135
- } ? Props : any> | ExternalField<Props extends {
136
- [key: string]: any;
137
- } ? Props : any> | ExternalFieldWithAdaptor<Props extends {
138
- [key: string]: any;
139
- } ? Props : any> | CustomField<Props> | SlotField;
129
+ type Field<ValueType = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType> | ObjectField<ValueType> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
140
130
  type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps> = {
141
131
  [PropName in keyof Omit<ComponentProps, "editMode">]: Field<ComponentProps[PropName]>;
142
132
  };
@@ -222,14 +212,18 @@ type WithChildren<Props> = Props & {
222
212
  };
223
213
  type ExtractPropsFromConfig<UserConfig> = UserConfig extends Config<infer P, any, any> ? P : never;
224
214
  type ExtractRootPropsFromConfig<UserConfig> = UserConfig extends Config<any, infer P, any> ? P : never;
225
- type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
215
+ type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserPublicAppState extends AppState<UserData> = AppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
226
216
  UserConfig: UserConfig;
227
217
  UserProps: UserProps;
228
218
  UserRootProps: UserRootProps;
229
219
  UserData: UserData;
230
220
  UserAppState: UserAppState;
221
+ UserPublicAppState: UserPublicAppState;
231
222
  UserComponentData: UserComponentData;
232
223
  };
224
+ type ExtractField<T extends Field["type"]> = Extract<Field, {
225
+ type: T;
226
+ }>;
233
227
 
234
228
  type PuckContext = {
235
229
  renderDropZone: React.FC<DropZoneProps>;
@@ -290,6 +284,7 @@ type Metadata = {
290
284
  type ItemWithId = {
291
285
  _arrayId: string;
292
286
  _originalIndex: number;
287
+ _currentIndex: number;
293
288
  };
294
289
  type ArrayState = {
295
290
  items: ItemWithId[];
@@ -298,6 +293,8 @@ type ArrayState = {
298
293
  type UiState = {
299
294
  leftSideBarVisible: boolean;
300
295
  rightSideBarVisible: boolean;
296
+ leftSideBarWidth?: number | null;
297
+ rightSideBarWidth?: number | null;
301
298
  itemSelector: ItemSelector | null;
302
299
  arrayState: Record<string, ArrayState | undefined>;
303
300
  previewMode: "interactive" | "edit";
@@ -359,7 +356,24 @@ type RenderFunc<Props extends {
359
356
  children: ReactNode;
360
357
  }> = (props: Props) => ReactElement;
361
358
 
362
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
359
+ type MapFnParams<ThisField = Field> = {
360
+ value: any;
361
+ parentId: string;
362
+ propName: string;
363
+ field: ThisField;
364
+ propPath: string;
365
+ };
366
+
367
+ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
368
+ isReadOnly: boolean;
369
+ componentId: string;
370
+ };
371
+ type FieldTransformFn<T = any> = (params: FieldTransformFnParams<T>) => any;
372
+ type FieldTransforms = Partial<{
373
+ [FieldType in Field["type"]]: FieldTransformFn<ExtractField<FieldType>>;
374
+ }>;
375
+
376
+ declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
363
377
  type OverrideKey = (typeof overrideKeys)[number];
364
378
  type OverridesGeneric<Shape extends {
365
379
  [key in OverrideKey]: any;
@@ -397,11 +411,23 @@ type Overrides = OverridesGeneric<{
397
411
  children: ReactNode;
398
412
  name: string;
399
413
  }>;
414
+ drawer: RenderFunc;
415
+ drawerItem: RenderFunc<{
416
+ children: ReactNode;
417
+ name: string;
418
+ }>;
400
419
  iframe: RenderFunc<{
401
420
  children: ReactNode;
402
421
  document?: Document;
403
422
  }>;
404
423
  outline: RenderFunc;
424
+ componentOverlay: RenderFunc<{
425
+ children: ReactNode;
426
+ hover: boolean;
427
+ isSelected: boolean;
428
+ componentId: string;
429
+ componentType: string;
430
+ }>;
405
431
  puck: RenderFunc;
406
432
  }>;
407
433
  type FieldRenderFunctions = Omit<{
@@ -448,6 +474,7 @@ type Plugin = {
448
474
  icon?: ReactNode;
449
475
  render?: () => ReactElement;
450
476
  overrides?: Partial<Overrides>;
477
+ fieldTransforms?: FieldTransforms;
451
478
  };
452
479
  type History<D = any> = {
453
480
  state: D;
@@ -539,7 +566,12 @@ type PuckAction = {
539
566
  recordHistory?: boolean;
540
567
  } & (ReorderAction | InsertAction | MoveAction | ReplaceAction | ReplaceRootAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
541
568
 
542
- declare function migrate(data: Data, config?: Config): Data;
569
+ type MigrationOptions<UserConfig extends Config> = {
570
+ migrateDynamicZonesForComponent?: {
571
+ [ComponentName in keyof UserConfig["components"]]: (props: WithId<UserGenerics<UserConfig>["UserProps"][ComponentName]>, zones: Record<string, Content>) => ComponentData["props"];
572
+ };
573
+ };
574
+ declare function migrate<UserConfig extends Config = Config>(data: Data, config?: UserConfig, migrationOptions?: MigrationOptions<UserConfig>): Data;
543
575
 
544
576
  type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
545
577
  [ComponentName in keyof Props]: (props: Props[ComponentName] & {
@@ -560,4 +592,4 @@ type WalkTreeOptions = {
560
592
  };
561
593
  declare function walkTree<T extends ComponentData | RootData | G["UserData"], UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(data: T, config: UserConfig, callbackFn: (data: Content, options: WalkTreeOptions) => Content | null | void): T;
562
594
 
563
- export { type ExternalFieldWithAdaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type MappedItem as E, type Fields as F, type ComponentDataMap as G, type History as H, type IframeConfig as I, type Content as J, type BaseField as K, type TextareaField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type SelectField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RadioField as X, type ArrayField as Y, type ObjectField as Z, type Adaptor as _, type Config as a, type ExternalField as a0, type CustomFieldRender as a1, type CustomField as a2, type SlotField as a3, type PuckContext as a4, type DefaultRootFieldProps as a5, type DefaultRootRenderProps as a6, type DefaultRootProps as a7, type DefaultComponentProps as a8, type WithId as a9, type WithPuckProps as aa, type AsFieldProps as ab, type WithChildren as ac, type ExtractPropsFromConfig as ad, type ExtractRootPropsFromConfig as ae, migrate as af, transformProps as ag, resolveAllData as ah, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type PuckComponent as u, type RootConfig as v, walkTree as w, type RootDataWithoutProps as x, type RootData as y, type ComponentDataOptionalId as z };
595
+ export { type NumberField as $, type AppState as A, type ArrayState as B, type Config as C, type DropZoneProps as D, type SlotComponent as E, type Fields as F, type PuckComponent as G, type History as H, type IframeConfig as I, type RootConfig as J, type BaseData as K, type RootDataWithoutProps as L, type Metadata as M, type RootData as N, type Overrides as O, type Permissions as P, type ComponentDataOptionalId as Q, type RootDataWithProps as R, type Slot as S, type MappedItem as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type ComponentDataMap as X, type Content as Y, type BaseField as Z, type TextField as _, type ComponentData as a, type TextareaField as a0, type SelectField as a1, type RadioField as a2, type ArrayField as a3, type ObjectField as a4, type Adaptor as a5, type ExternalFieldWithAdaptor as a6, type ExternalField as a7, type CustomFieldRender as a8, type CustomField as a9, type SlotField as aa, type PuckContext as ab, type DefaultRootFieldProps as ac, type DefaultRootRenderProps as ad, type DefaultRootProps as ae, type DefaultComponentProps as af, type WithId as ag, type WithPuckProps as ah, type AsFieldProps as ai, type WithChildren as aj, type ExtractPropsFromConfig as ak, type ExtractRootPropsFromConfig as al, type ExtractField as am, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type FieldTransforms as g, type Field as h, type FieldProps as i, type Data as j, type OnAction as k, type InitialHistory as l, migrate as m, type ItemSelector as n, type Direction as o, type DragAxis as p, type Viewport as q, resolveAllData as r, type FieldTransformFnParams as s, transformProps as t, type FieldTransformFn as u, overrideKeys as v, walkTree as w, type OverrideKey as x, type FieldRenderFunctions as y, type ItemWithId as z };
@@ -17,7 +17,7 @@ type DropZoneProps = {
17
17
 
18
18
  type FieldOption = {
19
19
  label: string;
20
- value: string | number | boolean;
20
+ value: string | number | boolean | undefined | null | object;
21
21
  };
22
22
  type FieldOptions = Array<FieldOption> | ReadonlyArray<FieldOption>;
23
23
  type BaseField = {
@@ -29,6 +29,7 @@ type BaseField = {
29
29
  type TextField = BaseField & {
30
30
  type: "text";
31
31
  placeholder?: string;
32
+ contentEditable?: boolean;
32
33
  };
33
34
  type NumberField = BaseField & {
34
35
  type: "number";
@@ -40,6 +41,7 @@ type NumberField = BaseField & {
40
41
  type TextareaField = BaseField & {
41
42
  type: "textarea";
42
43
  placeholder?: string;
44
+ contentEditable?: boolean;
43
45
  };
44
46
  type SelectField = BaseField & {
45
47
  type: "select";
@@ -49,11 +51,11 @@ type RadioField = BaseField & {
49
51
  type: "radio";
50
52
  options: FieldOptions;
51
53
  };
52
- type ArrayField<Props extends {
54
+ type ArrayField<Props extends any = {
53
55
  [key: string]: any;
54
- } = {
56
+ }> = Props extends {
55
57
  [key: string]: any;
56
- }> = BaseField & {
58
+ } ? BaseField & {
57
59
  type: "array";
58
60
  arrayFields: {
59
61
  [SubPropName in keyof Props[0]]: Field<Props[0][SubPropName]>;
@@ -62,14 +64,12 @@ type ArrayField<Props extends {
62
64
  getItemSummary?: (item: Props[0], index?: number) => string;
63
65
  max?: number;
64
66
  min?: number;
65
- };
66
- type ObjectField<Props extends {
67
- [key: string]: any;
68
- } = {
67
+ } : never;
68
+ type ObjectField<Props extends any = {
69
69
  [key: string]: any;
70
70
  }> = BaseField & {
71
71
  type: "object";
72
- objectFields: Props extends any[] ? never : {
72
+ objectFields: {
73
73
  [SubPropName in keyof Props]: Field<Props[SubPropName]>;
74
74
  };
75
75
  };
@@ -78,20 +78,17 @@ type Adaptor<AdaptorParams = {}, TableShape extends Record<string, any> = {}, Pr
78
78
  fetchList: (adaptorParams?: AdaptorParams) => Promise<TableShape[] | null>;
79
79
  mapProp?: (value: TableShape) => PropShape;
80
80
  };
81
- type ExternalFieldWithAdaptor<Props extends {
82
- [key: string]: any;
83
- } = {
81
+ type NotUndefined<T> = T extends undefined ? Record<string, any> : T;
82
+ type ExternalFieldWithAdaptor<Props extends any = {
84
83
  [key: string]: any;
85
84
  }> = BaseField & {
86
85
  type: "external";
87
86
  placeholder?: string;
88
87
  adaptor: Adaptor<any, any, Props>;
89
88
  adaptorParams?: object;
90
- getItemSummary: (item: Props, index?: number) => string;
89
+ getItemSummary: (item: NotUndefined<Props>, index?: number) => string;
91
90
  };
92
- type ExternalField<Props extends {
93
- [key: string]: any;
94
- } = {
91
+ type ExternalField<Props extends any = {
95
92
  [key: string]: any;
96
93
  }> = BaseField & {
97
94
  type: "external";
@@ -102,7 +99,7 @@ type ExternalField<Props extends {
102
99
  }) => Promise<any[] | null>;
103
100
  mapProp?: (value: any) => Props;
104
101
  mapRow?: (value: any) => Record<string, string | number | ReactElement>;
105
- getItemSummary?: (item: Props, index?: number) => string;
102
+ getItemSummary?: (item: NotUndefined<Props>, index?: number) => string;
106
103
  showSearch?: boolean;
107
104
  renderFooter?: (props: {
108
105
  items: any[];
@@ -122,21 +119,14 @@ type CustomFieldRender<Value extends any> = (props: {
122
119
  type CustomField<Value extends any> = BaseField & {
123
120
  type: "custom";
124
121
  render: CustomFieldRender<Value>;
122
+ contentEditable?: boolean;
125
123
  };
126
124
  type SlotField = BaseField & {
127
125
  type: "slot";
128
126
  allow?: string[];
129
127
  disallow?: string[];
130
128
  };
131
- type Field<Props extends any = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<Props extends {
132
- [key: string]: any;
133
- } ? Props : any> | ObjectField<Props extends {
134
- [key: string]: any;
135
- } ? Props : any> | ExternalField<Props extends {
136
- [key: string]: any;
137
- } ? Props : any> | ExternalFieldWithAdaptor<Props extends {
138
- [key: string]: any;
139
- } ? Props : any> | CustomField<Props> | SlotField;
129
+ type Field<ValueType = any> = TextField | NumberField | TextareaField | SelectField | RadioField | ArrayField<ValueType> | ObjectField<ValueType> | ExternalField<ValueType> | ExternalFieldWithAdaptor<ValueType> | CustomField<ValueType> | SlotField;
140
130
  type Fields<ComponentProps extends DefaultComponentProps = DefaultComponentProps> = {
141
131
  [PropName in keyof Omit<ComponentProps, "editMode">]: Field<ComponentProps[PropName]>;
142
132
  };
@@ -222,14 +212,18 @@ type WithChildren<Props> = Props & {
222
212
  };
223
213
  type ExtractPropsFromConfig<UserConfig> = UserConfig extends Config<infer P, any, any> ? P : never;
224
214
  type ExtractRootPropsFromConfig<UserConfig> = UserConfig extends Config<any, infer P, any> ? P : never;
225
- type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
215
+ type UserGenerics<UserConfig extends Config = Config, UserProps extends ExtractPropsFromConfig<UserConfig> = ExtractPropsFromConfig<UserConfig>, UserRootProps extends ExtractRootPropsFromConfig<UserConfig> = ExtractRootPropsFromConfig<UserConfig>, UserData extends Data<UserProps, UserRootProps> | Data = Data<UserProps, UserRootProps>, UserAppState extends PrivateAppState<UserData> = PrivateAppState<UserData>, UserPublicAppState extends AppState<UserData> = AppState<UserData>, UserComponentData extends ComponentData = UserData["content"][0]> = {
226
216
  UserConfig: UserConfig;
227
217
  UserProps: UserProps;
228
218
  UserRootProps: UserRootProps;
229
219
  UserData: UserData;
230
220
  UserAppState: UserAppState;
221
+ UserPublicAppState: UserPublicAppState;
231
222
  UserComponentData: UserComponentData;
232
223
  };
224
+ type ExtractField<T extends Field["type"]> = Extract<Field, {
225
+ type: T;
226
+ }>;
233
227
 
234
228
  type PuckContext = {
235
229
  renderDropZone: React.FC<DropZoneProps>;
@@ -290,6 +284,7 @@ type Metadata = {
290
284
  type ItemWithId = {
291
285
  _arrayId: string;
292
286
  _originalIndex: number;
287
+ _currentIndex: number;
293
288
  };
294
289
  type ArrayState = {
295
290
  items: ItemWithId[];
@@ -298,6 +293,8 @@ type ArrayState = {
298
293
  type UiState = {
299
294
  leftSideBarVisible: boolean;
300
295
  rightSideBarVisible: boolean;
296
+ leftSideBarWidth?: number | null;
297
+ rightSideBarWidth?: number | null;
301
298
  itemSelector: ItemSelector | null;
302
299
  arrayState: Record<string, ArrayState | undefined>;
303
300
  previewMode: "interactive" | "edit";
@@ -359,7 +356,24 @@ type RenderFunc<Props extends {
359
356
  children: ReactNode;
360
357
  }> = (props: Props) => ReactElement;
361
358
 
362
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
359
+ type MapFnParams<ThisField = Field> = {
360
+ value: any;
361
+ parentId: string;
362
+ propName: string;
363
+ field: ThisField;
364
+ propPath: string;
365
+ };
366
+
367
+ type FieldTransformFnParams<T> = Omit<MapFnParams<T>, "parentId"> & {
368
+ isReadOnly: boolean;
369
+ componentId: string;
370
+ };
371
+ type FieldTransformFn<T = any> = (params: FieldTransformFnParams<T>) => any;
372
+ type FieldTransforms = Partial<{
373
+ [FieldType in Field["type"]]: FieldTransformFn<ExtractField<FieldType>>;
374
+ }>;
375
+
376
+ declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "drawer", "drawerItem", "componentOverlay", "outline", "puck", "preview"];
363
377
  type OverrideKey = (typeof overrideKeys)[number];
364
378
  type OverridesGeneric<Shape extends {
365
379
  [key in OverrideKey]: any;
@@ -397,11 +411,23 @@ type Overrides = OverridesGeneric<{
397
411
  children: ReactNode;
398
412
  name: string;
399
413
  }>;
414
+ drawer: RenderFunc;
415
+ drawerItem: RenderFunc<{
416
+ children: ReactNode;
417
+ name: string;
418
+ }>;
400
419
  iframe: RenderFunc<{
401
420
  children: ReactNode;
402
421
  document?: Document;
403
422
  }>;
404
423
  outline: RenderFunc;
424
+ componentOverlay: RenderFunc<{
425
+ children: ReactNode;
426
+ hover: boolean;
427
+ isSelected: boolean;
428
+ componentId: string;
429
+ componentType: string;
430
+ }>;
405
431
  puck: RenderFunc;
406
432
  }>;
407
433
  type FieldRenderFunctions = Omit<{
@@ -448,6 +474,7 @@ type Plugin = {
448
474
  icon?: ReactNode;
449
475
  render?: () => ReactElement;
450
476
  overrides?: Partial<Overrides>;
477
+ fieldTransforms?: FieldTransforms;
451
478
  };
452
479
  type History<D = any> = {
453
480
  state: D;
@@ -539,7 +566,12 @@ type PuckAction = {
539
566
  recordHistory?: boolean;
540
567
  } & (ReorderAction | InsertAction | MoveAction | ReplaceAction | ReplaceRootAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
541
568
 
542
- declare function migrate(data: Data, config?: Config): Data;
569
+ type MigrationOptions<UserConfig extends Config> = {
570
+ migrateDynamicZonesForComponent?: {
571
+ [ComponentName in keyof UserConfig["components"]]: (props: WithId<UserGenerics<UserConfig>["UserProps"][ComponentName]>, zones: Record<string, Content>) => ComponentData["props"];
572
+ };
573
+ };
574
+ declare function migrate<UserConfig extends Config = Config>(data: Data, config?: UserConfig, migrationOptions?: MigrationOptions<UserConfig>): Data;
543
575
 
544
576
  type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
545
577
  [ComponentName in keyof Props]: (props: Props[ComponentName] & {
@@ -560,4 +592,4 @@ type WalkTreeOptions = {
560
592
  };
561
593
  declare function walkTree<T extends ComponentData | RootData | G["UserData"], UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(data: T, config: UserConfig, callbackFn: (data: Content, options: WalkTreeOptions) => Content | null | void): T;
562
594
 
563
- export { type ExternalFieldWithAdaptor as $, type AppState as A, type BaseData as B, type ComponentData as C, type DropZoneProps as D, type MappedItem as E, type Fields as F, type ComponentDataMap as G, type History as H, type IframeConfig as I, type Content as J, type BaseField as K, type TextareaField as L, type Metadata as M, type NumberField as N, type Overrides as O, type Permissions as P, type SelectField as Q, type RootDataWithProps as R, type Slot as S, type TextField as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type RadioField as X, type ArrayField as Y, type ObjectField as Z, type Adaptor as _, type Config as a, type ExternalField as a0, type CustomFieldRender as a1, type CustomField as a2, type SlotField as a3, type PuckContext as a4, type DefaultRootFieldProps as a5, type DefaultRootRenderProps as a6, type DefaultRootProps as a7, type DefaultComponentProps as a8, type WithId as a9, type WithPuckProps as aa, type AsFieldProps as ab, type WithChildren as ac, type ExtractPropsFromConfig as ad, type ExtractRootPropsFromConfig as ae, migrate as af, transformProps as ag, resolveAllData as ah, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type Field as g, type FieldProps as h, type Data as i, type OnAction as j, type InitialHistory as k, type ItemSelector as l, type Direction as m, type DragAxis as n, type Viewport as o, overrideKeys as p, type OverrideKey as q, type FieldRenderFunctions as r, type ItemWithId as s, type ArrayState as t, type PuckComponent as u, type RootConfig as v, walkTree as w, type RootDataWithoutProps as x, type RootData as y, type ComponentDataOptionalId as z };
595
+ export { type NumberField as $, type AppState as A, type ArrayState as B, type Config as C, type DropZoneProps as D, type SlotComponent as E, type Fields as F, type PuckComponent as G, type History as H, type IframeConfig as I, type RootConfig as J, type BaseData as K, type RootDataWithoutProps as L, type Metadata as M, type RootData as N, type Overrides as O, type Permissions as P, type ComponentDataOptionalId as Q, type RootDataWithProps as R, type Slot as S, type MappedItem as T, type UserGenerics as U, type Viewports as V, type WithSlotProps as W, type ComponentDataMap as X, type Content as Y, type BaseField as Z, type TextField as _, type ComponentData as a, type TextareaField as a0, type SelectField as a1, type RadioField as a2, type ArrayField as a3, type ObjectField as a4, type Adaptor as a5, type ExternalFieldWithAdaptor as a6, type ExternalField as a7, type CustomFieldRender as a8, type CustomField as a9, type SlotField as aa, type PuckContext as ab, type DefaultRootFieldProps as ac, type DefaultRootRenderProps as ad, type DefaultRootProps as ae, type DefaultComponentProps as af, type WithId as ag, type WithPuckProps as ah, type AsFieldProps as ai, type WithChildren as aj, type ExtractPropsFromConfig as ak, type ExtractRootPropsFromConfig as al, type ExtractField as am, type PuckAction as b, type ResolveDataTrigger as c, type Plugin as d, type UiState as e, type ComponentConfig as f, type FieldTransforms as g, type Field as h, type FieldProps as i, type Data as j, type OnAction as k, type InitialHistory as l, migrate as m, type ItemSelector as n, type Direction as o, type DragAxis as p, type Viewport as q, resolveAllData as r, type FieldTransformFnParams as s, transformProps as t, type FieldTransformFn as u, overrideKeys as v, walkTree as w, type OverrideKey as x, type FieldRenderFunctions as y, type ItemWithId as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.20.0-canary.755737e8",
3
+ "version": "0.20.0-canary.77cef35d",
4
4
  "author": "Chris Villa <chris@puckeditor.com>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -27,6 +27,7 @@
27
27
  "require": "./dist/rsc.js"
28
28
  },
29
29
  "./puck.css": "./dist/index.css",
30
+ "./no-external.css": "./dist/no-external.css",
30
31
  "./dist/index.css": "./dist/index.css",
31
32
  "./package.json": "./package.json"
32
33
  },
@@ -40,7 +41,7 @@
40
41
  "license": "MIT",
41
42
  "scripts": {
42
43
  "lint": "eslint \"**/*.ts*\"",
43
- "build": "rm -rf dist && tsup index.ts rsc.tsx",
44
+ "build": "rm -rf dist && tsup bundle/index.ts bundle/rsc.tsx bundle/no-external.ts",
44
45
  "test": "jest",
45
46
  "prepare": "cp ../../README.md . && yarn build",
46
47
  "postpublish": "rm README.md"