@react-fabric/form 1.0.0-beta.60 → 1.0.0-beta.62

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 (91) hide show
  1. package/dist/cjs/builder/FileField.js +10 -7
  2. package/dist/cjs/builder/components/AddSchemaFields.js +2 -1
  3. package/dist/cjs/builder/components/SchemaArrayForm.js +4 -4
  4. package/dist/cjs/builder/components/SchemaField.js +4 -4
  5. package/dist/cjs/form/Form.js +44 -22
  6. package/dist/cjs/hooks/useFileUploader.js +40 -28
  7. package/dist/cjs/hooks/useFormBuilder.js +10 -3
  8. package/dist/cjs/i18n/index.js +4 -4
  9. package/dist/cjs/input/ArrayInput.js +3 -3
  10. package/dist/cjs/input/AvatarInput.js +17 -12
  11. package/dist/cjs/input/Checkbox.js +2 -2
  12. package/dist/cjs/input/ColorInput.js +2 -2
  13. package/dist/cjs/input/File.js +1 -1
  14. package/dist/cjs/input/Hidden.js +1 -10
  15. package/dist/cjs/input/Password.js +1 -1
  16. package/dist/cjs/input/Radio.js +2 -2
  17. package/dist/cjs/input/RadioGroup.js +3 -1
  18. package/dist/cjs/input/Search.js +2 -3
  19. package/dist/cjs/internal/ErrorIcon.js +1 -1
  20. package/dist/cjs/internal/InputWrapper.js +3 -3
  21. package/dist/cjs/select/AutoComplete.js +1 -2
  22. package/dist/cjs/select/DualList.js +5 -5
  23. package/dist/cjs/select/List.js +8 -24
  24. package/dist/cjs/select/Select.js +9 -28
  25. package/dist/esm/builder/FileField.js +11 -8
  26. package/dist/esm/builder/components/AddSchemaFields.js +2 -1
  27. package/dist/esm/builder/components/SchemaArrayForm.js +5 -5
  28. package/dist/esm/builder/components/SchemaField.js +5 -5
  29. package/dist/esm/form/Form.js +44 -22
  30. package/dist/esm/hooks/useFileUploader.js +41 -29
  31. package/dist/esm/hooks/useFormBuilder.js +10 -3
  32. package/dist/esm/i18n/index.js +2 -2
  33. package/dist/esm/input/ArrayInput.js +4 -4
  34. package/dist/esm/input/AvatarInput.js +18 -13
  35. package/dist/esm/input/Checkbox.js +3 -3
  36. package/dist/esm/input/ColorInput.js +3 -3
  37. package/dist/esm/input/File.js +2 -2
  38. package/dist/esm/input/Hidden.js +2 -11
  39. package/dist/esm/input/Password.js +2 -2
  40. package/dist/esm/input/Radio.js +3 -3
  41. package/dist/esm/input/RadioGroup.js +3 -1
  42. package/dist/esm/input/Search.js +3 -4
  43. package/dist/esm/internal/ErrorIcon.js +2 -2
  44. package/dist/esm/internal/InputWrapper.js +4 -4
  45. package/dist/esm/select/AutoComplete.js +2 -3
  46. package/dist/esm/select/DualList.js +6 -6
  47. package/dist/esm/select/List.js +8 -24
  48. package/dist/esm/select/Select.js +10 -29
  49. package/dist/types/builder/FileField.d.ts +2 -1
  50. package/dist/types/form/Form.d.ts +11 -10
  51. package/dist/types/hooks/useFileUploader.d.ts +4 -2
  52. package/dist/types/hooks/useFormBuilder.d.ts +6 -0
  53. package/dist/types/input/AvatarInput.d.ts +2 -2
  54. package/dist/types/input/Hidden.d.ts +3 -11
  55. package/dist/types/input/RadioGroup.d.ts +5 -1
  56. package/dist/types/select/DualList.d.ts +5 -6
  57. package/dist/types/select/Options.d.ts +1 -1
  58. package/dist/types/types/index.d.ts +7 -8
  59. package/package.json +5 -5
  60. package/src/builder/FileField.tsx +8 -12
  61. package/src/builder/components/AddSchemaFields.tsx +2 -1
  62. package/src/builder/components/SchemaArrayForm.tsx +5 -11
  63. package/src/builder/components/SchemaField.tsx +4 -5
  64. package/src/form/Form.tsx +30 -24
  65. package/src/hooks/useFileUploader.ts +41 -29
  66. package/src/hooks/useFormBuilder.tsx +12 -4
  67. package/src/i18n/index.ts +2 -2
  68. package/src/input/ArrayInput.tsx +4 -10
  69. package/src/input/AvatarInput.tsx +16 -16
  70. package/src/input/Checkbox.tsx +6 -3
  71. package/src/input/ColorInput.tsx +3 -7
  72. package/src/input/File.tsx +2 -2
  73. package/src/input/Hidden.tsx +4 -22
  74. package/src/input/Password.tsx +4 -2
  75. package/src/input/Radio.tsx +3 -3
  76. package/src/input/RadioGroup.tsx +6 -0
  77. package/src/input/Search.tsx +3 -3
  78. package/src/internal/ErrorIcon.tsx +2 -2
  79. package/src/internal/InputWrapper.tsx +8 -4
  80. package/src/select/AutoComplete.tsx +2 -3
  81. package/src/select/DualList.tsx +15 -12
  82. package/src/select/List.tsx +3 -3
  83. package/src/select/Options.tsx +1 -1
  84. package/src/select/Select.tsx +7 -8
  85. package/src/types/index.ts +8 -7
  86. /package/dist/cjs/i18n/{ar.json.js → ar/form.json.js} +0 -0
  87. /package/dist/cjs/i18n/{en.json.js → en/form.json.js} +0 -0
  88. /package/dist/esm/i18n/{ar.json.js → ar/form.json.js} +0 -0
  89. /package/dist/esm/i18n/{en.json.js → en/form.json.js} +0 -0
  90. /package/src/i18n/{ar.json → ar/form.json} +0 -0
  91. /package/src/i18n/{en.json → en/form.json} +0 -0
