@measured/puck 0.16.1-canary.ed282b9 → 0.16.2-canary.18657a4

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 || {}
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
  }
@@ -1741,7 +1741,7 @@ textarea._Input-input_3pq3z_47 {
1741
1741
  }
1742
1742
 
1743
1743
  /* css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Canvas/styles.module.css/#css-module-data */
1744
- ._PuckCanvas_esbg1_1 {
1744
+ ._PuckCanvas_avf1c_1 {
1745
1745
  background: var(--puck-color-grey-11);
1746
1746
  display: flex;
1747
1747
  grid-area: editor;
@@ -1750,15 +1750,15 @@ textarea._Input-input_3pq3z_47 {
1750
1750
  overflow: auto;
1751
1751
  }
1752
1752
  @media (min-width: 1198px) {
1753
- ._PuckCanvas_esbg1_1 {
1753
+ ._PuckCanvas_avf1c_1 {
1754
1754
  padding: calc(var(--puck-space-px) * 1.5);
1755
1755
  padding-top: var(--puck-space-px);
1756
1756
  }
1757
- ._PuckCanvas_esbg1_1:not(._PuckCanvas_esbg1_1:has(._PuckCanvas-controls_esbg1_16)) {
1757
+ ._PuckCanvas_avf1c_1:not(._PuckCanvas_avf1c_1:has(._PuckCanvas-controls_avf1c_16)) {
1758
1758
  padding-top: calc(var(--puck-space-px) * 1.5);
1759
1759
  }
1760
1760
  }
1761
- ._PuckCanvas-inner_esbg1_21 {
1761
+ ._PuckCanvas-inner_avf1c_21 {
1762
1762
  box-sizing: border-box;
1763
1763
  display: flex;
1764
1764
  height: 100%;
@@ -1768,31 +1768,33 @@ textarea._Input-input_3pq3z_47 {
1768
1768
  position: relative;
1769
1769
  width: 100%;
1770
1770
  }
1771
- ._PuckCanvas-root_esbg1_32 {
1771
+ ._PuckCanvas-root_avf1c_32 {
1772
1772
  background: white;
1773
1773
  border: 1px solid var(--puck-color-grey-09);
1774
1774
  box-sizing: border-box;
1775
1775
  min-width: 321px;
1776
1776
  position: absolute;
1777
+ pointer-events: none;
1777
1778
  transform-origin: top;
1778
1779
  top: 0;
1779
1780
  bottom: 0;
1780
1781
  opacity: 0;
1781
1782
  }
1782
1783
  @media (min-width: 1198px) {
1783
- ._PuckCanvas-root_esbg1_32 {
1784
+ ._PuckCanvas-root_avf1c_32 {
1784
1785
  min-width: unset;
1785
1786
  }
1786
1787
  }
1787
1788
  @media (prefers-reduced-motion: reduce) {
1788
- ._PuckCanvas-root_esbg1_32 {
1789
+ ._PuckCanvas-root_avf1c_32 {
1789
1790
  transition: none !important;
1790
1791
  }
1791
1792
  }
1792
- ._PuckCanvas--ready_esbg1_56 ._PuckCanvas-root_esbg1_32 {
1793
+ ._PuckCanvas--ready_avf1c_57 ._PuckCanvas-root_avf1c_32 {
1794
+ pointer-events: unset;
1793
1795
  opacity: 1;
1794
1796
  }
1795
- ._PuckCanvas-loader_esbg1_60 {
1797
+ ._PuckCanvas-loader_avf1c_62 {
1796
1798
  align-items: center;
1797
1799
  color: var(--puck-color-grey-06);
1798
1800
  display: flex;
@@ -1801,10 +1803,10 @@ textarea._Input-input_3pq3z_47 {
1801
1803
  transition: opacity 250ms ease-out;
1802
1804
  opacity: 0;
1803
1805
  }
1804
- ._PuckCanvas--showLoader_esbg1_70 ._PuckCanvas-loader_esbg1_60 {
1806
+ ._PuckCanvas--showLoader_avf1c_72 ._PuckCanvas-loader_avf1c_62 {
1805
1807
  opacity: 1;
1806
1808
  }
1807
- ._PuckCanvas--showLoader_esbg1_70._PuckCanvas--ready_esbg1_56 ._PuckCanvas-loader_esbg1_60 {
1809
+ ._PuckCanvas--showLoader_avf1c_72._PuckCanvas--ready_avf1c_57 ._PuckCanvas-loader_avf1c_62 {
1808
1810
  opacity: 0;
1809
1811
  height: 0;
1810
1812
  transition: none;
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 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, H as History, A as AppState, E as ExtractPropsFromConfig, k as ExtractRootPropsFromConfig, l as ComponentDataMap } from './resolve-all-data-CaDAfEAK.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-CaDAfEAK.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';
@@ -202,8 +202,6 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
202
202
  }>;
203
203
  declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
204
204
 
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
205
  type HistoryStore<D = any> = {
208
206
  index: number;
209
207
  hasPast: boolean;
@@ -247,4 +245,4 @@ declare const usePuck: <UserConfig extends Config = Config>() => {
247
245
  selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
248
246
  };
249
247
 
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 };
248
+ export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, 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, 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 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, H as History, A as AppState, E as ExtractPropsFromConfig, k as ExtractRootPropsFromConfig, l as ComponentDataMap } from './resolve-all-data-CaDAfEAK.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-CaDAfEAK.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';
@@ -202,8 +202,6 @@ type PropTransform<Props extends DefaultComponentProps = DefaultComponentProps,
202
202
  }>;
203
203
  declare function transformProps<Props extends DefaultComponentProps = DefaultComponentProps, RootProps extends DefaultComponentProps = DefaultRootFieldProps>(data: Partial<Data>, propTransforms: PropTransform<Props, RootProps>): Data;
204
204
 
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
205
  type HistoryStore<D = any> = {
208
206
  index: number;
209
207
  hasPast: boolean;
@@ -247,4 +245,4 @@ declare const usePuck: <UserConfig extends Config = Config>() => {
247
245
  selectedItem: ComponentDataMap<ExtractPropsFromConfig<UserConfig>> | null;
248
246
  };
249
247
 
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 };
248
+ export { Action, ActionBar, AppState, AutoField, AutoFieldPrivate, Button, 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, transformProps, usePuck };
package/dist/index.js CHANGED
@@ -243,7 +243,7 @@ var get_class_name_factory_default = getClassNameFactory;
243
243
 
244
244
  // css-module:/home/runner/work/puck/puck/packages/core/components/ActionBar/styles.module.css#css-module
245
245
  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" };
246
+ 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
247
 
248
248
  // components/ActionBar/index.tsx
249
249
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -764,16 +764,15 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
764
764
  const resolveDataForItem = (0, import_react4.useCallback)(
765
765
  (item, force = false) => __async(void 0, null, function* () {
766
766
  var _a, _b, _c;
767
- setComponentLoading == null ? void 0 : setComponentLoading(item.props.id);
768
767
  const componentConfig = item.type === "root" ? config.root : config.components[item.type];
769
768
  if (!componentConfig) {
770
- unsetComponentLoading == null ? void 0 : unsetComponentLoading(item.props.id);
771
769
  return;
772
770
  }
773
771
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
774
772
  if (componentConfig.resolvePermissions) {
775
773
  const changed = getChanged(item, (_a = cache3[item.props.id]) == null ? void 0 : _a.lastData);
776
774
  if (Object.values(changed).some((el) => el === true) || force) {
775
+ setComponentLoading == null ? void 0 : setComponentLoading(item.props.id);
777
776
  const resolvedPermissions2 = yield componentConfig.resolvePermissions(
778
777
  item,
779
778
  {
@@ -793,9 +792,9 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
793
792
  setResolvedPermissions((p) => __spreadProps(__spreadValues({}, p), {
794
793
  [item.props.id]: resolvedPermissions2
795
794
  }));
795
+ unsetComponentLoading == null ? void 0 : unsetComponentLoading(item.props.id);
796
796
  }
797
797
  }
798
- unsetComponentLoading == null ? void 0 : unsetComponentLoading(item.props.id);
799
798
  }),
800
799
  [config, globalPermissions, appState, cache3]
801
800
  );
@@ -841,12 +840,12 @@ var useResolvedPermissions = (config, appState, globalPermissions, setComponentL
841
840
  ({ item, type, root } = {}) => {
842
841
  if (item) {
843
842
  const componentConfig = config.components[item.type];
844
- const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
843
+ const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), componentConfig == null ? void 0 : componentConfig.permissions);
845
844
  const resolvedForItem = resolvedPermissions[item.props.id];
846
845
  return resolvedForItem ? __spreadValues(__spreadValues({}, globalPermissions), resolvedForItem) : initialPermissions;
847
846
  } else if (type) {
848
847
  const componentConfig = config.components[type];
849
- return __spreadValues(__spreadValues({}, globalPermissions), componentConfig.permissions);
848
+ return __spreadValues(__spreadValues({}, globalPermissions), componentConfig == null ? void 0 : componentConfig.permissions);
850
849
  } else if (root) {
851
850
  const rootConfig = config.root;
852
851
  const initialPermissions = __spreadValues(__spreadValues({}, globalPermissions), rootConfig == null ? void 0 : rootConfig.permissions);
@@ -2328,9 +2327,12 @@ function AutoFieldInternal(props) {
2328
2327
  const Render2 = render[field.type];
2329
2328
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
2330
2329
  }
2330
+ var RECENT_CHANGE_TIMEOUT = 200;
2331
2331
  function AutoFieldPrivate(props) {
2332
2332
  const { value, onChange } = props;
2333
2333
  const [localValue, setLocalValue] = (0, import_react13.useState)(value);
2334
+ const [recentlyChanged, setRecentlyChanged] = (0, import_react13.useState)(false);
2335
+ const timeoutRef = (0, import_react13.useRef)();
2334
2336
  const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
2335
2337
  (val, ui) => {
2336
2338
  onChange(val, ui);
@@ -2340,10 +2342,17 @@ function AutoFieldPrivate(props) {
2340
2342
  );
2341
2343
  const onChangeLocal = (0, import_react13.useCallback)((val, ui) => {
2342
2344
  setLocalValue(val);
2345
+ setRecentlyChanged(true);
2346
+ clearTimeout(timeoutRef.current);
2347
+ timeoutRef.current = setTimeout(() => {
2348
+ setRecentlyChanged(false);
2349
+ }, RECENT_CHANGE_TIMEOUT);
2343
2350
  onChangeDb(val, ui);
2344
2351
  }, []);
2345
2352
  (0, import_react13.useEffect)(() => {
2346
- setLocalValue(value);
2353
+ if (!recentlyChanged) {
2354
+ setLocalValue(value);
2355
+ }
2347
2356
  }, [value]);
2348
2357
  const localProps = {
2349
2358
  value: localValue,
@@ -2351,8 +2360,16 @@ function AutoFieldPrivate(props) {
2351
2360
  };
2352
2361
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AutoFieldInternal, __spreadValues(__spreadValues({}, props), localProps));
2353
2362
  }
2354
- var DefaultLabel = (props) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", __spreadValues({}, props));
2355
2363
  function AutoField(props) {
2364
+ const DefaultLabel = (0, import_react13.useMemo)(() => {
2365
+ const DefaultLabel2 = (labelProps) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2366
+ "div",
2367
+ __spreadProps(__spreadValues({}, labelProps), {
2368
+ className: getClassName15({ readOnly: props.readOnly })
2369
+ })
2370
+ );
2371
+ return DefaultLabel2;
2372
+ }, [props.readOnly]);
2356
2373
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AutoFieldInternal, __spreadProps(__spreadValues({}, props), { Label: DefaultLabel }));
2357
2374
  }
2358
2375
 
@@ -3677,7 +3694,7 @@ var DefaultFields = ({
3677
3694
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children });
3678
3695
  };
3679
3696
  var useResolvedFields = () => {
3680
- var _a;
3697
+ var _a, _b;
3681
3698
  const { selectedItem, state, config } = useAppContext();
3682
3699
  const { data } = state;
3683
3700
  const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
@@ -3689,14 +3706,17 @@ var useResolvedFields = () => {
3689
3706
  const [fieldsLoading, setFieldsLoading] = (0, import_react21.useState)(false);
3690
3707
  const defaultResolveFields = (_componentData, _params) => defaultFields;
3691
3708
  const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
3709
+ const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
3710
+ const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
3711
+ const hasResolver = hasComponentResolver || hasRootResolver;
3692
3712
  const resolveFields = (0, import_react21.useCallback)(
3693
3713
  (..._0) => __async(void 0, [..._0], function* (fields = {}) {
3694
- var _a2, _b, _c;
3714
+ var _a2;
3695
3715
  const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
3696
3716
  const changed = getChanged(componentData, lastData);
3697
3717
  setLastSelectedData(componentData);
3698
- if (selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields)) {
3699
- return yield componentConfig == null ? void 0 : componentConfig.resolveFields(
3718
+ if (hasComponentResolver) {
3719
+ return yield componentConfig.resolveFields(
3700
3720
  componentData,
3701
3721
  {
3702
3722
  changed,
@@ -3707,8 +3727,8 @@ var useResolvedFields = () => {
3707
3727
  }
3708
3728
  );
3709
3729
  }
3710
- if (!selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields)) {
3711
- return yield (_c = config.root) == null ? void 0 : _c.resolveFields(componentData, {
3730
+ if (hasRootResolver) {
3731
+ return yield config.root.resolveFields(componentData, {
3712
3732
  changed,
3713
3733
  fields,
3714
3734
  lastFields: resolvedFields,
@@ -3726,12 +3746,16 @@ var useResolvedFields = () => {
3726
3746
  [data, config, componentData, selectedItem, resolvedFields, state]
3727
3747
  );
3728
3748
  (0, import_react21.useEffect)(() => {
3729
- setFieldsLoading(true);
3730
- resolveFields(defaultFields).then((fields) => {
3731
- setResolvedFields(fields || {});
3732
- setFieldsLoading(false);
3733
- });
3734
- }, [data, defaultFields, state.ui.itemSelector]);
3749
+ if (hasResolver) {
3750
+ setFieldsLoading(true);
3751
+ resolveFields(defaultFields).then((fields) => {
3752
+ setResolvedFields(fields || {});
3753
+ setFieldsLoading(false);
3754
+ });
3755
+ } else {
3756
+ setResolvedFields(defaultFields);
3757
+ }
3758
+ }, [data, defaultFields, state.ui.itemSelector, hasResolver]);
3735
3759
  return [resolvedFields, fieldsLoading];
3736
3760
  };
3737
3761
  var Fields = () => {
@@ -4951,7 +4975,7 @@ var ViewportControls = ({
4951
4975
 
4952
4976
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Canvas/styles.module.css#css-module
4953
4977
  init_react_import();
4954
- var styles_module_default21 = { "PuckCanvas": "_PuckCanvas_esbg1_1", "PuckCanvas-controls": "_PuckCanvas-controls_esbg1_16", "PuckCanvas-inner": "_PuckCanvas-inner_esbg1_21", "PuckCanvas-root": "_PuckCanvas-root_esbg1_32", "PuckCanvas--ready": "_PuckCanvas--ready_esbg1_56", "PuckCanvas-loader": "_PuckCanvas-loader_esbg1_60", "PuckCanvas--showLoader": "_PuckCanvas--showLoader_esbg1_70" };
4978
+ var styles_module_default21 = { "PuckCanvas": "_PuckCanvas_avf1c_1", "PuckCanvas-controls": "_PuckCanvas-controls_avf1c_16", "PuckCanvas-inner": "_PuckCanvas-inner_avf1c_21", "PuckCanvas-root": "_PuckCanvas-root_avf1c_32", "PuckCanvas--ready": "_PuckCanvas--ready_avf1c_57", "PuckCanvas-loader": "_PuckCanvas-loader_avf1c_62", "PuckCanvas--showLoader": "_PuckCanvas--showLoader_avf1c_72" };
4955
4979
 
4956
4980
  // lib/get-zoom-config.ts
4957
4981
  init_react_import();