@react-fabric/form 1.0.0-beta.9 → 1.0.1
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.
- package/{src/input/ArrayInput.module.css → css/_arrayInput.css} +8 -8
- package/css/_colorPicker.css +95 -0
- package/{src/internal/Field.module.css → css/_field.css} +94 -33
- package/{src/input/File.module.css → css/_file.css} +21 -6
- package/css/styles.css +27 -0
- package/dist/cjs/builder/FileField.js +107 -78
- package/dist/cjs/builder/FormField.js +60 -39
- package/dist/cjs/builder/SchemaEditor.js +72 -0
- package/dist/cjs/builder/components/AddSchemaFields.js +64 -0
- package/dist/cjs/builder/components/SchemaArrayForm.js +146 -0
- package/dist/cjs/builder/components/SchemaField.js +423 -0
- package/dist/cjs/form/Controller.js +66 -19
- package/dist/cjs/form/Form.js +97 -39
- package/dist/cjs/form/useForm.js +32 -0
- package/dist/cjs/hooks/useFileUploader.js +74 -45
- package/dist/cjs/hooks/useFormBuilder.js +85 -31
- package/dist/cjs/i18n/{ar.json.js → ar/form.json.js} +5 -4
- package/dist/cjs/i18n/{en.json.js → en/form.json.js} +5 -5
- package/dist/cjs/i18n/index.js +4 -4
- package/dist/cjs/index.js +41 -2
- package/dist/cjs/input/ArrayInput.js +259 -135
- package/dist/cjs/input/AvatarInput.js +99 -63
- package/dist/cjs/input/Checkbox.js +24 -25
- package/dist/cjs/input/ColorInput.js +138 -81
- package/dist/cjs/input/ColorPicker.js +78 -95
- package/dist/cjs/input/DateInput.js +192 -0
- package/dist/cjs/input/Field.js +21 -20
- package/dist/cjs/input/File.js +85 -80
- package/dist/cjs/input/Hidden.js +27 -13
- package/dist/cjs/input/Input.js +49 -48
- package/dist/cjs/input/Number.js +46 -44
- package/dist/cjs/input/Password.js +51 -49
- package/dist/cjs/input/Radio.js +26 -16
- package/dist/cjs/input/RadioGroup.js +26 -11
- package/dist/cjs/input/{Range.js → RangeSlider.js} +61 -66
- package/dist/cjs/input/Search.js +58 -64
- package/dist/cjs/input/Slider.js +57 -66
- package/dist/cjs/input/Switch.js +29 -27
- package/dist/cjs/input/Textarea.js +65 -53
- package/dist/cjs/internal/ErrorIcon.js +9 -9
- package/dist/cjs/internal/FieldWrapper.js +23 -13
- package/dist/cjs/internal/InputWrapper.js +85 -87
- package/dist/cjs/ranger/index.js +7 -7
- package/dist/cjs/ranger/utils.js +9 -4
- package/dist/cjs/select/AutoComplete.js +93 -76
- package/dist/cjs/select/DualList.js +235 -154
- package/dist/cjs/select/List.js +122 -89
- package/dist/cjs/select/Options.js +58 -54
- package/dist/cjs/select/Select.js +119 -89
- package/dist/cjs/select/helpers.js +5 -5
- package/dist/cjs/select/useSelect.js +83 -58
- package/dist/cjs/types/schema.js +43 -0
- package/dist/cjs/utils/eventHandlers.js +16 -6
- package/dist/cjs/utils/getColor.js +6 -6
- package/dist/cjs/utils/getProps.js +49 -0
- package/dist/esm/builder/FileField.js +109 -80
- package/dist/esm/builder/FormField.js +60 -39
- package/dist/esm/builder/SchemaEditor.js +72 -0
- package/dist/esm/builder/components/AddSchemaFields.js +64 -0
- package/dist/esm/builder/components/SchemaArrayForm.js +146 -0
- package/dist/esm/builder/components/SchemaField.js +423 -0
- package/dist/esm/form/Controller.js +66 -19
- package/dist/esm/form/Form.js +97 -39
- package/dist/esm/form/useForm.js +32 -0
- package/dist/esm/hooks/useFileUploader.js +75 -46
- package/dist/esm/hooks/useFormBuilder.js +84 -30
- package/dist/esm/i18n/{ar.json.js → ar/form.json.js} +5 -4
- package/dist/esm/i18n/{en.json.js → en/form.json.js} +5 -5
- package/dist/esm/i18n/index.js +2 -2
- package/dist/esm/index.js +36 -1
- package/dist/esm/input/ArrayInput.js +260 -136
- package/dist/esm/input/AvatarInput.js +99 -63
- package/dist/esm/input/Checkbox.js +26 -27
- package/dist/esm/input/ColorInput.js +141 -84
- package/dist/esm/input/ColorPicker.js +80 -97
- package/dist/esm/input/DateInput.js +192 -0
- package/dist/esm/input/Field.js +21 -20
- package/dist/esm/input/File.js +89 -84
- package/dist/esm/input/Hidden.js +28 -14
- package/dist/esm/input/Input.js +51 -50
- package/dist/esm/input/Number.js +48 -46
- package/dist/esm/input/Password.js +54 -52
- package/dist/esm/input/Radio.js +27 -17
- package/dist/esm/input/RadioGroup.js +27 -12
- package/dist/esm/input/{Range.js → RangeSlider.js} +62 -67
- package/dist/esm/input/Search.js +61 -67
- package/dist/esm/input/Slider.js +58 -67
- package/dist/esm/input/Switch.js +31 -29
- package/dist/esm/input/Textarea.js +67 -55
- package/dist/esm/internal/ErrorIcon.js +11 -11
- package/dist/esm/internal/FieldWrapper.js +23 -13
- package/dist/esm/internal/InputWrapper.js +88 -90
- package/dist/esm/ranger/index.js +7 -7
- package/dist/esm/ranger/utils.js +9 -4
- package/dist/esm/select/AutoComplete.js +95 -78
- package/dist/esm/select/DualList.js +233 -152
- package/dist/esm/select/List.js +125 -92
- package/dist/esm/select/Options.js +58 -54
- package/dist/esm/select/Select.js +122 -92
- package/dist/esm/select/helpers.js +5 -5
- package/dist/esm/select/useSelect.js +84 -59
- package/{src/input/ColorPicker.module.css → dist/esm/types/schema.js} +18 -27
- package/dist/esm/utils/eventHandlers.js +16 -6
- package/dist/esm/utils/getColor.js +6 -6
- package/dist/esm/utils/getProps.js +49 -0
- package/dist/types/builder/FileField.d.ts +7 -4
- package/dist/types/builder/FormField.d.ts +4 -2
- package/dist/types/builder/SchemaEditor.d.ts +6 -0
- package/dist/types/builder/components/AddSchemaFields.d.ts +2 -0
- package/dist/types/builder/components/SchemaArrayForm.d.ts +2 -0
- package/dist/types/builder/components/SchemaField.d.ts +12 -0
- package/dist/types/form/Controller.d.ts +45 -3
- package/dist/types/form/Form.d.ts +38 -7
- package/dist/types/form/useForm.d.ts +6 -0
- package/dist/types/hooks/useFileUploader.d.ts +24 -3
- package/dist/types/hooks/useFormBuilder.d.ts +41 -3
- package/dist/types/index.d.ts +32 -2
- package/dist/types/input/ArrayInput.d.ts +68 -13
- package/dist/types/input/AvatarInput.d.ts +23 -6
- package/dist/types/input/Checkbox.d.ts +12 -10
- package/dist/types/input/ColorInput.d.ts +15 -5
- package/dist/types/input/ColorPicker.d.ts +10 -2
- package/dist/types/input/DateInput.d.ts +21 -0
- package/dist/types/input/Field.d.ts +9 -36
- package/dist/types/input/File.d.ts +16 -4
- package/dist/types/input/Hidden.d.ts +7 -6
- package/dist/types/input/Input.d.ts +11 -4
- package/dist/types/input/Number.d.ts +9 -4
- package/dist/types/input/Password.d.ts +9 -4
- package/dist/types/input/Radio.d.ts +9 -4
- package/dist/types/input/RadioGroup.d.ts +14 -6
- package/dist/types/input/{Range.d.ts → RangeSlider.d.ts} +11 -6
- package/dist/types/input/Search.d.ts +14 -4
- package/dist/types/input/Slider.d.ts +9 -6
- package/dist/types/input/Switch.d.ts +13 -8
- package/dist/types/input/Textarea.d.ts +15 -4
- package/dist/types/internal/ErrorIcon.d.ts +4 -1
- package/dist/types/internal/FieldWrapper.d.ts +10 -1
- package/dist/types/internal/InputWrapper.d.ts +19 -1
- package/dist/types/ranger/index.d.ts +7 -3
- package/dist/types/ranger/utils.d.ts +2 -2
- package/dist/types/select/AutoComplete.d.ts +7 -2
- package/dist/types/select/DualList.d.ts +11 -37
- package/dist/types/select/List.d.ts +7 -2
- package/dist/types/select/Options.d.ts +8 -7
- package/dist/types/select/Select.d.ts +7 -2
- package/dist/types/select/helpers.d.ts +2 -2
- package/dist/types/select/useSelect.d.ts +10 -28
- package/dist/types/types/index.d.ts +73 -39
- package/dist/types/types/schema.d.ts +78 -32
- package/dist/types/utils/eventHandlers.d.ts +4 -4
- package/dist/types/utils/getColor.d.ts +4 -4
- package/dist/types/utils/getProps.d.ts +26 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +25 -25
- package/src/builder/FileField.tsx +73 -56
- package/src/builder/FormField.tsx +66 -58
- package/src/builder/SchemaEditor.tsx +78 -0
- package/src/builder/components/AddSchemaFields.tsx +64 -0
- package/src/builder/components/SchemaArrayForm.tsx +146 -0
- package/src/builder/components/SchemaField.tsx +405 -0
- package/src/form/Controller.tsx +61 -24
- package/src/form/Form.tsx +74 -50
- package/src/form/useForm.ts +53 -0
- package/src/hooks/useFileUploader.ts +115 -84
- package/src/hooks/useFormBuilder.tsx +80 -41
- package/src/i18n/{ar.json → ar/form.json} +5 -4
- package/src/i18n/{en.json → en/form.json} +5 -5
- package/src/i18n/index.ts +2 -2
- package/src/index.ts +34 -20
- package/src/input/ArrayInput.tsx +255 -173
- package/src/input/AvatarInput.tsx +82 -39
- package/src/input/Checkbox.tsx +30 -54
- package/src/input/ColorInput.tsx +146 -105
- package/src/input/ColorPicker.tsx +76 -102
- package/src/input/DateInput.tsx +225 -0
- package/src/input/Field.tsx +23 -65
- package/src/input/File.tsx +76 -98
- package/src/input/Hidden.tsx +36 -24
- package/src/input/Input.tsx +55 -53
- package/src/input/Number.tsx +49 -54
- package/src/input/Password.tsx +61 -66
- package/src/input/Radio.tsx +28 -37
- package/src/input/RadioGroup.tsx +30 -25
- package/src/input/{Range.tsx → RangeSlider.tsx} +81 -109
- package/src/input/Search.tsx +64 -77
- package/src/input/Slider.tsx +80 -109
- package/src/input/Switch.tsx +39 -53
- package/src/input/Textarea.tsx +72 -59
- package/src/internal/ErrorIcon.tsx +22 -21
- package/src/internal/FieldWrapper.tsx +33 -23
- package/src/internal/InputWrapper.tsx +132 -143
- package/src/ranger/index.tsx +37 -117
- package/src/ranger/utils.ts +12 -11
- package/src/select/AutoComplete.tsx +113 -123
- package/src/select/DualList.tsx +218 -204
- package/src/select/List.tsx +130 -97
- package/src/select/Options.tsx +59 -57
- package/src/select/Select.tsx +148 -122
- package/src/select/helpers.ts +13 -8
- package/src/select/useSelect.tsx +110 -127
- package/src/types/index.ts +76 -45
- package/src/types/schema.ts +97 -40
- package/src/utils/eventHandlers.ts +24 -26
- package/src/utils/getColor.ts +9 -8
- package/src/utils/getProps.ts +47 -0
- package/src/utils/index.ts +1 -0
- package/dist/cjs/input/ArrayInput.module.css +0 -1
- package/dist/cjs/input/ColorPicker.module.css +0 -1
- package/dist/cjs/input/File.module.css +0 -1
- package/dist/cjs/internal/Field.module.css +0 -1
- package/dist/esm/input/ArrayInput.module.css +0 -1
- package/dist/esm/input/ColorPicker.module.css +0 -1
- package/dist/esm/input/File.module.css +0 -1
- package/dist/esm/internal/Field.module.css +0 -1
|
@@ -7,26 +7,26 @@ var reactI18next = require('react-i18next');
|
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
|
|
9
9
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
11
|
-
|
|
12
|
-
var _error$values$label
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function ErrorIcon(_ref) {
|
|
12
|
+
var _error$values$label;
|
|
13
13
|
var _ref$error = _ref.error,
|
|
14
14
|
error = _ref$error === void 0 ? "" : _ref$error,
|
|
15
15
|
invalid = _ref.invalid;
|
|
16
16
|
var _useTranslation = reactI18next.useTranslation(),
|
|
17
17
|
t = _useTranslation.t;
|
|
18
|
-
return invalid && /*#__PURE__*/jsxRuntime.jsx(core.Tooltip, {
|
|
19
|
-
content: utilities.
|
|
20
|
-
label: t((_error$values$label =
|
|
21
|
-
}) : {}),
|
|
18
|
+
return invalid && error && /*#__PURE__*/jsxRuntime.jsx(core.Tooltip, {
|
|
19
|
+
content: utilities.isObject(error) ? t(error.key, utilities.isObject(error.values) ? _objectSpread(_objectSpread({}, error.values), {}, {
|
|
20
|
+
label: t((_error$values$label = error.values.label) !== null && _error$values$label !== void 0 ? _error$values$label : "form:badkey", error.values.path)
|
|
21
|
+
}) : {}) : utilities.isString(error) ? error : "",
|
|
22
22
|
placement: "bottom",
|
|
23
23
|
color: "danger",
|
|
24
24
|
children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
25
25
|
className: "flex-content first:ms-2 self-center",
|
|
26
26
|
color: "danger",
|
|
27
|
-
icon:
|
|
27
|
+
icon: "icon-[mdi--alert-circle-outline]"
|
|
28
28
|
})
|
|
29
29
|
});
|
|
30
|
-
}
|
|
30
|
+
}
|
|
31
31
|
|
|
32
32
|
exports.ErrorIcon = ErrorIcon;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var utilities = require('@react-fabric/utilities');
|
|
4
|
+
var ErrorIcon = require('./ErrorIcon.js');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
7
7
|
/*
|
|
@@ -27,43 +27,53 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
27
27
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
var
|
|
30
|
+
function FieldWrapper(_ref) {
|
|
31
|
+
var id = _ref.id,
|
|
32
|
+
name = _ref.name,
|
|
33
|
+
label = _ref.label,
|
|
32
34
|
appendLabel = _ref.appendLabel,
|
|
33
35
|
width = _ref.width,
|
|
34
36
|
_ref$labelWidth = _ref.labelWidth,
|
|
35
37
|
labelWidth = _ref$labelWidth === void 0 ? 192 : _ref$labelWidth,
|
|
36
38
|
inline = _ref.inline,
|
|
37
39
|
info = _ref.info,
|
|
38
|
-
disabled = _ref.disabled,
|
|
39
40
|
required = _ref.required,
|
|
40
41
|
children = _ref.children,
|
|
41
42
|
listing = _ref.listing,
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
invalid = _ref.invalid,
|
|
44
|
+
disabled = _ref.disabled,
|
|
45
|
+
error = _ref.error,
|
|
46
|
+
showError = _ref.showError;
|
|
44
47
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45
|
-
className:
|
|
48
|
+
className: utilities.cn("fabric-fieldWrapper peer group relative", width ? "flex-content" : "flex-1", inline ? "flex flex-nowrap" : "flex flex-col"),
|
|
46
49
|
"data-ref": "fieldWrapper",
|
|
50
|
+
"data-testid": "field_".concat(name),
|
|
47
51
|
style: {
|
|
48
52
|
width: width,
|
|
49
53
|
flexBasis: width
|
|
50
54
|
},
|
|
51
|
-
children: [
|
|
52
|
-
className: "flex flex-nowrap flex-content gap-1 py-0.5 px-2",
|
|
55
|
+
children: [label && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
56
|
+
className: "fabric-fieldLabel flex flex-nowrap flex-content items-end gap-1 py-0.5 px-2",
|
|
53
57
|
style: {
|
|
54
58
|
width: inline ? labelWidth : undefined
|
|
55
59
|
},
|
|
56
60
|
children: [/*#__PURE__*/jsxRuntime.jsx("label", {
|
|
57
61
|
role: "none",
|
|
58
|
-
|
|
62
|
+
htmlFor: id,
|
|
63
|
+
className: utilities.cn("flex-initial truncate text-sm", disabled && "text-muted"),
|
|
59
64
|
onClick: function onClick(e) {
|
|
60
65
|
var _e$currentTarget$clos;
|
|
61
66
|
return (_e$currentTarget$clos = e.currentTarget.closest('[data-ref="fieldWrapper"]')) === null || _e$currentTarget$clos === void 0 || (_e$currentTarget$clos = _e$currentTarget$clos.querySelector("input,textarea")) === null || _e$currentTarget$clos === void 0 ? void 0 : _e$currentTarget$clos.focus();
|
|
62
67
|
},
|
|
63
68
|
children: label
|
|
64
69
|
}), required && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
65
|
-
className: "text-danger-500 select-none flex-content text-[10px]",
|
|
70
|
+
className: "text-danger-500 select-none self-center flex-content text-[10px]",
|
|
66
71
|
children: "\u273D"
|
|
72
|
+
}), showError && /*#__PURE__*/jsxRuntime.jsx(ErrorIcon.ErrorIcon, {
|
|
73
|
+
invalid: invalid,
|
|
74
|
+
error: error
|
|
75
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
76
|
+
className: "flex-1"
|
|
67
77
|
}), appendLabel && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
68
78
|
className: "flex-content",
|
|
69
79
|
children: appendLabel
|
|
@@ -73,6 +83,6 @@ var FieldWrapper = function FieldWrapper(_ref) {
|
|
|
73
83
|
children: info
|
|
74
84
|
})]
|
|
75
85
|
});
|
|
76
|
-
}
|
|
86
|
+
}
|
|
77
87
|
|
|
78
88
|
exports.FieldWrapper = FieldWrapper;
|
|
@@ -2,112 +2,110 @@
|
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
-
var react$1 = require('@floating-ui/react');
|
|
7
5
|
var core = require('@react-fabric/core');
|
|
8
6
|
var utilities = require('@react-fabric/utilities');
|
|
9
|
-
var classNames = require('classnames');
|
|
10
7
|
var react = require('react');
|
|
11
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
12
8
|
var ErrorIcon = require('./ErrorIcon.js');
|
|
13
|
-
var Field_module = require('./Field.module.css');
|
|
14
9
|
var FieldWrapper = require('./FieldWrapper.js');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
15
11
|
|
|
16
|
-
var _excluded = ["invalid", "error", "allowClear", "showClear", "decorateStart", "decorateEnd", "children", "onClear", "noOutline", "noBorder", "textarea", "data-inner", "data-open", "floatingExpand", "wrapperRef", "width"];
|
|
17
12
|
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
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t),
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
children =
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
|
|
14
|
+
function InputWrapper(props) {
|
|
15
|
+
var invalid = props.invalid,
|
|
16
|
+
error = props.error,
|
|
17
|
+
showClear = props.showClear,
|
|
18
|
+
decorateStart = props.decorateStart,
|
|
19
|
+
decorateEnd = props.decorateEnd,
|
|
20
|
+
decorateEndShowWhenEmpty = props.decorateEndShowWhenEmpty,
|
|
21
|
+
decorateEndHideWhenEmpty = props.decorateEndHideWhenEmpty,
|
|
22
|
+
children = props.children,
|
|
23
|
+
isOpen = props.isOpen,
|
|
24
|
+
className = props.className,
|
|
25
|
+
focusRing = props.focusRing,
|
|
26
|
+
onClear = props.onClear,
|
|
27
|
+
borderless = props.borderless,
|
|
28
|
+
hasStepper = props.hasStepper,
|
|
29
|
+
actionButton = props.actionButton,
|
|
30
|
+
_props$textarea = props.textarea,
|
|
31
|
+
textarea = _props$textarea === void 0 ? false : _props$textarea,
|
|
32
|
+
_props$textareaExpand = props.textareaExpandable,
|
|
33
|
+
textareaExpandable = _props$textareaExpand === void 0 ? false : _props$textareaExpand,
|
|
34
|
+
floatingExpand = props.floatingExpand,
|
|
35
|
+
ref = props.ref;
|
|
36
|
+
var wrapperRef = react.useRef(null);
|
|
40
37
|
var _useState = react.useState(false),
|
|
41
38
|
_useState2 = _slicedToArray(_useState, 2),
|
|
42
39
|
isExpanded = _useState2[0],
|
|
43
|
-
|
|
44
|
-
var Wrapper = react.useMemo(function () {
|
|
45
|
-
return isInner || !rest.label ? jsxRuntime.Fragment : FieldWrapper.FieldWrapper;
|
|
46
|
-
}, [isInner, rest.label]);
|
|
47
|
-
var wrapperProps = react.useMemo(function () {
|
|
48
|
-
return isInner || !rest.label ? {} : _objectSpread(_objectSpread({}, rest), {}, {
|
|
49
|
-
width: width
|
|
50
|
-
});
|
|
51
|
-
}, [isInner, rest, width]);
|
|
40
|
+
setIsExpanded = _useState2[1];
|
|
52
41
|
var handleClear = react.useCallback(function (e) {
|
|
53
|
-
var _e$currentTarget$pare;
|
|
54
|
-
(_e$currentTarget$pare = e.currentTarget.parentElement) === null || _e$currentTarget$pare === void 0
|
|
42
|
+
var _e$currentTarget$pare, _parent$querySelector;
|
|
43
|
+
var parent = (_e$currentTarget$pare = e.currentTarget.parentElement) === null || _e$currentTarget$pare === void 0 ? void 0 : _e$currentTarget$pare.querySelector("& > :not(.fabric-decorate)");
|
|
44
|
+
var el = (_parent$querySelector = parent === null || parent === void 0 ? void 0 : parent.querySelector("input,textarea,button")) !== null && _parent$querySelector !== void 0 ? _parent$querySelector : parent;
|
|
45
|
+
el === null || el === void 0 || el.focus();
|
|
55
46
|
onClear === null || onClear === void 0 || onClear();
|
|
56
47
|
}, [onClear]);
|
|
57
48
|
var doFocus = react.useCallback(function (e) {
|
|
58
|
-
var _e$currentTarget$pare2;
|
|
59
|
-
(_e$currentTarget$pare2 = e.currentTarget.parentElement) === null || _e$currentTarget$pare2 === void 0
|
|
60
|
-
|
|
49
|
+
var _e$currentTarget$pare2, _parent$querySelector2;
|
|
50
|
+
var parent = (_e$currentTarget$pare2 = e.currentTarget.parentElement) === null || _e$currentTarget$pare2 === void 0 ? void 0 : _e$currentTarget$pare2.querySelector("& > :not(.fabric-decorate)");
|
|
51
|
+
var el = (_parent$querySelector2 = parent === null || parent === void 0 ? void 0 : parent.querySelector("input,textarea,button")) !== null && _parent$querySelector2 !== void 0 ? _parent$querySelector2 : parent;
|
|
52
|
+
el === null || el === void 0 || el.focus();
|
|
53
|
+
}, []);
|
|
61
54
|
react.useEffect(function () {
|
|
62
|
-
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
},
|
|
74
|
-
children: [decorateStart && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
75
|
-
onClickCapture: doFocus,
|
|
76
|
-
className: classNames(Field_module.decorate, "text-muted leading-none flex-content", utilities.isString(decorateStart) && "px-1"),
|
|
77
|
-
children: decorateStart
|
|
78
|
-
}), /*#__PURE__*/jsxRuntime.jsx(ErrorIcon.ErrorIcon, {
|
|
79
|
-
invalid: invalid,
|
|
80
|
-
error: error
|
|
81
|
-
}), children, allowClear && showClear && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
82
|
-
icon: core.CoreIcons.close,
|
|
83
|
-
onClick: handleClear,
|
|
84
|
-
className: classNames("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content", Field_module.inputClear, textarea && "self-start mt-1 me-1")
|
|
85
|
-
}), decorateEnd && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
86
|
-
onClickCapture: doFocus,
|
|
87
|
-
className: classNames(Field_module.decorate, "text-muted leading-none flex-content", utilities.isString(decorateEnd) && "px-1"),
|
|
88
|
-
children: decorateEnd
|
|
89
|
-
}), textarea && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
90
|
-
onClick: function onClick() {
|
|
91
|
-
return setExpanded(!isExpanded);
|
|
92
|
-
},
|
|
93
|
-
icon: isExpanded ? core.CoreIcons.arrowCollapse : core.CoreIcons.arrowExpand,
|
|
94
|
-
className: "hidden group-hover:block absolute top-0 end-0 bg-base hover:bg-tint-200 p-1 opacity-65 rounded-capped"
|
|
95
|
-
})]
|
|
96
|
-
});
|
|
97
|
-
return /*#__PURE__*/jsxRuntime.jsx(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
|
|
55
|
+
if (isExpanded) {
|
|
56
|
+
var tmr = setTimeout(function () {
|
|
57
|
+
var _wrapperRef$current;
|
|
58
|
+
return wrapperRef === null || wrapperRef === void 0 || (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 || (_wrapperRef$current = _wrapperRef$current.querySelector("textarea")) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.focus();
|
|
59
|
+
}, 50);
|
|
60
|
+
return function () {
|
|
61
|
+
clearTimeout(tmr);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}, [isExpanded, wrapperRef]);
|
|
65
|
+
return /*#__PURE__*/jsxRuntime.jsx(FieldWrapper.FieldWrapper, _objectSpread(_objectSpread({}, props), {}, {
|
|
98
66
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
67
|
+
role: "none",
|
|
68
|
+
ref: utilities.mergeRefs(ref, wrapperRef),
|
|
69
|
+
className: utilities.cn("fabric-inputWrapper", invalid && "fabric-invalidWrapper", !borderless && "outline", textarea ? "rounded-capped" : "rounded", className, "flex flex-1 flex-nowrap items-center bg-(--fabric-input)", isExpanded ? "fixed inset-4 z-99" : floatingExpand ? "absolute inset-x-0" : "relative", focusRing ? "focus-within:ring ring-primary-500" : "after:absolute after:bottom-0 after:h-px after:bg-primary-500 after:mx-auto", isOpen && "outline-primary-500"),
|
|
70
|
+
onKeyDown: function onKeyDown(e) {
|
|
71
|
+
return e.key === "Escape" && isExpanded && (setIsExpanded(false), e.stopPropagation());
|
|
104
72
|
},
|
|
105
|
-
children: [
|
|
106
|
-
|
|
107
|
-
|
|
73
|
+
children: [decorateStart && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
74
|
+
onClickCapture: doFocus,
|
|
75
|
+
className: utilities.cn("fabric-decorate", "text-muted leading-none flex-content", utilities.isString(decorateStart) && "px-1"),
|
|
76
|
+
children: decorateStart
|
|
77
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ErrorIcon.ErrorIcon, {
|
|
78
|
+
invalid: invalid,
|
|
79
|
+
error: error
|
|
80
|
+
}), children, showClear && /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
81
|
+
type: "button",
|
|
82
|
+
className: utilities.cn("size-fit leading-0 cursor-pointer", hasStepper && "relative -ms-12"),
|
|
83
|
+
onClick: handleClear,
|
|
84
|
+
children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
85
|
+
icon: "icon-[mdi--close]",
|
|
86
|
+
className: utilities.cn("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content", "fabric-inputClear")
|
|
87
|
+
})
|
|
88
|
+
}), decorateEnd && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
89
|
+
onClickCapture: doFocus,
|
|
90
|
+
className: utilities.cn("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"),
|
|
91
|
+
children: decorateEnd
|
|
92
|
+
}), actionButton && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
93
|
+
onClickCapture: doFocus,
|
|
94
|
+
className: utilities.cn("fabric-decorate", "text-muted leading-none flex-content"),
|
|
95
|
+
children: actionButton
|
|
96
|
+
}), textareaExpandable && /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
97
|
+
type: "button",
|
|
98
|
+
className: "size-fit cursor-pointer leading-0 absolute top-0 inset-e-0",
|
|
99
|
+
onClick: function onClick() {
|
|
100
|
+
return setIsExpanded(!isExpanded);
|
|
101
|
+
},
|
|
102
|
+
children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
103
|
+
icon: isExpanded ? "icon-[mdi--arrow-collapse]" : "icon-[mdi--arrow-expand]",
|
|
104
|
+
className: "hidden group-hover:block bg-default hover:bg-tint-200 p-1 opacity-65 rounded-capped"
|
|
105
|
+
})
|
|
108
106
|
})]
|
|
109
107
|
})
|
|
110
108
|
}));
|
|
111
|
-
}
|
|
109
|
+
}
|
|
112
110
|
|
|
113
111
|
exports.InputWrapper = InputWrapper;
|
package/dist/cjs/ranger/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var useGetLatest = function useGetLatest(val) {
|
|
|
14
14
|
return ref.current;
|
|
15
15
|
}, []);
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
function useRanger(opts) {
|
|
18
18
|
var _opts$tickSize;
|
|
19
19
|
var tickSize = (_opts$tickSize = opts.tickSize) !== null && _opts$tickSize !== void 0 ? _opts$tickSize : 10;
|
|
20
20
|
var values = opts.values;
|
|
@@ -195,17 +195,17 @@ var useRanger = function useRanger(opts) {
|
|
|
195
195
|
} else {
|
|
196
196
|
setActiveHandleIndex(i);
|
|
197
197
|
}
|
|
198
|
-
var
|
|
198
|
+
var _handleRelease = function handleRelease() {
|
|
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",
|
|
205
|
+
document.removeEventListener("mouseup", _handleRelease, {
|
|
206
206
|
capture: true
|
|
207
207
|
});
|
|
208
|
-
document.removeEventListener("touchend",
|
|
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",
|
|
221
|
+
document.addEventListener("mouseup", _handleRelease, {
|
|
222
222
|
capture: true
|
|
223
223
|
});
|
|
224
|
-
document.addEventListener("touchend",
|
|
224
|
+
document.addEventListener("touchend", _handleRelease, {
|
|
225
225
|
capture: true
|
|
226
226
|
});
|
|
227
227
|
}, [getLatest, handleDrag]);
|
|
@@ -347,6 +347,6 @@ var useRanger = function useRanger(opts) {
|
|
|
347
347
|
segments: segments,
|
|
348
348
|
handles: handles
|
|
349
349
|
};
|
|
350
|
-
}
|
|
350
|
+
}
|
|
351
351
|
|
|
352
352
|
exports.useRanger = useRanger;
|
package/dist/cjs/ranger/utils.js
CHANGED
|
@@ -7,7 +7,12 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
|
7
7
|
* https://github.com/TanStack/ranger
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
13
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
14
|
+
|
|
15
|
+
function getBoundingClientRect(element) {
|
|
11
16
|
var rect = element.getBoundingClientRect();
|
|
12
17
|
return {
|
|
13
18
|
top: Math.ceil(rect.top),
|
|
@@ -17,12 +22,12 @@ var getBoundingClientRect = function getBoundingClientRect(element) {
|
|
|
17
22
|
bottom: Math.ceil(rect.bottom),
|
|
18
23
|
height: Math.ceil(rect.height)
|
|
19
24
|
};
|
|
20
|
-
}
|
|
21
|
-
|
|
25
|
+
}
|
|
26
|
+
function sortNumList(arr) {
|
|
22
27
|
return _toConsumableArray(arr).map(Number).sort(function (a, b) {
|
|
23
28
|
return a - b;
|
|
24
29
|
});
|
|
25
|
-
}
|
|
30
|
+
}
|
|
26
31
|
var linearInterpolator = {
|
|
27
32
|
getPercentageForValue: function getPercentageForValue(val, min, max) {
|
|
28
33
|
return Math.max(0, Math.min(100, (val - min) / (max - min) * 100));
|