@rjsf/chakra-ui 5.0.0-beta.1 → 5.0.0-beta.10

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 (65) hide show
  1. package/README.md +2 -0
  2. package/dist/chakra-ui.cjs.development.js +132 -74
  3. package/dist/chakra-ui.cjs.development.js.map +1 -1
  4. package/dist/chakra-ui.cjs.production.min.js +1 -1
  5. package/dist/chakra-ui.cjs.production.min.js.map +1 -1
  6. package/dist/chakra-ui.esm.js +133 -75
  7. package/dist/chakra-ui.esm.js.map +1 -1
  8. package/dist/chakra-ui.umd.development.js +132 -74
  9. package/dist/chakra-ui.umd.development.js.map +1 -1
  10. package/dist/chakra-ui.umd.production.min.js +1 -1
  11. package/dist/chakra-ui.umd.production.min.js.map +1 -1
  12. package/dist/index.d.ts +93 -8
  13. package/package.json +8 -7
  14. package/dist/AddButton/AddButton.d.ts +0 -4
  15. package/dist/AddButton/index.d.ts +0 -2
  16. package/dist/AltDateTimeWidget/AltDateTimeWidget.d.ts +0 -14
  17. package/dist/AltDateTimeWidget/index.d.ts +0 -2
  18. package/dist/AltDateWidget/AltDateWidget.d.ts +0 -13
  19. package/dist/AltDateWidget/index.d.ts +0 -2
  20. package/dist/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +0 -3
  21. package/dist/ArrayFieldItemTemplate/index.d.ts +0 -2
  22. package/dist/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +0 -3
  23. package/dist/ArrayFieldTemplate/index.d.ts +0 -2
  24. package/dist/BaseInputTemplate/BaseInputTemplate.d.ts +0 -3
  25. package/dist/BaseInputTemplate/index.d.ts +0 -2
  26. package/dist/ChakraFrameProvider.d.ts +0 -1
  27. package/dist/CheckboxWidget/CheckboxWidget.d.ts +0 -3
  28. package/dist/CheckboxWidget/index.d.ts +0 -2
  29. package/dist/CheckboxesWidget/CheckboxesWidget.d.ts +0 -3
  30. package/dist/CheckboxesWidget/index.d.ts +0 -2
  31. package/dist/CssReset.d.ts +0 -23
  32. package/dist/DescriptionField/DescriptionField.d.ts +0 -3
  33. package/dist/DescriptionField/index.d.ts +0 -2
  34. package/dist/ErrorList/ErrorList.d.ts +0 -3
  35. package/dist/ErrorList/index.d.ts +0 -2
  36. package/dist/FieldTemplate/FieldTemplate.d.ts +0 -3
  37. package/dist/FieldTemplate/WrapIfAdditional.d.ts +0 -7
  38. package/dist/FieldTemplate/index.d.ts +0 -2
  39. package/dist/Form/Form.d.ts +0 -4
  40. package/dist/Form/index.d.ts +0 -2
  41. package/dist/IconButton/IconButton.d.ts +0 -11
  42. package/dist/IconButton/index.d.ts +0 -2
  43. package/dist/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +0 -3
  44. package/dist/ObjectFieldTemplate/index.d.ts +0 -2
  45. package/dist/RadioWidget/RadioWidget.d.ts +0 -3
  46. package/dist/RadioWidget/index.d.ts +0 -2
  47. package/dist/RangeWidget/RangeWidget.d.ts +0 -3
  48. package/dist/RangeWidget/index.d.ts +0 -2
  49. package/dist/SelectWidget/SelectWidget.d.ts +0 -3
  50. package/dist/SelectWidget/index.d.ts +0 -2
  51. package/dist/SubmitButton/SubmitButton.d.ts +0 -3
  52. package/dist/SubmitButton/index.d.ts +0 -2
  53. package/dist/Templates/Templates.d.ts +0 -20
  54. package/dist/Templates/index.d.ts +0 -2
  55. package/dist/TextareaWidget/TextareaWidget.d.ts +0 -3
  56. package/dist/TextareaWidget/index.d.ts +0 -2
  57. package/dist/Theme/Theme.d.ts +0 -3
  58. package/dist/Theme/index.d.ts +0 -2
  59. package/dist/TitleField/TitleField.d.ts +0 -3
  60. package/dist/TitleField/index.d.ts +0 -2
  61. package/dist/UpDownWidget/UpDownWidget.d.ts +0 -3
  62. package/dist/UpDownWidget/index.d.ts +0 -2
  63. package/dist/Widgets/Widgets.d.ts +0 -34
  64. package/dist/Widgets/index.d.ts +0 -2
  65. package/dist/utils.d.ts +0 -13
