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

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 (69) hide show
  1. package/dist/cjs/builder/FileField.js +2 -2
  2. package/dist/cjs/builder/components/AddSchemaFields.js +2 -1
  3. package/dist/cjs/builder/components/SchemaArrayForm.js +3 -3
  4. package/dist/cjs/builder/components/SchemaField.js +2 -2
  5. package/dist/cjs/form/Form.js +5 -8
  6. package/dist/cjs/hooks/useFormBuilder.js +10 -3
  7. package/dist/cjs/input/ArrayInput.js +3 -3
  8. package/dist/cjs/input/AvatarInput.js +3 -3
  9. package/dist/cjs/input/Checkbox.js +2 -2
  10. package/dist/cjs/input/ColorInput.js +2 -2
  11. package/dist/cjs/input/File.js +1 -1
  12. package/dist/cjs/input/Password.js +1 -1
  13. package/dist/cjs/input/Radio.js +2 -2
  14. package/dist/cjs/input/Search.js +2 -3
  15. package/dist/cjs/internal/ErrorIcon.js +1 -1
  16. package/dist/cjs/internal/InputWrapper.js +3 -3
  17. package/dist/cjs/select/AutoComplete.js +1 -2
  18. package/dist/cjs/select/DualList.js +4 -4
  19. package/dist/cjs/select/List.js +4 -22
  20. package/dist/cjs/select/Select.js +8 -27
  21. package/dist/esm/builder/FileField.js +3 -3
  22. package/dist/esm/builder/components/AddSchemaFields.js +2 -1
  23. package/dist/esm/builder/components/SchemaArrayForm.js +4 -4
  24. package/dist/esm/builder/components/SchemaField.js +3 -3
  25. package/dist/esm/form/Form.js +5 -8
  26. package/dist/esm/hooks/useFormBuilder.js +10 -3
  27. package/dist/esm/input/ArrayInput.js +4 -4
  28. package/dist/esm/input/AvatarInput.js +4 -4
  29. package/dist/esm/input/Checkbox.js +3 -3
  30. package/dist/esm/input/ColorInput.js +3 -3
  31. package/dist/esm/input/File.js +2 -2
  32. package/dist/esm/input/Password.js +2 -2
  33. package/dist/esm/input/Radio.js +3 -3
  34. package/dist/esm/input/Search.js +3 -4
  35. package/dist/esm/internal/ErrorIcon.js +2 -2
  36. package/dist/esm/internal/InputWrapper.js +4 -4
  37. package/dist/esm/select/AutoComplete.js +2 -3
  38. package/dist/esm/select/DualList.js +5 -5
  39. package/dist/esm/select/List.js +4 -22
  40. package/dist/esm/select/Select.js +9 -28
  41. package/dist/types/form/Form.d.ts +6 -9
  42. package/dist/types/hooks/useFormBuilder.d.ts +6 -0
  43. package/dist/types/input/AvatarInput.d.ts +1 -1
  44. package/dist/types/select/DualList.d.ts +5 -6
  45. package/dist/types/select/Options.d.ts +1 -1
  46. package/dist/types/types/index.d.ts +7 -8
  47. package/package.json +5 -5
  48. package/src/builder/FileField.tsx +3 -9
  49. package/src/builder/components/AddSchemaFields.tsx +2 -1
  50. package/src/builder/components/SchemaArrayForm.tsx +4 -10
  51. package/src/builder/components/SchemaField.tsx +2 -3
  52. package/src/form/Form.tsx +10 -11
  53. package/src/hooks/useFormBuilder.tsx +12 -4
  54. package/src/input/ArrayInput.tsx +4 -10
  55. package/src/input/AvatarInput.tsx +5 -5
  56. package/src/input/Checkbox.tsx +6 -3
  57. package/src/input/ColorInput.tsx +3 -7
  58. package/src/input/File.tsx +2 -2
  59. package/src/input/Password.tsx +4 -2
  60. package/src/input/Radio.tsx +3 -3
  61. package/src/input/Search.tsx +3 -3
  62. package/src/internal/ErrorIcon.tsx +2 -2
  63. package/src/internal/InputWrapper.tsx +8 -4
  64. package/src/select/AutoComplete.tsx +2 -3
  65. package/src/select/DualList.tsx +14 -11
  66. package/src/select/List.tsx +1 -1
  67. package/src/select/Options.tsx +1 -1
  68. package/src/select/Select.tsx +6 -7
  69. package/src/types/index.ts +8 -7
