@rjsf/chakra-ui 5.0.0-beta.14 → 5.0.0-beta.16

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.
@@ -64,15 +64,15 @@ function _objectWithoutPropertiesLoose(source, excluded) {
64
64
  return target;
65
65
  }
66
66
 
67
- var _excluded$2 = ["uiSchema"];
68
- var AddButton = function AddButton(_ref) {
67
+ var _excluded$2 = ["uiSchema", "registry"];
68
+ function AddButton(_ref) {
69
69
  var props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
70
70
  return React__default["default"].createElement(react.Button, _extends({
71
71
  leftIcon: React__default["default"].createElement(icons.AddIcon, null)
72
72
  }, props), "Add Item");
73
- };
73
+ }
74
74
 
75
- var ArrayFieldItemTemplate = function ArrayFieldItemTemplate(props) {
75
+ function ArrayFieldItemTemplate(props) {
76
76
  var children = props.children,
77
77
  disabled = props.disabled,
78
78
  hasToolbar = props.hasToolbar,
@@ -109,20 +109,23 @@ var ArrayFieldItemTemplate = function ArrayFieldItemTemplate(props) {
109
109
  }, (hasMoveUp || hasMoveDown) && React__default["default"].createElement(MoveUpButton, {
110
110
  disabled: disabled || readonly || !hasMoveUp,
111
111
  onClick: onArrowUpClick,
112
- uiSchema: uiSchema
112
+ uiSchema: uiSchema,
113
+ registry: registry
113
114
  }), (hasMoveUp || hasMoveDown) && React__default["default"].createElement(MoveDownButton, {
114
115
  disabled: disabled || readonly || !hasMoveDown,
115
116
  onClick: onArrowDownClick,
116
- uiSchema: uiSchema
117
+ uiSchema: uiSchema,
118
+ registry: registry
117
119
  }), hasRemove && React__default["default"].createElement(RemoveButton, {
118
120
  disabled: disabled || readonly,
119
121
  onClick: onRemoveClick,
120
- uiSchema: uiSchema
122
+ uiSchema: uiSchema,
123
+ registry: registry
121
124
  }))));
122
- };
125
+ }
123
126
 
124
127
  var _excluded$1 = ["key"];
125
- var ArrayFieldTemplate = function ArrayFieldTemplate(props) {
128
+ function ArrayFieldTemplate(props) {
126
129
  var canAdd = props.canAdd,
127
130
  disabled = props.disabled,
128
131
  idSchema = props.idSchema,
@@ -169,9 +172,10 @@ var ArrayFieldTemplate = function ArrayFieldTemplate(props) {
169
172
  className: "array-item-add",
170
173
  onClick: onAddClick,
171
174
  disabled: disabled || readonly,
172
- uiSchema: uiSchema
175
+ uiSchema: uiSchema,
176
+ registry: registry
173
177
  })))));
174
- };
178
+ }
175
179
 
176
180
  function getChakra(_ref) {
177
181
  var _ref$uiSchema = _ref.uiSchema,
@@ -192,7 +196,7 @@ function getChakra(_ref) {
192
196
  return chakraProps;
193
197
  }
194
198
 
195
- var BaseInputTemplate = function BaseInputTemplate(props) {
199
+ function BaseInputTemplate(props) {
196
200
  var id = props.id,
197
201
  type = props.type,
198
202
  value = props.value,
@@ -257,9 +261,9 @@ var BaseInputTemplate = function BaseInputTemplate(props) {
257
261
  value: example
258
262
  });
259
263
  })) : null);
260
- };
264
+ }
261
265
 
262
- var DescriptionField = function DescriptionField(_ref) {
266
+ function DescriptionField(_ref) {
263
267
  var description = _ref.description,
264
268
  id = _ref.id;
265
269
  if (!description) {
@@ -273,9 +277,9 @@ var DescriptionField = function DescriptionField(_ref) {
273
277
  }, description);
274
278
  }
275
279
  return React__default["default"].createElement(React__default["default"].Fragment, null, description);
276
- };
280
+ }
277
281
 