@@ -36,23 +36,14 @@ var jsxRuntime = require('react/jsx-runtime');
36
36
  * @returns {JSX.Element} The rendered hidden input field and error icon.
37
37
  */
38
38
  var HiddenInput = function HiddenInput(_ref) {
39
- var hiddenValue = _ref.hiddenValue,
40
- defaultValue = _ref.defaultValue,
41
- onChange = _ref.onChange,
42
- invalid = _ref.invalid,
39
+ var invalid = _ref.invalid,
43
40
  error = _ref.error,
44
41
  _ref$value = _ref.value,
45
42
  value = _ref$value === void 0 ? "" : _ref$value,
46
43
  name = _ref.name;
47
- react.useEffect(function () {
48
- setTimeout(function () {
49
- onChange === null || onChange === void 0 || onChange(hiddenValue !== null && hiddenValue !== void 0 ? hiddenValue : defaultValue);
50
- }, 50);
51
- }, [hiddenValue, defaultValue]);
52
44
  return /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
53
45
  children: [/*#__PURE__*/jsxRuntime.jsx("input", {
54
46
  type: "hidden",
55
- onChange: onChange,
56
47
  value: value,
57
48
  name: name
58
49
  }), /*#__PURE__*/jsxRuntime.jsx(ErrorIcon.ErrorIcon, {
@@ -76,7 +76,7 @@ var Password = function Password(_ref) {
76
76
  color: "warning",
77
77
  variant: "link",
78
78
  "aria-label": t(show ? "password.hide" : "password.show"),
79
- icon: show ? core.CoreIcons.eyeOff : core.CoreIcons.eye,
79
+ icon: show ? "icon-[mdi--eye-off-outline]" : "icon-[mdi--eye-outline]",
80
80
  onClick: function onClick() {
81
81
  return setShow(!show);
82
82
  }
@@ -34,10 +34,10 @@ var Radio = function Radio(_ref) {
34
34
  rest = _objectWithoutProperties(_ref, _excluded);
35
35
  var iconOn = react.useMemo(function () {
36
36
  var _ref2;
37
- return (_ref2 = iconChecked !== null && iconChecked !== void 0 ? iconChecked : icon) !== null && _ref2 !== void 0 ? _ref2 : core.CoreIcons.radioOn;
37
+ return (_ref2 = iconChecked !== null && iconChecked !== void 0 ? iconChecked : icon) !== null && _ref2 !== void 0 ? _ref2 : "icon-[mdi--radiobox-marked]";
38
38
  }, [icon, iconChecked]);
39
39
  var iconOff = react.useMemo(function () {
40
- return icon !== null && icon !== void 0 ? icon : core.CoreIcons.radioOff;
40
+ return icon !== null && icon !== void 0 ? icon : "icon-[mdi--radiobox-blank]";
41
41
  }, [icon]);
42
42
  var handleChange = react.useCallback(function (e) {
43
43
  // @ts-expect-error ignore
@@ -7,7 +7,7 @@ var react = require('react');
7
7
  var FieldWrapper = require('../internal/FieldWrapper.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
- var _excluded = ["children", "name", "className", "optionWidth", "onChange"];
10
+ var _excluded = ["children", "name", "className", "optionWidth", "value", "onChange"];
11
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; }
12
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; }
13
13
  /**
@@ -23,6 +23,7 @@ var RadioGroup = function RadioGroup(_ref) {
23
23
  name = _ref.name,
24
24
  className = _ref.className,
25
25
  optionWidth = _ref.optionWidth,
26
+ value = _ref.value,
26
27
  onChange = _ref.onChange,
27
28
  rest = _objectWithoutProperties(_ref, _excluded);
28
29
  return /*#__PURE__*/jsxRuntime.jsx(FieldWrapper.FieldWrapper, _objectSpread(_objectSpread({}, rest), {}, {
@@ -31,6 +32,7 @@ var RadioGroup = function RadioGroup(_ref) {
31
32
  children: core.cloneChildren(children, function (child) {
32
33
  return /*#__PURE__*/react.cloneElement(child, {
33
34
  name: name,
35
+ checked: child.props.value === value,
34
36
  onChange: onChange,
35
37
  width: optionWidth
36
38
  });
@@ -81,14 +81,13 @@ var Search = function Search(_ref) {
81
81
  actionButton: /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
82
82
  children: [searching && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
83
83
  className: "p-2",
84
- icon: core.CoreIcons.spinner,
85
- animate: "spin"
84
+ icon: "icon-[svg-spinners--eclipse]"
86
85
  }), !searching && !hideHandle && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
87
86
  tabIndex: -1,
88
87
  variant: "link",
89
88
  "aria-label": "search",
90
89
  disabled: !actualValue,
91
- icon: core.CoreIcons.search,
90
+ icon: "icon-[mdi--magnify]",
92
91
  onClick: handleSearch
93
92
  })]
94
93
  })
@@ -24,7 +24,7 @@ var ErrorIcon = function ErrorIcon(_ref) {
24
24
  children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
25
25
  className: "flex-content first:ms-2 self-center",
26
26
  color: "danger",
27
- icon: core.CoreIcons.alert
27
+ icon: "icon-[mdi--alert-circle-outline]"
28
28
  })
29
29
  });
30
30
  };
@@ -85,7 +85,7 @@ var InputWrapper = function InputWrapper(_ref) {
85
85
  invalid: invalid,
86
86
  error: error
87
87
  }), children, allowClear && showClear && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
88
- icon: core.CoreIcons.close,
88
+ icon: "icon-[mdi--close]",
89
89
  onClick: handleClear,
90
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")
91
91
  }), decorateEnd && /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -100,14 +100,14 @@ var InputWrapper = function InputWrapper(_ref) {
100
100
  onClick: function onClick() {
101
101
  return setExpanded(!isExpanded);
102
102
  },
103
- icon: isExpanded ? core.CoreIcons.arrowCollapse : core.CoreIcons.arrowExpand,
103
+ icon: isExpanded ? "icon-[mdi--arrow-collapse]" : "icon-[mdi--arrow-expand]",
104
104
  className: "hidden group-hover:block absolute top-0 end-0 bg-base hover:bg-tint-200 p-1 opacity-65 rounded-capped"
105
105
  })]
