@mantine/core 9.5.2 → 9.6.0

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 (874) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +1 -1
  2. package/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/cjs/components/Accordion/AccordionChevron.cjs.map +1 -1
  4. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs.map +1 -1
  5. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs.map +1 -1
  6. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
  7. package/cjs/components/ActionBar/ActionBar.cjs +94 -0
  8. package/cjs/components/ActionBar/ActionBar.cjs.map +1 -0
  9. package/cjs/components/ActionBar/ActionBar.context.cjs +8 -0
  10. package/cjs/components/ActionBar/ActionBar.context.cjs.map +1 -0
  11. package/cjs/components/ActionBar/ActionBar.module.cjs +10 -0
  12. package/cjs/components/ActionBar/ActionBar.module.cjs.map +1 -0
  13. package/cjs/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.cjs +33 -0
  14. package/cjs/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.cjs.map +1 -0
  15. package/cjs/components/ActionBar/ActionBarDivider/ActionBarDivider.cjs +30 -0
  16. package/cjs/components/ActionBar/ActionBarDivider/ActionBarDivider.cjs.map +1 -0
  17. package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
  18. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs +16 -15
  19. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs.map +1 -1
  20. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs +15 -14
  21. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs.map +1 -1
  22. package/cjs/components/Affix/Affix.cjs.map +1 -1
  23. package/cjs/components/Alert/Alert.cjs.map +1 -1
  24. package/cjs/components/Anchor/Anchor.cjs.map +1 -1
  25. package/cjs/components/AngleSlider/AngleSlider.cjs +5 -4
  26. package/cjs/components/AngleSlider/AngleSlider.cjs.map +1 -1
  27. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  28. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
  29. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
  30. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
  31. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs +2 -1
  32. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs.map +1 -1
  33. package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
  34. package/cjs/components/AspectRatio/AspectRatio.cjs +14 -13
  35. package/cjs/components/AspectRatio/AspectRatio.cjs.map +1 -1
  36. package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  37. package/cjs/components/Avatar/Avatar.cjs.map +1 -1
  38. package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs.map +1 -1
  39. package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs.map +1 -1
  40. package/cjs/components/BackgroundImage/BackgroundImage.cjs +14 -13
  41. package/cjs/components/BackgroundImage/BackgroundImage.cjs.map +1 -1
  42. package/cjs/components/Badge/Badge.cjs.map +1 -1
  43. package/cjs/components/Blockquote/Blockquote.cjs +6 -5
  44. package/cjs/components/Blockquote/Blockquote.cjs.map +1 -1
  45. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
  46. package/cjs/components/Burger/Burger.cjs.map +1 -1
  47. package/cjs/components/Button/Button.cjs.map +1 -1
  48. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs +16 -15
  49. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
  50. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs +15 -14
  51. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
  52. package/cjs/components/Card/Card.cjs.map +1 -1
  53. package/cjs/components/Cascader/Cascader.cjs +5 -4
  54. package/cjs/components/Cascader/Cascader.cjs.map +1 -1
  55. package/cjs/components/Cascader/CascaderColumns.cjs +2 -1
  56. package/cjs/components/Cascader/CascaderColumns.cjs.map +1 -1
  57. package/cjs/components/Cascader/get-cascader-columns.cjs.map +1 -1
  58. package/cjs/components/Cascader/use-cascader-safe-area.cjs.map +1 -1
  59. package/cjs/components/Cascader/use-cascader.cjs.map +1 -1
  60. package/cjs/components/Checkbox/CheckIcon.cjs +6 -5
  61. package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
  62. package/cjs/components/Checkbox/Checkbox.cjs +1 -1
  63. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  64. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs +2 -1
  65. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
  66. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
  67. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  68. package/cjs/components/Chip/Chip.cjs.map +1 -1
  69. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
  70. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  71. package/cjs/components/CloseButton/CloseIcon.cjs.map +1 -1
  72. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  73. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  74. package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
  75. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  76. package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
  77. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs +4 -6
  78. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  79. package/cjs/components/ColorPicker/Saturation/Saturation.cjs +4 -6
  80. package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
  81. package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
  82. package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
  83. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  84. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
  85. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs +2 -1
  86. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
  87. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs +10 -9
  88. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
  89. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs +2 -1
  90. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
  91. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
  92. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs +2 -1
  93. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
  94. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
  95. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
  96. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  97. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs +10 -9
  98. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
  99. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  100. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.cjs.map +1 -1
  101. package/cjs/components/Combobox/use-combobox/get-index/get-index.cjs.map +1 -1
  102. package/cjs/components/Combobox/use-combobox/get-index/get-virtualized-index.cjs.map +1 -1
  103. package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
  104. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  105. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  106. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -1
  107. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs.map +1 -1
  108. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs +13 -12
  109. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs.map +1 -1
  110. package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
  111. package/cjs/components/DataList/DataList.cjs.map +1 -1
  112. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  113. package/cjs/components/Divider/Divider.cjs.map +1 -1
  114. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  115. package/cjs/components/Drawer/DrawerBody.cjs +2 -1
  116. package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
  117. package/cjs/components/Drawer/DrawerCloseButton.cjs +2 -1
  118. package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
  119. package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
  120. package/cjs/components/Drawer/DrawerHeader.cjs +2 -1
  121. package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -1
  122. package/cjs/components/Drawer/DrawerOverlay.cjs +2 -1
  123. package/cjs/components/Drawer/DrawerOverlay.cjs.map +1 -1
  124. package/cjs/components/Drawer/DrawerRoot.cjs.map +1 -1
  125. package/cjs/components/Drawer/DrawerStack.cjs.map +1 -1
  126. package/cjs/components/Drawer/DrawerTitle.cjs +2 -1
  127. package/cjs/components/Drawer/DrawerTitle.cjs.map +1 -1
  128. package/cjs/components/EmptyState/EmptyState.cjs.map +1 -1
  129. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs +2 -1
  130. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs.map +1 -1
  131. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs +2 -1
  132. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs.map +1 -1
  133. package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
  134. package/cjs/components/FileButton/FileButton.cjs.map +1 -1
  135. package/cjs/components/FileInput/FileInput.cjs.map +1 -1
  136. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  137. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
  138. package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
  139. package/cjs/components/FloatingWindow/FloatingWindowResizeHandle.cjs.map +1 -1
  140. package/cjs/components/FocusTrap/FocusTrap.cjs +2 -1
  141. package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
  142. package/cjs/components/Grid/Grid.cjs.map +1 -1
  143. package/cjs/components/Grid/GridCol/GridCol.cjs.map +1 -1
  144. package/cjs/components/Group/Group.cjs +16 -14
  145. package/cjs/components/Group/Group.cjs.map +1 -1
  146. package/cjs/components/Highlight/Highlight.cjs.map +1 -1
  147. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  148. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  149. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
  150. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  151. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  152. package/cjs/components/Image/Image.cjs.map +1 -1
  153. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  154. package/cjs/components/Input/Input.cjs +3 -3
  155. package/cjs/components/Input/Input.cjs.map +1 -1
  156. package/cjs/components/Input/Input.context.cjs.map +1 -1
  157. package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
  158. package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
  159. package/cjs/components/Input/InputDescription/InputDescription.cjs +2 -1
  160. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
  161. package/cjs/components/Input/InputError/InputError.cjs +2 -1
  162. package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
  163. package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
  164. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs +13 -12
  165. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs.map +1 -1
  166. package/cjs/components/Input/InputSuccess/InputSuccess.cjs +2 -1
  167. package/cjs/components/Input/InputSuccess/InputSuccess.cjs.map +1 -1
  168. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  169. package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
  170. package/cjs/components/InputBase/InputBase.cjs.map +1 -1
  171. package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
  172. package/cjs/components/Kbd/Kbd.cjs +14 -13
  173. package/cjs/components/Kbd/Kbd.cjs.map +1 -1
  174. package/cjs/components/List/List.cjs.map +1 -1
  175. package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
  176. package/cjs/components/Loader/loaders/Bars.cjs.map +1 -1
  177. package/cjs/components/Loader/loaders/Dots.cjs.map +1 -1
  178. package/cjs/components/Loader/loaders/Oval.cjs.map +1 -1
  179. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  180. package/cjs/components/Mark/Mark.cjs +14 -13
  181. package/cjs/components/Mark/Mark.cjs.map +1 -1
  182. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  183. package/cjs/components/MaskInput/MaskInput.cjs +3 -2
  184. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
  185. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
  186. package/cjs/components/Menu/Menu.cjs.map +1 -1
  187. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs +4 -3
  188. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs.map +1 -1
  189. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs.map +1 -1
  190. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs +2 -1
  191. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs.map +1 -1
  192. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs +3 -2
  193. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs.map +1 -1
  194. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs +2 -1
  195. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
  196. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
  197. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  198. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs +2 -1
  199. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
  200. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs.map +1 -1
  201. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs.map +1 -1
  202. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs +2 -1
  203. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs.map +1 -1
  204. package/cjs/components/Menu/MenuSearch/MenuSearch.cjs.map +1 -1
  205. package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs.map +1 -1
  206. package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
  207. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
  208. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  209. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  210. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
  211. package/cjs/components/Menu/use-menu-type-ahead.cjs.map +1 -1
  212. package/cjs/components/Menubar/Menubar.cjs.map +1 -1
  213. package/cjs/components/Menubar/MenubarMenu/MenubarMenu.cjs.map +1 -1
  214. package/cjs/components/Menubar/MenubarTarget/MenubarTarget.cjs.map +1 -1
  215. package/cjs/components/Modal/Modal.cjs.map +1 -1
  216. package/cjs/components/Modal/ModalBody.cjs +2 -1
  217. package/cjs/components/Modal/ModalBody.cjs.map +1 -1
  218. package/cjs/components/Modal/ModalCloseButton.cjs +2 -1
  219. package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
  220. package/cjs/components/Modal/ModalContent.cjs.map +1 -1
  221. package/cjs/components/Modal/ModalHeader.cjs +2 -1
  222. package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
  223. package/cjs/components/Modal/ModalOverlay.cjs +2 -1
  224. package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
  225. package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
  226. package/cjs/components/Modal/ModalStack.cjs.map +1 -1
  227. package/cjs/components/Modal/ModalTitle.cjs +2 -1
  228. package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
  229. package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
  230. package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
  231. package/cjs/components/ModalBase/ModalBaseBody.cjs.map +1 -1
  232. package/cjs/components/ModalBase/ModalBaseCloseButton.cjs.map +1 -1
  233. package/cjs/components/ModalBase/ModalBaseContent.cjs.map +1 -1
  234. package/cjs/components/ModalBase/ModalBaseHeader.cjs.map +1 -1
  235. package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
  236. package/cjs/components/ModalBase/ModalBaseTitle.cjs.map +1 -1
  237. package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
  238. package/cjs/components/ModalBase/use-modal.cjs +2 -1
  239. package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
  240. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  241. package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
  242. package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
  243. package/cjs/components/NavLink/NavLink.cjs.map +1 -1
  244. package/cjs/components/Notification/Notification.cjs +3 -3
  245. package/cjs/components/Notification/Notification.cjs.map +1 -1
  246. package/cjs/components/NumberInput/NumberInput.cjs +5 -3
  247. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  248. package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
  249. package/cjs/components/OverflowList/OverflowList.cjs +4 -2
  250. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  251. package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
  252. package/cjs/components/Overlay/Overlay.cjs +14 -13
  253. package/cjs/components/Overlay/Overlay.cjs.map +1 -1
  254. package/cjs/components/Pagination/Pagination.cjs +2 -1
  255. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  256. package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
  257. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs +2 -1
  258. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
  259. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
  260. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs +3 -2
  261. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
  262. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +1 -1
  263. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
  264. package/cjs/components/Paper/Paper.cjs +1 -1
  265. package/cjs/components/Paper/Paper.cjs.map +1 -1
  266. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  267. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
  268. package/cjs/components/Pill/Pill.cjs.map +1 -1
  269. package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
  270. package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
  271. package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
  272. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
  273. package/cjs/components/PinInput/PinInput.cjs +6 -5
  274. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  275. package/cjs/components/Popover/Popover.cjs.map +1 -1
  276. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs +3 -2
  277. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs.map +1 -1
  278. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
  279. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
  280. package/cjs/components/Popover/use-popover.cjs +16 -12
  281. package/cjs/components/Popover/use-popover.cjs.map +1 -1
  282. package/cjs/components/Portal/Portal.cjs.map +1 -1
  283. package/cjs/components/Progress/Progress.cjs.map +1 -1
  284. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs +2 -1
  285. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
  286. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
  287. package/cjs/components/Radio/Radio.cjs.map +1 -1
  288. package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
  289. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
  290. package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
  291. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  292. package/cjs/components/Rating/Rating.cjs +6 -3
  293. package/cjs/components/Rating/Rating.cjs.map +1 -1
  294. package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
  295. package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
  296. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs +2 -1
  297. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
  298. package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
  299. package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
  300. package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -1
  301. package/cjs/components/RollingNumber/RollingNumber.cjs +12 -10
  302. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -1
  303. package/cjs/components/ScrollArea/ScrollArea.cjs +8 -6
  304. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  305. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
  306. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
  307. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
  308. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
  309. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
  310. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
  311. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  312. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
  313. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
  314. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
  315. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
  316. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  317. package/cjs/components/Scroller/Scroller.cjs.map +1 -1
  318. package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
  319. package/cjs/components/Select/Select.cjs.map +1 -1
  320. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
  321. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  322. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs +10 -8
  323. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
  324. package/cjs/components/Skeleton/Skeleton.cjs +14 -13
  325. package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  326. package/cjs/components/Slider/Marks/Marks.cjs +3 -2
  327. package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
  328. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs +20 -11
  329. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  330. package/cjs/components/Slider/Slider/Slider.cjs +6 -6
  331. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  332. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  333. package/cjs/components/Slider/Track/Track.cjs.map +1 -1
  334. package/cjs/components/Splitter/GripIcon.cjs.map +1 -1
  335. package/cjs/components/Splitter/Splitter.cjs +8 -7
  336. package/cjs/components/Splitter/Splitter.cjs.map +1 -1
  337. package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
  338. package/cjs/components/Stack/Stack.cjs +14 -13
  339. package/cjs/components/Stack/Stack.cjs.map +1 -1
  340. package/cjs/components/Stepper/Stepper.cjs +6 -3
  341. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  342. package/cjs/components/Stepper/Stepper.context.cjs.map +1 -1
  343. package/cjs/components/Stepper/Stepper.module.cjs.map +1 -1
  344. package/cjs/components/Stepper/StepperStep/StepperStep.cjs +3 -2
  345. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  346. package/cjs/components/Switch/Switch.cjs.map +1 -1
  347. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
  348. package/cjs/components/Table/Table.cjs +2 -2
  349. package/cjs/components/Table/Table.cjs.map +1 -1
  350. package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
  351. package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
  352. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  353. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  354. package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
  355. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  356. package/cjs/components/Text/Text.cjs +18 -17
  357. package/cjs/components/Text/Text.cjs.map +1 -1
  358. package/cjs/components/TextInput/TextInput.cjs +6 -5
  359. package/cjs/components/TextInput/TextInput.cjs.map +1 -1
  360. package/cjs/components/Textarea/Autosize.cjs.map +1 -1
  361. package/cjs/components/ThemeIcon/ThemeIcon.cjs +14 -13
  362. package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
  363. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  364. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  365. package/cjs/components/Title/Title.cjs +1 -1
  366. package/cjs/components/Title/Title.cjs.map +1 -1
  367. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  368. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  369. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
  370. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
  371. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  372. package/cjs/components/Transition/Transition.cjs.map +1 -1
  373. package/cjs/components/Transition/use-transition.cjs.map +1 -1
  374. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
  375. package/cjs/components/Tree/Tree.cjs +2 -1
  376. package/cjs/components/Tree/Tree.cjs.map +1 -1
  377. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  378. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
  379. package/cjs/components/Tree/use-tree.cjs.map +1 -1
  380. package/cjs/components/TreeSelect/TreeSelect.cjs +11 -9
  381. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  382. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -1
  383. package/cjs/components/Typography/Typography.cjs +12 -11
  384. package/cjs/components/Typography/Typography.cjs.map +1 -1
  385. package/cjs/components/Typography/Typography.module.cjs.map +1 -1
  386. package/cjs/components/UnstyledButton/UnstyledButton.cjs +12 -11
  387. package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
  388. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs +12 -11
  389. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  390. package/cjs/core/Box/Box.cjs.map +1 -1
  391. package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
  392. package/cjs/core/DirectionProvider/DirectionProvider.cjs +3 -2
  393. package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
  394. package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
  395. package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
  396. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs +4 -2
  397. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
  398. package/cjs/core/MantineProvider/MantineProvider.cjs +3 -3
  399. package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
  400. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
  401. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs.map +1 -1
  402. package/cjs/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.cjs.map +1 -1
  403. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
  404. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs +2 -1
  405. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
  406. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
  407. package/cjs/core/MantineProvider/use-matches/use-matches.cjs.map +1 -1
  408. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs.map +1 -1
  409. package/cjs/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.cjs.map +1 -1
  410. package/cjs/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.cjs.map +1 -1
  411. package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
  412. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs +0 -1
  413. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs.map +1 -1
  414. package/cjs/core/utils/deep-merge/deep-merge.cjs +4 -3
  415. package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -1
  416. package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
  417. package/cjs/index.cjs +6 -0
  418. package/cjs/utils/Floating/use-context-menu-handlers.cjs.map +1 -1
  419. package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
  420. package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
  421. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
  422. package/esm/components/Accordion/Accordion.mjs.map +1 -1
  423. package/esm/components/Accordion/AccordionChevron.mjs.map +1 -1
  424. package/esm/components/Accordion/AccordionControl/AccordionControl.mjs.map +1 -1
  425. package/esm/components/Accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  426. package/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs.map +1 -1
  427. package/esm/components/ActionBar/ActionBar.context.mjs +8 -0
  428. package/esm/components/ActionBar/ActionBar.context.mjs.map +1 -0
  429. package/esm/components/ActionBar/ActionBar.mjs +94 -0
  430. package/esm/components/ActionBar/ActionBar.mjs.map +1 -0
  431. package/esm/components/ActionBar/ActionBar.module.mjs +10 -0
  432. package/esm/components/ActionBar/ActionBar.module.mjs.map +1 -0
  433. package/esm/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.mjs +33 -0
  434. package/esm/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.mjs.map +1 -0
  435. package/esm/components/ActionBar/ActionBarDivider/ActionBarDivider.mjs +30 -0
  436. package/esm/components/ActionBar/ActionBarDivider/ActionBarDivider.mjs.map +1 -0
  437. package/esm/components/ActionIcon/ActionIcon.mjs.map +1 -1
  438. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs +16 -15
  439. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  440. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs +15 -14
  441. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs.map +1 -1
  442. package/esm/components/Affix/Affix.mjs.map +1 -1
  443. package/esm/components/Alert/Alert.mjs.map +1 -1
  444. package/esm/components/AngleSlider/AngleSlider.mjs +5 -4
  445. package/esm/components/AngleSlider/AngleSlider.mjs.map +1 -1
  446. package/esm/components/AppShell/AppShell.mjs.map +1 -1
  447. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs +2 -1
  448. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs.map +1 -1
  449. package/esm/components/AspectRatio/AspectRatio.mjs +14 -13
  450. package/esm/components/AspectRatio/AspectRatio.mjs.map +1 -1
  451. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  452. package/esm/components/Avatar/Avatar.mjs.map +1 -1
  453. package/esm/components/Avatar/AvatarGroup/AvatarGroup.mjs.map +1 -1
  454. package/esm/components/Avatar/AvatarPlaceholderIcon.mjs.map +1 -1
  455. package/esm/components/BackgroundImage/BackgroundImage.mjs +14 -13
  456. package/esm/components/BackgroundImage/BackgroundImage.mjs.map +1 -1
  457. package/esm/components/Badge/Badge.mjs.map +1 -1
  458. package/esm/components/Blockquote/Blockquote.mjs +6 -5
  459. package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
  460. package/esm/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  461. package/esm/components/Burger/Burger.mjs.map +1 -1
  462. package/esm/components/Button/Button.mjs.map +1 -1
  463. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs +16 -15
  464. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs.map +1 -1
  465. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs +15 -14
  466. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs.map +1 -1
  467. package/esm/components/Card/Card.mjs.map +1 -1
  468. package/esm/components/Cascader/Cascader.mjs +5 -4
  469. package/esm/components/Cascader/Cascader.mjs.map +1 -1
  470. package/esm/components/Cascader/CascaderColumns.mjs +2 -1
  471. package/esm/components/Cascader/CascaderColumns.mjs.map +1 -1
  472. package/esm/components/Cascader/get-cascader-columns.mjs.map +1 -1
  473. package/esm/components/Checkbox/CheckIcon.mjs +6 -5
  474. package/esm/components/Checkbox/CheckIcon.mjs.map +1 -1
  475. package/esm/components/Checkbox/Checkbox.mjs +1 -1
  476. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  477. package/esm/components/Checkbox/CheckboxCard/CheckboxCard.mjs +2 -1
  478. package/esm/components/Checkbox/CheckboxCard/CheckboxCard.mjs.map +1 -1
  479. package/esm/components/Checkbox/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  480. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  481. package/esm/components/Chip/Chip.mjs.map +1 -1
  482. package/esm/components/CloseButton/CloseButton.mjs.map +1 -1
  483. package/esm/components/CloseButton/CloseIcon.mjs.map +1 -1
  484. package/esm/components/Collapse/Collapse.mjs.map +1 -1
  485. package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
  486. package/esm/components/ColorInput/EyeDropperIcon.mjs.map +1 -1
  487. package/esm/components/ColorPicker/ColorPicker.mjs.map +1 -1
  488. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs +4 -6
  489. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs.map +1 -1
  490. package/esm/components/ColorPicker/Saturation/Saturation.mjs +4 -6
  491. package/esm/components/ColorPicker/Saturation/Saturation.mjs.map +1 -1
  492. package/esm/components/ColorPicker/Swatches/Swatches.mjs.map +1 -1
  493. package/esm/components/ColorSwatch/ColorSwatch.mjs.map +1 -1
  494. package/esm/components/Combobox/Combobox.mjs.map +1 -1
  495. package/esm/components/Combobox/ComboboxChevron/ComboboxChevron.mjs.map +1 -1
  496. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs +2 -1
  497. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs.map +1 -1
  498. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.mjs +10 -9
  499. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.mjs.map +1 -1
  500. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs +2 -1
  501. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs.map +1 -1
  502. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs.map +1 -1
  503. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs +2 -1
  504. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs.map +1 -1
  505. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.mjs +10 -9
  506. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.mjs.map +1 -1
  507. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  508. package/esm/components/Combobox/OptionsDropdown/default-options-filter.mjs.map +1 -1
  509. package/esm/components/Combobox/use-combobox/get-index/get-index.mjs.map +1 -1
  510. package/esm/components/Combobox/use-combobox/get-index/get-virtualized-index.mjs.map +1 -1
  511. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs.map +1 -1
  512. package/esm/components/ComboboxPopover/ComboboxPopover.mjs.map +1 -1
  513. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs +13 -12
  514. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs.map +1 -1
  515. package/esm/components/DataList/DataList.mjs.map +1 -1
  516. package/esm/components/Dialog/Dialog.mjs.map +1 -1
  517. package/esm/components/Divider/Divider.mjs.map +1 -1
  518. package/esm/components/Drawer/Drawer.mjs.map +1 -1
  519. package/esm/components/Drawer/DrawerBody.mjs +2 -1
  520. package/esm/components/Drawer/DrawerBody.mjs.map +1 -1
  521. package/esm/components/Drawer/DrawerCloseButton.mjs +2 -1
  522. package/esm/components/Drawer/DrawerCloseButton.mjs.map +1 -1
  523. package/esm/components/Drawer/DrawerContent.mjs.map +1 -1
  524. package/esm/components/Drawer/DrawerHeader.mjs +2 -1
  525. package/esm/components/Drawer/DrawerHeader.mjs.map +1 -1
  526. package/esm/components/Drawer/DrawerOverlay.mjs +2 -1
  527. package/esm/components/Drawer/DrawerOverlay.mjs.map +1 -1
  528. package/esm/components/Drawer/DrawerRoot.mjs.map +1 -1
  529. package/esm/components/Drawer/DrawerTitle.mjs +2 -1
  530. package/esm/components/Drawer/DrawerTitle.mjs.map +1 -1
  531. package/esm/components/EmptyState/EmptyState.mjs.map +1 -1
  532. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs +2 -1
  533. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs.map +1 -1
  534. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs +2 -1
  535. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs.map +1 -1
  536. package/esm/components/Fieldset/Fieldset.mjs.map +1 -1
  537. package/esm/components/FileInput/FileInput.mjs.map +1 -1
  538. package/esm/components/FloatingWindow/FloatingWindow.mjs.map +1 -1
  539. package/esm/components/FocusTrap/FocusTrap.mjs +2 -1
  540. package/esm/components/FocusTrap/FocusTrap.mjs.map +1 -1
  541. package/esm/components/Grid/Grid.mjs.map +1 -1
  542. package/esm/components/Group/Group.mjs +16 -14
  543. package/esm/components/Group/Group.mjs.map +1 -1
  544. package/esm/components/Highlight/Highlight.mjs.map +1 -1
  545. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  546. package/esm/components/HoverCard/HoverCardGroup/HoverCardGroup.mjs.map +1 -1
  547. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
  548. package/esm/components/Indicator/Indicator.mjs.map +1 -1
  549. package/esm/components/Input/Input.mjs +3 -3
  550. package/esm/components/Input/Input.mjs.map +1 -1
  551. package/esm/components/Input/InputClearSection/InputClearSection.mjs.map +1 -1
  552. package/esm/components/Input/InputDescription/InputDescription.mjs +2 -1
  553. package/esm/components/Input/InputDescription/InputDescription.mjs.map +1 -1
  554. package/esm/components/Input/InputError/InputError.mjs +2 -1
  555. package/esm/components/Input/InputError/InputError.mjs.map +1 -1
  556. package/esm/components/Input/InputLabel/InputLabel.mjs.map +1 -1
  557. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs +13 -12
  558. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs.map +1 -1
  559. package/esm/components/Input/InputSuccess/InputSuccess.mjs +2 -1
  560. package/esm/components/Input/InputSuccess/InputSuccess.mjs.map +1 -1
  561. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  562. package/esm/components/InputBase/InputBase.mjs.map +1 -1
  563. package/esm/components/Kbd/Kbd.mjs +14 -13
  564. package/esm/components/Kbd/Kbd.mjs.map +1 -1
  565. package/esm/components/List/List.mjs.map +1 -1
  566. package/esm/components/List/ListItem/ListItem.mjs.map +1 -1
  567. package/esm/components/Loader/loaders/Bars.mjs.map +1 -1
  568. package/esm/components/Loader/loaders/Dots.mjs.map +1 -1
  569. package/esm/components/LoadingOverlay/LoadingOverlay.mjs.map +1 -1
  570. package/esm/components/Mark/Mark.mjs +14 -13
  571. package/esm/components/Mark/Mark.mjs.map +1 -1
  572. package/esm/components/Marquee/Marquee.mjs.map +1 -1
  573. package/esm/components/MaskInput/MaskInput.mjs +3 -2
  574. package/esm/components/MaskInput/MaskInput.mjs.map +1 -1
  575. package/esm/components/Menu/Menu.mjs.map +1 -1
  576. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs +4 -3
  577. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs.map +1 -1
  578. package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs +2 -1
  579. package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs.map +1 -1
  580. package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs +3 -2
  581. package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs.map +1 -1
  582. package/esm/components/Menu/MenuDivider/MenuDivider.mjs +2 -1
  583. package/esm/components/Menu/MenuDivider/MenuDivider.mjs.map +1 -1
  584. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
  585. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  586. package/esm/components/Menu/MenuLabel/MenuLabel.mjs +2 -1
  587. package/esm/components/Menu/MenuLabel/MenuLabel.mjs.map +1 -1
  588. package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs +2 -1
  589. package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs.map +1 -1
  590. package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs.map +1 -1
  591. package/esm/components/Menu/MenuSub/MenuSub.mjs.map +1 -1
  592. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  593. package/esm/components/Menu/MenuTarget/MenuTarget.mjs.map +1 -1
  594. package/esm/components/Menubar/Menubar.mjs.map +1 -1
  595. package/esm/components/Menubar/MenubarMenu/MenubarMenu.mjs.map +1 -1
  596. package/esm/components/Menubar/MenubarTarget/MenubarTarget.mjs.map +1 -1
  597. package/esm/components/Modal/Modal.mjs.map +1 -1
  598. package/esm/components/Modal/ModalBody.mjs +2 -1
  599. package/esm/components/Modal/ModalBody.mjs.map +1 -1
  600. package/esm/components/Modal/ModalCloseButton.mjs +2 -1
  601. package/esm/components/Modal/ModalCloseButton.mjs.map +1 -1
  602. package/esm/components/Modal/ModalContent.mjs.map +1 -1
  603. package/esm/components/Modal/ModalHeader.mjs +2 -1
  604. package/esm/components/Modal/ModalHeader.mjs.map +1 -1
  605. package/esm/components/Modal/ModalOverlay.mjs +2 -1
  606. package/esm/components/Modal/ModalOverlay.mjs.map +1 -1
  607. package/esm/components/Modal/ModalRoot.mjs.map +1 -1
  608. package/esm/components/Modal/ModalTitle.mjs +2 -1
  609. package/esm/components/Modal/ModalTitle.mjs.map +1 -1
  610. package/esm/components/ModalBase/ModalBase.mjs.map +1 -1
  611. package/esm/components/ModalBase/ModalBaseContent.mjs.map +1 -1
  612. package/esm/components/ModalBase/ModalBaseOverlay.mjs.map +1 -1
  613. package/esm/components/ModalBase/use-modal.mjs +2 -1
  614. package/esm/components/ModalBase/use-modal.mjs.map +1 -1
  615. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  616. package/esm/components/NativeSelect/NativeSelect.mjs.map +1 -1
  617. package/esm/components/NativeSelect/NativeSelectOption.mjs.map +1 -1
  618. package/esm/components/NavLink/NavLink.mjs.map +1 -1
  619. package/esm/components/Notification/Notification.mjs +3 -3
  620. package/esm/components/Notification/Notification.mjs.map +1 -1
  621. package/esm/components/NumberInput/NumberInput.mjs +5 -3
  622. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  623. package/esm/components/NumberInput/NumberInputChevron.mjs.map +1 -1
  624. package/esm/components/OverflowList/OverflowList.mjs +4 -2
  625. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  626. package/esm/components/Overlay/Overlay.mjs +14 -13
  627. package/esm/components/Overlay/Overlay.mjs.map +1 -1
  628. package/esm/components/Pagination/Pagination.icons.mjs.map +1 -1
  629. package/esm/components/Pagination/Pagination.mjs +2 -1
  630. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  631. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs +2 -1
  632. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs.map +1 -1
  633. package/esm/components/Pagination/PaginationEdges/PaginationEdges.mjs.map +1 -1
  634. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs +3 -2
  635. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs.map +1 -1
  636. package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs.map +1 -1
  637. package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs.map +1 -1
  638. package/esm/components/Paper/Paper.mjs +1 -1
  639. package/esm/components/Paper/Paper.mjs.map +1 -1
  640. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  641. package/esm/components/PasswordInput/PasswordToggleIcon.mjs.map +1 -1
  642. package/esm/components/Pill/Pill.mjs.map +1 -1
  643. package/esm/components/Pill/PillGroup/PillGroup.mjs.map +1 -1
  644. package/esm/components/PillsInput/PillsInput.mjs.map +1 -1
  645. package/esm/components/PinInput/PinInput.mjs +6 -5
  646. package/esm/components/PinInput/PinInput.mjs.map +1 -1
  647. package/esm/components/Popover/Popover.mjs.map +1 -1
  648. package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs +3 -2
  649. package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs.map +1 -1
  650. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
  651. package/esm/components/Popover/use-popover.mjs +16 -12
  652. package/esm/components/Popover/use-popover.mjs.map +1 -1
  653. package/esm/components/Progress/Progress.mjs.map +1 -1
  654. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs +2 -1
  655. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs.map +1 -1
  656. package/esm/components/Progress/ProgressRoot/ProgressRoot.mjs.map +1 -1
  657. package/esm/components/Radio/Radio.mjs.map +1 -1
  658. package/esm/components/Radio/RadioCard/RadioCard.mjs.map +1 -1
  659. package/esm/components/Radio/RadioGroup/RadioGroup.mjs.map +1 -1
  660. package/esm/components/Radio/RadioIcon.mjs.map +1 -1
  661. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
  662. package/esm/components/Rating/Rating.mjs +6 -3
  663. package/esm/components/Rating/Rating.mjs.map +1 -1
  664. package/esm/components/Rating/RatingItem/RatingItem.mjs.map +1 -1
  665. package/esm/components/Rating/StarSymbol/StarIcon.mjs.map +1 -1
  666. package/esm/components/Rating/StarSymbol/StarSymbol.mjs +2 -1
  667. package/esm/components/Rating/StarSymbol/StarSymbol.mjs.map +1 -1
  668. package/esm/components/RingProgress/Curve/Curve.mjs.map +1 -1
  669. package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
  670. package/esm/components/RollingNumber/DigitColumn.mjs.map +1 -1
  671. package/esm/components/RollingNumber/RollingNumber.mjs +12 -10
  672. package/esm/components/RollingNumber/RollingNumber.mjs.map +1 -1
  673. package/esm/components/ScrollArea/ScrollArea.mjs +8 -6
  674. package/esm/components/ScrollArea/ScrollArea.mjs.map +1 -1
  675. package/esm/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.mjs.map +1 -1
  676. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs.map +1 -1
  677. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs.map +1 -1
  678. package/esm/components/Scroller/Scroller.mjs.map +1 -1
  679. package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  680. package/esm/components/Select/Select.mjs.map +1 -1
  681. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs.map +1 -1
  682. package/esm/components/SimpleGrid/SimpleGrid.mjs.map +1 -1
  683. package/esm/components/SimpleGrid/SimpleGridVariables.mjs +10 -8
  684. package/esm/components/SimpleGrid/SimpleGridVariables.mjs.map +1 -1
  685. package/esm/components/Skeleton/Skeleton.mjs +14 -13
  686. package/esm/components/Skeleton/Skeleton.mjs.map +1 -1
  687. package/esm/components/Slider/Marks/Marks.mjs +3 -2
  688. package/esm/components/Slider/Marks/Marks.mjs.map +1 -1
  689. package/esm/components/Slider/RangeSlider/RangeSlider.mjs +20 -11
  690. package/esm/components/Slider/RangeSlider/RangeSlider.mjs.map +1 -1
  691. package/esm/components/Slider/Slider/Slider.mjs +6 -6
  692. package/esm/components/Slider/Slider/Slider.mjs.map +1 -1
  693. package/esm/components/Slider/Thumb/Thumb.mjs.map +1 -1
  694. package/esm/components/Slider/Track/Track.mjs.map +1 -1
  695. package/esm/components/Splitter/GripIcon.mjs.map +1 -1
  696. package/esm/components/Splitter/Splitter.mjs +8 -7
  697. package/esm/components/Splitter/Splitter.mjs.map +1 -1
  698. package/esm/components/Spoiler/Spoiler.mjs.map +1 -1
  699. package/esm/components/Stack/Stack.mjs +14 -13
  700. package/esm/components/Stack/Stack.mjs.map +1 -1
  701. package/esm/components/Stepper/Stepper.context.mjs.map +1 -1
  702. package/esm/components/Stepper/Stepper.mjs +6 -3
  703. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  704. package/esm/components/Stepper/Stepper.module.mjs.map +1 -1
  705. package/esm/components/Stepper/StepperStep/StepperStep.mjs +3 -2
  706. package/esm/components/Stepper/StepperStep/StepperStep.mjs.map +1 -1
  707. package/esm/components/Switch/Switch.mjs.map +1 -1
  708. package/esm/components/Switch/SwitchGroup/SwitchGroup.mjs.map +1 -1
  709. package/esm/components/Table/Table.mjs +2 -2
  710. package/esm/components/Table/Table.mjs.map +1 -1
  711. package/esm/components/Table/TableScrollContainer.mjs.map +1 -1
  712. package/esm/components/TableOfContents/TableOfContents.mjs.map +1 -1
  713. package/esm/components/Tabs/Tabs.mjs.map +1 -1
  714. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs.map +1 -1
  715. package/esm/components/Tabs/TabsTab/TabsTab.mjs.map +1 -1
  716. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  717. package/esm/components/Text/Text.mjs +18 -17
  718. package/esm/components/Text/Text.mjs.map +1 -1
  719. package/esm/components/TextInput/TextInput.mjs +6 -5
  720. package/esm/components/TextInput/TextInput.mjs.map +1 -1
  721. package/esm/components/ThemeIcon/ThemeIcon.mjs +14 -13
  722. package/esm/components/ThemeIcon/ThemeIcon.mjs.map +1 -1
  723. package/esm/components/Timeline/Timeline.mjs.map +1 -1
  724. package/esm/components/Timeline/TimelineItem/TimelineItem.mjs.map +1 -1
  725. package/esm/components/Title/Title.mjs +1 -1
  726. package/esm/components/Title/Title.mjs.map +1 -1
  727. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  728. package/esm/components/Tooltip/TooltipFloating/TooltipFloating.mjs.map +1 -1
  729. package/esm/components/Tooltip/TooltipGroup/TooltipGroup.mjs.map +1 -1
  730. package/esm/components/Transition/Transition.mjs.map +1 -1
  731. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
  732. package/esm/components/Tree/Tree.mjs +2 -1
  733. package/esm/components/Tree/Tree.mjs.map +1 -1
  734. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  735. package/esm/components/Tree/use-tree.mjs.map +1 -1
  736. package/esm/components/TreeSelect/TreeSelect.mjs +11 -9
  737. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
  738. package/esm/components/TreeSelect/TreeSelectOption.mjs.map +1 -1
  739. package/esm/components/Typography/Typography.mjs +12 -11
  740. package/esm/components/Typography/Typography.mjs.map +1 -1
  741. package/esm/components/Typography/Typography.module.mjs.map +1 -1
  742. package/esm/components/UnstyledButton/UnstyledButton.mjs +12 -11
  743. package/esm/components/UnstyledButton/UnstyledButton.mjs.map +1 -1
  744. package/esm/components/VisuallyHidden/VisuallyHidden.mjs +12 -11
  745. package/esm/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -1
  746. package/esm/core/DirectionProvider/DirectionProvider.mjs +3 -2
  747. package/esm/core/DirectionProvider/DirectionProvider.mjs.map +1 -1
  748. package/esm/core/InlineStyles/InlineStyles.mjs.map +1 -1
  749. package/esm/core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs +4 -2
  750. package/esm/core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs.map +1 -1
  751. package/esm/core/MantineProvider/MantineProvider.mjs +3 -3
  752. package/esm/core/MantineProvider/MantineProvider.mjs.map +1 -1
  753. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs.map +1 -1
  754. package/esm/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.mjs.map +1 -1
  755. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs +2 -1
  756. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs.map +1 -1
  757. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs +0 -1
  758. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs.map +1 -1
  759. package/esm/core/utils/deep-merge/deep-merge.mjs +4 -3
  760. package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -1
  761. package/esm/index.mjs +4 -1
  762. package/esm/utils/InlineInput/InlineInput.mjs.map +1 -1
  763. package/lib/components/Accordion/Accordion.d.ts +1 -1
  764. package/lib/components/Accordion/AccordionChevron.d.ts +1 -1
  765. package/lib/components/ActionBar/ActionBar.context.d.ts +8 -0
  766. package/lib/components/ActionBar/ActionBar.d.ts +44 -0
  767. package/lib/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.d.ts +22 -0
  768. package/lib/components/ActionBar/ActionBarDivider/ActionBarDivider.d.ts +16 -0
  769. package/lib/components/ActionBar/index.d.ts +17 -0
  770. package/lib/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.d.ts +1 -1
  771. package/lib/components/Avatar/AvatarPlaceholderIcon.d.ts +1 -1
  772. package/lib/components/Cascader/CascaderColumns.d.ts +1 -1
  773. package/lib/components/Checkbox/CheckIcon.d.ts +2 -2
  774. package/lib/components/CloseButton/CloseIcon.d.ts +1 -1
  775. package/lib/components/ColorInput/EyeDropperIcon.d.ts +1 -1
  776. package/lib/components/ColorPicker/Saturation/Saturation.d.ts +1 -1
  777. package/lib/components/ColorPicker/Swatches/Swatches.d.ts +1 -1
  778. package/lib/components/ColorPicker/Thumb/Thumb.d.ts +1 -1
  779. package/lib/components/Combobox/Combobox.d.ts +1 -1
  780. package/lib/components/Combobox/ComboboxClearButton/ComboboxClearButton.d.ts +1 -1
  781. package/lib/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.d.ts +1 -1
  782. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +1 -1
  783. package/lib/components/CopyButton/CopyButton.d.ts +1 -1
  784. package/lib/components/Drawer/DrawerStack.d.ts +1 -1
  785. package/lib/components/FocusTrap/FocusTrap.d.ts +1 -1
  786. package/lib/components/Grid/GridCol/GridColVariables.d.ts +1 -1
  787. package/lib/components/Grid/GridVariables.d.ts +1 -1
  788. package/lib/components/HoverCard/HoverCard.d.ts +1 -1
  789. package/lib/components/HoverCard/HoverCardDropdown/HoverCardDropdown.d.ts +1 -1
  790. package/lib/components/HoverCard/HoverCardGroup/HoverCardGroup.d.ts +1 -1
  791. package/lib/components/HoverCard/HoverCardTarget/HoverCardTarget.d.ts +1 -1
  792. package/lib/components/Input/InputClearSection/InputClearSection.d.ts +1 -1
  793. package/lib/components/Input/index.d.ts +1 -1
  794. package/lib/components/Menu/Menu.d.ts +1 -1
  795. package/lib/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.d.ts +1 -1
  796. package/lib/components/Menu/MenuRadioGroup/MenuRadioGroup.d.ts +1 -1
  797. package/lib/components/Menu/MenuSelectableItem/MenuSelectableItem.d.ts +1 -1
  798. package/lib/components/Menu/MenuSub/MenuSub.d.ts +1 -1
  799. package/lib/components/Menu/MenuSubTarget/MenuSubTarget.d.ts +1 -1
  800. package/lib/components/Menu/MenuTarget/MenuTarget.d.ts +1 -1
  801. package/lib/components/Menubar/MenubarDropdown/MenubarDropdown.d.ts +1 -1
  802. package/lib/components/Menubar/MenubarMenu/MenubarMenu.d.ts +1 -1
  803. package/lib/components/Menubar/MenubarTarget/MenubarTarget.d.ts +1 -1
  804. package/lib/components/Modal/ModalStack.d.ts +1 -1
  805. package/lib/components/ModalBase/ModalBase.d.ts +1 -1
  806. package/lib/components/ModalBase/ModalBaseBody.d.ts +1 -1
  807. package/lib/components/ModalBase/ModalBaseCloseButton.d.ts +1 -1
  808. package/lib/components/ModalBase/ModalBaseContent.d.ts +1 -1
  809. package/lib/components/ModalBase/ModalBaseHeader.d.ts +1 -1
  810. package/lib/components/ModalBase/ModalBaseOverlay.d.ts +1 -1
  811. package/lib/components/ModalBase/ModalBaseTitle.d.ts +1 -1
  812. package/lib/components/ModalBase/NativeScrollArea.d.ts +1 -1
  813. package/lib/components/NativeSelect/NativeSelectOption.d.ts +1 -1
  814. package/lib/components/NumberFormatter/NumberFormatter.d.ts +1 -1
  815. package/lib/components/NumberInput/NumberInputChevron.d.ts +1 -1
  816. package/lib/components/Pagination/Pagination.icons.d.ts +5 -5
  817. package/lib/components/Pagination/PaginationItems/PaginationItems.d.ts +1 -1
  818. package/lib/components/PasswordInput/PasswordToggleIcon.d.ts +1 -1
  819. package/lib/components/Popover/Popover.d.ts +2 -2
  820. package/lib/components/Progress/Progress.d.ts +1 -1
  821. package/lib/components/Radio/RadioIcon.d.ts +1 -1
  822. package/lib/components/Rating/RatingItem/RatingItem.d.ts +1 -1
  823. package/lib/components/Rating/StarSymbol/StarIcon.d.ts +1 -1
  824. package/lib/components/Rating/StarSymbol/StarSymbol.d.ts +1 -1
  825. package/lib/components/RingProgress/Curve/Curve.d.ts +1 -1
  826. package/lib/components/RollingNumber/DigitColumn.d.ts +1 -1
  827. package/lib/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.d.ts +2 -2
  828. package/lib/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.d.ts +1 -1
  829. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.d.ts +1 -1
  830. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.d.ts +1 -1
  831. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.d.ts +1 -1
  832. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.d.ts +1 -1
  833. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.d.ts +1 -1
  834. package/lib/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.d.ts +1 -1
  835. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.d.ts +1 -1
  836. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.d.ts +1 -1
  837. package/lib/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.d.ts +2 -2
  838. package/lib/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.d.ts +1 -1
  839. package/lib/components/SimpleGrid/SimpleGridVariables.d.ts +2 -2
  840. package/lib/components/Slider/Marks/Marks.d.ts +1 -1
  841. package/lib/components/Slider/SliderRoot/SliderRoot.d.ts +1 -1
  842. package/lib/components/Slider/Thumb/Thumb.d.ts +1 -1
  843. package/lib/components/Slider/Track/Track.d.ts +1 -1
  844. package/lib/components/Splitter/GripIcon.d.ts +2 -2
  845. package/lib/components/Stepper/Stepper.context.d.ts +1 -0
  846. package/lib/components/Stepper/Stepper.d.ts +3 -1
  847. package/lib/components/Table/TableDataRenderer.d.ts +1 -1
  848. package/lib/components/Textarea/Autosize.d.ts +1 -1
  849. package/lib/components/Tooltip/TooltipGroup/TooltipGroup.d.ts +1 -1
  850. package/lib/components/Transition/Transition.d.ts +1 -1
  851. package/lib/components/Tree/FlatTreeNode.d.ts +1 -1
  852. package/lib/components/Tree/Tree.d.ts +1 -1
  853. package/lib/components/Tree/TreeNode.d.ts +1 -1
  854. package/lib/components/TreeSelect/TreeSelectOption.d.ts +1 -1
  855. package/lib/components/index.d.ts +1 -0
  856. package/lib/core/DirectionProvider/DirectionProvider.d.ts +1 -1
  857. package/lib/core/InlineStyles/InlineStyles.d.ts +1 -1
  858. package/lib/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.d.ts +1 -1
  859. package/lib/core/MantineProvider/MantineClasses/MantineClasses.d.ts +1 -1
  860. package/lib/core/MantineProvider/MantineCssVariables/MantineCssVariables.d.ts +1 -1
  861. package/lib/core/MantineProvider/MantineProvider.d.ts +5 -5
  862. package/lib/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.d.ts +1 -1
  863. package/lib/utils/Floating/FloatingArrow/FloatingArrow.d.ts +1 -1
  864. package/lib/utils/InlineInput/InlineInput.d.ts +1 -1
  865. package/lib/utils/InputsGroupFieldset/InputsGroupFieldset.d.ts +1 -1
  866. package/package.json +5 -5
  867. package/styles/ActionBar.css +13 -0
  868. package/styles/ActionBar.layer.css +14 -0
  869. package/styles/Stepper.css +30 -0
  870. package/styles/Stepper.layer.css +30 -0
  871. package/styles/Typography.css +59 -0
  872. package/styles/Typography.layer.css +59 -0
  873. package/styles.css +144 -41
  874. package/styles.layer.css +144 -41
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree-node-drag-drop.cjs","names":["findTreeNode"],"sources":["../../../src/components/Tree/use-tree-node-drag-drop.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { findTreeNode } from './get-children-nodes-values/get-children-nodes-values';\nimport type { TreeDragDropPayload, TreeDragDropPosition } from './move-tree-node/move-tree-node';\nimport type { TreeDragState, TreeNodeData } from './Tree';\n\nexport type TreeAllowDrop = (payload: TreeDragDropPayload) => boolean;\n\ninterface UseTreeNodeDragDropInput {\n nodeValue: string;\n hasChildren: boolean;\n isExpanded: boolean;\n data: TreeNodeData[];\n onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined;\n dragStateRef: React.RefObject<TreeDragState>;\n allowDrop: TreeAllowDrop | undefined;\n withDragHandle: boolean | undefined;\n}\n\nexport interface TreeDragHandleProps {\n onMouseDown: (event: React.MouseEvent) => void;\n}\n\nfunction isDescendantOf(\n data: TreeNodeData[],\n ancestorValue: string,\n descendantValue: string\n): boolean {\n const ancestor = findTreeNode(ancestorValue, data);\n if (!ancestor || !ancestor.children) {\n return false;\n }\n\n function check(nodes: TreeNodeData[]): boolean {\n for (const node of nodes) {\n if (node.value === descendantValue) {\n return true;\n }\n\n if (node.children && check(node.children)) {\n return true;\n }\n }\n\n return false;\n }\n\n return check(ancestor.children);\n}\n\nfunction getDragDropPosition(\n event: React.DragEvent,\n element: HTMLElement,\n hasChildren: boolean,\n isExpanded: boolean\n): TreeDragDropPosition {\n const rect = element.getBoundingClientRect();\n const y = event.clientY - rect.top;\n const height = rect.height;\n\n if (hasChildren) {\n // Expanded folder: the subtree is visually below the label, so an 'after' drop\n // on the label itself would be ambiguous — the indicator would render between\n // the folder name and its first child, which reads as \"as first child\". Use\n // 2 zones: 'before' (top half) and 'inside' (bottom half). To drop after an\n // expanded folder, hover over the next sibling's 'before' position.\n if (isExpanded) {\n if (y < height * 0.5) {\n return 'before';\n }\n return 'inside';\n }\n\n // Collapsed folder: full 3-zone behavior.\n if (y < height * 0.25) {\n return 'before';\n }\n\n if (y > height * 0.75) {\n return 'after';\n }\n\n return 'inside';\n }\n\n if (y < height * 0.5) {\n return 'before';\n }\n\n return 'after';\n}\n\nconst EMPTY_DRAG_PROPS = { elementProps: {}, dragHandleProps: undefined } as const;\n\nexport function useTreeNodeDragDrop({\n nodeValue,\n hasChildren,\n isExpanded,\n data,\n onDragDrop,\n dragStateRef,\n allowDrop,\n withDragHandle,\n}: UseTreeNodeDragDropInput) {\n const [isDragHandleActive, setIsDragHandleActive] = useState(false);\n\n useEffect(() => {\n if (!withDragHandle || !isDragHandleActive) {\n return undefined;\n }\n\n const handleWindowMouseUp = () => setIsDragHandleActive(false);\n window.addEventListener('mouseup', handleWindowMouseUp);\n return () => window.removeEventListener('mouseup', handleWindowMouseUp);\n }, [withDragHandle, isDragHandleActive]);\n\n if (!onDragDrop) {\n return EMPTY_DRAG_PROPS;\n }\n\n const handleDragStart = (event: React.DragEvent) => {\n if (withDragHandle && !isDragHandleActive) {\n return;\n }\n\n event.stopPropagation();\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', nodeValue);\n dragStateRef.current.draggedValue = nodeValue;\n\n const target = event.currentTarget as HTMLElement;\n const treeItem = target.closest('[role=treeitem]') as HTMLElement | null;\n if (treeItem) {\n treeItem.setAttribute('data-dragging', 'true');\n }\n\n requestAnimationFrame(() => {\n target.setAttribute('data-dragging', 'true');\n });\n };\n\n const handleDragOver = (event: React.DragEvent) => {\n const draggedValue = dragStateRef.current.draggedValue;\n if (!draggedValue || draggedValue === nodeValue) {\n return;\n }\n\n if (isDescendantOf(data, draggedValue, nodeValue)) {\n return;\n }\n\n const target = event.currentTarget as HTMLElement;\n const position = getDragDropPosition(event, target, hasChildren, isExpanded);\n\n if (allowDrop && !allowDrop({ draggedNode: draggedValue, targetNode: nodeValue, position })) {\n const prevTarget = dragStateRef.current.currentDropTarget;\n if (prevTarget && prevTarget !== target) {\n prevTarget.removeAttribute('data-drag-over');\n }\n target.removeAttribute('data-drag-over');\n dragStateRef.current.currentDropTarget = null;\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n event.dataTransfer.dropEffect = 'move';\n\n const prevTarget = dragStateRef.current.currentDropTarget;\n if (prevTarget && prevTarget !== target) {\n prevTarget.removeAttribute('data-drag-over');\n }\n\n target.setAttribute('data-drag-over', position);\n dragStateRef.current.currentDropTarget = target;\n };\n\n const handleDragLeave = (event: React.DragEvent) => {\n const target = event.currentTarget as HTMLElement;\n const related = event.relatedTarget as HTMLElement | null;\n\n if (related && target.contains(related)) {\n return;\n }\n\n target.removeAttribute('data-drag-over');\n\n if (dragStateRef.current.currentDropTarget === target) {\n dragStateRef.current.currentDropTarget = null;\n }\n };\n\n const handleDrop = (event: React.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n const target = event.currentTarget as HTMLElement;\n const position = target.getAttribute('data-drag-over') as TreeDragDropPosition | null;\n target.removeAttribute('data-drag-over');\n\n const draggedValue = dragStateRef.current.draggedValue;\n if (draggedValue && position && draggedValue !== nodeValue) {\n const payload = { draggedNode: draggedValue, targetNode: nodeValue, position };\n if (!allowDrop || allowDrop(payload)) {\n onDragDrop(payload);\n }\n }\n\n dragStateRef.current.draggedValue = null;\n dragStateRef.current.currentDropTarget = null;\n };\n\n const handleDragEnd = (event: React.DragEvent) => {\n const target = event.currentTarget as HTMLElement;\n target.removeAttribute('data-dragging');\n\n const treeItem = target.closest('[role=treeitem]') as HTMLElement | null;\n if (treeItem) {\n treeItem.removeAttribute('data-dragging');\n }\n\n const prevTarget = dragStateRef.current.currentDropTarget;\n if (prevTarget) {\n prevTarget.removeAttribute('data-drag-over');\n }\n\n dragStateRef.current.draggedValue = null;\n dragStateRef.current.currentDropTarget = null;\n\n if (withDragHandle) {\n setIsDragHandleActive(false);\n }\n };\n\n const elementProps = {\n draggable: withDragHandle ? isDragHandleActive : true,\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop,\n onDragEnd: handleDragEnd,\n };\n\n const dragHandleProps: TreeDragHandleProps | undefined = withDragHandle\n ? { onMouseDown: () => setIsDragHandleActive(true) }\n : undefined;\n\n return { elementProps, dragHandleProps };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-tree-node-drag-drop.cjs","names":["findTreeNode","useState"],"sources":["../../../src/components/Tree/use-tree-node-drag-drop.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { findTreeNode } from './get-children-nodes-values/get-children-nodes-values';\nimport type { TreeDragDropPayload, TreeDragDropPosition } from './move-tree-node/move-tree-node';\nimport type { TreeDragState, TreeNodeData } from './Tree';\n\nexport type TreeAllowDrop = (payload: TreeDragDropPayload) => boolean;\n\ninterface UseTreeNodeDragDropInput {\n nodeValue: string;\n hasChildren: boolean;\n isExpanded: boolean;\n data: TreeNodeData[];\n onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined;\n dragStateRef: React.RefObject<TreeDragState>;\n allowDrop: TreeAllowDrop | undefined;\n withDragHandle: boolean | undefined;\n}\n\nexport interface TreeDragHandleProps {\n onMouseDown: (event: React.MouseEvent) => void;\n}\n\nfunction isDescendantOf(\n data: TreeNodeData[],\n ancestorValue: string,\n descendantValue: string\n): boolean {\n const ancestor = findTreeNode(ancestorValue, data);\n if (!ancestor || !ancestor.children) {\n return false;\n }\n\n function check(nodes: TreeNodeData[]): boolean {\n for (const node of nodes) {\n if (node.value === descendantValue) {\n return true;\n }\n\n if (node.children && check(node.children)) {\n return true;\n }\n }\n\n return false;\n }\n\n return check(ancestor.children);\n}\n\nfunction getDragDropPosition(\n event: React.DragEvent,\n element: HTMLElement,\n hasChildren: boolean,\n isExpanded: boolean\n): TreeDragDropPosition {\n const rect = element.getBoundingClientRect();\n const y = event.clientY - rect.top;\n const height = rect.height;\n\n if (hasChildren) {\n // Expanded folder: the subtree is visually below the label, so an 'after' drop\n // on the label itself would be ambiguous — the indicator would render between\n // the folder name and its first child, which reads as \"as first child\". Use\n // 2 zones: 'before' (top half) and 'inside' (bottom half). To drop after an\n // expanded folder, hover over the next sibling's 'before' position.\n if (isExpanded) {\n if (y < height * 0.5) {\n return 'before';\n }\n return 'inside';\n }\n\n // Collapsed folder: full 3-zone behavior.\n if (y < height * 0.25) {\n return 'before';\n }\n\n if (y > height * 0.75) {\n return 'after';\n }\n\n return 'inside';\n }\n\n if (y < height * 0.5) {\n return 'before';\n }\n\n return 'after';\n}\n\nconst EMPTY_DRAG_PROPS = { elementProps: {}, dragHandleProps: undefined } as const;\n\nexport function useTreeNodeDragDrop({\n nodeValue,\n hasChildren,\n isExpanded,\n data,\n onDragDrop,\n dragStateRef,\n allowDrop,\n withDragHandle,\n}: UseTreeNodeDragDropInput) {\n const [isDragHandleActive, setIsDragHandleActive] = useState(false);\n\n useEffect(() => {\n if (!withDragHandle || !isDragHandleActive) {\n return undefined;\n }\n\n const handleWindowMouseUp = () => setIsDragHandleActive(false);\n window.addEventListener('mouseup', handleWindowMouseUp);\n return () => window.removeEventListener('mouseup', handleWindowMouseUp);\n }, [withDragHandle, isDragHandleActive]);\n\n if (!onDragDrop) {\n return EMPTY_DRAG_PROPS;\n }\n\n const handleDragStart = (event: React.DragEvent) => {\n if (withDragHandle && !isDragHandleActive) {\n return;\n }\n\n event.stopPropagation();\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', nodeValue);\n dragStateRef.current.draggedValue = nodeValue;\n\n const target = event.currentTarget as HTMLElement;\n const treeItem = target.closest('[role=treeitem]') as HTMLElement | null;\n if (treeItem) {\n treeItem.setAttribute('data-dragging', 'true');\n }\n\n requestAnimationFrame(() => {\n target.setAttribute('data-dragging', 'true');\n });\n };\n\n const handleDragOver = (event: React.DragEvent) => {\n const draggedValue = dragStateRef.current.draggedValue;\n if (!draggedValue || draggedValue === nodeValue) {\n return;\n }\n\n if (isDescendantOf(data, draggedValue, nodeValue)) {\n return;\n }\n\n const target = event.currentTarget as HTMLElement;\n const position = getDragDropPosition(event, target, hasChildren, isExpanded);\n\n if (allowDrop && !allowDrop({ draggedNode: draggedValue, targetNode: nodeValue, position })) {\n const prevTarget = dragStateRef.current.currentDropTarget;\n if (prevTarget && prevTarget !== target) {\n prevTarget.removeAttribute('data-drag-over');\n }\n target.removeAttribute('data-drag-over');\n dragStateRef.current.currentDropTarget = null;\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n event.dataTransfer.dropEffect = 'move';\n\n const prevTarget = dragStateRef.current.currentDropTarget;\n if (prevTarget && prevTarget !== target) {\n prevTarget.removeAttribute('data-drag-over');\n }\n\n target.setAttribute('data-drag-over', position);\n dragStateRef.current.currentDropTarget = target;\n };\n\n const handleDragLeave = (event: React.DragEvent) => {\n const target = event.currentTarget as HTMLElement;\n const related = event.relatedTarget as HTMLElement | null;\n\n if (related && target.contains(related)) {\n return;\n }\n\n target.removeAttribute('data-drag-over');\n\n if (dragStateRef.current.currentDropTarget === target) {\n dragStateRef.current.currentDropTarget = null;\n }\n };\n\n const handleDrop = (event: React.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n const target = event.currentTarget as HTMLElement;\n const position = target.getAttribute('data-drag-over') as TreeDragDropPosition | null;\n target.removeAttribute('data-drag-over');\n\n const draggedValue = dragStateRef.current.draggedValue;\n if (draggedValue && position && draggedValue !== nodeValue) {\n const payload = { draggedNode: draggedValue, targetNode: nodeValue, position };\n if (!allowDrop || allowDrop(payload)) {\n onDragDrop(payload);\n }\n }\n\n dragStateRef.current.draggedValue = null;\n dragStateRef.current.currentDropTarget = null;\n };\n\n const handleDragEnd = (event: React.DragEvent) => {\n const target = event.currentTarget as HTMLElement;\n target.removeAttribute('data-dragging');\n\n const treeItem = target.closest('[role=treeitem]') as HTMLElement | null;\n if (treeItem) {\n treeItem.removeAttribute('data-dragging');\n }\n\n const prevTarget = dragStateRef.current.currentDropTarget;\n if (prevTarget) {\n prevTarget.removeAttribute('data-drag-over');\n }\n\n dragStateRef.current.draggedValue = null;\n dragStateRef.current.currentDropTarget = null;\n\n if (withDragHandle) {\n setIsDragHandleActive(false);\n }\n };\n\n const elementProps = {\n draggable: withDragHandle ? isDragHandleActive : true,\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop,\n onDragEnd: handleDragEnd,\n };\n\n const dragHandleProps: TreeDragHandleProps | undefined = withDragHandle\n ? { onMouseDown: () => setIsDragHandleActive(true) }\n : undefined;\n\n return { elementProps, dragHandleProps };\n}\n"],"mappings":";;;;AAsBA,SAAS,eACP,MACA,eACA,iBACS;CACT,MAAM,WAAWA,kCAAAA,aAAa,eAAe,IAAI;CACjD,IAAI,CAAC,YAAY,CAAC,SAAS,UACzB,OAAO;CAGT,SAAS,MAAM,OAAgC;EAC7C,KAAK,MAAM,QAAQ,OAAO;GACxB,IAAI,KAAK,UAAU,iBACjB,OAAO;GAGT,IAAI,KAAK,YAAY,MAAM,KAAK,QAAQ,GACtC,OAAO;EAEX;EAEA,OAAO;CACT;CAEA,OAAO,MAAM,SAAS,QAAQ;AAChC;AAEA,SAAS,oBACP,OACA,SACA,aACA,YACsB;CACtB,MAAM,OAAO,QAAQ,sBAAsB;CAC3C,MAAM,IAAI,MAAM,UAAU,KAAK;CAC/B,MAAM,SAAS,KAAK;CAEpB,IAAI,aAAa;EAMf,IAAI,YAAY;GACd,IAAI,IAAI,SAAS,IACf,OAAO;GAET,OAAO;EACT;EAGA,IAAI,IAAI,SAAS,KACf,OAAO;EAGT,IAAI,IAAI,SAAS,KACf,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,IAAI,SAAS,IACf,OAAO;CAGT,OAAO;AACT;AAEA,MAAM,mBAAmB;CAAE,cAAc,CAAC;CAAG,iBAAiB,KAAA;AAAU;AAExE,SAAgB,oBAAoB,EAClC,WACA,aACA,YACA,MACA,YACA,cACA,WACA,kBAC2B;CAC3B,MAAM,CAAC,oBAAoB,0BAAA,GAAyBC,MAAAA,SAAAA,CAAS,KAAK;CAElE,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,kBAAkB,CAAC,oBACtB;EAGF,MAAM,4BAA4B,sBAAsB,KAAK;EAC7D,OAAO,iBAAiB,WAAW,mBAAmB;EACtD,aAAa,OAAO,oBAAoB,WAAW,mBAAmB;CACxE,GAAG,CAAC,gBAAgB,kBAAkB,CAAC;CAEvC,IAAI,CAAC,YACH,OAAO;CAGT,MAAM,mBAAmB,UAA2B;EAClD,IAAI,kBAAkB,CAAC,oBACrB;EAGF,MAAM,gBAAgB;EACtB,MAAM,aAAa,gBAAgB;EACnC,MAAM,aAAa,QAAQ,cAAc,SAAS;EAClD,aAAa,QAAQ,eAAe;EAEpC,MAAM,SAAS,MAAM;EACrB,MAAM,WAAW,OAAO,QAAQ,iBAAiB;EACjD,IAAI,UACF,SAAS,aAAa,iBAAiB,MAAM;EAG/C,4BAA4B;GAC1B,OAAO,aAAa,iBAAiB,MAAM;EAC7C,CAAC;CACH;CAEA,MAAM,kBAAkB,UAA2B;EACjD,MAAM,eAAe,aAAa,QAAQ;EAC1C,IAAI,CAAC,gBAAgB,iBAAiB,WACpC;EAGF,IAAI,eAAe,MAAM,cAAc,SAAS,GAC9C;EAGF,MAAM,SAAS,MAAM;EACrB,MAAM,WAAW,oBAAoB,OAAO,QAAQ,aAAa,UAAU;EAE3E,IAAI,aAAa,CAAC,UAAU;GAAE,aAAa;GAAc,YAAY;GAAW;EAAS,CAAC,GAAG;GAC3F,MAAM,aAAa,aAAa,QAAQ;GACxC,IAAI,cAAc,eAAe,QAC/B,WAAW,gBAAgB,gBAAgB;GAE7C,OAAO,gBAAgB,gBAAgB;GACvC,aAAa,QAAQ,oBAAoB;GACzC;EACF;EAEA,MAAM,eAAe;EACrB,MAAM,gBAAgB;EACtB,MAAM,aAAa,aAAa;EAEhC,MAAM,aAAa,aAAa,QAAQ;EACxC,IAAI,cAAc,eAAe,QAC/B,WAAW,gBAAgB,gBAAgB;EAG7C,OAAO,aAAa,kBAAkB,QAAQ;EAC9C,aAAa,QAAQ,oBAAoB;CAC3C;CAEA,MAAM,mBAAmB,UAA2B;EAClD,MAAM,SAAS,MAAM;EACrB,MAAM,UAAU,MAAM;EAEtB,IAAI,WAAW,OAAO,SAAS,OAAO,GACpC;EAGF,OAAO,gBAAgB,gBAAgB;EAEvC,IAAI,aAAa,QAAQ,sBAAsB,QAC7C,aAAa,QAAQ,oBAAoB;CAE7C;CAEA,MAAM,cAAc,UAA2B;EAC7C,MAAM,eAAe;EACrB,MAAM,gBAAgB;EAEtB,MAAM,SAAS,MAAM;EACrB,MAAM,WAAW,OAAO,aAAa,gBAAgB;EACrD,OAAO,gBAAgB,gBAAgB;EAEvC,MAAM,eAAe,aAAa,QAAQ;EAC1C,IAAI,gBAAgB,YAAY,iBAAiB,WAAW;GAC1D,MAAM,UAAU;IAAE,aAAa;IAAc,YAAY;IAAW;GAAS;GAC7E,IAAI,CAAC,aAAa,UAAU,OAAO,GACjC,WAAW,OAAO;EAEtB;EAEA,aAAa,QAAQ,eAAe;EACpC,aAAa,QAAQ,oBAAoB;CAC3C;CAEA,MAAM,iBAAiB,UAA2B;EAChD,MAAM,SAAS,MAAM;EACrB,OAAO,gBAAgB,eAAe;EAEtC,MAAM,WAAW,OAAO,QAAQ,iBAAiB;EACjD,IAAI,UACF,SAAS,gBAAgB,eAAe;EAG1C,MAAM,aAAa,aAAa,QAAQ;EACxC,IAAI,YACF,WAAW,gBAAgB,gBAAgB;EAG7C,aAAa,QAAQ,eAAe;EACpC,aAAa,QAAQ,oBAAoB;EAEzC,IAAI,gBACF,sBAAsB,KAAK;CAE/B;CAeA,OAAO;EAAE,cAAA;GAZP,WAAW,iBAAiB,qBAAqB;GACjD,aAAa;GACb,YAAY;GACZ,aAAa;GACb,QAAQ;GACR,WAAW;EAOO;EAAG,iBAJkC,iBACrD,EAAE,mBAAmB,sBAAsB,IAAI,EAAE,IACjD,KAAA;CAEmC;AACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree.cjs","names":["getChildrenNodesValues","findTreeNode","getAllChildrenNodes","getAllCheckedNodes","memoizedIsNodeChecked","memoizedIsNodeIndeterminate"],"sources":["../../../src/components/Tree/use-tree.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n CheckedNodeStatus,\n getAllCheckedNodes,\n} from './get-all-checked-nodes/get-all-checked-nodes';\nimport {\n findTreeNode,\n getAllChildrenNodes,\n getChildrenNodesValues,\n} from './get-children-nodes-values/get-children-nodes-values';\nimport { memoizedIsNodeChecked } from './is-node-checked/is-node-checked';\nimport { memoizedIsNodeIndeterminate } from './is-node-indeterminate/is-node-indeterminate';\nimport type { TreeNodeData } from './Tree';\n\nexport type TreeExpandedState = Record<string, boolean>;\n\nfunction getInitialTreeExpandedState(\n initialState: TreeExpandedState,\n data: TreeNodeData[],\n value: string | string[] | undefined,\n acc: TreeExpandedState = {}\n) {\n data.forEach((node) => {\n acc[node.value] = node.value in initialState ? initialState[node.value] : node.value === value;\n\n if (Array.isArray(node.children)) {\n getInitialTreeExpandedState(initialState, node.children, value, acc);\n }\n });\n\n return acc;\n}\n\nexport function getTreeExpandedState(\n data: TreeNodeData[],\n expandedNodesValues: string[] | '*'\n): Record<string, boolean> {\n const state = getInitialTreeExpandedState({}, data, []);\n\n if (expandedNodesValues === '*') {\n const result: Record<string, boolean> = {};\n const keys = Object.keys(state);\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = true;\n }\n return result;\n }\n\n expandedNodesValues.forEach((node) => {\n state[node] = true;\n });\n\n return state;\n}\n\nfunction getInitialCheckedState(\n initialState: string[],\n data: TreeNodeData[],\n checkStrictly: boolean\n) {\n if (checkStrictly) {\n return initialState;\n }\n\n const acc: string[] = [];\n\n initialState.forEach((node) => acc.push(...getChildrenNodesValues(node, data)));\n\n return Array.from(new Set(acc));\n}\n\nfunction getAllNodeValues(data: TreeNodeData[]): string[] {\n const acc: string[] = [];\n for (const node of data) {\n acc.push(node.value);\n if (Array.isArray(node.children) && node.children.length > 0) {\n acc.push(...getAllNodeValues(node.children));\n }\n }\n return acc;\n}\n\nexport interface UseTreeInput {\n /** Initial expanded state of all nodes, uncontrolled state */\n initialExpandedState?: TreeExpandedState;\n\n /** Expanded state of all nodes, controlled state */\n expandedState?: TreeExpandedState;\n\n /** Called when the tree expanded state changes */\n onExpandedStateChange?: (expandedState: TreeExpandedState) => void;\n\n /** Initial selected state of nodes */\n initialSelectedState?: string[];\n\n /** Selected state of all nodes, controlled state */\n selectedState?: string[];\n\n /** Called when the tree selected state changes */\n onSelectedStateChange?: (selectedState: string[]) => void;\n\n /** Initial checked state of nodes */\n initialCheckedState?: string[];\n\n /** Checked state of all nodes, controlled state */\n checkedState?: string[];\n\n /** Called when the tree checked state changes */\n onCheckedStateChange?: (checkedState: string[]) => void;\n\n /** Determines whether multiple node can be selected at a time */\n multiple?: boolean;\n\n /** Called with the node value when it is expanded */\n onNodeExpand?: (value: string) => void;\n\n /** Called with the node value when it is collapsed */\n onNodeCollapse?: (value: string) => void;\n\n /** Called when a node with `hasChildren: true` is expanded for the first time.\n * The callback should update the tree data with loaded children.\n */\n onLoadChildren?: (nodeValue: string) => Promise<void>;\n\n /** When `true`, checking a parent does not affect children and vice versa.\n * Each node's checked state is fully independent. @default false\n */\n checkStrictly?: boolean;\n}\n\nexport interface UseTreeReturnType {\n /** When `true`, each node's checked state is independent (no parent-child cascading) */\n checkStrictly: boolean;\n\n /** Determines whether multiple node can be selected at a time */\n multiple: boolean;\n\n /** A record of `node.value` and boolean values that represent nodes expanded state */\n expandedState: TreeExpandedState;\n\n /** An array of selected nodes values */\n selectedState: string[];\n\n /** An array of checked nodes values */\n checkedState: string[];\n\n /** A value of the node that was last clicked\n * Anchor node is used to determine range of selected nodes for multiple selection\n */\n anchorNode: string | null;\n\n /** Initializes tree state based on provided data, called automatically by the Tree component */\n initialize: (data: TreeNodeData[]) => void;\n\n /** Toggles expanded state of the node with provided value */\n toggleExpanded: (value: string) => void;\n\n /** Collapses node with provided value */\n collapse: (value: string) => void;\n\n /** Expands node with provided value */\n expand: (value: string) => void;\n\n /** Expands all nodes */\n expandAllNodes: () => void;\n\n /** Collapses all nodes */\n collapseAllNodes: () => void;\n\n /** Sets expanded state */\n setExpandedState: (value: TreeExpandedState) => void;\n\n /** Toggles selected state of the node with provided value */\n toggleSelected: (value: string) => void;\n\n /** Selects node with provided value */\n select: (value: string) => void;\n\n /** Deselects node with provided value */\n deselect: (value: string) => void;\n\n /** Clears selected state */\n clearSelected: () => void;\n\n /** Sets selected state */\n setSelectedState: (value: string[]) => void;\n\n /** Checks node with provided value */\n checkNode: (value: string) => void;\n\n /** Unchecks node with provided value */\n uncheckNode: (value: string) => void;\n\n /** Checks all nodes */\n checkAllNodes: () => void;\n\n /** Unchecks all nodes */\n uncheckAllNodes: () => void;\n\n /** Sets checked state */\n setCheckedState: (value: string[]) => void;\n\n /** Returns all checked nodes with status */\n getCheckedNodes: () => CheckedNodeStatus[];\n\n /** Returns `true` if node with provided value is checked */\n isNodeChecked: (value: string) => boolean;\n\n /** Returns `true` if node with provided value is indeterminate */\n isNodeIndeterminate: (value: string) => boolean;\n\n /** Returns `true` if the node's children are currently being loaded */\n isNodeLoading: (value: string) => boolean;\n\n /** Returns the error from the last failed load attempt for the given node, or `null` */\n getNodeLoadError: (value: string) => Error | null;\n\n /** Programmatically triggers loading of a node's children */\n loadNode: (value: string) => Promise<void>;\n\n /** Clears the loaded cache for a node, causing it to re-fetch on next expand */\n invalidateNode: (value: string) => void;\n}\n\nexport function useTree({\n initialSelectedState = [],\n expandedState,\n initialCheckedState = [],\n checkedState,\n initialExpandedState = {},\n selectedState,\n multiple = false,\n onNodeCollapse,\n onNodeExpand,\n onCheckedStateChange,\n onSelectedStateChange,\n onExpandedStateChange,\n onLoadChildren,\n checkStrictly = false,\n}: UseTreeInput = {}): UseTreeReturnType {\n const [data, setData] = useState<TreeNodeData[]>([]);\n const [_expandedState, setExpandedState] = useUncontrolled({\n value: expandedState,\n defaultValue: initialExpandedState,\n finalValue: {},\n onChange: onExpandedStateChange,\n });\n\n const [_selectedState, setSelectedState] = useUncontrolled({\n value: selectedState,\n defaultValue: initialSelectedState,\n finalValue: [],\n onChange: onSelectedStateChange,\n });\n\n const [_checkedState, setCheckedState] = useUncontrolled({\n value: checkedState,\n defaultValue: initialCheckedState,\n finalValue: [],\n onChange: onCheckedStateChange,\n });\n\n const [anchorNode, setAnchorNode] = useState<string | null>(null);\n\n const loadingNodesRef = useRef(new Set<string>());\n const loadedNodesRef = useRef(new Set<string>());\n const [loadingNodes, setLoadingNodes] = useState<string[]>([]);\n const [loadErrors, setLoadErrors] = useState<Record<string, Error>>({});\n\n const initialize = useCallback(\n (_data: TreeNodeData[]) => {\n setExpandedState(getInitialTreeExpandedState(_expandedState, _data, _selectedState));\n setCheckedState(getInitialCheckedState(_checkedState, _data, checkStrictly));\n setData(_data);\n },\n [_selectedState, _checkedState, _expandedState, checkStrictly]\n );\n\n const loadNodeImpl = useCallback(\n async (value: string) => {\n if (!onLoadChildren) {\n return;\n }\n\n if (loadingNodesRef.current.has(value) || loadedNodesRef.current.has(value)) {\n return;\n }\n\n loadingNodesRef.current.add(value);\n setLoadingNodes(Array.from(loadingNodesRef.current));\n setLoadErrors((prev) => {\n if (!(value in prev)) {\n return prev;\n }\n\n const next = { ...prev };\n delete next[value];\n return next;\n });\n\n try {\n await onLoadChildren(value);\n loadedNodesRef.current.add(value);\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n setLoadErrors((prev) => ({ ...prev, [value]: err }));\n } finally {\n loadingNodesRef.current.delete(value);\n setLoadingNodes(Array.from(loadingNodesRef.current));\n }\n },\n [onLoadChildren]\n );\n\n const tryLoadAsync = useCallback(\n (value: string) => {\n if (!onLoadChildren) {\n return;\n }\n\n const node = findTreeNode(value, data);\n if (node && node.hasChildren && !Array.isArray(node.children)) {\n loadNodeImpl(value);\n }\n },\n [onLoadChildren, data, loadNodeImpl]\n );\n\n const toggleExpanded = useCallback(\n (value: string) => {\n const nextState = { ..._expandedState, [value]: !_expandedState[value] };\n nextState[value] ? onNodeExpand?.(value) : onNodeCollapse?.(value);\n if (nextState[value]) {\n tryLoadAsync(value);\n }\n setExpandedState(nextState);\n },\n [onNodeCollapse, onNodeExpand, _expandedState, tryLoadAsync]\n );\n\n const collapse = useCallback(\n (value: string) => {\n if (_expandedState[value] !== false) {\n onNodeCollapse?.(value);\n }\n\n setExpandedState({ ..._expandedState, [value]: false });\n },\n [onNodeCollapse, _expandedState]\n );\n\n const expand = useCallback(\n (value: string) => {\n if (_expandedState[value] !== true) {\n onNodeExpand?.(value);\n }\n\n tryLoadAsync(value);\n setExpandedState({ ..._expandedState, [value]: true });\n },\n [onNodeExpand, _expandedState, tryLoadAsync]\n );\n\n const expandAllNodes = useCallback(() => {\n const nextState = { ..._expandedState };\n Object.keys(nextState).forEach((key) => {\n nextState[key] = true;\n tryLoadAsync(key);\n });\n\n setExpandedState(nextState);\n }, [_expandedState, tryLoadAsync]);\n\n const collapseAllNodes = useCallback(() => {\n const nextState = { ..._expandedState };\n Object.keys(nextState).forEach((key) => {\n nextState[key] = false;\n });\n\n setExpandedState(nextState);\n }, [_expandedState]);\n\n const toggleSelected = useCallback(\n (value: string) => {\n if (!multiple) {\n if (_selectedState.includes(value)) {\n setAnchorNode(null);\n return [];\n }\n\n setAnchorNode(value);\n return [value];\n }\n\n if (_selectedState.includes(value)) {\n setAnchorNode(null);\n return _selectedState.filter((item) => item !== value);\n }\n\n setAnchorNode(value);\n setSelectedState([..._selectedState, value]);\n },\n [_selectedState]\n );\n\n const select = useCallback(\n (value: string) => {\n setAnchorNode(value);\n setSelectedState(\n multiple\n ? _selectedState.includes(value)\n ? _selectedState\n : [..._selectedState, value]\n : [value]\n );\n },\n [_selectedState]\n );\n\n const deselect = useCallback(\n (value: string) => {\n anchorNode === value && setAnchorNode(null);\n setSelectedState(_selectedState.filter((item) => item !== value));\n },\n [_selectedState]\n );\n\n const clearSelected = useCallback(() => {\n setSelectedState([]);\n setAnchorNode(null);\n }, []);\n\n const checkNode = useCallback(\n (value: string) => {\n if (checkStrictly) {\n if (!_checkedState.includes(value)) {\n setCheckedState([..._checkedState, value]);\n }\n } else {\n const checkedNodes = getChildrenNodesValues(value, data);\n setCheckedState(Array.from(new Set([..._checkedState, ...checkedNodes])));\n }\n },\n [data, _checkedState, checkStrictly]\n );\n\n const uncheckNode = useCallback(\n (value: string) => {\n if (checkStrictly) {\n setCheckedState(_checkedState.filter((item) => item !== value));\n } else {\n const checkedNodes = getChildrenNodesValues(value, data);\n setCheckedState(_checkedState.filter((item) => !checkedNodes.includes(item)));\n }\n },\n [data, _checkedState, checkStrictly]\n );\n\n const checkAllNodes = useCallback(() => {\n if (checkStrictly) {\n setCheckedState(getAllNodeValues(data));\n } else {\n setCheckedState(getAllChildrenNodes(data));\n }\n }, [data, checkStrictly]);\n\n const uncheckAllNodes = useCallback(() => {\n setCheckedState([]);\n }, []);\n\n const getCheckedNodes = useCallback((): CheckedNodeStatus[] => {\n if (checkStrictly) {\n return _checkedState.map((value) => {\n const node = findTreeNode(value, data);\n return {\n checked: true,\n indeterminate: false,\n value,\n hasChildren: node\n ? (Array.isArray(node.children) && node.children.length > 0) || !!node.hasChildren\n : false,\n };\n });\n }\n return getAllCheckedNodes(data, _checkedState).result;\n }, [checkStrictly, _checkedState, data]);\n\n const isNodeChecked = useCallback(\n (value: string) => {\n if (checkStrictly) {\n return _checkedState.includes(value);\n }\n return memoizedIsNodeChecked(value, data, _checkedState);\n },\n [checkStrictly, _checkedState, data]\n );\n\n const isNodeIndeterminate = useCallback(\n (value: string) => {\n if (checkStrictly) {\n return false;\n }\n return memoizedIsNodeIndeterminate(value, data, _checkedState);\n },\n [checkStrictly, _checkedState, data]\n );\n\n const isNodeLoading = useCallback(\n (value: string) => loadingNodes.includes(value),\n [loadingNodes]\n );\n\n const getNodeLoadError = useCallback((value: string) => loadErrors[value] || null, [loadErrors]);\n\n const invalidateNode = useCallback((value: string) => {\n loadedNodesRef.current.delete(value);\n setLoadErrors((prev) => {\n if (!(value in prev)) {\n return prev;\n }\n\n const next = { ...prev };\n delete next[value];\n return next;\n });\n }, []);\n\n return useMemo(\n () => ({\n checkStrictly,\n multiple,\n expandedState: _expandedState,\n selectedState: _selectedState,\n checkedState: _checkedState,\n anchorNode,\n initialize,\n\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n\n checkNode,\n uncheckNode,\n checkAllNodes,\n uncheckAllNodes,\n setCheckedState,\n\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n\n getCheckedNodes,\n isNodeChecked,\n isNodeIndeterminate,\n\n isNodeLoading,\n getNodeLoadError,\n loadNode: loadNodeImpl,\n invalidateNode,\n }),\n [\n checkStrictly,\n multiple,\n _expandedState,\n _selectedState,\n _checkedState,\n anchorNode,\n initialize,\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n checkNode,\n uncheckNode,\n checkAllNodes,\n uncheckAllNodes,\n setCheckedState,\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n getCheckedNodes,\n isNodeChecked,\n isNodeIndeterminate,\n isNodeLoading,\n getNodeLoadError,\n loadNodeImpl,\n invalidateNode,\n ]\n );\n}\n\nexport type TreeController = ReturnType<typeof useTree>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-tree.cjs","names":["getChildrenNodesValues","useState","useUncontrolled","useRef","useCallback","findTreeNode","getAllChildrenNodes","getAllCheckedNodes","memoizedIsNodeChecked","memoizedIsNodeIndeterminate","useMemo"],"sources":["../../../src/components/Tree/use-tree.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n CheckedNodeStatus,\n getAllCheckedNodes,\n} from './get-all-checked-nodes/get-all-checked-nodes';\nimport {\n findTreeNode,\n getAllChildrenNodes,\n getChildrenNodesValues,\n} from './get-children-nodes-values/get-children-nodes-values';\nimport { memoizedIsNodeChecked } from './is-node-checked/is-node-checked';\nimport { memoizedIsNodeIndeterminate } from './is-node-indeterminate/is-node-indeterminate';\nimport type { TreeNodeData } from './Tree';\n\nexport type TreeExpandedState = Record<string, boolean>;\n\nfunction getInitialTreeExpandedState(\n initialState: TreeExpandedState,\n data: TreeNodeData[],\n value: string | string[] | undefined,\n acc: TreeExpandedState = {}\n) {\n data.forEach((node) => {\n acc[node.value] = node.value in initialState ? initialState[node.value] : node.value === value;\n\n if (Array.isArray(node.children)) {\n getInitialTreeExpandedState(initialState, node.children, value, acc);\n }\n });\n\n return acc;\n}\n\nexport function getTreeExpandedState(\n data: TreeNodeData[],\n expandedNodesValues: string[] | '*'\n): Record<string, boolean> {\n const state = getInitialTreeExpandedState({}, data, []);\n\n if (expandedNodesValues === '*') {\n const result: Record<string, boolean> = {};\n const keys = Object.keys(state);\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = true;\n }\n return result;\n }\n\n expandedNodesValues.forEach((node) => {\n state[node] = true;\n });\n\n return state;\n}\n\nfunction getInitialCheckedState(\n initialState: string[],\n data: TreeNodeData[],\n checkStrictly: boolean\n) {\n if (checkStrictly) {\n return initialState;\n }\n\n const acc: string[] = [];\n\n initialState.forEach((node) => acc.push(...getChildrenNodesValues(node, data)));\n\n return Array.from(new Set(acc));\n}\n\nfunction getAllNodeValues(data: TreeNodeData[]): string[] {\n const acc: string[] = [];\n for (const node of data) {\n acc.push(node.value);\n if (Array.isArray(node.children) && node.children.length > 0) {\n acc.push(...getAllNodeValues(node.children));\n }\n }\n return acc;\n}\n\nexport interface UseTreeInput {\n /** Initial expanded state of all nodes, uncontrolled state */\n initialExpandedState?: TreeExpandedState;\n\n /** Expanded state of all nodes, controlled state */\n expandedState?: TreeExpandedState;\n\n /** Called when the tree expanded state changes */\n onExpandedStateChange?: (expandedState: TreeExpandedState) => void;\n\n /** Initial selected state of nodes */\n initialSelectedState?: string[];\n\n /** Selected state of all nodes, controlled state */\n selectedState?: string[];\n\n /** Called when the tree selected state changes */\n onSelectedStateChange?: (selectedState: string[]) => void;\n\n /** Initial checked state of nodes */\n initialCheckedState?: string[];\n\n /** Checked state of all nodes, controlled state */\n checkedState?: string[];\n\n /** Called when the tree checked state changes */\n onCheckedStateChange?: (checkedState: string[]) => void;\n\n /** Determines whether multiple node can be selected at a time */\n multiple?: boolean;\n\n /** Called with the node value when it is expanded */\n onNodeExpand?: (value: string) => void;\n\n /** Called with the node value when it is collapsed */\n onNodeCollapse?: (value: string) => void;\n\n /** Called when a node with `hasChildren: true` is expanded for the first time.\n * The callback should update the tree data with loaded children.\n */\n onLoadChildren?: (nodeValue: string) => Promise<void>;\n\n /** When `true`, checking a parent does not affect children and vice versa.\n * Each node's checked state is fully independent. @default false\n */\n checkStrictly?: boolean;\n}\n\nexport interface UseTreeReturnType {\n /** When `true`, each node's checked state is independent (no parent-child cascading) */\n checkStrictly: boolean;\n\n /** Determines whether multiple node can be selected at a time */\n multiple: boolean;\n\n /** A record of `node.value` and boolean values that represent nodes expanded state */\n expandedState: TreeExpandedState;\n\n /** An array of selected nodes values */\n selectedState: string[];\n\n /** An array of checked nodes values */\n checkedState: string[];\n\n /** A value of the node that was last clicked\n * Anchor node is used to determine range of selected nodes for multiple selection\n */\n anchorNode: string | null;\n\n /** Initializes tree state based on provided data, called automatically by the Tree component */\n initialize: (data: TreeNodeData[]) => void;\n\n /** Toggles expanded state of the node with provided value */\n toggleExpanded: (value: string) => void;\n\n /** Collapses node with provided value */\n collapse: (value: string) => void;\n\n /** Expands node with provided value */\n expand: (value: string) => void;\n\n /** Expands all nodes */\n expandAllNodes: () => void;\n\n /** Collapses all nodes */\n collapseAllNodes: () => void;\n\n /** Sets expanded state */\n setExpandedState: (value: TreeExpandedState) => void;\n\n /** Toggles selected state of the node with provided value */\n toggleSelected: (value: string) => void;\n\n /** Selects node with provided value */\n select: (value: string) => void;\n\n /** Deselects node with provided value */\n deselect: (value: string) => void;\n\n /** Clears selected state */\n clearSelected: () => void;\n\n /** Sets selected state */\n setSelectedState: (value: string[]) => void;\n\n /** Checks node with provided value */\n checkNode: (value: string) => void;\n\n /** Unchecks node with provided value */\n uncheckNode: (value: string) => void;\n\n /** Checks all nodes */\n checkAllNodes: () => void;\n\n /** Unchecks all nodes */\n uncheckAllNodes: () => void;\n\n /** Sets checked state */\n setCheckedState: (value: string[]) => void;\n\n /** Returns all checked nodes with status */\n getCheckedNodes: () => CheckedNodeStatus[];\n\n /** Returns `true` if node with provided value is checked */\n isNodeChecked: (value: string) => boolean;\n\n /** Returns `true` if node with provided value is indeterminate */\n isNodeIndeterminate: (value: string) => boolean;\n\n /** Returns `true` if the node's children are currently being loaded */\n isNodeLoading: (value: string) => boolean;\n\n /** Returns the error from the last failed load attempt for the given node, or `null` */\n getNodeLoadError: (value: string) => Error | null;\n\n /** Programmatically triggers loading of a node's children */\n loadNode: (value: string) => Promise<void>;\n\n /** Clears the loaded cache for a node, causing it to re-fetch on next expand */\n invalidateNode: (value: string) => void;\n}\n\nexport function useTree({\n initialSelectedState = [],\n expandedState,\n initialCheckedState = [],\n checkedState,\n initialExpandedState = {},\n selectedState,\n multiple = false,\n onNodeCollapse,\n onNodeExpand,\n onCheckedStateChange,\n onSelectedStateChange,\n onExpandedStateChange,\n onLoadChildren,\n checkStrictly = false,\n}: UseTreeInput = {}): UseTreeReturnType {\n const [data, setData] = useState<TreeNodeData[]>([]);\n const [_expandedState, setExpandedState] = useUncontrolled({\n value: expandedState,\n defaultValue: initialExpandedState,\n finalValue: {},\n onChange: onExpandedStateChange,\n });\n\n const [_selectedState, setSelectedState] = useUncontrolled({\n value: selectedState,\n defaultValue: initialSelectedState,\n finalValue: [],\n onChange: onSelectedStateChange,\n });\n\n const [_checkedState, setCheckedState] = useUncontrolled({\n value: checkedState,\n defaultValue: initialCheckedState,\n finalValue: [],\n onChange: onCheckedStateChange,\n });\n\n const [anchorNode, setAnchorNode] = useState<string | null>(null);\n\n const loadingNodesRef = useRef(new Set<string>());\n const loadedNodesRef = useRef(new Set<string>());\n const [loadingNodes, setLoadingNodes] = useState<string[]>([]);\n const [loadErrors, setLoadErrors] = useState<Record<string, Error>>({});\n\n const initialize = useCallback(\n (_data: TreeNodeData[]) => {\n setExpandedState(getInitialTreeExpandedState(_expandedState, _data, _selectedState));\n setCheckedState(getInitialCheckedState(_checkedState, _data, checkStrictly));\n setData(_data);\n },\n [_selectedState, _checkedState, _expandedState, checkStrictly]\n );\n\n const loadNodeImpl = useCallback(\n async (value: string) => {\n if (!onLoadChildren) {\n return;\n }\n\n if (loadingNodesRef.current.has(value) || loadedNodesRef.current.has(value)) {\n return;\n }\n\n loadingNodesRef.current.add(value);\n setLoadingNodes(Array.from(loadingNodesRef.current));\n setLoadErrors((prev) => {\n if (!(value in prev)) {\n return prev;\n }\n\n const next = { ...prev };\n delete next[value];\n return next;\n });\n\n try {\n await onLoadChildren(value);\n loadedNodesRef.current.add(value);\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n setLoadErrors((prev) => ({ ...prev, [value]: err }));\n } finally {\n loadingNodesRef.current.delete(value);\n setLoadingNodes(Array.from(loadingNodesRef.current));\n }\n },\n [onLoadChildren]\n );\n\n const tryLoadAsync = useCallback(\n (value: string) => {\n if (!onLoadChildren) {\n return;\n }\n\n const node = findTreeNode(value, data);\n if (node && node.hasChildren && !Array.isArray(node.children)) {\n loadNodeImpl(value);\n }\n },\n [onLoadChildren, data, loadNodeImpl]\n );\n\n const toggleExpanded = useCallback(\n (value: string) => {\n const nextState = { ..._expandedState, [value]: !_expandedState[value] };\n nextState[value] ? onNodeExpand?.(value) : onNodeCollapse?.(value);\n if (nextState[value]) {\n tryLoadAsync(value);\n }\n setExpandedState(nextState);\n },\n [onNodeCollapse, onNodeExpand, _expandedState, tryLoadAsync]\n );\n\n const collapse = useCallback(\n (value: string) => {\n if (_expandedState[value] !== false) {\n onNodeCollapse?.(value);\n }\n\n setExpandedState({ ..._expandedState, [value]: false });\n },\n [onNodeCollapse, _expandedState]\n );\n\n const expand = useCallback(\n (value: string) => {\n if (_expandedState[value] !== true) {\n onNodeExpand?.(value);\n }\n\n tryLoadAsync(value);\n setExpandedState({ ..._expandedState, [value]: true });\n },\n [onNodeExpand, _expandedState, tryLoadAsync]\n );\n\n const expandAllNodes = useCallback(() => {\n const nextState = { ..._expandedState };\n Object.keys(nextState).forEach((key) => {\n nextState[key] = true;\n tryLoadAsync(key);\n });\n\n setExpandedState(nextState);\n }, [_expandedState, tryLoadAsync]);\n\n const collapseAllNodes = useCallback(() => {\n const nextState = { ..._expandedState };\n Object.keys(nextState).forEach((key) => {\n nextState[key] = false;\n });\n\n setExpandedState(nextState);\n }, [_expandedState]);\n\n const toggleSelected = useCallback(\n (value: string) => {\n if (!multiple) {\n if (_selectedState.includes(value)) {\n setAnchorNode(null);\n return [];\n }\n\n setAnchorNode(value);\n return [value];\n }\n\n if (_selectedState.includes(value)) {\n setAnchorNode(null);\n return _selectedState.filter((item) => item !== value);\n }\n\n setAnchorNode(value);\n setSelectedState([..._selectedState, value]);\n },\n [_selectedState]\n );\n\n const select = useCallback(\n (value: string) => {\n setAnchorNode(value);\n setSelectedState(\n multiple\n ? _selectedState.includes(value)\n ? _selectedState\n : [..._selectedState, value]\n : [value]\n );\n },\n [_selectedState]\n );\n\n const deselect = useCallback(\n (value: string) => {\n anchorNode === value && setAnchorNode(null);\n setSelectedState(_selectedState.filter((item) => item !== value));\n },\n [_selectedState]\n );\n\n const clearSelected = useCallback(() => {\n setSelectedState([]);\n setAnchorNode(null);\n }, []);\n\n const checkNode = useCallback(\n (value: string) => {\n if (checkStrictly) {\n if (!_checkedState.includes(value)) {\n setCheckedState([..._checkedState, value]);\n }\n } else {\n const checkedNodes = getChildrenNodesValues(value, data);\n setCheckedState(Array.from(new Set([..._checkedState, ...checkedNodes])));\n }\n },\n [data, _checkedState, checkStrictly]\n );\n\n const uncheckNode = useCallback(\n (value: string) => {\n if (checkStrictly) {\n setCheckedState(_checkedState.filter((item) => item !== value));\n } else {\n const checkedNodes = getChildrenNodesValues(value, data);\n setCheckedState(_checkedState.filter((item) => !checkedNodes.includes(item)));\n }\n },\n [data, _checkedState, checkStrictly]\n );\n\n const checkAllNodes = useCallback(() => {\n if (checkStrictly) {\n setCheckedState(getAllNodeValues(data));\n } else {\n setCheckedState(getAllChildrenNodes(data));\n }\n }, [data, checkStrictly]);\n\n const uncheckAllNodes = useCallback(() => {\n setCheckedState([]);\n }, []);\n\n const getCheckedNodes = useCallback((): CheckedNodeStatus[] => {\n if (checkStrictly) {\n return _checkedState.map((value) => {\n const node = findTreeNode(value, data);\n return {\n checked: true,\n indeterminate: false,\n value,\n hasChildren: node\n ? (Array.isArray(node.children) && node.children.length > 0) || !!node.hasChildren\n : false,\n };\n });\n }\n return getAllCheckedNodes(data, _checkedState).result;\n }, [checkStrictly, _checkedState, data]);\n\n const isNodeChecked = useCallback(\n (value: string) => {\n if (checkStrictly) {\n return _checkedState.includes(value);\n }\n return memoizedIsNodeChecked(value, data, _checkedState);\n },\n [checkStrictly, _checkedState, data]\n );\n\n const isNodeIndeterminate = useCallback(\n (value: string) => {\n if (checkStrictly) {\n return false;\n }\n return memoizedIsNodeIndeterminate(value, data, _checkedState);\n },\n [checkStrictly, _checkedState, data]\n );\n\n const isNodeLoading = useCallback(\n (value: string) => loadingNodes.includes(value),\n [loadingNodes]\n );\n\n const getNodeLoadError = useCallback((value: string) => loadErrors[value] || null, [loadErrors]);\n\n const invalidateNode = useCallback((value: string) => {\n loadedNodesRef.current.delete(value);\n setLoadErrors((prev) => {\n if (!(value in prev)) {\n return prev;\n }\n\n const next = { ...prev };\n delete next[value];\n return next;\n });\n }, []);\n\n return useMemo(\n () => ({\n checkStrictly,\n multiple,\n expandedState: _expandedState,\n selectedState: _selectedState,\n checkedState: _checkedState,\n anchorNode,\n initialize,\n\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n\n checkNode,\n uncheckNode,\n checkAllNodes,\n uncheckAllNodes,\n setCheckedState,\n\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n\n getCheckedNodes,\n isNodeChecked,\n isNodeIndeterminate,\n\n isNodeLoading,\n getNodeLoadError,\n loadNode: loadNodeImpl,\n invalidateNode,\n }),\n [\n checkStrictly,\n multiple,\n _expandedState,\n _selectedState,\n _checkedState,\n anchorNode,\n initialize,\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n checkNode,\n uncheckNode,\n checkAllNodes,\n uncheckAllNodes,\n setCheckedState,\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n getCheckedNodes,\n isNodeChecked,\n isNodeIndeterminate,\n isNodeLoading,\n getNodeLoadError,\n loadNodeImpl,\n invalidateNode,\n ]\n );\n}\n\nexport type TreeController = ReturnType<typeof useTree>;\n"],"mappings":";;;;;;;;AAiBA,SAAS,4BACP,cACA,MACA,OACA,MAAyB,CAAC,GAC1B;CACA,KAAK,SAAS,SAAS;EACrB,IAAI,KAAK,SAAS,KAAK,SAAS,eAAe,aAAa,KAAK,SAAS,KAAK,UAAU;EAEzF,IAAI,MAAM,QAAQ,KAAK,QAAQ,GAC7B,4BAA4B,cAAc,KAAK,UAAU,OAAO,GAAG;CAEvE,CAAC;CAED,OAAO;AACT;AAEA,SAAgB,qBACd,MACA,qBACyB;CACzB,MAAM,QAAQ,4BAA4B,CAAC,GAAG,MAAM,CAAC,CAAC;CAEtD,IAAI,wBAAwB,KAAK;EAC/B,MAAM,SAAkC,CAAC;EACzC,MAAM,OAAO,OAAO,KAAK,KAAK;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAC/B,OAAO,KAAK,MAAM;EAEpB,OAAO;CACT;CAEA,oBAAoB,SAAS,SAAS;EACpC,MAAM,QAAQ;CAChB,CAAC;CAED,OAAO;AACT;AAEA,SAAS,uBACP,cACA,MACA,eACA;CACA,IAAI,eACF,OAAO;CAGT,MAAM,MAAgB,CAAC;CAEvB,aAAa,SAAS,SAAS,IAAI,KAAK,GAAGA,kCAAAA,uBAAuB,MAAM,IAAI,CAAC,CAAC;CAE9E,OAAO,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC;AAChC;AAEA,SAAS,iBAAiB,MAAgC;CACxD,MAAM,MAAgB,CAAC;CACvB,KAAK,MAAM,QAAQ,MAAM;EACvB,IAAI,KAAK,KAAK,KAAK;EACnB,IAAI,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAAS,SAAS,GACzD,IAAI,KAAK,GAAG,iBAAiB,KAAK,QAAQ,CAAC;CAE/C;CACA,OAAO;AACT;AAgJA,SAAgB,QAAQ,EACtB,uBAAuB,CAAC,GACxB,eACA,sBAAsB,CAAC,GACvB,cACA,uBAAuB,CAAC,GACxB,eACA,WAAW,OACX,gBACA,cACA,sBACA,uBACA,uBACA,gBACA,gBAAgB,UACA,CAAC,GAAsB;CACvC,MAAM,CAAC,MAAM,YAAA,GAAWC,MAAAA,SAAAA,CAAyB,CAAC,CAAC;CACnD,MAAM,CAAC,gBAAgB,qBAAA,GAAoBC,eAAAA,gBAAAA,CAAgB;EACzD,OAAO;EACP,cAAc;EACd,YAAY,CAAC;EACb,UAAU;CACZ,CAAC;CAED,MAAM,CAAC,gBAAgB,qBAAA,GAAoBA,eAAAA,gBAAAA,CAAgB;EACzD,OAAO;EACP,cAAc;EACd,YAAY,CAAC;EACb,UAAU;CACZ,CAAC;CAED,MAAM,CAAC,eAAe,oBAAA,GAAmBA,eAAAA,gBAAAA,CAAgB;EACvD,OAAO;EACP,cAAc;EACd,YAAY,CAAC;EACb,UAAU;CACZ,CAAC;CAED,MAAM,CAAC,YAAY,kBAAA,GAAiBD,MAAAA,SAAAA,CAAwB,IAAI;CAEhE,MAAM,mBAAA,GAAkBE,MAAAA,OAAAA,iBAAO,IAAI,IAAY,CAAC;CAChD,MAAM,kBAAA,GAAiBA,MAAAA,OAAAA,iBAAO,IAAI,IAAY,CAAC;CAC/C,MAAM,CAAC,cAAc,oBAAA,GAAmBF,MAAAA,SAAAA,CAAmB,CAAC,CAAC;CAC7D,MAAM,CAAC,YAAY,kBAAA,GAAiBA,MAAAA,SAAAA,CAAgC,CAAC,CAAC;CAEtE,MAAM,cAAA,GAAaG,MAAAA,YAAAA,EAChB,UAA0B;EACzB,iBAAiB,4BAA4B,gBAAgB,OAAO,cAAc,CAAC;EACnF,gBAAgB,uBAAuB,eAAe,OAAO,aAAa,CAAC;EAC3E,QAAQ,KAAK;CACf,GACA;EAAC;EAAgB;EAAe;EAAgB;CAAa,CAC/D;CAEA,MAAM,gBAAA,GAAeA,MAAAA,YAAAA,CACnB,OAAO,UAAkB;EACvB,IAAI,CAAC,gBACH;EAGF,IAAI,gBAAgB,QAAQ,IAAI,KAAK,KAAK,eAAe,QAAQ,IAAI,KAAK,GACxE;EAGF,gBAAgB,QAAQ,IAAI,KAAK;EACjC,gBAAgB,MAAM,KAAK,gBAAgB,OAAO,CAAC;EACnD,eAAe,SAAS;GACtB,IAAI,EAAE,SAAS,OACb,OAAO;GAGT,MAAM,OAAO,EAAE,GAAG,KAAK;GACvB,OAAO,KAAK;GACZ,OAAO;EACT,CAAC;EAED,IAAI;GACF,MAAM,eAAe,KAAK;GAC1B,eAAe,QAAQ,IAAI,KAAK;EAClC,SAAS,OAAO;GACd,MAAM,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;GACpE,eAAe,UAAU;IAAE,GAAG;KAAO,QAAQ;GAAI,EAAE;EACrD,UAAU;GACR,gBAAgB,QAAQ,OAAO,KAAK;GACpC,gBAAgB,MAAM,KAAK,gBAAgB,OAAO,CAAC;EACrD;CACF,GACA,CAAC,cAAc,CACjB;CAEA,MAAM,gBAAA,GAAeA,MAAAA,YAAAA,EAClB,UAAkB;EACjB,IAAI,CAAC,gBACH;EAGF,MAAM,OAAOC,kCAAAA,aAAa,OAAO,IAAI;EACrC,IAAI,QAAQ,KAAK,eAAe,CAAC,MAAM,QAAQ,KAAK,QAAQ,GAC1D,aAAa,KAAK;CAEtB,GACA;EAAC;EAAgB;EAAM;CAAY,CACrC;CAEA,MAAM,kBAAA,GAAiBD,MAAAA,YAAAA,EACpB,UAAkB;EACjB,MAAM,YAAY;GAAE,GAAG;IAAiB,QAAQ,CAAC,eAAe;EAAO;EACvE,UAAU,SAAS,eAAe,KAAK,IAAI,iBAAiB,KAAK;EACjE,IAAI,UAAU,QACZ,aAAa,KAAK;EAEpB,iBAAiB,SAAS;CAC5B,GACA;EAAC;EAAgB;EAAc;EAAgB;CAAY,CAC7D;CAEA,MAAM,YAAA,GAAWA,MAAAA,YAAAA,EACd,UAAkB;EACjB,IAAI,eAAe,WAAW,OAC5B,iBAAiB,KAAK;EAGxB,iBAAiB;GAAE,GAAG;IAAiB,QAAQ;EAAM,CAAC;CACxD,GACA,CAAC,gBAAgB,cAAc,CACjC;CAEA,MAAM,UAAA,GAASA,MAAAA,YAAAA,EACZ,UAAkB;EACjB,IAAI,eAAe,WAAW,MAC5B,eAAe,KAAK;EAGtB,aAAa,KAAK;EAClB,iBAAiB;GAAE,GAAG;IAAiB,QAAQ;EAAK,CAAC;CACvD,GACA;EAAC;EAAc;EAAgB;CAAY,CAC7C;CAEA,MAAM,kBAAA,GAAiBA,MAAAA,YAAAA,OAAkB;EACvC,MAAM,YAAY,EAAE,GAAG,eAAe;EACtC,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,QAAQ;GACtC,UAAU,OAAO;GACjB,aAAa,GAAG;EAClB,CAAC;EAED,iBAAiB,SAAS;CAC5B,GAAG,CAAC,gBAAgB,YAAY,CAAC;CAEjC,MAAM,oBAAA,GAAmBA,MAAAA,YAAAA,OAAkB;EACzC,MAAM,YAAY,EAAE,GAAG,eAAe;EACtC,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,QAAQ;GACtC,UAAU,OAAO;EACnB,CAAC;EAED,iBAAiB,SAAS;CAC5B,GAAG,CAAC,cAAc,CAAC;CAEnB,MAAM,kBAAA,GAAiBA,MAAAA,YAAAA,EACpB,UAAkB;EACjB,IAAI,CAAC,UAAU;GACb,IAAI,eAAe,SAAS,KAAK,GAAG;IAClC,cAAc,IAAI;IAClB,OAAO,CAAC;GACV;GAEA,cAAc,KAAK;GACnB,OAAO,CAAC,KAAK;EACf;EAEA,IAAI,eAAe,SAAS,KAAK,GAAG;GAClC,cAAc,IAAI;GAClB,OAAO,eAAe,QAAQ,SAAS,SAAS,KAAK;EACvD;EAEA,cAAc,KAAK;EACnB,iBAAiB,CAAC,GAAG,gBAAgB,KAAK,CAAC;CAC7C,GACA,CAAC,cAAc,CACjB;CAEA,MAAM,UAAA,GAASA,MAAAA,YAAAA,EACZ,UAAkB;EACjB,cAAc,KAAK;EACnB,iBACE,WACI,eAAe,SAAS,KAAK,IAC3B,iBACA,CAAC,GAAG,gBAAgB,KAAK,IAC3B,CAAC,KAAK,CACZ;CACF,GACA,CAAC,cAAc,CACjB;CAEA,MAAM,YAAA,GAAWA,MAAAA,YAAAA,EACd,UAAkB;EACjB,eAAe,SAAS,cAAc,IAAI;EAC1C,iBAAiB,eAAe,QAAQ,SAAS,SAAS,KAAK,CAAC;CAClE,GACA,CAAC,cAAc,CACjB;CAEA,MAAM,iBAAA,GAAgBA,MAAAA,YAAAA,OAAkB;EACtC,iBAAiB,CAAC,CAAC;EACnB,cAAc,IAAI;CACpB,GAAG,CAAC,CAAC;CAEL,MAAM,aAAA,GAAYA,MAAAA,YAAAA,EACf,UAAkB;EACjB,IAAI,eACE;OAAA,CAAC,cAAc,SAAS,KAAK,GAC/B,gBAAgB,CAAC,GAAG,eAAe,KAAK,CAAC;EAAA,OAEtC;GACL,MAAM,eAAeJ,kCAAAA,uBAAuB,OAAO,IAAI;GACvD,gBAAgB,MAAM,qBAAK,IAAI,IAAI,CAAC,GAAG,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC;EAC1E;CACF,GACA;EAAC;EAAM;EAAe;CAAa,CACrC;CAEA,MAAM,eAAA,GAAcI,MAAAA,YAAAA,EACjB,UAAkB;EACjB,IAAI,eACF,gBAAgB,cAAc,QAAQ,SAAS,SAAS,KAAK,CAAC;OACzD;GACL,MAAM,eAAeJ,kCAAAA,uBAAuB,OAAO,IAAI;GACvD,gBAAgB,cAAc,QAAQ,SAAS,CAAC,aAAa,SAAS,IAAI,CAAC,CAAC;EAC9E;CACF,GACA;EAAC;EAAM;EAAe;CAAa,CACrC;CAEA,MAAM,iBAAA,GAAgBI,MAAAA,YAAAA,OAAkB;EACtC,IAAI,eACF,gBAAgB,iBAAiB,IAAI,CAAC;OAEtC,gBAAgBE,kCAAAA,oBAAoB,IAAI,CAAC;CAE7C,GAAG,CAAC,MAAM,aAAa,CAAC;CAExB,MAAM,mBAAA,GAAkBF,MAAAA,YAAAA,OAAkB;EACxC,gBAAgB,CAAC,CAAC;CACpB,GAAG,CAAC,CAAC;CAEL,MAAM,mBAAA,GAAkBA,MAAAA,YAAAA,OAAuC;EAC7D,IAAI,eACF,OAAO,cAAc,KAAK,UAAU;GAClC,MAAM,OAAOC,kCAAAA,aAAa,OAAO,IAAI;GACrC,OAAO;IACL,SAAS;IACT,eAAe;IACf;IACA,aAAa,OACR,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAAS,SAAS,KAAM,CAAC,CAAC,KAAK,cACrE;GACN;EACF,CAAC;EAEH,OAAOE,8BAAAA,mBAAmB,MAAM,aAAa,CAAC,CAAC;CACjD,GAAG;EAAC;EAAe;EAAe;CAAI,CAAC;CAEvC,MAAM,iBAAA,GAAgBH,MAAAA,YAAAA,EACnB,UAAkB;EACjB,IAAI,eACF,OAAO,cAAc,SAAS,KAAK;EAErC,OAAOI,wBAAAA,sBAAsB,OAAO,MAAM,aAAa;CACzD,GACA;EAAC;EAAe;EAAe;CAAI,CACrC;CAEA,MAAM,uBAAA,GAAsBJ,MAAAA,YAAAA,EACzB,UAAkB;EACjB,IAAI,eACF,OAAO;EAET,OAAOK,8BAAAA,4BAA4B,OAAO,MAAM,aAAa;CAC/D,GACA;EAAC;EAAe;EAAe;CAAI,CACrC;CAEA,MAAM,iBAAA,GAAgBL,MAAAA,YAAAA,EACnB,UAAkB,aAAa,SAAS,KAAK,GAC9C,CAAC,YAAY,CACf;CAEA,MAAM,oBAAA,GAAmBA,MAAAA,YAAAA,EAAa,UAAkB,WAAW,UAAU,MAAM,CAAC,UAAU,CAAC;CAE/F,MAAM,kBAAA,GAAiBA,MAAAA,YAAAA,EAAa,UAAkB;EACpD,eAAe,QAAQ,OAAO,KAAK;EACnC,eAAe,SAAS;GACtB,IAAI,EAAE,SAAS,OACb,OAAO;GAGT,MAAM,OAAO,EAAE,GAAG,KAAK;GACvB,OAAO,KAAK;GACZ,OAAO;EACT,CAAC;CACH,GAAG,CAAC,CAAC;CAEL,QAAA,GAAOM,MAAAA,QAAAA,QACE;EACL;EACA;EACA,eAAe;EACf,eAAe;EACf,cAAc;EACd;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA,UAAU;EACV;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;AACF"}
@@ -79,11 +79,12 @@ const TreeSelect = require_factory.genericFactory((_props) => {
79
79
  if (defaultExpandedValues) return require_use_tree.getTreeExpandedState(data, defaultExpandedValues);
80
80
  return require_use_tree.getTreeExpandedState(data, []);
81
81
  }, []);
82
+ const expandedToRecord = (0, react.useCallback)((values) => {
83
+ if (!values) return;
84
+ return require_use_tree.getTreeExpandedState(data, values);
85
+ }, [data]);
82
86
  const [_expandedState, setExpandedState] = (0, _mantine_hooks.useUncontrolled)({
83
- value: (0, react.useCallback)((values) => {
84
- if (!values) return;
85
- return require_use_tree.getTreeExpandedState(data, values);
86
- }, [data])(expandedValues),
87
+ value: expandedToRecord(expandedValues),
87
88
  defaultValue: initialExpanded,
88
89
  finalValue: {},
89
90
  onChange: (val) => {
@@ -96,14 +97,15 @@ const TreeSelect = require_factory.genericFactory((_props) => {
96
97
  [nodeValue]: !_expandedState[nodeValue]
97
98
  });
98
99
  }, [_expandedState]);
100
+ const initialSearchValue = (0, react.useMemo)(() => {
101
+ if (mode !== "single" || !defaultValue) return "";
102
+ const node = require_get_children_nodes_values.findTreeNode(defaultValue, data);
103
+ return node ? typeof node.label === "string" ? node.label : "" : "";
104
+ }, []);
99
105
  const [_searchValue, setSearchValue] = (0, _mantine_hooks.useUncontrolled)({
100
106
  value: searchValue,
101
107
  defaultValue: defaultSearchValue,
102
- finalValue: (0, react.useMemo)(() => {
103
- if (mode !== "single" || !defaultValue) return "";
104
- const node = require_get_children_nodes_values.findTreeNode(defaultValue, data);
105
- return node ? typeof node.label === "string" ? node.label : "" : "";
106
- }, []),
108
+ finalValue: initialSearchValue,
107
109
  onChange: onSearchChange
108
110
  });
109
111
  const handleSearchChange = (val) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSelect.cjs","names":["genericFactory","useProps","useCombobox","getTreeExpandedState","findTreeNode","expandToLeafChecked","filterTreeData","flattenTreeSelectData","useStyles","useResolvedStylesApi","extractStyleProps","isNodeChecked","getChildrenNodesValues","checkedToValue","Combobox","Pill","isNodeIndeterminate","TreeSelectOption","classes","ScrollArea","PillsInput","isExternalInputChange","InputBase"],"sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n extractStyleProps,\n Factory,\n genericFactory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Combobox, ComboboxLikeStylesNames, useCombobox } from '../Combobox';\nimport { isExternalInputChange } from '../Combobox/is-external-input-change/is-external-input-change';\nimport {\n __BaseInputProps,\n __InputStylesNames,\n ClearSectionMode,\n InputClearButtonProps,\n InputVariant,\n} from '../Input';\nimport { InputBase } from '../InputBase';\nimport { Pill } from '../Pill';\nimport { PillsInput } from '../PillsInput';\nimport { ScrollArea, ScrollAreaProps } from '../ScrollArea';\nimport type { TreeNodeData } from '../Tree';\nimport { filterTreeData } from '../Tree/filter-tree-data/filter-tree-data';\nimport {\n findTreeNode,\n getChildrenNodesValues,\n} from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\nimport { isNodeIndeterminate } from '../Tree/is-node-indeterminate/is-node-indeterminate';\nimport { getTreeExpandedState, TreeExpandedState } from '../Tree/use-tree';\nimport { flattenTreeSelectData } from './flatten-tree-select-data';\nimport {\n CheckedStrategy,\n checkedToValue,\n expandToLeafChecked,\n} from './get-checked-values-by-strategy';\nimport {\n TreeSelectChevronAriaLabels,\n TreeSelectOption,\n TreeSelectRenderNodePayload,\n} from './TreeSelectOption';\nimport classes from './TreeSelect.module.css';\n\nexport type TreeSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox';\n\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[];\n\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'>\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<TreeSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Tree data */\n data: TreeNodeData[];\n\n /** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */\n mode?: Mode;\n\n /** Controlled value */\n value?: TreeSelectValue<Mode>;\n\n /** Default value */\n defaultValue?: TreeSelectValue<Mode>;\n\n /** Called when value changes */\n onChange?: (value: TreeSelectValue<Mode>) => void;\n\n /** Disables parent-child cascade in checkbox mode @default false */\n checkStrictly?: boolean;\n\n /** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */\n checkedStrategy?: CheckedStrategy;\n\n /** Default expanded node values */\n defaultExpandedValues?: string[];\n\n /** Expand all nodes by default @default false */\n defaultExpandAll?: boolean;\n\n /** Controlled expanded state */\n expandedValues?: string[];\n\n /** Called when expanded state changes */\n onExpandedChange?: (values: string[]) => void;\n\n /** Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand. @default false */\n expandOnClick?: boolean;\n\n /** Enables search filtering @default false */\n searchable?: boolean;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Custom filter function */\n filter?: (query: string, node: TreeNodeData) => boolean;\n\n /** Message when no nodes match search */\n nothingFoundMessage?: React.ReactNode;\n\n /** Allows deselecting in single mode @default true */\n allowDeselect?: boolean;\n\n /** Shows clear button @default false */\n clearable?: boolean;\n\n /** Determines how the clear button and rightSection are rendered @default 'both' */\n clearSectionMode?: ClearSectionMode;\n\n /** Props for the clear button */\n clearButtonProps?: InputClearButtonProps;\n\n /** Maximum selectable values (multiple/checkbox mode) */\n maxValues?: number;\n\n /** Maximum displayed pills before \"+N more\" */\n maxDisplayedValues?: number;\n\n /** Content shown when values overflow maxDisplayedValues */\n maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);\n\n /** Called with removed value in multiple/checkbox mode */\n onRemove?: (value: string) => void;\n\n /** Called when clear button is clicked */\n onClear?: () => void;\n\n /** Custom node rendering in the dropdown */\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n\n /** Show tree connection lines between parent and child nodes @default true */\n withLines?: boolean;\n\n /** Props for the hidden input */\n hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;\n\n /** Divider for hidden input values @default ',' */\n hiddenInputValuesDivider?: string;\n\n /** Props for the ScrollArea in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n\n /** Controls the default chevron color */\n chevronColor?: MantineColor;\n\n /** Max dropdown height @default 220 */\n maxDropdownHeight?: number | string;\n\n /** Controlled dropdown state */\n dropdownOpened?: boolean;\n\n /** Default dropdown state */\n defaultDropdownOpened?: boolean;\n\n /** Called when dropdown opens */\n onDropdownOpen?: () => void;\n\n /** Called when dropdown closes */\n onDropdownClose?: () => void;\n\n /** Props passed to the underlying Combobox */\n comboboxProps?: Record<string, any>;\n\n /** Clear search on selection change @default true */\n clearSearchOnChange?: boolean;\n\n /** Opens dropdown on focus (searchable mode) @default true */\n openOnFocus?: boolean;\n\n /** aria-label values for the expand/collapse chevron button */\n chevronAriaLabels?: TreeSelectChevronAriaLabels;\n}\n\nexport type TreeSelectFactory = Factory<{\n props: TreeSelectProps;\n ref: HTMLInputElement;\n stylesNames: TreeSelectStylesNames;\n variant: InputVariant;\n signature: <Mode extends TreeSelectMode = 'single'>(\n props: TreeSelectProps<Mode>\n ) => React.JSX.Element;\n}>;\n\nconst defaultProps = {\n mode: 'single',\n allowDeselect: true,\n checkedStrategy: 'child',\n maxValues: Infinity,\n hiddenInputValuesDivider: ',',\n clearSearchOnChange: true,\n openOnFocus: true,\n size: 'sm',\n withLines: true,\n} satisfies Partial<TreeSelectProps<TreeSelectMode>>;\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 41,\n sm: 50,\n md: 60,\n lg: 72,\n xl: 89,\n};\n\nfunction getAncestorsToNode(value: string, nodes: TreeNodeData[]): string[] | null {\n for (const node of nodes) {\n if (node.value === value) {\n return [];\n }\n if (Array.isArray(node.children)) {\n const path = getAncestorsToNode(value, node.children);\n if (path !== null) {\n return [node.value, ...path];\n }\n }\n }\n return null;\n}\n\nexport const TreeSelect = genericFactory<TreeSelectFactory>((_props) => {\n const props = useProps(['Input', 'InputWrapper', 'TreeSelect'], defaultProps as any, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n data,\n mode,\n value,\n defaultValue,\n onChange,\n checkStrictly,\n checkedStrategy,\n defaultExpandedValues,\n defaultExpandAll,\n expandedValues,\n onExpandedChange,\n expandOnClick,\n searchable,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n filter,\n nothingFoundMessage,\n allowDeselect,\n clearable,\n clearSectionMode,\n clearButtonProps,\n maxValues,\n maxDisplayedValues,\n maxDisplayedValuesContent,\n onRemove,\n onClear,\n renderNode,\n withLines,\n hiddenInputProps,\n hiddenInputValuesDivider,\n scrollAreaProps,\n chevronColor,\n maxDropdownHeight,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n comboboxProps,\n clearSearchOnChange,\n openOnFocus,\n chevronAriaLabels,\n variant,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n disabled,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n successProps,\n wrapperProps,\n description,\n label,\n error,\n success,\n withErrorStyles,\n withSuccessStyles,\n name,\n form,\n id,\n placeholder,\n required,\n mod,\n attributes,\n ...others\n } = props;\n\n const isMulti = mode === 'multiple' || mode === 'checkbox';\n const isCheckbox = mode === 'checkbox';\n const _id = useId(id);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const initialExpanded = useMemo(() => {\n if (defaultExpandAll) {\n return getTreeExpandedState(data, '*');\n }\n if (defaultExpandedValues) {\n return getTreeExpandedState(data, defaultExpandedValues);\n }\n return getTreeExpandedState(data, []);\n }, []);\n\n const expandedToRecord = useCallback(\n (values: string[] | undefined): TreeExpandedState | undefined => {\n if (!values) {\n return undefined;\n }\n return getTreeExpandedState(data, values);\n },\n [data]\n );\n\n const [_expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: expandedToRecord(expandedValues),\n defaultValue: initialExpanded,\n finalValue: {},\n onChange: (val) => {\n if (onExpandedChange) {\n onExpandedChange(\n Object.entries(val)\n .filter(([, v]) => v)\n .map(([k]) => k)\n );\n }\n },\n });\n\n const toggleExpand = useCallback(\n (nodeValue: string) => {\n setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });\n },\n [_expandedState]\n );\n\n const initialSearchValue = useMemo(() => {\n if (mode !== 'single' || !defaultValue) {\n return '';\n }\n const node = findTreeNode(defaultValue as string, data);\n return node ? (typeof node.label === 'string' ? node.label : '') : '';\n }, []);\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: initialSearchValue,\n onChange: onSearchChange,\n });\n\n const handleSearchChange = (val: string) => {\n setSearchValue(val);\n combobox.resetSelectedOption();\n };\n\n const [_value, setValue] = useUncontrolled({\n value: value as any,\n defaultValue: defaultValue as any,\n finalValue: isMulti ? [] : null,\n onChange,\n });\n\n const internalChecked = useMemo(() => {\n if (!isCheckbox || !_value || !Array.isArray(_value)) {\n return [];\n }\n if (checkStrictly) {\n return _value;\n }\n return expandToLeafChecked(_value, data);\n }, [isCheckbox, _value, data, checkStrictly]);\n\n const filteredData = useMemo(() => {\n if (!searchable || !_searchValue) {\n return data;\n }\n if (mode === 'single' && _value) {\n const node = findTreeNode(_value as string, data);\n if (node && _searchValue === (typeof node.label === 'string' ? node.label : '')) {\n return data;\n }\n }\n return filterTreeData(data, _searchValue, filter);\n }, [data, _searchValue, filter, searchable, mode, _value]);\n\n const expandedForRender = useMemo(() => {\n if (_searchValue && filteredData !== data) {\n const expanded = { ..._expandedState };\n const expandFilteredParents = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n expanded[node.value] = true;\n expandFilteredParents(node.children);\n }\n }\n };\n expandFilteredParents(filteredData);\n return expanded;\n }\n return _expandedState;\n }, [filteredData, _expandedState, _searchValue, data]);\n\n const flatNodes = useMemo(\n () => flattenTreeSelectData(filteredData, expandedForRender),\n [filteredData, expandedForRender]\n );\n\n const flatNodesRef = useRef(flatNodes);\n flatNodesRef.current = flatNodes;\n\n const nodeLookup = useMemo(() => {\n const lookup: Record<string, TreeNodeData> = {};\n const walk = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n lookup[node.value] = node;\n if (Array.isArray(node.children)) {\n walk(node.children);\n }\n }\n };\n walk(data);\n return lookup;\n }, [data]);\n\n const getNodeLabel = (nodeValue: string): string => {\n const node = nodeLookup[nodeValue];\n if (!node) {\n return nodeValue;\n }\n return typeof node.label === 'string' ? node.label : nodeValue;\n };\n\n const getStyles = useStyles<TreeSelectFactory>({\n name: 'TreeSelect',\n classes: {} as any,\n props: props as any,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<TreeSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const {\n styleProps,\n rest: { type, autoComplete, ...rest },\n } = extractStyleProps(others);\n\n const handleOptionSubmit = (val: string) => {\n if (mode === 'single') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const nextValue = allowDeselect && val === _value ? null : val;\n setValue(nextValue);\n combobox.closeDropdown();\n if (clearSearchOnChange) {\n handleSearchChange(nextValue ? getNodeLabel(nextValue) : '');\n }\n } else if (mode === 'multiple') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const arr = (_value as string[]) || [];\n if (arr.includes(val)) {\n setValue(arr.filter((v: string) => v !== val));\n onRemove?.(val);\n } else if (arr.length < (maxValues ?? Infinity)) {\n setValue([...arr, val]);\n } else {\n return;\n }\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n } else if (mode === 'checkbox') {\n const nodeChecked = checkStrictly\n ? internalChecked.includes(val)\n : isNodeChecked(val, data, internalChecked);\n\n let newInternalChecked: string[];\n if (checkStrictly) {\n newInternalChecked = nodeChecked\n ? internalChecked.filter((v) => v !== val)\n : [...internalChecked, val];\n } else {\n const childLeaves = getChildrenNodesValues(val, data);\n if (nodeChecked) {\n newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));\n } else {\n newInternalChecked = [...new Set([...internalChecked, ...childLeaves])];\n }\n }\n\n const newValue = checkedToValue(newInternalChecked, data, checkedStrategy!);\n if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {\n return;\n }\n setValue(newValue);\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n if (!_expandedState[val]) {\n toggleExpand(val);\n }\n }\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === ' ' && !searchable && isMulti) {\n event.preventDefault();\n combobox.toggleDropdown();\n }\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && isMulti) {\n const arr = (_value as string[]) || [];\n if (arr.length > 0) {\n const removed = arr[arr.length - 1];\n onRemove?.(removed);\n setValue(arr.slice(0, -1));\n }\n }\n\n if (!combobox.dropdownOpened) {\n return;\n }\n\n const index = combobox.getSelectedOptionIndex();\n if (index < 0 || index >= flatNodesRef.current.length) {\n return;\n }\n\n const currentNode = flatNodesRef.current[index];\n\n if (event.key === 'ArrowRight') {\n if (currentNode.hasChildren && !currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n if (currentNode.hasChildren && currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n } else if (currentNode.parent) {\n event.preventDefault();\n const parentIndex = flatNodesRef.current.findIndex(\n (n) => n.node.value === currentNode.parent\n );\n if (parentIndex >= 0) {\n combobox.selectOption(parentIndex);\n }\n }\n }\n };\n\n useEffect(() => {\n if (mode !== 'single' || !searchable) {\n return;\n }\n if (value === null) {\n handleSearchChange('');\n } else if (typeof value === 'string') {\n handleSearchChange(getNodeLabel(value));\n }\n }, [value]);\n\n const prevDropdownOpenedRef = useRef(false);\n useEffect(() => {\n if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {\n const targets = Array.isArray(_value) ? _value : [_value];\n const newExpanded = { ..._expandedState };\n let changed = false;\n for (const target of targets) {\n const ancestors = getAncestorsToNode(target as string, data);\n if (ancestors) {\n for (const a of ancestors) {\n if (!newExpanded[a]) {\n newExpanded[a] = true;\n changed = true;\n }\n }\n }\n }\n if (changed) {\n setExpandedState(newExpanded);\n requestAnimationFrame(() => {\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n });\n }\n }\n prevDropdownOpenedRef.current = combobox.dropdownOpened;\n });\n\n const clearButton = (\n <Combobox.ClearButton\n {...clearButtonProps}\n onClear={() => {\n onClear?.();\n setValue(isMulti ? [] : null);\n handleSearchChange('');\n combobox.focusTarget();\n }}\n />\n );\n\n const hasValue = isMulti\n ? Array.isArray(_value) && _value.length > 0\n : _value != null && _value !== '';\n const _clearable = clearable && hasValue && !disabled && !readOnly;\n\n const singleDisplayLabel = useMemo(() => {\n if (mode !== 'single' || !_value) {\n return '';\n }\n return getNodeLabel(_value as string);\n }, [mode, _value, nodeLookup]);\n\n const displayValues = useMemo(() => {\n if (!isMulti || !Array.isArray(_value)) {\n return [];\n }\n return _value as string[];\n }, [isMulti, _value]);\n\n const pillsListStyle =\n _clearable && isMulti\n ? { paddingInlineEnd: clearSectionOffset[size as string] ?? clearSectionOffset.sm }\n : undefined;\n\n const visiblePills =\n maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;\n\n const overflowCount =\n maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;\n\n const pills = visiblePills.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => {\n if (isCheckbox) {\n const childLeaves = checkStrictly ? [item] : getChildrenNodesValues(item, data);\n const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));\n setValue(checkedToValue(newInternal, data, checkedStrategy!));\n } else {\n setValue((_value as string[]).filter((v: string) => v !== item));\n }\n onRemove?.(item);\n }}\n unstyled={unstyled}\n disabled={disabled}\n {...getStyles('pill')}\n >\n {getNodeLabel(item)}\n </Pill>\n ));\n\n if (overflowCount > 0) {\n const overflowContent =\n typeof maxDisplayedValuesContent === 'function'\n ? maxDisplayedValuesContent(overflowCount)\n : maxDisplayedValuesContent || `+${overflowCount} more`;\n pills.push(\n <Pill key=\"__overflow\" unstyled={unstyled} disabled={disabled} {...getStyles('pill')}>\n {overflowContent}\n </Pill>\n );\n }\n\n const isEmpty = flatNodes.length === 0;\n\n const options = flatNodes.map((flatNode) => {\n const isSelected =\n mode === 'single'\n ? _value === flatNode.node.value\n : mode === 'multiple'\n ? ((_value as string[]) || []).includes(flatNode.node.value)\n : false;\n\n const nodeChecked = isCheckbox\n ? checkStrictly\n ? internalChecked.includes(flatNode.node.value)\n : isNodeChecked(flatNode.node.value, data, internalChecked)\n : false;\n\n const nodeIndeterminate =\n isCheckbox && !checkStrictly\n ? isNodeIndeterminate(flatNode.node.value, data, internalChecked)\n : false;\n\n return (\n <TreeSelectOption\n key={flatNode.node.value}\n node={flatNode.node}\n level={flatNode.level}\n expanded={flatNode.expanded}\n hasChildren={flatNode.hasChildren}\n selected={isSelected}\n checked={nodeChecked}\n indeterminate={nodeIndeterminate}\n showCheckbox={isCheckbox}\n isLastChild={flatNode.isLastChild}\n lineGuides={flatNode.lineGuides}\n withLines={!!withLines}\n onToggleExpand={toggleExpand}\n renderNode={renderNode}\n chevronAriaLabels={chevronAriaLabels}\n />\n );\n });\n\n const dropdown = (\n <Combobox.Dropdown hidden={readOnly || disabled}>\n <Combobox.Options\n className={classes.optionsWrapper}\n aria-multiselectable={isMulti || undefined}\n >\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n {...scrollAreaProps}\n >\n {options}\n </ScrollArea.Autosize>\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n\n if (isMulti) {\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"TreeSelect\"\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n success={success}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n __stylesApiProps={{\n ...props,\n rightSectionPointerEvents: rightSectionPointerEvents || 'none',\n multiline: true,\n }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n data-expanded={combobox.dropdownOpened || undefined}\n id={_id}\n required={required}\n mod={mod}\n attributes={attributes}\n >\n <Pill.Group\n attributes={attributes}\n disabled={disabled}\n unstyled={unstyled}\n {...getStyles('pillsList', { style: pillsListStyle })}\n >\n {pills}\n <Combobox.EventsTarget autoComplete={autoComplete}>\n <PillsInput.Field\n {...rest}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n handleSearchChange('');\n }}\n onKeyDown={handleKeyDown}\n value={_searchValue}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n if (searchable) {\n combobox.openDropdown();\n }\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n name={name}\n valuesDivider={hiddenInputValuesDivider}\n value={_value}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n }\n\n return (\n <>\n <Combobox\n store={combobox}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.Target targetType={searchable ? 'input' : 'button'} autoComplete={autoComplete}>\n <InputBase\n id={_id}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n {...rest}\n {...styleProps}\n size={size}\n __staticSelector=\"TreeSelect\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={searchable ? _searchValue : singleDisplayLabel}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n combobox.openDropdown();\n }}\n onFocus={(event) => {\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n onFocus?.(event);\n }}\n onBlur={(event) => {\n if (searchable) {\n combobox.closeDropdown();\n }\n handleSearchChange(_value ? getNodeLabel(_value as string) : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n success={success}\n attributes={attributes}\n className={className}\n style={style}\n variant={variant}\n radius={radius}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n placeholder={placeholder}\n required={required}\n mod={mod}\n />\n </Combobox.Target>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n value={_value}\n name={name}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nTreeSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nTreeSelect.displayName = '@mantine/core/TreeSelect';\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeSelect.cjs","names":["genericFactory","useProps","useId","useCombobox","useMemo","getTreeExpandedState","useCallback","useUncontrolled","findTreeNode","expandToLeafChecked","filterTreeData","flattenTreeSelectData","useRef","useStyles","useResolvedStylesApi","extractStyleProps","isNodeChecked","getChildrenNodesValues","checkedToValue","Combobox","Pill","isNodeIndeterminate","TreeSelectOption","classes","ScrollArea","PillsInput","isExternalInputChange","InputBase"],"sources":["../../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n extractStyleProps,\n Factory,\n genericFactory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Combobox, ComboboxLikeStylesNames, useCombobox } from '../Combobox';\nimport { isExternalInputChange } from '../Combobox/is-external-input-change/is-external-input-change';\nimport {\n __BaseInputProps,\n __InputStylesNames,\n ClearSectionMode,\n InputClearButtonProps,\n InputVariant,\n} from '../Input';\nimport { InputBase } from '../InputBase';\nimport { Pill } from '../Pill';\nimport { PillsInput } from '../PillsInput';\nimport { ScrollArea, ScrollAreaProps } from '../ScrollArea';\nimport type { TreeNodeData } from '../Tree';\nimport { filterTreeData } from '../Tree/filter-tree-data/filter-tree-data';\nimport {\n findTreeNode,\n getChildrenNodesValues,\n} from '../Tree/get-children-nodes-values/get-children-nodes-values';\nimport { isNodeChecked } from '../Tree/is-node-checked/is-node-checked';\nimport { isNodeIndeterminate } from '../Tree/is-node-indeterminate/is-node-indeterminate';\nimport { getTreeExpandedState, TreeExpandedState } from '../Tree/use-tree';\nimport { flattenTreeSelectData } from './flatten-tree-select-data';\nimport {\n CheckedStrategy,\n checkedToValue,\n expandToLeafChecked,\n} from './get-checked-values-by-strategy';\nimport {\n TreeSelectChevronAriaLabels,\n TreeSelectOption,\n TreeSelectRenderNodePayload,\n} from './TreeSelectOption';\nimport classes from './TreeSelect.module.css';\n\nexport type TreeSelectStylesNames =\n | __InputStylesNames\n | ComboboxLikeStylesNames\n | 'pill'\n | 'pillsList'\n | 'inputField';\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox';\n\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[];\n\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'>\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<TreeSelectFactory>,\n ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Tree data */\n data: TreeNodeData[];\n\n /** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */\n mode?: Mode;\n\n /** Controlled value */\n value?: TreeSelectValue<Mode>;\n\n /** Default value */\n defaultValue?: TreeSelectValue<Mode>;\n\n /** Called when value changes */\n onChange?: (value: TreeSelectValue<Mode>) => void;\n\n /** Disables parent-child cascade in checkbox mode @default false */\n checkStrictly?: boolean;\n\n /** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */\n checkedStrategy?: CheckedStrategy;\n\n /** Default expanded node values */\n defaultExpandedValues?: string[];\n\n /** Expand all nodes by default @default false */\n defaultExpandAll?: boolean;\n\n /** Controlled expanded state */\n expandedValues?: string[];\n\n /** Called when expanded state changes */\n onExpandedChange?: (values: string[]) => void;\n\n /** Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand. @default false */\n expandOnClick?: boolean;\n\n /** Enables search filtering @default false */\n searchable?: boolean;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Custom filter function */\n filter?: (query: string, node: TreeNodeData) => boolean;\n\n /** Message when no nodes match search */\n nothingFoundMessage?: React.ReactNode;\n\n /** Allows deselecting in single mode @default true */\n allowDeselect?: boolean;\n\n /** Shows clear button @default false */\n clearable?: boolean;\n\n /** Determines how the clear button and rightSection are rendered @default 'both' */\n clearSectionMode?: ClearSectionMode;\n\n /** Props for the clear button */\n clearButtonProps?: InputClearButtonProps;\n\n /** Maximum selectable values (multiple/checkbox mode) */\n maxValues?: number;\n\n /** Maximum displayed pills before \"+N more\" */\n maxDisplayedValues?: number;\n\n /** Content shown when values overflow maxDisplayedValues */\n maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);\n\n /** Called with removed value in multiple/checkbox mode */\n onRemove?: (value: string) => void;\n\n /** Called when clear button is clicked */\n onClear?: () => void;\n\n /** Custom node rendering in the dropdown */\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n\n /** Show tree connection lines between parent and child nodes @default true */\n withLines?: boolean;\n\n /** Props for the hidden input */\n hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;\n\n /** Divider for hidden input values @default ',' */\n hiddenInputValuesDivider?: string;\n\n /** Props for the ScrollArea in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n\n /** Controls the default chevron color */\n chevronColor?: MantineColor;\n\n /** Max dropdown height @default 220 */\n maxDropdownHeight?: number | string;\n\n /** Controlled dropdown state */\n dropdownOpened?: boolean;\n\n /** Default dropdown state */\n defaultDropdownOpened?: boolean;\n\n /** Called when dropdown opens */\n onDropdownOpen?: () => void;\n\n /** Called when dropdown closes */\n onDropdownClose?: () => void;\n\n /** Props passed to the underlying Combobox */\n comboboxProps?: Record<string, any>;\n\n /** Clear search on selection change @default true */\n clearSearchOnChange?: boolean;\n\n /** Opens dropdown on focus (searchable mode) @default true */\n openOnFocus?: boolean;\n\n /** aria-label values for the expand/collapse chevron button */\n chevronAriaLabels?: TreeSelectChevronAriaLabels;\n}\n\nexport type TreeSelectFactory = Factory<{\n props: TreeSelectProps;\n ref: HTMLInputElement;\n stylesNames: TreeSelectStylesNames;\n variant: InputVariant;\n signature: <Mode extends TreeSelectMode = 'single'>(\n props: TreeSelectProps<Mode>\n ) => React.JSX.Element;\n}>;\n\nconst defaultProps = {\n mode: 'single',\n allowDeselect: true,\n checkedStrategy: 'child',\n maxValues: Infinity,\n hiddenInputValuesDivider: ',',\n clearSearchOnChange: true,\n openOnFocus: true,\n size: 'sm',\n withLines: true,\n} satisfies Partial<TreeSelectProps<TreeSelectMode>>;\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 41,\n sm: 50,\n md: 60,\n lg: 72,\n xl: 89,\n};\n\nfunction getAncestorsToNode(value: string, nodes: TreeNodeData[]): string[] | null {\n for (const node of nodes) {\n if (node.value === value) {\n return [];\n }\n if (Array.isArray(node.children)) {\n const path = getAncestorsToNode(value, node.children);\n if (path !== null) {\n return [node.value, ...path];\n }\n }\n }\n return null;\n}\n\nexport const TreeSelect = genericFactory<TreeSelectFactory>((_props) => {\n const props = useProps(['Input', 'InputWrapper', 'TreeSelect'], defaultProps as any, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n data,\n mode,\n value,\n defaultValue,\n onChange,\n checkStrictly,\n checkedStrategy,\n defaultExpandedValues,\n defaultExpandAll,\n expandedValues,\n onExpandedChange,\n expandOnClick,\n searchable,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n filter,\n nothingFoundMessage,\n allowDeselect,\n clearable,\n clearSectionMode,\n clearButtonProps,\n maxValues,\n maxDisplayedValues,\n maxDisplayedValuesContent,\n onRemove,\n onClear,\n renderNode,\n withLines,\n hiddenInputProps,\n hiddenInputValuesDivider,\n scrollAreaProps,\n chevronColor,\n maxDropdownHeight,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownOpen,\n onDropdownClose,\n comboboxProps,\n clearSearchOnChange,\n openOnFocus,\n chevronAriaLabels,\n variant,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n disabled,\n radius,\n rightSection,\n rightSectionWidth,\n rightSectionPointerEvents,\n rightSectionProps,\n leftSection,\n leftSectionWidth,\n leftSectionPointerEvents,\n leftSectionProps,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n labelProps,\n descriptionProps,\n errorProps,\n successProps,\n wrapperProps,\n description,\n label,\n error,\n success,\n withErrorStyles,\n withSuccessStyles,\n name,\n form,\n id,\n placeholder,\n required,\n mod,\n attributes,\n ...others\n } = props;\n\n const isMulti = mode === 'multiple' || mode === 'checkbox';\n const isCheckbox = mode === 'checkbox';\n const _id = useId(id);\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const initialExpanded = useMemo(() => {\n if (defaultExpandAll) {\n return getTreeExpandedState(data, '*');\n }\n if (defaultExpandedValues) {\n return getTreeExpandedState(data, defaultExpandedValues);\n }\n return getTreeExpandedState(data, []);\n }, []);\n\n const expandedToRecord = useCallback(\n (values: string[] | undefined): TreeExpandedState | undefined => {\n if (!values) {\n return undefined;\n }\n return getTreeExpandedState(data, values);\n },\n [data]\n );\n\n const [_expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: expandedToRecord(expandedValues),\n defaultValue: initialExpanded,\n finalValue: {},\n onChange: (val) => {\n if (onExpandedChange) {\n onExpandedChange(\n Object.entries(val)\n .filter(([, v]) => v)\n .map(([k]) => k)\n );\n }\n },\n });\n\n const toggleExpand = useCallback(\n (nodeValue: string) => {\n setExpandedState({ ..._expandedState, [nodeValue]: !_expandedState[nodeValue] });\n },\n [_expandedState]\n );\n\n const initialSearchValue = useMemo(() => {\n if (mode !== 'single' || !defaultValue) {\n return '';\n }\n const node = findTreeNode(defaultValue as string, data);\n return node ? (typeof node.label === 'string' ? node.label : '') : '';\n }, []);\n\n const [_searchValue, setSearchValue] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: initialSearchValue,\n onChange: onSearchChange,\n });\n\n const handleSearchChange = (val: string) => {\n setSearchValue(val);\n combobox.resetSelectedOption();\n };\n\n const [_value, setValue] = useUncontrolled({\n value: value as any,\n defaultValue: defaultValue as any,\n finalValue: isMulti ? [] : null,\n onChange,\n });\n\n const internalChecked = useMemo(() => {\n if (!isCheckbox || !_value || !Array.isArray(_value)) {\n return [];\n }\n if (checkStrictly) {\n return _value;\n }\n return expandToLeafChecked(_value, data);\n }, [isCheckbox, _value, data, checkStrictly]);\n\n const filteredData = useMemo(() => {\n if (!searchable || !_searchValue) {\n return data;\n }\n if (mode === 'single' && _value) {\n const node = findTreeNode(_value as string, data);\n if (node && _searchValue === (typeof node.label === 'string' ? node.label : '')) {\n return data;\n }\n }\n return filterTreeData(data, _searchValue, filter);\n }, [data, _searchValue, filter, searchable, mode, _value]);\n\n const expandedForRender = useMemo(() => {\n if (_searchValue && filteredData !== data) {\n const expanded = { ..._expandedState };\n const expandFilteredParents = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n expanded[node.value] = true;\n expandFilteredParents(node.children);\n }\n }\n };\n expandFilteredParents(filteredData);\n return expanded;\n }\n return _expandedState;\n }, [filteredData, _expandedState, _searchValue, data]);\n\n const flatNodes = useMemo(\n () => flattenTreeSelectData(filteredData, expandedForRender),\n [filteredData, expandedForRender]\n );\n\n const flatNodesRef = useRef(flatNodes);\n flatNodesRef.current = flatNodes;\n\n const nodeLookup = useMemo(() => {\n const lookup: Record<string, TreeNodeData> = {};\n const walk = (nodes: TreeNodeData[]) => {\n for (const node of nodes) {\n lookup[node.value] = node;\n if (Array.isArray(node.children)) {\n walk(node.children);\n }\n }\n };\n walk(data);\n return lookup;\n }, [data]);\n\n const getNodeLabel = (nodeValue: string): string => {\n const node = nodeLookup[nodeValue];\n if (!node) {\n return nodeValue;\n }\n return typeof node.label === 'string' ? node.label : nodeValue;\n };\n\n const getStyles = useStyles<TreeSelectFactory>({\n name: 'TreeSelect',\n classes: {} as any,\n props: props as any,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<TreeSelectFactory>({\n props,\n styles,\n classNames,\n });\n\n const {\n styleProps,\n rest: { type, autoComplete, ...rest },\n } = extractStyleProps(others);\n\n const handleOptionSubmit = (val: string) => {\n if (mode === 'single') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const nextValue = allowDeselect && val === _value ? null : val;\n setValue(nextValue);\n combobox.closeDropdown();\n if (clearSearchOnChange) {\n handleSearchChange(nextValue ? getNodeLabel(nextValue) : '');\n }\n } else if (mode === 'multiple') {\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n toggleExpand(val);\n return;\n }\n }\n const arr = (_value as string[]) || [];\n if (arr.includes(val)) {\n setValue(arr.filter((v: string) => v !== val));\n onRemove?.(val);\n } else if (arr.length < (maxValues ?? Infinity)) {\n setValue([...arr, val]);\n } else {\n return;\n }\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n } else if (mode === 'checkbox') {\n const nodeChecked = checkStrictly\n ? internalChecked.includes(val)\n : isNodeChecked(val, data, internalChecked);\n\n let newInternalChecked: string[];\n if (checkStrictly) {\n newInternalChecked = nodeChecked\n ? internalChecked.filter((v) => v !== val)\n : [...internalChecked, val];\n } else {\n const childLeaves = getChildrenNodesValues(val, data);\n if (nodeChecked) {\n newInternalChecked = internalChecked.filter((v) => !childLeaves.includes(v));\n } else {\n newInternalChecked = [...new Set([...internalChecked, ...childLeaves])];\n }\n }\n\n const newValue = checkedToValue(newInternalChecked, data, checkedStrategy!);\n if (!nodeChecked && newValue.length > (maxValues ?? Infinity)) {\n return;\n }\n setValue(newValue);\n if (clearSearchOnChange) {\n setSearchValue('');\n }\n\n if (expandOnClick) {\n const node = findTreeNode(val, data);\n if (node && Array.isArray(node.children) && node.children.length > 0) {\n if (!_expandedState[val]) {\n toggleExpand(val);\n }\n }\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (event.key === ' ' && !searchable && isMulti) {\n event.preventDefault();\n combobox.toggleDropdown();\n }\n\n if (event.key === 'Backspace' && _searchValue.length === 0 && isMulti) {\n const arr = (_value as string[]) || [];\n if (arr.length > 0) {\n const removed = arr[arr.length - 1];\n onRemove?.(removed);\n setValue(arr.slice(0, -1));\n }\n }\n\n if (!combobox.dropdownOpened) {\n return;\n }\n\n const index = combobox.getSelectedOptionIndex();\n if (index < 0 || index >= flatNodesRef.current.length) {\n return;\n }\n\n const currentNode = flatNodesRef.current[index];\n\n if (event.key === 'ArrowRight') {\n if (currentNode.hasChildren && !currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n if (currentNode.hasChildren && currentNode.expanded) {\n event.preventDefault();\n toggleExpand(currentNode.node.value);\n } else if (currentNode.parent) {\n event.preventDefault();\n const parentIndex = flatNodesRef.current.findIndex(\n (n) => n.node.value === currentNode.parent\n );\n if (parentIndex >= 0) {\n combobox.selectOption(parentIndex);\n }\n }\n }\n };\n\n useEffect(() => {\n if (mode !== 'single' || !searchable) {\n return;\n }\n if (value === null) {\n handleSearchChange('');\n } else if (typeof value === 'string') {\n handleSearchChange(getNodeLabel(value));\n }\n }, [value]);\n\n const prevDropdownOpenedRef = useRef(false);\n useEffect(() => {\n if (combobox.dropdownOpened && !prevDropdownOpenedRef.current && searchable && _value) {\n const targets = Array.isArray(_value) ? _value : [_value];\n const newExpanded = { ..._expandedState };\n let changed = false;\n for (const target of targets) {\n const ancestors = getAncestorsToNode(target as string, data);\n if (ancestors) {\n for (const a of ancestors) {\n if (!newExpanded[a]) {\n newExpanded[a] = true;\n changed = true;\n }\n }\n }\n }\n if (changed) {\n setExpandedState(newExpanded);\n requestAnimationFrame(() => {\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n });\n }\n }\n prevDropdownOpenedRef.current = combobox.dropdownOpened;\n });\n\n const clearButton = (\n <Combobox.ClearButton\n {...clearButtonProps}\n onClear={() => {\n onClear?.();\n setValue(isMulti ? [] : null);\n handleSearchChange('');\n combobox.focusTarget();\n }}\n />\n );\n\n const hasValue = isMulti\n ? Array.isArray(_value) && _value.length > 0\n : _value != null && _value !== '';\n const _clearable = clearable && hasValue && !disabled && !readOnly;\n\n const singleDisplayLabel = useMemo(() => {\n if (mode !== 'single' || !_value) {\n return '';\n }\n return getNodeLabel(_value as string);\n }, [mode, _value, nodeLookup]);\n\n const displayValues = useMemo(() => {\n if (!isMulti || !Array.isArray(_value)) {\n return [];\n }\n return _value as string[];\n }, [isMulti, _value]);\n\n const pillsListStyle =\n _clearable && isMulti\n ? { paddingInlineEnd: clearSectionOffset[size as string] ?? clearSectionOffset.sm }\n : undefined;\n\n const visiblePills =\n maxDisplayedValues != null ? displayValues.slice(0, maxDisplayedValues) : displayValues;\n\n const overflowCount =\n maxDisplayedValues != null ? Math.max(0, displayValues.length - maxDisplayedValues) : 0;\n\n const pills = visiblePills.map((item, index) => (\n <Pill\n key={`${item}-${index}`}\n withRemoveButton={!readOnly}\n onRemove={() => {\n if (isCheckbox) {\n const childLeaves = checkStrictly ? [item] : getChildrenNodesValues(item, data);\n const newInternal = internalChecked.filter((v) => !childLeaves.includes(v));\n setValue(checkedToValue(newInternal, data, checkedStrategy!));\n } else {\n setValue((_value as string[]).filter((v: string) => v !== item));\n }\n onRemove?.(item);\n }}\n unstyled={unstyled}\n disabled={disabled}\n {...getStyles('pill')}\n >\n {getNodeLabel(item)}\n </Pill>\n ));\n\n if (overflowCount > 0) {\n const overflowContent =\n typeof maxDisplayedValuesContent === 'function'\n ? maxDisplayedValuesContent(overflowCount)\n : maxDisplayedValuesContent || `+${overflowCount} more`;\n pills.push(\n <Pill key=\"__overflow\" unstyled={unstyled} disabled={disabled} {...getStyles('pill')}>\n {overflowContent}\n </Pill>\n );\n }\n\n const isEmpty = flatNodes.length === 0;\n\n const options = flatNodes.map((flatNode) => {\n const isSelected =\n mode === 'single'\n ? _value === flatNode.node.value\n : mode === 'multiple'\n ? ((_value as string[]) || []).includes(flatNode.node.value)\n : false;\n\n const nodeChecked = isCheckbox\n ? checkStrictly\n ? internalChecked.includes(flatNode.node.value)\n : isNodeChecked(flatNode.node.value, data, internalChecked)\n : false;\n\n const nodeIndeterminate =\n isCheckbox && !checkStrictly\n ? isNodeIndeterminate(flatNode.node.value, data, internalChecked)\n : false;\n\n return (\n <TreeSelectOption\n key={flatNode.node.value}\n node={flatNode.node}\n level={flatNode.level}\n expanded={flatNode.expanded}\n hasChildren={flatNode.hasChildren}\n selected={isSelected}\n checked={nodeChecked}\n indeterminate={nodeIndeterminate}\n showCheckbox={isCheckbox}\n isLastChild={flatNode.isLastChild}\n lineGuides={flatNode.lineGuides}\n withLines={!!withLines}\n onToggleExpand={toggleExpand}\n renderNode={renderNode}\n chevronAriaLabels={chevronAriaLabels}\n />\n );\n });\n\n const dropdown = (\n <Combobox.Dropdown hidden={readOnly || disabled}>\n <Combobox.Options\n className={classes.optionsWrapper}\n aria-multiselectable={isMulti || undefined}\n >\n <ScrollArea.Autosize\n mah={maxDropdownHeight ?? 220}\n type=\"scroll\"\n scrollbarSize=\"var(--combobox-padding)\"\n offsetScrollbars=\"y\"\n {...scrollAreaProps}\n >\n {options}\n </ScrollArea.Autosize>\n {isEmpty && nothingFoundMessage && <Combobox.Empty>{nothingFoundMessage}</Combobox.Empty>}\n </Combobox.Options>\n </Combobox.Dropdown>\n );\n\n if (isMulti) {\n return (\n <>\n <Combobox\n store={combobox}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n readOnly={readOnly}\n __staticSelector=\"TreeSelect\"\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.DropdownTarget>\n <PillsInput\n {...styleProps}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n size={size}\n className={className}\n style={style}\n variant={variant}\n disabled={disabled}\n radius={radius}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n error={error}\n success={success}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n __stylesApiProps={{\n ...props,\n rightSectionPointerEvents: rightSectionPointerEvents || 'none',\n multiline: true,\n }}\n pointer={!searchable}\n onClick={() => (searchable ? combobox.openDropdown() : combobox.toggleDropdown())}\n data-expanded={combobox.dropdownOpened || undefined}\n id={_id}\n required={required}\n mod={mod}\n attributes={attributes}\n >\n <Pill.Group\n attributes={attributes}\n disabled={disabled}\n unstyled={unstyled}\n {...getStyles('pillsList', { style: pillsListStyle })}\n >\n {pills}\n <Combobox.EventsTarget autoComplete={autoComplete}>\n <PillsInput.Field\n {...rest}\n id={_id}\n placeholder={placeholder}\n type={!searchable && !placeholder ? 'hidden' : 'visible'}\n {...getStyles('inputField')}\n unstyled={unstyled}\n onFocus={(event) => {\n onFocus?.(event);\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n }}\n onBlur={(event) => {\n onBlur?.(event);\n combobox.closeDropdown();\n handleSearchChange('');\n }}\n onKeyDown={handleKeyDown}\n value={_searchValue}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n if (searchable) {\n combobox.openDropdown();\n }\n }}\n disabled={disabled}\n readOnly={readOnly || !searchable}\n pointer={!searchable}\n />\n </Combobox.EventsTarget>\n </Pill.Group>\n </PillsInput>\n </Combobox.DropdownTarget>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n name={name}\n valuesDivider={hiddenInputValuesDivider}\n value={_value}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n }\n\n return (\n <>\n <Combobox\n store={combobox}\n __staticSelector=\"TreeSelect\"\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n attributes={attributes}\n onOptionSubmit={handleOptionSubmit}\n {...comboboxProps}\n >\n <Combobox.Target targetType={searchable ? 'input' : 'button'} autoComplete={autoComplete}>\n <InputBase\n id={_id}\n __defaultRightSection={\n <Combobox.Chevron\n size={size}\n error={error}\n unstyled={unstyled}\n color={chevronColor}\n />\n }\n __clearSection={clearButton}\n __clearable={_clearable}\n __clearSectionMode={clearSectionMode}\n rightSection={rightSection}\n rightSectionPointerEvents={rightSectionPointerEvents || 'none'}\n {...rest}\n {...styleProps}\n size={size}\n __staticSelector=\"TreeSelect\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={searchable ? _searchValue : singleDisplayLabel}\n onChange={(event) => {\n if (isExternalInputChange(event)) {\n return;\n }\n\n handleSearchChange(event.currentTarget.value);\n combobox.openDropdown();\n }}\n onFocus={(event) => {\n if (openOnFocus && searchable) {\n combobox.openDropdown();\n }\n onFocus?.(event);\n }}\n onBlur={(event) => {\n if (searchable) {\n combobox.closeDropdown();\n }\n handleSearchChange(_value ? getNodeLabel(_value as string) : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n success={success}\n attributes={attributes}\n className={className}\n style={style}\n variant={variant}\n radius={radius}\n leftSection={leftSection}\n leftSectionWidth={leftSectionWidth}\n leftSectionPointerEvents={leftSectionPointerEvents}\n leftSectionProps={leftSectionProps}\n rightSectionWidth={rightSectionWidth}\n rightSectionProps={rightSectionProps}\n inputContainer={inputContainer}\n inputWrapperOrder={inputWrapperOrder}\n withAsterisk={withAsterisk}\n labelProps={labelProps}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n successProps={successProps}\n wrapperProps={wrapperProps}\n description={description}\n label={label}\n withErrorStyles={withErrorStyles}\n withSuccessStyles={withSuccessStyles}\n placeholder={placeholder}\n required={required}\n mod={mod}\n />\n </Combobox.Target>\n {dropdown}\n </Combobox>\n <Combobox.HiddenInput\n value={_value}\n name={name}\n form={form}\n disabled={disabled}\n {...hiddenInputProps}\n />\n </>\n );\n});\n\nTreeSelect.classes = { ...InputBase.classes, ...Combobox.classes };\nTreeSelect.displayName = '@mantine/core/TreeSelect';\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSelectOption.cjs","names":["classes","Combobox","AccordionChevron","CheckboxIndicator","CheckIcon"],"sources":["../../../src/components/TreeSelect/TreeSelectOption.tsx"],"sourcesContent":["import { AccordionChevron } from '../Accordion';\nimport { CheckboxIndicator } from '../Checkbox/CheckboxIndicator/CheckboxIndicator';\nimport { CheckIcon } from '../Checkbox/CheckIcon';\nimport { Combobox } from '../Combobox';\nimport type { TreeNodeData } from '../Tree';\nimport classes from './TreeSelect.module.css';\n\nconst LEVEL_OFFSET = 20;\nconst BASE_PADDING = 8;\nconst LINE_CONTENT_GAP = 5;\nconst OPTION_GAP = 6;\n\nexport interface TreeSelectChevronAriaLabels {\n /** aria-label for the expand button when the node is collapsed @default 'Expand' */\n expand?: string;\n\n /** aria-label for the expand button when the node is expanded @default 'Collapse' */\n collapse?: string;\n}\n\nexport interface TreeSelectOptionProps {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n showCheckbox: boolean;\n isLastChild: boolean;\n lineGuides: boolean[];\n withLines: boolean;\n onToggleExpand: (value: string) => void;\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n chevronAriaLabels?: TreeSelectChevronAriaLabels;\n}\n\nexport interface TreeSelectRenderNodePayload {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n\n /** Toggles the expanded state of the node. Can be used to build a custom expand control\n * in `renderNode` without controlling the expanded state externally.\n * No-op for nodes without children. */\n expand: (event?: React.MouseEvent) => void;\n}\n\nexport function TreeSelectOption({\n node,\n level,\n expanded,\n hasChildren,\n selected,\n checked,\n indeterminate,\n showCheckbox,\n isLastChild,\n lineGuides,\n withLines,\n onToggleExpand,\n renderNode,\n chevronAriaLabels,\n}: TreeSelectOptionProps) {\n const indentPx = (level - 1) * LEVEL_OFFSET;\n\n const handleExpandClick = (event?: React.MouseEvent) => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!hasChildren) {\n return;\n }\n\n onToggleExpand(node.value);\n };\n\n const handleExpandMouseDown = (event: React.MouseEvent) => {\n event.preventDefault();\n };\n\n const customContent = renderNode\n ? renderNode({\n node,\n level,\n expanded,\n hasChildren,\n selected,\n checked,\n indeterminate,\n expand: handleExpandClick,\n })\n : null;\n\n const lineElements =\n withLines && level > 1 ? (\n <>\n {lineGuides.map((show, g) =>\n show ? (\n <span\n key={`g${g}`}\n className={classes.guideLine}\n style={{ insetInlineStart: BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }}\n />\n ) : null\n )}\n <span\n className={classes.branchVertical}\n data-last={isLastChild || undefined}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n }}\n />\n <span\n className={classes.branchHorizontal}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n width: LEVEL_OFFSET / 2,\n }}\n />\n </>\n ) : null;\n\n const isActive = selected || checked;\n const showCheckMark = !showCheckbox && isActive;\n\n const ariaChecked = showCheckbox ? (indeterminate && !checked ? 'mixed' : checked) : undefined;\n\n return (\n <Combobox.Option\n value={node.value}\n disabled={node.nodeProps?.disabled}\n active={isActive}\n className={classes.option}\n style={{\n paddingInlineStart:\n BASE_PADDING +\n indentPx +\n (withLines && level > 1 ? LINE_CONTENT_GAP : 0) +\n (!hasChildren ? OPTION_GAP : 0),\n }}\n aria-selected={isActive}\n aria-level={level}\n aria-expanded={hasChildren ? expanded : undefined}\n aria-checked={ariaChecked}\n >\n {lineElements}\n {customContent || (\n <>\n {hasChildren && (\n <span\n className={classes.expandIcon}\n data-expanded={expanded || undefined}\n onClick={handleExpandClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleExpandClick(e as any);\n }\n }}\n onMouseDown={handleExpandMouseDown}\n role=\"button\"\n tabIndex={-1}\n aria-label={\n expanded\n ? (chevronAriaLabels?.collapse ?? 'Collapse')\n : (chevronAriaLabels?.expand ?? 'Expand')\n }\n >\n <AccordionChevron size=\"80%\" />\n </span>\n )}\n {showCheckbox && (\n <CheckboxIndicator\n checked={checked || indeterminate}\n indeterminate={!checked && indeterminate}\n size=\"18px\"\n />\n )}\n <span className={classes.label}>{node.label}</span>\n {showCheckMark && <CheckIcon className={classes.checkIcon} />}\n </>\n )}\n </Combobox.Option>\n );\n}\n\nTreeSelectOption.displayName = '@mantine/core/TreeSelectOption';\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeSelectOption.cjs","names":["classes","Combobox","AccordionChevron","CheckboxIndicator","CheckIcon"],"sources":["../../../src/components/TreeSelect/TreeSelectOption.tsx"],"sourcesContent":["import { AccordionChevron } from '../Accordion';\nimport { CheckboxIndicator } from '../Checkbox/CheckboxIndicator/CheckboxIndicator';\nimport { CheckIcon } from '../Checkbox/CheckIcon';\nimport { Combobox } from '../Combobox';\nimport type { TreeNodeData } from '../Tree';\nimport classes from './TreeSelect.module.css';\n\nconst LEVEL_OFFSET = 20;\nconst BASE_PADDING = 8;\nconst LINE_CONTENT_GAP = 5;\nconst OPTION_GAP = 6;\n\nexport interface TreeSelectChevronAriaLabels {\n /** aria-label for the expand button when the node is collapsed @default 'Expand' */\n expand?: string;\n\n /** aria-label for the expand button when the node is expanded @default 'Collapse' */\n collapse?: string;\n}\n\nexport interface TreeSelectOptionProps {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n showCheckbox: boolean;\n isLastChild: boolean;\n lineGuides: boolean[];\n withLines: boolean;\n onToggleExpand: (value: string) => void;\n renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;\n chevronAriaLabels?: TreeSelectChevronAriaLabels;\n}\n\nexport interface TreeSelectRenderNodePayload {\n node: TreeNodeData;\n level: number;\n expanded: boolean;\n hasChildren: boolean;\n selected: boolean;\n checked: boolean;\n indeterminate: boolean;\n\n /** Toggles the expanded state of the node. Can be used to build a custom expand control\n * in `renderNode` without controlling the expanded state externally.\n * No-op for nodes without children. */\n expand: (event?: React.MouseEvent) => void;\n}\n\nexport function TreeSelectOption({\n node,\n level,\n expanded,\n hasChildren,\n selected,\n checked,\n indeterminate,\n showCheckbox,\n isLastChild,\n lineGuides,\n withLines,\n onToggleExpand,\n renderNode,\n chevronAriaLabels,\n}: TreeSelectOptionProps) {\n const indentPx = (level - 1) * LEVEL_OFFSET;\n\n const handleExpandClick = (event?: React.MouseEvent) => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!hasChildren) {\n return;\n }\n\n onToggleExpand(node.value);\n };\n\n const handleExpandMouseDown = (event: React.MouseEvent) => {\n event.preventDefault();\n };\n\n const customContent = renderNode\n ? renderNode({\n node,\n level,\n expanded,\n hasChildren,\n selected,\n checked,\n indeterminate,\n expand: handleExpandClick,\n })\n : null;\n\n const lineElements =\n withLines && level > 1 ? (\n <>\n {lineGuides.map((show, g) =>\n show ? (\n <span\n key={`g${g}`}\n className={classes.guideLine}\n style={{ insetInlineStart: BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2 }}\n />\n ) : null\n )}\n <span\n className={classes.branchVertical}\n data-last={isLastChild || undefined}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n }}\n />\n <span\n className={classes.branchHorizontal}\n style={{\n insetInlineStart: BASE_PADDING + (level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2,\n width: LEVEL_OFFSET / 2,\n }}\n />\n </>\n ) : null;\n\n const isActive = selected || checked;\n const showCheckMark = !showCheckbox && isActive;\n\n const ariaChecked = showCheckbox ? (indeterminate && !checked ? 'mixed' : checked) : undefined;\n\n return (\n <Combobox.Option\n value={node.value}\n disabled={node.nodeProps?.disabled}\n active={isActive}\n className={classes.option}\n style={{\n paddingInlineStart:\n BASE_PADDING +\n indentPx +\n (withLines && level > 1 ? LINE_CONTENT_GAP : 0) +\n (!hasChildren ? OPTION_GAP : 0),\n }}\n aria-selected={isActive}\n aria-level={level}\n aria-expanded={hasChildren ? expanded : undefined}\n aria-checked={ariaChecked}\n >\n {lineElements}\n {customContent || (\n <>\n {hasChildren && (\n <span\n className={classes.expandIcon}\n data-expanded={expanded || undefined}\n onClick={handleExpandClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleExpandClick(e as any);\n }\n }}\n onMouseDown={handleExpandMouseDown}\n role=\"button\"\n tabIndex={-1}\n aria-label={\n expanded\n ? (chevronAriaLabels?.collapse ?? 'Collapse')\n : (chevronAriaLabels?.expand ?? 'Expand')\n }\n >\n <AccordionChevron size=\"80%\" />\n </span>\n )}\n {showCheckbox && (\n <CheckboxIndicator\n checked={checked || indeterminate}\n indeterminate={!checked && indeterminate}\n size=\"18px\"\n />\n )}\n <span className={classes.label}>{node.label}</span>\n {showCheckMark && <CheckIcon className={classes.checkIcon} />}\n </>\n )}\n </Combobox.Option>\n );\n}\n\nTreeSelectOption.displayName = '@mantine/core/TreeSelectOption';\n"],"mappings":"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"}
@@ -9,18 +9,19 @@ let react_jsx_runtime = require("react/jsx-runtime");
9
9
  const Typography = require_factory.factory((_props) => {
10
10
  const props = require_use_props.useProps("Typography", null, _props);
11
11
  const { classNames, className, style, styles, unstyled, attributes, ...others } = props;
12
+ const getStyles = require_use_styles.useStyles({
13
+ name: "Typography",
14
+ classes: require_Typography_module.default,
15
+ props,
16
+ className,
17
+ style,
18
+ classNames,
19
+ styles,
20
+ unstyled,
21
+ attributes
22
+ });
12
23
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
13
- ...require_use_styles.useStyles({
14
- name: "Typography",
15
- classes: require_Typography_module.default,
16
- props,
17
- className,
18
- style,
19
- classNames,
20
- styles,
21
- unstyled,
22
- attributes
23
- })("root"),
24
+ ...getStyles("root"),
24
25
  ...others
25
26
  });
26
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.cjs","names":["factory","useProps","Box","useStyles","classes"],"sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport classes from './Typography.module.css';\n\nexport type TypographyStylesNames = 'root';\n\nexport interface TypographyProps\n extends BoxProps, StylesApiProps<TypographyFactory>, ElementProps<'div'> {}\n\nexport type TypographyFactory = Factory<{\n props: TypographyProps;\n ref: HTMLDivElement;\n stylesNames: TypographyStylesNames;\n}>;\n\nexport const Typography = factory<TypographyFactory>((_props) => {\n const props = useProps('Typography', null, _props);\n const { classNames, className, style, styles, unstyled, attributes, ...others } = props;\n\n const getStyles = useStyles<TypographyFactory>({\n name: 'Typography',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n return <Box {...getStyles('root')} {...others} />;\n});\n\nTypography.classes = classes;\nTypography.displayName = '@mantine/core/Typography';\n\nexport namespace Typography {\n export type Props = TypographyProps;\n export type StylesNames = TypographyStylesNames;\n export type Factory = TypographyFactory;\n}\n"],"mappings":";;;;;;;;AAuBA,MAAa,aAAaA,gBAAAA,SAA4B,WAAW;CAC/D,MAAM,QAAQC,kBAAAA,SAAS,cAAc,MAAM,MAAM;CACjD,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,UAAU,YAAY,GAAG,WAAW;CAclF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EAAK,GAZMC,mBAAAA,UAA6B;GAC7C,MAAM;GACN,SAAA,0BAAA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAEwB,CAAC,CAAC,MAAM;EAAG,GAAI;CAAS,CAAA;AAClD,CAAC;AAED,WAAW,UAAUC,0BAAAA;AACrB,WAAW,cAAc"}
1
+ {"version":3,"file":"Typography.cjs","names":["factory","useProps","useStyles","Box","classes"],"sources":["../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport classes from './Typography.module.css';\n\nexport type TypographyStylesNames = 'root';\n\nexport interface TypographyProps\n extends BoxProps, StylesApiProps<TypographyFactory>, ElementProps<'div'> {}\n\nexport type TypographyFactory = Factory<{\n props: TypographyProps;\n ref: HTMLDivElement;\n stylesNames: TypographyStylesNames;\n}>;\n\nexport const Typography = factory<TypographyFactory>((_props) => {\n const props = useProps('Typography', null, _props);\n const { classNames, className, style, styles, unstyled, attributes, ...others } = props;\n\n const getStyles = useStyles<TypographyFactory>({\n name: 'Typography',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n return <Box {...getStyles('root')} {...others} />;\n});\n\nTypography.classes = classes;\nTypography.displayName = '@mantine/core/Typography';\n\nexport namespace Typography {\n export type Props = TypographyProps;\n export type StylesNames = TypographyStylesNames;\n export type Factory = TypographyFactory;\n}\n"],"mappings":";;;;;;;;AAuBA,MAAa,aAAaA,gBAAAA,SAA4B,WAAW;CAC/D,MAAM,QAAQC,kBAAAA,SAAS,cAAc,MAAM,MAAM;CACjD,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,UAAU,YAAY,GAAG,WAAW;CAElF,MAAM,YAAYC,mBAAAA,UAA6B;EAC7C,MAAM;EACN,SAAA,0BAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EAAK,GAAI,UAAU,MAAM;EAAG,GAAI;CAAS,CAAA;AAClD,CAAC;AAED,WAAW,UAAUC,0BAAAA;AACrB,WAAW,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.module.cjs","names":[],"sources":["../../../src/components/Typography/Typography.module.css"],"sourcesContent":[".root {\n & :first-child {\n margin-top: 0;\n }\n\n & :last-child {\n margin-bottom: 0;\n }\n\n & :where(h1, h2, h3, h4, h5, h6) {\n margin-bottom: var(--mantine-spacing-xs);\n text-wrap: var(--mantine-heading-text-wrap);\n font-family: var(--mantine-font-family-headings);\n }\n\n & :where(h1) {\n margin-top: calc(1.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h1-font-size);\n line-height: var(--mantine-h1-line-height);\n font-weight: var(--mantine-h1-font-weight);\n }\n\n & :where(h2) {\n margin-top: var(--mantine-spacing-xl);\n font-size: var(--mantine-h2-font-size);\n line-height: var(--mantine-h2-line-height);\n font-weight: var(--mantine-h2-font-weight);\n }\n\n & :where(h3) {\n margin-top: calc(0.8 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h3-font-size);\n line-height: var(--mantine-h3-line-height);\n font-weight: var(--mantine-h3-font-weight);\n }\n\n & :where(h4) {\n margin-top: calc(0.8 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h4-font-size);\n line-height: var(--mantine-h4-line-height);\n font-weight: var(--mantine-h4-font-weight);\n }\n\n & :where(h5) {\n margin-top: calc(0.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h5-font-size);\n line-height: var(--mantine-h5-line-height);\n font-weight: var(--mantine-h5-font-weight);\n }\n\n & :where(h6) {\n margin-top: calc(0.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h6-font-size);\n line-height: var(--mantine-h6-line-height);\n font-weight: var(--mantine-h6-font-weight);\n }\n\n & :where(img) {\n max-width: 100%;\n margin-bottom: var(--mantine-spacing-xs);\n }\n\n & :where(p) {\n margin-top: 0;\n margin-bottom: var(--mantine-spacing-lg);\n }\n\n & :where(mark) {\n @mixin where-light {\n background-color: var(--mantine-color-yellow-2);\n color: inherit;\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-yellow-5);\n color: var(--mantine-color-black);\n }\n }\n\n & :where(a) {\n color: var(--mantine-color-anchor);\n text-decoration: none;\n\n @mixin hover {\n text-decoration: underline;\n }\n }\n\n & :where(hr) {\n margin-top: var(--mantine-spacing-md);\n margin-bottom: var(--mantine-spacing-md);\n border: 0;\n border-top: 1px solid;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-3);\n }\n }\n\n & :where(pre) {\n padding: var(--mantine-spacing-xs);\n line-height: var(--mantine-line-height);\n margin: 0;\n margin-top: var(--mantine-spacing-md);\n margin-bottom: var(--mantine-spacing-md);\n overflow-x: auto;\n font-family: var(--mantine-font-family-monospace);\n font-size: var(--mantine-font-size-xs);\n border-radius: var(--mantine-radius-sm);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n\n & :where(code) {\n background-color: transparent;\n padding: 0;\n border-radius: 0;\n color: inherit;\n border: 0;\n }\n }\n\n & :where(kbd) {\n --kbd-fz: 12px;\n --kbd-padding: 3px 5px;\n\n font-family: var(--mantine-font-family-monospace);\n line-height: var(--mantine-line-height);\n font-weight: var(--mantine-font-weight-bold);\n padding: var(--kbd-padding);\n font-size: var(--kbd-fz);\n border-radius: var(--mantine-radius-sm);\n border: 1px solid;\n border-bottom-width: 3px;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n color: var(--mantine-color-gray-7);\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-3);\n color: var(--mantine-color-dark-0);\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n & :where(code) {\n line-height: var(--mantine-line-height);\n padding: 1px 5px;\n border-radius: var(--mantine-radius-sm);\n font-family: var(--mantine-font-family-monospace);\n font-size: var(--mantine-font-size-xs);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n color: var(--mantine-color-white);\n }\n }\n\n & :where(ul, ol):not([data-type='taskList']) {\n margin-bottom: var(--mantine-spacing-md);\n padding-inline-start: var(--mantine-spacing-xl);\n list-style-position: outside;\n }\n\n & :where(table) {\n width: 100%;\n border-collapse: collapse;\n caption-side: bottom;\n margin-bottom: var(--mantine-spacing-md);\n\n @mixin where-light {\n --table-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --table-border-color: var(--mantine-color-dark-4);\n }\n\n & :where(caption) {\n margin-top: var(--mantine-spacing-xs);\n font-size: var(--mantine-font-size-sm);\n color: var(--mantine-color-dimmed);\n }\n\n & :where(th) {\n text-align: start;\n font-weight: bold;\n font-size: var(--mantine-font-size-sm);\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n }\n\n & :where(thead th) {\n border-bottom: 1px solid;\n border-color: var(--table-border-color);\n }\n\n & :where(tfoot th) {\n border-top: 1px solid;\n border-color: var(--table-border-color);\n }\n\n & :where(td) {\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n border-bottom: 1px solid;\n border-color: var(--table-border-color);\n font-size: var(--mantine-font-size-sm);\n }\n\n & :where(tr:last-of-type td) {\n border-bottom: 0;\n }\n }\n\n & :where(blockquote) {\n font-size: var(--mantine-font-size-lg);\n line-height: var(--mantine-line-height);\n margin: var(--mantine-spacing-md) 0;\n border-radius: var(--mantine-radius-sm);\n padding: var(--mantine-spacing-md) var(--mantine-spacing-lg);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Typography.module.cjs","names":[],"sources":["../../../src/components/Typography/Typography.module.css"],"sourcesContent":[".root {\n & :first-child {\n margin-top: 0;\n }\n\n & :last-child {\n margin-bottom: 0;\n }\n\n & :where(h1, h2, h3, h4, h5, h6) {\n margin-bottom: var(--mantine-spacing-xs);\n text-wrap: var(--mantine-heading-text-wrap);\n font-family: var(--mantine-font-family-headings);\n }\n\n & :where(h1) {\n margin-top: calc(1.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h1-font-size);\n line-height: var(--mantine-h1-line-height);\n font-weight: var(--mantine-h1-font-weight);\n }\n\n & :where(h2) {\n margin-top: var(--mantine-spacing-xl);\n font-size: var(--mantine-h2-font-size);\n line-height: var(--mantine-h2-line-height);\n font-weight: var(--mantine-h2-font-weight);\n }\n\n & :where(h3) {\n margin-top: calc(0.8 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h3-font-size);\n line-height: var(--mantine-h3-line-height);\n font-weight: var(--mantine-h3-font-weight);\n }\n\n & :where(h4) {\n margin-top: calc(0.8 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h4-font-size);\n line-height: var(--mantine-h4-line-height);\n font-weight: var(--mantine-h4-font-weight);\n }\n\n & :where(h5) {\n margin-top: calc(0.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h5-font-size);\n line-height: var(--mantine-h5-line-height);\n font-weight: var(--mantine-h5-font-weight);\n }\n\n & :where(h6) {\n margin-top: calc(0.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h6-font-size);\n line-height: var(--mantine-h6-line-height);\n font-weight: var(--mantine-h6-font-weight);\n }\n\n & :where(img) {\n max-width: 100%;\n margin-bottom: var(--mantine-spacing-xs);\n }\n\n & :where(p) {\n margin-top: 0;\n margin-bottom: var(--mantine-spacing-lg);\n }\n\n & :where(mark) {\n @mixin where-light {\n background-color: var(--mantine-color-yellow-2);\n color: inherit;\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-yellow-5);\n color: var(--mantine-color-black);\n }\n }\n\n & :where(a) {\n color: var(--mantine-color-anchor);\n text-decoration: none;\n\n @mixin hover {\n text-decoration: underline;\n }\n }\n\n & :where(hr) {\n margin-top: var(--mantine-spacing-md);\n margin-bottom: var(--mantine-spacing-md);\n border: 0;\n border-top: 1px solid;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-3);\n }\n }\n\n & :where(pre) {\n padding: var(--mantine-spacing-xs);\n line-height: var(--mantine-line-height);\n margin: 0;\n margin-top: var(--mantine-spacing-md);\n margin-bottom: var(--mantine-spacing-md);\n overflow-x: auto;\n font-family: var(--mantine-font-family-monospace);\n font-size: var(--mantine-font-size-xs);\n border-radius: var(--mantine-radius-sm);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n\n & :where(code) {\n background-color: transparent;\n padding: 0;\n border-radius: 0;\n color: inherit;\n border: 0;\n }\n }\n\n & :where(kbd) {\n --kbd-fz: 12px;\n --kbd-padding: 3px 5px;\n\n font-family: var(--mantine-font-family-monospace);\n line-height: var(--mantine-line-height);\n font-weight: var(--mantine-font-weight-bold);\n padding: var(--kbd-padding);\n font-size: var(--kbd-fz);\n border-radius: var(--mantine-radius-sm);\n border: 1px solid;\n border-bottom-width: 3px;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n color: var(--mantine-color-gray-7);\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-3);\n color: var(--mantine-color-dark-0);\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n & :where(code) {\n line-height: var(--mantine-line-height);\n padding: 1px 5px;\n border-radius: var(--mantine-radius-sm);\n font-family: var(--mantine-font-family-monospace);\n font-size: var(--mantine-font-size-xs);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n color: var(--mantine-color-white);\n }\n }\n\n & :where(ul, ol):not([data-type='taskList']) {\n margin-bottom: var(--mantine-spacing-md);\n padding-inline-start: var(--mantine-spacing-xl);\n list-style-position: outside;\n }\n\n & :where(table) {\n width: 100%;\n border-collapse: collapse;\n caption-side: bottom;\n margin-bottom: var(--mantine-spacing-md);\n\n @mixin where-light {\n --table-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --table-border-color: var(--mantine-color-dark-4);\n }\n\n & :where(caption) {\n margin-top: var(--mantine-spacing-xs);\n font-size: var(--mantine-font-size-sm);\n color: var(--mantine-color-dimmed);\n }\n\n & :where(th) {\n text-align: start;\n font-weight: bold;\n font-size: var(--mantine-font-size-sm);\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n }\n\n & :where(thead th) {\n border-bottom: 1px solid;\n border-color: var(--table-border-color);\n }\n\n & :where(tfoot th) {\n border-top: 1px solid;\n border-color: var(--table-border-color);\n }\n\n & :where(td) {\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n border-bottom: 1px solid;\n border-color: var(--table-border-color);\n font-size: var(--mantine-font-size-sm);\n }\n\n & :where(tr:last-of-type td) {\n border-bottom: 0;\n }\n }\n\n & :where(details) {\n margin-bottom: var(--mantine-spacing-md);\n padding: var(--mantine-spacing-sm) var(--mantine-spacing-md);\n border: 1px solid var(--details-border-color);\n border-radius: var(--mantine-radius-default);\n\n @mixin where-light {\n --details-border-color: var(--mantine-color-gray-3);\n --details-summary-hover: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n --details-border-color: var(--mantine-color-dark-4);\n --details-summary-hover: var(--mantine-color-dark-5);\n }\n\n /* The native marker is hidden and replaced with a small triangle control so only the control –\n not the whole summary text – gets the hover affordance, matching the editor toggle button. */\n & :where(summary) {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--mantine-spacing-xs);\n cursor: pointer;\n font-weight: 600;\n list-style: none;\n }\n\n & :where(summary)::-webkit-details-marker {\n display: none;\n }\n\n /* Control box: reserves space for the triangle and carries the hover background. */\n & :where(summary)::before {\n content: '';\n flex-shrink: 0;\n width: 1.25rem;\n height: calc(1em * var(--mantine-line-height));\n border-radius: var(--mantine-radius-sm);\n }\n\n & :where(summary:hover)::before {\n background-color: var(--details-summary-hover);\n }\n\n /* Disclosure triangle centered over the control box (7px = half of the 20px box minus the 6px\n triangle); rotates to point down when the details is open. */\n & :where(summary)::after {\n content: '';\n position: absolute;\n inset-inline-start: rem(7px);\n top: 50%;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 6px;\n border-color: transparent transparent transparent currentColor;\n transform: translateY(-50%);\n }\n\n &:where([open]) > :where(summary)::after {\n transform: translateY(-50%) rotate(90deg);\n }\n\n & > :where(*:last-child) {\n margin-bottom: 0;\n }\n }\n\n & :where(blockquote) {\n font-size: var(--mantine-font-size-lg);\n line-height: var(--mantine-line-height);\n margin: var(--mantine-spacing-md) 0;\n border-radius: var(--mantine-radius-sm);\n padding: var(--mantine-spacing-md) var(--mantine-spacing-lg);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n }\n}\n"],"mappings":""}
@@ -10,18 +10,19 @@ const defaultProps = { __staticSelector: "UnstyledButton" };
10
10
  const UnstyledButton = require_polymorphic_factory.polymorphicFactory((_props) => {
11
11
  const props = require_use_props.useProps("UnstyledButton", defaultProps, _props);
12
12
  const { className, component = "button", __staticSelector, unstyled, classNames, styles, style, attributes, ...others } = props;
13
+ const getStyles = require_use_styles.useStyles({
14
+ name: __staticSelector,
15
+ props,
16
+ classes: require_UnstyledButton_module.default,
17
+ className,
18
+ style,
19
+ classNames,
20
+ styles,
21
+ unstyled,
22
+ attributes
23
+ });
13
24
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
14
- ...require_use_styles.useStyles({
15
- name: __staticSelector,
16
- props,
17
- classes: require_UnstyledButton_module.default,
18
- className,
19
- style,
20
- classNames,
21
- styles,
22
- unstyled,
23
- attributes
24
- })("root", { focusable: true }),
25
+ ...getStyles("root", { focusable: true }),
25
26
  component,
26
27
  type: component === "button" ? "button" : void 0,
27
28
  ...others