278
- var ErrorList = function ErrorList(_ref) {
282
+ function ErrorList(_ref) {
279
283
  var errors = _ref.errors;
280
284
  return React__default["default"].createElement(react.Alert, {
281
285
  flexDirection: "column",
@@ -290,14 +294,10 @@ var ErrorList = function ErrorList(_ref) {
290
294
  color: "red.500"
291
295
  }), error.stack);
292
296
  })));
293
- };
297
+ }
294
298
 
295
- var _excluded = ["icon", "iconType", "uiSchema"];
296
- /**
297
- * props used in Template:
298
- * icon, tabIndex, disabled, onClick
299
- */
300
- var ChakraIconButton = /*#__PURE__*/React.memo(function (props) {
299
+ var _excluded = ["icon", "iconType", "uiSchema", "registry"];
300
+ function ChakraIconButton(props) {
301
301
  var icon = props.icon,
302
302
  otherProps = _objectWithoutPropertiesLoose(props, _excluded);
303
303
  return React__default["default"].createElement(react.IconButton, _extends({
@@ -305,24 +305,26 @@ var ChakraIconButton = /*#__PURE__*/React.memo(function (props) {
305
305
  }, otherProps, {
306
306
  icon: icon
307
307
  }));
308
- });
308
+ }
309
309
  ChakraIconButton.displayName = "ChakraIconButton";
310
+ var ChakraIconButton$1 = /*#__PURE__*/React__default["default"].memo(ChakraIconButton);
311
+
310
312
  function MoveDownButton(props) {
311
- return React__default["default"].createElement(ChakraIconButton, _extends({
313
+ return React__default["default"].createElement(ChakraIconButton$1, _extends({
312
314
  title: "Move down"
313
315
  }, props, {
314
316
  icon: React__default["default"].createElement(icons.ArrowDownIcon, null)
315
317
  }));
316
318
  }
317
319
  function MoveUpButton(props) {
318
- return React__default["default"].createElement(ChakraIconButton, _extends({
320
+ return React__default["default"].createElement(ChakraIconButton$1, _extends({
319
321
  title: "Move up"
320
322
  }, props, {
321
323
  icon: React__default["default"].createElement(icons.ArrowUpIcon, null)
322
324
  }));
323
325
  }
324
326
  function RemoveButton(props) {
325
- return React__default["default"].createElement(ChakraIconButton, _extends({
327
+ return React__default["default"].createElement(ChakraIconButton$1, _extends({
326
328
  title: "Remove"
327
329
  }, props, {
328
330
  icon: React__default["default"].createElement(icons.DeleteIcon, null)
@@ -366,7 +368,7 @@ function FieldHelpTemplate(props) {
366
368
  }, help);
367
369
  }
368
370
 
369
- var FieldTemplate = function FieldTemplate(props) {
371
+ function FieldTemplate(props) {
370
372
  var id = props.id,
371
373
  children = props.children,
372
374
  classNames = props.classNames,
@@ -413,9 +415,9 @@ var FieldTemplate = function FieldTemplate(props) {
413
415
  }, children, displayLabel && rawDescription ? React__default["default"].createElement(react.Text, {
414
416
  mt: 2
415
417
  }, rawDescription) : null, errors, help));
416
- };
418
+ }
417
419
 
418
- var ObjectFieldTemplate = function ObjectFieldTemplate(props) {
420
+ function ObjectFieldTemplate(props) {
419
421
  var description = props.description,
420
422
  title = props.title,
421
423
  properties = props.properties,
@@ -459,11 +461,12 @@ var ObjectFieldTemplate = function ObjectFieldTemplate(props) {
459
461
  className: "object-property-expand",
460
462
  onClick: onAddClick(schema),
461
463
  disabled: disabled || readonly,
462
- uiSchema: uiSchema
464
+ uiSchema: uiSchema,
465
+ registry: registry
463
466
  }))));
464
- };
467
+ }
465
468
 
466
- var SubmitButton = function SubmitButton(_ref) {
469
+ function SubmitButton(_ref) {
467
470
  var uiSchema = _ref.uiSchema;
468
471
  var _getSubmitButtonOptio = utils.getSubmitButtonOptions(uiSchema),
469
472
  submitText = _getSubmitButtonOptio.submitText,
@@ -478,9 +481,9 @@ var SubmitButton = function SubmitButton(_ref) {
478
481
  type: "submit",
479
482
  variant: "solid"
480
483
  }, submitButtonProps), submitText));
481
- };
484
+ }
482
485
 
483
- var TitleField = function TitleField(_ref) {
486
+ function TitleField(_ref) {
484
487
  var id = _ref.id,
485
488
  title = _ref.title;
486
489
  return React__default["default"].createElement(react.Box, {
@@ -490,9 +493,9 @@ var TitleField = function TitleField(_ref) {
490
493
  }, React__default["default"].createElement(react.Heading, {
491
494
  as: "h5"
492
495
  }, title), React__default["default"].createElement(react.Divider, null));
493
- };
496
+ }
494
497
 
495
- var WrapIfAdditionalTemplate = function WrapIfAdditionalTemplate(props) {
498
+ function WrapIfAdditionalTemplate(props) {
496
499
  var children = props.children,
497
500
  classNames = props.classNames,
498
501
  disabled = props.disabled,
@@ -539,30 +542,34 @@ var WrapIfAdditionalTemplate = function WrapIfAdditionalTemplate(props) {
539
542
  }))), React__default["default"].createElement(react.GridItem, null, children), React__default["default"].createElement(react.GridItem, null, React__default["default"].createElement(RemoveButton, {
540
543
  disabled: disabled || readonly,
541
544
  onClick: onDropPropertyClick(label),
542
- uiSchema: uiSchema
545
+ uiSchema: uiSchema,
546
+ registry: registry
543
547
  })));
544
- };
548
+ }
545
549
 
546
- var Templates = {
547
- ArrayFieldItemTemplate: ArrayFieldItemTemplate,
548
- ArrayFieldTemplate: ArrayFieldTemplate,
549
- BaseInputTemplate: BaseInputTemplate,
550
- ButtonTemplates: {
551
- AddButton: AddButton,
552
- MoveDownButton: MoveDownButton,
553
- MoveUpButton: MoveUpButton,
554
- RemoveButton: RemoveButton,
555
- SubmitButton: SubmitButton
556
- },
557
- DescriptionFieldTemplate: DescriptionField,
558
- ErrorListTemplate: ErrorList,
559
- FieldErrorTemplate: FieldErrorTemplate,
560
- FieldHelpTemplate: FieldHelpTemplate,
561
- FieldTemplate: FieldTemplate,
562
- ObjectFieldTemplate: ObjectFieldTemplate,
563
- TitleFieldTemplate: TitleField,
564
- WrapIfAdditionalTemplate: WrapIfAdditionalTemplate
565
- };
550
+ function generateTemplates() {
551
+ return {
552
+ ArrayFieldItemTemplate: ArrayFieldItemTemplate,
553
+ ArrayFieldTemplate: ArrayFieldTemplate,
554
+ BaseInputTemplate: BaseInputTemplate,
555
+ ButtonTemplates: {
556
+ AddButton: AddButton,
557
+ MoveDownButton: MoveDownButton,
558
+ MoveUpButton: MoveUpButton,
559
+ RemoveButton: RemoveButton,
560
+ SubmitButton: SubmitButton
561
+ },
562
+ DescriptionFieldTemplate: DescriptionField,
563
+ ErrorListTemplate: ErrorList,
564
+ FieldErrorTemplate: FieldErrorTemplate,
565
+ FieldHelpTemplate: FieldHelpTemplate,
566
+ FieldTemplate: FieldTemplate,
567
+ ObjectFieldTemplate: ObjectFieldTemplate,
568
+ TitleFieldTemplate: TitleField,
569
+ WrapIfAdditionalTemplate: WrapIfAdditionalTemplate
570
+ };
571
+ }
572
+ var Templates = /*#__PURE__*/generateTemplates();
566
573
 
567
574
  var rangeOptions = function rangeOptions(start, stop) {
568
575
  var options = [];
@@ -574,12 +581,31 @@ var rangeOptions = function rangeOptions(start, stop) {
574
581
  }
575
582
  return options;
576
583
  };
584
+ function DateElement(props) {
585
+ var SelectWidget = props.registry.widgets.SelectWidget;
586
+ var value = props.value ? props.value : undefined;
587
+ return React__default["default"].createElement(SelectWidget, _extends({}, props, {
588
+ label: "",
589
+ className: "form-control",
590
+ onChange: function onChange(elemValue) {
591
+ return props.select(props.type, elemValue);
592
+ },
593
+ options: {
594
+ enumOptions: rangeOptions(props.range[0], props.range[1])
595
+ },
596
+ placeholder: props.type,
597
+ schema: {
598
+ type: "integer"
599
+ },
600
+ value: value
601
+ }));
602
+ }
577
603
  var readyForChange = function readyForChange(state) {
578
604
  return Object.keys(state).every(function (key) {
579
605
  return typeof state[key] !== "undefined" && state[key] !== -1;
580
606
  });
581
607
  };
582
- var AltDateWidget = function AltDateWidget(props) {
608
+ function AltDateWidget(props) {
583
609
  var autofocus = props.autofocus,
584
610
  disabled = props.disabled,
585
611
  id = props.id,
@@ -591,7 +617,6 @@ var AltDateWidget = function AltDateWidget(props) {
591
617
  registry = props.registry,
592
618
  showTime = props.showTime,
593
619
  value = props.value;
594
- var SelectWidget = registry.widgets.SelectWidget;
595
620
  var _useState = React.useState(utils.parseDateString(value, showTime)),
596
621
  state = _useState[0],
597
622
  setState = _useState[1];
@@ -659,24 +684,6 @@ var AltDateWidget = function AltDateWidget(props) {
659
684
  }
660
685
  return data;
661
686
  };
662
- var renderDateElement = function renderDateElement(elemProps) {
663
- var value = elemProps.value ? elemProps.value : undefined;
664
- return React__default["default"].createElement(SelectWidget, _extends({}, elemProps, {
665
- label: undefined,
666
- className: "form-control",
667
- onChange: function onChange(elemValue) {
668
- return elemProps.select(elemProps.type, elemValue);
669
- },
670
- options: {
671
- enumOptions: rangeOptions(elemProps.range[0], elemProps.range[1])
672
- },
673
- placeholder: elemProps.type,
674
- schema: {
675
- type: "integer"
676
- },
677
- value: value
678
- }));
679
- };
680
687
  return React__default["default"].createElement(react.Box, null, React__default["default"].createElement(react.Box, {
681
688
  display: "flex",
682
689
  flexWrap: "wrap",
@@ -688,7 +695,7 @@ var AltDateWidget = function AltDateWidget(props) {
688
695
  key: elemId,
689
696
  mr: "2",
690
697
  mb: "2"
691
- }, renderDateElement(_extends({}, props, elemProps, {
698
+ }, React__default["default"].createElement(DateElement, _extends({}, props, elemProps, {
692
699
  autofocus: autofocus && i === 0,
693
700
  disabled: disabled,
694
701
  id: elemId,
@@ -712,7 +719,7 @@ var AltDateWidget = function AltDateWidget(props) {
712
719
  return handleClear(e);
713
720
  }
714
721
  }, "Clear")));
715
- };
722
+ }
716
723
  AltDateWidget.defaultProps = {
717
724
  autofocus: false,
718
725
  disabled: false,
@@ -723,17 +730,17 @@ AltDateWidget.defaultProps = {
723
730
  }
724
731
  };
725
732
 
726
- var AltDateTimeWidget = function AltDateTimeWidget(props) {
733
+ function AltDateTimeWidget(props) {
727
734
  var AltDateWidget = props.registry.widgets.AltDateWidget;
728
735
  return React__default["default"].createElement(AltDateWidget, _extends({}, props, {
729
736
  showTime: true
730
737
  }));
731
- };
738
+ }
732
739
  AltDateTimeWidget.defaultProps = /*#__PURE__*/_extends({}, AltDateWidget.defaultProps, {
733
740
  showTime: true
734
741
  });
735
742
 
736
- var CheckboxWidget = function CheckboxWidget(props) {
743
+ function CheckboxWidget(props) {
737
744
  var id = props.id,
738
745
  value = props.value,
739
746
  disabled = props.disabled,
@@ -741,12 +748,16 @@ var CheckboxWidget = function CheckboxWidget(props) {
741
748
  onChange = props.onChange,
742
749
  onBlur = props.onBlur,
743
750
  onFocus = props.onFocus,
744
- required = props.required,
745
751
  label = props.label,
746
- uiSchema = props.uiSchema;
752
+ uiSchema = props.uiSchema,
753
+ schema = props.schema;
747
754
  var chakraProps = getChakra({
748
755
  uiSchema: uiSchema
749
756
  });
757
+ // Because an unchecked checkbox will cause html5 validation to fail, only add
758
+ // the "required" attribute if the field value must be "true", due to the
759
+ // "const" or "enum" keywords
760
+ var required = utils.schemaRequiresTrueValue(schema);
750
761
  var _onChange = function _onChange(_ref) {
751
762
  var checked = _ref.target.checked;
752
763
  return onChange(checked);
@@ -772,19 +783,9 @@ var CheckboxWidget = function CheckboxWidget(props) {
772
783
  onBlur: _onBlur,
773
784
  onFocus: _onFocus
774
785
  }, label && React__default["default"].createElement(react.Text, null, label)));
775
- };
786
+ }
776
787
 
777
- // const selectValue = (value, selected, all) => {
778
- // const at = all.indexOf(value);
779
- // const updated = selected.slice(0, at).concat(value, selected.slice(at));
780
- // // As inserting values at predefined index positions doesn't work with empty
781
- // // arrays, we need to reorder the updated selection to match the initial order
782
- // return updated.sort((a, b) => all.indexOf(a) > all.indexOf(b));
783
- // };
784
- // const deselectValue = (value, selected) => {
785
- // return selected.filter((v) => v !== value);
786
- // };
787
- var CheckboxesWidget = function CheckboxesWidget(props) {
788
+ function CheckboxesWidget(props) {
788
789
  var id = props.id,
789
790
  disabled = props.disabled,
790
791
  options = props.options,
@@ -804,14 +805,6 @@ var CheckboxesWidget = function CheckboxesWidget(props) {
804
805
  var chakraProps = getChakra({
805
806
  uiSchema: uiSchema
806
807
  });
807
- // const _onChange = option => ({ target: { checked } }) => {
808
- // const all = enumOptions.map(({ value }) => value)
809
- // if (checked) {
810
- // onChange(selectValue(option.value, value, all))
811
- // } else {
812
- // onChange(deselectValue(option.value, value))
813
- // }
814
- // }
815
808
  var _onBlur = function _onBlur(_ref) {
816
809
  var value = _ref.target.value;
817
810
  return onBlur(id, value);
@@ -852,9 +845,9 @@ var CheckboxesWidget = function CheckboxesWidget(props) {
852
845
  onFocus: _onFocus
853
846
  }, option.label && React__default["default"].createElement(react.Text, null, option.label));
854
847
  }))));
855
- };
848
+ }
856
849
 
857
- var RadioWidget = function RadioWidget(_ref) {
850
+ function RadioWidget(_ref) {
858
851
  var id = _ref.id,
859
852
  schema = _ref.schema,
860
853
  options = _ref.options,
@@ -907,9 +900,9 @@ var RadioWidget = function RadioWidget(_ref) {
907
900
  disabled: disabled || itemDisabled || readonly
908
901
  }, "" + option.label);
909
902
  }))));
