@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,252 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useRef, useState } from 'react';
4
+ import { useDidUpdate } from '@mantine/hooks';
5
+ import '../../core/utils/units-converters/rem.mjs';
6
+ import { createVarsResolver } from '../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs';
7
+ import 'clsx';
8
+ import '../../core/MantineProvider/Mantine.context.mjs';
9
+ import '../../core/MantineProvider/default-theme.mjs';
10
+ import '../../core/MantineProvider/MantineProvider.mjs';
11
+ import '../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';
12
+ import { useProps } from '../../core/MantineProvider/use-props/use-props.mjs';
13
+ import '../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';
14
+ import { useStyles } from '../../core/styles-api/use-styles/use-styles.mjs';
15
+ import { Box } from '../../core/Box/Box.mjs';
16
+ import { factory } from '../../core/factory/factory.mjs';
17
+ import '../../core/DirectionProvider/DirectionProvider.mjs';
18
+ import classes from './RollingNumber.module.css.mjs';
19
+
20
+ const DIGITS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
21
+ function getDigitParts(value, decimalScale, fixedDecimalScale) {
22
+ const abs = Math.abs(value);
23
+ let str = decimalScale !== void 0 ? abs.toFixed(decimalScale) : String(abs);
24
+ if (!fixedDecimalScale && decimalScale !== void 0) {
25
+ const parts = str.split(".");
26
+ if (parts[1]) {
27
+ const trimmed = parts[1].replace(/0+$/, "");
28
+ str = trimmed ? `${parts[0]}.${trimmed}` : parts[0];
29
+ }
30
+ }
31
+ const dotIdx = str.indexOf(".");
32
+ const intStr = dotIdx >= 0 ? str.slice(0, dotIdx) : str;
33
+ const fracStr = dotIdx >= 0 ? str.slice(dotIdx + 1) : "";
34
+ return {
35
+ negative: value < 0,
36
+ intDigits: intStr.split(""),
37
+ fracDigits: fracStr ? fracStr.split("") : [],
38
+ hasDecimal: dotIdx >= 0
39
+ };
40
+ }
41
+ function buildAccessibleValue(value, prefix, suffix, decimalSeparator, thousandSeparator, decimalScale, fixedDecimalScale) {
42
+ const parts = getDigitParts(value, decimalScale, fixedDecimalScale);
43
+ let intStr = parts.intDigits.join("");
44
+ if (thousandSeparator) {
45
+ const sep = typeof thousandSeparator === "string" ? thousandSeparator : ",";
46
+ intStr = intStr.replace(/\B(?=(\d{3})+(?!\d))/g, sep);
47
+ }
48
+ let result = parts.negative ? `-${intStr}` : intStr;
49
+ if (parts.fracDigits.length > 0) {
50
+ result += `${decimalSeparator}${parts.fracDigits.join("")}`;
51
+ }
52
+ return `${prefix || ""}${result}${suffix || ""}`;
53
+ }
54
+ const defaultProps = {
55
+ animationDuration: 600,
56
+ timingFunction: "ease",
57
+ decimalSeparator: ".",
58
+ tabularNumbers: true
59
+ };
60
+ const varsResolver = createVarsResolver(
61
+ (_, { animationDuration, timingFunction }) => ({
62
+ root: {
63
+ "--rn-duration": `${animationDuration}ms`,
64
+ "--rn-timing-function": timingFunction
65
+ }
66
+ })
67
+ );
68
+ function DigitColumn({ digit, getStyles, previousDigit, empty }) {
69
+ const digitIndex = DIGITS.indexOf(digit);
70
+ const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;
71
+ const direction = prevIndex === -1 || digitIndex >= prevIndex ? "up" : "down";
72
+ const digitStyles = getStyles("digit");
73
+ const columnStyles = getStyles("digitColumn");
74
+ return /* @__PURE__ */ jsx("span", { ...digitStyles, "data-empty": empty || void 0, "aria-hidden": "true", children: /* @__PURE__ */ jsx(
75
+ "span",
76
+ {
77
+ ...columnStyles,
78
+ style: { ...columnStyles.style, transform: `translateY(${-digitIndex}em)` },
79
+ "data-direction": direction,
80
+ children: DIGITS.map((d) => /* @__PURE__ */ jsx("span", { children: d }, d))
81
+ }
82
+ ) });
83
+ }
84
+ const RollingNumber = factory((_props) => {
85
+ const props = useProps("RollingNumber", defaultProps, _props);
86
+ const {
87
+ classNames,
88
+ className,
89
+ style,
90
+ styles,
91
+ unstyled,
92
+ vars,
93
+ value,
94
+ prefix,
95
+ suffix,
96
+ decimalSeparator,
97
+ thousandSeparator,
98
+ decimalScale,
99
+ fixedDecimalScale,
100
+ animationDuration,
101
+ timingFunction,
102
+ tabularNumbers,
103
+ mod,
104
+ attributes,
105
+ ...others
106
+ } = props;
107
+ const getStyles = useStyles({
108
+ name: "RollingNumber",
109
+ classes,
110
+ props,
111
+ className,
112
+ style,
113
+ classNames,
114
+ styles,
115
+ unstyled,
116
+ attributes,
117
+ vars,
118
+ varsResolver
119
+ });
120
+ const previousValueRef = useRef(value);
121
+ const [previousValue, setPreviousValue] = useState(value);
122
+ useDidUpdate(() => {
123
+ setPreviousValue(previousValueRef.current);
124
+ previousValueRef.current = value;
125
+ }, [value]);
126
+ const current = getDigitParts(value, decimalScale, fixedDecimalScale);
127
+ const prev = getDigitParts(previousValue, decimalScale, fixedDecimalScale);
128
+ const maxIntLen = Math.max(current.intDigits.length, prev.intDigits.length);
129
+ const maxFracLen = Math.max(current.fracDigits.length, prev.fracDigits.length);
130
+ const currIntPadded = [
131
+ ...Array(maxIntLen - current.intDigits.length).fill(null),
132
+ ...current.intDigits
133
+ ];
134
+ const prevIntPadded = [
135
+ ...Array(maxIntLen - prev.intDigits.length).fill(null),
136
+ ...prev.intDigits
137
+ ];
138
+ const currFracPadded = [
139
+ ...current.fracDigits,
140
+ ...Array(maxFracLen - current.fracDigits.length).fill(null)
141
+ ];
142
+ const prevFracPadded = [
143
+ ...prev.fracDigits,
144
+ ...Array(maxFracLen - prev.fracDigits.length).fill(null)
145
+ ];
146
+ const sep = thousandSeparator ? typeof thousandSeparator === "string" ? thousandSeparator : "," : null;
147
+ const slots = [];
148
+ if (prefix) {
149
+ prefix.split("").forEach((c, i) => {
150
+ slots.push(
151
+ /* @__PURE__ */ jsx("span", { ...getStyles("char"), "aria-hidden": "true", children: c }, `prefix-${i}`)
152
+ );
153
+ });
154
+ }
155
+ if (current.negative || prev.negative) {
156
+ const signEmpty = !current.negative;
157
+ const charStyles = getStyles("char");
158
+ slots.push(
159
+ /* @__PURE__ */ jsx("span", { ...charStyles, "data-empty": signEmpty || void 0, "aria-hidden": "true", children: "-" }, "sign")
160
+ );
161
+ }
162
+ for (let i = 0; i < maxIntLen; i++) {
163
+ const posFromRight = maxIntLen - 1 - i;
164
+ const currDigit = currIntPadded[i];
165
+ const prevDigit = prevIntPadded[i];
166
+ const isEmpty = currDigit === null;
167
+ slots.push(
168
+ /* @__PURE__ */ jsx(
169
+ DigitColumn,
170
+ {
171
+ digit: currDigit ?? "0",
172
+ previousDigit: prevDigit,
173
+ getStyles,
174
+ empty: isEmpty
175
+ },
176
+ `int-${posFromRight}`
177
+ )
178
+ );
179
+ if (sep && posFromRight > 0 && posFromRight % 3 === 0) {
180
+ const charStyles = getStyles("char");
181
+ slots.push(
182
+ /* @__PURE__ */ jsx(
183
+ "span",
184
+ {
185
+ ...charStyles,
186
+ "data-empty": isEmpty || void 0,
187
+ "aria-hidden": "true",
188
+ children: sep
189
+ },
190
+ `sep-${posFromRight}`
191
+ )
192
+ );
193
+ }
194
+ }
195
+ if (current.hasDecimal || prev.hasDecimal) {
196
+ const decEmpty = !current.hasDecimal;
197
+ const charStyles = getStyles("char");
198
+ slots.push(
199
+ /* @__PURE__ */ jsx("span", { ...charStyles, "data-empty": decEmpty || void 0, "aria-hidden": "true", children: decimalSeparator }, "dec")
200
+ );
201
+ }
202
+ for (let i = 0; i < maxFracLen; i++) {
203
+ const currDigit = currFracPadded[i];
204
+ const prevDigit = prevFracPadded[i];
205
+ const isEmpty = currDigit === null;
206
+ slots.push(
207
+ /* @__PURE__ */ jsx(
208
+ DigitColumn,
209
+ {
210
+ digit: currDigit ?? "0",
211
+ previousDigit: prevDigit,
212
+ getStyles,
213
+ empty: isEmpty
214
+ },
215
+ `frac-${i}`
216
+ )
217
+ );
218
+ }
219
+ if (suffix) {
220
+ suffix.split("").forEach((c, i) => {
221
+ slots.push(
222
+ /* @__PURE__ */ jsx("span", { ...getStyles("char"), "aria-hidden": "true", children: c }, `suffix-${i}`)
223
+ );
224
+ });
225
+ }
226
+ const accessibleValue = buildAccessibleValue(
227
+ value,
228
+ prefix,
229
+ suffix,
230
+ decimalSeparator,
231
+ thousandSeparator,
232
+ decimalScale,
233
+ fixedDecimalScale
234
+ );
235
+ return /* @__PURE__ */ jsx(
236
+ Box,
237
+ {
238
+ ...getStyles("root"),
239
+ mod: [{ "tabular-numbers": tabularNumbers }, mod],
240
+ role: "status",
241
+ "aria-label": accessibleValue,
242
+ ...others,
243
+ children: slots
244
+ }
245
+ );
246
+ });
247
+ RollingNumber.classes = classes;
248
+ RollingNumber.varsResolver = varsResolver;
249
+ RollingNumber.displayName = "@mantine/core/RollingNumber";
250
+
251
+ export { RollingNumber };
252
+ //# sourceMappingURL=RollingNumber.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RollingNumber.mjs","sources":["../../../src/components/RollingNumber/RollingNumber.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport classes from './RollingNumber.module.css';\n\nexport type RollingNumberStylesNames = 'root' | 'digit' | 'digitColumn' | 'char';\nexport type RollingNumberCssVariables = {\n root: '--rn-duration' | '--rn-timing-function';\n};\n\nconst DIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n\nfunction getDigitParts(\n value: number,\n decimalScale: number | undefined,\n fixedDecimalScale: boolean | undefined\n) {\n const abs = Math.abs(value);\n let str = decimalScale !== undefined ? abs.toFixed(decimalScale) : String(abs);\n\n if (!fixedDecimalScale && decimalScale !== undefined) {\n const parts = str.split('.');\n if (parts[1]) {\n const trimmed = parts[1].replace(/0+$/, '');\n str = trimmed ? `${parts[0]}.${trimmed}` : parts[0];\n }\n }\n\n const dotIdx = str.indexOf('.');\n const intStr = dotIdx >= 0 ? str.slice(0, dotIdx) : str;\n const fracStr = dotIdx >= 0 ? str.slice(dotIdx + 1) : '';\n\n return {\n negative: value < 0,\n intDigits: intStr.split(''),\n fracDigits: fracStr ? fracStr.split('') : [],\n hasDecimal: dotIdx >= 0,\n };\n}\n\nfunction buildAccessibleValue(\n value: number,\n prefix: string | undefined,\n suffix: string | undefined,\n decimalSeparator: string,\n thousandSeparator: string | boolean | undefined,\n decimalScale: number | undefined,\n fixedDecimalScale: boolean | undefined\n): string {\n const parts = getDigitParts(value, decimalScale, fixedDecimalScale);\n let intStr = parts.intDigits.join('');\n\n if (thousandSeparator) {\n const sep = typeof thousandSeparator === 'string' ? thousandSeparator : ',';\n intStr = intStr.replace(/\\B(?=(\\d{3})+(?!\\d))/g, sep);\n }\n\n let result = parts.negative ? `-${intStr}` : intStr;\n if (parts.fracDigits.length > 0) {\n result += `${decimalSeparator}${parts.fracDigits.join('')}`;\n }\n\n return `${prefix || ''}${result}${suffix || ''}`;\n}\n\nexport interface RollingNumberProps\n extends BoxProps, StylesApiProps<RollingNumberFactory>, ElementProps<'div'> {\n /** Number value to display */\n value: number;\n\n /** Prefix added before the value */\n prefix?: string;\n\n /** Suffix added after the value */\n suffix?: string;\n\n /** Character used as a decimal separator @default '.' */\n decimalSeparator?: string;\n\n /** Character used to separate thousands, set to `true` for `,` @default false */\n thousandSeparator?: string | boolean;\n\n /** Number of decimal places to display */\n decimalScale?: number;\n\n /** If set, trailing zeros are added to match `decimalScale` @default false */\n fixedDecimalScale?: boolean;\n\n /** Animation duration in milliseconds @default 600 */\n animationDuration?: number;\n\n /** CSS timing function for animation @default 'ease' */\n timingFunction?: string;\n\n /** If set, use tabular (monospace) numbers @default true */\n tabularNumbers?: boolean;\n}\n\nexport type RollingNumberFactory = Factory<{\n props: RollingNumberProps;\n ref: HTMLDivElement;\n stylesNames: RollingNumberStylesNames;\n vars: RollingNumberCssVariables;\n}>;\n\nconst defaultProps = {\n animationDuration: 600,\n timingFunction: 'ease',\n decimalSeparator: '.',\n tabularNumbers: true,\n} satisfies Partial<RollingNumberProps>;\n\nconst varsResolver = createVarsResolver<RollingNumberFactory>(\n (_, { animationDuration, timingFunction }) => ({\n root: {\n '--rn-duration': `${animationDuration}ms`,\n '--rn-timing-function': timingFunction,\n },\n })\n);\n\ninterface DigitColumnProps {\n digit: string;\n getStyles: ReturnType<typeof useStyles<RollingNumberFactory>>;\n previousDigit: string | null;\n empty?: boolean;\n}\n\nfunction DigitColumn({ digit, getStyles, previousDigit, empty }: DigitColumnProps) {\n const digitIndex = DIGITS.indexOf(digit);\n const prevIndex = previousDigit !== null ? DIGITS.indexOf(previousDigit) : -1;\n const direction = prevIndex === -1 || digitIndex >= prevIndex ? 'up' : 'down';\n const digitStyles = getStyles('digit');\n const columnStyles = getStyles('digitColumn');\n\n return (\n <span {...digitStyles} data-empty={empty || undefined} aria-hidden=\"true\">\n <span\n {...columnStyles}\n style={{ ...columnStyles.style, transform: `translateY(${-digitIndex}em)` }}\n data-direction={direction}\n >\n {DIGITS.map((d) => (\n <span key={d}>{d}</span>\n ))}\n </span>\n </span>\n );\n}\n\nexport const RollingNumber = factory<RollingNumberFactory>((_props) => {\n const props = useProps('RollingNumber', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n animationDuration,\n timingFunction,\n tabularNumbers,\n mod,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RollingNumberFactory>({\n name: 'RollingNumber',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const previousValueRef = useRef(value);\n const [previousValue, setPreviousValue] = useState(value);\n\n useDidUpdate(() => {\n setPreviousValue(previousValueRef.current);\n previousValueRef.current = value;\n }, [value]);\n\n const current = getDigitParts(value, decimalScale, fixedDecimalScale);\n const prev = getDigitParts(previousValue, decimalScale, fixedDecimalScale);\n\n const maxIntLen = Math.max(current.intDigits.length, prev.intDigits.length);\n const maxFracLen = Math.max(current.fracDigits.length, prev.fracDigits.length);\n\n const currIntPadded: (string | null)[] = [\n ...Array(maxIntLen - current.intDigits.length).fill(null),\n ...current.intDigits,\n ];\n const prevIntPadded: (string | null)[] = [\n ...Array(maxIntLen - prev.intDigits.length).fill(null),\n ...prev.intDigits,\n ];\n\n const currFracPadded: (string | null)[] = [\n ...current.fracDigits,\n ...Array(maxFracLen - current.fracDigits.length).fill(null),\n ];\n const prevFracPadded: (string | null)[] = [\n ...prev.fracDigits,\n ...Array(maxFracLen - prev.fracDigits.length).fill(null),\n ];\n\n const sep = thousandSeparator\n ? typeof thousandSeparator === 'string'\n ? thousandSeparator\n : ','\n : null;\n\n const slots: React.ReactNode[] = [];\n\n if (prefix) {\n prefix.split('').forEach((c, i) => {\n slots.push(\n <span key={`prefix-${i}`} {...getStyles('char')} aria-hidden=\"true\">\n {c}\n </span>\n );\n });\n }\n\n if (current.negative || prev.negative) {\n const signEmpty = !current.negative;\n const charStyles = getStyles('char');\n slots.push(\n <span key=\"sign\" {...charStyles} data-empty={signEmpty || undefined} aria-hidden=\"true\">\n -\n </span>\n );\n }\n\n for (let i = 0; i < maxIntLen; i++) {\n const posFromRight = maxIntLen - 1 - i;\n const currDigit = currIntPadded[i];\n const prevDigit = prevIntPadded[i];\n const isEmpty = currDigit === null;\n\n slots.push(\n <DigitColumn\n key={`int-${posFromRight}`}\n digit={currDigit ?? '0'}\n previousDigit={prevDigit}\n getStyles={getStyles}\n empty={isEmpty}\n />\n );\n\n if (sep && posFromRight > 0 && posFromRight % 3 === 0) {\n const charStyles = getStyles('char');\n slots.push(\n <span\n key={`sep-${posFromRight}`}\n {...charStyles}\n data-empty={isEmpty || undefined}\n aria-hidden=\"true\"\n >\n {sep}\n </span>\n );\n }\n }\n\n if (current.hasDecimal || prev.hasDecimal) {\n const decEmpty = !current.hasDecimal;\n const charStyles = getStyles('char');\n slots.push(\n <span key=\"dec\" {...charStyles} data-empty={decEmpty || undefined} aria-hidden=\"true\">\n {decimalSeparator}\n </span>\n );\n }\n\n for (let i = 0; i < maxFracLen; i++) {\n const currDigit = currFracPadded[i];\n const prevDigit = prevFracPadded[i];\n const isEmpty = currDigit === null;\n\n slots.push(\n <DigitColumn\n key={`frac-${i}`}\n digit={currDigit ?? '0'}\n previousDigit={prevDigit}\n getStyles={getStyles}\n empty={isEmpty}\n />\n );\n }\n\n if (suffix) {\n suffix.split('').forEach((c, i) => {\n slots.push(\n <span key={`suffix-${i}`} {...getStyles('char')} aria-hidden=\"true\">\n {c}\n </span>\n );\n });\n }\n\n const accessibleValue = buildAccessibleValue(\n value,\n prefix,\n suffix,\n decimalSeparator!,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale\n );\n\n return (\n <Box\n {...getStyles('root')}\n mod={[{ 'tabular-numbers': tabularNumbers }, mod]}\n role=\"status\"\n aria-label={accessibleValue}\n {...others}\n >\n {slots}\n </Box>\n );\n});\n\nRollingNumber.classes = classes;\nRollingNumber.varsResolver = varsResolver;\nRollingNumber.displayName = '@mantine/core/RollingNumber';\n"],"names":[],"mappings":"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J,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAA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"}
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ var classes = {"root":"m_47dd3981","digit":"m_b301d46e","digitColumn":"m_8ae40964","char":"m_47d64bf5"};
3
+
4
+ export { classes as default };
5
+ //# sourceMappingURL=RollingNumber.module.css.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RollingNumber.module.css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useState, useRef, useEffect } from 'react';
3
+ import { useState, useRef, useEffectEvent } from 'react';
4
4
  import { useMergeRefs } from '@floating-ui/react';
