@measured/puck 0.19.0-canary.de23f9d → 0.19.0-canary.e52d3b85

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,9 +1,109 @@
1
- import { F as FieldProps, a as Field, D as DropZoneProps, C as Config, U as UserGenerics, b as Data, c as UiState, O as OnAction, P as Permissions, d as Plugin, e as Overrides, f as PuckAction, V as Viewports, I as IframeConfig, g as InitialHistory, M as Metadata, h as DefaultComponentProps, i as DefaultRootFieldProps, H as History, j as ComponentData, k as Fields, A as AppState, l as ComponentConfig } from './resolve-all-data-wwgDuTnC.js';
2
- export { Q as Adaptor, K as ArrayField, t as ArrayState, a2 as AsFieldProps, B as BaseData, E as BaseField, y as ComponentDataMap, z as Content, Y as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, m as Direction, n as DragAxis, X as ExternalField, W as ExternalFieldWithAdaptor, a4 as ExtractPropsFromConfig, a5 as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, x as MappedItem, N as NumberField, L as ObjectField, q as OverrideKey, u as PuckComponent, Z as PuckContext, J as RadioField, w as RootData, R as RootDataWithProps, v as RootDataWithoutProps, S as SelectField, T as TextField, G as TextareaField, o as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, p as overrideKeys, a6 as resolveAllData } from './resolve-all-data-wwgDuTnC.js';
1
+ import { H as History, P as Permissions, C as ComponentData, a as Config, U as UserGenerics, F as Fields, b as PuckAction, R as RootDataWithProps, c as ResolveDataTrigger, d as Plugin, O as Overrides, V as Viewports, I as IframeConfig, e as UiState, f as ComponentConfig, A as AppState, M as Metadata, g as Field, h as FieldProps, D as DropZoneProps, i as Data, j as OnAction, k as InitialHistory, l as RootData, m as Content, n as ItemSelector } from './resolve-all-data-BFRAghCj.js';
2
+ export { X as Adaptor, Q as ArrayField, v as ArrayState, a7 as AsFieldProps, B as BaseData, G as BaseField, E as ComponentDataMap, _ as CustomField, a4 as DefaultComponentProps, a1 as DefaultRootFieldProps, a3 as DefaultRootProps, a2 as DefaultRootRenderProps, o as Direction, p as DragAxis, Z as ExternalField, Y as ExternalFieldWithAdaptor, a9 as ExtractPropsFromConfig, aa as ExtractRootPropsFromConfig, t as FieldRenderFunctions, u as ItemWithId, z as MappedItem, N as NumberField, W as ObjectField, s as OverrideKey, w as PuckComponent, a0 as PuckContext, L as RadioField, x as RootConfig, y as RootDataWithoutProps, K as SelectField, S as Slot, $ as SlotField, T as TextField, J as TextareaField, q as Viewport, a8 as WithChildren, a5 as WithId, a6 as WithPuckProps, r as overrideKeys, ac as resolveAllData, ab as transformProps } from './resolve-all-data-BFRAghCj.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import react__default, { ReactNode, SyntheticEvent, ReactElement } from 'react';
6
6
 
