@mantine/core 9.3.2 → 9.4.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 (828) hide show
  1. package/cjs/components/Accordion/Accordion.cjs +1 -0
  2. package/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/cjs/components/Accordion/Accordion.context.cjs.map +1 -1
  4. package/cjs/components/Accordion/AccordionChevron.cjs.map +1 -1
  5. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs.map +1 -1
  6. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs.map +1 -1
  7. package/cjs/components/Accordion/AccordionItem.context.cjs.map +1 -1
  8. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
  9. package/cjs/components/ActionIcon/ActionIcon.cjs +1 -0
  10. package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
  11. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs +1 -1
  12. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs.map +1 -1
  13. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs.map +1 -1
  14. package/cjs/components/Affix/Affix.cjs.map +1 -1
  15. package/cjs/components/Alert/Alert.cjs.map +1 -1
  16. package/cjs/components/Anchor/Anchor.cjs.map +1 -1
  17. package/cjs/components/AngleSlider/AngleSlider.cjs.map +1 -1
  18. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  19. package/cjs/components/AppShell/AppShell.context.cjs.map +1 -1
  20. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
  21. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
  22. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
  23. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs.map +1 -1
  24. package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs.map +1 -1
  25. package/cjs/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.cjs.map +1 -1
  26. package/cjs/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.cjs.map +1 -1
  27. package/cjs/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.cjs.map +1 -1
  28. package/cjs/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.cjs.map +1 -1
  29. package/cjs/components/AppShell/AppShellMediaStyles/assign-padding-variables/assign-padding-variables.cjs.map +1 -1
  30. package/cjs/components/AppShell/AppShellMediaStyles/get-variables/get-variables.cjs.map +1 -1
  31. package/cjs/components/AppShell/AppShellMediaStyles/is-primitive-size/is-primitive-size.cjs.map +1 -1
  32. package/cjs/components/AppShell/AppShellMediaStyles/is-responsive-size/is-responsive-size.cjs.map +1 -1
  33. package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs.map +1 -1
  34. package/cjs/components/AppShell/AppShellSection/AppShellSection.cjs.map +1 -1
  35. package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
  36. package/cjs/components/AspectRatio/AspectRatio.cjs.map +1 -1
  37. package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  38. package/cjs/components/Avatar/Avatar.cjs.map +1 -1
  39. package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs.map +1 -1
  40. package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs.map +1 -1
  41. package/cjs/components/Avatar/get-initials/get-initials.cjs.map +1 -1
  42. package/cjs/components/BackgroundImage/BackgroundImage.cjs.map +1 -1
  43. package/cjs/components/Badge/Badge.cjs.map +1 -1
  44. package/cjs/components/Blockquote/Blockquote.cjs.map +1 -1
  45. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
  46. package/cjs/components/Burger/Burger.cjs.map +1 -1
  47. package/cjs/components/Button/Button.cjs.map +1 -1
  48. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
  49. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
  50. package/cjs/components/Card/Card.cjs.map +1 -1
  51. package/cjs/components/Card/Card.context.cjs.map +1 -1
  52. package/cjs/components/Card/CardSection/CardSection.cjs.map +1 -1
  53. package/cjs/components/Center/Center.cjs.map +1 -1
  54. package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
  55. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  56. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
  57. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
  58. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  59. package/cjs/components/Chip/Chip.cjs.map +1 -1
  60. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
  61. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  62. package/cjs/components/CloseButton/CloseIcon.cjs.map +1 -1
  63. package/cjs/components/Code/Code.cjs.map +1 -1
  64. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  65. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  66. package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
  67. package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs.map +1 -1
  68. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  69. package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
  70. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  71. package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs.map +1 -1
  72. package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
  73. package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
  74. package/cjs/components/ColorPicker/Thumb/Thumb.cjs.map +1 -1
  75. package/cjs/components/ColorPicker/converters/converters.cjs.map +1 -1
  76. package/cjs/components/ColorPicker/converters/parsers.cjs.map +1 -1
  77. package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
  78. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  79. package/cjs/components/Combobox/Combobox.context.cjs.map +1 -1
  80. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
  81. package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs.map +1 -1
  82. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs.map +1 -1
  83. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs.map +1 -1
  84. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
  85. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
  86. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
  87. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs +3 -2
  88. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
  89. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
  90. package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs.map +1 -1
  91. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
  92. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
  93. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  94. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
  95. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs +2 -2
  96. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  97. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.cjs.map +1 -1
  98. package/cjs/components/Combobox/use-combobox/get-index/get-index.cjs.map +1 -1
  99. package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
  100. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  101. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  102. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -1
  103. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs +218 -0
  104. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs.map +1 -0
  105. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs +45 -0
  106. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs.map +1 -0
  107. package/cjs/components/Container/Container.cjs.map +1 -1
  108. package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
  109. package/cjs/components/DataList/DataList.cjs +61 -0
  110. package/cjs/components/DataList/DataList.cjs.map +1 -0
  111. package/cjs/components/DataList/DataList.context.cjs +8 -0
  112. package/cjs/components/DataList/DataList.context.cjs.map +1 -0
  113. package/cjs/components/DataList/DataList.module.cjs +12 -0
  114. package/cjs/components/DataList/DataList.module.cjs.map +1 -0
  115. package/cjs/components/DataList/DataListItem/DataListItem.cjs +32 -0
  116. package/cjs/components/DataList/DataListItem/DataListItem.cjs.map +1 -0
  117. package/cjs/components/DataList/DataListItemLabel/DataListItemLabel.cjs +33 -0
  118. package/cjs/components/DataList/DataListItemLabel/DataListItemLabel.cjs.map +1 -0
  119. package/cjs/components/DataList/DataListItemValue/DataListItemValue.cjs +33 -0
  120. package/cjs/components/DataList/DataListItemValue/DataListItemValue.cjs.map +1 -0
  121. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  122. package/cjs/components/Divider/Divider.cjs.map +1 -1
  123. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  124. package/cjs/components/Drawer/Drawer.context.cjs.map +1 -1
  125. package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
  126. package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
  127. package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
  128. package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -1
  129. package/cjs/components/Drawer/DrawerOverlay.cjs.map +1 -1
  130. package/cjs/components/Drawer/DrawerRoot.cjs.map +1 -1
  131. package/cjs/components/Drawer/DrawerStack.cjs.map +1 -1
  132. package/cjs/components/Drawer/DrawerTitle.cjs.map +1 -1
  133. package/cjs/components/EmptyState/EmptyState.cjs +102 -0
  134. package/cjs/components/EmptyState/EmptyState.cjs.map +1 -0
  135. package/cjs/components/EmptyState/EmptyState.context.cjs +8 -0
  136. package/cjs/components/EmptyState/EmptyState.context.cjs.map +1 -0
  137. package/cjs/components/EmptyState/EmptyState.module.cjs +14 -0
  138. package/cjs/components/EmptyState/EmptyState.module.cjs.map +1 -0
  139. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs +28 -0
  140. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs.map +1 -0
  141. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs +29 -0
  142. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs.map +1 -0
  143. package/cjs/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.cjs +29 -0
  144. package/cjs/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.cjs.map +1 -0
  145. package/cjs/components/EmptyState/EmptyStateTitle/EmptyStateTitle.cjs +30 -0
  146. package/cjs/components/EmptyState/EmptyStateTitle/EmptyStateTitle.cjs.map +1 -0
  147. package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
  148. package/cjs/components/FileButton/FileButton.cjs.map +1 -1
  149. package/cjs/components/FileInput/FileInput.cjs.map +1 -1
  150. package/cjs/components/Flex/Flex.cjs.map +1 -1
  151. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  152. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
  153. package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
  154. package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
  155. package/cjs/components/Grid/Grid.cjs.map +1 -1
  156. package/cjs/components/Grid/Grid.context.cjs.map +1 -1
  157. package/cjs/components/Grid/GridCol/GridCol.cjs.map +1 -1
  158. package/cjs/components/Grid/GridCol/GridColVariables.cjs.map +1 -1
  159. package/cjs/components/Grid/GridVariables.cjs.map +1 -1
  160. package/cjs/components/Group/Group.cjs.map +1 -1
  161. package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs.map +1 -1
  162. package/cjs/components/Highlight/Highlight.cjs.map +1 -1
  163. package/cjs/components/Highlight/highlighter/highlighter.cjs.map +1 -1
  164. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  165. package/cjs/components/HoverCard/HoverCard.context.cjs.map +1 -1
  166. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  167. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
  168. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  169. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  170. package/cjs/components/Image/Image.cjs.map +1 -1
  171. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  172. package/cjs/components/Input/Input.cjs +7 -2
  173. package/cjs/components/Input/Input.cjs.map +1 -1
  174. package/cjs/components/Input/Input.context.cjs.map +1 -1
  175. package/cjs/components/Input/Input.module.cjs +1 -0
  176. package/cjs/components/Input/Input.module.cjs.map +1 -1
  177. package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
  178. package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
  179. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
  180. package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
  181. package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
  182. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs.map +1 -1
  183. package/cjs/components/Input/InputSuccess/InputSuccess.cjs +48 -0
  184. package/cjs/components/Input/InputSuccess/InputSuccess.cjs.map +1 -0
  185. package/cjs/components/Input/InputWrapper/InputWrapper.cjs +22 -5
  186. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  187. package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
  188. package/cjs/components/Input/use-input-props.cjs +4 -1
  189. package/cjs/components/Input/use-input-props.cjs.map +1 -1
  190. package/cjs/components/InputBase/InputBase.cjs.map +1 -1
  191. package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
  192. package/cjs/components/JsonInput/validate-json/validate-json.cjs.map +1 -1
  193. package/cjs/components/Kbd/Kbd.cjs.map +1 -1
  194. package/cjs/components/List/List.cjs.map +1 -1
  195. package/cjs/components/List/List.context.cjs.map +1 -1
  196. package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
  197. package/cjs/components/Loader/Loader.cjs.map +1 -1
  198. package/cjs/components/Loader/loaders/Bars.cjs.map +1 -1
  199. package/cjs/components/Loader/loaders/Dots.cjs.map +1 -1
  200. package/cjs/components/Loader/loaders/Oval.cjs.map +1 -1
  201. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  202. package/cjs/components/Mark/Mark.cjs.map +1 -1
  203. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  204. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
  205. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
  206. package/cjs/components/Menu/Menu.cjs.map +1 -1
  207. package/cjs/components/Menu/Menu.context.cjs.map +1 -1
  208. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs.map +1 -1
  209. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs.map +1 -1
  210. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs.map +1 -1
  211. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs.map +1 -1
  212. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
  213. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
  214. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  215. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
  216. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs.map +1 -1
  217. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs.map +1 -1
  218. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs.map +1 -1
  219. package/cjs/components/Menu/MenuSearch/MenuSearch.cjs.map +1 -1
  220. package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs.map +1 -1
  221. package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
  222. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
  223. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  224. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  225. package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs.map +1 -1
  226. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
  227. package/cjs/components/Menu/use-menu-type-ahead.cjs.map +1 -1
  228. package/cjs/components/Menubar/Menubar.cjs +146 -0
  229. package/cjs/components/Menubar/Menubar.cjs.map +1 -0
  230. package/cjs/components/Menubar/Menubar.context.cjs +12 -0
  231. package/cjs/components/Menubar/Menubar.context.cjs.map +1 -0
  232. package/cjs/components/Menubar/Menubar.module.cjs +10 -0
  233. package/cjs/components/Menubar/Menubar.module.cjs.map +1 -0
  234. package/cjs/components/Menubar/MenubarDropdown/MenubarDropdown.cjs +61 -0
  235. package/cjs/components/Menubar/MenubarDropdown/MenubarDropdown.cjs.map +1 -0
  236. package/cjs/components/Menubar/MenubarMenu/MenubarMenu.cjs +59 -0
  237. package/cjs/components/Menubar/MenubarMenu/MenubarMenu.cjs.map +1 -0
  238. package/cjs/components/Menubar/MenubarTarget/MenubarTarget.cjs +143 -0
  239. package/cjs/components/Menubar/MenubarTarget/MenubarTarget.cjs.map +1 -0
  240. package/cjs/components/Modal/Modal.cjs.map +1 -1
  241. package/cjs/components/Modal/Modal.context.cjs.map +1 -1
  242. package/cjs/components/Modal/ModalBody.cjs.map +1 -1
  243. package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
  244. package/cjs/components/Modal/ModalContent.cjs.map +1 -1
  245. package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
  246. package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
  247. package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
  248. package/cjs/components/Modal/ModalStack.cjs.map +1 -1
  249. package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
  250. package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
  251. package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
  252. package/cjs/components/ModalBase/ModalBase.context.cjs.map +1 -1
  253. package/cjs/components/ModalBase/ModalBaseBody.cjs.map +1 -1
  254. package/cjs/components/ModalBase/ModalBaseCloseButton.cjs.map +1 -1
  255. package/cjs/components/ModalBase/ModalBaseContent.cjs.map +1 -1
  256. package/cjs/components/ModalBase/ModalBaseHeader.cjs.map +1 -1
  257. package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
  258. package/cjs/components/ModalBase/ModalBaseTitle.cjs.map +1 -1
  259. package/cjs/components/ModalBase/NativeScrollArea.cjs.map +1 -1
  260. package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
  261. package/cjs/components/ModalBase/use-modal-body-id.cjs.map +1 -1
  262. package/cjs/components/ModalBase/use-modal-title-id.cjs.map +1 -1
  263. package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
  264. package/cjs/components/MultiSelect/MultiSelect.cjs +4 -1
  265. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  266. package/cjs/components/MultiSelect/filter-picked-values.cjs.map +1 -1
  267. package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
  268. package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
  269. package/cjs/components/NavLink/NavLink.cjs.map +1 -1
  270. package/cjs/components/Notification/Notification.cjs.map +1 -1
  271. package/cjs/components/NumberFormatter/NumberFormatter.cjs.map +1 -1
  272. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  273. package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
  274. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  275. package/cjs/components/OverflowList/get-row-position-data.cjs.map +1 -1
  276. package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
  277. package/cjs/components/Overlay/Overlay.cjs.map +1 -1
  278. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  279. package/cjs/components/Pagination/Pagination.context.cjs.map +1 -1
  280. package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
  281. package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs.map +1 -1
  282. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
  283. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
  284. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
  285. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +1 -1
  286. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
  287. package/cjs/components/Paper/Paper.cjs.map +1 -1
  288. package/cjs/components/PasswordInput/PasswordInput.cjs +11 -2
  289. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  290. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
  291. package/cjs/components/Pill/Pill.cjs.map +1 -1
  292. package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
  293. package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
  294. package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
  295. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
  296. package/cjs/components/PinInput/PinInput.cjs +2 -1
  297. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  298. package/cjs/components/PinInput/create-pin-array/create-pin-array.cjs.map +1 -1
  299. package/cjs/components/Popover/Popover.cjs.map +1 -1
  300. package/cjs/components/Popover/Popover.context.cjs.map +1 -1
  301. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs.map +1 -1
  302. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
  303. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
  304. package/cjs/components/Popover/use-popover.cjs.map +1 -1
  305. package/cjs/components/Portal/OptionalPortal.cjs.map +1 -1
  306. package/cjs/components/Portal/Portal.cjs.map +1 -1
  307. package/cjs/components/Progress/Progress.cjs.map +1 -1
  308. package/cjs/components/Progress/Progress.context.cjs.map +1 -1
  309. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
  310. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
  311. package/cjs/components/Progress/ProgressSection/ProgressSection.cjs.map +1 -1
  312. package/cjs/components/Radio/Radio.cjs.map +1 -1
  313. package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
  314. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
  315. package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
  316. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  317. package/cjs/components/Rating/Rating.cjs.map +1 -1
  318. package/cjs/components/Rating/Rating.context.cjs.map +1 -1
  319. package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
  320. package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
  321. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
  322. package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
  323. package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
  324. package/cjs/components/RingProgress/get-curves/get-curves.cjs.map +1 -1
  325. package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -1
  326. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -1
  327. package/cjs/components/RollingNumber/get-digit-parts.cjs.map +1 -1
  328. package/cjs/components/RollingNumber/get-render-slots.cjs.map +1 -1
  329. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  330. package/cjs/components/ScrollArea/ScrollArea.context.cjs.map +1 -1
  331. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
  332. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
  333. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs.map +1 -1
  334. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
  335. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
  336. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
  337. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
  338. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  339. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.cjs.map +1 -1
  340. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
  341. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
  342. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
  343. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs +1 -0
  344. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
  345. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  346. package/cjs/components/ScrollArea/utils/add-unlinked-scroll-listener.cjs.map +1 -1
  347. package/cjs/components/ScrollArea/utils/get-scroll-position-from-pointer.cjs.map +1 -1
  348. package/cjs/components/ScrollArea/utils/get-thumb-offset-from-scroll.cjs.map +1 -1
  349. package/cjs/components/Scroller/Scroller.cjs.map +1 -1
  350. package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
  351. package/cjs/components/Select/Select.cjs.map +1 -1
  352. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs +4 -1
  353. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
  354. package/cjs/components/SemiCircleProgress/SemiCircleProgress.module.cjs.map +1 -1
  355. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  356. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
  357. package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  358. package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
  359. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  360. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  361. package/cjs/components/Slider/Slider.context.cjs.map +1 -1
  362. package/cjs/components/Slider/SliderRoot/SliderRoot.cjs.map +1 -1
  363. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  364. package/cjs/components/Slider/Track/Track.cjs.map +1 -1
  365. package/cjs/components/Slider/utils/get-precision/get-precision.cjs.map +1 -1
  366. package/cjs/components/Slider/utils/get-step-mark-value/get-step-mark-value.cjs.map +1 -1
  367. package/cjs/components/Space/Space.cjs.map +1 -1
  368. package/cjs/components/Splitter/GripIcon.cjs.map +1 -1
  369. package/cjs/components/Splitter/Splitter.cjs +22 -1
  370. package/cjs/components/Splitter/Splitter.cjs.map +1 -1
  371. package/cjs/components/Splitter/Splitter.context.cjs.map +1 -1
  372. package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs +1 -2
  373. package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs.map +1 -1
  374. package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
  375. package/cjs/components/Stack/Stack.cjs.map +1 -1
  376. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  377. package/cjs/components/Stepper/Stepper.context.cjs.map +1 -1
  378. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  379. package/cjs/components/Switch/Switch.cjs.map +1 -1
  380. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
  381. package/cjs/components/Table/Table.cjs.map +1 -1
  382. package/cjs/components/Table/Table.components.cjs.map +1 -1
  383. package/cjs/components/Table/Table.context.cjs.map +1 -1
  384. package/cjs/components/Table/TableDataRenderer.cjs.map +1 -1
  385. package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
  386. package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
  387. package/cjs/components/Tabs/Tabs.cjs +16 -1
  388. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  389. package/cjs/components/Tabs/Tabs.context.cjs.map +1 -1
  390. package/cjs/components/Tabs/TabsList/TabsList.cjs.map +1 -1
  391. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs +6 -0
  392. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  393. package/cjs/components/Tabs/TabsTab/TabsTab.cjs +1 -1
  394. package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
  395. package/cjs/components/TagsInput/TagsInput.cjs +4 -1
  396. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  397. package/cjs/components/TagsInput/filter-picked-tags.cjs.map +1 -1
  398. package/cjs/components/TagsInput/get-splitted-tags.cjs.map +1 -1
  399. package/cjs/components/Text/Text.cjs.map +1 -1
  400. package/cjs/components/TextInput/TextInput.cjs.map +1 -1
  401. package/cjs/components/Textarea/Autosize.cjs.map +1 -1
  402. package/cjs/components/Textarea/Textarea.cjs.map +1 -1
  403. package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
  404. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  405. package/cjs/components/Timeline/Timeline.context.cjs.map +1 -1
  406. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  407. package/cjs/components/Title/Title.cjs.map +1 -1
  408. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  409. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  410. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
  411. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
  412. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  413. package/cjs/components/Transition/Transition.cjs.map +1 -1
  414. package/cjs/components/Transition/get-transition-styles/get-transition-styles.cjs.map +1 -1
  415. package/cjs/components/Transition/use-transition.cjs.map +1 -1
  416. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
  417. package/cjs/components/Tree/Tree.cjs.map +1 -1
  418. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  419. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs.map +1 -1
  420. package/cjs/components/Tree/is-node-checked/is-node-checked.cjs.map +1 -1
  421. package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs.map +1 -1
  422. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
  423. package/cjs/components/Tree/use-tree.cjs.map +1 -1
  424. package/cjs/components/TreeSelect/TreeSelect.cjs +7 -1
  425. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  426. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -1
  427. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +1 -1
  428. package/cjs/components/Typography/Typography.cjs.map +1 -1
  429. package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
  430. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  431. package/cjs/core/Box/Box.cjs.map +1 -1
  432. package/cjs/core/Box/get-box-mod/get-box-mod.cjs.map +1 -1
  433. package/cjs/core/Box/get-box-style/get-box-style.cjs.map +1 -1
  434. package/cjs/core/Box/get-style-object/get-style-object.cjs.map +1 -1
  435. package/cjs/core/Box/style-props/parse-style-props/parse-style-props.cjs.map +1 -1
  436. package/cjs/core/Box/style-props/parse-style-props/sort-media-queries.cjs.map +1 -1
  437. package/cjs/core/Box/style-props/resolvers/border-resolver/border-resolver.cjs.map +1 -1
  438. package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
  439. package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
  440. package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
  441. package/cjs/core/InlineStyles/css-object-to-string/css-object-to-string.cjs.map +1 -1
  442. package/cjs/core/InlineStyles/hash-styles.cjs.map +1 -1
  443. package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs.map +1 -1
  444. package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
  445. package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs.map +1 -1
  446. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
  447. package/cjs/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.cjs +5 -1
  448. package/cjs/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.cjs.map +1 -1
  449. package/cjs/core/MantineProvider/MantineCssVariables/get-css-color-variables.cjs.map +1 -1
  450. package/cjs/core/MantineProvider/MantineCssVariables/remove-default-variables.cjs.map +1 -1
  451. package/cjs/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.cjs +3 -1
  452. package/cjs/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.cjs.map +1 -1
  453. package/cjs/core/MantineProvider/MantineCssVariables/virtual-color/virtual-color.cjs.map +1 -1
  454. package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
  455. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
  456. package/cjs/core/MantineProvider/color-functions/colors-tuple/colors-tuple.cjs.map +1 -1
  457. package/cjs/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs +3 -1
  458. package/cjs/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs.map +1 -1
  459. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs +19 -3
  460. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs.map +1 -1
  461. package/cjs/core/MantineProvider/color-functions/parse-theme-color/parse-theme-color.cjs.map +1 -1
  462. package/cjs/core/MantineProvider/color-functions/to-rgba/to-rgba.cjs.map +1 -1
  463. package/cjs/core/MantineProvider/convert-css-variables/convert-css-variables.cjs.map +1 -1
  464. package/cjs/core/MantineProvider/convert-css-variables/css-variables-object-to-string.cjs.map +1 -1
  465. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
  466. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
  467. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
  468. package/cjs/core/MantineProvider/use-props/use-props.cjs.map +1 -1
  469. package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs.map +1 -1
  470. package/cjs/core/factory/factory.cjs.map +1 -1
  471. package/cjs/core/factory/polymorphic-factory.cjs.map +1 -1
  472. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs.map +1 -1
  473. package/cjs/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.cjs.map +1 -1
  474. package/cjs/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.cjs.map +1 -1
  475. package/cjs/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.cjs.map +1 -1
  476. package/cjs/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.cjs.map +1 -1
  477. package/cjs/core/styles-api/use-styles/get-style/get-style.cjs.map +1 -1
  478. package/cjs/core/styles-api/use-styles/get-style/resolve-vars/merge-vars.cjs.map +1 -1
  479. package/cjs/core/styles-api/use-styles/use-styles.cjs.map +1 -1
  480. package/cjs/core/styles-api/use-styles/use-transformed-styles.cjs.map +1 -1
  481. package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
  482. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs +3 -5
  483. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs.map +1 -1
  484. package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs.map +1 -1
  485. package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -1
  486. package/cjs/core/utils/filter-props/filter-props.cjs.map +1 -1
  487. package/cjs/core/utils/get-context-item-index/get-context-item-index.cjs.map +1 -1
  488. package/cjs/core/utils/get-safe-id/get-safe-id.cjs.map +1 -1
  489. package/cjs/core/utils/is-number-like/is-number-like.cjs.map +1 -1
  490. package/cjs/core/utils/units-converters/px.cjs.map +1 -1
  491. package/cjs/core/utils/units-converters/rem.cjs.map +1 -1
  492. package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
  493. package/cjs/index.cjs +42 -2
  494. package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs.map +1 -1
  495. package/cjs/utils/Floating/use-context-menu-handlers.cjs.map +1 -1
  496. package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
  497. package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
  498. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
  499. package/esm/components/Accordion/Accordion.mjs +1 -0
  500. package/esm/components/Accordion/Accordion.mjs.map +1 -1
  501. package/esm/components/ActionIcon/ActionIcon.mjs +1 -0
  502. package/esm/components/ActionIcon/ActionIcon.mjs.map +1 -1
  503. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs +1 -1
  504. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  505. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs.map +1 -1
  506. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
  507. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
  508. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs.map +1 -1
  509. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs.map +1 -1
  510. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs.map +1 -1
  511. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs.map +1 -1
  512. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs.map +1 -1
  513. package/esm/components/AppShell/AppShellMediaStyles/assign-padding-variables/assign-padding-variables.mjs.map +1 -1
  514. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs.map +1 -1
  515. package/esm/components/AppShell/AppShellMediaStyles/is-primitive-size/is-primitive-size.mjs.map +1 -1
  516. package/esm/components/AppShell/AppShellMediaStyles/is-responsive-size/is-responsive-size.mjs.map +1 -1
  517. package/esm/components/AspectRatio/AspectRatio.mjs.map +1 -1
  518. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  519. package/esm/components/Avatar/AvatarGroup/AvatarGroup.mjs.map +1 -1
  520. package/esm/components/Avatar/get-initials/get-initials.mjs.map +1 -1
  521. package/esm/components/BackgroundImage/BackgroundImage.mjs.map +1 -1
  522. package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
  523. package/esm/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  524. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs.map +1 -1
  525. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs.map +1 -1
  526. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  527. package/esm/components/Collapse/Collapse.mjs.map +1 -1
  528. package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
  529. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs.map +1 -1
  530. package/esm/components/ColorPicker/converters/converters.mjs.map +1 -1
  531. package/esm/components/ColorPicker/converters/parsers.mjs.map +1 -1
  532. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs.map +1 -1
  533. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs.map +1 -1
  534. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs +3 -2
  535. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs.map +1 -1
  536. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs.map +1 -1
  537. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs +2 -2
  538. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  539. package/esm/components/Combobox/OptionsDropdown/default-options-filter.mjs.map +1 -1
  540. package/esm/components/Combobox/use-combobox/get-index/get-index.mjs.map +1 -1
  541. package/esm/components/Combobox/use-combobox/use-combobox.mjs.map +1 -1
  542. package/esm/components/Combobox/use-pills-reorder/use-pills-reorder.mjs.map +1 -1
  543. package/esm/components/ComboboxPopover/ComboboxPopover.mjs +216 -0
  544. package/esm/components/ComboboxPopover/ComboboxPopover.mjs.map +1 -0
  545. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs +45 -0
  546. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs.map +1 -0
  547. package/esm/components/DataList/DataList.context.mjs +8 -0
  548. package/esm/components/DataList/DataList.context.mjs.map +1 -0
  549. package/esm/components/DataList/DataList.mjs +61 -0
  550. package/esm/components/DataList/DataList.mjs.map +1 -0
  551. package/esm/components/DataList/DataList.module.mjs +12 -0
  552. package/esm/components/DataList/DataList.module.mjs.map +1 -0
  553. package/esm/components/DataList/DataListItem/DataListItem.mjs +32 -0
  554. package/esm/components/DataList/DataListItem/DataListItem.mjs.map +1 -0
  555. package/esm/components/DataList/DataListItemLabel/DataListItemLabel.mjs +33 -0
  556. package/esm/components/DataList/DataListItemLabel/DataListItemLabel.mjs.map +1 -0
  557. package/esm/components/DataList/DataListItemValue/DataListItemValue.mjs +33 -0
  558. package/esm/components/DataList/DataListItemValue/DataListItemValue.mjs.map +1 -0
  559. package/esm/components/Drawer/DrawerBody.mjs.map +1 -1
  560. package/esm/components/Drawer/DrawerCloseButton.mjs.map +1 -1
  561. package/esm/components/Drawer/DrawerHeader.mjs.map +1 -1
  562. package/esm/components/Drawer/DrawerOverlay.mjs.map +1 -1
  563. package/esm/components/Drawer/DrawerRoot.mjs.map +1 -1
  564. package/esm/components/Drawer/DrawerTitle.mjs.map +1 -1
  565. package/esm/components/EmptyState/EmptyState.context.mjs +8 -0
  566. package/esm/components/EmptyState/EmptyState.context.mjs.map +1 -0
  567. package/esm/components/EmptyState/EmptyState.mjs +102 -0
  568. package/esm/components/EmptyState/EmptyState.mjs.map +1 -0
  569. package/esm/components/EmptyState/EmptyState.module.mjs +14 -0
  570. package/esm/components/EmptyState/EmptyState.module.mjs.map +1 -0
  571. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs +28 -0
  572. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs.map +1 -0
  573. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs +29 -0
  574. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs.map +1 -0
  575. package/esm/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.mjs +29 -0
  576. package/esm/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.mjs.map +1 -0
  577. package/esm/components/EmptyState/EmptyStateTitle/EmptyStateTitle.mjs +30 -0
  578. package/esm/components/EmptyState/EmptyStateTitle/EmptyStateTitle.mjs.map +1 -0
  579. package/esm/components/FileInput/FileInput.mjs.map +1 -1
  580. package/esm/components/Grid/GridCol/GridColVariables.mjs.map +1 -1
  581. package/esm/components/Grid/GridVariables.mjs.map +1 -1
  582. package/esm/components/Group/Group.mjs.map +1 -1
  583. package/esm/components/Group/filter-falsy-children/filter-falsy-children.mjs.map +1 -1
  584. package/esm/components/Highlight/highlighter/highlighter.mjs.map +1 -1
  585. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs.map +1 -1
  586. package/esm/components/HoverCard/use-hover-card.mjs.map +1 -1
  587. package/esm/components/Input/Input.mjs +7 -2
  588. package/esm/components/Input/Input.mjs.map +1 -1
  589. package/esm/components/Input/Input.module.mjs +1 -0
  590. package/esm/components/Input/Input.module.mjs.map +1 -1
  591. package/esm/components/Input/InputDescription/InputDescription.mjs.map +1 -1
  592. package/esm/components/Input/InputError/InputError.mjs.map +1 -1
  593. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs.map +1 -1
  594. package/esm/components/Input/InputSuccess/InputSuccess.mjs +48 -0
  595. package/esm/components/Input/InputSuccess/InputSuccess.mjs.map +1 -0
  596. package/esm/components/Input/InputWrapper/InputWrapper.mjs +22 -5
  597. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  598. package/esm/components/Input/use-input-props.mjs +4 -1
  599. package/esm/components/Input/use-input-props.mjs.map +1 -1
  600. package/esm/components/JsonInput/validate-json/validate-json.mjs.map +1 -1
  601. package/esm/components/Kbd/Kbd.mjs.map +1 -1
  602. package/esm/components/Mark/Mark.mjs.map +1 -1
  603. package/esm/components/Marquee/Marquee.mjs.map +1 -1
  604. package/esm/components/Menu/MenuDivider/MenuDivider.mjs.map +1 -1
  605. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
  606. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  607. package/esm/components/Menu/MenuLabel/MenuLabel.mjs.map +1 -1
  608. package/esm/components/Menu/MenuSearch/MenuSearch.mjs.map +1 -1
  609. package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs.map +1 -1
  610. package/esm/components/Menu/MenuSub/MenuSub.mjs.map +1 -1
  611. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  612. package/esm/components/Menu/use-menu-type-ahead.mjs.map +1 -1
  613. package/esm/components/Menubar/Menubar.context.mjs +9 -0
  614. package/esm/components/Menubar/Menubar.context.mjs.map +1 -0
  615. package/esm/components/Menubar/Menubar.mjs +146 -0
  616. package/esm/components/Menubar/Menubar.mjs.map +1 -0
  617. package/esm/components/Menubar/Menubar.module.mjs +10 -0
  618. package/esm/components/Menubar/Menubar.module.mjs.map +1 -0
  619. package/esm/components/Menubar/MenubarDropdown/MenubarDropdown.mjs +61 -0
  620. package/esm/components/Menubar/MenubarDropdown/MenubarDropdown.mjs.map +1 -0
  621. package/esm/components/Menubar/MenubarMenu/MenubarMenu.mjs +59 -0
  622. package/esm/components/Menubar/MenubarMenu/MenubarMenu.mjs.map +1 -0
  623. package/esm/components/Menubar/MenubarTarget/MenubarTarget.mjs +143 -0
  624. package/esm/components/Menubar/MenubarTarget/MenubarTarget.mjs.map +1 -0
  625. package/esm/components/Modal/ModalBody.mjs.map +1 -1
  626. package/esm/components/Modal/ModalCloseButton.mjs.map +1 -1
  627. package/esm/components/Modal/ModalHeader.mjs.map +1 -1
  628. package/esm/components/Modal/ModalOverlay.mjs.map +1 -1
  629. package/esm/components/Modal/ModalTitle.mjs.map +1 -1
  630. package/esm/components/ModalBase/ModalBase.mjs.map +1 -1
  631. package/esm/components/MultiSelect/MultiSelect.mjs +4 -1
  632. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  633. package/esm/components/MultiSelect/filter-picked-values.mjs.map +1 -1
  634. package/esm/components/NativeSelect/NativeSelect.mjs.map +1 -1
  635. package/esm/components/NativeSelect/NativeSelectOption.mjs.map +1 -1
  636. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  637. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  638. package/esm/components/OverflowList/get-row-position-data.mjs.map +1 -1
  639. package/esm/components/OverflowList/use-dimensions.mjs.map +1 -1
  640. package/esm/components/Overlay/Overlay.mjs.map +1 -1
  641. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  642. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs.map +1 -1
  643. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs.map +1 -1
  644. package/esm/components/PasswordInput/PasswordInput.mjs +11 -2
  645. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  646. package/esm/components/Pill/PillGroup/PillGroup.mjs.map +1 -1
  647. package/esm/components/PillsInput/PillsInput.mjs.map +1 -1
  648. package/esm/components/PinInput/PinInput.mjs +2 -1
  649. package/esm/components/PinInput/PinInput.mjs.map +1 -1
  650. package/esm/components/PinInput/create-pin-array/create-pin-array.mjs.map +1 -1
  651. package/esm/components/Popover/use-popover.mjs.map +1 -1
  652. package/esm/components/Portal/Portal.mjs.map +1 -1
  653. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs.map +1 -1
  654. package/esm/components/Radio/Radio.mjs.map +1 -1
  655. package/esm/components/Radio/RadioCard/RadioCard.mjs.map +1 -1
  656. package/esm/components/Rating/Rating.mjs.map +1 -1
  657. package/esm/components/Rating/RatingItem/RatingItem.mjs.map +1 -1
  658. package/esm/components/Rating/StarSymbol/StarSymbol.mjs.map +1 -1
  659. package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
  660. package/esm/components/RingProgress/get-curves/get-curves.mjs.map +1 -1
  661. package/esm/components/RollingNumber/get-digit-parts.mjs.map +1 -1
  662. package/esm/components/RollingNumber/get-render-slots.mjs.map +1 -1
  663. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs +1 -0
  664. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs.map +1 -1
  665. package/esm/components/ScrollArea/utils/add-unlinked-scroll-listener.mjs.map +1 -1
  666. package/esm/components/ScrollArea/utils/get-scroll-position-from-pointer.mjs.map +1 -1
  667. package/esm/components/ScrollArea/utils/get-thumb-offset-from-scroll.mjs.map +1 -1
  668. package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  669. package/esm/components/Select/Select.mjs.map +1 -1
  670. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs +4 -1
  671. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs.map +1 -1
  672. package/esm/components/SemiCircleProgress/SemiCircleProgress.module.mjs.map +1 -1
  673. package/esm/components/SimpleGrid/SimpleGridVariables.mjs.map +1 -1
  674. package/esm/components/Skeleton/Skeleton.mjs.map +1 -1
  675. package/esm/components/Slider/RangeSlider/RangeSlider.mjs.map +1 -1
  676. package/esm/components/Slider/utils/get-precision/get-precision.mjs.map +1 -1
  677. package/esm/components/Slider/utils/get-step-mark-value/get-step-mark-value.mjs.map +1 -1
  678. package/esm/components/Splitter/Splitter.context.mjs.map +1 -1
  679. package/esm/components/Splitter/Splitter.mjs +22 -1
  680. package/esm/components/Splitter/Splitter.mjs.map +1 -1
  681. package/esm/components/Splitter/SplitterPane/SplitterPane.mjs +1 -2
  682. package/esm/components/Splitter/SplitterPane/SplitterPane.mjs.map +1 -1
  683. package/esm/components/Stack/Stack.mjs.map +1 -1
  684. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  685. package/esm/components/Switch/Switch.mjs.map +1 -1
  686. package/esm/components/Table/Table.components.mjs.map +1 -1
  687. package/esm/components/TableOfContents/TableOfContents.mjs.map +1 -1
  688. package/esm/components/Tabs/Tabs.context.mjs.map +1 -1
  689. package/esm/components/Tabs/Tabs.mjs +18 -3
  690. package/esm/components/Tabs/Tabs.mjs.map +1 -1
  691. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs +7 -1
  692. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs.map +1 -1
  693. package/esm/components/Tabs/TabsTab/TabsTab.mjs +1 -1
  694. package/esm/components/Tabs/TabsTab/TabsTab.mjs.map +1 -1
  695. package/esm/components/TagsInput/TagsInput.mjs +4 -1
  696. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  697. package/esm/components/TagsInput/filter-picked-tags.mjs.map +1 -1
  698. package/esm/components/TagsInput/get-splitted-tags.mjs.map +1 -1
  699. package/esm/components/Text/Text.mjs.map +1 -1
  700. package/esm/components/Textarea/Autosize.mjs.map +1 -1
  701. package/esm/components/ThemeIcon/ThemeIcon.mjs.map +1 -1
  702. package/esm/components/Title/Title.mjs.map +1 -1
  703. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  704. package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
  705. package/esm/components/Transition/get-transition-styles/get-transition-styles.mjs.map +1 -1
  706. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
  707. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  708. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs.map +1 -1
  709. package/esm/components/Tree/is-node-checked/is-node-checked.mjs.map +1 -1
  710. package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs.map +1 -1
  711. package/esm/components/Tree/use-tree.mjs.map +1 -1
  712. package/esm/components/TreeSelect/TreeSelect.mjs +7 -1
  713. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
  714. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +1 -1
  715. package/esm/components/Typography/Typography.mjs.map +1 -1
  716. package/esm/components/UnstyledButton/UnstyledButton.mjs.map +1 -1
  717. package/esm/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -1
  718. package/esm/core/Box/Box.mjs.map +1 -1
  719. package/esm/core/Box/get-box-mod/get-box-mod.mjs.map +1 -1
  720. package/esm/core/Box/get-box-style/get-box-style.mjs.map +1 -1
  721. package/esm/core/Box/get-style-object/get-style-object.mjs.map +1 -1
  722. package/esm/core/Box/style-props/parse-style-props/parse-style-props.mjs.map +1 -1
  723. package/esm/core/Box/style-props/parse-style-props/sort-media-queries.mjs.map +1 -1
  724. package/esm/core/Box/style-props/resolvers/border-resolver/border-resolver.mjs.map +1 -1
  725. package/esm/core/Box/use-random-classname/use-random-classname.mjs.map +1 -1
  726. package/esm/core/InlineStyles/InlineStyles.mjs.map +1 -1
  727. package/esm/core/InlineStyles/css-object-to-string/css-object-to-string.mjs.map +1 -1
  728. package/esm/core/InlineStyles/hash-styles.mjs.map +1 -1
  729. package/esm/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.mjs.map +1 -1
  730. package/esm/core/MantineProvider/Mantine.context.mjs.map +1 -1
  731. package/esm/core/MantineProvider/MantineClasses/MantineClasses.mjs.map +1 -1
  732. package/esm/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.mjs +6 -2
  733. package/esm/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.mjs.map +1 -1
  734. package/esm/core/MantineProvider/MantineCssVariables/get-css-color-variables.mjs.map +1 -1
  735. package/esm/core/MantineProvider/MantineCssVariables/remove-default-variables.mjs.map +1 -1
  736. package/esm/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.mjs +3 -1
  737. package/esm/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.mjs.map +1 -1
  738. package/esm/core/MantineProvider/MantineCssVariables/virtual-color/virtual-color.mjs.map +1 -1
  739. package/esm/core/MantineProvider/color-functions/colors-tuple/colors-tuple.mjs.map +1 -1
  740. package/esm/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs +3 -1
  741. package/esm/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs.map +1 -1
  742. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs +19 -4
  743. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs.map +1 -1
  744. package/esm/core/MantineProvider/color-functions/parse-theme-color/parse-theme-color.mjs.map +1 -1
  745. package/esm/core/MantineProvider/color-functions/to-rgba/to-rgba.mjs.map +1 -1
  746. package/esm/core/MantineProvider/convert-css-variables/convert-css-variables.mjs.map +1 -1
  747. package/esm/core/MantineProvider/convert-css-variables/css-variables-object-to-string.mjs.map +1 -1
  748. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs.map +1 -1
  749. package/esm/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.mjs.map +1 -1
  750. package/esm/core/MantineProvider/use-props/use-props.mjs.map +1 -1
  751. package/esm/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.mjs.map +1 -1
  752. package/esm/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.mjs.map +1 -1
  753. package/esm/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.mjs.map +1 -1
  754. package/esm/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.mjs.map +1 -1
  755. package/esm/core/styles-api/use-styles/get-style/get-style.mjs.map +1 -1
  756. package/esm/core/styles-api/use-styles/get-style/resolve-vars/merge-vars.mjs.map +1 -1
  757. package/esm/core/styles-api/use-styles/use-styles.mjs.map +1 -1
  758. package/esm/core/styles-api/use-styles/use-transformed-styles.mjs.map +1 -1
  759. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs +3 -5
  760. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs.map +1 -1
  761. package/esm/core/utils/create-use-external-events/create-use-external-events.mjs.map +1 -1
  762. package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -1
  763. package/esm/core/utils/filter-props/filter-props.mjs.map +1 -1
  764. package/esm/core/utils/get-context-item-index/get-context-item-index.mjs.map +1 -1
  765. package/esm/core/utils/get-safe-id/get-safe-id.mjs.map +1 -1
  766. package/esm/core/utils/is-number-like/is-number-like.mjs.map +1 -1
  767. package/esm/core/utils/units-converters/px.mjs.map +1 -1
  768. package/esm/core/utils/units-converters/rem.mjs.map +1 -1
  769. package/esm/index.mjs +23 -4
  770. package/lib/components/Accordion/Accordion.d.ts +4 -4
  771. package/lib/components/ActionIcon/ActionIcon.d.ts +3 -3
  772. package/lib/components/Combobox/Combobox.types.d.ts +4 -3
  773. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +1 -1
  774. package/lib/components/Combobox/index.d.ts +1 -1
  775. package/lib/components/ComboboxPopover/ComboboxPopover.d.ts +110 -0
  776. package/lib/components/ComboboxPopover/ComboboxPopover.types.d.ts +2 -0
  777. package/lib/components/ComboboxPopover/ComboboxPopoverTarget.d.ts +16 -0
  778. package/lib/components/ComboboxPopover/index.d.ts +14 -0
  779. package/lib/components/DataList/DataList.context.d.ts +6 -0
  780. package/lib/components/DataList/DataList.d.ts +44 -0
  781. package/lib/components/DataList/DataListItem/DataListItem.d.ts +18 -0
  782. package/lib/components/DataList/DataListItemLabel/DataListItemLabel.d.ts +18 -0
  783. package/lib/components/DataList/DataListItemValue/DataListItemValue.d.ts +18 -0
  784. package/lib/components/DataList/index.d.ts +32 -0
  785. package/lib/components/EmptyState/EmptyState.context.d.ts +8 -0
  786. package/lib/components/EmptyState/EmptyState.d.ts +83 -0
  787. package/lib/components/EmptyState/EmptyStateActions/EmptyStateActions.d.ts +18 -0
  788. package/lib/components/EmptyState/EmptyStateDescription/EmptyStateDescription.d.ts +18 -0
  789. package/lib/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.d.ts +18 -0
  790. package/lib/components/EmptyState/EmptyStateTitle/EmptyStateTitle.d.ts +20 -0
  791. package/lib/components/EmptyState/index.d.ts +13 -0
  792. package/lib/components/Input/Input.d.ts +11 -0
  793. package/lib/components/Input/InputSuccess/InputSuccess.d.ts +23 -0
  794. package/lib/components/Input/InputWrapper/InputWrapper.d.ts +7 -2
  795. package/lib/components/Input/index.d.ts +3 -1
  796. package/lib/components/Input/use-input-props.d.ts +5 -2
  797. package/lib/components/MaskInput/use-mask-input-props.d.ts +5 -1
  798. package/lib/components/Menubar/Menubar.context.d.ts +51 -0
  799. package/lib/components/Menubar/Menubar.d.ts +56 -0
  800. package/lib/components/Menubar/MenubarDropdown/MenubarDropdown.d.ts +7 -0
  801. package/lib/components/Menubar/MenubarMenu/MenubarMenu.d.ts +9 -0
  802. package/lib/components/Menubar/MenubarTarget/MenubarTarget.d.ts +14 -0
  803. package/lib/components/Menubar/index.d.ts +11 -0
  804. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  805. package/lib/components/NativeSelect/NativeSelect.d.ts +2 -2
  806. package/lib/components/PinInput/PinInput.d.ts +2 -0
  807. package/lib/components/Splitter/Splitter.context.d.ts +3 -1
  808. package/lib/components/Splitter/Splitter.d.ts +10 -10
  809. package/lib/components/Splitter/SplitterPane/SplitterPane.d.ts +9 -8
  810. package/lib/components/Tabs/Tabs.context.d.ts +2 -0
  811. package/lib/components/index.d.ts +4 -0
  812. package/lib/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.d.ts +7 -2
  813. package/lib/core/MantineProvider/color-functions/index.d.ts +1 -1
  814. package/package.json +5 -5
  815. package/styles/DataList.css +54 -0
  816. package/styles/DataList.layer.css +55 -0
  817. package/styles/EmptyState.css +121 -0
  818. package/styles/EmptyState.layer.css +122 -0
  819. package/styles/Input.css +21 -2
  820. package/styles/Input.layer.css +21 -2
  821. package/styles/Menubar.css +29 -0
  822. package/styles/Menubar.layer.css +30 -0
  823. package/styles/SemiCircleProgress.css +1 -0
  824. package/styles/SemiCircleProgress.layer.css +1 -0
  825. package/styles/default-css-variables.css +2 -0
  826. package/styles/default-css-variables.layer.css +2 -0
  827. package/styles.css +231 -2
  828. package/styles.layer.css +231 -2
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSubDropdown.cjs","names":["factory","useProps","useMenuContext","SubMenuContext","useMenuTypeAhead","createEventHandler","Popover","classes"],"sources":["../../../../src/components/Menu/MenuSubDropdown/MenuSubDropdown.tsx"],"sourcesContent":["import { use, useRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n BoxProps,\n CompoundStylesApiProps,\n createEventHandler,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\nimport { SubMenuContext } from '../MenuSub/MenuSub.context';\nimport { useMenuTypeAhead } from '../use-menu-type-ahead';\nimport classes from '../Menu.module.css';\n\nexport type MenuSubDropdownStylesNames = 'dropdown';\n\nexport interface MenuSubDropdownProps\n extends BoxProps, CompoundStylesApiProps<MenuSubDropdownFactory>, ElementProps<'div'> {}\n\nexport type MenuSubDropdownFactory = Factory<{\n props: MenuSubDropdownProps;\n ref: HTMLDivElement;\n stylesNames: MenuSubDropdownStylesNames;\n compound: true;\n}>;\n\nexport const MenuSubDropdown = factory<MenuSubDropdownFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n onMouseEnter,\n onMouseLeave,\n onPointerEnter,\n onPointerLeave,\n onKeyDown,\n children,\n ref,\n ...others\n } = useProps('MenuSubDropdown', null, props);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const ctx = useMenuContext();\n const subCtx = use(SubMenuContext);\n\n const typeAhead = useMenuTypeAhead({\n enabled: !ctx.hasSearch,\n opened: subCtx?.opened ?? false,\n getDropdown: () => wrapperRef.current,\n });\n\n const handleKeyDown = createEventHandler<any>(onKeyDown, (event) => {\n typeAhead(event);\n if (\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.key.length === 1 &&\n event.key !== ' '\n ) {\n event.stopPropagation();\n }\n });\n\n const floatingProps = subCtx?.getFloatingProps({\n onMouseEnter,\n onMouseLeave,\n onPointerEnter,\n onPointerLeave,\n });\n\n return (\n <Popover.Dropdown\n {...others}\n {...floatingProps}\n role=\"menu\"\n aria-orientation=\"vertical\"\n ref={useMergedRef(ref, wrapperRef, subCtx?.setFloating)}\n {...ctx.getStyles('dropdown', {\n className,\n style,\n styles,\n classNames,\n withStaticClass: false,\n })}\n tabIndex={-1}\n data-menu-dropdown\n onKeyDown={handleKeyDown}\n >\n {children}\n </Popover.Dropdown>\n );\n});\n\nMenuSubDropdown.classes = classes;\nMenuSubDropdown.displayName = '@mantine/core/MenuSubDropdown';\n"],"mappings":";;;;;;;;;;;;;AA6BA,MAAa,kBAAkBA,gBAAAA,SAAiC,UAAU;CACxE,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,cACA,cACA,gBACA,gBACA,WACA,UACA,KACA,GAAG,WACDC,kBAAAA,SAAS,mBAAmB,MAAM,KAAK;CAE3C,MAAM,cAAA,GAAA,MAAA,QAAoC,IAAI;CAC9C,MAAM,MAAMC,qBAAAA,eAAe;CAC3B,MAAM,UAAA,GAAA,MAAA,KAAaC,wBAAAA,cAAc;CAEjC,MAAM,YAAYC,4BAAAA,iBAAiB;EACjC,SAAS,CAAC,IAAI;EACd,QAAQ,QAAQ,UAAU;EAC1B,mBAAmB,WAAW;CAChC,CAAC;CAED,MAAM,gBAAgBC,6BAAAA,mBAAwB,YAAY,UAAU;EAClE,UAAU,KAAK;EACf,IACE,CAAC,MAAM,WACP,CAAC,MAAM,WACP,CAAC,MAAM,UACP,MAAM,IAAI,WAAW,KACrB,MAAM,QAAQ,KAEd,MAAM,gBAAgB;CAE1B,CAAC;CAED,MAAM,gBAAgB,QAAQ,iBAAiB;EAC7C;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,QAAQ,UAAT;EACE,GAAI;EACJ,GAAI;EACJ,MAAK;EACL,oBAAiB;EACjB,MAAA,GAAA,eAAA,cAAkB,KAAK,YAAY,QAAQ,WAAW;EACtD,GAAI,IAAI,UAAU,YAAY;GAC5B;GACA;GACA;GACA;GACA,iBAAiB;EACnB,CAAC;EACD,UAAU;EACV,sBAAA;EACA,WAAW;EAEV;CACe,CAAA;AAEtB,CAAC;AAED,gBAAgB,UAAUC,oBAAAA;AAC1B,gBAAgB,cAAc"}
1
+ {"version":3,"file":"MenuSubDropdown.cjs","names":["factory","useProps","useMenuContext","SubMenuContext","useMenuTypeAhead","createEventHandler","Popover","classes"],"sources":["../../../../src/components/Menu/MenuSubDropdown/MenuSubDropdown.tsx"],"sourcesContent":["import { use, useRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n BoxProps,\n CompoundStylesApiProps,\n createEventHandler,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\nimport { SubMenuContext } from '../MenuSub/MenuSub.context';\nimport { useMenuTypeAhead } from '../use-menu-type-ahead';\nimport classes from '../Menu.module.css';\n\nexport type MenuSubDropdownStylesNames = 'dropdown';\n\nexport interface MenuSubDropdownProps\n extends BoxProps, CompoundStylesApiProps<MenuSubDropdownFactory>, ElementProps<'div'> {}\n\nexport type MenuSubDropdownFactory = Factory<{\n props: MenuSubDropdownProps;\n ref: HTMLDivElement;\n stylesNames: MenuSubDropdownStylesNames;\n compound: true;\n}>;\n\nexport const MenuSubDropdown = factory<MenuSubDropdownFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n onMouseEnter,\n onMouseLeave,\n onPointerEnter,\n onPointerLeave,\n onKeyDown,\n children,\n ref,\n ...others\n } = useProps('MenuSubDropdown', null, props);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const ctx = useMenuContext();\n const subCtx = use(SubMenuContext);\n\n const typeAhead = useMenuTypeAhead({\n enabled: !ctx.hasSearch,\n opened: subCtx?.opened ?? false,\n getDropdown: () => wrapperRef.current,\n });\n\n const handleKeyDown = createEventHandler<any>(onKeyDown, (event) => {\n typeAhead(event);\n if (\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.key.length === 1 &&\n event.key !== ' '\n ) {\n event.stopPropagation();\n }\n });\n\n const floatingProps = subCtx?.getFloatingProps({\n onMouseEnter,\n onMouseLeave,\n onPointerEnter,\n onPointerLeave,\n });\n\n return (\n <Popover.Dropdown\n {...others}\n {...floatingProps}\n role=\"menu\"\n aria-orientation=\"vertical\"\n ref={useMergedRef(ref, wrapperRef, subCtx?.setFloating)}\n {...ctx.getStyles('dropdown', {\n className,\n style,\n styles,\n classNames,\n withStaticClass: false,\n })}\n tabIndex={-1}\n data-menu-dropdown\n onKeyDown={handleKeyDown}\n >\n {children}\n </Popover.Dropdown>\n );\n});\n\nMenuSubDropdown.classes = classes;\nMenuSubDropdown.displayName = '@mantine/core/MenuSubDropdown';\n"],"mappings":";;;;;;;;;;;;;AA6BA,MAAa,kBAAkBA,gBAAAA,SAAiC,UAAU;CACxE,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,cACA,cACA,gBACA,gBACA,WACA,UACA,KACA,GAAG,WACDC,kBAAAA,SAAS,mBAAmB,MAAM,KAAK;CAE3C,MAAM,cAAA,GAAA,MAAA,OAAA,CAAoC,IAAI;CAC9C,MAAM,MAAMC,qBAAAA,eAAe;CAC3B,MAAM,UAAA,GAAA,MAAA,IAAA,CAAaC,wBAAAA,cAAc;CAEjC,MAAM,YAAYC,4BAAAA,iBAAiB;EACjC,SAAS,CAAC,IAAI;EACd,QAAQ,QAAQ,UAAU;EAC1B,mBAAmB,WAAW;CAChC,CAAC;CAED,MAAM,gBAAgBC,6BAAAA,mBAAwB,YAAY,UAAU;EAClE,UAAU,KAAK;EACf,IACE,CAAC,MAAM,WACP,CAAC,MAAM,WACP,CAAC,MAAM,UACP,MAAM,IAAI,WAAW,KACrB,MAAM,QAAQ,KAEd,MAAM,gBAAgB;CAE1B,CAAC;CAED,MAAM,gBAAgB,QAAQ,iBAAiB;EAC7C;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,QAAQ,UAAT;EACE,GAAI;EACJ,GAAI;EACJ,MAAK;EACL,oBAAiB;EACjB,MAAA,GAAA,eAAA,aAAA,CAAkB,KAAK,YAAY,QAAQ,WAAW;EACtD,GAAI,IAAI,UAAU,YAAY;GAC5B;GACA;GACA;GACA;GACA,iBAAiB;EACnB,CAAC;EACD,UAAU;EACV,sBAAA;EACA,WAAW;EAEV;CACe,CAAA;AAEtB,CAAC;AAED,gBAAgB,UAAUC,oBAAAA;AAC1B,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSubItem.cjs","names":["polymorphicFactory","useProps","useMenuContext","SubMenuContext","useMantineTheme","useDirection","parseThemeColor","createEventHandler","UnstyledButton","createScopedKeydownHandler","AccordionChevron","classes"],"sources":["../../../../src/components/Menu/MenuSubItem/MenuSubItem.tsx"],"sourcesContent":["import { use, useRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n BoxProps,\n CompoundStylesApiProps,\n createEventHandler,\n createScopedKeydownHandler,\n MantineColor,\n parseThemeColor,\n polymorphicFactory,\n PolymorphicFactory,\n useDirection,\n useMantineTheme,\n useProps,\n} from '../../../core';\nimport { AccordionChevron } from '../../Accordion';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { useMenuContext } from '../Menu.context';\nimport { SubMenuContext } from '../MenuSub/MenuSub.context';\nimport classes from '../Menu.module.css';\n\nexport type MenuSubItemStylesNames = 'item' | 'itemLabel' | 'itemSection' | 'itemIndicator';\n\nexport interface MenuSubItemProps extends BoxProps, CompoundStylesApiProps<MenuSubItemFactory> {\n 'data-disabled'?: boolean;\n\n /** Item label */\n children?: React.ReactNode;\n\n /** Key of `theme.colors` or any valid CSS color */\n color?: MantineColor;\n\n /** Section displayed at the start of the label */\n leftSection?: React.ReactNode;\n\n /** Section displayed at the end of the label */\n rightSection?: React.ReactNode;\n\n /** Sets disabled attribute, applies disabled styles */\n disabled?: boolean;\n\n /** If set, the menu is closed when the item is clicked. Overrides `closeOnItemClick` prop on the `Menu` component. */\n closeMenuOnClick?: boolean;\n}\n\nexport type MenuSubItemFactory = PolymorphicFactory<{\n props: MenuSubItemProps;\n defaultRef: HTMLButtonElement;\n defaultComponent: 'button';\n stylesNames: MenuSubItemStylesNames;\n compound: true;\n}>;\n\nexport const MenuSubItem = polymorphicFactory<MenuSubItemFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n color,\n leftSection,\n rightSection,\n children,\n disabled,\n 'data-disabled': dataDisabled,\n closeMenuOnClick,\n ref,\n ...others\n } = useProps('MenuSubItem', null, props);\n\n const ctx = useMenuContext();\n const subCtx = use(SubMenuContext);\n const theme = useMantineTheme();\n const { dir } = useDirection();\n const itemRef = useRef<HTMLButtonElement>(null);\n const _others: any = others;\n\n const colors = color ? theme.variantColorResolver({ color, theme, variant: 'light' }) : undefined;\n const parsedThemeColor = color ? parseThemeColor({ color, theme }) : null;\n\n const handleKeydown = createEventHandler<any>(_others.onKeyDown, (event) => {\n if (event.key === 'ArrowRight') {\n subCtx?.open();\n subCtx?.focusFirstItem();\n }\n\n if (event.key === 'ArrowLeft' && subCtx?.parentContext) {\n subCtx.parentContext.close();\n subCtx.parentContext.focusParentItem();\n }\n });\n\n const handleClick = createEventHandler(_others.onClick, () => {\n if (!dataDisabled && closeMenuOnClick) {\n ctx.closeDropdownImmediately();\n }\n });\n\n const handleMouseMove = createEventHandler<any>(_others.onMouseMove, () => {\n if (!ctx.hasSearch) {\n return;\n }\n const dropdown = itemRef.current?.closest('[data-menu-dropdown]');\n if (!dropdown) {\n return;\n }\n dropdown.querySelectorAll<HTMLElement>('[data-menu-active]').forEach((node) => {\n if (node !== itemRef.current && node.closest('[data-menu-dropdown]') === dropdown) {\n node.removeAttribute('data-menu-active');\n }\n });\n });\n\n const referenceProps = subCtx?.getReferenceProps({\n onMouseEnter: _others.onMouseEnter,\n onMouseLeave: _others.onMouseLeave,\n onPointerEnter: _others.onPointerEnter,\n onPointerLeave: _others.onPointerLeave,\n });\n\n return (\n <UnstyledButton\n onMouseDown={(event) => event.preventDefault()}\n {...others}\n {...referenceProps}\n unstyled={ctx.unstyled}\n tabIndex={ctx.menuItemTabIndex}\n {...ctx.getStyles('item', { className, style, styles, classNames })}\n ref={useMergedRef(itemRef, ref, subCtx?.setReference)}\n role=\"menuitem\"\n disabled={disabled}\n data-menu-item\n data-sub-menu-item\n data-disabled={disabled || dataDisabled || undefined}\n data-mantine-stop-propagation\n onClick={handleClick}\n onMouseMove={handleMouseMove}\n onKeyDown={createScopedKeydownHandler({\n siblingSelector: '[data-menu-item]:not([data-disabled])',\n parentSelector: '[data-menu-dropdown]',\n activateOnFocus: false,\n loop: ctx.loop,\n dir,\n orientation: 'vertical',\n onKeyDown: handleKeydown,\n })}\n __vars={{\n '--menu-item-color':\n parsedThemeColor?.isThemeColor && parsedThemeColor?.shade === undefined\n ? `var(--mantine-color-${parsedThemeColor.color}-6)`\n : colors?.color,\n '--menu-item-hover': colors?.hover,\n }}\n >\n {ctx.alignItemsLabels === 'all' && (\n <div {...ctx.getStyles('itemIndicator', { styles, classNames })} data-placeholder />\n )}\n {leftSection && (\n <div {...ctx.getStyles('itemSection', { styles, classNames })} data-position=\"left\">\n {leftSection}\n </div>\n )}\n\n {children && (\n <div {...ctx.getStyles('itemLabel', { styles, classNames })} data-menu-item-label>\n {children}\n </div>\n )}\n\n <div {...ctx.getStyles('itemSection', { styles, classNames })} data-position=\"right\">\n {rightSection || <AccordionChevron {...ctx.getStyles('chevron')} size={14} />}\n </div>\n </UnstyledButton>\n );\n});\n\nMenuSubItem.classes = classes;\nMenuSubItem.displayName = '@mantine/core/MenuSubItem';\n"],"mappings":"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"}
1
+ {"version":3,"file":"MenuSubItem.cjs","names":["polymorphicFactory","useProps","useMenuContext","SubMenuContext","useMantineTheme","useDirection","parseThemeColor","createEventHandler","UnstyledButton","createScopedKeydownHandler","AccordionChevron","classes"],"sources":["../../../../src/components/Menu/MenuSubItem/MenuSubItem.tsx"],"sourcesContent":["import { use, useRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n BoxProps,\n CompoundStylesApiProps,\n createEventHandler,\n createScopedKeydownHandler,\n MantineColor,\n parseThemeColor,\n polymorphicFactory,\n PolymorphicFactory,\n useDirection,\n useMantineTheme,\n useProps,\n} from '../../../core';\nimport { AccordionChevron } from '../../Accordion';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { useMenuContext } from '../Menu.context';\nimport { SubMenuContext } from '../MenuSub/MenuSub.context';\nimport classes from '../Menu.module.css';\n\nexport type MenuSubItemStylesNames = 'item' | 'itemLabel' | 'itemSection' | 'itemIndicator';\n\nexport interface MenuSubItemProps extends BoxProps, CompoundStylesApiProps<MenuSubItemFactory> {\n 'data-disabled'?: boolean;\n\n /** Item label */\n children?: React.ReactNode;\n\n /** Key of `theme.colors` or any valid CSS color */\n color?: MantineColor;\n\n /** Section displayed at the start of the label */\n leftSection?: React.ReactNode;\n\n /** Section displayed at the end of the label */\n rightSection?: React.ReactNode;\n\n /** Sets disabled attribute, applies disabled styles */\n disabled?: boolean;\n\n /** If set, the menu is closed when the item is clicked. Overrides `closeOnItemClick` prop on the `Menu` component. */\n closeMenuOnClick?: boolean;\n}\n\nexport type MenuSubItemFactory = PolymorphicFactory<{\n props: MenuSubItemProps;\n defaultRef: HTMLButtonElement;\n defaultComponent: 'button';\n stylesNames: MenuSubItemStylesNames;\n compound: true;\n}>;\n\nexport const MenuSubItem = polymorphicFactory<MenuSubItemFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n color,\n leftSection,\n rightSection,\n children,\n disabled,\n 'data-disabled': dataDisabled,\n closeMenuOnClick,\n ref,\n ...others\n } = useProps('MenuSubItem', null, props);\n\n const ctx = useMenuContext();\n const subCtx = use(SubMenuContext);\n const theme = useMantineTheme();\n const { dir } = useDirection();\n const itemRef = useRef<HTMLButtonElement>(null);\n const _others: any = others;\n\n const colors = color ? theme.variantColorResolver({ color, theme, variant: 'light' }) : undefined;\n const parsedThemeColor = color ? parseThemeColor({ color, theme }) : null;\n\n const handleKeydown = createEventHandler<any>(_others.onKeyDown, (event) => {\n if (event.key === 'ArrowRight') {\n subCtx?.open();\n subCtx?.focusFirstItem();\n }\n\n if (event.key === 'ArrowLeft' && subCtx?.parentContext) {\n subCtx.parentContext.close();\n subCtx.parentContext.focusParentItem();\n }\n });\n\n const handleClick = createEventHandler(_others.onClick, () => {\n if (!dataDisabled && closeMenuOnClick) {\n ctx.closeDropdownImmediately();\n }\n });\n\n const handleMouseMove = createEventHandler<any>(_others.onMouseMove, () => {\n if (!ctx.hasSearch) {\n return;\n }\n const dropdown = itemRef.current?.closest('[data-menu-dropdown]');\n if (!dropdown) {\n return;\n }\n dropdown.querySelectorAll<HTMLElement>('[data-menu-active]').forEach((node) => {\n if (node !== itemRef.current && node.closest('[data-menu-dropdown]') === dropdown) {\n node.removeAttribute('data-menu-active');\n }\n });\n });\n\n const referenceProps = subCtx?.getReferenceProps({\n onMouseEnter: _others.onMouseEnter,\n onMouseLeave: _others.onMouseLeave,\n onPointerEnter: _others.onPointerEnter,\n onPointerLeave: _others.onPointerLeave,\n });\n\n return (\n <UnstyledButton\n onMouseDown={(event) => event.preventDefault()}\n {...others}\n {...referenceProps}\n unstyled={ctx.unstyled}\n tabIndex={ctx.menuItemTabIndex}\n {...ctx.getStyles('item', { className, style, styles, classNames })}\n ref={useMergedRef(itemRef, ref, subCtx?.setReference)}\n role=\"menuitem\"\n disabled={disabled}\n data-menu-item\n data-sub-menu-item\n data-disabled={disabled || dataDisabled || undefined}\n data-mantine-stop-propagation\n onClick={handleClick}\n onMouseMove={handleMouseMove}\n onKeyDown={createScopedKeydownHandler({\n siblingSelector: '[data-menu-item]:not([data-disabled])',\n parentSelector: '[data-menu-dropdown]',\n activateOnFocus: false,\n loop: ctx.loop,\n dir,\n orientation: 'vertical',\n onKeyDown: handleKeydown,\n })}\n __vars={{\n '--menu-item-color':\n parsedThemeColor?.isThemeColor && parsedThemeColor?.shade === undefined\n ? `var(--mantine-color-${parsedThemeColor.color}-6)`\n : colors?.color,\n '--menu-item-hover': colors?.hover,\n }}\n >\n {ctx.alignItemsLabels === 'all' && (\n <div {...ctx.getStyles('itemIndicator', { styles, classNames })} data-placeholder />\n )}\n {leftSection && (\n <div {...ctx.getStyles('itemSection', { styles, classNames })} data-position=\"left\">\n {leftSection}\n </div>\n )}\n\n {children && (\n <div {...ctx.getStyles('itemLabel', { styles, classNames })} data-menu-item-label>\n {children}\n </div>\n )}\n\n <div {...ctx.getStyles('itemSection', { styles, classNames })} data-position=\"right\">\n {rightSection || <AccordionChevron {...ctx.getStyles('chevron')} size={14} />}\n </div>\n </UnstyledButton>\n );\n});\n\nMenuSubItem.classes = classes;\nMenuSubItem.displayName = '@mantine/core/MenuSubItem';\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSubTarget.cjs","names":["isElement","Popover"],"sources":["../../../../src/components/Menu/MenuSubTarget/MenuSubTarget.tsx"],"sourcesContent":["import { isElement } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\n\nexport interface MenuSubTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop used to get element ref @default 'ref' */\n refProp?: string;\n}\n\nexport function MenuSubTarget({ children, refProp }: MenuSubTargetProps) {\n if (!isElement(children)) {\n throw new Error(\n 'Menu.Sub.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n useMenuContext();\n\n return (\n <Popover.Target refProp={refProp} popupType=\"menu\">\n {children}\n </Popover.Target>\n );\n}\n\nMenuSubTarget.displayName = '@mantine/core/MenuSubTarget';\n"],"mappings":";;;;;;AAYA,SAAgB,cAAc,EAAE,UAAU,WAA+B;CACvE,IAAI,CAACA,mBAAAA,UAAU,QAAQ,GACrB,MAAM,IAAI,MACR,mKACF;CAGF,qBAAA,eAAe;CAEf,OACE,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,QAAQ,QAAT;EAAyB;EAAS,WAAU;EACzC;CACa,CAAA;AAEpB;AAEA,cAAc,cAAc"}
1
+ {"version":3,"file":"MenuSubTarget.cjs","names":["isElement","Popover"],"sources":["../../../../src/components/Menu/MenuSubTarget/MenuSubTarget.tsx"],"sourcesContent":["import { isElement } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\n\nexport interface MenuSubTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop used to get element ref @default 'ref' */\n refProp?: string;\n}\n\nexport function MenuSubTarget({ children, refProp }: MenuSubTargetProps) {\n if (!isElement(children)) {\n throw new Error(\n 'Menu.Sub.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n useMenuContext();\n\n return (\n <Popover.Target refProp={refProp} popupType=\"menu\">\n {children}\n </Popover.Target>\n );\n}\n\nMenuSubTarget.displayName = '@mantine/core/MenuSubTarget';\n"],"mappings":";;;;;;AAYA,SAAgB,cAAc,EAAE,UAAU,WAA+B;CACvE,IAAI,CAACA,mBAAAA,UAAU,QAAQ,GACrB,MAAM,IAAI,MACR,mKACF;CAGF,qBAAA,eAAe;CAEf,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,QAAQ,QAAT;EAAyB;EAAS,WAAU;EACzC;CACa,CAAA;AAEpB;AAEA,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTarget.cjs","names":["useProps","getSingleElementChild","useMenuContext","createEventHandler","Popover"],"sources":["../../../../src/components/Menu/MenuTarget/MenuTarget.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport { createEventHandler, getSingleElementChild, useProps } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\n\nexport interface MenuTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop used to get element ref, useful for forwarding refs to custom components @default 'ref' */\n refProp?: string;\n}\n\nconst defaultProps = {\n refProp: 'ref',\n} satisfies Partial<MenuTargetProps>;\n\nexport function MenuTarget(props: MenuTargetProps) {\n const { children, refProp, ...others } = useProps('MenuTarget', defaultProps, props);\n\n const child = getSingleElementChild(children);\n if (!child) {\n throw new Error(\n 'Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n const ctx = useMenuContext();\n const _childProps = child.props as any;\n\n const onClick = createEventHandler(_childProps.onClick, () => {\n if (ctx.trigger === 'click') {\n ctx.toggleDropdown();\n } else if (ctx.trigger === 'click-hover') {\n ctx.setOpenedViaClick(true);\n if (!ctx.opened) {\n ctx.openDropdown();\n }\n }\n });\n\n const onMouseEnter = createEventHandler(\n _childProps.onMouseEnter,\n () => (ctx.trigger === 'hover' || ctx.trigger === 'click-hover') && ctx.openDropdown()\n );\n\n const onMouseLeave = createEventHandler(_childProps.onMouseLeave, () => {\n if (ctx.trigger === 'hover') {\n ctx.closeDropdown();\n } else if (ctx.trigger === 'click-hover' && !ctx.openedViaClick) {\n ctx.closeDropdown();\n }\n });\n\n return (\n <Popover.Target refProp={refProp} popupType=\"menu\" {...others}>\n {cloneElement(child, {\n onClick,\n onMouseEnter,\n onMouseLeave,\n 'data-expanded': ctx.opened ? true : undefined,\n } as any)}\n </Popover.Target>\n );\n}\n\nMenuTarget.displayName = '@mantine/core/MenuTarget';\n"],"mappings":";;;;;;;;;AAaA,MAAM,eAAe,EACnB,SAAS,MACX;AAEA,SAAgB,WAAW,OAAwB;CACjD,MAAM,EAAE,UAAU,SAAS,GAAG,WAAWA,kBAAAA,SAAS,cAAc,cAAc,KAAK;CAEnF,MAAM,QAAQC,iCAAAA,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,+JACF;CAGF,MAAM,MAAMC,qBAAAA,eAAe;CAC3B,MAAM,cAAc,MAAM;CAE1B,MAAM,UAAUC,6BAAAA,mBAAmB,YAAY,eAAe;EAC5D,IAAI,IAAI,YAAY,SAClB,IAAI,eAAe;OACd,IAAI,IAAI,YAAY,eAAe;GACxC,IAAI,kBAAkB,IAAI;GAC1B,IAAI,CAAC,IAAI,QACP,IAAI,aAAa;EAErB;CACF,CAAC;CAED,MAAM,eAAeA,6BAAAA,mBACnB,YAAY,qBACL,IAAI,YAAY,WAAW,IAAI,YAAY,kBAAkB,IAAI,aAAa,CACvF;CAEA,MAAM,eAAeA,6BAAAA,mBAAmB,YAAY,oBAAoB;EACtE,IAAI,IAAI,YAAY,SAClB,IAAI,cAAc;OACb,IAAI,IAAI,YAAY,iBAAiB,CAAC,IAAI,gBAC/C,IAAI,cAAc;CAEtB,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,QAAQ,QAAT;EAAyB;EAAS,WAAU;EAAO,GAAI;oCACvC,OAAO;GACnB;GACA;GACA;GACA,iBAAiB,IAAI,SAAS,OAAO,KAAA;EACvC,CAAQ;CACM,CAAA;AAEpB;AAEA,WAAW,cAAc"}
1
+ {"version":3,"file":"MenuTarget.cjs","names":["useProps","getSingleElementChild","useMenuContext","createEventHandler","Popover"],"sources":["../../../../src/components/Menu/MenuTarget/MenuTarget.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport { createEventHandler, getSingleElementChild, useProps } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\n\nexport interface MenuTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop used to get element ref, useful for forwarding refs to custom components @default 'ref' */\n refProp?: string;\n}\n\nconst defaultProps = {\n refProp: 'ref',\n} satisfies Partial<MenuTargetProps>;\n\nexport function MenuTarget(props: MenuTargetProps) {\n const { children, refProp, ...others } = useProps('MenuTarget', defaultProps, props);\n\n const child = getSingleElementChild(children);\n if (!child) {\n throw new Error(\n 'Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n const ctx = useMenuContext();\n const _childProps = child.props as any;\n\n const onClick = createEventHandler(_childProps.onClick, () => {\n if (ctx.trigger === 'click') {\n ctx.toggleDropdown();\n } else if (ctx.trigger === 'click-hover') {\n ctx.setOpenedViaClick(true);\n if (!ctx.opened) {\n ctx.openDropdown();\n }\n }\n });\n\n const onMouseEnter = createEventHandler(\n _childProps.onMouseEnter,\n () => (ctx.trigger === 'hover' || ctx.trigger === 'click-hover') && ctx.openDropdown()\n );\n\n const onMouseLeave = createEventHandler(_childProps.onMouseLeave, () => {\n if (ctx.trigger === 'hover') {\n ctx.closeDropdown();\n } else if (ctx.trigger === 'click-hover' && !ctx.openedViaClick) {\n ctx.closeDropdown();\n }\n });\n\n return (\n <Popover.Target refProp={refProp} popupType=\"menu\" {...others}>\n {cloneElement(child, {\n onClick,\n onMouseEnter,\n onMouseLeave,\n 'data-expanded': ctx.opened ? true : undefined,\n } as any)}\n </Popover.Target>\n );\n}\n\nMenuTarget.displayName = '@mantine/core/MenuTarget';\n"],"mappings":";;;;;;;;;AAaA,MAAM,eAAe,EACnB,SAAS,MACX;AAEA,SAAgB,WAAW,OAAwB;CACjD,MAAM,EAAE,UAAU,SAAS,GAAG,WAAWA,kBAAAA,SAAS,cAAc,cAAc,KAAK;CAEnF,MAAM,QAAQC,iCAAAA,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,+JACF;CAGF,MAAM,MAAMC,qBAAAA,eAAe;CAC3B,MAAM,cAAc,MAAM;CAE1B,MAAM,UAAUC,6BAAAA,mBAAmB,YAAY,eAAe;EAC5D,IAAI,IAAI,YAAY,SAClB,IAAI,eAAe;OACd,IAAI,IAAI,YAAY,eAAe;GACxC,IAAI,kBAAkB,IAAI;GAC1B,IAAI,CAAC,IAAI,QACP,IAAI,aAAa;EAErB;CACF,CAAC;CAED,MAAM,eAAeA,6BAAAA,mBACnB,YAAY,qBACL,IAAI,YAAY,WAAW,IAAI,YAAY,kBAAkB,IAAI,aAAa,CACvF;CAEA,MAAM,eAAeA,6BAAAA,mBAAmB,YAAY,oBAAoB;EACtE,IAAI,IAAI,YAAY,SAClB,IAAI,cAAc;OACb,IAAI,IAAI,YAAY,iBAAiB,CAAC,IAAI,gBAC/C,IAAI,cAAc;CAEtB,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,QAAQ,QAAT;EAAyB;EAAS,WAAU;EAAO,GAAI;oCACvC,OAAO;GACnB;GACA;GACA;GACA,iBAAiB,IAAI,SAAS,OAAO,KAAA;EACvC,CAAQ;CACM,CAAA;AAEpB;AAEA,WAAW,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-menu-type-ahead.cjs","names":[],"sources":["../../../src/components/Menu/use-menu-type-ahead.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nconst RESET_DELAY = 500;\n\ninterface UseMenuTypeAheadOptions {\n enabled: boolean;\n opened: boolean;\n getDropdown: () => HTMLElement | null;\n}\n\ninterface TypeAheadState {\n buffer: string;\n timeoutId: number | null;\n}\n\nfunction getItemText(item: HTMLElement): string {\n const label = item.querySelector<HTMLElement>('[data-menu-item-label]');\n return ((label ?? item).textContent ?? '').trim().toLowerCase();\n}\n\nfunction isRepeatedChar(buffer: string): boolean {\n return buffer.length > 1 && buffer.split('').every((char) => char === buffer[0]);\n}\n\nexport function useMenuTypeAhead({ enabled, opened, getDropdown }: UseMenuTypeAheadOptions) {\n const stateRef = useRef<TypeAheadState>({ buffer: '', timeoutId: null });\n\n useEffect(() => {\n if (opened && enabled) {\n return;\n }\n const state = stateRef.current;\n if (state.timeoutId !== null) {\n window.clearTimeout(state.timeoutId);\n state.timeoutId = null;\n }\n state.buffer = '';\n }, [opened, enabled]);\n\n useEffect(\n () => () => {\n const { timeoutId } = stateRef.current;\n if (timeoutId !== null) {\n window.clearTimeout(timeoutId);\n }\n },\n []\n );\n\n return (event: React.KeyboardEvent<HTMLElement>) => {\n if (!enabled || event.defaultPrevented) {\n return;\n }\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (event.key.length !== 1 || event.key === ' ') {\n return;\n }\n\n const target = event.target as HTMLElement | null;\n if (\n target &&\n (target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SELECT' ||\n target.isContentEditable)\n ) {\n return;\n }\n\n const dropdown = getDropdown();\n if (!dropdown) {\n return;\n }\n\n const items = Array.from(\n dropdown.querySelectorAll<HTMLElement>('[data-menu-item]:not([data-disabled])')\n ).filter((item) => item.closest('[data-menu-dropdown]') === dropdown);\n\n if (items.length === 0) {\n return;\n }\n\n const state = stateRef.current;\n state.buffer = (state.buffer + event.key).toLowerCase();\n\n if (state.timeoutId !== null) {\n window.clearTimeout(state.timeoutId);\n }\n state.timeoutId = window.setTimeout(() => {\n state.buffer = '';\n state.timeoutId = null;\n }, RESET_DELAY);\n\n const activeElement = document.activeElement as HTMLElement | null;\n const currentIndex = activeElement ? items.indexOf(activeElement) : -1;\n\n let match: HTMLElement | null = null;\n\n if (state.buffer.length === 1 || isRepeatedChar(state.buffer)) {\n const char = state.buffer[0]!;\n const startIndex = currentIndex + 1;\n for (let i = 0; i < items.length; i += 1) {\n const idx = (startIndex + i) % items.length;\n if (getItemText(items[idx]!).startsWith(char)) {\n match = items[idx]!;\n break;\n }\n }\n } else {\n for (let i = 0; i < items.length; i += 1) {\n if (getItemText(items[i]!).startsWith(state.buffer)) {\n match = items[i]!;\n break;\n }\n }\n }\n\n if (match) {\n event.preventDefault();\n match.focus();\n }\n };\n}\n"],"mappings":";;;AAEA,MAAM,cAAc;AAapB,SAAS,YAAY,MAA2B;CAE9C,SADc,KAAK,cAA2B,wBACjC,KAAK,MAAM,eAAe,IAAI,KAAK,EAAE,YAAY;AAChE;AAEA,SAAS,eAAe,QAAyB;CAC/C,OAAO,OAAO,SAAS,KAAK,OAAO,MAAM,EAAE,EAAE,OAAO,SAAS,SAAS,OAAO,EAAE;AACjF;AAEA,SAAgB,iBAAiB,EAAE,SAAS,QAAQ,eAAwC;CAC1F,MAAM,YAAA,GAAA,MAAA,QAAkC;EAAE,QAAQ;EAAI,WAAW;CAAK,CAAC;CAEvE,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,UAAU,SACZ;EAEF,MAAM,QAAQ,SAAS;EACvB,IAAI,MAAM,cAAc,MAAM;GAC5B,OAAO,aAAa,MAAM,SAAS;GACnC,MAAM,YAAY;EACpB;EACA,MAAM,SAAS;CACjB,GAAG,CAAC,QAAQ,OAAO,CAAC;CAEpB,CAAA,GAAA,MAAA,uBACc;EACV,MAAM,EAAE,cAAc,SAAS;EAC/B,IAAI,cAAc,MAChB,OAAO,aAAa,SAAS;CAEjC,GACA,CAAC,CACH;CAEA,QAAQ,UAA4C;EAClD,IAAI,CAAC,WAAW,MAAM,kBACpB;EAEF,IAAI,MAAM,WAAW,MAAM,WAAW,MAAM,QAC1C;EAEF,IAAI,MAAM,IAAI,WAAW,KAAK,MAAM,QAAQ,KAC1C;EAGF,MAAM,SAAS,MAAM;EACrB,IACE,WACC,OAAO,YAAY,WAClB,OAAO,YAAY,cACnB,OAAO,YAAY,YACnB,OAAO,oBAET;EAGF,MAAM,WAAW,YAAY;EAC7B,IAAI,CAAC,UACH;EAGF,MAAM,QAAQ,MAAM,KAClB,SAAS,iBAA8B,uCAAuC,CAChF,EAAE,QAAQ,SAAS,KAAK,QAAQ,sBAAsB,MAAM,QAAQ;EAEpE,IAAI,MAAM,WAAW,GACnB;EAGF,MAAM,QAAQ,SAAS;EACvB,MAAM,UAAU,MAAM,SAAS,MAAM,KAAK,YAAY;EAEtD,IAAI,MAAM,cAAc,MACtB,OAAO,aAAa,MAAM,SAAS;EAErC,MAAM,YAAY,OAAO,iBAAiB;GACxC,MAAM,SAAS;GACf,MAAM,YAAY;EACpB,GAAG,WAAW;EAEd,MAAM,gBAAgB,SAAS;EAC/B,MAAM,eAAe,gBAAgB,MAAM,QAAQ,aAAa,IAAI;EAEpE,IAAI,QAA4B;EAEhC,IAAI,MAAM,OAAO,WAAW,KAAK,eAAe,MAAM,MAAM,GAAG;GAC7D,MAAM,OAAO,MAAM,OAAO;GAC1B,MAAM,aAAa,eAAe;GAClC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;IACxC,MAAM,OAAO,aAAa,KAAK,MAAM;IACrC,IAAI,YAAY,MAAM,IAAK,EAAE,WAAW,IAAI,GAAG;KAC7C,QAAQ,MAAM;KACd;IACF;GACF;EACF,OACE,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GACrC,IAAI,YAAY,MAAM,EAAG,EAAE,WAAW,MAAM,MAAM,GAAG;GACnD,QAAQ,MAAM;GACd;EACF;EAIJ,IAAI,OAAO;GACT,MAAM,eAAe;GACrB,MAAM,MAAM;EACd;CACF;AACF"}
1
+ {"version":3,"file":"use-menu-type-ahead.cjs","names":[],"sources":["../../../src/components/Menu/use-menu-type-ahead.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nconst RESET_DELAY = 500;\n\ninterface UseMenuTypeAheadOptions {\n enabled: boolean;\n opened: boolean;\n getDropdown: () => HTMLElement | null;\n}\n\ninterface TypeAheadState {\n buffer: string;\n timeoutId: number | null;\n}\n\nfunction getItemText(item: HTMLElement): string {\n const label = item.querySelector<HTMLElement>('[data-menu-item-label]');\n return ((label ?? item).textContent ?? '').trim().toLowerCase();\n}\n\nfunction isRepeatedChar(buffer: string): boolean {\n return buffer.length > 1 && buffer.split('').every((char) => char === buffer[0]);\n}\n\nexport function useMenuTypeAhead({ enabled, opened, getDropdown }: UseMenuTypeAheadOptions) {\n const stateRef = useRef<TypeAheadState>({ buffer: '', timeoutId: null });\n\n useEffect(() => {\n if (opened && enabled) {\n return;\n }\n const state = stateRef.current;\n if (state.timeoutId !== null) {\n window.clearTimeout(state.timeoutId);\n state.timeoutId = null;\n }\n state.buffer = '';\n }, [opened, enabled]);\n\n useEffect(\n () => () => {\n const { timeoutId } = stateRef.current;\n if (timeoutId !== null) {\n window.clearTimeout(timeoutId);\n }\n },\n []\n );\n\n return (event: React.KeyboardEvent<HTMLElement>) => {\n if (!enabled || event.defaultPrevented) {\n return;\n }\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (event.key.length !== 1 || event.key === ' ') {\n return;\n }\n\n const target = event.target as HTMLElement | null;\n if (\n target &&\n (target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SELECT' ||\n target.isContentEditable)\n ) {\n return;\n }\n\n const dropdown = getDropdown();\n if (!dropdown) {\n return;\n }\n\n const items = Array.from(\n dropdown.querySelectorAll<HTMLElement>('[data-menu-item]:not([data-disabled])')\n ).filter((item) => item.closest('[data-menu-dropdown]') === dropdown);\n\n if (items.length === 0) {\n return;\n }\n\n const state = stateRef.current;\n state.buffer = (state.buffer + event.key).toLowerCase();\n\n if (state.timeoutId !== null) {\n window.clearTimeout(state.timeoutId);\n }\n state.timeoutId = window.setTimeout(() => {\n state.buffer = '';\n state.timeoutId = null;\n }, RESET_DELAY);\n\n const activeElement = document.activeElement as HTMLElement | null;\n const currentIndex = activeElement ? items.indexOf(activeElement) : -1;\n\n let match: HTMLElement | null = null;\n\n if (state.buffer.length === 1 || isRepeatedChar(state.buffer)) {\n const char = state.buffer[0]!;\n const startIndex = currentIndex + 1;\n for (let i = 0; i < items.length; i += 1) {\n const idx = (startIndex + i) % items.length;\n if (getItemText(items[idx]!).startsWith(char)) {\n match = items[idx]!;\n break;\n }\n }\n } else {\n for (let i = 0; i < items.length; i += 1) {\n if (getItemText(items[i]!).startsWith(state.buffer)) {\n match = items[i]!;\n break;\n }\n }\n }\n\n if (match) {\n event.preventDefault();\n match.focus();\n }\n };\n}\n"],"mappings":";;;AAEA,MAAM,cAAc;AAapB,SAAS,YAAY,MAA2B;CAE9C,SADc,KAAK,cAA2B,wBACjC,KAAK,KAAA,CAAM,eAAe,GAAA,CAAI,KAAK,CAAC,CAAC,YAAY;AAChE;AAEA,SAAS,eAAe,QAAyB;CAC/C,OAAO,OAAO,SAAS,KAAK,OAAO,MAAM,EAAE,CAAC,CAAC,OAAO,SAAS,SAAS,OAAO,EAAE;AACjF;AAEA,SAAgB,iBAAiB,EAAE,SAAS,QAAQ,eAAwC;CAC1F,MAAM,YAAA,GAAA,MAAA,OAAA,CAAkC;EAAE,QAAQ;EAAI,WAAW;CAAK,CAAC;CAEvE,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,UAAU,SACZ;EAEF,MAAM,QAAQ,SAAS;EACvB,IAAI,MAAM,cAAc,MAAM;GAC5B,OAAO,aAAa,MAAM,SAAS;GACnC,MAAM,YAAY;EACpB;EACA,MAAM,SAAS;CACjB,GAAG,CAAC,QAAQ,OAAO,CAAC;CAEpB,CAAA,GAAA,MAAA,UAAA,aACc;EACV,MAAM,EAAE,cAAc,SAAS;EAC/B,IAAI,cAAc,MAChB,OAAO,aAAa,SAAS;CAEjC,GACA,CAAC,CACH;CAEA,QAAQ,UAA4C;EAClD,IAAI,CAAC,WAAW,MAAM,kBACpB;EAEF,IAAI,MAAM,WAAW,MAAM,WAAW,MAAM,QAC1C;EAEF,IAAI,MAAM,IAAI,WAAW,KAAK,MAAM,QAAQ,KAC1C;EAGF,MAAM,SAAS,MAAM;EACrB,IACE,WACC,OAAO,YAAY,WAClB,OAAO,YAAY,cACnB,OAAO,YAAY,YACnB,OAAO,oBAET;EAGF,MAAM,WAAW,YAAY;EAC7B,IAAI,CAAC,UACH;EAGF,MAAM,QAAQ,MAAM,KAClB,SAAS,iBAA8B,uCAAuC,CAChF,CAAC,CAAC,QAAQ,SAAS,KAAK,QAAQ,sBAAsB,MAAM,QAAQ;EAEpE,IAAI,MAAM,WAAW,GACnB;EAGF,MAAM,QAAQ,SAAS;EACvB,MAAM,UAAU,MAAM,SAAS,MAAM,IAAA,CAAK,YAAY;EAEtD,IAAI,MAAM,cAAc,MACtB,OAAO,aAAa,MAAM,SAAS;EAErC,MAAM,YAAY,OAAO,iBAAiB;GACxC,MAAM,SAAS;GACf,MAAM,YAAY;EACpB,GAAG,WAAW;EAEd,MAAM,gBAAgB,SAAS;EAC/B,MAAM,eAAe,gBAAgB,MAAM,QAAQ,aAAa,IAAI;EAEpE,IAAI,QAA4B;EAEhC,IAAI,MAAM,OAAO,WAAW,KAAK,eAAe,MAAM,MAAM,GAAG;GAC7D,MAAM,OAAO,MAAM,OAAO;GAC1B,MAAM,aAAa,eAAe;GAClC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;IACxC,MAAM,OAAO,aAAa,KAAK,MAAM;IACrC,IAAI,YAAY,MAAM,IAAK,CAAC,CAAC,WAAW,IAAI,GAAG;KAC7C,QAAQ,MAAM;KACd;IACF;GACF;EACF,OACE,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GACrC,IAAI,YAAY,MAAM,EAAG,CAAC,CAAC,WAAW,MAAM,MAAM,GAAG;GACnD,QAAQ,MAAM;GACd;EACF;EAIJ,IAAI,OAAO;GACT,MAAM,eAAe;GACrB,MAAM,MAAM;EACd;CACF;AACF"}
@@ -0,0 +1,146 @@
1
+ "use client";
2
+ const require_use_props = require("../../core/MantineProvider/use-props/use-props.cjs");
3
+ const require_use_styles = require("../../core/styles-api/use-styles/use-styles.cjs");
4
+ const require_factory = require("../../core/factory/factory.cjs");
5
+ const require_Box = require("../../core/Box/Box.cjs");
6
+ const require_Menubar_context = require("./Menubar.context.cjs");
7
+ const require_MenubarDropdown = require("./MenubarDropdown/MenubarDropdown.cjs");
8
+ const require_MenubarMenu = require("./MenubarMenu/MenubarMenu.cjs");
9
+ const require_MenubarTarget = require("./MenubarTarget/MenubarTarget.cjs");
10
+ const require_Menubar_module = require("./Menubar.module.cjs");
11
+ let react = require("react");
12
+ let _mantine_hooks = require("@mantine/hooks");
13
+ let react_jsx_runtime = require("react/jsx-runtime");
14
+ //#region packages/@mantine/core/src/components/Menubar/Menubar.tsx
15
+ const defaultProps = {
16
+ trigger: "click",
17
+ loop: true,
18
+ position: "bottom-start"
19
+ };
20
+ const Menubar = require_factory.factory((_props) => {
21
+ const props = require_use_props.useProps("Menubar", defaultProps, _props);
22
+ const { classNames, className, style, styles, unstyled, vars, children, openIndex, defaultOpenIndex, onOpenChange, trigger, loop, position, attributes, mod, ref, ...others } = props;
23
+ const getStyles = require_use_styles.useStyles({
24
+ name: "Menubar",
25
+ classes: require_Menubar_module.default,
26
+ props,
27
+ className,
28
+ style,
29
+ classNames,
30
+ styles,
31
+ unstyled,
32
+ attributes
33
+ });
34
+ const rootRef = (0, react.useRef)(null);
35
+ const menubarId = (0, _mantine_hooks.useId)();
36
+ const [_openIndex, setOpenIndex] = (0, _mantine_hooks.useUncontrolled)({
37
+ value: openIndex,
38
+ defaultValue: defaultOpenIndex,
39
+ finalValue: null,
40
+ onChange: onOpenChange
41
+ });
42
+ const [activeIndex, setActiveIndex] = (0, react.useState)(0);
43
+ const openSourceRef = (0, react.useRef)(null);
44
+ const openMenu = (0, react.useCallback)((index, source) => {
45
+ openSourceRef.current = source;
46
+ setOpenIndex(index);
47
+ }, [setOpenIndex]);
48
+ const closeMenu = (0, react.useCallback)(() => {
49
+ openSourceRef.current = null;
50
+ setOpenIndex(null);
51
+ }, [setOpenIndex]);
52
+ const closeTimeoutRef = (0, react.useRef)(-1);
53
+ const cancelClose = (0, react.useCallback)(() => {
54
+ window.clearTimeout(closeTimeoutRef.current);
55
+ }, []);
56
+ const scheduleClose = (0, react.useCallback)(() => {
57
+ window.clearTimeout(closeTimeoutRef.current);
58
+ closeTimeoutRef.current = window.setTimeout(closeMenu, 120);
59
+ }, [closeMenu]);
60
+ (0, _mantine_hooks.useIsomorphicEffect)(() => () => window.clearTimeout(closeTimeoutRef.current), []);
61
+ const getOpenSource = (0, react.useCallback)(() => openSourceRef.current, []);
62
+ const previousOpenIndexRef = (0, react.useRef)(_openIndex);
63
+ const getPreviousOpenIndex = (0, react.useCallback)(() => previousOpenIndexRef.current, []);
64
+ (0, _mantine_hooks.useIsomorphicEffect)(() => {
65
+ previousOpenIndexRef.current = _openIndex;
66
+ });
67
+ const getTargets = (0, react.useCallback)(() => Array.from(rootRef.current?.querySelectorAll("[data-menubar-target]") ?? []), []);
68
+ const getMenuIndex = (0, react.useCallback)((id) => getTargets().findIndex((node) => node.getAttribute("data-menubar-id") === id), [getTargets]);
69
+ const getEnabledIndexes = (0, react.useCallback)(() => getTargets().reduce((acc, node, index) => {
70
+ if (!node.disabled && !node.hasAttribute("data-disabled")) acc.push(index);
71
+ return acc;
72
+ }, []), [getTargets]);
73
+ const focusTarget = (0, react.useCallback)((index) => {
74
+ getTargets()[index]?.focus();
75
+ }, [getTargets]);
76
+ const focusMenuItem = (0, react.useCallback)((index, itemPosition) => {
77
+ window.setTimeout(() => {
78
+ const controls = getTargets()[index]?.getAttribute("aria-controls");
79
+ const items = (controls ? document.getElementById(controls) : document.querySelector(`[data-menubar-dropdown="${menubarId}"]`))?.querySelectorAll("[data-menu-item]:not([data-disabled])");
80
+ if (items && items.length > 0) (itemPosition === "first" ? items[0] : items[items.length - 1])?.focus();
81
+ }, 40);
82
+ }, [getTargets]);
83
+ const getAdjacentIndex = (0, react.useCallback)((current, direction) => {
84
+ const enabled = getEnabledIndexes();
85
+ if (enabled.length === 0) return current;
86
+ const currentPosition = enabled.indexOf(current);
87
+ let nextPosition = currentPosition === -1 ? 0 : currentPosition + direction;
88
+ if (loop) nextPosition = (nextPosition + enabled.length) % enabled.length;
89
+ else nextPosition = Math.max(0, Math.min(enabled.length - 1, nextPosition));
90
+ return enabled[nextPosition] ?? current;
91
+ }, [getEnabledIndexes, loop]);
92
+ (0, _mantine_hooks.useIsomorphicEffect)(() => {
93
+ const enabled = getEnabledIndexes();
94
+ if (enabled.length === 0) return;
95
+ if (_openIndex !== null && enabled.includes(_openIndex)) {
96
+ if (activeIndex !== _openIndex) setActiveIndex(_openIndex);
97
+ return;
98
+ }
99
+ if (!enabled.includes(activeIndex)) setActiveIndex(enabled[0]);
100
+ });
101
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Menubar_context.MenubarContextProvider, {
102
+ value: {
103
+ getStyles,
104
+ id: menubarId,
105
+ openIndex: _openIndex,
106
+ setOpenIndex,
107
+ openMenu,
108
+ closeMenu,
109
+ scheduleClose,
110
+ cancelClose,
111
+ getOpenSource,
112
+ getPreviousOpenIndex,
113
+ activeIndex,
114
+ setActiveIndex,
115
+ trigger,
116
+ loop,
117
+ position,
118
+ unstyled,
119
+ getMenuIndex,
120
+ getTargets,
121
+ getEnabledIndexes,
122
+ getAdjacentIndex,
123
+ focusTarget,
124
+ focusMenuItem
125
+ },
126
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
127
+ ref: (0, _mantine_hooks.useMergedRef)(ref, rootRef),
128
+ role: "menubar",
129
+ "aria-orientation": "horizontal",
130
+ mod,
131
+ ...getStyles("root"),
132
+ ...others,
133
+ "data-menubar": true,
134
+ children
135
+ })
136
+ });
137
+ });
138
+ Menubar.classes = require_Menubar_module.default;
139
+ Menubar.displayName = "@mantine/core/Menubar";
140
+ Menubar.Menu = require_MenubarMenu.MenubarMenu;
141
+ Menubar.Target = require_MenubarTarget.MenubarTarget;
142
+ Menubar.Dropdown = require_MenubarDropdown.MenubarDropdown;
143
+ //#endregion
144
+ exports.Menubar = Menubar;
145
+
146
+ //# sourceMappingURL=Menubar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menubar.cjs","names":["factory","useProps","useStyles","MenubarContextProvider","Box","classes","MenubarMenu","MenubarTarget","MenubarDropdown"],"sources":["../../../src/components/Menubar/Menubar.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { useId, useIsomorphicEffect, useMergedRef, useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { FloatingPosition } from '../../utils/Floating';\nimport { MenubarContextProvider, type MenubarContextValue } from './Menubar.context';\nimport { MenubarDropdown, type MenubarDropdownProps } from './MenubarDropdown/MenubarDropdown';\nimport { MenubarMenu, type MenubarMenuProps } from './MenubarMenu/MenubarMenu';\nimport { MenubarTarget, type MenubarTargetProps } from './MenubarTarget/MenubarTarget';\nimport classes from './Menubar.module.css';\n\nexport type MenubarStylesNames = 'root' | 'target';\n\nexport type MenubarFactory = Factory<{\n props: MenubarProps;\n ref: HTMLDivElement;\n stylesNames: MenubarStylesNames;\n staticComponents: {\n Menu: typeof MenubarMenu;\n Target: typeof MenubarTarget;\n Dropdown: typeof MenubarDropdown;\n };\n}>;\n\nexport interface MenubarProps\n extends BoxProps, StylesApiProps<MenubarFactory>, ElementProps<'div'> {\n /** `Menubar.Menu` components */\n children?: React.ReactNode;\n\n /** Index of the controlled opened menu, `null` closes all menus */\n openIndex?: number | null;\n\n /** Index of the opened menu for uncontrolled component @default `null` */\n defaultOpenIndex?: number | null;\n\n /** Called when the opened menu changes with its index or `null` when all menus are closed */\n onOpenChange?: (index: number | null) => void;\n\n /** Event that opens a menu when none of the menus is opened. `'click'` opens a menu on target click and then switches menus on hover (desktop application pattern), `'hover'` opens a menu when the target is hovered @default `'click'` */\n trigger?: 'click' | 'hover';\n\n /** If set, arrow key navigation wraps from last to first menu and vice versa @default `true` */\n loop?: boolean;\n\n /** Dropdown position relative to the target element @default `'bottom-start'` */\n position?: FloatingPosition;\n}\n\nconst defaultProps = {\n trigger: 'click',\n loop: true,\n position: 'bottom-start',\n} satisfies Partial<MenubarProps>;\n\nexport const Menubar = factory<MenubarFactory>((_props) => {\n const props = useProps('Menubar', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n openIndex,\n defaultOpenIndex,\n onOpenChange,\n trigger,\n loop,\n position,\n attributes,\n mod,\n ref,\n ...others\n } = props;\n\n const getStyles = useStyles<MenubarFactory>({\n name: 'Menubar',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n });\n\n const rootRef = useRef<HTMLDivElement>(null);\n const menubarId = useId();\n\n const [_openIndex, setOpenIndex] = useUncontrolled<number | null>({\n value: openIndex,\n defaultValue: defaultOpenIndex,\n finalValue: null,\n onChange: onOpenChange,\n });\n\n const [activeIndex, setActiveIndex] = useState(0);\n const openSourceRef = useRef<'click' | 'hover' | null>(null);\n\n const openMenu = useCallback(\n (index: number, source: 'click' | 'hover') => {\n openSourceRef.current = source;\n setOpenIndex(index);\n },\n [setOpenIndex]\n );\n\n const closeMenu = useCallback(() => {\n openSourceRef.current = null;\n setOpenIndex(null);\n }, [setOpenIndex]);\n\n const closeTimeoutRef = useRef(-1);\n\n const cancelClose = useCallback(() => {\n window.clearTimeout(closeTimeoutRef.current);\n }, []);\n\n const scheduleClose = useCallback(() => {\n window.clearTimeout(closeTimeoutRef.current);\n closeTimeoutRef.current = window.setTimeout(closeMenu, 120);\n }, [closeMenu]);\n\n useIsomorphicEffect(() => () => window.clearTimeout(closeTimeoutRef.current), []);\n\n const getOpenSource = useCallback(() => openSourceRef.current, []);\n\n const previousOpenIndexRef = useRef<number | null>(_openIndex);\n const getPreviousOpenIndex = useCallback(() => previousOpenIndexRef.current, []);\n\n useIsomorphicEffect(() => {\n previousOpenIndexRef.current = _openIndex;\n });\n\n const getTargets = useCallback(\n () =>\n Array.from(\n rootRef.current?.querySelectorAll<HTMLButtonElement>('[data-menubar-target]') ?? []\n ),\n []\n );\n\n const getMenuIndex = useCallback(\n (id: string) => getTargets().findIndex((node) => node.getAttribute('data-menubar-id') === id),\n [getTargets]\n );\n\n const getEnabledIndexes = useCallback(\n () =>\n getTargets().reduce<number[]>((acc, node, index) => {\n if (!node.disabled && !node.hasAttribute('data-disabled')) {\n acc.push(index);\n }\n return acc;\n }, []),\n [getTargets]\n );\n\n const focusTarget = useCallback(\n (index: number) => {\n getTargets()[index]?.focus();\n },\n [getTargets]\n );\n\n const focusMenuItem = useCallback(\n (index: number, itemPosition: 'first' | 'last') => {\n window.setTimeout(() => {\n const target = getTargets()[index];\n const controls = target?.getAttribute('aria-controls');\n const dropdown = controls\n ? document.getElementById(controls)\n : document.querySelector<HTMLElement>(`[data-menubar-dropdown=\"${menubarId}\"]`);\n const items = dropdown?.querySelectorAll<HTMLElement>(\n '[data-menu-item]:not([data-disabled])'\n );\n\n if (items && items.length > 0) {\n const item = itemPosition === 'first' ? items[0] : items[items.length - 1];\n item?.focus();\n }\n }, 40);\n },\n [getTargets]\n );\n\n const getAdjacentIndex = useCallback(\n (current: number, direction: 1 | -1) => {\n const enabled = getEnabledIndexes();\n\n if (enabled.length === 0) {\n return current;\n }\n\n const currentPosition = enabled.indexOf(current);\n let nextPosition = currentPosition === -1 ? 0 : currentPosition + direction;\n\n if (loop) {\n nextPosition = (nextPosition + enabled.length) % enabled.length;\n } else {\n nextPosition = Math.max(0, Math.min(enabled.length - 1, nextPosition));\n }\n\n return enabled[nextPosition] ?? current;\n },\n [getEnabledIndexes, loop]\n );\n\n useIsomorphicEffect(() => {\n const enabled = getEnabledIndexes();\n if (enabled.length === 0) {\n return;\n }\n\n // While a menu is open, the single tab stop must stay on the opened menu's target,\n // including when it was opened programmatically via openIndex/defaultOpenIndex.\n if (_openIndex !== null && enabled.includes(_openIndex)) {\n if (activeIndex !== _openIndex) {\n setActiveIndex(_openIndex);\n }\n return;\n }\n\n if (!enabled.includes(activeIndex)) {\n setActiveIndex(enabled[0]);\n }\n });\n\n const contextValue: MenubarContextValue = {\n getStyles,\n id: menubarId,\n openIndex: _openIndex,\n setOpenIndex,\n openMenu,\n closeMenu,\n scheduleClose,\n cancelClose,\n getOpenSource,\n getPreviousOpenIndex,\n activeIndex,\n setActiveIndex,\n trigger: trigger!,\n loop: loop!,\n position: position!,\n unstyled,\n getMenuIndex,\n getTargets,\n getEnabledIndexes,\n getAdjacentIndex,\n focusTarget,\n focusMenuItem,\n };\n\n return (\n <MenubarContextProvider value={contextValue}>\n <Box\n ref={useMergedRef(ref, rootRef)}\n role=\"menubar\"\n aria-orientation=\"horizontal\"\n mod={mod}\n {...getStyles('root')}\n {...others}\n data-menubar\n >\n {children}\n </Box>\n </MenubarContextProvider>\n );\n});\n\nMenubar.classes = classes;\nMenubar.displayName = '@mantine/core/Menubar';\nMenubar.Menu = MenubarMenu;\nMenubar.Target = MenubarTarget;\nMenubar.Dropdown = MenubarDropdown;\n\nexport namespace Menubar {\n export type Props = MenubarProps;\n export type StylesNames = MenubarStylesNames;\n export type Factory = MenubarFactory;\n\n export namespace Menu {\n export type Props = MenubarMenuProps;\n }\n\n export namespace Target {\n export type Props = MenubarTargetProps;\n }\n\n export namespace Dropdown {\n export type Props = MenubarDropdownProps;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ const require_create_safe_context = require("../../core/utils/create-safe-context/create-safe-context.cjs");
3
+ //#region packages/@mantine/core/src/components/Menubar/Menubar.context.ts
4
+ const [MenubarContextProvider, useMenubarContext] = require_create_safe_context.createSafeContext("Menubar component was not found in the tree");
5
+ const [MenubarMenuContextProvider, useMenubarMenuContext] = require_create_safe_context.createSafeContext("Menubar.Menu component was not found in the tree");
6
+ //#endregion
7
+ exports.MenubarContextProvider = MenubarContextProvider;
8
+ exports.MenubarMenuContextProvider = MenubarMenuContextProvider;
9
+ exports.useMenubarContext = useMenubarContext;
10
+ exports.useMenubarMenuContext = useMenubarMenuContext;
11
+
12
+ //# sourceMappingURL=Menubar.context.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menubar.context.cjs","names":["createSafeContext"],"sources":["../../../src/components/Menubar/Menubar.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { FloatingPosition } from '../../utils/Floating';\nimport type { MenubarFactory } from './Menubar';\n\nexport interface MenubarContextValue {\n getStyles: GetStylesApi<MenubarFactory>;\n\n /** Unique id of the menubar instance, used to scope dropdown lookups across multiple menubars */\n id: string;\n\n /** Index of the currently opened menu, `null` when all menus are closed */\n openIndex: number | null;\n\n /** Opens the menu at the given index, `null` closes all menus */\n setOpenIndex: (index: number | null) => void;\n\n /** Opens the menu at the given index and records whether it was opened by click or hover */\n openMenu: (index: number, source: 'click' | 'hover') => void;\n\n /** Closes all menus */\n closeMenu: () => void;\n\n /** Schedules a delayed close, used by hover trigger when the pointer leaves the bar */\n scheduleClose: () => void;\n\n /** Cancels a pending delayed close */\n cancelClose: () => void;\n\n /** Returns how the currently opened menu was opened */\n getOpenSource: () => 'click' | 'hover' | null;\n\n /** Returns the previously opened menu index, used to skip transitions when switching menus */\n getPreviousOpenIndex: () => number | null;\n\n /** Index of the menu that currently holds the single menubar tab stop */\n activeIndex: number;\n\n /** Sets the roving tabindex to the given menu index */\n setActiveIndex: (index: number) => void;\n\n trigger: 'click' | 'hover';\n loop: boolean;\n position: FloatingPosition;\n unstyled: boolean | undefined;\n\n /** Returns the DOM-order index of a `Menubar.Menu` by its id */\n getMenuIndex: (id: string) => number;\n\n /** Returns all top-level target buttons in DOM order */\n getTargets: () => HTMLButtonElement[];\n\n /** Returns the indexes of the enabled top-level targets in DOM order */\n getEnabledIndexes: () => number[];\n\n /** Returns the index of the next/previous enabled target relative to `current` */\n getAdjacentIndex: (current: number, direction: 1 | -1) => number;\n\n /** Focuses the top-level target at the given index */\n focusTarget: (index: number) => void;\n\n /** Focuses the first or last item of the (opened) menu at the given index */\n focusMenuItem: (index: number, position: 'first' | 'last') => void;\n}\n\nexport const [MenubarContextProvider, useMenubarContext] = createSafeContext<MenubarContextValue>(\n 'Menubar component was not found in the tree'\n);\n\nexport interface MenubarMenuContextValue {\n id: string;\n index: number;\n opened: boolean;\n}\n\nexport const [MenubarMenuContextProvider, useMenubarMenuContext] =\n createSafeContext<MenubarMenuContextValue>('Menubar.Menu component was not found in the tree');\n"],"mappings":";;;AAgEA,MAAa,CAAC,wBAAwB,qBAAqBA,4BAAAA,kBACzD,6CACF;AAQA,MAAa,CAAC,4BAA4B,yBACxCA,4BAAAA,kBAA2C,kDAAkD"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ //#region packages/@mantine/core/src/components/Menubar/Menubar.module.css
3
+ var Menubar_module_default = {
4
+ "root": "m_de2654db",
5
+ "target": "m_f08a2b4a"
6
+ };
7
+ //#endregion
8
+ exports.default = Menubar_module_default;
9
+
10
+ //# sourceMappingURL=Menubar.module.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menubar.module.cjs","names":[],"sources":["../../../src/components/Menubar/Menubar.module.css"],"sourcesContent":[".root {\n display: flex;\n align-items: center;\n}\n\n.target {\n font-size: var(--mantine-font-size-sm);\n line-height: 1;\n padding: calc(var(--mantine-spacing-xs) / 1.5) var(--mantine-spacing-sm);\n border-radius: var(--mantine-radius-default);\n color: var(--mantine-color-text);\n background-color: transparent;\n user-select: none;\n cursor: pointer;\n\n &:where([data-disabled], :disabled) {\n color: var(--mantine-color-disabled-color);\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &:where(:hover, :focus-visible, [data-expanded]) {\n &:where(:not(:disabled, [data-disabled])) {\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}\n"],"mappings":""}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ const require_create_event_handler = require("../../../core/utils/create-event-handler/create-event-handler.cjs");
3
+ const require_DirectionProvider = require("../../../core/DirectionProvider/DirectionProvider.cjs");
4
+ const require_Menu = require("../../Menu/Menu.cjs");
5
+ const require_Menubar_context = require("../Menubar.context.cjs");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ //#region packages/@mantine/core/src/components/Menubar/MenubarDropdown/MenubarDropdown.tsx
8
+ function MenubarDropdown(props) {
9
+ const { onKeyDown, onMouseEnter, onMouseLeave, ...others } = props;
10
+ const ctx = require_Menubar_context.useMenubarContext();
11
+ const menuCtx = require_Menubar_context.useMenubarMenuContext();
12
+ const { dir } = require_DirectionProvider.useDirection();
13
+ const handleMouseEnter = require_create_event_handler.createEventHandler(onMouseEnter, () => ctx.cancelClose());
14
+ const handleMouseLeave = require_create_event_handler.createEventHandler(onMouseLeave, () => {
15
+ if (ctx.trigger === "hover") ctx.scheduleClose();
16
+ });
17
+ const switchToAdjacent = (direction) => {
18
+ const nextIndex = ctx.getAdjacentIndex(menuCtx.index, direction);
19
+ if (nextIndex !== menuCtx.index) {
20
+ ctx.setActiveIndex(nextIndex);
21
+ ctx.openMenu(nextIndex, "click");
22
+ ctx.focusMenuItem(nextIndex, "first");
23
+ }
24
+ };
25
+ const handleKeyDown = require_create_event_handler.createEventHandler(onKeyDown, (event) => {
26
+ const target = event.target;
27
+ if (event.key === "Tab") {
28
+ ctx.focusTarget(menuCtx.index);
29
+ ctx.closeMenu();
30
+ return;
31
+ }
32
+ if (target.closest("[data-menu-dropdown]") !== event.currentTarget) return;
33
+ const forwardKey = dir === "rtl" ? "ArrowLeft" : "ArrowRight";
34
+ const backKey = dir === "rtl" ? "ArrowRight" : "ArrowLeft";
35
+ if (event.key === forwardKey) {
36
+ if (target.closest("[data-menu-item]")?.hasAttribute("data-sub-menu-item")) return;
37
+ event.preventDefault();
38
+ switchToAdjacent(1);
39
+ } else if (event.key === backKey) {
40
+ event.preventDefault();
41
+ switchToAdjacent(-1);
42
+ } else if (event.key === "Escape") {
43
+ const index = menuCtx.index;
44
+ ctx.setActiveIndex(index);
45
+ window.setTimeout(() => ctx.focusTarget(index), 0);
46
+ }
47
+ });
48
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Menu.Menu.Dropdown, {
49
+ ...others,
50
+ "data-menubar-dropdown": ctx.id,
51
+ "data-mantine-stop-propagation": true,
52
+ onKeyDown: handleKeyDown,
53
+ onMouseEnter: handleMouseEnter,
54
+ onMouseLeave: handleMouseLeave
55
+ });
56
+ }
57
+ MenubarDropdown.displayName = "@mantine/core/MenubarDropdown";
58
+ //#endregion
59
+ exports.MenubarDropdown = MenubarDropdown;
60
+
61
+ //# sourceMappingURL=MenubarDropdown.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenubarDropdown.cjs","names":["useMenubarContext","useMenubarMenuContext","useDirection","createEventHandler","Menu"],"sources":["../../../../src/components/Menubar/MenubarDropdown/MenubarDropdown.tsx"],"sourcesContent":["import { createEventHandler, useDirection } from '../../../core';\nimport { Menu, MenuDropdownProps } from '../../Menu';\nimport { useMenubarContext, useMenubarMenuContext } from '../Menubar.context';\n\nexport interface MenubarDropdownProps extends MenuDropdownProps {}\n\nexport function MenubarDropdown(props: MenubarDropdownProps) {\n const { onKeyDown, onMouseEnter, onMouseLeave, ...others } = props;\n const ctx = useMenubarContext();\n const menuCtx = useMenubarMenuContext();\n const { dir } = useDirection();\n\n const handleMouseEnter = createEventHandler<any>(onMouseEnter, () => ctx.cancelClose());\n\n const handleMouseLeave = createEventHandler<any>(onMouseLeave, () => {\n if (ctx.trigger === 'hover') {\n ctx.scheduleClose();\n }\n });\n\n const switchToAdjacent = (direction: 1 | -1) => {\n const nextIndex = ctx.getAdjacentIndex(menuCtx.index, direction);\n if (nextIndex !== menuCtx.index) {\n ctx.setActiveIndex(nextIndex);\n ctx.openMenu(nextIndex, 'click');\n ctx.focusMenuItem(nextIndex, 'first');\n }\n };\n\n const handleKeyDown = createEventHandler<any>(onKeyDown, (event) => {\n const target = event.target as HTMLElement;\n\n // Tabbing out of an open menu dismisses it. Focus is moved to the trigger first\n // so the browser continues the tab sequence from the menubar position.\n if (event.key === 'Tab') {\n ctx.focusTarget(menuCtx.index);\n ctx.closeMenu();\n return;\n }\n\n // Only handle navigation when focus is on a top-level item of this dropdown,\n // submenu items keep ArrowLeft/ArrowRight for their own open/close behavior\n if (target.closest('[data-menu-dropdown]') !== event.currentTarget) {\n return;\n }\n\n const forwardKey = dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const backKey = dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n\n if (event.key === forwardKey) {\n if (target.closest('[data-menu-item]')?.hasAttribute('data-sub-menu-item')) {\n return;\n }\n event.preventDefault();\n switchToAdjacent(1);\n } else if (event.key === backKey) {\n event.preventDefault();\n switchToAdjacent(-1);\n } else if (event.key === 'Escape') {\n const index = menuCtx.index;\n ctx.setActiveIndex(index);\n window.setTimeout(() => ctx.focusTarget(index), 0);\n }\n });\n\n return (\n <Menu.Dropdown\n {...others}\n data-menubar-dropdown={ctx.id}\n data-mantine-stop-propagation\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n />\n );\n}\n\nMenubarDropdown.displayName = '@mantine/core/MenubarDropdown';\n"],"mappings":";;;;;;;AAMA,SAAgB,gBAAgB,OAA6B;CAC3D,MAAM,EAAE,WAAW,cAAc,cAAc,GAAG,WAAW;CAC7D,MAAM,MAAMA,wBAAAA,kBAAkB;CAC9B,MAAM,UAAUC,wBAAAA,sBAAsB;CACtC,MAAM,EAAE,QAAQC,0BAAAA,aAAa;CAE7B,MAAM,mBAAmBC,6BAAAA,mBAAwB,oBAAoB,IAAI,YAAY,CAAC;CAEtF,MAAM,mBAAmBA,6BAAAA,mBAAwB,oBAAoB;EACnE,IAAI,IAAI,YAAY,SAClB,IAAI,cAAc;CAEtB,CAAC;CAED,MAAM,oBAAoB,cAAsB;EAC9C,MAAM,YAAY,IAAI,iBAAiB,QAAQ,OAAO,SAAS;EAC/D,IAAI,cAAc,QAAQ,OAAO;GAC/B,IAAI,eAAe,SAAS;GAC5B,IAAI,SAAS,WAAW,OAAO;GAC/B,IAAI,cAAc,WAAW,OAAO;EACtC;CACF;CAEA,MAAM,gBAAgBA,6BAAAA,mBAAwB,YAAY,UAAU;EAClE,MAAM,SAAS,MAAM;EAIrB,IAAI,MAAM,QAAQ,OAAO;GACvB,IAAI,YAAY,QAAQ,KAAK;GAC7B,IAAI,UAAU;GACd;EACF;EAIA,IAAI,OAAO,QAAQ,sBAAsB,MAAM,MAAM,eACnD;EAGF,MAAM,aAAa,QAAQ,QAAQ,cAAc;EACjD,MAAM,UAAU,QAAQ,QAAQ,eAAe;EAE/C,IAAI,MAAM,QAAQ,YAAY;GAC5B,IAAI,OAAO,QAAQ,kBAAkB,CAAC,EAAE,aAAa,oBAAoB,GACvE;GAEF,MAAM,eAAe;GACrB,iBAAiB,CAAC;EACpB,OAAO,IAAI,MAAM,QAAQ,SAAS;GAChC,MAAM,eAAe;GACrB,iBAAiB,EAAE;EACrB,OAAO,IAAI,MAAM,QAAQ,UAAU;GACjC,MAAM,QAAQ,QAAQ;GACtB,IAAI,eAAe,KAAK;GACxB,OAAO,iBAAiB,IAAI,YAAY,KAAK,GAAG,CAAC;EACnD;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,KAAK,UAAN;EACE,GAAI;EACJ,yBAAuB,IAAI;EAC3B,iCAAA;EACA,WAAW;EACX,cAAc;EACd,cAAc;CACf,CAAA;AAEL;AAEA,gBAAgB,cAAc"}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ const require_Menu = require("../../Menu/Menu.cjs");
3
+ const require_Menubar_context = require("../Menubar.context.cjs");
4
+ let react = require("react");
5
+ let _mantine_hooks = require("@mantine/hooks");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ //#region packages/@mantine/core/src/components/Menubar/MenubarMenu/MenubarMenu.tsx
8
+ const DEFAULT_TRANSITION_DURATION = 150;
9
+ function MenubarMenu({ children, transitionProps, ...others }) {
10
+ const ctx = require_Menubar_context.useMenubarContext();
11
+ const id = (0, _mantine_hooks.useId)();
12
+ const [index, setIndex] = (0, react.useState)(-1);
13
+ (0, _mantine_hooks.useIsomorphicEffect)(() => {
14
+ const next = ctx.getMenuIndex(id);
15
+ setIndex((current) => current === next ? current : next);
16
+ });
17
+ const opened = ctx.openIndex !== null && index !== -1 && ctx.openIndex === index;
18
+ const handleChange = (value) => {
19
+ if (value) {
20
+ ctx.openMenu(index, "click");
21
+ ctx.setActiveIndex(index);
22
+ } else ctx.closeMenu();
23
+ };
24
+ const baseDuration = transitionProps?.duration ?? DEFAULT_TRANSITION_DURATION;
25
+ const baseExitDuration = transitionProps?.exitDuration ?? baseDuration;
26
+ const animateEnter = ctx.getPreviousOpenIndex() === null;
27
+ const animateExit = ctx.openIndex === null;
28
+ const resolvedTransitionProps = {
29
+ ...transitionProps,
30
+ duration: animateEnter ? baseDuration : 0,
31
+ exitDuration: animateExit ? baseExitDuration : 0
32
+ };
33
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Menubar_context.MenubarMenuContextProvider, {
34
+ value: {
35
+ id,
36
+ index,
37
+ opened
38
+ },
39
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Menu.Menu, {
40
+ position: ctx.position,
41
+ loop: ctx.loop,
42
+ unstyled: ctx.unstyled,
43
+ menuItemTabIndex: -1,
44
+ trapFocus: false,
45
+ ...others,
46
+ transitionProps: resolvedTransitionProps,
47
+ opened,
48
+ onChange: handleChange,
49
+ trigger: "click",
50
+ returnFocus: false,
51
+ children
52
+ })
53
+ });
54
+ }
55
+ MenubarMenu.displayName = "@mantine/core/MenubarMenu";
56
+ //#endregion
57
+ exports.MenubarMenu = MenubarMenu;
58
+
59
+ //# sourceMappingURL=MenubarMenu.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenubarMenu.cjs","names":["useMenubarContext","MenubarMenuContextProvider","Menu"],"sources":["../../../../src/components/Menubar/MenubarMenu/MenubarMenu.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useId, useIsomorphicEffect } from '@mantine/hooks';\nimport { Menu, MenuProps } from '../../Menu';\nimport { MenubarMenuContextProvider, useMenubarContext } from '../Menubar.context';\n\nexport interface MenubarMenuProps extends Omit<\n MenuProps,\n 'opened' | 'defaultOpened' | 'onChange' | 'onOpen' | 'onClose' | 'trigger' | 'returnFocus'\n> {\n /** `Menubar.Target` and `Menubar.Dropdown` components */\n children?: React.ReactNode;\n}\n\nconst DEFAULT_TRANSITION_DURATION = 150;\n\nexport function MenubarMenu({ children, transitionProps, ...others }: MenubarMenuProps) {\n const ctx = useMenubarContext();\n const id = useId();\n const [index, setIndex] = useState(-1);\n\n useIsomorphicEffect(() => {\n const next = ctx.getMenuIndex(id);\n setIndex((current) => (current === next ? current : next));\n });\n\n const opened = ctx.openIndex !== null && index !== -1 && ctx.openIndex === index;\n\n const handleChange = (value: boolean) => {\n if (value) {\n ctx.openMenu(index, 'click');\n ctx.setActiveIndex(index);\n } else {\n ctx.closeMenu();\n }\n };\n\n // Transitions should only play when the whole bar opens or closes, not when\n // switching between sibling menus while one is already open.\n const baseDuration = transitionProps?.duration ?? DEFAULT_TRANSITION_DURATION;\n const baseExitDuration = transitionProps?.exitDuration ?? baseDuration;\n const animateEnter = ctx.getPreviousOpenIndex() === null;\n const animateExit = ctx.openIndex === null;\n const resolvedTransitionProps = {\n ...transitionProps,\n duration: animateEnter ? baseDuration : 0,\n exitDuration: animateExit ? baseExitDuration : 0,\n };\n\n return (\n <MenubarMenuContextProvider value={{ id, index, opened }}>\n <Menu\n position={ctx.position}\n loop={ctx.loop}\n unstyled={ctx.unstyled}\n menuItemTabIndex={-1}\n trapFocus={false}\n {...others}\n transitionProps={resolvedTransitionProps}\n opened={opened}\n onChange={handleChange}\n trigger=\"click\"\n returnFocus={false}\n >\n {children}\n </Menu>\n </MenubarMenuContextProvider>\n );\n}\n\nMenubarMenu.displayName = '@mantine/core/MenubarMenu';\n"],"mappings":";;;;;;;AAaA,MAAM,8BAA8B;AAEpC,SAAgB,YAAY,EAAE,UAAU,iBAAiB,GAAG,UAA4B;CACtF,MAAM,MAAMA,wBAAAA,kBAAkB;CAC9B,MAAM,MAAA,GAAA,eAAA,MAAA,CAAW;CACjB,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,SAAA,CAAqB,EAAE;CAErC,CAAA,GAAA,eAAA,oBAAA,OAA0B;EACxB,MAAM,OAAO,IAAI,aAAa,EAAE;EAChC,UAAU,YAAa,YAAY,OAAO,UAAU,IAAK;CAC3D,CAAC;CAED,MAAM,SAAS,IAAI,cAAc,QAAQ,UAAU,MAAM,IAAI,cAAc;CAE3E,MAAM,gBAAgB,UAAmB;EACvC,IAAI,OAAO;GACT,IAAI,SAAS,OAAO,OAAO;GAC3B,IAAI,eAAe,KAAK;EAC1B,OACE,IAAI,UAAU;CAElB;CAIA,MAAM,eAAe,iBAAiB,YAAY;CAClD,MAAM,mBAAmB,iBAAiB,gBAAgB;CAC1D,MAAM,eAAe,IAAI,qBAAqB,MAAM;CACpD,MAAM,cAAc,IAAI,cAAc;CACtC,MAAM,0BAA0B;EAC9B,GAAG;EACH,UAAU,eAAe,eAAe;EACxC,cAAc,cAAc,mBAAmB;CACjD;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,4BAAD;EAA4B,OAAO;GAAE;GAAI;GAAO;EAAO;YACrD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,MAAD;GACE,UAAU,IAAI;GACd,MAAM,IAAI;GACV,UAAU,IAAI;GACd,kBAAkB;GAClB,WAAW;GACX,GAAI;GACJ,iBAAiB;GACT;GACR,UAAU;GACV,SAAQ;GACR,aAAa;GAEZ;EACG,CAAA;CACoB,CAAA;AAEhC;AAEA,YAAY,cAAc"}
@@ -0,0 +1,143 @@
1
+ "use client";
2
+ const require_create_event_handler = require("../../../core/utils/create-event-handler/create-event-handler.cjs");
3
+ const require_use_props = require("../../../core/MantineProvider/use-props/use-props.cjs");
4
+ const require_DirectionProvider = require("../../../core/DirectionProvider/DirectionProvider.cjs");
5
+ const require_UnstyledButton = require("../../UnstyledButton/UnstyledButton.cjs");
6
+ const require_Popover = require("../../Popover/Popover.cjs");
7
+ const require_Menubar_context = require("../Menubar.context.cjs");
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ //#region packages/@mantine/core/src/components/Menubar/MenubarTarget/MenubarTarget.tsx
10
+ const defaultProps = { refProp: "ref" };
11
+ function isPrintableKey(event) {
12
+ return event.key.length === 1 && event.key !== " " && !event.ctrlKey && !event.metaKey && !event.altKey;
13
+ }
14
+ function getTargetLabel(node) {
15
+ return (node.textContent ?? "").trim().toLowerCase();
16
+ }
17
+ function MenubarTarget(props) {
18
+ const { children, refProp, className, style, disabled, "data-disabled": dataDisabled, onClick, onMouseEnter, onMouseLeave, onFocus, onKeyDown, ...others } = require_use_props.useProps("MenubarTarget", defaultProps, props);
19
+ const ctx = require_Menubar_context.useMenubarContext();
20
+ const menuCtx = require_Menubar_context.useMenubarMenuContext();
21
+ const { dir } = require_DirectionProvider.useDirection();
22
+ const isDisabled = disabled || dataDisabled;
23
+ const isActive = ctx.activeIndex === menuCtx.index;
24
+ const isUnresolvedTabStop = menuCtx.index === -1 && !isDisabled;
25
+ const moveToAdjacent = (direction) => {
26
+ const nextIndex = ctx.getAdjacentIndex(menuCtx.index, direction);
27
+ ctx.setActiveIndex(nextIndex);
28
+ ctx.focusTarget(nextIndex);
29
+ if (ctx.openIndex !== null) ctx.openMenu(nextIndex, "click");
30
+ };
31
+ const openAndFocusItem = (itemPosition) => {
32
+ ctx.openMenu(menuCtx.index, "click");
33
+ ctx.setActiveIndex(menuCtx.index);
34
+ ctx.focusMenuItem(menuCtx.index, itemPosition);
35
+ };
36
+ const typeAhead = (event) => {
37
+ const targets = ctx.getTargets();
38
+ if (targets.length === 0) return;
39
+ const char = event.key.toLowerCase();
40
+ for (let offset = 1; offset <= targets.length; offset += 1) {
41
+ const index = (menuCtx.index + offset) % targets.length;
42
+ const node = targets[index];
43
+ if (node && !node.disabled && !node.hasAttribute("data-disabled") && getTargetLabel(node).startsWith(char)) {
44
+ event.preventDefault();
45
+ ctx.setActiveIndex(index);
46
+ node.focus();
47
+ if (ctx.openIndex !== null) ctx.openMenu(index, "click");
48
+ break;
49
+ }
50
+ }
51
+ };
52
+ const handleClick = require_create_event_handler.createEventHandler(onClick, () => {
53
+ if (isDisabled) return;
54
+ if (ctx.openIndex === menuCtx.index && ctx.getOpenSource() !== "hover") ctx.closeMenu();
55
+ else {
56
+ ctx.openMenu(menuCtx.index, "click");
57
+ ctx.setActiveIndex(menuCtx.index);
58
+ }
59
+ });
60
+ const handleMouseEnter = require_create_event_handler.createEventHandler(onMouseEnter, () => {
61
+ if (isDisabled) return;
62
+ ctx.cancelClose();
63
+ if (ctx.trigger === "hover") {
64
+ ctx.openMenu(menuCtx.index, "hover");
65
+ ctx.setActiveIndex(menuCtx.index);
66
+ } else if (ctx.openIndex !== null && ctx.openIndex !== menuCtx.index) {
67
+ ctx.openMenu(menuCtx.index, "hover");
68
+ ctx.setActiveIndex(menuCtx.index);
69
+ }
70
+ });
71
+ const handleMouseLeave = require_create_event_handler.createEventHandler(onMouseLeave, () => {
72
+ if (ctx.trigger === "hover") ctx.scheduleClose();
73
+ });
74
+ const handleFocus = require_create_event_handler.createEventHandler(onFocus, () => ctx.setActiveIndex(menuCtx.index));
75
+ const handleKeyDown = require_create_event_handler.createEventHandler(onKeyDown, (event) => {
76
+ if (isDisabled) return;
77
+ const forwardKey = dir === "rtl" ? "ArrowLeft" : "ArrowRight";
78
+ const backKey = dir === "rtl" ? "ArrowRight" : "ArrowLeft";
79
+ if (event.key === forwardKey) {
80
+ event.preventDefault();
81
+ moveToAdjacent(1);
82
+ } else if (event.key === backKey) {
83
+ event.preventDefault();
84
+ moveToAdjacent(-1);
85
+ } else if (event.key === "ArrowDown" || event.key === "Enter" || event.key === " ") {
86
+ event.preventDefault();
87
+ openAndFocusItem("first");
88
+ } else if (event.key === "ArrowUp") {
89
+ event.preventDefault();
90
+ openAndFocusItem("last");
91
+ } else if (event.key === "Home") {
92
+ event.preventDefault();
93
+ const enabled = ctx.getEnabledIndexes();
94
+ if (enabled.length > 0) {
95
+ ctx.setActiveIndex(enabled[0]);
96
+ ctx.focusTarget(enabled[0]);
97
+ }
98
+ } else if (event.key === "End") {
99
+ event.preventDefault();
100
+ const enabled = ctx.getEnabledIndexes();
101
+ if (enabled.length > 0) {
102
+ const last = enabled[enabled.length - 1];
103
+ ctx.setActiveIndex(last);
104
+ ctx.focusTarget(last);
105
+ }
106
+ } else if (event.key === "Escape") {
107
+ if (menuCtx.opened) ctx.closeMenu();
108
+ } else if (event.key === "Tab") {
109
+ if (menuCtx.opened) ctx.closeMenu();
110
+ } else if (isPrintableKey(event)) typeAhead(event);
111
+ });
112
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Popover.Popover.Target, {
113
+ refProp,
114
+ popupType: "menu",
115
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_UnstyledButton.UnstyledButton, {
116
+ ...others,
117
+ unstyled: ctx.unstyled,
118
+ role: "menuitem",
119
+ tabIndex: isActive || isUnresolvedTabStop ? 0 : -1,
120
+ disabled,
121
+ "data-menubar-target": true,
122
+ "data-menubar-id": menuCtx.id,
123
+ "data-disabled": dataDisabled || void 0,
124
+ "data-expanded": menuCtx.opened || void 0,
125
+ "data-mantine-stop-propagation": menuCtx.opened || void 0,
126
+ ...ctx.getStyles("target", {
127
+ className,
128
+ style
129
+ }),
130
+ onClick: handleClick,
131
+ onMouseEnter: handleMouseEnter,
132
+ onMouseLeave: handleMouseLeave,
133
+ onFocus: handleFocus,
134
+ onKeyDown: handleKeyDown,
135
+ children
136
+ })
137
+ });
138
+ }
139
+ MenubarTarget.displayName = "@mantine/core/MenubarTarget";
140
+ //#endregion
141
+ exports.MenubarTarget = MenubarTarget;
142
+
143
+ //# sourceMappingURL=MenubarTarget.cjs.map