5
+ import { useIsomorphicEffect } from '@mantine/hooks';
5
6
  import { rem } from '../../core/utils/units-converters/rem.mjs';
6
- import '@mantine/hooks';
7
7
  import { createVarsResolver } from '../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs';
8
8
  import 'clsx';
9
9
  import '../../core/MantineProvider/Mantine.context.mjs';
@@ -16,12 +16,13 @@ import { useStyles } from '../../core/styles-api/use-styles/use-styles.mjs';
16
16
  import { Box } from '../../core/Box/Box.mjs';
17
17
  import { factory } from '../../core/factory/factory.mjs';
18
18
  import '../../core/DirectionProvider/DirectionProvider.mjs';
19
- import classes from './ScrollArea.module.css.mjs';
20
19
  import { ScrollAreaCorner } from './ScrollAreaCorner/ScrollAreaCorner.mjs';
21
20
  import { ScrollAreaRoot } from './ScrollAreaRoot/ScrollAreaRoot.mjs';
22
21
  import { ScrollAreaScrollbar } from './ScrollAreaScrollbar/ScrollAreaScrollbar.mjs';
23
22
  import { ScrollAreaThumb } from './ScrollAreaThumb/ScrollAreaThumb.mjs';
24
23
  import { ScrollAreaViewport } from './ScrollAreaViewport/ScrollAreaViewport.mjs';
