@react-fabric/form 1.0.0-beta.5 → 1.0.0-beta.51

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 (174) hide show
  1. package/{src/input/ArrayInput.module.css → css/_arrayInput.css} +8 -8
  2. package/css/_colorPicker.css +65 -0
  3. package/{src/internal/Field.module.css → css/_field.css} +64 -29
  4. package/{src/input/File.module.css → css/_file.css} +21 -6
  5. package/css/styles.css +27 -0
  6. package/dist/cjs/builder/FileField.js +37 -25
  7. package/dist/cjs/builder/FormField.js +50 -34
  8. package/dist/cjs/builder/SchemaEditor.js +72 -0
  9. package/dist/cjs/builder/components/AddSchemaFields.js +62 -0
  10. package/dist/cjs/builder/components/SchemaArrayForm.js +143 -0
  11. package/dist/cjs/builder/components/SchemaField.js +414 -0
  12. package/dist/cjs/form/Controller.js +1 -1
  13. package/dist/cjs/form/Form.js +11 -6
  14. package/dist/cjs/hooks/useFormBuilder.js +27 -15
  15. package/dist/cjs/index.js +11 -2
  16. package/dist/cjs/input/ArrayInput.js +61 -33
  17. package/dist/cjs/input/AvatarInput.js +9 -8
  18. package/dist/cjs/input/Checkbox.js +6 -5
  19. package/dist/cjs/input/ColorInput.js +95 -56
  20. package/dist/cjs/input/ColorPicker.js +1 -35
  21. package/dist/cjs/input/DateInput.js +186 -0
  22. package/dist/cjs/input/Field.js +5 -4
  23. package/dist/cjs/input/File.js +4 -7
  24. package/dist/cjs/input/Hidden.js +3 -1
  25. package/dist/cjs/input/Input.js +11 -7
  26. package/dist/cjs/input/Number.js +9 -7
  27. package/dist/cjs/input/Password.js +10 -8
  28. package/dist/cjs/input/Radio.js +2 -2
  29. package/dist/cjs/input/RadioGroup.js +6 -3
  30. package/dist/cjs/input/{Range.js → RangeSlider.js} +5 -5
  31. package/dist/cjs/input/Search.js +16 -16
  32. package/dist/cjs/input/Slider.js +3 -3
  33. package/dist/cjs/input/Switch.js +30 -7
  34. package/dist/cjs/input/Textarea.js +13 -4
  35. package/dist/cjs/internal/ErrorIcon.js +1 -1
  36. package/dist/cjs/internal/FieldWrapper.js +11 -4
  37. package/dist/cjs/internal/InputWrapper.js +19 -16
  38. package/dist/cjs/select/AutoComplete.js +12 -8
  39. package/dist/cjs/select/DualList.js +4 -1
  40. package/dist/cjs/select/List.js +45 -20
  41. package/dist/cjs/select/Options.js +2 -2
  42. package/dist/cjs/select/Select.js +14 -4
  43. package/dist/cjs/select/useSelect.js +10 -6
  44. package/dist/cjs/types/schema.js +43 -0
  45. package/dist/cjs/utils/eventHandlers.js +11 -5
  46. package/dist/cjs/utils/getColor.js +6 -0
  47. package/dist/esm/builder/FileField.js +39 -27
  48. package/dist/esm/builder/FormField.js +50 -34
  49. package/dist/esm/builder/SchemaEditor.js +72 -0
  50. package/dist/esm/builder/components/AddSchemaFields.js +62 -0
  51. package/dist/esm/builder/components/SchemaArrayForm.js +143 -0
  52. package/dist/esm/builder/components/SchemaField.js +414 -0
  53. package/dist/esm/form/Controller.js +1 -1
  54. package/dist/esm/form/Form.js +11 -6
  55. package/dist/esm/hooks/useFormBuilder.js +25 -13
  56. package/dist/esm/index.js +5 -1
  57. package/dist/esm/input/ArrayInput.js +61 -33
  58. package/dist/esm/input/AvatarInput.js +9 -8
  59. package/dist/esm/input/Checkbox.js +6 -5
  60. package/dist/esm/input/ColorInput.js +97 -58
  61. package/dist/esm/input/ColorPicker.js +1 -35
  62. package/dist/esm/input/DateInput.js +186 -0
  63. package/dist/esm/input/Field.js +6 -5
  64. package/dist/esm/input/File.js +6 -9
  65. package/dist/esm/input/Hidden.js +3 -1
  66. package/dist/esm/input/Input.js +13 -9
  67. package/dist/esm/input/Number.js +11 -9
  68. package/dist/esm/input/Password.js +12 -10
  69. package/dist/esm/input/Radio.js +2 -2
  70. package/dist/esm/input/RadioGroup.js +7 -4
  71. package/dist/esm/input/{Range.js → RangeSlider.js} +5 -5
  72. package/dist/esm/input/Search.js +18 -18
  73. package/dist/esm/input/Slider.js +3 -3
  74. package/dist/esm/input/Switch.js +32 -9
  75. package/dist/esm/input/Textarea.js +14 -5
  76. package/dist/esm/internal/ErrorIcon.js +1 -1
  77. package/dist/esm/internal/FieldWrapper.js +11 -4
  78. package/dist/esm/internal/InputWrapper.js +19 -16
  79. package/dist/esm/select/AutoComplete.js +12 -8
  80. package/dist/esm/select/DualList.js +4 -1
  81. package/dist/esm/select/List.js +46 -21
  82. package/dist/esm/select/Options.js +2 -2
  83. package/dist/esm/select/Select.js +14 -4
  84. package/dist/esm/select/useSelect.js +11 -7
  85. package/{src/input/ColorPicker.module.css → dist/esm/types/schema.js} +18 -27
  86. package/dist/esm/utils/eventHandlers.js +11 -5
  87. package/dist/esm/utils/getColor.js +6 -1
  88. package/dist/types/builder/FileField.d.ts +4 -2
  89. package/dist/types/builder/FormField.d.ts +3 -1
  90. package/dist/types/builder/SchemaEditor.d.ts +2 -0
  91. package/dist/types/builder/components/AddSchemaFields.d.ts +2 -0
  92. package/dist/types/builder/components/SchemaArrayForm.d.ts +2 -0
  93. package/dist/types/builder/components/SchemaField.d.ts +10 -0
  94. package/dist/types/form/Controller.d.ts +2 -2
  95. package/dist/types/form/Form.d.ts +5 -1
  96. package/dist/types/hooks/useFormBuilder.d.ts +3 -1
  97. package/dist/types/index.d.ts +5 -2
  98. package/dist/types/input/ArrayInput.d.ts +39 -6
  99. package/dist/types/input/AvatarInput.d.ts +6 -3
  100. package/dist/types/input/Checkbox.d.ts +4 -4
  101. package/dist/types/input/ColorInput.d.ts +2 -2
  102. package/dist/types/input/ColorPicker.d.ts +1 -1
  103. package/dist/types/input/DateInput.d.ts +19 -0
  104. package/dist/types/input/Field.d.ts +0 -1
  105. package/dist/types/input/Input.d.ts +1 -1
  106. package/dist/types/input/Number.d.ts +1 -1
  107. package/dist/types/input/Password.d.ts +1 -1
  108. package/dist/types/input/Radio.d.ts +0 -1
  109. package/dist/types/input/RadioGroup.d.ts +18 -3
  110. package/dist/types/input/{Range.d.ts → RangeSlider.d.ts} +1 -1
  111. package/dist/types/input/Search.d.ts +5 -1
  112. package/dist/types/input/Switch.d.ts +7 -4
  113. package/dist/types/input/Textarea.d.ts +5 -1
  114. package/dist/types/internal/FieldWrapper.d.ts +1 -1
  115. package/dist/types/internal/InputWrapper.d.ts +1 -1
  116. package/dist/types/ranger/index.d.ts +2 -2
  117. package/dist/types/select/AutoComplete.d.ts +1 -1
  118. package/dist/types/select/DualList.d.ts +6 -2
  119. package/dist/types/select/List.d.ts +1 -1
  120. package/dist/types/select/Select.d.ts +1 -1
  121. package/dist/types/select/useSelect.d.ts +7 -15
  122. package/dist/types/types/index.d.ts +28 -7
  123. package/dist/types/types/schema.d.ts +78 -33
  124. package/dist/types/utils/eventHandlers.d.ts +1 -1
  125. package/package.json +15 -12
  126. package/src/builder/FileField.tsx +53 -27
  127. package/src/builder/FormField.tsx +52 -32
  128. package/src/builder/SchemaEditor.tsx +72 -0
  129. package/src/builder/components/AddSchemaFields.tsx +74 -0
  130. package/src/builder/components/SchemaArrayForm.tsx +158 -0
  131. package/src/builder/components/SchemaField.tsx +436 -0
  132. package/src/form/Controller.tsx +3 -3
  133. package/src/form/Form.tsx +14 -5
  134. package/src/hooks/useFormBuilder.tsx +29 -15
  135. package/src/index.ts +11 -2
  136. package/src/input/ArrayInput.tsx +130 -54
  137. package/src/input/AvatarInput.tsx +12 -8
  138. package/src/input/Checkbox.tsx +6 -5
  139. package/src/input/ColorInput.tsx +113 -69
  140. package/src/input/ColorPicker.tsx +2 -36
  141. package/src/input/DateInput.tsx +250 -0
  142. package/src/input/Field.tsx +10 -11
  143. package/src/input/File.tsx +7 -14
  144. package/src/input/Hidden.tsx +4 -1
  145. package/src/input/Input.tsx +15 -10
  146. package/src/input/Number.tsx +10 -10
  147. package/src/input/Password.tsx +13 -12
  148. package/src/input/Radio.tsx +2 -2
  149. package/src/input/RadioGroup.tsx +27 -4
  150. package/src/input/{Range.tsx → RangeSlider.tsx} +4 -4
  151. package/src/input/Search.tsx +20 -19
  152. package/src/input/Slider.tsx +3 -3
  153. package/src/input/Switch.tsx +43 -7
  154. package/src/input/Textarea.tsx +19 -5
  155. package/src/internal/ErrorIcon.tsx +1 -1
  156. package/src/internal/FieldWrapper.tsx +8 -4
  157. package/src/internal/InputWrapper.tsx +36 -20
  158. package/src/select/AutoComplete.tsx +5 -1
  159. package/src/select/DualList.tsx +8 -0
  160. package/src/select/List.tsx +41 -8
  161. package/src/select/Options.tsx +1 -1
  162. package/src/select/Select.tsx +13 -3
  163. package/src/select/useSelect.tsx +13 -5
  164. package/src/types/index.ts +34 -8
  165. package/src/types/schema.ts +96 -41
  166. package/src/utils/eventHandlers.ts +9 -3
  167. package/dist/cjs/input/ArrayInput.module.css +0 -1
  168. package/dist/cjs/input/ColorPicker.module.css +0 -1
  169. package/dist/cjs/input/File.module.css +0 -1
  170. package/dist/cjs/internal/Field.module.css +0 -1
  171. package/dist/esm/input/ArrayInput.module.css +0 -1
  172. package/dist/esm/input/ColorPicker.module.css +0 -1
  173. package/dist/esm/input/File.module.css +0 -1
  174. package/dist/esm/internal/Field.module.css +0 -1
