@measured/puck 0.16.0-canary.a43914d → 0.16.0-canary.c379051

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.
@@ -0,0 +1,391 @@
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';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
+ import { DragStart, DragUpdate } from '@measured/dnd';
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
+ declare const ActionBar: {
136
+ ({ label, children, }: {
137
+ label?: string;
138
+ children?: ReactNode;
139
+ }): react_jsx_runtime.JSX.Element;
140
+ Action: ({ children, label, onClick, }: {
141
+ children: ReactNode;
142
+ label?: string;
143
+ onClick: (e: SyntheticEvent) => void;
144
+ }) => react_jsx_runtime.JSX.Element;
145
+ };
146
+ declare const Action: ({ children, label, onClick, }: {
147
+ children: ReactNode;
148
+ label?: string;
149
+ onClick: (e: SyntheticEvent) => void;
150
+ }) => react_jsx_runtime.JSX.Element;
151
+
152
+ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }: {
153
+ children?: ReactNode;
154
+ icon?: ReactNode;
155
+ label: string;
156
+ el?: "label" | "div";
157
+ readOnly?: boolean;
158
+ className?: string;
159
+ }) => react_jsx_runtime.JSX.Element;
160
+ type FieldLabelPropsInternal = {
161
+ children?: ReactNode;
162
+ icon?: ReactNode;
163
+ label?: string;
164
+ el?: "label" | "div";
165
+ readOnly?: boolean;
166
+ };
167
+ declare const FieldLabelInternal: ({ children, icon, label, el, readOnly, }: FieldLabelPropsInternal) => react_jsx_runtime.JSX.Element;
168
+ type FieldPropsInternalOptional<ValueType = any, F = Field<any>> = FieldProps<ValueType, F> & {
169
+ Label?: React.FC<FieldLabelPropsInternal>;
170
+ label?: string;
171
+ name?: string;
172
+ };
173
+ type FieldPropsInternal<ValueType = any, F = Field<any>> = FieldProps<ValueType, F> & {
174
+ Label: React.FC<FieldLabelPropsInternal>;
175
+ label?: string;
176
+ id: string;
177
+ name?: string;
178
+ };
179
+ declare function AutoFieldPrivate<ValueType = any, FieldType extends Field<ValueType> = Field<ValueType>>(props: FieldPropsInternalOptional<ValueType, FieldType> & {
180
+ Label?: React.FC<FieldLabelPropsInternal>;
181
+ }): react_jsx_runtime.JSX.Element;
182
+ declare function AutoField<ValueType = any, FieldType extends Field<ValueType> = Field<ValueType>>(props: FieldProps<ValueType, FieldType>): react_jsx_runtime.JSX.Element;
183
+
184
+ declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, loading: loadingProp, }: {
185
+ children: ReactNode;
186
+ href?: string;
187
+ onClick?: (e: any) => void | Promise<void>;
188
+ variant?: "primary" | "secondary";
189
+ type?: "button" | "submit" | "reset";
190
+ disabled?: boolean;
191
+ tabIndex?: number;
192
+ newTab?: boolean;
193
+ fullWidth?: boolean;
194
+ icon?: ReactNode;
195
+ size?: "medium" | "large";
196
+ loading?: boolean;
197
+ }) => react_jsx_runtime.JSX.Element;
198
+
199
+ declare const Drawer: {
200
+ ({ children, droppableId: _droppableId, direction, }: {
201
+ children: ReactNode;
202
+ droppableId?: string;
203
+ direction?: "vertical" | "horizontal";
204
+ }): react_jsx_runtime.JSX.Element;
205
+ Item: ({ name, children, id, label, index, isDragDisabled, }: {
206
+ name: string;
207
+ children?: (props: {
208
+ children: ReactNode;
209
+ name: string;
210
+ }) => ReactElement;
211
+ id?: string;
212
+ label?: string;
213
+ index: number;
214
+ isDragDisabled?: boolean;
215
+ }) => react_jsx_runtime.JSX.Element;
216
+ };
217
+
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
+ type PathData = Record<string, {
240
+ path: string[];
241
+ label: string;
242
+ }>;
243
+ type DropZoneContext<UserConfig extends Config = Config> = {
244
+ data: Data;
245
+ config: UserConfig;
246
+ componentState?: Record<string, any>;
247
+ itemSelector?: ItemSelector | null;
248
+ setItemSelector?: (newIndex: ItemSelector | null) => void;
249
+ dispatch?: (action: PuckAction) => void;
250
+ areaId?: string;
251
+ draggedItem?: DragStart & Partial<DragUpdate>;
252
+ placeholderStyle?: CSSProperties;
253
+ hoveringArea?: string | null;
254
+ setHoveringArea?: (area: string | null) => void;
255
+ hoveringZone?: string | null;
256
+ setHoveringZone?: (zone: string | null) => void;
257
+ hoveringComponent?: string | null;
258
+ setHoveringComponent?: (id: string | null) => void;
259
+ registerZoneArea?: (areaId: string) => void;
260
+ areasWithZones?: Record<string, boolean>;
261
+ registerZone?: (zoneCompound: string) => void;
262
+ unregisterZone?: (zoneCompound: string) => void;
263
+ activeZones?: Record<string, boolean>;
264
+ pathData?: PathData;
265
+ registerPath?: (selector: ItemSelector) => void;
266
+ mode?: "edit" | "render";
267
+ zoneWillDrag?: string;
268
+ setZoneWillDrag?: (zone: string) => void;
269
+ } | null;
270
+ declare const dropZoneContext: react.Context<DropZoneContext<Config>>;
271
+ declare const DropZoneProvider: ({ children, value, }: {
272
+ children: ReactNode;
273
+ value: DropZoneContext;
274
+ }) => react_jsx_runtime.JSX.Element;
275
+
276
+ declare function DropZone(props: DropZoneProps): react_jsx_runtime.JSX.Element;
277
+
278
+ declare const IconButton: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, title, }: {
279
+ children: ReactNode;
280
+ href?: string;
281
+ onClick?: (e: SyntheticEvent) => void | Promise<void>;
282
+ variant?: "primary" | "secondary";
283
+ type?: "button" | "submit" | "reset";
284
+ disabled?: boolean;
285
+ tabIndex?: number;
286
+ newTab?: boolean;
287
+ fullWidth?: boolean;
288
+ title: string;
289
+ }) => react_jsx_runtime.JSX.Element;
290
+
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, }: {
296
+ children?: ReactNode;
297
+ config: UserConfig;
298
+ data: Partial<Data>;
299
+ ui?: Partial<UiState>;
300
+ onChange?: (data: Data) => void;
301
+ onPublish?: (data: Data) => void;
302
+ onAction?: OnAction;
303
+ permissions?: Partial<Permissions>;
304
+ plugins?: Plugin[];
305
+ overrides?: Partial<Overrides>;
306
+ renderHeader?: (props: {
307
+ children: ReactNode;
308
+ dispatch: (action: PuckAction) => void;
309
+ state: AppState;
310
+ }) => ReactElement;
311
+ renderHeaderActions?: (props: {
312
+ state: AppState;
313
+ dispatch: (action: PuckAction) => void;
314
+ }) => ReactElement;
315
+ headerTitle?: string;
316
+ headerPath?: string;
317
+ viewports?: Viewports;
318
+ iframe?: IframeConfig;
319
+ dnd?: {
320
+ disableAutoScroll?: boolean;
321
+ };
322
+ initialHistory?: {
323
+ histories: History<any>[];
324
+ index: number;
325
+ };
326
+ }): react_jsx_runtime.JSX.Element;
327
+ declare namespace Puck {
328
+ var Components: () => react_jsx_runtime.JSX.Element;
329
+ var Fields: () => react_jsx_runtime.JSX.Element;
330
+ var Outline: () => react_jsx_runtime.JSX.Element;
331
+ var Preview: ({ id }: {
332
+ id?: string;
333
+ }) => react_jsx_runtime.JSX.Element;
334
+ }
335
+
336
+ declare function Render<UserConfig extends Config = Config>({ config, data, }: {
337
+ config: UserConfig;
338
+ data: Partial<Data>;
339
+ }): react_jsx_runtime.JSX.Element;
340
+
341
+ declare function migrate(data: Data): Data;
342
+
343
+ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultRootProps = DefaultRootProps> = Partial<{
344
+ [ComponentName in keyof Props]: (props: Props[ComponentName] & {
345
+ [key: string]: any;
346
+ }) => Props[ComponentName];
347
+ } & {
348
+ root: (props: RootProps & {
349
+ [key: string]: any;
350
+ }) => RootProps;
351
+ }>;
352
+ declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultComponentProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
353
+
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
+ }>;
359
+
360
+ declare const usePuck: () => {
361
+ appState: AppState;
362
+ config: Config;
363
+ dispatch: (action: PuckAction) => void;
364
+ getPermissions: ({ item, type, }?: {
365
+ item?: ComponentData;
366
+ type?: keyof DefaultComponentProps;
367
+ }) => {
368
+ [x: string]: boolean | undefined;
369
+ drag?: boolean | undefined;
370
+ duplicate?: boolean | undefined;
371
+ delete?: boolean | undefined;
372
+ edit?: boolean | undefined;
373
+ insert?: boolean | undefined;
374
+ };
375
+ history: {
376
+ back: VoidFunction;
377
+ forward: VoidFunction;
378
+ setHistories: (histories: History[]) => void;
379
+ setHistoryIndex: (index: number) => void;
380
+ hasPast: boolean;
381
+ hasFuture: boolean;
382
+ histories: History<any>[];
383
+ index: number;
384
+ historyStore: HistoryStore | undefined;
385
+ };
386
+ selectedItem: ComponentData<DefaultComponentProps & {
387
+ id: string;
388
+ }> | null;
389
+ };
390
+
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 };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
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-B7UadvMA.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-B7UadvMA.js';
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
3
  import * as react from 'react';