910
- };
903
+ }
911
904
 
912
- var RangeWidget = function RangeWidget(_ref) {
905
+ function RangeWidget(_ref) {
913
906
  var value = _ref.value,
914
907
  readonly = _ref.readonly,
915
908
  disabled = _ref.disabled,
@@ -955,9 +948,9 @@ var RangeWidget = function RangeWidget(_ref) {
955
948
  onBlur: _onBlur,
956
949
  onFocus: _onFocus
957
950
  }), React__default["default"].createElement(react.SliderTrack, null, React__default["default"].createElement(react.SliderFilledTrack, null)), React__default["default"].createElement(react.SliderThumb, null)));
958
- };
951
+ }
959
952
 
960
- var SelectWidget = function SelectWidget(props) {
953
+ function SelectWidget(props) {
961
954
  var schema = props.schema,
962
955
  id = props.id,
963
956
  options = props.options,
@@ -1035,9 +1028,9 @@ var SelectWidget = function SelectWidget(props) {
1035
1028
  autoFocus: autofocus,
1036
1029
  value: formValue
1037
1030
  }));
1038
- };
1031
+ }
1039
1032
 
1040
- var TextareaWidget = function TextareaWidget(_ref) {
1033
+ function TextareaWidget(_ref) {
1041
1034
  var id = _ref.id,
1042
1035
  placeholder = _ref.placeholder,
1043
1036
  value = _ref.value,
@@ -1090,9 +1083,9 @@ var TextareaWidget = function TextareaWidget(_ref) {
1090
1083
  onBlur: _onBlur,
1091
1084
  onFocus: _onFocus
1092
1085
  }));
