@measured/puck 0.16.2-canary.8378c8c → 0.16.2-canary.a1988b5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,248 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __esm = (fn, res) => function __init() {
37
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
38
+ };
39
+ var __commonJS = (cb, mod) => function __require() {
40
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
41
+ };
42
+ var __copyProps = (to, from, except, desc) => {
43
+ if (from && typeof from === "object" || typeof from === "function") {
44
+ for (let key of __getOwnPropNames(from))
45
+ if (!__hasOwnProp.call(to, key) && key !== except)
46
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
47
+ }
48
+ return to;
49
+ };
50
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
51
+ // If the importer is in node compatibility mode or this is not an ESM
52
+ // file that has been converted to a CommonJS file using a Babel-
53
+ // compatible transform (i.e. "__esModule" has not been set), then set
54
+ // "default" to the CommonJS "module.exports" for node compatibility.
55
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
56
+ mod
57
+ ));
58
+ var __async = (__this, __arguments, generator) => {
59
+ return new Promise((resolve, reject) => {
60
+ var fulfilled = (value) => {
61
+ try {
62
+ step(generator.next(value));
63
+ } catch (e) {
64
+ reject(e);
65
+ }
66
+ };
67
+ var rejected = (value) => {
68
+ try {
69
+ step(generator.throw(value));
70
+ } catch (e) {
71
+ reject(e);
72
+ }
73
+ };
74
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
75
+ step((generator = generator.apply(__this, __arguments)).next());
76
+ });
77
+ };
78
+
79
+ // ../tsup-config/react-import.js
80
+ import React from "react";
81
+ var init_react_import = __esm({
82
+ "../tsup-config/react-import.js"() {
83
+ "use strict";
84
+ }
85
+ });
86
+
87
+ // lib/resolve-all-data.ts
88
+ init_react_import();
89
+
90
+ // lib/resolve-component-data.ts
91
+ init_react_import();
92
+
93
+ // lib/get-changed.ts
94
+ init_react_import();
95
+ var getChanged = (newItem, oldItem) => {
96
+ return newItem ? Object.keys(newItem.props || {}).reduce((acc, item) => {
97
+ const newItemProps = (newItem == null ? void 0 : newItem.props) || {};
98
+ const oldItemProps = (oldItem == null ? void 0 : oldItem.props) || {};
99
+ return __spreadProps(__spreadValues({}, acc), {
100
+ [item]: oldItemProps[item] !== newItemProps[item]
101
+ });
102
+ }, {}) : {};
103
+ };
104
+
105
+ // lib/resolve-component-data.ts
106
+ var cache = { lastChange: {} };
107
+ var resolveAllComponentData = (content, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
108
+ return yield Promise.all(
109
+ content.map((item) => __async(void 0, null, function* () {
110
+ return yield resolveComponentData(
111
+ item,
112
+ config,
113
+ onResolveStart,
114
+ onResolveEnd
115
+ );
116
+ }))
117
+ );
118
+ });
119
+ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
120
+ const configForItem = config.components[item.type];
121
+ if (configForItem.resolveData) {
122
+ const { item: oldItem = null, resolved = {} } = cache.lastChange[item.props.id] || {};
123
+ if (item && item === oldItem) {
124
+ return resolved;
125
+ }
126
+ const changed = getChanged(item, oldItem);
127
+ if (onResolveStart) {
128
+ onResolveStart(item);
129
+ }
130
+ const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, { changed, lastData: oldItem });
131
+ const { readOnly: existingReadOnly = {} } = item || {};
132
+ const newReadOnly = __spreadValues(__spreadValues({}, existingReadOnly), readOnly);
133
+ const resolvedItem = __spreadProps(__spreadValues({}, item), {
134
+ props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
135
+ });
136
+ if (Object.keys(newReadOnly).length) {
137
+ resolvedItem.readOnly = newReadOnly;
138
+ }
139
+ cache.lastChange[item.props.id] = {
140
+ item,
141
+ resolved: resolvedItem
142
+ };
143
+ if (onResolveEnd) {
144
+ onResolveEnd(resolvedItem);
145
+ }
146
+ return resolvedItem;
147
+ }
148
+ return item;
149
+ });
150
+
151
+ // lib/resolve-root-data.ts
152
+ init_react_import();
153
+ var cache2 = {};
154
+ function resolveRootData(data, config) {
155
+ return __async(this, null, function* () {
156
+ var _a, _b, _c, _d, _e;
157
+ if (((_a = config.root) == null ? void 0 : _a.resolveData) && data.root.props) {
158
+ if (((_b = cache2.lastChange) == null ? void 0 : _b.original) === data.root) {
159
+ return cache2.lastChange.resolved;
160
+ }
161
+ const changed = getChanged(data.root, (_c = cache2.lastChange) == null ? void 0 : _c.original);
162
+ const rootWithProps = data.root;
163
+ const resolvedRoot = yield (_e = config.root) == null ? void 0 : _e.resolveData(rootWithProps, {
164
+ changed,
165
+ lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {}
166
+ });
167
+ cache2.lastChange = {
168
+ original: data.root,
169
+ resolved: resolvedRoot
170
+ };
171
+ return __spreadProps(__spreadValues(__spreadValues({}, data.root), resolvedRoot), {
172
+ props: __spreadValues(__spreadValues({}, data.root.props), resolvedRoot.props)
173
+ });
174
+ }
175
+ return data.root;
176
+ });
177
+ }
178
+
179
+ // lib/default-data.ts
180
+ init_react_import();
181
+ var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
182
+ root: data.root || {},
183
+ content: data.content || []
184
+ });
185
+
186
+ // lib/resolve-all-data.ts
187
+ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
188
+ return __async(this, null, function* () {
189
+ const defaultedData = defaultData(data);
190
+ const dynamicRoot = yield resolveRootData(defaultedData, config);
191
+ const { zones = {} } = data;
192
+ const zoneKeys = Object.keys(zones);
193
+ const resolvedZones = {};
194
+ for (let i = 0; i < zoneKeys.length; i++) {
195
+ const zoneKey = zoneKeys[i];
196
+ resolvedZones[zoneKey] = yield resolveAllComponentData(
197
+ zones[zoneKey],
198
+ config,
199
+ onResolveStart,
200
+ onResolveEnd
201
+ );
202
+ }
203
+ return __spreadProps(__spreadValues({}, defaultedData), {
204
+ root: dynamicRoot,
205
+ content: yield resolveAllComponentData(
206
+ defaultedData.content,
207
+ config,
208
+ onResolveStart,
209
+ onResolveEnd
210
+ ),
211
+ zones: resolvedZones
212
+ });
213
+ });
214
+ }
215
+
216
+ // lib/root-droppable-id.ts
217
+ init_react_import();
218
+ var rootDroppableId = "default-zone";
219
+
220
+ // lib/setup-zone.ts
221
+ init_react_import();
222
+ var setupZone = (data, zoneKey) => {
223
+ if (zoneKey === rootDroppableId) {
224
+ return data;
225
+ }
226
+ const newData = __spreadProps(__spreadValues({}, data), {
227
+ zones: data.zones ? __spreadValues({}, data.zones) : {}
228
+ });
229
+ newData.zones[zoneKey] = newData.zones[zoneKey] || [];
230
+ return newData;
231
+ };
232
+
233
+ export {
234
+ __spreadValues,
235
+ __spreadProps,
236
+ __objRest,
237
+ __commonJS,
238
+ __toESM,
239
+ __async,
240
+ init_react_import,
241
+ rootDroppableId,
242
+ setupZone,
243
+ getChanged,
244
+ resolveComponentData,
245
+ resolveRootData,
246
+ defaultData,
247
+ resolveAllData
248
+ };
package/dist/index.css CHANGED
@@ -137,7 +137,7 @@
137
137
  /* styles.css */