@@ -1,33 +1,42 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var core = require('@react-fabric/core');
4
5
  var utilities = require('@react-fabric/utilities');
5
6
  var react = require('react');
6
7
  var FormField = require('../builder/FormField.js');
8
+ var schema = require('../types/schema.js');
7
9
  var jsxRuntime = require('react/jsx-runtime');
8
10
 
9
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
13
  var makeYupField = function makeYupField(field) {
12
- var yupField = utilities.yup.string();
13
- if (field.datatype === "schema") {
14
+ var yupField = utilities.yup.string().trim();
15
+ if (field.datatype === schema.DATA_TYPES.SCHEMA) {
14
16
  var child = Object.fromEntries(field.schema.map(function (field) {
15
17
  return [field.id, makeYupField(field)];
16
18
  }));
17
19
  yupField = utilities.yup.object(child);
18
20
  }
19
- if (field.datatype === "boolean") yupField = utilities.yup["boolean"]();
20
- if (field.datatype === "decimal" || field.datatype === "number" || field.datatype === "range") {
21
+ if (field.datatype === schema.DATA_TYPES.BOOL) {
22
+ yupField = utilities.yup["boolean"]();
23
+ if (field.required) yupField = yupField.test({
24
+ test: function test(value) {
25
+ return !!value;
26
+ }
27
+ });
28
+ }
29
+ if (field.datatype === schema.DATA_TYPES.NUMBER || field.datatype === schema.DATA_TYPES.RANGE) {
21
30
  yupField = utilities.yup.number();
22
31
  !utilities.isNil(field.min) && (yupField = yupField.min(field.min));
23
32
  !utilities.isNil(field.max) && (yupField = yupField.max(field.max));
24
- if (field.datatype === "range") yupField = utilities.yup.array(yupField);
33
+ if (field.datatype === schema.DATA_TYPES.RANGE) yupField = utilities.yup.array(yupField);
25
34
  }
26
- if (field.datatype === "string") {
27
- field.options && (yupField = yupField.oneOf(field.options));
35
+ if (field.datatype === schema.DATA_TYPES.STRING) {
36
+ field.options && !field.allowCustom && (yupField = yupField.oneOf(field.options));
28
37
  field.regex && (yupField = yupField.matches(new RegExp(field.regex)));
29
38
  }
30
- if (field.datatype === "file") {
39
+ if (field.datatype === schema.DATA_TYPES.FILE) {
31
40
  yupField = utilities.yup.object({
32
41
  filename: utilities.yup.string().required(),
33
42
  path: utilities.yup.string().required()
@@ -53,30 +62,33 @@ var makeYupField = function makeYupField(field) {
53
62
  }
54
63
  return yupField.label(field.label);
55
64
  };
56
- var useFormBuilder = function useFormBuilder(schema) {
65
+ var useFormBuilder = function useFormBuilder(schema$1) {
57
66
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
58
67
  var filteredSchema = react.useMemo(function () {
59
68
  var _schema$filter, _schema$filter2;
60
- return (_schema$filter = (_schema$filter2 = schema.filter) === null || _schema$filter2 === void 0 ? void 0 : _schema$filter2.call(schema, function (schm) {
69
+ return (_schema$filter = (_schema$filter2 = schema$1.filter) === null || _schema$filter2 === void 0 ? void 0 : _schema$filter2.call(schema$1, function (schm) {
61
70
  return !!schm.id;
62
71
  })) !== null && _schema$filter !== void 0 ? _schema$filter : [];
63
- }, [schema]);
72
+ }, [schema$1]);
64
73
  var schemaDef = utilities.yup.object(Object.fromEntries(filteredSchema.map(function (field) {
65
74
  return [field.id, makeYupField(field)];
66
75
  })));
67
- var formDef = /*#__PURE__*/jsxRuntime.jsx(react.Fragment, {
68
- children: filteredSchema.map(function (field, idx) {
76
+ var formDef = /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
77
+ children: [filteredSchema.map(function (field, idx) {
69
78
  return /*#__PURE__*/jsxRuntime.jsx("div", {
70
79
  className: "mb-4",
71
- children: field.datatype === "schema" ? null : /*#__PURE__*/jsxRuntime.jsx(FormField.FormField, _objectSpread(_objectSpread({}, field), {}, {
80
+ children: field.datatype === schema.DATA_TYPES.SCHEMA ? null : /*#__PURE__*/jsxRuntime.jsx(FormField.FormField, _objectSpread(_objectSpread({}, field), {}, {
72
81
  autoFocus: idx === 0,
73
82
  fileUrl: options.fileUrl,
83
+ optionLists: options.optionLists,
74
84
  uploadHandler: options.uploadHandler,
75
85
  inline: options.inline,
76
86
  prefix: options.prefix
77
87
  }))
78
88
  }, field.id);
79
- })
89
+ }), filteredSchema.length === 0 && /*#__PURE__*/jsxRuntime.jsx(core.EmptyContent, {
90
+ message: "No schema defined"
91
+ })]
80
92
  });
81
93
  return {
82
94
  formDef: formDef,
package/dist/cjs/index.js CHANGED
@@ -3,12 +3,16 @@
3
3
  require('./i18n/index.js');
4
4
  var Controller = require('./form/Controller.js');
5
5
  var Form = require('./form/Form.js');
6
+ var SchemaEditor = require('./builder/SchemaEditor.js');
6
7
  var useFileUploader = require('./hooks/useFileUploader.js');
7
8
  var useFormBuilder = require('./hooks/useFormBuilder.js');
9
+ var schema = require('./types/schema.js');
8
10
  var ArrayInput = require('./input/ArrayInput.js');
11
+ var AvatarInput = require('./input/AvatarInput.js');
9
12
  var Checkbox = require('./input/Checkbox.js');
10
13
  var ColorInput = require('./input/ColorInput.js');
11
14
  var ColorPicker = require('./input/ColorPicker.js');
15
+ var DateInput = require('./input/DateInput.js');
12
16
  var Field = require('./input/Field.js');
13
17
  var File = require('./input/File.js');
14
18
  var Hidden = require('./input/Hidden.js');
@@ -17,7 +21,7 @@ var Number = require('./input/Number.js');
17
21
  var Password = require('./input/Password.js');
18
22
  var Radio = require('./input/Radio.js');
19
23
  var RadioGroup = require('./input/RadioGroup.js');
20
- var Range = require('./input/Range.js');
24
+ var RangeSlider = require('./input/RangeSlider.js');
21
25
  var Search = require('./input/Search.js');
22
26
  var Slider = require('./input/Slider.js');
23
27
  var Switch = require('./input/Switch.js');
@@ -31,12 +35,17 @@ var Select = require('./select/Select.js');
31
35
 
32
36
  exports.Controller = Controller.Controller;
33
37
  exports.Form = Form.Form;
38
+ exports.SchemaEditor = SchemaEditor.SchemaEditor;
34
39
  exports.useFileUploader = useFileUploader.useFileUploader;
35
40
  exports.useFormBuilder = useFormBuilder.useFormBuilder;
41
+ exports.DATA_TYPES = schema.DATA_TYPES;
42
+ exports.SCHEMA_CUSTOM_LIST = schema.SCHEMA_CUSTOM_LIST;
36
43
  exports.ArrayInput = ArrayInput.ArrayInput;
44
+ exports.AvatarInput = AvatarInput.AvatarInput;
37
45
  exports.Checkbox = Checkbox.Checkbox;
38
46
  exports.ColorInput = ColorInput.ColorInput;
39
47
  exports.ColorPicker = ColorPicker.ColorPicker;
48
+ exports.DateInput = DateInput.DateInput;
40
49
  exports.Field = Field.Field;
41
50
  exports.FileInput = File.FileInput;
42
51
  exports.HiddenInput = Hidden.HiddenInput;
@@ -45,7 +54,7 @@ exports.Number = Number.Number;
45
54
  exports.Password = Password.Password;
46
55
  exports.Radio = Radio.Radio;
47
56
  exports.RadioGroup = RadioGroup.RadioGroup;
48
- exports.Range = Range.Range;
57
+ exports.RangeSlider = RangeSlider.RangeSlider;
49
58
  exports.Search = Search.Search;
50
59
  exports.Slider = Slider.Slider;
51
60
  exports.Switch = Switch.Switch;
@@ -5,29 +5,32 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
5
5
  var core = require('@dnd-kit/core');
6
6
  var sortable = require('@dnd-kit/sortable');
7
7
  var core$1 = require('@react-fabric/core');
8
- var utilities$1 = require('@react-fabric/utilities');
8
+ var utilities = require('@react-fabric/utilities');
9
9
  var classNames = require('classnames');
10
10
  var react = require('react');
11
11
  var reactHookForm = require('react-hook-form');
12
12
  var reactI18next = require('react-i18next');
13
13
  var FieldWrapper = require('../internal/FieldWrapper.js');
14
- var ArrayInput_module = require('./ArrayInput.module.css');
15
14
  var modifiers = require('@dnd-kit/modifiers');
16
- var utilities = require('@dnd-kit/utilities');
15
+ var utilities$1 = require('@dnd-kit/utilities');
17
16
  var jsxRuntime = require('react/jsx-runtime');
18
17
 
19
- var _excluded = ["name", "children", "addLabel", "fixedList", "focusName", "onAdd", "arrayRef", "enableSorting", "disabled", "readOnly", "minItems"];
18
+ var _excluded = ["name", "children", "addLabel", "fixedList", "focusName", "buttonPosition", "onAdd", "onRemove", "onBeforeRemove", "canRemove", "arrayRef", "enableSorting", "disabled", "readOnly", "minItems", "maxItems"];
20
19
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
20
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
21
  var ArrayInput = function ArrayInput(_ref) {
23
- var _error$values$label, _error$values, _error$values2;
24
22
  var name = _ref.name,
25
23
  children = _ref.children,
26
24
  addLabel = _ref.addLabel,
27
25
  fixedList = _ref.fixedList,
28
26
  _ref$focusName = _ref.focusName,
29
27
  focusName = _ref$focusName === void 0 ? "" : _ref$focusName,
28
+ _ref$buttonPosition = _ref.buttonPosition,
29
+ buttonPosition = _ref$buttonPosition === void 0 ? "bottom" : _ref$buttonPosition,
30
30
  onAdd = _ref.onAdd,
31
+ onRemove = _ref.onRemove,
32
+ onBeforeRemove = _ref.onBeforeRemove,
33
+ canRemove = _ref.canRemove,
31
34
  arrayRef = _ref.arrayRef,
32
35
  enableSorting = _ref.enableSorting,
33
36
  _ref$disabled = _ref.disabled,
@@ -36,6 +39,8 @@ var ArrayInput = function ArrayInput(_ref) {
36
39
  readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
37
40
  _ref$minItems = _ref.minItems,
38
41
  minItems = _ref$minItems === void 0 ? 0 : _ref$minItems,
42
+ _ref$maxItems = _ref.maxItems,
43
+ maxItems = _ref$maxItems === void 0 ? Number.MAX_SAFE_INTEGER : _ref$maxItems,
39
44
  rest = _objectWithoutProperties(_ref, _excluded);
40
45
  var _useTranslation = reactI18next.useTranslation("form"),
41
46
  t = _useTranslation.t;
@@ -43,6 +48,7 @@ var ArrayInput = function ArrayInput(_ref) {
43
48
  if (!(form !== null && form !== void 0 && form.control)) throw new Error("ArrayInput must be contained within a Form element");
44
49
  var _useFieldArray = reactHookForm.useFieldArray({
45
50
  name: name,
51
+ keyName: "__ID__",
46
52
  control: form.control
47
53
  }),
48
54
  fields = _useFieldArray.fields,
@@ -59,6 +65,15 @@ var ArrayInput = function ArrayInput(_ref) {
59
65
  form.setFocus("".concat(name, ".").concat(fields.length).concat(focusName ? "." + focusName : ""));
60
66
  }, 100);
61
67
  }, [name, fields, focusName]);
68
+ var handleRemove = react.useCallback(function (item, index) {
69
+ var ret = onBeforeRemove === null || onBeforeRemove === void 0 ? void 0 : onBeforeRemove(item, index);
70
+ void Promise.resolve(ret).then(function (b) {
71
+ if (!utilities.isFalse(b)) {
72
+ remove(index);
73
+ onRemove === null || onRemove === void 0 || onRemove(item, index);
74
+ }
75
+ });
76
+ }, [remove, onRemove, onBeforeRemove]);
62
77
  react.useImperativeHandle(arrayRef, function () {
63
78
  return {
64
79
  addItem: handleAdd,
@@ -70,7 +85,7 @@ var ArrayInput = function ArrayInput(_ref) {
70
85
  if (enableSorting) {
71
86
  // pass id list to dnd context
72
87
  var idMap = fields.map(function (item) {
73
- return item.id;
88
+ return item.__ID__;
74
89
  });
75
90
  var handleDragEnd = function handleDragEnd(e) {
76
91
  if (e.over && e.active.id !== e.over.id) {
@@ -111,7 +126,7 @@ var ArrayInput = function ArrayInput(_ref) {
111
126
  className: className,
112
127
  ref: setNodeRef,
113
128
  style: {
114
- transform: utilities.CSS.Transform.toString(transform),
129
+ transform: utilities$1.CSS.Transform.toString(transform),
115
130
  transition: transition
116
131
  },
117
132
  children: [/*#__PURE__*/jsxRuntime.jsx(core$1.Icon, _objectSpread(_objectSpread({
@@ -127,18 +142,46 @@ var ArrayInput = function ArrayInput(_ref) {
127
142
  }, [enableSorting]);
128
143
  // @ts-expect-error ignore
129
144
  SortableItem.displayName = "SortableItem";
145
+ var addButton = react.useMemo(function () {
146
+ var _error$values$label, _error$values, _error$values2;
147
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
148
+ className: "flex justify-end",
149
+ children: /*#__PURE__*/jsxRuntime.jsx(core$1.Tooltip, {
150
+ color: "danger-200",
151
+ content: utilities.isString(error) ? "".concat(error) : t(error === null || error === void 0 ? void 0 : error.key, error !== null && error !== void 0 && error.values ? _objectSpread(_objectSpread({}, error === null || error === void 0 ? void 0 : error.values), {}, {
152
+ label: t((_error$values$label = (_error$values = error.values) === null || _error$values === void 0 ? void 0 : _error$values.label) !== null && _error$values$label !== void 0 ? _error$values$label : "form:badkey", (_error$values2 = error.values) === null || _error$values2 === void 0 ? void 0 : _error$values2.path)
153
+ }) : {}),
154
+ children: /*#__PURE__*/jsxRuntime.jsx(core$1.Button, {
155
+ size: "sm",
156
+ "aria-label": "Add item",
157
+ icon: core$1.CoreIcons.insert,
158
+ onClick: function onClick() {
159
+ return handleAdd(onAdd === null || onAdd === void 0 ? void 0 : onAdd());
160
+ },
161
+ "data-invalid": !!error,
162
+ disabled: !!disabled || readOnly || fields.length > maxItems,
163
+ className: classNames("fabric-addButton", "me-10"),
164
+ children: addLabel !== null && addLabel !== void 0 ? addLabel : t("addArray")
165
+ })
166
+ })
167
+ });
168
+ }, [error, fields, handleAdd, disabled, readOnly, addLabel, maxItems]);
130
169
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
131
- className: ArrayInput_module.arrayInput,
170
+ className: "fabric-arrayInput",
132
171
  children: [/*#__PURE__*/jsxRuntime.jsx(FieldWrapper.FieldWrapper, _objectSpread(_objectSpread({}, rest), {}, {
172
+ appendLabel: /*#__PURE__*/jsxRuntime.jsx("div", {
173
+ className: "-me-2",
174
+ children: !fixedList && onAdd && buttonPosition !== "bottom" && addButton
175
+ }),
133
176
  children: /*#__PURE__*/jsxRuntime.jsx(Wrapper, {
134
177
  children: fields.map(function (item, index) {
135
178
  return /*#__PURE__*/jsxRuntime.jsxs(SortableItem, {
136
- id: item.id,
179
+ id: item.__ID__,
137
180
  className: "flex items-center flex-nowrap gap-2 mb-1",
138
181
  children: [typeof children === "function" ? children({
139
182
  index: index,
140
183
  name: "".concat(name, ".").concat(index)
141
- }) : react.Children.map(children, function (child) {
184
+ }) : core$1.cloneChildren(children, function (child) {
142
185
  return /*#__PURE__*/react.cloneElement(child, Object.assign({
143
186
  disabled: disabled,
144
187
  readOnly: readOnly,
@@ -155,34 +198,19 @@ var ArrayInput = function ArrayInput(_ref) {
155
198
  color: "danger",
156
199
  variant: "link",
157
200
  className: "self-end",
158
- disabled: disabled || readOnly || fields.length <= minItems,
201
+ disabled: disabled || readOnly || fields.length <= minItems || (canRemove === null || canRemove === void 0 ? void 0 : canRemove({
202
+ item: item,
203
+ index: index,
204
+ lastItem: index + 1 === fields.length
205
+ })) !== false,
159
206
  onClick: function onClick() {
160
- return remove(index);
207
+ return handleRemove(item, index);
161
208
  }
162
209
  })]
163
- }, item.id);
164
- })
165
- })
166
- })), !fixedList && onAdd && /*#__PURE__*/jsxRuntime.jsx("div", {
167
- className: "flex justify-end",
168
- children: /*#__PURE__*/jsxRuntime.jsx(core$1.Tooltip, {
169
- color: "danger",
170
- content: utilities$1.isString(error) ? "".concat(error) : t(error === null || error === void 0 ? void 0 : error.key, error !== null && error !== void 0 && error.values ? _objectSpread(_objectSpread({}, error === null || error === void 0 ? void 0 : error.values), {}, {
171
- label: t((_error$values$label = (_error$values = error.values) === null || _error$values === void 0 ? void 0 : _error$values.label) !== null && _error$values$label !== void 0 ? _error$values$label : "form:badkey", (_error$values2 = error.values) === null || _error$values2 === void 0 ? void 0 : _error$values2.path)
172
- }) : {}),
173
- children: /*#__PURE__*/jsxRuntime.jsx(core$1.Button, {
174
- "aria-label": "Add item",
175
- icon: core$1.CoreIcons.insert,
176
- onClick: function onClick() {
177
- return handleAdd(onAdd());
178
- },
179
- "data-invalid": !!error,
180
- disabled: !!disabled || readOnly,
181
- className: classNames(ArrayInput_module.addButton, "me-10"),
182
- children: addLabel !== null && addLabel !== void 0 ? addLabel : t("addArray")
210
+ }, item.__ID__);
183
211
  })
184
212
  })
185
- })]
213
+ })), !fixedList && onAdd && buttonPosition !== "top" && addButton]
186
214
  });
187
215
  };
188
216
 
@@ -11,14 +11,15 @@ var useFileUploader = require('../hooks/useFileUploader.js');
11
11
  var Hidden = require('./Hidden.js');
12
12
  var jsxRuntime = require('react/jsx-runtime');
13
13
 
14
- var _excluded = ["src", "size", "fileUrl", "uploadHandler"];
14
+ var _excluded = ["size", "avatarName", "value", "fileUrl", "uploadHandler"];
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  var AvatarInput = function AvatarInput(_ref) {
18
18
  var _list$;
19
- var src = _ref.src,
20
- _ref$size = _ref.size,
19
+ var _ref$size = _ref.size,
21
20
  size = _ref$size === void 0 ? "6rem" : _ref$size,
21
+ avatarName = _ref.avatarName,
22
+ value = _ref.value,
22
23
  fileUrl = _ref.fileUrl,
23
24
  uploadHandler = _ref.uploadHandler,
24
25
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -40,7 +41,7 @@ var AvatarInput = function AvatarInput(_ref) {
40
41
  return function (_x, _x2) {
41
42
  return _ref2.apply(this, arguments);
42
43
  };
43
- }(), rest.value, false),
44
+ }(), value, false),
44
45
  files = _useFileUploader.files,
45
46
  list = _useFileUploader.list,
46
47
  upload = _useFileUploader.upload,
@@ -69,18 +70,18 @@ var AvatarInput = function AvatarInput(_ref) {
69
70
  }, [files, list]);
70
71
  react.useEffect(function () {
71
72
  var _fileUrl;
72
- src && setBase64((_fileUrl = fileUrl === null || fileUrl === void 0 ? void 0 : fileUrl(src)) !== null && _fileUrl !== void 0 ? _fileUrl : src);
73
- }, [src]);
73
+ value && setBase64((_fileUrl = fileUrl === null || fileUrl === void 0 ? void 0 : fileUrl(value)) !== null && _fileUrl !== void 0 ? _fileUrl : value);
74
+ }, [value]);
74
75
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
75
76
  className: "flex flex-nowrap items-end",
76
77
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
77
78
  className: "inline-block leading-none rounded-full relative outline overflow-hidden",
78
79
  children: [/*#__PURE__*/jsxRuntime.jsx(core.Avatar, {
79
- name: "temp",
80
+ name: avatarName !== null && avatarName !== void 0 ? avatarName : "temp",
80
81
  size: size,
81
82
  avatar: base64
82
83
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
83
- className: "absolute inset-x-0 bottom-0 cursor-pointer bg-opacity-20 hover:bg-opacity-50 bg-black text-white text-xs text-center py-1",
84
+ className: "absolute inset-x-0 bottom-0 cursor-pointer bg-black/20 hover:bg-black/50 text-white text-xs text-center py-1",
84
85
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
85
86
  children: "Edit"
86
87
  }), /*#__PURE__*/jsxRuntime.jsx("input", {
@@ -9,7 +9,7 @@ var react = require('react');
9
9
  var ErrorIcon = require('../internal/ErrorIcon.js');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
 
12
- var _excluded = ["ref", "label", "value", "name", "checked", "invalid", "disabled", "error", "width", "icon", "iconChecked", "onChange"];
12
+ var _excluded = ["ref", "label", "value", "name", "checked", "invalid", "disabled", "error", "width", "icon", "iconChecked", "required", "onChange"];
13
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
15
  var Checkbox = function Checkbox(_ref) {
@@ -23,8 +23,9 @@ var Checkbox = function Checkbox(_ref) {
23
23
  error = _ref.error,
24
24
  width = _ref.width,
25
25
  icon = _ref.icon,
26
- iconChecked = _ref.iconChecked,
27
- onChange = _ref.onChange,
26
+ iconChecked = _ref.iconChecked;
27
+ _ref.required;
28
+ var onChange = _ref.onChange,
28
29
  rest = _objectWithoutProperties(_ref, _excluded);
29
30
  var _useState = react.useState(false),
30
31
  _useState2 = _slicedToArray(_useState, 2),
@@ -66,7 +67,7 @@ var Checkbox = function Checkbox(_ref) {
66
67
  checked: actualValue,
67
68
  onChange: handleChange
68
69
  }, rest)), /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
69
- className: classNames("p-0.5", actualValue && icon && !iconChecked && "bg-primary-500 text-white"),
70
+ className: classNames("p-0.5", actualValue && icon && !iconChecked && "bg-primary-500 text-white!"),
70
71
  size: "1.25em",
71
72
  color: invalid ? "danger" : "primary",
72
73
  icon: actualValue ? iconOn : iconOff
@@ -74,7 +75,7 @@ var Checkbox = function Checkbox(_ref) {
74
75
  invalid: invalid,
75
76
  error: error
76
77
  }), label && /*#__PURE__*/jsxRuntime.jsx("span", {
77
- className: "flex-initial leading-none truncate",
78
+ className: "flex-initial leading-tight truncate",
78
79
  children: label
79
80
  })]
80
81
  });
@@ -3,32 +3,32 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
5
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
+ var react$1 = require('@floating-ui/react');
6
7
  var core = require('@react-fabric/core');
7
- var utilities = require('@react-fabric/utilities');
8
- var classNames = require('classnames');
9
8
  var react = require('react');
9
+ var InputWrapper = require('../internal/InputWrapper.js');
10
10
  var ColorPicker = require('./ColorPicker.js');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
12
 
13
- var _excluded = ["ref", "required", "disabled", "allowClear", "invalid", "error", "value", "showPicker", "defaultColor", "decorateEnd", "decorateStart", "onChange", "noOutline"];
13
+ var _excluded = ["ref", "required", "disabled", "readOnly", "invalid", "error", "value", "showPicker", "defaultColor", "onBlur", "onFocus", "onChange", "noOutline"];
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  var ColorInput = function ColorInput(_ref) {
17
17
  _ref.ref;
18
- _ref.required;
19
- var disabled = _ref.disabled,
20
- allowClear = _ref.allowClear;
21
- _ref.invalid;
22
- _ref.error;
23
- var value = _ref.value,
18
+ var required = _ref.required,
19
+ disabled = _ref.disabled,
20
+ readOnly = _ref.readOnly,
21
+ invalid = _ref.invalid,
22
+ error = _ref.error,
23
+ value = _ref.value,
24
24
  showPicker = _ref.showPicker,
25
25
  _ref$defaultColor = _ref.defaultColor,
26
26
  defaultColor = _ref$defaultColor === void 0 ? "" : _ref$defaultColor,
27
- decorateEnd = _ref.decorateEnd,
28
- decorateStart = _ref.decorateStart,
29
- onChange = _ref.onChange,
30
- noOutline = _ref.noOutline,
31
- rest = _objectWithoutProperties(_ref, _excluded);
27
+ onBlur = _ref.onBlur,
28
+ onFocus = _ref.onFocus,
29
+ onChange = _ref.onChange;
30
+ _ref.noOutline;
31
+ var rest = _objectWithoutProperties(_ref, _excluded);
32
32
  var _useState = react.useState(""),
33
33
  _useState2 = _slicedToArray(_useState, 2),
34
34
  actualValue = _useState2[0],
@@ -40,61 +40,100 @@ var ColorInput = function ColorInput(_ref) {
40
40
  var handleChange = react.useCallback(function (e) {
41
41
  setActualValue(e !== null && e !== void 0 ? e : defaultColor);
42
42
  onChange != null && react.startTransition(function () {
43
- return onChange(e);
43
+ return onChange(e !== null && e !== void 0 ? e : null);
44
44
  });
45
45
  }, [onChange]);
46
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
47
- className: classNames("flex-content min-h-[1.5em] min-w-[3.5em] self-stretch flex items-center outline-tint-200 rounded", !disabled && "bg-base", !noOutline && "bg-[var(--fabric-input)] outline overflow-hidden"),
48
- children: [decorateStart && /*#__PURE__*/jsxRuntime.jsx("div", {
49
- className: classNames("text-muted leading-none flex-content", utilities.isString(decorateStart) && "px-2"),
50
- children: decorateStart
51
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Dropdown, {
52
- showArrow: true,
53
- disabled: disabled,
54
- children: [/*#__PURE__*/jsxRuntime.jsx("button", {
55
- "data-ref": "button",
56
- className: "flex-1 flex items-center",
57
- children: /*#__PURE__*/jsxRuntime.jsx("div", {
58
- role: "none",
59
- className: "h-[1.5em] min-w-[1.5em] flex-1 flex items-center justify-center self-stretch cursor-pointer m-[0.25em] rounded outline outline-tint-100",
60
- style: {
61
- backgroundColor: actualValue,
62
- opacity: disabled ? 0.65 : 1,
63
- pointerEvents: disabled ? "none" : undefined
64
- },
65
- onClick: function onClick(e) {
66
- var _e$currentTarget$next;
67
- return (_e$currentTarget$next = e.currentTarget.nextElementSibling) === null || _e$currentTarget$next === void 0 ? void 0 : _e$currentTarget$next.focus();
68
- },
69
- children: !actualValue && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
70
- size: "md",
71
- className: "text-muted",
72
- icon: core.CoreIcons.colorSwatch
73
- })
46
+ var arrowRef = react.useRef(null);
47
+ var _useState3 = react.useState(false),
48
+ _useState4 = _slicedToArray(_useState3, 2),
49
+ isOpen = _useState4[0],
50
+ setIsOpen = _useState4[1];
51
+ var _useFloating = react$1.useFloating({
52
+ open: isOpen,
53
+ onOpenChange: function onOpenChange(open, _, reason) {
54
+ if (reason === "reference-press") return;
55
+ setIsOpen(open);
56
+ },
57
+ strategy: "fixed",
58
+ placement: "bottom",
59
+ whileElementsMounted: react$1.autoUpdate,
60
+ middleware: [react$1.shift({
61
+ padding: 8
62
+ }), react$1.flip(), react$1.offset(9), react$1.arrow({
63
+ element: arrowRef
64
+ })]
65
+ }),
66
+ refs = _useFloating.refs,
67
+ floatingStyles = _useFloating.floatingStyles,
68
+ context = _useFloating.context;
69
+ var click = react$1.useClick(context, {
70
+ enabled: !disabled && !readOnly
71
+ });
72
+ var dismiss = react$1.useDismiss(context, {
73
+ referencePress: true
74
+ });
75
+ var _useInteractions = react$1.useInteractions([dismiss, click]),
76
+ getReferenceProps = _useInteractions.getReferenceProps,
77
+ getFloatingProps = _useInteractions.getFloatingProps;
78
+ return /*#__PURE__*/jsxRuntime.jsxs(InputWrapper.InputWrapper, _objectSpread(_objectSpread({
79
+ showClear: actualValue !== defaultColor && !disabled && !readOnly,
80
+ onClear: handleChange,
81
+ invalid: invalid,
82
+ readOnly: readOnly,
83
+ disabled: disabled,
84
+ required: required,
85
+ error: error
86
+ }, rest), {}, {
87
+ children: [/*#__PURE__*/jsxRuntime.jsx("button", _objectSpread(_objectSpread({
88
+ "data-ref": "button",
89
+ className: "flex-1 flex items-center",
90
+ ref: refs.setReference
91
+ }, getReferenceProps({
92
+ onBlur: onBlur,
93
+ onFocus: onFocus
94
+ })), {}, {
95
+ "data-inner-clickable": "true",
96
+ "data-dropdown-open": isOpen ? true : undefined,
97
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
98
+ role: "none",
99
+ className: "h-[1.5em] min-w-[1.5em] flex-1 flex items-center justify-center self-stretch cursor-pointer m-[0.25em] rounded outline outline-tint-100",
100
+ style: {
101
+ backgroundColor: actualValue,
102
+ opacity: disabled ? 0.65 : 1,
103
+ pointerEvents: disabled ? "none" : undefined
104
+ },
105
+ children: !actualValue && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
106
+ size: "md",
107
+ className: "text-muted",
108
+ icon: core.CoreIcons.colorSwatch
74
109
  })
75
- }), /*#__PURE__*/jsxRuntime.jsx(ColorPicker.ColorPicker, _objectSpread(_objectSpread({}, rest), {}, {
110
+ })
111
+ })), isOpen && /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
112
+ ref: refs.setFloating,
113
+ style: _objectSpread({
114
+ zIndex: "var(--z-popover)"
115
+ }, floatingStyles),
116
+ "data-ref": "dropdownBody"
117
+ }, getFloatingProps()), {}, {
118
+ children: [/*#__PURE__*/jsxRuntime.jsx(ColorPicker.ColorPicker, _objectSpread(_objectSpread({}, rest), {}, {
76
119
  onChange: handleChange,
77
120
  defaultColor: defaultColor,
78
121
  value: actualValue
79
- }))]
80
- }), !disabled && showPicker && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
122
+ })), /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingArrow, {
123
+ ref: arrowRef,
124
+ context: context,
125
+ strokeWidth: 0.5,
126
+ className: "fill-base stroke-muted"
127
+ })]
128
+ })), !disabled && showPicker && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
81
129
  icon: core.CoreIcons.colorPicker,
82
130
  onClick: function onClick() {
83
131
  return window.EyeDropper && new window.EyeDropper().open().then(function (resp) {
84
132
  return handleChange(resp.sRGBHex);
85
133
  });
86
134
  }
87
- }), decorateEnd && /*#__PURE__*/jsxRuntime.jsx("div", {
88
- className: classNames("text-muted leading-none flex-content", utilities.isString(decorateEnd) && "px-2"),
89
- children: decorateEnd
90
- }), !disabled && allowClear && actualValue !== defaultColor && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
91
- icon: core.CoreIcons.close,
92
- onClick: function onClick() {
93
- return handleChange();
94
- },
95
- className: classNames("text-tint-500 hover:text-tint-700 p-[0.25em] flex-content")
96
135
  })]
97
- });
136
+ }));
98
137
  };
99
138
 
100
139
  exports.ColorInput = ColorInput;