@measured/puck 0.16.0-canary.96ee704 → 0.16.0-canary.9e7d06f

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,137 +1,10 @@
1
- import { U as UiState, D as Data, A as AppState, I as ItemSelector, F as Field, a as FieldProps, C as Config, b as DropZoneProps, P as Permissions, V as Viewports, c as DefaultComponentProps, d as DefaultRootProps, M as MappedItem, R as RootData, e as RootDataWithProps, f as ComponentData } from './Config-CkVFT1_w.mjs';
2
- export { r as Adaptor, q as ArrayField, m as ArrayState, B as BaseData, n as BaseField, j as ComponentConfig, g as Content, t as CustomField, s as ExternalField, E as ExternalFieldWithAdaptor, u as Fields, l as ItemWithId, N as NumberField, O as ObjectField, h as PuckComponent, i as PuckContext, p as RadioField, k as RootDataWithoutProps, S as SelectField, T as TextField, o as TextareaField } from './Config-CkVFT1_w.mjs';
3
- import * as react from 'react';
4
- import { ReactNode, ReactElement, SyntheticEvent, CSSProperties } from 'react';
1
+ import { F as Field, a as FieldProps, C as Config, D as Data, I as ItemSelector, P as PuckAction, b as DropZoneProps, E as ExtractPropsFromConfig, c as ExtractRootPropsFromConfig, U as UiState, O as OnAction, d as Permissions, e as Plugin, f as Overrides, A as AppState, V as Viewports, g as IframeConfig, h as InitialHistory, i as DefaultComponentProps, j as DefaultRootFieldProps, k as ComponentData, H as History } from './actions-Dyg9ei4T.mjs';
2
+ export { K as Adaptor, G as ArrayField, q as ArrayState, a1 as AsFieldProps, B as BaseData, x as BaseField, s as ComponentConfig, v as ComponentDataMap, w as Content, W as CustomField, _ as DefaultRootProps, Z as DefaultRootRenderProps, Q as ExternalField, L as ExternalFieldWithAdaptor, n as FieldRenderFunctions, X as Fields, p as ItemWithId, M as MappedItem, N as NumberField, J as ObjectField, m as OverrideKey, r as PuckComponent, Y as PuckContext, z as RadioField, u as RootData, R as RootDataWithProps, t as RootDataWithoutProps, S as SelectField, T as TextField, y as TextareaField, l as Viewport, a2 as WithChildren, $ as WithId, a0 as WithPuckProps, o as overrideKeys } from './actions-Dyg9ei4T.mjs';
5
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import * as react from 'react';
5
+ import { ReactNode, SyntheticEvent, ReactElement, CSSProperties } from 'react';
6
6
  import { DragStart, DragUpdate } from '@measured/dnd';
7
7
 