1093
- };
1086
+ }
1094
1087
 
1095
- var UpDownWidget = function UpDownWidget(props) {
1088
+ function UpDownWidget(props) {
1096
1089
  var id = props.id,
1097
1090
  schema = props.schema,
1098
1091
  uiSchema = props.uiSchema,
@@ -1140,26 +1133,35 @@ var UpDownWidget = function UpDownWidget(props) {
1140
1133
  id: id,
1141
1134
  name: id
1142
1135
  }), React__default["default"].createElement(react.NumberInputStepper, null, React__default["default"].createElement(react.NumberIncrementStepper, null), React__default["default"].createElement(react.NumberDecrementStepper, null))));
1143
- };
1136
+ }
1144
1137
 
1145
- var widgets = {
1146
- AltDateTimeWidget: AltDateTimeWidget,
1147
- AltDateWidget: AltDateWidget,
1148
- CheckboxWidget: CheckboxWidget,
1149
- CheckboxesWidget: CheckboxesWidget,
1150
- RadioWidget: RadioWidget,
1151
- RangeWidget: RangeWidget,
1152
- SelectWidget: SelectWidget,
1153
- TextareaWidget: TextareaWidget,
1154
- UpDownWidget: UpDownWidget
1155
- };
1138
+ function generateWidgets() {
1139
+ return {
1140
+ AltDateTimeWidget: AltDateTimeWidget,
1141
+ AltDateWidget: AltDateWidget,
1142
+ CheckboxWidget: CheckboxWidget,
1143
+ CheckboxesWidget: CheckboxesWidget,
1144
+ RadioWidget: RadioWidget,
1145
+ RangeWidget: RangeWidget,
1146
+ SelectWidget: SelectWidget,
1147
+ TextareaWidget: TextareaWidget,
1148
+ UpDownWidget: UpDownWidget
1149
+ };
1150
+ }
1151
+ var Widgets = /*#__PURE__*/generateWidgets();
1156
1152
 
