@mantine/core 7.0.0-alpha.15 → 7.0.0-alpha.17

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 (239) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +201 -0
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -0
  3. package/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -1
  4. package/cjs/components/Combobox/Combobox.context.js.map +1 -1
  5. package/cjs/components/Combobox/Combobox.js +19 -7
  6. package/cjs/components/Combobox/Combobox.js.map +1 -1
  7. package/cjs/components/Combobox/Combobox.module.css.js +1 -1
  8. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.js +3 -5
  9. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.js.map +1 -1
  10. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.js +32 -0
  11. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.js.map +1 -0
  12. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -1
  13. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.js +71 -0
  14. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.js.map +1 -0
  15. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.js.map +1 -1
  16. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.js +61 -0
  17. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.js.map +1 -0
  18. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.js.map +1 -1
  19. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.js +3 -4
  20. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.js.map +1 -1
  21. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.js +7 -2
  22. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.js.map +1 -1
  23. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.js +87 -0
  24. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.js.map +1 -0
  25. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.module.css.js +8 -0
  26. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.module.css.js.map +1 -0
  27. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.js +39 -0
  28. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.js.map +1 -0
  29. package/cjs/components/Combobox/OptionsDropdown/is-empty-combobox-data.js +21 -0
  30. package/cjs/components/Combobox/OptionsDropdown/is-empty-combobox-data.js.map +1 -0
  31. package/cjs/components/Combobox/OptionsDropdown/is-options-group.js +10 -0
  32. package/cjs/components/Combobox/OptionsDropdown/is-options-group.js.map +1 -0
  33. package/cjs/components/Combobox/get-options-lockup/get-options-lockup.js +42 -0
  34. package/cjs/components/Combobox/get-options-lockup/get-options-lockup.js.map +1 -0
  35. package/cjs/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.js +1 -1
  36. package/cjs/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.js.map +1 -1
  37. package/cjs/components/Combobox/use-combobox/use-combobox.js.map +1 -1
  38. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.js.map +1 -1
  39. package/cjs/components/Input/Input.js +19 -10
  40. package/cjs/components/Input/Input.js.map +1 -1
  41. package/cjs/components/Input/InputDescription/InputDescription.js +1 -1
  42. package/cjs/components/Input/InputDescription/InputDescription.js.map +1 -1
  43. package/cjs/components/Input/InputError/InputError.js +1 -1
  44. package/cjs/components/Input/InputError/InputError.js.map +1 -1
  45. package/cjs/components/Input/InputLabel/InputLabel.js +1 -1
  46. package/cjs/components/Input/InputLabel/InputLabel.js.map +1 -1
  47. package/cjs/components/Input/InputWrapper/InputWrapper.js +9 -5
  48. package/cjs/components/Input/InputWrapper/InputWrapper.js.map +1 -1
  49. package/cjs/components/Input/InputWrapper.context.js +4 -5
  50. package/cjs/components/Input/InputWrapper.context.js.map +1 -1
  51. package/cjs/components/Input/use-input-props.js +0 -4
  52. package/cjs/components/Input/use-input-props.js.map +1 -1
  53. package/cjs/components/InputBase/InputBase.js +2 -1
  54. package/cjs/components/InputBase/InputBase.js.map +1 -1
  55. package/cjs/components/MultiSelect/MultiSelect.js +345 -0
  56. package/cjs/components/MultiSelect/MultiSelect.js.map +1 -0
  57. package/cjs/components/MultiSelect/filter-picked-values.js +26 -0
  58. package/cjs/components/MultiSelect/filter-picked-values.js.map +1 -0
  59. package/cjs/components/Pill/Pill.js +158 -0
  60. package/cjs/components/Pill/Pill.js.map +1 -0
  61. package/cjs/components/Pill/Pill.module.css.js +8 -0
  62. package/cjs/components/Pill/Pill.module.css.js.map +1 -0
  63. package/cjs/components/Pill/PillGroup/PillGroup.js +78 -0
  64. package/cjs/components/Pill/PillGroup/PillGroup.js.map +1 -0
  65. package/cjs/components/Pill/PillGroup/PillGroup.module.css.js +8 -0
  66. package/cjs/components/Pill/PillGroup/PillGroup.module.css.js.map +1 -0
  67. package/cjs/components/Pill/PillGroup.context.js +11 -0
  68. package/cjs/components/Pill/PillGroup.context.js.map +1 -0
  69. package/cjs/components/PillsInput/PillsInput.context.js +11 -0
  70. package/cjs/components/PillsInput/PillsInput.context.js.map +1 -0
  71. package/cjs/components/PillsInput/PillsInput.js +105 -0
  72. package/cjs/components/PillsInput/PillsInput.js.map +1 -0
  73. package/cjs/components/PillsInput/PillsInputField/PillsInputField.js +110 -0
  74. package/cjs/components/PillsInput/PillsInputField/PillsInputField.js.map +1 -0
  75. package/cjs/components/PillsInput/PillsInputField/PillsInputField.module.css.js +8 -0
  76. package/cjs/components/PillsInput/PillsInputField/PillsInputField.module.css.js.map +1 -0
  77. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.js +2 -2
  78. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  79. package/cjs/components/Popover/PopoverTarget/PopoverTarget.js +1 -1
  80. package/cjs/components/ScrollArea/ScrollArea.js +1 -1
  81. package/cjs/components/ScrollArea/ScrollArea.js.map +1 -1
  82. package/cjs/components/Select/Select.js +227 -0
  83. package/cjs/components/Select/Select.js.map +1 -0
  84. package/cjs/components/TagsInput/TagsInput.js +370 -0
  85. package/cjs/components/TagsInput/TagsInput.js.map +1 -0
  86. package/cjs/components/TagsInput/filter-picked-tags.js +26 -0
  87. package/cjs/components/TagsInput/filter-picked-tags.js.map +1 -0
  88. package/cjs/components/TagsInput/get-splitted-tags.js +23 -0
  89. package/cjs/components/TagsInput/get-splitted-tags.js.map +1 -0
  90. package/cjs/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.js +33 -0
  91. package/cjs/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.js.map +1 -0
  92. package/cjs/core/utils/create-optional-context/create-optional-context.js +19 -0
  93. package/cjs/core/utils/create-optional-context/create-optional-context.js.map +1 -0
  94. package/cjs/index.css +1340 -1097
  95. package/cjs/index.js +41 -0
  96. package/cjs/index.js.map +1 -1
  97. package/esm/components/Autocomplete/Autocomplete.js +193 -0
  98. package/esm/components/Autocomplete/Autocomplete.js.map +1 -0
  99. package/esm/components/Breadcrumbs/Breadcrumbs.js +1 -1
  100. package/esm/components/Combobox/Combobox.context.js.map +1 -1
  101. package/esm/components/Combobox/Combobox.js +19 -7
  102. package/esm/components/Combobox/Combobox.js.map +1 -1
  103. package/esm/components/Combobox/Combobox.module.css.js +1 -1
  104. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.js +3 -5
  105. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.js.map +1 -1
  106. package/esm/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.js +24 -0
  107. package/esm/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.js.map +1 -0
  108. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -1
  109. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.js +67 -0
  110. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.js.map +1 -0
  111. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.js.map +1 -1
  112. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.js +53 -0
  113. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.js.map +1 -0
  114. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.js.map +1 -1
  115. package/esm/components/Combobox/ComboboxOption/ComboboxOption.js +3 -4
  116. package/esm/components/Combobox/ComboboxOption/ComboboxOption.js.map +1 -1
  117. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.js +7 -2
  118. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.js.map +1 -1
  119. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.js +79 -0
  120. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.js.map +1 -0
  121. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.module.css.js +4 -0
  122. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.module.css.js.map +1 -0
  123. package/esm/components/Combobox/OptionsDropdown/default-options-filter.js +35 -0
  124. package/esm/components/Combobox/OptionsDropdown/default-options-filter.js.map +1 -0
  125. package/esm/components/Combobox/OptionsDropdown/is-empty-combobox-data.js +17 -0
  126. package/esm/components/Combobox/OptionsDropdown/is-empty-combobox-data.js.map +1 -0
  127. package/esm/components/Combobox/OptionsDropdown/is-options-group.js +6 -0
  128. package/esm/components/Combobox/OptionsDropdown/is-options-group.js.map +1 -0
  129. package/esm/components/Combobox/get-options-lockup/get-options-lockup.js +37 -0
  130. package/esm/components/Combobox/get-options-lockup/get-options-lockup.js.map +1 -0
  131. package/esm/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.js +1 -1
  132. package/esm/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.js.map +1 -1
  133. package/esm/components/Combobox/use-combobox/use-combobox.js.map +1 -1
  134. package/esm/components/Combobox/use-combobox/use-virtualized-combobox.js.map +1 -1
  135. package/esm/components/Input/Input.js +19 -10
  136. package/esm/components/Input/Input.js.map +1 -1
  137. package/esm/components/Input/InputDescription/InputDescription.js +1 -1
  138. package/esm/components/Input/InputDescription/InputDescription.js.map +1 -1
  139. package/esm/components/Input/InputError/InputError.js +1 -1
  140. package/esm/components/Input/InputError/InputError.js.map +1 -1
  141. package/esm/components/Input/InputLabel/InputLabel.js +1 -1
  142. package/esm/components/Input/InputLabel/InputLabel.js.map +1 -1
  143. package/esm/components/Input/InputWrapper/InputWrapper.js +9 -5
  144. package/esm/components/Input/InputWrapper/InputWrapper.js.map +1 -1
  145. package/esm/components/Input/InputWrapper.context.js +4 -5
  146. package/esm/components/Input/InputWrapper.context.js.map +1 -1
  147. package/esm/components/Input/use-input-props.js +0 -4
  148. package/esm/components/Input/use-input-props.js.map +1 -1
  149. package/esm/components/InputBase/InputBase.js +2 -1
  150. package/esm/components/InputBase/InputBase.js.map +1 -1
  151. package/esm/components/MultiSelect/MultiSelect.js +337 -0
  152. package/esm/components/MultiSelect/MultiSelect.js.map +1 -0
  153. package/esm/components/MultiSelect/filter-picked-values.js +22 -0
  154. package/esm/components/MultiSelect/filter-picked-values.js.map +1 -0
  155. package/esm/components/Pill/Pill.js +150 -0
  156. package/esm/components/Pill/Pill.js.map +1 -0
  157. package/esm/components/Pill/Pill.module.css.js +4 -0
  158. package/esm/components/Pill/Pill.module.css.js.map +1 -0
  159. package/esm/components/Pill/PillGroup/PillGroup.js +70 -0
  160. package/esm/components/Pill/PillGroup/PillGroup.js.map +1 -0
  161. package/esm/components/Pill/PillGroup/PillGroup.module.css.js +4 -0
  162. package/esm/components/Pill/PillGroup/PillGroup.module.css.js.map +1 -0
  163. package/esm/components/Pill/PillGroup.context.js +6 -0
  164. package/esm/components/Pill/PillGroup.context.js.map +1 -0
  165. package/esm/components/PillsInput/PillsInput.context.js +6 -0
  166. package/esm/components/PillsInput/PillsInput.context.js.map +1 -0
  167. package/esm/components/PillsInput/PillsInput.js +97 -0
  168. package/esm/components/PillsInput/PillsInput.js.map +1 -0
  169. package/esm/components/PillsInput/PillsInputField/PillsInputField.js +102 -0
  170. package/esm/components/PillsInput/PillsInputField/PillsInputField.js.map +1 -0
  171. package/esm/components/PillsInput/PillsInputField/PillsInputField.module.css.js +4 -0
  172. package/esm/components/PillsInput/PillsInputField/PillsInputField.module.css.js.map +1 -0
  173. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.js +2 -2
  174. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  175. package/esm/components/Popover/PopoverTarget/PopoverTarget.js +1 -1
  176. package/esm/components/ScrollArea/ScrollArea.js +1 -1
  177. package/esm/components/ScrollArea/ScrollArea.js.map +1 -1
  178. package/esm/components/Select/Select.js +219 -0
  179. package/esm/components/Select/Select.js.map +1 -0
  180. package/esm/components/TagsInput/TagsInput.js +362 -0
  181. package/esm/components/TagsInput/TagsInput.js.map +1 -0
  182. package/esm/components/TagsInput/filter-picked-tags.js +22 -0
  183. package/esm/components/TagsInput/filter-picked-tags.js.map +1 -0
  184. package/esm/components/TagsInput/get-splitted-tags.js +19 -0
  185. package/esm/components/TagsInput/get-splitted-tags.js.map +1 -0
  186. package/esm/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.js +29 -0
  187. package/esm/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.js.map +1 -0
  188. package/esm/core/utils/create-optional-context/create-optional-context.js +11 -0
  189. package/esm/core/utils/create-optional-context/create-optional-context.js.map +1 -0
  190. package/esm/index.css +1340 -1097
  191. package/esm/index.js +20 -0
  192. package/esm/index.js.map +1 -1
  193. package/lib/components/Autocomplete/Autocomplete.d.ts +24 -0
  194. package/lib/components/Autocomplete/index.d.ts +2 -0
  195. package/lib/components/Combobox/Combobox.context.d.ts +1 -1
  196. package/lib/components/Combobox/Combobox.d.ts +28 -4
  197. package/lib/components/Combobox/Combobox.types.d.ts +31 -2
  198. package/lib/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.d.ts +18 -0
  199. package/lib/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.d.ts +27 -0
  200. package/lib/components/Combobox/ComboboxGroup/ComboboxGroup.d.ts +19 -0
  201. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +25 -0
  202. package/lib/components/Combobox/OptionsDropdown/default-options-filter.d.ts +7 -0
  203. package/lib/components/Combobox/OptionsDropdown/is-empty-combobox-data.d.ts +2 -0
  204. package/lib/components/Combobox/OptionsDropdown/is-options-group.d.ts +2 -0
  205. package/lib/components/Combobox/get-options-lockup/get-options-lockup.d.ts +3 -0
  206. package/lib/components/Combobox/index.d.ts +17 -2
  207. package/lib/components/Combobox/use-combobox/use-combobox.d.ts +33 -2
  208. package/lib/components/Input/Input.d.ts +6 -2
  209. package/lib/components/Input/InputWrapper.context.d.ts +5 -2
  210. package/lib/components/Input/index.d.ts +1 -0
  211. package/lib/components/Input/use-input-props.d.ts +66 -67
  212. package/lib/components/InputBase/InputBase.d.ts +4 -1
  213. package/lib/components/MultiSelect/MultiSelect.d.ts +41 -0
  214. package/lib/components/MultiSelect/filter-picked-values.d.ts +7 -0
  215. package/lib/components/MultiSelect/index.d.ts +2 -0
  216. package/lib/components/Pill/Pill.d.ts +48 -0
  217. package/lib/components/Pill/PillGroup/PillGroup.d.ts +31 -0
  218. package/lib/components/Pill/PillGroup.context.d.ts +10 -0
  219. package/lib/components/Pill/index.d.ts +4 -0
  220. package/lib/components/PillsInput/PillsInput.context.d.ts +14 -0
  221. package/lib/components/PillsInput/PillsInput.d.ts +22 -0
  222. package/lib/components/PillsInput/PillsInputField/PillsInputField.d.ts +18 -0
  223. package/lib/components/PillsInput/index.d.ts +4 -0
  224. package/lib/components/ScrollArea/ScrollArea.d.ts +2 -2
  225. package/lib/components/Select/Select.d.ts +33 -0
  226. package/lib/components/Select/index.d.ts +2 -0
  227. package/lib/components/TagsInput/TagsInput.d.ts +36 -0
  228. package/lib/components/TagsInput/filter-picked-tags.d.ts +7 -0
  229. package/lib/components/TagsInput/get-splitted-tags.d.ts +9 -0
  230. package/lib/components/TagsInput/index.d.ts +2 -0
  231. package/lib/components/UnstyledButton/UnstyledButton.d.ts +1 -1
  232. package/lib/components/index.d.ts +6 -0
  233. package/lib/core/Box/Box.d.ts +1 -1
  234. package/lib/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.d.ts +1 -1
  235. package/lib/core/styles-api/index.d.ts +1 -0
  236. package/lib/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.d.ts +12 -0
  237. package/lib/core/utils/create-optional-context/create-optional-context.d.ts +5 -0
  238. package/lib/core/utils/index.d.ts +1 -0
  239. package/package.json +2 -2
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var Combobox_context = require('../Combobox.context.js');
7
+ var Combobox_module = require('../Combobox.module.css.js');
8
+ var factory = require('../../../core/factory/factory.js');
9
+ var useProps = require('../../../core/MantineProvider/use-props/use-props.js');
10
+ var Box = require('../../../core/Box/Box.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ var __defProp = Object.defineProperty;
17
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
18
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
19
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
20
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
21
+ var __spreadValues = (a, b) => {
22
+ for (var prop in b || (b = {}))
23
+ if (__hasOwnProp.call(b, prop))
24
+ __defNormalProp(a, prop, b[prop]);
25
+ if (__getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(b)) {
27
+ if (__propIsEnum.call(b, prop))
28
+ __defNormalProp(a, prop, b[prop]);
29
+ }
30
+ return a;
31
+ };
32
+ var __objRest = (source, exclude) => {
33
+ var target = {};
34
+ for (var prop in source)
35
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
36
+ target[prop] = source[prop];
37
+ if (source != null && __getOwnPropSymbols)
38
+ for (var prop of __getOwnPropSymbols(source)) {
39
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
40
+ target[prop] = source[prop];
41
+ }
42
+ return target;
43
+ };
44
+ const defaultProps = {};
45
+ const ComboboxGroup = factory.factory((props, ref) => {
46
+ const _a = useProps.useProps("ComboboxGroup", defaultProps, props), { classNames, className, style, styles, unstyled, vars, children, label } = _a, others = __objRest(_a, ["classNames", "className", "style", "styles", "unstyled", "vars", "children", "label"]);
47
+ const ctx = Combobox_context.useComboboxContext();
48
+ return /* @__PURE__ */ React__default.createElement(
49
+ Box.Box,
50
+ __spreadValues(__spreadValues({
51
+ ref
52
+ }, ctx.getStyles("group", { className, classNames, style, styles })), others),
53
+ label && /* @__PURE__ */ React__default.createElement("div", __spreadValues({}, ctx.getStyles("groupLabel", { classNames, styles })), label),
54
+ children
55
+ );
56
+ });
57
+ ComboboxGroup.classes = Combobox_module['default'];
58
+ ComboboxGroup.displayName = "@mantine/core/ComboboxGroup";
59
+
60
+ exports.ComboboxGroup = ComboboxGroup;
61
+ //# sourceMappingURL=ComboboxGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxGroup.js","sources":["../../../../src/components/Combobox/ComboboxGroup/ComboboxGroup.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxGroupStylesNames = 'group' | 'groupLabel';\n\nexport interface ComboboxGroupProps\n extends BoxProps,\n StylesApiProps<ComboboxGroupFactory>,\n ElementProps<'div'> {\n /** Group label */\n label?: React.ReactNode;\n}\n\nexport type ComboboxGroupFactory = Factory<{\n props: ComboboxGroupProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxGroupStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ComboboxGroupProps> = {};\n\nexport const ComboboxGroup = factory<ComboboxGroupFactory>((props, ref) => {\n const { classNames, className, style, styles, unstyled, vars, children, label, ...others } =\n useProps('ComboboxGroup', defaultProps, props);\n\n const ctx = useComboboxContext();\n\n return (\n <Box\n ref={ref}\n {...ctx.getStyles('group', { className, classNames, style, styles })}\n {...others}\n >\n {label && <div {...ctx.getStyles('groupLabel', { classNames, styles })}>{label}</div>}\n {children}\n </Box>\n );\n});\n\nComboboxGroup.classes = classes;\nComboboxGroup.displayName = '@mantine/core/ComboboxGroup';\n"],"names":["factory","useProps","useComboboxContext","React","Box","classes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxHeader.js","sources":["../../../../src/components/Combobox/ComboboxHeader/ComboboxHeader.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxHeaderStylesNames = 'header';\n\nexport interface ComboboxHeaderProps\n extends BoxProps,\n StylesApiProps<ComboboxHeaderFactory>,\n ElementProps<'div'> {}\n\nexport type ComboboxHeaderFactory = Factory<{\n props: ComboboxHeaderProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxHeaderStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ComboboxHeaderProps> = {};\n\nexport const ComboboxHeader = factory<ComboboxHeaderFactory>((props, ref) => {\n const { classNames, className, style, styles, unstyled, vars, ...others } = useProps(\n 'ComboboxHeader',\n defaultProps,\n props\n );\n const ctx = useComboboxContext();\n\n return (\n <Box\n ref={ref}\n {...ctx.getStyles('header', { className, classNames, style, styles })}\n {...others}\n />\n );\n});\n\nComboboxHeader.classes = classes;\nComboboxHeader.displayName = '@mantine/core/ComboboxHeader';\n"],"names":["factory","useProps","useComboboxContext","React","Box","classes"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxHeader.js","sources":["../../../../src/components/Combobox/ComboboxHeader/ComboboxHeader.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxHeaderStylesNames = 'header';\n\nexport interface ComboboxHeaderProps\n extends BoxProps,\n StylesApiProps<ComboboxHeaderFactory>,\n ElementProps<'div'> {}\n\nexport type ComboboxHeaderFactory = Factory<{\n props: ComboboxHeaderProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxHeaderStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ComboboxHeaderProps> = {};\n\nexport const ComboboxHeader = factory<ComboboxHeaderFactory>((props, ref) => {\n const { classNames, className, style, styles, unstyled, vars, ...others } = useProps(\n 'ComboboxHeader',\n defaultProps,\n props\n );\n\n const ctx = useComboboxContext();\n\n return (\n <Box\n ref={ref}\n {...ctx.getStyles('header', { className, classNames, style, styles })}\n {...others}\n />\n );\n});\n\nComboboxHeader.classes = classes;\nComboboxHeader.displayName = '@mantine/core/ComboboxHeader';\n"],"names":["factory","useProps","useComboboxContext","React","Box","classes"],"mappings":"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"}
@@ -81,9 +81,8 @@ const ComboboxOption = factory.factory((_props, ref) => {
81
81
  const _id = id || uuid;
82
82
  return /* @__PURE__ */ React__default.createElement(
83
83
  Box.Box,
84
- __spreadProps(__spreadValues(__spreadValues({
85
- ref
86
- }, ctx.getStyles("option", { className, classNames, styles, style })), others), {
84
+ __spreadProps(__spreadValues(__spreadValues({}, ctx.getStyles("option", { className, classNames, styles, style })), others), {
85
+ ref,
87
86
  id: _id,
88
87
  mod: [
89
88
  "combobox-option",
@@ -93,7 +92,7 @@ const ComboboxOption = factory.factory((_props, ref) => {
93
92
  onClick: (event) => {
94
93
  var _a2;
95
94
  if (!disabled) {
96
- (_a2 = ctx.onOptionSelect) == null ? void 0 : _a2.call(ctx, props.value, props);
95
+ (_a2 = ctx.onOptionSubmit) == null ? void 0 : _a2.call(ctx, props.value, props);
97
96
  onClick == null ? void 0 : onClick(event);
98
97
  } else {
99
98
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOption.js","sources":["../../../../src/components/Combobox/ComboboxOption/ComboboxOption.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxOptionStylesNames = 'option';\n\nexport interface ComboboxOptionProps\n extends BoxProps,\n StylesApiProps<ComboboxOptionFactory>,\n ElementProps<'div'> {\n /** Option value */\n value: string;\n\n /** Determines whether the option is selected */\n active?: boolean;\n\n /** Determines whether the option can be selected */\n disabled?: boolean;\n\n /** Determines whether item is selected, useful for virtualized comboboxes */\n selected?: boolean;\n}\n\nexport type ComboboxOptionFactory = Factory<{\n props: ComboboxOptionProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxOptionStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ComboboxOptionProps> = {};\n\nexport const ComboboxOption = factory<ComboboxOptionFactory>((_props, ref) => {\n const props = useProps('ComboboxOption', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n onClick,\n id,\n active,\n onMouseDown,\n onMouseOver,\n disabled,\n selected,\n ...others\n } = props;\n\n const ctx = useComboboxContext();\n const uuid = useId();\n const _id = id || uuid;\n\n return (\n <Box\n ref={ref}\n {...ctx.getStyles('option', { className, classNames, styles, style })}\n {...others}\n id={_id}\n mod={[\n 'combobox-option',\n { 'combobox-active': active, 'combobox-disabled': disabled, 'combobox-selected': selected },\n ]}\n role=\"option\"\n onClick={(event) => {\n if (!disabled) {\n ctx.onOptionSelect?.(props.value, props);\n onClick?.(event);\n } else {\n event.preventDefault();\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n onMouseDown?.(event);\n }}\n onMouseOver={(event) => {\n if (ctx.resetSelectionOnOptionHover) {\n ctx.store.resetSelectedOption();\n }\n onMouseOver?.(event);\n }}\n />\n );\n});\n\nComboboxOption.classes = classes;\nComboboxOption.displayName = '@mantine/core/ComboboxOption';\n"],"names":["factory","useProps","useComboboxContext","useId","React","Box","classes"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxOption.js","sources":["../../../../src/components/Combobox/ComboboxOption/ComboboxOption.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxOptionStylesNames = 'option';\n\nexport interface ComboboxOptionProps\n extends BoxProps,\n StylesApiProps<ComboboxOptionFactory>,\n ElementProps<'div'> {\n /** Option value */\n value: string;\n\n /** Determines whether the option is selected */\n active?: boolean;\n\n /** Determines whether the option can be selected */\n disabled?: boolean;\n\n /** Determines whether item is selected, useful for virtualized comboboxes */\n selected?: boolean;\n}\n\nexport type ComboboxOptionFactory = Factory<{\n props: ComboboxOptionProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxOptionStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<ComboboxOptionProps> = {};\n\nexport const ComboboxOption = factory<ComboboxOptionFactory>((_props, ref) => {\n const props = useProps('ComboboxOption', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n onClick,\n id,\n active,\n onMouseDown,\n onMouseOver,\n disabled,\n selected,\n ...others\n } = props;\n\n const ctx = useComboboxContext();\n const uuid = useId();\n const _id = id || uuid;\n\n return (\n <Box\n {...ctx.getStyles('option', { className, classNames, styles, style })}\n {...others}\n ref={ref}\n id={_id}\n mod={[\n 'combobox-option',\n { 'combobox-active': active, 'combobox-disabled': disabled, 'combobox-selected': selected },\n ]}\n role=\"option\"\n onClick={(event) => {\n if (!disabled) {\n ctx.onOptionSubmit?.(props.value, props);\n onClick?.(event);\n } else {\n event.preventDefault();\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n onMouseDown?.(event);\n }}\n onMouseOver={(event) => {\n if (ctx.resetSelectionOnOptionHover) {\n ctx.store.resetSelectedOption();\n }\n onMouseOver?.(event);\n }}\n />\n );\n});\n\nComboboxOption.classes = classes;\nComboboxOption.displayName = '@mantine/core/ComboboxOption';\n"],"names":["factory","useProps","useComboboxContext","useId","React","Box","classes"],"mappings":"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"}
@@ -16,6 +16,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
16
16
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
17
 
18
18
  var __defProp = Object.defineProperty;
19
+ var __defProps = Object.defineProperties;
20
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
19
21
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
20
22
  var __hasOwnProp = Object.prototype.hasOwnProperty;
21
23
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -31,6 +33,7 @@ var __spreadValues = (a, b) => {
31
33
  }
32
34
  return a;
33
35
  };
36
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
34
37
  var __objRest = (source, exclude) => {
35
38
  var target = {};
36
39
  for (var prop in source)
@@ -78,12 +81,14 @@ const ComboboxSearch = factory.factory((_props, ref) => {
78
81
  });
79
82
  return /* @__PURE__ */ React__default.createElement(
80
83
  Input.Input,
81
- __spreadValues(__spreadValues({
84
+ __spreadProps(__spreadValues(__spreadValues({
82
85
  ref: hooks.useMergedRef(ref, ctx.store.searchRef),
83
86
  classNames: [{ input: _styles.className }, classNames],
84
87
  styles: [{ input: _styles.style }, styles],
85
88
  size: size || ctx.size
86
- }, targetProps), others)
89
+ }, targetProps), others), {
90
+ __staticSelector: "Combobox"
91
+ })
87
92
  );
88
93
  });
89
94
  ComboboxSearch.classes = Combobox_module['default'];
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxSearch.js","sources":["../../../../src/components/Combobox/ComboboxSearch/ComboboxSearch.tsx"],"sourcesContent":["import React from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { factory, ElementProps, useProps, Factory } from '../../../core';\nimport { Input, InputProps, InputStylesNames } from '../../Input/Input';\nimport { useComboboxContext } from '../Combobox.context';\nimport { useComboboxTargetProps } from '../use-combobox-target-props/use-combobox-target-props';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxSearchStylesNames = InputStylesNames;\n\nexport interface ComboboxSearchProps extends InputProps, ElementProps<'input', 'size'> {\n /** Determines whether the search input should have `aria-` attribute, `true` by default */\n withAriaAttributes?: boolean;\n\n /** Determines whether the search input should handle keyboard navigation, `true` by default */\n withKeyboardNavigation?: boolean;\n}\n\nexport type ComboboxSearchFactory = Factory<{\n props: ComboboxSearchProps;\n ref: HTMLInputElement;\n stylesNames: ComboboxSearchStylesNames;\n}>;\n\nconst defaultProps: Partial<ComboboxSearchProps> = {\n withAriaAttributes: true,\n withKeyboardNavigation: true,\n};\n\nexport const ComboboxSearch = factory<ComboboxSearchFactory>((_props, ref) => {\n const props = useProps('ComboboxSearch', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n vars,\n withAriaAttributes,\n onKeyDown,\n withKeyboardNavigation,\n size,\n ...others\n } = props;\n\n const ctx = useComboboxContext();\n const _styles = ctx.getStyles('search');\n\n const targetProps = useComboboxTargetProps({\n targetType: 'input',\n withAriaAttributes,\n withKeyboardNavigation,\n onKeyDown,\n });\n\n return (\n <Input\n ref={useMergedRef(ref, ctx.store.searchRef)}\n classNames={[{ input: _styles.className }, classNames] as any}\n styles={[{ input: _styles.style }, styles] as any}\n size={size || ctx.size}\n {...targetProps}\n {...others}\n />\n );\n});\n\nComboboxSearch.classes = classes;\nComboboxSearch.displayName = '@mantine/core/ComboboxSearch';\n"],"names":["factory","useProps","useComboboxContext","useComboboxTargetProps","React","Input","useMergedRef","classes"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxSearch.js","sources":["../../../../src/components/Combobox/ComboboxSearch/ComboboxSearch.tsx"],"sourcesContent":["import React from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { factory, ElementProps, useProps, Factory } from '../../../core';\nimport { Input, InputProps, InputStylesNames } from '../../Input/Input';\nimport { useComboboxContext } from '../Combobox.context';\nimport { useComboboxTargetProps } from '../use-combobox-target-props/use-combobox-target-props';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxSearchStylesNames = InputStylesNames;\n\nexport interface ComboboxSearchProps extends InputProps, ElementProps<'input', 'size'> {\n /** Determines whether the search input should have `aria-` attribute, `true` by default */\n withAriaAttributes?: boolean;\n\n /** Determines whether the search input should handle keyboard navigation, `true` by default */\n withKeyboardNavigation?: boolean;\n}\n\nexport type ComboboxSearchFactory = Factory<{\n props: ComboboxSearchProps;\n ref: HTMLInputElement;\n stylesNames: ComboboxSearchStylesNames;\n}>;\n\nconst defaultProps: Partial<ComboboxSearchProps> = {\n withAriaAttributes: true,\n withKeyboardNavigation: true,\n};\n\nexport const ComboboxSearch = factory<ComboboxSearchFactory>((_props, ref) => {\n const props = useProps('ComboboxSearch', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n vars,\n withAriaAttributes,\n onKeyDown,\n withKeyboardNavigation,\n size,\n ...others\n } = props;\n\n const ctx = useComboboxContext();\n const _styles = ctx.getStyles('search');\n\n const targetProps = useComboboxTargetProps({\n targetType: 'input',\n withAriaAttributes,\n withKeyboardNavigation,\n onKeyDown,\n });\n\n return (\n <Input\n ref={useMergedRef(ref, ctx.store.searchRef)}\n classNames={[{ input: _styles.className }, classNames] as any}\n styles={[{ input: _styles.style }, styles] as any}\n size={size || ctx.size}\n {...targetProps}\n {...others}\n __staticSelector=\"Combobox\"\n />\n );\n});\n\nComboboxSearch.classes = classes;\nComboboxSearch.displayName = '@mantine/core/ComboboxSearch';\n"],"names":["factory","useProps","useComboboxContext","useComboboxTargetProps","React","Input","useMergedRef","classes"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var ScrollArea = require('../../ScrollArea/ScrollArea.js');
7
+ var Combobox = require('../Combobox.js');
8
+ var defaultOptionsFilter = require('./default-options-filter.js');
9
+ var isEmptyComboboxData = require('./is-empty-combobox-data.js');
10
+ var isOptionsGroup = require('./is-options-group.js');
11
+ var OptionsDropdown_module = require('./OptionsDropdown.module.css.js');
12
+ var CheckIcon = require('../../Checkbox/CheckIcon.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
+
18
+ function isValueChecked(value, optionValue) {
19
+ return Array.isArray(value) ? value.includes(optionValue) : value === optionValue;
20
+ }
21
+ function Option({ data, withCheckIcon, value, checkIconPosition }) {
22
+ if (!isOptionsGroup.isOptionsGroup(data)) {
23
+ const check = withCheckIcon && isValueChecked(value, data.value) && /* @__PURE__ */ React__default.createElement(CheckIcon.CheckIcon, { className: OptionsDropdown_module['default'].checkIcon });
24
+ return /* @__PURE__ */ React__default.createElement(
25
+ Combobox.Combobox.Option,
26
+ {
27
+ value: data.value,
28
+ disabled: data.disabled,
29
+ className: OptionsDropdown_module['default'].option,
30
+ "data-reverse": checkIconPosition === "right" || void 0,
31
+ "data-checked": isValueChecked(value, data.value) || void 0
32
+ },
33
+ checkIconPosition === "left" && check,
34
+ data.label,
35
+ checkIconPosition === "right" && check
36
+ );
37
+ }
38
+ const options = data.items.map((item) => /* @__PURE__ */ React__default.createElement(Option, { data: item, key: item.value }));
39
+ return /* @__PURE__ */ React__default.createElement(Combobox.Combobox.Group, { label: data.group }, options);
40
+ }
41
+ function OptionsDropdown({
42
+ data,
43
+ hidden,
44
+ hiddenWhenEmpty,
45
+ filter,
46
+ search,
47
+ limit,
48
+ maxDropdownHeight,
49
+ withScrollArea = true,
50
+ filterOptions = true,
51
+ withCheckIcon = false,
52
+ value,
53
+ checkIconPosition,
54
+ nothingFoundMessage
55
+ }) {
56
+ const shouldFilter = typeof search === "string";
57
+ const filteredData = shouldFilter ? (filter || defaultOptionsFilter.defaultOptionsFilter)({
58
+ options: data,
59
+ search: filterOptions ? search : "",
60
+ limit: limit != null ? limit : Infinity
61
+ }) : data;
62
+ const isEmpty = isEmptyComboboxData.isEmptyComboboxData(filteredData);
63
+ const options = filteredData.map((item) => /* @__PURE__ */ React__default.createElement(
64
+ Option,
65
+ {
66
+ data: item,
67
+ key: isOptionsGroup.isOptionsGroup(item) ? item.group : item.value,
68
+ withCheckIcon,
69
+ value,
70
+ checkIconPosition
71
+ }
72
+ ));
73
+ return /* @__PURE__ */ React__default.createElement(Combobox.Combobox.Dropdown, { hidden: hidden || hiddenWhenEmpty && isEmpty }, /* @__PURE__ */ React__default.createElement(Combobox.Combobox.Options, null, withScrollArea ? /* @__PURE__ */ React__default.createElement(
74
+ ScrollArea.ScrollArea.Autosize,
75
+ {
76
+ mah: maxDropdownHeight != null ? maxDropdownHeight : 220,
77
+ type: "scroll",
78
+ scrollbarSize: "var(--combobox-padding)",
79
+ offsetScrollbars: "y",
80
+ className: OptionsDropdown_module['default'].scrollArea
81
+ },
82
+ options
83
+ ) : options, isEmpty && nothingFoundMessage && /* @__PURE__ */ React__default.createElement(Combobox.Combobox.Empty, null, nothingFoundMessage)));
84
+ }
85
+
86
+ exports.OptionsDropdown = OptionsDropdown;
87
+ //# sourceMappingURL=OptionsDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionsDropdown.js","sources":["../../../../src/components/Combobox/OptionsDropdown/OptionsDropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { CheckIcon } from '../../Checkbox';\nimport { Combobox } from '../Combobox';\nimport { ComboboxItem, ComboboxParsedItem } from '../Combobox.types';\nimport { defaultOptionsFilter, FilterOptionsInput } from './default-options-filter';\nimport { isEmptyComboboxData } from './is-empty-combobox-data';\nimport { isOptionsGroup } from './is-options-group';\nimport classes from './OptionsDropdown.module.css';\n\nexport type OptionsFilter = (input: FilterOptionsInput) => ComboboxParsedItem[];\n\nexport interface OptionsGroup {\n group: string;\n items: ComboboxItem[];\n}\n\nexport type OptionsData = (ComboboxItem | OptionsGroup)[];\n\ninterface OptionProps {\n data: ComboboxItem | OptionsGroup;\n withCheckIcon?: boolean;\n value?: string | string[] | null;\n checkIconPosition?: 'left' | 'right';\n}\n\nfunction isValueChecked(value: string | string[] | undefined | null, optionValue: string) {\n return Array.isArray(value) ? value.includes(optionValue) : value === optionValue;\n}\n\nfunction Option({ data, withCheckIcon, value, checkIconPosition }: OptionProps) {\n if (!isOptionsGroup(data)) {\n const check = withCheckIcon && isValueChecked(value, data.value) && (\n <CheckIcon className={classes.checkIcon} />\n );\n return (\n <Combobox.Option\n value={data.value}\n disabled={data.disabled}\n className={classes.option}\n data-reverse={checkIconPosition === 'right' || undefined}\n data-checked={isValueChecked(value, data.value) || undefined}\n >\n {checkIconPosition === 'left' && check}\n {data.label}\n {checkIconPosition === 'right' && check}\n </Combobox.Option>\n );\n }\n\n const options = data.items.map((item) => <Option data={item} key={item.value} />);\n return <Combobox.Group label={data.group}>{options}</Combobox.Group>;\n}\n\nexport interface OptionsDropdownProps {\n data: OptionsData;\n filter: OptionsFilter | undefined;\n search: string | undefined;\n limit: number | undefined;\n withScrollArea: boolean | undefined;\n maxDropdownHeight: number | string | undefined;\n hidden?: boolean;\n hiddenWhenEmpty?: boolean;\n filterOptions?: boolean;\n withCheckIcon?: boolean;\n value?: string | string[] | null;\n checkIconPosition?: 'left' | 'right';\n nothingFoundMessage?: React.ReactNode;\n}\n\nexport function OptionsDropdown({\n data,\n hidden,\n hiddenWhenEmpty,\n filter,\n search,\n limit,\n maxDropdownHeight,\n withScrollArea = true,\n filterOptions = true,\n withCheckIcon = false,\n value,\n checkIconPosition,\n nothingFoundMessage,\n}: OptionsDropdownProps) {\n const shouldFilter = typeof search === 'string';\n const filteredData = shouldFilter\n ? (filter || defaultOptionsFilter)({\n options: data,\n search: filterOptions ? search : '',\n limit: limit ?? Infinity,\n })\n : data;\n const isEmpty = isEmptyComboboxData(filteredData);\n\n const options = filteredData.map((item) => (\n <Option\n data={item}\n key={isOptionsGroup(item) ? item.group : item.value}\n withCheckIcon={withCheckIcon}\n value={value}\n checkIconPosition={checkIconPosition}\n />\n ));\n\n return (\n <Combobox.Dropdown hidden={hidden || (hiddenWhenEmpty && isEmpty)}>\n <Combobox.Options>\n {withScrollArea ? (\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n className={classes.scrollArea}\n >\n {options}\n </ScrollArea.Autosize>\n ) : (\n options\n )}\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n}\n"],"names":["isOptionsGroup","React","CheckIcon","classes","Combobox","defaultOptionsFilter","isEmptyComboboxData","ScrollArea"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var classes = {"scrollArea":"mantine-3T31VvB","option":"mantine-wU7y-u6","checkIcon":"mantine-c9ncf6H"};
6
+
7
+ exports.default = classes;
8
+ //# sourceMappingURL=OptionsDropdown.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionsDropdown.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var isOptionsGroup = require('./is-options-group.js');
6
+
7
+ function defaultOptionsFilter({
8
+ options,
9
+ search,
10
+ limit
11
+ }) {
12
+ const parsedSearch = search.trim().toLowerCase();
13
+ const result = [];
14
+ for (let i = 0; i < options.length; i += 1) {
15
+ const item = options[i];
16
+ if (result.length === limit) {
17
+ return result;
18
+ }
19
+ if (isOptionsGroup.isOptionsGroup(item)) {
20
+ result.push({
21
+ group: item.group,
22
+ items: defaultOptionsFilter({
23
+ options: item.items,
24
+ search,
25
+ limit: limit - result.length
26
+ })
27
+ });
28
+ }
29
+ if (!isOptionsGroup.isOptionsGroup(item)) {
30
+ if (item.label.toLowerCase().includes(parsedSearch)) {
31
+ result.push(item);
32
+ }
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+
38
+ exports.defaultOptionsFilter = defaultOptionsFilter;
39
+ //# sourceMappingURL=default-options-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-options-filter.js","sources":["../../../../src/components/Combobox/OptionsDropdown/default-options-filter.ts"],"sourcesContent":["import { ComboboxItem, ComboboxParsedItem } from '../Combobox.types';\nimport { isOptionsGroup } from './is-options-group';\n\nexport interface FilterOptionsInput {\n options: ComboboxParsedItem[];\n search: string;\n limit: number;\n}\n\nexport function defaultOptionsFilter({\n options,\n search,\n limit,\n}: FilterOptionsInput): ComboboxParsedItem[] {\n const parsedSearch = search.trim().toLowerCase();\n const result: ComboboxParsedItem[] = [];\n\n for (let i = 0; i < options.length; i += 1) {\n const item = options[i];\n\n if (result.length === limit) {\n return result;\n }\n\n if (isOptionsGroup(item)) {\n result.push({\n group: item.group,\n items: defaultOptionsFilter({\n options: item.items,\n search,\n limit: limit - result.length,\n }) as ComboboxItem[],\n });\n }\n\n if (!isOptionsGroup(item)) {\n if (item.label.toLowerCase().includes(parsedSearch)) {\n result.push(item);\n }\n }\n }\n\n return result;\n}\n"],"names":["isOptionsGroup"],"mappings":";;;;;;AACO,SAAS,oBAAoB,CAAC;AACrC,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,KAAK;AACP,CAAC,EAAE;AACH,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnD,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9C,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;AACjC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAIA,6BAAc,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;AAClB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;AACzB,QAAQ,KAAK,EAAE,oBAAoB,CAAC;AACpC,UAAU,OAAO,EAAE,IAAI,CAAC,KAAK;AAC7B,UAAU,MAAM;AAChB,UAAU,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM;AACtC,SAAS,CAAC;AACV,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,IAAI,CAACA,6BAAc,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC3D,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function isEmptyComboboxData(data) {
6
+ if (data.length === 0) {
7
+ return true;
8
+ }
9
+ for (const item of data) {
10
+ if (!("group" in item)) {
11
+ return false;
12
+ }
13
+ if (item.items.length > 0) {
14
+ return false;
15
+ }
16
+ }
17
+ return true;
18
+ }
19
+
20
+ exports.isEmptyComboboxData = isEmptyComboboxData;
21
+ //# sourceMappingURL=is-empty-combobox-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-empty-combobox-data.js","sources":["../../../../src/components/Combobox/OptionsDropdown/is-empty-combobox-data.ts"],"sourcesContent":["import { ComboboxParsedItem, ComboboxParsedItemGroup } from '../Combobox.types';\n\nexport function isEmptyComboboxData(data: ComboboxParsedItem[]) {\n if (data.length === 0) {\n return true;\n }\n\n for (const item of data) {\n if (!('group' in item)) {\n return false;\n }\n\n if ((item as ComboboxParsedItemGroup).items.length > 0) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AAC3B,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,EAAE;AAC5B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function isOptionsGroup(item) {
6
+ return "group" in item;
7
+ }
8
+
9
+ exports.isOptionsGroup = isOptionsGroup;
10
+ //# sourceMappingURL=is-options-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-options-group.js","sources":["../../../../src/components/Combobox/OptionsDropdown/is-options-group.ts"],"sourcesContent":["import { ComboboxParsedItem, ComboboxParsedItemGroup } from '../Combobox.types';\n\nexport function isOptionsGroup(item: ComboboxParsedItem): item is ComboboxParsedItemGroup {\n return 'group' in item;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,cAAc,CAAC,IAAI,EAAE;AACrC,EAAE,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB;;;;"}
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ function getOptionsLockup(options) {
22
+ return options.reduce((acc, item) => {
23
+ if ("group" in item) {
24
+ return __spreadValues(__spreadValues({}, acc), getOptionsLockup(item.items));
25
+ }
26
+ acc[item.value] = item;
27
+ return acc;
28
+ }, {});
29
+ }
30
+ function getLabelsLockup(options) {
31
+ return options.reduce((acc, item) => {
32
+ if ("group" in item) {
33
+ return __spreadValues(__spreadValues({}, acc), getLabelsLockup(item.items));
34
+ }
35
+ acc[item.label] = item;
36
+ return acc;
37
+ }, {});
38
+ }
39
+
40
+ exports.getLabelsLockup = getLabelsLockup;
41
+ exports.getOptionsLockup = getOptionsLockup;
42
+ //# sourceMappingURL=get-options-lockup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-options-lockup.js","sources":["../../../../src/components/Combobox/get-options-lockup/get-options-lockup.ts"],"sourcesContent":["import { ComboboxParsedItem, ComboboxItem } from '../Combobox.types';\n\nexport function getOptionsLockup(options: ComboboxParsedItem[]): Record<string, ComboboxItem> {\n return options.reduce<Record<string, ComboboxItem>>((acc, item) => {\n if ('group' in item) {\n return { ...acc, ...getOptionsLockup(item.items) };\n }\n\n acc[(item as any).value] = item;\n\n return acc;\n }, {});\n}\n\nexport function getLabelsLockup(options: ComboboxParsedItem[]): Record<string, string> {\n return options.reduce<Record<string, string>>((acc, item) => {\n if ('group' in item) {\n return { ...acc, ...getLabelsLockup(item.items) };\n }\n\n acc[(item as any).label] = item as any;\n\n return acc;\n }, {});\n}\n"],"names":[],"mappings":";;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACK,SAAS,gBAAgB,CAAC,OAAO,EAAE;AAC1C,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACvC,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE;AACzB,MAAM,OAAO,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3B,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AACM,SAAS,eAAe,CAAC,OAAO,EAAE;AACzC,EAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACvC,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE;AACzB,MAAM,OAAO,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3B,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,EAAE,CAAC,CAAC;AACT;;;;;"}
@@ -9,7 +9,7 @@ function parseItem(item) {
9
9
  if ("group" in item) {
10
10
  return {
11
11
  group: item.group,
12
- items: item.items.map(parseItem)
12
+ items: item.items.map((i) => parseItem(i))
13
13
  };
14
14
  }
15
15
  return item;
@@ -1 +1 @@
1
- {"version":3,"file":"get-parsed-combobox-data.js","sources":["../../../../src/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.ts"],"sourcesContent":["import {\n ComboboxData,\n ComboboxParsedItem,\n ComboboxItem,\n ComboboxItemGroup,\n ComboboxParsedItemGroup,\n} from '../Combobox.types';\n\nfunction parseItem(\n item: string | ComboboxItem | ComboboxItemGroup\n): ComboboxItem | ComboboxParsedItemGroup {\n if (typeof item === 'string') {\n return { value: item, label: item };\n }\n\n if ('group' in item) {\n return {\n group: item.group,\n items: item.items.map(parseItem),\n };\n }\n\n return item;\n}\n\nexport function getParsedComboboxData(data: ComboboxData | undefined): ComboboxParsedItem[] {\n if (!data) {\n return [];\n }\n\n return data.map(parseItem);\n}\n"],"names":[],"mappings":";;;;AAAA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;AACvB,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACtC,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACM,SAAS,qBAAqB,CAAC,IAAI,EAAE;AAC5C,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC7B;;;;"}
1
+ {"version":3,"file":"get-parsed-combobox-data.js","sources":["../../../../src/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.ts"],"sourcesContent":["import {\n ComboboxData,\n ComboboxParsedItem,\n ComboboxItem,\n ComboboxItemGroup,\n ComboboxParsedItemGroup,\n} from '../Combobox.types';\n\nfunction parseItem(\n item: string | ComboboxItem | ComboboxItemGroup\n): ComboboxItem | ComboboxParsedItemGroup {\n if (typeof item === 'string') {\n return { value: item, label: item };\n }\n\n if ('group' in item) {\n return {\n group: item.group,\n items: item.items.map((i) => parseItem(i) as ComboboxItem),\n };\n }\n\n return item;\n}\n\nexport function getParsedComboboxData(data: ComboboxData | undefined): ComboboxParsedItem[] {\n if (!data) {\n return [];\n }\n\n return data.map(parseItem);\n}\n"],"names":[],"mappings":";;;;AAAA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxC,GAAG;AACH,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;AACvB,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK;AACvB,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACM,SAAS,qBAAqB,CAAC,IAAI,EAAE;AAC5C,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC7B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-combobox.js","sources":["../../../../src/components/Combobox/use-combobox/use-combobox.ts"],"sourcesContent":["import { useEffect, useRef, useCallback } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { getPreviousIndex, getNextIndex, getFirstIndex } from './get-index/get-index';\n\nexport type ComboboxDropdownEventSource = 'keyboard' | 'mouse' | 'unknown';\n\nexport interface ComboboxStore {\n dropdownOpened: boolean;\n openDropdown(eventSource?: ComboboxDropdownEventSource): void;\n closeDropdown(eventSource?: ComboboxDropdownEventSource): void;\n toggleDropdown(eventSource?: ComboboxDropdownEventSource): void;\n\n selectedOptionIndex: number;\n selectOption(index: number): void;\n selectActiveOption(): string | null;\n selectFirstOption(): string | null;\n selectNextOption(): string | null;\n selectPreviousOption(): string | null;\n resetSelectedOption(): void;\n clickSelectedOption(): void;\n updateSelectedOptionIndex(target?: 'active' | 'selected'): void;\n\n listId: string | null;\n setListId(id: string): void;\n\n searchRef: React.MutableRefObject<HTMLInputElement | null>;\n focusSearchInput(): void;\n\n targetRef: React.MutableRefObject<HTMLElement | null>;\n focusTarget(): void;\n}\n\ninterface UseComboboxOptions {\n /** Default value for `dropdownOpened`, `false` by default */\n defaultOpened?: boolean;\n\n /** Controlled `dropdownOpened` state */\n opened?: boolean;\n\n /** Called when `dropdownOpened` state changes */\n onOpenedChange?(opened: boolean): void;\n\n /** Called when dropdown closes with event source: keyboard, mouse or unknown */\n onDropdownClose?(eventSource: ComboboxDropdownEventSource): void;\n\n /** Called when dropdown opens with event source: keyboard, mouse or unknown */\n onDropdownOpen?(eventSource: ComboboxDropdownEventSource): void;\n\n /** Determines whether arrow key presses should loop though items (first to last and last to first), `true` by default */\n loop?: boolean;\n\n /** `behavior` passed down to `element.scrollIntoView`, `'instant'` by default */\n scrollBehavior?: ScrollBehavior;\n}\n\nexport function useCombobox({\n defaultOpened,\n opened,\n onOpenedChange,\n onDropdownClose,\n onDropdownOpen,\n loop = true,\n scrollBehavior = 'instant',\n}: UseComboboxOptions = {}): ComboboxStore {\n const [dropdownOpened, setDropdownOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const listId = useRef<string | null>(null);\n const selectedOptionIndex = useRef<number>(-1);\n const searchRef = useRef<HTMLInputElement | null>(null);\n const targetRef = useRef<HTMLElement | null>(null);\n const focusSearchTimeout = useRef<number>(-1);\n const focusTargetTimeout = useRef<number>(-1);\n const selectedIndexUpdateTimeout = useRef<number>(-1);\n\n const openDropdown: ComboboxStore['openDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (!dropdownOpened) {\n setDropdownOpened(true);\n onDropdownOpen?.(eventSource);\n }\n },\n [setDropdownOpened, onDropdownOpen, dropdownOpened]\n );\n\n const closeDropdown: ComboboxStore['closeDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (dropdownOpened) {\n setDropdownOpened(false);\n onDropdownClose?.(eventSource);\n }\n },\n [setDropdownOpened, onDropdownClose, dropdownOpened]\n );\n\n const toggleDropdown: ComboboxStore['toggleDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (dropdownOpened) {\n closeDropdown(eventSource);\n } else {\n openDropdown(eventSource);\n }\n },\n [closeDropdown, openDropdown, dropdownOpened]\n );\n\n const clearSelectedItem = useCallback(() => {\n const selected = document.querySelector(`#${listId.current} [data-combobox-selected]`);\n selected?.removeAttribute('data-combobox-selected');\n selected?.removeAttribute('aria-selected');\n }, []);\n\n const selectOption = useCallback(\n (index: number) => {\n const list = document.getElementById(listId.current!);\n const items = list?.querySelectorAll('[data-combobox-option]');\n\n if (!items) {\n return null;\n }\n\n const nextIndex = index >= items!.length ? 0 : index < 0 ? items!.length - 1 : index;\n selectedOptionIndex.current = nextIndex;\n\n if (items?.[nextIndex] && !items[nextIndex].hasAttribute('data-combobox-disabled')) {\n clearSelectedItem();\n items[nextIndex].setAttribute('data-combobox-selected', 'true');\n items[nextIndex].setAttribute('aria-selected', 'true');\n items[nextIndex].scrollIntoView({ block: 'nearest', behavior: scrollBehavior });\n return items[nextIndex].id;\n }\n\n return null;\n },\n [scrollBehavior, clearSelectedItem]\n );\n\n const selectActiveOption = useCallback(() => {\n const activeOption = document.querySelector<HTMLDivElement>(\n `#${listId.current} [data-combobox-active]`\n );\n\n if (activeOption) {\n const items = document.querySelectorAll<HTMLDivElement>(\n `#${listId.current} [data-combobox-option]`\n );\n const index = Array.from(items).findIndex((option) => option === activeOption);\n return selectOption(index);\n }\n\n return selectOption(0);\n }, [selectOption]);\n\n const selectNextOption = useCallback(\n () =>\n selectOption(\n getNextIndex(\n selectedOptionIndex.current,\n document.querySelectorAll<HTMLDivElement>(`#${listId.current} [data-combobox-option]`),\n loop\n )\n ),\n [selectOption, loop]\n );\n\n const selectPreviousOption = useCallback(\n () =>\n selectOption(\n getPreviousIndex(\n selectedOptionIndex.current,\n document.querySelectorAll<HTMLDivElement>(`#${listId.current} [data-combobox-option]`),\n loop\n )\n ),\n [selectOption, loop]\n );\n\n const selectFirstOption = useCallback(\n () =>\n selectOption(\n getFirstIndex(\n document.querySelectorAll<HTMLDivElement>(`#${listId.current} [data-combobox-option]`)\n )\n ),\n [selectOption]\n );\n\n const updateSelectedOptionIndex = useCallback((target: 'active' | 'selected' = 'selected') => {\n selectedIndexUpdateTimeout.current = window.setTimeout(() => {\n const items = document.querySelectorAll<HTMLDivElement>(\n `#${listId.current} [data-combobox-option]`\n );\n const index = Array.from(items).findIndex((option) =>\n option.hasAttribute(`data-combobox-${target}`)\n );\n selectedOptionIndex.current = index;\n }, 0);\n }, []);\n\n const resetSelectedOption = useCallback(() => {\n selectedOptionIndex.current = -1;\n clearSelectedItem();\n }, [clearSelectedItem]);\n\n const clickSelectedOption = useCallback(() => {\n const items = document.querySelectorAll<HTMLDivElement>(\n `#${listId.current} [data-combobox-option]`\n );\n const item = items?.[selectedOptionIndex.current];\n item?.click();\n }, []);\n\n const setListId = useCallback((id: string) => {\n listId.current = id;\n }, []);\n\n const focusSearchInput = useCallback(() => {\n focusSearchTimeout.current = window.setTimeout(() => searchRef.current!.focus(), 0);\n }, []);\n\n const focusTarget = useCallback(() => {\n focusTargetTimeout.current = window.setTimeout(() => targetRef.current!.focus(), 0);\n }, []);\n\n useEffect(\n () => () => {\n window.clearTimeout(focusSearchTimeout.current);\n window.clearTimeout(focusTargetTimeout.current);\n window.clearTimeout(selectedIndexUpdateTimeout.current);\n },\n []\n );\n\n return {\n dropdownOpened,\n openDropdown,\n closeDropdown,\n toggleDropdown,\n\n selectedOptionIndex: selectedOptionIndex.current,\n selectOption,\n selectFirstOption,\n selectActiveOption,\n selectNextOption,\n selectPreviousOption,\n resetSelectedOption,\n updateSelectedOptionIndex,\n\n listId: listId.current,\n setListId,\n clickSelectedOption,\n\n searchRef,\n focusSearchInput,\n\n targetRef,\n focusTarget,\n };\n}\n"],"names":["useUncontrolled","useRef","useCallback","getNextIndex","getPreviousIndex","getFirstIndex","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-combobox.js","sources":["../../../../src/components/Combobox/use-combobox/use-combobox.ts"],"sourcesContent":["import { useEffect, useRef, useCallback } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { getPreviousIndex, getNextIndex, getFirstIndex } from './get-index/get-index';\n\nexport type ComboboxDropdownEventSource = 'keyboard' | 'mouse' | 'unknown';\n\nexport interface ComboboxStore {\n /** Current dropdown opened state */\n dropdownOpened: boolean;\n\n /** Opens dropdown */\n openDropdown(eventSource?: ComboboxDropdownEventSource): void;\n\n /** Closes dropdown */\n closeDropdown(eventSource?: ComboboxDropdownEventSource): void;\n\n /** Toggles dropdown opened state */\n toggleDropdown(eventSource?: ComboboxDropdownEventSource): void;\n\n /** Selected option index */\n selectedOptionIndex: number;\n\n /** Selects `Combobox.Option` by index */\n selectOption(index: number): void;\n\n /** Selects first `Combobox.Option` with `active` prop.\n * If there are no such options, the function does nothing.\n */\n selectActiveOption(): string | null;\n\n /** Selects first `Combobox.Option` that is not disabled.\n * If there are no such options, the function does nothing.\n * */\n selectFirstOption(): string | null;\n\n /** Selects next `Combobox.Option` that is not disabled.\n * If the current option is the last one, the function selects first option, if `loop` is true.\n */\n selectNextOption(): string | null;\n\n /** Selects previous `Combobox.Option` that is not disabled.\n * If the current option is the first one, the function selects last option, if `loop` is true.\n * */\n selectPreviousOption(): string | null;\n\n /** Resets selected option index to -1, removes `data-combobox-selected` from selected option */\n resetSelectedOption(): void;\n\n /** Triggers `onClick` event of selected option.\n * If there is no selected option, the function does nothing.\n */\n clickSelectedOption(): void;\n\n /** Updates selected option index to currently selected or active option.\n * The function is required to be used with searchable components to update selected option index\n * when options list changes based on search query.\n */\n updateSelectedOptionIndex(target?: 'active' | 'selected'): void;\n\n /** List id, used for `aria-*` attributes */\n listId: string | null;\n\n /** Sets list id */\n setListId(id: string): void;\n\n /** Ref of `Combobox.Search` input */\n searchRef: React.MutableRefObject<HTMLInputElement | null>;\n\n /** Moves focus to `Combobox.Search` input */\n focusSearchInput(): void;\n\n /** Ref of the target element */\n targetRef: React.MutableRefObject<HTMLElement | null>;\n\n /** Moves focus to the target element */\n focusTarget(): void;\n}\n\nexport interface UseComboboxOptions {\n /** Default value for `dropdownOpened`, `false` by default */\n defaultOpened?: boolean;\n\n /** Controlled `dropdownOpened` state */\n opened?: boolean;\n\n /** Called when `dropdownOpened` state changes */\n onOpenedChange?(opened: boolean): void;\n\n /** Called when dropdown closes with event source: keyboard, mouse or unknown */\n onDropdownClose?(eventSource: ComboboxDropdownEventSource): void;\n\n /** Called when dropdown opens with event source: keyboard, mouse or unknown */\n onDropdownOpen?(eventSource: ComboboxDropdownEventSource): void;\n\n /** Determines whether arrow key presses should loop though items (first to last and last to first), `true` by default */\n loop?: boolean;\n\n /** `behavior` passed down to `element.scrollIntoView`, `'instant'` by default */\n scrollBehavior?: ScrollBehavior;\n}\n\nexport function useCombobox({\n defaultOpened,\n opened,\n onOpenedChange,\n onDropdownClose,\n onDropdownOpen,\n loop = true,\n scrollBehavior = 'instant',\n}: UseComboboxOptions = {}): ComboboxStore {\n const [dropdownOpened, setDropdownOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const listId = useRef<string | null>(null);\n const selectedOptionIndex = useRef<number>(-1);\n const searchRef = useRef<HTMLInputElement | null>(null);\n const targetRef = useRef<HTMLElement | null>(null);\n const focusSearchTimeout = useRef<number>(-1);\n const focusTargetTimeout = useRef<number>(-1);\n const selectedIndexUpdateTimeout = useRef<number>(-1);\n\n const openDropdown: ComboboxStore['openDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (!dropdownOpened) {\n setDropdownOpened(true);\n onDropdownOpen?.(eventSource);\n }\n },\n [setDropdownOpened, onDropdownOpen, dropdownOpened]\n );\n\n const closeDropdown: ComboboxStore['closeDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (dropdownOpened) {\n setDropdownOpened(false);\n onDropdownClose?.(eventSource);\n }\n },\n [setDropdownOpened, onDropdownClose, dropdownOpened]\n );\n\n const toggleDropdown: ComboboxStore['toggleDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (dropdownOpened) {\n closeDropdown(eventSource);\n } else {\n openDropdown(eventSource);\n }\n },\n [closeDropdown, openDropdown, dropdownOpened]\n );\n\n const clearSelectedItem = useCallback(() => {\n const selected = document.querySelector(`#${listId.current} [data-combobox-selected]`);\n selected?.removeAttribute('data-combobox-selected');\n selected?.removeAttribute('aria-selected');\n }, []);\n\n const selectOption = useCallback(\n (index: number) => {\n const list = document.getElementById(listId.current!);\n const items = list?.querySelectorAll('[data-combobox-option]');\n\n if (!items) {\n return null;\n }\n\n const nextIndex = index >= items!.length ? 0 : index < 0 ? items!.length - 1 : index;\n selectedOptionIndex.current = nextIndex;\n\n if (items?.[nextIndex] && !items[nextIndex].hasAttribute('data-combobox-disabled')) {\n clearSelectedItem();\n items[nextIndex].setAttribute('data-combobox-selected', 'true');\n items[nextIndex].setAttribute('aria-selected', 'true');\n items[nextIndex].scrollIntoView({ block: 'nearest', behavior: scrollBehavior });\n return items[nextIndex].id;\n }\n\n return null;\n },\n [scrollBehavior, clearSelectedItem]\n );\n\n const selectActiveOption = useCallback(() => {\n const activeOption = document.querySelector<HTMLDivElement>(\n `#${listId.current} [data-combobox-active]`\n );\n\n if (activeOption) {\n const items = document.querySelectorAll<HTMLDivElement>(\n `#${listId.current} [data-combobox-option]`\n );\n const index = Array.from(items).findIndex((option) => option === activeOption);\n return selectOption(index);\n }\n\n return selectOption(0);\n }, [selectOption]);\n\n const selectNextOption = useCallback(\n () =>\n selectOption(\n getNextIndex(\n selectedOptionIndex.current,\n document.querySelectorAll<HTMLDivElement>(`#${listId.current} [data-combobox-option]`),\n loop\n )\n ),\n [selectOption, loop]\n );\n\n const selectPreviousOption = useCallback(\n () =>\n selectOption(\n getPreviousIndex(\n selectedOptionIndex.current,\n document.querySelectorAll<HTMLDivElement>(`#${listId.current} [data-combobox-option]`),\n loop\n )\n ),\n [selectOption, loop]\n );\n\n const selectFirstOption = useCallback(\n () =>\n selectOption(\n getFirstIndex(\n document.querySelectorAll<HTMLDivElement>(`#${listId.current} [data-combobox-option]`)\n )\n ),\n [selectOption]\n );\n\n const updateSelectedOptionIndex = useCallback((target: 'active' | 'selected' = 'selected') => {\n selectedIndexUpdateTimeout.current = window.setTimeout(() => {\n const items = document.querySelectorAll<HTMLDivElement>(\n `#${listId.current} [data-combobox-option]`\n );\n const index = Array.from(items).findIndex((option) =>\n option.hasAttribute(`data-combobox-${target}`)\n );\n selectedOptionIndex.current = index;\n }, 0);\n }, []);\n\n const resetSelectedOption = useCallback(() => {\n selectedOptionIndex.current = -1;\n clearSelectedItem();\n }, [clearSelectedItem]);\n\n const clickSelectedOption = useCallback(() => {\n const items = document.querySelectorAll<HTMLDivElement>(\n `#${listId.current} [data-combobox-option]`\n );\n const item = items?.[selectedOptionIndex.current];\n item?.click();\n }, []);\n\n const setListId = useCallback((id: string) => {\n listId.current = id;\n }, []);\n\n const focusSearchInput = useCallback(() => {\n focusSearchTimeout.current = window.setTimeout(() => searchRef.current!.focus(), 0);\n }, []);\n\n const focusTarget = useCallback(() => {\n focusTargetTimeout.current = window.setTimeout(() => targetRef.current!.focus(), 0);\n }, []);\n\n useEffect(\n () => () => {\n window.clearTimeout(focusSearchTimeout.current);\n window.clearTimeout(focusTargetTimeout.current);\n window.clearTimeout(selectedIndexUpdateTimeout.current);\n },\n []\n );\n\n return {\n dropdownOpened,\n openDropdown,\n closeDropdown,\n toggleDropdown,\n\n selectedOptionIndex: selectedOptionIndex.current,\n selectOption,\n selectFirstOption,\n selectActiveOption,\n selectNextOption,\n selectPreviousOption,\n resetSelectedOption,\n updateSelectedOptionIndex,\n\n listId: listId.current,\n setListId,\n clickSelectedOption,\n\n searchRef,\n focusSearchInput,\n\n targetRef,\n focusTarget,\n };\n}\n"],"names":["useUncontrolled","useRef","useCallback","getNextIndex","getPreviousIndex","getFirstIndex","useEffect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-virtualized-combobox.js","sources":["../../../../src/components/Combobox/use-combobox/use-virtualized-combobox.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { getPreviousIndex, getNextIndex, getFirstIndex } from './get-index/get-virtualized-index';\nimport { ComboboxStore } from './use-combobox';\n\ninterface UseComboboxOptions {\n /** Default value for `dropdownOpened`, `false` by default */\n defaultOpened?: boolean;\n\n /** Controlled `dropdownOpened` state */\n opened?: boolean;\n\n /** Called when `dropdownOpened` state changes */\n onOpenedChange?(opened: boolean): void;\n\n /** Called when dropdown closes */\n onDropdownClose?(): void;\n\n /** Called when dropdown opens */\n onDropdownOpen?(): void;\n\n /** Determines whether arrow key presses should loop though items (first to last and last to first), `true` by default */\n loop?: boolean;\n\n /** Function to determine whether the option is disabled */\n isOptionDisabled?(optionIndex: number): boolean;\n\n totalOptionsCount: number;\n\n getOptionId(index: number): string | null;\n\n selectedOptionIndex: number;\n\n setSelectedOptionIndex(index: number): void;\n\n activeOptionIndex?: number;\n\n onSelectedOptionSubmit(index: number): void;\n}\n\nexport function useVirtualizedCombobox(\n {\n defaultOpened,\n opened,\n onOpenedChange,\n onDropdownClose,\n onDropdownOpen,\n loop = true,\n totalOptionsCount,\n isOptionDisabled = () => false,\n getOptionId,\n selectedOptionIndex,\n setSelectedOptionIndex,\n activeOptionIndex,\n onSelectedOptionSubmit,\n }: UseComboboxOptions = {\n totalOptionsCount: 0,\n getOptionId: () => null,\n selectedOptionIndex: 1,\n setSelectedOptionIndex: () => {},\n onSelectedOptionSubmit: () => {},\n }\n): ComboboxStore {\n const [dropdownOpened, setDropdownOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const listId = useRef<string | null>(null);\n const searchRef = useRef<HTMLInputElement | null>(null);\n const targetRef = useRef<HTMLElement | null>(null);\n const focusSearchTimeout = useRef<number>(-1);\n const focusTargetTimeout = useRef<number>(-1);\n\n const openDropdown = () => {\n if (!dropdownOpened) {\n setDropdownOpened(true);\n onDropdownOpen?.();\n }\n };\n\n const closeDropdown = () => {\n if (dropdownOpened) {\n setDropdownOpened(false);\n onDropdownClose?.();\n }\n };\n\n const toggleDropdown = () => {\n if (dropdownOpened) {\n closeDropdown();\n } else {\n openDropdown();\n }\n };\n\n const selectOption = (index: number) => {\n const nextIndex = index >= totalOptionsCount ? 0 : index < 0 ? totalOptionsCount - 1 : index;\n setSelectedOptionIndex(nextIndex);\n return getOptionId(nextIndex);\n };\n\n const selectActiveOption = () => selectOption(activeOptionIndex ?? 0);\n\n const selectNextOption = () =>\n selectOption(\n getNextIndex({ currentIndex: selectedOptionIndex, isOptionDisabled, totalOptionsCount, loop })\n );\n\n const selectPreviousOption = () =>\n selectOption(\n getPreviousIndex({\n currentIndex: selectedOptionIndex,\n isOptionDisabled,\n totalOptionsCount,\n loop,\n })\n );\n\n const selectFirstOption = () =>\n selectOption(getFirstIndex({ isOptionDisabled, totalOptionsCount }));\n\n const resetSelectedOption = () => {\n setSelectedOptionIndex(-1);\n };\n\n const clickSelectedOption = () => {\n onSelectedOptionSubmit?.(selectedOptionIndex);\n };\n\n const setListId = (id: string) => {\n listId.current = id;\n };\n\n const focusSearchInput = () => {\n focusSearchTimeout.current = window.setTimeout(() => searchRef.current!.focus(), 0);\n };\n\n const focusTarget = () => {\n focusTargetTimeout.current = window.setTimeout(() => targetRef.current!.focus(), 0);\n };\n\n useEffect(\n () => () => {\n window.clearTimeout(focusSearchTimeout.current);\n window.clearTimeout(focusTargetTimeout.current);\n },\n []\n );\n\n return {\n dropdownOpened,\n openDropdown,\n closeDropdown,\n toggleDropdown,\n\n selectedOptionIndex,\n selectOption,\n selectFirstOption,\n selectActiveOption,\n selectNextOption,\n selectPreviousOption,\n resetSelectedOption,\n updateSelectedOptionIndex: () => {},\n\n listId: listId.current,\n setListId,\n clickSelectedOption,\n\n searchRef,\n focusSearchInput,\n\n targetRef,\n focusTarget,\n };\n}\n"],"names":["useUncontrolled","useRef","getNextIndex","getPreviousIndex","getFirstIndex","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-virtualized-combobox.js","sources":["../../../../src/components/Combobox/use-combobox/use-virtualized-combobox.ts"],"sourcesContent":["// WIP, not planned to be released in 7.0, maybe in 7.x\nimport { useEffect, useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { getPreviousIndex, getNextIndex, getFirstIndex } from './get-index/get-virtualized-index';\nimport { ComboboxStore } from './use-combobox';\n\ninterface UseComboboxOptions {\n /** Default value for `dropdownOpened`, `false` by default */\n defaultOpened?: boolean;\n\n /** Controlled `dropdownOpened` state */\n opened?: boolean;\n\n /** Called when `dropdownOpened` state changes */\n onOpenedChange?(opened: boolean): void;\n\n /** Called when dropdown closes */\n onDropdownClose?(): void;\n\n /** Called when dropdown opens */\n onDropdownOpen?(): void;\n\n /** Determines whether arrow key presses should loop though items (first to last and last to first), `true` by default */\n loop?: boolean;\n\n /** Function to determine whether the option is disabled */\n isOptionDisabled?(optionIndex: number): boolean;\n\n totalOptionsCount: number;\n\n getOptionId(index: number): string | null;\n\n selectedOptionIndex: number;\n\n setSelectedOptionIndex(index: number): void;\n\n activeOptionIndex?: number;\n\n onSelectedOptionSubmit(index: number): void;\n}\n\nexport function useVirtualizedCombobox(\n {\n defaultOpened,\n opened,\n onOpenedChange,\n onDropdownClose,\n onDropdownOpen,\n loop = true,\n totalOptionsCount,\n isOptionDisabled = () => false,\n getOptionId,\n selectedOptionIndex,\n setSelectedOptionIndex,\n activeOptionIndex,\n onSelectedOptionSubmit,\n }: UseComboboxOptions = {\n totalOptionsCount: 0,\n getOptionId: () => null,\n selectedOptionIndex: 1,\n setSelectedOptionIndex: () => {},\n onSelectedOptionSubmit: () => {},\n }\n): ComboboxStore {\n const [dropdownOpened, setDropdownOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const listId = useRef<string | null>(null);\n const searchRef = useRef<HTMLInputElement | null>(null);\n const targetRef = useRef<HTMLElement | null>(null);\n const focusSearchTimeout = useRef<number>(-1);\n const focusTargetTimeout = useRef<number>(-1);\n\n const openDropdown = () => {\n if (!dropdownOpened) {\n setDropdownOpened(true);\n onDropdownOpen?.();\n }\n };\n\n const closeDropdown = () => {\n if (dropdownOpened) {\n setDropdownOpened(false);\n onDropdownClose?.();\n }\n };\n\n const toggleDropdown = () => {\n if (dropdownOpened) {\n closeDropdown();\n } else {\n openDropdown();\n }\n };\n\n const selectOption = (index: number) => {\n const nextIndex = index >= totalOptionsCount ? 0 : index < 0 ? totalOptionsCount - 1 : index;\n setSelectedOptionIndex(nextIndex);\n return getOptionId(nextIndex);\n };\n\n const selectActiveOption = () => selectOption(activeOptionIndex ?? 0);\n\n const selectNextOption = () =>\n selectOption(\n getNextIndex({ currentIndex: selectedOptionIndex, isOptionDisabled, totalOptionsCount, loop })\n );\n\n const selectPreviousOption = () =>\n selectOption(\n getPreviousIndex({\n currentIndex: selectedOptionIndex,\n isOptionDisabled,\n totalOptionsCount,\n loop,\n })\n );\n\n const selectFirstOption = () =>\n selectOption(getFirstIndex({ isOptionDisabled, totalOptionsCount }));\n\n const resetSelectedOption = () => {\n setSelectedOptionIndex(-1);\n };\n\n const clickSelectedOption = () => {\n onSelectedOptionSubmit?.(selectedOptionIndex);\n };\n\n const setListId = (id: string) => {\n listId.current = id;\n };\n\n const focusSearchInput = () => {\n focusSearchTimeout.current = window.setTimeout(() => searchRef.current!.focus(), 0);\n };\n\n const focusTarget = () => {\n focusTargetTimeout.current = window.setTimeout(() => targetRef.current!.focus(), 0);\n };\n\n useEffect(\n () => () => {\n window.clearTimeout(focusSearchTimeout.current);\n window.clearTimeout(focusTargetTimeout.current);\n },\n []\n );\n\n return {\n dropdownOpened,\n openDropdown,\n closeDropdown,\n toggleDropdown,\n\n selectedOptionIndex,\n selectOption,\n selectFirstOption,\n selectActiveOption,\n selectNextOption,\n selectPreviousOption,\n resetSelectedOption,\n updateSelectedOptionIndex: () => {},\n\n listId: listId.current,\n setListId,\n clickSelectedOption,\n\n searchRef,\n focusSearchInput,\n\n targetRef,\n focusTarget,\n };\n}\n"],"names":["useUncontrolled","useRef","getNextIndex","getPreviousIndex","getFirstIndex","useEffect"],"mappings":"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"}