8
- type InsertAction = {
9
- type: "insert";
10
- componentType: string;
11
- destinationIndex: number;
12
- destinationZone: string;
13
- id?: string;
14
- };
15
- type DuplicateAction = {
16
- type: "duplicate";
17
- sourceIndex: number;
18
- sourceZone: string;
19
- };
20
- type ReplaceAction = {
21
- type: "replace";
22
- destinationIndex: number;
23
- destinationZone: string;
24
- data: any;
25
- };
26
- type ReorderAction = {
27
- type: "reorder";
28
- sourceIndex: number;
29
- destinationIndex: number;
30
- destinationZone: string;
31
- };
32
- type MoveAction = {
33
- type: "move";
34
- sourceIndex: number;
35
- sourceZone: string;
36
- destinationIndex: number;
37
- destinationZone: string;
38
- };
39
- type RemoveAction = {
40
- type: "remove";
41
- index: number;
42
- zone: string;
43
- };
44
- type SetUiAction = {
45
- type: "setUi";
46
- ui: Partial<UiState> | ((previous: UiState) => Partial<UiState>);
47
- };
48
- type SetDataAction = {
49
- type: "setData";
50
- data: Partial<Data> | ((previous: Data) => Partial<Data>);
51
- };
52
- type SetAction = {
53
- type: "set";
54
- state: Partial<AppState> | ((previous: AppState) => Partial<AppState>);
55
- };
56
- type RegisterZoneAction = {
57
- type: "registerZone";
58
- zone: string;
59
- };
60
- type UnregisterZoneAction = {
61
- type: "unregisterZone";
62
- zone: string;
63
- };
64
- type PuckAction = {
65
- recordHistory?: boolean;
66
- } & (ReorderAction | InsertAction | MoveAction | ReplaceAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
67
-
68
- type RenderFunc<Props extends {
69
- [key: string]: any;
70
- } = {
71
- children: ReactNode;
72
- }> = (props: Props) => ReactElement;
73
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
74
- type OverrideKey = (typeof overrideKeys)[number];
75
- type OverridesGeneric<Shape extends {
76
- [key in OverrideKey]: any;
77
- }> = Shape;
78
- type Overrides = OverridesGeneric<{
79
- fieldTypes: Partial<FieldRenderFunctions>;
80
- header: RenderFunc<{
81
- actions: ReactNode;
82
- children: ReactNode;
83
- }>;
84
- actionBar: RenderFunc<{
85
- label?: string;
86
- children: ReactNode;
87
- }>;
88
- headerActions: RenderFunc<{
89
- children: ReactNode;
90
- }>;
91
- preview: RenderFunc;
92
- fields: RenderFunc<{
93
- children: ReactNode;
94
- isLoading: boolean;
95
- itemSelector?: ItemSelector | null;
96
- }>;
97
- fieldLabel: RenderFunc<{
98
- children?: ReactNode;
99
- icon?: ReactNode;
100
- label: string;
101
- el?: "label" | "div";
102
- readOnly?: boolean;
103
- className?: string;
104
- }>;
105
- components: RenderFunc;
106
- componentItem: RenderFunc<{
107
- children: ReactNode;
108
- name: string;
109
- }>;
110
- iframe: RenderFunc<{
111
- children: ReactNode;
112
- document?: Document;
113
- }>;
114
- outline: RenderFunc;
115
- puck: RenderFunc;
116
- }>;
117
- type FieldRenderFunctions = Omit<{
118
- [Type in Field["type"]]: React.FunctionComponent<FieldProps<Extract<Field, {
119
- type: Type;
120
- }>> & {
121
- children: ReactNode;
122
- name: string;
123
- }>;
124
- }, "custom"> & {
125
- [key: string]: React.FunctionComponent<FieldProps<any> & {
126
- children: ReactNode;
127
- name: string;
128
- }>;
129
- };
130
-
131
- type Plugin = {
132
- overrides: Partial<Overrides>;
133
- };
134
-
135
8
  declare const ActionBar: {
136
9
  ({ label, children, }: {
137
10
  label?: string;
@@ -215,27 +88,6 @@ declare const Drawer: {
215
88
  }) => react_jsx_runtime.JSX.Element;
216
89
  };
217
90
 
218
- type History<D = any> = {
219
- id: string;
220
- data: D;
221
- };
222
- type HistoryStore<D = any> = {
223
- index: number;
224
- hasPast: boolean;
225
- hasFuture: boolean;
226
- histories: History<D>[];
227
- record: (data: D) => void;
228
- back: VoidFunction;
229
- forward: VoidFunction;
230
- currentHistory: History;
231
- nextHistory: History<D> | null;
232
- prevHistory: History<D> | null;
233
- setHistories: (histories: History[]) => void;
234
- setHistoryIndex: (index: number) => void;
235
- };
236
-
237
- type OnAction = (action: PuckAction, appState: AppState, prevAppState: AppState) => void;
238
-
239
91
  type PathData = Record<string, {
240
92
  path: string[];
241
93
  label: string;
@@ -288,28 +140,24 @@ declare const IconButton: ({ children, href, onClick, variant, type, disabled, t
288
140
  title: string;
289
141
  }) => react_jsx_runtime.JSX.Element;
290
142
 
291
- type IframeConfig = {
292
- enabled?: boolean;
293
- };
294
-
295
- declare function Puck<UserConfig extends Config = Config>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, onAction, permissions, plugins, overrides, renderHeader, renderHeaderActions, headerTitle, headerPath, viewports, iframe, dnd, initialHistory, }: {
143
+ declare function Puck<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>>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, onAction, permissions, plugins, overrides, renderHeader, renderHeaderActions, headerTitle, headerPath, viewports, iframe, dnd, initialHistory: _initialHistory, }: {
296
144
  children?: ReactNode;
297
145
  config: UserConfig;
298
- data: Partial<Data>;
146
+ data: Partial<UserData>;
299
147
  ui?: Partial<UiState>;
300
- onChange?: (data: Data) => void;
301
- onPublish?: (data: Data) => void;
302
- onAction?: OnAction;
148
+ onChange?: (data: UserData) => void;
149
+ onPublish?: (data: UserData) => void;
150
+ onAction?: OnAction<UserData>;
303
151
  permissions?: Partial<Permissions>;
304
152
  plugins?: Plugin[];
305
153
  overrides?: Partial<Overrides>;
306
154
  renderHeader?: (props: {
307
155
  children: ReactNode;
308
156
  dispatch: (action: PuckAction) => void;
309
- state: AppState;
157
+ state: AppState<UserData>;
310
158
  }) => ReactElement;
311
159
  renderHeaderActions?: (props: {
312
- state: AppState;
160
+ state: AppState<UserData>;
313
161
  dispatch: (action: PuckAction) => void;
314
162
  }) => ReactElement;
315
163
  headerTitle?: string;
@@ -319,10 +167,7 @@ declare function Puck<UserConfig extends Config = Config>({ children, config, da
319
167
  dnd?: {
320
168
  disableAutoScroll?: boolean;
321
169
  };
322
- initialHistory?: {
323
- histories: History<any>[];
324
- index: number;
325
- };
170
+ initialHistory?: InitialHistory;
326
171
  }): react_jsx_runtime.JSX.Element;
327
172
  declare namespace Puck {
328
173
  var Components: () => react_jsx_runtime.JSX.Element;
@@ -333,14 +178,14 @@ declare namespace Puck {
333
178
  }) => react_jsx_runtime.JSX.Element;
334
179
  }
335
180
 
336
- declare function Render<UserConfig extends Config = Config>({ config, data, }: {
181
+ declare function Render<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>>({ config, data }: {
337
182
  config: UserConfig;
338
- data: Partial<Data>;
183
+ data: Partial<UserData>;
339
184
  }): react_jsx_runtime.JSX.Element;
340
185
 
341
186
  declare function migrate(data: Data): Data;
342
187
 
343
- type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = Partial<{
188
+ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
344
189
  [ComponentName in keyof Props]: (props: Props[ComponentName] & {
345
190
  [key: string]: any;
346
191
  }) => Props[ComponentName];
@@ -349,13 +194,24 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
349
194
  [key: string]: any;
350
195
  }) => RootProps;
351
196
  }>;
352
- declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultComponentProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
197
+ declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
353
198
 
354
- declare function resolveAllData(data: Partial<Data>, config: Config, onResolveStart?: (item: MappedItem) => void, onResolveEnd?: (item: MappedItem) => void): Promise<{
355
- root: RootData<DefaultRootProps> | RootDataWithProps;
356
- content: any;
357
- zones: Record<string, MappedItem[]>;
358
- }>;
199
+ declare function resolveAllData<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Props, RootProps>>;
200
+
201
+ type HistoryStore<D = any> = {
202
+ index: number;
203
+ hasPast: boolean;
204
+ hasFuture: boolean;
205
+ histories: History<D>[];
206
+ record: (data: D) => void;
207
+ back: VoidFunction;
208
+ forward: VoidFunction;
209
+ currentHistory: History;
210
+ nextHistory: History<D> | null;
211
+ prevHistory: History<D> | null;
212
+ setHistories: (histories: History[]) => void;
213
+ setHistoryIndex: (index: number) => void;
214
+ };
359
215
 
360
216
  declare const usePuck: () => {
361
217
  appState: AppState;
@@ -383,9 +239,7 @@ declare const usePuck: () => {
383
239
  index: number;
384
240
  historyStore: HistoryStore | undefined;
385
241
  };
386
- selectedItem: ComponentData<DefaultComponentProps & {
387
- id: string;
388
- }> | null;
242
+ selectedItem: ComponentData<any, string> | null;
389
243
  };
390
244
 
391
- export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, Config, Data, DefaultComponentProps, DefaultRootProps, Drawer, DropZone, DropZoneProvider, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, type History, IconButton, MappedItem, Permissions, type Plugin, Puck, type PuckAction, Render, RootData, RootDataWithProps, UiState, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };
245
+ export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, History, IconButton, IframeConfig, InitialHistory, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, Viewports, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };
package/dist/index.d.ts CHANGED
@@ -1,137 +1,10 @@
1
- import { U as UiState, D as Data, A as AppState, I as ItemSelector, F as Field, a as FieldProps, C as Config, b as DropZoneProps, P as Permissions, V as Viewports, c as DefaultComponentProps, d as DefaultRootProps, M as MappedItem, R as RootData, e as RootDataWithProps, f as ComponentData } from './Config-CkVFT1_w.js';
2
- export { r as Adaptor, q as ArrayField, m as ArrayState, B as BaseData, n as BaseField, j as ComponentConfig, g as Content, t as CustomField, s as ExternalField, E as ExternalFieldWithAdaptor, u as Fields, l as ItemWithId, N as NumberField, O as ObjectField, h as PuckComponent, i as PuckContext, p as RadioField, k as RootDataWithoutProps, S as SelectField, T as TextField, o as TextareaField } from './Config-CkVFT1_w.js';
3
- import * as react from 'react';
4
- import { ReactNode, ReactElement, SyntheticEvent, CSSProperties } from 'react';
1
+ import { F as Field, a as FieldProps, C as Config, D as Data, I as ItemSelector, P as PuckAction, b as DropZoneProps, E as ExtractPropsFromConfig, c as ExtractRootPropsFromConfig, U as UiState, O as OnAction, d as Permissions, e as Plugin, f as Overrides, A as AppState, V as Viewports, g as IframeConfig, h as InitialHistory, i as DefaultComponentProps, j as DefaultRootFieldProps, k as ComponentData, H as History } from './actions-Dyg9ei4T.js';
2
+ export { K as Adaptor, G as ArrayField, q as ArrayState, a1 as AsFieldProps, B as BaseData, x as BaseField, s as ComponentConfig, v as ComponentDataMap, w as Content, W as CustomField, _ as DefaultRootProps, Z as DefaultRootRenderProps, Q as ExternalField, L as ExternalFieldWithAdaptor, n as FieldRenderFunctions, X as Fields, p as ItemWithId, M as MappedItem, N as NumberField, J as ObjectField, m as OverrideKey, r as PuckComponent, Y as PuckContext, z as RadioField, u as RootData, R as RootDataWithProps, t as RootDataWithoutProps, S as SelectField, T as TextField, y as TextareaField, l as Viewport, a2 as WithChildren, $ as WithId, a0 as WithPuckProps, o as overrideKeys } from './actions-Dyg9ei4T.js';
5
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import * as react from 'react';
5
+ import { ReactNode, SyntheticEvent, ReactElement, CSSProperties } from 'react';
6
6
  import { DragStart, DragUpdate } from '@measured/dnd';