@@ -110,7 +110,7 @@ var FileField = function FileField(_ref) {
110
110
  children: file.error
111
111
  })
112
112
  }), file.progress && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
113
- icon: core.CoreIcons.stop,
113
+ icon: "icon-[mdi--stop]",
114
114
  bg: "danger",
115
115
  color: "white",
116
116
  size: "sm",
@@ -121,7 +121,7 @@ var FileField = function FileField(_ref) {
121
121
  return (_file$abort = file.abort) === null || _file$abort === void 0 ? void 0 : _file$abort.call(file);
122
122
  }
123
123
  }), !file.progress && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
124
- icon: core.CoreIcons.trash,
124
+ icon: "icon-[mdi--trash-can-outline]",
125
125
  color: "danger",
126
126
  size: "sm",
127
127
  "aria-label": "remove",
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var yup = require('@hookform/resolvers/yup');
4
5
  var core = require('@react-fabric/core');
5
6
  var utilities = require('@react-fabric/utilities');
6
7
  var react = require('react');
@@ -25,7 +26,7 @@ var AddSchemaFields = function AddSchemaFields(props) {
25
26
  }, []);
26
27
  return /*#__PURE__*/jsxRuntime.jsx(core.Modal, _objectSpread(_objectSpread({}, props), {}, {
27
28
  children: /*#__PURE__*/jsxRuntime.jsxs(Form.Form, {
28
- schema: fieldSchema,
29
+ resolver: yup.yupResolver(fieldSchema),
29
30
  defaultValues: {
30
31
  fields: [" "]
31
32
  },
@@ -96,13 +96,13 @@ var SchemaArrayForm = function SchemaArrayForm(_ref) {
96
96
  children: [dynamic && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
97
97
  size: "sm",
98
98
  variant: "link",
99
- icon: core.CoreIcons.insert,
99
+ icon: "icon-[mdi--plus-circle-outline]",
100
100
  "aria-label": "add field",
101
101
  onClick: handleAdd
102
102
  }), /*#__PURE__*/jsxRuntime.jsx(core.Button, {
103
103
  size: "sm",
104
104
  variant: "link",
105
- icon: core.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__*/jsxRuntime.jsx(core.Button, {
111
111
  size: "sm",
112
112
  variant: "link",
113
- icon: core.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);
@@ -180,7 +180,7 @@ var SchemaField = function SchemaField(_ref) {
180
180
  variant: "link",
181
181
  "aria-label": "Delete",
182
182
  stopPropagation: true,
183
- icon: core.CoreIcons.trash,
183
+ icon: "icon-[mdi--trash-can-outline]",
184
184
  onClick: onRemove,
185
185
  className: "invisible group-hover/field:visible"
186
186
  })]
@@ -242,7 +242,7 @@ var SchemaField = function SchemaField(_ref) {
242
242
  }
243
243
  })
244
244
  }), customOptions && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
245
- icon: core.CoreIcons.list,
245
+ icon: "icon-[mdi--list-box-outline]",
246
246
  "aria-label": "Custom options",
247
247
  onClick: function onClick() {
248
248
  void openOptionModal({
@@ -5,14 +5,13 @@ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
5
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var yup = require('@hookform/resolvers/yup');
9
8
  var core = require('@react-fabric/core');
10
9
  var utilities = require('@react-fabric/utilities');
11
10
  var react = require('react');
12
11
  var reactHookForm = require('react-hook-form');
13
12
  var jsxRuntime = require('react/jsx-runtime');
14
13
 
15
- var _excluded = ["formRef", "schema", "children", "defaultValues", "onSubmit", "onChange"];
14
+ var _excluded = ["formRef", "resolver", "children", "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,7 +48,7 @@ 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,
57
53
  _ref$defaultValues = _ref.defaultValues,
58
54
  defaultValues = _ref$defaultValues === void 0 ? utilities.EMPTY_OBJECT : _ref$defaultValues,
@@ -63,7 +59,7 @@ var Form = function Form(_ref) {
63
59
  var ref = react.useRef(null);
64
60
  var form = reactHookForm.useForm({
65
61
  shouldFocusError: true,
66
- resolver: schema && yup.yupResolver(schema),
62
+ resolver: resolver,
67
63
  defaultValues: defaultValues
68
64
  });
69
65
  var _useTransition = react.useTransition(),
@@ -139,6 +135,7 @@ var Form = function Form(_ref) {
139
135
  }, [_onSubmit, form, form.formState, defaultValues]);
140
136
  var onInvalid = react.useCallback(function (_, e) {
141
137
  var el = e.target;
138
+ console.log("Invalid:", _, e);
142
139
  setTimeout(function () {
143
140
  var _el$querySelector;
144
141
  return (_el$querySelector = el.querySelector("input[aria-invalid='true'],textarea[aria-invalid='true']")) === null || _el$querySelector === void 0 ? void 0 : _el$querySelector.focus();
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var yup = require('@hookform/resolvers/yup');
4
5
  var core = require('@react-fabric/core');
5
6
  var utilities = require('@react-fabric/utilities');
6
7
  var react = require('react');
@@ -100,9 +101,14 @@ var useFormBuilder = function useFormBuilder(schema$1) {
100
101
  return !!schm.id;
101
102
  })) !== null && _schema$filter !== void 0 ? _schema$filter : [];
102
103
  }, [schema$1]);
103
- var schemaDef = utilities.yup.object(Object.fromEntries(filteredSchema.map(function (field) {
104
- return [field.id, makeYupField(field)];
105
- })));
104
+ var schemaDef = react.useMemo(function () {
105
+ return utilities.yup.object(Object.fromEntries(filteredSchema.map(function (field) {
106
+ return [field.id, makeYupField(field)];
107
+ })));
108
+ }, [filteredSchema]);
109
+ var resolver = react.useMemo(function () {
110
+ return yup.yupResolver(schemaDef);
111
+ }, [schemaDef]);
106
112
  var formDef = /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
107
113
  children: [filteredSchema.map(function (field, idx) {
108
114
  return /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -122,6 +128,7 @@ var useFormBuilder = function useFormBuilder(schema$1) {
122
128
  });
123
129
  return {
124
130
  formDef: formDef,
131
+ resolver: resolver,
125
132
  schemaDef: schemaDef
126
133
  };
127
134
  };
@@ -196,7 +196,7 @@ var ArrayInput = function ArrayInput(_ref) {
196
196
  },
197
197
  children: [/*#__PURE__*/jsxRuntime.jsx(core$1.Icon, _objectSpread(_objectSpread({
198
198
  className: isDragging ? "cursor-grabbing" : "cursor-grab",
199
- icon: core$1.CoreIcons.dragHandle
199
+ icon: "icon-[mdi--drag-vertical]"
200
200
  }, attributes), listeners)), children]
201
201
  });
202
202
  }
@@ -219,7 +219,7 @@ var ArrayInput = function ArrayInput(_ref) {
219
219
  children: /*#__PURE__*/jsxRuntime.jsx(core$1.Button, {
220
220
  size: "sm",
221
221
  "aria-label": "Add item",
222
- icon: core$1.CoreIcons.insert,
222
+ icon: "icon-[mdi--plus-circle-outline]",
223
223
  onClick: function onClick() {
224
224
  return handleAdd(onAdd === null || onAdd === void 0 ? void 0 : onAdd());
225
225
  },
@@ -260,7 +260,7 @@ var ArrayInput = function ArrayInput(_ref) {
260
260
  }));
261
261
  }), canRemove !== false && /*#__PURE__*/jsxRuntime.jsx(core$1.Button, {
262
262
  "aria-label": "Remove item",
263
- icon: core$1.CoreIcons.remove,
263
+ icon: "icon-[mdi--minus-circle-outline]",
264
264
  color: "danger",
265
265
  variant: "link",
266
266
  className: "self-end",
@@ -6,10 +6,10 @@ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
6
6
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
8
  var core = require('@react-fabric/core');
9
+ var classNames = require('classnames');
9
10
  var react = require('react');
10
11
  var useFileUploader = require('../hooks/useFileUploader.js');
11
12
  var Hidden = require('./Hidden.js');
12
- var classNames = require('classnames');
13
13
  var jsxRuntime = require('react/jsx-runtime');
14
14
 
15
15
  var _excluded = ["size", "avatarName", "avatarClassName", "value", "rounded", "defaultValue", "fallbackIcon", "variant", "fileUrl", "uploadHandler"];
@@ -128,7 +128,7 @@ var AvatarInput = function AvatarInput(_ref) {
128
128
  children: file.error
129
129
  })
130
130
  }), file.progress && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
131
- icon: core.CoreIcons.stop,
131
+ icon: "icon-[mdi--stop]",
132
132
  bg: "danger",
133
133
  color: "white",
134
134
  size: "sm",
@@ -139,7 +139,7 @@ var AvatarInput = function AvatarInput(_ref) {
139
139
  return (_file$abort = file.abort) === null || _file$abort === void 0 ? void 0 : _file$abort.call(file);
140
140
  }
141
141
  }), !file.progress && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