package/README.md CHANGED
@@ -38,6 +38,8 @@
38
38
  - [Prerequisites](#prerequisites)
39
39
  - [Installation](#installation)
40
40
  - [Usage](#usage)
41
+ - [Optional Chakra UI Theme properties](#optional-chakra-ui-theme-properties)
42
+ - [Custom Chakra uiSchema Chakra Property](#custom-chakra-uischema-chakra-property)
41
43
  - [Roadmap](#roadmap)
42
44
  - [Contributing](#contributing)
43
45
  - [Contact](#contact)
@@ -69,7 +69,11 @@ function _objectWithoutPropertiesLoose(source, excluded) {
69
69
  return target;
70
70
  }
71
71
 
72
- var AddButton = function AddButton(props) {
72
+ var _excluded$2 = ["uiSchema"];
73
+
74
+ var AddButton = function AddButton(_ref) {
75
+ var props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
76
+
73
77
  return React__default["default"].createElement(react.Button, _extends({
74
78
  leftIcon: React__default["default"].createElement(icons.AddIcon, null)
75
79
  }, props), "Add Item");
@@ -86,6 +90,7 @@ var ArrayFieldItemTemplate = function ArrayFieldItemTemplate(props) {
86
90
  onDropIndexClick = props.onDropIndexClick,
87
91
  onReorderClick = props.onReorderClick,
88
92
  readonly = props.readonly,
93
+ uiSchema = props.uiSchema,
89
94
  registry = props.registry;
90
95
  var _registry$templates$B = registry.templates.ButtonTemplates,
91
96
  MoveDownButton = _registry$templates$B.MoveDownButton,
@@ -110,13 +115,16 @@ var ArrayFieldItemTemplate = function ArrayFieldItemTemplate(props) {
110
115
  mb: 1
111
116
  }, (hasMoveUp || hasMoveDown) && React__default["default"].createElement(MoveUpButton, {
112
117
  disabled: disabled || readonly || !hasMoveUp,
113
- onClick: onArrowUpClick
118
+ onClick: onArrowUpClick,
119
+ uiSchema: uiSchema
114
120
  }), (hasMoveUp || hasMoveDown) && React__default["default"].createElement(MoveDownButton, {
115
121
  disabled: disabled || readonly || !hasMoveDown,
116
- onClick: onArrowDownClick
122
+ onClick: onArrowDownClick,
123
+ uiSchema: uiSchema
117
124
  }), hasRemove && React__default["default"].createElement(RemoveButton, {
118
125
  disabled: disabled || readonly,
119
- onClick: onRemoveClick
126
+ onClick: onRemoveClick,
127
+ uiSchema: uiSchema
120
128
  }))));
121
129
  };
122
130
 
@@ -167,7 +175,8 @@ var ArrayFieldTemplate = function ArrayFieldTemplate(props) {
167
175
  }, React__default["default"].createElement(AddButton, {
168
176
  className: "array-item-add",
169
177
  onClick: onAddClick,
170
- disabled: disabled || readonly
178
+ disabled: disabled || readonly,
179
+ uiSchema: uiSchema
171
180
  })))));
172
181
  };
173
182
 
@@ -297,7 +306,7 @@ var ErrorList = function ErrorList(_ref) {
297
306
  })));
298
307
  };
299
308
 