106
106
  });
107
107
  return /*#__PURE__*/jsxRuntime.jsx(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
108
108
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
109
109
  ref: elRef,
110
- className: classNames("relative min-h-8 flex flex-col flex-nowrap", width ? "flex-auto" : "flex-1"),
110
+ className: classNames("relative min-h-8 flex flex-col flex-nowrap", width ? "flex-content" : "flex-1"),
111
111
  style: {
112
112
  width: width,
113
113
  flexBasis: width
@@ -243,9 +243,8 @@ var AutoComplete = function AutoComplete(_ref) {
243
243
  className: "opacity-0 absolute"
244
244
  })]
245
245
  }), state.loading && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
246
- animate: "spin",
247
246
  className: classNames("flex-content p-2 z-0 order-9 text-muted pointer-events-none"),
248
- icon: core.CoreIcons.spinner
247
+ icon: "icon-[svg-spinners--eclipse]"
249
248
  }), state.open && !state.loading && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
250
249
  children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
251
250
  context: context,
@@ -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,
@@ -195,7 +195,7 @@ var DualList = function DualList(_ref) {
195
195
  "aria-label": "scroll to top",
196
196
  onClick: moveAllLeft,
197
197
  icon: {
198
- icon: core$1.CoreIcons.chevronsLeft,
198
+ icon: "icon-[mdi--chevron-double-left]",
199
199
  rtlFlip: true
200
200
  },
201
201
  disabled: !rightOptions.length
@@ -205,7 +205,7 @@ var DualList = function DualList(_ref) {
205
205
  "aria-label": "scroll up",
206
206
  onClick: moveRightSelected,
207
207
  icon: {
208
- icon: core$1.CoreIcons.chevronLeft,
208
+ icon: "icon-[mdi--chevron-left]",
209
209
  rtlFlip: true
210
210
  },
211
211
  disabled: !rightSelected.length
@@ -215,7 +215,7 @@ var DualList = function DualList(_ref) {
215
215
  "aria-label": "scroll down",
216
216
  onClick: moveLeftSelected,
217
217
  icon: {
218
- icon: core$1.CoreIcons.chevronRight,
218
+ icon: "icon-[mdi--chevron-right]",
219
219
  rtlFlip: true
220
220
  },
221
221
  disabled: !leftSelected.length
@@ -225,7 +225,7 @@ var DualList = function DualList(_ref) {
225
225
  "aria-label": "scroll to bottom",
226
226
  onClick: moveAllRight,
227
227
  icon: {
228
- icon: core$1.CoreIcons.chevronsRight,
228
+ icon: "icon-[mdi--chevron-double-right]",
229
229
  rtlFlip: true
230
230
  },
231
231
  disabled: !leftOptions.length
@@ -1,9 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
4
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
7
5
  var react$1 = require('@floating-ui/react');
8
6
  var core = require('@react-fabric/core');
9
7
  var utilities = require('@react-fabric/utilities');
@@ -31,8 +29,10 @@ var List = function List(_ref) {
31
29
  options = _ref.options,
32
30
  height = _ref.height,
33
31
  groupProperty = _ref.groupProperty,
34
- labelProperty = _ref.labelProperty,
35
- 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,
36
36
  infoProperty = _ref.infoProperty,
37
37
  sortProperty = _ref.sortProperty,
38
38
  multiple = _ref.multiple,
@@ -259,26 +259,10 @@ var List = function List(_ref) {
259
259
  itemProps: makeItemProps,
260
260
  empty: emptyDisplay,
261
261
  info: (_state$activeItem = state.activeItem) === null || _state$activeItem === void 0 ? void 0 : _state$activeItem[infoProperty !== null && infoProperty !== void 0 ? infoProperty : "info"],
262
- children: ( /*#__PURE__*/function () {
263
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(item, label) {
264
- var _renderer3;
265
- return _regeneratorRuntime.wrap(function _callee$(_context) {
266
- while (1) switch (_context.prev = _context.next) {
267
- case 0:
268
- _context.next = 2;
269
- return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
270
- case 2:
271
- return _context.abrupt("return", _context.sent);
272
- case 3:
273
- case "end":
274
- return _context.stop();
275
- }
276
- }, _callee);
277
- }));
278
- return function (_x, _x2) {
279
- return _ref4.apply(this, arguments);
280
- };
281
- }())
262
+ children: function children(item, label) {
263
+ var _renderer3;
264
+ return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
265
+ }
282
266
  }))
283
267
  })]
