@measured/puck 0.16.3-canary.af421c6 → 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 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
- ._Input_3pq3z_1 {
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
- ._Input_3pq3z_1 ._Input_3pq3z_1 {
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
- ._Input_3pq3z_1 * {
220
+ ._Input_1l5m8_1 * {
217
221
  box-sizing: border-box;
218
222
  }
219
- ._Input_3pq3z_1 + ._Input_3pq3z_1 {
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-label_3pq3z_26 {
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-labelIcon_3pq3z_35 {
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-disabledIcon_3pq3z_42 {
241
+ ._Input-disabledIcon_1l5m8_42 {
242
242
  color: var(--puck-color-grey-05);
243
243
  margin-left: auto;
244
244
  }
245
- ._Input-input_3pq3z_47 {
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-input_3pq3z_47 {
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
- ._Input_3pq3z_1:has(> input):hover ._Input-input_3pq3z_47:not([readonly]),
268
- ._Input_3pq3z_1:has(> textarea):hover ._Input-input_3pq3z_47:not([readonly]) {
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
- ._Input_3pq3z_1:has(> select):hover ._Input-input_3pq3z_47:not([disabled]) {
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-input_3pq3z_47:focus {
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--readOnly_3pq3z_91 > ._Input-input_3pq3z_47,
285
- ._Input--readOnly_3pq3z_91 > select._Input-input_3pq3z_47 {
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-radioGroupItems_3pq3z_102 {
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-radio_3pq3z_102 {
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-radio_3pq3z_102:first-of-type {
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-radio_3pq3z_102:first-of-type ._Input-radioInner_3pq3z_119 {
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-radio_3pq3z_102:last-of-type {
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-radio_3pq3z_102:last-of-type ._Input-radioInner_3pq3z_119 {
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-radioInner_3pq3z_119 {
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-radio_3pq3z_102:has(:focus-visible) {
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-radioInner_3pq3z_119:hover {
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--readOnly_3pq3z_91 ._Input-radioInner_3pq3z_119 {
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-radio_3pq3z_102 ._Input-radioInput_3pq3z_164:checked ~ ._Input-radioInner_3pq3z_119 {
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--readOnly_3pq3z_91 ._Input-radioInput_3pq3z_164:checked ~ ._Input-radioInner_3pq3z_119 {
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-radio_3pq3z_102 ._Input-radioInput_3pq3z_164 {
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-input_3pq3z_47 {
364
+ textarea._Input-input_1l5m8_47 {
365
365
  margin-bottom: -4px;
366
366
  }
367
367
 
@@ -607,10 +607,10 @@ textarea._Input-input_3pq3z_47 {
607
607
  }
608
608
 
609
609
  /* css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css/#css-module-data */
610
- ._ExternalInput-actions_wprq3_1 {
610
+ ._ExternalInput-actions_8wgzm_1 {
611
611
  display: flex;
612
612
  }
613
- ._ExternalInput-button_wprq3_5 {
613
+ ._ExternalInput-button_8wgzm_5 {
614
614
  display: flex;
615
615
  gap: 8px;
616
616
  align-items: center;
@@ -628,16 +628,16 @@ textarea._Input-input_3pq3z_47 {
628
628
  overflow: hidden;
629
629
  flex-grow: 1;
630
630
  }
631
- ._ExternalInput--dataSelected_wprq3_24 ._ExternalInput-button_wprq3_5 {
631
+ ._ExternalInput--dataSelected_8wgzm_24 ._ExternalInput-button_8wgzm_5 {
632
632
  color: var(--puck-color-grey-03);
633
633
  display: block;
634
634
  border-top-right-radius: 0px;
635
635
  border-bottom-right-radius: 0px;
636
636
  }
637
- ._ExternalInput--readOnly_wprq3_31 ._ExternalInput-button_wprq3_5 {
637
+ ._ExternalInput--readOnly_8wgzm_31 ._ExternalInput-button_8wgzm_5 {
638
638
  background-color: var(--puck-color-grey-11);
639
639
  }
640
- ._ExternalInput-detachButton_wprq3_35 {
640
+ ._ExternalInput-detachButton_8wgzm_35 {
641
641
  border: 1px solid var(--puck-color-grey-09);
642
642
  border-top-right-radius: 4px;
643
643
  border-bottom-right-radius: 4px;
@@ -652,28 +652,28 @@ textarea._Input-input_3pq3z_47 {
652
652
  transition: background-color 50ms ease-in, color 50ms ease-in;
653
653
  margin-left: -1px;
654
654
  }
655
- ._ExternalInput-button_wprq3_5:focus-visible,
656
- ._ExternalInput-detachButton_wprq3_35:focus-visible {
655
+ ._ExternalInput-button_8wgzm_5:focus-visible,
656
+ ._ExternalInput-detachButton_8wgzm_35:focus-visible {
657
657
  outline: 2px solid var(--puck-color-azure-05);
658
658
  outline-offset: 2px;
659
659
  z-index: 1;
660
660
  }
661
661
  @media (hover: hover) and (pointer: fine) {
662
- ._ExternalInput_wprq3_1:not(._ExternalInput--readOnly_wprq3_31) ._ExternalInput-button_wprq3_5:hover,
663
- ._ExternalInput_wprq3_1:not(._ExternalInput--readOnly_wprq3_31) ._ExternalInput-detachButton_wprq3_35:hover {
662
+ ._ExternalInput_8wgzm_1:not(._ExternalInput--readOnly_8wgzm_31) ._ExternalInput-button_8wgzm_5:hover,
663
+ ._ExternalInput_8wgzm_1:not(._ExternalInput--readOnly_8wgzm_31) ._ExternalInput-detachButton_8wgzm_35:hover {
664
664
  background: var(--puck-color-azure-12);
665
665
  transition: none;
666
666
  }
667
- ._ExternalInput_wprq3_1:not(._ExternalInput--readOnly_wprq3_31) ._ExternalInput-detachButton_wprq3_35:hover {
667
+ ._ExternalInput_8wgzm_1:not(._ExternalInput--readOnly_8wgzm_31) ._ExternalInput-detachButton_8wgzm_35:hover {
668
668
  color: var(--puck-color-azure-04);
669
669
  }
670
670
  }
671
- ._ExternalInput_wprq3_1:not(._ExternalInput--readOnly_wprq3_31) ._ExternalInput-button_wprq3_5:active,
672
- ._ExternalInput_wprq3_1:not(._ExternalInput--readOnly_wprq3_31) ._ExternalInput-detachButton_wprq3_35:active {
671
+ ._ExternalInput_8wgzm_1:not(._ExternalInput--readOnly_8wgzm_31) ._ExternalInput-button_8wgzm_5:active,
672
+ ._ExternalInput_8wgzm_1:not(._ExternalInput--readOnly_8wgzm_31) ._ExternalInput-detachButton_8wgzm_35:active {
673
673
  background: var(--puck-color-azure-11);
674
674
  transition: none;
675
675
  }
676
- ._ExternalInputModal_wprq3_79 {
676
+ ._ExternalInputModal_8wgzm_79 {
677
677
  color: var(--puck-color-black);
678
678
  display: grid;
679
679
  grid-template-rows: min-content minmax(128px, 100%) min-content;
@@ -682,35 +682,35 @@ textarea._Input-input_3pq3z_47 {
682
682
  min-height: 50dvh;
683
683
  max-height: 90dvh;
684
684
  }
685
- ._ExternalInputModal-grid_wprq3_89 {
685
+ ._ExternalInputModal-grid_8wgzm_89 {
686
686
  display: flex;
687
687
  flex-direction: column;
688
688
  }
689
689
  @media (min-width: 458px) {
690
- ._ExternalInputModal-grid_wprq3_89 {
690
+ ._ExternalInputModal-grid_8wgzm_89 {
691
691
  display: grid;
692
692
  grid-template-columns: 100%;
693
693
  }
694
- ._ExternalInputModal--filtersToggled_wprq3_100 ._ExternalInputModal-grid_wprq3_89 {
694
+ ._ExternalInputModal--filtersToggled_8wgzm_100 ._ExternalInputModal-grid_8wgzm_89 {
695
695
  grid-template-columns: 25% 75%;
696
696
  }
697
697
  }
698
- ._ExternalInputModal-filters_wprq3_105 {
698
+ ._ExternalInputModal-filters_8wgzm_105 {
699
699
  border-bottom: 1px solid var(--puck-color-grey-09);
700
700
  }
701
- ._ExternalInputModal--filtersToggled_wprq3_100 ._ExternalInputModal-filters_wprq3_105 {
701
+ ._ExternalInputModal--filtersToggled_8wgzm_100 ._ExternalInputModal-filters_8wgzm_105 {
702
702
  display: none;
703
703
  }
704
704
  @media (min-width: 458px) {
705
- ._ExternalInputModal-filters_wprq3_105 {
705
+ ._ExternalInputModal-filters_8wgzm_105 {
706
706
  border-right: 1px solid var(--puck-color-grey-09);
707
707
  display: none;
708
708
  }
709
- ._ExternalInputModal--filtersToggled_wprq3_100 ._ExternalInputModal-filters_wprq3_105 {
709
+ ._ExternalInputModal--filtersToggled_8wgzm_100 ._ExternalInputModal-filters_8wgzm_105 {
710
710
  display: block;
711
711
  }
712
712
  }
713
- ._ExternalInputModal-masthead_wprq3_124 {
713
+ ._ExternalInputModal-masthead_8wgzm_124 {
714
714
  background-color: var(--puck-color-grey-12);
715
715
  border-bottom: 1px solid var(--puck-color-grey-09);
716
716
  display: flex;
@@ -718,13 +718,13 @@ textarea._Input-input_3pq3z_47 {
718
718
  gap: 24px;
719
719
  padding: 24px;
720
720
  }
721
- ._ExternalInputModal-tableWrapper_wprq3_133 {
721
+ ._ExternalInputModal-tableWrapper_8wgzm_133 {
722
722
  position: relative;
723
723
  overflow-x: auto;
724
724
  overflow-y: auto;
725
725
  flex-grow: 1;
726
726
  }
727
- ._ExternalInputModal-table_wprq3_133 {
727
+ ._ExternalInputModal-table_8wgzm_133 {
728
728
  border-collapse: unset;
729
729
  border-spacing: 0px;
730
730
  color: var(--puck-color-grey-02);
@@ -732,51 +732,51 @@ textarea._Input-input_3pq3z_47 {
732
732
  z-index: 0;
733
733
  min-width: 100%;
734
734
  }
735
- ._ExternalInputModal-thead_wprq3_149 {
735
+ ._ExternalInputModal-thead_8wgzm_149 {
736
736
  background-color: var(--puck-color-white);
737
737
  position: sticky;
738
738
  top: 0;
739
739
  z-index: 1;
740
740
  }
741
- ._ExternalInputModal-th_wprq3_149 {
741
+ ._ExternalInputModal-th_8wgzm_149 {
742
742
  border-bottom: 1px solid var(--puck-color-grey-09);
743
743
  color: var(--puck-color-grey-04);
744
744
  font-weight: 500;
745
745
  font-size: 14px;
746
746
  padding: 16px 24px;
747
747
  }
748
- ._ExternalInputModal-td_wprq3_164 {
748
+ ._ExternalInputModal-td_8wgzm_164 {
749
749
  border-bottom: 1px solid var(--puck-color-grey-10);
750
750
  padding: 16px 24px;
751
751
  }
752
- ._ExternalInputModal-tr_wprq3_169 ._ExternalInputModal-td_wprq3_164:first-of-type {
752
+ ._ExternalInputModal-tr_8wgzm_169 ._ExternalInputModal-td_8wgzm_164:first-of-type {
753
753
  font-weight: 500;
754
754
  width: 1%;
755
755
  white-space: nowrap;
756
756
  }
757
757
  @media (hover: hover) and (pointer: fine) {
758
- ._ExternalInputModal-tbody_wprq3_176 ._ExternalInputModal-tr_wprq3_169:hover {
758
+ ._ExternalInputModal-tbody_8wgzm_176 ._ExternalInputModal-tr_8wgzm_169:hover {
759
759
  background: var(--puck-color-azure-12);
760
760
  color: var(--puck-color-azure-04);
761
761
  cursor: pointer;
762
762
  position: relative;
763
763
  margin-left: -5px;
764
764
  }
765
- ._ExternalInputModal-tbody_wprq3_176 ._ExternalInputModal-tr_wprq3_169:hover ._ExternalInputModal-td_wprq3_164:first-of-type {
765
+ ._ExternalInputModal-tbody_8wgzm_176 ._ExternalInputModal-tr_8wgzm_169:hover ._ExternalInputModal-td_8wgzm_164:first-of-type {
766
766
  border-left: 4px solid var(--puck-color-azure-04);
767
767
  padding-left: 20px;
768
768
  }
769
769
  }
770
- ._ExternalInputModal-tbody_wprq3_176 ._ExternalInputModal-tr_wprq3_169:last-of-type ._ExternalInputModal-td_wprq3_164 {
770
+ ._ExternalInputModal-tbody_8wgzm_176 ._ExternalInputModal-tr_8wgzm_169:last-of-type ._ExternalInputModal-td_8wgzm_164 {
771
771
  border-bottom: none;
772
772
  }
773
- ._ExternalInputModal-tableWrapper_wprq3_133 {
773
+ ._ExternalInputModal-tableWrapper_8wgzm_133 {
774
774
  display: none;
775
775
  }
776
- ._ExternalInputModal--hasData_wprq3_202 ._ExternalInputModal-tableWrapper_wprq3_133 {
776
+ ._ExternalInputModal--hasData_8wgzm_202 ._ExternalInputModal-tableWrapper_8wgzm_133 {
777
777
  display: block;
778
778
  }
779
- ._ExternalInputModal-loadingBanner_wprq3_206 {
779
+ ._ExternalInputModal-loadingBanner_8wgzm_206 {
780
780
  display: none;
781
781
  background-color: color-mix(in srgb, var(--puck-color-white) 90%, transparent);
782
782
  padding: 64px;
@@ -788,21 +788,21 @@ textarea._Input-input_3pq3z_47 {
788
788
  right: 0;
789
789
  bottom: 0;
790
790
  }
791
- ._ExternalInputModal--isLoading_wprq3_223 ._ExternalInputModal-loadingBanner_wprq3_206 {
791
+ ._ExternalInputModal--isLoading_8wgzm_223 ._ExternalInputModal-loadingBanner_8wgzm_206 {
792
792
  display: flex;
793
793
  }
794
- ._ExternalInputModal-searchForm_wprq3_227 {
794
+ ._ExternalInputModal-searchForm_8wgzm_227 {
795
795
  display: flex;
796
796
  flex-wrap: wrap;
797
797
  gap: 12px;
798
798
  flex-grow: 1;
799
799
  }
800
800
  @media (min-width: 458px) {
801
- ._ExternalInputModal-searchForm_wprq3_227 {
801
+ ._ExternalInputModal-searchForm_8wgzm_227 {
802
802
  flex-wrap: nowrap;
803
803
  }
804
804
  }
805
- ._ExternalInputModal-search_wprq3_227 {
805
+ ._ExternalInputModal-search_8wgzm_227 {
806
806
  display: flex;
807
807
  background: var(--puck-color-white);
808
808
  border-width: 1px;
@@ -812,18 +812,18 @@ textarea._Input-input_3pq3z_47 {
812
812
  flex-grow: 1;
813
813
  transition: border-color 50ms ease-in;
814
814
  }
815
- ._ExternalInputModal-search_wprq3_227:focus-within {
815
+ ._ExternalInputModal-search_8wgzm_227:focus-within {
816
816
  border-color: var(--puck-color-grey-05);
817
817
  outline: 2px solid var(--puck-color-azure-05);
818
818
  transition: none;
819
819
  }
820
820
  @media (hover: hover) and (pointer: fine) {
821
- ._ExternalInputModal-search_wprq3_227:hover {
821
+ ._ExternalInputModal-search_8wgzm_227:hover {
822
822
  border-color: var(--puck-color-grey-05);
823
823
  transition: none;
824
824
  }
825
825
  }
826
- ._ExternalInputModal-searchIcon_wprq3_264 {
826
+ ._ExternalInputModal-searchIcon_8wgzm_264 {
827
827
  align-items: center;
828
828
  background: var(--puck-color-grey-12);
829
829
  border-bottom-left-radius: 4px;
@@ -835,17 +835,17 @@ textarea._Input-input_3pq3z_47 {
835
835
  padding: 12px 15px;
836
836
  transition: color 50ms ease-in;
837
837
  }
838
- ._ExternalInputModal-search_wprq3_227:focus-within ._ExternalInputModal-searchIcon_wprq3_264 {
838
+ ._ExternalInputModal-search_8wgzm_227:focus-within ._ExternalInputModal-searchIcon_8wgzm_264 {
839
839
  color: var(--puck-color-grey-04);
840
840
  transition: none;
841
841
  }
842
842
  @media (hover: hover) and (pointer: fine) {
843
- ._ExternalInputModal-search_wprq3_227:hover ._ExternalInputModal-searchIcon_wprq3_264 {
843
+ ._ExternalInputModal-search_8wgzm_227:hover ._ExternalInputModal-searchIcon_8wgzm_264 {
844
844
  color: var(--puck-color-grey-04);
845
845
  transition: none;
846
846
  }
847
847
  }
848
- ._ExternalInputModal-searchIconText_wprq3_289 {
848
+ ._ExternalInputModal-searchIconText_8wgzm_289 {
849
849
  clip: rect(0 0 0 0);
850
850
  clip-path: inset(100%);
851
851
  height: 1px;
@@ -854,7 +854,7 @@ textarea._Input-input_3pq3z_47 {
854
854
  white-space: nowrap;
855
855
  width: 1px;
856
856
  }
857
- ._ExternalInputModal-searchInput_wprq3_299 {
857
+ ._ExternalInputModal-searchInput_8wgzm_299 {
858
858
  border: none;
859
859
  border-radius: 4px;
860
860
  background: var(--puck-color-white);
@@ -863,30 +863,32 @@ textarea._Input-input_3pq3z_47 {
863
863
  padding: 12px 15px;
864
864
  width: 100%;
865
865
  }
866
- ._ExternalInputModal-searchInput_wprq3_299:focus {
866
+ ._ExternalInputModal-searchInput_8wgzm_299:focus {
867
867
  outline: 0;
868
868
  }
869
- ._ExternalInputModal-searchActions_wprq3_313 {
869
+ ._ExternalInputModal-searchActions_8wgzm_313 {
870
870
  display: flex;
871
871
  gap: 8px;
872
872
  height: 44px;
873
873
  width: 100%;
874
874
  }
875
875
  @media (min-width: 458px) {
876
- ._ExternalInputModal-searchActions_wprq3_313 {
876
+ ._ExternalInputModal-searchActions_8wgzm_313 {
877
877
  width: auto;
878
878
  }
879
879
  }
880
- ._ExternalInputModal-searchActionIcon_wprq3_326 {
880
+ ._ExternalInputModal-searchActionIcon_8wgzm_326 {
881
881
  align-self: center;
882
882
  }
883
- ._ExternalInputModal-footer_wprq3_330 {
883
+ ._ExternalInputModal-footerContainer_8wgzm_330 {
884
884
  background-color: var(--puck-color-grey-12);
885
885
  border-top: 1px solid var(--puck-color-grey-09);
886
886
  color: var(--puck-color-grey-04);
887
+ padding: 16px;
888
+ }
889
+ ._ExternalInputModal-footer_8wgzm_330 {
887
890
  font-weight: 500;
888
891
  font-size: 14px;
889
- padding: 16px;
890
892
  text-align: right;
891
893
  }
892
894
 
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-BoWgijLi.mjs';
2
- export { L as Adaptor, J as ArrayField, r as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, t as ComponentConfig, w as ComponentData, x as Content, X as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, W as ExternalField, Q as ExternalFieldWithAdaptor, p as FieldRenderFunctions, Y as Fields, q as ItemWithId, M as MappedItem, N as NumberField, K as ObjectField, n as OverrideKey, s as PuckComponent, Z as PuckContext, G as RadioField, v as RootData, R as RootDataWithProps, u as RootDataWithoutProps, S as SelectField, T as TextField, z as TextareaField, m as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, o as overrideKeys, a4 as resolveAllData } from './resolve-all-data-BoWgijLi.mjs';
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-BoWgijLi.js';
2
- export { L as Adaptor, J as ArrayField, r as ArrayState, a2 as AsFieldProps, B as BaseData, y as BaseField, t as ComponentConfig, w as ComponentData, x as Content, X as CustomField, $ as DefaultRootProps, _ as DefaultRootRenderProps, W as ExternalField, Q as ExternalFieldWithAdaptor, p as FieldRenderFunctions, Y as Fields, q as ItemWithId, M as MappedItem, N as NumberField, K as ObjectField, n as OverrideKey, s as PuckComponent, Z as PuckContext, G as RadioField, v as RootData, R as RootDataWithProps, u as RootDataWithoutProps, S as SelectField, T as TextField, z as TextareaField, m as Viewport, a3 as WithChildren, a0 as WithId, a1 as WithPuckProps, o as overrideKeys, a4 as resolveAllData } from './resolve-all-data-BoWgijLi.js';
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": "_Input_3pq3z_1", "Input-label": "_Input-label_3pq3z_26", "Input-labelIcon": "_Input-labelIcon_3pq3z_35", "Input-disabledIcon": "_Input-disabledIcon_3pq3z_42", "Input-input": "_Input-input_3pq3z_47", "Input--readOnly": "_Input--readOnly_3pq3z_91", "Input-radioGroupItems": "_Input-radioGroupItems_3pq3z_102", "Input-radio": "_Input-radio_3pq3z_102", "Input-radioInner": "_Input-radioInner_3pq3z_119", "Input-radioInput": "_Input-radioInput_3pq3z_164" };
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
- onChange(newValue, {
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.jsx)("div", { className: getClassNameItem("actions"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1489
- IconButton,
1490
- {
1491
- type: "button",
1492
- disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
1493
- onClick: (e) => {
1494
- e.stopPropagation();
1495
- const existingValue = [
1496
- ...value || []
1497
- ];
1498
- const existingItems = [
1499
- ...arrayState.items || []
1500
- ];
1501
- existingValue.splice(i, 1);
1502
- existingItems.splice(i, 1);
1503
- onChange(
1504
- existingValue,
1505
- mapArrayStateToUi({
1506
- items: existingItems
1507
- })
1508
- );
1509
- },
1510
- title: "Delete",
1511
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Trash, { size: 16 })
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
  ]
@@ -1607,7 +1638,7 @@ var DefaultField = ({
1607
1638
  autoComplete: "off",
1608
1639
  type: field.type,
1609
1640
  name,
1610
- value: typeof value === "undefined" ? "" : value,
1641
+ value: typeof value === "undefined" ? "" : value.toString(),
1611
1642
  onChange: (e) => {
1612
1643
  if (field.type === "number") {
1613
1644
  onChange(Number(e.currentTarget.value));
@@ -1636,7 +1667,7 @@ var import_react10 = require("react");
1636
1667
 
1637
1668
  // css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
1638
1669
  init_react_import();
1639
- var styles_module_default6 = { "ExternalInput-actions": "_ExternalInput-actions_wprq3_1", "ExternalInput-button": "_ExternalInput-button_wprq3_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_wprq3_24", "ExternalInput--readOnly": "_ExternalInput--readOnly_wprq3_31", "ExternalInput-detachButton": "_ExternalInput-detachButton_wprq3_35", "ExternalInput": "_ExternalInput_wprq3_1", "ExternalInputModal": "_ExternalInputModal_wprq3_79", "ExternalInputModal-grid": "_ExternalInputModal-grid_wprq3_89", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_wprq3_100", "ExternalInputModal-filters": "_ExternalInputModal-filters_wprq3_105", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_wprq3_124", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_wprq3_133", "ExternalInputModal-table": "_ExternalInputModal-table_wprq3_133", "ExternalInputModal-thead": "_ExternalInputModal-thead_wprq3_149", "ExternalInputModal-th": "_ExternalInputModal-th_wprq3_149", "ExternalInputModal-td": "_ExternalInputModal-td_wprq3_164", "ExternalInputModal-tr": "_ExternalInputModal-tr_wprq3_169", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_wprq3_176", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_wprq3_202", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_wprq3_206", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_wprq3_223", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_wprq3_227", "ExternalInputModal-search": "_ExternalInputModal-search_wprq3_227", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_wprq3_264", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_wprq3_289", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_wprq3_299", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_wprq3_313", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_wprq3_326", "ExternalInputModal-footer": "_ExternalInputModal-footer_wprq3_330" };
1670
+ var styles_module_default6 = { "ExternalInput-actions": "_ExternalInput-actions_8wgzm_1", "ExternalInput-button": "_ExternalInput-button_8wgzm_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_8wgzm_24", "ExternalInput--readOnly": "_ExternalInput--readOnly_8wgzm_31", "ExternalInput-detachButton": "_ExternalInput-detachButton_8wgzm_35", "ExternalInput": "_ExternalInput_8wgzm_1", "ExternalInputModal": "_ExternalInputModal_8wgzm_79", "ExternalInputModal-grid": "_ExternalInputModal-grid_8wgzm_89", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_8wgzm_100", "ExternalInputModal-filters": "_ExternalInputModal-filters_8wgzm_105", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_8wgzm_124", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_8wgzm_133", "ExternalInputModal-table": "_ExternalInputModal-table_8wgzm_133", "ExternalInputModal-thead": "_ExternalInputModal-thead_8wgzm_149", "ExternalInputModal-th": "_ExternalInputModal-th_8wgzm_149", "ExternalInputModal-td": "_ExternalInputModal-td_8wgzm_164", "ExternalInputModal-tr": "_ExternalInputModal-tr_8wgzm_169", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_8wgzm_176", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_8wgzm_202", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_8wgzm_206", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_8wgzm_223", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_8wgzm_227", "ExternalInputModal-search": "_ExternalInputModal-search_8wgzm_227", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_8wgzm_264", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_8wgzm_289", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_8wgzm_299", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_8wgzm_313", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_8wgzm_326", "ExternalInputModal-footerContainer": "_ExternalInputModal-footerContainer_8wgzm_330", "ExternalInputModal-footer": "_ExternalInputModal-footer_8wgzm_330" };
1640
1671
 
1641
1672
  // components/Modal/index.tsx
1642
1673
  init_react_import();
@@ -1793,7 +1824,7 @@ var ExternalInput = ({
1793
1824
  const validKeys = /* @__PURE__ */ new Set();
1794
1825
  for (const item of mappedData) {
1795
1826
  for (const key of Object.keys(item)) {
1796
- if (typeof item[key] === "string" || typeof item[key] === "number") {
1827
+ if (typeof item[key] === "string" || typeof item[key] === "number" || (0, import_react10.isValidElement)(item[key])) {
1797
1828
  validKeys.add(key);
1798
1829
  }
1799
1830
  }
@@ -1814,6 +1845,14 @@ var ExternalInput = ({
1814
1845
  }),
1815
1846
  [id, field]
1816
1847
  );
1848
+ const Footer = (0, import_react10.useCallback)(
1849
+ (props) => field.renderFooter ? field.renderFooter(props) : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: getClassNameModal("footer"), children: [
1850
+ props.items.length,
1851
+ " result",
1852
+ props.items.length === 1 ? "" : "s"
1853
+ ] }),
1854
+ [field.renderFooter]
1855
+ );
1817
1856
  (0, import_react10.useEffect)(() => {
1818
1857
  search(searchQuery, filters);
1819
1858
  }, []);
@@ -1953,11 +1992,7 @@ var ExternalInput = ({
1953
1992
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassNameModal("loadingBanner"), children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Loader, { size: 24 }) })
1954
1993
  ] })
1955
1994
  ] }),
1956
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: getClassNameModal("footer"), children: [
1957
- mappedData.length,
1958
- " result",
1959
- mappedData.length === 1 ? "" : "s"
1960
- ] })
1995
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: getClassNameModal("footerContainer"), children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Footer, { items: mappedData }) })
1961
1996
  ]
1962
1997
  }
1963
1998
  ) })
@@ -2237,6 +2272,7 @@ var useSafeId = () => {
2237
2272
  // components/AutoField/index.tsx
2238
2273
  var import_jsx_runtime20 = require("react/jsx-runtime");
2239
2274
  var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
2275
+ var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
2240
2276
  var FieldLabel = ({
2241
2277
  children,
2242
2278
  icon,
@@ -2284,7 +2320,7 @@ var FieldLabelInternal2 = ({
2284
2320
  };
2285
2321
  function AutoFieldInternal(props) {
2286
2322
  var _a, _b, _c, _d, _e, _f, _g, _h;
2287
- const { overrides } = useAppContext();
2323
+ const { dispatch, overrides } = useAppContext();
2288
2324
  const { id, Label = FieldLabelInternal2 } = props;
2289
2325
  const field = props.field;
2290
2326
  const label = field.label;
@@ -2316,23 +2352,45 @@ function AutoFieldInternal(props) {
2316
2352
  Label,
2317
2353
  id: resolvedId
2318
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
+ }, []);
2319
2379
  if (field.type === "custom") {
2320
2380
  if (!field.render) {
2321
2381
  return null;
2322
2382
  }
2323
2383
  const CustomField = field.render;
2324
- 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)) }) });
2325
2385
  }
2326
2386
  const children = defaultFields[field.type](mergedProps);
2327
2387
  const Render2 = render[field.type];
2328
- 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 })) });
2329
2389
  }
2330
- var RECENT_CHANGE_TIMEOUT = 200;
2331
2390
  function AutoFieldPrivate(props) {
2391
+ const { state } = useAppContext();
2332
2392
  const { value, onChange } = props;
2333
2393
  const [localValue, setLocalValue] = (0, import_react13.useState)(value);
2334
- const [recentlyChanged, setRecentlyChanged] = (0, import_react13.useState)(false);
2335
- const timeoutRef = (0, import_react13.useRef)();
2336
2394
  const onChangeDb = (0, import_use_debounce.useDebouncedCallback)(
2337
2395
  (val, ui) => {
2338
2396
  onChange(val, ui);
@@ -2342,15 +2400,10 @@ function AutoFieldPrivate(props) {
2342
2400
  );
2343
2401
  const onChangeLocal = (0, import_react13.useCallback)((val, ui) => {
2344
2402
  setLocalValue(val);
2345
- setRecentlyChanged(true);
2346
- clearTimeout(timeoutRef.current);
2347
- timeoutRef.current = setTimeout(() => {
2348
- setRecentlyChanged(false);
2349
- }, RECENT_CHANGE_TIMEOUT);
2350
2403
  onChangeDb(val, ui);
2351
2404
  }, []);
2352
2405
  (0, import_react13.useEffect)(() => {
2353
- if (!recentlyChanged) {
2406
+ if (state.ui.field.focus !== props.name) {
2354
2407
  setLocalValue(value);
2355
2408
  }
2356
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": "_Input_3pq3z_1", "Input-label": "_Input-label_3pq3z_26", "Input-labelIcon": "_Input-labelIcon_3pq3z_35", "Input-disabledIcon": "_Input-disabledIcon_3pq3z_42", "Input-input": "_Input-input_3pq3z_47", "Input--readOnly": "_Input--readOnly_3pq3z_91", "Input-radioGroupItems": "_Input-radioGroupItems_3pq3z_102", "Input-radio": "_Input-radio_3pq3z_102", "Input-radioInner": "_Input-radioInner_3pq3z_119", "Input-radioInput": "_Input-radioInput_3pq3z_164" };
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
- onChange(newValue, {
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__ */ jsx9("div", { className: getClassNameItem("actions"), children: /* @__PURE__ */ jsx9("div", { className: getClassNameItem("action"), children: /* @__PURE__ */ jsx9(
1302
- IconButton,
1303
- {
1304
- type: "button",
1305
- disabled: field.min !== void 0 && field.min >= localState.arrayState.items.length,
1306
- onClick: (e) => {
1307
- e.stopPropagation();
1308
- const existingValue = [
1309
- ...value || []
1310
- ];
1311
- const existingItems = [
1312
- ...arrayState.items || []
1313
- ];
1314
- existingValue.splice(i, 1);
1315
- existingItems.splice(i, 1);
1316
- onChange(
1317
- existingValue,
1318
- mapArrayStateToUi({
1319
- items: existingItems
1320
- })
1321
- );
1322
- },
1323
- title: "Delete",
1324
- children: /* @__PURE__ */ jsx9(Trash, { size: 16 })
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
  ]
@@ -1420,7 +1450,7 @@ var DefaultField = ({
1420
1450
  autoComplete: "off",
1421
1451
  type: field.type,
1422
1452
  name,
1423
- value: typeof value === "undefined" ? "" : value,
1453
+ value: typeof value === "undefined" ? "" : value.toString(),
1424
1454
  onChange: (e) => {
1425
1455
  if (field.type === "number") {
1426
1456
  onChange(Number(e.currentTarget.value));
@@ -1445,11 +1475,17 @@ import { useEffect as useEffect8 } from "react";
1445
1475
 
1446
1476
  // components/ExternalInput/index.tsx
1447
1477
  init_react_import();
1448
- import { useMemo, useEffect as useEffect7, useState as useState8, useCallback as useCallback4 } from "react";
1478
+ import {
1479
+ useMemo,
1480
+ useEffect as useEffect7,
1481
+ useState as useState8,
1482
+ useCallback as useCallback4,
1483
+ isValidElement
1484
+ } from "react";
1449
1485
 
1450
1486
  // css-module:/home/runner/work/puck/puck/packages/core/components/ExternalInput/styles.module.css#css-module
1451
1487
  init_react_import();
1452
- var styles_module_default6 = { "ExternalInput-actions": "_ExternalInput-actions_wprq3_1", "ExternalInput-button": "_ExternalInput-button_wprq3_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_wprq3_24", "ExternalInput--readOnly": "_ExternalInput--readOnly_wprq3_31", "ExternalInput-detachButton": "_ExternalInput-detachButton_wprq3_35", "ExternalInput": "_ExternalInput_wprq3_1", "ExternalInputModal": "_ExternalInputModal_wprq3_79", "ExternalInputModal-grid": "_ExternalInputModal-grid_wprq3_89", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_wprq3_100", "ExternalInputModal-filters": "_ExternalInputModal-filters_wprq3_105", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_wprq3_124", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_wprq3_133", "ExternalInputModal-table": "_ExternalInputModal-table_wprq3_133", "ExternalInputModal-thead": "_ExternalInputModal-thead_wprq3_149", "ExternalInputModal-th": "_ExternalInputModal-th_wprq3_149", "ExternalInputModal-td": "_ExternalInputModal-td_wprq3_164", "ExternalInputModal-tr": "_ExternalInputModal-tr_wprq3_169", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_wprq3_176", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_wprq3_202", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_wprq3_206", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_wprq3_223", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_wprq3_227", "ExternalInputModal-search": "_ExternalInputModal-search_wprq3_227", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_wprq3_264", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_wprq3_289", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_wprq3_299", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_wprq3_313", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_wprq3_326", "ExternalInputModal-footer": "_ExternalInputModal-footer_wprq3_330" };
1488
+ var styles_module_default6 = { "ExternalInput-actions": "_ExternalInput-actions_8wgzm_1", "ExternalInput-button": "_ExternalInput-button_8wgzm_5", "ExternalInput--dataSelected": "_ExternalInput--dataSelected_8wgzm_24", "ExternalInput--readOnly": "_ExternalInput--readOnly_8wgzm_31", "ExternalInput-detachButton": "_ExternalInput-detachButton_8wgzm_35", "ExternalInput": "_ExternalInput_8wgzm_1", "ExternalInputModal": "_ExternalInputModal_8wgzm_79", "ExternalInputModal-grid": "_ExternalInputModal-grid_8wgzm_89", "ExternalInputModal--filtersToggled": "_ExternalInputModal--filtersToggled_8wgzm_100", "ExternalInputModal-filters": "_ExternalInputModal-filters_8wgzm_105", "ExternalInputModal-masthead": "_ExternalInputModal-masthead_8wgzm_124", "ExternalInputModal-tableWrapper": "_ExternalInputModal-tableWrapper_8wgzm_133", "ExternalInputModal-table": "_ExternalInputModal-table_8wgzm_133", "ExternalInputModal-thead": "_ExternalInputModal-thead_8wgzm_149", "ExternalInputModal-th": "_ExternalInputModal-th_8wgzm_149", "ExternalInputModal-td": "_ExternalInputModal-td_8wgzm_164", "ExternalInputModal-tr": "_ExternalInputModal-tr_8wgzm_169", "ExternalInputModal-tbody": "_ExternalInputModal-tbody_8wgzm_176", "ExternalInputModal--hasData": "_ExternalInputModal--hasData_8wgzm_202", "ExternalInputModal-loadingBanner": "_ExternalInputModal-loadingBanner_8wgzm_206", "ExternalInputModal--isLoading": "_ExternalInputModal--isLoading_8wgzm_223", "ExternalInputModal-searchForm": "_ExternalInputModal-searchForm_8wgzm_227", "ExternalInputModal-search": "_ExternalInputModal-search_8wgzm_227", "ExternalInputModal-searchIcon": "_ExternalInputModal-searchIcon_8wgzm_264", "ExternalInputModal-searchIconText": "_ExternalInputModal-searchIconText_8wgzm_289", "ExternalInputModal-searchInput": "_ExternalInputModal-searchInput_8wgzm_299", "ExternalInputModal-searchActions": "_ExternalInputModal-searchActions_8wgzm_313", "ExternalInputModal-searchActionIcon": "_ExternalInputModal-searchActionIcon_8wgzm_326", "ExternalInputModal-footerContainer": "_ExternalInputModal-footerContainer_8wgzm_330", "ExternalInputModal-footer": "_ExternalInputModal-footer_8wgzm_330" };
1453
1489
 
1454
1490
  // components/Modal/index.tsx
1455
1491
  init_react_import();
@@ -1606,7 +1642,7 @@ var ExternalInput = ({
1606
1642
  const validKeys = /* @__PURE__ */ new Set();
1607
1643
  for (const item of mappedData) {
1608
1644
  for (const key of Object.keys(item)) {
1609
- if (typeof item[key] === "string" || typeof item[key] === "number") {
1645
+ if (typeof item[key] === "string" || typeof item[key] === "number" || isValidElement(item[key])) {
1610
1646
  validKeys.add(key);
1611
1647
  }
1612
1648
  }
@@ -1627,6 +1663,14 @@ var ExternalInput = ({
1627
1663
  }),
1628
1664
  [id, field]
1629
1665
  );
1666
+ const Footer = useCallback4(
1667
+ (props) => field.renderFooter ? field.renderFooter(props) : /* @__PURE__ */ jsxs7("span", { className: getClassNameModal("footer"), children: [
1668
+ props.items.length,
1669
+ " result",
1670
+ props.items.length === 1 ? "" : "s"
1671
+ ] }),
1672
+ [field.renderFooter]
1673
+ );
1630
1674
  useEffect7(() => {
1631
1675
  search(searchQuery, filters);
1632
1676
  }, []);
@@ -1766,11 +1810,7 @@ var ExternalInput = ({
1766
1810
  /* @__PURE__ */ jsx14("div", { className: getClassNameModal("loadingBanner"), children: /* @__PURE__ */ jsx14(Loader, { size: 24 }) })
1767
1811
  ] })
1768
1812
  ] }),
1769
- /* @__PURE__ */ jsxs7("div", { className: getClassNameModal("footer"), children: [
1770
- mappedData.length,
1771
- " result",
1772
- mappedData.length === 1 ? "" : "s"
1773
- ] })
1813
+ /* @__PURE__ */ jsx14("div", { className: getClassNameModal("footerContainer"), children: /* @__PURE__ */ jsx14(Footer, { items: mappedData }) })
1774
1814
  ]
1775
1815
  }
1776
1816
  ) })
@@ -2050,6 +2090,7 @@ var useSafeId = () => {
2050
2090
  // components/AutoField/index.tsx
2051
2091
  import { Fragment as Fragment8, jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
2052
2092
  var getClassName15 = get_class_name_factory_default("Input", styles_module_default2);
2093
+ var getClassNameWrapper = get_class_name_factory_default("InputWrapper", styles_module_default2);
2053
2094
  var FieldLabel = ({
2054
2095
  children,
2055
2096
  icon,
@@ -2097,7 +2138,7 @@ var FieldLabelInternal2 = ({
2097
2138
  };
2098
2139
  function AutoFieldInternal(props) {
2099
2140
  var _a, _b, _c, _d, _e, _f, _g, _h;
2100
- const { overrides } = useAppContext();
2141
+ const { dispatch, overrides } = useAppContext();
2101
2142
  const { id, Label = FieldLabelInternal2 } = props;
2102
2143
  const field = props.field;
2103
2144
  const label = field.label;
@@ -2129,23 +2170,45 @@ function AutoFieldInternal(props) {
2129
2170
  Label,
2130
2171
  id: resolvedId
2131
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
+ }, []);
2132
2197
  if (field.type === "custom") {
2133
2198
  if (!field.render) {
2134
2199
  return null;
2135
2200
  }
2136
2201
  const CustomField = field.render;
2137
- 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)) }) });
2138
2203
  }
2139
2204
  const children = defaultFields[field.type](mergedProps);
2140
2205
  const Render2 = render[field.type];
2141
- 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 })) });
2142
2207
  }
2143
- var RECENT_CHANGE_TIMEOUT = 200;
2144
2208
  function AutoFieldPrivate(props) {
2209
+ const { state } = useAppContext();
2145
2210
  const { value, onChange } = props;
2146
2211
  const [localValue, setLocalValue] = useState10(value);
2147
- const [recentlyChanged, setRecentlyChanged] = useState10(false);
2148
- const timeoutRef = useRef2();
2149
2212
  const onChangeDb = useDebouncedCallback(
2150
2213
  (val, ui) => {
2151
2214
  onChange(val, ui);
@@ -2155,15 +2218,10 @@ function AutoFieldPrivate(props) {
2155
2218
  );
2156
2219
  const onChangeLocal = useCallback5((val, ui) => {
2157
2220
  setLocalValue(val);
2158
- setRecentlyChanged(true);
2159
- clearTimeout(timeoutRef.current);
2160
- timeoutRef.current = setTimeout(() => {
2161
- setRecentlyChanged(false);
2162
- }, RECENT_CHANGE_TIMEOUT);
2163
2221
  onChangeDb(val, ui);
2164
2222
  }, []);
2165
2223
  useEffect9(() => {
2166
- if (!recentlyChanged) {
2224
+ if (state.ui.field.focus !== props.name) {
2167
2225
  setLocalValue(value);
2168
2226
  }
2169
2227
  }, [value]);
@@ -91,9 +91,12 @@ type ExternalField<Props extends {
91
91
  filters: Record<string, any>;
92
92
  }) => Promise<any[] | null>;
93
93
  mapProp?: (value: any) => Props;
94
- mapRow?: (value: any) => Record<string, string | number>;
94
+ mapRow?: (value: any) => Record<string, string | number | ReactElement>;
95
95
  getItemSummary?: (item: Props, index?: number) => string;
96
96
  showSearch?: boolean;
97
+ renderFooter?: (props: {
98
+ items: any[];
99
+ }) => ReactElement;
97
100
  initialQuery?: string;
98
101
  filterFields?: Record<string, Field>;
99
102
  initialFilters?: Record<string, any>;
@@ -271,6 +274,9 @@ type UiState = {
271
274
  controlsVisible: boolean;
272
275
  options: Viewport[];
273
276
  };
277
+ field: {
278
+ focus?: string | null;
279
+ };
274
280
  };
275
281
  type AppState<UserData extends Data = Data> = {
276
282
  data: UserData;
@@ -91,9 +91,12 @@ type ExternalField<Props extends {
91
91
  filters: Record<string, any>;
92
92
  }) => Promise<any[] | null>;
93
93
  mapProp?: (value: any) => Props;
94
- mapRow?: (value: any) => Record<string, string | number>;
94
+ mapRow?: (value: any) => Record<string, string | number | ReactElement>;
95
95
  getItemSummary?: (item: Props, index?: number) => string;
96
96
  showSearch?: boolean;
97
+ renderFooter?: (props: {
98
+ items: any[];
99
+ }) => ReactElement;
97
100
  initialQuery?: string;
98
101
  filterFields?: Record<string, Field>;
99
102
  initialFilters?: Record<string, any>;
@@ -271,6 +274,9 @@ type UiState = {
271
274
  controlsVisible: boolean;
272
275
  options: Viewport[];
273
276
  };
277
+ field: {
278
+ focus?: string | null;
279
+ };
274
280
  };
275
281
  type AppState<UserData extends Data = Data> = {
276
282
  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-BoWgijLi.mjs';
3
- export { a4 as resolveAllData } from './resolve-all-data-BoWgijLi.mjs';
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-BoWgijLi.js';
3
- export { a4 as resolveAllData } from './resolve-all-data-BoWgijLi.js';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.16.3-canary.af421c6",
3
+ "version": "0.17.0-canary.35170f8",
4
4
  "author": "Measured Corporation Ltd <hello@measured.co>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",