1157
- var Theme = {
1158
- templates: Templates,
1159
- widgets: widgets
1160
- };
1153
+ function generateTheme() {
1154
+ return {
1155
+ templates: generateTemplates(),
1156
+ widgets: generateWidgets()
1157
+ };
1158
+ }
1159
+ var Theme = /*#__PURE__*/generateTheme();
1161
1160
 
1162
- var Form = /*#__PURE__*/core.withTheme(Theme);
1161
+ function generateForm() {
1162
+ return core.withTheme(generateTheme());
1163
+ }
1164
+ var Form = /*#__PURE__*/generateForm();
1163
1165
 
1164
1166
  /**
1165
1167
  *
@@ -1227,7 +1229,11 @@ var __createChakraFrameProvider = function __createChakraFrameProvider(props) {
1227
1229
  exports.Form = Form;
1228
1230
  exports.Templates = Templates;
1229
1231
  exports.Theme = Theme;
1230
- exports.Widgets = widgets;
1232
+ exports.Widgets = Widgets;
1231
1233
  exports.__createChakraFrameProvider = __createChakraFrameProvider;
1232
1234
  exports["default"] = Form;
1235
+ exports.generateForm = generateForm;
1236
+ exports.generateTemplates = generateTemplates;
1237
+ exports.generateTheme = generateTheme;
1238
+ exports.generateWidgets = generateWidgets;
1233
1239
  //# sourceMappingURL=chakra-ui.cjs.development.js.map