@measured/puck 0.17.0-canary.229cbdd → 0.17.0-canary.35170f8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.css +33 -33
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +37 -16
- package/dist/index.mjs +37 -17
- package/dist/{resolve-all-data-Bd3DnhYE.d.mts → resolve-all-data-Ch-Pcasj.d.mts} +3 -0
- package/dist/{resolve-all-data-Bd3DnhYE.d.ts → resolve-all-data-Ch-Pcasj.d.ts} +3 -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-Ch-Pcasj.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-Ch-Pcasj.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-Ch-Pcasj.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-Ch-Pcasj.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 })
|
@@ -2269,6 +2272,7 @@ var useSafeId = () => {
|
|
2269
2272
|
// components/AutoField/index.tsx
|
2270
2273
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
2271
2274
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
|
2275
|
+
var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
|
2272
2276
|
var FieldLabel = ({
|
2273
2277
|
children,
|
2274
2278
|
icon,
|
@@ -2316,7 +2320,7 @@ var FieldLabelInternal2 = ({
|
|
2316
2320
|
};
|
2317
2321
|
function AutoFieldInternal(props) {
|
2318
2322
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2319
|
-
const { overrides } = useAppContext();
|
2323
|
+
const { dispatch, overrides } = useAppContext();
|
2320
2324
|
const { id, Label = FieldLabelInternal2 } = props;
|
2321
2325
|
const field = props.field;
|
2322
2326
|
const label = field.label;
|
@@ -2348,23 +2352,45 @@ function AutoFieldInternal(props) {
|
|
2348
2352
|
Label,
|
2349
2353
|
id: resolvedId
|
2350
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
|
+
}, []);
|
2351
2379
|
if (field.type === "custom") {
|
2352
2380
|
if (!field.render) {
|
2353
2381
|
return null;
|
2354
2382
|
}
|
2355
2383
|
const CustomField = field.render;
|
2356
|
-
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)) }) });
|
2357
2385
|
}
|
2358
2386
|
const children = defaultFields[field.type](mergedProps);
|
2359
2387
|
const Render2 = render[field.type];
|
2360
|
-
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 })) });
|
2361
2389
|
}
|
2362
|
-
var RECENT_CHANGE_TIMEOUT = 200;
|
2363
2390
|
function AutoFieldPrivate(props) {
|
2391
|
+
const { state } = useAppContext();
|
2364
2392
|
const { value, onChange } = props;
|
2365
2393
|
const [localValue, setLocalValue] = (0, import_react13.useState)(value);
|
2366
|
-
const [recentlyChanged, setRecentlyChanged] = (0, import_react13.useState)(false);
|
2367
|
-
const timeoutRef = (0, import_react13.useRef)();
|
2368
2394
|
const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
|
2369
2395
|
(val, ui) => {
|
2370
2396
|
onChange(val, ui);
|
@@ -2374,15 +2400,10 @@ function AutoFieldPrivate(props) {
|
|
2374
2400
|
);
|
2375
2401
|
const onChangeLocal = (0, import_react13.useCallback)((val, ui) => {
|
2376
2402
|
setLocalValue(val);
|
2377
|
-
setRecentlyChanged(true);
|
2378
|
-
clearTimeout(timeoutRef.current);
|
2379
|
-
timeoutRef.current = setTimeout(() => {
|
2380
|
-
setRecentlyChanged(false);
|
2381
|
-
}, RECENT_CHANGE_TIMEOUT);
|
2382
2403
|
onChangeDb(val, ui);
|
2383
2404
|
}, []);
|
2384
2405
|
(0, import_react13.useEffect)(() => {
|
2385
|
-
if (
|
2406
|
+
if (state.ui.field.focus !== props.name) {
|
2386
2407
|
setLocalValue(value);
|
2387
2408
|
}
|
2388
2409
|
}, [value]);
|
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 })
|
@@ -2088,6 +2090,7 @@ var useSafeId = () => {
|
|
2088
2090
|
// components/AutoField/index.tsx
|
2089
2091
|
import { Fragment as Fragment8, jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
2090
2092
|
var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
|
2093
|
+
var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
|
2091
2094
|
var FieldLabel = ({
|
2092
2095
|
children,
|
2093
2096
|
icon,
|
@@ -2135,7 +2138,7 @@ var FieldLabelInternal2 = ({
|
|
2135
2138
|
};
|
2136
2139
|
function AutoFieldInternal(props) {
|
2137
2140
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
2138
|
-
const { overrides } = useAppContext();
|
2141
|
+
const { dispatch, overrides } = useAppContext();
|
2139
2142
|
const { id, Label = FieldLabelInternal2 } = props;
|
2140
2143
|
const field = props.field;
|
2141
2144
|
const label = field.label;
|
@@ -2167,23 +2170,45 @@ function AutoFieldInternal(props) {
|
|
2167
2170
|
Label,
|
2168
2171
|
id: resolvedId
|
2169
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
|
+
}, []);
|
2170
2197
|
if (field.type === "custom") {
|
2171
2198
|
if (!field.render) {
|
2172
2199
|
return null;
|
2173
2200
|
}
|
2174
2201
|
const CustomField = field.render;
|
2175
|
-
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)) }) });
|
2176
2203
|
}
|
2177
2204
|
const children = defaultFields[field.type](mergedProps);
|
2178
2205
|
const Render2 = render[field.type];
|
2179
|
-
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 })) });
|
2180
2207
|
}
|
2181
|
-
var RECENT_CHANGE_TIMEOUT = 200;
|
2182
2208
|
function AutoFieldPrivate(props) {
|
2209
|
+
const { state } = useAppContext();
|
2183
2210
|
const { value, onChange } = props;
|
2184
2211
|
const [localValue, setLocalValue] = useState10(value);
|
2185
|
-
const [recentlyChanged, setRecentlyChanged] = useState10(false);
|
2186
|
-
const timeoutRef = useRef2();
|
2187
2212
|
const onChangeDb = useDebouncedCallback(
|
2188
2213
|
(val, ui) => {
|
2189
2214
|
onChange(val, ui);
|
@@ -2193,15 +2218,10 @@ function AutoFieldPrivate(props) {
|
|
2193
2218
|
);
|
2194
2219
|
const onChangeLocal = useCallback5((val, ui) => {
|
2195
2220
|
setLocalValue(val);
|
2196
|
-
setRecentlyChanged(true);
|
2197
|
-
clearTimeout(timeoutRef.current);
|
2198
|
-
timeoutRef.current = setTimeout(() => {
|
2199
|
-
setRecentlyChanged(false);
|
2200
|
-
}, RECENT_CHANGE_TIMEOUT);
|
2201
2221
|
onChangeDb(val, ui);
|
2202
2222
|
}, []);
|
2203
2223
|
useEffect9(() => {
|
2204
|
-
if (
|
2224
|
+
if (state.ui.field.focus !== props.name) {
|
2205
2225
|
setLocalValue(value);
|
2206
2226
|
}
|
2207
2227
|
}, [value]);
|
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-Ch-Pcasj.mjs';
|
3
|
+
export { a4 as resolveAllData } from './resolve-all-data-Ch-Pcasj.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-Ch-Pcasj.js';
|
3
|
+
export { a4 as resolveAllData } from './resolve-all-data-Ch-Pcasj.js';
|
4
4
|
import 'react';
|
5
5
|
|
6
6
|
declare function Render<UserConfig extends Config = Config>({ config, data, }: {
|
package/package.json
CHANGED