142
- icon: core.CoreIcons.trash,
142
+ icon: "icon-[mdi--trash-can-outline]",
143
143
  color: "danger",
144
144
  size: "sm",
145
145
  className: "flex-content",
@@ -43,10 +43,10 @@ var Checkbox = function Checkbox(_ref) {
43
43
  var deferred = react.useDeferredValue(!!checked);
44
44
  var iconOn = react.useMemo(function () {
45
45
  var _ref2;
46
- return (_ref2 = iconChecked !== null && iconChecked !== void 0 ? iconChecked : icon) !== null && _ref2 !== void 0 ? _ref2 : core.CoreIcons.checkboxOn;
46
+ return (_ref2 = iconChecked !== null && iconChecked !== void 0 ? iconChecked : icon) !== null && _ref2 !== void 0 ? _ref2 : "icon-[mdi--checkbox-marked]";
47
47
  }, [icon, iconChecked]);
48
48
  var iconOff = react.useMemo(function () {
49
- return icon !== null && icon !== void 0 ? icon : core.CoreIcons.checkboxOff;
49
+ return icon !== null && icon !== void 0 ? icon : "icon-[mdi--checkbox-blank-outline]";
50
50
  }, [icon]);
51
51
  react.useEffect(function () {
52
52
  setActualValue(deferred);
@@ -120,7 +120,7 @@ var ColorInput = function ColorInput(_ref) {
120
120
  children: !actualValue && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
121
121
  size: "md",
122
122
  className: "text-muted",
123
- icon: core.CoreIcons.colorSwatch
123
+ icon: "icon-[mdi--palette]"
124
124
  })
125
125
  })