284
268
  }));
@@ -1,9 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
4
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
7
5
  var react$1 = require('@floating-ui/react');
8
6
  var core = require('@react-fabric/core');
9
7
  var utilities = require('@react-fabric/utilities');
@@ -36,7 +34,7 @@ var Select = function Select(_ref) {
36
34
  _ref$labelProperty = _ref.labelProperty,
37
35
  labelProperty = _ref$labelProperty === void 0 ? "label" : _ref$labelProperty,
38
36
  _ref$valueProperty = _ref.valueProperty,
39
- valueProperty = _ref$valueProperty === void 0 ? "id" : _ref$valueProperty,
37
+ valueProperty = _ref$valueProperty === void 0 ? "value" : _ref$valueProperty,
40
38
  sortProperty = _ref.sortProperty,
41
39
  infoProperty = _ref.infoProperty,
42
40
  multiple = _ref.multiple,
@@ -200,7 +198,7 @@ var Select = function Select(_ref) {
200
198
  } else if (!utilities.isEmpty(state.value) && !state.query) {
201
199
  var _ref3, _renderer2;
202
200
  return /*#__PURE__*/jsxRuntime.jsx("span", {
203
- className: "self-center pointer-events-none select-none",
201
+ className: "self-center pointer-events-none select-none truncate leading-tight",
204
202
  children: (_ref3 = (_renderer2 = renderer === null || renderer === void 0 ? void 0 : renderer(state.value)) !== null && _renderer2 !== void 0 ? _renderer2 : state.value[labelProperty]) !== null && _ref3 !== void 0 ? _ref3 : state.value
205
203
  });
206
204
  }
@@ -248,7 +246,7 @@ var Select = function Select(_ref) {
248
246
  size: 1,
249
247
  ref: ref,
250
248
  autoFocus: autoFocus,
251
- className: classNames("appearance-none bg-transparent outline-none border-none ring-0 flex-1 peer", disabled && "cursor-not-allowed pointer-events-none", multiple && "min-w-24"),
249
+ className: classNames("appearance-none bg-transparent outline-none border-none ring-0 flex-1 peer", disabled && "cursor-not-allowed pointer-events-none", multiple ? "min-w-24" : "min-w-2"),
252
250
  placeholder: utilities.isEmpty(state.value) ? placeholder : "",
253
251
  onChange: function onChange(evt) {
254
252
  return handleQuery(evt.target.value);
@@ -259,11 +257,10 @@ var Select = function Select(_ref) {
259
257
  onClick: function onClick() {
260
258
  return !disabled && openDropdown();
261
259
  },
262
- icon: core.CoreIcons.chevronDown
260
+ icon: "icon-[mdi--chevron-down]"
263
261
  }), state.loading && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
264
- animate: "spin",
265
262
  className: classNames("flex-content p-2 z-0 order-9 text-muted pointer-events-none"),
266
- icon: core.CoreIcons.spinner
263
+ icon: "icon-[svg-spinners--eclipse]"
267
264
  }), state.open && !state.loading && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
