@mantine/core 9.2.2 → 9.3.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 (851) hide show
  1. package/cjs/components/Accordion/Accordion.cjs +0 -1
  2. package/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/cjs/components/Accordion/AccordionChevron.cjs +0 -1
  4. package/cjs/components/Accordion/AccordionChevron.cjs.map +1 -1
  5. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs +0 -1
  6. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs.map +1 -1
  7. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs +0 -1
  8. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs.map +1 -1
  9. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs +0 -1
  10. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
  11. package/cjs/components/ActionIcon/ActionIcon.cjs +0 -1
  12. package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
  13. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs +0 -1
  14. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs.map +1 -1
  15. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs +0 -1
  16. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs.map +1 -1
  17. package/cjs/components/Affix/Affix.cjs +0 -1
  18. package/cjs/components/Affix/Affix.cjs.map +1 -1
  19. package/cjs/components/Alert/Alert.cjs +0 -1
  20. package/cjs/components/Alert/Alert.cjs.map +1 -1
  21. package/cjs/components/AngleSlider/AngleSlider.cjs +0 -1
  22. package/cjs/components/AngleSlider/AngleSlider.cjs.map +1 -1
  23. package/cjs/components/AppShell/AppShell.cjs +0 -1
  24. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  25. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs +0 -1
  26. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs.map +1 -1
  27. package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs +0 -1
  28. package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs.map +1 -1
  29. package/cjs/components/AppShell/AppShellSection/AppShellSection.cjs +0 -1
  30. package/cjs/components/AppShell/AppShellSection/AppShellSection.cjs.map +1 -1
  31. package/cjs/components/AppShell/use-resizing/use-resizing.cjs +0 -1
  32. package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
  33. package/cjs/components/AspectRatio/AspectRatio.cjs +0 -1
  34. package/cjs/components/AspectRatio/AspectRatio.cjs.map +1 -1
  35. package/cjs/components/Autocomplete/Autocomplete.cjs +2 -2
  36. package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  37. package/cjs/components/Avatar/Avatar.cjs +0 -1
  38. package/cjs/components/Avatar/Avatar.cjs.map +1 -1
  39. package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs +0 -1
  40. package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs.map +1 -1
  41. package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs +0 -1
  42. package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs.map +1 -1
  43. package/cjs/components/BackgroundImage/BackgroundImage.cjs +0 -1
  44. package/cjs/components/BackgroundImage/BackgroundImage.cjs.map +1 -1
  45. package/cjs/components/Badge/Badge.cjs +0 -1
  46. package/cjs/components/Badge/Badge.cjs.map +1 -1
  47. package/cjs/components/Blockquote/Blockquote.cjs +4 -4
  48. package/cjs/components/Blockquote/Blockquote.cjs.map +1 -1
  49. package/cjs/components/Blockquote/Blockquote.module.cjs.map +1 -1
  50. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs +0 -1
  51. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
  52. package/cjs/components/Burger/Burger.cjs +0 -1
  53. package/cjs/components/Burger/Burger.cjs.map +1 -1
  54. package/cjs/components/Button/Button.cjs +0 -1
  55. package/cjs/components/Button/Button.cjs.map +1 -1
  56. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs +0 -1
  57. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
  58. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs +0 -1
  59. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
  60. package/cjs/components/Card/Card.cjs +0 -1
  61. package/cjs/components/Card/Card.cjs.map +1 -1
  62. package/cjs/components/Card/CardSection/CardSection.cjs +0 -1
  63. package/cjs/components/Card/CardSection/CardSection.cjs.map +1 -1
  64. package/cjs/components/Center/Center.cjs +0 -1
  65. package/cjs/components/Center/Center.cjs.map +1 -1
  66. package/cjs/components/Checkbox/CheckIcon.cjs +0 -1
  67. package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
  68. package/cjs/components/Checkbox/Checkbox.cjs +0 -1
  69. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  70. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs +0 -1
  71. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
  72. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs +0 -1
  73. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
  74. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs +0 -1
  75. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  76. package/cjs/components/Chip/Chip.cjs +0 -1
  77. package/cjs/components/Chip/Chip.cjs.map +1 -1
  78. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs +0 -1
  79. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
  80. package/cjs/components/CloseButton/CloseButton.cjs +0 -1
  81. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  82. package/cjs/components/Code/Code.cjs +0 -1
  83. package/cjs/components/Code/Code.cjs.map +1 -1
  84. package/cjs/components/Collapse/Collapse.cjs +0 -1
  85. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  86. package/cjs/components/ColorInput/ColorInput.cjs +0 -1
  87. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  88. package/cjs/components/ColorInput/EyeDropperIcon.cjs +0 -1
  89. package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
  90. package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs +0 -1
  91. package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs.map +1 -1
  92. package/cjs/components/ColorPicker/ColorPicker.cjs +0 -1
  93. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  94. package/cjs/components/ColorPicker/ColorPicker.context.cjs +0 -1
  95. package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
  96. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs +0 -1
  97. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  98. package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs +0 -1
  99. package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs.map +1 -1
  100. package/cjs/components/ColorPicker/Saturation/Saturation.cjs +0 -1
  101. package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
  102. package/cjs/components/ColorPicker/Swatches/Swatches.cjs +0 -1
  103. package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
  104. package/cjs/components/ColorPicker/Thumb/Thumb.cjs +0 -1
  105. package/cjs/components/ColorPicker/Thumb/Thumb.cjs.map +1 -1
  106. package/cjs/components/ColorSwatch/ColorSwatch.cjs +0 -1
  107. package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
  108. package/cjs/components/Combobox/Combobox.cjs +26 -4
  109. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  110. package/cjs/components/Combobox/Combobox.context.cjs.map +1 -1
  111. package/cjs/components/Combobox/Combobox.module.cjs.map +1 -1
  112. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs +0 -1
  113. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
  114. package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs +0 -1
  115. package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs.map +1 -1
  116. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs +1 -1
  117. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs.map +1 -1
  118. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs +0 -1
  119. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs.map +1 -1
  120. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs +0 -1
  121. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
  122. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs +0 -1
  123. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
  124. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs +0 -1
  125. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
  126. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs +0 -1
  127. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
  128. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs +0 -1
  129. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
  130. package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs +0 -1
  131. package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs.map +1 -1
  132. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs +0 -1
  133. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
  134. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs +0 -1
  135. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
  136. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs +0 -1
  137. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  138. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs +0 -1
  139. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
  140. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs +4 -2
  141. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  142. package/cjs/components/Combobox/use-combobox/use-combobox.cjs +0 -1
  143. package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
  144. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs +0 -1
  145. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  146. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs +0 -1
  147. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  148. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs +0 -1
  149. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -1
  150. package/cjs/components/Container/Container.cjs +0 -1
  151. package/cjs/components/Container/Container.cjs.map +1 -1
  152. package/cjs/components/CopyButton/CopyButton.cjs +0 -1
  153. package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
  154. package/cjs/components/Dialog/Dialog.cjs +0 -1
  155. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  156. package/cjs/components/Divider/Divider.cjs +0 -1
  157. package/cjs/components/Divider/Divider.cjs.map +1 -1
  158. package/cjs/components/Drawer/Drawer.cjs +0 -1
  159. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  160. package/cjs/components/Drawer/DrawerBody.cjs +0 -1
  161. package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
  162. package/cjs/components/Drawer/DrawerCloseButton.cjs +0 -1
  163. package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
  164. package/cjs/components/Drawer/DrawerContent.cjs +0 -1
  165. package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
  166. package/cjs/components/Drawer/DrawerHeader.cjs +0 -1
  167. package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -1
  168. package/cjs/components/Drawer/DrawerOverlay.cjs +0 -1
  169. package/cjs/components/Drawer/DrawerOverlay.cjs.map +1 -1
  170. package/cjs/components/Drawer/DrawerRoot.cjs +0 -1
  171. package/cjs/components/Drawer/DrawerRoot.cjs.map +1 -1
  172. package/cjs/components/Drawer/DrawerStack.cjs +0 -1
  173. package/cjs/components/Drawer/DrawerStack.cjs.map +1 -1
  174. package/cjs/components/Drawer/DrawerTitle.cjs +0 -1
  175. package/cjs/components/Drawer/DrawerTitle.cjs.map +1 -1
  176. package/cjs/components/Fieldset/Fieldset.cjs +0 -1
  177. package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
  178. package/cjs/components/FileInput/FileInput.cjs +0 -1
  179. package/cjs/components/FileInput/FileInput.cjs.map +1 -1
  180. package/cjs/components/Flex/Flex.cjs +0 -1
  181. package/cjs/components/Flex/Flex.cjs.map +1 -1
  182. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs +0 -1
  183. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  184. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs +0 -1
  185. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
  186. package/cjs/components/FloatingWindow/FloatingWindow.cjs +0 -1
  187. package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
  188. package/cjs/components/FocusTrap/FocusTrap.cjs +0 -1
  189. package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
  190. package/cjs/components/Grid/Grid.cjs +0 -1
  191. package/cjs/components/Grid/Grid.cjs.map +1 -1
  192. package/cjs/components/Grid/GridCol/GridColVariables.cjs +0 -1
  193. package/cjs/components/Grid/GridCol/GridColVariables.cjs.map +1 -1
  194. package/cjs/components/Grid/GridVariables.cjs +0 -1
  195. package/cjs/components/Grid/GridVariables.cjs.map +1 -1
  196. package/cjs/components/Group/Group.cjs +0 -1
  197. package/cjs/components/Group/Group.cjs.map +1 -1
  198. package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs +0 -1
  199. package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs.map +1 -1
  200. package/cjs/components/Highlight/Highlight.cjs +0 -1
  201. package/cjs/components/Highlight/Highlight.cjs.map +1 -1
  202. package/cjs/components/HoverCard/HoverCard.cjs +0 -1
  203. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  204. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs +0 -1
  205. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  206. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs +0 -1
  207. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
  208. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs +0 -1
  209. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  210. package/cjs/components/HoverCard/use-hover-card.cjs +0 -1
  211. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  212. package/cjs/components/Image/Image.cjs +0 -1
  213. package/cjs/components/Image/Image.cjs.map +1 -1
  214. package/cjs/components/Indicator/Indicator.cjs +0 -1
  215. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  216. package/cjs/components/Input/Input.cjs +11 -3
  217. package/cjs/components/Input/Input.cjs.map +1 -1
  218. package/cjs/components/Input/Input.context.cjs +0 -1
  219. package/cjs/components/Input/Input.context.cjs.map +1 -1
  220. package/cjs/components/Input/Input.module.cjs +1 -0
  221. package/cjs/components/Input/Input.module.cjs.map +1 -1
  222. package/cjs/components/Input/InputClearButton/InputClearButton.cjs +0 -1
  223. package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
  224. package/cjs/components/Input/InputClearSection/InputClearSection.cjs +0 -1
  225. package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
  226. package/cjs/components/Input/InputDescription/InputDescription.cjs +0 -1
  227. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
  228. package/cjs/components/Input/InputError/InputError.cjs +0 -1
  229. package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
  230. package/cjs/components/Input/InputLabel/InputLabel.cjs +0 -1
  231. package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
  232. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs +0 -1
  233. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs.map +1 -1
  234. package/cjs/components/Input/InputWrapper/InputWrapper.cjs +0 -1
  235. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  236. package/cjs/components/Input/InputWrapper.context.cjs +0 -1
  237. package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
  238. package/cjs/components/InputBase/InputBase.cjs +0 -1
  239. package/cjs/components/InputBase/InputBase.cjs.map +1 -1
  240. package/cjs/components/JsonInput/JsonInput.cjs +0 -1
  241. package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
  242. package/cjs/components/Kbd/Kbd.cjs +0 -1
  243. package/cjs/components/Kbd/Kbd.cjs.map +1 -1
  244. package/cjs/components/List/List.cjs +0 -1
  245. package/cjs/components/List/List.cjs.map +1 -1
  246. package/cjs/components/List/ListItem/ListItem.cjs +0 -1
  247. package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
  248. package/cjs/components/Loader/Loader.cjs +0 -1
  249. package/cjs/components/Loader/Loader.cjs.map +1 -1
  250. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs +0 -1
  251. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  252. package/cjs/components/Mark/Mark.cjs +0 -1
  253. package/cjs/components/Mark/Mark.cjs.map +1 -1
  254. package/cjs/components/Marquee/Marquee.cjs +0 -1
  255. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  256. package/cjs/components/MaskInput/MaskInput.cjs +0 -1
  257. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
  258. package/cjs/components/MaskInput/use-mask-input-props.cjs +0 -1
  259. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
  260. package/cjs/components/Menu/Menu.cjs +37 -4
  261. package/cjs/components/Menu/Menu.cjs.map +1 -1
  262. package/cjs/components/Menu/Menu.context.cjs.map +1 -1
  263. package/cjs/components/Menu/Menu.module.cjs +2 -0
  264. package/cjs/components/Menu/Menu.module.cjs.map +1 -1
  265. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs +30 -0
  266. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs.map +1 -0
  267. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs +7 -0
  268. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs.map +1 -0
  269. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs +52 -0
  270. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs.map +1 -0
  271. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs +27 -0
  272. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs.map +1 -0
  273. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs +0 -1
  274. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
  275. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs +9 -2
  276. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
  277. package/cjs/components/Menu/MenuItem/MenuItem.cjs +18 -2
  278. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  279. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs +0 -1
  280. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
  281. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs +27 -0
  282. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs.map +1 -0
  283. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs +7 -0
  284. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs.map +1 -0
  285. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs +46 -0
  286. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs.map +1 -0
  287. package/cjs/components/Menu/MenuSearch/MenuSearch.cjs +115 -0
  288. package/cjs/components/Menu/MenuSearch/MenuSearch.cjs.map +1 -0
  289. package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs +114 -0
  290. package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs.map +1 -0
  291. package/cjs/components/Menu/MenuSub/MenuSub.cjs +0 -1
  292. package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
  293. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs +0 -1
  294. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
  295. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs +13 -2
  296. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  297. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs +18 -2
  298. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  299. package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs +0 -1
  300. package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs.map +1 -1
  301. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs +0 -1
  302. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
  303. package/cjs/components/Menu/use-menu-type-ahead.cjs +72 -0
  304. package/cjs/components/Menu/use-menu-type-ahead.cjs.map +1 -0
  305. package/cjs/components/Modal/Modal.cjs +0 -1
  306. package/cjs/components/Modal/Modal.cjs.map +1 -1
  307. package/cjs/components/Modal/ModalBody.cjs +0 -1
  308. package/cjs/components/Modal/ModalBody.cjs.map +1 -1
  309. package/cjs/components/Modal/ModalCloseButton.cjs +0 -1
  310. package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
  311. package/cjs/components/Modal/ModalContent.cjs +0 -1
  312. package/cjs/components/Modal/ModalContent.cjs.map +1 -1
  313. package/cjs/components/Modal/ModalHeader.cjs +0 -1
  314. package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
  315. package/cjs/components/Modal/ModalOverlay.cjs +0 -1
  316. package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
  317. package/cjs/components/Modal/ModalRoot.cjs +0 -1
  318. package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
  319. package/cjs/components/Modal/ModalStack.cjs +0 -1
  320. package/cjs/components/Modal/ModalStack.cjs.map +1 -1
  321. package/cjs/components/Modal/ModalTitle.cjs +0 -1
  322. package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
  323. package/cjs/components/Modal/use-modals-stack.cjs +0 -1
  324. package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
  325. package/cjs/components/ModalBase/ModalBase.cjs +0 -1
  326. package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
  327. package/cjs/components/ModalBase/ModalBaseOverlay.cjs +0 -1
  328. package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
  329. package/cjs/components/ModalBase/NativeScrollArea.cjs +0 -1
  330. package/cjs/components/ModalBase/NativeScrollArea.cjs.map +1 -1
  331. package/cjs/components/ModalBase/use-lock-scroll.cjs +0 -1
  332. package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
  333. package/cjs/components/ModalBase/use-modal-body-id.cjs +0 -1
  334. package/cjs/components/ModalBase/use-modal-body-id.cjs.map +1 -1
  335. package/cjs/components/ModalBase/use-modal-title-id.cjs +0 -1
  336. package/cjs/components/ModalBase/use-modal-title-id.cjs.map +1 -1
  337. package/cjs/components/ModalBase/use-modal.cjs +0 -1
  338. package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
  339. package/cjs/components/MultiSelect/MultiSelect.cjs +2 -2
  340. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  341. package/cjs/components/NativeSelect/NativeSelect.cjs +0 -1
  342. package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
  343. package/cjs/components/NativeSelect/NativeSelectOption.cjs +0 -1
  344. package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
  345. package/cjs/components/NavLink/NavLink.cjs +0 -1
  346. package/cjs/components/NavLink/NavLink.cjs.map +1 -1
  347. package/cjs/components/Notification/Notification.cjs +0 -1
  348. package/cjs/components/Notification/Notification.cjs.map +1 -1
  349. package/cjs/components/NumberFormatter/NumberFormatter.cjs +0 -1
  350. package/cjs/components/NumberFormatter/NumberFormatter.cjs.map +1 -1
  351. package/cjs/components/NumberInput/NumberInputChevron.cjs +0 -1
  352. package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
  353. package/cjs/components/OverflowList/OverflowList.cjs +68 -10
  354. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  355. package/cjs/components/OverflowList/use-dimensions.cjs +0 -1
  356. package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
  357. package/cjs/components/Overlay/Overlay.cjs +0 -1
  358. package/cjs/components/Overlay/Overlay.cjs.map +1 -1
  359. package/cjs/components/Pagination/Pagination.cjs +14 -3
  360. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  361. package/cjs/components/Pagination/Pagination.context.cjs.map +1 -1
  362. package/cjs/components/Pagination/Pagination.icons.cjs +0 -1
  363. package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
  364. package/cjs/components/Pagination/Pagination.module.cjs +3 -1
  365. package/cjs/components/Pagination/Pagination.module.cjs.map +1 -1
  366. package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs +0 -1
  367. package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs.map +1 -1
  368. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs +0 -1
  369. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
  370. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs +0 -1
  371. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
  372. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs +0 -1
  373. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
  374. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs +32 -0
  375. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +1 -0
  376. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs +3 -2
  377. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
  378. package/cjs/components/Paper/Paper.cjs +0 -1
  379. package/cjs/components/Paper/Paper.cjs.map +1 -1
  380. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs +0 -1
  381. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
  382. package/cjs/components/Pill/Pill.cjs +0 -1
  383. package/cjs/components/Pill/Pill.cjs.map +1 -1
  384. package/cjs/components/Pill/PillGroup/PillGroup.cjs +0 -1
  385. package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
  386. package/cjs/components/PillsInput/PillsInput.cjs +0 -1
  387. package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
  388. package/cjs/components/PillsInput/PillsInput.context.cjs +0 -1
  389. package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
  390. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs +0 -1
  391. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
  392. package/cjs/components/PinInput/PinInput.cjs +0 -1
  393. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  394. package/cjs/components/Popover/Popover.cjs +5 -10
  395. package/cjs/components/Popover/Popover.cjs.map +1 -1
  396. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs +27 -0
  397. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs.map +1 -0
  398. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs +8 -1
  399. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
  400. package/cjs/components/Popover/use-popover.cjs +52 -20
  401. package/cjs/components/Popover/use-popover.cjs.map +1 -1
  402. package/cjs/components/Portal/OptionalPortal.cjs +0 -1
  403. package/cjs/components/Portal/OptionalPortal.cjs.map +1 -1
  404. package/cjs/components/Portal/Portal.cjs +0 -1
  405. package/cjs/components/Portal/Portal.cjs.map +1 -1
  406. package/cjs/components/Progress/Progress.cjs +0 -1
  407. package/cjs/components/Progress/Progress.cjs.map +1 -1
  408. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs +0 -1
  409. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
  410. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs +0 -1
  411. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
  412. package/cjs/components/Progress/ProgressSection/ProgressSection.cjs +0 -1
  413. package/cjs/components/Progress/ProgressSection/ProgressSection.cjs.map +1 -1
  414. package/cjs/components/Radio/Radio.cjs +1 -2
  415. package/cjs/components/Radio/Radio.cjs.map +1 -1
  416. package/cjs/components/Radio/RadioCard/RadioCard.cjs +0 -1
  417. package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
  418. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs +0 -1
  419. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
  420. package/cjs/components/Radio/RadioIcon.cjs +0 -1
  421. package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
  422. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs +2 -3
  423. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  424. package/cjs/components/Rating/Rating.cjs +0 -1
  425. package/cjs/components/Rating/Rating.cjs.map +1 -1
  426. package/cjs/components/Rating/RatingItem/RatingItem.cjs +0 -1
  427. package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
  428. package/cjs/components/Rating/StarSymbol/StarIcon.cjs +0 -1
  429. package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
  430. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs +0 -1
  431. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
  432. package/cjs/components/RingProgress/Curve/Curve.cjs +0 -1
  433. package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
  434. package/cjs/components/RingProgress/RingProgress.cjs +0 -1
  435. package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
  436. package/cjs/components/RollingNumber/DigitColumn.cjs +0 -1
  437. package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -1
  438. package/cjs/components/RollingNumber/RollingNumber.cjs +0 -1
  439. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -1
  440. package/cjs/components/ScrollArea/ScrollArea.cjs +0 -1
  441. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  442. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs +0 -1
  443. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
  444. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs +0 -1
  445. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
  446. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs +0 -1
  447. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs.map +1 -1
  448. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs +0 -1
  449. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
  450. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs +0 -1
  451. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
  452. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs +0 -1
  453. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
  454. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs +0 -1
  455. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
  456. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs +0 -1
  457. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  458. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs +0 -1
  459. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
  460. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs +0 -1
  461. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
  462. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs +0 -1
  463. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
  464. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs +0 -1
  465. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
  466. package/cjs/components/ScrollArea/use-resize-observer.cjs +0 -1
  467. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  468. package/cjs/components/Scroller/Scroller.cjs +0 -1
  469. package/cjs/components/Scroller/Scroller.cjs.map +1 -1
  470. package/cjs/components/SegmentedControl/SegmentedControl.cjs +0 -1
  471. package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
  472. package/cjs/components/Select/Select.cjs +2 -2
  473. package/cjs/components/Select/Select.cjs.map +1 -1
  474. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs +0 -1
  475. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
  476. package/cjs/components/SimpleGrid/SimpleGrid.cjs +0 -1
  477. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  478. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs +0 -1
  479. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
  480. package/cjs/components/Skeleton/Skeleton.cjs +0 -1
  481. package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  482. package/cjs/components/Slider/Marks/Marks.cjs +0 -1
  483. package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
  484. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs +0 -1
  485. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  486. package/cjs/components/Slider/Slider/Slider.cjs +0 -1
  487. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  488. package/cjs/components/Slider/SliderRoot/SliderRoot.cjs +0 -1
  489. package/cjs/components/Slider/SliderRoot/SliderRoot.cjs.map +1 -1
  490. package/cjs/components/Slider/Thumb/Thumb.cjs +0 -1
  491. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  492. package/cjs/components/Slider/Track/Track.cjs +0 -1
  493. package/cjs/components/Slider/Track/Track.cjs.map +1 -1
  494. package/cjs/components/Space/Space.cjs +0 -1
  495. package/cjs/components/Space/Space.cjs.map +1 -1
  496. package/cjs/components/Splitter/GripIcon.cjs +55 -0
  497. package/cjs/components/Splitter/GripIcon.cjs.map +1 -0
  498. package/cjs/components/Splitter/Splitter.cjs +111 -0
  499. package/cjs/components/Splitter/Splitter.cjs.map +1 -0
  500. package/cjs/components/Splitter/Splitter.context.cjs +8 -0
  501. package/cjs/components/Splitter/Splitter.context.cjs.map +1 -0
  502. package/cjs/components/Splitter/Splitter.module.cjs +12 -0
  503. package/cjs/components/Splitter/Splitter.module.cjs.map +1 -0
  504. package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs +34 -0
  505. package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs.map +1 -0
  506. package/cjs/components/Spoiler/Spoiler.cjs +0 -1
  507. package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
  508. package/cjs/components/Stack/Stack.cjs +0 -1
  509. package/cjs/components/Stack/Stack.cjs.map +1 -1
  510. package/cjs/components/Stepper/Stepper.cjs +0 -1
  511. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  512. package/cjs/components/Stepper/Stepper.module.cjs.map +1 -1
  513. package/cjs/components/Stepper/StepperStep/StepperStep.cjs +0 -1
  514. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  515. package/cjs/components/Switch/Switch.cjs +0 -1
  516. package/cjs/components/Switch/Switch.cjs.map +1 -1
  517. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs +0 -1
  518. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
  519. package/cjs/components/Table/Table.cjs +0 -1
  520. package/cjs/components/Table/Table.cjs.map +1 -1
  521. package/cjs/components/Table/Table.components.cjs +0 -1
  522. package/cjs/components/Table/Table.components.cjs.map +1 -1
  523. package/cjs/components/Table/Table.module.cjs.map +1 -1
  524. package/cjs/components/Table/TableDataRenderer.cjs +0 -1
  525. package/cjs/components/Table/TableDataRenderer.cjs.map +1 -1
  526. package/cjs/components/Table/TableScrollContainer.cjs +0 -1
  527. package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
  528. package/cjs/components/TableOfContents/TableOfContents.cjs +0 -1
  529. package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
  530. package/cjs/components/Tabs/Tabs.cjs +0 -1
  531. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  532. package/cjs/components/Tabs/Tabs.module.cjs.map +1 -1
  533. package/cjs/components/Tabs/TabsList/TabsList.cjs +0 -1
  534. package/cjs/components/Tabs/TabsList/TabsList.cjs.map +1 -1
  535. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs +0 -1
  536. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  537. package/cjs/components/Tabs/TabsTab/TabsTab.cjs +0 -1
  538. package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
  539. package/cjs/components/TagsInput/TagsInput.cjs +2 -2
  540. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  541. package/cjs/components/Text/Text.cjs +4 -4
  542. package/cjs/components/Text/Text.cjs.map +1 -1
  543. package/cjs/components/Text/Text.module.cjs.map +1 -1
  544. package/cjs/components/TextInput/TextInput.cjs +0 -1
  545. package/cjs/components/TextInput/TextInput.cjs.map +1 -1
  546. package/cjs/components/Textarea/Textarea.cjs +3 -2
  547. package/cjs/components/Textarea/Textarea.cjs.map +1 -1
  548. package/cjs/components/ThemeIcon/ThemeIcon.cjs +0 -1
  549. package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
  550. package/cjs/components/Timeline/Timeline.cjs +0 -1
  551. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  552. package/cjs/components/Timeline/Timeline.module.cjs.map +1 -1
  553. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs +0 -1
  554. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  555. package/cjs/components/Title/Title.cjs +0 -1
  556. package/cjs/components/Title/Title.cjs.map +1 -1
  557. package/cjs/components/Tooltip/Tooltip.cjs +7 -0
  558. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  559. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs +0 -1
  560. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  561. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs +0 -1
  562. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
  563. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs +0 -1
  564. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
  565. package/cjs/components/Tooltip/use-tooltip.cjs +6 -3
  566. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  567. package/cjs/components/Transition/Transition.cjs +0 -1
  568. package/cjs/components/Transition/Transition.cjs.map +1 -1
  569. package/cjs/components/Tree/FlatTreeNode.cjs +13 -5
  570. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
  571. package/cjs/components/Tree/Tree.cjs +0 -1
  572. package/cjs/components/Tree/Tree.cjs.map +1 -1
  573. package/cjs/components/Tree/Tree.module.cjs +3 -1
  574. package/cjs/components/Tree/Tree.module.cjs.map +1 -1
  575. package/cjs/components/Tree/TreeNode.cjs +6 -2
  576. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  577. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs +9 -4
  578. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs.map +1 -1
  579. package/cjs/components/Tree/use-tree-node-drag-drop.cjs +13 -5
  580. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
  581. package/cjs/components/Tree/use-tree.cjs +0 -1
  582. package/cjs/components/Tree/use-tree.cjs.map +1 -1
  583. package/cjs/components/TreeSelect/TreeSelect.cjs +0 -1
  584. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  585. package/cjs/components/TreeSelect/TreeSelectOption.cjs +0 -1
  586. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -1
  587. package/cjs/components/Typography/Typography.cjs +0 -1
  588. package/cjs/components/Typography/Typography.cjs.map +1 -1
  589. package/cjs/components/Typography/Typography.module.cjs.map +1 -1
  590. package/cjs/components/UnstyledButton/UnstyledButton.cjs +0 -1
  591. package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
  592. package/cjs/components/UnstyledButton/UnstyledButton.module.cjs.map +1 -1
  593. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs +0 -1
  594. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  595. package/cjs/core/Box/use-random-classname/use-random-classname.cjs +0 -1
  596. package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
  597. package/cjs/core/DirectionProvider/DirectionProvider.cjs +0 -1
  598. package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
  599. package/cjs/core/InlineStyles/InlineStyles.cjs +0 -1
  600. package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
  601. package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs +0 -1
  602. package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs.map +1 -1
  603. package/cjs/core/MantineProvider/Mantine.context.cjs +0 -1
  604. package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
  605. package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs +0 -1
  606. package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs.map +1 -1
  607. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs +0 -1
  608. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
  609. package/cjs/core/MantineProvider/MantineProvider.cjs +0 -1
  610. package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
  611. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs +0 -1
  612. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
  613. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs +0 -1
  614. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
  615. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs +0 -1
  616. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
  617. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs +0 -1
  618. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
  619. package/cjs/core/MantineProvider/use-matches/use-matches.cjs +0 -1
  620. package/cjs/core/MantineProvider/use-matches/use-matches.cjs.map +1 -1
  621. package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs +0 -1
  622. package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs.map +1 -1
  623. package/cjs/core/factory/factory.cjs +0 -1
  624. package/cjs/core/factory/factory.cjs.map +1 -1
  625. package/cjs/core/factory/polymorphic-factory.cjs +0 -1
  626. package/cjs/core/factory/polymorphic-factory.cjs.map +1 -1
  627. package/cjs/core/utils/create-safe-context/create-safe-context.cjs +0 -1
  628. package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
  629. package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs +0 -1
  630. package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs.map +1 -1
  631. package/cjs/core/utils/get-single-element-child/get-single-element-child.cjs +0 -1
  632. package/cjs/core/utils/get-single-element-child/get-single-element-child.cjs.map +1 -1
  633. package/cjs/core/utils/is-element/is-element.cjs +0 -1
  634. package/cjs/core/utils/is-element/is-element.cjs.map +1 -1
  635. package/cjs/core/utils/use-hovered/use-hovered.cjs +0 -1
  636. package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
  637. package/cjs/index.cjs +25 -2
  638. package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs +0 -1
  639. package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs.map +1 -1
  640. package/cjs/utils/Floating/FloatingArrow/get-arrow-position-styles.cjs +59 -0
  641. package/cjs/utils/Floating/FloatingArrow/get-arrow-position-styles.cjs.map +1 -1
  642. package/cjs/utils/Floating/create-context-menu-handlers.cjs +38 -0
  643. package/cjs/utils/Floating/create-context-menu-handlers.cjs.map +1 -0
  644. package/cjs/utils/Floating/use-delayed-hover.cjs +0 -1
  645. package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
  646. package/cjs/utils/InlineInput/InlineInput.cjs +0 -1
  647. package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
  648. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs +0 -1
  649. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
  650. package/esm/components/Autocomplete/Autocomplete.mjs +2 -1
  651. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  652. package/esm/components/Blockquote/Blockquote.mjs +4 -3
  653. package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
  654. package/esm/components/Blockquote/Blockquote.module.mjs.map +1 -1
  655. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  656. package/esm/components/Combobox/Combobox.context.mjs.map +1 -1
  657. package/esm/components/Combobox/Combobox.mjs +26 -3
  658. package/esm/components/Combobox/Combobox.mjs.map +1 -1
  659. package/esm/components/Combobox/Combobox.module.mjs.map +1 -1
  660. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.mjs +1 -0
  661. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.mjs.map +1 -1
  662. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs +4 -2
  663. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  664. package/esm/components/Input/Input.mjs +11 -2
  665. package/esm/components/Input/Input.mjs.map +1 -1
  666. package/esm/components/Input/Input.module.mjs +1 -0
  667. package/esm/components/Input/Input.module.mjs.map +1 -1
  668. package/esm/components/Menu/Menu.context.mjs.map +1 -1
  669. package/esm/components/Menu/Menu.mjs +37 -3
  670. package/esm/components/Menu/Menu.mjs.map +1 -1
  671. package/esm/components/Menu/Menu.module.mjs +2 -0
  672. package/esm/components/Menu/Menu.module.mjs.map +1 -1
  673. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.mjs +8 -0
  674. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.mjs.map +1 -0
  675. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs +30 -0
  676. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs.map +1 -0
  677. package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs +52 -0
  678. package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs.map +1 -0
  679. package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs +27 -0
  680. package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs.map +1 -0
  681. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs +9 -1
  682. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
  683. package/esm/components/Menu/MenuItem/MenuItem.mjs +18 -1
  684. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  685. package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.context.mjs +8 -0
  686. package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.context.mjs.map +1 -0
  687. package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.mjs +27 -0
  688. package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.mjs.map +1 -0
  689. package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs +46 -0
  690. package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs.map +1 -0
  691. package/esm/components/Menu/MenuSearch/MenuSearch.mjs +115 -0
  692. package/esm/components/Menu/MenuSearch/MenuSearch.mjs.map +1 -0
  693. package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs +114 -0
  694. package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs.map +1 -0
  695. package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs +13 -1
  696. package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs.map +1 -1
  697. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs +18 -1
  698. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  699. package/esm/components/Menu/use-menu-type-ahead.mjs +72 -0
  700. package/esm/components/Menu/use-menu-type-ahead.mjs.map +1 -0
  701. package/esm/components/MultiSelect/MultiSelect.mjs +2 -1
  702. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  703. package/esm/components/OverflowList/OverflowList.mjs +69 -10
  704. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  705. package/esm/components/Pagination/Pagination.context.mjs.map +1 -1
  706. package/esm/components/Pagination/Pagination.mjs +15 -3
  707. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  708. package/esm/components/Pagination/Pagination.module.mjs +3 -1
  709. package/esm/components/Pagination/Pagination.module.mjs.map +1 -1
  710. package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs +32 -0
  711. package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs.map +1 -0
  712. package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs +3 -1
  713. package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs.map +1 -1
  714. package/esm/components/Popover/Popover.mjs +5 -9
  715. package/esm/components/Popover/Popover.mjs.map +1 -1
  716. package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs +27 -0
  717. package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs.map +1 -0
  718. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs +8 -0
  719. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
  720. package/esm/components/Popover/use-popover.mjs +53 -20
  721. package/esm/components/Popover/use-popover.mjs.map +1 -1
  722. package/esm/components/Radio/Radio.mjs +1 -1
  723. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs +2 -2
  724. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
  725. package/esm/components/Select/Select.mjs +2 -1
  726. package/esm/components/Select/Select.mjs.map +1 -1
  727. package/esm/components/Splitter/GripIcon.mjs +52 -0
  728. package/esm/components/Splitter/GripIcon.mjs.map +1 -0
  729. package/esm/components/Splitter/Splitter.context.mjs +8 -0
  730. package/esm/components/Splitter/Splitter.context.mjs.map +1 -0
  731. package/esm/components/Splitter/Splitter.mjs +111 -0
  732. package/esm/components/Splitter/Splitter.mjs.map +1 -0
  733. package/esm/components/Splitter/Splitter.module.mjs +12 -0
  734. package/esm/components/Splitter/Splitter.module.mjs.map +1 -0
  735. package/esm/components/Splitter/SplitterPane/SplitterPane.mjs +34 -0
  736. package/esm/components/Splitter/SplitterPane/SplitterPane.mjs.map +1 -0
  737. package/esm/components/Stepper/Stepper.module.mjs.map +1 -1
  738. package/esm/components/Table/Table.module.mjs.map +1 -1
  739. package/esm/components/Tabs/Tabs.module.mjs.map +1 -1
  740. package/esm/components/TagsInput/TagsInput.mjs +2 -1
  741. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  742. package/esm/components/Text/Text.mjs +4 -3
  743. package/esm/components/Text/Text.mjs.map +1 -1
  744. package/esm/components/Text/Text.module.mjs.map +1 -1
  745. package/esm/components/Textarea/Textarea.mjs +3 -1
  746. package/esm/components/Textarea/Textarea.mjs.map +1 -1
  747. package/esm/components/Timeline/Timeline.module.mjs.map +1 -1
  748. package/esm/components/Tooltip/Tooltip.mjs +7 -0
  749. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  750. package/esm/components/Tooltip/use-tooltip.mjs +8 -4
  751. package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
  752. package/esm/components/Tree/FlatTreeNode.mjs +14 -5
  753. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
  754. package/esm/components/Tree/Tree.mjs.map +1 -1
  755. package/esm/components/Tree/Tree.module.mjs +3 -1
  756. package/esm/components/Tree/Tree.module.mjs.map +1 -1
  757. package/esm/components/Tree/TreeNode.mjs +6 -1
  758. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  759. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs +9 -4
  760. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs.map +1 -1
  761. package/esm/components/Tree/use-tree-node-drag-drop.mjs +13 -4
  762. package/esm/components/Tree/use-tree-node-drag-drop.mjs.map +1 -1
  763. package/esm/components/Typography/Typography.module.mjs.map +1 -1
  764. package/esm/components/UnstyledButton/UnstyledButton.module.mjs.map +1 -1
  765. package/esm/index.mjs +14 -2
  766. package/esm/utils/Floating/FloatingArrow/get-arrow-position-styles.mjs +59 -1
  767. package/esm/utils/Floating/FloatingArrow/get-arrow-position-styles.mjs.map +1 -1
  768. package/esm/utils/Floating/create-context-menu-handlers.mjs +38 -0
  769. package/esm/utils/Floating/create-context-menu-handlers.mjs.map +1 -0
  770. package/lib/components/Blockquote/Blockquote.d.ts +3 -1
  771. package/lib/components/Checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +1 -1
  772. package/lib/components/Combobox/Combobox.context.d.ts +1 -0
  773. package/lib/components/Combobox/Combobox.d.ts +2 -0
  774. package/lib/components/Combobox/Combobox.types.d.ts +2 -0
  775. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +3 -1
  776. package/lib/components/Input/Input.d.ts +5 -1
  777. package/lib/components/MaskInput/use-mask-input-props.d.ts +3 -0
  778. package/lib/components/Menu/Menu.context.d.ts +5 -0
  779. package/lib/components/Menu/Menu.d.ts +41 -1
  780. package/lib/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.d.ts +5 -0
  781. package/lib/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.d.ts +14 -0
  782. package/lib/components/Menu/MenuCheckboxItem/MenuCheckboxItem.d.ts +37 -0
  783. package/lib/components/Menu/MenuContextMenu/MenuContextMenu.d.ts +10 -0
  784. package/lib/components/Menu/MenuItem/MenuItem.d.ts +1 -1
  785. package/lib/components/Menu/MenuRadioGroup/MenuRadioGroup.context.d.ts +5 -0
  786. package/lib/components/Menu/MenuRadioGroup/MenuRadioGroup.d.ts +14 -0
  787. package/lib/components/Menu/MenuRadioItem/MenuRadioItem.d.ts +35 -0
  788. package/lib/components/Menu/MenuSearch/MenuSearch.d.ts +19 -0
  789. package/lib/components/Menu/MenuSelectableItem/MenuSelectableItem.d.ts +20 -0
  790. package/lib/components/Menu/MenuSubItem/MenuSubItem.d.ts +1 -1
  791. package/lib/components/Menu/index.d.ts +13 -1
  792. package/lib/components/Menu/use-menu-type-ahead.d.ts +7 -0
  793. package/lib/components/OverflowList/OverflowList.d.ts +7 -2
  794. package/lib/components/Pagination/Pagination.context.d.ts +1 -0
  795. package/lib/components/Pagination/Pagination.d.ts +8 -0
  796. package/lib/components/Pagination/PaginationLabel/PaginationLabel.d.ts +22 -0
  797. package/lib/components/Pagination/PaginationRoot/PaginationRoot.d.ts +3 -1
  798. package/lib/components/Pagination/index.d.ts +3 -1
  799. package/lib/components/Popover/Popover.d.ts +6 -1
  800. package/lib/components/Popover/PopoverContextMenu/PopoverContextMenu.d.ts +10 -0
  801. package/lib/components/Popover/index.d.ts +3 -1
  802. package/lib/components/Popover/use-popover.d.ts +1 -3
  803. package/lib/components/Radio/RadioIndicator/RadioIndicator.d.ts +1 -1
  804. package/lib/components/Splitter/GripIcon.d.ts +3 -0
  805. package/lib/components/Splitter/Splitter.context.d.ts +9 -0
  806. package/lib/components/Splitter/Splitter.d.ts +57 -0
  807. package/lib/components/Splitter/SplitterPane/SplitterPane.d.ts +30 -0
  808. package/lib/components/Splitter/index.d.ts +18 -0
  809. package/lib/components/Text/Text.d.ts +3 -1
  810. package/lib/components/Textarea/Textarea.d.ts +4 -0
  811. package/lib/components/Tree/FlatTreeNode.d.ts +5 -1
  812. package/lib/components/Tree/Tree.d.ts +2 -0
  813. package/lib/components/Tree/flatten-tree-data/flatten-tree-data.d.ts +10 -0
  814. package/lib/components/Tree/index.d.ts +1 -1
  815. package/lib/components/Tree/use-tree-node-drag-drop.d.ts +2 -1
  816. package/lib/components/index.d.ts +1 -0
  817. package/lib/utils/Floating/FloatingArrow/get-arrow-position-styles.d.ts +4 -0
  818. package/lib/utils/Floating/create-context-menu-handlers.d.ts +18 -0
  819. package/lib/utils/Floating/index.d.ts +1 -0
  820. package/lib/utils/Floating/types.d.ts +1 -1
  821. package/package.json +2 -2
  822. package/styles/Blockquote.css +1 -0
  823. package/styles/Blockquote.layer.css +1 -0
  824. package/styles/Combobox.css +8 -0
  825. package/styles/Combobox.layer.css +8 -0
  826. package/styles/Input.css +25 -4
  827. package/styles/Input.layer.css +25 -4
  828. package/styles/Menu.css +41 -2
  829. package/styles/Menu.layer.css +41 -2
  830. package/styles/Pagination.css +33 -0
  831. package/styles/Pagination.layer.css +33 -0
  832. package/styles/Splitter.css +76 -0
  833. package/styles/Splitter.layer.css +77 -0
  834. package/styles/Stepper.css +1 -5
  835. package/styles/Stepper.layer.css +1 -5
  836. package/styles/Table.css +1 -5
  837. package/styles/Table.layer.css +1 -5
  838. package/styles/Tabs.css +13 -28
  839. package/styles/Tabs.layer.css +13 -28
  840. package/styles/Text.css +3 -2
  841. package/styles/Text.layer.css +3 -2
  842. package/styles/Timeline.css +14 -42
  843. package/styles/Timeline.layer.css +14 -42
  844. package/styles/Tree.css +55 -11
  845. package/styles/Tree.layer.css +55 -11
  846. package/styles/Typography.css +1 -1
  847. package/styles/Typography.layer.css +1 -1
  848. package/styles/UnstyledButton.css +1 -5
  849. package/styles/UnstyledButton.layer.css +1 -5
  850. package/styles.css +274 -105
  851. package/styles.layer.css +274 -105
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.module.mjs","names":[],"sources":["../../../src/components/Tree/Tree.module.css"],"sourcesContent":[".root {\n --level-offset: var(--mantine-spacing-lg);\n --tree-line-width: rem(1px);\n --tree-line-color: var(--mantine-color-default-border);\n margin: 0;\n padding: 0;\n user-select: none;\n}\n\n.subtree {\n margin: 0;\n padding: 0;\n}\n\n.node {\n cursor: pointer;\n list-style: none;\n margin: 0;\n padding: 0;\n outline: 0;\n\n &:focus-visible {\n > .label {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n }\n}\n\n.label {\n position: relative;\n padding-inline-start: var(--label-offset);\n\n &:where([data-selected]) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n &:where([data-dragging]) {\n opacity: 0.4;\n }\n\n &:where([data-drag-over='before'])::before {\n content: '';\n position: absolute;\n top: -1px;\n inset-inline-start: var(--label-offset, 0);\n inset-inline-end: 0;\n height: 2px;\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='after'])::after {\n content: '';\n position: absolute;\n bottom: -1px;\n inset-inline-start: var(--label-offset, 0);\n inset-inline-end: 0;\n height: 2px;\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='inside']) {\n background-color: var(--mantine-primary-color-light);\n }\n}\n\n:where([data-with-lines]) {\n .node {\n position: relative;\n }\n\n .subtree > .node {\n &::before {\n content: '';\n position: absolute;\n top: rem(12px);\n inset-inline-start: calc(var(--label-offset) - var(--level-offset) / 2);\n width: calc(var(--level-offset) / 2);\n height: 0;\n border-top: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n inset-inline-start: calc(var(--label-offset) - var(--level-offset) / 2);\n width: 0;\n border-inline-start: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n }\n\n &:last-child::after {\n bottom: auto;\n height: rem(12px);\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Tree.module.mjs","names":[],"sources":["../../../src/components/Tree/Tree.module.css"],"sourcesContent":[":where([data-tree-root]) {\n --level-offset: var(--mantine-spacing-lg);\n --tree-line-width: rem(1px);\n --tree-line-color: var(--mantine-color-default-border);\n}\n\n.root {\n margin: 0;\n padding: 0;\n user-select: none;\n}\n\n.subtree {\n margin: 0;\n padding: 0;\n}\n\n.node {\n cursor: pointer;\n list-style: none;\n margin: 0;\n padding: 0;\n outline: 0;\n\n &:focus-visible {\n > .label {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n }\n}\n\n.label {\n position: relative;\n padding-inline-start: var(--label-offset);\n\n &:where([data-selected]) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n &:where([data-dragging]) {\n opacity: 0.4;\n }\n\n &:where([data-drag-over='before'])::before {\n content: '';\n position: absolute;\n top: -1px;\n inset-inline-start: var(--label-offset, 0);\n inset-inline-end: 0;\n height: 2px;\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='after'])::after {\n content: '';\n position: absolute;\n bottom: -1px;\n inset-inline-start: var(--label-offset, 0);\n inset-inline-end: 0;\n height: 2px;\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='inside']) {\n background-color: var(--mantine-primary-color-light);\n }\n}\n\n:where([data-with-lines]) {\n .node {\n position: relative;\n }\n\n /* Horizontal connector at the node's own level — applies to both nested and flat layouts */\n .node:not([data-level='1'])::before {\n content: '';\n position: absolute;\n top: rem(12px);\n inset-inline-start: calc(var(--label-offset) - var(--level-offset) / 2);\n width: calc(var(--level-offset) / 2);\n height: 0;\n border-top: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n z-index: 1;\n }\n\n /* Vertical line for nested layout (regular Tree): the line spans the parent <li>'s\n full height — including descendants — so ancestor columns stay continuous. */\n .subtree > .node {\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n inset-inline-start: calc(var(--label-offset) - var(--level-offset) / 2);\n width: 0;\n border-inline-start: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n z-index: 1;\n }\n\n &:last-child::after {\n bottom: auto;\n height: rem(12px);\n }\n }\n\n .node:where([data-dragging]) {\n &::before,\n &::after {\n display: none;\n }\n\n .flatLine {\n display: none;\n }\n }\n}\n\n/* Vertical line markers rendered as DOM children by `FlatTreeNode` for flat layouts\n (e.g. virtualized trees) where ::after on a single node can't span ancestor rows.\n Each marker is positioned at column `--flat-line-column` and is only visible\n inside a `[data-with-lines]` tree. */\n.flatLine {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n inset-inline-start: calc((var(--flat-line-column) - 1.5) * var(--level-offset));\n border-inline-start: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n z-index: 1;\n display: none;\n}\n\n:where([data-with-lines]) .flatLine {\n display: block;\n}\n\n.flatLineClosing {\n bottom: auto;\n height: rem(12px);\n}\n"],"mappings":""}
@@ -46,6 +46,7 @@ function TreeNode({ node, getStyles, rootIndex, controller, expandOnClick, selec
46
46
  const { elementProps: dragElementProps, dragHandleProps } = useTreeNodeDragDrop({
47
47
  nodeValue: node.value,
48
48
  hasChildren,
49
+ isExpanded,
49
50
  data,
50
51
  onDragDrop,
51
52
  dragStateRef,
@@ -128,6 +129,7 @@ function TreeNode({ node, getStyles, rootIndex, controller, expandOnClick, selec
128
129
  node,
129
130
  level,
130
131
  selected,
132
+ isRoot: level === 1,
131
133
  tree: controller,
132
134
  expanded: isExpanded,
133
135
  hasChildren,
@@ -148,7 +150,10 @@ function TreeNode({ node, getStyles, rootIndex, controller, expandOnClick, selec
148
150
  ...getStyles("node", { style: { "--label-offset": `calc(var(--level-offset) * ${level})` } }),
149
151
  children: /* @__PURE__ */ jsx("div", {
150
152
  ...getStyles("label"),
151
- children: /* @__PURE__ */ jsx(Loader, { size: 16 })
153
+ children: /* @__PURE__ */ jsx(Loader, {
154
+ size: 16,
155
+ style: { marginInlineStart: 4 }
156
+ })
152
157
  })
153
158
  })
154
159
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.mjs","names":[],"sources":["../../../src/components/Tree/TreeNode.tsx"],"sourcesContent":["import { Activity, useRef } from 'react';\nimport { Box, findElementAncestor, GetStylesApi } from '../../core';\nimport { Loader } from '../Loader';\nimport type { TreeDragDropPayload } from './move-tree-node/move-tree-node';\nimport type { RenderNode, TreeDragState, TreeFactory, TreeNodeData } from './Tree';\nimport type { TreeController } from './use-tree';\nimport { TreeAllowDrop, useTreeNodeDragDrop } from './use-tree-node-drag-drop';\n\nfunction getValuesRange(anchor: string | null, value: string | undefined, flatValues: string[]) {\n if (!anchor || !value) {\n return [];\n }\n\n const anchorIndex = flatValues.indexOf(anchor);\n const valueIndex = flatValues.indexOf(value);\n const start = Math.min(anchorIndex, valueIndex);\n const end = Math.max(anchorIndex, valueIndex);\n\n return flatValues.slice(start, end + 1);\n}\n\ninterface TreeNodeProps {\n node: TreeNodeData;\n getStyles: GetStylesApi<TreeFactory>;\n rootIndex: number | undefined;\n controller: TreeController;\n expandOnClick: boolean | undefined;\n flatValues: string[];\n isSubtree?: boolean;\n level?: number;\n renderNode: RenderNode | undefined;\n selectOnClick: boolean | undefined;\n allowRangeSelection: boolean | undefined;\n expandOnSpace: boolean | undefined;\n checkOnSpace: boolean | undefined;\n keepMounted: boolean | undefined;\n onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined;\n allowDrop: TreeAllowDrop | undefined;\n withDragHandle: boolean | undefined;\n dragStateRef: React.RefObject<TreeDragState>;\n data: TreeNodeData[];\n}\n\nexport function TreeNode({\n node,\n getStyles,\n rootIndex,\n controller,\n expandOnClick,\n selectOnClick,\n isSubtree,\n level = 1,\n renderNode,\n flatValues,\n allowRangeSelection,\n expandOnSpace,\n checkOnSpace,\n keepMounted,\n onDragDrop,\n allowDrop,\n withDragHandle,\n dragStateRef,\n data,\n}: TreeNodeProps) {\n const ref = useRef<HTMLLIElement>(null);\n const hasLoadedChildren = Array.isArray(node.children);\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;\n const hasChildren = hasLoadedChildren || hasAsyncChildren;\n const isLoading = controller.isNodeLoading(node.value);\n const loadError = controller.getNodeLoadError(node.value);\n const isExpanded = controller.expandedState[node.value] || false;\n\n const nested = (node.children || []).map((child) => (\n <TreeNode\n key={child.value}\n node={child}\n flatValues={flatValues}\n getStyles={getStyles}\n rootIndex={undefined}\n level={level + 1}\n controller={controller}\n expandOnClick={expandOnClick}\n isSubtree\n renderNode={renderNode}\n selectOnClick={selectOnClick}\n allowRangeSelection={allowRangeSelection}\n expandOnSpace={expandOnSpace}\n checkOnSpace={checkOnSpace}\n keepMounted={keepMounted}\n onDragDrop={onDragDrop}\n allowDrop={allowDrop}\n withDragHandle={withDragHandle}\n dragStateRef={dragStateRef}\n data={data}\n />\n ));\n\n const { elementProps: dragElementProps, dragHandleProps } = useTreeNodeDragDrop({\n nodeValue: node.value,\n hasChildren,\n data,\n onDragDrop,\n dragStateRef,\n allowDrop,\n withDragHandle,\n });\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.nativeEvent.code === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n\n if (isExpanded) {\n event.currentTarget.querySelector<HTMLLIElement>('[role=treeitem]')?.focus();\n } else {\n controller.expand(node.value);\n }\n }\n\n if (event.nativeEvent.code === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n if (isExpanded && hasChildren) {\n controller.collapse(node.value);\n } else if (isSubtree) {\n findElementAncestor(event.currentTarget as HTMLElement, '[role=treeitem]')?.focus();\n }\n }\n\n if (event.nativeEvent.code === 'ArrowDown' || event.nativeEvent.code === 'ArrowUp') {\n const root = findElementAncestor(event.currentTarget as HTMLElement, '[data-tree-root]');\n\n if (!root) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n const nodes = Array.from(root.querySelectorAll<HTMLLIElement>('[role=treeitem]')).filter(\n (treeNode) => treeNode.style.display !== 'none'\n );\n const index = nodes.indexOf(event.currentTarget as HTMLLIElement);\n\n if (index === -1) {\n return;\n }\n\n const nextIndex = event.nativeEvent.code === 'ArrowDown' ? index + 1 : index - 1;\n nodes[nextIndex]?.focus();\n\n if (event.shiftKey) {\n const selectNode = nodes[nextIndex];\n\n if (selectNode) {\n controller.setSelectedState(\n getValuesRange(controller.anchorNode, selectNode.dataset.value, flatValues)\n );\n }\n }\n }\n\n if (event.nativeEvent.code === 'Space') {\n if (expandOnSpace) {\n event.stopPropagation();\n event.preventDefault();\n controller.toggleExpanded(node.value);\n }\n\n if (checkOnSpace) {\n event.stopPropagation();\n event.preventDefault();\n controller.isNodeChecked(node.value)\n ? controller.uncheckNode(node.value)\n : controller.checkNode(node.value);\n }\n }\n };\n\n const handleNodeClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (allowRangeSelection && event.shiftKey && controller.anchorNode) {\n controller.setSelectedState(getValuesRange(controller.anchorNode, node.value, flatValues));\n ref.current?.focus();\n } else {\n if (expandOnClick) {\n controller.toggleExpanded(node.value);\n }\n\n selectOnClick && controller.select(node.value);\n ref.current?.focus();\n }\n };\n\n const selected = controller.selectedState.includes(node.value);\n const elementProps = {\n ...getStyles('label'),\n onClick: handleNodeClick,\n 'data-selected': selected || undefined,\n 'data-value': node.value,\n ...dragElementProps,\n };\n\n const withLoadingIndicator = isExpanded && isLoading && nested.length === 0;\n\n return (\n <li\n {...getStyles('node', {\n style: { '--label-offset': `calc(var(--level-offset) * ${level - 1})` },\n })}\n role=\"treeitem\"\n aria-selected={selected}\n data-value={node.value}\n data-selected={selected || undefined}\n data-level={level}\n tabIndex={rootIndex === 0 ? 0 : -1}\n onKeyDown={handleKeyDown}\n ref={ref}\n >\n {typeof renderNode === 'function' ? (\n renderNode({\n node,\n level,\n selected,\n tree: controller,\n expanded: isExpanded,\n hasChildren,\n isLoading,\n loadError,\n elementProps,\n dragHandleProps,\n })\n ) : (\n <div {...elementProps}>{node.label}</div>\n )}\n\n {withLoadingIndicator && (\n <Box component=\"ul\" role=\"group\" {...getStyles('subtree')} data-level={level}>\n <li\n {...getStyles('node', {\n style: { '--label-offset': `calc(var(--level-offset) * ${level})` },\n })}\n >\n <div {...getStyles('label')}>\n <Loader size={16} />\n </div>\n </li>\n </Box>\n )}\n\n {keepMounted && nested.length > 0 ? (\n <Activity mode={isExpanded ? 'visible' : 'hidden'}>\n <Box component=\"ul\" role=\"group\" {...getStyles('subtree')} data-level={level}>\n {nested}\n </Box>\n </Activity>\n ) : (\n isExpanded &&\n nested.length > 0 && (\n <Box component=\"ul\" role=\"group\" {...getStyles('subtree')} data-level={level}>\n {nested}\n </Box>\n )\n )}\n </li>\n );\n}\n\nTreeNode.displayName = '@mantine/core/TreeNode';\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeNode.mjs","names":[],"sources":["../../../src/components/Tree/TreeNode.tsx"],"sourcesContent":["import { Activity, useRef } from 'react';\nimport { Box, findElementAncestor, GetStylesApi } from '../../core';\nimport { Loader } from '../Loader';\nimport type { TreeDragDropPayload } from './move-tree-node/move-tree-node';\nimport type { RenderNode, TreeDragState, TreeFactory, TreeNodeData } from './Tree';\nimport type { TreeController } from './use-tree';\nimport { TreeAllowDrop, useTreeNodeDragDrop } from './use-tree-node-drag-drop';\n\nfunction getValuesRange(anchor: string | null, value: string | undefined, flatValues: string[]) {\n if (!anchor || !value) {\n return [];\n }\n\n const anchorIndex = flatValues.indexOf(anchor);\n const valueIndex = flatValues.indexOf(value);\n const start = Math.min(anchorIndex, valueIndex);\n const end = Math.max(anchorIndex, valueIndex);\n\n return flatValues.slice(start, end + 1);\n}\n\ninterface TreeNodeProps {\n node: TreeNodeData;\n getStyles: GetStylesApi<TreeFactory>;\n rootIndex: number | undefined;\n controller: TreeController;\n expandOnClick: boolean | undefined;\n flatValues: string[];\n isSubtree?: boolean;\n level?: number;\n renderNode: RenderNode | undefined;\n selectOnClick: boolean | undefined;\n allowRangeSelection: boolean | undefined;\n expandOnSpace: boolean | undefined;\n checkOnSpace: boolean | undefined;\n keepMounted: boolean | undefined;\n onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined;\n allowDrop: TreeAllowDrop | undefined;\n withDragHandle: boolean | undefined;\n dragStateRef: React.RefObject<TreeDragState>;\n data: TreeNodeData[];\n}\n\nexport function TreeNode({\n node,\n getStyles,\n rootIndex,\n controller,\n expandOnClick,\n selectOnClick,\n isSubtree,\n level = 1,\n renderNode,\n flatValues,\n allowRangeSelection,\n expandOnSpace,\n checkOnSpace,\n keepMounted,\n onDragDrop,\n allowDrop,\n withDragHandle,\n dragStateRef,\n data,\n}: TreeNodeProps) {\n const ref = useRef<HTMLLIElement>(null);\n const hasLoadedChildren = Array.isArray(node.children);\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;\n const hasChildren = hasLoadedChildren || hasAsyncChildren;\n const isLoading = controller.isNodeLoading(node.value);\n const loadError = controller.getNodeLoadError(node.value);\n const isExpanded = controller.expandedState[node.value] || false;\n\n const nested = (node.children || []).map((child) => (\n <TreeNode\n key={child.value}\n node={child}\n flatValues={flatValues}\n getStyles={getStyles}\n rootIndex={undefined}\n level={level + 1}\n controller={controller}\n expandOnClick={expandOnClick}\n isSubtree\n renderNode={renderNode}\n selectOnClick={selectOnClick}\n allowRangeSelection={allowRangeSelection}\n expandOnSpace={expandOnSpace}\n checkOnSpace={checkOnSpace}\n keepMounted={keepMounted}\n onDragDrop={onDragDrop}\n allowDrop={allowDrop}\n withDragHandle={withDragHandle}\n dragStateRef={dragStateRef}\n data={data}\n />\n ));\n\n const { elementProps: dragElementProps, dragHandleProps } = useTreeNodeDragDrop({\n nodeValue: node.value,\n hasChildren,\n isExpanded,\n data,\n onDragDrop,\n dragStateRef,\n allowDrop,\n withDragHandle,\n });\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.nativeEvent.code === 'ArrowRight') {\n event.stopPropagation();\n event.preventDefault();\n\n if (isExpanded) {\n event.currentTarget.querySelector<HTMLLIElement>('[role=treeitem]')?.focus();\n } else {\n controller.expand(node.value);\n }\n }\n\n if (event.nativeEvent.code === 'ArrowLeft') {\n event.stopPropagation();\n event.preventDefault();\n if (isExpanded && hasChildren) {\n controller.collapse(node.value);\n } else if (isSubtree) {\n findElementAncestor(event.currentTarget as HTMLElement, '[role=treeitem]')?.focus();\n }\n }\n\n if (event.nativeEvent.code === 'ArrowDown' || event.nativeEvent.code === 'ArrowUp') {\n const root = findElementAncestor(event.currentTarget as HTMLElement, '[data-tree-root]');\n\n if (!root) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n const nodes = Array.from(root.querySelectorAll<HTMLLIElement>('[role=treeitem]')).filter(\n (treeNode) => treeNode.style.display !== 'none'\n );\n const index = nodes.indexOf(event.currentTarget as HTMLLIElement);\n\n if (index === -1) {\n return;\n }\n\n const nextIndex = event.nativeEvent.code === 'ArrowDown' ? index + 1 : index - 1;\n nodes[nextIndex]?.focus();\n\n if (event.shiftKey) {\n const selectNode = nodes[nextIndex];\n\n if (selectNode) {\n controller.setSelectedState(\n getValuesRange(controller.anchorNode, selectNode.dataset.value, flatValues)\n );\n }\n }\n }\n\n if (event.nativeEvent.code === 'Space') {\n if (expandOnSpace) {\n event.stopPropagation();\n event.preventDefault();\n controller.toggleExpanded(node.value);\n }\n\n if (checkOnSpace) {\n event.stopPropagation();\n event.preventDefault();\n controller.isNodeChecked(node.value)\n ? controller.uncheckNode(node.value)\n : controller.checkNode(node.value);\n }\n }\n };\n\n const handleNodeClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (allowRangeSelection && event.shiftKey && controller.anchorNode) {\n controller.setSelectedState(getValuesRange(controller.anchorNode, node.value, flatValues));\n ref.current?.focus();\n } else {\n if (expandOnClick) {\n controller.toggleExpanded(node.value);\n }\n\n selectOnClick && controller.select(node.value);\n ref.current?.focus();\n }\n };\n\n const selected = controller.selectedState.includes(node.value);\n const elementProps = {\n ...getStyles('label'),\n onClick: handleNodeClick,\n 'data-selected': selected || undefined,\n 'data-value': node.value,\n ...dragElementProps,\n };\n\n const withLoadingIndicator = isExpanded && isLoading && nested.length === 0;\n\n return (\n <li\n {...getStyles('node', {\n style: { '--label-offset': `calc(var(--level-offset) * ${level - 1})` },\n })}\n role=\"treeitem\"\n aria-selected={selected}\n data-value={node.value}\n data-selected={selected || undefined}\n data-level={level}\n tabIndex={rootIndex === 0 ? 0 : -1}\n onKeyDown={handleKeyDown}\n ref={ref}\n >\n {typeof renderNode === 'function' ? (\n renderNode({\n node,\n level,\n selected,\n isRoot: level === 1,\n tree: controller,\n expanded: isExpanded,\n hasChildren,\n isLoading,\n loadError,\n elementProps,\n dragHandleProps,\n })\n ) : (\n <div {...elementProps}>{node.label}</div>\n )}\n\n {withLoadingIndicator && (\n <Box component=\"ul\" role=\"group\" {...getStyles('subtree')} data-level={level}>\n <li\n {...getStyles('node', {\n style: { '--label-offset': `calc(var(--level-offset) * ${level})` },\n })}\n >\n <div {...getStyles('label')}>\n <Loader size={16} style={{ marginInlineStart: 4 }} />\n </div>\n </li>\n </Box>\n )}\n\n {keepMounted && nested.length > 0 ? (\n <Activity mode={isExpanded ? 'visible' : 'hidden'}>\n <Box component=\"ul\" role=\"group\" {...getStyles('subtree')} data-level={level}>\n {nested}\n </Box>\n </Activity>\n ) : (\n isExpanded &&\n nested.length > 0 && (\n <Box component=\"ul\" role=\"group\" {...getStyles('subtree')} data-level={level}>\n {nested}\n </Box>\n )\n )}\n </li>\n );\n}\n\nTreeNode.displayName = '@mantine/core/TreeNode';\n"],"mappings":"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"}
@@ -1,25 +1,30 @@
1
1
  "use client";
2
2
  //#region packages/@mantine/core/src/components/Tree/flatten-tree-data/flatten-tree-data.ts
3
- function flattenTreeDataTo(acc, data, expandedState, parent, level) {
3
+ function flattenTreeDataTo(acc, data, expandedState, parent, level, ancestorIsLast) {
4
4
  for (let i = 0; i < data.length; i++) {
5
5
  const node = data[i];
6
+ const isLast = i === data.length - 1;
6
7
  const hasLoadedChildren = Array.isArray(node.children);
7
8
  const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;
8
9
  const hasChildren = hasLoadedChildren || hasAsyncChildren;
9
10
  const expanded = expandedState[node.value] || false;
11
+ const linesPath = [];
12
+ for (let l = 2; l <= level; l++) if (l === level) linesPath.push(isLast ? "closing" : "continuing");
13
+ else linesPath.push(ancestorIsLast[l - 1] ? "none" : "continuing");
10
14
  acc.push({
11
15
  node,
12
16
  level,
13
17
  parent,
14
18
  hasChildren,
15
- expanded
19
+ expanded,
20
+ linesPath
16
21
  });
17
- if (expanded && hasLoadedChildren) flattenTreeDataTo(acc, node.children, expandedState, node.value, level + 1);
22
+ if (expanded && hasLoadedChildren) flattenTreeDataTo(acc, node.children, expandedState, node.value, level + 1, [...ancestorIsLast, isLast]);
18
23
  }
19
24
  }
20
25
  function flattenTreeData(data, expandedState) {
21
26
  const result = [];
22
- flattenTreeDataTo(result, data, expandedState, null, 1);
27
+ flattenTreeDataTo(result, data, expandedState, null, 1, []);
23
28
  return result;
24
29
  }
25
30
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"flatten-tree-data.mjs","names":[],"sources":["../../../../src/components/Tree/flatten-tree-data/flatten-tree-data.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport type { TreeExpandedState } from '../use-tree';\n\nexport interface FlattenedTreeNodeData {\n /** Node data from tree data */\n node: TreeNodeData;\n\n /** Nesting level of the node, starts at 1 */\n level: number;\n\n /** Value of the parent node, `null` for root nodes */\n parent: string | null;\n\n /** Whether the node has children */\n hasChildren: boolean;\n\n /** Whether the node is expanded */\n expanded: boolean;\n}\n\nfunction flattenTreeDataTo(\n acc: FlattenedTreeNodeData[],\n data: TreeNodeData[],\n expandedState: TreeExpandedState,\n parent: string | null,\n level: number\n): void {\n for (let i = 0; i < data.length; i++) {\n const node = data[i];\n const hasLoadedChildren = Array.isArray(node.children);\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;\n const hasChildren = hasLoadedChildren || hasAsyncChildren;\n const expanded = expandedState[node.value] || false;\n\n acc.push({ node, level, parent, hasChildren, expanded });\n\n if (expanded && hasLoadedChildren) {\n flattenTreeDataTo(acc, node.children!, expandedState, node.value, level + 1);\n }\n }\n}\n\nexport function flattenTreeData(\n data: TreeNodeData[],\n expandedState: TreeExpandedState\n): FlattenedTreeNodeData[] {\n const result: FlattenedTreeNodeData[] = [];\n flattenTreeDataTo(result, data, expandedState, null, 1);\n return result;\n}\n"],"mappings":";;AAoBA,SAAS,kBACP,KACA,MACA,eACA,QACA,OACM;CACN,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;EAClB,MAAM,oBAAoB,MAAM,QAAQ,KAAK,QAAQ;EACrD,MAAM,mBAAmB,CAAC,CAAC,KAAK,eAAe,CAAC;EAChD,MAAM,cAAc,qBAAqB;EACzC,MAAM,WAAW,cAAc,KAAK,UAAU;EAE9C,IAAI,KAAK;GAAE;GAAM;GAAO;GAAQ;GAAa;EAAS,CAAC;EAEvD,IAAI,YAAY,mBACd,kBAAkB,KAAK,KAAK,UAAW,eAAe,KAAK,OAAO,QAAQ,CAAC;CAE/E;AACF;AAEA,SAAgB,gBACd,MACA,eACyB;CACzB,MAAM,SAAkC,CAAC;CACzC,kBAAkB,QAAQ,MAAM,eAAe,MAAM,CAAC;CACtD,OAAO;AACT"}
1
+ {"version":3,"file":"flatten-tree-data.mjs","names":[],"sources":["../../../../src/components/Tree/flatten-tree-data/flatten-tree-data.ts"],"sourcesContent":["import type { TreeNodeData } from '../Tree';\nimport type { TreeExpandedState } from '../use-tree';\n\nexport type FlatTreeLineState = 'continuing' | 'closing' | 'none';\n\nexport interface FlattenedTreeNodeData {\n /** Node data from tree data */\n node: TreeNodeData;\n\n /** Nesting level of the node, starts at 1 */\n level: number;\n\n /** Value of the parent node, `null` for root nodes */\n parent: string | null;\n\n /** Whether the node has children */\n hasChildren: boolean;\n\n /** Whether the node is expanded */\n expanded: boolean;\n\n /** For each level from 2 to this node's `level`, indicates whether a connector\n * line should be drawn at that column for this row:\n * - `'continuing'`: full vertical line passes through this row\n * - `'closing'`: line ends at this row (truncated to the connector level)\n * - `'none'`: no line at this column for this row\n *\n * Index 0 corresponds to level 2, index 1 to level 3, etc.\n * Empty for level-1 (root) nodes. */\n linesPath: FlatTreeLineState[];\n}\n\nfunction flattenTreeDataTo(\n acc: FlattenedTreeNodeData[],\n data: TreeNodeData[],\n expandedState: TreeExpandedState,\n parent: string | null,\n level: number,\n ancestorIsLast: boolean[]\n): void {\n for (let i = 0; i < data.length; i++) {\n const node = data[i];\n const isLast = i === data.length - 1;\n const hasLoadedChildren = Array.isArray(node.children);\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren;\n const hasChildren = hasLoadedChildren || hasAsyncChildren;\n const expanded = expandedState[node.value] || false;\n\n const linesPath: FlatTreeLineState[] = [];\n for (let l = 2; l <= level; l++) {\n if (l === level) {\n linesPath.push(isLast ? 'closing' : 'continuing');\n } else {\n linesPath.push(ancestorIsLast[l - 1] ? 'none' : 'continuing');\n }\n }\n\n acc.push({ node, level, parent, hasChildren, expanded, linesPath });\n\n if (expanded && hasLoadedChildren) {\n flattenTreeDataTo(acc, node.children!, expandedState, node.value, level + 1, [\n ...ancestorIsLast,\n isLast,\n ]);\n }\n }\n}\n\nexport function flattenTreeData(\n data: TreeNodeData[],\n expandedState: TreeExpandedState\n): FlattenedTreeNodeData[] {\n const result: FlattenedTreeNodeData[] = [];\n flattenTreeDataTo(result, data, expandedState, null, 1, []);\n return result;\n}\n"],"mappings":";;AAgCA,SAAS,kBACP,KACA,MACA,eACA,QACA,OACA,gBACM;CACN,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,MAAM,OAAO,KAAK;EAClB,MAAM,SAAS,MAAM,KAAK,SAAS;EACnC,MAAM,oBAAoB,MAAM,QAAQ,KAAK,QAAQ;EACrD,MAAM,mBAAmB,CAAC,CAAC,KAAK,eAAe,CAAC;EAChD,MAAM,cAAc,qBAAqB;EACzC,MAAM,WAAW,cAAc,KAAK,UAAU;EAE9C,MAAM,YAAiC,CAAC;EACxC,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,KAC1B,IAAI,MAAM,OACR,UAAU,KAAK,SAAS,YAAY,YAAY;OAEhD,UAAU,KAAK,eAAe,IAAI,KAAK,SAAS,YAAY;EAIhE,IAAI,KAAK;GAAE;GAAM;GAAO;GAAQ;GAAa;GAAU;EAAU,CAAC;EAElE,IAAI,YAAY,mBACd,kBAAkB,KAAK,KAAK,UAAW,eAAe,KAAK,OAAO,QAAQ,GAAG,CAC3E,GAAG,gBACH,MACF,CAAC;CAEL;AACF;AAEA,SAAgB,gBACd,MACA,eACyB;CACzB,MAAM,SAAkC,CAAC;CACzC,kBAAkB,QAAQ,MAAM,eAAe,MAAM,GAAG,CAAC,CAAC;CAC1D,OAAO;AACT"}
@@ -14,11 +14,15 @@ function isDescendantOf(data, ancestorValue, descendantValue) {
14
14
  }
15
15
  return check(ancestor.children);
16
16
  }
17
- function getDragDropPosition(event, element, hasChildren) {
17
+ function getDragDropPosition(event, element, hasChildren, isExpanded) {
18
18
  const rect = element.getBoundingClientRect();
19
19
  const y = event.clientY - rect.top;
20
20
  const height = rect.height;
21
21
  if (hasChildren) {
22
+ if (isExpanded) {
23
+ if (y < height * .5) return "before";
24
+ return "inside";
25
+ }
22
26
  if (y < height * .25) return "before";
23
27
  if (y > height * .75) return "after";
24
28
  return "inside";
@@ -30,7 +34,7 @@ const EMPTY_DRAG_PROPS = {
30
34
  elementProps: {},
31
35
  dragHandleProps: void 0
32
36
  };
33
- function useTreeNodeDragDrop({ nodeValue, hasChildren, data, onDragDrop, dragStateRef, allowDrop, withDragHandle }) {
37
+ function useTreeNodeDragDrop({ nodeValue, hasChildren, isExpanded, data, onDragDrop, dragStateRef, allowDrop, withDragHandle }) {
34
38
  const [isDragHandleActive, setIsDragHandleActive] = useState(false);
35
39
  useEffect(() => {
36
40
  if (!withDragHandle || !isDragHandleActive) return;
@@ -46,6 +50,8 @@ function useTreeNodeDragDrop({ nodeValue, hasChildren, data, onDragDrop, dragSta
46
50
  event.dataTransfer.setData("text/plain", nodeValue);
47
51
  dragStateRef.current.draggedValue = nodeValue;
48
52
  const target = event.currentTarget;
53
+ const treeItem = target.closest("[role=treeitem]");
54
+ if (treeItem) treeItem.setAttribute("data-dragging", "true");
49
55
  requestAnimationFrame(() => {
50
56
  target.setAttribute("data-dragging", "true");
51
57
  });
@@ -55,7 +61,7 @@ function useTreeNodeDragDrop({ nodeValue, hasChildren, data, onDragDrop, dragSta
55
61
  if (!draggedValue || draggedValue === nodeValue) return;
56
62
  if (isDescendantOf(data, draggedValue, nodeValue)) return;
57
63
  const target = event.currentTarget;
58
- const position = getDragDropPosition(event, target, hasChildren);
64
+ const position = getDragDropPosition(event, target, hasChildren, isExpanded);
59
65
  if (allowDrop && !allowDrop({
60
66
  draggedNode: draggedValue,
61
67
  targetNode: nodeValue,
@@ -101,7 +107,10 @@ function useTreeNodeDragDrop({ nodeValue, hasChildren, data, onDragDrop, dragSta
101
107
  dragStateRef.current.currentDropTarget = null;
102
108
  };
103
109
  const handleDragEnd = (event) => {
104
- event.currentTarget.removeAttribute("data-dragging");
110
+ const target = event.currentTarget;
111
+ target.removeAttribute("data-dragging");
112
+ const treeItem = target.closest("[role=treeitem]");
113
+ if (treeItem) treeItem.removeAttribute("data-dragging");
105
114
  const prevTarget = dragStateRef.current.currentDropTarget;
106
115
  if (prevTarget) prevTarget.removeAttribute("data-drag-over");
107
116
  dragStateRef.current.draggedValue = null;
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree-node-drag-drop.mjs","names":[],"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 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): TreeDragDropPosition {\n const rect = element.getBoundingClientRect();\n const y = event.clientY - rect.top;\n const height = rect.height;\n\n if (hasChildren) {\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 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 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);\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 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.mjs","names":[],"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 +1 @@
1
- {"version":3,"file":"Typography.module.mjs","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: left;\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.mjs","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 +1 @@
1
- {"version":3,"file":"UnstyledButton.module.mjs","names":[],"sources":["../../../src/components/UnstyledButton/UnstyledButton.module.css"],"sourcesContent":[".root {\n background-color: transparent;\n cursor: pointer;\n border: 0;\n padding: 0;\n appearance: none;\n font-size: var(--mantine-font-size-md);\n text-align: left;\n text-decoration: none;\n color: inherit;\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n\n @mixin where-rtl {\n text-align: right;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"UnstyledButton.module.mjs","names":[],"sources":["../../../src/components/UnstyledButton/UnstyledButton.module.css"],"sourcesContent":[".root {\n background-color: transparent;\n cursor: pointer;\n border: 0;\n padding: 0;\n appearance: none;\n font-size: var(--mantine-font-size-md);\n text-align: start;\n text-decoration: none;\n color: inherit;\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n}\n"],"mappings":""}
package/esm/index.mjs CHANGED
@@ -87,6 +87,7 @@ import { ScrollArea, ScrollAreaAutosize } from "./components/ScrollArea/ScrollAr
87
87
  import { UnstyledButton } from "./components/UnstyledButton/UnstyledButton.mjs";
88
88
  import { VisuallyHidden } from "./components/VisuallyHidden/VisuallyHidden.mjs";
89
89
  import { Paper } from "./components/Paper/Paper.mjs";
90
+ import { getArrowMergeDropdownStyles } from "./utils/Floating/FloatingArrow/get-arrow-position-styles.mjs";
90
91
  import { FloatingArrow } from "./utils/Floating/FloatingArrow/FloatingArrow.mjs";
91
92
  import { getFloatingPosition } from "./utils/Floating/get-floating-position/get-floating-position.mjs";
92
93
  import { useDelayedHover } from "./utils/Floating/use-delayed-hover.mjs";
@@ -97,6 +98,7 @@ import { transitions } from "./components/Transition/transitions.mjs";
97
98
  import { Transition } from "./components/Transition/Transition.mjs";
98
99
  import { getTransitionProps } from "./components/Transition/get-transition-props/get-transition-props.mjs";
99
100
  import { usePopoverContext } from "./components/Popover/Popover.context.mjs";
101
+ import { PopoverContextMenu } from "./components/Popover/PopoverContextMenu/PopoverContextMenu.mjs";
100
102
  import { FocusTrap, FocusTrapInitialFocus } from "./components/FocusTrap/FocusTrap.mjs";
101
103
  import { PopoverDropdown } from "./components/Popover/PopoverDropdown/PopoverDropdown.mjs";
102
104
  import { PopoverTarget } from "./components/Popover/PopoverTarget/PopoverTarget.mjs";
@@ -245,10 +247,17 @@ import { LoadingOverlay } from "./components/LoadingOverlay/LoadingOverlay.mjs";
245
247
  import { Marquee } from "./components/Marquee/Marquee.mjs";
246
248
  import { MaskInput } from "./components/MaskInput/MaskInput.mjs";
247
249
  import { useMenuContext } from "./components/Menu/Menu.context.mjs";
250
+ import { MenuCheckboxGroup } from "./components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs";
251
+ import { MenuCheckboxItem } from "./components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs";
252
+ import { MenuContextMenu } from "./components/Menu/MenuContextMenu/MenuContextMenu.mjs";
248
253
  import { MenuDivider } from "./components/Menu/MenuDivider/MenuDivider.mjs";
249
254
  import { MenuDropdown } from "./components/Menu/MenuDropdown/MenuDropdown.mjs";
250
255
  import { MenuItem } from "./components/Menu/MenuItem/MenuItem.mjs";
251
256
  import { MenuLabel } from "./components/Menu/MenuLabel/MenuLabel.mjs";
257
+ import { MenuRadioGroup } from "./components/Menu/MenuRadioGroup/MenuRadioGroup.mjs";
258
+ import { RadioIcon } from "./components/Radio/RadioIcon.mjs";
259
+ import { MenuRadioItem } from "./components/Menu/MenuRadioItem/MenuRadioItem.mjs";
260
+ import { MenuSearch } from "./components/Menu/MenuSearch/MenuSearch.mjs";
252
261
  import { MenuSubDropdown } from "./components/Menu/MenuSubDropdown/MenuSubDropdown.mjs";
253
262
  import { MenuSubItem } from "./components/Menu/MenuSubItem/MenuSubItem.mjs";
254
263
  import { MenuSubTarget } from "./components/Menu/MenuSubTarget/MenuSubTarget.mjs";
@@ -283,6 +292,7 @@ import { PaginationControl } from "./components/Pagination/PaginationControl/Pag
283
292
  import { PaginationDots } from "./components/Pagination/PaginationDots/PaginationDots.mjs";
284
293
  import { PaginationFirst, PaginationLast, PaginationNext, PaginationPrevious } from "./components/Pagination/PaginationEdges/PaginationEdges.mjs";
285
294
  import { PaginationItems } from "./components/Pagination/PaginationItems/PaginationItems.mjs";
295
+ import { PaginationLabel } from "./components/Pagination/PaginationLabel/PaginationLabel.mjs";
286
296
  import { PaginationRoot } from "./components/Pagination/PaginationRoot/PaginationRoot.mjs";
287
297
  import { Pagination } from "./components/Pagination/Pagination.mjs";
288
298
  import { PasswordInput } from "./components/PasswordInput/PasswordInput.mjs";
@@ -294,7 +304,6 @@ import { ProgressSection } from "./components/Progress/ProgressSection/ProgressS
294
304
  import { Progress } from "./components/Progress/Progress.mjs";
295
305
  import { RadioGroup, RadioGroupContext } from "./components/Radio/RadioGroup/RadioGroup.mjs";
296
306
  import { RadioCard, RadioCardContext } from "./components/Radio/RadioCard/RadioCard.mjs";
297
- import { RadioIcon } from "./components/Radio/RadioIcon.mjs";
298
307
  import { RadioIndicator } from "./components/Radio/RadioIndicator/RadioIndicator.mjs";
299
308
  import { Radio } from "./components/Radio/Radio.mjs";
300
309
  import { Rating } from "./components/Rating/Rating.mjs";
@@ -312,6 +321,9 @@ import { Skeleton } from "./components/Skeleton/Skeleton.mjs";
312
321
  import { Slider } from "./components/Slider/Slider/Slider.mjs";
313
322
  import { RangeSlider } from "./components/Slider/RangeSlider/RangeSlider.mjs";
314
323
  import { Space } from "./components/Space/Space.mjs";
324
+ import { useSplitterContext } from "./components/Splitter/Splitter.context.mjs";
325
+ import { SplitterPane } from "./components/Splitter/SplitterPane/SplitterPane.mjs";
326
+ import { Splitter } from "./components/Splitter/Splitter.mjs";
315
327
  import { Spoiler } from "./components/Spoiler/Spoiler.mjs";
316
328
  import { Stack } from "./components/Stack/Stack.mjs";
317
329
  import { useStepperContext } from "./components/Stepper/Stepper.context.mjs";
@@ -347,4 +359,4 @@ import { TreeSelectOption } from "./components/TreeSelect/TreeSelectOption.mjs";
347
359
  import { TreeSelect } from "./components/TreeSelect/TreeSelect.mjs";
348
360
  import { Typography } from "./components/Typography/Typography.mjs";
349
361
  import { RemoveScroll } from "react-remove-scroll";
350
- export { Accordion, AccordionChevron, AccordionControl, AccordionItem, AccordionPanel, ActionIcon, ActionIconGroup, ActionIconGroupSection, Affix, Alert, AlphaSlider, Anchor, AngleSlider, AppShell, AppShellAside, AppShellFooter, AppShellHeader, AppShellMain, AppShellNavbar, AppShellSection, AspectRatio, Autocomplete, Avatar, AvatarGroup, AvatarGroupContext, BackgroundImage, Badge, Blockquote, Box, Breadcrumbs, Burger, Button, ButtonGroup, ButtonGroupSection, Card, CardSection, Center, CheckIcon, Checkbox, CheckboxCard, CheckboxCardContext, CheckboxGroup, CheckboxGroupContext, CheckboxIndicator, Chip, ChipGroup, ChipGroupContext, CloseButton, CloseIcon, Code, Collapse, ColorInput, ColorPicker, ColorSchemeScript, ColorSwatch, Combobox, ComboboxChevron, ComboboxClearButton, ComboboxDropdown, ComboboxDropdownTarget, ComboboxEmpty, ComboboxEventsTarget, ComboboxFooter, ComboboxGroup, ComboboxHeader, ComboboxHiddenInput, ComboboxOption, ComboboxOptions, ComboboxSearch, ComboboxTarget, Container, CopyButton, DEFAULT_THEME, Dialog, DirectionContext, DirectionProvider, Divider, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerHeader, DrawerOverlay, DrawerRoot, DrawerStack, DrawerStackContext, DrawerTitle, FLEX_STYLE_PROPS_DATA, FOCUS_CLASS_NAMES, Fieldset, FileButton, FileInput, FlatTreeNode, Flex, FloatingArrow, FloatingIndicator, FloatingWindow, FocusTrap, FocusTrapInitialFocus, Grid, GridCol, Group, HeadlessMantineProvider, Highlight, HoverCard, HoverCardDropdown, HoverCardGroup, HoverCardGroupContext, HoverCardTarget, HueSlider, Image, Indicator, InlineStyles, Input, InputBase, InputClearButton, InputClearSection, InputDescription, InputError, InputLabel, InputPlaceholder, InputWrapper, InputWrapperContext, JsonInput, Kbd, List, ListItem, Loader, LoadingOverlay, transitions as MANTINE_TRANSITIONS, MantineContext, MantineProvider, MantineThemeContext, MantineThemeProvider, Mark, Marquee, MaskInput, Menu, MenuDivider, MenuDropdown, MenuItem, MenuLabel, MenuSub, MenuSubDropdown, MenuSubItem, MenuSubTarget, MenuTarget, Modal, ModalBase, ModalBaseBody, ModalBaseCloseButton, ModalBaseContent, ModalBaseHeader, ModalBaseOverlay, ModalBaseTitle, ModalBody, ModalCloseButton, ModalContent, ModalHeader, ModalOverlay, ModalRoot, ModalStack, ModalStackContext, ModalTitle, MultiSelect, NativeScrollArea, NativeSelect, NavLink, Notification, NumberFormatter, NumberInput, OptionalPortal, OptionsDropdown, OverflowList, Overlay, Pagination, PaginationControl, PaginationDots, PaginationFirst, PaginationItems, PaginationLast, PaginationNext, PaginationPrevious, PaginationRoot, Paper, PasswordInput, Pill, PillGroup, PillsInput, PillsInputContext, PillsInputField, PinInput, Popover, PopoverDropdown, PopoverTarget, Portal, Progress, ProgressLabel, ProgressRoot, ProgressSection, Radio, RadioCard, RadioCardContext, RadioGroup, RadioGroupContext, RadioIcon, RadioIndicator, RangeSlider, Rating, RemoveScroll, RingProgress, RollingNumber, STYlE_PROPS_DATA, ScrollArea, ScrollAreaAutosize, Scroller, SegmentedControl, Select, SemiCircleProgress, SimpleGrid, Skeleton, Slider, Space, Spoiler, Stack, Stepper, StepperCompleted, StepperStep, Switch, SwitchGroup, SwitchGroupContext, Table, TableCaption, TableOfContents, TableScrollContainer, TableTbody, TableTd, TableTfoot, TableTh, TableThead, TableTr, Tabs, TabsList, TabsPanel, TabsTab, TagsInput, Text, TextInput, Textarea, ThemeIcon, Timeline, TimelineItem, Title, Tooltip, TooltipFloating, TooltipGroup, TooltipGroupContext, Transition, Tree, TreeSelect, TreeSelectOption, Typography, UnstyledButton, VisuallyHidden, alpha, camelToKebabCase, closeOnEscape, colorsTuple, convertCssVariables, convertHsvaTo, createEventHandler, createPolymorphicComponent, createSafeContext, createScopedKeydownHandler, createTheme, createUseExternalEvents, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultLoaders, defaultOptionsFilter, defaultTreeNodeFilter, defaultVariantColorsResolver, em, extractStyleProps, factory, filterProps, filterTreeData, findClosestNumber, findElementAncestor, findElementBySelector, findElementsBySelector, flattenTreeData, genericFactory, getAutoContrastValue, getBaseValue, getBreakpointValue, getCSSColorVariables, getContextItemIndex, getContrastColor, getDefaultZIndex, getEnv, getFloatingPosition, getFontSize, getGradient, getLineHeight, getOptionsLockup, getParsedComboboxData, getPrimaryContrastColor, getPrimaryShade, getRadius, getRefProp, getRootElement, getSafeId, getShadow, getSingleElementChild, getSize, getSortedBreakpoints, getSpacing, getStyleObject, getThemeColor, getTransitionProps, getTreeExpandedState, hashStyleProps, isColorValid, isElement, isLightColor, isMantineColorScheme, isNumberLike, isOptionsGroup, isPrimitive, isVirtualColor, keys, lighten, localStorageColorSchemeManager, luminance, mantineHtmlProps, memoize, mergeAsyncChildren, mergeMantineTheme, mergeThemeOverrides, moveTreeNode, noop, parseColor, parseStyleProps, parseThemeColor, polymorphic, polymorphicFactory, px, rem, resolveClassNames, resolveStyles, rgba, stylesToString, toRgba, useAccordionContext, useAccordionItemContext, useAppShellContext, useCombobox, useComboboxContext, useComboboxTargetProps, useComputedColorScheme, useDelayedHover, useDirection, useDrawerContext, useDrawersStack, useGridContext, useHoverCardContext, useHovered, useInputProps, useListContext, useMantineClassNamesPrefix, useMantineColorScheme, useMantineContext, useMantineCssVariablesResolver, useMantineDeduplicateInlineStyles, useMantineEnv, useMantineIsHeadless, useMantineStyleNonce, useMantineStylesTransform, useMantineSxTransform, useMantineTheme, useMantineWithStaticClasses, useMatches, useMenuContext, useModalContext, useModalsStack, usePaginationContext, usePillsReorder, usePopoverContext, useProgressContext, useProps, useProviderColorScheme, useRandomClassName, useResolvedStylesApi, useSafeMantineTheme, useScrollAreaContext, useStepperContext, useStyles, useTableContext, useTabsContext, useTree, useVirtualizedCombobox, v8CssVariablesResolver, validateMantineTheme, virtualColor };
362
+ export { Accordion, AccordionChevron, AccordionControl, AccordionItem, AccordionPanel, ActionIcon, ActionIconGroup, ActionIconGroupSection, Affix, Alert, AlphaSlider, Anchor, AngleSlider, AppShell, AppShellAside, AppShellFooter, AppShellHeader, AppShellMain, AppShellNavbar, AppShellSection, AspectRatio, Autocomplete, Avatar, AvatarGroup, AvatarGroupContext, BackgroundImage, Badge, Blockquote, Box, Breadcrumbs, Burger, Button, ButtonGroup, ButtonGroupSection, Card, CardSection, Center, CheckIcon, Checkbox, CheckboxCard, CheckboxCardContext, CheckboxGroup, CheckboxGroupContext, CheckboxIndicator, Chip, ChipGroup, ChipGroupContext, CloseButton, CloseIcon, Code, Collapse, ColorInput, ColorPicker, ColorSchemeScript, ColorSwatch, Combobox, ComboboxChevron, ComboboxClearButton, ComboboxDropdown, ComboboxDropdownTarget, ComboboxEmpty, ComboboxEventsTarget, ComboboxFooter, ComboboxGroup, ComboboxHeader, ComboboxHiddenInput, ComboboxOption, ComboboxOptions, ComboboxSearch, ComboboxTarget, Container, CopyButton, DEFAULT_THEME, Dialog, DirectionContext, DirectionProvider, Divider, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerHeader, DrawerOverlay, DrawerRoot, DrawerStack, DrawerStackContext, DrawerTitle, FLEX_STYLE_PROPS_DATA, FOCUS_CLASS_NAMES, Fieldset, FileButton, FileInput, FlatTreeNode, Flex, FloatingArrow, FloatingIndicator, FloatingWindow, FocusTrap, FocusTrapInitialFocus, Grid, GridCol, Group, HeadlessMantineProvider, Highlight, HoverCard, HoverCardDropdown, HoverCardGroup, HoverCardGroupContext, HoverCardTarget, HueSlider, Image, Indicator, InlineStyles, Input, InputBase, InputClearButton, InputClearSection, InputDescription, InputError, InputLabel, InputPlaceholder, InputWrapper, InputWrapperContext, JsonInput, Kbd, List, ListItem, Loader, LoadingOverlay, transitions as MANTINE_TRANSITIONS, MantineContext, MantineProvider, MantineThemeContext, MantineThemeProvider, Mark, Marquee, MaskInput, Menu, MenuCheckboxGroup, MenuCheckboxItem, MenuContextMenu, MenuDivider, MenuDropdown, MenuItem, MenuLabel, MenuRadioGroup, MenuRadioItem, MenuSearch, MenuSub, MenuSubDropdown, MenuSubItem, MenuSubTarget, MenuTarget, Modal, ModalBase, ModalBaseBody, ModalBaseCloseButton, ModalBaseContent, ModalBaseHeader, ModalBaseOverlay, ModalBaseTitle, ModalBody, ModalCloseButton, ModalContent, ModalHeader, ModalOverlay, ModalRoot, ModalStack, ModalStackContext, ModalTitle, MultiSelect, NativeScrollArea, NativeSelect, NavLink, Notification, NumberFormatter, NumberInput, OptionalPortal, OptionsDropdown, OverflowList, Overlay, Pagination, PaginationControl, PaginationDots, PaginationFirst, PaginationItems, PaginationLabel, PaginationLast, PaginationNext, PaginationPrevious, PaginationRoot, Paper, PasswordInput, Pill, PillGroup, PillsInput, PillsInputContext, PillsInputField, PinInput, Popover, PopoverContextMenu, PopoverDropdown, PopoverTarget, Portal, Progress, ProgressLabel, ProgressRoot, ProgressSection, Radio, RadioCard, RadioCardContext, RadioGroup, RadioGroupContext, RadioIcon, RadioIndicator, RangeSlider, Rating, RemoveScroll, RingProgress, RollingNumber, STYlE_PROPS_DATA, ScrollArea, ScrollAreaAutosize, Scroller, SegmentedControl, Select, SemiCircleProgress, SimpleGrid, Skeleton, Slider, Space, Splitter, SplitterPane, Spoiler, Stack, Stepper, StepperCompleted, StepperStep, Switch, SwitchGroup, SwitchGroupContext, Table, TableCaption, TableOfContents, TableScrollContainer, TableTbody, TableTd, TableTfoot, TableTh, TableThead, TableTr, Tabs, TabsList, TabsPanel, TabsTab, TagsInput, Text, TextInput, Textarea, ThemeIcon, Timeline, TimelineItem, Title, Tooltip, TooltipFloating, TooltipGroup, TooltipGroupContext, Transition, Tree, TreeSelect, TreeSelectOption, Typography, UnstyledButton, VisuallyHidden, alpha, camelToKebabCase, closeOnEscape, colorsTuple, convertCssVariables, convertHsvaTo, createEventHandler, createPolymorphicComponent, createSafeContext, createScopedKeydownHandler, createTheme, createUseExternalEvents, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultLoaders, defaultOptionsFilter, defaultTreeNodeFilter, defaultVariantColorsResolver, em, extractStyleProps, factory, filterProps, filterTreeData, findClosestNumber, findElementAncestor, findElementBySelector, findElementsBySelector, flattenTreeData, genericFactory, getArrowMergeDropdownStyles, getAutoContrastValue, getBaseValue, getBreakpointValue, getCSSColorVariables, getContextItemIndex, getContrastColor, getDefaultZIndex, getEnv, getFloatingPosition, getFontSize, getGradient, getLineHeight, getOptionsLockup, getParsedComboboxData, getPrimaryContrastColor, getPrimaryShade, getRadius, getRefProp, getRootElement, getSafeId, getShadow, getSingleElementChild, getSize, getSortedBreakpoints, getSpacing, getStyleObject, getThemeColor, getTransitionProps, getTreeExpandedState, hashStyleProps, isColorValid, isElement, isLightColor, isMantineColorScheme, isNumberLike, isOptionsGroup, isPrimitive, isVirtualColor, keys, lighten, localStorageColorSchemeManager, luminance, mantineHtmlProps, memoize, mergeAsyncChildren, mergeMantineTheme, mergeThemeOverrides, moveTreeNode, noop, parseColor, parseStyleProps, parseThemeColor, polymorphic, polymorphicFactory, px, rem, resolveClassNames, resolveStyles, rgba, stylesToString, toRgba, useAccordionContext, useAccordionItemContext, useAppShellContext, useCombobox, useComboboxContext, useComboboxTargetProps, useComputedColorScheme, useDelayedHover, useDirection, useDrawerContext, useDrawersStack, useGridContext, useHoverCardContext, useHovered, useInputProps, useListContext, useMantineClassNamesPrefix, useMantineColorScheme, useMantineContext, useMantineCssVariablesResolver, useMantineDeduplicateInlineStyles, useMantineEnv, useMantineIsHeadless, useMantineStyleNonce, useMantineStylesTransform, useMantineSxTransform, useMantineTheme, useMantineWithStaticClasses, useMatches, useMenuContext, useModalContext, useModalsStack, usePaginationContext, usePillsReorder, usePopoverContext, useProgressContext, useProps, useProviderColorScheme, useRandomClassName, useResolvedStylesApi, useSafeMantineTheme, useScrollAreaContext, useSplitterContext, useStepperContext, useStyles, useTableContext, useTabsContext, useTree, useVirtualizedCombobox, v8CssVariablesResolver, validateMantineTheme, virtualColor };
@@ -18,7 +18,56 @@ const radiusByFloatingSide = {
18
18
  right: "borderBottomLeftRadius",
19
19
  top: "borderBottomRightRadius"
20
20
  };
21
+ function getMergeArrowStyles({ position, arrowSize, dir }) {
22
+ const [side, placement] = position.split("-");
23
+ if (!placement) return;
24
+ const baseStyles = {
25
+ width: arrowSize,
26
+ height: arrowSize,
27
+ position: "absolute"
28
+ };
29
+ if (side === "bottom") {
30
+ const isStart = placement === "start";
31
+ const physicalSide = isStart ? dir === "ltr" ? "left" : "right" : dir === "ltr" ? "right" : "left";
32
+ return {
33
+ ...baseStyles,
34
+ top: -arrowSize,
35
+ [physicalSide]: 0,
36
+ clipPath: isStart !== (dir === "rtl") ? "polygon(0% 0%, 0% 100%, 100% 100%)" : "polygon(100% 0%, 0% 100%, 100% 100%)"
37
+ };
38
+ }
39
+ if (side === "top") {
40
+ const isStart = placement === "start";
41
+ const physicalSide = isStart ? dir === "ltr" ? "left" : "right" : dir === "ltr" ? "right" : "left";
42
+ return {
43
+ ...baseStyles,
44
+ bottom: -arrowSize,
45
+ [physicalSide]: 0,
46
+ clipPath: isStart !== (dir === "rtl") ? "polygon(0% 0%, 100% 0%, 0% 100%)" : "polygon(0% 0%, 100% 0%, 100% 100%)"
47
+ };
48
+ }
49
+ if (side === "left") return {
50
+ ...baseStyles,
51
+ right: -arrowSize,
52
+ [placement === "start" ? "top" : "bottom"]: 0,
53
+ clipPath: placement === "start" ? "polygon(0% 0%, 100% 0%, 0% 100%)" : "polygon(0% 0%, 0% 100%, 100% 100%)"
54
+ };
55
+ if (side === "right") return {
56
+ ...baseStyles,
57
+ left: -arrowSize,
58
+ [placement === "start" ? "top" : "bottom"]: 0,
59
+ clipPath: placement === "start" ? "polygon(0% 0%, 100% 0%, 100% 100%)" : "polygon(100% 0%, 0% 100%, 100% 100%)"
60
+ };
61
+ }
21
62
  function getArrowPositionStyles({ position, arrowSize, arrowOffset, arrowRadius, arrowPosition, arrowX, arrowY, dir }) {
63
+ if (arrowPosition === "merge") {
64
+ const mergeStyles = getMergeArrowStyles({
65
+ position,
66
+ arrowSize,
67
+ dir
68
+ });
69
+ if (mergeStyles) return mergeStyles;
70
+ }
22
71
  const [side, placement = "center"] = position.split("-");
23
72
  const baseStyles = {
24
73
  width: arrowSize,
@@ -62,7 +111,16 @@ function getArrowPositionStyles({ position, arrowSize, arrowOffset, arrowRadius,
62
111
  };
63
112
  return {};
64
113
  }
114
+ function getArrowMergeDropdownStyles({ position, dir }) {
115
+ const [side, placement] = position.split("-");
116
+ if (!placement) return;
117
+ const isPhysicallyLeft = placement === "start" && dir === "ltr" || placement === "end" && dir === "rtl";
118
+ if (side === "bottom") return isPhysicallyLeft ? { borderTopLeftRadius: 0 } : { borderTopRightRadius: 0 };
119
+ if (side === "top") return isPhysicallyLeft ? { borderBottomLeftRadius: 0 } : { borderBottomRightRadius: 0 };
120
+ if (side === "left") return placement === "start" ? { borderTopRightRadius: 0 } : { borderBottomRightRadius: 0 };
121
+ if (side === "right") return placement === "start" ? { borderTopLeftRadius: 0 } : { borderBottomLeftRadius: 0 };
122
+ }
65
123
  //#endregion
66
- export { getArrowPositionStyles };
124
+ export { getArrowMergeDropdownStyles, getArrowPositionStyles };
67
125
 
68
126
  //# sourceMappingURL=get-arrow-position-styles.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-arrow-position-styles.mjs","names":[],"sources":["../../../../src/utils/Floating/FloatingArrow/get-arrow-position-styles.ts"],"sourcesContent":["import type { ArrowPosition, FloatingPlacement, FloatingPosition, FloatingSide } from '../types';\n\nfunction horizontalSide(\n placement: FloatingPlacement | 'center',\n arrowY: number | undefined,\n arrowOffset: number,\n arrowPosition: ArrowPosition\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { top: arrowY };\n }\n\n if (placement === 'end') {\n return { bottom: arrowOffset };\n }\n\n if (placement === 'start') {\n return { top: arrowOffset };\n }\n\n return {};\n}\n\nfunction verticalSide(\n placement: FloatingPlacement | 'center',\n arrowX: number | undefined,\n arrowOffset: number,\n arrowPosition: ArrowPosition,\n dir: 'rtl' | 'ltr'\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { left: arrowX };\n }\n\n if (placement === 'end') {\n return { [dir === 'ltr' ? 'right' : 'left']: arrowOffset };\n }\n\n if (placement === 'start') {\n return { [dir === 'ltr' ? 'left' : 'right']: arrowOffset };\n }\n\n return {};\n}\n\nconst radiusByFloatingSide: Record<\n FloatingSide,\n keyof Pick<\n React.CSSProperties,\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n >\n> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n};\n\nexport function getArrowPositionStyles({\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n arrowX,\n arrowY,\n dir,\n}: {\n position: FloatingPosition;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n arrowX: number | undefined;\n arrowY: number | undefined;\n dir: 'rtl' | 'ltr';\n}) {\n const [side, placement = 'center'] = position.split('-') as [FloatingSide, FloatingPlacement];\n const baseStyles = {\n width: arrowSize,\n height: arrowSize,\n transform: 'rotate(45deg)',\n position: 'absolute',\n [radiusByFloatingSide[side]]: arrowRadius,\n };\n\n const arrowPlacement = -arrowSize / 2;\n\n if (side === 'left') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n right: arrowPlacement,\n borderLeftColor: 'transparent',\n borderBottomColor: 'transparent',\n clipPath: 'polygon(100% 0, 0 0, 100% 100%)',\n };\n }\n\n if (side === 'right') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n left: arrowPlacement,\n borderRightColor: 'transparent',\n borderTopColor: 'transparent',\n clipPath: 'polygon(0 100%, 0 0, 100% 100%)',\n };\n }\n\n if (side === 'top') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n bottom: arrowPlacement,\n borderTopColor: 'transparent',\n borderLeftColor: 'transparent',\n clipPath: 'polygon(0 100%, 100% 100%, 100% 0)',\n };\n }\n\n if (side === 'bottom') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n top: arrowPlacement,\n borderBottomColor: 'transparent',\n borderRightColor: 'transparent',\n clipPath: 'polygon(0 100%, 0 0, 100% 0)',\n };\n }\n\n return {};\n}\n"],"mappings":";;AAEA,SAAS,eACP,WACA,QACA,aACA,eACA;CACA,IAAI,cAAc,YAAY,kBAAkB,UAC9C,OAAO,EAAE,KAAK,OAAO;CAGvB,IAAI,cAAc,OAChB,OAAO,EAAE,QAAQ,YAAY;CAG/B,IAAI,cAAc,SAChB,OAAO,EAAE,KAAK,YAAY;CAG5B,OAAO,CAAC;AACV;AAEA,SAAS,aACP,WACA,QACA,aACA,eACA,KACA;CACA,IAAI,cAAc,YAAY,kBAAkB,UAC9C,OAAO,EAAE,MAAM,OAAO;CAGxB,IAAI,cAAc,OAChB,OAAO,GAAG,QAAQ,QAAQ,UAAU,SAAS,YAAY;CAG3D,IAAI,cAAc,SAChB,OAAO,GAAG,QAAQ,QAAQ,SAAS,UAAU,YAAY;CAG3D,OAAO,CAAC;AACV;AAEA,MAAM,uBASF;CACF,QAAQ;CACR,MAAM;CACN,OAAO;CACP,KAAK;AACP;AAEA,SAAgB,uBAAuB,EACrC,UACA,WACA,aACA,aACA,eACA,QACA,QACA,OAUC;CACD,MAAM,CAAC,MAAM,YAAY,YAAY,SAAS,MAAM,GAAG;CACvD,MAAM,aAAa;EACjB,OAAO;EACP,QAAQ;EACR,WAAW;EACX,UAAU;GACT,qBAAqB,QAAQ;CAChC;CAEA,MAAM,iBAAiB,CAAC,YAAY;CAEpC,IAAI,SAAS,QACX,OAAO;EACL,GAAG;EACH,GAAG,eAAe,WAAW,QAAQ,aAAa,aAAa;EAC/D,OAAO;EACP,iBAAiB;EACjB,mBAAmB;EACnB,UAAU;CACZ;CAGF,IAAI,SAAS,SACX,OAAO;EACL,GAAG;EACH,GAAG,eAAe,WAAW,QAAQ,aAAa,aAAa;EAC/D,MAAM;EACN,kBAAkB;EAClB,gBAAgB;EAChB,UAAU;CACZ;CAGF,IAAI,SAAS,OACX,OAAO;EACL,GAAG;EACH,GAAG,aAAa,WAAW,QAAQ,aAAa,eAAe,GAAG;EAClE,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,UAAU;CACZ;CAGF,IAAI,SAAS,UACX,OAAO;EACL,GAAG;EACH,GAAG,aAAa,WAAW,QAAQ,aAAa,eAAe,GAAG;EAClE,KAAK;EACL,mBAAmB;EACnB,kBAAkB;EAClB,UAAU;CACZ;CAGF,OAAO,CAAC;AACV"}
1
+ {"version":3,"file":"get-arrow-position-styles.mjs","names":[],"sources":["../../../../src/utils/Floating/FloatingArrow/get-arrow-position-styles.ts"],"sourcesContent":["import type { ArrowPosition, FloatingPlacement, FloatingPosition, FloatingSide } from '../types';\n\nfunction horizontalSide(\n placement: FloatingPlacement | 'center',\n arrowY: number | undefined,\n arrowOffset: number,\n arrowPosition: ArrowPosition\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { top: arrowY };\n }\n\n if (placement === 'end') {\n return { bottom: arrowOffset };\n }\n\n if (placement === 'start') {\n return { top: arrowOffset };\n }\n\n return {};\n}\n\nfunction verticalSide(\n placement: FloatingPlacement | 'center',\n arrowX: number | undefined,\n arrowOffset: number,\n arrowPosition: ArrowPosition,\n dir: 'rtl' | 'ltr'\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { left: arrowX };\n }\n\n if (placement === 'end') {\n return { [dir === 'ltr' ? 'right' : 'left']: arrowOffset };\n }\n\n if (placement === 'start') {\n return { [dir === 'ltr' ? 'left' : 'right']: arrowOffset };\n }\n\n return {};\n}\n\nconst radiusByFloatingSide: Record<\n FloatingSide,\n keyof Pick<\n React.CSSProperties,\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n >\n> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n};\n\nfunction getMergeArrowStyles({\n position,\n arrowSize,\n dir,\n}: {\n position: FloatingPosition;\n arrowSize: number;\n dir: 'rtl' | 'ltr';\n}) {\n const [side, placement] = position.split('-') as [FloatingSide, FloatingPlacement | undefined];\n\n if (!placement) {\n return undefined;\n }\n\n const baseStyles = {\n width: arrowSize,\n height: arrowSize,\n position: 'absolute' as const,\n };\n\n if (side === 'bottom') {\n const isStart = placement === 'start';\n const physicalSide = isStart\n ? dir === 'ltr'\n ? 'left'\n : 'right'\n : dir === 'ltr'\n ? 'right'\n : 'left';\n\n return {\n ...baseStyles,\n top: -arrowSize,\n [physicalSide]: 0,\n clipPath:\n isStart !== (dir === 'rtl')\n ? 'polygon(0% 0%, 0% 100%, 100% 100%)'\n : 'polygon(100% 0%, 0% 100%, 100% 100%)',\n };\n }\n\n if (side === 'top') {\n const isStart = placement === 'start';\n const physicalSide = isStart\n ? dir === 'ltr'\n ? 'left'\n : 'right'\n : dir === 'ltr'\n ? 'right'\n : 'left';\n\n return {\n ...baseStyles,\n bottom: -arrowSize,\n [physicalSide]: 0,\n clipPath:\n isStart !== (dir === 'rtl')\n ? 'polygon(0% 0%, 100% 0%, 0% 100%)'\n : 'polygon(0% 0%, 100% 0%, 100% 100%)',\n };\n }\n\n if (side === 'left') {\n return {\n ...baseStyles,\n right: -arrowSize,\n [placement === 'start' ? 'top' : 'bottom']: 0,\n clipPath:\n placement === 'start'\n ? 'polygon(0% 0%, 100% 0%, 0% 100%)'\n : 'polygon(0% 0%, 0% 100%, 100% 100%)',\n };\n }\n\n if (side === 'right') {\n return {\n ...baseStyles,\n left: -arrowSize,\n [placement === 'start' ? 'top' : 'bottom']: 0,\n clipPath:\n placement === 'start'\n ? 'polygon(0% 0%, 100% 0%, 100% 100%)'\n : 'polygon(100% 0%, 0% 100%, 100% 100%)',\n };\n }\n\n return undefined;\n}\n\nexport function getArrowPositionStyles({\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n arrowX,\n arrowY,\n dir,\n}: {\n position: FloatingPosition;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n arrowX: number | undefined;\n arrowY: number | undefined;\n dir: 'rtl' | 'ltr';\n}) {\n if (arrowPosition === 'merge') {\n const mergeStyles = getMergeArrowStyles({ position, arrowSize, dir });\n if (mergeStyles) {\n return mergeStyles;\n }\n }\n\n const [side, placement = 'center'] = position.split('-') as [FloatingSide, FloatingPlacement];\n const baseStyles = {\n width: arrowSize,\n height: arrowSize,\n transform: 'rotate(45deg)',\n position: 'absolute',\n [radiusByFloatingSide[side]]: arrowRadius,\n };\n\n const arrowPlacement = -arrowSize / 2;\n\n if (side === 'left') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n right: arrowPlacement,\n borderLeftColor: 'transparent',\n borderBottomColor: 'transparent',\n clipPath: 'polygon(100% 0, 0 0, 100% 100%)',\n };\n }\n\n if (side === 'right') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n left: arrowPlacement,\n borderRightColor: 'transparent',\n borderTopColor: 'transparent',\n clipPath: 'polygon(0 100%, 0 0, 100% 100%)',\n };\n }\n\n if (side === 'top') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n bottom: arrowPlacement,\n borderTopColor: 'transparent',\n borderLeftColor: 'transparent',\n clipPath: 'polygon(0 100%, 100% 100%, 100% 0)',\n };\n }\n\n if (side === 'bottom') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n top: arrowPlacement,\n borderBottomColor: 'transparent',\n borderRightColor: 'transparent',\n clipPath: 'polygon(0 100%, 0 0, 100% 0)',\n };\n }\n\n return {};\n}\n\nexport function getArrowMergeDropdownStyles({\n position,\n dir,\n}: {\n position: FloatingPosition;\n dir: 'rtl' | 'ltr';\n}): React.CSSProperties | undefined {\n const [side, placement] = position.split('-') as [FloatingSide, FloatingPlacement | undefined];\n\n if (!placement) {\n return undefined;\n }\n\n const isPhysicallyLeft =\n (placement === 'start' && dir === 'ltr') || (placement === 'end' && dir === 'rtl');\n\n if (side === 'bottom') {\n return isPhysicallyLeft ? { borderTopLeftRadius: 0 } : { borderTopRightRadius: 0 };\n }\n\n if (side === 'top') {\n return isPhysicallyLeft ? { borderBottomLeftRadius: 0 } : { borderBottomRightRadius: 0 };\n }\n\n if (side === 'left') {\n return placement === 'start' ? { borderTopRightRadius: 0 } : { borderBottomRightRadius: 0 };\n }\n\n if (side === 'right') {\n return placement === 'start' ? { borderTopLeftRadius: 0 } : { borderBottomLeftRadius: 0 };\n }\n\n return undefined;\n}\n"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import { createEventHandler } from "../../core/utils/create-event-handler/create-event-handler.mjs";
3
+ //#region packages/@mantine/core/src/utils/Floating/create-context-menu-handlers.ts
4
+ function createContextMenuHandlers({ childProps, disabled, opened, setReference, open }) {
5
+ const onMouseDown = createEventHandler(childProps.onMouseDown, (event) => {
6
+ if (disabled) return;
7
+ if (event.button === 2) event.stopPropagation();
8
+ });
9
+ return {
10
+ onContextMenu: createEventHandler(childProps.onContextMenu, (event) => {
11
+ if (disabled || event.defaultPrevented) return;
12
+ event.preventDefault();
13
+ const { clientX, clientY } = event;
14
+ const contextElement = event.currentTarget;
15
+ setReference({
16
+ getBoundingClientRect: () => ({
17
+ x: clientX,
18
+ y: clientY,
19
+ width: 0,
20
+ height: 0,
21
+ top: clientY,
22
+ left: clientX,
23
+ right: clientX,
24
+ bottom: clientY,
25
+ toJSON: () => void 0
26
+ }),
27
+ contextElement
28
+ });
29
+ open();
30
+ }),
31
+ onMouseDown,
32
+ "data-expanded": opened ? true : void 0
33
+ };
34
+ }
35
+ //#endregion
36
+ export { createContextMenuHandlers };
37
+
38
+ //# sourceMappingURL=create-context-menu-handlers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-context-menu-handlers.mjs","names":[],"sources":["../../../src/utils/Floating/create-context-menu-handlers.ts"],"sourcesContent":["import { createEventHandler } from '../../core/utils/create-event-handler/create-event-handler';\n\ninterface CreateContextMenuHandlersOptions {\n /** Props of the child element that opens the dropdown */\n childProps: Record<string, any>;\n\n /** If set, right-click trigger is disabled and the browser's default context menu is shown */\n disabled: boolean | undefined;\n\n /** Current opened state, used to set `data-expanded` on the child */\n opened: boolean;\n\n /** Sets the floating reference to a virtual element positioned at the cursor */\n setReference: (node: object) => void;\n\n /** Called to open the dropdown after the reference has been set */\n open: () => void;\n}\n\nexport function createContextMenuHandlers({\n childProps,\n disabled,\n opened,\n setReference,\n open,\n}: CreateContextMenuHandlersOptions) {\n const onMouseDown = createEventHandler<any>(\n childProps.onMouseDown,\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n return;\n }\n if (event.button === 2) {\n event.stopPropagation();\n }\n }\n );\n\n const onContextMenu = createEventHandler<any>(\n childProps.onContextMenu,\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n const { clientX, clientY } = event;\n const contextElement = event.currentTarget;\n\n setReference({\n getBoundingClientRect: () => ({\n x: clientX,\n y: clientY,\n width: 0,\n height: 0,\n top: clientY,\n left: clientX,\n right: clientX,\n bottom: clientY,\n toJSON: () => undefined,\n }),\n contextElement,\n });\n\n open();\n }\n );\n\n return {\n onContextMenu,\n onMouseDown,\n 'data-expanded': opened ? true : undefined,\n };\n}\n"],"mappings":";;;AAmBA,SAAgB,0BAA0B,EACxC,YACA,UACA,QACA,cACA,QACmC;CACnC,MAAM,cAAc,mBAClB,WAAW,cACV,UAAyC;EACxC,IAAI,UACF;EAEF,IAAI,MAAM,WAAW,GACnB,MAAM,gBAAgB;CAE1B,CACF;CAgCA,OAAO;EACL,eA/BoB,mBACpB,WAAW,gBACV,UAAyC;GACxC,IAAI,YAAY,MAAM,kBACpB;GAGF,MAAM,eAAe;GACrB,MAAM,EAAE,SAAS,YAAY;GAC7B,MAAM,iBAAiB,MAAM;GAE7B,aAAa;IACX,8BAA8B;KAC5B,GAAG;KACH,GAAG;KACH,OAAO;KACP,QAAQ;KACR,KAAK;KACL,MAAM;KACN,OAAO;KACP,QAAQ;KACR,cAAc,KAAA;IAChB;IACA;GACF,CAAC;GAED,KAAK;EACP,CAIY;EACZ;EACA,iBAAiB,SAAS,OAAO,KAAA;CACnC;AACF"}
@@ -1,7 +1,7 @@
1
1
  import { BoxProps, ElementProps, Factory, MantineColor, MantineRadius, StylesApiProps } from '../../core';
2
2
  export type BlockquoteStylesNames = 'root' | 'icon' | 'cite';
3
3
  export type BlockquoteCssVariables = {
4
- root: '--bq-bg-light' | '--bq-bg-dark' | '--bq-bd' | '--bq-icon-size' | '--bq-radius';
4
+ root: '--bq-bg-light' | '--bq-bg-dark' | '--bq-bd' | '--bq-icon-size' | '--bq-radius' | '--bq-text-wrap';
5
5
  };
6
6
  export interface BlockquoteProps extends BoxProps, StylesApiProps<BlockquoteFactory>, ElementProps<'blockquote', 'cite'> {
7
7
  /** Blockquote icon, displayed at the top left side */
@@ -14,6 +14,8 @@ export interface BlockquoteProps extends BoxProps, StylesApiProps<BlockquoteFact
14
14
  radius?: MantineRadius;
15
15
  /** Reference to a cited quote */
16
16
  cite?: React.ReactNode;
17
+ /** Controls `text-wrap` CSS property */
18
+ textWrap?: 'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable';
17
19
  }
18
20
  export type BlockquoteFactory = Factory<{
19
21
  props: BlockquoteProps;
@@ -9,7 +9,7 @@ export interface CheckboxIndicatorProps extends BoxProps, StylesApiProps<Checkbo
9
9
  /** Key of `theme.colors` or any valid CSS color to set input background color in checked state @default theme.primaryColor */
10
10
  color?: MantineColor;
11
11
  /** Controls size of the component @default 'sm' */
12
- size?: MantineSize | (string & {});
12
+ size?: MantineSize | (string & {}) | number;
13
13
  /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */
14
14
  radius?: MantineRadius;
15
15
  /** Key of `theme.colors` or any valid CSS color to set icon color, by default value depends on `theme.autoContrast` */
@@ -9,5 +9,6 @@ export interface ComboboxContextValue {
9
9
  size: MantineSize | (string & {});
10
10
  resetSelectionOnOptionHover: boolean | undefined;
11
11
  readOnly: boolean | undefined;
12
+ floatingHeight: 'viewport' | undefined;
12
13
  }
13
14
  export declare const ComboboxProvider: import("react").Context<ComboboxContextValue | null>, useComboboxContext: () => ComboboxContextValue;
@@ -36,6 +36,8 @@ export interface ComboboxProps extends __PopoverProps, StylesApiProps<ComboboxFa
36
36
  resetSelectionOnOptionHover?: boolean;
37
37
  /** Determines whether the `Combobox` value can be changed */
38
38
  readOnly?: boolean;
39
+ /** If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware. */
40
+ floatingHeight?: 'viewport';
39
41
  }
40
42
  export type ComboboxFactory = Factory<{
41
43
  props: ComboboxProps;