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

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 (246) hide show
  1. package/cjs/components/Accordion/Accordion.context.js +13 -0
  2. package/cjs/components/Accordion/Accordion.context.js.map +1 -0
  3. package/cjs/components/Accordion/Accordion.js +182 -0
  4. package/cjs/components/Accordion/Accordion.js.map +1 -0
  5. package/cjs/components/Accordion/Accordion.module.css.js +8 -0
  6. package/cjs/components/Accordion/Accordion.module.css.js.map +1 -0
  7. package/cjs/components/Accordion/AccordionChevron.js +67 -0
  8. package/cjs/components/Accordion/AccordionChevron.js.map +1 -0
  9. package/cjs/components/Accordion/AccordionControl/AccordionControl.js +134 -0
  10. package/cjs/components/Accordion/AccordionControl/AccordionControl.js.map +1 -0
  11. package/cjs/components/Accordion/AccordionItem/AccordionItem.js +65 -0
  12. package/cjs/components/Accordion/AccordionItem/AccordionItem.js.map +1 -0
  13. package/cjs/components/Accordion/AccordionItem.context.js +11 -0
  14. package/cjs/components/Accordion/AccordionItem.context.js.map +1 -0
  15. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.js +75 -0
  16. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.js.map +1 -0
  17. package/cjs/components/ActionIcon/ActionIcon.js +1 -1
  18. package/cjs/components/ActionIcon/ActionIcon.js.map +1 -1
  19. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.js +1 -1
  20. package/cjs/components/Center/Center.js +1 -1
  21. package/cjs/components/Center/Center.js.map +1 -1
  22. package/cjs/components/Checkbox/CheckIcon.js +24 -12
  23. package/cjs/components/Checkbox/CheckIcon.js.map +1 -1
  24. package/cjs/components/Combobox/Combobox.context.js +13 -0
  25. package/cjs/components/Combobox/Combobox.context.js.map +1 -0
  26. package/cjs/components/Combobox/Combobox.js +143 -0
  27. package/cjs/components/Combobox/Combobox.js.map +1 -0
  28. package/cjs/components/Combobox/Combobox.module.css.js +8 -0
  29. package/cjs/components/Combobox/Combobox.module.css.js.map +1 -0
  30. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.js +39 -19
  31. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.js.map +1 -1
  32. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.js +70 -0
  33. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.js.map +1 -0
  34. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.js +63 -0
  35. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -0
  36. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.js +63 -0
  37. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.js.map +1 -0
  38. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.js +63 -0
  39. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.js.map +1 -0
  40. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.js +119 -0
  41. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.js.map +1 -0
  42. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.js +75 -0
  43. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.js.map +1 -0
  44. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.js +93 -0
  45. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.js.map +1 -0
  46. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.js +72 -0
  47. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.js.map +1 -0
  48. package/cjs/components/Combobox/use-combobox/get-index/get-index.js +47 -0
  49. package/cjs/components/Combobox/use-combobox/get-index/get-index.js.map +1 -0
  50. package/cjs/components/Combobox/use-combobox/get-index/get-virtualized-index.js +57 -0
  51. package/cjs/components/Combobox/use-combobox/get-index/get-virtualized-index.js.map +1 -0
  52. package/cjs/components/Combobox/use-combobox/use-combobox.js +188 -0
  53. package/cjs/components/Combobox/use-combobox/use-combobox.js.map +1 -0
  54. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.js +127 -0
  55. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.js.map +1 -0
  56. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.js +90 -0
  57. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.js.map +1 -0
  58. package/cjs/components/Drawer/Drawer.context.js +13 -0
  59. package/cjs/components/Drawer/Drawer.context.js.map +1 -0
  60. package/cjs/components/Drawer/Drawer.js +95 -0
  61. package/cjs/components/Drawer/Drawer.js.map +1 -0
  62. package/cjs/components/Drawer/Drawer.module.css.js +8 -0
  63. package/cjs/components/Drawer/Drawer.module.css.js.map +1 -0
  64. package/cjs/components/Drawer/DrawerBody.js +60 -0
  65. package/cjs/components/Drawer/DrawerBody.js.map +1 -0
  66. package/cjs/components/Drawer/DrawerCloseButton.js +60 -0
  67. package/cjs/components/Drawer/DrawerCloseButton.js.map +1 -0
  68. package/cjs/components/Drawer/DrawerContent.js +67 -0
  69. package/cjs/components/Drawer/DrawerContent.js.map +1 -0
  70. package/cjs/components/Drawer/DrawerHeader.js +60 -0
  71. package/cjs/components/Drawer/DrawerHeader.js.map +1 -0
  72. package/cjs/components/Drawer/DrawerOverlay.js +60 -0
  73. package/cjs/components/Drawer/DrawerOverlay.js.map +1 -0
  74. package/cjs/components/Drawer/DrawerRoot.js +128 -0
  75. package/cjs/components/Drawer/DrawerRoot.js.map +1 -0
  76. package/cjs/components/Drawer/DrawerTitle.js +60 -0
  77. package/cjs/components/Drawer/DrawerTitle.js.map +1 -0
  78. package/cjs/components/InputBase/InputBase.js.map +1 -1
  79. package/cjs/components/Loader/Loader.js +2 -2
  80. package/cjs/components/Modal/Modal.js.map +1 -1
  81. package/cjs/components/Modal/ModalRoot.js +6 -3
  82. package/cjs/components/Modal/ModalRoot.js.map +1 -1
  83. package/cjs/components/ModalBase/ModalBase.js +7 -5
  84. package/cjs/components/ModalBase/ModalBase.js.map +1 -1
  85. package/cjs/components/Popover/Popover.js +1 -1
  86. package/cjs/components/Tabs/Tabs.js +1 -1
  87. package/cjs/components/Tabs/TabsTab/TabsTab.js +1 -1
  88. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.js +1 -1
  89. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.js.map +1 -1
  90. package/cjs/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.js +23 -2
  91. package/cjs/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.js.map +1 -1
  92. package/cjs/index.css +546 -170
  93. package/cjs/index.js +58 -4
  94. package/cjs/index.js.map +1 -1
  95. package/esm/components/Accordion/Accordion.context.js +8 -0
  96. package/esm/components/Accordion/Accordion.context.js.map +1 -0
  97. package/esm/components/Accordion/Accordion.js +174 -0
  98. package/esm/components/Accordion/Accordion.js.map +1 -0
  99. package/esm/components/Accordion/Accordion.module.css.js +4 -0
  100. package/esm/components/Accordion/Accordion.module.css.js.map +1 -0
  101. package/esm/components/Accordion/AccordionChevron.js +59 -0
  102. package/esm/components/Accordion/AccordionChevron.js.map +1 -0
  103. package/esm/components/Accordion/AccordionControl/AccordionControl.js +126 -0
  104. package/esm/components/Accordion/AccordionControl/AccordionControl.js.map +1 -0
  105. package/esm/components/Accordion/AccordionItem/AccordionItem.js +57 -0
  106. package/esm/components/Accordion/AccordionItem/AccordionItem.js.map +1 -0
  107. package/esm/components/Accordion/AccordionItem.context.js +6 -0
  108. package/esm/components/Accordion/AccordionItem.context.js.map +1 -0
  109. package/esm/components/Accordion/AccordionPanel/AccordionPanel.js +67 -0
  110. package/esm/components/Accordion/AccordionPanel/AccordionPanel.js.map +1 -0
  111. package/esm/components/ActionIcon/ActionIcon.js +1 -1
  112. package/esm/components/ActionIcon/ActionIcon.js.map +1 -1
  113. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.js +1 -1
  114. package/esm/components/Center/Center.js +1 -1
  115. package/esm/components/Center/Center.js.map +1 -1
  116. package/esm/components/Checkbox/CheckIcon.js +24 -12
  117. package/esm/components/Checkbox/CheckIcon.js.map +1 -1
  118. package/esm/components/Combobox/Combobox.context.js +8 -0
  119. package/esm/components/Combobox/Combobox.context.js.map +1 -0
  120. package/esm/components/Combobox/Combobox.js +135 -0
  121. package/esm/components/Combobox/Combobox.js.map +1 -0
  122. package/esm/components/Combobox/Combobox.module.css.js +4 -0
  123. package/esm/components/Combobox/Combobox.module.css.js.map +1 -0
  124. package/esm/components/Combobox/ComboboxChevron/ComboboxChevron.js +39 -18
  125. package/esm/components/Combobox/ComboboxChevron/ComboboxChevron.js.map +1 -1
  126. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.js +62 -0
  127. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.js.map +1 -0
  128. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.js +55 -0
  129. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -0
  130. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.js +55 -0
  131. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.js.map +1 -0
  132. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.js +55 -0
  133. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.js.map +1 -0
  134. package/esm/components/Combobox/ComboboxOption/ComboboxOption.js +111 -0
  135. package/esm/components/Combobox/ComboboxOption/ComboboxOption.js.map +1 -0
  136. package/esm/components/Combobox/ComboboxOptions/ComboboxOptions.js +67 -0
  137. package/esm/components/Combobox/ComboboxOptions/ComboboxOptions.js.map +1 -0
  138. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.js +85 -0
  139. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.js.map +1 -0
  140. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.js +64 -0
  141. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.js.map +1 -0
  142. package/esm/components/Combobox/use-combobox/get-index/get-index.js +41 -0
  143. package/esm/components/Combobox/use-combobox/get-index/get-index.js.map +1 -0
  144. package/esm/components/Combobox/use-combobox/get-index/get-virtualized-index.js +51 -0
  145. package/esm/components/Combobox/use-combobox/get-index/get-virtualized-index.js.map +1 -0
  146. package/esm/components/Combobox/use-combobox/use-combobox.js +184 -0
  147. package/esm/components/Combobox/use-combobox/use-combobox.js.map +1 -0
  148. package/esm/components/Combobox/use-combobox/use-virtualized-combobox.js +123 -0
  149. package/esm/components/Combobox/use-combobox/use-virtualized-combobox.js.map +1 -0
  150. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.js +86 -0
  151. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.js.map +1 -0
  152. package/esm/components/Drawer/Drawer.context.js +8 -0
  153. package/esm/components/Drawer/Drawer.context.js.map +1 -0
  154. package/esm/components/Drawer/Drawer.js +87 -0
  155. package/esm/components/Drawer/Drawer.js.map +1 -0
  156. package/esm/components/Drawer/Drawer.module.css.js +4 -0
  157. package/esm/components/Drawer/Drawer.module.css.js.map +1 -0
  158. package/esm/components/Drawer/DrawerBody.js +52 -0
  159. package/esm/components/Drawer/DrawerBody.js.map +1 -0
  160. package/esm/components/Drawer/DrawerCloseButton.js +52 -0
  161. package/esm/components/Drawer/DrawerCloseButton.js.map +1 -0
  162. package/esm/components/Drawer/DrawerContent.js +59 -0
  163. package/esm/components/Drawer/DrawerContent.js.map +1 -0
  164. package/esm/components/Drawer/DrawerHeader.js +52 -0
  165. package/esm/components/Drawer/DrawerHeader.js.map +1 -0
  166. package/esm/components/Drawer/DrawerOverlay.js +52 -0
  167. package/esm/components/Drawer/DrawerOverlay.js.map +1 -0
  168. package/esm/components/Drawer/DrawerRoot.js +120 -0
  169. package/esm/components/Drawer/DrawerRoot.js.map +1 -0
  170. package/esm/components/Drawer/DrawerTitle.js +52 -0
  171. package/esm/components/Drawer/DrawerTitle.js.map +1 -0
  172. package/esm/components/InputBase/InputBase.js.map +1 -1
  173. package/esm/components/Loader/Loader.js +2 -2
  174. package/esm/components/Modal/Modal.js.map +1 -1
  175. package/esm/components/Modal/ModalRoot.js +6 -3
  176. package/esm/components/Modal/ModalRoot.js.map +1 -1
  177. package/esm/components/ModalBase/ModalBase.js +7 -5
  178. package/esm/components/ModalBase/ModalBase.js.map +1 -1
  179. package/esm/components/Popover/Popover.js +1 -1
  180. package/esm/components/Tabs/Tabs.js +1 -1
  181. package/esm/components/Tabs/TabsTab/TabsTab.js +1 -1
  182. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.js +1 -1
  183. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.js.map +1 -1
  184. package/esm/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.js +23 -2
  185. package/esm/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.js.map +1 -1
  186. package/esm/index.css +546 -170
  187. package/esm/index.js +29 -2
  188. package/esm/index.js.map +1 -1
  189. package/lib/components/Accordion/Accordion.context.d.ts +23 -0
  190. package/lib/components/Accordion/Accordion.d.ts +73 -0
  191. package/lib/components/Accordion/Accordion.types.d.ts +3 -0
  192. package/lib/components/Accordion/AccordionChevron.d.ts +9 -0
  193. package/lib/components/Accordion/AccordionControl/AccordionControl.d.ts +25 -0
  194. package/lib/components/Accordion/AccordionItem/AccordionItem.d.ts +18 -0
  195. package/lib/components/Accordion/AccordionItem.context.d.ts +9 -0
  196. package/lib/components/Accordion/AccordionPanel/AccordionPanel.d.ts +16 -0
  197. package/lib/components/Accordion/index.d.ts +11 -0
  198. package/lib/components/ActionIcon/ActionIcon.d.ts +2 -2
  199. package/lib/components/Checkbox/CheckIcon.d.ts +4 -1
  200. package/lib/components/Checkbox/index.d.ts +1 -1
  201. package/lib/components/ColorPicker/ColorPicker.context.d.ts +1 -0
  202. package/lib/components/Combobox/Combobox.context.d.ts +16 -0
  203. package/lib/components/Combobox/Combobox.d.ts +105 -0
  204. package/lib/components/Combobox/ComboboxChevron/ComboboxChevron.d.ts +20 -6
  205. package/lib/components/Combobox/ComboboxDropdown/ComboboxDropdown.d.ts +19 -0
  206. package/lib/components/Combobox/ComboboxEmpty/ComboboxEmpty.d.ts +16 -0
  207. package/lib/components/Combobox/ComboboxFooter/ComboboxFooter.d.ts +16 -0
  208. package/lib/components/Combobox/ComboboxHeader/ComboboxHeader.d.ts +16 -0
  209. package/lib/components/Combobox/ComboboxOption/ComboboxOption.d.ts +24 -0
  210. package/lib/components/Combobox/ComboboxOptions/ComboboxOptions.d.ts +16 -0
  211. package/lib/components/Combobox/ComboboxSearch/ComboboxSearch.d.ts +19 -0
  212. package/lib/components/Combobox/ComboboxTarget/ComboboxTarget.d.ts +27 -0
  213. package/lib/components/Combobox/index.d.ts +19 -0
  214. package/lib/components/Combobox/use-combobox/get-index/get-index.d.ts +3 -0
  215. package/lib/components/Combobox/use-combobox/get-index/get-virtualized-index.d.ts +14 -0
  216. package/lib/components/Combobox/use-combobox/use-combobox.d.ts +41 -0
  217. package/lib/components/Combobox/use-combobox/use-virtualized-combobox.d.ts +25 -0
  218. package/lib/components/Combobox/use-combobox-target-props/use-combobox-target-props.d.ts +25 -0
  219. package/lib/components/Drawer/Drawer.context.d.ts +13 -0
  220. package/lib/components/Drawer/Drawer.d.ts +59 -0
  221. package/lib/components/Drawer/DrawerBody.d.ts +17 -0
  222. package/lib/components/Drawer/DrawerCloseButton.d.ts +17 -0
  223. package/lib/components/Drawer/DrawerContent.d.ts +17 -0
  224. package/lib/components/Drawer/DrawerHeader.d.ts +17 -0
  225. package/lib/components/Drawer/DrawerOverlay.d.ts +17 -0
  226. package/lib/components/Drawer/DrawerRoot.d.ts +32 -0
  227. package/lib/components/Drawer/DrawerTitle.d.ts +17 -0
  228. package/lib/components/Drawer/index.d.ts +16 -0
  229. package/lib/components/Input/use-input-props.d.ts +65 -64
  230. package/lib/components/InputBase/InputBase.d.ts +2 -0
  231. package/lib/components/Modal/Modal.d.ts +3 -2
  232. package/lib/components/Modal/ModalRoot.d.ts +1 -0
  233. package/lib/components/ModalBase/use-modal.d.ts +1 -0
  234. package/lib/components/ScrollArea/ScrollArea.context.d.ts +1 -0
  235. package/lib/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.d.ts +1 -0
  236. package/lib/components/Slider/Slider.context.d.ts +1 -0
  237. package/lib/components/Table/Table.context.d.ts +1 -0
  238. package/lib/components/Tabs/Tabs.context.d.ts +1 -0
  239. package/lib/components/Tooltip/TooltipFloating/use-floating-tooltip.d.ts +1 -0
  240. package/lib/components/UnstyledButton/UnstyledButton.d.ts +1 -1
  241. package/lib/components/index.d.ts +5 -2
  242. package/lib/core/Box/Box.d.ts +1 -1
  243. package/lib/core/styles-api/index.d.ts +2 -0
  244. package/lib/core/styles-api/use-styles/get-style/get-theme-styles/get-theme-styles.d.ts +1 -2
  245. package/lib/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.d.ts +2 -3
  246. package/package.json +4 -4
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function getPreviousIndex(currentIndex, elements, loop) {
6
+ for (let i = currentIndex - 1; i >= 0; i -= 1) {
7
+ if (!elements[i].hasAttribute("data-combobox-disabled")) {
8
+ return i;
9
+ }
10
+ }
11
+ if (loop) {
12
+ for (let i = elements.length - 1; i > -1; i -= 1) {
13
+ if (!elements[i].hasAttribute("data-combobox-disabled")) {
14
+ return i;
15
+ }
16
+ }
17
+ }
18
+ return currentIndex;
19
+ }
20
+ function getNextIndex(currentIndex, elements, loop) {
21
+ for (let i = currentIndex + 1; i < elements.length; i += 1) {
22
+ if (!elements[i].hasAttribute("data-combobox-disabled")) {
23
+ return i;
24
+ }
25
+ }
26
+ if (loop) {
27
+ for (let i = 0; i < elements.length; i += 1) {
28
+ if (!elements[i].hasAttribute("data-combobox-disabled")) {
29
+ return i;
30
+ }
31
+ }
32
+ }
33
+ return currentIndex;
34
+ }
35
+ function getFirstIndex(elements) {
36
+ for (let i = 0; i < elements.length; i += 1) {
37
+ if (!elements[i].hasAttribute("data-combobox-disabled")) {
38
+ return i;
39
+ }
40
+ }
41
+ return -1;
42
+ }
43
+
44
+ exports.getFirstIndex = getFirstIndex;
45
+ exports.getNextIndex = getNextIndex;
46
+ exports.getPreviousIndex = getPreviousIndex;
47
+ //# sourceMappingURL=get-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-index.js","sources":["../../../../../src/components/Combobox/use-combobox/get-index/get-index.ts"],"sourcesContent":["export function getPreviousIndex(\n currentIndex: number,\n elements: NodeListOf<HTMLDivElement> | HTMLDivElement[],\n loop: boolean\n) {\n for (let i = currentIndex - 1; i >= 0; i -= 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = elements.length - 1; i > -1; i -= 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\nexport function getNextIndex(\n currentIndex: number,\n elements: NodeListOf<HTMLDivElement> | HTMLDivElement[],\n loop: boolean\n) {\n for (let i = currentIndex + 1; i < elements.length; i += 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = 0; i < elements.length; i += 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\nexport function getFirstIndex(elements: NodeListOf<HTMLDivElement> | HTMLDivElement[]) {\n for (let i = 0; i < elements.length; i += 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n\n return -1;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,gBAAgB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/D,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE;AAC7D,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE;AAC/D,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,SAAS,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC3D,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE;AAC7D,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE;AAC/D,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,SAAS,aAAa,CAAC,QAAQ,EAAE;AACxC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE;AAC7D,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ;;;;;;"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function getPreviousIndex({
6
+ currentIndex,
7
+ isOptionDisabled,
8
+ totalOptionsCount,
9
+ loop
10
+ }) {
11
+ for (let i = currentIndex - 1; i >= 0; i -= 1) {
12
+ if (!isOptionDisabled(i)) {
13
+ return i;
14
+ }
15
+ }
16
+ if (loop) {
17
+ for (let i = totalOptionsCount - 1; i > -1; i -= 1) {
18
+ if (!isOptionDisabled(i)) {
19
+ return i;
20
+ }
21
+ }
22
+ }
23
+ return currentIndex;
24
+ }
25
+ function getNextIndex({
26
+ currentIndex,
27
+ isOptionDisabled,
28
+ totalOptionsCount,
29
+ loop
30
+ }) {
31
+ for (let i = currentIndex + 1; i < totalOptionsCount; i += 1) {
32
+ if (!isOptionDisabled(i)) {
33
+ return i;
34
+ }
35
+ }
36
+ if (loop) {
37
+ for (let i = 0; i < totalOptionsCount; i += 1) {
38
+ if (!isOptionDisabled(i)) {
39
+ return i;
40
+ }
41
+ }
42
+ }
43
+ return currentIndex;
44
+ }
45
+ function getFirstIndex({ totalOptionsCount, isOptionDisabled }) {
46
+ for (let i = 0; i < totalOptionsCount; i += 1) {
47
+ if (!isOptionDisabled(i)) {
48
+ return i;
49
+ }
50
+ }
51
+ return -1;
52
+ }
53
+
54
+ exports.getFirstIndex = getFirstIndex;
55
+ exports.getNextIndex = getNextIndex;
56
+ exports.getPreviousIndex = getPreviousIndex;
57
+ //# sourceMappingURL=get-virtualized-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-virtualized-index.js","sources":["../../../../../src/components/Combobox/use-combobox/get-index/get-virtualized-index.ts"],"sourcesContent":["interface GetIndexProps {\n currentIndex: number;\n isOptionDisabled: (index: number) => boolean;\n totalOptionsCount: number;\n loop: boolean;\n}\n\nexport function getPreviousIndex({\n currentIndex,\n isOptionDisabled,\n totalOptionsCount,\n loop,\n}: GetIndexProps) {\n for (let i = currentIndex - 1; i >= 0; i -= 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = totalOptionsCount - 1; i > -1; i -= 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\nexport function getNextIndex({\n currentIndex,\n isOptionDisabled,\n totalOptionsCount,\n loop,\n}: GetIndexProps) {\n for (let i = currentIndex + 1; i < totalOptionsCount; i += 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = 0; i < totalOptionsCount; i += 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\ninterface GetFirstIndexOptions {\n totalOptionsCount: number;\n isOptionDisabled: (index: number) => boolean;\n}\n\nexport function getFirstIndex({ totalOptionsCount, isOptionDisabled }: GetFirstIndexOptions) {\n for (let i = 0; i < totalOptionsCount; i += 1) {\n if (!isOptionDisabled(i)) {\n return i;\n }\n }\n\n return -1;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,gBAAgB,CAAC;AACjC,EAAE,YAAY;AACd,EAAE,gBAAgB;AAClB,EAAE,iBAAiB;AACnB,EAAE,IAAI;AACN,CAAC,EAAE;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACxD,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAChC,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,SAAS,YAAY,CAAC;AAC7B,EAAE,YAAY;AACd,EAAE,gBAAgB;AAClB,EAAE,iBAAiB;AACnB,EAAE,IAAI;AACN,CAAC,EAAE;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE;AAChE,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE;AACnD,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAChC,QAAQ,OAAO,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,YAAY,CAAC;AACtB,CAAC;AACM,SAAS,aAAa,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE;AACvE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE;AACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC;AACZ;;;;;;"}
@@ -0,0 +1,188 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var hooks = require('@mantine/hooks');
7
+ var getIndex = require('./get-index/get-index.js');
8
+
9
+ function useCombobox({
10
+ defaultOpened,
11
+ opened,
12
+ onOpenedChange,
13
+ onDropdownClose,
14
+ onDropdownOpen,
15
+ loop = true,
16
+ scrollBehavior = "instant"
17
+ } = {}) {
18
+ const [dropdownOpened, setDropdownOpened] = hooks.useUncontrolled({
19
+ value: opened,
20
+ defaultValue: defaultOpened,
21
+ finalValue: false,
22
+ onChange: onOpenedChange
23
+ });
24
+ const listId = React.useRef(null);
25
+ const selectedOptionIndex = React.useRef(-1);
26
+ const searchRef = React.useRef(null);
27
+ const targetRef = React.useRef(null);
28
+ const focusSearchTimeout = React.useRef(-1);
29
+ const focusTargetTimeout = React.useRef(-1);
30
+ const selectedIndexUpdateTimeout = React.useRef(-1);
31
+ const openDropdown = React.useCallback(
32
+ (eventSource = "unknown") => {
33
+ if (!dropdownOpened) {
34
+ setDropdownOpened(true);
35
+ onDropdownOpen == null ? void 0 : onDropdownOpen(eventSource);
36
+ }
37
+ },
38
+ [setDropdownOpened, onDropdownOpen, dropdownOpened]
39
+ );
40
+ const closeDropdown = React.useCallback(
41
+ (eventSource = "unknown") => {
42
+ if (dropdownOpened) {
43
+ setDropdownOpened(false);
44
+ onDropdownClose == null ? void 0 : onDropdownClose(eventSource);
45
+ }
46
+ },
47
+ [setDropdownOpened, onDropdownClose, dropdownOpened]
48
+ );
49
+ const toggleDropdown = React.useCallback(
50
+ (eventSource = "unknown") => {
51
+ if (dropdownOpened) {
52
+ closeDropdown(eventSource);
53
+ } else {
54
+ openDropdown(eventSource);
55
+ }
56
+ },
57
+ [closeDropdown, openDropdown, dropdownOpened]
58
+ );
59
+ const clearSelectedItem = React.useCallback(() => {
60
+ const selected = document.querySelector(`#${listId.current} [data-combobox-selected]`);
61
+ selected == null ? void 0 : selected.removeAttribute("data-combobox-selected");
62
+ selected == null ? void 0 : selected.removeAttribute("aria-selected");
63
+ }, []);
64
+ const selectOption = React.useCallback(
65
+ (index) => {
66
+ const list = document.getElementById(listId.current);
67
+ const items = list == null ? void 0 : list.querySelectorAll("[data-combobox-option]");
68
+ if (!items) {
69
+ return null;
70
+ }
71
+ const nextIndex = index >= items.length ? 0 : index < 0 ? items.length - 1 : index;
72
+ selectedOptionIndex.current = nextIndex;
73
+ if ((items == null ? void 0 : items[nextIndex]) && !items[nextIndex].hasAttribute("data-combobox-disabled")) {
74
+ clearSelectedItem();
75
+ items[nextIndex].setAttribute("data-combobox-selected", "true");
76
+ items[nextIndex].setAttribute("aria-selected", "true");
77
+ items[nextIndex].scrollIntoView({ block: "nearest", behavior: scrollBehavior });
78
+ return items[nextIndex].id;
79
+ }
80
+ return null;
81
+ },
82
+ [scrollBehavior, clearSelectedItem]
83
+ );
84
+ const selectActiveOption = React.useCallback(() => {
85
+ const activeOption = document.querySelector(
86
+ `#${listId.current} [data-combobox-active]`
87
+ );
88
+ if (activeOption) {
89
+ const items = document.querySelectorAll(
90
+ `#${listId.current} [data-combobox-option]`
91
+ );
92
+ const index = Array.from(items).findIndex((option) => option === activeOption);
93
+ return selectOption(index);
94
+ }
95
+ return selectOption(0);
96
+ }, [selectOption]);
97
+ const selectNextOption = React.useCallback(
98
+ () => selectOption(
99
+ getIndex.getNextIndex(
100
+ selectedOptionIndex.current,
101
+ document.querySelectorAll(`#${listId.current} [data-combobox-option]`),
102
+ loop
103
+ )
104
+ ),
105
+ [selectOption, loop]
106
+ );
107
+ const selectPreviousOption = React.useCallback(
108
+ () => selectOption(
109
+ getIndex.getPreviousIndex(
110
+ selectedOptionIndex.current,
111
+ document.querySelectorAll(`#${listId.current} [data-combobox-option]`),
112
+ loop
113
+ )
114
+ ),
115
+ [selectOption, loop]
116
+ );
117
+ const selectFirstOption = React.useCallback(
118
+ () => selectOption(
119
+ getIndex.getFirstIndex(
120
+ document.querySelectorAll(`#${listId.current} [data-combobox-option]`)
121
+ )
122
+ ),
123
+ [selectOption]
124
+ );
125
+ const updateSelectedOptionIndex = React.useCallback((target = "selected") => {
126
+ selectedIndexUpdateTimeout.current = window.setTimeout(() => {
127
+ const items = document.querySelectorAll(
128
+ `#${listId.current} [data-combobox-option]`
129
+ );
130
+ const index = Array.from(items).findIndex(
131
+ (option) => option.hasAttribute(`data-combobox-${target}`)
132
+ );
133
+ selectedOptionIndex.current = index;
134
+ }, 0);
135
+ }, []);
136
+ const resetSelectedOption = React.useCallback(() => {
137
+ selectedOptionIndex.current = -1;
138
+ clearSelectedItem();
139
+ }, [clearSelectedItem]);
140
+ const clickSelectedOption = React.useCallback(() => {
141
+ const items = document.querySelectorAll(
142
+ `#${listId.current} [data-combobox-option]`
143
+ );
144
+ const item = items == null ? void 0 : items[selectedOptionIndex.current];
145
+ item == null ? void 0 : item.click();
146
+ }, []);
147
+ const setListId = React.useCallback((id) => {
148
+ listId.current = id;
149
+ }, []);
150
+ const focusSearchInput = React.useCallback(() => {
151
+ focusSearchTimeout.current = window.setTimeout(() => searchRef.current.focus(), 0);
152
+ }, []);
153
+ const focusTarget = React.useCallback(() => {
154
+ focusTargetTimeout.current = window.setTimeout(() => targetRef.current.focus(), 0);
155
+ }, []);
156
+ React.useEffect(
157
+ () => () => {
158
+ window.clearTimeout(focusSearchTimeout.current);
159
+ window.clearTimeout(focusTargetTimeout.current);
160
+ window.clearTimeout(selectedIndexUpdateTimeout.current);
161
+ },
162
+ []
163
+ );
164
+ return {
165
+ dropdownOpened,
166
+ openDropdown,
167
+ closeDropdown,
168
+ toggleDropdown,
169
+ selectedOptionIndex: selectedOptionIndex.current,
170
+ selectOption,
171
+ selectFirstOption,
172
+ selectActiveOption,
173
+ selectNextOption,
174
+ selectPreviousOption,
175
+ resetSelectedOption,
176
+ updateSelectedOptionIndex,
177
+ listId: listId.current,
178
+ setListId,
179
+ clickSelectedOption,
180
+ searchRef,
181
+ focusSearchInput,
182
+ targetRef,
183
+ focusTarget
184
+ };
185
+ }
186
+
187
+ exports.useCombobox = useCombobox;
188
+ //# sourceMappingURL=use-combobox.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,127 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var hooks = require('@mantine/hooks');
7
+ var getVirtualizedIndex = require('./get-index/get-virtualized-index.js');
8
+
9
+ function useVirtualizedCombobox({
10
+ defaultOpened,
11
+ opened,
12
+ onOpenedChange,
13
+ onDropdownClose,
14
+ onDropdownOpen,
15
+ loop = true,
16
+ totalOptionsCount,
17
+ isOptionDisabled = () => false,
18
+ getOptionId,
19
+ selectedOptionIndex,
20
+ setSelectedOptionIndex,
21
+ activeOptionIndex,
22
+ onSelectedOptionSubmit
23
+ } = {
24
+ totalOptionsCount: 0,
25
+ getOptionId: () => null,
26
+ selectedOptionIndex: 1,
27
+ setSelectedOptionIndex: () => {
28
+ },
29
+ onSelectedOptionSubmit: () => {
30
+ }
31
+ }) {
32
+ const [dropdownOpened, setDropdownOpened] = hooks.useUncontrolled({
33
+ value: opened,
34
+ defaultValue: defaultOpened,
35
+ finalValue: false,
36
+ onChange: onOpenedChange
37
+ });
38
+ const listId = React.useRef(null);
39
+ const searchRef = React.useRef(null);
40
+ const targetRef = React.useRef(null);
41
+ const focusSearchTimeout = React.useRef(-1);
42
+ const focusTargetTimeout = React.useRef(-1);
43
+ const openDropdown = () => {
44
+ if (!dropdownOpened) {
45
+ setDropdownOpened(true);
46
+ onDropdownOpen == null ? void 0 : onDropdownOpen();
47
+ }
48
+ };
49
+ const closeDropdown = () => {
50
+ if (dropdownOpened) {
51
+ setDropdownOpened(false);
52
+ onDropdownClose == null ? void 0 : onDropdownClose();
53
+ }
54
+ };
55
+ const toggleDropdown = () => {
56
+ if (dropdownOpened) {
57
+ closeDropdown();
58
+ } else {
59
+ openDropdown();
60
+ }
61
+ };
62
+ const selectOption = (index) => {
63
+ const nextIndex = index >= totalOptionsCount ? 0 : index < 0 ? totalOptionsCount - 1 : index;
64
+ setSelectedOptionIndex(nextIndex);
65
+ return getOptionId(nextIndex);
66
+ };
67
+ const selectActiveOption = () => selectOption(activeOptionIndex != null ? activeOptionIndex : 0);
68
+ const selectNextOption = () => selectOption(
69
+ getVirtualizedIndex.getNextIndex({ currentIndex: selectedOptionIndex, isOptionDisabled, totalOptionsCount, loop })
70
+ );
71
+ const selectPreviousOption = () => selectOption(
72
+ getVirtualizedIndex.getPreviousIndex({
73
+ currentIndex: selectedOptionIndex,
74
+ isOptionDisabled,
75
+ totalOptionsCount,
76
+ loop
77
+ })
78
+ );
79
+ const selectFirstOption = () => selectOption(getVirtualizedIndex.getFirstIndex({ isOptionDisabled, totalOptionsCount }));
80
+ const resetSelectedOption = () => {
81
+ setSelectedOptionIndex(-1);
82
+ };
83
+ const clickSelectedOption = () => {
84
+ onSelectedOptionSubmit == null ? void 0 : onSelectedOptionSubmit(selectedOptionIndex);
85
+ };
86
+ const setListId = (id) => {
87
+ listId.current = id;
88
+ };
89
+ const focusSearchInput = () => {
90
+ focusSearchTimeout.current = window.setTimeout(() => searchRef.current.focus(), 0);
91
+ };
92
+ const focusTarget = () => {
93
+ focusTargetTimeout.current = window.setTimeout(() => targetRef.current.focus(), 0);
94
+ };
95
+ React.useEffect(
96
+ () => () => {
97
+ window.clearTimeout(focusSearchTimeout.current);
98
+ window.clearTimeout(focusTargetTimeout.current);
99
+ },
100
+ []
101
+ );
102
+ return {
103
+ dropdownOpened,
104
+ openDropdown,
105
+ closeDropdown,
106
+ toggleDropdown,
107
+ selectedOptionIndex,
108
+ selectOption,
109
+ selectFirstOption,
110
+ selectActiveOption,
111
+ selectNextOption,
112
+ selectPreviousOption,
113
+ resetSelectedOption,
114
+ updateSelectedOptionIndex: () => {
115
+ },
116
+ listId: listId.current,
117
+ setListId,
118
+ clickSelectedOption,
119
+ searchRef,
120
+ focusSearchInput,
121
+ targetRef,
122
+ focusTarget
123
+ };
124
+ }
125
+
126
+ exports.useVirtualizedCombobox = useVirtualizedCombobox;
127
+ //# sourceMappingURL=use-virtualized-combobox.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,90 @@
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
+
8
+ var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
10
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
+ function useComboboxTargetProps({
28
+ onKeyDown,
29
+ withKeyboardNavigation,
30
+ withAriaAttributes,
31
+ targetType
32
+ }) {
33
+ const ctx = Combobox_context.useComboboxContext();
34
+ const [selectedOptionId, setSelectedOptionId] = React.useState(null);
35
+ const handleKeyDown = (event) => {
36
+ onKeyDown == null ? void 0 : onKeyDown(event);
37
+ if (withKeyboardNavigation) {
38
+ if (event.nativeEvent.code === "ArrowDown") {
39
+ event.preventDefault();
40
+ if (!ctx.store.dropdownOpened) {
41
+ ctx.store.openDropdown("keyboard");
42
+ setSelectedOptionId(ctx.store.selectActiveOption());
43
+ } else {
44
+ setSelectedOptionId(ctx.store.selectNextOption());
45
+ }
46
+ }
47
+ if (event.nativeEvent.code === "ArrowUp") {
48
+ event.preventDefault();
49
+ if (!ctx.store.dropdownOpened) {
50
+ ctx.store.openDropdown("keyboard");
51
+ setSelectedOptionId(ctx.store.selectActiveOption());
52
+ } else {
53
+ setSelectedOptionId(ctx.store.selectPreviousOption());
54
+ }
55
+ }
56
+ if (event.nativeEvent.code === "Enter") {
57
+ if (ctx.store.dropdownOpened) {
58
+ event.preventDefault();
59
+ ctx.store.clickSelectedOption();
60
+ } else if (targetType === "button") {
61
+ event.preventDefault();
62
+ ctx.store.openDropdown("keyboard");
63
+ }
64
+ }
65
+ if (event.nativeEvent.code === "Escape") {
66
+ ctx.store.closeDropdown("keyboard");
67
+ }
68
+ if (event.nativeEvent.code === "Space") {
69
+ if (targetType === "button") {
70
+ event.preventDefault();
71
+ ctx.store.toggleDropdown("keyboard");
72
+ }
73
+ }
74
+ }
75
+ };
76
+ const ariaAttributes = withAriaAttributes ? {
77
+ "aria-haspopup": "listbox",
78
+ "aria-expanded": ctx.store.listId ? ctx.store.dropdownOpened : void 0,
79
+ "aria-controls": ctx.store.listId,
80
+ "aria-activedescendant": ctx.store.dropdownOpened ? selectedOptionId || void 0 : void 0,
81
+ autoComplete: "off",
82
+ "data-expanded": ctx.store.dropdownOpened ? true : void 0
83
+ } : {};
84
+ return __spreadProps(__spreadValues({}, ariaAttributes), {
85
+ onKeyDown: handleKeyDown
86
+ });
87
+ }
88
+
89
+ exports.useComboboxTargetProps = useComboboxTargetProps;
90
+ //# sourceMappingURL=use-combobox-target-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-combobox-target-props.js","sources":["../../../../src/components/Combobox/use-combobox-target-props/use-combobox-target-props.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useComboboxContext } from '../Combobox.context';\n\ninterface UseComboboxTargetPropsInput {\n targetType: 'input' | 'button' | undefined;\n withAriaAttributes: boolean | undefined;\n withKeyboardNavigation: boolean | undefined;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement> | undefined;\n}\n\nexport function useComboboxTargetProps({\n onKeyDown,\n withKeyboardNavigation,\n withAriaAttributes,\n targetType,\n}: UseComboboxTargetPropsInput) {\n const ctx = useComboboxContext();\n const [selectedOptionId, setSelectedOptionId] = useState<string | null>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (withKeyboardNavigation) {\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n\n if (!ctx.store.dropdownOpened) {\n ctx.store.openDropdown('keyboard');\n setSelectedOptionId(ctx.store.selectActiveOption());\n } else {\n setSelectedOptionId(ctx.store.selectNextOption());\n }\n }\n\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n\n if (!ctx.store.dropdownOpened) {\n ctx.store.openDropdown('keyboard');\n setSelectedOptionId(ctx.store.selectActiveOption());\n } else {\n setSelectedOptionId(ctx.store.selectPreviousOption());\n }\n }\n\n if (event.nativeEvent.code === 'Enter') {\n if (ctx.store.dropdownOpened) {\n event.preventDefault();\n ctx.store.clickSelectedOption();\n } else if (targetType === 'button') {\n event.preventDefault();\n ctx.store.openDropdown('keyboard');\n }\n }\n\n if (event.nativeEvent.code === 'Escape') {\n ctx.store.closeDropdown('keyboard');\n }\n\n if (event.nativeEvent.code === 'Space') {\n if (targetType === 'button') {\n event.preventDefault();\n ctx.store.toggleDropdown('keyboard');\n }\n }\n }\n };\n\n const ariaAttributes = withAriaAttributes\n ? {\n 'aria-haspopup': 'listbox',\n 'aria-expanded': ctx.store.listId ? ctx.store.dropdownOpened : undefined,\n 'aria-controls': ctx.store.listId,\n 'aria-activedescendant': ctx.store.dropdownOpened\n ? selectedOptionId || undefined\n : undefined,\n autoComplete: 'off',\n 'data-expanded': ctx.store.dropdownOpened ? true : undefined,\n }\n : {};\n\n return {\n ...ariaAttributes,\n onKeyDown: handleKeyDown,\n };\n}\n"],"names":["useComboboxContext","useState"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var createSafeContext = require('../../core/utils/create-safe-context/create-safe-context.js');
6
+
7
+ const [DrawerProvider, useDrawerContext] = createSafeContext.createSafeContext(
8
+ "Drawer component was not found in tree"
9
+ );
10
+
11
+ exports.DrawerProvider = DrawerProvider;
12
+ exports.useDrawerContext = useDrawerContext;
13
+ //# sourceMappingURL=Drawer.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.context.js","sources":["../../../src/components/Drawer/Drawer.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { DrawerRootFactory } from './DrawerRoot';\n\nexport type ScrollAreaComponent = React.FC<any>;\n\ninterface DrawerContext {\n scrollAreaComponent: ScrollAreaComponent | undefined;\n getStyles: GetStylesApi<DrawerRootFactory>;\n}\n\nexport const [DrawerProvider, useDrawerContext] = createSafeContext<DrawerContext>(\n 'Drawer component was not found in tree'\n);\n"],"names":["createSafeContext"],"mappings":";;;;;;AACY,MAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAGA,mCAAiB;AACnE,EAAE,wCAAwC;AAC1C;;;;;"}