@measured/puck 0.16.0-canary.abe8c52 → 0.16.0-canary.bc81d9c

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.ts CHANGED
@@ -1,128 +1,26 @@
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, V as Viewports, c as DefaultComponentProps, d as DefaultRootProps, M as MappedItem, R as RootData, e as RootDataWithProps, f as ComponentData } from './Config-VOJqVbHe.js';
2
- export { q as Adaptor, p as ArrayField, l as ArrayState, B as BaseData, m as BaseField, i as ComponentConfig, g as Content, s as CustomField, r as ExternalField, E as ExternalFieldWithAdaptor, t as Fields, k as ItemWithId, N as NumberField, O as ObjectField, P as PuckComponent, h as PuckContext, o as RadioField, j as RootDataWithoutProps, S as SelectField, T as TextField, n as TextareaField } from './Config-VOJqVbHe.js';
3
- import * as react from 'react';
4
- import { ReactNode, ReactElement, CSSProperties, SyntheticEvent } 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-BaAekM3E.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-BaAekM3E.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
- headerActions: RenderFunc<{
85
- children: ReactNode;
86
- }>;
87
- preview: RenderFunc;
88
- fields: RenderFunc<{
89
- children: ReactNode;
90
- isLoading: boolean;
91
- itemSelector?: ItemSelector | null;
92
- }>;
93
- fieldLabel: RenderFunc<{
8
+ declare const ActionBar: {
9
+ ({ label, children, }: {
10
+ label?: string;
94
11
  children?: ReactNode;
95
- icon?: ReactNode;
96
- label: string;
97
- el?: "label" | "div";
98
- readOnly?: boolean;
99
- className?: string;
100
- }>;
101
- components: RenderFunc;
102
- componentItem: RenderFunc<{
103
- children: ReactNode;
104
- name: string;
105
- }>;
106
- outline: RenderFunc;
107
- puck: RenderFunc;
108
- }>;
109
- type FieldRenderFunctions = Omit<{
110
- [Type in Field["type"]]: React.FunctionComponent<FieldProps<Extract<Field, {
111
- type: Type;
112
- }>> & {
113
- children: ReactNode;
114
- name: string;
115
- }>;
116
- }, "custom"> & {
117
- [key: string]: React.FunctionComponent<FieldProps<any> & {
12
+ }): react_jsx_runtime.JSX.Element;
13
+ Action: ({ children, label, onClick, }: {
118
14
  children: ReactNode;
119
- name: string;
120
- }>;
121
- };
122
-
123
- type Plugin = {
124
- overrides: Partial<Overrides>;
15
+ label?: string;
16
+ onClick: (e: SyntheticEvent) => void;
17
+ }) => react_jsx_runtime.JSX.Element;
125
18
  };
19
+ declare const Action: ({ children, label, onClick, }: {
20
+ children: ReactNode;
21
+ label?: string;
22
+ onClick: (e: SyntheticEvent) => void;
23
+ }) => react_jsx_runtime.JSX.Element;
126
24
 
127
25
  declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }: {
128
26
  children?: ReactNode;
@@ -177,7 +75,7 @@ declare const Drawer: {
177
75
  droppableId?: string;
178
76
  direction?: "vertical" | "horizontal";
179
77
  }): react_jsx_runtime.JSX.Element;
