@mantine/core 9.0.0-alpha.3 → 9.0.0-alpha.5

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 (411) hide show
  1. package/cjs/components/Accordion/Accordion.cjs +1 -1
  2. package/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs +1 -1
  4. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs.map +1 -1
  5. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs +1 -1
  6. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs.map +1 -1
  7. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs +1 -1
  8. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
  9. package/cjs/components/ActionIcon/ActionIcon.cjs +1 -1
  10. package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
  11. package/cjs/components/AppShell/AppShell.cjs +1 -1
  12. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  13. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
  14. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
  15. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
  16. package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs.map +1 -1
  17. package/cjs/components/Avatar/Avatar.cjs +1 -1
  18. package/cjs/components/Avatar/Avatar.cjs.map +1 -1
  19. package/cjs/components/Button/Button.cjs +1 -1
  20. package/cjs/components/Button/Button.cjs.map +1 -1
  21. package/cjs/components/Card/Card.cjs +1 -1
  22. package/cjs/components/Card/Card.cjs.map +1 -1
  23. package/cjs/components/Checkbox/Checkbox.cjs +1 -1
  24. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  25. package/cjs/components/Chip/Chip.cjs +1 -1
  26. package/cjs/components/Chip/Chip.cjs.map +1 -1
  27. package/cjs/components/CloseButton/CloseButton.cjs +1 -1
  28. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  29. package/cjs/components/Collapse/Collapse.cjs +16 -3
  30. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  31. package/cjs/components/ColorInput/ColorInput.cjs +1 -1
  32. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  33. package/cjs/components/ColorPicker/ColorPicker.cjs +1 -1
  34. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  35. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs +1 -1
  36. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  37. package/cjs/components/Combobox/Combobox.cjs +1 -1
  38. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  39. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs +1 -1
  40. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  41. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs +1 -1
  42. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  43. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs +88 -50
  44. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  45. package/cjs/components/Drawer/Drawer.cjs +1 -1
  46. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  47. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs +1 -1
  48. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  49. package/cjs/components/Grid/Grid.cjs +1 -1
  50. package/cjs/components/Grid/Grid.cjs.map +1 -1
  51. package/cjs/components/Grid/GridCol/GridCol.cjs +1 -1
  52. package/cjs/components/Grid/GridCol/GridCol.cjs.map +1 -1
  53. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  54. package/cjs/components/Input/Input.cjs +1 -1
  55. package/cjs/components/Input/Input.cjs.map +1 -1
  56. package/cjs/components/Input/InputDescription/InputDescription.cjs +1 -1
  57. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
  58. package/cjs/components/Input/InputError/InputError.cjs +1 -1
  59. package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
  60. package/cjs/components/Input/InputLabel/InputLabel.cjs +1 -1
  61. package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
  62. package/cjs/components/Input/InputWrapper/InputWrapper.cjs +1 -1
  63. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  64. package/cjs/components/List/List.cjs +1 -1
  65. package/cjs/components/List/List.cjs.map +1 -1
  66. package/cjs/components/Loader/Loader.cjs +1 -1
  67. package/cjs/components/Loader/Loader.cjs.map +1 -1
  68. package/cjs/components/Loader/loaders/Bars.cjs.map +1 -1
  69. package/cjs/components/Loader/loaders/Dots.cjs.map +1 -1
  70. package/cjs/components/Loader/loaders/Oval.cjs.map +1 -1
  71. package/cjs/components/MaskInput/MaskInput.cjs +39 -0
  72. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -0
  73. package/cjs/components/MaskInput/use-mask-input-props.cjs +42 -0
  74. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -0
  75. package/cjs/components/Menu/Menu.cjs +1 -1
  76. package/cjs/components/Menu/Menu.cjs.map +1 -1
  77. package/cjs/components/Menu/MenuItem/MenuItem.cjs +1 -1
  78. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  79. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs +1 -1
  80. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  81. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs +1 -1
  82. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  83. package/cjs/components/Modal/Modal.cjs +1 -1
  84. package/cjs/components/Modal/Modal.cjs.map +1 -1
  85. package/cjs/components/ModalBase/ModalBaseBody.cjs +1 -1
  86. package/cjs/components/ModalBase/ModalBaseBody.cjs.map +1 -1
  87. package/cjs/components/ModalBase/ModalBaseTitle.cjs +1 -1
  88. package/cjs/components/ModalBase/ModalBaseTitle.cjs.map +1 -1
  89. package/cjs/components/NumberInput/NumberInput.cjs +32 -1
  90. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  91. package/cjs/components/OverflowList/OverflowList.cjs +1 -1
  92. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  93. package/cjs/components/Pagination/Pagination.cjs +1 -1
  94. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  95. package/cjs/components/PasswordInput/PasswordInput.cjs +1 -1
  96. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  97. package/cjs/components/Pill/Pill.cjs +1 -1
  98. package/cjs/components/Pill/Pill.cjs.map +1 -1
  99. package/cjs/components/Popover/Popover.cjs +1 -1
  100. package/cjs/components/Popover/Popover.cjs.map +1 -1
  101. package/cjs/components/Progress/Progress.cjs +1 -1
  102. package/cjs/components/Progress/Progress.cjs.map +1 -1
  103. package/cjs/components/Radio/Radio.cjs +1 -1
  104. package/cjs/components/Radio/Radio.cjs.map +1 -1
  105. package/cjs/components/Rating/Rating.cjs +1 -1
  106. package/cjs/components/Rating/Rating.cjs.map +1 -1
  107. package/cjs/components/RollingNumber/RollingNumber.cjs +254 -0
  108. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -0
  109. package/cjs/components/RollingNumber/RollingNumber.module.css.cjs +7 -0
  110. package/cjs/components/RollingNumber/RollingNumber.module.css.cjs.map +1 -0
  111. package/cjs/components/ScrollArea/ScrollArea.cjs +35 -37
  112. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  113. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs +2 -2
  114. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  115. package/cjs/components/ScrollArea/use-resize-observer.cjs +3 -2
  116. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  117. package/cjs/components/SimpleGrid/SimpleGrid.cjs +1 -1
  118. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  119. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs +1 -1
  120. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  121. package/cjs/components/Slider/Slider/Slider.cjs +1 -1
  122. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  123. package/cjs/components/Stepper/Stepper.cjs +7 -2
  124. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  125. package/cjs/components/Switch/Switch.cjs +1 -1
  126. package/cjs/components/Switch/Switch.cjs.map +1 -1
  127. package/cjs/components/Table/Table.cjs +1 -1
  128. package/cjs/components/Table/Table.cjs.map +1 -1
  129. package/cjs/components/Tabs/Tabs.cjs +1 -1
  130. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  131. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs +5 -3
  132. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  133. package/cjs/components/Timeline/Timeline.cjs +1 -1
  134. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  135. package/cjs/components/Tooltip/Tooltip.cjs +4 -2
  136. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  137. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs +1 -1
  138. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  139. package/cjs/components/Transition/Transition.cjs +20 -3
  140. package/cjs/components/Transition/Transition.cjs.map +1 -1
  141. package/cjs/components/Tree/FlatTreeNode.cjs +155 -0
  142. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -0
  143. package/cjs/components/Tree/Tree.cjs +4 -2
  144. package/cjs/components/Tree/Tree.cjs.map +1 -1
  145. package/cjs/components/Tree/TreeNode.cjs +8 -4
  146. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  147. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs +27 -0
  148. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs.map +1 -0
  149. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs +24 -0
  150. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs.map +1 -0
  151. package/cjs/components/Tree/merge-async-children/merge-async-children.cjs +26 -0
  152. package/cjs/components/Tree/merge-async-children/merge-async-children.cjs.map +1 -0
  153. package/cjs/components/Tree/move-tree-node/move-tree-node.cjs +91 -0
  154. package/cjs/components/Tree/move-tree-node/move-tree-node.cjs.map +1 -0
  155. package/cjs/components/Tree/use-tree-node-drag-drop.cjs +128 -0
  156. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -0
  157. package/cjs/components/TreeSelect/TreeSelect.cjs +821 -0
  158. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -0
  159. package/cjs/components/TreeSelect/TreeSelect.module.css.cjs +7 -0
  160. package/cjs/components/TreeSelect/TreeSelect.module.css.cjs.map +1 -0
  161. package/cjs/components/TreeSelect/TreeSelectOption.cjs +153 -0
  162. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -0
  163. package/cjs/components/TreeSelect/flatten-tree-select-data.cjs +34 -0
  164. package/cjs/components/TreeSelect/flatten-tree-select-data.cjs.map +1 -0
  165. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs +46 -0
  166. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +1 -0
  167. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs +5 -5
  168. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs.map +1 -1
  169. package/cjs/core/styles-api/use-styles/get-style/get-style.cjs +9 -13
  170. package/cjs/core/styles-api/use-styles/get-style/get-style.cjs.map +1 -1
  171. package/cjs/core/styles-api/use-styles/get-style/resolve-style/resolve-style.cjs +1 -1
  172. package/cjs/core/styles-api/use-styles/get-style/resolve-style/resolve-style.cjs.map +1 -1
  173. package/cjs/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.cjs +7 -4
  174. package/cjs/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.cjs.map +1 -1
  175. package/cjs/core/styles-api/use-styles/use-styles.cjs +40 -11
  176. package/cjs/core/styles-api/use-styles/use-styles.cjs.map +1 -1
  177. package/cjs/core/styles-api/use-styles/use-transformed-styles.cjs +7 -3
  178. package/cjs/core/styles-api/use-styles/use-transformed-styles.cjs.map +1 -1
  179. package/cjs/index.cjs +2 -4
  180. package/cjs/index.cjs.map +1 -1
  181. package/esm/components/Accordion/Accordion.mjs +1 -1
  182. package/esm/components/Accordion/Accordion.mjs.map +1 -1
  183. package/esm/components/Accordion/AccordionControl/AccordionControl.mjs +1 -1
  184. package/esm/components/Accordion/AccordionControl/AccordionControl.mjs.map +1 -1
  185. package/esm/components/Accordion/AccordionItem/AccordionItem.mjs +1 -1
  186. package/esm/components/Accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  187. package/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs +1 -1
  188. package/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs.map +1 -1
  189. package/esm/components/ActionIcon/ActionIcon.mjs +1 -1
  190. package/esm/components/ActionIcon/ActionIcon.mjs.map +1 -1
  191. package/esm/components/AppShell/AppShell.mjs +1 -1
  192. package/esm/components/AppShell/AppShell.mjs.map +1 -1
  193. package/esm/components/AppShell/AppShellAside/AppShellAside.mjs.map +1 -1
  194. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
  195. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
  196. package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs.map +1 -1
  197. package/esm/components/Avatar/Avatar.mjs +1 -1
  198. package/esm/components/Avatar/Avatar.mjs.map +1 -1
  199. package/esm/components/Button/Button.mjs +1 -1
  200. package/esm/components/Button/Button.mjs.map +1 -1
  201. package/esm/components/Card/Card.mjs +1 -1
  202. package/esm/components/Card/Card.mjs.map +1 -1
  203. package/esm/components/Checkbox/Checkbox.mjs +1 -1
  204. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  205. package/esm/components/Chip/Chip.mjs +1 -1
  206. package/esm/components/Chip/Chip.mjs.map +1 -1
  207. package/esm/components/CloseButton/CloseButton.mjs +1 -1
  208. package/esm/components/CloseButton/CloseButton.mjs.map +1 -1
  209. package/esm/components/Collapse/Collapse.mjs +16 -3
  210. package/esm/components/Collapse/Collapse.mjs.map +1 -1
  211. package/esm/components/ColorInput/ColorInput.mjs +1 -1
  212. package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
  213. package/esm/components/ColorPicker/ColorPicker.mjs +1 -1
  214. package/esm/components/ColorPicker/ColorPicker.mjs.map +1 -1
  215. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs +1 -1
  216. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs.map +1 -1
  217. package/esm/components/Combobox/Combobox.mjs +1 -1
  218. package/esm/components/Combobox/Combobox.mjs.map +1 -1
  219. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.mjs +1 -1
  220. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.mjs.map +1 -1
  221. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs +1 -1
  222. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  223. package/esm/components/Combobox/use-combobox/use-virtualized-combobox.mjs +90 -52
  224. package/esm/components/Combobox/use-combobox/use-virtualized-combobox.mjs.map +1 -1
  225. package/esm/components/Drawer/Drawer.mjs +1 -1
  226. package/esm/components/Drawer/Drawer.mjs.map +1 -1
  227. package/esm/components/FloatingIndicator/FloatingIndicator.mjs +1 -1
  228. package/esm/components/FloatingIndicator/FloatingIndicator.mjs.map +1 -1
  229. package/esm/components/Grid/Grid.mjs +1 -1
  230. package/esm/components/Grid/Grid.mjs.map +1 -1
  231. package/esm/components/Grid/GridCol/GridCol.mjs +1 -1
  232. package/esm/components/Grid/GridCol/GridCol.mjs.map +1 -1
  233. package/esm/components/HoverCard/use-hover-card.mjs +1 -1
  234. package/esm/components/Indicator/Indicator.mjs.map +1 -1
  235. package/esm/components/Input/Input.mjs +1 -1
  236. package/esm/components/Input/Input.mjs.map +1 -1
  237. package/esm/components/Input/InputDescription/InputDescription.mjs +1 -1
  238. package/esm/components/Input/InputDescription/InputDescription.mjs.map +1 -1
  239. package/esm/components/Input/InputError/InputError.mjs +1 -1
  240. package/esm/components/Input/InputError/InputError.mjs.map +1 -1
  241. package/esm/components/Input/InputLabel/InputLabel.mjs +1 -1
  242. package/esm/components/Input/InputLabel/InputLabel.mjs.map +1 -1
  243. package/esm/components/Input/InputWrapper/InputWrapper.mjs +1 -1
  244. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  245. package/esm/components/List/List.mjs +1 -1
  246. package/esm/components/List/List.mjs.map +1 -1
  247. package/esm/components/Loader/Loader.mjs +1 -1
  248. package/esm/components/Loader/Loader.mjs.map +1 -1
  249. package/esm/components/Loader/loaders/Bars.mjs.map +1 -1
  250. package/esm/components/Loader/loaders/Dots.mjs.map +1 -1
  251. package/esm/components/Loader/loaders/Oval.mjs.map +1 -1
  252. package/esm/components/MaskInput/MaskInput.mjs +37 -0
  253. package/esm/components/MaskInput/MaskInput.mjs.map +1 -0
  254. package/esm/components/MaskInput/use-mask-input-props.mjs +40 -0
  255. package/esm/components/MaskInput/use-mask-input-props.mjs.map +1 -0
  256. package/esm/components/Menu/Menu.mjs +1 -1
  257. package/esm/components/Menu/Menu.mjs.map +1 -1
  258. package/esm/components/Menu/MenuItem/MenuItem.mjs +1 -1
  259. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  260. package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs +1 -1
  261. package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs.map +1 -1
  262. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs +1 -1
  263. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  264. package/esm/components/Modal/Modal.mjs +1 -1
  265. package/esm/components/Modal/Modal.mjs.map +1 -1
  266. package/esm/components/ModalBase/ModalBaseBody.mjs +1 -1
  267. package/esm/components/ModalBase/ModalBaseBody.mjs.map +1 -1
  268. package/esm/components/ModalBase/ModalBaseTitle.mjs +1 -1
  269. package/esm/components/ModalBase/ModalBaseTitle.mjs.map +1 -1
  270. package/esm/components/NumberInput/NumberInput.mjs +32 -1
  271. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  272. package/esm/components/OverflowList/OverflowList.mjs +1 -1
  273. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  274. package/esm/components/Pagination/Pagination.mjs +1 -1
  275. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  276. package/esm/components/Pagination/PaginationEdges/PaginationEdges.mjs +1 -1
  277. package/esm/components/PasswordInput/PasswordInput.mjs +1 -1
  278. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  279. package/esm/components/Pill/Pill.mjs +1 -1
  280. package/esm/components/Pill/Pill.mjs.map +1 -1
  281. package/esm/components/Popover/Popover.mjs +1 -1
  282. package/esm/components/Popover/Popover.mjs.map +1 -1
  283. package/esm/components/Progress/Progress.mjs +1 -1
  284. package/esm/components/Progress/Progress.mjs.map +1 -1
  285. package/esm/components/Radio/Radio.mjs +1 -1
  286. package/esm/components/Radio/Radio.mjs.map +1 -1
  287. package/esm/components/Rating/Rating.mjs +1 -1
  288. package/esm/components/Rating/Rating.mjs.map +1 -1
  289. package/esm/components/RollingNumber/RollingNumber.mjs +252 -0
  290. package/esm/components/RollingNumber/RollingNumber.mjs.map +1 -0
  291. package/esm/components/RollingNumber/RollingNumber.module.css.mjs +5 -0
  292. package/esm/components/RollingNumber/RollingNumber.module.css.mjs.map +1 -0
  293. package/esm/components/ScrollArea/ScrollArea.mjs +36 -38
  294. package/esm/components/ScrollArea/ScrollArea.mjs.map +1 -1
  295. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs +3 -3
  296. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs.map +1 -1
  297. package/esm/components/ScrollArea/use-resize-observer.mjs +4 -3
  298. package/esm/components/ScrollArea/use-resize-observer.mjs.map +1 -1
  299. package/esm/components/SimpleGrid/SimpleGrid.mjs +1 -1
  300. package/esm/components/SimpleGrid/SimpleGrid.mjs.map +1 -1
  301. package/esm/components/Slider/RangeSlider/RangeSlider.mjs +1 -1
  302. package/esm/components/Slider/RangeSlider/RangeSlider.mjs.map +1 -1
  303. package/esm/components/Slider/Slider/Slider.mjs +1 -1
  304. package/esm/components/Slider/Slider/Slider.mjs.map +1 -1
  305. package/esm/components/Stepper/Stepper.mjs +9 -4
  306. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  307. package/esm/components/Switch/Switch.mjs +1 -1
  308. package/esm/components/Switch/Switch.mjs.map +1 -1
  309. package/esm/components/Table/Table.mjs +1 -1
  310. package/esm/components/Table/Table.mjs.map +1 -1
  311. package/esm/components/Tabs/Tabs.mjs +1 -1
  312. package/esm/components/Tabs/Tabs.mjs.map +1 -1
  313. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs +5 -3
  314. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs.map +1 -1
  315. package/esm/components/Timeline/Timeline.mjs +1 -1
  316. package/esm/components/Timeline/Timeline.mjs.map +1 -1
  317. package/esm/components/Tooltip/Tooltip.mjs +4 -2
  318. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  319. package/esm/components/Tooltip/TooltipFloating/TooltipFloating.mjs +1 -1
  320. package/esm/components/Tooltip/TooltipFloating/TooltipFloating.mjs.map +1 -1
  321. package/esm/components/Tooltip/use-tooltip.mjs +1 -1
  322. package/esm/components/Transition/Transition.mjs +20 -3
  323. package/esm/components/Transition/Transition.mjs.map +1 -1
  324. package/esm/components/Tree/FlatTreeNode.mjs +153 -0
  325. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -0
  326. package/esm/components/Tree/Tree.mjs +4 -2
  327. package/esm/components/Tree/Tree.mjs.map +1 -1
  328. package/esm/components/Tree/TreeNode.mjs +9 -5
  329. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  330. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs +24 -0
  331. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs.map +1 -0
  332. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs +22 -0
  333. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs.map +1 -0
  334. package/esm/components/Tree/merge-async-children/merge-async-children.mjs +24 -0
  335. package/esm/components/Tree/merge-async-children/merge-async-children.mjs.map +1 -0
  336. package/esm/components/Tree/move-tree-node/move-tree-node.mjs +89 -0
  337. package/esm/components/Tree/move-tree-node/move-tree-node.mjs.map +1 -0
  338. package/esm/components/Tree/use-tree-node-drag-drop.mjs +126 -0
  339. package/esm/components/Tree/use-tree-node-drag-drop.mjs.map +1 -0
  340. package/esm/components/TreeSelect/TreeSelect.mjs +819 -0
  341. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -0
  342. package/esm/components/TreeSelect/TreeSelect.module.css.mjs +5 -0
  343. package/esm/components/TreeSelect/TreeSelect.module.css.mjs.map +1 -0
  344. package/esm/components/TreeSelect/TreeSelectOption.mjs +151 -0
  345. package/esm/components/TreeSelect/TreeSelectOption.mjs.map +1 -0
  346. package/esm/components/TreeSelect/flatten-tree-select-data.mjs +32 -0
  347. package/esm/components/TreeSelect/flatten-tree-select-data.mjs.map +1 -0
  348. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs +43 -0
  349. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +1 -0
  350. package/esm/core/styles-api/use-styles/get-class-name/get-class-name.mjs +5 -5
  351. package/esm/core/styles-api/use-styles/get-class-name/get-class-name.mjs.map +1 -1
  352. package/esm/core/styles-api/use-styles/get-style/get-style.mjs +9 -13
  353. package/esm/core/styles-api/use-styles/get-style/get-style.mjs.map +1 -1
  354. package/esm/core/styles-api/use-styles/get-style/resolve-style/resolve-style.mjs +1 -1
  355. package/esm/core/styles-api/use-styles/get-style/resolve-style/resolve-style.mjs.map +1 -1
  356. package/esm/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.mjs +7 -4
  357. package/esm/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.mjs.map +1 -1
  358. package/esm/core/styles-api/use-styles/use-styles.mjs +40 -11
  359. package/esm/core/styles-api/use-styles/use-styles.mjs.map +1 -1
  360. package/esm/core/styles-api/use-styles/use-transformed-styles.mjs +7 -3
  361. package/esm/core/styles-api/use-styles/use-transformed-styles.mjs.map +1 -1
  362. package/esm/index.mjs +1 -2
  363. package/esm/index.mjs.map +1 -1
  364. package/lib/components/Collapse/Collapse.d.ts +1 -1
  365. package/lib/components/Combobox/use-combobox/use-virtualized-combobox.d.ts +2 -2
  366. package/lib/components/Input/use-input-props.d.ts +16 -16
  367. package/lib/components/MaskInput/MaskInput.d.ts +68 -0
  368. package/lib/components/MaskInput/index.d.ts +7 -0
  369. package/lib/components/MaskInput/use-mask-input-props.d.ts +428 -0
  370. package/lib/components/Menu/Menu.d.ts +2 -0
  371. package/lib/components/RollingNumber/RollingNumber.d.ts +39 -0
  372. package/lib/components/RollingNumber/index.d.ts +9 -0
  373. package/lib/components/ScrollArea/ScrollArea.d.ts +5 -0
  374. package/lib/components/Stepper/Stepper.d.ts +2 -0
  375. package/lib/components/Transition/Transition.d.ts +1 -1
  376. package/lib/components/Tree/FlatTreeNode.d.ts +34 -0
  377. package/lib/components/Tree/Tree.d.ts +2 -0
  378. package/lib/components/Tree/TreeNode.d.ts +2 -1
  379. package/lib/components/Tree/filter-tree-data/filter-tree-data.d.ts +4 -0
  380. package/lib/components/Tree/flatten-tree-data/flatten-tree-data.d.ts +15 -0
  381. package/lib/components/Tree/merge-async-children/merge-async-children.d.ts +2 -0
  382. package/lib/components/Tree/move-tree-node/move-tree-node.d.ts +11 -0
  383. package/lib/components/Tree/use-tree-node-drag-drop.d.ts +18 -0
  384. package/lib/components/TreeSelect/TreeSelect.d.ts +122 -0
  385. package/lib/components/TreeSelect/TreeSelectOption.d.ts +29 -0
  386. package/lib/components/TreeSelect/flatten-tree-select-data.d.ts +12 -0
  387. package/lib/components/TreeSelect/get-checked-values-by-strategy.d.ts +4 -0
  388. package/lib/components/TreeSelect/index.d.ts +13 -0
  389. package/lib/core/MantineProvider/MantineCssVariables/index.d.ts +1 -0
  390. package/lib/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.d.ts +2 -0
  391. package/lib/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.d.ts +2 -2
  392. package/lib/core/MantineProvider/color-functions/index.d.ts +0 -1
  393. package/lib/core/styles-api/use-styles/get-class-name/get-class-name.d.ts +7 -5
  394. package/lib/core/styles-api/use-styles/get-style/get-style.d.ts +5 -9
  395. package/lib/core/styles-api/use-styles/use-transformed-styles.d.ts +3 -1
  396. package/package.json +7 -7
  397. package/styles/AppShell.css +11 -1
  398. package/styles/AppShell.layer.css +11 -1
  399. package/styles/RollingNumber.css +50 -0
  400. package/styles/RollingNumber.layer.css +51 -0
  401. package/styles/Scroller.css +1 -0
  402. package/styles/Scroller.layer.css +1 -0
  403. package/styles/TreeSelect.css +113 -0
  404. package/styles/TreeSelect.layer.css +114 -0
  405. package/styles.css +220 -209
  406. package/styles.layer.css +220 -209
  407. package/cjs/components/Slider/utils/get-floating-value/get-gloating-value.cjs +0 -9
  408. package/cjs/components/Slider/utils/get-floating-value/get-gloating-value.cjs.map +0 -1
  409. package/esm/components/Slider/utils/get-floating-value/get-gloating-value.mjs +0 -7
  410. package/esm/components/Slider/utils/get-floating-value/get-gloating-value.mjs.map +0 -1
  411. package/lib/components/Slider/utils/get-floating-value/get-gloating-value.d.ts +0 -1