126
126
  })), isOpen && /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
@@ -142,7 +142,7 @@ var ColorInput = function ColorInput(_ref) {
142
142
  })]
143
143
  })), !disabled && showPicker && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
144
144
  className: "flex-content p-1",
145
- icon: core.CoreIcons.colorPicker,
145
+ icon: "icon-[mdi--eyedropper]",
146
146
  onClick: function onClick() {
147
147
  return window.EyeDropper && new window.EyeDropper().open().then(function (resp) {
148
148
  return handleChange(resp.sRGBHex);
@@ -132,7 +132,7 @@ var FileInput = function FileInput(_ref) {
132
132
  children: utilities.Format.bytes(file.size)
133
133
  }), /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
134
134
  className: "cursor-pointer opacity-30 hover:opacity-80",
135
- icon: core.CoreIcons.close,
135
+ icon: "icon-[mdi--close]",
136
136
  onClick: function onClick() {
137
137
  removeFile(idx);
138
138
  }
@@ -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
@@ -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,
@@ -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');
@@ -259,26 +257,10 @@ var List = function List(_ref) {
259
257
  itemProps: makeItemProps,
260
258
  empty: emptyDisplay,
261
259
  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
- }())
260
+ children: function children(item, label) {
261
+ var _renderer3;
262
+ return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
263
+ }
282
264
  }))
283
265
  })]
284
266
  }));
@@ -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');
@@ -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';
@@ -110,7 +110,7 @@ var FileField = function FileField(_ref) {
110
110
  children: file.error
111
111
  })
112
112
  }), file.progress && /*#__PURE__*/jsx(Icon, {
113
- icon: CoreIcons.stop,
113
+ icon: "icon-[mdi--stop]",
114
114
  bg: "danger",
115
115
  color: "white",
116
116
  size: "sm",
@@ -121,7 +121,7 @@ var FileField = function FileField(_ref) {
121
121
  return (_file$abort = file.abort) === null || _file$abort === void 0 ? void 0 : _file$abort.call(file);
122
122
  }
123
123
  }), !file.progress && /*#__PURE__*/jsx(Icon, {
124
- icon: CoreIcons.trash,
124
+ icon: "icon-[mdi--trash-can-outline]",
125
125
  color: "danger",
126
126
  size: "sm",
127
127
  "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);
@@ -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
  })]
@@ -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({