300
- var _excluded = ["icon", "iconType"];
309
+ var _excluded = ["icon", "iconType", "uiSchema"];
301
310
  /**
302
311
  * props used in Template:
303
312
  * icon, tabIndex, disabled, onClick
@@ -336,57 +345,48 @@ function RemoveButton(props) {
336
345
  }));
337
346
  }
338
347
 
339
- var WrapIfAdditional = function WrapIfAdditional(props) {
340
- var children = props.children,
341
- classNames = props.classNames,
342
- disabled = props.disabled,
343
- id = props.id,
344
- label = props.label,
345
- onDropPropertyClick = props.onDropPropertyClick,
346
- onKeyChange = props.onKeyChange,
347
- readonly = props.readonly,
348
- registry = props.registry,
349
- required = props.required,
350
- schema = props.schema;
351
- var RemoveButton = registry.templates.ButtonTemplates.RemoveButton;
352
- var additional = (utils.ADDITIONAL_PROPERTY_FLAG in schema);
348
+ /** The `FieldErrorTemplate` component renders the errors local to the particular field
349
+ *
350
+ * @param props - The `FieldErrorProps` for the errors being rendered
351
+ */
353
352
 
354
- if (!additional) {
355
- return React__default["default"].createElement("div", {
356
- className: classNames
357
- }, children);
353
+ function FieldErrorTemplate(props) {
354
+ var _props$errors = props.errors,
355
+ errors = _props$errors === void 0 ? [] : _props$errors,
356
+ idSchema = props.idSchema;
357
+
358
+ if (errors.length === 0) {
359
+ return null;
358
360
  }
359
361
 
360
- var keyLabel = label + " Key";
362
+ var id = idSchema.$id + "__error";
363
+ return React__default["default"].createElement(react.List, null, errors.map(function (error, i) {
364
+ return React__default["default"].createElement(react.ListItem, {
365
+ key: i
366
+ }, React__default["default"].createElement(react.FormErrorMessage, {
367
+ id: id
368
+ }, error));
369
+ }));
370
+ }
361
371
 
362
- var handleBlur = function handleBlur(_ref) {
363
- var target = _ref.target;
364
- return onKeyChange(target.value);
365
- };
372
+ /** The `FieldHelpTemplate` component renders any help desired for a field
373
+ *
374
+ * @param props - The `FieldHelpProps` to be rendered
375
+ */
366
376
 
367
- return React__default["default"].createElement(react.Grid, {
368
- key: id + "-key",
369
- className: classNames,
370
- alignItems: "center",
371
- gap: 2
372
- }, React__default["default"].createElement(react.GridItem, null, React__default["default"].createElement(react.FormControl, {
373
- isRequired: required
374
- }, React__default["default"].createElement(react.FormLabel, {
375
- htmlFor: id + "-key",
376
- id: id + "-key-label"
377
- }, keyLabel), React__default["default"].createElement(react.Input, {
378
- defaultValue: label,
379
- disabled: disabled || readonly,
380
- id: id + "-key",
381
- name: id + "-key",
382
- onBlur: !readonly ? handleBlur : undefined,
383
- type: "text",
384
- mb: 1
385
- }))), React__default["default"].createElement(react.GridItem, null, children), React__default["default"].createElement(react.GridItem, null, React__default["default"].createElement(RemoveButton, {
386
- disabled: disabled || readonly,
387
- onClick: onDropPropertyClick(label)
388
- })));
389
- };
377
+ function FieldHelpTemplate(props) {
378
+ var idSchema = props.idSchema,
379
+ help = props.help;
380
+
381
+ if (!help) {
382
+ return null;
383
+ }
384
+
385
+ var id = idSchema.$id + "__help";
386
+ return React__default["default"].createElement(react.FormHelperText, {
387
+ id: id
388
+ }, help);
389
+ }
390
390
 