24
+ import { useResizeObserver } from './use-resize-observer.mjs';
25
+ import classes from './ScrollArea.module.css.mjs';
25
26
 
26
27
  const defaultProps = {
27
28
  scrollHideDelay: 1e3,
@@ -69,6 +70,7 @@ const ScrollArea = factory((_props) => {
69
70
  onLeftReached,
70
71
  onRightReached,
71
72
  overscrollBehavior,
73
+ startScrollPosition,
72
74
  attributes,
73
75
  ...others
74
76
  } = props;
@@ -94,19 +96,21 @@ const ScrollArea = factory((_props) => {
94
96
  });
95
97
  const localViewportRef = useRef(null);
96
98
  const combinedViewportRef = useMergeRefs([viewportRef, localViewportRef]);
97
- useEffect(() => {
99
+ useIsomorphicEffect(() => {
100
+ if (startScrollPosition && localViewportRef.current) {
101
+ localViewportRef.current.scrollTo({
102
+ left: startScrollPosition.x ?? 0,
103
+ top: startScrollPosition.y ?? 0
104
+ });
105
+ }
106
+ }, []);
107
+ useResizeObserver(offsetScrollbars === "present" ? localViewportRef.current : null, () => {
98
108
  const element = localViewportRef.current;
99
- if (!element || offsetScrollbars !== "present") {
100
- return;
109
+ if (element) {
110
+ setVerticalThumbVisible(element.scrollHeight > element.clientHeight);
111
+ setHorizontalThumbVisible(element.scrollWidth > element.clientWidth);
101
112
  }
102
- const observer = new ResizeObserver(() => {
103
- const { scrollHeight, clientHeight, scrollWidth, clientWidth } = element;
104
- setVerticalThumbVisible(scrollHeight > clientHeight);
105
- setHorizontalThumbVisible(scrollWidth > clientWidth);
106
- });
107
- observer.observe(element);
108
- return () => observer.disconnect();
109
- }, [offsetScrollbars]);
113
+ });
110
114
  return /* @__PURE__ */ jsxs(
111
115
  ScrollAreaRoot,
112
116
  {
@@ -213,40 +217,33 @@ const ScrollAreaAutosize = factory((props) => {
213
217
  vars,
214
218
  onBottomReached,
215
219
  onTopReached,
220
+ startScrollPosition,
216
221
  onOverflowChange,
217
222
  ...others
218
223
  } = useProps("ScrollAreaAutosize", defaultProps, props);
219
224
  const viewportObserverRef = useRef(null);
220
225
  const combinedViewportRef = useMergeRefs([viewportRef, viewportObserverRef]);
221
- const [overflowing, setOverflowing] = useState(false);
222
- const didMount = useRef(false);
223
- useEffect(() => {
224
- if (!onOverflowChange) {
225
- return;
226
- }
226
+ const overflowingRef = useRef(false);
227
+ const didMountRef = useRef(false);
228
+ const handleOverflowCheck = useEffectEvent(() => {
227
229
  const el = viewportObserverRef.current;
228
- if (!el) {
230
+ if (!el || !onOverflowChange) {
229
231
  return;
230
232
  }
231
- const update = () => {
232
- const isOverflowing = el.scrollHeight > el.clientHeight;
233
- if (isOverflowing !== overflowing) {
234
- if (didMount.current) {
235
- onOverflowChange?.(isOverflowing);
236
- } else {
237
- didMount.current = true;
238
- if (isOverflowing) {
239
- onOverflowChange?.(true);
240
- }
233
+ const isOverflowing = el.scrollHeight > el.clientHeight;
234
+ if (isOverflowing !== overflowingRef.current) {
235
+ if (didMountRef.current) {
236
+ onOverflowChange(isOverflowing);
237
+ } else {
238
+ didMountRef.current = true;
239
+ if (isOverflowing) {
240
+ onOverflowChange(true);
241
241
  }
242
- setOverflowing(isOverflowing);
243
242
  }
244
- };
245
- update();
246
- const ro = new ResizeObserver(update);
247
- ro.observe(el);
248
- return () => ro.disconnect();
249
- }, [onOverflowChange, overflowing]);
243
+ overflowingRef.current = isOverflowing;
244
+ }
245
+ });
246
+ useResizeObserver(onOverflowChange ? viewportObserverRef.current : null, handleOverflowCheck);
250
247
  return /* @__PURE__ */ jsx(Box, { ...others, variant, style: [{ display: "flex", overflow: "hidden" }, style], children: /* @__PURE__ */ jsx(
251
248
  Box,
252
249
  {
@@ -280,6 +277,7 @@ const ScrollAreaAutosize = factory((props) => {
280
277
  scrollbars,
281
278
  onBottomReached,
282
279
  onTopReached,
280
+ startScrollPosition,
283
281
  "data-autosize": "true",
284
282
  children
285
283
  }