@react-fabric/form 1.0.0-beta.4 → 1.0.0-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/{src/input/ArrayInput.module.css → css/_arrayInput.css} +8 -8
  2. package/css/_colorPicker.css +65 -0
  3. package/{src/internal/Field.module.css → css/_field.css} +26 -15
  4. package/{src/input/File.module.css → css/_file.css} +20 -6
  5. package/css/styles.css +27 -0
  6. package/dist/cjs/builder/FileField.js +37 -25
  7. package/dist/cjs/builder/FormField.js +44 -34
  8. package/dist/cjs/builder/SchemaEditor.js +72 -0
  9. package/dist/cjs/builder/components/AddSchemaFields.js +62 -0
  10. package/dist/cjs/builder/components/SchemaArrayForm.js +143 -0
  11. package/dist/cjs/builder/components/SchemaField.js +413 -0
  12. package/dist/cjs/form/Controller.js +1 -1
  13. package/dist/cjs/form/Form.js +19 -10
  14. package/dist/cjs/hooks/useFormBuilder.js +27 -15
  15. package/dist/cjs/index.js +9 -2
  16. package/dist/cjs/input/ArrayInput.js +36 -25
  17. package/dist/cjs/input/AvatarInput.js +1 -1
  18. package/dist/cjs/input/Checkbox.js +5 -4
  19. package/dist/cjs/input/ColorInput.js +70 -28
  20. package/dist/cjs/input/ColorPicker.js +1 -35
  21. package/dist/cjs/input/DateInput.js +183 -0
  22. package/dist/cjs/input/Field.js +4 -4
  23. package/dist/cjs/input/File.js +2 -3
  24. package/dist/cjs/input/Hidden.js +3 -1
  25. package/dist/cjs/input/Input.js +1 -1
  26. package/dist/cjs/input/Number.js +1 -1
  27. package/dist/cjs/input/Password.js +1 -1
  28. package/dist/cjs/input/Radio.js +1 -1
  29. package/dist/cjs/input/RadioGroup.js +6 -3
  30. package/dist/cjs/input/{Range.js → RangeSlider.js} +3 -3
  31. package/dist/cjs/input/Search.js +1 -1
  32. package/dist/cjs/input/Slider.js +1 -1
  33. package/dist/cjs/input/Switch.js +27 -5
  34. package/dist/cjs/input/Textarea.js +7 -3
  35. package/dist/cjs/internal/ErrorIcon.js +1 -1
  36. package/dist/cjs/internal/FieldWrapper.js +4 -3
  37. package/dist/cjs/internal/InputWrapper.js +14 -16
  38. package/dist/cjs/select/AutoComplete.js +9 -6
  39. package/dist/cjs/select/List.js +41 -20
  40. package/dist/cjs/select/Options.js +2 -2
  41. package/dist/cjs/select/Select.js +15 -9
  42. package/dist/cjs/select/useSelect.js +15 -8
  43. package/{src/input/ColorPicker.module.css → dist/cjs/types/schema.js} +18 -27
  44. package/dist/cjs/utils/getColor.js +6 -0
  45. package/dist/esm/builder/FileField.js +39 -27
  46. package/dist/esm/builder/FormField.js +44 -34
  47. package/dist/esm/builder/SchemaEditor.js +72 -0
  48. package/dist/esm/builder/components/AddSchemaFields.js +62 -0
  49. package/dist/esm/builder/components/SchemaArrayForm.js +143 -0
  50. package/dist/esm/builder/components/SchemaField.js +413 -0
  51. package/dist/esm/form/Controller.js +1 -1
  52. package/dist/esm/form/Form.js +19 -10
  53. package/dist/esm/hooks/useFormBuilder.js +25 -13
  54. package/dist/esm/index.js +4 -1
  55. package/dist/esm/input/ArrayInput.js +38 -27
  56. package/dist/esm/input/AvatarInput.js +1 -1
  57. package/dist/esm/input/Checkbox.js +5 -4
  58. package/dist/esm/input/ColorInput.js +72 -30
  59. package/dist/esm/input/ColorPicker.js +1 -35
  60. package/dist/esm/input/DateInput.js +183 -0
  61. package/dist/esm/input/Field.js +5 -5
  62. package/dist/esm/input/File.js +2 -3
  63. package/dist/esm/input/Hidden.js +3 -1
  64. package/dist/esm/input/Input.js +1 -1
  65. package/dist/esm/input/Number.js +1 -1
  66. package/dist/esm/input/Password.js +1 -1
  67. package/dist/esm/input/Radio.js +1 -1
  68. package/dist/esm/input/RadioGroup.js +7 -4
  69. package/dist/esm/input/{Range.js → RangeSlider.js} +3 -3
  70. package/dist/esm/input/Search.js +1 -1
  71. package/dist/esm/input/Slider.js +1 -1
  72. package/dist/esm/input/Switch.js +29 -7
  73. package/dist/esm/input/Textarea.js +7 -3
  74. package/dist/esm/internal/ErrorIcon.js +1 -1
  75. package/dist/esm/internal/FieldWrapper.js +4 -3
  76. package/dist/esm/internal/InputWrapper.js +14 -16
  77. package/dist/esm/select/AutoComplete.js +9 -6
  78. package/dist/esm/select/List.js +42 -21
  79. package/dist/esm/select/Options.js +2 -2
  80. package/dist/esm/select/Select.js +15 -9
  81. package/dist/esm/select/useSelect.js +16 -9
  82. package/dist/esm/types/schema.js +41 -0
  83. package/dist/esm/utils/getColor.js +6 -1
  84. package/dist/types/builder/FileField.d.ts +4 -2
  85. package/dist/types/builder/FormField.d.ts +3 -1
  86. package/dist/types/builder/SchemaEditor.d.ts +2 -0
  87. package/dist/types/builder/components/AddSchemaFields.d.ts +2 -0
  88. package/dist/types/builder/components/SchemaArrayForm.d.ts +2 -0
  89. package/dist/types/builder/components/SchemaField.d.ts +10 -0
  90. package/dist/types/form/Controller.d.ts +1 -1
  91. package/dist/types/hooks/useFormBuilder.d.ts +3 -1
  92. package/dist/types/index.d.ts +4 -2
  93. package/dist/types/input/ArrayInput.d.ts +20 -3
  94. package/dist/types/input/Checkbox.d.ts +4 -3
  95. package/dist/types/input/ColorInput.d.ts +1 -1
  96. package/dist/types/input/DateInput.d.ts +19 -0
  97. package/dist/types/input/RadioGroup.d.ts +18 -2
  98. package/dist/types/input/{Range.d.ts → RangeSlider.d.ts} +1 -1
  99. package/dist/types/input/Switch.d.ts +7 -3
  100. package/dist/types/input/Textarea.d.ts +5 -1
  101. package/dist/types/internal/InputWrapper.d.ts +1 -1
  102. package/dist/types/select/AutoComplete.d.ts +1 -1
  103. package/dist/types/select/List.d.ts +1 -1
  104. package/dist/types/select/Select.d.ts +1 -1
  105. package/dist/types/select/useSelect.d.ts +2 -1
  106. package/dist/types/types/index.d.ts +17 -5
  107. package/dist/types/types/schema.d.ts +79 -33
  108. package/package.json +10 -7
  109. package/src/builder/FileField.tsx +53 -27
  110. package/src/builder/FormField.tsx +45 -32
  111. package/src/builder/SchemaEditor.tsx +72 -0
  112. package/src/builder/components/AddSchemaFields.tsx +74 -0
  113. package/src/builder/components/SchemaArrayForm.tsx +158 -0
  114. package/src/builder/components/SchemaField.tsx +435 -0
  115. package/src/form/Controller.tsx +2 -2
  116. package/src/form/Form.tsx +15 -8
  117. package/src/hooks/useFormBuilder.tsx +29 -15
  118. package/src/index.ts +10 -2
  119. package/src/input/ArrayInput.tsx +80 -42
  120. package/src/input/AvatarInput.tsx +1 -1
  121. package/src/input/Checkbox.tsx +5 -4
  122. package/src/input/ColorInput.tsx +102 -34
  123. package/src/input/ColorPicker.tsx +1 -35
  124. package/src/input/DateInput.tsx +248 -0
  125. package/src/input/Field.tsx +9 -11
  126. package/src/input/File.tsx +3 -6
  127. package/src/input/Hidden.tsx +4 -1
  128. package/src/input/Input.tsx +2 -2
  129. package/src/input/Number.tsx +2 -2
  130. package/src/input/Password.tsx +2 -2
  131. package/src/input/Radio.tsx +1 -1
  132. package/src/input/RadioGroup.tsx +27 -4
  133. package/src/input/{Range.tsx → RangeSlider.tsx} +2 -2
  134. package/src/input/Search.tsx +2 -2
  135. package/src/input/Slider.tsx +1 -1
  136. package/src/input/Switch.tsx +42 -6
  137. package/src/input/Textarea.tsx +11 -3
  138. package/src/internal/ErrorIcon.tsx +1 -1
  139. package/src/internal/FieldWrapper.tsx +3 -3
  140. package/src/internal/InputWrapper.tsx +21 -20
  141. package/src/select/AutoComplete.tsx +4 -1
  142. package/src/select/List.tsx +37 -8
  143. package/src/select/Options.tsx +1 -1
  144. package/src/select/Select.tsx +9 -3
  145. package/src/select/useSelect.tsx +30 -19
  146. package/src/types/index.ts +22 -7
  147. package/src/types/schema.ts +96 -41
  148. package/dist/cjs/input/ArrayInput.module.css +0 -1
  149. package/dist/cjs/input/ColorPicker.module.css +0 -1
  150. package/dist/cjs/input/File.module.css +0 -1
  151. package/dist/cjs/internal/Field.module.css +0 -1
  152. package/dist/esm/input/ArrayInput.module.css +0 -1
  153. package/dist/esm/input/ColorPicker.module.css +0 -1
  154. package/dist/esm/input/File.module.css +0 -1
  155. package/dist/esm/internal/Field.module.css +0 -1