7
7
 
8
- type InsertAction = {
9
- type: "insert";
10
- componentType: string;
11
- destinationIndex: number;
12
- destinationZone: string;
13
- id?: string;
14
- };
15
- type DuplicateAction = {
16
- type: "duplicate";
17
- sourceIndex: number;
18
- sourceZone: string;
19
- };
20
- type ReplaceAction = {
21
- type: "replace";
22
- destinationIndex: number;
23
- destinationZone: string;
24
- data: any;
25
- };
26
- type ReorderAction = {
27
- type: "reorder";
28
- sourceIndex: number;
29
- destinationIndex: number;
30
- destinationZone: string;
31
- };
32
- type MoveAction = {
33
- type: "move";
34
- sourceIndex: number;
35
- sourceZone: string;
36
- destinationIndex: number;
37
- destinationZone: string;
38
- };
39
- type RemoveAction = {
40
- type: "remove";
41
- index: number;
42
- zone: string;
43
- };
44
- type SetUiAction = {
45
- type: "setUi";
46
- ui: Partial<UiState> | ((previous: UiState) => Partial<UiState>);
47
- };
48
- type SetDataAction = {
49
- type: "setData";
50
- data: Partial<Data> | ((previous: Data) => Partial<Data>);
51
- };
52
- type SetAction = {
53
- type: "set";
54
- state: Partial<AppState> | ((previous: AppState) => Partial<AppState>);
55
- };
56
- type RegisterZoneAction = {
57
- type: "registerZone";
58
- zone: string;
59
- };
60
- type UnregisterZoneAction = {
61
- type: "unregisterZone";
62
- zone: string;
63
- };
64
- type PuckAction = {
65
- recordHistory?: boolean;
66
- } & (ReorderAction | InsertAction | MoveAction | ReplaceAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
67
-
68
- type RenderFunc<Props extends {
69
- [key: string]: any;
70
- } = {
71
- children: ReactNode;
72
- }> = (props: Props) => ReactElement;
73
- declare const overrideKeys: readonly ["header", "headerActions", "fields", "fieldLabel", "components", "componentItem", "outline", "puck", "preview"];
74
- type OverrideKey = (typeof overrideKeys)[number];
75
- type OverridesGeneric<Shape extends {
76
- [key in OverrideKey]: any;
77
- }> = Shape;
78
- type Overrides = OverridesGeneric<{
79
- fieldTypes: Partial<FieldRenderFunctions>;
80
- header: RenderFunc<{
81
- actions: ReactNode;
82
- children: ReactNode;
83
- }>;
84
- actionBar: RenderFunc<{
85
- label?: string;
86
- children: ReactNode;
87
- }>;
88
- headerActions: RenderFunc<{
89
- children: ReactNode;
90
- }>;
91
- preview: RenderFunc;
92
- fields: RenderFunc<{
93
- children: ReactNode;
94
- isLoading: boolean;
95
- itemSelector?: ItemSelector | null;
96
- }>;
97
- fieldLabel: RenderFunc<{
98
- children?: ReactNode;
99
- icon?: ReactNode;
100
- label: string;
101
- el?: "label" | "div";
102
- readOnly?: boolean;
103
- className?: string;
104
- }>;
105
- components: RenderFunc;
106
- componentItem: RenderFunc<{
107
- children: ReactNode;
108
- name: string;
109
- }>;
110
- iframe: RenderFunc<{
111
- children: ReactNode;
112
- document?: Document;
113
- }>;
114
- outline: RenderFunc;
115
- puck: RenderFunc;
116
- }>;
117
- type FieldRenderFunctions = Omit<{
118
- [Type in Field["type"]]: React.FunctionComponent<FieldProps<Extract<Field, {
119
- type: Type;
120
- }>> & {
121
- children: ReactNode;
122
- name: string;
123
- }>;
124
- }, "custom"> & {
125
- [key: string]: React.FunctionComponent<FieldProps<any> & {
126
- children: ReactNode;
127
- name: string;
128
- }>;
129
- };
130
-
131
- type Plugin = {
132
- overrides: Partial<Overrides>;
133
- };
134
-
135
8
  declare const ActionBar: {
136
9
  ({ label, children, }: {
137
10
  label?: string;
@@ -215,27 +88,6 @@ declare const Drawer: {
215
88
  }) => react_jsx_runtime.JSX.Element;
216
89
  };
217
90
 
218
- type History<D = any> = {
219
- id: string;
220
- data: D;
221
- };
222
- type HistoryStore<D = any> = {
223
- index: number;
224
- hasPast: boolean;
225
- hasFuture: boolean;
226
- histories: History<D>[];
227
- record: (data: D) => void;
228
- back: VoidFunction;
229
- forward: VoidFunction;
230
- currentHistory: History;
231
- nextHistory: History<D> | null;
232
- prevHistory: History<D> | null;
233
- setHistories: (histories: History[]) => void;
234
- setHistoryIndex: (index: number) => void;
235
- };
236
-
237
- type OnAction = (action: PuckAction, appState: AppState, prevAppState: AppState) => void;
238
-
239
91
  type PathData = Record<string, {
240
92
  path: string[];
241
93
  label: string;
@@ -288,28 +140,24 @@ declare const IconButton: ({ children, href, onClick, variant, type, disabled, t
288
140
  title: string;
289
141
  }) => react_jsx_runtime.JSX.Element;
290
142
 
291
- type IframeConfig = {
292
- enabled?: boolean;
293
- };
294
-
295
- declare function Puck<UserConfig extends Config = Config>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, onAction, permissions, plugins, overrides, renderHeader, renderHeaderActions, headerTitle, headerPath, viewports, iframe, dnd, initialHistory, }: {
143
+ declare function Puck<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>>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, onAction, permissions, plugins, overrides, renderHeader, renderHeaderActions, headerTitle, headerPath, viewports, iframe, dnd, initialHistory: _initialHistory, }: {
296
144
  children?: ReactNode;
297
145
  config: UserConfig;
298
- data: Partial<Data>;
146
+ data: Partial<UserData>;
299
147
  ui?: Partial<UiState>;
300
- onChange?: (data: Data) => void;
301
- onPublish?: (data: Data) => void;
302
- onAction?: OnAction;
148
+ onChange?: (data: UserData) => void;
149
+ onPublish?: (data: UserData) => void;
150
+ onAction?: OnAction<UserData>;
303
151
  permissions?: Partial<Permissions>;
304
152
  plugins?: Plugin[];
305
153
  overrides?: Partial<Overrides>;
306
154
  renderHeader?: (props: {
307
155
  children: ReactNode;
308
156
  dispatch: (action: PuckAction) => void;
309
- state: AppState;
157
+ state: AppState<UserData>;
310
158
  }) => ReactElement;
311
159
  renderHeaderActions?: (props: {
312
- state: AppState;
160
+ state: AppState<UserData>;
313
161
  dispatch: (action: PuckAction) => void;
314
162
  }) => ReactElement;
315
163
  headerTitle?: string;
@@ -319,10 +167,7 @@ declare function Puck<UserConfig extends Config = Config>({ children, config, da
319
167
  dnd?: {
320
168
  disableAutoScroll?: boolean;
321
169
  };
322
- initialHistory?: {
323
- histories: History<any>[];
324
- index: number;
325
- };
170
+ initialHistory?: InitialHistory;
326
171
  }): react_jsx_runtime.JSX.Element;
327
172
  declare namespace Puck {
328
173
  var Components: () => react_jsx_runtime.JSX.Element;
@@ -333,14 +178,14 @@ declare namespace Puck {
333
178
  }) => react_jsx_runtime.JSX.Element;
334
179
  }
335
180
 
336
- declare function Render<UserConfig extends Config = Config>({ config, data, }: {
181
+ declare function Render<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>>({ config, data }: {
337
182
  config: UserConfig;
338
- data: Partial<Data>;
183
+ data: Partial<UserData>;
339
184
  }): react_jsx_runtime.JSX.Element;
340
185
 
341
186
  declare function migrate(data: Data): Data;
342
187
 
343
- type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = Partial<{
188
+ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
344
189
  [ComponentName in keyof Props]: (props: Props[ComponentName] & {
345
190
  [key: string]: any;
346
191
  }) => Props[ComponentName];
@@ -349,13 +194,24 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
349
194
  [key: string]: any;
350
195
  }) => RootProps;
351
196
  }>;
352
- declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultComponentProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
197
+ declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
353
198
 
354
- declare function resolveAllData(data: Partial<Data>, config: Config, onResolveStart?: (item: MappedItem) => void, onResolveEnd?: (item: MappedItem) => void): Promise<{
355
- root: RootData<DefaultRootProps> | RootDataWithProps;
356
- content: any;
357
- zones: Record<string, MappedItem[]>;
358
- }>;
199
+ declare function resolveAllData<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Props, RootProps>>;
200
+
201
+ type HistoryStore<D = any> = {
202
+ index: number;
203
+ hasPast: boolean;
204
+ hasFuture: boolean;
205
+ histories: History<D>[];
206
+ record: (data: D) => void;
207
+ back: VoidFunction;
208
+ forward: VoidFunction;
209
+ currentHistory: History;
210
+ nextHistory: History<D> | null;
211
+ prevHistory: History<D> | null;
212
+ setHistories: (histories: History[]) => void;
213
+ setHistoryIndex: (index: number) => void;
214
+ };
359
215
 
360
216
  declare const usePuck: () => {
361
217
  appState: AppState;
@@ -383,9 +239,7 @@ declare const usePuck: () => {
383
239
  index: number;
384
240
  historyStore: HistoryStore | undefined;
385
241
  };
386
- selectedItem: ComponentData<DefaultComponentProps & {
387
- id: string;
388
- }> | null;
242
+ selectedItem: ComponentData<any, string> | null;
389
243
  };
390
244
 
391
- export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, Config, Data, DefaultComponentProps, DefaultRootProps, Drawer, DropZone, DropZoneProvider, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, type History, IconButton, MappedItem, Permissions, type Plugin, Puck, type PuckAction, Render, RootData, RootDataWithProps, UiState, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };
245
+ export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, History, IconButton, IframeConfig, InitialHistory, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, Viewports, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };