@react-fabric/form 1.0.0-beta.61 → 1.0.0-beta.63

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 (155) hide show
  1. package/css/_colorPicker.css +35 -5
  2. package/css/_file.css +2 -2
  3. package/dist/cjs/builder/FileField.js +14 -11
  4. package/dist/cjs/builder/SchemaEditor.js +1 -1
  5. package/dist/cjs/builder/components/SchemaArrayForm.js +2 -4
  6. package/dist/cjs/builder/components/SchemaField.js +3 -3
  7. package/dist/cjs/form/Controller.js +1 -1
  8. package/dist/cjs/form/Form.js +42 -41
  9. package/dist/cjs/form/useForm.js +32 -0
  10. package/dist/cjs/hooks/useFileUploader.js +44 -32
  11. package/dist/cjs/hooks/useFormBuilder.js +3 -3
  12. package/dist/cjs/i18n/index.js +4 -4
  13. package/dist/cjs/index.js +2 -1
  14. package/dist/cjs/input/ArrayInput.js +66 -19
  15. package/dist/cjs/input/AvatarInput.js +21 -16
  16. package/dist/cjs/input/Checkbox.js +1 -1
  17. package/dist/cjs/input/ColorInput.js +26 -19
  18. package/dist/cjs/input/ColorPicker.js +16 -9
  19. package/dist/cjs/input/DateInput.js +3 -3
  20. package/dist/cjs/input/Field.js +1 -1
  21. package/dist/cjs/input/File.js +1 -1
  22. package/dist/cjs/input/Hidden.js +2 -11
  23. package/dist/cjs/input/Input.js +1 -1
  24. package/dist/cjs/input/Number.js +1 -1
  25. package/dist/cjs/input/Password.js +1 -1
  26. package/dist/cjs/input/Radio.js +1 -1
  27. package/dist/cjs/input/RadioGroup.js +7 -3
  28. package/dist/cjs/input/RangeSlider.js +1 -1
  29. package/dist/cjs/input/Search.js +1 -1
  30. package/dist/cjs/input/Slider.js +1 -1
  31. package/dist/cjs/input/Switch.js +4 -4
  32. package/dist/cjs/input/Textarea.js +1 -1
  33. package/dist/cjs/internal/InputWrapper.js +2 -2
  34. package/dist/cjs/ranger/index.js +5 -5
  35. package/dist/cjs/select/AutoComplete.js +4 -2
  36. package/dist/cjs/select/DualList.js +3 -3
  37. package/dist/cjs/select/List.js +7 -4
  38. package/dist/cjs/select/Options.js +5 -4
  39. package/dist/cjs/select/Select.js +5 -3
  40. package/dist/cjs/select/useSelect.js +15 -13
  41. package/dist/esm/builder/FileField.js +14 -11
  42. package/dist/esm/builder/SchemaEditor.js +1 -1
  43. package/dist/esm/builder/components/SchemaArrayForm.js +2 -4
  44. package/dist/esm/builder/components/SchemaField.js +3 -3
  45. package/dist/esm/form/Controller.js +1 -1
  46. package/dist/esm/form/Form.js +45 -43
  47. package/dist/esm/form/useForm.js +32 -0
  48. package/dist/esm/hooks/useFileUploader.js +45 -33
  49. package/dist/esm/hooks/useFormBuilder.js +3 -3
  50. package/dist/esm/i18n/index.js +2 -2
  51. package/dist/esm/index.js +2 -1
  52. package/dist/esm/input/ArrayInput.js +66 -19
  53. package/dist/esm/input/AvatarInput.js +21 -16
  54. package/dist/esm/input/Checkbox.js +1 -1
  55. package/dist/esm/input/ColorInput.js +27 -20
  56. package/dist/esm/input/ColorPicker.js +17 -10
  57. package/dist/esm/input/DateInput.js +3 -3
  58. package/dist/esm/input/Field.js +1 -1
  59. package/dist/esm/input/File.js +1 -1
  60. package/dist/esm/input/Hidden.js +3 -12
  61. package/dist/esm/input/Input.js +1 -1
  62. package/dist/esm/input/Number.js +1 -1
  63. package/dist/esm/input/Password.js +1 -1
  64. package/dist/esm/input/Radio.js +1 -1
  65. package/dist/esm/input/RadioGroup.js +7 -3
  66. package/dist/esm/input/RangeSlider.js +1 -1
  67. package/dist/esm/input/Search.js +1 -1
  68. package/dist/esm/input/Slider.js +1 -1
  69. package/dist/esm/input/Switch.js +4 -4
  70. package/dist/esm/input/Textarea.js +1 -1
  71. package/dist/esm/internal/InputWrapper.js +2 -2
  72. package/dist/esm/ranger/index.js +5 -5
  73. package/dist/esm/select/AutoComplete.js +4 -2
  74. package/dist/esm/select/DualList.js +3 -3
  75. package/dist/esm/select/List.js +8 -5
  76. package/dist/esm/select/Options.js +5 -4
  77. package/dist/esm/select/Select.js +6 -4
  78. package/dist/esm/select/useSelect.js +15 -13
  79. package/dist/types/builder/FileField.d.ts +2 -1
  80. package/dist/types/builder/SchemaEditor.d.ts +1 -1
  81. package/dist/types/form/Controller.d.ts +1 -1
  82. package/dist/types/form/Form.d.ts +7 -14
  83. package/dist/types/form/useForm.d.ts +11 -0
  84. package/dist/types/hooks/useFileUploader.d.ts +4 -2
  85. package/dist/types/index.d.ts +3 -2
  86. package/dist/types/input/ArrayInput.d.ts +5 -4
  87. package/dist/types/input/AvatarInput.d.ts +2 -2
  88. package/dist/types/input/Checkbox.d.ts +2 -2
  89. package/dist/types/input/ColorInput.d.ts +1 -1
  90. package/dist/types/input/ColorPicker.d.ts +5 -1
  91. package/dist/types/input/DateInput.d.ts +1 -1
  92. package/dist/types/input/Field.d.ts +1 -1
  93. package/dist/types/input/File.d.ts +1 -1
  94. package/dist/types/input/Hidden.d.ts +4 -12
  95. package/dist/types/input/Input.d.ts +1 -1
  96. package/dist/types/input/Number.d.ts +1 -1
  97. package/dist/types/input/Password.d.ts +1 -1
  98. package/dist/types/input/Radio.d.ts +2 -2
  99. package/dist/types/input/RadioGroup.d.ts +7 -3
  100. package/dist/types/input/RangeSlider.d.ts +1 -1
  101. package/dist/types/input/Search.d.ts +1 -1
  102. package/dist/types/input/Slider.d.ts +1 -1
  103. package/dist/types/input/Switch.d.ts +2 -2
  104. package/dist/types/input/Textarea.d.ts +1 -1
  105. package/dist/types/select/AutoComplete.d.ts +1 -1
  106. package/dist/types/select/DualList.d.ts +1 -1
  107. package/dist/types/select/List.d.ts +1 -1
  108. package/dist/types/select/Select.d.ts +1 -1
  109. package/dist/types/types/index.d.ts +3 -3
  110. package/dist/types/types/schema.d.ts +1 -1
  111. package/package.json +14 -14
  112. package/src/builder/FileField.tsx +5 -3
  113. package/src/builder/SchemaEditor.tsx +2 -2
  114. package/src/builder/components/SchemaArrayForm.tsx +1 -3
  115. package/src/builder/components/SchemaField.tsx +3 -3
  116. package/src/form/Controller.tsx +1 -1
  117. package/src/form/Form.tsx +21 -43
  118. package/src/form/useForm.ts +44 -0
  119. package/src/hooks/useFileUploader.ts +41 -29
  120. package/src/i18n/index.ts +2 -2
  121. package/src/index.ts +3 -7
  122. package/src/input/ArrayInput.tsx +20 -10
  123. package/src/input/AvatarInput.tsx +12 -12
  124. package/src/input/Checkbox.tsx +2 -2
  125. package/src/input/ColorInput.tsx +29 -45
  126. package/src/input/ColorPicker.tsx +42 -49
  127. package/src/input/DateInput.tsx +3 -3
  128. package/src/input/Field.tsx +2 -2
  129. package/src/input/File.tsx +1 -1
  130. package/src/input/Hidden.tsx +5 -25
  131. package/src/input/Input.tsx +1 -1
  132. package/src/input/Number.tsx +1 -1
  133. package/src/input/Password.tsx +1 -1
  134. package/src/input/Radio.tsx +2 -2
  135. package/src/input/RadioGroup.tsx +11 -3
  136. package/src/input/RangeSlider.tsx +1 -1
  137. package/src/input/Search.tsx +1 -1
  138. package/src/input/Slider.tsx +1 -1
  139. package/src/input/Switch.tsx +6 -6
  140. package/src/input/Textarea.tsx +1 -1
  141. package/src/internal/InputWrapper.tsx +1 -2
  142. package/src/select/AutoComplete.tsx +13 -52
  143. package/src/select/DualList.tsx +3 -3
  144. package/src/select/List.tsx +31 -69
  145. package/src/select/Options.tsx +4 -3
  146. package/src/select/Select.tsx +19 -41
  147. package/src/select/useSelect.tsx +24 -69
  148. package/src/types/index.ts +3 -3
  149. package/src/types/schema.ts +1 -1
  150. /package/dist/cjs/i18n/{ar.json.js → ar/form.json.js} +0 -0
  151. /package/dist/cjs/i18n/{en.json.js → en/form.json.js} +0 -0
  152. /package/dist/esm/i18n/{ar.json.js → ar/form.json.js} +0 -0
  153. /package/dist/esm/i18n/{en.json.js → en/form.json.js} +0 -0
  154. /package/src/i18n/{ar.json → ar/form.json} +0 -0
  155. /package/src/i18n/{en.json → en/form.json} +0 -0
