@rjsf/chakra-ui 6.0.0-beta.21 → 6.0.0-beta.23

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.
Files changed (50) hide show
  1. package/dist/chakra-ui.esm.js +58 -117
  2. package/dist/chakra-ui.esm.js.map +3 -3
  3. package/dist/chakra-ui.umd.js +38 -93
  4. package/dist/index.cjs +128 -184
  5. package/dist/index.cjs.map +3 -3
  6. package/lib/AltDateTimeWidget/AltDateTimeWidget.d.ts +1 -1
  7. package/lib/AltDateTimeWidget/AltDateTimeWidget.js +2 -2
  8. package/lib/AltDateTimeWidget/AltDateTimeWidget.js.map +1 -1
  9. package/lib/AltDateWidget/AltDateWidget.d.ts +1 -1
  10. package/lib/AltDateWidget/AltDateWidget.js +8 -49
  11. package/lib/AltDateWidget/AltDateWidget.js.map +1 -1
  12. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +2 -2
  13. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -1
  14. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js +1 -2
  15. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -1
  16. package/lib/BaseInputTemplate/BaseInputTemplate.js +2 -2
  17. package/lib/BaseInputTemplate/BaseInputTemplate.js.map +1 -1
  18. package/lib/CheckboxWidget/CheckboxWidget.js +2 -2
  19. package/lib/CheckboxWidget/CheckboxWidget.js.map +1 -1
  20. package/lib/CheckboxesWidget/CheckboxesWidget.js +2 -2
  21. package/lib/CheckboxesWidget/CheckboxesWidget.js.map +1 -1
  22. package/lib/FieldTemplate/FieldTemplate.js +2 -2
  23. package/lib/FieldTemplate/FieldTemplate.js.map +1 -1
  24. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js +2 -2
  25. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -1
  26. package/lib/RadioWidget/RadioWidget.d.ts +1 -1
  27. package/lib/RadioWidget/RadioWidget.js +2 -2
  28. package/lib/RadioWidget/RadioWidget.js.map +1 -1
  29. package/lib/SelectWidget/SelectWidget.js +2 -2
  30. package/lib/SelectWidget/SelectWidget.js.map +1 -1
  31. package/lib/TextareaWidget/TextareaWidget.d.ts +1 -1
  32. package/lib/TextareaWidget/TextareaWidget.js +2 -2
  33. package/lib/TextareaWidget/TextareaWidget.js.map +1 -1
  34. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +2 -3
  35. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -1
  36. package/lib/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +7 -7
  38. package/src/AltDateTimeWidget/AltDateTimeWidget.tsx +2 -2
  39. package/src/AltDateWidget/AltDateWidget.tsx +13 -88
  40. package/src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +2 -2
  41. package/src/ArrayFieldTemplate/ArrayFieldTemplate.tsx +1 -9
  42. package/src/BaseInputTemplate/BaseInputTemplate.tsx +2 -1
  43. package/src/CheckboxWidget/CheckboxWidget.tsx +2 -1
  44. package/src/CheckboxesWidget/CheckboxesWidget.tsx +2 -1
  45. package/src/FieldTemplate/FieldTemplate.tsx +6 -4
  46. package/src/ObjectFieldTemplate/ObjectFieldTemplate.tsx +2 -2
  47. package/src/RadioWidget/RadioWidget.tsx +2 -1
  48. package/src/SelectWidget/SelectWidget.tsx +2 -1
  49. package/src/TextareaWidget/TextareaWidget.tsx +2 -1
  50. package/src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +4 -7
@@ -49,11 +49,6 @@
49
49
  registry,
50
50
  uiOptions
51
51
  );