138
138
 
139
139
  /* css-module:/home/runner/work/puck/puck/packages/core/components/ActionBar/styles.module.css/#css-module-data */
140
- ._ActionBar_1xlbj_1 {
140
+ ._ActionBar_151w5_1 {
141
141
  display: flex;
142
142
  width: auto;
143
143
  padding: 4px;
@@ -151,7 +151,7 @@
151
151
  gap: 4px;
152
152
  min-height: 26px;
153
153
  }
154
- ._ActionBar-actionsLabel_1xlbj_16 {
154
+ ._ActionBar-actionsLabel_151w5_16 {
155
155
  color: var(--puck-color-grey-08);
156
156
  display: flex;
157
157
  font-size: var(--puck-font-size-xxxs);
@@ -163,19 +163,19 @@
163
163
  text-overflow: ellipsis;
164
164
  white-space: nowrap;
165
165
  }
166
- ._ActionBar-group_1xlbj_29 {
167
- border-left: 0.5px solid var(--puck-color-grey-05);
166
+ ._ActionBar-group_151w5_29 {
167
+ border-inline-start: 0.5px solid var(--puck-color-grey-05);
168
168
  display: flex;
169
169
  padding-left: 4px;
170
170
  padding-right: 4px;
171
171
  }
172
- ._ActionBar-group_1xlbj_29:last-of-type {
172
+ ._ActionBar-group_151w5_29:last-of-type {
173
173
  padding-right: 0;
174
174
  }
175
- ._ActionBar-group_1xlbj_29:empty {
175
+ ._ActionBar-group_151w5_29:empty {
176
176
  display: none;
177
177
  }
178
- ._ActionBar-action_1xlbj_16 {
178
+ ._ActionBar-action_151w5_16 {
179
179
  background: transparent;
180
180
  border: none;
181
181
  color: var(--puck-color-grey-08);
@@ -188,17 +188,17 @@
188
188
  justify-content: center;
189
189
  transition: color 50ms ease-in;
190
190
  }
191
- ._ActionBar-action_1xlbj_16:focus-visible {
191
+ ._ActionBar-action_151w5_16:focus-visible {
192
192
  outline: 2px solid var(--puck-color-azure-05);
193
193
  outline-offset: -2px;
194
194
  }
195
195
  @media (hover: hover) and (pointer: fine) {
196
- ._ActionBar-action_1xlbj_16:hover {
196
+ ._ActionBar-action_151w5_16:hover {
197
197
  color: var(--puck-color-azure-06);
198
198
  transition: none;
199
199
  }
200
200
  }
201
- ._ActionBar-action_1xlbj_16:active {
201
+ ._ActionBar-action_151w5_16:active {
202
202
  color: var(--puck-color-azure-07);
203
203
  transition: none;
204
204
  }
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as Field, a as FieldProps, C as Config, D as Data, I as ItemSelector, P as PuckAction, b as DropZoneProps, U as UserGenerics, c as UiState, O as OnAction, d as Permissions, e as Plugin, f as Overrides, V as Viewports, g as IframeConfig, h as InitialHistory, i as DefaultComponentProps, j as DefaultRootFieldProps, k as ComponentData, H as History, A as AppState, E as ExtractPropsFromConfig, l as ExtractRootPropsFromConfig, m as ComponentDataMap } from './actions-9pHbVtMU.mjs';
2
- export { L as Adaptor, J as ArrayField, s as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, u as ComponentConfig, x as Content, X as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, W as ExternalField, Q as ExternalFieldWithAdaptor, q as FieldRenderFunctions, Y as Fields, r as ItemWithId, M as MappedItem, N as NumberField, K as ObjectField, p as OverrideKey, t as PuckComponent, Z as PuckContext, G as RadioField, w as RootData, R as RootDataWithProps, v as RootDataWithoutProps, S as SelectField, T as TextField, z as TextareaField, n as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, o as overrideKeys } from './actions-9pHbVtMU.mjs';
1
+ import { F as FieldProps, a as Field, C as Config, D as Data, I as ItemSelector, P as PuckAction, b as DropZoneProps, U as UserGenerics, c as UiState, O as OnAction, d as Permissions, e as Plugin, f as Overrides, V as Viewports, g as IframeConfig, h as InitialHistory, i as DefaultComponentProps, j as DefaultRootFieldProps, H as History, A as AppState, E as ExtractPropsFromConfig, k as ExtractRootPropsFromConfig, l as ComponentDataMap } from './resolve-all-data-BoWgijLi.mjs';
2
+ export { L as Adaptor, J as ArrayField, r as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, t as ComponentConfig, w as ComponentData, x as Content, X as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, W as ExternalField, Q as ExternalFieldWithAdaptor, p as FieldRenderFunctions, Y as Fields, q as ItemWithId, M as MappedItem, N as NumberField, K as ObjectField, n as OverrideKey, s as PuckComponent, Z as PuckContext, G as RadioField, v as RootData, R as RootDataWithProps, u 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, a4 as resolveAllData } from './resolve-all-data-BoWgijLi.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, SyntheticEvent, ReactElement, CSSProperties } from 'react';
@@ -36,29 +36,8 @@ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }:
36
36
  readOnly?: boolean;
37
37
  className?: string;
38
38
  }) => react_jsx_runtime.JSX.Element;
39
- type FieldLabelPropsInternal = {
40
- children?: ReactNode;
41
- icon?: ReactNode;
42
- label?: string;
43
- el?: "label" | "div";
44
- readOnly?: boolean;
45
- };
46
- declare const FieldLabelInternal: ({ children, icon, label, el, readOnly, }: FieldLabelPropsInternal) => react_jsx_runtime.JSX.Element;
47
- type FieldPropsInternalOptional<ValueType = any, F = Field<any>> = FieldProps<ValueType, F> & {
48
- Label?: React.FC<FieldLabelPropsInternal>;
49
- label?: string;
50
- name?: string;
51
- };
52
- type FieldPropsInternal<ValueType = any, F = Field<any>> = FieldProps<ValueType, F> & {
53
- Label: React.FC<FieldLabelPropsInternal>;
54
- label?: string;
55
- id: string;
56
- name?: string;
57
- };
58
- declare function AutoFieldPrivate<ValueType = any, FieldType extends Field<ValueType> = Field<ValueType>>(props: FieldPropsInternalOptional<ValueType, FieldType> & {
59
- Label?: React.FC<FieldLabelPropsInternal>;
60
- }): react_jsx_runtime.JSX.Element;
61
- declare function AutoField<ValueType = any, FieldType extends Field<ValueType> = Field<ValueType>>(props: FieldProps<ValueType, FieldType>): react_jsx_runtime.JSX.Element;
39
+ type FieldNoLabel<Props extends any = any> = Omit<Field<Props>, "label">;
40
+ declare function AutoField<ValueType = any, FieldType extends FieldNoLabel<ValueType> = FieldNoLabel<ValueType>>(props: FieldProps<ValueType, FieldType>): react_jsx_runtime.JSX.Element;
62
41
 
63
42
  declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, loading: loadingProp, }: {
64
43
  children: ReactNode;
@@ -202,8 +181,6 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
202
181
  }>;
203
182
  declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
204
183
 
205
- declare function resolveAllData<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Props, RootProps>>;
206
-
207
184
  type HistoryStore<D = any> = {
208
185
  index: number;
209
186
  hasPast: boolean;
@@ -247,4 +224,4 @@ declare const usePuck: <UserConfig extends Config = Config>() => {
247
224
  selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
248
225
  };
249
226
 
250
- export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, ComponentDataMap, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, Group, History, IconButton, IframeConfig, InitialHistory, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, UserGenerics, Viewports, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };
227
+ export { Action, ActionBar, AppState, AutoField, Button, ComponentDataMap, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldProps, Group, History, IconButton, IframeConfig, InitialHistory, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, UserGenerics, Viewports, dropZoneContext, migrate, transformProps, usePuck };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as Field, a as FieldProps, C as Config, D as Data, I as ItemSelector, P as PuckAction, b as DropZoneProps, U as UserGenerics, c as UiState, O as OnAction, d as Permissions, e as Plugin, f as Overrides, V as Viewports, g as IframeConfig, h as InitialHistory, i as DefaultComponentProps, j as DefaultRootFieldProps, k as ComponentData, H as History, A as AppState, E as ExtractPropsFromConfig, l as ExtractRootPropsFromConfig, m as ComponentDataMap } from './actions-9pHbVtMU.js';
2
- export { L as Adaptor, J as ArrayField, s as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, u as ComponentConfig, x as Content, X as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, W as ExternalField, Q as ExternalFieldWithAdaptor, q as FieldRenderFunctions, Y as Fields, r as ItemWithId, M as MappedItem, N as NumberField, K as ObjectField, p as OverrideKey, t as PuckComponent, Z as PuckContext, G as RadioField, w as RootData, R as RootDataWithProps, v as RootDataWithoutProps, S as SelectField, T as TextField, z as TextareaField, n as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, o as overrideKeys } from './actions-9pHbVtMU.js';
1
+ import { F as FieldProps, a as Field, C as Config, D as Data, I as ItemSelector, P as PuckAction, b as DropZoneProps, U as UserGenerics, c as UiState, O as OnAction, d as Permissions, e as Plugin, f as Overrides, V as Viewports, g as IframeConfig, h as InitialHistory, i as DefaultComponentProps, j as DefaultRootFieldProps, H as History, A as AppState, E as ExtractPropsFromConfig, k as ExtractRootPropsFromConfig, l as ComponentDataMap } from './resolve-all-data-BoWgijLi.js';
2
+ export { L as Adaptor, J as ArrayField, r as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, t as ComponentConfig, w as ComponentData, x as Content, X as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, W as ExternalField, Q as ExternalFieldWithAdaptor, p as FieldRenderFunctions, Y as Fields, q as ItemWithId, M as MappedItem, N as NumberField, K as ObjectField, n as OverrideKey, s as PuckComponent, Z as PuckContext, G as RadioField, v as RootData, R as RootDataWithProps, u 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, a4 as resolveAllData } from './resolve-all-data-BoWgijLi.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, SyntheticEvent, ReactElement, CSSProperties } from 'react';
@@ -36,29 +36,8 @@ declare const FieldLabel: ({ children, icon, label, el, readOnly, className, }:
36
36
  readOnly?: boolean;
37
37
  className?: string;
38
38
  }) => react_jsx_runtime.JSX.Element;
39
- type FieldLabelPropsInternal = {
40
- children?: ReactNode;
41
- icon?: ReactNode;
42
- label?: string;
43
- el?: "label" | "div";
44
- readOnly?: boolean;
45
- };
46
- declare const FieldLabelInternal: ({ children, icon, label, el, readOnly, }: FieldLabelPropsInternal) => react_jsx_runtime.JSX.Element;
47
- type FieldPropsInternalOptional<ValueType = any, F = Field<any>> = FieldProps<ValueType, F> & {
48
- Label?: React.FC<FieldLabelPropsInternal>;
49
- label?: string;
50
- name?: string;
51
- };
52
- type FieldPropsInternal<ValueType = any, F = Field<any>> = FieldProps<ValueType, F> & {
53
- Label: React.FC<FieldLabelPropsInternal>;
54
- label?: string;
55
- id: string;
56
- name?: string;
57
- };
58
- declare function AutoFieldPrivate<ValueType = any, FieldType extends Field<ValueType> = Field<ValueType>>(props: FieldPropsInternalOptional<ValueType, FieldType> & {
59
- Label?: React.FC<FieldLabelPropsInternal>;
60
- }): react_jsx_runtime.JSX.Element;
61
- declare function AutoField<ValueType = any, FieldType extends Field<ValueType> = Field<ValueType>>(props: FieldProps<ValueType, FieldType>): react_jsx_runtime.JSX.Element;
39
+ type FieldNoLabel<Props extends any = any> = Omit<Field<Props>, "label">;
40
+ declare function AutoField<ValueType = any, FieldType extends FieldNoLabel<ValueType> = FieldNoLabel<ValueType>>(props: FieldProps<ValueType, FieldType>): react_jsx_runtime.JSX.Element;
62
41
 
63
42
  declare const Button: ({ children, href, onClick, variant, type, disabled, tabIndex, newTab, fullWidth, icon, size, loading: loadingProp, }: {
64
43
  children: ReactNode;
@@ -202,8 +181,6 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
202
181
  }>;
203
182
  declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
204
183
 
205
- declare function resolveAllData<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Props, RootProps>>;
206
-
207
184
  type HistoryStore<D = any> = {
208
185
  index: number;
209
186
  hasPast: boolean;
@@ -247,4 +224,4 @@ declare const usePuck: <UserConfig extends Config = Config>() => {
247
224
  selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
248
225
  };
249
226
 
250
- export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, ComponentData, ComponentDataMap, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldLabelInternal, FieldProps, type FieldPropsInternal, Group, History, IconButton, IframeConfig, InitialHistory, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, UserGenerics, Viewports, dropZoneContext, migrate, resolveAllData, transformProps, usePuck };
227
+ export { Action, ActionBar, AppState, AutoField, Button, ComponentDataMap, Config, Data, DefaultComponentProps, DefaultRootFieldProps, Drawer, DropZone, DropZoneProvider, ExtractPropsFromConfig, ExtractRootPropsFromConfig, Field, FieldLabel, FieldProps, Group, History, IconButton, IframeConfig, InitialHistory, OnAction, Overrides, Permissions, Plugin, Puck, PuckAction, Render, UiState, UserGenerics, Viewports, dropZoneContext, migrate, transformProps, usePuck };
package/dist/index.js CHANGED
@@ -149,13 +149,11 @@ __export(core_exports, {
149
149
  Action: () => Action,
150
150
  ActionBar: () => ActionBar,
151
151
  AutoField: () => AutoField,
152
- AutoFieldPrivate: () => AutoFieldPrivate,
153
152
  Button: () => Button,
154
153
  Drawer: () => Drawer,
155
154
  DropZone: () => DropZone,
156
155
  DropZoneProvider: () => DropZoneProvider,
157
156
  FieldLabel: () => FieldLabel,
158
- FieldLabelInternal: () => FieldLabelInternal2,
159
157
  Group: () => Group,
160
158
  IconButton: () => IconButton,
161
159
  Puck: () => Puck,
@@ -243,7 +241,7 @@ var get_class_name_factory_default = getClassNameFactory;
243
241
 
244
242
  // css-module:/home/runner/work/puck/puck/packages/core/components/ActionBar/styles.module.css#css-module
245
243
  init_react_import();
246
- var styles_module_default = { "ActionBar": "_ActionBar_1xlbj_1", "ActionBar-actionsLabel": "_ActionBar-actionsLabel_1xlbj_16", "ActionBar-group": "_ActionBar-group_1xlbj_29", "ActionBar-action": "_ActionBar-action_1xlbj_16" };
244
+ var styles_module_default = { "ActionBar": "_ActionBar_151w5_1", "ActionBar-actionsLabel": "_ActionBar-actionsLabel_151w5_16", "ActionBar-group": "_ActionBar-group_151w5_29", "ActionBar-action": "_ActionBar-action_151w5_16" };
247
245
 
248
246
  // components/ActionBar/index.tsx
249
247
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -705,7 +703,7 @@ var setupZone = (data, zoneKey) => {
705
703
  return data;
706
704
  }
707
705
  const newData = __spreadProps(__spreadValues({}, data), {
708
- zones: data.zones || {}
706
+ zones: data.zones ? __spreadValues({}, data.zones) : {}
709
707
  });
710
708
  newData.zones[zoneKey] = newData.zones[zoneKey] || [];
711
709
  return newData;
@@ -840,12 +838,12 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
840
838
  ({ item, type, root } = {}) => {
841
839
  if (item) {
842
840
  const componentConfig = config.components[item.type];
843
- const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
841
+ const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig == null ? void 0 : componentConfig.permissions);
844
842
  const resolvedForItem = resolvedPermissions[item.props.id];
845
843
  return resolvedForItem ? __spreadValues(__spreadValues({}, globalPermissions), resolvedForItem) : initialPermissions;
846
844
  } else if (type) {
847
845
  const componentConfig = config.components[type];
848
- return __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
846
+ return __spreadValues(__spreadValues({}, globalPermissions), componentConfig == null ? void 0 : componentConfig.permissions);
849
847
  } else if (root) {
850
848
  const rootConfig = config.root;
851
849
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), rootConfig == null ? void 0 : rootConfig.permissions);
@@ -2287,7 +2285,9 @@ var FieldLabelInternal2 = ({
2287
2285
  function AutoFieldInternal(props) {
2288
2286
  var _a, _b, _c, _d, _e, _f, _g, _h;
2289
2287
  const { overrides } = useAppContext();
2290
- const { field, label = field.label, id, Label = FieldLabelInternal2 } = props;
2288
+ const { id, Label = FieldLabelInternal2 } = props;
2289
+ const field = props.field;
2290
+ const label = field.label;
2291
2291
  const defaultId = useSafeId();
2292
2292
  const resolvedId = id || defaultId;
2293
2293
  const defaultFields = {
@@ -3699,10 +3699,10 @@ var useResolvedFields = () => {
3699
3699
  const { data } = state;
3700
3700
  const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
3701
3701
  const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
3702
- const defaultFields = selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields;
3702
+ const defaultFields = (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {};
3703
3703
  const rootProps = data.root.props || data.root;
3704
3704
  const [lastSelectedData, setLastSelectedData] = (0, import_react21.useState)({});
3705
- const [resolvedFields, setResolvedFields] = (0, import_react21.useState)(defaultFields || {});
3705
+ const [resolvedFields, setResolvedFields] = (0, import_react21.useState)(defaultFields);
3706
3706
  const [fieldsLoading, setFieldsLoading] = (0, import_react21.useState)(false);
3707
3707
  const defaultResolveFields = (_componentData, _params) => defaultFields;
3708
3708
  const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
@@ -5869,13 +5869,11 @@ var usePuck = () => {
5869
5869
  Action,
5870
5870
  ActionBar,
5871
5871
  AutoField,
5872
- AutoFieldPrivate,
5873
5872
  Button,
5874
5873
  Drawer,
5875
5874
  DropZone,
5876
5875
  DropZoneProvider,
5877
5876
  FieldLabel,
5878
- FieldLabelInternal,
5879
5877
  Group,
5880
5878
  IconButton,
5881
5879
  Puck,
package/dist/index.mjs CHANGED
@@ -5,10 +5,15 @@ import {
5
5
  __spreadProps,
6
6
  __spreadValues,
7
7
  __toESM,
8
+ defaultData,
9
+ getChanged,
8
10
  init_react_import,
11
+ resolveAllData,
12
+ resolveComponentData,
13
+ resolveRootData,
9
14
  rootDroppableId,
10
15
  setupZone
11
- } from "./chunk-LM7YWFFF.mjs";
16
+ } from "./chunk-7IH6SUIT.mjs";
12
17
 
13
18
  // ../../node_modules/classnames/index.js
14
19
  var require_classnames = __commonJS({
@@ -138,7 +143,7 @@ var get_class_name_factory_default = getClassNameFactory;
138
143
 
139
144
  // css-module:/home/runner/work/puck/puck/packages/core/components/ActionBar/styles.module.css#css-module
140
145
  init_react_import();
141
- var styles_module_default = { "ActionBar": "_ActionBar_1xlbj_1", "ActionBar-actionsLabel": "_ActionBar-actionsLabel_1xlbj_16", "ActionBar-group": "_ActionBar-group_1xlbj_29", "ActionBar-action": "_ActionBar-action_1xlbj_16" };
146
+ var styles_module_default = { "ActionBar": "_ActionBar_151w5_1", "ActionBar-actionsLabel": "_ActionBar-actionsLabel_151w5_16", "ActionBar-group": "_ActionBar-group_151w5_29", "ActionBar-action": "_ActionBar-action_151w5_16" };
142
147
 
143
148
  // components/ActionBar/index.tsx
144
149
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -634,21 +639,9 @@ var flattenData = (data) => {
634
639
  );
635
640
  };
636
641
 
637
- // lib/get-changed.ts
638
- init_react_import();
639
- var getChanged = (newItem, oldItem) => {
640
- return newItem ? Object.keys(newItem.props || {}).reduce((acc, item) => {
641
- const newItemProps = (newItem == null ? void 0 : newItem.props) || {};
642
- const oldItemProps = (oldItem == null ? void 0 : oldItem.props) || {};
643
- return __spreadProps(__spreadValues({}, acc), {
644
- [item]: oldItemProps[item] !== newItemProps[item]
645
- });
646
- }, {}) : {};
647
- };
648
-
649
642
  // lib/use-resolved-permissions.ts
650
643
  var useResolvedPermissions = (config, appState, globalPermissions, setComponentLoading, unsetComponentLoading) => {
651
- const [cache3, setCache] = useState2({});
644
+ const [cache, setCache] = useState2({});
652
645
  const [resolvedPermissions, setResolvedPermissions] = useState2({});
653
646
  const resolveDataForItem = useCallback(
654
647
  (item, force = false) => __async(void 0, null, function* () {
@@ -659,17 +652,17 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
659
652
  }
660
653
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
661
654
  if (componentConfig.resolvePermissions) {
662
- const changed = getChanged(item, (_a = cache3[item.props.id]) == null ? void 0 : _a.lastData);
655
+ const changed = getChanged(item, (_a = cache[item.props.id]) == null ? void 0 : _a.lastData);
663
656
  if (Object.values(changed).some((el) => el === true) || force) {
664
657
  setComponentLoading == null ? void 0 : setComponentLoading(item.props.id);
665
658
  const resolvedPermissions2 = yield componentConfig.resolvePermissions(
666
659
  item,
667
660
  {
668
661
  changed,
669
- lastPermissions: ((_b = cache3[item.props.id]) == null ? void 0 : _b.lastPermissions) || null,
662
+ lastPermissions: ((_b = cache[item.props.id]) == null ? void 0 : _b.lastPermissions) || null,
670
663
  permissions: initialPermissions,
671
664
  appState,
672
- lastData: ((_c = cache3[item.props.id]) == null ? void 0 : _c.lastData) || null
665
+ lastData: ((_c = cache[item.props.id]) == null ? void 0 : _c.lastData) || null
673
666
  }
674
667
  );
675
668
  setCache((_cache) => __spreadProps(__spreadValues({}, _cache), {
@@ -685,7 +678,7 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
685
678
  }
686
679
  }
687
680
  }),
688
- [config, globalPermissions, appState, cache3]
681
+ [config, globalPermissions, appState, cache]
689
682
  );
690
683
  const resolveDataForRoot = (force = false) => {
691
684
  resolveDataForItem(
@@ -729,12 +722,12 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
729
722
  ({ item, type, root } = {}) => {
730
723
  if (item) {
731
724
  const componentConfig = config.components[item.type];
732
- const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
725
+ const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig == null ? void 0 : componentConfig.permissions);
733
726
  const resolvedForItem = resolvedPermissions[item.props.id];
734
727
  return resolvedForItem ? __spreadValues(__spreadValues({}, globalPermissions), resolvedForItem) : initialPermissions;
735
728
  } else if (type) {
736
729
  const componentConfig = config.components[type];
737
- return __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
730
+ return __spreadValues(__spreadValues({}, globalPermissions), componentConfig == null ? void 0 : componentConfig.permissions);
738
731
  } else if (root) {
739
732
  const rootConfig = config.root;
740
733
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), rootConfig == null ? void 0 : rootConfig.permissions);
@@ -755,53 +748,6 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
755
748
  init_react_import();
756
749
  import { useCallback as useCallback2, useEffect as useEffect2, useState as useState3 } from "react";
757
750
 
758
- // lib/resolve-component-data.ts
759
- init_react_import();
760
- var cache = { lastChange: {} };
761
- var resolveAllComponentData = (content, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
762
- return yield Promise.all(
763
- content.map((item) => __async(void 0, null, function* () {
764
- return yield resolveComponentData(
765
- item,
766
- config,
767
- onResolveStart,
768
- onResolveEnd
769
- );
770
- }))
771
- );
772
- });
773
- var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
774
- const configForItem = config.components[item.type];
775
- if (configForItem.resolveData) {
776
- const { item: oldItem = null, resolved = {} } = cache.lastChange[item.props.id] || {};
777
- if (item && item === oldItem) {
778
- return resolved;
779
- }
780
- const changed = getChanged(item, oldItem);
781
- if (onResolveStart) {
782
- onResolveStart(item);
783
- }
784
- const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, { changed, lastData: oldItem });
785
- const { readOnly: existingReadOnly = {} } = item || {};
786
- const newReadOnly = __spreadValues(__spreadValues({}, existingReadOnly), readOnly);
787
- const resolvedItem = __spreadProps(__spreadValues({}, item), {
788
- props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
789
- });
790
- if (Object.keys(newReadOnly).length) {
791
- resolvedItem.readOnly = newReadOnly;
792
- }
793
- cache.lastChange[item.props.id] = {
794
- item,
795
- resolved: resolvedItem
796
- };
797
- if (onResolveEnd) {
798
- onResolveEnd(resolvedItem);
799
- }
800
- return resolvedItem;
801
- }
802
- return item;
803
- });
804
-
805
751
  // lib/apply-dynamic-props.ts
806
752
  init_react_import();
807
753
  var applyDynamicProps = (data, dynamicProps, rootData) => {
@@ -820,34 +766,6 @@ var applyDynamicProps = (data, dynamicProps, rootData) => {
820
766
  });
821
767
  };
822
768
 
823
- // lib/resolve-root-data.ts
824
- init_react_import();
825
- var cache2 = {};
826
- function resolveRootData(data, config) {
827
- return __async(this, null, function* () {
828
- var _a, _b, _c, _d, _e;
829
- if (((_a = config.root) == null ? void 0 : _a.resolveData) && data.root.props) {
830
- if (((_b = cache2.lastChange) == null ? void 0 : _b.original) === data.root) {
831
- return cache2.lastChange.resolved;
832
- }
833
- const changed = getChanged(data.root, (_c = cache2.lastChange) == null ? void 0 : _c.original);
834
- const rootWithProps = data.root;
835
- const resolvedRoot = yield (_e = config.root) == null ? void 0 : _e.resolveData(rootWithProps, {
836
- changed,
837
- lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {}
838
- });
839
- cache2.lastChange = {
840
- original: data.root,
841
- resolved: resolvedRoot
842
- };
843
- return __spreadProps(__spreadValues(__spreadValues({}, data.root), resolvedRoot), {
844
- props: __spreadValues(__spreadValues({}, data.root.props), resolvedRoot.props)
845
- });
846
- }
847
- return data.root;
848
- });
849
- }
850
-
851
769
  // lib/use-resolved-data.ts
852
770
  var useResolvedData = (appState, config, dispatch, setComponentLoading, unsetComponentLoading, refreshPermissions) => {
853
771
  const [{ resolverKey, newAppState }, setResolverState] = useState3({
@@ -2180,7 +2098,9 @@ var FieldLabelInternal2 = ({
2180
2098
  function AutoFieldInternal(props) {
2181
2099
  var _a, _b, _c, _d, _e, _f, _g, _h;
2182
2100
  const { overrides } = useAppContext();
2183
- const { field, label = field.label, id, Label = FieldLabelInternal2 } = props;
2101
+ const { id, Label = FieldLabelInternal2 } = props;
2102
+ const field = props.field;
2103
+ const label = field.label;
2184
2104
  const defaultId = useSafeId();
2185
2105
  const resolvedId = id || defaultId;
2186
2106
  const defaultFields = {
@@ -3610,10 +3530,10 @@ var useResolvedFields = () => {
3610
3530
  const { data } = state;
3611
3531
  const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
3612
3532
  const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
3613
- const defaultFields = selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields;
3533
+ const defaultFields = (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {};
3614
3534
  const rootProps = data.root.props || data.root;
3615
3535
  const [lastSelectedData, setLastSelectedData] = useState15({});
3616
- const [resolvedFields, setResolvedFields] = useState15(defaultFields || {});
3536
+ const [resolvedFields, setResolvedFields] = useState15(defaultFields);
3617
3537
  const [fieldsLoading, setFieldsLoading] = useState15(false);
3618
3538
  const defaultResolveFields = (_componentData, _params) => defaultFields;
3619
3539
  const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
@@ -5683,15 +5603,6 @@ function migrate(data) {
5683
5603
 
5684
5604
  // lib/transform-props.ts
5685
5605
  init_react_import();
5686
-
5687
- // lib/default-data.ts
5688
- init_react_import();
5689
- var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
5690
- root: data.root || {},
5691
- content: data.content || []
5692
- });
5693
-
5694
- // lib/transform-props.ts
5695
5606
  function transformProps(data, propTransforms) {
5696
5607
  const mapItem = (item) => {
5697
5608
  if (propTransforms[item.type]) {
@@ -5724,37 +5635,6 @@ function transformProps(data, propTransforms) {
5724
5635
  return afterPropTransforms;
5725
5636
  }
5726
5637
 
5727
- // lib/resolve-all-data.ts
5728
- init_react_import();
5729
- function resolveAllData(data, config, onResolveStart, onResolveEnd) {
5730
- return __async(this, null, function* () {
5731
- const defaultedData = defaultData(data);
5732
- const dynamicRoot = yield resolveRootData(defaultedData, config);
5733
- const { zones = {} } = data;
5734
- const zoneKeys = Object.keys(zones);
5735
- const resolvedZones = {};
5736
- for (let i = 0; i < zoneKeys.length; i++) {
5737
- const zoneKey = zoneKeys[i];
5738
- resolvedZones[zoneKey] = yield resolveAllComponentData(
5739
- zones[zoneKey],
5740
- config,
5741
- onResolveStart,
5742
- onResolveEnd
5743
- );
5744
- }
5745
- return __spreadProps(__spreadValues({}, defaultedData), {
5746
- root: dynamicRoot,
5747
- content: yield resolveAllComponentData(
5748
- defaultedData.content,
5749
- config,
5750
- onResolveStart,
5751
- onResolveEnd
5752
- ),
5753
- zones: resolvedZones
5754
- });
5755
- });
5756
- }
5757
-
5758
5638
  // lib/use-puck.ts
5759
5639
  init_react_import();
5760
5640
  var usePuck = () => {
@@ -5791,13 +5671,11 @@ export {
5791
5671
  Action,
5792
5672
  ActionBar,
5793
5673
  AutoField,
5794
- AutoFieldPrivate,
5795
5674
  Button,
5796
5675
  Drawer,
5797
5676
  DropZone,
5798
5677
  DropZoneProvider,
5799
5678
  FieldLabel,
5800
- FieldLabelInternal2 as FieldLabelInternal,
5801
5679
  Group,
5802
5680
  IconButton,
5803
5681
  Puck,
@@ -440,4 +440,6 @@ type PuckAction = {
440
440
  recordHistory?: boolean;
441
441
  } & (ReorderAction | InsertAction | MoveAction | ReplaceAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
442
442
 
443
- export { type DefaultRootProps as $, type AppState as A, type BaseData as B, type Config as C, type Data as D, type ExtractPropsFromConfig as E, type Field as F, type RadioField as G, type History as H, type ItemSelector as I, type ArrayField as J, type ObjectField as K, type Adaptor as L, type MappedItem as M, type NumberField as N, type OnAction as O, type PuckAction as P, type ExternalFieldWithAdaptor as Q, type RootDataWithProps as R, type SelectField as S, type TextField as T, type UserGenerics as U, type Viewports as V, type ExternalField as W, type CustomField as X, type Fields as Y, type PuckContext as Z, type DefaultRootRenderProps as _, type FieldProps as a, type WithId as a0, type WithPuckProps as a1, type AsFieldProps as a2, type WithChildren as a3, type DropZoneProps as b, type UiState as c, type Permissions as d, type Plugin as e, type Overrides as f, type IframeConfig as g, type InitialHistory as h, type DefaultComponentProps as i, type DefaultRootFieldProps as j, type ComponentData as k, type ExtractRootPropsFromConfig as l, type ComponentDataMap as m, type Viewport as n, overrideKeys as o, type OverrideKey as p, type FieldRenderFunctions as q, type ItemWithId as r, type ArrayState as s, type PuckComponent as t, type ComponentConfig as u, type RootDataWithoutProps as v, type RootData as w, type Content as x, type BaseField as y, type TextareaField as z };
443
+ declare function resolveAllData<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Props, RootProps>>;
444
+
445
+ export { type DefaultRootProps as $, type AppState as A, type BaseData as B, type Config as C, type Data as D, type ExtractPropsFromConfig as E, type FieldProps as F, type RadioField as G, type History as H, type ItemSelector as I, type ArrayField as J, type ObjectField as K, type Adaptor as L, type MappedItem as M, type NumberField as N, type OnAction as O, type PuckAction as P, type ExternalFieldWithAdaptor as Q, type RootDataWithProps as R, type SelectField as S, type TextField as T, type UserGenerics as U, type Viewports as V, type ExternalField as W, type CustomField as X, type Fields as Y, type PuckContext as Z, type DefaultRootRenderProps as _, type Field as a, type WithId as a0, type WithPuckProps as a1, type AsFieldProps as a2, type WithChildren as a3, resolveAllData as a4, type DropZoneProps as b, type UiState as c, type Permissions as d, type Plugin as e, type Overrides as f, type IframeConfig as g, type InitialHistory as h, type DefaultComponentProps as i, type DefaultRootFieldProps as j, type ExtractRootPropsFromConfig as k, type ComponentDataMap as l, type Viewport as m, type OverrideKey as n, overrideKeys as o, type FieldRenderFunctions as p, type ItemWithId as q, type ArrayState as r, type PuckComponent as s, type ComponentConfig as t, type RootDataWithoutProps as u, type RootData as v, type ComponentData as w, type Content as x, type BaseField as y, type TextareaField as z };
@@ -440,4 +440,6 @@ type PuckAction = {
440
440
  recordHistory?: boolean;
441
441
  } & (ReorderAction | InsertAction | MoveAction | ReplaceAction | RemoveAction | DuplicateAction | SetAction | SetDataAction | SetUiAction | RegisterZoneAction | UnregisterZoneAction);
442
442
 
443
- export { type DefaultRootProps as $, type AppState as A, type BaseData as B, type Config as C, type Data as D, type ExtractPropsFromConfig as E, type Field as F, type RadioField as G, type History as H, type ItemSelector as I, type ArrayField as J, type ObjectField as K, type Adaptor as L, type MappedItem as M, type NumberField as N, type OnAction as O, type PuckAction as P, type ExternalFieldWithAdaptor as Q, type RootDataWithProps as R, type SelectField as S, type TextField as T, type UserGenerics as U, type Viewports as V, type ExternalField as W, type CustomField as X, type Fields as Y, type PuckContext as Z, type DefaultRootRenderProps as _, type FieldProps as a, type WithId as a0, type WithPuckProps as a1, type AsFieldProps as a2, type WithChildren as a3, type DropZoneProps as b, type UiState as c, type Permissions as d, type Plugin as e, type Overrides as f, type IframeConfig as g, type InitialHistory as h, type DefaultComponentProps as i, type DefaultRootFieldProps as j, type ComponentData as k, type ExtractRootPropsFromConfig as l, type ComponentDataMap as m, type Viewport as n, overrideKeys as o, type OverrideKey as p, type FieldRenderFunctions as q, type ItemWithId as r, type ArrayState as s, type PuckComponent as t, type ComponentConfig as u, type RootDataWithoutProps as v, type RootData as w, type Content as x, type BaseField as y, type TextareaField as z };
443
+ declare function resolveAllData<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends Record<string, any> = DefaultRootFieldProps>(data: Partial<Data>, config: Config, onResolveStart?: (item: ComponentData) => void, onResolveEnd?: (item: ComponentData) => void): Promise<Data<Props, RootProps>>;
444
+
445
+ export { type DefaultRootProps as $, type AppState as A, type BaseData as B, type Config as C, type Data as D, type ExtractPropsFromConfig as E, type FieldProps as F, type RadioField as G, type History as H, type ItemSelector as I, type ArrayField as J, type ObjectField as K, type Adaptor as L, type MappedItem as M, type NumberField as N, type OnAction as O, type PuckAction as P, type ExternalFieldWithAdaptor as Q, type RootDataWithProps as R, type SelectField as S, type TextField as T, type UserGenerics as U, type Viewports as V, type ExternalField as W, type CustomField as X, type Fields as Y, type PuckContext as Z, type DefaultRootRenderProps as _, type Field as a, type WithId as a0, type WithPuckProps as a1, type AsFieldProps as a2, type WithChildren as a3, resolveAllData as a4, type DropZoneProps as b, type UiState as c, type Permissions as d, type Plugin as e, type Overrides as f, type IframeConfig as g, type InitialHistory as h, type DefaultComponentProps as i, type DefaultRootFieldProps as j, type ExtractRootPropsFromConfig as k, type ComponentDataMap as l, type Viewport as m, type OverrideKey as n, overrideKeys as o, type FieldRenderFunctions as p, type ItemWithId as q, type ArrayState as r, type PuckComponent as s, type ComponentConfig as t, type RootDataWithoutProps as u, type RootData as v, type ComponentData as w, type Content as x, type BaseField as y, type TextareaField as z };
package/dist/rsc.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { C as Config, D as Data } from './actions-9pHbVtMU.mjs';
2
+ import { C as Config, D as Data } from './resolve-all-data-BoWgijLi.mjs';
3
+ export { a4 as resolveAllData } from './resolve-all-data-BoWgijLi.mjs';
3
4
  import 'react';
4
5
 
5
6
  declare function Render<UserConfig extends Config = Config>({ config, data, }: {
package/dist/rsc.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { C as Config, D as Data } from './actions-9pHbVtMU.js';
2
+ import { C as Config, D as Data } from './resolve-all-data-BoWgijLi.js';
3
+ export { a4 as resolveAllData } from './resolve-all-data-BoWgijLi.js';
3
4
  import 'react';
4
5
 
5
6
  declare function Render<UserConfig extends Config = Config>({ config, data, }: {
package/dist/rsc.js CHANGED
@@ -43,11 +43,32 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  mod
44
44
  ));
45
45
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
+ var __async = (__this, __arguments, generator) => {
47
+ return new Promise((resolve, reject) => {
48
+ var fulfilled = (value) => {
49
+ try {
50
+ step(generator.next(value));
51
+ } catch (e) {
52
+ reject(e);
53
+ }
54
+ };
55
+ var rejected = (value) => {
56
+ try {
57
+ step(generator.throw(value));
58
+ } catch (e) {
59
+ reject(e);
60
+ }
61
+ };
62
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
63
+ step((generator = generator.apply(__this, __arguments)).next());
64
+ });
65
+ };
46
66
 
47
67
  // rsc.tsx
48
68
  var rsc_exports = {};
49
69
  __export(rsc_exports, {
50
- Render: () => Render
70
+ Render: () => Render,
71
+ resolveAllData: () => resolveAllData
51
72
  });
52
73
  module.exports = __toCommonJS(rsc_exports);
53
74
 
@@ -63,7 +84,7 @@ var setupZone = (data, zoneKey) => {
63
84
  return data;
64
85
  }
65
86
  const newData = __spreadProps(__spreadValues({}, data), {
66
- zones: data.zones || {}
87
+ zones: data.zones ? __spreadValues({}, data.zones) : {}
67
88
  });
68
89
  newData.zones[zoneKey] = newData.zones[zoneKey] || [];
69
90
  return newData;
@@ -134,7 +155,128 @@ function Render({
134
155
  }
135
156
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DropZoneRender, { config, data, zone: rootDroppableId });
136
157
  }
158
+
159
+ // lib/get-changed.ts
160
+ var getChanged = (newItem, oldItem) => {
161
+ return newItem ? Object.keys(newItem.props || {}).reduce((acc, item) => {
162
+ const newItemProps = (newItem == null ? void 0 : newItem.props) || {};
163
+ const oldItemProps = (oldItem == null ? void 0 : oldItem.props) || {};
164
+ return __spreadProps(__spreadValues({}, acc), {
165
+ [item]: oldItemProps[item] !== newItemProps[item]
166
+ });
167
+ }, {}) : {};
168
+ };
169
+
170
+ // lib/resolve-component-data.ts
171
+ var cache = { lastChange: {} };
172
+ var resolveAllComponentData = (content, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
173
+ return yield Promise.all(
174
+ content.map((item) => __async(void 0, null, function* () {
175
+ return yield resolveComponentData(
176
+ item,
177
+ config,
178
+ onResolveStart,
179
+ onResolveEnd
180
+ );
181
+ }))
182
+ );
183
+ });
184
+ var resolveComponentData = (item, config, onResolveStart, onResolveEnd) => __async(void 0, null, function* () {
185
+ const configForItem = config.components[item.type];
186
+ if (configForItem.resolveData) {
187
+ const { item: oldItem = null, resolved = {} } = cache.lastChange[item.props.id] || {};
188
+ if (item && item === oldItem) {
189
+ return resolved;
190
+ }
191
+ const changed = getChanged(item, oldItem);
192
+ if (onResolveStart) {
193
+ onResolveStart(item);
194
+ }
195
+ const { props: resolvedProps, readOnly = {} } = yield configForItem.resolveData(item, { changed, lastData: oldItem });
196
+ const { readOnly: existingReadOnly = {} } = item || {};
197
+ const newReadOnly = __spreadValues(__spreadValues({}, existingReadOnly), readOnly);
198
+ const resolvedItem = __spreadProps(__spreadValues({}, item), {
199
+ props: __spreadValues(__spreadValues({}, item.props), resolvedProps)
200
+ });
201
+ if (Object.keys(newReadOnly).length) {
202
+ resolvedItem.readOnly = newReadOnly;
203
+ }
204
+ cache.lastChange[item.props.id] = {
205
+ item,
206
+ resolved: resolvedItem
207
+ };
208
+ if (onResolveEnd) {
209
+ onResolveEnd(resolvedItem);
210
+ }
211
+ return resolvedItem;
212
+ }
213
+ return item;
214
+ });
215
+
216
+ // lib/resolve-root-data.ts
217
+ var cache2 = {};
218
+ function resolveRootData(data, config) {
219
+ return __async(this, null, function* () {
220
+ var _a, _b, _c, _d, _e;
221
+ if (((_a = config.root) == null ? void 0 : _a.resolveData) && data.root.props) {
222
+ if (((_b = cache2.lastChange) == null ? void 0 : _b.original) === data.root) {
223
+ return cache2.lastChange.resolved;
224
+ }
225
+ const changed = getChanged(data.root, (_c = cache2.lastChange) == null ? void 0 : _c.original);
226
+ const rootWithProps = data.root;
227
+ const resolvedRoot = yield (_e = config.root) == null ? void 0 : _e.resolveData(rootWithProps, {
228
+ changed,
229
+ lastData: ((_d = cache2.lastChange) == null ? void 0 : _d.original) || {}
230
+ });
231
+ cache2.lastChange = {
232
+ original: data.root,
233
+ resolved: resolvedRoot
234
+ };
235
+ return __spreadProps(__spreadValues(__spreadValues({}, data.root), resolvedRoot), {
236
+ props: __spreadValues(__spreadValues({}, data.root.props), resolvedRoot.props)
237
+ });
238
+ }
239
+ return data.root;
240
+ });
241
+ }
242
+
243
+ // lib/default-data.ts
244
+ var defaultData = (data) => __spreadProps(__spreadValues({}, data), {
245
+ root: data.root || {},
246
+ content: data.content || []
247
+ });
248
+
249
+ // lib/resolve-all-data.ts
250
+ function resolveAllData(data, config, onResolveStart, onResolveEnd) {
251
+ return __async(this, null, function* () {
252
+ const defaultedData = defaultData(data);
253
+ const dynamicRoot = yield resolveRootData(defaultedData, config);
254
+ const { zones = {} } = data;
255
+ const zoneKeys = Object.keys(zones);
256
+ const resolvedZones = {};
257
+ for (let i = 0; i < zoneKeys.length; i++) {
258
+ const zoneKey = zoneKeys[i];
259
+ resolvedZones[zoneKey] = yield resolveAllComponentData(
260
+ zones[zoneKey],
261
+ config,
262
+ onResolveStart,
263
+ onResolveEnd
264
+ );
265
+ }
266
+ return __spreadProps(__spreadValues({}, defaultedData), {
267
+ root: dynamicRoot,
268
+ content: yield resolveAllComponentData(
269
+ defaultedData.content,
270
+ config,
271
+ onResolveStart,
272
+ onResolveEnd
273
+ ),
274
+ zones: resolvedZones
275
+ });
276
+ });
277
+ }
137
278
  // Annotate the CommonJS export names for ESM import in node:
138
279
  0 && (module.exports = {
139
- Render
280
+ Render,
281
+ resolveAllData
140
282
  });
package/dist/rsc.mjs CHANGED
@@ -2,9 +2,10 @@ import {
2
2
  __spreadProps,
3
3
  __spreadValues,
4
4
  init_react_import,
5
+ resolveAllData,
5
6
  rootDroppableId,
6
7
  setupZone
7
- } from "./chunk-LM7YWFFF.mjs";
8
+ } from "./chunk-7IH6SUIT.mjs";
8
9
 
9
10
  // rsc.tsx
10
11
  init_react_import();
@@ -76,5 +77,6 @@ function Render({
76
77
  return /* @__PURE__ */ jsx(DropZoneRender, { config, data, zone: rootDroppableId });
77
78
  }
78
79
  export {
79
- Render
80
+ Render,
81
+ resolveAllData
80
82
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.16.2-canary.8378c8c",
3
+ "version": "0.16.2-canary.a1988b5",
4
4
  "author": "Measured Corporation Ltd <hello@measured.co>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -1,114 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __objRest = (source, exclude) => {
25
- var target = {};
26
- for (var prop in source)
27
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
- target[prop] = source[prop];
29
- if (source != null && __getOwnPropSymbols)
30
- for (var prop of __getOwnPropSymbols(source)) {
31
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
- target[prop] = source[prop];
33
- }
34
- return target;
35
- };
36
- var __esm = (fn, res) => function __init() {
37
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
38
- };
39
- var __commonJS = (cb, mod) => function __require() {
40
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
41
- };
42
- var __copyProps = (to, from, except, desc) => {
43
- if (from && typeof from === "object" || typeof from === "function") {
44
- for (let key of __getOwnPropNames(from))
45
- if (!__hasOwnProp.call(to, key) && key !== except)
46
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
47
- }
48
- return to;
49
- };
50
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
51
- // If the importer is in node compatibility mode or this is not an ESM
52
- // file that has been converted to a CommonJS file using a Babel-
53
- // compatible transform (i.e. "__esModule" has not been set), then set
54
- // "default" to the CommonJS "module.exports" for node compatibility.
55
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
56
- mod
57
- ));
58
- var __async = (__this, __arguments, generator) => {
59
- return new Promise((resolve, reject) => {
60
- var fulfilled = (value) => {
61
- try {
62
- step(generator.next(value));
63
- } catch (e) {
64
- reject(e);
65
- }
66
- };
67
- var rejected = (value) => {
68
- try {
69
- step(generator.throw(value));
70
- } catch (e) {
71
- reject(e);
72
- }
73
- };
74
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
75
- step((generator = generator.apply(__this, __arguments)).next());
76
- });
77
- };
78
-
79
- // ../tsup-config/react-import.js
80
- import React from "react";
81
- var init_react_import = __esm({
82
- "../tsup-config/react-import.js"() {
83
- "use strict";
84
- }
85
- });
86
-
87
- // lib/root-droppable-id.ts
88
- init_react_import();
89
- var rootDroppableId = "default-zone";
90
-
91
- // lib/setup-zone.ts
92
- init_react_import();
93
- var setupZone = (data, zoneKey) => {
94
- if (zoneKey === rootDroppableId) {
95
- return data;
96
- }
97
- const newData = __spreadProps(__spreadValues({}, data), {
98
- zones: data.zones || {}
99
- });
100
- newData.zones[zoneKey] = newData.zones[zoneKey] || [];
101
- return newData;
102
- };
103
-
104
- export {
105
- __spreadValues,
106
- __spreadProps,
107
- __objRest,
108
- __commonJS,
109
- __toESM,
110
- __async,
111
- init_react_import,
112
- rootDroppableId,
113
- setupZone
114
- };