268
265
  children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
269
266
  context: context,
@@ -284,26 +281,10 @@ var Select = function Select(_ref) {
284
281
  itemProps: makeItemProps,
285
282
  empty: emptyDisplay,
286
283
  info: (_state$activeItem = state.activeItem) === null || _state$activeItem === void 0 ? void 0 : _state$activeItem[infoProperty !== null && infoProperty !== void 0 ? infoProperty : "info"],
287
- children: ( /*#__PURE__*/function () {
288
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(item, label) {
289
- var _renderer3;
290
- return _regeneratorRuntime.wrap(function _callee$(_context) {
291
- while (1) switch (_context.prev = _context.next) {
292
- case 0:
293
- _context.next = 2;
294
- return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
295
- case 2:
296
- return _context.abrupt("return", _context.sent);
297
- case 3:
298
- case "end":
299
- return _context.stop();
300
- }
301
- }, _callee);
302
- }));
303
- return function (_x, _x2) {
304
- return _ref4.apply(this, arguments);
305
- };
306
- }())
284
+ children: function children(item, label) {
285
+ var _renderer3;
286
+ return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
287
+ }
307
288
  }))
308
289
  })
309
290
  })]
@@ -4,7 +4,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
5
5
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { Tooltip, Button, Icon, CoreIcons, ProgressBar } from '@react-fabric/core';
7
+ import { Tooltip, Button, Icon, ProgressBar } from '@react-fabric/core';
8
8
  import { isString, FileUtil, Format } from '@react-fabric/utilities';