180
- Item: ({ name, children, id, label, index, }: {
78
+ Item: ({ name, children, id, label, index, isDragDisabled, }: {
181
79
  name: string;
182
80
  children?: (props: {
183
81
  children: ReactNode;
@@ -186,30 +84,10 @@ declare const Drawer: {
186
84
  id?: string;
187
85
  label?: string;
188
86
  index: number;
87
+ isDragDisabled?: boolean;
189
88
  }) => react_jsx_runtime.JSX.Element;
190
89
  };
191
90
 
192
- type History<D = any> = {
193
- id: string;
194
- data: D;
195
- };
196
- type HistoryStore<D = any> = {
197
- index: number;
198
- hasPast: boolean;
199
- hasFuture: boolean;
200
- histories: History<D>[];
201
- record: (data: D) => void;
202
- back: VoidFunction;
203
- forward: VoidFunction;
204
- currentHistory: History;
205
- nextHistory: History<D> | null;
206
- prevHistory: History<D> | null;
207
- setHistories: (histories: History[]) => void;
208
- setHistoryIndex: (index: number) => void;
209
- };
210
-
211
- type OnAction = (action: PuckAction, appState: AppState, prevAppState: AppState) => void;
212
-
213
91
  type PathData = Record<string, {
214
92
  path: string[];
215
93
  label: string;
@@ -262,27 +140,24 @@ declare const IconButton: ({ children, href, onClick, variant, type, disabled, t
262
140
  title: string;
263
141
  }) => react_jsx_runtime.JSX.Element;
264
142
 
265
- type IframeConfig = {
266
- enabled?: boolean;
267
- };
268
-
269
- declare function Puck<UserConfig extends Config = Config>({ children, config, data: initialData, ui: initialUi, onChange, onPublish, onAction, 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: _iframe, dnd, initialHistory: _initialHistory, }: {
270
144
  children?: ReactNode;
271
145
  config: UserConfig;
272
- data: Partial<Data>;
146
+ data: Partial<UserData>;
273
147
  ui?: Partial<UiState>;
274
- onChange?: (data: Data) => void;
275
- onPublish?: (data: Data) => void;
276
- onAction?: OnAction;
148
+ onChange?: (data: UserData) => void;
149
+ onPublish?: (data: UserData) => void;
150
+ onAction?: OnAction<UserData>;
151
+ permissions?: Partial<Permissions>;
277
152
  plugins?: Plugin[];
278
153
  overrides?: Partial<Overrides>;
279
154
  renderHeader?: (props: {
280
155
  children: ReactNode;
281
156
  dispatch: (action: PuckAction) => void;
282
- state: AppState;
157
+ state: AppState<UserData>;
283
158
  }) => ReactElement;
284
159
  renderHeaderActions?: (props: {
285
- state: AppState;
160
+ state: AppState<UserData>;
286
161
  dispatch: (action: PuckAction) => void;
287
162
  }) => ReactElement;
288
163
  headerTitle?: string;
@@ -292,10 +167,7 @@ declare function Puck<UserConfig extends Config = Config>({ children, config, da
292
167
  dnd?: {
293
168
  disableAutoScroll?: boolean;
294
169
  };
295
- initialHistory?: {
296
- histories: History<any>[];
297
- index: number;
298
- };
170
+ initialHistory?: InitialHistory;
299
171
  }): react_jsx_runtime.JSX.Element;
300
172
  declare namespace Puck {
301
173
  var Components: () => react_jsx_runtime.JSX.Element;
@@ -306,14 +178,14 @@ declare namespace Puck {
306
178
  }) => react_jsx_runtime.JSX.Element;
307
179
  }
308
180
 
309
- 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 }: {
310
182
  config: UserConfig;
311
- data: Partial<Data>;
183
+ data: Partial<UserData>;
312
184
  }): react_jsx_runtime.JSX.Element;
313
185
 
314
186
  declare function migrate(data: Data): Data;
315
187
 
316
- type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = Partial<{
188
+ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
317
189
  [ComponentName in keyof Props]: (props: Props[ComponentName] & {
318
190
  [key: string]: any;
319
191
  }) => Props[ComponentName];
@@ -322,18 +194,40 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
322
194
  [key: string]: any;
323
195
  }) => RootProps;
324
196
  }>;
325
- 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;
326
198
 
327
- declare function resolveAllData(data: Partial<Data>, config: Config, onResolveStart?: (item: MappedItem) => void, onResolveEnd?: (item: MappedItem) => void): Promise<{
328
- root: RootData<DefaultRootProps> | RootDataWithProps;
329
- content: any;
330
- zones: Record<string, MappedItem[]>;
331
- }>;
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
+ };
332
215
 
333
216
  declare const usePuck: () => {
334
217
  appState: AppState;
335
218
  config: Config;
336
219
  dispatch: (action: PuckAction) => void;
220
+ getPermissions: ({ item, type, }?: {
221
+ item?: ComponentData;
222
+ type?: keyof DefaultComponentProps;
223
+ }) => {
224
+ [x: string]: boolean | undefined;
225
+ drag?: boolean | undefined;
226
+ duplicate?: boolean | undefined;
227
+ delete?: boolean | undefined;
228
+ edit?: boolean | undefined;
229
+ insert?: boolean | undefined;
230
+ };
337
231
  history: {
338
232
  back: VoidFunction;
339
233
  forward: VoidFunction;
@@ -345,9 +239,7 @@ declare const usePuck: () => {
345
239
  index: number;
346
240
  historyStore: HistoryStore | undefined;
347
241
  };
348
- selectedItem: ComponentData<DefaultComponentProps & {
349
- id: string;
350
- }> | null;
242
+ selectedItem: ComponentData<any, string> | null;
351
243
  };
352
244
 
353
- export { AppState, AutoField, AutoFieldPrivate, Button, ComponentData, Config, Data, DefaultComponentProps, DefaultRootProps, Drawer, DropZone, DropZoneProvider, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, type History, IconButton, MappedItem, 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 };