7
+ type HistorySlice<D = any> = {
8
+ index: number;
9
+ hasPast: () => boolean;
10
+ hasFuture: () => boolean;
11
+ histories: History<D>[];
12
+ record: (data: D) => void;
13
+ back: VoidFunction;
14
+ forward: VoidFunction;
15
+ currentHistory: () => History;
16
+ nextHistory: () => History<D> | null;
17
+ prevHistory: () => History<D> | null;
18
+ setHistories: (histories: History[]) => void;
19
+ setHistoryIndex: (index: number) => void;
20
+ initialAppState: D;
21
+ };
22
+
23
+ type NodeMethods = {
24
+ sync: () => void;
25
+ };
26
+ type PuckNodeInstance = {
27
+ id: string;
28
+ methods: NodeMethods;
29
+ element: HTMLElement | null;
30
+ };
31
+ type NodesSlice = {
32
+ nodes: Record<string, PuckNodeInstance | undefined>;
33
+ registerNode: (id: string, node: Partial<PuckNodeInstance>) => void;
34
+ unregisterNode: (id: string, node?: Partial<PuckNodeInstance>) => void;
35
+ };
36
+
37
+ type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
38
+ item?: G["UserComponentData"] | null;
39
+ type?: keyof G["UserProps"];
40
+ root?: boolean;
41
+ };
42
+ type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
43
+ type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
44
+ type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
45
+ type Cache = Record<string, {
46
+ lastPermissions: Partial<Permissions>;
47
+ lastData: ComponentData | null;
48
+ }>;
49
+ type PermissionsSlice = {
50
+ cache: Cache;
51
+ globalPermissions: Permissions;
52
+ resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
53
+ getPermissions: GetPermissions<Config>;
54
+ resolvePermissions: ResolvePermissions<Config>;
55
+ refreshPermissions: RefreshPermissions<Config>;
56
+ };
57
+
58
+ type ComponentOrRootData = Omit<ComponentData<any>, "type">;
59
+ type FieldsSlice = {
60
+ fields: Fields | Partial<Fields>;
61
+ loading: boolean;
62
+ lastResolvedData: Partial<ComponentOrRootData>;
63
+ };
64
+
65
+ type Status = "LOADING" | "MOUNTED" | "READY";
66
+ type ZoomConfig = {
67
+ autoZoom: number;
68
+ rootHeight: number;
69
+ zoom: number;
70
+ };
71
+ type ComponentState = Record<string, {
72
+ loadingCount: number;
73
+ }>;
74
+ type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
75
+ state: G["UserAppState"];
76
+ dispatch: (action: PuckAction) => void;
77
+ config: UserConfig;
78
+ componentState: ComponentState;
79
+ setComponentState: (componentState: ComponentState) => void;
80
+ setComponentLoading: (id: string, loading?: boolean, defer?: number) => () => void;
81
+ unsetComponentLoading: (id: string) => void;
82
+ pendingLoadTimeouts: Record<string, NodeJS.Timeout>;
83
+ resolveComponentData: <T extends ComponentData | RootDataWithProps>(componentData: T, trigger: ResolveDataTrigger) => Promise<{
84
+ node: T;
85
+ didChange: boolean;
86
+ }>;
87
+ resolveAndCommitData: () => void;
88
+ plugins: Plugin[];
89
+ overrides: Partial<Overrides>;
90
+ viewports: Viewports;
91
+ zoomConfig: ZoomConfig;
92
+ setZoomConfig: (zoomConfig: ZoomConfig) => void;
93
+ status: Status;
94
+ setStatus: (status: Status) => void;
95
+ iframe: IframeConfig;
96
+ selectedItem?: G["UserData"]["content"][0] | null;
97
+ setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
98
+ getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
99
+ onAction?: (action: PuckAction, newState: AppState, state: AppState) => void;
100
+ metadata: Metadata;
101
+ fields: FieldsSlice;
102
+ history: HistorySlice;
103
+ nodes: NodesSlice;
104
+ permissions: PermissionsSlice;
105
+ };
106
+
7
107
  declare const ActionBar: {
8
108
  ({ label, children, }: {
9
109
  label?: string;
@@ -42,7 +142,7 @@ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }:
42
142
  className?: string;
43
143
  }) => react_jsx_runtime.JSX.Element;
44
144
  type FieldNoLabel<Props extends any = any> = Omit<Field<Props>, "label">;
45
- declare function AutoField<ValueType = any, FieldType extends FieldNoLabel<ValueType> = FieldNoLabel<ValueType>>(props: FieldProps<FieldType, ValueType>): react_jsx_runtime.JSX.Element;
145
+ declare function AutoField<ValueType = any, FieldType extends FieldNoLabel<ValueType> = FieldNoLabel<ValueType>>(props: FieldProps<FieldType, ValueType>): react_jsx_runtime.JSX.Element | null;
46
146
 
47
147
  declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, loading: loadingProp, ...props }: {
48
148
  children: ReactNode;
@@ -146,119 +246,13 @@ declare function Render<UserConfig extends Config = Config, G extends UserGeneri
146
246
  metadata?: Metadata;
147
247
  }): react_jsx_runtime.JSX.Element;
148
248
 
149
- declare function migrate(data: Data): Data;
249
+ declare function migrate(data: Data, config?: Config): Data;
150
250
 