4
4
  import { ReactNode, ReactElement, SyntheticEvent, CSSProperties } from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
@@ -107,6 +107,10 @@ type Overrides = OverridesGeneric<{
107
107
  children: ReactNode;
108
108
  name: string;
109
109
  }>;
110
+ iframe: RenderFunc<{
111
+ children: ReactNode;
112
+ document?: Document;
113
+ }>;
110
114
  outline: RenderFunc;
111
115
  puck: RenderFunc;
112
116
  }>;
@@ -198,7 +202,7 @@ declare const Drawer: {
198
202
  droppableId?: string;
199
203
  direction?: "vertical" | "horizontal";
200
204
  }): react_jsx_runtime.JSX.Element;
201
- Item: ({ name, children, id, label, index, }: {
205
+ Item: ({ name, children, id, label, index, isDragDisabled, }: {
202
206
  name: string;
203
207
  children?: (props: {
204
208
  children: ReactNode;
@@ -207,6 +211,7 @@ declare const Drawer: {
207
211
  id?: string;
208
212
  label?: string;
209
213
  index: number;
214
+ isDragDisabled?: boolean;
210
215
  }) => react_jsx_runtime.JSX.Element;
211
216
  };
212
217
 
@@ -356,11 +361,16 @@ declare const usePuck: () => {
356
361
  appState: AppState;
357
362
  config: Config;
358
363
  dispatch: (action: PuckAction) => void;
359
- getPermissions: (selectedItem?: ComponentData) => {
364
+ getPermissions: ({ item, type, }?: {
365
+ item?: ComponentData;
366
+ type?: keyof DefaultComponentProps;
367
+ }) => {
360
368
  [x: string]: boolean | undefined;
361
369
  drag?: boolean | undefined;
362
370
  duplicate?: boolean | undefined;
363
371
  delete?: boolean | undefined;
372
+ edit?: boolean | undefined;
373
+ insert?: boolean | undefined;
364
374
  };
365
375
  history: {
366
376
  back: VoidFunction;