9
9
  import { Fragment } from 'react';
10
10
  import { useTranslation } from 'react-i18next';
@@ -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,7 +24,8 @@ 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);
@@ -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",
@@ -110,7 +113,7 @@ var FileField = function FileField(_ref) {
110
113
  children: file.error
111
114
  })
112
115
  }), file.progress && /*#__PURE__*/jsx(Icon, {
113
- icon: CoreIcons.stop,
116
+ icon: "icon-[mdi--stop]",
114
117
  bg: "danger",
115
118
  color: "white",
116
119
  size: "sm",
@@ -121,7 +124,7 @@ var FileField = function FileField(_ref) {
121
124
  return (_file$abort = file.abort) === null || _file$abort === void 0 ? void 0 : _file$abort.call(file);
122
125
  }
123
126
  }), !file.progress && /*#__PURE__*/jsx(Icon, {
124
- icon: CoreIcons.trash,
127
+ icon: "icon-[mdi--trash-can-outline]",
125
128
  color: "danger",
126
129
  size: "sm",
127
130
  "aria-label": "remove",
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import { yupResolver } from '@hookform/resolvers/yup';
4
5
  import { Modal, Content, Footer, Button } from '@react-fabric/core';
5
6
  import { yup } from '@react-fabric/utilities';
6
7
  import { useCallback } from 'react';
@@ -25,7 +26,7 @@ var AddSchemaFields = function AddSchemaFields(props) {
25
26
  }, []);
26
27
  return /*#__PURE__*/jsx(Modal, _objectSpread(_objectSpread({}, props), {}, {
27
28
  children: /*#__PURE__*/jsxs(Form, {
28
- schema: fieldSchema,
29
+ resolver: yupResolver(fieldSchema),
29
30
  defaultValues: {
30
31
  fields: [" "]
31
32
  },
@@ -4,7 +4,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
4
  import { DndContext } from '@dnd-kit/core';
5
5
  import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
6
6
  import { SortableContext } from '@dnd-kit/sortable';
7
- import { useOverlayService, Header, Button, CoreIcons, Content } from '@react-fabric/core';
7
+ import { useOverlayService, Header, Button, Content } from '@react-fabric/core';
8
8
  import { isArray } from '@react-fabric/utilities';
9
9
  import { useState, useCallback } from 'react';
10
10
  import { useFormContext, useFieldArray } from 'react-hook-form';
@@ -96,13 +96,13 @@ var SchemaArrayForm = function SchemaArrayForm(_ref) {
96
96
  children: [dynamic && /*#__PURE__*/jsx(Button, {
97
97
  size: "sm",
98
98
  variant: "link",
99
- icon: CoreIcons.insert,
99
+ icon: "icon-[mdi--plus-circle-outline]",
100
100
  "aria-label": "add field",
101
101
  onClick: handleAdd
102
102
  }), /*#__PURE__*/jsx(Button, {
103
103
  size: "sm",
104
104
  variant: "link",
105
- icon: CoreIcons.colapseAllVar,
105
+ icon: "icon-[mdi--arrow-collapse-vertical]",
106
106
  "aria-label": "collapse all",
107
107
  onClick: function onClick() {
108
108
  return setDefaultOpen(false);
@@ -110,7 +110,7 @@ var SchemaArrayForm = function SchemaArrayForm(_ref) {
110
110
  }), /*#__PURE__*/jsx(Button, {
111
111
  size: "sm",
112
112
  variant: "link",
113
- icon: CoreIcons.expandAllVar,
113
+ icon: "icon-[mdi--arrow-expand-vertical]",
114
114
  "aria-label": "expand all",
115
115
  onClick: function onClick() {
116
116
  return setDefaultOpen(true);
@@ -138,7 +138,7 @@ var SchemaArrayForm = function SchemaArrayForm(_ref) {
138
138
  acceptableTypes: acceptableTypes !== null && acceptableTypes !== void 0 ? acceptableTypes : Object.values(DATA_TYPES)
139
139
  }, index);
140
140
  })
141
- }), AddModal]
141
+ }), /*#__PURE__*/jsx(AddModal, {})]
142
142
  });
143
143
  };
144
144
 
@@ -5,7 +5,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
6
6
  import { useSortable } from '@dnd-kit/sortable';
7
7
  import { CSS } from '@dnd-kit/utilities';
8
- import { useOverlayService, Modal, Content, Footer, Button, Collapsable, CoreIcons, ToggleButtonGroup } from '@react-fabric/core';
8
+ import { useOverlayService, Modal, Content, Footer, Button, Collapsable, ToggleButtonGroup } from '@react-fabric/core';
9
9
  import { EMPTY_ARRAY } from '@react-fabric/utilities';
10
10
  import classNames from 'classnames';
11
11
  import { useState, useCallback, useEffect, Fragment } from 'react';
@@ -180,7 +180,7 @@ var SchemaField = function SchemaField(_ref) {
180
180
  variant: "link",
181
181
  "aria-label": "Delete",
182
182
  stopPropagation: true,
183
- icon: CoreIcons.trash,
183
+ icon: "icon-[mdi--trash-can-outline]",
184
184
  onClick: onRemove,
185
185
  className: "invisible group-hover/field:visible"
186
186
  })]