151
- type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps> = Partial<{
152
- [ComponentName in keyof Props]: (props: Props[ComponentName] & {
153
- [key: string]: any;
154
- }) => Props[ComponentName];
155
- } & {
156
- root: (props: RootProps & {
157
- [key: string]: any;
158
- }) => RootProps;
159
- }>;
160
- declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
161
-
162
- type HistorySlice<D = any> = {
163
- index: number;
164
- hasPast: () => boolean;
165
- hasFuture: () => boolean;
166
- histories: History<D>[];
167
- record: (data: D) => void;
168
- back: VoidFunction;
169
- forward: VoidFunction;
170
- currentHistory: () => History;
171
- nextHistory: () => History<D> | null;
172
- prevHistory: () => History<D> | null;
173
- setHistories: (histories: History[]) => void;
174
- setHistoryIndex: (index: number) => void;
175
- initialAppState: D;
176
- };
177
-
178
- type NodeMethods = {
179
- sync: () => void;
180
- };
181
- type PuckNode = {
182
- id: string;
183
- methods: NodeMethods;
184
- data: ComponentData;
185
- parentId: string | null;
186
- zone: string;
187
- path: string[];
188
- index: number;
189
- element: HTMLElement | null;
190
- };
191
- type NodesSlice = {
192
- nodes: Record<string, PuckNode | undefined>;
193
- registerNode: (id: string, node: Partial<PuckNode>) => void;
194
- unregisterNode: (id: string, node?: Partial<PuckNode>) => void;
195
- };
196
-
197
- type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
198
- item?: G["UserComponentData"] | null;
199
- type?: keyof G["UserProps"];
200
- root?: boolean;
201
- };
202
- type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
203
- type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
204
- type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
205
- type Cache = Record<string, {
206
- lastPermissions: Partial<Permissions>;
207
- lastData: ComponentData | null;
208
- }>;
209
- type PermissionsSlice = {
210
- cache: Cache;
211
- globalPermissions: Permissions;
212
- resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
213
- getPermissions: GetPermissions<Config>;
214
- resolvePermissions: ResolvePermissions<Config>;
215
- refreshPermissions: RefreshPermissions<Config>;
216
- };
217
-
218
- type ComponentOrRootData = Omit<ComponentData<any>, "type">;
219
- type FieldsSlice = {
220
- fields: Fields | Partial<Fields>;
221
- loading: boolean;
222
- lastResolvedData: Partial<ComponentOrRootData>;
223
- };
224
-
225
- type Status = "LOADING" | "MOUNTED" | "READY";
226
- type ZoomConfig = {
227
- autoZoom: number;
228
- rootHeight: number;
229
- zoom: number;
230
- };
231
- type ComponentState = Record<string, {
232
- loadingCount: number;
233
- }>;
234
- type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
235
- state: G["UserAppState"];
236
- dispatch: (action: PuckAction) => void;
237
- config: UserConfig;
238
- componentState: ComponentState;
239
- setComponentState: (componentState: ComponentState) => void;
240
- setComponentLoading: (id: string) => void;
241
- unsetComponentLoading: (id: string) => void;
242
- resolveDataRuns: number;
243
- resolveData: (newAppState: AppState) => void;
244
- plugins: Plugin[];
245
- overrides: Partial<Overrides>;
246
- viewports: Viewports;
247
- zoomConfig: ZoomConfig;
248
- setZoomConfig: (zoomConfig: ZoomConfig) => void;
249
- status: Status;
250
- setStatus: (status: Status) => void;
251
- iframe: IframeConfig;
252
- selectedItem?: G["UserData"]["content"][0] | null;
253
- setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
254
- getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
255
- onAction?: (action: PuckAction, newState: AppState, state: AppState) => void;
256
- metadata: Metadata;
257
- fields: FieldsSlice;
258
- history: HistorySlice;
259
- nodes: NodesSlice;
260
- permissions: PermissionsSlice;
251
+ type MapSlotOptions = {
252
+ parentId: string;
253
+ propName: string;
261
254
  };
255
+ declare function mapSlotsPublic<T extends ComponentData | RootData>(item: T, config: Config, map: (data: Content, options: MapSlotOptions) => Content): T;
262
256
 
263
257
  type WithGet<T> = T & {
264
258
  get: () => T;
@@ -270,6 +264,9 @@ type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<User
270
264
  getPermissions: GetPermissions<UserConfig>;
271
265
  refreshPermissions: RefreshPermissions<UserConfig>;
272
266
  selectedItem: G["UserComponentData"] | null;
267
+ getItemBySelector: (selector: ItemSelector) => ComponentData | undefined;
268
+ getItemById: (id: string) => ComponentData | undefined;
269
+ getSelectorForId: (id: string) => Required<ItemSelector> | undefined;
273
270
  history: {
274
271
  back: HistorySlice["back"];
275
272
  forward: HistorySlice["forward"];
@@ -281,7 +278,8 @@ type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<User
281
278
  hasFuture: boolean;
282
279
  };
283
280
  };
284
- type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<UserConfig>>;
281
+ type PuckApi<UserConfig extends Config = Config> = UsePuckData<UserConfig>;
282
+ type UsePuckStore<UserConfig extends Config = Config> = WithGet<PuckApi<UserConfig>>;
285
283
  /**
286
284
  * createUsePuck
287
285
  *
@@ -291,7 +289,7 @@ type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<User
291
289
  *
292
290
  * @returns a typed usePuck function
293
291
  */
294
- declare function createUsePuck<UserConfig extends Config = Config>(): <T = UsePuckData<UserConfig, UserGenerics<UserConfig>>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
292
+ declare function createUsePuck<UserConfig extends Config = Config>(): <T = PuckApi<UserConfig>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
295
293
  declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
296
294
 
297
- export { Action, ActionBar, AppState, AutoField, Button, ComponentConfig, ComponentData, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, Field, FieldLabel, FieldProps, Fields, Group, History, IconButton, IframeConfig, InitialHistory, Label, Metadata, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, type UsePuckData, UserGenerics, Viewports, createUsePuck, migrate, renderContext, transformProps, usePuck };
295
+ export { Action, ActionBar, AppState, AutoField, Button, ComponentConfig, ComponentData, Config, Content, Data, Drawer, DropZone, Field, FieldLabel, FieldProps, Fields, Group, History, IconButton, IframeConfig, InitialHistory, Label, Metadata, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, type PuckApi, Render, ResolveDataTrigger, RootData, RootDataWithProps, UiState, type UsePuckData, UserGenerics, Viewports, createUsePuck, mapSlotsPublic as mapSlots, migrate, renderContext, usePuck };