@measured/puck 0.17.0-canary.ccec96e → 0.17.0-canary.f71da6d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +33 -33
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +181 -113
- package/dist/index.mjs +117 -50
- package/dist/{resolve-all-data-Bd3DnhYE.d.mts → resolve-all-data-C7aAQCY3.d.mts} +4 -0
- package/dist/{resolve-all-data-Bd3DnhYE.d.ts → resolve-all-data-C7aAQCY3.d.ts} +4 -0
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.css
CHANGED
@@ -204,27 +204,27 @@
|
|
204
204
|
}
|
205
205
|
|
206
206
|
/* css-module:/home/runner/work/puck/puck/packages/core/components/AutoField/styles.module.css/#css-module-data */
|
207
|
-
.
|
207
|
+
._InputWrapper_1l5m8_1 {
|
208
208
|
color: var(--puck-color-grey-04);
|
209
209
|
padding: 16px;
|
210
210
|
padding-bottom: 12px;
|
211
211
|
display: block;
|
212
212
|
}
|
213
|
-
.
|
213
|
+
._InputWrapper_1l5m8_1 + ._InputWrapper_1l5m8_1 {
|
214
|
+
border-top: 1px solid var(--puck-color-grey-09);
|
215
|
+
margin-top: 8px;
|
216
|
+
}
|
217
|
+
._Input_1l5m8_1 ._InputWrapper_1l5m8_1 {
|
214
218
|
padding: 0px;
|
215
219
|
}
|
216
|
-
.
|
220
|
+
._Input_1l5m8_1 * {
|
217
221
|
box-sizing: border-box;
|
218
222
|
}
|
219
|
-
.
|
220
|
-
border-top: 1px solid var(--puck-color-grey-09);
|
221
|
-
margin-top: 8px;
|
222
|
-
}
|
223
|
-
._Input_3pq3z_1 ._Input_3pq3z_1 + ._Input_3pq3z_1 {
|
223
|
+
._Input_1l5m8_1 ._InputWrapper_1l5m8_1 + ._InputWrapper_1l5m8_1 {
|
224
224
|
border-top: 0px;
|
225
225
|
margin-top: 12px;
|
226
226
|
}
|
227
|
-
._Input-
|
227
|
+
._Input-label_1l5m8_26 {
|
228
228
|
align-items: center;
|
229
229
|
color: var(--puck-color-grey-04);
|
230
230
|
display: flex;
|
@@ -232,17 +232,17 @@
|
|
232
232
|
font-size: var(--puck-font-size-xxs);
|
233
233
|
font-weight: 600;
|
234
234
|
}
|
235
|
-
._Input-
|
235
|
+
._Input-labelIcon_1l5m8_35 {
|
236
236
|
color: var(--puck-color-grey-07);
|
237
237
|
display: flex;
|
238
238
|
margin-right: 4px;
|
239
239
|
padding-left: 4px;
|
240
240
|
}
|
241
|
-
._Input-
|
241
|
+
._Input-disabledIcon_1l5m8_42 {
|
242
242
|
color: var(--puck-color-grey-05);
|
243
243
|
margin-left: auto;
|
244
244
|
}
|
245
|
-
._Input-
|
245
|
+
._Input-input_1l5m8_47 {
|
246
246
|
background: var(--puck-color-white);
|
247
247
|
border-width: 1px;
|
248
248
|
border-style: solid;
|
@@ -254,7 +254,7 @@
|
|
254
254
|
transition: border-color 50ms ease-in;
|
255
255
|
width: 100%;
|
256
256
|
}
|
257
|
-
select._Input-
|
257
|
+
select._Input-input_1l5m8_47 {
|
258
258
|
appearance: none;
|
259
259
|
background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23c3c3c3'><polygon points='0,0 100,0 50,50'/></svg>") no-repeat;
|
260
260
|
background-size: 12px;
|
@@ -264,25 +264,25 @@ select._Input-input_3pq3z_47 {
|
|
264
264
|
cursor: pointer;
|
265
265
|
}
|
266
266
|
@media (hover: hover) and (pointer: fine) {
|
267
|
-
.
|
268
|
-
.
|
267
|
+
._Input_1l5m8_1:has(> input):hover ._Input-input_1l5m8_47:not([readonly]),
|
268
|
+
._Input_1l5m8_1:has(> textarea):hover ._Input-input_1l5m8_47:not([readonly]) {
|
269
269
|
border-color: var(--puck-color-grey-05);
|
270
270
|
transition: none;
|
271
271
|
}
|
272
|
-
.
|
272
|
+
._Input_1l5m8_1:has(> select):hover ._Input-input_1l5m8_47:not([disabled]) {
|
273
273
|
background-color: var(--puck-color-azure-12);
|
274
274
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%235a5a5a'><polygon points='0,0 100,0 50,50'/></svg>");
|
275
275
|
border-color: var(--puck-color-grey-05);
|
276
276
|
transition: none;
|
277
277
|
}
|
278
278
|
}
|
279
|
-
._Input-
|
279
|
+
._Input-input_1l5m8_47:focus {
|
280
280
|
border-color: var(--puck-color-grey-05);
|
281
281
|
outline: 2px solid var(--puck-color-azure-05);
|
282
282
|
transition: none;
|
283
283
|
}
|
284
|
-
._Input--
|
285
|
-
._Input--
|
284
|
+
._Input--readOnly_1l5m8_91 > ._Input-input_1l5m8_47,
|
285
|
+
._Input--readOnly_1l5m8_91 > select._Input-input_1l5m8_47 {
|
286
286
|
background-color: var(--puck-color-grey-11);
|
287
287
|
border-color: var(--puck-color-grey-09);
|
288
288
|
color: var(--puck-color-grey-04);
|
@@ -291,34 +291,34 @@ select._Input-input_3pq3z_47 {
|
|
291
291
|
outline: 0;
|
292
292
|
transition: none;
|
293
293
|
}
|
294
|
-
._Input-
|
294
|
+
._Input-radioGroupItems_1l5m8_102 {
|
295
295
|
display: flex;
|
296
296
|
border: 1px solid var(--puck-color-grey-09);
|
297
297
|
border-radius: 4px;
|
298
298
|
flex-wrap: wrap;
|
299
299
|
}
|
300
|
-
._Input-
|
300
|
+
._Input-radio_1l5m8_102 {
|
301
301
|
border-right: 1px solid var(--puck-color-grey-09);
|
302
302
|
flex-grow: 1;
|
303
303
|
}
|
304
|
-
._Input-
|
304
|
+
._Input-radio_1l5m8_102:first-of-type {
|
305
305
|
border-bottom-left-radius: 4px;
|
306
306
|
border-top-left-radius: 4px;
|
307
307
|
}
|
308
|
-
._Input-
|
308
|
+
._Input-radio_1l5m8_102:first-of-type ._Input-radioInner_1l5m8_119 {
|
309
309
|
border-bottom-left-radius: 3px;
|
310
310
|
border-top-left-radius: 3px;
|
311
311
|
}
|
312
|
-
._Input-
|
312
|
+
._Input-radio_1l5m8_102:last-of-type {
|
313
313
|
border-bottom-right-radius: 4px;
|
314
314
|
border-right: 0;
|
315
315
|
border-top-right-radius: 4px;
|
316
316
|
}
|
317
|
-
._Input-
|
317
|
+
._Input-radio_1l5m8_102:last-of-type ._Input-radioInner_1l5m8_119 {
|
318
318
|
border-bottom-right-radius: 3px;
|
319
319
|
border-top-right-radius: 3px;
|
320
320
|
}
|
321
|
-
._Input-
|
321
|
+
._Input-radioInner_1l5m8_119 {
|
322
322
|
background-color: var(--puck-color-white);
|
323
323
|
color: var(--puck-color-grey-04);
|
324
324
|
cursor: pointer;
|
@@ -327,32 +327,32 @@ select._Input-input_3pq3z_47 {
|
|
327
327
|
text-align: center;
|
328
328
|
transition: background-color 50ms ease-in;
|
329
329
|
}
|
330
|
-
._Input-
|
330
|
+
._Input-radio_1l5m8_102:has(:focus-visible) {
|
331
331
|
outline: 2px solid var(--puck-color-azure-05);
|
332
332
|
outline-offset: 2px;
|
333
333
|
position: relative;
|
334
334
|
}
|
335
335
|
@media (hover: hover) and (pointer: fine) {
|
336
|
-
._Input-
|
336
|
+
._Input-radioInner_1l5m8_119:hover {
|
337
337
|
background-color: var(--puck-color-azure-12);
|
338
338
|
transition: none;
|
339
339
|
}
|
340
340
|
}
|
341
|
-
._Input--
|
341
|
+
._Input--readOnly_1l5m8_91 ._Input-radioInner_1l5m8_119 {
|
342
342
|
background-color: var(--puck-color-white);
|
343
343
|
color: var(--puck-color-grey-04);
|
344
344
|
cursor: default;
|
345
345
|
}
|
346
|
-
._Input-
|
346
|
+
._Input-radio_1l5m8_102 ._Input-radioInput_1l5m8_164:checked ~ ._Input-radioInner_1l5m8_119 {
|
347
347
|
background-color: var(--puck-color-azure-11);
|
348
348
|
color: var(--puck-color-azure-04);
|
349
349
|
font-weight: 500;
|
350
350
|
}
|
351
|
-
._Input--
|
351
|
+
._Input--readOnly_1l5m8_91 ._Input-radioInput_1l5m8_164:checked ~ ._Input-radioInner_1l5m8_119 {
|
352
352
|
background-color: var(--puck-color-grey-11);
|
353
353
|
color: var(--puck-color-grey-04);
|
354
354
|
}
|
355
|
-
._Input-
|
355
|
+
._Input-radio_1l5m8_102 ._Input-radioInput_1l5m8_164 {
|
356
356
|
clip: rect(0 0 0 0);
|
357
357
|
clip-path: inset(100%);
|
358
358
|
height: 1px;
|
@@ -361,7 +361,7 @@ select._Input-input_3pq3z_47 {
|
|
361
361
|
white-space: nowrap;
|
362
362
|
width: 1px;
|
363
363
|
}
|
364
|
-
textarea._Input-
|
364
|
+
textarea._Input-input_1l5m8_47 {
|
365
365
|
margin-bottom: -4px;
|
366
366
|
}
|
367
367
|
|
package/dist/index.d.mts
CHANGED
@@ -1,5 +1,5 @@
|
|
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-
|
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-
|
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-C7aAQCY3.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-C7aAQCY3.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';
|
package/dist/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
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-
|
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-
|
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-C7aAQCY3.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-C7aAQCY3.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';
|
package/dist/index.js
CHANGED
@@ -276,7 +276,7 @@ init_react_import();
|
|
276
276
|
|
277
277
|
// css-module:/home/runner/work/puck/puck/packages/core/components/AutoField/styles.module.css#css-module
|
278
278
|
init_react_import();
|
279
|
-
var styles_module_default2 = { "Input": "
|
279
|
+
var styles_module_default2 = { "InputWrapper": "_InputWrapper_1l5m8_1", "Input": "_Input_1l5m8_1", "Input-label": "_Input-label_1l5m8_26", "Input-labelIcon": "_Input-labelIcon_1l5m8_35", "Input-disabledIcon": "_Input-disabledIcon_1l5m8_42", "Input-input": "_Input-input_1l5m8_47", "Input--readOnly": "_Input--readOnly_1l5m8_91", "Input-radioGroupItems": "_Input-radioGroupItems_1l5m8_102", "Input-radio": "_Input-radio_1l5m8_102", "Input-radioInner": "_Input-radioInner_1l5m8_119", "Input-radioInput": "_Input-radioInput_1l5m8_164" };
|
280
280
|
|
281
281
|
// components/AutoField/index.tsx
|
282
282
|
var import_react13 = require("react");
|
@@ -1071,7 +1071,8 @@ var defaultAppState = {
|
|
1071
1071
|
},
|
1072
1072
|
options: [],
|
1073
1073
|
controlsVisible: true
|
1074
|
-
}
|
1074
|
+
},
|
1075
|
+
field: { focus: null }
|
1075
1076
|
}
|
1076
1077
|
};
|
1077
1078
|
var defaultContext = {
|
@@ -1415,11 +1416,13 @@ var ArrayField = ({
|
|
1415
1416
|
event.source.index,
|
1416
1417
|
(_b = event.destination) == null ? void 0 : _b.index
|
1417
1418
|
);
|
1418
|
-
|
1419
|
+
const newUi = {
|
1419
1420
|
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
1420
1421
|
[id]: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
1421
1422
|
})
|
1422
|
-
}
|
1423
|
+
};
|
1424
|
+
setUi(newUi, false);
|
1425
|
+
onChange(newValue, newUi);
|
1423
1426
|
setLocalState({
|
1424
1427
|
value: newValue,
|
1425
1428
|
arrayState: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
@@ -1485,32 +1488,60 @@ var ArrayField = ({
|
|
1485
1488
|
children: [
|
1486
1489
|
field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
|
1487
1490
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: getClassNameItem("rhs"), children: [
|
1488
|
-
!readOnly && /* @__PURE__ */ (0, import_jsx_runtime9.
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
e
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1491
|
+
!readOnly && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: getClassNameItem("actions"), children: [
|
1492
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
1493
|
+
IconButton,
|
1494
|
+
{
|
1495
|
+
type: "button",
|
1496
|
+
disabled: !!addDisabled,
|
1497
|
+
onClick: (e) => {
|
1498
|
+
e.stopPropagation();
|
1499
|
+
const existingValue = [
|
1500
|
+
...value || []
|
1501
|
+
];
|
1502
|
+
existingValue.splice(
|
1503
|
+
i,
|
1504
|
+
0,
|
1505
|
+
existingValue[i]
|
1506
|
+
);
|
1507
|
+
onChange(
|
1508
|
+
existingValue,
|
1509
|
+
mapArrayStateToUi(
|
1510
|
+
regenerateArrayState(existingValue)
|
1511
|
+
)
|
1512
|
+
);
|
1513
|
+
},
|
1514
|
+
title: "Duplicate",
|
1515
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Copy, { size: 16 })
|
1516
|
+
}
|
1517
|
+
) }),
|
1518
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
1519
|
+
IconButton,
|
1520
|
+
{
|
1521
|
+
type: "button",
|
1522
|
+
disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
|
1523
|
+
onClick: (e) => {
|
1524
|
+
e.stopPropagation();
|
1525
|
+
const existingValue = [
|
1526
|
+
...value || []
|
1527
|
+
];
|
1528
|
+
const existingItems = [
|
1529
|
+
...arrayState.items || []
|
1530
|
+
];
|
1531
|
+
existingValue.splice(i, 1);
|
1532
|
+
existingItems.splice(i, 1);
|
1533
|
+
onChange(
|
1534
|
+
existingValue,
|
1535
|
+
mapArrayStateToUi({
|
1536
|
+
items: existingItems
|
1537
|
+
})
|
1538
|
+
);
|
1539
|
+
},
|
1540
|
+
title: "Delete",
|
1541
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Trash, { size: 16 })
|
1542
|
+
}
|
1543
|
+
) })
|
1544
|
+
] }),
|
1514
1545
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DragIcon, {}) })
|
1515
1546
|
] })
|
1516
1547
|
]
|
@@ -2241,6 +2272,7 @@ var useSafeId = () => {
|
|
2241
2272
|
// components/AutoField/index.tsx
|
2242
2273
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
2243
2274
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
|
2275
|
+
var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
|
2244
2276
|
var FieldLabel = ({
|
2245
2277
|
children,
|
2246
2278
|
icon,
|
@@ -2288,7 +2320,7 @@ var FieldLabelInternal2 = ({
|
|
2288
2320
|
};
|
2289
2321
|
function AutoFieldInternal(props) {
|
2290
2322
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2291
|
-
const { overrides } = useAppContext();
|
2323
|
+
const { dispatch, overrides } = useAppContext();
|
2292
2324
|
const { id, Label = FieldLabelInternal2 } = props;
|
2293
2325
|
const field = props.field;
|
2294
2326
|
const label = field.label;
|
@@ -2320,23 +2352,45 @@ function AutoFieldInternal(props) {
|
|
2320
2352
|
Label,
|
2321
2353
|
id: resolvedId
|
2322
2354
|
});
|
2355
|
+
const onFocus = (0, import_react13.useCallback)(
|
2356
|
+
(e) => {
|
2357
|
+
if (mergedProps.name && e.target.nodeName === "INPUT") {
|
2358
|
+
e.stopPropagation();
|
2359
|
+
dispatch({
|
2360
|
+
type: "setUi",
|
2361
|
+
ui: {
|
2362
|
+
field: { focus: mergedProps.name }
|
2363
|
+
}
|
2364
|
+
});
|
2365
|
+
}
|
2366
|
+
},
|
2367
|
+
[mergedProps.name]
|
2368
|
+
);
|
2369
|
+
const onBlur = (0, import_react13.useCallback)((e) => {
|
2370
|
+
if ("name" in e.target) {
|
2371
|
+
dispatch({
|
2372
|
+
type: "setUi",
|
2373
|
+
ui: {
|
2374
|
+
field: { focus: null }
|
2375
|
+
}
|
2376
|
+
});
|
2377
|
+
}
|
2378
|
+
}, []);
|
2323
2379
|
if (field.type === "custom") {
|
2324
2380
|
if (!field.render) {
|
2325
2381
|
return null;
|
2326
2382
|
}
|
2327
2383
|
const CustomField = field.render;
|
2328
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName15(), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CustomField, __spreadValues({}, mergedProps)) });
|
2384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassNameWrapper(), onFocus, onBlur, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassName15(), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CustomField, __spreadValues({}, mergedProps)) }) });
|
2329
2385
|
}
|
2330
2386
|
const children = defaultFields[field.type](mergedProps);
|
2331
2387
|
const Render2 = render[field.type];
|
2332
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
|
2388
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: getClassNameWrapper(), onFocus, onBlur, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Render2, __spreadProps(__spreadValues({}, mergedProps), { children })) });
|
2333
2389
|
}
|
2334
|
-
var RECENT_CHANGE_TIMEOUT = 200;
|
2335
2390
|
function AutoFieldPrivate(props) {
|
2391
|
+
const { state } = useAppContext();
|
2336
2392
|
const { value, onChange } = props;
|
2337
2393
|
const [localValue, setLocalValue] = (0, import_react13.useState)(value);
|
2338
|
-
const [recentlyChanged, setRecentlyChanged] = (0, import_react13.useState)(false);
|
2339
|
-
const timeoutRef = (0, import_react13.useRef)();
|
2340
2394
|
const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
|
2341
2395
|
(val, ui) => {
|
2342
2396
|
onChange(val, ui);
|
@@ -2346,15 +2400,10 @@ function AutoFieldPrivate(props) {
|
|
2346
2400
|
);
|
2347
2401
|
const onChangeLocal = (0, import_react13.useCallback)((val, ui) => {
|
2348
2402
|
setLocalValue(val);
|
2349
|
-
setRecentlyChanged(true);
|
2350
|
-
clearTimeout(timeoutRef.current);
|
2351
|
-
timeoutRef.current = setTimeout(() => {
|
2352
|
-
setRecentlyChanged(false);
|
2353
|
-
}, RECENT_CHANGE_TIMEOUT);
|
2354
2403
|
onChangeDb(val, ui);
|
2355
2404
|
}, []);
|
2356
2405
|
(0, import_react13.useEffect)(() => {
|
2357
|
-
if (
|
2406
|
+
if (state.ui.field.focus !== props.name) {
|
2358
2407
|
setLocalValue(value);
|
2359
2408
|
}
|
2360
2409
|
}, [value]);
|
@@ -3079,7 +3128,7 @@ function DropZone(props) {
|
|
3079
3128
|
|
3080
3129
|
// components/Puck/index.tsx
|
3081
3130
|
init_react_import();
|
3082
|
-
var
|
3131
|
+
var import_react33 = require("react");
|
3083
3132
|
|
3084
3133
|
// lib/use-placeholder-style.ts
|
3085
3134
|
init_react_import();
|
@@ -3686,7 +3735,23 @@ init_react_import();
|
|
3686
3735
|
var styles_module_default16 = { "PuckFields": "_PuckFields_jp3lw_1", "PuckFields--isLoading": "_PuckFields--isLoading_jp3lw_6", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_jp3lw_10", "PuckFields-loadingOverlayInner": "_PuckFields-loadingOverlayInner_jp3lw_25" };
|
3687
3736
|
|
3688
3737
|
// components/Puck/components/Fields/index.tsx
|
3738
|
+
var import_react22 = require("react");
|
3739
|
+
|
3740
|
+
// lib/use-parent.ts
|
3741
|
+
init_react_import();
|
3689
3742
|
var import_react21 = require("react");
|
3743
|
+
var useParent = (itemSelector) => {
|
3744
|
+
var _a;
|
3745
|
+
const { selectedItem, state } = useAppContext();
|
3746
|
+
const { pathData } = (0, import_react21.useContext)(dropZoneContext) || {};
|
3747
|
+
const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
|
3748
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
3749
|
+
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
3750
|
+
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, state.data)) != null ? _a : null : null;
|
3751
|
+
return parent || null;
|
3752
|
+
};
|
3753
|
+
|
3754
|
+
// components/Puck/components/Fields/index.tsx
|
3690
3755
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
3691
3756
|
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
3692
3757
|
var defaultPageFields = {
|
@@ -3700,23 +3765,24 @@ var DefaultFields = ({
|
|
3700
3765
|
var useResolvedFields = () => {
|
3701
3766
|
var _a, _b;
|
3702
3767
|
const { selectedItem, state, config } = useAppContext();
|
3768
|
+
const parent = useParent();
|
3703
3769
|
const { data } = state;
|
3704
3770
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
3705
3771
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
3706
|
-
const defaultFields = (0,
|
3772
|
+
const defaultFields = (0, import_react22.useMemo)(
|
3707
3773
|
() => (selectedItem ? componentConfig == null ? void 0 : componentConfig.fields : rootFields) || {},
|
3708
3774
|
[selectedItem, rootFields, componentConfig == null ? void 0 : componentConfig.fields]
|
3709
3775
|
);
|
3710
3776
|
const rootProps = data.root.props || data.root;
|
3711
|
-
const [lastSelectedData, setLastSelectedData] = (0,
|
3712
|
-
const [resolvedFields, setResolvedFields] = (0,
|
3713
|
-
const [fieldsLoading, setFieldsLoading] = (0,
|
3777
|
+
const [lastSelectedData, setLastSelectedData] = (0, import_react22.useState)({});
|
3778
|
+
const [resolvedFields, setResolvedFields] = (0, import_react22.useState)(defaultFields);
|
3779
|
+
const [fieldsLoading, setFieldsLoading] = (0, import_react22.useState)(false);
|
3714
3780
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
3715
3781
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
3716
3782
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
3717
3783
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
3718
3784
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
3719
|
-
const resolveFields = (0,
|
3785
|
+
const resolveFields = (0, import_react22.useCallback)(
|
3720
3786
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
3721
3787
|
var _a2;
|
3722
3788
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -3730,7 +3796,8 @@ var useResolvedFields = () => {
|
|
3730
3796
|
fields,
|
3731
3797
|
lastFields: resolvedFields,
|
3732
3798
|
lastData,
|
3733
|
-
appState: state
|
3799
|
+
appState: state,
|
3800
|
+
parent
|
3734
3801
|
}
|
3735
3802
|
);
|
3736
3803
|
}
|
@@ -3740,7 +3807,8 @@ var useResolvedFields = () => {
|
|
3740
3807
|
fields,
|
3741
3808
|
lastFields: resolvedFields,
|
3742
3809
|
lastData,
|
3743
|
-
appState: state
|
3810
|
+
appState: state,
|
3811
|
+
parent
|
3744
3812
|
});
|
3745
3813
|
}
|
3746
3814
|
return defaultResolveFields(componentData, {
|
@@ -3752,7 +3820,7 @@ var useResolvedFields = () => {
|
|
3752
3820
|
}),
|
3753
3821
|
[data, config, componentData, selectedItem, resolvedFields, state]
|
3754
3822
|
);
|
3755
|
-
(0,
|
3823
|
+
(0, import_react22.useEffect)(() => {
|
3756
3824
|
if (hasResolver) {
|
3757
3825
|
setFieldsLoading(true);
|
3758
3826
|
resolveFields(defaultFields).then((fields) => {
|
@@ -3762,7 +3830,7 @@ var useResolvedFields = () => {
|
|
3762
3830
|
} else {
|
3763
3831
|
setResolvedFields(defaultFields);
|
3764
3832
|
}
|
3765
|
-
}, [data, defaultFields,
|
3833
|
+
}, [data, defaultFields, selectedItem, hasResolver]);
|
3766
3834
|
return [resolvedFields, fieldsLoading];
|
3767
3835
|
};
|
3768
3836
|
var Fields = () => {
|
@@ -3783,7 +3851,7 @@ var Fields = () => {
|
|
3783
3851
|
const componentResolving = selectedItem ? ((_a = componentState[selectedItem == null ? void 0 : selectedItem.props.id]) == null ? void 0 : _a.loadingCount) > 0 : ((_b = componentState["puck-root"]) == null ? void 0 : _b.loadingCount) > 0;
|
3784
3852
|
const isLoading = fieldsResolving || componentResolving;
|
3785
3853
|
const rootProps = data.root.props || data.root;
|
3786
|
-
const Wrapper = (0,
|
3854
|
+
const Wrapper = (0, import_react22.useMemo)(() => overrides.fields || DefaultFields, [overrides]);
|
3787
3855
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
3788
3856
|
"form",
|
3789
3857
|
{
|
@@ -3904,7 +3972,7 @@ init_react_import();
|
|
3904
3972
|
|
3905
3973
|
// lib/use-component-list.tsx
|
3906
3974
|
init_react_import();
|
3907
|
-
var
|
3975
|
+
var import_react23 = require("react");
|
3908
3976
|
|
3909
3977
|
// components/ComponentList/index.tsx
|
3910
3978
|
init_react_import();
|
@@ -3982,8 +4050,8 @@ ComponentList.Item = ComponentListItem;
|
|
3982
4050
|
// lib/use-component-list.tsx
|
3983
4051
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
3984
4052
|
var useComponentList = (config, ui) => {
|
3985
|
-
const [componentList, setComponentList] = (0,
|
3986
|
-
(0,
|
4053
|
+
const [componentList, setComponentList] = (0, import_react23.useState)();
|
4054
|
+
(0, import_react23.useEffect)(() => {
|
3987
4055
|
var _a, _b, _c;
|
3988
4056
|
if (Object.keys(ui.componentList).length > 0) {
|
3989
4057
|
const matchedComponents = [];
|
@@ -4052,22 +4120,22 @@ var useComponentList = (config, ui) => {
|
|
4052
4120
|
};
|
4053
4121
|
|
4054
4122
|
// components/Puck/components/Components/index.tsx
|
4055
|
-
var
|
4123
|
+
var import_react24 = require("react");
|
4056
4124
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
4057
4125
|
var Components = () => {
|
4058
4126
|
const { config, state, overrides } = useAppContext();
|
4059
4127
|
const componentList = useComponentList(config, state.ui);
|
4060
|
-
const Wrapper = (0,
|
4128
|
+
const Wrapper = (0, import_react24.useMemo)(() => overrides.components || "div", [overrides]);
|
4061
4129
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ComponentList, { id: "all" }) });
|
4062
4130
|
};
|
4063
4131
|
|
4064
4132
|
// components/Puck/components/Preview/index.tsx
|
4065
4133
|
init_react_import();
|
4066
|
-
var
|
4134
|
+
var import_react26 = require("react");
|
4067
4135
|
|
4068
4136
|
// components/AutoFrame/index.tsx
|
4069
4137
|
init_react_import();
|
4070
|
-
var
|
4138
|
+
var import_react25 = require("react");
|
4071
4139
|
var import_object_hash = __toESM(require("object-hash"));
|
4072
4140
|
var import_react_dom2 = require("react-dom");
|
4073
4141
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
@@ -4113,7 +4181,7 @@ var CopyHostStyles = ({
|
|
4113
4181
|
onStylesLoaded = () => null
|
4114
4182
|
}) => {
|
4115
4183
|
const { document: doc, window: win } = useFrame();
|
4116
|
-
(0,
|
4184
|
+
(0, import_react25.useEffect)(() => {
|
4117
4185
|
if (!win || !doc) {
|
4118
4186
|
return () => {
|
4119
4187
|
};
|
@@ -4272,8 +4340,8 @@ var CopyHostStyles = ({
|
|
4272
4340
|
}, []);
|
4273
4341
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
|
4274
4342
|
};
|
4275
|
-
var autoFrameContext = (0,
|
4276
|
-
var useFrame = () => (0,
|
4343
|
+
var autoFrameContext = (0, import_react25.createContext)({});
|
4344
|
+
var useFrame = () => (0, import_react25.useContext)(autoFrameContext);
|
4277
4345
|
function AutoFrame(_a) {
|
4278
4346
|
var _b = _a, {
|
4279
4347
|
children,
|
@@ -4288,11 +4356,11 @@ function AutoFrame(_a) {
|
|
4288
4356
|
"id",
|
4289
4357
|
"onStylesLoaded"
|
4290
4358
|
]);
|
4291
|
-
const [loaded, setLoaded] = (0,
|
4292
|
-
const [ctx, setCtx] = (0,
|
4293
|
-
const ref = (0,
|
4294
|
-
const [mountTarget, setMountTarget] = (0,
|
4295
|
-
(0,
|
4359
|
+
const [loaded, setLoaded] = (0, import_react25.useState)(false);
|
4360
|
+
const [ctx, setCtx] = (0, import_react25.useState)({});
|
4361
|
+
const ref = (0, import_react25.useRef)(null);
|
4362
|
+
const [mountTarget, setMountTarget] = (0, import_react25.useState)();
|
4363
|
+
(0, import_react25.useEffect)(() => {
|
4296
4364
|
var _a2;
|
4297
4365
|
if (ref.current) {
|
4298
4366
|
setCtx({
|
@@ -4328,7 +4396,7 @@ var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4328
4396
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
4329
4397
|
var Preview = ({ id = "puck-preview" }) => {
|
4330
4398
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
4331
|
-
const Page = (0,
|
4399
|
+
const Page = (0, import_react26.useCallback)(
|
4332
4400
|
(pageProps) => {
|
4333
4401
|
var _a, _b;
|
4334
4402
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -4337,7 +4405,7 @@ var Preview = ({ id = "puck-preview" }) => {
|
|
4337
4405
|
},
|
4338
4406
|
[config.root]
|
4339
4407
|
);
|
4340
|
-
const Frame = (0,
|
4408
|
+
const Frame = (0, import_react26.useMemo)(() => overrides.iframe, [overrides]);
|
4341
4409
|
const rootProps = state.data.root.props || state.data.root;
|
4342
4410
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
4343
4411
|
"div",
|
@@ -4426,7 +4494,7 @@ var scrollIntoView = (el) => {
|
|
4426
4494
|
};
|
4427
4495
|
|
4428
4496
|
// components/LayerTree/index.tsx
|
4429
|
-
var
|
4497
|
+
var import_react27 = require("react");
|
4430
4498
|
|
4431
4499
|
// lib/is-child-of-zone.ts
|
4432
4500
|
init_react_import();
|
@@ -4453,7 +4521,7 @@ var LayerTree = ({
|
|
4453
4521
|
label
|
4454
4522
|
}) => {
|
4455
4523
|
const zones = data.zones || {};
|
4456
|
-
const ctx = (0,
|
4524
|
+
const ctx = (0, import_react27.useContext)(dropZoneContext);
|
4457
4525
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
|
4458
4526
|
label && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: getClassName24("zoneTitle"), children: [
|
4459
4527
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Layers, { size: "16" }) }),
|
@@ -4559,13 +4627,13 @@ var LayerTree = ({
|
|
4559
4627
|
};
|
4560
4628
|
|
4561
4629
|
// components/Puck/components/Outline/index.tsx
|
4562
|
-
var
|
4630
|
+
var import_react28 = require("react");
|
4563
4631
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
4564
4632
|
var Outline = () => {
|
4565
4633
|
const { dispatch, state, overrides, config } = useAppContext();
|
4566
4634
|
const { data, ui } = state;
|
4567
4635
|
const { itemSelector } = ui;
|
4568
|
-
const setItemSelector = (0,
|
4636
|
+
const setItemSelector = (0, import_react28.useCallback)(
|
4569
4637
|
(newItemSelector) => {
|
4570
4638
|
dispatch({
|
4571
4639
|
type: "setUi",
|
@@ -4574,7 +4642,7 @@ var Outline = () => {
|
|
4574
4642
|
},
|
4575
4643
|
[]
|
4576
4644
|
);
|
4577
|
-
const Wrapper = (0,
|
4645
|
+
const Wrapper = (0, import_react28.useMemo)(() => overrides.outline || "div", [overrides]);
|
4578
4646
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Wrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
4579
4647
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
4580
4648
|
LayerTree,
|
@@ -4663,19 +4731,19 @@ function usePuckHistory({
|
|
4663
4731
|
|
4664
4732
|
// lib/use-history-store.ts
|
4665
4733
|
init_react_import();
|
4666
|
-
var
|
4734
|
+
var import_react29 = require("react");
|
4667
4735
|
var import_use_debounce3 = require("use-debounce");
|
4668
4736
|
var EMPTY_HISTORY_INDEX = 0;
|
4669
4737
|
function useHistoryStore(initialHistory) {
|
4670
4738
|
var _a, _b;
|
4671
|
-
const [histories, setHistories] = (0,
|
4739
|
+
const [histories, setHistories] = (0, import_react29.useState)(
|
4672
4740
|
(_a = initialHistory == null ? void 0 : initialHistory.histories) != null ? _a : []
|
4673
4741
|
);
|
4674
4742
|
const updateHistories = (histories2) => {
|
4675
4743
|
setHistories(histories2);
|
4676
4744
|
setIndex(histories2.length - 1);
|
4677
4745
|
};
|
4678
|
-
const [index, setIndex] = (0,
|
4746
|
+
const [index, setIndex] = (0, import_react29.useState)(
|
4679
4747
|
(_b = initialHistory == null ? void 0 : initialHistory.index) != null ? _b : EMPTY_HISTORY_INDEX
|
4680
4748
|
);
|
4681
4749
|
const hasPast = index > EMPTY_HISTORY_INDEX;
|
@@ -4835,11 +4903,11 @@ var getBox = function getBox2(el) {
|
|
4835
4903
|
};
|
4836
4904
|
|
4837
4905
|
// components/Puck/components/Canvas/index.tsx
|
4838
|
-
var
|
4906
|
+
var import_react31 = require("react");
|
4839
4907
|
|
4840
4908
|
// components/ViewportControls/index.tsx
|
4841
4909
|
init_react_import();
|
4842
|
-
var
|
4910
|
+
var import_react30 = require("react");
|
4843
4911
|
|
4844
4912
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
4845
4913
|
init_react_import();
|
@@ -4862,8 +4930,8 @@ var ViewportButton = ({
|
|
4862
4930
|
onClick
|
4863
4931
|
}) => {
|
4864
4932
|
const { state } = useAppContext();
|
4865
|
-
const [isActive, setIsActive] = (0,
|
4866
|
-
(0,
|
4933
|
+
const [isActive, setIsActive] = (0, import_react30.useState)(false);
|
4934
|
+
(0, import_react30.useEffect)(() => {
|
4867
4935
|
setIsActive(width === state.ui.viewports.current.width);
|
4868
4936
|
}, [width, state.ui.viewports.current.width]);
|
4869
4937
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
@@ -4899,7 +4967,7 @@ var ViewportControls = ({
|
|
4899
4967
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
4900
4968
|
(option) => option.value === autoZoom
|
4901
4969
|
);
|
4902
|
-
const zoomOptions = (0,
|
4970
|
+
const zoomOptions = (0, import_react30.useMemo)(
|
4903
4971
|
() => [
|
4904
4972
|
...defaultZoomOptions,
|
4905
4973
|
...defaultsContainAutoZoom ? [] : [
|
@@ -5022,17 +5090,17 @@ var Canvas = () => {
|
|
5022
5090
|
const { status, iframe } = useAppContext();
|
5023
5091
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
5024
5092
|
const { ui } = state;
|
5025
|
-
const frameRef = (0,
|
5026
|
-
const [showTransition, setShowTransition] = (0,
|
5027
|
-
const defaultRender = (0,
|
5093
|
+
const frameRef = (0, import_react31.useRef)(null);
|
5094
|
+
const [showTransition, setShowTransition] = (0, import_react31.useState)(false);
|
5095
|
+
const defaultRender = (0, import_react31.useMemo)(() => {
|
5028
5096
|
const PuckDefault = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children });
|
5029
5097
|
return PuckDefault;
|
5030
5098
|
}, []);
|
5031
|
-
const CustomPreview = (0,
|
5099
|
+
const CustomPreview = (0, import_react31.useMemo)(
|
5032
5100
|
() => overrides.preview || defaultRender,
|
5033
5101
|
[overrides]
|
5034
5102
|
);
|
5035
|
-
const getFrameDimensions = (0,
|
5103
|
+
const getFrameDimensions = (0, import_react31.useCallback)(() => {
|
5036
5104
|
if (frameRef.current) {
|
5037
5105
|
const frame = frameRef.current;
|
5038
5106
|
const box = getBox(frame);
|
@@ -5040,7 +5108,7 @@ var Canvas = () => {
|
|
5040
5108
|
}
|
5041
5109
|
return { width: 0, height: 0 };
|
5042
5110
|
}, [frameRef]);
|
5043
|
-
const resetAutoZoom = (0,
|
5111
|
+
const resetAutoZoom = (0, import_react31.useCallback)(
|
5044
5112
|
(ui2 = state.ui) => {
|
5045
5113
|
if (frameRef.current) {
|
5046
5114
|
setZoomConfig(
|
@@ -5050,11 +5118,11 @@ var Canvas = () => {
|
|
5050
5118
|
},
|
5051
5119
|
[frameRef, zoomConfig, state.ui]
|
5052
5120
|
);
|
5053
|
-
(0,
|
5121
|
+
(0, import_react31.useEffect)(() => {
|
5054
5122
|
setShowTransition(false);
|
5055
5123
|
resetAutoZoom();
|
5056
5124
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
5057
|
-
(0,
|
5125
|
+
(0, import_react31.useEffect)(() => {
|
5058
5126
|
const { height: frameHeight } = getFrameDimensions();
|
5059
5127
|
if (ui.viewports.current.height === "auto") {
|
5060
5128
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -5062,13 +5130,13 @@ var Canvas = () => {
|
|
5062
5130
|
}));
|
5063
5131
|
}
|
5064
5132
|
}, [zoomConfig.zoom]);
|
5065
|
-
(0,
|
5133
|
+
(0, import_react31.useEffect)(() => {
|
5066
5134
|
if (ZOOM_ON_CHANGE) {
|
5067
5135
|
setShowTransition(true);
|
5068
5136
|
resetAutoZoom(ui);
|
5069
5137
|
}
|
5070
5138
|
}, [ui.viewports.current.width]);
|
5071
|
-
(0,
|
5139
|
+
(0, import_react31.useEffect)(() => {
|
5072
5140
|
const observer = new ResizeObserver(() => {
|
5073
5141
|
setShowTransition(false);
|
5074
5142
|
resetAutoZoom();
|
@@ -5080,8 +5148,8 @@ var Canvas = () => {
|
|
5080
5148
|
observer.disconnect();
|
5081
5149
|
};
|
5082
5150
|
}, []);
|
5083
|
-
const [showLoader, setShowLoader] = (0,
|
5084
|
-
(0,
|
5151
|
+
const [showLoader, setShowLoader] = (0, import_react31.useState)(false);
|
5152
|
+
(0, import_react31.useEffect)(() => {
|
5085
5153
|
setTimeout(() => {
|
5086
5154
|
setShowLoader(true);
|
5087
5155
|
}, 500);
|
@@ -5184,7 +5252,7 @@ var insertComponent = (componentType, zone, index, {
|
|
5184
5252
|
|
5185
5253
|
// lib/use-loaded-overrides.ts
|
5186
5254
|
init_react_import();
|
5187
|
-
var
|
5255
|
+
var import_react32 = require("react");
|
5188
5256
|
|
5189
5257
|
// lib/load-overrides.ts
|
5190
5258
|
init_react_import();
|
@@ -5223,7 +5291,7 @@ var useLoadedOverrides = ({
|
|
5223
5291
|
overrides,
|
5224
5292
|
plugins
|
5225
5293
|
}) => {
|
5226
|
-
return (0,
|
5294
|
+
return (0, import_react32.useMemo)(() => {
|
5227
5295
|
return loadOverrides({ overrides, plugins });
|
5228
5296
|
}, [plugins, overrides]);
|
5229
5297
|
};
|
@@ -5262,7 +5330,7 @@ function Puck({
|
|
5262
5330
|
enabled: true,
|
5263
5331
|
waitForStyles: true
|
5264
5332
|
}, _iframe);
|
5265
|
-
const [generatedAppState] = (0,
|
5333
|
+
const [generatedAppState] = (0, import_react33.useState)(() => {
|
5266
5334
|
var _a2, _b, _c, _d, _e, _f, _g, _h, _i;
|
5267
5335
|
const initial = __spreadValues(__spreadValues({}, defaultAppState.ui), initialUi);
|
5268
5336
|
let clientUiState = {};
|
@@ -5334,22 +5402,22 @@ function Puck({
|
|
5334
5402
|
histories,
|
5335
5403
|
index: initialHistoryIndex
|
5336
5404
|
});
|
5337
|
-
const [reducer] = (0,
|
5405
|
+
const [reducer] = (0, import_react33.useState)(
|
5338
5406
|
() => createReducer({
|
5339
5407
|
config,
|
5340
5408
|
record: historyStore.record,
|
5341
5409
|
onAction
|
5342
5410
|
})
|
5343
5411
|
);
|
5344
|
-
const [appState, dispatch] = (0,
|
5412
|
+
const [appState, dispatch] = (0, import_react33.useReducer)(
|
5345
5413
|
reducer,
|
5346
5414
|
flushZones(initialAppState)
|
5347
5415
|
);
|
5348
5416
|
const { data, ui } = appState;
|
5349
5417
|
const history = usePuckHistory({ dispatch, initialAppState, historyStore });
|
5350
|
-
const [menuOpen, setMenuOpen] = (0,
|
5418
|
+
const [menuOpen, setMenuOpen] = (0, import_react33.useState)(false);
|
5351
5419
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
5352
|
-
const setItemSelector = (0,
|
5420
|
+
const setItemSelector = (0, import_react33.useCallback)(
|
5353
5421
|
(newItemSelector) => {
|
5354
5422
|
if (newItemSelector === itemSelector) return;
|
5355
5423
|
dispatch({
|
@@ -5361,13 +5429,13 @@ function Puck({
|
|
5361
5429
|
[itemSelector]
|
5362
5430
|
);
|
5363
5431
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
5364
|
-
(0,
|
5432
|
+
(0, import_react33.useEffect)(() => {
|
5365
5433
|
if (onChange) onChange(data);
|
5366
5434
|
}, [data]);
|
5367
5435
|
const { onDragStartOrUpdate, placeholderStyle } = usePlaceholderStyle();
|
5368
|
-
const [draggedItem, setDraggedItem] = (0,
|
5436
|
+
const [draggedItem, setDraggedItem] = (0, import_react33.useState)();
|
5369
5437
|
const rootProps = data.root.props || data.root;
|
5370
|
-
const toggleSidebars = (0,
|
5438
|
+
const toggleSidebars = (0, import_react33.useCallback)(
|
5371
5439
|
(sidebar) => {
|
5372
5440
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
5373
5441
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -5381,7 +5449,7 @@ function Puck({
|
|
5381
5449
|
},
|
5382
5450
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
5383
5451
|
);
|
5384
|
-
(0,
|
5452
|
+
(0, import_react33.useEffect)(() => {
|
5385
5453
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
5386
5454
|
dispatch({
|
5387
5455
|
type: "setUi",
|
@@ -5404,7 +5472,7 @@ function Puck({
|
|
5404
5472
|
window.removeEventListener("resize", handleResize);
|
5405
5473
|
};
|
5406
5474
|
}, []);
|
5407
|
-
const defaultHeaderRender = (0,
|
5475
|
+
const defaultHeaderRender = (0, import_react33.useMemo)(() => {
|
5408
5476
|
if (renderHeader) {
|
5409
5477
|
console.warn(
|
5410
5478
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -5418,7 +5486,7 @@ function Puck({
|
|
5418
5486
|
}
|
5419
5487
|
return DefaultOverride;
|
5420
5488
|
}, [renderHeader]);
|
5421
|
-
const defaultHeaderActionsRender = (0,
|
5489
|
+
const defaultHeaderActionsRender = (0, import_react33.useMemo)(() => {
|
5422
5490
|
if (renderHeaderActions) {
|
5423
5491
|
console.warn(
|
5424
5492
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -5435,20 +5503,20 @@ function Puck({
|
|
5435
5503
|
overrides,
|
5436
5504
|
plugins
|
5437
5505
|
});
|
5438
|
-
const CustomPuck = (0,
|
5506
|
+
const CustomPuck = (0, import_react33.useMemo)(
|
5439
5507
|
() => loadedOverrides.puck || DefaultOverride,
|
5440
5508
|
[loadedOverrides]
|
5441
5509
|
);
|
5442
|
-
const CustomHeader = (0,
|
5510
|
+
const CustomHeader = (0, import_react33.useMemo)(
|
5443
5511
|
() => loadedOverrides.header || defaultHeaderRender,
|
5444
5512
|
[loadedOverrides]
|
5445
5513
|
);
|
5446
|
-
const CustomHeaderActions = (0,
|
5514
|
+
const CustomHeaderActions = (0, import_react33.useMemo)(
|
5447
5515
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
5448
5516
|
[loadedOverrides]
|
5449
5517
|
);
|
5450
|
-
const [mounted, setMounted] = (0,
|
5451
|
-
(0,
|
5518
|
+
const [mounted, setMounted] = (0, import_react33.useState)(false);
|
5519
|
+
(0, import_react33.useEffect)(() => {
|
5452
5520
|
setMounted(true);
|
5453
5521
|
}, []);
|
5454
5522
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|
package/dist/index.mjs
CHANGED
@@ -178,14 +178,13 @@ init_react_import();
|
|
178
178
|
|
179
179
|
// css-module:/home/runner/work/puck/puck/packages/core/components/AutoField/styles.module.css#css-module
|
180
180
|
init_react_import();
|
181
|
-
var styles_module_default2 = { "Input": "
|
181
|
+
var styles_module_default2 = { "InputWrapper": "_InputWrapper_1l5m8_1", "Input": "_Input_1l5m8_1", "Input-label": "_Input-label_1l5m8_26", "Input-labelIcon": "_Input-labelIcon_1l5m8_35", "Input-disabledIcon": "_Input-disabledIcon_1l5m8_42", "Input-input": "_Input-input_1l5m8_47", "Input--readOnly": "_Input--readOnly_1l5m8_91", "Input-radioGroupItems": "_Input-radioGroupItems_1l5m8_102", "Input-radio": "_Input-radio_1l5m8_102", "Input-radioInner": "_Input-radioInner_1l5m8_119", "Input-radioInput": "_Input-radioInput_1l5m8_164" };
|
182
182
|
|
183
183
|
// components/AutoField/index.tsx
|
184
184
|
import {
|
185
185
|
useCallback as useCallback5,
|
186
186
|
useEffect as useEffect9,
|
187
187
|
useMemo as useMemo2,
|
188
|
-
useRef as useRef2,
|
189
188
|
useState as useState10
|
190
189
|
} from "react";
|
191
190
|
|
@@ -880,7 +879,8 @@ var defaultAppState = {
|
|
880
879
|
},
|
881
880
|
options: [],
|
882
881
|
controlsVisible: true
|
883
|
-
}
|
882
|
+
},
|
883
|
+
field: { focus: null }
|
884
884
|
}
|
885
885
|
};
|
886
886
|
var defaultContext = {
|
@@ -1228,11 +1228,13 @@ var ArrayField = ({
|
|
1228
1228
|
event.source.index,
|
1229
1229
|
(_b = event.destination) == null ? void 0 : _b.index
|
1230
1230
|
);
|
1231
|
-
|
1231
|
+
const newUi = {
|
1232
1232
|
arrayState: __spreadProps(__spreadValues({}, state.ui.arrayState), {
|
1233
1233
|
[id]: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
1234
1234
|
})
|
1235
|
-
}
|
1235
|
+
};
|
1236
|
+
setUi(newUi, false);
|
1237
|
+
onChange(newValue, newUi);
|
1236
1238
|
setLocalState({
|
1237
1239
|
value: newValue,
|
1238
1240
|
arrayState: __spreadProps(__spreadValues({}, arrayState), { items: newArrayStateItems })
|
@@ -1298,32 +1300,60 @@ var ArrayField = ({
|
|
1298
1300
|
children: [
|
1299
1301
|
field.getItemSummary ? field.getItemSummary(data, i) : `Item #${_originalIndex}`,
|
1300
1302
|
/* @__PURE__ */ jsxs4("div", { className: getClassNameItem("rhs"), children: [
|
1301
|
-
!readOnly && /* @__PURE__ */
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
e
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1303
|
+
!readOnly && /* @__PURE__ */ jsxs4("div", { className: getClassNameItem("actions"), children: [
|
1304
|
+
/* @__PURE__ */ jsx9("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ jsx9(
|
1305
|
+
IconButton,
|
1306
|
+
{
|
1307
|
+
type: "button",
|
1308
|
+
disabled: !!addDisabled,
|
1309
|
+
onClick: (e) => {
|
1310
|
+
e.stopPropagation();
|
1311
|
+
const existingValue = [
|
1312
|
+
...value || []
|
1313
|
+
];
|
1314
|
+
existingValue.splice(
|
1315
|
+
i,
|
1316
|
+
0,
|
1317
|
+
existingValue[i]
|
1318
|
+
);
|
1319
|
+
onChange(
|
1320
|
+
existingValue,
|
1321
|
+
mapArrayStateToUi(
|
1322
|
+
regenerateArrayState(existingValue)
|
1323
|
+
)
|
1324
|
+
);
|
1325
|
+
},
|
1326
|
+
title: "Duplicate",
|
1327
|
+
children: /* @__PURE__ */ jsx9(Copy, { size: 16 })
|
1328
|
+
}
|
1329
|
+
) }),
|
1330
|
+
/* @__PURE__ */ jsx9("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ jsx9(
|
1331
|
+
IconButton,
|
1332
|
+
{
|
1333
|
+
type: "button",
|
1334
|
+
disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
|
1335
|
+
onClick: (e) => {
|
1336
|
+
e.stopPropagation();
|
1337
|
+
const existingValue = [
|
1338
|
+
...value || []
|
1339
|
+
];
|
1340
|
+
const existingItems = [
|
1341
|
+
...arrayState.items || []
|
1342
|
+
];
|
1343
|
+
existingValue.splice(i, 1);
|
1344
|
+
existingItems.splice(i, 1);
|
1345
|
+
onChange(
|
1346
|
+
existingValue,
|
1347
|
+
mapArrayStateToUi({
|
1348
|
+
items: existingItems
|
1349
|
+
})
|
1350
|
+
);
|
1351
|
+
},
|
1352
|
+
title: "Delete",
|
1353
|
+
children: /* @__PURE__ */ jsx9(Trash, { size: 16 })
|
1354
|
+
}
|
1355
|
+
) })
|
1356
|
+
] }),
|
1327
1357
|
/* @__PURE__ */ jsx9("div", { children: /* @__PURE__ */ jsx9(DragIcon, {}) })
|
1328
1358
|
] })
|
1329
1359
|
]
|
@@ -2060,6 +2090,7 @@ var useSafeId = () => {
|
|
2060
2090
|
// components/AutoField/index.tsx
|
2061
2091
|
import { Fragment as Fragment8, jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
2062
2092
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
|
2093
|
+
var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
|
2063
2094
|
var FieldLabel = ({
|
2064
2095
|
children,
|
2065
2096
|
icon,
|
@@ -2107,7 +2138,7 @@ var FieldLabelInternal2 = ({
|
|
2107
2138
|
};
|
2108
2139
|
function AutoFieldInternal(props) {
|
2109
2140
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2110
|
-
const { overrides } = useAppContext();
|
2141
|
+
const { dispatch, overrides } = useAppContext();
|
2111
2142
|
const { id, Label = FieldLabelInternal2 } = props;
|
2112
2143
|
const field = props.field;
|
2113
2144
|
const label = field.label;
|
@@ -2139,23 +2170,45 @@ function AutoFieldInternal(props) {
|
|
2139
2170
|
Label,
|
2140
2171
|
id: resolvedId
|
2141
2172
|
});
|
2173
|
+
const onFocus = useCallback5(
|
2174
|
+
(e) => {
|
2175
|
+
if (mergedProps.name && e.target.nodeName === "INPUT") {
|
2176
|
+
e.stopPropagation();
|
2177
|
+
dispatch({
|
2178
|
+
type: "setUi",
|
2179
|
+
ui: {
|
2180
|
+
field: { focus: mergedProps.name }
|
2181
|
+
}
|
2182
|
+
});
|
2183
|
+
}
|
2184
|
+
},
|
2185
|
+
[mergedProps.name]
|
2186
|
+
);
|
2187
|
+
const onBlur = useCallback5((e) => {
|
2188
|
+
if ("name" in e.target) {
|
2189
|
+
dispatch({
|
2190
|
+
type: "setUi",
|
2191
|
+
ui: {
|
2192
|
+
field: { focus: null }
|
2193
|
+
}
|
2194
|
+
});
|
2195
|
+
}
|
2196
|
+
}, []);
|
2142
2197
|
if (field.type === "custom") {
|
2143
2198
|
if (!field.render) {
|
2144
2199
|
return null;
|
2145
2200
|
}
|
2146
2201
|
const CustomField = field.render;
|
2147
|
-
return /* @__PURE__ */ jsx20("div", { className: getClassName15(), children: /* @__PURE__ */ jsx20(CustomField, __spreadValues({}, mergedProps)) });
|
2202
|
+
return /* @__PURE__ */ jsx20("div", { className: getClassNameWrapper(), onFocus, onBlur, children: /* @__PURE__ */ jsx20("div", { className: getClassName15(), children: /* @__PURE__ */ jsx20(CustomField, __spreadValues({}, mergedProps)) }) });
|
2148
2203
|
}
|
2149
2204
|
const children = defaultFields[field.type](mergedProps);
|
2150
2205
|
const Render2 = render[field.type];
|
2151
|
-
return /* @__PURE__ */ jsx20(Render2, __spreadProps(__spreadValues({}, mergedProps), { children }));
|
2206
|
+
return /* @__PURE__ */ jsx20("div", { className: getClassNameWrapper(), onFocus, onBlur, children: /* @__PURE__ */ jsx20(Render2, __spreadProps(__spreadValues({}, mergedProps), { children })) });
|
2152
2207
|
}
|
2153
|
-
var RECENT_CHANGE_TIMEOUT = 200;
|
2154
2208
|
function AutoFieldPrivate(props) {
|
2209
|
+
const { state } = useAppContext();
|
2155
2210
|
const { value, onChange } = props;
|
2156
2211
|
const [localValue, setLocalValue] = useState10(value);
|
2157
|
-
const [recentlyChanged, setRecentlyChanged] = useState10(false);
|
2158
|
-
const timeoutRef = useRef2();
|
2159
2212
|
const onChangeDb = useDebouncedCallback(
|
2160
2213
|
(val, ui) => {
|
2161
2214
|
onChange(val, ui);
|
@@ -2165,15 +2218,10 @@ function AutoFieldPrivate(props) {
|
|
2165
2218
|
);
|
2166
2219
|
const onChangeLocal = useCallback5((val, ui) => {
|
2167
2220
|
setLocalValue(val);
|
2168
|
-
setRecentlyChanged(true);
|
2169
|
-
clearTimeout(timeoutRef.current);
|
2170
|
-
timeoutRef.current = setTimeout(() => {
|
2171
|
-
setRecentlyChanged(false);
|
2172
|
-
}, RECENT_CHANGE_TIMEOUT);
|
2173
2221
|
onChangeDb(val, ui);
|
2174
2222
|
}, []);
|
2175
2223
|
useEffect9(() => {
|
2176
|
-
if (
|
2224
|
+
if (state.ui.field.focus !== props.name) {
|
2177
2225
|
setLocalValue(value);
|
2178
2226
|
}
|
2179
2227
|
}, [value]);
|
@@ -3524,6 +3572,22 @@ var styles_module_default16 = { "PuckFields": "_PuckFields_jp3lw_1", "PuckFields
|
|
3524
3572
|
|
3525
3573
|
// components/Puck/components/Fields/index.tsx
|
3526
3574
|
import { useCallback as useCallback7, useEffect as useEffect13, useMemo as useMemo6, useState as useState15 } from "react";
|
3575
|
+
|
3576
|
+
// lib/use-parent.ts
|
3577
|
+
init_react_import();
|
3578
|
+
import { useContext as useContext5 } from "react";
|
3579
|
+
var useParent = (itemSelector) => {
|
3580
|
+
var _a;
|
3581
|
+
const { selectedItem, state } = useAppContext();
|
3582
|
+
const { pathData } = useContext5(dropZoneContext) || {};
|
3583
|
+
const item = itemSelector ? getItem(itemSelector, state.data) : selectedItem;
|
3584
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
3585
|
+
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
3586
|
+
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, state.data)) != null ? _a : null : null;
|
3587
|
+
return parent || null;
|
3588
|
+
};
|
3589
|
+
|
3590
|
+
// components/Puck/components/Fields/index.tsx
|
3527
3591
|
import { Fragment as Fragment12, jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
|
3528
3592
|
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
3529
3593
|
var defaultPageFields = {
|
@@ -3537,6 +3601,7 @@ var DefaultFields = ({
|
|
3537
3601
|
var useResolvedFields = () => {
|
3538
3602
|
var _a, _b;
|
3539
3603
|
const { selectedItem, state, config } = useAppContext();
|
3604
|
+
const parent = useParent();
|
3540
3605
|
const { data } = state;
|
3541
3606
|
const rootFields = ((_a = config.root) == null ? void 0 : _a.fields) || defaultPageFields;
|
3542
3607
|
const componentConfig = selectedItem ? config.components[selectedItem.type] : null;
|
@@ -3567,7 +3632,8 @@ var useResolvedFields = () => {
|
|
3567
3632
|
fields,
|
3568
3633
|
lastFields: resolvedFields,
|
3569
3634
|
lastData,
|
3570
|
-
appState: state
|
3635
|
+
appState: state,
|
3636
|
+
parent
|
3571
3637
|
}
|
3572
3638
|
);
|
3573
3639
|
}
|
@@ -3577,7 +3643,8 @@ var useResolvedFields = () => {
|
|
3577
3643
|
fields,
|
3578
3644
|
lastFields: resolvedFields,
|
3579
3645
|
lastData,
|
3580
|
-
appState: state
|
3646
|
+
appState: state,
|
3647
|
+
parent
|
3581
3648
|
});
|
3582
3649
|
}
|
3583
3650
|
return defaultResolveFields(componentData, {
|
@@ -3599,7 +3666,7 @@ var useResolvedFields = () => {
|
|
3599
3666
|
} else {
|
3600
3667
|
setResolvedFields(defaultFields);
|
3601
3668
|
}
|
3602
|
-
}, [data, defaultFields,
|
3669
|
+
}, [data, defaultFields, selectedItem, hasResolver]);
|
3603
3670
|
return [resolvedFields, fieldsLoading];
|
3604
3671
|
};
|
3605
3672
|
var Fields = () => {
|
@@ -3906,7 +3973,7 @@ import { useCallback as useCallback8, useMemo as useMemo8 } from "react";
|
|
3906
3973
|
init_react_import();
|
3907
3974
|
import {
|
3908
3975
|
createContext as createContext4,
|
3909
|
-
useContext as
|
3976
|
+
useContext as useContext6,
|
3910
3977
|
useEffect as useEffect15,
|
3911
3978
|
useRef as useRef3,
|
3912
3979
|
useState as useState17
|
@@ -4116,7 +4183,7 @@ var CopyHostStyles = ({
|
|
4116
4183
|
return /* @__PURE__ */ jsx31(Fragment13, { children });
|
4117
4184
|
};
|
4118
4185
|
var autoFrameContext = createContext4({});
|
4119
|
-
var useFrame = () =>
|
4186
|
+
var useFrame = () => useContext6(autoFrameContext);
|
4120
4187
|
function AutoFrame(_a) {
|
4121
4188
|
var _b = _a, {
|
4122
4189
|
children,
|
@@ -4269,7 +4336,7 @@ var scrollIntoView = (el) => {
|
|
4269
4336
|
};
|
4270
4337
|
|
4271
4338
|
// components/LayerTree/index.tsx
|
4272
|
-
import { useContext as
|
4339
|
+
import { useContext as useContext7 } from "react";
|
4273
4340
|
|
4274
4341
|
// lib/is-child-of-zone.ts
|
4275
4342
|
init_react_import();
|
@@ -4296,7 +4363,7 @@ var LayerTree = ({
|
|
4296
4363
|
label
|
4297
4364
|
}) => {
|
4298
4365
|
const zones = data.zones || {};
|
4299
|
-
const ctx =
|
4366
|
+
const ctx = useContext7(dropZoneContext);
|
4300
4367
|
return /* @__PURE__ */ jsxs17(Fragment15, { children: [
|
4301
4368
|
label && /* @__PURE__ */ jsxs17("div", { className: getClassName24("zoneTitle"), children: [
|
4302
4369
|
/* @__PURE__ */ jsx33("div", { className: getClassName24("zoneIcon"), children: /* @__PURE__ */ jsx33(Layers, { size: "16" }) }),
|
@@ -145,6 +145,7 @@ type ComponentConfig<RenderProps extends DefaultComponentProps = DefaultComponen
|
|
145
145
|
lastFields: Fields<FieldProps>;
|
146
146
|
lastData: DataShape | null;
|
147
147
|
appState: AppState;
|
148
|
+
parent: ComponentData | null;
|
148
149
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
149
150
|
resolveData?: (data: DataShape, params: {
|
150
151
|
changed: Partial<Record<keyof FieldProps, boolean>>;
|
@@ -274,6 +275,9 @@ type UiState = {
|
|
274
275
|
controlsVisible: boolean;
|
275
276
|
options: Viewport[];
|
276
277
|
};
|
278
|
+
field: {
|
279
|
+
focus?: string | null;
|
280
|
+
};
|
277
281
|
};
|
278
282
|
type AppState<UserData extends Data = Data> = {
|
279
283
|
data: UserData;
|
@@ -145,6 +145,7 @@ type ComponentConfig<RenderProps extends DefaultComponentProps = DefaultComponen
|
|
145
145
|
lastFields: Fields<FieldProps>;
|
146
146
|
lastData: DataShape | null;
|
147
147
|
appState: AppState;
|
148
|
+
parent: ComponentData | null;
|
148
149
|
}) => Promise<Fields<FieldProps>> | Fields<FieldProps>;
|
149
150
|
resolveData?: (data: DataShape, params: {
|
150
151
|
changed: Partial<Record<keyof FieldProps, boolean>>;
|
@@ -274,6 +275,9 @@ type UiState = {
|
|
274
275
|
controlsVisible: boolean;
|
275
276
|
options: Viewport[];
|
276
277
|
};
|
278
|
+
field: {
|
279
|
+
focus?: string | null;
|
280
|
+
};
|
277
281
|
};
|
278
282
|
type AppState<UserData extends Data = Data> = {
|
279
283
|
data: UserData;
|
package/dist/rsc.d.mts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
2
|
-
import { C as Config, D as Data } from './resolve-all-data-
|
3
|
-
export { a4 as resolveAllData } from './resolve-all-data-
|
2
|
+
import { C as Config, D as Data } from './resolve-all-data-C7aAQCY3.mjs';
|
3
|
+
export { a4 as resolveAllData } from './resolve-all-data-C7aAQCY3.mjs';
|
4
4
|
import 'react';
|
5
5
|
|
6
6
|
declare function Render<UserConfig extends Config = Config>({ config, data, }: {
|
package/dist/rsc.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
2
|
-
import { C as Config, D as Data } from './resolve-all-data-
|
3
|
-
export { a4 as resolveAllData } from './resolve-all-data-
|
2
|
+
import { C as Config, D as Data } from './resolve-all-data-C7aAQCY3.js';
|
3
|
+
export { a4 as resolveAllData } from './resolve-all-data-C7aAQCY3.js';
|
4
4
|
import 'react';
|
5
5
|
|
6
6
|
declare function Render<UserConfig extends Config = Config>({ config, data, }: {
|
package/package.json
CHANGED