@@ -0,0 +1,821 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var hooks = require('@mantine/hooks');
7
+ require('../../core/utils/units-converters/rem.cjs');
8
+ require('clsx');
9
+ var useResolvedStylesApi = require('../../core/styles-api/use-resolved-styles-api/use-resolved-styles-api.cjs');
10
+ var useStyles = require('../../core/styles-api/use-styles/use-styles.cjs');
11
+ require('../../core/MantineProvider/Mantine.context.cjs');
12
+ require('../../core/MantineProvider/default-theme.cjs');
13
+ require('../../core/MantineProvider/MantineProvider.cjs');
14
+ require('../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs');
15
+ var useProps = require('../../core/MantineProvider/use-props/use-props.cjs');
16
+ require('../../core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs');
17
+ var extractStyleProps = require('../../core/Box/style-props/extract-style-props/extract-style-props.cjs');
18
+ require('../../core/Box/Box.cjs');
19
+ var factory = require('../../core/factory/factory.cjs');
20
+ require('../../core/DirectionProvider/DirectionProvider.cjs');
21
+ require('../Combobox/ComboboxChevron/ComboboxChevron.cjs');
22
+ var Combobox = require('../Combobox/Combobox.cjs');
23
+ require('../Combobox/ComboboxDropdown/ComboboxDropdown.cjs');
24
+ require('../Combobox/ComboboxOptions/ComboboxOptions.cjs');
25
+ require('../Combobox/ComboboxOption/ComboboxOption.cjs');
26
+ require('../Combobox/ComboboxTarget/ComboboxTarget.cjs');
27
+ require('../Combobox/ComboboxSearch/ComboboxSearch.cjs');
28
+ require('../Combobox/ComboboxEmpty/ComboboxEmpty.cjs');
29
+ require('../Combobox/ComboboxFooter/ComboboxFooter.cjs');
30
+ require('../Combobox/ComboboxHeader/ComboboxHeader.cjs');
31
+ require('../Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs');
32
+ require('../Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs');
33
+ require('../Combobox/ComboboxGroup/ComboboxGroup.cjs');
34
+ require('../Combobox/ComboboxClearButton/ComboboxClearButton.cjs');
35
+ require('../Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs');
36
+ require('../Checkbox/Checkbox.cjs');
37
+ require('../Checkbox/CheckboxGroup/CheckboxGroup.cjs');
38
+ require('../Checkbox/CheckboxIndicator/CheckboxIndicator.cjs');
39
+ require('../Checkbox/CheckboxCard/CheckboxCard.cjs');
40
+ var ScrollArea = require('../ScrollArea/ScrollArea.cjs');
41
+ var useCombobox = require('../Combobox/use-combobox/use-combobox.cjs');
42
+ require('../Combobox/Combobox.context.cjs');
43
+ var InputBase = require('../InputBase/InputBase.cjs');
44
+ var Pill = require('../Pill/Pill.cjs');
45
+ require('../Pill/PillGroup/PillGroup.cjs');
46
+ var PillsInput = require('../PillsInput/PillsInput.cjs');
47
+ require('../PillsInput/PillsInputField/PillsInputField.cjs');
48
+ require('../PillsInput/PillsInput.context.cjs');
49
+ require('../ScrollArea/ScrollArea.context.cjs');
50
+ var filterTreeData = require('../Tree/filter-tree-data/filter-tree-data.cjs');
51
+ var getChildrenNodesValues = require('../Tree/get-children-nodes-values/get-children-nodes-values.cjs');
52
+ var isNodeChecked = require('../Tree/is-node-checked/is-node-checked.cjs');
53
+ var isNodeIndeterminate = require('../Tree/is-node-indeterminate/is-node-indeterminate.cjs');
54
+ var useTree = require('../Tree/use-tree.cjs');
55
+ var flattenTreeSelectData = require('./flatten-tree-select-data.cjs');
56
+ var getCheckedValuesByStrategy = require('./get-checked-values-by-strategy.cjs');
57
+ var TreeSelectOption = require('./TreeSelectOption.cjs');
58
+ var TreeSelect_module = require('./TreeSelect.module.css.cjs');
59
+
60
+ const defaultProps = {
61
+ mode: "single",
62
+ allowDeselect: true,
63
+ checkedStrategy: "child",
64
+ maxValues: Infinity,
65
+ hiddenInputValuesDivider: ",",
66
+ clearSearchOnChange: true,
67
+ openOnFocus: true,
68
+ size: "sm",
69
+ withLines: true
70
+ };
71
+ const clearSectionOffset = {
72
+ xs: 41,
73
+ sm: 50,
74
+ md: 60,
75
+ lg: 72,
76
+ xl: 89
77
+ };
78
+ function getAncestorsToNode(value, nodes) {
79
+ for (const node of nodes) {
80
+ if (node.value === value) {
81
+ return [];
82
+ }
83
+ if (Array.isArray(node.children)) {
84
+ const path = getAncestorsToNode(value, node.children);
85
+ if (path !== null) {
86
+ return [node.value, ...path];
87
+ }
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ const TreeSelect = factory.genericFactory((_props) => {
93
+ const props = useProps.useProps("TreeSelect", defaultProps, _props);
94
+ const {
95
+ classNames,
96
+ className,
97
+ style,
98
+ styles,
99
+ unstyled,
100
+ vars,
101
+ size,
102
+ data,
103
+ mode,
104
+ value,
105
+ defaultValue,
106
+ onChange,
107
+ checkStrictly,
108
+ checkedStrategy,
109
+ defaultExpandedValues,
110
+ defaultExpandAll,
111
+ expandedValues,
112
+ onExpandedChange,
113
+ expandOnClick,
114
+ searchable,
115
+ searchValue,
116
+ defaultSearchValue,
117
+ onSearchChange,
118
+ filter,
119
+ nothingFoundMessage,
120
+ allowDeselect,
121
+ clearable,
122
+ clearSectionMode,
123
+ clearButtonProps,
124
+ maxValues,
125
+ maxDisplayedValues,
126
+ maxDisplayedValuesContent,
127
+ onRemove,
128
+ onClear,
129
+ renderNode,
130
+ withLines,
131
+ hiddenInputProps,
132
+ hiddenInputValuesDivider,
133
+ scrollAreaProps,
134
+ chevronColor,
135
+ maxDropdownHeight,
136
+ dropdownOpened,
137
+ defaultDropdownOpened,
138
+ onDropdownOpen,
139
+ onDropdownClose,
140
+ comboboxProps,
141
+ clearSearchOnChange,
142
+ openOnFocus,
143
+ variant,
144
+ onKeyDown,
145
+ onFocus,
146
+ onBlur,
147
+ onClick,
148
+ readOnly,
149
+ disabled,
150
+ radius,
151
+ rightSection,
152
+ rightSectionWidth,
153
+ rightSectionPointerEvents,
154
+ rightSectionProps,
155
+ leftSection,
156
+ leftSectionWidth,
157
+ leftSectionPointerEvents,
158
+ leftSectionProps,
159
+ inputContainer,
160
+ inputWrapperOrder,
161
+ withAsterisk,
162
+ labelProps,
163
+ descriptionProps,
164
+ errorProps,
165
+ wrapperProps,
166
+ description,
167
+ label,
168
+ error,
169
+ withErrorStyles,
170
+ name,
171
+ form,
172
+ id,
173
+ placeholder,
174
+ required,
175
+ mod,
176
+ attributes,
177
+ ...others
178
+ } = props;
179
+ const isMulti = mode === "multiple" || mode === "checkbox";
180
+ const isCheckbox = mode === "checkbox";
181
+ const _id = hooks.useId(id);
182
+ const combobox = useCombobox.useCombobox({
183
+ opened: dropdownOpened,
184
+ defaultOpened: defaultDropdownOpened,
185
+ onDropdownOpen: () => {
186
+ onDropdownOpen?.();
187
+ combobox.updateSelectedOptionIndex("active", { scrollIntoView: true });
188
+ },
189
+ onDropdownClose: () => {
190
+ onDropdownClose?.();
191
+ combobox.resetSelectedOption();
192
+ }
193
+ });
194
+ const initialExpanded = React.useMemo(() => {
195
+ if (defaultExpandAll) {
196
+ return useTree.getTreeExpandedState(data, "*");
197
+ }
198
+ if (defaultExpandedValues) {
199
+ return useTree.getTreeExpandedState(data, defaultExpandedValues);
200
+ }
201
+ return useTree.getTreeExpandedState(data, []);
202
+ }, []);
203
+ const expandedToRecord = React.useCallback(
204
+ (values) => {
205
+ if (!values) {
206
+ return void 0;
207
+ }
208
+ return useTree.getTreeExpandedState(data, values);
209
+ },
210
+ [data]
211
+ );
212
+ const [_expandedState, setExpandedState] = hooks.useUncontrolled({
213
+ value: expandedToRecord(expandedValues),
214
+ defaultValue: initialExpanded,
215
+ finalValue: {},
216
+ onChange: (val) => {
217
+ if (onExpandedChange) {
218
+ onExpandedChange(
219
+ Object.entries(val).filter(([, v]) => v).map(([k]) => k)
220
+ );
221
+ }
222
+ }
223
+ });
224
+ const toggleExpand = React.useCallback(
225
+ (nodeValue) => {
226
+ setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });
227
+ },
228
+ [_expandedState]
229
+ );
230
+ const initialSearchValue = React.useMemo(() => {
231
+ if (mode !== "single" || !defaultValue) {
232
+ return "";
233
+ }
234
+ const node = getChildrenNodesValues.findTreeNode(defaultValue, data);
235
+ return node ? typeof node.label === "string" ? node.label : "" : "";
236
+ }, []);
237
+ const [_searchValue, setSearchValue] = hooks.useUncontrolled({
238
+ value: searchValue,
239
+ defaultValue: defaultSearchValue,
240
+ finalValue: initialSearchValue,
241
+ onChange: onSearchChange
242
+ });
243
+ const handleSearchChange = (val) => {
244
+ setSearchValue(val);
245
+ combobox.resetSelectedOption();
246
+ };
247
+ const [_value, setValue] = hooks.useUncontrolled({
248
+ value,
249
+ defaultValue,
250
+ finalValue: isMulti ? [] : null,
251
+ onChange
252
+ });
253
+ const internalChecked = React.useMemo(() => {
254
+ if (!isCheckbox || !_value || !Array.isArray(_value)) {
255
+ return [];
256
+ }
257
+ if (checkStrictly) {
258
+ return _value;
259
+ }
260
+ return getCheckedValuesByStrategy.expandToLeafChecked(_value, data);
261
+ }, [isCheckbox, _value, data, checkStrictly]);
262
+ const filteredData = React.useMemo(() => {
263
+ if (!searchable || !_searchValue) {
264
+ return data;
265
+ }
266
+ if (mode === "single" && _value) {
267
+ const node = getChildrenNodesValues.findTreeNode(_value, data);
268
+ if (node && _searchValue === (typeof node.label === "string" ? node.label : "")) {
269
+ return data;
270
+ }
271
+ }
272
+ return filterTreeData.filterTreeData(data, _searchValue, filter);
273
+ }, [data, _searchValue, filter, searchable, mode, _value]);
274
+ const expandedForRender = React.useMemo(() => {
275
+ if (_searchValue && filteredData !== data) {
276
+ const expanded = { ..._expandedState };
277
+ const expandFilteredParents = (nodes) => {
278
+ for (const node of nodes) {
279
+ if (Array.isArray(node.children) && node.children.length > 0) {
280
+ expanded[node.value] = true;
281
+ expandFilteredParents(node.children);
282
+ }
283
+ }
284
+ };
285
+ expandFilteredParents(filteredData);
286
+ return expanded;
287
+ }
288
+ return _expandedState;
289
+ }, [filteredData, _expandedState, _searchValue, data]);
290
+ const flatNodes = React.useMemo(
291
+ () => flattenTreeSelectData.flattenTreeSelectData(filteredData, expandedForRender),
292
+ [filteredData, expandedForRender]
293
+ );
294
+ const flatNodesRef = React.useRef(flatNodes);
295
+ flatNodesRef.current = flatNodes;
296
+ const nodeLookup = React.useMemo(() => {
297
+ const lookup = {};
298
+ const walk = (nodes) => {
299
+ for (const node of nodes) {
300
+ lookup[node.value] = node;
301
+ if (Array.isArray(node.children)) {
302
+ walk(node.children);
303
+ }
304
+ }
305
+ };
306
+ walk(data);
307
+ return lookup;
308
+ }, [data]);
309
+ const getNodeLabel = (nodeValue) => {
310
+ const node = nodeLookup[nodeValue];
311
+ if (!node) {
312
+ return nodeValue;
313
+ }
314
+ return typeof node.label === "string" ? node.label : nodeValue;
315
+ };
316
+ const getStyles = useStyles.useStyles({
317
+ name: "TreeSelect",
318
+ classes: {},
319
+ props,
320
+ classNames,
321
+ styles,
322
+ unstyled,
323
+ attributes
324
+ });
325
+ const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi.useResolvedStylesApi({
326
+ props,
327
+ styles,
328
+ classNames
329
+ });
330
+ const {
331
+ styleProps,
332
+ rest: { type, autoComplete, ...rest }
333
+ } = extractStyleProps.extractStyleProps(others);
334
+ const handleOptionSubmit = (val) => {
335
+ if (mode === "single") {
336
+ if (expandOnClick) {
337
+ const node = getChildrenNodesValues.findTreeNode(val, data);
338
+ if (node && Array.isArray(node.children) && node.children.length > 0) {
339
+ toggleExpand(val);
340
+ return;
341
+ }
342
+ }
343
+ const nextValue = allowDeselect && val === _value ? null : val;
344
+ setValue(nextValue);
345
+ combobox.closeDropdown();
346
+ if (clearSearchOnChange) {
347
+ handleSearchChange(nextValue ? getNodeLabel(nextValue) : "");
348
+ }
349
+ } else if (mode === "multiple") {
350
+ if (expandOnClick) {
351
+ const node = getChildrenNodesValues.findTreeNode(val, data);
352
+ if (node && Array.isArray(node.children) && node.children.length > 0) {
353
+ toggleExpand(val);
354
+ return;
355
+ }
356
+ }
357
+ if (clearSearchOnChange) {
358
+ setSearchValue("");
359
+ }
360
+ const arr = _value || [];
361
+ if (arr.includes(val)) {
362
+ setValue(arr.filter((v) => v !== val));
363
+ onRemove?.(val);
364
+ } else if (arr.length < (maxValues ?? Infinity)) {
365
+ setValue([...arr, val]);
366
+ }
367
+ } else if (mode === "checkbox") {
368
+ if (clearSearchOnChange) {
369
+ setSearchValue("");
370
+ }
371
+ const nodeChecked = checkStrictly ? internalChecked.includes(val) : isNodeChecked.isNodeChecked(val, data, internalChecked);
372
+ let newInternalChecked;
373
+ if (checkStrictly) {
374
+ newInternalChecked = nodeChecked ? internalChecked.filter((v) => v !== val) : [...internalChecked, val];
375
+ } else {
376
+ const childLeaves = getChildrenNodesValues.getChildrenNodesValues(val, data);
377
+ if (nodeChecked) {
378
+ newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));
379
+ } else {
380
+ newInternalChecked = [.../* @__PURE__ */ new Set([...internalChecked, ...childLeaves])];
381
+ }
382
+ }
383
+ const newValue = getCheckedValuesByStrategy.checkedToValue(newInternalChecked, data, checkedStrategy);
384
+ if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {
385
+ return;
386
+ }
387
+ setValue(newValue);
388
+ if (expandOnClick) {
389
+ const node = getChildrenNodesValues.findTreeNode(val, data);
390
+ if (node && Array.isArray(node.children) && node.children.length > 0) {
391
+ if (!_expandedState[val]) {
392
+ toggleExpand(val);
393
+ }
394
+ }
395
+ }
396
+ }
397
+ };
398
+ const handleKeyDown = (event) => {
399
+ onKeyDown?.(event);
400
+ if (event.key === " " && !searchable && isMulti) {
401
+ event.preventDefault();
402
+ combobox.toggleDropdown();
403
+ }
404
+ if (event.key === "Backspace" && _searchValue.length === 0 && isMulti) {
405
+ const arr = _value || [];
406
+ if (arr.length > 0) {
407
+ const removed = arr[arr.length - 1];
408
+ onRemove?.(removed);
409
+ setValue(arr.slice(0, -1));
410
+ }
411
+ }
412
+ if (!combobox.dropdownOpened) {
413
+ return;
414
+ }
415
+ const index = combobox.getSelectedOptionIndex();
416
+ if (index < 0 || index >= flatNodesRef.current.length) {
417
+ return;
418
+ }
419
+ const currentNode = flatNodesRef.current[index];
420
+ if (event.key === "ArrowRight") {
421
+ if (currentNode.hasChildren && !currentNode.expanded) {
422
+ event.preventDefault();
423
+ toggleExpand(currentNode.node.value);
424
+ }
425
+ }
426
+ if (event.key === "ArrowLeft") {
427
+ if (currentNode.hasChildren && currentNode.expanded) {
428
+ event.preventDefault();
429
+ toggleExpand(currentNode.node.value);
430
+ } else if (currentNode.parent) {
431
+ event.preventDefault();
432
+ const parentIndex = flatNodesRef.current.findIndex(
433
+ (n) => n.node.value === currentNode.parent
434
+ );
435
+ if (parentIndex >= 0) {
436
+ combobox.selectOption(parentIndex);
437
+ }
438
+ }
439
+ }
440
+ };
441
+ React.useEffect(() => {
442
+ if (mode !== "single" || !searchable) {
443
+ return;
444
+ }
445
+ if (value === null) {
446
+ handleSearchChange("");
447
+ } else if (typeof value === "string") {
448
+ handleSearchChange(getNodeLabel(value));
449
+ }
450
+ }, [value]);
451
+ const prevDropdownOpenedRef = React.useRef(false);
452
+ React.useEffect(() => {
453
+ if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {
454
+ const targets = Array.isArray(_value) ? _value : [_value];
455
+ const newExpanded = { ..._expandedState };
456
+ let changed = false;
457
+ for (const target of targets) {
458
+ const ancestors = getAncestorsToNode(target, data);
459
+ if (ancestors) {
460
+ for (const a of ancestors) {
461
+ if (!newExpanded[a]) {
462
+ newExpanded[a] = true;
463
+ changed = true;
464
+ }
465
+ }
466
+ }
467
+ }
468
+ if (changed) {
469
+ setExpandedState(newExpanded);
470
+ requestAnimationFrame(() => {
471
+ combobox.updateSelectedOptionIndex("active", { scrollIntoView: true });
472
+ });
473
+ }
474
+ }
475
+ prevDropdownOpenedRef.current = combobox.dropdownOpened;
476
+ });
477
+ const clearButton = /* @__PURE__ */ jsxRuntime.jsx(
478
+ Combobox.Combobox.ClearButton,
479
+ {
480
+ ...clearButtonProps,
481
+ onClear: () => {
482
+ onClear?.();
483
+ setValue(isMulti ? [] : null);
484
+ handleSearchChange("");
485
+ }
486
+ }
487
+ );
488
+ const hasValue = isMulti ? Array.isArray(_value) && _value.length > 0 : _value != null && _value !== "";
489
+ const _clearable = clearable && hasValue && !disabled && !readOnly;
490
+ const singleDisplayLabel = React.useMemo(() => {
491
+ if (mode !== "single" || !_value) {
492
+ return "";
493
+ }
494
+ return getNodeLabel(_value);
495
+ }, [mode, _value, nodeLookup]);
496
+ const displayValues = React.useMemo(() => {
497
+ if (!isMulti || !Array.isArray(_value)) {
498
+ return [];
499
+ }
500
+ return _value;
501
+ }, [isMulti, _value]);
502
+ const pillsListStyle = _clearable && isMulti ? { paddingInlineEnd: clearSectionOffset[size] ?? clearSectionOffset.sm } : void 0;
503
+ const visiblePills = maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;
504
+ const overflowCount = maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;
505
+ const pills = visiblePills.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
506
+ Pill.Pill,
507
+ {
508
+ withRemoveButton: !readOnly,
509
+ onRemove: () => {
510
+ if (isCheckbox) {
511
+ const childLeaves = checkStrictly ? [item] : getChildrenNodesValues.getChildrenNodesValues(item, data);
512
+ const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));
513
+ setValue(getCheckedValuesByStrategy.checkedToValue(newInternal, data, checkedStrategy));
514
+ } else {
515
+ setValue(_value.filter((v) => v !== item));
516
+ }
517
+ onRemove?.(item);
518
+ },
519
+ unstyled,
520
+ disabled,
521
+ ...getStyles("pill"),
522
+ children: getNodeLabel(item)
523
+ },
524
+ `${item}-${index}`
525
+ ));
526
+ if (overflowCount > 0) {
527
+ const overflowContent = typeof maxDisplayedValuesContent === "function" ? maxDisplayedValuesContent(overflowCount) : maxDisplayedValuesContent || `+${overflowCount} more`;
528
+ pills.push(
529
+ /* @__PURE__ */ jsxRuntime.jsx(Pill.Pill, { unstyled, disabled, ...getStyles("pill"), children: overflowContent }, "__overflow")
530
+ );
531
+ }
532
+ const isEmpty = flatNodes.length === 0;
533
+ const options = flatNodes.map((flatNode) => {
534
+ const isSelected = mode === "single" ? _value === flatNode.node.value : mode === "multiple" ? (_value || []).includes(flatNode.node.value) : false;
535
+ const nodeChecked = isCheckbox ? checkStrictly ? internalChecked.includes(flatNode.node.value) : isNodeChecked.isNodeChecked(flatNode.node.value, data, internalChecked) : false;
536
+ const nodeIndeterminate = isCheckbox && !checkStrictly ? isNodeIndeterminate.isNodeIndeterminate(flatNode.node.value, data, internalChecked) : false;
537
+ return /* @__PURE__ */ jsxRuntime.jsx(
538
+ TreeSelectOption.TreeSelectOption,
539
+ {
540
+ node: flatNode.node,
541
+ level: flatNode.level,
542
+ expanded: flatNode.expanded,
543
+ hasChildren: flatNode.hasChildren,
544
+ selected: isSelected,
545
+ checked: nodeChecked,
546
+ indeterminate: nodeIndeterminate,
547
+ showCheckbox: isCheckbox,
548
+ isLastChild: flatNode.isLastChild,
549
+ lineGuides: flatNode.lineGuides,
550
+ withLines: !!withLines,
551
+ onToggleExpand: toggleExpand,
552
+ renderNode
553
+ },
554
+ flatNode.node.value
555
+ );
556
+ });
557
+ const dropdown = /* @__PURE__ */ jsxRuntime.jsx(Combobox.Combobox.Dropdown, { hidden: readOnly || disabled, children: /* @__PURE__ */ jsxRuntime.jsxs(Combobox.Combobox.Options, { className: TreeSelect_module.optionsWrapper, children: [
558
+ /* @__PURE__ */ jsxRuntime.jsx(
559
+ ScrollArea.ScrollArea.Autosize,
560
+ {
561
+ mah: maxDropdownHeight ?? 220,
562
+ type: "scroll",
563
+ scrollbarSize: "var(--combobox-padding)",
564
+ offsetScrollbars: "y",
565
+ ...scrollAreaProps,
566
+ children: options
567
+ }
568
+ ),
569
+ isEmpty && nothingFoundMessage && /* @__PURE__ */ jsxRuntime.jsx(Combobox.Combobox.Empty, { children: nothingFoundMessage })
570
+ ] }) });
571
+ if (isMulti) {
572
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
573
+ /* @__PURE__ */ jsxRuntime.jsxs(
574
+ Combobox.Combobox,
575
+ {
576
+ store: combobox,
577
+ classNames: resolvedClassNames,
578
+ styles: resolvedStyles,
579
+ unstyled,
580
+ size,
581
+ readOnly,
582
+ __staticSelector: "TreeSelect",
583
+ attributes,
584
+ onOptionSubmit: handleOptionSubmit,
585
+ ...comboboxProps,
586
+ children: [
587
+ /* @__PURE__ */ jsxRuntime.jsx(Combobox.Combobox.DropdownTarget, { children: /* @__PURE__ */ jsxRuntime.jsx(
588
+ PillsInput.PillsInput,
589
+ {
590
+ ...styleProps,
591
+ __staticSelector: "TreeSelect",
592
+ classNames: resolvedClassNames,
593
+ styles: resolvedStyles,
594
+ unstyled,
595
+ size,
596
+ className,
597
+ style,
598
+ variant,
599
+ disabled,
600
+ radius,
601
+ __defaultRightSection: /* @__PURE__ */ jsxRuntime.jsx(
602
+ Combobox.Combobox.Chevron,
603
+ {
604
+ size,
605
+ error,
606
+ unstyled,
607
+ color: chevronColor
608
+ }
609
+ ),
610
+ __clearSection: clearButton,
611
+ __clearable: _clearable,
612
+ __clearSectionMode: clearSectionMode,
613
+ rightSection,
614
+ rightSectionPointerEvents: rightSectionPointerEvents || "none",
615
+ rightSectionWidth,
616
+ rightSectionProps,
617
+ leftSection,
618
+ leftSectionWidth,
619
+ leftSectionPointerEvents,
620
+ leftSectionProps,
621
+ inputContainer,
622
+ inputWrapperOrder,
623
+ withAsterisk,
624
+ labelProps,
625
+ descriptionProps,
626
+ errorProps,
627
+ wrapperProps,
628
+ description,
629
+ label,
630
+ error,
631
+ withErrorStyles,
632
+ __stylesApiProps: {
633
+ ...props,
634
+ rightSectionPointerEvents: rightSectionPointerEvents || "none",
635
+ multiline: true
636
+ },
637
+ pointer: !searchable,
638
+ onClick: () => searchable ? combobox.openDropdown() : combobox.toggleDropdown(),
639
+ "data-expanded": combobox.dropdownOpened || void 0,
640
+ id: _id,
641
+ required,
642
+ mod,
643
+ attributes,
644
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
645
+ Pill.Pill.Group,
646
+ {
647
+ attributes,
648
+ disabled,
649
+ unstyled,
650
+ ...getStyles("pillsList", { style: pillsListStyle }),
651
+ children: [
652
+ pills,
653
+ /* @__PURE__ */ jsxRuntime.jsx(Combobox.Combobox.EventsTarget, { autoComplete, children: /* @__PURE__ */ jsxRuntime.jsx(
654
+ PillsInput.PillsInput.Field,
655
+ {
656
+ ...rest,
657
+ id: _id,
658
+ placeholder,
659
+ type: !searchable && !placeholder ? "hidden" : "visible",
660
+ ...getStyles("inputField"),
661
+ unstyled,
662
+ onFocus: (event) => {
663
+ onFocus?.(event);
664
+ if (openOnFocus && searchable) {
665
+ combobox.openDropdown();
666
+ }
667
+ },
668
+ onBlur: (event) => {
669
+ onBlur?.(event);
670
+ combobox.closeDropdown();
671
+ handleSearchChange("");
672
+ },
673
+ onKeyDown: handleKeyDown,
674
+ value: _searchValue,
675
+ onChange: (event) => {
676
+ handleSearchChange(event.currentTarget.value);
677
+ if (searchable) {
678
+ combobox.openDropdown();
679
+ }
680
+ },
681
+ disabled,
682
+ readOnly: readOnly || !searchable,
683
+ pointer: !searchable
684
+ }
685
+ ) })
686
+ ]
687
+ }
688
+ )
689
+ }
690
+ ) }),
691
+ dropdown
692
+ ]
693
+ }
694
+ ),
695
+ /* @__PURE__ */ jsxRuntime.jsx(
696
+ Combobox.Combobox.HiddenInput,
697
+ {
698
+ name,
699
+ valuesDivider: hiddenInputValuesDivider,
700
+ value: _value,
701
+ form,
702
+ disabled,
703
+ ...hiddenInputProps
704
+ }
705
+ )
706
+ ] });
707
+ }
708
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
709
+ /* @__PURE__ */ jsxRuntime.jsxs(
710
+ Combobox.Combobox,
711
+ {
712
+ store: combobox,
713
+ __staticSelector: "TreeSelect",
714
+ classNames: resolvedClassNames,
715
+ styles: resolvedStyles,
716
+ unstyled,
717
+ readOnly,
718
+ size,
719
+ attributes,
720
+ onOptionSubmit: handleOptionSubmit,
721
+ ...comboboxProps,
722
+ children: [
723
+ /* @__PURE__ */ jsxRuntime.jsx(Combobox.Combobox.Target, { targetType: searchable ? "input" : "button", autoComplete, children: /* @__PURE__ */ jsxRuntime.jsx(
724
+ InputBase.InputBase,
725
+ {
726
+ id: _id,
727
+ __defaultRightSection: /* @__PURE__ */ jsxRuntime.jsx(
728
+ Combobox.Combobox.Chevron,
729
+ {
730
+ size,
731
+ error,
732
+ unstyled,
733
+ color: chevronColor
734
+ }
735
+ ),
736
+ __clearSection: clearButton,
737
+ __clearable: _clearable,
738
+ __clearSectionMode: clearSectionMode,
739
+ rightSection,
740
+ rightSectionPointerEvents: rightSectionPointerEvents || "none",
741
+ ...rest,
742
+ ...styleProps,
743
+ size,
744
+ __staticSelector: "TreeSelect",
745
+ disabled,
746
+ readOnly: readOnly || !searchable,
747
+ value: searchable ? _searchValue : singleDisplayLabel,
748
+ onChange: (event) => {
749
+ handleSearchChange(event.currentTarget.value);
750
+ combobox.openDropdown();
751
+ },
752
+ onFocus: (event) => {
753
+ if (openOnFocus && searchable) {
754
+ combobox.openDropdown();
755
+ }
756
+ onFocus?.(event);
757
+ },
758
+ onBlur: (event) => {
759
+ if (searchable) {
760
+ combobox.closeDropdown();
761
+ }
762
+ handleSearchChange(_value ? getNodeLabel(_value) : "");
763
+ onBlur?.(event);
764
+ },
765
+ onClick: (event) => {
766
+ searchable ? combobox.openDropdown() : combobox.toggleDropdown();
767
+ onClick?.(event);
768
+ },
769
+ onKeyDown: handleKeyDown,
770
+ classNames: resolvedClassNames,
771
+ styles: resolvedStyles,
772
+ unstyled,
773
+ pointer: !searchable,
774
+ error,
775
+ attributes,
776
+ className,
777
+ style,
778
+ variant,
779
+ radius,
780
+ leftSection,
781
+ leftSectionWidth,
782
+ leftSectionPointerEvents,
783
+ leftSectionProps,
784
+ rightSectionWidth,
785
+ rightSectionProps,
786
+ inputContainer,
787
+ inputWrapperOrder,
788
+ withAsterisk,
789
+ labelProps,
790
+ descriptionProps,
791
+ errorProps,
792
+ wrapperProps,
793
+ description,
794
+ label,
795
+ withErrorStyles,
796
+ placeholder,
797
+ required,
798
+ mod
799
+ }
800
+ ) }),
801
+ dropdown
802
+ ]
803
+ }
804
+ ),
805
+ /* @__PURE__ */ jsxRuntime.jsx(
806
+ Combobox.Combobox.HiddenInput,
807
+ {
808
+ value: _value,
809
+ name,
810
+ form,
811
+ disabled,
812
+ ...hiddenInputProps
813
+ }
814
+ )
815
+ ] });
816
+ });
817
+ TreeSelect.classes = { ...InputBase.InputBase.classes, ...Combobox.Combobox.classes };
818
+ TreeSelect.displayName = "@mantine/core/TreeSelect";
819
+
820
+ exports.TreeSelect = TreeSelect;
821
+ //# sourceMappingURL=TreeSelect.cjs.map