@@ -2,26 +2,29 @@
2
2
 
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
- import { Children, cloneElement } from 'react';
5
+ import { cloneChildren } from '@react-fabric/core';
6
+ import { cloneElement } from 'react';
6
7
  import { FieldWrapper } from '../internal/FieldWrapper.js';
7
8
  import { jsx } from 'react/jsx-runtime';
8
9
 
9
- var _excluded = ["children", "name", "className", "onChange"];
10
+ var _excluded = ["children", "name", "className", "optionWidth", "onChange"];
10
11
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
12
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
13
  var RadioGroup = function RadioGroup(_ref) {
13
14
  var children = _ref.children,
14
15
  name = _ref.name,
15
16
  className = _ref.className,
17
+ optionWidth = _ref.optionWidth,
16
18
  onChange = _ref.onChange,
17
19
  rest = _objectWithoutProperties(_ref, _excluded);
18
20
  return /*#__PURE__*/jsx(FieldWrapper, _objectSpread(_objectSpread({}, rest), {}, {
19
21
  children: /*#__PURE__*/jsx("div", {
20
22
  className: className,
21
- children: Children.map(children, function (child) {
23
+ children: cloneChildren(children, function (child) {
22
24
  return /*#__PURE__*/cloneElement(child, {
23
25
  name: name,
24
- onChange: onChange
26
+ onChange: onChange,
27
+ width: optionWidth
25
28
  });
26
29
  })
27
30
  })
@@ -16,7 +16,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
16
16
  /**
17
17
  * Number Range input
18
18
  */
19
- var Range = function Range(_ref) {
19
+ var RangeSlider = function RangeSlider(_ref) {
20
20
  var error = _ref.error;
21
21
  _ref.name;
22
22
  var value = _ref.value,
@@ -71,7 +71,7 @@ var Range = function Range(_ref) {
71
71
  }, [showValue]);
72
72
  var handleChange = useCallback(function (val) {
73
73
  setActualValue(val !== null && val !== void 0 ? val : [min, max]);
74
- onChange === null || onChange === void 0 || onChange(val !== null && val !== void 0 ? val : undefined);
74
+ onChange === null || onChange === void 0 || onChange(val !== null && val !== void 0 ? val : null);
75
75
  }, [onChange, min, max]);
76
76
  var minDisplay = useMemo(function () {
77
77
  return /*#__PURE__*/jsx("span", {
@@ -166,4 +166,4 @@ var Range = function Range(_ref) {
166
166
  }));
167
167
  };
168
168
 
169
- export { Range };
169
+ export { RangeSlider };
@@ -53,7 +53,7 @@ var Search = function Search(_ref) {
53
53
  var value = e === null || e === void 0 ? void 0 : e.target.value;
54
54
  refValue.current = value !== null && value !== void 0 ? value : "";
55
55
  setActualValue(value !== null && value !== void 0 ? value : "");
56
- onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : undefined);
56
+ onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : null);
57
57
 
58
58
  // value was cleared so force fire onSearch
59
59
  if (searchOnChange) {
@@ -73,7 +73,7 @@ var Slider = function Slider(_ref) {
73
73
  var handleChange = useCallback(function (value) {
74
74
  var val = useInfinity && value === max ? Infinity : value;
75
75
  setActualValue(val !== null && val !== void 0 ? val : 0);
76
- onChange === null || onChange === void 0 || onChange(val !== null && val !== void 0 ? val : undefined);
76
+ onChange === null || onChange === void 0 || onChange(val !== null && val !== void 0 ? val : null);
77
77
  }, [onChange, max, useInfinity]);
78
78
  var minDisplay = useMemo(function () {
79
79
  return /*#__PURE__*/jsx("span", {
@@ -4,13 +4,13 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
6
  import classNames from 'classnames';
7
- import { useState, useDeferredValue, useEffect, useCallback } from 'react';
7
+ import { useState, useDeferredValue, useEffect, useCallback, Fragment } from 'react';
8
8
  import { ErrorIcon } from '../internal/ErrorIcon.js';
9
9
  import '@react-fabric/utilities';
10
- import { getBgClass, getColor } from '../utils/getColor.js';
10
+ import { getBgClass, getColor, getColorClass } from '../utils/getColor.js';
11
11
  import { jsxs, jsx } from 'react/jsx-runtime';
12
12
 
13
- var _excluded = ["ref", "label", "checked", "invalid", "disabled", "error", "width", "color", "name", "defaultColor", "onChange"];
13
+ var _excluded = ["ref", "label", "checked", "invalid", "disabled", "error", "width", "color", "name", "onLabel", "offLabel", "onLabelColor", "offLabelColor", "defaultColor", "required", "onChange"];
14
14
  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; }
15
15
  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; }
16
16
  var Switch = function Switch(_ref) {
@@ -23,8 +23,13 @@ var Switch = function Switch(_ref) {
23
23
  width = _ref.width,
24
24
  color = _ref.color;
25
25
  _ref.name;
26
- var defaultColor = _ref.defaultColor,
27
- onChange = _ref.onChange,
26
+ var onLabel = _ref.onLabel,
27
+ offLabel = _ref.offLabel,
28
+ onLabelColor = _ref.onLabelColor,
29
+ offLabelColor = _ref.offLabelColor,
30
+ defaultColor = _ref.defaultColor;
31
+ _ref.required;
32
+ var onChange = _ref.onChange,
28
33
  rest = _objectWithoutProperties(_ref, _excluded);
29
34
  var _useState = useState(false),
30
35
  _useState2 = _slicedToArray(_useState, 2),
@@ -45,7 +50,7 @@ var Switch = function Switch(_ref) {
45
50
  width: width
46
51
  },
47
52
  children: [/*#__PURE__*/jsxs("div", {
48
- className: classNames(actualValue && getBgClass(color ? "".concat(color, "-500") : "primary-500"), !actualValue && (defaultColor ? getBgClass("".concat(defaultColor, "-500")) : "bg-tint-200"), "relative flex h-6 w-10 cursor-pointer rounded-full p-1 transition-colors duration-200 ease-in-out"),
53
+ className: classNames(actualValue && getBgClass(color ? "".concat(color, "-500") : "primary-500"), !actualValue && (defaultColor ? getBgClass("".concat(defaultColor, "-500")) : "bg-tint-200"), "relative grid grid-cols-2 items-center h-6 min-w-10 cursor-pointer rounded-full p-1 transition-colors duration-200 ease-in-out"),
49
54
  style: {
50
55
  backgroundColor: actualValue ? getColor(color) : getColor(defaultColor)
51
56
  },
@@ -64,7 +69,24 @@ var Switch = function Switch(_ref) {
64
69
  onChange: handleChange
65
70
  }, rest)), /*#__PURE__*/jsx("span", {
66
71
  "aria-hidden": "true",
67
- className: classNames(!disabled && "shadow-sm", actualValue ? "translate-x-4" : "translate-x-0", "pointer-events-none inline-block size-4 rounded-full bg-white ring-0 transition duration-200 ease-in-out")
72
+ className: classNames(!disabled && "shadow-sm", actualValue ? "translate-x-[100%]" : "translate-x-0", "pointer-events-none inline-block h-4 start-1 absolute rounded-full bg-white ring-0 transition duration-200 ease-in-out"),
73
+ style: {
74
+ width: "calc(50% - 0.25rem)"
75
+ }
76
+ }), (!!onLabel || !!offLabel) && /*#__PURE__*/jsxs(Fragment, {
77
+ children: [/*#__PURE__*/jsx("span", {
78
+ className: "whitespace-nowrap text-xs px-1 ".concat(getColorClass(onLabelColor !== null && onLabelColor !== void 0 ? onLabelColor : "white")),
79
+ style: {
80
+ color: getColor(onLabelColor)
81
+ },
82
+ children: onLabel !== null && onLabel !== void 0 ? onLabel : " "
83
+ }), /*#__PURE__*/jsx("span", {
84
+ className: "whitespace-nowrap text-xs px-1 ".concat(getColorClass(offLabelColor !== null && offLabelColor !== void 0 ? offLabelColor : "base")),
85
+ style: {
86
+ color: getColor(offLabelColor)
87
+ },
88
+ children: offLabel !== null && offLabel !== void 0 ? offLabel : " "
89
+ })]
68
90
  })]
69
91
  }), /*#__PURE__*/jsx(ErrorIcon, {
70
92
  invalid: invalid,
@@ -9,7 +9,7 @@ import { handleEnter } from '../utils/eventHandlers.js';
9
9
  import '@react-fabric/utilities';
10
10
  import { jsx } from '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", "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
15
  var Textarea = function Textarea(_ref) {
@@ -27,6 +27,7 @@ var Textarea = function Textarea(_ref) {
27
27
  _ref$maxRows = _ref.maxRows,
28
28
  maxRows = _ref$maxRows === void 0 ? 12 : _ref$maxRows,
29
29
  variableRows = _ref.variableRows,
30
+ expandable = _ref.expandable,
30
31
  onChange = _ref.onChange,
31
32
  onEnterPressed = _ref.onEnterPressed,
32
33
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -46,7 +47,7 @@ var Textarea = function Textarea(_ref) {
46
47
  var handleChange = useCallback(function (e) {
47
48
  var value = e === null || e === void 0 ? void 0 : e.target.value;
48
49
  setActualValue(value !== null && value !== void 0 ? value : "");
49
- onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : undefined);
50
+ onChange === null || onChange === void 0 || onChange(value !== null && value !== void 0 ? value : null);
50
51
  }, [onChange]);
51
52
  useEffect(function () {
52
53
  if (variableRows) {
@@ -65,6 +66,7 @@ var Textarea = function Textarea(_ref) {
65
66
  disabled: disabled,
66
67
  required: required,
67
68
  wrapperRef: wrapperRef,
69
+ textareaExpandable: expandable,
68
70
  textarea: true
69
71
  }, rest), {}, {
70
72
  children: /*#__PURE__*/jsx("textarea", {
@@ -83,7 +85,9 @@ var Textarea = function Textarea(_ref) {
83
85
  autoFocus: autoFocus,
84
86
  value: actualValue,
85
87
  onChange: handleChange,
86
- onKeyDown: handleEnter(onEnterPressed)
88
+ onKeyDown: handleEnter(onEnterPressed, {
89
+ preventDefault: !!onEnterPressed
90
+ })
87
91
  })
88
92
  }));
89
93
  };
@@ -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__*/jsx(Icon, {
25
25
  className: "flex-content first:ms-2 self-center",
26
26
  color: "danger",
@@ -1,7 +1,6 @@
1
1
  'use client';
2
2
 
3
3
  import classNames from 'classnames';
4
- import classes from './Field.module.css';
5
4
  import { jsxs, jsx } from 'react/jsx-runtime';
6
5
 
7
6
  /*
@@ -42,14 +41,14 @@ var FieldWrapper = function FieldWrapper(_ref) {
42
41
  className = _ref.className,
43
42
  isInner = _ref["data-inner"];
44
43
  return /*#__PURE__*/jsxs("div", {
45
- className: classNames(classes.fieldWrapper, className, inline ? "flex flex-nowrap gap-1" : "block"),
44
+ className: classNames("fabric-fieldWrapper", className, inline ? "flex flex-nowrap gap-1" : "block"),
46
45
  "data-ref": "fieldWrapper",
47
46
  style: {
48
47
  width: width,
49
48
  flexBasis: width
50
49
  },
51
50
  children: [!isInner && /*#__PURE__*/jsxs("div", {
52
- className: "flex flex-nowrap flex-content gap-1 py-0.5 px-2",
51
+ className: "flex flex-nowrap flex-content items-end gap-1 py-0.5 px-2",
53
52
  style: {
54
53
  width: inline ? labelWidth : undefined
55
54
  },
@@ -64,6 +63,8 @@ var FieldWrapper = function FieldWrapper(_ref) {
64
63
  }), required && /*#__PURE__*/jsx("span", {
65
64
  className: "text-danger-500 select-none flex-content text-[10px]",
66
65
  children: "\u273D"
66
+ }), /*#__PURE__*/jsx("div", {
67
+ className: "flex-1"
67
68
  }), appendLabel && /*#__PURE__*/jsx("span", {
68
69
  className: "flex-content",
69
70
  children: appendLabel
@@ -3,33 +3,34 @@
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
- import { FloatingPortal } from '@floating-ui/react';
7
6
  import { Icon, CoreIcons } from '@react-fabric/core';
8
7
  import { isString } from '@react-fabric/utilities';
9
8
  import classNames from 'classnames';
10
9
  import { useRef, useState, useMemo, useCallback, useEffect } from 'react';
11
10
  import { Fragment, jsxs, jsx } from 'react/jsx-runtime';
12
11
  import { ErrorIcon } from './ErrorIcon.js';
13
- import classes from './Field.module.css';
14
12
  import { FieldWrapper } from './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", "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,
31
30
  _ref$textarea = _ref.textarea,
32
31
  textarea = _ref$textarea === void 0 ? false : _ref$textarea,
32
+ _ref$textareaExpandab = _ref.textareaExpandable,
33
+ textareaExpandable = _ref$textareaExpandab === void 0 ? false : _ref$textareaExpandab,
33
34
  isInner = _ref["data-inner"];
34
35
  _ref["data-open"];
35
36
  var floatingExpand = _ref.floatingExpand,
@@ -67,13 +68,13 @@ var InputWrapper = function InputWrapper(_ref) {
67
68
  var el = /*#__PURE__*/jsxs("div", {
68
69
  role: "none",
69
70
  ref: wrapperRef,
70
- className: classNames(classes.inputWrapper, invalid && classes.invalidWrapper, !noOutline && !noBorder && "bg-[var(--fabric-input)] outline overflow-hidden", "flex flex-nowrap items-center", 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
+ 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
72
  onKeyDown: function onKeyDown(e) {
72
- return e.key === "Escape" && setExpanded(false);
73
+ return e.key === "Escape" && isExpanded && (setExpanded(false), e.stopPropagation());
73
74
  },
74
75
  children: [decorateStart && /*#__PURE__*/jsx("div", {
75
76
  onClickCapture: doFocus,
76
- className: classNames(classes.decorate, "text-muted leading-none flex-content", isString(decorateStart) && "px-1"),
77
+ className: classNames("fabric-decorate", "text-muted leading-none flex-content", isString(decorateStart) && "px-1"),
77
78
  children: decorateStart
78
79
  }), /*#__PURE__*/jsx(ErrorIcon, {
79
80
  invalid: invalid,
@@ -81,12 +82,12 @@ var InputWrapper = function InputWrapper(_ref) {
81
82
  }), children, allowClear && showClear && /*#__PURE__*/jsx(Icon, {
82
83
  icon: CoreIcons.close,
83
84
  onClick: handleClear,
84
- className: classNames("text-tint-500 hover:text-tint-700 p-1 z-1 flex-content", classes.inputClear, textarea && "self-start mt-1 me-1")
85
+ 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
86
  }), decorateEnd && /*#__PURE__*/jsx("div", {
86
87
  onClickCapture: doFocus,
87
- className: classNames(classes.decorate, "text-muted leading-none flex-content", isString(decorateEnd) && "px-1"),
88
+ className: classNames("fabric-decorate", "text-muted leading-none flex-content", isString(decorateEnd) && "px-1", decorateEndHideWhenEmpty && "peer-placeholder-shown:hidden", decorateEndShowWhenEmpty && "hidden peer-placeholder-shown:inline-block"),
88
89
  children: decorateEnd
89
- }), textarea && /*#__PURE__*/jsx(Icon, {
90
+ }), textareaExpandable && /*#__PURE__*/jsx(Icon, {
90
91
  onClick: function onClick() {
91
92
  return setExpanded(!isExpanded);
92
93
  },
@@ -95,17 +96,14 @@ var InputWrapper = function InputWrapper(_ref) {
95
96
  })]
96
97
  });
97
98
  return /*#__PURE__*/jsx(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
98
- children: /*#__PURE__*/jsxs("div", {
99
+ children: /*#__PURE__*/jsx("div", {
99
100
  ref: elRef,
100
- className: "flex-1 relative min-h-8",
101
+ className: "flex-1 relative min-h-8 flex flex-col flex-nowrap",
101
102
  style: {
102
103
  width: width,
103
104
  flexBasis: width
104
105
  },
105
- children: [!isExpanded && el, isExpanded && /*#__PURE__*/jsx(FloatingPortal, {
106
- root: (_elRef$current = elRef.current) === null || _elRef$current === void 0 ? void 0 : _elRef$current.closest(".theme-base"),
107
- children: el
108
- })]
106
+ children: el
109
107
  })
110
108
  }));
111
109
  };
@@ -12,7 +12,7 @@ import { Options } from './Options.js';
12
12
  import { useSelect } from './useSelect.js';
13
13
  import { jsx, jsxs } from '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
18
  var AutoComplete = function AutoComplete(_ref) {
@@ -24,9 +24,9 @@ var AutoComplete = function AutoComplete(_ref) {
24
24
  readOnly = _ref.readOnly,
25
25
  disabled = _ref.disabled,
26
26
  required = _ref.required,
27
- placeholder = _ref.placeholder;
28
- _ref.autoFocus;
29
- var expandOnEdit = _ref.expandOnEdit,
27
+ placeholder = _ref.placeholder,
28
+ autoFocus = _ref.autoFocus,
29
+ expandOnEdit = _ref.expandOnEdit,
30
30
  error = _ref.error,
31
31
  history = _ref.history,
32
32
  multiple = _ref.multiple,
@@ -35,6 +35,7 @@ var AutoComplete = function AutoComplete(_ref) {
35
35
  onInput = _ref.onInput,
36
36
  onFocus = _ref.onFocus,
37
37
  _onBlur = _ref.onBlur,
38
+ onQuery = _ref.onQuery,
38
39
  onEnterPressed = _ref.onEnterPressed,
39
40
  rest = _objectWithoutProperties(_ref, _excluded);
40
41
  var options = useRef(history);
@@ -45,7 +46,8 @@ var AutoComplete = function AutoComplete(_ref) {
45
46
  options: options.current,
46
47
  multiple: multiple,
47
48
  onChange: onChange,
48
- onSelect: onSelect
49
+ onSelect: onSelect,
50
+ onQuery: onQuery
49
51
  }),
50
52
  state = _useSelect.state,
51
53
  listRef = _useSelect.listRef,
@@ -219,6 +221,7 @@ var AutoComplete = function AutoComplete(_ref) {
219
221
  name: name,
220
222
  size: 1,
221
223
  onInput: onInput,
224
+ autoFocus: autoFocus,
222
225
  rows: !multiple && expandOnEdit && state.open ? 5 : 1,
223
226
  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
227
  placeholder: isEmpty(state.value) ? placeholder : ""
@@ -243,7 +246,7 @@ var AutoComplete = function AutoComplete(_ref) {
243
246
  visuallyHiddenDismiss: true,
244
247
  children: /*#__PURE__*/jsx(Options, _objectSpread(_objectSpread({
245
248
  ref: refs.setFloating,
246
- className: "outline shadow-lg max-h-[40vh] z-[var(--z-popover)]",
249
+ className: "outline shadow-lg max-h-[40vh] z-(--z-popover)",
247
250
  style: _objectSpread({
248
251
  width: (_refs$reference$curre = refs.reference.current) === null || _refs$reference$curre === void 0 ? void 0 : _refs$reference$curre.getBoundingClientRect().width
249
252
  }, floatingStyles)
@@ -6,33 +6,34 @@ import { useFloating, autoUpdate, useListNavigation, useTypeahead, useInteractio
6
6
  import { Chip } from '@react-fabric/core';
7
7
  import { isArray, isEmpty } from '@react-fabric/utilities';
8
8
  import classNames from 'classnames';
9
- import { useMemo, Fragment, useId, useCallback } from 'react';
9
+ import { useMemo, Fragment, useId, useCallback, useLayoutEffect } from 'react';
10
10
  import { FieldWrapper } from '../internal/FieldWrapper.js';
11
11
  import { InputWrapper } from '../internal/InputWrapper.js';
12
12
  import { Options } from './Options.js';
13
13
  import { useSelect } from './useSelect.js';
14
14
  import { jsx, jsxs } from '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", "multiple", "allowCreate", "searchable", "createOption", "matcher", "renderer", "onQuery", "onChange", "onSelect", "onEnterPressed", "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
- var name = _ref.name,
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
- var options = _ref.options,
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
34
  multiple = _ref.multiple,
35
35
  allowCreate = _ref.allowCreate,
36
+ searchable = _ref.searchable,
36
37
  createOption = _ref.createOption,
37
38
  matcher = _ref.matcher,
38
39
  renderer = _ref.renderer,
@@ -138,9 +139,10 @@ var List = function List(_ref) {
138
139
  }
139
140
  } else if (evt.key === "Backspace") {
140
141
  !state.query && handleRemove();
141
- } else if (["ArrowUp", "ArrowDown"].includes(evt.key)) {
142
- if (state.activeIndex === null) {
143
- setActiveIndex(state.selectedIndex);
142
+ } else if (!searchable || ["ArrowUp", "ArrowDown"].includes(evt.key)) {
143
+ if (["ArrowUp", "ArrowDown"].includes(evt.key) && state.activeIndex === null) {
144
+ var _state$selectedIndex;
145
+ setActiveIndex((_state$selectedIndex = state.selectedIndex) !== null && _state$selectedIndex !== void 0 ? _state$selectedIndex : 0);
144
146
  }
145
147
  setTimeout(function () {
146
148
  var _props$onKeyDown;
@@ -185,6 +187,14 @@ var List = function List(_ref) {
185
187
  });
186
188
  }
187
189
  }, [state.value, state.query, placeholder, renderer]);
190
+ useLayoutEffect(function () {
191
+ setTimeout(function () {
192
+ var _listRef$current$stat;
193
+ state.selectedIndex && ((_listRef$current$stat = listRef.current[state.selectedIndex]) === null || _listRef$current$stat === void 0 ? void 0 : _listRef$current$stat.scrollIntoView({
194
+ block: "center"
195
+ }));
196
+ }, 100);
197
+ }, [state.selectedIndex]);
188
198
  return /*#__PURE__*/jsxs(Wrapper, _objectSpread(_objectSpread({}, wrapperProps), {}, {
189
199
  children: [/*#__PURE__*/jsx(InputWrapper, {
190
200
  showClear: !isEmpty(state.value),
@@ -197,23 +207,32 @@ var List = function List(_ref) {
197
207
  className: "z-1 rounded-b-none",
198
208
  "data-inner": true,
199
209
  wrapperRef: refs.setReference,
200
- children: /*#__PURE__*/jsxs("div", {
210
+ children: /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
211
+ role: "none",
201
212
  "data-select-display": "true",
202
- className: "group flex-1 py-1 px-2 truncate text-start flex gap-1 flex-wrap",
203
- children: [!hideSelected && displayValue, /*#__PURE__*/jsx("input", _objectSpread(_objectSpread({
213
+ 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")
214
+ }, referenceProps), {}, {
215
+ onMouseUp: function onMouseUp(e) {
216
+ var _e$currentTarget$quer;
217
+ return (_e$currentTarget$quer = e.currentTarget.querySelector("input")) === null || _e$currentTarget$quer === void 0 ? void 0 : _e$currentTarget$quer.focus();
218
+ },
219
+ children: [!hideSelected && displayValue, /*#__PURE__*/jsx("input", {
220
+ readOnly: !searchable || readOnly,
204
221
  disabled: disabled,
205
222
  value: (_state$query = state.query) !== null && _state$query !== void 0 ? _state$query : "",
206
223
  "aria-invalid": invalid,
207
224
  "data-testid": name,
208
225
  name: name,
209
- className: classNames("appearance-none bg-transparent outline-none border-none ring-0 flex-1 min-w-24", disabled && "cursor-not-allowed pointer-events-none"),
210
- placeholder: isEmpty(state.value) ? placeholder : ""
211
- }, referenceProps), {}, {
226
+ size: 1,
227
+ ref: ref,
228
+ autoFocus: autoFocus,
229
+ 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"),
230
+ placeholder: isEmpty(state.value) ? placeholder : "",
212
231
  onChange: function onChange(evt) {
213
232
  return handleQuery(evt.target.value);
214
233
  }
215
- }))]
216
- })
234
+ })]
235
+ }))
217
236
  }), /*#__PURE__*/jsx(FloatingFocusManager, {
218
237
  context: context,
219
238
  initialFocus: -1,
@@ -227,11 +246,13 @@ var List = function List(_ref) {
227
246
  }, floatingProps), {}, {
228
247
  items: state.items,
229
248
  active: state.activeIndex,
249
+ valueProperty: valueProperty,
250
+ labelProperty: labelProperty,
230
251
  itemRef: setItemRef,
231
252
  itemProps: makeItemProps,
232
- children: function children(item) {
233
- var _ref4, _renderer3;
234
- return (_ref4 = (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : item[labelProperty]) !== null && _ref4 !== void 0 ? _ref4 : item;
253
+ children: function children(item, label) {
254
+ var _renderer3;
255
+ return (_renderer3 = renderer === null || renderer === void 0 ? void 0 : renderer(item)) !== null && _renderer3 !== void 0 ? _renderer3 : label;
235
256
  }
236
257
  }))
237
258
  })]
@@ -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__*/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__*/jsx(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__*/jsx("strong", {
57
57
  children: "query"
@@ -12,7 +12,7 @@ import { Options } from './Options.js';
12
12
  import { useSelect } from './useSelect.js';
13
13
  import { jsx, jsxs } from '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", "multiple", "searchable", "allowCreate", "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,6 +28,8 @@ 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,
@@ -48,6 +50,7 @@ var Select = function Select(_ref) {
48
50
  value: value,
49
51
  options: options,
50
52
  multiple: multiple,
53
+ defaultOpen: defaultOpen,
51
54
  groupProperty: groupProperty,
52
55
  labelProperty: labelProperty,
53
56
  valueProperty: valueProperty,
@@ -140,6 +143,9 @@ var Select = function Select(_ref) {
140
143
  return false;
141
144
  } else if (state.query) {
142
145
  handleQuery("");
146
+ evt.preventDefault();
147
+ evt.stopPropagation();
148
+ return false;
143
149
  } else {
144
150
  onEnterPressed === null || onEnterPressed === void 0 || onEnterPressed(evt);
145
151
  }
@@ -217,15 +223,16 @@ var Select = function Select(_ref) {
217
223
  wrapperRef: refs.setReference,
218
224
  className: state.open ? "!z-[99]" : ""
219
225
  }, rest), {}, {
220
- children: [/*#__PURE__*/jsxs("div", {
226
+ children: [/*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
221
227
  role: "none",
222
228
  "data-select-display": "true",
223
- 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"),
229
+ 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")
230
+ }, referenceProps), {}, {
224
231
  onMouseUp: function onMouseUp(e) {
225
232
  var _e$currentTarget$quer;
226
233
  return (_e$currentTarget$quer = e.currentTarget.querySelector("input")) === null || _e$currentTarget$quer === void 0 ? void 0 : _e$currentTarget$quer.focus();
227
234
  },
228
- children: [displayValue, /*#__PURE__*/jsx("input", _objectSpread(_objectSpread({
235
+ children: [displayValue, /*#__PURE__*/jsx("input", {
229
236
  readOnly: !searchable || readOnly,
230
237
  disabled: disabled,
231
238
  value: (_state$query = state.query) !== null && _state$query !== void 0 ? _state$query : "",
@@ -236,13 +243,12 @@ var Select = function Select(_ref) {
236
243
  ref: ref,
237
244
  autoFocus: autoFocus,
238
245
  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"),
239
- placeholder: isEmpty(state.value) ? placeholder : ""
240
- }, referenceProps), {}, {
246
+ placeholder: isEmpty(state.value) ? placeholder : "",
241
247
  onChange: function onChange(evt) {
242
248
  return handleQuery(evt.target.value);
243
249
  }
244
- }))]
245
- }), !state.loading && /*#__PURE__*/jsx(Icon, {
250
+ })]
251
+ })), !state.loading && !hideHandle && /*#__PURE__*/jsx(Icon, {
246
252
  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
253
  onClick: function onClick() {
248
254
  return !disabled && openDropdown();
@@ -259,7 +265,7 @@ var Select = function Select(_ref) {
259
265
  visuallyHiddenDismiss: true,
260
266
  children: /*#__PURE__*/jsx(Options, _objectSpread(_objectSpread({
261
267
  ref: refs.setFloating,
262
- className: "outline shadow-lg max-h-[40vh] z-[var(--z-popover)]",
268
+ className: "outline shadow-lg max-h-[40vh] z-(--z-popover)",
263
269
  style: _objectSpread({
264
270
  width: (_refs$reference$curre = refs.reference.current) === null || _refs$reference$curre === void 0 ? void 0 : _refs$reference$curre.getBoundingClientRect().width
265
271
  }, floatingStyles)