@@ -87,7 +87,7 @@ var InputWrapper = function InputWrapper(_ref) {
87
87
  }), children, allowClear && showClear && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
88
88
  icon: "icon-[mdi--close]",
89
89
  onClick: handleClear,
90
- className: classNames("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content", "fabric-inputClear", textarea && "self-start mt-1 me-1")
90
+ className: classNames("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content", "fabric-inputClear")
91
91
  }), decorateEnd && /*#__PURE__*/jsxRuntime.jsx("div", {
92
92
  onClickCapture: doFocus,
93
93
  className: classNames("fabric-decorate", "text-muted leading-none flex-content", utilities.isString(decorateEnd) && "px-1", decorateEndHideWhenEmpty && "peer-placeholder-shown:hidden", decorateEndShowWhenEmpty && "hidden peer-placeholder-shown:inline-block"),
@@ -101,7 +101,7 @@ var InputWrapper = function InputWrapper(_ref) {
101
101
  return setExpanded(!isExpanded);
102
102
  },
103
103
  icon: isExpanded ? "icon-[mdi--arrow-collapse]" : "icon-[mdi--arrow-expand]",
104
- className: "hidden group-hover:block absolute top-0 end-0 bg-base hover:bg-tint-200 p-1 opacity-65 rounded-capped"
104
+ className: "hidden group-hover:block absolute top-0 inset-e-0 bg-default hover:bg-tint-200 p-1 opacity-65 rounded-capped"
105
105
  })]