@@ -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"),
@@ -242,7 +242,7 @@ var SchemaField = function SchemaField(_ref) {
242
242
  }
243
243
  })
244
244
  }), customOptions && /*#__PURE__*/jsx(Button, {
245
- icon: CoreIcons.list,
245
+ icon: "icon-[mdi--list-box-outline]",
246
246
  "aria-label": "Custom options",
247
247
  onClick: function onClick() {
248
248
  void openOptionModal({
@@ -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"),
@@ -1,18 +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
- import { yupResolver } from '@hookform/resolvers/yup';
9
8
  import { useDebounce } from '@react-fabric/core';
10
9
  import { EMPTY_OBJECT } from '@react-fabric/utilities';
11
10
  import { useRef, useTransition, useEffect, useCallback, useImperativeHandle } from 'react';
12
11
  import { useForm as useForm$1, FormProvider, useFormContext, useWatch } from 'react-hook-form';
13
12
  import { jsx, jsxs } from 'react/jsx-runtime';
14
13
 
15
- var _excluded = ["formRef", "schema", "children", "defaultValues", "onSubmit", "onChange"];
14
+ var _excluded = ["formRef", "resolver", "children", "resetOnChange", "defaultValues", "onSubmit", "onChange"];
16
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; }
17
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; }
18
17
  var DEFAULT_SUBMIT = function DEFAULT_SUBMIT() {
@@ -31,10 +30,7 @@ var DEFAULT_SUBMIT = function DEFAULT_SUBMIT() {
31
30
  * ```jsx
32
31
  * <Form
33
32
  * formRef={formRef}
34
- * schema={yup.object().shape({
35
- * name: yup.string().required("Name is required"),
36
- * email: yup.string().email("Invalid email").required("Email is required"),
37
- * })}
33
+ * resolver={hookformResolver(schema)}
38
34
  * defaultValues={{ name: "", email: "" }}
39
35
  * onSubmit={(values) => {
40
36
  * console.log("Form submitted with values:", values);
@@ -52,10 +48,11 @@ var DEFAULT_SUBMIT = function DEFAULT_SUBMIT() {
52
48
  */
53
49
  var Form = function Form(_ref) {
54
50
  var formRef = _ref.formRef,
55
- schema = _ref.schema,
51
+ resolver = _ref.resolver,
56
52
  children = _ref.children,
53
+ resetOnChange = _ref.resetOnChange,
57
54
  _ref$defaultValues = _ref.defaultValues,
58
- defaultValues = _ref$defaultValues === void 0 ? EMPTY_OBJECT : _ref$defaultValues,
55
+ _defaultValues = _ref$defaultValues === void 0 ? EMPTY_OBJECT : _ref$defaultValues,
59
56
  _ref$onSubmit = _ref.onSubmit,
60
57
  _onSubmit = _ref$onSubmit === void 0 ? DEFAULT_SUBMIT : _ref$onSubmit,
61
58
  onChange = _ref.onChange,
@@ -63,8 +60,27 @@ var Form = function Form(_ref) {
63
60
  var ref = useRef(null);
64
61
  var form = useForm$1({
65
62
  shouldFocusError: true,
66
- resolver: schema && yupResolver(schema),
67
- defaultValues: defaultValues
63
+ resolver: resolver,
64
+ defaultValues: function () {
65
+ var _defaultValues2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
66
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
67
+ while (1) switch (_context.prev = _context.next) {
68
+ case 0:
69
+ _context.next = 2;
70
+ return Promise.resolve(_defaultValues);
71
+ case 2:
72
+ return _context.abrupt("return", _context.sent);
73
+ case 3:
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
+ }()
68
84
  });
69
85
  var _useTransition = useTransition(),
70
86
  _useTransition2 = _slicedToArray(_useTransition, 2),
@@ -86,12 +102,17 @@ var Form = function Form(_ref) {
86
102
  form.reset(reset);
87
103
  form.clearErrors();
88
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();
89
- }, [defaultValues]);
105
+ }, []);
106
+ useEffect(function () {
107
+ if (resetOnChange) {
108
+ handleReset(_defaultValues);
109
+ }
110
+ }, [_defaultValues, resetOnChange]);
90
111
  useImperativeHandle(formRef, function () {
91
112
  return {
92
113
  state: form.formState,
93
114
  reset: function reset() {
94
- return handleReset(defaultValues);
115
+ return handleReset(_defaultValues);
95
116
  },
96
117
  clear: function clear() {
97
118
  return handleReset();
@@ -100,19 +121,19 @@ var Form = function Form(_ref) {
100
121
  return form.handleSubmit(_onSubmit);
101
122
  },
102
123
  validate: function () {
103
- var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fields) {
104
- return _regeneratorRuntime.wrap(function _callee$(_context) {
105
- while (1) switch (_context.prev = _context.next) {
124
+ var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(fields) {
125
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
126
+ while (1) switch (_context2.prev = _context2.next) {
106
127
  case 0:
107
- _context.next = 2;
128
+ _context2.next = 2;
108
129
  return form.trigger(fields);
109
130
  case 2:
110
- return _context.abrupt("return", _context.sent);
131
+ return _context2.abrupt("return", _context2.sent);
111
132
  case 3:
112
133
  case "end":
113
- return _context.stop();
134
+ return _context2.stop();
114
135
  }
115
- }, _callee);
136
+ }, _callee2);
116
137
  }));
117
138
  function validate(_x) {
118
139
  return _validate.apply(this, arguments);
@@ -136,9 +157,10 @@ var Form = function Form(_ref) {
136
157
  }, 50);
137
158
  }
138
159
  };
139
- }, [_onSubmit, form, form.formState, defaultValues]);
160
+ }, [_onSubmit, form, form.formState, _defaultValues]);
140
161
  var onInvalid = useCallback(function (_, e) {
141
162
  var el = e.target;
163
+ console.log("Invalid:", _, e);
142
164
  setTimeout(function () {
143
165
  var _el$querySelector;
144
166
  return (_el$querySelector = el.querySelector("input[aria-invalid='true'],textarea[aria-invalid='true']")) === null || _el$querySelector === void 0 ? void 0 : _el$querySelector.focus();
@@ -148,7 +170,7 @@ var Form = function Form(_ref) {
148
170
  children: /*#__PURE__*/jsxs("form", _objectSpread(_objectSpread({
149
171
  ref: ref,
150
172
  onReset: function onReset() {
151
- return handleReset(defaultValues);
173
+ return handleReset(_defaultValues);
152
174
  },
153
175
  onSubmit: function onSubmit(e) {
154
176
  e.stopPropagation();