52
- const ArrayFieldItemTemplate2 = utils.getTemplate(
53
- "ArrayFieldItemTemplate",
54
- registry,
55
- uiOptions
56
- );
57
52
  const ArrayFieldTitleTemplate = utils.getTemplate(
58
53
  "ArrayFieldTitleTemplate",
59
54
  registry,
@@ -89,7 +84,7 @@
89
84
  /* @__PURE__ */ jsxRuntime.jsxs(react$1.Grid, { children: [
90
85
  /* @__PURE__ */ jsxRuntime.jsxs(react$1.GridItem, { children: [
91
86
  !showOptionalDataControlInTitle ? optionalDataControl : void 0,
92
- items.map(({ key, ...itemProps }) => /* @__PURE__ */ jsxRuntime.jsx(ArrayFieldItemTemplate2, { ...itemProps }, key))
87
+ items
93
88
  ] }),
94
89
  canAdd && /* @__PURE__ */ jsxRuntime.jsx(react$1.GridItem, { justifySelf: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { mt: 2, children: /* @__PURE__ */ jsxRuntime.jsx(
95
90
  AddButton2,
@@ -130,6 +125,7 @@
130
125
  function BaseInputTemplate(props) {
131
126
  const {
132
127
  id,
128
+ htmlName,
133
129
  type,
134
130
  value,
135
131
  label,
@@ -168,7 +164,7 @@
168
164
  react$1.Input,
169
165
  {
170
166
  id,
171
- name: id,
167
+ name: htmlName || id,
172
168
  value: value || value === 0 ? value : "",
173
169
  onChange: onChangeOverride || _onChange,
174
170
  onBlur: _onBlur,
@@ -294,8 +290,9 @@
294
290
  displayLabel,
295
291
  hidden,
296
292
  label,
297
- onDropPropertyClick,
298
- onKeyChange,
293
+ onKeyRename,
294
+ onKeyRenameBlur,
295
+ onRemoveProperty,
299
296
  readonly,
300
297
  registry,
301
298
  required,
@@ -324,8 +321,9 @@
324
321
  disabled,
325
322
  id,
326
323
  label,
327
- onDropPropertyClick,
328
- onKeyChange,
324
+ onKeyRename,
325
+ onKeyRenameBlur,
326
+ onRemoveProperty,
329
327
  readonly,
330
328
  required,
331
329
  schema,
@@ -367,7 +365,7 @@
367
365
  schema,
368
366
  formData,
369
367
  optionalDataControl,
370
- onAddClick,
368
+ onAddProperty,
371
369
  registry
372
370
  } = props;
373
371
  const uiOptions = utils.getUiOptions(uiSchema);
@@ -414,7 +412,7 @@
414
412
  {
415
413
  id: utils.buttonId(fieldPathId, "add"),
416
414
  className: "rjsf-object-property-expand",
417
- onClick: onAddClick(schema),
415
+ onClick: onAddProperty,
418
416
  disabled: disabled || readonly,
419
417
  uiSchema,
420
418
  registry
@@ -488,8 +486,8 @@
488
486
  disabled,
489
487
  id,
490
488
  label,
491
- onDropPropertyClick,
492
- onKeyChange,
489
+ onRemoveProperty,
490
+ onKeyRenameBlur,
493
491
  readonly,
494
492
  registry,
495
493
  required,
@@ -503,7 +501,6 @@
503
501
  if (!additional) {
504
502
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames, style, children });
505
503
  }
506
- const handleBlur = ({ target }) => onKeyChange(target.value);
507
504
  return /* @__PURE__ */ jsxRuntime.jsxs(react$1.Grid, { className: classNames, style, alignItems: "center", gap: 2, children: [
508
505
  /* @__PURE__ */ jsxRuntime.jsx(react$1.GridItem, { children: /* @__PURE__ */ jsxRuntime.jsx(Field, { required, label: keyLabel, children: /* @__PURE__ */ jsxRuntime.jsx(
509
506
  react$1.Input,
@@ -512,7 +509,7 @@
512
509
  disabled: disabled || readonly,
513
510
  id: `${id}-key`,
514
511
  name: `${id}-key`,
515
- onBlur: !readonly ? handleBlur : void 0,
512
+ onBlur: !readonly ? onKeyRenameBlur : void 0,
516
513
  type: "text",
517
514
  mb: 1
518
515
  }
@@ -524,7 +521,7 @@
524
521
  id: utils.buttonId(id, "remove"),
525
522
  className: "rjsf-object-property-remove",
526
523
  disabled: disabled || readonly,
527
- onClick: onDropPropertyClick(label),
524
+ onClick: onRemoveProperty,
528
525
  uiSchema,
529
526
  registry
530
527
  }
@@ -560,92 +557,35 @@
560
557
  };
561
558
  }
562
559
  var Templates_default = generateTemplates();
563
- function DateElement(props) {
564
- const { SelectWidget: SelectWidget2 } = props.registry.widgets;
565
- const value = props.value ? props.value : void 0;
566
- return /* @__PURE__ */ jsxRuntime.jsx(
567
- SelectWidget2,
568
- {
569
- ...props,
570
- label: "",
571
- className: "form-control",
572
- onChange: (elemValue) => props.select(props.type, elemValue),
573
- options: {
574
- enumOptions: utils.dateRangeOptions(props.range[0], props.range[1])
575
- },
576
- placeholder: props.type,
577
- schema: { type: "integer" },
578
- value,
579
- "aria-describedby": utils.ariaDescribedByIds(props.name)
580
- }
581
- );
582
- }
583
- var readyForChange = (state) => {
584
- return Object.keys(state).every((key) => typeof state[key] !== "undefined" && state[key] !== -1);
585
- };
586
560
  function AltDateWidget(props) {
587
- const { autofocus, disabled, id, onBlur, onChange, onFocus, options, readonly, registry, showTime, value } = props;
561
+ const { autofocus, disabled, id, onBlur, onFocus, options, readonly, registry } = props;
588
562
  const { translateString } = registry;
589
- const [state, setState] = react.useState(utils.parseDateString(value, showTime));
590
- react.useEffect(() => {
591
- setState(utils.parseDateString(value, showTime));
592
- }, [showTime, value]);
593
- const handleChange = (property, nextValue) => {
594
- const nextState = {
595
- ...state,
596
- [property]: typeof nextValue === "undefined" ? -1 : nextValue
597
- };
598
- if (readyForChange(nextState)) {
599
- onChange(utils.toDateString(nextState, showTime));
600
- } else {
601
- setState(nextState);
602
- }
603
- };
604
- const handleNow = (event) => {
605
- event.preventDefault();
606
- if (disabled || readonly) {
607
- return;
608
- }
609
- const nextState = utils.parseDateString((/* @__PURE__ */ new Date()).toJSON(), showTime);
610
- onChange(utils.toDateString(nextState, showTime));
611
- };
612
- const handleClear = (event) => {
613
- event.preventDefault();
614
- if (disabled || readonly) {
615
- return;
616
- }
617
- onChange(void 0);
618
- };
563
+ const { elements, handleChange, handleClear, handleSetNow } = utils.useAltDateWidgetProps(props);
619
564
  const chakraProps = getChakra({ uiSchema: props.uiSchema });
620
565
  return /* @__PURE__ */ jsxRuntime.jsxs(react$1.FieldsetRoot, { ...chakraProps, children: [
621
- /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { display: "flex", flexWrap: "wrap", alignItems: "center", children: utils.getDateElementProps(
622
- state,
623
- showTime,
624
- options.yearsRange,
625
- options.format
626
- ).map((elemProps, i) => {
627
- const elemId = id + "_" + elemProps.type;
628
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { mr: "2", mb: "2", children: /* @__PURE__ */ jsxRuntime.jsx(
629
- DateElement,
566
+ /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { display: "flex", flexWrap: "wrap", alignItems: "center", children: elements.map((elemProps, i) => {
567
+ const elemId = `${id}_${elemProps.type}`;
568
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.Box, { mr: "2", mb: "2", width: "20", children: /* @__PURE__ */ jsxRuntime.jsx(
569
+ utils.DateElement,
630
570
  {
631
571
  ...props,
632
572
  ...elemProps,
633
573
  autofocus: autofocus && i === 0,
634
574
  disabled,
635
- id: elemId,
575
+ rootId: id,
636
576
  name: id,
637
577
  onBlur,
638
578
  onFocus,
639
579
  readonly,
640
580
  registry,
641
581
  select: handleChange,
642
- value: elemProps.value < 0 ? "" : elemProps.value
582
+ value: elemProps.value && elemProps.value < 0 ? "" : elemProps.value
643
583
  }
644
584
  ) }, elemId);
645
585
  }) }),
646
586
  /* @__PURE__ */ jsxRuntime.jsxs(react$1.Box, { display: "flex", children: [
647
- !options.hideNowButton && /* @__PURE__ */ jsxRuntime.jsx(react$1.Button, { onClick: (e) => handleNow(e), mr: "2", children: translateString(utils.TranslatableString.NowLabel) }),
648
- !options.hideClearButton && /* @__PURE__ */ jsxRuntime.jsx(react$1.Button, { onClick: (e) => handleClear(e), children: translateString(utils.TranslatableString.ClearLabel) })
587
+ !options.hideNowButton && /* @__PURE__ */ jsxRuntime.jsx(react$1.Button, { onClick: handleSetNow, mr: "2", children: translateString(utils.TranslatableString.NowLabel) }),
588
+ !options.hideClearButton && /* @__PURE__ */ jsxRuntime.jsx(react$1.Button, { onClick: handleClear, children: translateString(utils.TranslatableString.ClearLabel) })
649
589
  ] })
650
590
  ] });
651
591
  }
@@ -653,7 +593,7 @@
653
593
  autofocus: false,
654
594
  disabled: false,
655
595
  readonly: false,
656
- showTime: false,
596
+ time: false,
657
597
  options: {
658
598
  yearsRange: [1900, (/* @__PURE__ */ new Date()).getFullYear() + 2]
659
599
  }
@@ -661,11 +601,11 @@
661
601
  var AltDateWidget_default = AltDateWidget;
662
602
  function AltDateTimeWidget(props) {
663
603
  const { AltDateWidget: AltDateWidget2 } = props.registry.widgets;
664
- return /* @__PURE__ */ jsxRuntime.jsx(AltDateWidget2, { ...props, showTime: true });
604
+ return /* @__PURE__ */ jsxRuntime.jsx(AltDateWidget2, { ...props, time: true });
665
605
  }
666
606
  AltDateTimeWidget.defaultProps = {
667
607
  ...AltDateWidget_default.defaultProps,
668
- showTime: true
608
+ time: true
669
609
  };
670
610
  var AltDateTimeWidget_default = AltDateTimeWidget;
671
611
  var Checkbox = react.forwardRef(function Checkbox2(props, ref) {
@@ -679,6 +619,7 @@
679
619
  function CheckboxWidget(props) {
680
620
  const {
681
621
  id,
622
+ htmlName,
682
623
  value,
683
624
  disabled,
684
625
  readonly,
@@ -718,7 +659,7 @@
718
659
  Checkbox,
719
660
  {
720
661
  id,
721
- name: id,
662
+ name: htmlName || id,
722
663
  checked: typeof value === "undefined" ? false : value,
723
664
  disabled: disabled || readonly,
724
665
  onCheckedChange: _onChange,
@@ -733,6 +674,7 @@
733
674
  function CheckboxesWidget(props) {
734
675
  const {
735
676
  id,
677
+ htmlName,
736
678
  disabled,
737
679
  options,
738
680
  value,
@@ -774,7 +716,7 @@
774
716
  Checkbox,
775
717
  {
776
718
  id: utils.optionId(id, index),
777
- name: id,
719
+ name: htmlName || id,
778
720
  value: String(index),
779
721
  disabled: disabled || itemDisabled || readonly,
780
722
  onBlur: _onBlur,
@@ -800,6 +742,7 @@
800
742
  var RadioGroup = react$1.RadioGroup.Root;
801
743
  function RadioWidget({
802
744
  id,
745
+ htmlName,
803
746
  options,
804
747
  value,
805
748
  required,
@@ -835,7 +778,7 @@
835
778
  onBlur: _onBlur,
836
779
  onFocus: _onFocus,
837
780
  value: selectedIndex,
838
- name: id,
781
+ name: htmlName || id,
839
782
  "aria-describedby": utils.ariaDescribedByIds(id),
840
783
  children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Stack, { direction: row ? "row" : "column", children: Array.isArray(enumOptions) && enumOptions.map((option, index) => {
841
784
  const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
@@ -985,6 +928,7 @@
985
928
  function SelectWidget(props) {
986
929
  const {
987
930
  id,
931
+ htmlName,
988
932
  options,
989
933
  label,
990
934
  hideLabel,
@@ -1069,7 +1013,7 @@
1069
1013
  {
1070
1014
  collection: selectOptions,
1071
1015
  id,
1072
- name: id,
1016
+ name: htmlName || id,
1073
1017
  multiple: isMultiple,
1074
1018
  closeOnSelect: !isMultiple,
1075
1019
  onBlur: _onBlur,
@@ -1180,6 +1124,7 @@
1180
1124
  }
1181
1125
  function TextareaWidget({
1182
1126
  id,
1127
+ htmlName,
1183
1128
  placeholder,
1184
1129
  value,
1185
1130
  label,
@@ -1213,7 +1158,7 @@
1213
1158
  react$1.Textarea,
1214
1159
  {
1215
1160
  id,
1216
- name: id,
1161
+ name: htmlName || id,
1217
1162
  value: value ?? "",
1218
1163
  placeholder,
1219
1164
  autoFocus: autofocus,