106
106
  });
107
107
  return /*#__PURE__*/jsxRuntime.jsx(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
@@ -195,17 +195,17 @@ var useRanger = function useRanger(opts) {
195
195
  } else {
196
196
  setActiveHandleIndex(i);
197
197
  }
198
- var handleRelease = function handleRelease(e) {
198
+ var _handleRelease = function handleRelease(e) {
199
199
  var _getLatest5 = getLatest(),
200
200
  tempValues = _getLatest5.tempValues,
201
201
  onChange = _getLatest5.onChange,
202
202
  onDragEnd = _getLatest5.onDragEnd;
203
203
  document.removeEventListener("mousemove", i === -1 ? handleSegmentDrag : handleDrag);
204
204
  document.removeEventListener("touchmove", i === -1 ? handleSegmentDrag : handleDrag);
205
- document.removeEventListener("mouseup", handleRelease, {
205
+ document.removeEventListener("mouseup", _handleRelease, {
206
206
  capture: true
207
207
  });
208
- document.removeEventListener("touchend", handleRelease, {
208
+ document.removeEventListener("touchend", _handleRelease, {
209
209
  capture: true
210
210
  });
211
211
  var sortedValues = utils.sortNumList(tempValues || values);
@@ -218,10 +218,10 @@ var useRanger = function useRanger(opts) {
218
218
  onDragStart === null || onDragStart === void 0 || onDragStart();
219
219
  document.addEventListener("mousemove", i === -1 ? handleSegmentDrag : handleDrag);
220
220
  document.addEventListener("touchmove", i === -1 ? handleSegmentDrag : handleDrag);
221
- document.addEventListener("mouseup", handleRelease, {
221
+ document.addEventListener("mouseup", _handleRelease, {
222
222
  capture: true
223
223
  });
224
- document.addEventListener("touchend", handleRelease, {
224
+ document.addEventListener("touchend", _handleRelease, {
225
225
  capture: true
226
226
  });
227
227
  }, [getLatest, handleDrag]);
@@ -20,10 +20,10 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
20
20
  * It supports multiple selections, history suggestions, and custom styling.
21
21
  *
22
22
  * @param {AutoCompleteProps} props - The properties for the AutoComplete component.
23
- * @returns {JSX.Element} The rendered AutoComplete component.
23
+ * @returns {React.ReactElement} The rendered AutoComplete component.
24
24
  */
25
25
  var AutoComplete = function AutoComplete(_ref) {
26
- var _refs$reference$curre;
26
+ var _refs$domReference$cu2, _refs$domReference$cu3, _refs$reference$curre;
27
27
  var ref = _ref.ref,
28
28
  name = _ref.name,
29
29
  value = _ref.value,
@@ -246,10 +246,12 @@ var AutoComplete = function AutoComplete(_ref) {
246
246
  className: classNames("flex-content p-2 z-0 order-9 text-muted pointer-events-none"),
247
247
  icon: "icon-[svg-spinners--eclipse]"
248
248
  }), state.open && !state.loading && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
249
+ root: (_refs$domReference$cu2 = (_refs$domReference$cu3 = refs.domReference.current) === null || _refs$domReference$cu3 === void 0 ? void 0 : _refs$domReference$cu3.closest(".theme-base")) !== null && _refs$domReference$cu2 !== void 0 ? _refs$domReference$cu2 : undefined,
249
250
  children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
250
251
  context: context,
251
252
  initialFocus: -1,
252
253
  visuallyHiddenDismiss: true,
254
+ closeOnFocusOut: true,
253
255
  children: /*#__PURE__*/jsxRuntime.jsx(Options.Options, _objectSpread(_objectSpread({
254
256
  ref: refs.setFloating,
255
257
  className: "outline shadow-lg max-h-[40vh] z-(--z-popover)",
@@ -25,7 +25,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
25
25
  * This component is useful for scenarios where users need to manage selections from a larger set of options, such as in forms or settings.
26
26
  *
27
27
  * @param {DualListProps<T>} props - The properties for the DualList component.
28
- * @returns {JSX.Element} The rendered DualList component.
28
+ * @returns {React.ReactElement} The rendered DualList component.
29
29
  */
30
30
  var DualList = function DualList(_ref) {
31
31
  var ref = _ref.ref,
@@ -38,7 +38,7 @@ var DualList = function DualList(_ref) {
38
38
  _ref$labelProperty = _ref.labelProperty,
39
39
  labelProperty = _ref$labelProperty === void 0 ? "label" : _ref$labelProperty,
40
40
  _ref$valueProperty = _ref.valueProperty,
41
- valueProperty = _ref$valueProperty === void 0 ? "id" : _ref$valueProperty,
41
+ valueProperty = _ref$valueProperty === void 0 ? "value" : _ref$valueProperty,
42
42
  renderer = _ref.renderer,
43
43
  onChange = _ref.onChange,
44
44
  name = _ref.name,
@@ -188,7 +188,7 @@ var DualList = function DualList(_ref) {
188
188
  className: "self-center mx-2",
189
189
  children: /*#__PURE__*/jsxRuntime.jsxs(core$1.ButtonGroup, {
190
190
  vertical: true,
191
- className: "outline overflow-hidden bg-base",
191
+ className: "outline overflow-hidden bg-default",
192
192
  children: [/*#__PURE__*/jsxRuntime.jsx(core$1.Button, {
193
193
  size: "sm",
194
194
  variant: "link",
@@ -17,7 +17,7 @@ var _excluded = ["ref", "name", "value", "readOnly", "disabled", "required", "pl
17
17
  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; }
18
18
  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; }
19
19
  var List = function List(_ref) {
20
- var _state$query, _state$activeItem;
20
+ var _state$query;
21
21
  var ref = _ref.ref,
22
22
  name = _ref.name,
23
23
  value = _ref.value,
@@ -29,8 +29,10 @@ var List = function List(_ref) {
29
29
  options = _ref.options,
30
30
  height = _ref.height,
31
31
  groupProperty = _ref.groupProperty,
32
- labelProperty = _ref.labelProperty,
33
- valueProperty = _ref.valueProperty,
32
+ _ref$labelProperty = _ref.labelProperty,
33
+ labelProperty = _ref$labelProperty === void 0 ? "label" : _ref$labelProperty,
34
+ _ref$valueProperty = _ref.valueProperty,
35
+ valueProperty = _ref$valueProperty === void 0 ? "value" : _ref$valueProperty,
34
36
  infoProperty = _ref.infoProperty,
35
37
  sortProperty = _ref.sortProperty,
36
38
  multiple = _ref.multiple,
@@ -242,6 +244,7 @@ var List = function List(_ref) {
242
244
  context: context,
243
245
  initialFocus: -1,
244
246
  visuallyHiddenDismiss: true,
247
+ closeOnFocusOut: true,
245
248
  children: /*#__PURE__*/jsxRuntime.jsx(Options.Options, _objectSpread(_objectSpread({
246
249
  ref: refs.setFloating,
247
250
  className: classNames("max-h-96 z-0 rounded-capped rounded-t-none outline", disabled && "pointer-events-none opacity-65"),
@@ -256,7 +259,7 @@ var List = function List(_ref) {
256
259
  itemRef: setItemRef,
257
260
  itemProps: makeItemProps,
258
261
  empty: emptyDisplay,
259
- info: (_state$activeItem = state.activeItem) === null || _state$activeItem === void 0 ? void 0 : _state$activeItem[infoProperty !== null && infoProperty !== void 0 ? infoProperty : "info"],
262
+ info: utilities.getByPath(state.activeItem, infoProperty !== null && infoProperty !== void 0 ? infoProperty : "info"),
260
263
  children: function children(item, label) {
261
264
  var _renderer3;
262
265
  return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
@@ -3,6 +3,7 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
5
  var core = require('@react-fabric/core');
6
+ var utilities = require('@react-fabric/utilities');
6
7
  var classNames = require('classnames');
7
8
  var reactI18next = require('react-i18next');
8
9
  var jsxRuntime = require('react/jsx-runtime');
@@ -27,7 +28,7 @@ var Options = function Options(_ref) {
27
28
  rest = _objectWithoutProperties(_ref, _excluded);
28
29
  return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
29
30
  ref: ref,
30
- className: classNames("bg-base select-none flex flex-col", className),
31
+ className: classNames("bg-default select-none flex flex-col", className),
31
32
  style: style
32
33
  }, rest), {}, {
33
34
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -37,9 +38,9 @@ var Options = function Options(_ref) {
37
38
  i18nKey: "form:select.emptyList"
38
39
  })
39
40
  })), items.map(function (item, index) {
40
- var _item$value, _item$labelProperty;
41
+ var _item$value, _getByPath;
41
42
  if (item.___group___) return /*#__PURE__*/jsxRuntime.jsx("p", {
42
- className: "px-2 py-1 text-muted text-xs sticky -top-px z-2 bg-base border-t",
43
+ className: "px-2 py-1 text-muted text-xs sticky -top-px z-2 bg-default border-t",
43
44
  children: item.label
44
45
  }, index);
45
46
  if (item.___create___) return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
@@ -70,7 +71,7 @@ var Options = function Options(_ref) {
70
71
  "data-active": active === index ? true : undefined,
71
72
  className: classNames("block text-start truncate px-2 py-1 leading-normal cursor-pointer", "data-active:bg-primary-200 data-selected:bg-primary-600 data-selected:text-white data-active:data-selected:underline")
72
73
  }, itemProps(item)), {}, {
73
- children: children(item, (_item$labelProperty = item[labelProperty]) !== null && _item$labelProperty !== void 0 ? _item$labelProperty : item)
74
+ children: children(item, (_getByPath = utilities.getByPath(item, labelProperty)) !== null && _getByPath !== void 0 ? _getByPath : "".concat(item))
74
75
  }), index);
75
76
  })]
76
77
  }), info && /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -16,7 +16,7 @@ var _excluded = ["ref", "name", "value", "invalid", "readOnly", "disabled", "req
16
16
  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; }
17
17
  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; }
18
18
  var Select = function Select(_ref) {
19
- var _state$query, _refs$reference$curre, _state$activeItem;
19
+ var _state$query, _refs$domReference$cu3, _refs$domReference$cu4, _refs$reference$curre;
20
20
  var ref = _ref.ref,
21
21
  name = _ref.name,
22
22
  value = _ref.value,
@@ -34,7 +34,7 @@ var Select = function Select(_ref) {
34
34
  _ref$labelProperty = _ref.labelProperty,
35
35
  labelProperty = _ref$labelProperty === void 0 ? "label" : _ref$labelProperty,
36
36
  _ref$valueProperty = _ref.valueProperty,
37
- valueProperty = _ref$valueProperty === void 0 ? "id" : _ref$valueProperty,
37
+ valueProperty = _ref$valueProperty === void 0 ? "value" : _ref$valueProperty,
38
38
  sortProperty = _ref.sortProperty,
39
39
  infoProperty = _ref.infoProperty,
40
40
  multiple = _ref.multiple,
@@ -262,10 +262,12 @@ var Select = function Select(_ref) {
262
262
  className: classNames("flex-content p-2 z-0 order-9 text-muted pointer-events-none"),
263
263
  icon: "icon-[svg-spinners--eclipse]"
264
264
  }), state.open && !state.loading && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
265
+ root: (_refs$domReference$cu3 = (_refs$domReference$cu4 = refs.domReference.current) === null || _refs$domReference$cu4 === void 0 ? void 0 : _refs$domReference$cu4.closest(".theme-base")) !== null && _refs$domReference$cu3 !== void 0 ? _refs$domReference$cu3 : undefined,
265
266
  children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
266
267
  context: context,
267
268
  initialFocus: -1,
268
269
  visuallyHiddenDismiss: true,
270
+ closeOnFocusOut: true,
269
271
  children: /*#__PURE__*/jsxRuntime.jsx(Options.Options, _objectSpread(_objectSpread({
270
272
  ref: refs.setFloating,
271
273
  className: "outline shadow-lg max-h-[40vh] z-(--z-popover)",
@@ -280,7 +282,7 @@ var Select = function Select(_ref) {
280
282
  itemRef: setItemRef,
281
283
  itemProps: makeItemProps,
282
284
  empty: emptyDisplay,
283
- info: (_state$activeItem = state.activeItem) === null || _state$activeItem === void 0 ? void 0 : _state$activeItem[infoProperty !== null && infoProperty !== void 0 ? infoProperty : "info"],
285
+ info: utilities.getByPath(state.activeItem, infoProperty !== null && infoProperty !== void 0 ? infoProperty : "info"),
284
286
  children: function children(item, label) {
285
287
  var _renderer3;
286
288
  return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
@@ -176,19 +176,21 @@ var useSelect = function useSelect(_ref) {
176
176
  return _newState;
177
177
  }
178
178
  return state;
179
- }, {
180
- multiple: multiple,
181
- emptyValue: emptyValue,
182
- open: alwaysOpen || defaultOpen,
183
- loading: false,
184
- activeIndex: null,
185
- activeItem: null,
186
- selectedIndex: null,
187
- value: emptyValue,
188
- // filter
189
- query: undefined,
190
- // dropdown items
191
- items: []
179
+ }, {}, function () {
180
+ return {
181
+ multiple: multiple,
182
+ emptyValue: emptyValue,
183
+ open: alwaysOpen || defaultOpen,
184
+ loading: false,
185
+ activeIndex: null,
186
+ activeItem: null,
187
+ selectedIndex: null,
188
+ value: emptyValue,
189
+ // filter
190
+ query: undefined,
191
+ // dropdown items
192
+ items: []
193
+ };
192
194
  }),
193
195
  _useReducer2 = _slicedToArray(_useReducer, 2),
194
196
  state = _useReducer2[0],
@@ -13,7 +13,7 @@ import { Field } from '../input/Field.js';
13
13
  import { HiddenInput } from '../input/Hidden.js';
14
14
  import { jsxs, jsx } from 'react/jsx-runtime';
15
15
 
16
- var _excluded = ["uploadHandler", "inline", "label", "accept", "value", "fileUrl", "multiple", "invalid", "error"];
16
+ var _excluded = ["uploadHandler", "inline", "label", "accept", "value", "fileUrl", "onChange", "multiple", "invalid", "error"];
17
17
  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; }
18
18
  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; }
19
19
  var FileField = function FileField(_ref) {
@@ -24,22 +24,23 @@ var FileField = function FileField(_ref) {
24
24
  accept = _ref.accept,
25
25
  value = _ref.value;
26
26
  _ref.fileUrl;
27
- var multiple = _ref.multiple;
27
+ var onChange = _ref.onChange,
28
+ multiple = _ref.multiple;
28
29
  _ref.invalid;
29
30
  var error = _ref.error,
30
31
  rest = _objectWithoutProperties(_ref, _excluded);
31
32
  var _useTranslation = useTranslation(),
32
33
  t = _useTranslation.t;
33
- var _useFileUploader = useFileUploader( /*#__PURE__*/function () {
34
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data, config) {
35
- return _regeneratorRuntime.wrap(function _callee$(_context) {
34
+ var _useFileUploader = useFileUploader(/*#__PURE__*/function () {
35
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(data, config) {
36
+ return _regeneratorRuntime.wrap(function (_context) {
36
37
  while (1) switch (_context.prev = _context.next) {
37
38
  case 0:
38
- _context.next = 2;
39
+ _context.next = 1;
39
40
  return uploadHandler === null || uploadHandler === void 0 ? void 0 : uploadHandler(data, config);
40
- case 2:
41
+ case 1:
41
42
  return _context.abrupt("return", _context.sent);
42
- case 3:
43
+ case 2:
43
44
  case "end":
44
45
  return _context.stop();
45
46
  }
@@ -48,10 +49,12 @@ var FileField = function FileField(_ref) {
48
49
  return function (_x, _x2) {
49
50
  return _ref2.apply(this, arguments);
50
51
  };
51
- }(), value, multiple),
52
+ }(), value, {
53
+ multiple: multiple,
54
+ onChange: onChange
55
+ }),
52
56
  pending = _useFileUploader.pending,
53
57
  files = _useFileUploader.files,
54
- list = _useFileUploader.list,
55
58
  upload = _useFileUploader.upload,
56
59
  remove = _useFileUploader.remove;
57
60
  return /*#__PURE__*/jsxs(Fragment, {
@@ -60,7 +63,7 @@ var FileField = function FileField(_ref) {
60
63
  inline: inline,
61
64
  label: label,
62
65
  children: /*#__PURE__*/jsx(HiddenInput, _objectSpread({
63
- hiddenValue: multiple ? list : list === null || list === void 0 ? void 0 : list[0]
66
+ value: multiple ? files : files === null || files === void 0 ? void 0 : files[0]
64
67
  }, rest))
65
68
  }), /*#__PURE__*/jsx(Tooltip, {
66
69
  color: "danger-200",
@@ -63,7 +63,7 @@ var SchemaEditor = function SchemaEditor(_ref) {
63
63
  acceptableTypes: acceptableTypes !== null && acceptableTypes !== void 0 ? acceptableTypes : Object.values(DATA_TYPES)
64
64
  }), children && /*#__PURE__*/jsx(Footer, {
65
65
  flex: true,
66
- className: "border-t bg-base px-6 py-2",
66
+ className: "border-t bg-default px-6 py-2",
67
67
  children: children
68
68
  })]
69
69
  });
@@ -58,9 +58,7 @@ var SchemaArrayForm = function SchemaArrayForm(_ref) {
58
58
  }
59
59
  });
60
60
  }, []);
61
- var Wrapper = useCallback(
62
- // eslint-disable-next-line @typescript-eslint/promise-function-async
63
- function (_ref2) {
61
+ var Wrapper = useCallback(function (_ref2) {
64
62
  var children = _ref2.children;
65
63
  if (dynamic) {
66
64
  // pass id list to dnd context
@@ -138,7 +136,7 @@ var SchemaArrayForm = function SchemaArrayForm(_ref) {
138
136
  acceptableTypes: acceptableTypes !== null && acceptableTypes !== void 0 ? acceptableTypes : Object.values(DATA_TYPES)
139
137
  }, index);
140
138
  })
141
- }), AddModal]
139
+ }), /*#__PURE__*/jsx(AddModal, {})]
142
140
  });
143
141
  };
144
142
 
@@ -104,7 +104,7 @@ var SchemaField = function SchemaField(_ref) {
104
104
  }), /*#__PURE__*/jsx(Footer, {
105
105
  flex: true,
106
106
  justify: "end",
107
- className: "sticky bottom-0 border-t bg-base px-6 py-2",
107
+ className: "sticky bottom-0 border-t bg-default px-6 py-2",
108
108
  children: /*#__PURE__*/jsx(Button, {
109
109
  variant: "link",
110
110
  onClick: props.onClose,
@@ -189,7 +189,7 @@ var SchemaField = function SchemaField(_ref) {
189
189
  children: [/*#__PURE__*/jsx(Controller, {
190
190
  name: "".concat(field, ".id"),
191
191
  children: /*#__PURE__*/jsx(HiddenInput, {
192
- hiddenValue: id
192
+ value: id
193
193
  })
194
194
  }), /*#__PURE__*/jsx(Controller, {
195
195
  name: "".concat(field, ".datatype"),
@@ -250,7 +250,7 @@ var SchemaField = function SchemaField(_ref) {
250
250
  });
251
251
  }
252
252
  })]
253
- }), OptionModal]
253
+ }), /*#__PURE__*/jsx(OptionModal, {})]
254
254
  }), type === DATA_TYPES.FILE && /*#__PURE__*/jsx(Fragment, {
255
255
  children: /*#__PURE__*/jsx(Controller, {
256
256
  name: "".concat(field, ".accept"),
@@ -36,7 +36,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
36
36
  * to the child component, allowing for proper focus management and DOM access.
37
37
  *
38
38
  * @param {ControllerProps} props - The properties for the Controller component.
39
- * @returns {JSX.Element} The rendered Controller component.
39
+ * @returns {React.ReactElement} The rendered Controller component.
40
40
  *
41
41
  * @example
42
42
  * ```jsx
@@ -1,17 +1,17 @@
1
1
  'use client';
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
5
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
6
6
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
7
7
  import _regeneratorRuntime from '@babel/runtime/regenerator';
8
8
  import { useDebounce } from '@react-fabric/core';
9
9
  import { EMPTY_OBJECT } from '@react-fabric/utilities';
10
10
  import { useRef, useTransition, useEffect, useCallback, useImperativeHandle } from 'react';
11
- import { useForm as useForm$1, FormProvider, useFormContext, useWatch } from 'react-hook-form';
11
+ import { useForm, FormProvider } from 'react-hook-form';
12
12
  import { jsx, jsxs } from 'react/jsx-runtime';
13
13
 
14
- var _excluded = ["formRef", "resolver", "children", "defaultValues", "onSubmit", "onChange"];
14
+ var _excluded = ["formRef", "resolver", "children", "resetOnChange", "defaultValues", "onSubmit", "onChange"];
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 DEFAULT_SUBMIT = function DEFAULT_SUBMIT() {
@@ -24,7 +24,7 @@ var DEFAULT_SUBMIT = function DEFAULT_SUBMIT() {
24
24
  * It supports nested form structures and allows for custom validation schemas using Yup.
25
25
  *
26
26
  * @param {FormProps<K>} props - The properties for the Form component.
27
- * @returns {JSX.Element} The rendered Form component.
27
+ * @returns {React.ReactElement} The rendered Form component.
28
28
  *
29
29
  * @example
30
30
  * ```jsx
@@ -50,17 +50,37 @@ var Form = function Form(_ref) {
50
50
  var formRef = _ref.formRef,
51
51
  resolver = _ref.resolver,
52
52
  children = _ref.children,
53
+ resetOnChange = _ref.resetOnChange,
53
54
  _ref$defaultValues = _ref.defaultValues,
54
- defaultValues = _ref$defaultValues === void 0 ? EMPTY_OBJECT : _ref$defaultValues,
55
+ _defaultValues = _ref$defaultValues === void 0 ? EMPTY_OBJECT : _ref$defaultValues,
55
56
  _ref$onSubmit = _ref.onSubmit,
56
57
  _onSubmit = _ref$onSubmit === void 0 ? DEFAULT_SUBMIT : _ref$onSubmit,
57
58
  onChange = _ref.onChange,
58
59
  rest = _objectWithoutProperties(_ref, _excluded);
59
60
  var ref = useRef(null);
60
- var form = useForm$1({
61
+ var form = useForm({
61
62
  shouldFocusError: true,
62
63
  resolver: resolver,
63
- defaultValues: defaultValues
64
+ defaultValues: function () {
65
+ var _defaultValues2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
66
+ return _regeneratorRuntime.wrap(function (_context) {
67
+ while (1) switch (_context.prev = _context.next) {
68
+ case 0:
69
+ _context.next = 1;
70
+ return Promise.resolve(_defaultValues);
71
+ case 1:
72
+ return _context.abrupt("return", _context.sent);
73
+ case 2:
74
+ case "end":
75
+ return _context.stop();
76
+ }
77
+ }, _callee);
78
+ }));
79
+ function defaultValues() {
80
+ return _defaultValues2.apply(this, arguments);
81
+ }
82
+ return defaultValues;
83
+ }()
64
84
  });
65
85
  var _useTransition = useTransition(),
66
86
  _useTransition2 = _slicedToArray(_useTransition, 2),
@@ -82,12 +102,17 @@ var Form = function Form(_ref) {
82
102
  form.reset(reset);
83
103
  form.clearErrors();
84
104
  (_ref$current = ref.current) === null || _ref$current === void 0 || (_ref$current = _ref$current.querySelector("[auto-focus], input, textarea")) === null || _ref$current === void 0 || _ref$current.focus();
85
- }, [defaultValues]);
105
+ }, []);
106
+ useEffect(function () {
107
+ if (resetOnChange) {
108
+ handleReset(_defaultValues);
109
+ }
110
+ }, [_defaultValues, resetOnChange]);
86
111
  useImperativeHandle(formRef, function () {
87
112
  return {
88
113
  state: form.formState,
89
114
  reset: function reset() {
90
- return handleReset(defaultValues);
115
+ return handleReset(_defaultValues);
91
116
  },
92
117
  clear: function clear() {
93
118
  return handleReset();
@@ -96,19 +121,19 @@ var Form = function Form(_ref) {
96
121
  return form.handleSubmit(_onSubmit);
97
122
  },
98
123
  validate: function () {
99
- var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fields) {
100
- return _regeneratorRuntime.wrap(function _callee$(_context) {
101
- while (1) switch (_context.prev = _context.next) {
124
+ var _validate = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(fields) {
125
+ return _regeneratorRuntime.wrap(function (_context2) {
126
+ while (1) switch (_context2.prev = _context2.next) {
102
127
  case 0:
103
- _context.next = 2;
128
+ _context2.next = 1;
104
129
  return form.trigger(fields);
130
+ case 1:
131
+ return _context2.abrupt("return", _context2.sent);
105
132
  case 2:
106
- return _context.abrupt("return", _context.sent);
107
- case 3:
108
133
  case "end":
109
- return _context.stop();
134
+ return _context2.stop();
110
135
  }
111
- }, _callee);
136
+ }, _callee2);
112
137
  }));
113
138
  function validate(_x) {
114
139
  return _validate.apply(this, arguments);
@@ -132,7 +157,7 @@ var Form = function Form(_ref) {
132
157
  }, 50);
133
158
  }
134
159
  };
135
- }, [_onSubmit, form, form.formState, defaultValues]);
160
+ }, [_onSubmit, form, form.formState, _defaultValues]);
136
161
  var onInvalid = useCallback(function (_, e) {
137
162
  var el = e.target;
138
163
  console.log("Invalid:", _, e);
@@ -145,7 +170,7 @@ var Form = function Form(_ref) {
145
170
  children: /*#__PURE__*/jsxs("form", _objectSpread(_objectSpread({
146
171
  ref: ref,
147
172
  onReset: function onReset() {
148
- return handleReset(defaultValues);
173
+ return handleReset(_defaultValues);
149
174
  },
150
175
  onSubmit: function onSubmit(e) {
151
176
  e.stopPropagation();
@@ -162,28 +187,5 @@ var Form = function Form(_ref) {
162
187
  }))
163
188
  }));
164
189
  };
165
- var useForm = function useForm() {
166
- var _useFormContext = useFormContext(),
167
- formState = _useFormContext.formState,
168
- getValues = _useFormContext.getValues,
169
- setValue = _useFormContext.setValue,
170
- watch = _useFormContext.watch,
171
- reset = _useFormContext.reset,
172
- resetField = _useFormContext.resetField,
173
- setError = _useFormContext.setError,
174
- setFocus = _useFormContext.setFocus;
175
- var values = useWatch();
176
- return {
177
- values: _objectSpread(_objectSpread({}, values), getValues()),
178
- formState: formState,
179
- getValues: getValues,
180
- setValue: setValue,
181
- watch: watch,
182
- reset: reset,
183
- resetField: resetField,
184
- setError: setError,
185
- setFocus: setFocus
186
- };
187
- };
188
190
 
189
- export { Form, useForm };
191
+ export { Form };
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { useFormContext, useWatch } from 'react-hook-form';
5
+
6
+ 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; }
7
+ 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; }
8
+ var useForm = function useForm() {
9
+ var _useFormContext = useFormContext(),
10
+ formState = _useFormContext.formState,
11
+ getValues = _useFormContext.getValues,
12
+ setValue = _useFormContext.setValue,
13
+ watch = _useFormContext.watch,
14
+ reset = _useFormContext.reset,
15
+ resetField = _useFormContext.resetField,
16
+ setError = _useFormContext.setError,
17
+ setFocus = _useFormContext.setFocus;
18
+ var values = useWatch();
19
+ return {
20
+ values: _objectSpread(_objectSpread({}, values), getValues()),
21
+ formState: formState,
22
+ getValues: getValues,
23
+ setValue: setValue,
24
+ watch: watch,
25
+ reset: reset,
26
+ resetField: resetField,
27
+ setError: setError,
28
+ setFocus: setFocus
29
+ };
30
+ };
31
+
32
+ export { useForm };