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