@measured/puck 0.19.0-canary.ad78e98 → 0.19.0-canary.b46ce9ce
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/README.md +2 -4
- package/dist/chunk-OQMASJLF.mjs +948 -0
- package/dist/index.css +201 -184
- package/dist/index.d.mts +122 -123
- package/dist/index.d.ts +122 -123
- package/dist/index.js +3212 -2607
- package/dist/index.mjs +2313 -2338
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +697 -142
- package/dist/rsc.mjs +9 -104
- package/dist/{resolve-all-data-wwgDuTnC.d.mts → walk-tree-DBd3aQ_5.d.mts} +127 -40
- package/dist/{resolve-all-data-wwgDuTnC.d.ts → walk-tree-DBd3aQ_5.d.ts} +127 -40
- package/package.json +17 -11
- package/dist/chunk-T6VJEBJD.mjs +0 -272
package/dist/index.d.mts
CHANGED
@@ -1,9 +1,112 @@
|
|
1
|
-
import {
|
2
|
-
export {
|
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 ItemSelector } from './walk-tree-DBd3aQ_5.mjs';
|
2
|
+
export { _ as Adaptor, Y as ArrayField, t as ArrayState, ab as AsFieldProps, B as BaseData, K as BaseField, G as ComponentDataMap, z as ComponentDataOptionalId, J as Content, a2 as CustomField, a1 as CustomFieldRender, a8 as DefaultComponentProps, a5 as DefaultRootFieldProps, a7 as DefaultRootProps, a6 as DefaultRootRenderProps, m as Direction, n as DragAxis, a0 as ExternalField, $ as ExternalFieldWithAdaptor, ad as ExtractPropsFromConfig, ae as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, E as MappedItem, N as NumberField, Z as ObjectField, q as OverrideKey, u as PuckComponent, a4 as PuckContext, X as RadioField, v as RootConfig, y as RootData, x as RootDataWithoutProps, Q as SelectField, S as Slot, a3 as SlotField, T as TextField, L as TextareaField, o as Viewport, ac as WithChildren, a9 as WithId, aa as WithPuckProps, W as WithSlotProps, af as migrate, p as overrideKeys, ah as resolveAllData, ag as transformProps, w as walkTree } from './walk-tree-DBd3aQ_5.mjs';
|
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
|
+
hideOverlay: () => void;
|
26
|
+
showOverlay: () => void;
|
27
|
+
};
|
28
|
+
type PuckNodeInstance = {
|
29
|
+
id: string;
|
30
|
+
methods: NodeMethods;
|
31
|
+
element: HTMLElement | null;
|
32
|
+
};
|
33
|
+
type NodesSlice = {
|
34
|
+
nodes: Record<string, PuckNodeInstance | undefined>;
|
35
|
+
registerNode: (id: string, node: Partial<PuckNodeInstance>) => void;
|
36
|
+
unregisterNode: (id: string, node?: Partial<PuckNodeInstance>) => void;
|
37
|
+
};
|
38
|
+
|
39
|
+
type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
40
|
+
item?: G["UserComponentData"] | null;
|
41
|
+
type?: keyof G["UserProps"];
|
42
|
+
root?: boolean;
|
43
|
+
};
|
44
|
+
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
|
45
|
+
type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
46
|
+
type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
47
|
+
type Cache = Record<string, {
|
48
|
+
lastPermissions: Partial<Permissions>;
|
49
|
+
lastData: ComponentData | null;
|
50
|
+
}>;
|
51
|
+
type PermissionsSlice = {
|
52
|
+
cache: Cache;
|
53
|
+
globalPermissions: Permissions;
|
54
|
+
resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
|
55
|
+
getPermissions: GetPermissions<Config>;
|
56
|
+
resolvePermissions: ResolvePermissions<Config>;
|
57
|
+
refreshPermissions: RefreshPermissions<Config>;
|
58
|
+
};
|
59
|
+
|
60
|
+
type ComponentOrRootData = Omit<ComponentData<any>, "type">;
|
61
|
+
type FieldsSlice = {
|
62
|
+
fields: Fields | Partial<Fields>;
|
63
|
+
loading: boolean;
|
64
|
+
lastResolvedData: Partial<ComponentOrRootData>;
|
65
|
+
id: string | undefined;
|
66
|
+
};
|
67
|
+
|
68
|
+
type Status = "LOADING" | "MOUNTED" | "READY";
|
69
|
+
type ZoomConfig = {
|
70
|
+
autoZoom: number;
|
71
|
+
rootHeight: number;
|
72
|
+
zoom: number;
|
73
|
+
};
|
74
|
+
type ComponentState = Record<string, {
|
75
|
+
loadingCount: number;
|
76
|
+
}>;
|
77
|
+
type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
78
|
+
state: G["UserAppState"];
|
79
|
+
dispatch: (action: PuckAction) => void;
|
80
|
+
config: UserConfig;
|
81
|
+
componentState: ComponentState;
|
82
|
+
setComponentState: (componentState: ComponentState) => void;
|
83
|
+
setComponentLoading: (id: string, loading?: boolean, defer?: number) => () => void;
|
84
|
+
unsetComponentLoading: (id: string) => void;
|
85
|
+
pendingLoadTimeouts: Record<string, NodeJS.Timeout>;
|
86
|
+
resolveComponentData: <T extends ComponentData | RootDataWithProps>(componentData: T, trigger: ResolveDataTrigger) => Promise<{
|
87
|
+
node: T;
|
88
|
+
didChange: boolean;
|
89
|
+
}>;
|
90
|
+
resolveAndCommitData: () => void;
|
91
|
+
plugins: Plugin[];
|
92
|
+
overrides: Partial<Overrides>;
|
93
|
+
viewports: Viewports;
|
94
|
+
zoomConfig: ZoomConfig;
|
95
|
+
setZoomConfig: (zoomConfig: ZoomConfig) => void;
|
96
|
+
status: Status;
|
97
|
+
setStatus: (status: Status) => void;
|
98
|
+
iframe: IframeConfig;
|
99
|
+
selectedItem?: G["UserData"]["content"][0] | null;
|
100
|
+
setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
|
101
|
+
getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
|
102
|
+
onAction?: (action: PuckAction, newState: AppState, state: AppState) => void;
|
103
|
+
metadata: Metadata;
|
104
|
+
fields: FieldsSlice;
|
105
|
+
history: HistorySlice;
|
106
|
+
nodes: NodesSlice;
|
107
|
+
permissions: PermissionsSlice;
|
108
|
+
};
|
109
|
+
|
7
110
|
declare const ActionBar: {
|
8
111
|
({ label, children, }: {
|
9
112
|
label?: string;
|
@@ -42,7 +145,7 @@ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }:
|
|
42
145
|
className?: string;
|
43
146
|
}) => react_jsx_runtime.JSX.Element;
|
44
147
|
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;
|
148
|
+
declare function AutoField<ValueType = any, FieldType extends FieldNoLabel<ValueType> = FieldNoLabel<ValueType>>(props: FieldProps<FieldType, ValueType>): react_jsx_runtime.JSX.Element | null;
|
46
149
|
|
47
150
|
declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, loading: loadingProp, ...props }: {
|
48
151
|
children: ReactNode;
|
@@ -126,9 +229,9 @@ type PuckProps<UserConfig extends Config = Config, G extends UserGenerics<UserCo
|
|
126
229
|
declare function Puck<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(props: PuckProps<UserConfig>): react_jsx_runtime.JSX.Element;
|
127
230
|
declare namespace Puck {
|
128
231
|
var Components: () => react_jsx_runtime.JSX.Element;
|
129
|
-
var Fields: ({ wrapFields }: {
|
232
|
+
var Fields: react.MemoExoticComponent<({ wrapFields }: {
|
130
233
|
wrapFields?: boolean;
|
131
|
-
}) => react_jsx_runtime.JSX.Element
|
234
|
+
}) => react_jsx_runtime.JSX.Element>;
|
132
235
|
var Outline: () => react_jsx_runtime.JSX.Element;
|
133
236
|
var Preview: ({ id }: {
|
134
237
|
id?: string;
|
@@ -146,130 +249,19 @@ declare function Render<UserConfig extends Config = Config, G extends UserGeneri
|
|
146
249
|
metadata?: Metadata;
|
147
250
|
}): react_jsx_runtime.JSX.Element;
|
148
251
|
|
149
|
-
declare function migrate(data: Data): Data;
|
150
|
-
|
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;
|
261
|
-
};
|
262
|
-
|
263
252
|
type WithGet<T> = T & {
|
264
253
|
get: () => T;
|
265
254
|
};
|
266
255
|
type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
267
256
|
appState: AppState;
|
268
|
-
config:
|
257
|
+
config: UserConfig;
|
269
258
|
dispatch: AppStore["dispatch"];
|
270
259
|
getPermissions: GetPermissions<UserConfig>;
|
271
260
|
refreshPermissions: RefreshPermissions<UserConfig>;
|
272
261
|
selectedItem: G["UserComponentData"] | null;
|
262
|
+
getItemBySelector: (selector: ItemSelector) => ComponentData | undefined;
|
263
|
+
getItemById: (id: string) => ComponentData | undefined;
|
264
|
+
getSelectorForId: (id: string) => Required<ItemSelector> | undefined;
|
273
265
|
history: {
|
274
266
|
back: HistorySlice["back"];
|
275
267
|
forward: HistorySlice["forward"];
|
@@ -281,7 +273,8 @@ type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<User
|
|
281
273
|
hasFuture: boolean;
|
282
274
|
};
|
283
275
|
};
|
284
|
-
type
|
276
|
+
type PuckApi<UserConfig extends Config = Config> = UsePuckData<UserConfig>;
|
277
|
+
type UsePuckStore<UserConfig extends Config = Config> = WithGet<PuckApi<UserConfig>>;
|
285
278
|
/**
|
286
279
|
* createUsePuck
|
287
280
|
*
|
@@ -291,7 +284,13 @@ type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<User
|
|
291
284
|
*
|
292
285
|
* @returns a typed usePuck function
|
293
286
|
*/
|
294
|
-
declare function createUsePuck<UserConfig extends Config = Config>(): <T =
|
287
|
+
declare function createUsePuck<UserConfig extends Config = Config>(): <T = PuckApi<UserConfig>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
|
295
288
|
declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
|
289
|
+
/**
|
290
|
+
* Get the latest state without relying on a render
|
291
|
+
*
|
292
|
+
* @returns PuckApi
|
293
|
+
*/
|
294
|
+
declare function useGetPuck(): () => UsePuckStore<Config>;
|
296
295
|
|
297
|
-
export { Action, ActionBar, AppState, AutoField, Button, ComponentConfig, ComponentData, Config, Data,
|
296
|
+
export { Action, ActionBar, AppState, AutoField, Button, ComponentConfig, ComponentData, Config, Data, Drawer, DropZone, Field, FieldLabel, FieldProps, Fields, Group, History, IconButton, IframeConfig, InitialHistory, Label, Metadata, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, type PuckApi, Render, ResolveDataTrigger, RootDataWithProps, UiState, type UsePuckData, UserGenerics, Viewports, createUsePuck, renderContext, useGetPuck, usePuck };
|
package/dist/index.d.ts
CHANGED
@@ -1,9 +1,112 @@
|
|
1
|
-
import {
|
2
|
-
export {
|
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 ItemSelector } from './walk-tree-DBd3aQ_5.js';
|
2
|
+
export { _ as Adaptor, Y as ArrayField, t as ArrayState, ab as AsFieldProps, B as BaseData, K as BaseField, G as ComponentDataMap, z as ComponentDataOptionalId, J as Content, a2 as CustomField, a1 as CustomFieldRender, a8 as DefaultComponentProps, a5 as DefaultRootFieldProps, a7 as DefaultRootProps, a6 as DefaultRootRenderProps, m as Direction, n as DragAxis, a0 as ExternalField, $ as ExternalFieldWithAdaptor, ad as ExtractPropsFromConfig, ae as ExtractRootPropsFromConfig, r as FieldRenderFunctions, s as ItemWithId, E as MappedItem, N as NumberField, Z as ObjectField, q as OverrideKey, u as PuckComponent, a4 as PuckContext, X as RadioField, v as RootConfig, y as RootData, x as RootDataWithoutProps, Q as SelectField, S as Slot, a3 as SlotField, T as TextField, L as TextareaField, o as Viewport, ac as WithChildren, a9 as WithId, aa as WithPuckProps, W as WithSlotProps, af as migrate, p as overrideKeys, ah as resolveAllData, ag as transformProps, w as walkTree } from './walk-tree-DBd3aQ_5.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
|
+
hideOverlay: () => void;
|
26
|
+
showOverlay: () => void;
|
27
|
+
};
|
28
|
+
type PuckNodeInstance = {
|
29
|
+
id: string;
|
30
|
+
methods: NodeMethods;
|
31
|
+
element: HTMLElement | null;
|
32
|
+
};
|
33
|
+
type NodesSlice = {
|
34
|
+
nodes: Record<string, PuckNodeInstance | undefined>;
|
35
|
+
registerNode: (id: string, node: Partial<PuckNodeInstance>) => void;
|
36
|
+
unregisterNode: (id: string, node?: Partial<PuckNodeInstance>) => void;
|
37
|
+
};
|
38
|
+
|
39
|
+
type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
40
|
+
item?: G["UserComponentData"] | null;
|
41
|
+
type?: keyof G["UserProps"];
|
42
|
+
root?: boolean;
|
43
|
+
};
|
44
|
+
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
|
45
|
+
type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
46
|
+
type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
47
|
+
type Cache = Record<string, {
|
48
|
+
lastPermissions: Partial<Permissions>;
|
49
|
+
lastData: ComponentData | null;
|
50
|
+
}>;
|
51
|
+
type PermissionsSlice = {
|
52
|
+
cache: Cache;
|
53
|
+
globalPermissions: Permissions;
|
54
|
+
resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
|
55
|
+
getPermissions: GetPermissions<Config>;
|
56
|
+
resolvePermissions: ResolvePermissions<Config>;
|
57
|
+
refreshPermissions: RefreshPermissions<Config>;
|
58
|
+
};
|
59
|
+
|
60
|
+
type ComponentOrRootData = Omit<ComponentData<any>, "type">;
|
61
|
+
type FieldsSlice = {
|
62
|
+
fields: Fields | Partial<Fields>;
|
63
|
+
loading: boolean;
|
64
|
+
lastResolvedData: Partial<ComponentOrRootData>;
|
65
|
+
id: string | undefined;
|
66
|
+
};
|
67
|
+
|
68
|
+
type Status = "LOADING" | "MOUNTED" | "READY";
|
69
|
+
type ZoomConfig = {
|
70
|
+
autoZoom: number;
|
71
|
+
rootHeight: number;
|
72
|
+
zoom: number;
|
73
|
+
};
|
74
|
+
type ComponentState = Record<string, {
|
75
|
+
loadingCount: number;
|
76
|
+
}>;
|
77
|
+
type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
78
|
+
state: G["UserAppState"];
|
79
|
+
dispatch: (action: PuckAction) => void;
|
80
|
+
config: UserConfig;
|
81
|
+
componentState: ComponentState;
|
82
|
+
setComponentState: (componentState: ComponentState) => void;
|
83
|
+
setComponentLoading: (id: string, loading?: boolean, defer?: number) => () => void;
|
84
|
+
unsetComponentLoading: (id: string) => void;
|
85
|
+
pendingLoadTimeouts: Record<string, NodeJS.Timeout>;
|
86
|
+
resolveComponentData: <T extends ComponentData | RootDataWithProps>(componentData: T, trigger: ResolveDataTrigger) => Promise<{
|
87
|
+
node: T;
|
88
|
+
didChange: boolean;
|
89
|
+
}>;
|
90
|
+
resolveAndCommitData: () => void;
|
91
|
+
plugins: Plugin[];
|
92
|
+
overrides: Partial<Overrides>;
|
93
|
+
viewports: Viewports;
|
94
|
+
zoomConfig: ZoomConfig;
|
95
|
+
setZoomConfig: (zoomConfig: ZoomConfig) => void;
|
96
|
+
status: Status;
|
97
|
+
setStatus: (status: Status) => void;
|
98
|
+
iframe: IframeConfig;
|
99
|
+
selectedItem?: G["UserData"]["content"][0] | null;
|
100
|
+
setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
|
101
|
+
getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
|
102
|
+
onAction?: (action: PuckAction, newState: AppState, state: AppState) => void;
|
103
|
+
metadata: Metadata;
|
104
|
+
fields: FieldsSlice;
|
105
|
+
history: HistorySlice;
|
106
|
+
nodes: NodesSlice;
|
107
|
+
permissions: PermissionsSlice;
|
108
|
+
};
|
109
|
+
|
7
110
|
declare const ActionBar: {
|
8
111
|
({ label, children, }: {
|
9
112
|
label?: string;
|
@@ -42,7 +145,7 @@ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }:
|
|
42
145
|
className?: string;
|
43
146
|
}) => react_jsx_runtime.JSX.Element;
|
44
147
|
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;
|
148
|
+
declare function AutoField<ValueType = any, FieldType extends FieldNoLabel<ValueType> = FieldNoLabel<ValueType>>(props: FieldProps<FieldType, ValueType>): react_jsx_runtime.JSX.Element | null;
|
46
149
|
|
47
150
|
declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, loading: loadingProp, ...props }: {
|
48
151
|
children: ReactNode;
|
@@ -126,9 +229,9 @@ type PuckProps<UserConfig extends Config = Config, G extends UserGenerics<UserCo
|
|
126
229
|
declare function Puck<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(props: PuckProps<UserConfig>): react_jsx_runtime.JSX.Element;
|
127
230
|
declare namespace Puck {
|
128
231
|
var Components: () => react_jsx_runtime.JSX.Element;
|
129
|
-
var Fields: ({ wrapFields }: {
|
232
|
+
var Fields: react.MemoExoticComponent<({ wrapFields }: {
|
130
233
|
wrapFields?: boolean;
|
131
|
-
}) => react_jsx_runtime.JSX.Element
|
234
|
+
}) => react_jsx_runtime.JSX.Element>;
|
132
235
|
var Outline: () => react_jsx_runtime.JSX.Element;
|
133
236
|
var Preview: ({ id }: {
|
134
237
|
id?: string;
|
@@ -146,130 +249,19 @@ declare function Render<UserConfig extends Config = Config, G extends UserGeneri
|
|
146
249
|
metadata?: Metadata;
|
147
250
|
}): react_jsx_runtime.JSX.Element;
|
148
251
|
|
149
|
-
declare function migrate(data: Data): Data;
|
150
|
-
|
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;
|
261
|
-
};
|
262
|
-
|
263
252
|
type WithGet<T> = T & {
|
264
253
|
get: () => T;
|
265
254
|
};
|
266
255
|
type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
267
256
|
appState: AppState;
|
268
|
-
config:
|
257
|
+
config: UserConfig;
|
269
258
|
dispatch: AppStore["dispatch"];
|
270
259
|
getPermissions: GetPermissions<UserConfig>;
|
271
260
|
refreshPermissions: RefreshPermissions<UserConfig>;
|
272
261
|
selectedItem: G["UserComponentData"] | null;
|
262
|
+
getItemBySelector: (selector: ItemSelector) => ComponentData | undefined;
|
263
|
+
getItemById: (id: string) => ComponentData | undefined;
|
264
|
+
getSelectorForId: (id: string) => Required<ItemSelector> | undefined;
|
273
265
|
history: {
|
274
266
|
back: HistorySlice["back"];
|
275
267
|
forward: HistorySlice["forward"];
|
@@ -281,7 +273,8 @@ type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<User
|
|
281
273
|
hasFuture: boolean;
|
282
274
|
};
|
283
275
|
};
|
284
|
-
type
|
276
|
+
type PuckApi<UserConfig extends Config = Config> = UsePuckData<UserConfig>;
|
277
|
+
type UsePuckStore<UserConfig extends Config = Config> = WithGet<PuckApi<UserConfig>>;
|
285
278
|
/**
|
286
279
|
* createUsePuck
|
287
280
|
*
|
@@ -291,7 +284,13 @@ type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<User
|
|
291
284
|
*
|
292
285
|
* @returns a typed usePuck function
|
293
286
|
*/
|
294
|
-
declare function createUsePuck<UserConfig extends Config = Config>(): <T =
|
287
|
+
declare function createUsePuck<UserConfig extends Config = Config>(): <T = PuckApi<UserConfig>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
|
295
288
|
declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
|
289
|
+
/**
|
290
|
+
* Get the latest state without relying on a render
|
291
|
+
*
|
292
|
+
* @returns PuckApi
|
293
|
+
*/
|
294
|
+
declare function useGetPuck(): () => UsePuckStore<Config>;
|
296
295
|
|
297
|
-
export { Action, ActionBar, AppState, AutoField, Button, ComponentConfig, ComponentData, Config, Data,
|
296
|
+
export { Action, ActionBar, AppState, AutoField, Button, ComponentConfig, ComponentData, Config, Data, Drawer, DropZone, Field, FieldLabel, FieldProps, Fields, Group, History, IconButton, IframeConfig, InitialHistory, Label, Metadata, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, type PuckApi, Render, ResolveDataTrigger, RootDataWithProps, UiState, type UsePuckData, UserGenerics, Viewports, createUsePuck, renderContext, useGetPuck, usePuck };
|