391
391
  var FieldTemplate = function FieldTemplate(props) {
392
392
  var id = props.id,
@@ -403,9 +403,13 @@ var FieldTemplate = function FieldTemplate(props) {
403
403
  required = props.required,
404
404
  _props$rawErrors = props.rawErrors,
405
405
  rawErrors = _props$rawErrors === void 0 ? [] : _props$rawErrors,
406
- rawHelp = props.rawHelp,
406
+ errors = props.errors,
407
+ help = props.help,
407
408
  rawDescription = props.rawDescription,
408
- schema = props.schema;
409
+ schema = props.schema,
410
+ uiSchema = props.uiSchema;
411
+ var uiOptions = utils.getUiOptions(uiSchema);
412
+ var WrapIfAdditionalTemplate = utils.getTemplate("WrapIfAdditionalTemplate", registry, uiOptions);
409
413
 
410
414
  if (hidden) {
411
415
  return React__default["default"].createElement("div", {
@@ -415,7 +419,7 @@ var FieldTemplate = function FieldTemplate(props) {
415
419
  }, children);
416
420
  }
417
421
 
418
- return React__default["default"].createElement(WrapIfAdditional, {
422
+ return React__default["default"].createElement(WrapIfAdditionalTemplate, {
419
423
  classNames: classNames,
420
424
  disabled: disabled,
421
425
  id: id,
@@ -425,21 +429,14 @@ var FieldTemplate = function FieldTemplate(props) {
425
429
  readonly: readonly,
426
430
  required: required,
427
431
  schema: schema,
432
+ uiSchema: uiSchema,
428
433
  registry: registry
429
434
  }, React__default["default"].createElement(react.FormControl, {
430
435
  isRequired: required,
431
436
  isInvalid: rawErrors && rawErrors.length > 0
432
437
  }, children, displayLabel && rawDescription ? React__default["default"].createElement(react.Text, {
433
438
  mt: 2
434
- }, rawDescription) : null, rawErrors && rawErrors.length > 0 && React__default["default"].createElement(react.List, null, rawErrors.map(function (error, i) {
435
- return React__default["default"].createElement(react.ListItem, {
436
- key: i
437
- }, React__default["default"].createElement(react.FormErrorMessage, {
438
- id: id
439
- }, error));
440
- })), rawHelp && React__default["default"].createElement(react.FormHelperText, {
441
- id: id
442
- }, rawHelp)));
439
+ }, rawDescription) : null, errors, help));
443
440
  };
444
441
 
445
442
  var ObjectFieldTemplate = function ObjectFieldTemplate(props) {
@@ -482,7 +479,8 @@ var ObjectFieldTemplate = function ObjectFieldTemplate(props) {
482
479
  }, React__default["default"].createElement(AddButton, {
483
480
  className: "object-property-expand",
484
481
  onClick: onAddClick(schema),
485
- disabled: disabled || readonly
482
+ disabled: disabled || readonly,
483
+ uiSchema: uiSchema
486
484
  }))));
487
485
  };
488
486
 
@@ -518,6 +516,61 @@ var TitleField = function TitleField(_ref) {
518
516
  }, title), React__default["default"].createElement(react.Divider, null));
519
517
  };
520
518
 
