@react-fabric/form 1.0.0-beta.5 → 1.0.0-beta.52
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 +65 -0
- package/{src/internal/Field.module.css → css/_field.css} +64 -29
- package/{src/input/File.module.css → css/_file.css} +21 -6
- package/css/styles.css +27 -0
- package/dist/cjs/builder/FileField.js +37 -25
- package/dist/cjs/builder/FormField.js +50 -34
- package/dist/cjs/builder/SchemaEditor.js +72 -0
- package/dist/cjs/builder/components/AddSchemaFields.js +62 -0
- package/dist/cjs/builder/components/SchemaArrayForm.js +143 -0
- package/dist/cjs/builder/components/SchemaField.js +414 -0
- package/dist/cjs/form/Controller.js +46 -1
- package/dist/cjs/form/Form.js +43 -6
- package/dist/cjs/hooks/useFileUploader.js +16 -0
- package/dist/cjs/hooks/useFormBuilder.js +57 -15
- package/dist/cjs/i18n/ar.json.js +5 -4
- package/dist/cjs/i18n/en.json.js +5 -5
- package/dist/cjs/index.js +11 -2
- package/dist/cjs/input/ArrayInput.js +100 -33
- package/dist/cjs/input/AvatarInput.js +17 -8
- package/dist/cjs/input/Checkbox.js +15 -5
- package/dist/cjs/input/ColorInput.js +108 -56
- package/dist/cjs/input/ColorPicker.js +11 -35
- package/dist/cjs/input/DateInput.js +195 -0
- package/dist/cjs/input/Field.js +10 -4
- package/dist/cjs/input/File.js +14 -7
- package/dist/cjs/input/Hidden.js +11 -1
- package/dist/cjs/input/Input.js +19 -7
- package/dist/cjs/input/Number.js +17 -7
- package/dist/cjs/input/Password.js +16 -8
- package/dist/cjs/input/Radio.js +11 -2
- package/dist/cjs/input/RadioGroup.js +14 -3
- package/dist/cjs/input/{Range.js → RangeSlider.js} +14 -6
- package/dist/cjs/input/Search.js +25 -16
- package/dist/cjs/input/Slider.js +10 -4
- package/dist/cjs/input/Switch.js +39 -7
- package/dist/cjs/input/Textarea.js +23 -4
- package/dist/cjs/internal/ErrorIcon.js +1 -1
- package/dist/cjs/internal/FieldWrapper.js +11 -4
- package/dist/cjs/internal/InputWrapper.js +19 -16
- package/dist/cjs/select/AutoComplete.js +19 -8
- package/dist/cjs/select/DualList.js +15 -1
- package/dist/cjs/select/List.js +45 -20
- package/dist/cjs/select/Options.js +2 -2
- package/dist/cjs/select/Select.js +14 -4
- package/dist/cjs/select/useSelect.js +10 -6
- package/dist/cjs/types/schema.js +43 -0
- package/dist/cjs/utils/eventHandlers.js +11 -5
- package/dist/cjs/utils/getColor.js +6 -0
- package/dist/esm/builder/FileField.js +39 -27
- package/dist/esm/builder/FormField.js +50 -34
- package/dist/esm/builder/SchemaEditor.js +72 -0
- package/dist/esm/builder/components/AddSchemaFields.js +62 -0
- package/dist/esm/builder/components/SchemaArrayForm.js +143 -0
- package/dist/esm/builder/components/SchemaField.js +414 -0
- package/dist/esm/form/Controller.js +46 -1
- package/dist/esm/form/Form.js +43 -6
- package/dist/esm/hooks/useFileUploader.js +16 -0
- package/dist/esm/hooks/useFormBuilder.js +55 -13
- package/dist/esm/i18n/ar.json.js +5 -4
- package/dist/esm/i18n/en.json.js +5 -5
- package/dist/esm/index.js +5 -1
- package/dist/esm/input/ArrayInput.js +100 -33
- package/dist/esm/input/AvatarInput.js +17 -8
- package/dist/esm/input/Checkbox.js +15 -5
- package/dist/esm/input/ColorInput.js +110 -58
- package/dist/esm/input/ColorPicker.js +11 -35
- package/dist/esm/input/DateInput.js +195 -0
- package/dist/esm/input/Field.js +11 -5
- package/dist/esm/input/File.js +16 -9
- package/dist/esm/input/Hidden.js +11 -1
- package/dist/esm/input/Input.js +21 -9
- package/dist/esm/input/Number.js +19 -9
- package/dist/esm/input/Password.js +18 -10
- package/dist/esm/input/Radio.js +11 -2
- package/dist/esm/input/RadioGroup.js +15 -4
- package/dist/esm/input/{Range.js → RangeSlider.js} +14 -6
- package/dist/esm/input/Search.js +27 -18
- package/dist/esm/input/Slider.js +10 -4
- package/dist/esm/input/Switch.js +41 -9
- package/dist/esm/input/Textarea.js +24 -5
- package/dist/esm/internal/ErrorIcon.js +1 -1
- package/dist/esm/internal/FieldWrapper.js +11 -4
- package/dist/esm/internal/InputWrapper.js +19 -16
- package/dist/esm/select/AutoComplete.js +19 -8
- package/dist/esm/select/DualList.js +15 -1
- package/dist/esm/select/List.js +46 -21
- package/dist/esm/select/Options.js +2 -2
- package/dist/esm/select/Select.js +14 -4
- package/dist/esm/select/useSelect.js +11 -7
- package/{src/input/ColorPicker.module.css → dist/esm/types/schema.js} +18 -27
- package/dist/esm/utils/eventHandlers.js +11 -5
- package/dist/esm/utils/getColor.js +6 -1
- package/dist/types/builder/FileField.d.ts +4 -2
- package/dist/types/builder/FormField.d.ts +3 -1
- package/dist/types/builder/SchemaEditor.d.ts +9 -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 +10 -0
- package/dist/types/form/Controller.d.ts +47 -2
- package/dist/types/form/Form.d.ts +37 -2
- package/dist/types/hooks/useFileUploader.d.ts +16 -0
- package/dist/types/hooks/useFormBuilder.d.ts +32 -1
- package/dist/types/index.d.ts +5 -2
- package/dist/types/input/ArrayInput.d.ts +78 -6
- package/dist/types/input/AvatarInput.d.ts +14 -3
- package/dist/types/input/Checkbox.d.ts +13 -4
- package/dist/types/input/ColorInput.d.ts +15 -2
- package/dist/types/input/ColorPicker.d.ts +11 -1
- package/dist/types/input/DateInput.d.ts +28 -0
- package/dist/types/input/Field.d.ts +5 -1
- package/dist/types/input/File.d.ts +9 -0
- package/dist/types/input/Hidden.d.ts +8 -0
- package/dist/types/input/Input.d.ts +9 -1
- package/dist/types/input/Number.d.ts +9 -1
- package/dist/types/input/Password.d.ts +7 -1
- package/dist/types/input/Radio.d.ts +9 -1
- package/dist/types/input/RadioGroup.d.ts +26 -3
- package/dist/types/input/{Range.d.ts → RangeSlider.d.ts} +10 -2
- package/dist/types/input/Search.d.ts +14 -1
- package/dist/types/input/Slider.d.ts +7 -1
- package/dist/types/input/Switch.d.ts +16 -4
- package/dist/types/input/Textarea.d.ts +15 -1
- package/dist/types/internal/FieldWrapper.d.ts +1 -1
- package/dist/types/internal/InputWrapper.d.ts +1 -1
- package/dist/types/ranger/index.d.ts +2 -2
- package/dist/types/select/AutoComplete.d.ts +8 -1
- package/dist/types/select/DualList.d.ts +17 -2
- package/dist/types/select/List.d.ts +9 -1
- package/dist/types/select/Select.d.ts +9 -1
- package/dist/types/select/useSelect.d.ts +7 -6
- package/dist/types/types/index.d.ts +28 -7
- package/dist/types/types/schema.d.ts +78 -33
- package/dist/types/utils/eventHandlers.d.ts +1 -1
- package/package.json +15 -12
- package/src/builder/FileField.tsx +53 -27
- package/src/builder/FormField.tsx +52 -32
- package/src/builder/SchemaEditor.tsx +79 -0
- package/src/builder/components/AddSchemaFields.tsx +74 -0
- package/src/builder/components/SchemaArrayForm.tsx +158 -0
- package/src/builder/components/SchemaField.tsx +436 -0
- package/src/form/Controller.tsx +48 -3
- package/src/form/Form.tsx +45 -5
- package/src/hooks/useFileUploader.ts +16 -0
- package/src/hooks/useFormBuilder.tsx +58 -15
- package/src/i18n/ar.json +5 -4
- package/src/i18n/en.json +5 -5
- package/src/index.ts +11 -2
- package/src/input/ArrayInput.tsx +169 -54
- package/src/input/AvatarInput.tsx +20 -8
- package/src/input/Checkbox.tsx +15 -5
- package/src/input/ColorInput.tsx +126 -69
- package/src/input/ColorPicker.tsx +12 -36
- package/src/input/DateInput.tsx +259 -0
- package/src/input/Field.tsx +15 -11
- package/src/input/File.tsx +16 -14
- package/src/input/Hidden.tsx +12 -1
- package/src/input/Input.tsx +23 -10
- package/src/input/Number.tsx +18 -10
- package/src/input/Password.tsx +19 -12
- package/src/input/Radio.tsx +11 -2
- package/src/input/RadioGroup.tsx +35 -4
- package/src/input/{Range.tsx → RangeSlider.tsx} +13 -5
- package/src/input/Search.tsx +29 -19
- package/src/input/Slider.tsx +10 -4
- package/src/input/Switch.tsx +52 -7
- package/src/input/Textarea.tsx +29 -5
- package/src/internal/ErrorIcon.tsx +1 -1
- package/src/internal/FieldWrapper.tsx +8 -4
- package/src/internal/InputWrapper.tsx +36 -20
- package/src/select/AutoComplete.tsx +12 -1
- package/src/select/DualList.tsx +19 -0
- package/src/select/List.tsx +49 -8
- package/src/select/Options.tsx +1 -1
- package/src/select/Select.tsx +21 -3
- package/src/select/useSelect.tsx +13 -5
- package/src/types/index.ts +34 -8
- package/src/types/schema.ts +96 -41
- package/src/utils/eventHandlers.ts +9 -3
- 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
|
@@ -9,9 +9,19 @@ var eventHandlers = require('../utils/eventHandlers.js');
|
|
|
9
9
|
require('@react-fabric/utilities');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
11
|
|
|
12
|
-
var _excluded = ["ref", "value", "name", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "rows", "maxRows", "variableRows", "onChange", "onEnterPressed"];
|
|
12
|
+
var _excluded = ["ref", "value", "name", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "rows", "maxRows", "variableRows", "expandable", "onBlur", "onFocus", "onChange", "onEnterPressed"];
|
|
13
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
14
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
/**
|
|
16
|
+
* Textarea component that allows users to input multi-line text.
|
|
17
|
+
* It supports features like variable row count, expandable behavior,
|
|
18
|
+
* and handling of focus, blur, and change events.
|
|
19
|
+
* This component is designed to be flexible and user-friendly,
|
|
20
|
+
* providing a clear interface for text input with optional validation and accessibility features.
|
|
21
|
+
*
|
|
22
|
+
* @param {TextareaProps} props - The properties for the Textarea component.
|
|
23
|
+
* @returns {JSX.Element} The rendered Textarea component.
|
|
24
|
+
*/
|
|
15
25
|
var Textarea = function Textarea(_ref) {
|
|
16
26
|
var ref = _ref.ref,
|
|
17
27
|
value = _ref.value,
|
|
@@ -27,6 +37,9 @@ var Textarea = function Textarea(_ref) {
|
|
|
27
37
|
_ref$maxRows = _ref.maxRows,
|
|
28
38
|
maxRows = _ref$maxRows === void 0 ? 12 : _ref$maxRows,
|
|
29
39
|
variableRows = _ref.variableRows,
|
|
40
|
+
expandable = _ref.expandable,
|
|
41
|
+
onBlur = _ref.onBlur,
|
|
42
|
+
onFocus = _ref.onFocus,
|
|
30
43
|
onChange = _ref.onChange,
|
|
31
44
|
onEnterPressed = _ref.onEnterPressed,
|
|
32
45
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -46,7 +59,7 @@ var Textarea = function Textarea(_ref) {
|
|
|
46
59
|
var handleChange = react.useCallback(function (e) {
|
|
47
60
|
var value = e === null || e === void 0 ? void 0 : e.target.value;
|
|
48
61
|
setActualValue(value !== null && value !== void 0 ? value : "");
|
|
49
|
-
onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value :
|
|
62
|
+
onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : null);
|
|
50
63
|
}, [onChange]);
|
|
51
64
|
react.useEffect(function () {
|
|
52
65
|
if (variableRows) {
|
|
@@ -57,14 +70,18 @@ var Textarea = function Textarea(_ref) {
|
|
|
57
70
|
setFixedRows(rows);
|
|
58
71
|
}
|
|
59
72
|
}, [actualValue, variableRows, rows, maxRows]);
|
|
73
|
+
var handleEnterPressed = eventHandlers.useHandleEnter(onEnterPressed, {
|
|
74
|
+
preventDefault: !!onEnterPressed
|
|
75
|
+
});
|
|
60
76
|
return /*#__PURE__*/jsxRuntime.jsx(InputWrapper.InputWrapper, _objectSpread(_objectSpread({
|
|
61
|
-
showClear: !!actualValue,
|
|
77
|
+
showClear: !!actualValue && !disabled && !readOnly,
|
|
62
78
|
onClear: handleChange,
|
|
63
79
|
invalid: invalid,
|
|
64
80
|
readOnly: readOnly,
|
|
65
81
|
disabled: disabled,
|
|
66
82
|
required: required,
|
|
67
83
|
wrapperRef: wrapperRef,
|
|
84
|
+
textareaExpandable: expandable,
|
|
68
85
|
textarea: true
|
|
69
86
|
}, rest), {}, {
|
|
70
87
|
children: /*#__PURE__*/jsxRuntime.jsx("textarea", {
|
|
@@ -82,8 +99,10 @@ var Textarea = function Textarea(_ref) {
|
|
|
82
99
|
autoComplete: "off",
|
|
83
100
|
autoFocus: autoFocus,
|
|
84
101
|
value: actualValue,
|
|
102
|
+
onBlur: onBlur,
|
|
103
|
+
onFocus: onFocus,
|
|
85
104
|
onChange: handleChange,
|
|
86
|
-
onKeyDown:
|
|
105
|
+
onKeyDown: handleEnterPressed
|
|
87
106
|
})
|
|
88
107
|
}));
|
|
89
108
|
};
|
|
@@ -20,7 +20,7 @@ var ErrorIcon = function ErrorIcon(_ref) {
|
|
|
20
20
|
label: t((_error$values$label = (_error$values = error.values) === null || _error$values === void 0 ? void 0 : _error$values.label) !== null && _error$values$label !== void 0 ? _error$values$label : "form:badkey", (_error$values2 = error.values) === null || _error$values2 === void 0 ? void 0 : _error$values2.path)
|
|
21
21
|
}) : {}),
|
|
22
22
|
placement: "bottom",
|
|
23
|
-
color: "danger",
|
|
23
|
+
color: "danger-200",
|
|
24
24
|
children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
25
25
|
className: "flex-content first:ms-2 self-center",
|
|
26
26
|
color: "danger",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var classNames = require('classnames');
|
|
4
|
-
var
|
|
4
|
+
var ErrorIcon = require('./ErrorIcon.js');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
7
7
|
/*
|
|
@@ -40,16 +40,18 @@ var FieldWrapper = function FieldWrapper(_ref) {
|
|
|
40
40
|
children = _ref.children,
|
|
41
41
|
listing = _ref.listing,
|
|
42
42
|
className = _ref.className,
|
|
43
|
+
invalid = _ref.invalid,
|
|
44
|
+
error = _ref.error,
|
|
43
45
|
isInner = _ref["data-inner"];
|
|
44
46
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45
|
-
className: classNames(
|
|
47
|
+
className: classNames("fabric-fieldWrapper", className, inline ? "flex flex-nowrap gap-1" : "block"),
|
|
46
48
|
"data-ref": "fieldWrapper",
|
|
47
49
|
style: {
|
|
48
50
|
width: width,
|
|
49
51
|
flexBasis: width
|
|
50
52
|
},
|
|
51
|
-
children: [!isInner && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
52
|
-
className: "flex flex-nowrap flex-content gap-1 py-0.5 px-2",
|
|
53
|
+
children: [!isInner && label && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54
|
+
className: "flex flex-nowrap flex-content items-end gap-1 py-0.5 px-2",
|
|
53
55
|
style: {
|
|
54
56
|
width: inline ? labelWidth : undefined
|
|
55
57
|
},
|
|
@@ -64,6 +66,11 @@ var FieldWrapper = function FieldWrapper(_ref) {
|
|
|
64
66
|
}), required && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
65
67
|
className: "text-danger-500 select-none flex-content text-[10px]",
|
|
66
68
|
children: "\u273D"
|
|
69
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ErrorIcon.ErrorIcon, {
|
|
70
|
+
invalid: invalid,
|
|
71
|
+
error: error
|
|
72
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
73
|
+
className: "flex-1"
|
|
67
74
|
}), appendLabel && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
68
75
|
className: "flex-content",
|
|
69
76
|
children: appendLabel
|
|
@@ -3,33 +3,35 @@
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
5
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
-
var react$1 = require('@floating-ui/react');
|
|
7
6
|
var core = require('@react-fabric/core');
|
|
8
7
|
var utilities = require('@react-fabric/utilities');
|
|
9
8
|
var classNames = require('classnames');
|
|
10
9
|
var react = require('react');
|
|
11
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
11
|
var ErrorIcon = require('./ErrorIcon.js');
|
|
13
|
-
var Field_module = require('./Field.module.css');
|
|
14
12
|
var FieldWrapper = require('./FieldWrapper.js');
|
|
15
13
|
|
|
16
|
-
var _excluded = ["invalid", "error", "allowClear", "showClear", "decorateStart", "decorateEnd", "children", "onClear", "noOutline", "noBorder", "textarea", "data-inner", "data-open", "floatingExpand", "wrapperRef", "width"];
|
|
14
|
+
var _excluded = ["invalid", "error", "allowClear", "showClear", "decorateStart", "decorateEnd", "decorateEndShowWhenEmpty", "decorateEndHideWhenEmpty", "children", "onClear", "noOutline", "noBorder", "actionButton", "textarea", "textareaExpandable", "data-inner", "data-open", "floatingExpand", "wrapperRef", "width"];
|
|
17
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; }
|
|
18
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; }
|
|
19
17
|
var InputWrapper = function InputWrapper(_ref) {
|
|
20
|
-
var _elRef$current;
|
|
21
18
|
var invalid = _ref.invalid,
|
|
22
19
|
error = _ref.error,
|
|
23
20
|
allowClear = _ref.allowClear,
|
|
24
21
|
showClear = _ref.showClear,
|
|
25
22
|
decorateStart = _ref.decorateStart,
|
|
26
23
|
decorateEnd = _ref.decorateEnd,
|
|
24
|
+
decorateEndShowWhenEmpty = _ref.decorateEndShowWhenEmpty,
|
|
25
|
+
decorateEndHideWhenEmpty = _ref.decorateEndHideWhenEmpty,
|
|
27
26
|
children = _ref.children,
|
|
28
27
|
onClear = _ref.onClear,
|
|
29
28
|
noOutline = _ref.noOutline,
|
|
30
29
|
noBorder = _ref.noBorder,
|
|
30
|
+
actionButton = _ref.actionButton,
|
|
31
31
|
_ref$textarea = _ref.textarea,
|
|
32
32
|
textarea = _ref$textarea === void 0 ? false : _ref$textarea,
|
|
33
|
+
_ref$textareaExpandab = _ref.textareaExpandable,
|
|
34
|
+
textareaExpandable = _ref$textareaExpandab === void 0 ? false : _ref$textareaExpandab,
|
|
33
35
|
isInner = _ref["data-inner"];
|
|
34
36
|
_ref["data-open"];
|
|
35
37
|
var floatingExpand = _ref.floatingExpand,
|
|
@@ -67,13 +69,13 @@ var InputWrapper = function InputWrapper(_ref) {
|
|
|
67
69
|
var el = /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
68
70
|
role: "none",
|
|
69
71
|
ref: wrapperRef,
|
|
70
|
-
className: classNames(
|
|
72
|
+
className: classNames("fabric-inputWrapper", invalid && "fabric-invalidWrapper", !noOutline && !noBorder && "bg-(--fabric-input) outline overflow-hidden", "flex flex-nowrap items-center flex-1", textarea ? "rounded-capped group" : "rounded", isExpanded ? "fixed inset-4 z-[99]" : floatingExpand ? "absolute inset-x-0" : "relative", !noOutline && "after:absolute after:bottom-0 after:h-px after:bg-primary-500 after:mx-auto"),
|
|
71
73
|
onKeyDown: function onKeyDown(e) {
|
|
72
|
-
return e.key === "Escape" && setExpanded(false);
|
|
74
|
+
return e.key === "Escape" && isExpanded && (setExpanded(false), e.stopPropagation());
|
|
73
75
|
},
|
|
74
76
|
children: [decorateStart && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
75
77
|
onClickCapture: doFocus,
|
|
76
|
-
className: classNames(
|
|
78
|
+
className: classNames("fabric-decorate", "text-muted leading-none flex-content", utilities.isString(decorateStart) && "px-1"),
|
|
77
79
|
children: decorateStart
|
|
78
80
|
}), /*#__PURE__*/jsxRuntime.jsx(ErrorIcon.ErrorIcon, {
|
|
79
81
|
invalid: invalid,
|
|
@@ -81,12 +83,16 @@ var InputWrapper = function InputWrapper(_ref) {
|
|
|
81
83
|
}), children, allowClear && showClear && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
82
84
|
icon: core.CoreIcons.close,
|
|
83
85
|
onClick: handleClear,
|
|
84
|
-
className: classNames("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content",
|
|
86
|
+
className: classNames("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content", "fabric-inputClear", textarea && "self-start mt-1 me-1")
|
|
85
87
|
}), decorateEnd && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
86
88
|
onClickCapture: doFocus,
|
|
87
|
-
className: classNames(
|
|
89
|
+
className: classNames("fabric-decorate", "text-muted leading-none flex-content", utilities.isString(decorateEnd) && "px-1", decorateEndHideWhenEmpty && "peer-placeholder-shown:hidden", decorateEndShowWhenEmpty && "hidden peer-placeholder-shown:inline-block"),
|
|
88
90
|
children: decorateEnd
|
|
89
|
-
}),
|
|
91
|
+
}), actionButton && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
92
|
+
onClickCapture: doFocus,
|
|
93
|
+
className: classNames("fabric-decorate", "text-muted leading-none flex-content"),
|
|
94
|
+
children: actionButton
|
|
95
|
+
}), textareaExpandable && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
90
96
|
onClick: function onClick() {
|
|
91
97
|
return setExpanded(!isExpanded);
|
|
92
98
|
},
|
|
@@ -95,17 +101,14 @@ var InputWrapper = function InputWrapper(_ref) {
|
|
|
95
101
|
})]
|
|
96
102
|
});
|
|
97
103
|
return /*#__PURE__*/jsxRuntime.jsx(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
|
|
98
|
-
children: /*#__PURE__*/jsxRuntime.
|
|
104
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
99
105
|
ref: elRef,
|
|
100
|
-
className: "
|
|
106
|
+
className: classNames("relative min-h-8 flex flex-col flex-nowrap", width ? "flex-auto" : "flex-1"),
|
|
101
107
|
style: {
|
|
102
108
|
width: width,
|
|
103
109
|
flexBasis: width
|
|
104
110
|
},
|
|
105
|
-
children:
|
|
106
|
-
root: (_elRef$current = elRef.current) === null || _elRef$current === void 0 ? void 0 : _elRef$current.closest(".theme-base"),
|
|
107
|
-
children: el
|
|
108
|
-
})]
|
|
111
|
+
children: el
|
|
109
112
|
})
|
|
110
113
|
}));
|
|
111
114
|
};
|
|
@@ -12,21 +12,28 @@ var Options = require('./Options.js');
|
|
|
12
12
|
var useSelect = require('./useSelect.js');
|
|
13
13
|
var jsxRuntime = require('react/jsx-runtime');
|
|
14
14
|
|
|
15
|
-
var _excluded = ["ref", "name", "value", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "expandOnEdit", "error", "history", "multiple", "onChange", "onSelect", "onInput", "onFocus", "onBlur", "onEnterPressed"];
|
|
15
|
+
var _excluded = ["ref", "name", "value", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "expandOnEdit", "error", "history", "multiple", "onChange", "onSelect", "onInput", "onFocus", "onBlur", "onQuery", "onEnterPressed"];
|
|
16
16
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
17
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
|
+
/**
|
|
19
|
+
* AutoComplete component for selecting or entering values with history suggestions.
|
|
20
|
+
* It supports multiple selections, history suggestions, and custom styling.
|
|
21
|
+
*
|
|
22
|
+
* @param {AutoCompleteProps} props - The properties for the AutoComplete component.
|
|
23
|
+
* @returns {JSX.Element} The rendered AutoComplete component.
|
|
24
|
+
*/
|
|
18
25
|
var AutoComplete = function AutoComplete(_ref) {
|
|
19
26
|
var _refs$reference$curre;
|
|
20
|
-
_ref.ref
|
|
21
|
-
|
|
27
|
+
var ref = _ref.ref,
|
|
28
|
+
name = _ref.name,
|
|
22
29
|
value = _ref.value,
|
|
23
30
|
invalid = _ref.invalid,
|
|
24
31
|
readOnly = _ref.readOnly,
|
|
25
32
|
disabled = _ref.disabled,
|
|
26
33
|
required = _ref.required,
|
|
27
|
-
placeholder = _ref.placeholder
|
|
28
|
-
_ref.autoFocus
|
|
29
|
-
|
|
34
|
+
placeholder = _ref.placeholder,
|
|
35
|
+
autoFocus = _ref.autoFocus,
|
|
36
|
+
expandOnEdit = _ref.expandOnEdit,
|
|
30
37
|
error = _ref.error,
|
|
31
38
|
history = _ref.history,
|
|
32
39
|
multiple = _ref.multiple,
|
|
@@ -35,6 +42,7 @@ var AutoComplete = function AutoComplete(_ref) {
|
|
|
35
42
|
onInput = _ref.onInput,
|
|
36
43
|
onFocus = _ref.onFocus,
|
|
37
44
|
_onBlur = _ref.onBlur,
|
|
45
|
+
onQuery = _ref.onQuery,
|
|
38
46
|
onEnterPressed = _ref.onEnterPressed,
|
|
39
47
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
40
48
|
var options = react.useRef(history);
|
|
@@ -45,7 +53,8 @@ var AutoComplete = function AutoComplete(_ref) {
|
|
|
45
53
|
options: options.current,
|
|
46
54
|
multiple: multiple,
|
|
47
55
|
onChange: onChange,
|
|
48
|
-
onSelect: onSelect
|
|
56
|
+
onSelect: onSelect,
|
|
57
|
+
onQuery: onQuery
|
|
49
58
|
}),
|
|
50
59
|
state = _useSelect.state,
|
|
51
60
|
listRef = _useSelect.listRef,
|
|
@@ -218,7 +227,9 @@ var AutoComplete = function AutoComplete(_ref) {
|
|
|
218
227
|
"data-testid": name,
|
|
219
228
|
name: name,
|
|
220
229
|
size: 1,
|
|
230
|
+
ref: ref,
|
|
221
231
|
onInput: onInput,
|
|
232
|
+
autoFocus: autoFocus,
|
|
222
233
|
rows: !multiple && expandOnEdit && state.open ? 5 : 1,
|
|
223
234
|
className: classNames("appearance-none bg-transparent outline-none border-none ring-0 flex-1 resize-none", disabled && "cursor-not-allowed pointer-events-none", multiple && "min-w-24 overflow-hidden", !state.open && "overflow-hidden whitespace-nowrap"),
|
|
224
235
|
placeholder: utilities.isEmpty(state.value) ? placeholder : ""
|
|
@@ -243,7 +254,7 @@ var AutoComplete = function AutoComplete(_ref) {
|
|
|
243
254
|
visuallyHiddenDismiss: true,
|
|
244
255
|
children: /*#__PURE__*/jsxRuntime.jsx(Options.Options, _objectSpread(_objectSpread({
|
|
245
256
|
ref: refs.setFloating,
|
|
246
|
-
className: "outline shadow-lg max-h-[40vh] z-
|
|
257
|
+
className: "outline shadow-lg max-h-[40vh] z-(--z-popover)",
|
|
247
258
|
style: _objectSpread({
|
|
248
259
|
width: (_refs$reference$curre = refs.reference.current) === null || _refs$reference$curre === void 0 ? void 0 : _refs$reference$curre.getBoundingClientRect().width
|
|
249
260
|
}, floatingStyles)
|
|
@@ -13,13 +13,25 @@ var core = require('@dnd-kit/core');
|
|
|
13
13
|
var utilities = require('@react-fabric/utilities');
|
|
14
14
|
var jsxRuntime = require('react/jsx-runtime');
|
|
15
15
|
|
|
16
|
-
var _excluded = ["ref", "value", "options", "groupProperty", "height", "labelProperty", "valueProperty", "renderer", "onChange", "name", "invalid", "readOnly", "disabled", "placeholder", "autoFocus", "error"];
|
|
16
|
+
var _excluded = ["ref", "value", "options", "emptyDisplay", "groupProperty", "height", "labelProperty", "valueProperty", "renderer", "onChange", "name", "invalid", "readOnly", "disabled", "placeholder", "autoFocus", "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
|
+
/**
|
|
20
|
+
* DualList component allows users to select items from two lists.
|
|
21
|
+
* It displays two lists side by side, one for unselected items and one for selected items.
|
|
22
|
+
* Users can move items between the lists using buttons or drag-and-drop functionality.
|
|
23
|
+
* It supports multiple selections and provides options for grouping, labeling, and rendering items.
|
|
24
|
+
* It also includes features for handling empty states and custom rendering of items.
|
|
25
|
+
* This component is useful for scenarios where users need to manage selections from a larger set of options, such as in forms or settings.
|
|
26
|
+
*
|
|
27
|
+
* @param {DualListProps<T>} props - The properties for the DualList component.
|
|
28
|
+
* @returns {JSX.Element} The rendered DualList component.
|
|
29
|
+
*/
|
|
19
30
|
var DualList = function DualList(_ref) {
|
|
20
31
|
var ref = _ref.ref,
|
|
21
32
|
value = _ref.value,
|
|
22
33
|
options = _ref.options,
|
|
34
|
+
emptyDisplay = _ref.emptyDisplay,
|
|
23
35
|
groupProperty = _ref.groupProperty,
|
|
24
36
|
_ref$height = _ref.height,
|
|
25
37
|
height = _ref$height === void 0 ? "18rem" : _ref$height,
|
|
@@ -163,6 +175,7 @@ var DualList = function DualList(_ref) {
|
|
|
163
175
|
error: error,
|
|
164
176
|
height: height,
|
|
165
177
|
options: leftOptions,
|
|
178
|
+
emptyDisplay: emptyDisplay,
|
|
166
179
|
groupProperty: groupProperty,
|
|
167
180
|
labelProperty: labelProperty,
|
|
168
181
|
valueProperty: valueProperty,
|
|
@@ -218,6 +231,7 @@ var DualList = function DualList(_ref) {
|
|
|
218
231
|
allowClear: true,
|
|
219
232
|
height: height,
|
|
220
233
|
options: rightOptions,
|
|
234
|
+
emptyDisplay: emptyDisplay,
|
|
221
235
|
groupProperty: groupProperty,
|
|
222
236
|
labelProperty: labelProperty,
|
|
223
237
|
valueProperty: valueProperty,
|
package/dist/cjs/select/List.js
CHANGED
|
@@ -13,26 +13,28 @@ var Options = require('./Options.js');
|
|
|
13
13
|
var useSelect = require('./useSelect.js');
|
|
14
14
|
var jsxRuntime = require('react/jsx-runtime');
|
|
15
15
|
|
|
16
|
-
var _excluded = ["ref", "name", "value", "readOnly", "disabled", "required", "placeholder", "autoFocus", "options", "height", "groupProperty", "labelProperty", "valueProperty", "multiple", "allowCreate", "createOption", "matcher", "renderer", "onQuery", "onChange", "onSelect", "onEnterPressed", "invalid", "error", "allowClear", "decorateStart", "decorateEnd", "data-inner", "data-hide-selected"];
|
|
16
|
+
var _excluded = ["ref", "name", "value", "readOnly", "disabled", "required", "placeholder", "autoFocus", "options", "height", "groupProperty", "labelProperty", "valueProperty", "sortProperty", "multiple", "allowCreate", "searchable", "createOption", "matcher", "renderer", "onQuery", "onChange", "onSelect", "onEnterPressed", "emptyDisplay", "invalid", "error", "allowClear", "decorateStart", "decorateEnd", "data-inner", "data-hide-selected"];
|
|
17
17
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
18
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
19
|
var List = function List(_ref) {
|
|
20
20
|
var _state$query;
|
|
21
|
-
_ref.ref
|
|
22
|
-
|
|
21
|
+
var ref = _ref.ref,
|
|
22
|
+
name = _ref.name,
|
|
23
23
|
value = _ref.value,
|
|
24
24
|
readOnly = _ref.readOnly,
|
|
25
25
|
disabled = _ref.disabled,
|
|
26
26
|
required = _ref.required,
|
|
27
|
-
placeholder = _ref.placeholder
|
|
28
|
-
_ref.autoFocus
|
|
29
|
-
|
|
27
|
+
placeholder = _ref.placeholder,
|
|
28
|
+
autoFocus = _ref.autoFocus,
|
|
29
|
+
options = _ref.options,
|
|
30
30
|
height = _ref.height,
|
|
31
31
|
groupProperty = _ref.groupProperty,
|
|
32
32
|
labelProperty = _ref.labelProperty,
|
|
33
33
|
valueProperty = _ref.valueProperty,
|
|
34
|
+
sortProperty = _ref.sortProperty,
|
|
34
35
|
multiple = _ref.multiple,
|
|
35
36
|
allowCreate = _ref.allowCreate,
|
|
37
|
+
searchable = _ref.searchable,
|
|
36
38
|
createOption = _ref.createOption,
|
|
37
39
|
matcher = _ref.matcher,
|
|
38
40
|
renderer = _ref.renderer,
|
|
@@ -40,6 +42,7 @@ var List = function List(_ref) {
|
|
|
40
42
|
onChange = _ref.onChange,
|
|
41
43
|
onSelect = _ref.onSelect,
|
|
42
44
|
onEnterPressed = _ref.onEnterPressed,
|
|
45
|
+
emptyDisplay = _ref.emptyDisplay,
|
|
43
46
|
invalid = _ref.invalid,
|
|
44
47
|
error = _ref.error;
|
|
45
48
|
_ref.allowClear;
|
|
@@ -61,6 +64,7 @@ var List = function List(_ref) {
|
|
|
61
64
|
groupProperty: groupProperty,
|
|
62
65
|
labelProperty: labelProperty,
|
|
63
66
|
valueProperty: valueProperty,
|
|
67
|
+
sortProperty: sortProperty,
|
|
64
68
|
allowCreate: allowCreate,
|
|
65
69
|
createOption: createOption,
|
|
66
70
|
matcher: matcher,
|
|
@@ -138,9 +142,10 @@ var List = function List(_ref) {
|
|
|
138
142
|
}
|
|
139
143
|
} else if (evt.key === "Backspace") {
|
|
140
144
|
!state.query && handleRemove();
|
|
141
|
-
} else if (["ArrowUp", "ArrowDown"].includes(evt.key)) {
|
|
142
|
-
if (state.activeIndex === null) {
|
|
143
|
-
|
|
145
|
+
} else if (!searchable || ["ArrowUp", "ArrowDown"].includes(evt.key)) {
|
|
146
|
+
if (["ArrowUp", "ArrowDown"].includes(evt.key) && state.activeIndex === null) {
|
|
147
|
+
var _state$selectedIndex;
|
|
148
|
+
setActiveIndex((_state$selectedIndex = state.selectedIndex) !== null && _state$selectedIndex !== void 0 ? _state$selectedIndex : 0);
|
|
144
149
|
}
|
|
145
150
|
setTimeout(function () {
|
|
146
151
|
var _props$onKeyDown;
|
|
@@ -185,6 +190,14 @@ var List = function List(_ref) {
|
|
|
185
190
|
});
|
|
186
191
|
}
|
|
187
192
|
}, [state.value, state.query, placeholder, renderer]);
|
|
193
|
+
react.useLayoutEffect(function () {
|
|
194
|
+
setTimeout(function () {
|
|
195
|
+
var _listRef$current$stat;
|
|
196
|
+
state.selectedIndex && ((_listRef$current$stat = listRef.current[state.selectedIndex]) === null || _listRef$current$stat === void 0 ? void 0 : _listRef$current$stat.scrollIntoView({
|
|
197
|
+
block: "center"
|
|
198
|
+
}));
|
|
199
|
+
}, 100);
|
|
200
|
+
}, [state.selectedIndex]);
|
|
188
201
|
return /*#__PURE__*/jsxRuntime.jsxs(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
|
|
189
202
|
children: [/*#__PURE__*/jsxRuntime.jsx(InputWrapper.InputWrapper, {
|
|
190
203
|
showClear: !utilities.isEmpty(state.value),
|
|
@@ -197,23 +210,32 @@ var List = function List(_ref) {
|
|
|
197
210
|
className: "z-1 rounded-b-none",
|
|
198
211
|
"data-inner": true,
|
|
199
212
|
wrapperRef: refs.setReference,
|
|
200
|
-
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
213
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
|
|
214
|
+
role: "none",
|
|
201
215
|
"data-select-display": "true",
|
|
202
|
-
className: "group flex-1 py-1 px-2 truncate text-start flex gap-1 flex-wrap"
|
|
203
|
-
|
|
216
|
+
className: classNames("group flex-1 py-1 px-2 truncate text-start flex gap-1 relative min-h-5 justify-start", multiple ? "flex-wrap" : "flex-nowrap overflow-hidden")
|
|
217
|
+
}, referenceProps), {}, {
|
|
218
|
+
onMouseUp: function onMouseUp(e) {
|
|
219
|
+
var _e$currentTarget$quer;
|
|
220
|
+
return (_e$currentTarget$quer = e.currentTarget.querySelector("input")) === null || _e$currentTarget$quer === void 0 ? void 0 : _e$currentTarget$quer.focus();
|
|
221
|
+
},
|
|
222
|
+
children: [!hideSelected && displayValue, /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
223
|
+
readOnly: !searchable || readOnly,
|
|
204
224
|
disabled: disabled,
|
|
205
225
|
value: (_state$query = state.query) !== null && _state$query !== void 0 ? _state$query : "",
|
|
206
226
|
"aria-invalid": invalid,
|
|
207
227
|
"data-testid": name,
|
|
208
228
|
name: name,
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
229
|
+
size: 1,
|
|
230
|
+
ref: ref,
|
|
231
|
+
autoFocus: autoFocus,
|
|
232
|
+
className: classNames("appearance-none bg-transparent outline-none border-none ring-0 flex-1 min-w-24", disabled && "cursor-not-allowed pointer-events-none", multiple && "min-w-24"),
|
|
233
|
+
placeholder: utilities.isEmpty(state.value) ? placeholder : "",
|
|
212
234
|
onChange: function onChange(evt) {
|
|
213
235
|
return handleQuery(evt.target.value);
|
|
214
236
|
}
|
|
215
|
-
})
|
|
216
|
-
})
|
|
237
|
+
})]
|
|
238
|
+
}))
|
|
217
239
|
}), /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
|
|
218
240
|
context: context,
|
|
219
241
|
initialFocus: -1,
|
|
@@ -227,11 +249,14 @@ var List = function List(_ref) {
|
|
|
227
249
|
}, floatingProps), {}, {
|
|
228
250
|
items: state.items,
|
|
229
251
|
active: state.activeIndex,
|
|
252
|
+
valueProperty: valueProperty,
|
|
253
|
+
labelProperty: labelProperty,
|
|
230
254
|
itemRef: setItemRef,
|
|
231
255
|
itemProps: makeItemProps,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
256
|
+
empty: emptyDisplay,
|
|
257
|
+
children: function children(item, label) {
|
|
258
|
+
var _renderer3;
|
|
259
|
+
return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
|
|
235
260
|
}
|
|
236
261
|
}))
|
|
237
262
|
})]
|
|
@@ -34,7 +34,7 @@ var Options = function Options(_ref) {
|
|
|
34
34
|
i18nKey: "form:select.emptyList"
|
|
35
35
|
})
|
|
36
36
|
})), items.map(function (item, index) {
|
|
37
|
-
var _item$labelProperty;
|
|
37
|
+
var _item$value, _item$labelProperty;
|
|
38
38
|
if (item.___group___) return /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
39
39
|
className: "px-2 py-1 text-muted text-xs sticky -top-px z-2 bg-base border-t",
|
|
40
40
|
children: item.label
|
|
@@ -51,7 +51,7 @@ var Options = function Options(_ref) {
|
|
|
51
51
|
children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
52
52
|
i18nKey: "form:select.createOption",
|
|
53
53
|
values: {
|
|
54
|
-
query: item.value
|
|
54
|
+
query: (_item$value = item.value) !== null && _item$value !== void 0 ? _item$value : item
|
|
55
55
|
},
|
|
56
56
|
components: [/*#__PURE__*/jsxRuntime.jsx("strong", {
|
|
57
57
|
children: "query"
|
|
@@ -12,7 +12,7 @@ var Options = require('./Options.js');
|
|
|
12
12
|
var useSelect = require('./useSelect.js');
|
|
13
13
|
var jsxRuntime = require('react/jsx-runtime');
|
|
14
14
|
|
|
15
|
-
var _excluded = ["ref", "name", "value", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "error", "options", "groupProperty", "labelProperty", "valueProperty", "multiple", "searchable", "allowCreate", "createOption", "matcher", "renderer", "onQuery", "onChange", "onSelect", "onEnterPressed"];
|
|
15
|
+
var _excluded = ["ref", "name", "value", "invalid", "readOnly", "disabled", "required", "placeholder", "autoFocus", "error", "options", "defaultOpen", "hideHandle", "groupProperty", "labelProperty", "valueProperty", "sortProperty", "multiple", "searchable", "allowCreate", "emptyDisplay", "createOption", "matcher", "renderer", "onQuery", "onChange", "onSelect", "onEnterPressed"];
|
|
16
16
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
17
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
18
|
var Select = function Select(_ref) {
|
|
@@ -28,14 +28,18 @@ var Select = function Select(_ref) {
|
|
|
28
28
|
autoFocus = _ref.autoFocus,
|
|
29
29
|
error = _ref.error,
|
|
30
30
|
options = _ref.options,
|
|
31
|
+
defaultOpen = _ref.defaultOpen,
|
|
32
|
+
hideHandle = _ref.hideHandle,
|
|
31
33
|
groupProperty = _ref.groupProperty,
|
|
32
34
|
_ref$labelProperty = _ref.labelProperty,
|
|
33
35
|
labelProperty = _ref$labelProperty === void 0 ? "label" : _ref$labelProperty,
|
|
34
36
|
_ref$valueProperty = _ref.valueProperty,
|
|
35
37
|
valueProperty = _ref$valueProperty === void 0 ? "id" : _ref$valueProperty,
|
|
38
|
+
sortProperty = _ref.sortProperty,
|
|
36
39
|
multiple = _ref.multiple,
|
|
37
40
|
searchable = _ref.searchable,
|
|
38
41
|
allowCreate = _ref.allowCreate,
|
|
42
|
+
emptyDisplay = _ref.emptyDisplay,
|
|
39
43
|
createOption = _ref.createOption,
|
|
40
44
|
matcher = _ref.matcher,
|
|
41
45
|
renderer = _ref.renderer,
|
|
@@ -48,9 +52,11 @@ var Select = function Select(_ref) {
|
|
|
48
52
|
value: value,
|
|
49
53
|
options: options,
|
|
50
54
|
multiple: multiple,
|
|
55
|
+
defaultOpen: defaultOpen,
|
|
51
56
|
groupProperty: groupProperty,
|
|
52
57
|
labelProperty: labelProperty,
|
|
53
58
|
valueProperty: valueProperty,
|
|
59
|
+
sortProperty: sortProperty,
|
|
54
60
|
allowCreate: allowCreate,
|
|
55
61
|
createOption: createOption,
|
|
56
62
|
matcher: matcher,
|
|
@@ -140,6 +146,9 @@ var Select = function Select(_ref) {
|
|
|
140
146
|
return false;
|
|
141
147
|
} else if (state.query) {
|
|
142
148
|
handleQuery("");
|
|
149
|
+
evt.preventDefault();
|
|
150
|
+
evt.stopPropagation();
|
|
151
|
+
return false;
|
|
143
152
|
} else {
|
|
144
153
|
onEnterPressed === null || onEnterPressed === void 0 || onEnterPressed(evt);
|
|
145
154
|
}
|
|
@@ -236,13 +245,13 @@ var Select = function Select(_ref) {
|
|
|
236
245
|
size: 1,
|
|
237
246
|
ref: ref,
|
|
238
247
|
autoFocus: autoFocus,
|
|
239
|
-
className: classNames("appearance-none bg-transparent outline-none border-none ring-0 flex-1", disabled && "cursor-not-allowed pointer-events-none", multiple && "min-w-24"),
|
|
248
|
+
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"),
|
|
240
249
|
placeholder: utilities.isEmpty(state.value) ? placeholder : "",
|
|
241
250
|
onChange: function onChange(evt) {
|
|
242
251
|
return handleQuery(evt.target.value);
|
|
243
252
|
}
|
|
244
253
|
})]
|
|
245
|
-
})), !state.loading && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
254
|
+
})), !state.loading && !hideHandle && /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
|
|
246
255
|
className: classNames("flex-content p-2 z-0 order-9 text-muted cursor-pointer self-stretch flex items-center h-auto", state.open && "-scale-y-100 pointer-events-none", disabled && "pointer-events-none"),
|
|
247
256
|
onClick: function onClick() {
|
|
248
257
|
return !disabled && openDropdown();
|
|
@@ -259,7 +268,7 @@ var Select = function Select(_ref) {
|
|
|
259
268
|
visuallyHiddenDismiss: true,
|
|
260
269
|
children: /*#__PURE__*/jsxRuntime.jsx(Options.Options, _objectSpread(_objectSpread({
|
|
261
270
|
ref: refs.setFloating,
|
|
262
|
-
className: "outline shadow-lg max-h-[40vh] z-
|
|
271
|
+
className: "outline shadow-lg max-h-[40vh] z-(--z-popover)",
|
|
263
272
|
style: _objectSpread({
|
|
264
273
|
width: (_refs$reference$curre = refs.reference.current) === null || _refs$reference$curre === void 0 ? void 0 : _refs$reference$curre.getBoundingClientRect().width
|
|
265
274
|
}, floatingStyles)
|
|
@@ -270,6 +279,7 @@ var Select = function Select(_ref) {
|
|
|
270
279
|
labelProperty: labelProperty,
|
|
271
280
|
itemRef: setItemRef,
|
|
272
281
|
itemProps: makeItemProps,
|
|
282
|
+
empty: emptyDisplay,
|
|
273
283
|
children: function children(item, label) {
|
|
274
284
|
var _renderer3;
|
|
275
285
|
return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
|