@measured/puck 0.16.0-canary.7c79787 → 0.16.0-canary.88c5ab6

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 DefaultComponentProps, i as DefaultRootFieldProps, j as ComponentData } from './actions-DDAd8cys.js';
2
+ export { H as Adaptor, z as ArrayField, p as ArrayState, $ as AsFieldProps, B as BaseData, w as BaseField, r as ComponentConfig, u as ComponentDataMap, v as Content, L as CustomField, Y as DefaultRootProps, X as DefaultRootRenderProps, K as ExternalField, J as ExternalFieldWithAdaptor, m as FieldRenderFunctions, Q as Fields, n as ItemWithId, M as MappedItem, N as NumberField, G as ObjectField, l as OverrideKey, q as PuckComponent, W as PuckContext, y as RadioField, t as RootData, R as RootDataWithProps, s as RootDataWithoutProps, S as SelectField, T as TextField, x as TextareaField, k as Viewport, a0 as WithChildren, Z as WithId, _ as WithPuckProps, o as overrideKeys } from './actions-DDAd8cys.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,6 +84,7 @@ 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
 
@@ -208,8 +107,6 @@ type HistoryStore<D = any> = {
208
107
  setHistoryIndex: (index: number) => void;
209
108
  };
210
109
 
211
- type OnAction = (action: PuckAction, appState: AppState, prevAppState: AppState) => void;
212
-
213
110
  type PathData = Record<string, {
214
111
  path: string[];
215
112
  label: string;
@@ -262,27 +159,24 @@ declare const IconButton: ({ children, href, onClick, variant, type, disabled, t
262
159
  title: string;
263
160
  }) => react_jsx_runtime.JSX.Element;
264
161
 
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, }: {
162
+ 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, }: {
270
163
  children?: ReactNode;
271
164
  config: UserConfig;
272
- data: Partial<Data>;
165
+ data: Partial<UserData>;
273
166
  ui?: Partial<UiState>;
274
- onChange?: (data: Data) => void;
275
- onPublish?: (data: Data) => void;
276
- onAction?: OnAction;
167
+ onChange?: (data: UserData) => void;
168
+ onPublish?: (data: UserData) => void;
169
+ onAction?: OnAction<UserData>;
170
+ permissions?: Partial<Permissions>;
277
171
  plugins?: Plugin[];
278
172
  overrides?: Partial<Overrides>;
279
173
  renderHeader?: (props: {
280
174
  children: ReactNode;
281
175
  dispatch: (action: PuckAction) => void;
282
- state: AppState;
176
+ state: AppState<UserData>;
283
177
  }) => ReactElement;
284
178
  renderHeaderActions?: (props: {
285
- state: AppState;
179
+ state: AppState<UserData>;
286
180
  dispatch: (action: PuckAction) => void;
287
181
  }) => ReactElement;
288
182
  headerTitle?: string;
@@ -306,14 +200,14 @@ declare namespace Puck {
306
200
  }) => react_jsx_runtime.JSX.Element;
307
201
  }
308
202
 
309
- declare function Render<UserConfig extends Config = Config>({ config, data, }: {
203
+ 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
204
  config: UserConfig;
311
- data: Partial<Data>;
205
+ data: Partial<UserData>;
312
206
  }): react_jsx_runtime.JSX.Element;
313
207
 
314
208
  declare function migrate(data: Data): Data;
315
209
 
316
- type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = Partial<{
210
+ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
317
211
  [ComponentName in keyof Props]: (props: Props[ComponentName] & {
318
212
  [key: string]: any;
319
213
  }) => Props[ComponentName];
@@ -322,18 +216,25 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
322
216
  [key: string]: any;
323
217
  }) => RootProps;
324
218
  }>;
325
- declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultComponentProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
219
+ declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
326
220
 
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
- }>;
221
+ 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>>;
332
222
 
333
223
  declare const usePuck: () => {
334
224
  appState: AppState;
335
225
  config: Config;
336
226
  dispatch: (action: PuckAction) => void;
227
+ getPermissions: ({ item, type, }?: {
228
+ item?: ComponentData;
229
+ type?: keyof DefaultComponentProps;
230
+ }) => {
231
+ [x: string]: boolean | undefined;
232
+ drag?: boolean | undefined;
233
+ duplicate?: boolean | undefined;
234
+ delete?: boolean | undefined;
235
+ edit?: boolean | undefined;
236
+ insert?: boolean | undefined;
237
+ };
337
238
  history: {
338
239
  back: VoidFunction;
339
240
  forward: VoidFunction;
@@ -345,9 +246,7 @@ declare const usePuck: () => {
345
246
  index: number;
346
247
  historyStore: HistoryStore | undefined;
347
248
  };
348
- selectedItem: ComponentData<DefaultComponentProps & {
349
- id: string;
350
- }> | null;
249
+ selectedItem: ComponentData<any, string> | null;
351
250
  };
352
251
 
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 };
252
+ export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, type History, IconButton, IframeConfig, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, Viewports, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };