@measured/puck 0.18.3-canary.9e8e47b → 0.19.0-canary.0a3e56e
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/{chunk-CHWFBYEM.mjs → chunk-T6VJEBJD.mjs} +25 -9
- package/dist/index.d.mts +126 -26
- package/dist/index.d.ts +126 -26
- package/dist/index.js +5126 -4882
- package/dist/index.mjs +5074 -4848
- package/dist/{resolve-all-data-ppm982Jh.d.mts → resolve-all-data-wwgDuTnC.d.mts} +11 -2
- package/dist/{resolve-all-data-ppm982Jh.d.ts → resolve-all-data-wwgDuTnC.d.ts} +11 -2
- package/dist/rsc.d.mts +4 -3
- package/dist/rsc.d.ts +4 -3
- package/dist/rsc.js +62 -17
- package/dist/rsc.mjs +42 -9
- package/package.json +2 -1
@@ -111,19 +111,20 @@ var getChanged = (newItem, oldItem) => {
|
|
111
111
|
|
112
112
|
// lib/resolve-component-data.ts
|
113
113
|
var cache = { lastChange: {} };
|
114
|
-
var resolveAllComponentData = (
|
114
|
+
var resolveAllComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], function* (content, config, metadata = {}, onResolveStart, onResolveEnd) {
|
115
115
|
return yield Promise.all(
|
116
116
|
content.map((item) => __async(void 0, null, function* () {
|
117
117
|
return yield resolveComponentData(
|
118
118
|
item,
|
119
119
|
config,
|
120
|
+
metadata,
|
120
121
|
onResolveStart,
|
121
122
|
onResolveEnd
|
122
123
|
);
|
123
124
|
}))
|
124
125
|
);
|
125
126
|
});
|
126
|
-
var resolveComponentData = (
|
127
|
+
var resolveComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], function* (item, config, metadata = {}, onResolveStart, onResolveEnd) {
|
127
128
|
const configForItem = config.components[item.type];
|
128
129
|
if (configForItem.resolveData) {
|
129
130
|
const { item: oldItem = null, resolved = {} } = cache.lastChange[item.props.id] || {};
|
@@ -134,7 +135,11 @@ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __asy
|
|
134
135
|
if (onResolveStart) {
|
135
136
|
onResolveStart(item);
|
136
137
|
}
|
137
|
-
const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, {
|
138
|
+
const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, {
|
139
|
+
changed,
|
140
|
+
lastData: oldItem,
|
141
|
+
metadata
|
142
|
+
});
|
138
143
|
const resolvedItem = __spreadProps(__spreadValues({}, item), {
|
139
144
|
props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
|
140
145
|
});
|
@@ -156,7 +161,7 @@ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __asy
|
|
156
161
|
// lib/resolve-root-data.ts
|
157
162
|
init_react_import();
|
158
163
|
var cache2 = {};
|
159
|
-
function resolveRootData(data, config) {
|
164
|
+
function resolveRootData(data, config, metadata) {
|
160
165
|
return __async(this, null, function* () {
|
161
166
|
var _a, _b, _c, _d, _e;
|
162
167
|
if (((_a = config.root) == null ? void 0 : _a.resolveData) && data.root.props) {
|
@@ -167,7 +172,8 @@ function resolveRootData(data, config) {
|
|
167
172
|
const rootWithProps = data.root;
|
168
173
|
const resolvedRoot = yield (_e = config.root) == null ? void 0 : _e.resolveData(rootWithProps, {
|
169
174
|
changed,
|
170
|
-
lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {}
|
175
|
+
lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {},
|
176
|
+
metadata: metadata || {}
|
171
177
|
});
|
172
178
|
cache2.lastChange = {
|
173
179
|
original: data.root,
|
@@ -189,10 +195,14 @@ var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
|
|
189
195
|
});
|
190
196
|
|
191
197
|
// lib/resolve-all-data.ts
|
192
|
-
function resolveAllData(
|
193
|
-
return __async(this,
|
198
|
+
function resolveAllData(_0, _1) {
|
199
|
+
return __async(this, arguments, function* (data, config, metadata = {}, onResolveStart, onResolveEnd) {
|
194
200
|
const defaultedData = defaultData(data);
|
195
|
-
const dynamicRoot = yield resolveRootData(
|
201
|
+
const dynamicRoot = yield resolveRootData(
|
202
|
+
defaultedData,
|
203
|
+
config,
|
204
|
+
metadata
|
205
|
+
);
|
196
206
|
const { zones = {} } = data;
|
197
207
|
const zoneKeys = Object.keys(zones);
|
198
208
|
const resolvedZones = {};
|
@@ -201,6 +211,7 @@ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
|
|
201
211
|
resolvedZones[zoneKey] = yield resolveAllComponentData(
|
202
212
|
zones[zoneKey],
|
203
213
|
config,
|
214
|
+
metadata,
|
204
215
|
onResolveStart,
|
205
216
|
onResolveEnd
|
206
217
|
);
|
@@ -210,6 +221,7 @@ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
|
|
210
221
|
content: yield resolveAllComponentData(
|
211
222
|
defaultedData.content,
|
212
223
|
config,
|
224
|
+
metadata,
|
213
225
|
onResolveStart,
|
214
226
|
onResolveEnd
|
215
227
|
),
|
@@ -220,7 +232,9 @@ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
|
|
220
232
|
|
221
233
|
// lib/root-droppable-id.ts
|
222
234
|
init_react_import();
|
223
|
-
var
|
235
|
+
var rootAreaId = "root";
|
236
|
+
var rootZone = "default-zone";
|
237
|
+
var rootDroppableId = `${rootAreaId}:${rootZone}`;
|
224
238
|
|
225
239
|
// lib/setup-zone.ts
|
226
240
|
init_react_import();
|
@@ -246,6 +260,8 @@ export {
|
|
246
260
|
__privateSet,
|
247
261
|
__async,
|
248
262
|
init_react_import,
|
263
|
+
rootAreaId,
|
264
|
+
rootZone,
|
249
265
|
rootDroppableId,
|
250
266
|
setupZone,
|
251
267
|
getChanged,
|
package/dist/index.d.mts
CHANGED
@@ -1,8 +1,8 @@
|
|
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, h as DefaultComponentProps, i as DefaultRootFieldProps, H as History,
|
2
|
-
export { Q as Adaptor, K as ArrayField,
|
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.mjs';
|
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.mjs';
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
4
4
|
import * as react from 'react';
|
5
|
-
import { ReactNode, SyntheticEvent, ReactElement } from 'react';
|
5
|
+
import react__default, { ReactNode, SyntheticEvent, ReactElement } from 'react';
|
6
6
|
|
7
7
|
declare const ActionBar: {
|
8
8
|
({ label, children, }: {
|
@@ -93,7 +93,7 @@ declare const IconButton: ({ children, href, onClick, variant, type, disabled, t
|
|
93
93
|
title: string;
|
94
94
|
}) => react_jsx_runtime.JSX.Element;
|
95
95
|
|
96
|
-
|
96
|
+
type PuckProps<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
97
97
|
children?: ReactNode;
|
98
98
|
config: UserConfig;
|
99
99
|
data: Partial<G["UserData"] | Data>;
|
@@ -121,7 +121,9 @@ declare function Puck<UserConfig extends Config = Config, G extends UserGenerics
|
|
121
121
|
disableAutoScroll?: boolean;
|
122
122
|
};
|
123
123
|
initialHistory?: InitialHistory;
|
124
|
-
|
124
|
+
metadata?: Metadata;
|
125
|
+
};
|
126
|
+
declare function Puck<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(props: PuckProps<UserConfig>): react_jsx_runtime.JSX.Element;
|
125
127
|
declare namespace Puck {
|
126
128
|
var Components: () => react_jsx_runtime.JSX.Element;
|
127
129
|
var Fields: ({ wrapFields }: {
|
@@ -133,9 +135,15 @@ declare namespace Puck {
|
|
133
135
|
}) => react_jsx_runtime.JSX.Element;
|
134
136
|
}
|
135
137
|
|
136
|
-
declare
|
138
|
+
declare const renderContext: react__default.Context<{
|
139
|
+
config: Config;
|
140
|
+
data: Data;
|
141
|
+
metadata: Metadata;
|
142
|
+
}>;
|
143
|
+
declare function Render<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>({ config, data, metadata, }: {
|
137
144
|
config: UserConfig;
|
138
145
|
data: Partial<G["UserData"] | Data>;
|
146
|
+
metadata?: Metadata;
|
139
147
|
}): react_jsx_runtime.JSX.Element;
|
140
148
|
|
141
149
|
declare function migrate(data: Data): Data;
|
@@ -151,47 +159,139 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
|
|
151
159
|
}>;
|
152
160
|
declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
|
153
161
|
|
154
|
-
type
|
162
|
+
type HistorySlice<D = any> = {
|
155
163
|
index: number;
|
156
|
-
hasPast: boolean;
|
157
|
-
hasFuture: boolean;
|
164
|
+
hasPast: () => boolean;
|
165
|
+
hasFuture: () => boolean;
|
158
166
|
histories: History<D>[];
|
159
167
|
record: (data: D) => void;
|
160
168
|
back: VoidFunction;
|
161
169
|
forward: VoidFunction;
|
162
|
-
currentHistory: History;
|
163
|
-
nextHistory: History<D> | null;
|
164
|
-
prevHistory: History<D> | null;
|
170
|
+
currentHistory: () => History;
|
171
|
+
nextHistory: () => History<D> | null;
|
172
|
+
prevHistory: () => History<D> | null;
|
165
173
|
setHistories: (histories: History[]) => void;
|
166
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;
|
167
195
|
};
|
168
196
|
|
169
197
|
type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
170
|
-
item?: G["UserComponentData"];
|
198
|
+
item?: G["UserComponentData"] | null;
|
171
199
|
type?: keyof G["UserProps"];
|
172
200
|
root?: boolean;
|
173
201
|
};
|
174
|
-
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) =>
|
202
|
+
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
|
203
|
+
type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
175
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
|
+
};
|
176
217
|
|
177
|
-
|
178
|
-
|
179
|
-
|
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"];
|
180
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
|
+
type WithGet<T> = T & {
|
264
|
+
get: () => T;
|
265
|
+
};
|
266
|
+
type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
267
|
+
appState: AppState;
|
268
|
+
config: Config;
|
269
|
+
dispatch: AppStore["dispatch"];
|
181
270
|
getPermissions: GetPermissions<UserConfig>;
|
182
271
|
refreshPermissions: RefreshPermissions<UserConfig>;
|
272
|
+
selectedItem: G["UserComponentData"] | null;
|
183
273
|
history: {
|
184
|
-
back:
|
185
|
-
forward:
|
186
|
-
setHistories:
|
187
|
-
setHistoryIndex:
|
274
|
+
back: HistorySlice["back"];
|
275
|
+
forward: HistorySlice["forward"];
|
276
|
+
setHistories: HistorySlice["setHistories"];
|
277
|
+
setHistoryIndex: HistorySlice["setHistoryIndex"];
|
278
|
+
histories: HistorySlice["histories"];
|
279
|
+
index: HistorySlice["index"];
|
188
280
|
hasPast: boolean;
|
189
281
|
hasFuture: boolean;
|
190
|
-
histories: History<any>[];
|
191
|
-
index: number;
|
192
|
-
historyStore: HistoryStore | undefined;
|
193
282
|
};
|
194
|
-
selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
|
195
283
|
};
|
284
|
+
type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<UserConfig>>;
|
285
|
+
/**
|
286
|
+
* createUsePuck
|
287
|
+
*
|
288
|
+
* Create a typed usePuck hook, which is necessary because the user may provide a generic type but not
|
289
|
+
* a selector type, and TS does not currently support partial inference.
|
290
|
+
* Related: https://github.com/microsoft/TypeScript/issues/26242
|
291
|
+
*
|
292
|
+
* @returns a typed usePuck function
|
293
|
+
*/
|
294
|
+
declare function createUsePuck<UserConfig extends Config = Config>(): <T = UsePuckData<UserConfig, UserGenerics<UserConfig>>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
|
295
|
+
declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
|
196
296
|
|
197
|
-
export { Action, ActionBar, AppState, AutoField, Button,
|
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 };
|
package/dist/index.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
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, h as DefaultComponentProps, i as DefaultRootFieldProps, H as History,
|
2
|
-
export { Q as Adaptor, K as ArrayField,
|
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';
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
4
4
|
import * as react from 'react';
|
5
|
-
import { ReactNode, SyntheticEvent, ReactElement } from 'react';
|
5
|
+
import react__default, { ReactNode, SyntheticEvent, ReactElement } from 'react';
|
6
6
|
|
7
7
|
declare const ActionBar: {
|
8
8
|
({ label, children, }: {
|
@@ -93,7 +93,7 @@ declare const IconButton: ({ children, href, onClick, variant, type, disabled, t
|
|
93
93
|
title: string;
|
94
94
|
}) => react_jsx_runtime.JSX.Element;
|
95
95
|
|
96
|
-
|
96
|
+
type PuckProps<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
97
97
|
children?: ReactNode;
|
98
98
|
config: UserConfig;
|
99
99
|
data: Partial<G["UserData"] | Data>;
|
@@ -121,7 +121,9 @@ declare function Puck<UserConfig extends Config = Config, G extends UserGenerics
|
|
121
121
|
disableAutoScroll?: boolean;
|
122
122
|
};
|
123
123
|
initialHistory?: InitialHistory;
|
124
|
-
|
124
|
+
metadata?: Metadata;
|
125
|
+
};
|
126
|
+
declare function Puck<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>(props: PuckProps<UserConfig>): react_jsx_runtime.JSX.Element;
|
125
127
|
declare namespace Puck {
|
126
128
|
var Components: () => react_jsx_runtime.JSX.Element;
|
127
129
|
var Fields: ({ wrapFields }: {
|
@@ -133,9 +135,15 @@ declare namespace Puck {
|
|
133
135
|
}) => react_jsx_runtime.JSX.Element;
|
134
136
|
}
|
135
137
|
|
136
|
-
declare
|
138
|
+
declare const renderContext: react__default.Context<{
|
139
|
+
config: Config;
|
140
|
+
data: Data;
|
141
|
+
metadata: Metadata;
|
142
|
+
}>;
|
143
|
+
declare function Render<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>>({ config, data, metadata, }: {
|
137
144
|
config: UserConfig;
|
138
145
|
data: Partial<G["UserData"] | Data>;
|
146
|
+
metadata?: Metadata;
|
139
147
|
}): react_jsx_runtime.JSX.Element;
|
140
148
|
|
141
149
|
declare function migrate(data: Data): Data;
|
@@ -151,47 +159,139 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
|
|
151
159
|
}>;
|
152
160
|
declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
|
153
161
|
|
154
|
-
type
|
162
|
+
type HistorySlice<D = any> = {
|
155
163
|
index: number;
|
156
|
-
hasPast: boolean;
|
157
|
-
hasFuture: boolean;
|
164
|
+
hasPast: () => boolean;
|
165
|
+
hasFuture: () => boolean;
|
158
166
|
histories: History<D>[];
|
159
167
|
record: (data: D) => void;
|
160
168
|
back: VoidFunction;
|
161
169
|
forward: VoidFunction;
|
162
|
-
currentHistory: History;
|
163
|
-
nextHistory: History<D> | null;
|
164
|
-
prevHistory: History<D> | null;
|
170
|
+
currentHistory: () => History;
|
171
|
+
nextHistory: () => History<D> | null;
|
172
|
+
prevHistory: () => History<D> | null;
|
165
173
|
setHistories: (histories: History[]) => void;
|
166
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;
|
167
195
|
};
|
168
196
|
|
169
197
|
type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
170
|
-
item?: G["UserComponentData"];
|
198
|
+
item?: G["UserComponentData"] | null;
|
171
199
|
type?: keyof G["UserProps"];
|
172
200
|
root?: boolean;
|
173
201
|
};
|
174
|
-
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) =>
|
202
|
+
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
|
203
|
+
type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
175
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
|
+
};
|
176
217
|
|
177
|
-
|
178
|
-
|
179
|
-
|
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"];
|
180
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
|
+
type WithGet<T> = T & {
|
264
|
+
get: () => T;
|
265
|
+
};
|
266
|
+
type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
267
|
+
appState: AppState;
|
268
|
+
config: Config;
|
269
|
+
dispatch: AppStore["dispatch"];
|
181
270
|
getPermissions: GetPermissions<UserConfig>;
|
182
271
|
refreshPermissions: RefreshPermissions<UserConfig>;
|
272
|
+
selectedItem: G["UserComponentData"] | null;
|
183
273
|
history: {
|
184
|
-
back:
|
185
|
-
forward:
|
186
|
-
setHistories:
|
187
|
-
setHistoryIndex:
|
274
|
+
back: HistorySlice["back"];
|
275
|
+
forward: HistorySlice["forward"];
|
276
|
+
setHistories: HistorySlice["setHistories"];
|
277
|
+
setHistoryIndex: HistorySlice["setHistoryIndex"];
|
278
|
+
histories: HistorySlice["histories"];
|
279
|
+
index: HistorySlice["index"];
|
188
280
|
hasPast: boolean;
|
189
281
|
hasFuture: boolean;
|
190
|
-
histories: History<any>[];
|
191
|
-
index: number;
|
192
|
-
historyStore: HistoryStore | undefined;
|
193
282
|
};
|
194
|
-
selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
|
195
283
|
};
|
284
|
+
type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<UserConfig>>;
|
285
|
+
/**
|
286
|
+
* createUsePuck
|
287
|
+
*
|
288
|
+
* Create a typed usePuck hook, which is necessary because the user may provide a generic type but not
|
289
|
+
* a selector type, and TS does not currently support partial inference.
|
290
|
+
* Related: https://github.com/microsoft/TypeScript/issues/26242
|
291
|
+
*
|
292
|
+
* @returns a typed usePuck function
|
293
|
+
*/
|
294
|
+
declare function createUsePuck<UserConfig extends Config = Config>(): <T = UsePuckData<UserConfig, UserGenerics<UserConfig>>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
|
295
|
+
declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
|
196
296
|
|
197
|
-
export { Action, ActionBar, AppState, AutoField, Button,
|
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 };
|