@measured/puck 0.18.3-canary.9e8e47b → 0.19.0-canary.020071e
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-7N5DRY4G.mjs} +69 -17
- package/dist/index.d.mts +126 -37
- package/dist/index.d.ts +126 -37
- package/dist/index.js +5173 -4883
- package/dist/index.mjs +2996 -2759
- package/dist/{resolve-all-data-ppm982Jh.d.mts → resolve-all-data-3XjIPfNh.d.mts} +23 -2
- package/dist/{resolve-all-data-ppm982Jh.d.ts → resolve-all-data-3XjIPfNh.d.ts} +23 -2
- package/dist/rsc.d.mts +4 -3
- package/dist/rsc.d.ts +4 -3
- package/dist/rsc.js +99 -19
- package/dist/rsc.mjs +46 -11
- package/package.json +5 -3
@@ -91,6 +91,49 @@ var init_react_import = __esm({
|
|
91
91
|
}
|
92
92
|
});
|
93
93
|
|
94
|
+
// lib/transform-props.ts
|
95
|
+
init_react_import();
|
96
|
+
|
97
|
+
// lib/default-data.ts
|
98
|
+
init_react_import();
|
99
|
+
var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
|
100
|
+
root: data.root || {},
|
101
|
+
content: data.content || []
|
102
|
+
});
|
103
|
+
|
104
|
+
// lib/transform-props.ts
|
105
|
+
function transformProps(data, propTransforms) {
|
106
|
+
const mapItem = (item) => {
|
107
|
+
if (propTransforms[item.type]) {
|
108
|
+
return __spreadProps(__spreadValues({}, item), {
|
109
|
+
props: propTransforms[item.type](item.props)
|
110
|
+
});
|
111
|
+
}
|
112
|
+
return item;
|
113
|
+
};
|
114
|
+
const defaultedData = defaultData(data);
|
115
|
+
const rootProps = defaultedData.root.props || defaultedData.root;
|
116
|
+
let newRoot = __spreadValues({}, defaultedData.root);
|
117
|
+
if (propTransforms["root"]) {
|
118
|
+
if (defaultedData.root.props) {
|
119
|
+
newRoot.props = propTransforms["root"](rootProps);
|
120
|
+
} else {
|
121
|
+
newRoot = propTransforms["root"](rootProps);
|
122
|
+
}
|
123
|
+
}
|
124
|
+
const afterPropTransforms = __spreadProps(__spreadValues({}, defaultedData), {
|
125
|
+
root: newRoot,
|
126
|
+
content: defaultedData.content.map(mapItem),
|
127
|
+
zones: Object.keys(data.zones || {}).reduce(
|
128
|
+
(acc, zoneKey) => __spreadProps(__spreadValues({}, acc), {
|
129
|
+
[zoneKey]: data.zones[zoneKey].map(mapItem)
|
130
|
+
}),
|
131
|
+
{}
|
132
|
+
)
|
133
|
+
});
|
134
|
+
return afterPropTransforms;
|
135
|
+
}
|
136
|
+
|
94
137
|
// lib/resolve-all-data.ts
|
95
138
|
init_react_import();
|
96
139
|
|
@@ -111,19 +154,20 @@ var getChanged = (newItem, oldItem) => {
|
|
111
154
|
|
112
155
|
// lib/resolve-component-data.ts
|
113
156
|
var cache = { lastChange: {} };
|
114
|
-
var resolveAllComponentData = (
|
157
|
+
var resolveAllComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], function* (content, config, metadata = {}, onResolveStart, onResolveEnd) {
|
115
158
|
return yield Promise.all(
|
116
159
|
content.map((item) => __async(void 0, null, function* () {
|
117
160
|
return yield resolveComponentData(
|
118
161
|
item,
|
119
162
|
config,
|
163
|
+
metadata,
|
120
164
|
onResolveStart,
|
121
165
|
onResolveEnd
|
122
166
|
);
|
123
167
|
}))
|
124
168
|
);
|
125
169
|
});
|
126
|
-
var resolveComponentData = (
|
170
|
+
var resolveComponentData = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], function* (item, config, metadata = {}, onResolveStart, onResolveEnd) {
|
127
171
|
const configForItem = config.components[item.type];
|
128
172
|
if (configForItem.resolveData) {
|
129
173
|
const { item: oldItem = null, resolved = {} } = cache.lastChange[item.props.id] || {};
|
@@ -134,7 +178,11 @@ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __asy
|
|
134
178
|
if (onResolveStart) {
|
135
179
|
onResolveStart(item);
|
136
180
|
}
|
137
|
-
const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, {
|
181
|
+
const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, {
|
182
|
+
changed,
|
183
|
+
lastData: oldItem,
|
184
|
+
metadata
|
185
|
+
});
|
138
186
|
const resolvedItem = __spreadProps(__spreadValues({}, item), {
|
139
187
|
props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
|
140
188
|
});
|
@@ -156,7 +204,7 @@ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __asy
|
|
156
204
|
// lib/resolve-root-data.ts
|
157
205
|
init_react_import();
|
158
206
|
var cache2 = {};
|
159
|
-
function resolveRootData(data, config) {
|
207
|
+
function resolveRootData(data, config, metadata) {
|
160
208
|
return __async(this, null, function* () {
|
161
209
|
var _a, _b, _c, _d, _e;
|
162
210
|
if (((_a = config.root) == null ? void 0 : _a.resolveData) && data.root.props) {
|
@@ -167,7 +215,8 @@ function resolveRootData(data, config) {
|
|
167
215
|
const rootWithProps = data.root;
|
168
216
|
const resolvedRoot = yield (_e = config.root) == null ? void 0 : _e.resolveData(rootWithProps, {
|
169
217
|
changed,
|
170
|
-
lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {}
|
218
|
+
lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {},
|
219
|
+
metadata: metadata || {}
|
171
220
|
});
|
172
221
|
cache2.lastChange = {
|
173
222
|
original: data.root,
|
@@ -181,18 +230,15 @@ function resolveRootData(data, config) {
|
|
181
230
|
});
|
182
231
|
}
|
183
232
|
|
184
|
-
// lib/default-data.ts
|
185
|
-
init_react_import();
|
186
|
-
var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
|
187
|
-
root: data.root || {},
|
188
|
-
content: data.content || []
|
189
|
-
});
|
190
|
-
|
191
233
|
// lib/resolve-all-data.ts
|
192
|
-
function resolveAllData(
|
193
|
-
return __async(this,
|
234
|
+
function resolveAllData(_0, _1) {
|
235
|
+
return __async(this, arguments, function* (data, config, metadata = {}, onResolveStart, onResolveEnd) {
|
194
236
|
const defaultedData = defaultData(data);
|
195
|
-
const dynamicRoot = yield resolveRootData(
|
237
|
+
const dynamicRoot = yield resolveRootData(
|
238
|
+
defaultedData,
|
239
|
+
config,
|
240
|
+
metadata
|
241
|
+
);
|
196
242
|
const { zones = {} } = data;
|
197
243
|
const zoneKeys = Object.keys(zones);
|
198
244
|
const resolvedZones = {};
|
@@ -201,6 +247,7 @@ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
|
|
201
247
|
resolvedZones[zoneKey] = yield resolveAllComponentData(
|
202
248
|
zones[zoneKey],
|
203
249
|
config,
|
250
|
+
metadata,
|
204
251
|
onResolveStart,
|
205
252
|
onResolveEnd
|
206
253
|
);
|
@@ -210,6 +257,7 @@ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
|
|
210
257
|
content: yield resolveAllComponentData(
|
211
258
|
defaultedData.content,
|
212
259
|
config,
|
260
|
+
metadata,
|
213
261
|
onResolveStart,
|
214
262
|
onResolveEnd
|
215
263
|
),
|
@@ -220,7 +268,9 @@ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
|
|
220
268
|
|
221
269
|
// lib/root-droppable-id.ts
|
222
270
|
init_react_import();
|
223
|
-
var
|
271
|
+
var rootAreaId = "root";
|
272
|
+
var rootZone = "default-zone";
|
273
|
+
var rootDroppableId = `${rootAreaId}:${rootZone}`;
|
224
274
|
|
225
275
|
// lib/setup-zone.ts
|
226
276
|
init_react_import();
|
@@ -246,11 +296,13 @@ export {
|
|
246
296
|
__privateSet,
|
247
297
|
__async,
|
248
298
|
init_react_import,
|
299
|
+
rootAreaId,
|
300
|
+
rootZone,
|
249
301
|
rootDroppableId,
|
250
302
|
setupZone,
|
251
303
|
getChanged,
|
252
304
|
resolveComponentData,
|
253
305
|
resolveRootData,
|
254
|
-
|
306
|
+
transformProps,
|
255
307
|
resolveAllData
|
256
308
|
};
|
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,
|
2
|
-
export {
|
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 History, h as ComponentData, i as Fields, A as AppState, j as ComponentConfig } from './resolve-all-data-3XjIPfNh.mjs';
|
2
|
+
export { K as Adaptor, G as ArrayField, r as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, w as ComponentDataMap, x as Content, W as CustomField, $ as DefaultComponentProps, Y as DefaultRootFieldProps, _ as DefaultRootProps, Z as DefaultRootRenderProps, k as Direction, l as DragAxis, Q as ExternalField, L as ExternalFieldWithAdaptor, a4 as ExtractPropsFromConfig, a5 as ExtractRootPropsFromConfig, p as FieldRenderFunctions, q as ItemWithId, v as MappedItem, N as NumberField, J as ObjectField, n as OverrideKey, s as PuckComponent, X as PuckContext, E as RadioField, u as RootData, R as RootDataWithProps, t as RootDataWithoutProps, S as SelectField, T as TextField, z as TextareaField, m as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, o as overrideKeys, a7 as resolveAllData, a6 as transformProps } from './resolve-all-data-3XjIPfNh.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,65 +135,152 @@ 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;
|
142
150
|
|
143
|
-
type
|
144
|
-
[ComponentName in keyof Props]: (props: Props[ComponentName] & {
|
145
|
-
[key: string]: any;
|
146
|
-
}) => Props[ComponentName];
|
147
|
-
} & {
|
148
|
-
root: (props: RootProps & {
|
149
|
-
[key: string]: any;
|
150
|
-
}) => RootProps;
|
151
|
-
}>;
|
152
|
-
declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
|
153
|
-
|
154
|
-
type HistoryStore<D = any> = {
|
151
|
+
type HistorySlice<D = any> = {
|
155
152
|
index: number;
|
156
|
-
hasPast: boolean;
|
157
|
-
hasFuture: boolean;
|
153
|
+
hasPast: () => boolean;
|
154
|
+
hasFuture: () => boolean;
|
158
155
|
histories: History<D>[];
|
159
156
|
record: (data: D) => void;
|
160
157
|
back: VoidFunction;
|
161
158
|
forward: VoidFunction;
|
162
|
-
currentHistory: History;
|
163
|
-
nextHistory: History<D> | null;
|
164
|
-
prevHistory: History<D> | null;
|
159
|
+
currentHistory: () => History;
|
160
|
+
nextHistory: () => History<D> | null;
|
161
|
+
prevHistory: () => History<D> | null;
|
165
162
|
setHistories: (histories: History[]) => void;
|
166
163
|
setHistoryIndex: (index: number) => void;
|
164
|
+
initialAppState: D;
|
165
|
+
};
|
166
|
+
|
167
|
+
type NodeMethods = {
|
168
|
+
sync: () => void;
|
169
|
+
};
|
170
|
+
type PuckNode = {
|
171
|
+
id: string;
|
172
|
+
methods: NodeMethods;
|
173
|
+
data: ComponentData;
|
174
|
+
parentId: string | null;
|
175
|
+
zone: string;
|
176
|
+
path: string[];
|
177
|
+
index: number;
|
178
|
+
element: HTMLElement | null;
|
179
|
+
};
|
180
|
+
type NodesSlice = {
|
181
|
+
nodes: Record<string, PuckNode | undefined>;
|
182
|
+
registerNode: (id: string, node: Partial<PuckNode>) => void;
|
183
|
+
unregisterNode: (id: string, node?: Partial<PuckNode>) => void;
|
167
184
|
};
|
168
185
|
|
169
186
|
type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
170
|
-
item?: G["UserComponentData"];
|
187
|
+
item?: G["UserComponentData"] | null;
|
171
188
|
type?: keyof G["UserProps"];
|
172
189
|
root?: boolean;
|
173
190
|
};
|
174
|
-
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) =>
|
191
|
+
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
|
192
|
+
type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
175
193
|
type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
194
|
+
type Cache = Record<string, {
|
195
|
+
lastPermissions: Partial<Permissions>;
|
196
|
+
lastData: ComponentData | null;
|
197
|
+
}>;
|
198
|
+
type PermissionsSlice = {
|
199
|
+
cache: Cache;
|
200
|
+
globalPermissions: Permissions;
|
201
|
+
resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
|
202
|
+
getPermissions: GetPermissions<Config>;
|
203
|
+
resolvePermissions: ResolvePermissions<Config>;
|
204
|
+
refreshPermissions: RefreshPermissions<Config>;
|
205
|
+
};
|
176
206
|
|
177
|
-
|
178
|
-
|
179
|
-
|
207
|
+
type ComponentOrRootData = Omit<ComponentData<any>, "type">;
|
208
|
+
type FieldsSlice = {
|
209
|
+
fields: Fields | Partial<Fields>;
|
210
|
+
loading: boolean;
|
211
|
+
lastResolvedData: Partial<ComponentOrRootData>;
|
212
|
+
};
|
213
|
+
|
214
|
+
type Status = "LOADING" | "MOUNTED" | "READY";
|
215
|
+
type ZoomConfig = {
|
216
|
+
autoZoom: number;
|
217
|
+
rootHeight: number;
|
218
|
+
zoom: number;
|
219
|
+
};
|
220
|
+
type ComponentState = Record<string, {
|
221
|
+
loadingCount: number;
|
222
|
+
}>;
|
223
|
+
type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
224
|
+
state: G["UserAppState"];
|
180
225
|
dispatch: (action: PuckAction) => void;
|
226
|
+
config: UserConfig;
|
227
|
+
componentState: ComponentState;
|
228
|
+
setComponentState: (componentState: ComponentState) => void;
|
229
|
+
setComponentLoading: (id: string) => void;
|
230
|
+
unsetComponentLoading: (id: string) => void;
|
231
|
+
resolveDataRuns: number;
|
232
|
+
resolveData: (newAppState: AppState) => void;
|
233
|
+
plugins: Plugin[];
|
234
|
+
overrides: Partial<Overrides>;
|
235
|
+
viewports: Viewports;
|
236
|
+
zoomConfig: ZoomConfig;
|
237
|
+
setZoomConfig: (zoomConfig: ZoomConfig) => void;
|
238
|
+
status: Status;
|
239
|
+
setStatus: (status: Status) => void;
|
240
|
+
iframe: IframeConfig;
|
241
|
+
selectedItem?: G["UserData"]["content"][0] | null;
|
242
|
+
setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
|
243
|
+
getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
|
244
|
+
onAction?: (action: PuckAction, newState: AppState, state: AppState) => void;
|
245
|
+
metadata: Metadata;
|
246
|
+
fields: FieldsSlice;
|
247
|
+
history: HistorySlice;
|
248
|
+
nodes: NodesSlice;
|
249
|
+
permissions: PermissionsSlice;
|
250
|
+
};
|
251
|
+
|
252
|
+
type WithGet<T> = T & {
|
253
|
+
get: () => T;
|
254
|
+
};
|
255
|
+
type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
256
|
+
appState: AppState;
|
257
|
+
config: Config;
|
258
|
+
dispatch: AppStore["dispatch"];
|
181
259
|
getPermissions: GetPermissions<UserConfig>;
|
182
260
|
refreshPermissions: RefreshPermissions<UserConfig>;
|
261
|
+
selectedItem: G["UserComponentData"] | null;
|
183
262
|
history: {
|
184
|
-
back:
|
185
|
-
forward:
|
186
|
-
setHistories:
|
187
|
-
setHistoryIndex:
|
263
|
+
back: HistorySlice["back"];
|
264
|
+
forward: HistorySlice["forward"];
|
265
|
+
setHistories: HistorySlice["setHistories"];
|
266
|
+
setHistoryIndex: HistorySlice["setHistoryIndex"];
|
267
|
+
histories: HistorySlice["histories"];
|
268
|
+
index: HistorySlice["index"];
|
188
269
|
hasPast: boolean;
|
189
270
|
hasFuture: boolean;
|
190
|
-
histories: History<any>[];
|
191
|
-
index: number;
|
192
|
-
historyStore: HistoryStore | undefined;
|
193
271
|
};
|
194
|
-
selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
|
195
272
|
};
|
273
|
+
type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<UserConfig>>;
|
274
|
+
/**
|
275
|
+
* createUsePuck
|
276
|
+
*
|
277
|
+
* Create a typed usePuck hook, which is necessary because the user may provide a generic type but not
|
278
|
+
* a selector type, and TS does not currently support partial inference.
|
279
|
+
* Related: https://github.com/microsoft/TypeScript/issues/26242
|
280
|
+
*
|
281
|
+
* @returns a typed usePuck function
|
282
|
+
*/
|
283
|
+
declare function createUsePuck<UserConfig extends Config = Config>(): <T = UsePuckData<UserConfig, UserGenerics<UserConfig>>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
|
284
|
+
declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
|
196
285
|
|
197
|
-
export { Action, ActionBar, AppState, AutoField, Button,
|
286
|
+
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, Render, UiState, type UsePuckData, UserGenerics, Viewports, createUsePuck, migrate, renderContext, 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,
|
2
|
-
export {
|
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 History, h as ComponentData, i as Fields, A as AppState, j as ComponentConfig } from './resolve-all-data-3XjIPfNh.js';
|
2
|
+
export { K as Adaptor, G as ArrayField, r as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, w as ComponentDataMap, x as Content, W as CustomField, $ as DefaultComponentProps, Y as DefaultRootFieldProps, _ as DefaultRootProps, Z as DefaultRootRenderProps, k as Direction, l as DragAxis, Q as ExternalField, L as ExternalFieldWithAdaptor, a4 as ExtractPropsFromConfig, a5 as ExtractRootPropsFromConfig, p as FieldRenderFunctions, q as ItemWithId, v as MappedItem, N as NumberField, J as ObjectField, n as OverrideKey, s as PuckComponent, X as PuckContext, E as RadioField, u as RootData, R as RootDataWithProps, t as RootDataWithoutProps, S as SelectField, T as TextField, z as TextareaField, m as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, o as overrideKeys, a7 as resolveAllData, a6 as transformProps } from './resolve-all-data-3XjIPfNh.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,65 +135,152 @@ 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;
|
142
150
|
|
143
|
-
type
|
144
|
-
[ComponentName in keyof Props]: (props: Props[ComponentName] & {
|
145
|
-
[key: string]: any;
|
146
|
-
}) => Props[ComponentName];
|
147
|
-
} & {
|
148
|
-
root: (props: RootProps & {
|
149
|
-
[key: string]: any;
|
150
|
-
}) => RootProps;
|
151
|
-
}>;
|
152
|
-
declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
|
153
|
-
|
154
|
-
type HistoryStore<D = any> = {
|
151
|
+
type HistorySlice<D = any> = {
|
155
152
|
index: number;
|
156
|
-
hasPast: boolean;
|
157
|
-
hasFuture: boolean;
|
153
|
+
hasPast: () => boolean;
|
154
|
+
hasFuture: () => boolean;
|
158
155
|
histories: History<D>[];
|
159
156
|
record: (data: D) => void;
|
160
157
|
back: VoidFunction;
|
161
158
|
forward: VoidFunction;
|
162
|
-
currentHistory: History;
|
163
|
-
nextHistory: History<D> | null;
|
164
|
-
prevHistory: History<D> | null;
|
159
|
+
currentHistory: () => History;
|
160
|
+
nextHistory: () => History<D> | null;
|
161
|
+
prevHistory: () => History<D> | null;
|
165
162
|
setHistories: (histories: History[]) => void;
|
166
163
|
setHistoryIndex: (index: number) => void;
|
164
|
+
initialAppState: D;
|
165
|
+
};
|
166
|
+
|
167
|
+
type NodeMethods = {
|
168
|
+
sync: () => void;
|
169
|
+
};
|
170
|
+
type PuckNode = {
|
171
|
+
id: string;
|
172
|
+
methods: NodeMethods;
|
173
|
+
data: ComponentData;
|
174
|
+
parentId: string | null;
|
175
|
+
zone: string;
|
176
|
+
path: string[];
|
177
|
+
index: number;
|
178
|
+
element: HTMLElement | null;
|
179
|
+
};
|
180
|
+
type NodesSlice = {
|
181
|
+
nodes: Record<string, PuckNode | undefined>;
|
182
|
+
registerNode: (id: string, node: Partial<PuckNode>) => void;
|
183
|
+
unregisterNode: (id: string, node?: Partial<PuckNode>) => void;
|
167
184
|
};
|
168
185
|
|
169
186
|
type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
170
|
-
item?: G["UserComponentData"];
|
187
|
+
item?: G["UserComponentData"] | null;
|
171
188
|
type?: keyof G["UserProps"];
|
172
189
|
root?: boolean;
|
173
190
|
};
|
174
|
-
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) =>
|
191
|
+
type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
|
192
|
+
type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
175
193
|
type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
|
194
|
+
type Cache = Record<string, {
|
195
|
+
lastPermissions: Partial<Permissions>;
|
196
|
+
lastData: ComponentData | null;
|
197
|
+
}>;
|
198
|
+
type PermissionsSlice = {
|
199
|
+
cache: Cache;
|
200
|
+
globalPermissions: Permissions;
|
201
|
+
resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
|
202
|
+
getPermissions: GetPermissions<Config>;
|
203
|
+
resolvePermissions: ResolvePermissions<Config>;
|
204
|
+
refreshPermissions: RefreshPermissions<Config>;
|
205
|
+
};
|
176
206
|
|
177
|
-
|
178
|
-
|
179
|
-
|
207
|
+
type ComponentOrRootData = Omit<ComponentData<any>, "type">;
|
208
|
+
type FieldsSlice = {
|
209
|
+
fields: Fields | Partial<Fields>;
|
210
|
+
loading: boolean;
|
211
|
+
lastResolvedData: Partial<ComponentOrRootData>;
|
212
|
+
};
|
213
|
+
|
214
|
+
type Status = "LOADING" | "MOUNTED" | "READY";
|
215
|
+
type ZoomConfig = {
|
216
|
+
autoZoom: number;
|
217
|
+
rootHeight: number;
|
218
|
+
zoom: number;
|
219
|
+
};
|
220
|
+
type ComponentState = Record<string, {
|
221
|
+
loadingCount: number;
|
222
|
+
}>;
|
223
|
+
type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
224
|
+
state: G["UserAppState"];
|
180
225
|
dispatch: (action: PuckAction) => void;
|
226
|
+
config: UserConfig;
|
227
|
+
componentState: ComponentState;
|
228
|
+
setComponentState: (componentState: ComponentState) => void;
|
229
|
+
setComponentLoading: (id: string) => void;
|
230
|
+
unsetComponentLoading: (id: string) => void;
|
231
|
+
resolveDataRuns: number;
|
232
|
+
resolveData: (newAppState: AppState) => void;
|
233
|
+
plugins: Plugin[];
|
234
|
+
overrides: Partial<Overrides>;
|
235
|
+
viewports: Viewports;
|
236
|
+
zoomConfig: ZoomConfig;
|
237
|
+
setZoomConfig: (zoomConfig: ZoomConfig) => void;
|
238
|
+
status: Status;
|
239
|
+
setStatus: (status: Status) => void;
|
240
|
+
iframe: IframeConfig;
|
241
|
+
selectedItem?: G["UserData"]["content"][0] | null;
|
242
|
+
setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
|
243
|
+
getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
|
244
|
+
onAction?: (action: PuckAction, newState: AppState, state: AppState) => void;
|
245
|
+
metadata: Metadata;
|
246
|
+
fields: FieldsSlice;
|
247
|
+
history: HistorySlice;
|
248
|
+
nodes: NodesSlice;
|
249
|
+
permissions: PermissionsSlice;
|
250
|
+
};
|
251
|
+
|
252
|
+
type WithGet<T> = T & {
|
253
|
+
get: () => T;
|
254
|
+
};
|
255
|
+
type UsePuckData<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
|
256
|
+
appState: AppState;
|
257
|
+
config: Config;
|
258
|
+
dispatch: AppStore["dispatch"];
|
181
259
|
getPermissions: GetPermissions<UserConfig>;
|
182
260
|
refreshPermissions: RefreshPermissions<UserConfig>;
|
261
|
+
selectedItem: G["UserComponentData"] | null;
|
183
262
|
history: {
|
184
|
-
back:
|
185
|
-
forward:
|
186
|
-
setHistories:
|
187
|
-
setHistoryIndex:
|
263
|
+
back: HistorySlice["back"];
|
264
|
+
forward: HistorySlice["forward"];
|
265
|
+
setHistories: HistorySlice["setHistories"];
|
266
|
+
setHistoryIndex: HistorySlice["setHistoryIndex"];
|
267
|
+
histories: HistorySlice["histories"];
|
268
|
+
index: HistorySlice["index"];
|
188
269
|
hasPast: boolean;
|
189
270
|
hasFuture: boolean;
|
190
|
-
histories: History<any>[];
|
191
|
-
index: number;
|
192
|
-
historyStore: HistoryStore | undefined;
|
193
271
|
};
|
194
|
-
selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
|
195
272
|
};
|
273
|
+
type UsePuckStore<UserConfig extends Config = Config> = WithGet<UsePuckData<UserConfig>>;
|
274
|
+
/**
|
275
|
+
* createUsePuck
|
276
|
+
*
|
277
|
+
* Create a typed usePuck hook, which is necessary because the user may provide a generic type but not
|
278
|
+
* a selector type, and TS does not currently support partial inference.
|
279
|
+
* Related: https://github.com/microsoft/TypeScript/issues/26242
|
280
|
+
*
|
281
|
+
* @returns a typed usePuck function
|
282
|
+
*/
|
283
|
+
declare function createUsePuck<UserConfig extends Config = Config>(): <T = UsePuckData<UserConfig, UserGenerics<UserConfig>>>(selector: (state: UsePuckStore<UserConfig>) => T) => T;
|
284
|
+
declare function usePuck<UserConfig extends Config = Config>(): UsePuckStore<UserConfig>;
|
196
285
|
|
197
|
-
export { Action, ActionBar, AppState, AutoField, Button,
|
286
|
+
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, Render, UiState, type UsePuckData, UserGenerics, Viewports, createUsePuck, migrate, renderContext, usePuck };
|