519
+ var WrapIfAdditionalTemplate = function WrapIfAdditionalTemplate(props) {
520
+ var children = props.children,
521
+ classNames = props.classNames,
522
+ disabled = props.disabled,
523
+ id = props.id,
524
+ label = props.label,
525
+ onDropPropertyClick = props.onDropPropertyClick,
526
+ onKeyChange = props.onKeyChange,
527
+ readonly = props.readonly,
528
+ registry = props.registry,
529
+ required = props.required,
530
+ schema = props.schema,
531
+ uiSchema = props.uiSchema; // Button templates are not overridden in the uiSchema
532
+
533
+ var RemoveButton = registry.templates.ButtonTemplates.RemoveButton;
534
+ var additional = (utils.ADDITIONAL_PROPERTY_FLAG in schema);
535
+
536
+ if (!additional) {
537
+ return React__default["default"].createElement("div", {
538
+ className: classNames
539
+ }, children);
540
+ }
541
+
542
+ var keyLabel = label + " Key";
543
+
544
+ var handleBlur = function handleBlur(_ref) {
545
+ var target = _ref.target;
546
+ return onKeyChange(target.value);
547
+ };
548
+
549
+ return React__default["default"].createElement(react.Grid, {
550
+ key: id + "-key",
551
+ className: classNames,
552
+ alignItems: "center",
553
+ gap: 2
554
+ }, React__default["default"].createElement(react.GridItem, null, React__default["default"].createElement(react.FormControl, {
555
+ isRequired: required
556
+ }, React__default["default"].createElement(react.FormLabel, {
557
+ htmlFor: id + "-key",
558
+ id: id + "-key-label"
559
+ }, keyLabel), React__default["default"].createElement(react.Input, {
560
+ defaultValue: label,
561
+ disabled: disabled || readonly,
562
+ id: id + "-key",
563
+ name: id + "-key",
564
+ onBlur: !readonly ? handleBlur : undefined,
565
+ type: "text",
566
+ mb: 1
567
+ }))), React__default["default"].createElement(react.GridItem, null, children), React__default["default"].createElement(react.GridItem, null, React__default["default"].createElement(RemoveButton, {
568
+ disabled: disabled || readonly,
569
+ onClick: onDropPropertyClick(label),
570
+ uiSchema: uiSchema
571
+ })));
572
+ };
573
+
521
574
  var Templates = {
522
575
  ArrayFieldItemTemplate: ArrayFieldItemTemplate,
523
576
  ArrayFieldTemplate: ArrayFieldTemplate,
@@ -531,9 +584,12 @@ var Templates = {
531
584
  },
532
585
  DescriptionFieldTemplate: DescriptionField,
533
586
  ErrorListTemplate: ErrorList,
587
+ FieldErrorTemplate: FieldErrorTemplate,
588
+ FieldHelpTemplate: FieldHelpTemplate,
534
589
  FieldTemplate: FieldTemplate,
535
590
  ObjectFieldTemplate: ObjectFieldTemplate,
536
- TitleFieldTemplate: TitleField
591
+ TitleFieldTemplate: TitleField,
592
+ WrapIfAdditionalTemplate: WrapIfAdditionalTemplate
537
593
  };
538
594
 
539
595
  var rangeOptions = function rangeOptions(start, stop) {
@@ -684,6 +740,7 @@ var AltDateWidget = function AltDateWidget(props) {
684
740
  autofocus: autofocus && i === 0,
685
741
  disabled: disabled,
686
742
  id: elemId,
743
+ name: id,
687
744
  onBlur: onBlur,
688
745
  onFocus: onFocus,
689
746
  readonly: readonly,
@@ -837,12 +894,13 @@ var CheckboxesWidget = function CheckboxesWidget(props) {
837
894
  defaultValue: value
838
895
  }, React__default["default"].createElement(react.Stack, {
839
896
  direction: row ? "row" : "column"
840
- }, enumOptions.map(function (option, index) {
897
+ }, Array.isArray(enumOptions) && enumOptions.map(function (option) {
841
898
  var checked = value.indexOf(option.value) !== -1;
842
- var itemDisabled = enumDisabled && enumDisabled.indexOf(option.value) !== -1;
899
+ var itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
843
900
  return React__default["default"].createElement(react.Checkbox, {
844
- key: id + "_" + index,
845
- id: id + "_" + index,
901
+ key: option.value,
902
+ id: id + "-" + option.value,
903
+ name: id,
846
904
  value: option.value,
847
905
  isChecked: checked,
848
906
  isDisabled: disabled || itemDisabled || readonly,
@@ -899,12 +957,12 @@ var RadioWidget = function RadioWidget(_ref) {
899
957
  name: id
900
958
  }, React__default["default"].createElement(react.Stack, {
901
959
  direction: row ? "row" : "column"
902
- }, enumOptions.map(function (option, i) {
903
- var itemDisabled = Boolean(enumDisabled && enumDisabled.indexOf(option.value) != -1);
960
+ }, Array.isArray(enumOptions) && enumOptions.map(function (option) {
961
+ var itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
904
962
  return React__default["default"].createElement(react.Radio, {
905
963
  value: "" + option.value,
906
- key: i,
907
- id: id + "-radio-" + option.value,
964
+ key: option.value,
965
+ id: id + "-" + option.value,
908
966
  disabled: disabled || itemDisabled || readonly
909
967
  }, "" + option.label);
910
968
  }))));