@mantine/core 9.3.1 → 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 (876) 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/Blockquote/Blockquote.module.cjs.map +1 -1
  46. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
  47. package/cjs/components/Burger/Burger.cjs.map +1 -1
  48. package/cjs/components/Button/Button.cjs.map +1 -1
  49. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
  50. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
  51. package/cjs/components/Card/Card.cjs.map +1 -1
  52. package/cjs/components/Card/Card.context.cjs.map +1 -1
  53. package/cjs/components/Card/CardSection/CardSection.cjs.map +1 -1
  54. package/cjs/components/Center/Center.cjs.map +1 -1
  55. package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
  56. package/cjs/components/Checkbox/Checkbox.cjs +2 -1
  57. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  58. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
  59. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
  60. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  61. package/cjs/components/Chip/Chip.cjs.map +1 -1
  62. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
  63. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  64. package/cjs/components/CloseButton/CloseIcon.cjs.map +1 -1
  65. package/cjs/components/Code/Code.cjs.map +1 -1
  66. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  67. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  68. package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
  69. package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs.map +1 -1
  70. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  71. package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
  72. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  73. package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs.map +1 -1
  74. package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
  75. package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
  76. package/cjs/components/ColorPicker/Thumb/Thumb.cjs.map +1 -1
  77. package/cjs/components/ColorPicker/converters/converters.cjs.map +1 -1
  78. package/cjs/components/ColorPicker/converters/parsers.cjs.map +1 -1
  79. package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
  80. package/cjs/components/Combobox/Combobox.cjs +1 -0
  81. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  82. package/cjs/components/Combobox/Combobox.context.cjs.map +1 -1
  83. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
  84. package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs.map +1 -1
  85. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs.map +1 -1
  86. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs.map +1 -1
  87. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
  88. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
  89. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
  90. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs +3 -2
  91. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
  92. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
  93. package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs.map +1 -1
  94. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
  95. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
  96. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  97. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
  98. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs +2 -2
  99. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  100. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.cjs.map +1 -1
  101. package/cjs/components/Combobox/use-combobox/get-index/get-index.cjs.map +1 -1
  102. package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
  103. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  104. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  105. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -1
  106. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs +218 -0
  107. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs.map +1 -0
  108. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs +45 -0
  109. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs.map +1 -0
  110. package/cjs/components/Container/Container.cjs.map +1 -1
  111. package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
  112. package/cjs/components/DataList/DataList.cjs +61 -0
  113. package/cjs/components/DataList/DataList.cjs.map +1 -0
  114. package/cjs/components/DataList/DataList.context.cjs +8 -0
  115. package/cjs/components/DataList/DataList.context.cjs.map +1 -0
  116. package/cjs/components/DataList/DataList.module.cjs +12 -0
  117. package/cjs/components/DataList/DataList.module.cjs.map +1 -0
  118. package/cjs/components/DataList/DataListItem/DataListItem.cjs +32 -0
  119. package/cjs/components/DataList/DataListItem/DataListItem.cjs.map +1 -0
  120. package/cjs/components/DataList/DataListItemLabel/DataListItemLabel.cjs +33 -0
  121. package/cjs/components/DataList/DataListItemLabel/DataListItemLabel.cjs.map +1 -0
  122. package/cjs/components/DataList/DataListItemValue/DataListItemValue.cjs +33 -0
  123. package/cjs/components/DataList/DataListItemValue/DataListItemValue.cjs.map +1 -0
  124. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  125. package/cjs/components/Divider/Divider.cjs.map +1 -1
  126. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  127. package/cjs/components/Drawer/Drawer.context.cjs.map +1 -1
  128. package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
  129. package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
  130. package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
  131. package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -1
  132. package/cjs/components/Drawer/DrawerOverlay.cjs.map +1 -1
  133. package/cjs/components/Drawer/DrawerRoot.cjs.map +1 -1
  134. package/cjs/components/Drawer/DrawerStack.cjs.map +1 -1
  135. package/cjs/components/Drawer/DrawerTitle.cjs.map +1 -1
  136. package/cjs/components/EmptyState/EmptyState.cjs +102 -0
  137. package/cjs/components/EmptyState/EmptyState.cjs.map +1 -0
  138. package/cjs/components/EmptyState/EmptyState.context.cjs +8 -0
  139. package/cjs/components/EmptyState/EmptyState.context.cjs.map +1 -0
  140. package/cjs/components/EmptyState/EmptyState.module.cjs +14 -0
  141. package/cjs/components/EmptyState/EmptyState.module.cjs.map +1 -0
  142. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs +28 -0
  143. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs.map +1 -0
  144. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs +29 -0
  145. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs.map +1 -0
  146. package/cjs/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.cjs +29 -0
  147. package/cjs/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.cjs.map +1 -0
  148. package/cjs/components/EmptyState/EmptyStateTitle/EmptyStateTitle.cjs +30 -0
  149. package/cjs/components/EmptyState/EmptyStateTitle/EmptyStateTitle.cjs.map +1 -0
  150. package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
  151. package/cjs/components/FileButton/FileButton.cjs.map +1 -1
  152. package/cjs/components/FileInput/FileInput.cjs.map +1 -1
  153. package/cjs/components/Flex/Flex.cjs.map +1 -1
  154. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  155. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
  156. package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
  157. package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
  158. package/cjs/components/Grid/Grid.cjs.map +1 -1
  159. package/cjs/components/Grid/Grid.context.cjs.map +1 -1
  160. package/cjs/components/Grid/GridCol/GridCol.cjs.map +1 -1
  161. package/cjs/components/Grid/GridCol/GridColVariables.cjs.map +1 -1
  162. package/cjs/components/Grid/GridVariables.cjs.map +1 -1
  163. package/cjs/components/Group/Group.cjs.map +1 -1
  164. package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs.map +1 -1
  165. package/cjs/components/Highlight/Highlight.cjs.map +1 -1
  166. package/cjs/components/Highlight/highlighter/highlighter.cjs.map +1 -1
  167. package/cjs/components/HoverCard/HoverCard.cjs +1 -0
  168. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  169. package/cjs/components/HoverCard/HoverCard.context.cjs.map +1 -1
  170. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  171. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
  172. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs +10 -2
  173. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  174. package/cjs/components/HoverCard/use-hover-card.cjs +24 -0
  175. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  176. package/cjs/components/Image/Image.cjs.map +1 -1
  177. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  178. package/cjs/components/Input/Input.cjs +7 -2
  179. package/cjs/components/Input/Input.cjs.map +1 -1
  180. package/cjs/components/Input/Input.context.cjs.map +1 -1
  181. package/cjs/components/Input/Input.module.cjs +1 -0
  182. package/cjs/components/Input/Input.module.cjs.map +1 -1
  183. package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
  184. package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
  185. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
  186. package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
  187. package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
  188. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs.map +1 -1
  189. package/cjs/components/Input/InputSuccess/InputSuccess.cjs +48 -0
  190. package/cjs/components/Input/InputSuccess/InputSuccess.cjs.map +1 -0
  191. package/cjs/components/Input/InputWrapper/InputWrapper.cjs +22 -5
  192. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  193. package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
  194. package/cjs/components/Input/use-input-props.cjs +4 -1
  195. package/cjs/components/Input/use-input-props.cjs.map +1 -1
  196. package/cjs/components/InputBase/InputBase.cjs.map +1 -1
  197. package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
  198. package/cjs/components/JsonInput/validate-json/validate-json.cjs.map +1 -1
  199. package/cjs/components/Kbd/Kbd.cjs.map +1 -1
  200. package/cjs/components/List/List.cjs.map +1 -1
  201. package/cjs/components/List/List.context.cjs.map +1 -1
  202. package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
  203. package/cjs/components/Loader/Loader.cjs.map +1 -1
  204. package/cjs/components/Loader/loaders/Bars.cjs.map +1 -1
  205. package/cjs/components/Loader/loaders/Dots.cjs.map +1 -1
  206. package/cjs/components/Loader/loaders/Oval.cjs.map +1 -1
  207. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  208. package/cjs/components/Mark/Mark.cjs.map +1 -1
  209. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  210. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
  211. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
  212. package/cjs/components/Menu/Menu.cjs.map +1 -1
  213. package/cjs/components/Menu/Menu.context.cjs.map +1 -1
  214. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs.map +1 -1
  215. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs.map +1 -1
  216. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs.map +1 -1
  217. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs.map +1 -1
  218. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
  219. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
  220. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  221. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
  222. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs.map +1 -1
  223. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs.map +1 -1
  224. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs.map +1 -1
  225. package/cjs/components/Menu/MenuSearch/MenuSearch.cjs.map +1 -1
  226. package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs.map +1 -1
  227. package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
  228. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
  229. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  230. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  231. package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs.map +1 -1
  232. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
  233. package/cjs/components/Menu/use-menu-type-ahead.cjs.map +1 -1
  234. package/cjs/components/Menubar/Menubar.cjs +146 -0
  235. package/cjs/components/Menubar/Menubar.cjs.map +1 -0
  236. package/cjs/components/Menubar/Menubar.context.cjs +12 -0
  237. package/cjs/components/Menubar/Menubar.context.cjs.map +1 -0
  238. package/cjs/components/Menubar/Menubar.module.cjs +10 -0
  239. package/cjs/components/Menubar/Menubar.module.cjs.map +1 -0
  240. package/cjs/components/Menubar/MenubarDropdown/MenubarDropdown.cjs +61 -0
  241. package/cjs/components/Menubar/MenubarDropdown/MenubarDropdown.cjs.map +1 -0
  242. package/cjs/components/Menubar/MenubarMenu/MenubarMenu.cjs +59 -0
  243. package/cjs/components/Menubar/MenubarMenu/MenubarMenu.cjs.map +1 -0
  244. package/cjs/components/Menubar/MenubarTarget/MenubarTarget.cjs +143 -0
  245. package/cjs/components/Menubar/MenubarTarget/MenubarTarget.cjs.map +1 -0
  246. package/cjs/components/Modal/Modal.cjs.map +1 -1
  247. package/cjs/components/Modal/Modal.context.cjs.map +1 -1
  248. package/cjs/components/Modal/ModalBody.cjs.map +1 -1
  249. package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
  250. package/cjs/components/Modal/ModalContent.cjs.map +1 -1
  251. package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
  252. package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
  253. package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
  254. package/cjs/components/Modal/ModalStack.cjs.map +1 -1
  255. package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
  256. package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
  257. package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
  258. package/cjs/components/ModalBase/ModalBase.context.cjs.map +1 -1
  259. package/cjs/components/ModalBase/ModalBaseBody.cjs.map +1 -1
  260. package/cjs/components/ModalBase/ModalBaseCloseButton.cjs.map +1 -1
  261. package/cjs/components/ModalBase/ModalBaseContent.cjs.map +1 -1
  262. package/cjs/components/ModalBase/ModalBaseHeader.cjs.map +1 -1
  263. package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
  264. package/cjs/components/ModalBase/ModalBaseTitle.cjs.map +1 -1
  265. package/cjs/components/ModalBase/NativeScrollArea.cjs.map +1 -1
  266. package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
  267. package/cjs/components/ModalBase/use-modal-body-id.cjs.map +1 -1
  268. package/cjs/components/ModalBase/use-modal-title-id.cjs.map +1 -1
  269. package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
  270. package/cjs/components/MultiSelect/MultiSelect.cjs +4 -1
  271. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  272. package/cjs/components/MultiSelect/filter-picked-values.cjs.map +1 -1
  273. package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
  274. package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
  275. package/cjs/components/NavLink/NavLink.cjs.map +1 -1
  276. package/cjs/components/Notification/Notification.cjs.map +1 -1
  277. package/cjs/components/NumberFormatter/NumberFormatter.cjs.map +1 -1
  278. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  279. package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
  280. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  281. package/cjs/components/OverflowList/get-row-position-data.cjs.map +1 -1
  282. package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
  283. package/cjs/components/Overlay/Overlay.cjs.map +1 -1
  284. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  285. package/cjs/components/Pagination/Pagination.context.cjs.map +1 -1
  286. package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
  287. package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs.map +1 -1
  288. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
  289. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
  290. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
  291. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +1 -1
  292. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
  293. package/cjs/components/Paper/Paper.cjs.map +1 -1
  294. package/cjs/components/PasswordInput/PasswordInput.cjs +13 -2
  295. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  296. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
  297. package/cjs/components/Pill/Pill.cjs.map +1 -1
  298. package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
  299. package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
  300. package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
  301. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
  302. package/cjs/components/PinInput/PinInput.cjs +2 -1
  303. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  304. package/cjs/components/PinInput/create-pin-array/create-pin-array.cjs.map +1 -1
  305. package/cjs/components/Popover/Popover.cjs +2 -1
  306. package/cjs/components/Popover/Popover.cjs.map +1 -1
  307. package/cjs/components/Popover/Popover.context.cjs.map +1 -1
  308. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs.map +1 -1
  309. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs +1 -0
  310. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
  311. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
  312. package/cjs/components/Popover/use-popover.cjs +23 -11
  313. package/cjs/components/Popover/use-popover.cjs.map +1 -1
  314. package/cjs/components/Portal/OptionalPortal.cjs.map +1 -1
  315. package/cjs/components/Portal/Portal.cjs.map +1 -1
  316. package/cjs/components/Progress/Progress.cjs.map +1 -1
  317. package/cjs/components/Progress/Progress.context.cjs.map +1 -1
  318. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
  319. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
  320. package/cjs/components/Progress/ProgressSection/ProgressSection.cjs.map +1 -1
  321. package/cjs/components/Radio/Radio.cjs.map +1 -1
  322. package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
  323. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
  324. package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
  325. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  326. package/cjs/components/Rating/Rating.cjs.map +1 -1
  327. package/cjs/components/Rating/Rating.context.cjs.map +1 -1
  328. package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
  329. package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
  330. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
  331. package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
  332. package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
  333. package/cjs/components/RingProgress/get-curves/get-curves.cjs.map +1 -1
  334. package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -1
  335. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -1
  336. package/cjs/components/RollingNumber/get-digit-parts.cjs.map +1 -1
  337. package/cjs/components/RollingNumber/get-render-slots.cjs.map +1 -1
  338. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  339. package/cjs/components/ScrollArea/ScrollArea.context.cjs.map +1 -1
  340. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
  341. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
  342. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs.map +1 -1
  343. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
  344. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
  345. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
  346. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
  347. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  348. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.cjs.map +1 -1
  349. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
  350. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
  351. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
  352. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs +1 -0
  353. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
  354. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  355. package/cjs/components/ScrollArea/utils/add-unlinked-scroll-listener.cjs.map +1 -1
  356. package/cjs/components/ScrollArea/utils/get-scroll-position-from-pointer.cjs.map +1 -1
  357. package/cjs/components/ScrollArea/utils/get-thumb-offset-from-scroll.cjs.map +1 -1
  358. package/cjs/components/Scroller/Scroller.cjs.map +1 -1
  359. package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
  360. package/cjs/components/Select/Select.cjs.map +1 -1
  361. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs +4 -1
  362. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
  363. package/cjs/components/SemiCircleProgress/SemiCircleProgress.module.cjs.map +1 -1
  364. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  365. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
  366. package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  367. package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
  368. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  369. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  370. package/cjs/components/Slider/Slider.context.cjs.map +1 -1
  371. package/cjs/components/Slider/SliderRoot/SliderRoot.cjs.map +1 -1
  372. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  373. package/cjs/components/Slider/Track/Track.cjs.map +1 -1
  374. package/cjs/components/Slider/utils/get-precision/get-precision.cjs.map +1 -1
  375. package/cjs/components/Slider/utils/get-step-mark-value/get-step-mark-value.cjs.map +1 -1
  376. package/cjs/components/Space/Space.cjs.map +1 -1
  377. package/cjs/components/Splitter/GripIcon.cjs.map +1 -1
  378. package/cjs/components/Splitter/Splitter.cjs +27 -4
  379. package/cjs/components/Splitter/Splitter.cjs.map +1 -1
  380. package/cjs/components/Splitter/Splitter.context.cjs.map +1 -1
  381. package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs +1 -2
  382. package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs.map +1 -1
  383. package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
  384. package/cjs/components/Stack/Stack.cjs.map +1 -1
  385. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  386. package/cjs/components/Stepper/Stepper.context.cjs.map +1 -1
  387. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  388. package/cjs/components/Switch/Switch.cjs.map +1 -1
  389. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
  390. package/cjs/components/Table/Table.cjs.map +1 -1
  391. package/cjs/components/Table/Table.components.cjs.map +1 -1
  392. package/cjs/components/Table/Table.context.cjs.map +1 -1
  393. package/cjs/components/Table/TableDataRenderer.cjs.map +1 -1
  394. package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
  395. package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
  396. package/cjs/components/Tabs/Tabs.cjs +16 -1
  397. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  398. package/cjs/components/Tabs/Tabs.context.cjs.map +1 -1
  399. package/cjs/components/Tabs/TabsList/TabsList.cjs.map +1 -1
  400. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs +6 -0
  401. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  402. package/cjs/components/Tabs/TabsTab/TabsTab.cjs +1 -1
  403. package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
  404. package/cjs/components/TagsInput/TagsInput.cjs +4 -1
  405. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  406. package/cjs/components/TagsInput/filter-picked-tags.cjs.map +1 -1
  407. package/cjs/components/TagsInput/get-splitted-tags.cjs.map +1 -1
  408. package/cjs/components/Text/Text.cjs.map +1 -1
  409. package/cjs/components/Text/Text.module.cjs.map +1 -1
  410. package/cjs/components/TextInput/TextInput.cjs.map +1 -1
  411. package/cjs/components/Textarea/Autosize.cjs +14 -0
  412. package/cjs/components/Textarea/Autosize.cjs.map +1 -1
  413. package/cjs/components/Textarea/Textarea.cjs.map +1 -1
  414. package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
  415. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  416. package/cjs/components/Timeline/Timeline.context.cjs.map +1 -1
  417. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  418. package/cjs/components/Title/Title.cjs.map +1 -1
  419. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  420. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  421. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
  422. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
  423. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  424. package/cjs/components/Transition/Transition.cjs +17 -10
  425. package/cjs/components/Transition/Transition.cjs.map +1 -1
  426. package/cjs/components/Transition/get-transition-styles/get-transition-styles.cjs.map +1 -1
  427. package/cjs/components/Transition/use-transition.cjs.map +1 -1
  428. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
  429. package/cjs/components/Tree/Tree.cjs.map +1 -1
  430. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  431. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs.map +1 -1
  432. package/cjs/components/Tree/is-node-checked/is-node-checked.cjs.map +1 -1
  433. package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs.map +1 -1
  434. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
  435. package/cjs/components/Tree/use-tree.cjs.map +1 -1
  436. package/cjs/components/TreeSelect/TreeSelect.cjs +7 -1
  437. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  438. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -1
  439. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +1 -1
  440. package/cjs/components/Typography/Typography.cjs.map +1 -1
  441. package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
  442. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  443. package/cjs/core/Box/Box.cjs.map +1 -1
  444. package/cjs/core/Box/get-box-mod/get-box-mod.cjs.map +1 -1
  445. package/cjs/core/Box/get-box-style/get-box-style.cjs.map +1 -1
  446. package/cjs/core/Box/get-style-object/get-style-object.cjs.map +1 -1
  447. package/cjs/core/Box/style-props/parse-style-props/parse-style-props.cjs.map +1 -1
  448. package/cjs/core/Box/style-props/parse-style-props/sort-media-queries.cjs.map +1 -1
  449. package/cjs/core/Box/style-props/resolvers/border-resolver/border-resolver.cjs.map +1 -1
  450. package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
  451. package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
  452. package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
  453. package/cjs/core/InlineStyles/css-object-to-string/css-object-to-string.cjs.map +1 -1
  454. package/cjs/core/InlineStyles/hash-styles.cjs.map +1 -1
  455. package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs.map +1 -1
  456. package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
  457. package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs.map +1 -1
  458. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
  459. package/cjs/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.cjs +5 -1
  460. package/cjs/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.cjs.map +1 -1
  461. package/cjs/core/MantineProvider/MantineCssVariables/get-css-color-variables.cjs.map +1 -1
  462. package/cjs/core/MantineProvider/MantineCssVariables/remove-default-variables.cjs.map +1 -1
  463. package/cjs/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.cjs +3 -1
  464. package/cjs/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.cjs.map +1 -1
  465. package/cjs/core/MantineProvider/MantineCssVariables/virtual-color/virtual-color.cjs.map +1 -1
  466. package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
  467. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
  468. package/cjs/core/MantineProvider/color-functions/colors-tuple/colors-tuple.cjs.map +1 -1
  469. package/cjs/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs +3 -1
  470. package/cjs/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs.map +1 -1
  471. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs +19 -3
  472. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs.map +1 -1
  473. package/cjs/core/MantineProvider/color-functions/parse-theme-color/parse-theme-color.cjs.map +1 -1
  474. package/cjs/core/MantineProvider/color-functions/to-rgba/to-rgba.cjs.map +1 -1
  475. package/cjs/core/MantineProvider/convert-css-variables/convert-css-variables.cjs.map +1 -1
  476. package/cjs/core/MantineProvider/convert-css-variables/css-variables-object-to-string.cjs.map +1 -1
  477. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
  478. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
  479. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
  480. package/cjs/core/MantineProvider/use-props/use-props.cjs.map +1 -1
  481. package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs.map +1 -1
  482. package/cjs/core/factory/factory.cjs.map +1 -1
  483. package/cjs/core/factory/polymorphic-factory.cjs.map +1 -1
  484. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs.map +1 -1
  485. package/cjs/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.cjs.map +1 -1
  486. package/cjs/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.cjs.map +1 -1
  487. package/cjs/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.cjs.map +1 -1
  488. package/cjs/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.cjs.map +1 -1
  489. package/cjs/core/styles-api/use-styles/get-style/get-style.cjs.map +1 -1
  490. package/cjs/core/styles-api/use-styles/get-style/resolve-vars/merge-vars.cjs.map +1 -1
  491. package/cjs/core/styles-api/use-styles/use-styles.cjs.map +1 -1
  492. package/cjs/core/styles-api/use-styles/use-transformed-styles.cjs.map +1 -1
  493. package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
  494. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs +3 -5
  495. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs.map +1 -1
  496. package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs.map +1 -1
  497. package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -1
  498. package/cjs/core/utils/filter-props/filter-props.cjs.map +1 -1
  499. package/cjs/core/utils/get-context-item-index/get-context-item-index.cjs.map +1 -1
  500. package/cjs/core/utils/get-safe-id/get-safe-id.cjs.map +1 -1
  501. package/cjs/core/utils/is-number-like/is-number-like.cjs.map +1 -1
  502. package/cjs/core/utils/units-converters/px.cjs.map +1 -1
  503. package/cjs/core/utils/units-converters/rem.cjs.map +1 -1
  504. package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
  505. package/cjs/index.cjs +42 -2
  506. package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs.map +1 -1
  507. package/cjs/utils/Floating/use-context-menu-handlers.cjs.map +1 -1
  508. package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
  509. package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
  510. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
  511. package/esm/components/Accordion/Accordion.mjs +1 -0
  512. package/esm/components/Accordion/Accordion.mjs.map +1 -1
  513. package/esm/components/ActionIcon/ActionIcon.mjs +1 -0
  514. package/esm/components/ActionIcon/ActionIcon.mjs.map +1 -1
  515. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs +1 -1
  516. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  517. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs.map +1 -1
  518. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
  519. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
  520. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs.map +1 -1
  521. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs.map +1 -1
  522. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs.map +1 -1
  523. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs.map +1 -1
  524. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs.map +1 -1
  525. package/esm/components/AppShell/AppShellMediaStyles/assign-padding-variables/assign-padding-variables.mjs.map +1 -1
  526. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs.map +1 -1
  527. package/esm/components/AppShell/AppShellMediaStyles/is-primitive-size/is-primitive-size.mjs.map +1 -1
  528. package/esm/components/AppShell/AppShellMediaStyles/is-responsive-size/is-responsive-size.mjs.map +1 -1
  529. package/esm/components/AspectRatio/AspectRatio.mjs.map +1 -1
  530. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  531. package/esm/components/Avatar/AvatarGroup/AvatarGroup.mjs.map +1 -1
  532. package/esm/components/Avatar/get-initials/get-initials.mjs.map +1 -1
  533. package/esm/components/BackgroundImage/BackgroundImage.mjs.map +1 -1
  534. package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
  535. package/esm/components/Blockquote/Blockquote.module.mjs.map +1 -1
  536. package/esm/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  537. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs.map +1 -1
  538. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs.map +1 -1
  539. package/esm/components/Checkbox/Checkbox.mjs +2 -1
  540. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  541. package/esm/components/Collapse/Collapse.mjs.map +1 -1
  542. package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
  543. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs.map +1 -1
  544. package/esm/components/ColorPicker/converters/converters.mjs.map +1 -1
  545. package/esm/components/ColorPicker/converters/parsers.mjs.map +1 -1
  546. package/esm/components/Combobox/Combobox.mjs +1 -0
  547. package/esm/components/Combobox/Combobox.mjs.map +1 -1
  548. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs.map +1 -1
  549. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs.map +1 -1
  550. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs +3 -2
  551. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs.map +1 -1
  552. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs.map +1 -1
  553. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs +2 -2
  554. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  555. package/esm/components/Combobox/OptionsDropdown/default-options-filter.mjs.map +1 -1
  556. package/esm/components/Combobox/use-combobox/get-index/get-index.mjs.map +1 -1
  557. package/esm/components/Combobox/use-combobox/use-combobox.mjs.map +1 -1
  558. package/esm/components/Combobox/use-pills-reorder/use-pills-reorder.mjs.map +1 -1
  559. package/esm/components/ComboboxPopover/ComboboxPopover.mjs +216 -0
  560. package/esm/components/ComboboxPopover/ComboboxPopover.mjs.map +1 -0
  561. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs +45 -0
  562. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs.map +1 -0
  563. package/esm/components/DataList/DataList.context.mjs +8 -0
  564. package/esm/components/DataList/DataList.context.mjs.map +1 -0
  565. package/esm/components/DataList/DataList.mjs +61 -0
  566. package/esm/components/DataList/DataList.mjs.map +1 -0
  567. package/esm/components/DataList/DataList.module.mjs +12 -0
  568. package/esm/components/DataList/DataList.module.mjs.map +1 -0
  569. package/esm/components/DataList/DataListItem/DataListItem.mjs +32 -0
  570. package/esm/components/DataList/DataListItem/DataListItem.mjs.map +1 -0
  571. package/esm/components/DataList/DataListItemLabel/DataListItemLabel.mjs +33 -0
  572. package/esm/components/DataList/DataListItemLabel/DataListItemLabel.mjs.map +1 -0
  573. package/esm/components/DataList/DataListItemValue/DataListItemValue.mjs +33 -0
  574. package/esm/components/DataList/DataListItemValue/DataListItemValue.mjs.map +1 -0
  575. package/esm/components/Drawer/DrawerBody.mjs.map +1 -1
  576. package/esm/components/Drawer/DrawerCloseButton.mjs.map +1 -1
  577. package/esm/components/Drawer/DrawerHeader.mjs.map +1 -1
  578. package/esm/components/Drawer/DrawerOverlay.mjs.map +1 -1
  579. package/esm/components/Drawer/DrawerRoot.mjs.map +1 -1
  580. package/esm/components/Drawer/DrawerTitle.mjs.map +1 -1
  581. package/esm/components/EmptyState/EmptyState.context.mjs +8 -0
  582. package/esm/components/EmptyState/EmptyState.context.mjs.map +1 -0
  583. package/esm/components/EmptyState/EmptyState.mjs +102 -0
  584. package/esm/components/EmptyState/EmptyState.mjs.map +1 -0
  585. package/esm/components/EmptyState/EmptyState.module.mjs +14 -0
  586. package/esm/components/EmptyState/EmptyState.module.mjs.map +1 -0
  587. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs +28 -0
  588. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs.map +1 -0
  589. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs +29 -0
  590. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs.map +1 -0
  591. package/esm/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.mjs +29 -0
  592. package/esm/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.mjs.map +1 -0
  593. package/esm/components/EmptyState/EmptyStateTitle/EmptyStateTitle.mjs +30 -0
  594. package/esm/components/EmptyState/EmptyStateTitle/EmptyStateTitle.mjs.map +1 -0
  595. package/esm/components/FileInput/FileInput.mjs.map +1 -1
  596. package/esm/components/Grid/GridCol/GridColVariables.mjs.map +1 -1
  597. package/esm/components/Grid/GridVariables.mjs.map +1 -1
  598. package/esm/components/Group/Group.mjs.map +1 -1
  599. package/esm/components/Group/filter-falsy-children/filter-falsy-children.mjs.map +1 -1
  600. package/esm/components/Highlight/highlighter/highlighter.mjs.map +1 -1
  601. package/esm/components/HoverCard/HoverCard.context.mjs.map +1 -1
  602. package/esm/components/HoverCard/HoverCard.mjs +1 -0
  603. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  604. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs.map +1 -1
  605. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs +10 -2
  606. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
  607. package/esm/components/HoverCard/use-hover-card.mjs +24 -0
  608. package/esm/components/HoverCard/use-hover-card.mjs.map +1 -1
  609. package/esm/components/Input/Input.mjs +7 -2
  610. package/esm/components/Input/Input.mjs.map +1 -1
  611. package/esm/components/Input/Input.module.mjs +1 -0
  612. package/esm/components/Input/Input.module.mjs.map +1 -1
  613. package/esm/components/Input/InputDescription/InputDescription.mjs.map +1 -1
  614. package/esm/components/Input/InputError/InputError.mjs.map +1 -1
  615. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs.map +1 -1
  616. package/esm/components/Input/InputSuccess/InputSuccess.mjs +48 -0
  617. package/esm/components/Input/InputSuccess/InputSuccess.mjs.map +1 -0
  618. package/esm/components/Input/InputWrapper/InputWrapper.mjs +22 -5
  619. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  620. package/esm/components/Input/use-input-props.mjs +4 -1
  621. package/esm/components/Input/use-input-props.mjs.map +1 -1
  622. package/esm/components/JsonInput/validate-json/validate-json.mjs.map +1 -1
  623. package/esm/components/Kbd/Kbd.mjs.map +1 -1
  624. package/esm/components/Mark/Mark.mjs.map +1 -1
  625. package/esm/components/Marquee/Marquee.mjs.map +1 -1
  626. package/esm/components/Menu/MenuDivider/MenuDivider.mjs.map +1 -1
  627. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
  628. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  629. package/esm/components/Menu/MenuLabel/MenuLabel.mjs.map +1 -1
  630. package/esm/components/Menu/MenuSearch/MenuSearch.mjs.map +1 -1
  631. package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs.map +1 -1
  632. package/esm/components/Menu/MenuSub/MenuSub.mjs.map +1 -1
  633. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  634. package/esm/components/Menu/use-menu-type-ahead.mjs.map +1 -1
  635. package/esm/components/Menubar/Menubar.context.mjs +9 -0
  636. package/esm/components/Menubar/Menubar.context.mjs.map +1 -0
  637. package/esm/components/Menubar/Menubar.mjs +146 -0
  638. package/esm/components/Menubar/Menubar.mjs.map +1 -0
  639. package/esm/components/Menubar/Menubar.module.mjs +10 -0
  640. package/esm/components/Menubar/Menubar.module.mjs.map +1 -0
  641. package/esm/components/Menubar/MenubarDropdown/MenubarDropdown.mjs +61 -0
  642. package/esm/components/Menubar/MenubarDropdown/MenubarDropdown.mjs.map +1 -0
  643. package/esm/components/Menubar/MenubarMenu/MenubarMenu.mjs +59 -0
  644. package/esm/components/Menubar/MenubarMenu/MenubarMenu.mjs.map +1 -0
  645. package/esm/components/Menubar/MenubarTarget/MenubarTarget.mjs +143 -0
  646. package/esm/components/Menubar/MenubarTarget/MenubarTarget.mjs.map +1 -0
  647. package/esm/components/Modal/ModalBody.mjs.map +1 -1
  648. package/esm/components/Modal/ModalCloseButton.mjs.map +1 -1
  649. package/esm/components/Modal/ModalHeader.mjs.map +1 -1
  650. package/esm/components/Modal/ModalOverlay.mjs.map +1 -1
  651. package/esm/components/Modal/ModalTitle.mjs.map +1 -1
  652. package/esm/components/ModalBase/ModalBase.mjs.map +1 -1
  653. package/esm/components/MultiSelect/MultiSelect.mjs +4 -1
  654. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  655. package/esm/components/MultiSelect/filter-picked-values.mjs.map +1 -1
  656. package/esm/components/NativeSelect/NativeSelect.mjs.map +1 -1
  657. package/esm/components/NativeSelect/NativeSelectOption.mjs.map +1 -1
  658. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  659. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  660. package/esm/components/OverflowList/get-row-position-data.mjs.map +1 -1
  661. package/esm/components/OverflowList/use-dimensions.mjs.map +1 -1
  662. package/esm/components/Overlay/Overlay.mjs.map +1 -1
  663. package/esm/components/Pagination/Pagination.icons.mjs.map +1 -1
  664. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  665. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs.map +1 -1
  666. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs.map +1 -1
  667. package/esm/components/PasswordInput/PasswordInput.mjs +13 -2
  668. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  669. package/esm/components/Pill/PillGroup/PillGroup.mjs.map +1 -1
  670. package/esm/components/PillsInput/PillsInput.mjs.map +1 -1
  671. package/esm/components/PinInput/PinInput.mjs +2 -1
  672. package/esm/components/PinInput/PinInput.mjs.map +1 -1
  673. package/esm/components/PinInput/create-pin-array/create-pin-array.mjs.map +1 -1
  674. package/esm/components/Popover/Popover.context.mjs.map +1 -1
  675. package/esm/components/Popover/Popover.mjs +2 -1
  676. package/esm/components/Popover/Popover.mjs.map +1 -1
  677. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs +1 -0
  678. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
  679. package/esm/components/Popover/use-popover.mjs +23 -11
  680. package/esm/components/Popover/use-popover.mjs.map +1 -1
  681. package/esm/components/Portal/Portal.mjs.map +1 -1
  682. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs.map +1 -1
  683. package/esm/components/Radio/Radio.mjs.map +1 -1
  684. package/esm/components/Radio/RadioCard/RadioCard.mjs.map +1 -1
  685. package/esm/components/Rating/Rating.mjs.map +1 -1
  686. package/esm/components/Rating/RatingItem/RatingItem.mjs.map +1 -1
  687. package/esm/components/Rating/StarSymbol/StarSymbol.mjs.map +1 -1
  688. package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
  689. package/esm/components/RingProgress/get-curves/get-curves.mjs.map +1 -1
  690. package/esm/components/RollingNumber/get-digit-parts.mjs.map +1 -1
  691. package/esm/components/RollingNumber/get-render-slots.mjs.map +1 -1
  692. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs +1 -0
  693. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs.map +1 -1
  694. package/esm/components/ScrollArea/utils/add-unlinked-scroll-listener.mjs.map +1 -1
  695. package/esm/components/ScrollArea/utils/get-scroll-position-from-pointer.mjs.map +1 -1
  696. package/esm/components/ScrollArea/utils/get-thumb-offset-from-scroll.mjs.map +1 -1
  697. package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  698. package/esm/components/Select/Select.mjs.map +1 -1
  699. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs +4 -1
  700. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs.map +1 -1
  701. package/esm/components/SemiCircleProgress/SemiCircleProgress.module.mjs.map +1 -1
  702. package/esm/components/SimpleGrid/SimpleGridVariables.mjs.map +1 -1
  703. package/esm/components/Skeleton/Skeleton.mjs.map +1 -1
  704. package/esm/components/Slider/RangeSlider/RangeSlider.mjs.map +1 -1
  705. package/esm/components/Slider/Thumb/Thumb.mjs.map +1 -1
  706. package/esm/components/Slider/utils/get-precision/get-precision.mjs.map +1 -1
  707. package/esm/components/Slider/utils/get-step-mark-value/get-step-mark-value.mjs.map +1 -1
  708. package/esm/components/Splitter/Splitter.context.mjs.map +1 -1
  709. package/esm/components/Splitter/Splitter.mjs +27 -4
  710. package/esm/components/Splitter/Splitter.mjs.map +1 -1
  711. package/esm/components/Splitter/SplitterPane/SplitterPane.mjs +1 -2
  712. package/esm/components/Splitter/SplitterPane/SplitterPane.mjs.map +1 -1
  713. package/esm/components/Stack/Stack.mjs.map +1 -1
  714. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  715. package/esm/components/Switch/Switch.mjs.map +1 -1
  716. package/esm/components/Table/Table.components.mjs.map +1 -1
  717. package/esm/components/TableOfContents/TableOfContents.mjs.map +1 -1
  718. package/esm/components/Tabs/Tabs.context.mjs.map +1 -1
  719. package/esm/components/Tabs/Tabs.mjs +18 -3
  720. package/esm/components/Tabs/Tabs.mjs.map +1 -1
  721. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs +7 -1
  722. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs.map +1 -1
  723. package/esm/components/Tabs/TabsTab/TabsTab.mjs +1 -1
  724. package/esm/components/Tabs/TabsTab/TabsTab.mjs.map +1 -1
  725. package/esm/components/TagsInput/TagsInput.mjs +4 -1
  726. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  727. package/esm/components/TagsInput/filter-picked-tags.mjs.map +1 -1
  728. package/esm/components/TagsInput/get-splitted-tags.mjs.map +1 -1
  729. package/esm/components/Text/Text.mjs.map +1 -1
  730. package/esm/components/Text/Text.module.mjs.map +1 -1
  731. package/esm/components/Textarea/Autosize.mjs +14 -0
  732. package/esm/components/Textarea/Autosize.mjs.map +1 -1
  733. package/esm/components/ThemeIcon/ThemeIcon.mjs.map +1 -1
  734. package/esm/components/Title/Title.mjs.map +1 -1
  735. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  736. package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
  737. package/esm/components/Transition/Transition.mjs +17 -10
  738. package/esm/components/Transition/Transition.mjs.map +1 -1
  739. package/esm/components/Transition/get-transition-styles/get-transition-styles.mjs.map +1 -1
  740. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
  741. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  742. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs.map +1 -1
  743. package/esm/components/Tree/is-node-checked/is-node-checked.mjs.map +1 -1
  744. package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs.map +1 -1
  745. package/esm/components/Tree/use-tree.mjs.map +1 -1
  746. package/esm/components/TreeSelect/TreeSelect.mjs +7 -1
  747. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
  748. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +1 -1
  749. package/esm/components/Typography/Typography.mjs.map +1 -1
  750. package/esm/components/UnstyledButton/UnstyledButton.mjs.map +1 -1
  751. package/esm/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -1
  752. package/esm/core/Box/Box.mjs.map +1 -1
  753. package/esm/core/Box/get-box-mod/get-box-mod.mjs.map +1 -1
  754. package/esm/core/Box/get-box-style/get-box-style.mjs.map +1 -1
  755. package/esm/core/Box/get-style-object/get-style-object.mjs.map +1 -1
  756. package/esm/core/Box/style-props/parse-style-props/parse-style-props.mjs.map +1 -1
  757. package/esm/core/Box/style-props/parse-style-props/sort-media-queries.mjs.map +1 -1
  758. package/esm/core/Box/style-props/resolvers/border-resolver/border-resolver.mjs.map +1 -1
  759. package/esm/core/Box/use-random-classname/use-random-classname.mjs.map +1 -1
  760. package/esm/core/InlineStyles/InlineStyles.mjs.map +1 -1
  761. package/esm/core/InlineStyles/css-object-to-string/css-object-to-string.mjs.map +1 -1
  762. package/esm/core/InlineStyles/hash-styles.mjs.map +1 -1
  763. package/esm/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.mjs.map +1 -1
  764. package/esm/core/MantineProvider/Mantine.context.mjs.map +1 -1
  765. package/esm/core/MantineProvider/MantineClasses/MantineClasses.mjs.map +1 -1
  766. package/esm/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.mjs +6 -2
  767. package/esm/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.mjs.map +1 -1
  768. package/esm/core/MantineProvider/MantineCssVariables/get-css-color-variables.mjs.map +1 -1
  769. package/esm/core/MantineProvider/MantineCssVariables/remove-default-variables.mjs.map +1 -1
  770. package/esm/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.mjs +3 -1
  771. package/esm/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.mjs.map +1 -1
  772. package/esm/core/MantineProvider/MantineCssVariables/virtual-color/virtual-color.mjs.map +1 -1
  773. package/esm/core/MantineProvider/color-functions/colors-tuple/colors-tuple.mjs.map +1 -1
  774. package/esm/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs +3 -1
  775. package/esm/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs.map +1 -1
  776. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs +19 -4
  777. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs.map +1 -1
  778. package/esm/core/MantineProvider/color-functions/parse-theme-color/parse-theme-color.mjs.map +1 -1
  779. package/esm/core/MantineProvider/color-functions/to-rgba/to-rgba.mjs.map +1 -1
  780. package/esm/core/MantineProvider/convert-css-variables/convert-css-variables.mjs.map +1 -1
  781. package/esm/core/MantineProvider/convert-css-variables/css-variables-object-to-string.mjs.map +1 -1
  782. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs.map +1 -1
  783. package/esm/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.mjs.map +1 -1
  784. package/esm/core/MantineProvider/use-props/use-props.mjs.map +1 -1
  785. package/esm/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.mjs.map +1 -1
  786. package/esm/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.mjs.map +1 -1
  787. package/esm/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.mjs.map +1 -1
  788. package/esm/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.mjs.map +1 -1
  789. package/esm/core/styles-api/use-styles/get-style/get-style.mjs.map +1 -1
  790. package/esm/core/styles-api/use-styles/get-style/resolve-vars/merge-vars.mjs.map +1 -1
  791. package/esm/core/styles-api/use-styles/use-styles.mjs.map +1 -1
  792. package/esm/core/styles-api/use-styles/use-transformed-styles.mjs.map +1 -1
  793. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs +3 -5
  794. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs.map +1 -1
  795. package/esm/core/utils/create-use-external-events/create-use-external-events.mjs.map +1 -1
  796. package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -1
  797. package/esm/core/utils/filter-props/filter-props.mjs.map +1 -1
  798. package/esm/core/utils/get-context-item-index/get-context-item-index.mjs.map +1 -1
  799. package/esm/core/utils/get-safe-id/get-safe-id.mjs.map +1 -1
  800. package/esm/core/utils/is-number-like/is-number-like.mjs.map +1 -1
  801. package/esm/core/utils/units-converters/px.mjs.map +1 -1
  802. package/esm/core/utils/units-converters/rem.mjs.map +1 -1
  803. package/esm/index.mjs +23 -4
  804. package/lib/components/Accordion/Accordion.d.ts +4 -4
  805. package/lib/components/ActionIcon/ActionIcon.d.ts +3 -3
  806. package/lib/components/Combobox/Combobox.types.d.ts +4 -3
  807. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +1 -1
  808. package/lib/components/Combobox/index.d.ts +1 -1
  809. package/lib/components/ComboboxPopover/ComboboxPopover.d.ts +110 -0
  810. package/lib/components/ComboboxPopover/ComboboxPopover.types.d.ts +2 -0
  811. package/lib/components/ComboboxPopover/ComboboxPopoverTarget.d.ts +16 -0
  812. package/lib/components/ComboboxPopover/index.d.ts +14 -0
  813. package/lib/components/DataList/DataList.context.d.ts +6 -0
  814. package/lib/components/DataList/DataList.d.ts +44 -0
  815. package/lib/components/DataList/DataListItem/DataListItem.d.ts +18 -0
  816. package/lib/components/DataList/DataListItemLabel/DataListItemLabel.d.ts +18 -0
  817. package/lib/components/DataList/DataListItemValue/DataListItemValue.d.ts +18 -0
  818. package/lib/components/DataList/index.d.ts +32 -0
  819. package/lib/components/EmptyState/EmptyState.context.d.ts +8 -0
  820. package/lib/components/EmptyState/EmptyState.d.ts +83 -0
  821. package/lib/components/EmptyState/EmptyStateActions/EmptyStateActions.d.ts +18 -0
  822. package/lib/components/EmptyState/EmptyStateDescription/EmptyStateDescription.d.ts +18 -0
  823. package/lib/components/EmptyState/EmptyStateIndicator/EmptyStateIndicator.d.ts +18 -0
  824. package/lib/components/EmptyState/EmptyStateTitle/EmptyStateTitle.d.ts +20 -0
  825. package/lib/components/EmptyState/index.d.ts +13 -0
  826. package/lib/components/HoverCard/HoverCard.context.d.ts +1 -0
  827. package/lib/components/HoverCard/use-hover-card.d.ts +1 -0
  828. package/lib/components/Input/Input.d.ts +11 -0
  829. package/lib/components/Input/InputSuccess/InputSuccess.d.ts +23 -0
  830. package/lib/components/Input/InputWrapper/InputWrapper.d.ts +7 -2
  831. package/lib/components/Input/index.d.ts +3 -1
  832. package/lib/components/Input/use-input-props.d.ts +8 -5
  833. package/lib/components/MaskInput/use-mask-input-props.d.ts +7 -3
  834. package/lib/components/Menubar/Menubar.context.d.ts +51 -0
  835. package/lib/components/Menubar/Menubar.d.ts +56 -0
  836. package/lib/components/Menubar/MenubarDropdown/MenubarDropdown.d.ts +7 -0
  837. package/lib/components/Menubar/MenubarMenu/MenubarMenu.d.ts +9 -0
  838. package/lib/components/Menubar/MenubarTarget/MenubarTarget.d.ts +14 -0
  839. package/lib/components/Menubar/index.d.ts +11 -0
  840. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  841. package/lib/components/NativeSelect/NativeSelect.d.ts +2 -2
  842. package/lib/components/Pagination/Pagination.icons.d.ts +1 -1
  843. package/lib/components/PinInput/PinInput.d.ts +2 -0
  844. package/lib/components/Popover/Popover.context.d.ts +1 -0
  845. package/lib/components/Popover/Popover.d.ts +7 -0
  846. package/lib/components/Slider/Thumb/Thumb.d.ts +1 -1
  847. package/lib/components/Splitter/Splitter.context.d.ts +3 -1
  848. package/lib/components/Splitter/Splitter.d.ts +12 -10
  849. package/lib/components/Splitter/SplitterPane/SplitterPane.d.ts +9 -8
  850. package/lib/components/Tabs/Tabs.context.d.ts +2 -0
  851. package/lib/components/Transition/Transition.d.ts +8 -1
  852. package/lib/components/index.d.ts +4 -0
  853. package/lib/core/Box/Box.d.ts +1 -1
  854. package/lib/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.d.ts +7 -2
  855. package/lib/core/MantineProvider/color-functions/index.d.ts +1 -1
  856. package/lib/core/styles-api/styles-api.types.d.ts +2 -2
  857. package/lib/core/styles-api/use-styles/use-styles.d.ts +1 -1
  858. package/package.json +5 -5
  859. package/styles/Blockquote.css +1 -1
  860. package/styles/Blockquote.layer.css +1 -1
  861. package/styles/DataList.css +54 -0
  862. package/styles/DataList.layer.css +55 -0
  863. package/styles/EmptyState.css +121 -0
  864. package/styles/EmptyState.layer.css +122 -0
  865. package/styles/Input.css +21 -2
  866. package/styles/Input.layer.css +21 -2
  867. package/styles/Menubar.css +29 -0
  868. package/styles/Menubar.layer.css +30 -0
  869. package/styles/SemiCircleProgress.css +1 -0
  870. package/styles/SemiCircleProgress.layer.css +1 -0
  871. package/styles/Text.css +1 -1
  872. package/styles/Text.layer.css +1 -1
  873. package/styles/default-css-variables.css +2 -0
  874. package/styles/default-css-variables.layer.css +2 -0
  875. package/styles.css +233 -4
  876. package/styles.layer.css +233 -4
@@ -1 +1 @@
1
- {"version":3,"file":"PillsInput.context.cjs","names":[],"sources":["../../../src/components/PillsInput/PillsInput.context.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { MantineSize } from '../../core';\nimport { InputVariant } from '../Input';\n\nexport interface PillsInputContextValue {\n fieldRef: React.RefObject<HTMLInputElement | null>;\n size: MantineSize | (string & {});\n disabled: boolean | undefined;\n hasError: boolean | undefined;\n variant: InputVariant | (string & {}) | undefined;\n}\n\nexport const PillsInputContext = createContext<PillsInputContextValue | null>(null);\n"],"mappings":";;AAYA,MAAa,qBAAA,kBAAA,EAAA,eAAiE,IAAI"}
1
+ {"version":3,"file":"PillsInput.context.cjs","names":[],"sources":["../../../src/components/PillsInput/PillsInput.context.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { MantineSize } from '../../core';\nimport { InputVariant } from '../Input';\n\nexport interface PillsInputContextValue {\n fieldRef: React.RefObject<HTMLInputElement | null>;\n size: MantineSize | (string & {});\n disabled: boolean | undefined;\n hasError: boolean | undefined;\n variant: InputVariant | (string & {}) | undefined;\n}\n\nexport const PillsInputContext = createContext<PillsInputContextValue | null>(null);\n"],"mappings":";;AAYA,MAAa,qBAAA,kBAAA,CAAA,CAAA,cAAA,CAAiE,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"PillsInputField.cjs","names":["factory","useProps","PillsInputContext","InputWrapperContext","useStyles","Box","classes"],"sources":["../../../../src/components/PillsInput/PillsInputField/PillsInputField.tsx"],"sourcesContent":["import { use } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { InputWrapperContext } from '../../Input';\nimport { PillsInputContext } from '../PillsInput.context';\nimport classes from '../PillsInput.module.css';\n\nexport type PillsInputFieldStylesNames = 'field';\n\nexport interface PillsInputFieldProps\n extends BoxProps, StylesApiProps<PillsInputFieldFactory>, ElementProps<'input', 'type'> {\n /** Controls input styles when focused. If `auto` the input is hidden when not focused. If `visible` the input will always remain visible. @default 'visible' */\n type?: 'auto' | 'visible' | 'hidden';\n\n /** If set, cursor is changed to pointer */\n pointer?: boolean;\n}\n\nexport type PillsInputFieldFactory = Factory<{\n props: PillsInputFieldProps;\n ref: HTMLInputElement;\n stylesNames: PillsInputFieldStylesNames;\n}>;\n\nconst defaultProps = {\n type: 'visible',\n} satisfies Partial<PillsInputFieldProps>;\n\nexport const PillsInputField = factory<PillsInputFieldFactory>((_props) => {\n const props = useProps('PillsInputField', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n type,\n disabled,\n id,\n pointer,\n mod,\n attributes,\n ref,\n ...others\n } = props;\n const ctx = use(PillsInputContext);\n const inputWrapperCtx = use(InputWrapperContext);\n\n const getStyles = useStyles<PillsInputFieldFactory>({\n name: 'PillsInputField',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'field',\n });\n\n const _disabled = disabled || ctx?.disabled;\n\n return (\n <Box\n component=\"input\"\n ref={useMergedRef(ref, ctx?.fieldRef)}\n data-type={type}\n disabled={_disabled}\n mod={[{ disabled: _disabled, pointer }, mod]}\n {...getStyles('field')}\n {...others}\n id={inputWrapperCtx?.inputId || id}\n aria-invalid={ctx?.hasError}\n aria-describedby={inputWrapperCtx?.describedBy}\n type=\"text\"\n onMouseDown={(event) => !pointer && event.stopPropagation()}\n />\n );\n});\n\nPillsInputField.classes = classes;\nPillsInputField.displayName = '@mantine/core/PillsInputField';\n"],"mappings":";;;;;;;;;;;;AAiCA,MAAM,eAAe,EACnB,MAAM,UACR;AAEA,MAAa,kBAAkBA,gBAAAA,SAAiC,WAAW;CACzE,MAAM,QAAQC,kBAAAA,SAAS,mBAAmB,cAAc,MAAM;CAC9D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,MACA,UACA,IACA,SACA,KACA,YACA,KACA,GAAG,WACD;CACJ,MAAM,OAAA,GAAA,MAAA,KAAUC,2BAAAA,iBAAiB;CACjC,MAAM,mBAAA,GAAA,MAAA,KAAsBC,6BAAAA,mBAAmB;CAE/C,MAAM,YAAYC,mBAAAA,UAAkC;EAClD,MAAM;EACN,SAAA,0BAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;CAChB,CAAC;CAED,MAAM,YAAY,YAAY,KAAK;CAEnC,OACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EACE,WAAU;EACV,MAAA,GAAA,eAAA,cAAkB,KAAK,KAAK,QAAQ;EACpC,aAAW;EACX,UAAU;EACV,KAAK,CAAC;GAAE,UAAU;GAAW;EAAQ,GAAG,GAAG;EAC3C,GAAI,UAAU,OAAO;EACrB,GAAI;EACJ,IAAI,iBAAiB,WAAW;EAChC,gBAAc,KAAK;EACnB,oBAAkB,iBAAiB;EACnC,MAAK;EACL,cAAc,UAAU,CAAC,WAAW,MAAM,gBAAgB;CAC3D,CAAA;AAEL,CAAC;AAED,gBAAgB,UAAUC,0BAAAA;AAC1B,gBAAgB,cAAc"}
1
+ {"version":3,"file":"PillsInputField.cjs","names":["factory","useProps","PillsInputContext","InputWrapperContext","useStyles","Box","classes"],"sources":["../../../../src/components/PillsInput/PillsInputField/PillsInputField.tsx"],"sourcesContent":["import { use } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { InputWrapperContext } from '../../Input';\nimport { PillsInputContext } from '../PillsInput.context';\nimport classes from '../PillsInput.module.css';\n\nexport type PillsInputFieldStylesNames = 'field';\n\nexport interface PillsInputFieldProps\n extends BoxProps, StylesApiProps<PillsInputFieldFactory>, ElementProps<'input', 'type'> {\n /** Controls input styles when focused. If `auto` the input is hidden when not focused. If `visible` the input will always remain visible. @default 'visible' */\n type?: 'auto' | 'visible' | 'hidden';\n\n /** If set, cursor is changed to pointer */\n pointer?: boolean;\n}\n\nexport type PillsInputFieldFactory = Factory<{\n props: PillsInputFieldProps;\n ref: HTMLInputElement;\n stylesNames: PillsInputFieldStylesNames;\n}>;\n\nconst defaultProps = {\n type: 'visible',\n} satisfies Partial<PillsInputFieldProps>;\n\nexport const PillsInputField = factory<PillsInputFieldFactory>((_props) => {\n const props = useProps('PillsInputField', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n type,\n disabled,\n id,\n pointer,\n mod,\n attributes,\n ref,\n ...others\n } = props;\n const ctx = use(PillsInputContext);\n const inputWrapperCtx = use(InputWrapperContext);\n\n const getStyles = useStyles<PillsInputFieldFactory>({\n name: 'PillsInputField',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'field',\n });\n\n const _disabled = disabled || ctx?.disabled;\n\n return (\n <Box\n component=\"input\"\n ref={useMergedRef(ref, ctx?.fieldRef)}\n data-type={type}\n disabled={_disabled}\n mod={[{ disabled: _disabled, pointer }, mod]}\n {...getStyles('field')}\n {...others}\n id={inputWrapperCtx?.inputId || id}\n aria-invalid={ctx?.hasError}\n aria-describedby={inputWrapperCtx?.describedBy}\n type=\"text\"\n onMouseDown={(event) => !pointer && event.stopPropagation()}\n />\n );\n});\n\nPillsInputField.classes = classes;\nPillsInputField.displayName = '@mantine/core/PillsInputField';\n"],"mappings":";;;;;;;;;;;;AAiCA,MAAM,eAAe,EACnB,MAAM,UACR;AAEA,MAAa,kBAAkBA,gBAAAA,SAAiC,WAAW;CACzE,MAAM,QAAQC,kBAAAA,SAAS,mBAAmB,cAAc,MAAM;CAC9D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,MACA,UACA,IACA,SACA,KACA,YACA,KACA,GAAG,WACD;CACJ,MAAM,OAAA,GAAA,MAAA,IAAA,CAAUC,2BAAAA,iBAAiB;CACjC,MAAM,mBAAA,GAAA,MAAA,IAAA,CAAsBC,6BAAAA,mBAAmB;CAE/C,MAAM,YAAYC,mBAAAA,UAAkC;EAClD,MAAM;EACN,SAAA,0BAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;CAChB,CAAC;CAED,MAAM,YAAY,YAAY,KAAK;CAEnC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EACE,WAAU;EACV,MAAA,GAAA,eAAA,aAAA,CAAkB,KAAK,KAAK,QAAQ;EACpC,aAAW;EACX,UAAU;EACV,KAAK,CAAC;GAAE,UAAU;GAAW;EAAQ,GAAG,GAAG;EAC3C,GAAI,UAAU,OAAO;EACrB,GAAI;EACJ,IAAI,iBAAiB,WAAW;EAChC,gBAAc,KAAK;EACnB,oBAAkB,iBAAiB;EACnC,MAAK;EACL,cAAc,UAAU,CAAC,WAAW,MAAM,gBAAgB;CAC3D,CAAA;AAEL,CAAC;AAED,gBAAgB,UAAUC,0BAAAA;AAC1B,gBAAgB,cAAc"}
@@ -30,7 +30,7 @@ const defaultProps = {
30
30
  };
31
31
  const varsResolver = require_create_vars_resolver.createVarsResolver((_, { size }) => ({ root: { "--pin-input-size": require_get_size.getSize(size ?? "sm", "pin-input-size") } }));
32
32
  const PinInput = require_factory.factory((props) => {
33
- const { name, form, className, value, defaultValue, variant, gap, style, size, classNames, styles, unstyled, length, onChange, onComplete, manageFocus, autoFocus, error, radius, disabled, oneTimeCode, placeholder, type, mask, readOnly, inputType, inputMode, ariaLabel, vars, id, hiddenInputProps, rootRef, getInputProps, attributes, ref, ...others } = require_use_props.useProps(["Input", "PinInput"], defaultProps, props);
33
+ const { name, form, className, value, defaultValue, variant, gap, style, size, classNames, styles, unstyled, length, onChange, onComplete, manageFocus, autoFocus, error, success, radius, disabled, oneTimeCode, placeholder, type, mask, readOnly, inputType, inputMode, ariaLabel, vars, id, hiddenInputProps, rootRef, getInputProps, attributes, ref, ...others } = require_use_props.useProps(["Input", "PinInput"], defaultProps, props);
34
34
  const uuid = (0, _mantine_hooks.useId)(id);
35
35
  const getStyles = require_use_styles.useStyles({
36
36
  name: "PinInput",
@@ -224,6 +224,7 @@ const PinInput = require_factory.factory((props) => {
224
224
  type: inputType || (mask ? "password" : type === "number" ? "tel" : "text"),
225
225
  radius,
226
226
  error,
227
+ success,
227
228
  variant,
228
229
  disabled,
229
230
  ref: (node) => {
@@ -1 +1 @@
1
- {"version":3,"file":"PinInput.cjs","names":["createVarsResolver","getSize","factory","useProps","useStyles","useResolvedStylesApi","createPinArray","Group","Input","classes","InputBase"],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { assignRef, useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n createVarsResolver,\n DataAttributes,\n ElementProps,\n Factory,\n factory,\n getSize,\n MantineRadius,\n MantineSize,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { createPinArray } from './create-pin-array/create-pin-array';\nimport classes from './PinInput.module.css';\n\nconst regex = {\n number: /^[0-9]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i,\n};\n\nexport type PinInputStylesNames = 'root' | 'pinInput' | 'input';\n\nexport type PinInputCssVariables = {\n root: '--pin-input-size';\n};\n\nexport interface PinInputProps\n extends BoxProps, StylesApiProps<PinInputFactory>, ElementProps<'div', 'onChange' | 'ref'> {\n ref?: React.Ref<HTMLInputElement>;\n\n /** Hidden input `name` attribute */\n name?: string;\n\n /** Hidden input `form` attribute */\n form?: string;\n\n /** Key of `theme.spacing` or any valid CSS value to set `gap` between inputs, numbers are converted to rem @default 'md' */\n gap?: MantineSpacing;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Controls inputs `width` and `height` @default 'sm' */\n size?: MantineSize;\n\n /** If set, the first input is focused when component is mounted @default false */\n autoFocus?: boolean;\n\n /** Controlled component value */\n value?: string;\n\n /** Uncontrolled component default value */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Called when all inputs have value */\n onComplete?: (value: string) => void;\n\n /** Inputs placeholder @default '○' */\n placeholder?: string;\n\n /** Determines whether focus should be moved automatically to the next input once filled @default true */\n manageFocus?: boolean;\n\n /** Determines whether `autocomplete=\"one-time-code\"` attribute should be set on all inputs @default true */\n oneTimeCode?: boolean;\n\n /** Base id used to generate unique ids for inputs */\n id?: string;\n\n /** Adds disabled attribute to all inputs */\n disabled?: boolean;\n\n /** Sets `aria-invalid` attribute and applies error styles to all inputs */\n error?: boolean;\n\n /** Determines which values can be entered @default 'alphanumeric' */\n type?: 'alphanumeric' | 'number' | RegExp;\n\n /** Changes input type to `\"password\"` @default false */\n mask?: boolean;\n\n /** Number of inputs @default 4 */\n length?: number;\n\n /** If set, the user cannot edit the value */\n readOnly?: boolean;\n\n /** Inputs `type` attribute, inferred from the `type` prop if not specified */\n inputType?: React.HTMLInputTypeAttribute;\n\n /** `inputmode` attribute, inferred from the `type` prop if not specified */\n inputMode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search'\n | undefined;\n\n /** `aria-label` attribute */\n ariaLabel?: string;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: React.ComponentProps<'input'>;\n\n /** Assigns ref of the root element */\n rootRef?: React.Ref<HTMLDivElement>;\n\n /** Props added to the input element depending on its index */\n getInputProps?: (index: number) => InputProps & ElementProps<'input', 'size'> & DataAttributes;\n}\n\nexport type PinInputFactory = Factory<{\n props: PinInputProps;\n ref: HTMLDivElement;\n stylesNames: PinInputStylesNames;\n vars: PinInputCssVariables;\n}>;\n\nconst defaultProps = {\n gap: 'sm',\n length: 4,\n manageFocus: true,\n oneTimeCode: true,\n placeholder: '○',\n type: 'alphanumeric',\n ariaLabel: 'PinInput',\n size: 'sm',\n} satisfies Partial<PinInputProps>;\n\nconst varsResolver = createVarsResolver<PinInputFactory>((_, { size }) => ({\n root: {\n '--pin-input-size': getSize(size ?? 'sm', 'pin-input-size'),\n },\n}));\n\nexport const PinInput = factory<PinInputFactory>((props) => {\n const {\n name,\n form,\n className,\n value,\n defaultValue,\n variant,\n gap,\n style,\n size,\n classNames,\n styles,\n unstyled,\n length,\n onChange,\n onComplete,\n manageFocus,\n autoFocus,\n error,\n radius,\n disabled,\n oneTimeCode,\n placeholder,\n type,\n mask,\n readOnly,\n inputType,\n inputMode,\n ariaLabel,\n vars,\n id,\n hiddenInputProps,\n rootRef,\n getInputProps,\n attributes,\n ref,\n ...others\n } = useProps(['Input', 'PinInput'], defaultProps, props);\n\n const uuid = useId(id);\n\n const getStyles = useStyles<PinInputFactory>({\n name: 'PinInput',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<PinInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n const inputsRef = useRef<Array<HTMLInputElement>>([]);\n const currentLength = length ?? 4;\n\n const completedRef = useRef(false);\n\n const [_value, setValues] = useUncontrolled<string[]>({\n value: value !== undefined ? createPinArray(currentLength, value) : undefined,\n defaultValue: defaultValue?.split('').slice(0, currentLength),\n finalValue: createPinArray(currentLength, ''),\n onChange: (val) => {\n const stringValue = val.join('').trim();\n onChange?.(stringValue);\n if (stringValue.length === currentLength && !completedRef.current) {\n completedRef.current = true;\n onComplete?.(stringValue);\n } else if (stringValue.length < currentLength) {\n completedRef.current = false;\n }\n },\n });\n\n const currentValue =\n _value.length !== currentLength ? createPinArray(currentLength, _value.join('')) : _value;\n\n const _valueToString = currentValue.join('').trim();\n\n const validate = (code: string) => {\n const re = type instanceof RegExp ? type : type && type in regex ? regex[type] : null;\n return re?.test(code);\n };\n\n const focusInputField = (dir: 'next' | 'prev', index: number) => {\n if (!manageFocus) {\n return;\n }\n\n if (dir === 'next') {\n const nextIndex = index + 1;\n if (nextIndex < currentLength) {\n inputsRef.current[nextIndex]?.focus();\n }\n } else if (dir === 'prev') {\n const prevIndex = index - 1;\n if (prevIndex >= 0) {\n inputsRef.current[prevIndex]?.focus();\n }\n }\n };\n\n const setFieldValue = (val: string, index: number) => {\n const values = [...currentValue];\n values[index] = val;\n setValues(values);\n return values;\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const inputValue = event.target.value;\n\n if (inputValue.length > 1) {\n const isPaste = inputValue.length > 2;\n if (isPaste) {\n const isValid = validate(inputValue);\n if (isValid) {\n setValues(createPinArray(currentLength, inputValue));\n const filledCount = Math.min(inputValue.length, currentLength);\n if (filledCount < currentLength) {\n focusInputField('next', filledCount - 1);\n }\n }\n return;\n }\n\n const newChar = inputValue.split('')[inputValue.length - 1];\n if (validate(newChar)) {\n setFieldValue(newChar, index);\n focusInputField('next', index);\n }\n return;\n }\n\n if (inputValue.length === 1) {\n if (validate(inputValue)) {\n setFieldValue(inputValue, index);\n focusInputField('next', index);\n } else {\n setFieldValue('', index);\n }\n } else if (inputValue.length === 0) {\n setFieldValue('', index);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n const { ctrlKey, metaKey, key, shiftKey, target } = event;\n const inputValue = (target as HTMLInputElement).value;\n\n if (inputMode === 'numeric') {\n const allowedKeys = ['Backspace', 'Tab', 'Control', 'Delete', 'ArrowLeft', 'ArrowRight'];\n const isModifierShortcut = ctrlKey || metaKey;\n const isAllowedKey =\n allowedKeys.includes(key) || isModifierShortcut || !Number.isNaN(Number(key));\n\n if (!isAllowedKey) {\n event.preventDefault();\n return;\n }\n }\n\n switch (key) {\n case 'ArrowLeft':\n event.preventDefault();\n focusInputField('prev', index);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Tab':\n if (shiftKey) {\n if (index > 0 && manageFocus) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n case ' ':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Delete':\n event.preventDefault();\n setFieldValue('', index);\n break;\n\n case 'Backspace':\n if (inputValue === '') {\n event.preventDefault();\n focusInputField('prev', index);\n } else {\n setFieldValue('', index);\n if (index < currentLength - 1) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n default:\n if (inputValue.length > 0 && key === currentValue[index]) {\n event.preventDefault();\n focusInputField('next', index);\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, index: number) => {\n event.target.select();\n setFocusedIndex(index);\n };\n\n const handleBlur = () => {\n setFocusedIndex(-1);\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const pasteData = event.clipboardData.getData('text/plain').replace(/[\\n\\r\\s]+/g, '');\n const isValid = validate(pasteData.trim());\n\n if (isValid) {\n const pasteArray = createPinArray(currentLength, pasteData);\n setValues(pasteArray);\n const filledCount = pasteArray.filter((val) => val !== '').length;\n if (filledCount >= currentLength) {\n inputsRef.current[currentLength - 1]?.focus();\n } else {\n inputsRef.current[filledCount]?.focus();\n }\n }\n };\n\n return (\n <>\n <Group\n {...others}\n {...getStyles('root')}\n ref={rootRef}\n role=\"group\"\n id={uuid}\n gap={gap}\n unstyled={unstyled}\n wrap=\"nowrap\"\n variant={variant}\n __size={size}\n dir=\"ltr\"\n >\n {currentValue.map((char: string, index: number) => (\n <Input\n component=\"input\"\n {...getStyles('pinInput', {\n style: {\n '--input-padding': '0',\n '--input-text-align': 'center',\n } as React.CSSProperties,\n })}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n size={size}\n __staticSelector=\"PinInput\"\n id={`${uuid}-${index + 1}`}\n key={`${uuid}-${index}`}\n inputMode={inputMode || (type === 'number' ? 'numeric' : 'text')}\n onChange={(event) => handleChange(event, index)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n onFocus={(event) => handleFocus(event, index)}\n onBlur={handleBlur}\n onPaste={handlePaste}\n type={inputType || (mask ? 'password' : type === 'number' ? 'tel' : 'text')}\n radius={radius}\n error={error}\n variant={variant}\n disabled={disabled}\n ref={(node) => {\n if (node) {\n index === 0 && assignRef(ref, node);\n inputsRef.current[index] = node;\n }\n }}\n autoComplete={oneTimeCode ? 'one-time-code' : 'off'}\n placeholder={focusedIndex === index ? '' : placeholder}\n value={char}\n autoFocus={autoFocus && index === 0}\n unstyled={unstyled}\n aria-label={ariaLabel}\n readOnly={readOnly}\n {...getInputProps?.(index)}\n />\n ))}\n </Group>\n\n <input type=\"hidden\" name={name} form={form} value={_valueToString} {...hiddenInputProps} />\n </>\n );\n});\n\nPinInput.classes = { ...classes, ...InputBase.classes };\nPinInput.varsResolver = varsResolver;\nPinInput.displayName = '@mantine/core/PinInput';\n\nexport namespace PinInput {\n export type Props = PinInputProps;\n export type StylesNames = PinInputStylesNames;\n export type Factory = PinInputFactory;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PinInput.cjs","names":["createVarsResolver","getSize","factory","useProps","useStyles","useResolvedStylesApi","createPinArray","Group","Input","classes","InputBase"],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { assignRef, useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n createVarsResolver,\n DataAttributes,\n ElementProps,\n Factory,\n factory,\n getSize,\n MantineRadius,\n MantineSize,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { createPinArray } from './create-pin-array/create-pin-array';\nimport classes from './PinInput.module.css';\n\nconst regex = {\n number: /^[0-9]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i,\n};\n\nexport type PinInputStylesNames = 'root' | 'pinInput' | 'input';\n\nexport type PinInputCssVariables = {\n root: '--pin-input-size';\n};\n\nexport interface PinInputProps\n extends BoxProps, StylesApiProps<PinInputFactory>, ElementProps<'div', 'onChange' | 'ref'> {\n ref?: React.Ref<HTMLInputElement>;\n\n /** Hidden input `name` attribute */\n name?: string;\n\n /** Hidden input `form` attribute */\n form?: string;\n\n /** Key of `theme.spacing` or any valid CSS value to set `gap` between inputs, numbers are converted to rem @default 'md' */\n gap?: MantineSpacing;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Controls inputs `width` and `height` @default 'sm' */\n size?: MantineSize;\n\n /** If set, the first input is focused when component is mounted @default false */\n autoFocus?: boolean;\n\n /** Controlled component value */\n value?: string;\n\n /** Uncontrolled component default value */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Called when all inputs have value */\n onComplete?: (value: string) => void;\n\n /** Inputs placeholder @default '○' */\n placeholder?: string;\n\n /** Determines whether focus should be moved automatically to the next input once filled @default true */\n manageFocus?: boolean;\n\n /** Determines whether `autocomplete=\"one-time-code\"` attribute should be set on all inputs @default true */\n oneTimeCode?: boolean;\n\n /** Base id used to generate unique ids for inputs */\n id?: string;\n\n /** Adds disabled attribute to all inputs */\n disabled?: boolean;\n\n /** Sets `aria-invalid` attribute and applies error styles to all inputs */\n error?: boolean;\n\n /** Applies success styles to all inputs */\n success?: boolean;\n\n /** Determines which values can be entered @default 'alphanumeric' */\n type?: 'alphanumeric' | 'number' | RegExp;\n\n /** Changes input type to `\"password\"` @default false */\n mask?: boolean;\n\n /** Number of inputs @default 4 */\n length?: number;\n\n /** If set, the user cannot edit the value */\n readOnly?: boolean;\n\n /** Inputs `type` attribute, inferred from the `type` prop if not specified */\n inputType?: React.HTMLInputTypeAttribute;\n\n /** `inputmode` attribute, inferred from the `type` prop if not specified */\n inputMode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search'\n | undefined;\n\n /** `aria-label` attribute */\n ariaLabel?: string;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: React.ComponentProps<'input'>;\n\n /** Assigns ref of the root element */\n rootRef?: React.Ref<HTMLDivElement>;\n\n /** Props added to the input element depending on its index */\n getInputProps?: (index: number) => InputProps & ElementProps<'input', 'size'> & DataAttributes;\n}\n\nexport type PinInputFactory = Factory<{\n props: PinInputProps;\n ref: HTMLDivElement;\n stylesNames: PinInputStylesNames;\n vars: PinInputCssVariables;\n}>;\n\nconst defaultProps = {\n gap: 'sm',\n length: 4,\n manageFocus: true,\n oneTimeCode: true,\n placeholder: '○',\n type: 'alphanumeric',\n ariaLabel: 'PinInput',\n size: 'sm',\n} satisfies Partial<PinInputProps>;\n\nconst varsResolver = createVarsResolver<PinInputFactory>((_, { size }) => ({\n root: {\n '--pin-input-size': getSize(size ?? 'sm', 'pin-input-size'),\n },\n}));\n\nexport const PinInput = factory<PinInputFactory>((props) => {\n const {\n name,\n form,\n className,\n value,\n defaultValue,\n variant,\n gap,\n style,\n size,\n classNames,\n styles,\n unstyled,\n length,\n onChange,\n onComplete,\n manageFocus,\n autoFocus,\n error,\n success,\n radius,\n disabled,\n oneTimeCode,\n placeholder,\n type,\n mask,\n readOnly,\n inputType,\n inputMode,\n ariaLabel,\n vars,\n id,\n hiddenInputProps,\n rootRef,\n getInputProps,\n attributes,\n ref,\n ...others\n } = useProps(['Input', 'PinInput'], defaultProps, props);\n\n const uuid = useId(id);\n\n const getStyles = useStyles<PinInputFactory>({\n name: 'PinInput',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<PinInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n const inputsRef = useRef<Array<HTMLInputElement>>([]);\n const currentLength = length ?? 4;\n\n const completedRef = useRef(false);\n\n const [_value, setValues] = useUncontrolled<string[]>({\n value: value !== undefined ? createPinArray(currentLength, value) : undefined,\n defaultValue: defaultValue?.split('').slice(0, currentLength),\n finalValue: createPinArray(currentLength, ''),\n onChange: (val) => {\n const stringValue = val.join('').trim();\n onChange?.(stringValue);\n if (stringValue.length === currentLength && !completedRef.current) {\n completedRef.current = true;\n onComplete?.(stringValue);\n } else if (stringValue.length < currentLength) {\n completedRef.current = false;\n }\n },\n });\n\n const currentValue =\n _value.length !== currentLength ? createPinArray(currentLength, _value.join('')) : _value;\n\n const _valueToString = currentValue.join('').trim();\n\n const validate = (code: string) => {\n const re = type instanceof RegExp ? type : type && type in regex ? regex[type] : null;\n return re?.test(code);\n };\n\n const focusInputField = (dir: 'next' | 'prev', index: number) => {\n if (!manageFocus) {\n return;\n }\n\n if (dir === 'next') {\n const nextIndex = index + 1;\n if (nextIndex < currentLength) {\n inputsRef.current[nextIndex]?.focus();\n }\n } else if (dir === 'prev') {\n const prevIndex = index - 1;\n if (prevIndex >= 0) {\n inputsRef.current[prevIndex]?.focus();\n }\n }\n };\n\n const setFieldValue = (val: string, index: number) => {\n const values = [...currentValue];\n values[index] = val;\n setValues(values);\n return values;\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const inputValue = event.target.value;\n\n if (inputValue.length > 1) {\n const isPaste = inputValue.length > 2;\n if (isPaste) {\n const isValid = validate(inputValue);\n if (isValid) {\n setValues(createPinArray(currentLength, inputValue));\n const filledCount = Math.min(inputValue.length, currentLength);\n if (filledCount < currentLength) {\n focusInputField('next', filledCount - 1);\n }\n }\n return;\n }\n\n const newChar = inputValue.split('')[inputValue.length - 1];\n if (validate(newChar)) {\n setFieldValue(newChar, index);\n focusInputField('next', index);\n }\n return;\n }\n\n if (inputValue.length === 1) {\n if (validate(inputValue)) {\n setFieldValue(inputValue, index);\n focusInputField('next', index);\n } else {\n setFieldValue('', index);\n }\n } else if (inputValue.length === 0) {\n setFieldValue('', index);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n const { ctrlKey, metaKey, key, shiftKey, target } = event;\n const inputValue = (target as HTMLInputElement).value;\n\n if (inputMode === 'numeric') {\n const allowedKeys = ['Backspace', 'Tab', 'Control', 'Delete', 'ArrowLeft', 'ArrowRight'];\n const isModifierShortcut = ctrlKey || metaKey;\n const isAllowedKey =\n allowedKeys.includes(key) || isModifierShortcut || !Number.isNaN(Number(key));\n\n if (!isAllowedKey) {\n event.preventDefault();\n return;\n }\n }\n\n switch (key) {\n case 'ArrowLeft':\n event.preventDefault();\n focusInputField('prev', index);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Tab':\n if (shiftKey) {\n if (index > 0 && manageFocus) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n case ' ':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Delete':\n event.preventDefault();\n setFieldValue('', index);\n break;\n\n case 'Backspace':\n if (inputValue === '') {\n event.preventDefault();\n focusInputField('prev', index);\n } else {\n setFieldValue('', index);\n if (index < currentLength - 1) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n default:\n if (inputValue.length > 0 && key === currentValue[index]) {\n event.preventDefault();\n focusInputField('next', index);\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, index: number) => {\n event.target.select();\n setFocusedIndex(index);\n };\n\n const handleBlur = () => {\n setFocusedIndex(-1);\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const pasteData = event.clipboardData.getData('text/plain').replace(/[\\n\\r\\s]+/g, '');\n const isValid = validate(pasteData.trim());\n\n if (isValid) {\n const pasteArray = createPinArray(currentLength, pasteData);\n setValues(pasteArray);\n const filledCount = pasteArray.filter((val) => val !== '').length;\n if (filledCount >= currentLength) {\n inputsRef.current[currentLength - 1]?.focus();\n } else {\n inputsRef.current[filledCount]?.focus();\n }\n }\n };\n\n return (\n <>\n <Group\n {...others}\n {...getStyles('root')}\n ref={rootRef}\n role=\"group\"\n id={uuid}\n gap={gap}\n unstyled={unstyled}\n wrap=\"nowrap\"\n variant={variant}\n __size={size}\n dir=\"ltr\"\n >\n {currentValue.map((char: string, index: number) => (\n <Input\n component=\"input\"\n {...getStyles('pinInput', {\n style: {\n '--input-padding': '0',\n '--input-text-align': 'center',\n } as React.CSSProperties,\n })}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n size={size}\n __staticSelector=\"PinInput\"\n id={`${uuid}-${index + 1}`}\n key={`${uuid}-${index}`}\n inputMode={inputMode || (type === 'number' ? 'numeric' : 'text')}\n onChange={(event) => handleChange(event, index)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n onFocus={(event) => handleFocus(event, index)}\n onBlur={handleBlur}\n onPaste={handlePaste}\n type={inputType || (mask ? 'password' : type === 'number' ? 'tel' : 'text')}\n radius={radius}\n error={error}\n success={success}\n variant={variant}\n disabled={disabled}\n ref={(node) => {\n if (node) {\n index === 0 && assignRef(ref, node);\n inputsRef.current[index] = node;\n }\n }}\n autoComplete={oneTimeCode ? 'one-time-code' : 'off'}\n placeholder={focusedIndex === index ? '' : placeholder}\n value={char}\n autoFocus={autoFocus && index === 0}\n unstyled={unstyled}\n aria-label={ariaLabel}\n readOnly={readOnly}\n {...getInputProps?.(index)}\n />\n ))}\n </Group>\n\n <input type=\"hidden\" name={name} form={form} value={_valueToString} {...hiddenInputProps} />\n </>\n );\n});\n\nPinInput.classes = { ...classes, ...InputBase.classes };\nPinInput.varsResolver = varsResolver;\nPinInput.displayName = '@mantine/core/PinInput';\n\nexport namespace PinInput {\n export type Props = PinInputProps;\n export type StylesNames = PinInputStylesNames;\n export type Factory = PinInputFactory;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-pin-array.cjs","names":[],"sources":["../../../../src/components/PinInput/create-pin-array/create-pin-array.ts"],"sourcesContent":["export function createPinArray(length: number, value: string): string[] {\n if (length < 1) {\n return [];\n }\n\n const values = new Array<string>(length).fill('');\n\n if (value) {\n const splitted = value.trim().split('');\n for (let i = 0; i < Math.min(length, splitted.length); i += 1) {\n values[i] = splitted[i] === ' ' ? '' : splitted[i];\n }\n }\n\n return values;\n}\n"],"mappings":";;AAAA,SAAgB,eAAe,QAAgB,OAAyB;CACtE,IAAI,SAAS,GACX,OAAO,CAAC;CAGV,MAAM,SAAS,IAAI,MAAc,MAAM,EAAE,KAAK,EAAE;CAEhD,IAAI,OAAO;EACT,MAAM,WAAW,MAAM,KAAK,EAAE,MAAM,EAAE;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,QAAQ,SAAS,MAAM,GAAG,KAAK,GAC1D,OAAO,KAAK,SAAS,OAAO,MAAM,KAAK,SAAS;CAEpD;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"create-pin-array.cjs","names":[],"sources":["../../../../src/components/PinInput/create-pin-array/create-pin-array.ts"],"sourcesContent":["export function createPinArray(length: number, value: string): string[] {\n if (length < 1) {\n return [];\n }\n\n const values = new Array<string>(length).fill('');\n\n if (value) {\n const splitted = value.trim().split('');\n for (let i = 0; i < Math.min(length, splitted.length); i += 1) {\n values[i] = splitted[i] === ' ' ? '' : splitted[i];\n }\n }\n\n return values;\n}\n"],"mappings":";;AAAA,SAAgB,eAAe,QAAgB,OAAyB;CACtE,IAAI,SAAS,GACX,OAAO,CAAC;CAGV,MAAM,SAAS,IAAI,MAAc,MAAM,CAAC,CAAC,KAAK,EAAE;CAEhD,IAAI,OAAO;EACT,MAAM,WAAW,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,QAAQ,SAAS,MAAM,GAAG,KAAK,GAC1D,OAAO,KAAK,SAAS,OAAO,MAAM,KAAK,SAAS;CAEpD;CAEA,OAAO;AACT"}
@@ -57,7 +57,7 @@ const varsResolver = require_create_vars_resolver.createVarsResolver((_, { radiu
57
57
  } }));
58
58
  function Popover(_props) {
59
59
  const props = require_use_props.useProps("Popover", defaultProps, _props);
60
- const { children, position, offset, onPositionChange, opened, transitionProps, onExitTransitionEnd, onEnterTransitionEnd, width, middlewares, withArrow, arrowSize, arrowOffset, arrowRadius, arrowPosition, unstyled, classNames, styles, closeOnClickOutside, withinPortal, portalProps, closeOnEscape, clickOutsideEvents, trapFocus, onClose, onDismiss, onOpen, onChange, zIndex, radius, shadow, id, defaultOpened, __staticSelector, withRoles, disabled, returnFocus, variant, keepMounted, vars, floatingStrategy, withOverlay, overlayProps, hideDetached, attributes, preventPositionChangeWhenVisible, ...others } = props;
60
+ const { children, position, offset, onPositionChange, opened, transitionProps, onExitTransitionEnd, onEnterTransitionEnd, width, middlewares, withArrow, arrowSize, arrowOffset, arrowRadius, arrowPosition, unstyled, classNames, styles, closeOnClickOutside, withinPortal, portalProps, closeOnEscape, clickOutsideEvents, trapFocus, onClose, onDismiss, onOpen, onChange, zIndex, radius, shadow, id, defaultOpened, __staticSelector, withRoles, disabled, returnFocus, variant, keepMounted, keepMountedMode, vars, floatingStrategy, withOverlay, overlayProps, hideDetached, attributes, preventPositionChangeWhenVisible, ...others } = props;
61
61
  const getStyles = require_use_styles.useStyles({
62
62
  name: __staticSelector,
63
63
  props,
@@ -172,6 +172,7 @@ function Popover(_props) {
172
172
  unstyled,
173
173
  variant,
174
174
  keepMounted,
175
+ keepMountedMode,
175
176
  getStyles,
176
177
  resolvedStyles,
177
178
  floatingStrategy,
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.cjs","names":["getDefaultZIndex","createVarsResolver","getRadius","getShadow","useProps","useStyles","useResolvedStylesApi","useDirection","useMantineEnv","usePopover","getFloatingPosition","PopoverContextProvider","Transition","OptionalPortal","Overlay","PopoverTarget","PopoverDropdown","PopoverContextMenu"],"sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { useClickOutside, useId } from '@mantine/hooks';\nimport {\n createVarsResolver,\n ElementProps,\n ExtendComponent,\n Factory,\n getDefaultZIndex,\n getRadius,\n getShadow,\n MantineRadius,\n MantineShadow,\n StylesApiProps,\n useDirection,\n useMantineEnv,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport {\n ArrowPosition,\n FloatingAxesOffsets,\n FloatingPosition,\n FloatingStrategy,\n getFloatingPosition,\n} from '../../utils/Floating';\nimport { Overlay, OverlayProps } from '../Overlay';\nimport { BasePortalProps, OptionalPortal } from '../Portal';\nimport { Transition, TransitionOverride } from '../Transition';\nimport { PopoverContextProvider, PopoverContextValue } from './Popover.context';\nimport { PopoverMiddlewares, PopoverWidth } from './Popover.types';\nimport {\n PopoverContextMenu,\n PopoverContextMenuProps,\n} from './PopoverContextMenu/PopoverContextMenu';\nimport { PopoverDropdown, PopoverDropdownProps } from './PopoverDropdown/PopoverDropdown';\nimport { PopoverTarget, PopoverTargetProps } from './PopoverTarget/PopoverTarget';\nimport { usePopover } from './use-popover';\nimport classes from './Popover.module.css';\n\nexport type PopoverStylesNames = 'dropdown' | 'arrow' | 'overlay';\nexport type PopoverCssVariables = {\n dropdown: '--popover-radius' | '--popover-shadow';\n};\n\nexport interface __PopoverProps {\n /** Dropdown position relative to the target element @default 'bottom' */\n position?: FloatingPosition;\n\n /** Offset of the dropdown element @default 8 */\n offset?: number | FloatingAxesOffsets;\n\n /** Called when dropdown position changes */\n onPositionChange?: (position: FloatingPosition) => void;\n\n /** Called when dropdown closes */\n onClose?: () => void;\n\n /** Called when the popover is dismissed by clicking outside or by pressing escape */\n onDismiss?: () => void;\n\n /** Called when dropdown opens */\n onOpen?: () => void;\n\n /** If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead. */\n keepMounted?: boolean;\n\n /** Props passed down to the `Transition` component. Use to configure duration and animation type. @default { duration: 150, transition: 'fade' } */\n transitionProps?: TransitionOverride;\n\n /** Called when exit transition ends */\n onExitTransitionEnd?: () => void;\n\n /** Called when enter transition ends */\n onEnterTransitionEnd?: () => void;\n\n /** Dropdown width, or `'target'` to make dropdown width the same as target element @default 'max-content' */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling @default { flip: true, shift: true, inline: false } */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow @default false */\n withArrow?: boolean;\n\n /** Determines whether the overlay should be displayed when the dropdown is opened @default false */\n withOverlay?: boolean;\n\n /** Props passed down to `Overlay` component */\n overlayProps?: OverlayProps & ElementProps<'div'>;\n\n /** Arrow size in px @default 7 */\n arrowSize?: number;\n\n /** Arrow offset in px @default 5 */\n arrowOffset?: number;\n\n /** Arrow `border-radius` in px @default 0 */\n arrowRadius?: number;\n\n /** Arrow position */\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within the `Portal` @default true */\n withinPortal?: boolean;\n\n /** Props to pass down to the `Portal` when `withinPortal` is true */\n portalProps?: BasePortalProps;\n\n /** Dropdown `z-index` @default 300 */\n zIndex?: string | number;\n\n /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Key of `theme.shadows` or any other valid CSS `box-shadow` value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not be rendered */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes @default false */\n returnFocus?: boolean;\n\n /** Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy) @default 'absolute' */\n floatingStrategy?: FloatingStrategy;\n\n /** If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen @default true */\n hideDetached?: boolean;\n\n /** If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change. @default true */\n preventPositionChangeWhenVisible?: boolean;\n}\n\nexport interface PopoverProps extends __PopoverProps, StylesApiProps<PopoverFactory> {\n __staticSelector?: string;\n\n /** `Popover.Target` and `Popover.Dropdown` components */\n children?: React.ReactNode;\n\n /** Initial opened state for uncontrolled component */\n defaultOpened?: boolean;\n\n /** Controlled dropdown opened state */\n opened?: boolean;\n\n /** Called with current state when dropdown opens or closes */\n onChange?: (opened: boolean) => void;\n\n /** Determines whether dropdown should be closed on outside clicks @default true */\n closeOnClickOutside?: boolean;\n\n /** Events that trigger outside clicks */\n clickOutsideEvents?: string[];\n\n /** Determines whether focus should be trapped within dropdown @default false */\n trapFocus?: boolean;\n\n /** Determines whether dropdown should be closed when `Escape` key is pressed @default true */\n closeOnEscape?: boolean;\n\n /** Id base to create accessibility connections */\n id?: string;\n\n /** Determines whether dropdown and target elements should have accessible roles @default true */\n withRoles?: boolean;\n}\n\nexport type PopoverFactory = Factory<{\n props: PopoverProps;\n stylesNames: PopoverStylesNames;\n vars: PopoverCssVariables;\n}>;\n\nconst defaultProps = {\n position: 'bottom',\n offset: 8,\n transitionProps: { transition: 'fade', duration: 150 },\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n closeOnClickOutside: true,\n withinPortal: true,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n withOverlay: false,\n hideDetached: true,\n preventPositionChangeWhenVisible: true,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n} satisfies Partial<PopoverProps>;\n\nconst varsResolver = createVarsResolver<PopoverFactory>((_, { radius, shadow }) => ({\n dropdown: {\n '--popover-radius': radius === undefined ? undefined : getRadius(radius),\n '--popover-shadow': getShadow(shadow),\n },\n}));\n\nexport function Popover(_props: PopoverProps) {\n const props = useProps('Popover', defaultProps, _props);\n const {\n children,\n position,\n offset,\n onPositionChange,\n opened,\n transitionProps,\n onExitTransitionEnd,\n onEnterTransitionEnd,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n portalProps,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onDismiss,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted,\n vars,\n floatingStrategy,\n withOverlay,\n overlayProps,\n hideDetached,\n attributes,\n preventPositionChangeWhenVisible,\n ...others\n } = props;\n\n const getStyles = useStyles<PopoverFactory>({\n name: __staticSelector,\n props,\n classes,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'dropdown',\n vars,\n varsResolver,\n });\n\n const { resolvedStyles } = useResolvedStylesApi<PopoverFactory>({ classNames, styles, props });\n\n const arrowRef = useRef<HTMLDivElement | null>(null);\n const [targetNode, setTargetNode] = useState<HTMLElement | null>(null);\n const [dropdownNode, setDropdownNode] = useState<HTMLElement | null>(null);\n const { dir } = useDirection();\n const env = useMantineEnv();\n\n const uid = useId(id);\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(dir, position),\n offset: typeof offset === 'number' ? offset + (withArrow ? arrowSize / 2 : 0) : offset,\n arrowRef,\n arrowOffset,\n onPositionChange,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose,\n onDismiss,\n strategy: floatingStrategy,\n disabled,\n preventPositionChangeWhenVisible,\n keepMounted,\n });\n\n useClickOutside(\n () => {\n if (closeOnClickOutside) {\n popover.onClose();\n onDismiss?.();\n }\n },\n clickOutsideEvents,\n [targetNode, dropdownNode]\n );\n\n const reference = useCallback(\n (node: HTMLElement) => {\n setTargetNode(node);\n popover.floating.refs.setReference(node);\n },\n [popover.floating.refs.setReference]\n );\n\n const floating = useCallback(\n (node: HTMLElement) => {\n setDropdownNode(node);\n popover.floating.refs.setFloating(node);\n },\n [popover.floating.refs.setFloating]\n );\n\n const onExited = useCallback(() => {\n transitionProps?.onExited?.();\n onExitTransitionEnd?.();\n popover.resetLockedPlacement();\n }, [transitionProps?.onExited, onExitTransitionEnd, popover.resetLockedPlacement]);\n\n const onEntered = useCallback(() => {\n transitionProps?.onEntered?.();\n onEnterTransitionEnd?.();\n }, [transitionProps?.onEntered, onEnterTransitionEnd]);\n\n return (\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transitionProps: { ...transitionProps, onExited, onEntered },\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n portalProps,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onDismiss,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => uid,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted,\n getStyles,\n resolvedStyles,\n floatingStrategy,\n referenceHidden:\n hideDetached && env !== 'test'\n ? popover.floating.middlewareData.hide?.referenceHidden\n : false,\n }}\n >\n {children}\n {withOverlay && (\n <Transition\n transition=\"fade\"\n mounted={popover.opened}\n duration={transitionProps?.duration || 250}\n exitDuration={transitionProps?.exitDuration || 250}\n >\n {(transitionStyles) => (\n <OptionalPortal withinPortal={withinPortal}>\n <Overlay\n {...overlayProps}\n {...getStyles('overlay', {\n className: overlayProps?.className,\n style: [transitionStyles, overlayProps?.style],\n })}\n />\n </OptionalPortal>\n )}\n </Transition>\n )}\n </PopoverContextProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.ContextMenu = PopoverContextMenu;\nPopover.varsResolver = varsResolver;\nPopover.displayName = '@mantine/core/Popover';\nPopover.extend = (input: ExtendComponent<PopoverFactory>) => input;\nPopover.withProps = (fixedProps: Partial<PopoverProps>) => {\n const Extended = (props: PopoverProps) => <Popover {...fixedProps} {...props} />;\n Extended.extend = Popover.extend;\n Extended.displayName = `WithProps(${Popover.displayName})`;\n return Extended;\n};\n\nexport namespace Popover {\n export type Props = PopoverProps;\n export type __Props = __PopoverProps;\n export type Factory = PopoverFactory;\n export type StylesNames = PopoverStylesNames;\n export type TargetProps = PopoverTargetProps;\n export type DropdownProps = PopoverDropdownProps;\n export type Width = PopoverWidth;\n export type ContextValue = PopoverContextValue;\n\n export namespace Target {\n export type Props = PopoverTargetProps;\n }\n\n export namespace Dropdown {\n export type Props = PopoverDropdownProps;\n }\n\n export namespace ContextMenu {\n export type Props = PopoverContextMenuProps;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.cjs","names":["getDefaultZIndex","createVarsResolver","getRadius","getShadow","useProps","useStyles","useResolvedStylesApi","useDirection","useMantineEnv","usePopover","getFloatingPosition","PopoverContextProvider","Transition","OptionalPortal","Overlay","PopoverTarget","PopoverDropdown","PopoverContextMenu"],"sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { useClickOutside, useId } from '@mantine/hooks';\nimport {\n createVarsResolver,\n ElementProps,\n ExtendComponent,\n Factory,\n getDefaultZIndex,\n getRadius,\n getShadow,\n MantineRadius,\n MantineShadow,\n StylesApiProps,\n useDirection,\n useMantineEnv,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport {\n ArrowPosition,\n FloatingAxesOffsets,\n FloatingPosition,\n FloatingStrategy,\n getFloatingPosition,\n} from '../../utils/Floating';\nimport { Overlay, OverlayProps } from '../Overlay';\nimport { BasePortalProps, OptionalPortal } from '../Portal';\nimport { Transition, TransitionOverride } from '../Transition';\nimport { PopoverContextProvider, PopoverContextValue } from './Popover.context';\nimport { PopoverMiddlewares, PopoverWidth } from './Popover.types';\nimport {\n PopoverContextMenu,\n PopoverContextMenuProps,\n} from './PopoverContextMenu/PopoverContextMenu';\nimport { PopoverDropdown, PopoverDropdownProps } from './PopoverDropdown/PopoverDropdown';\nimport { PopoverTarget, PopoverTargetProps } from './PopoverTarget/PopoverTarget';\nimport { usePopover } from './use-popover';\nimport classes from './Popover.module.css';\n\nexport type PopoverStylesNames = 'dropdown' | 'arrow' | 'overlay';\nexport type PopoverCssVariables = {\n dropdown: '--popover-radius' | '--popover-shadow';\n};\n\nexport interface __PopoverProps {\n /** Dropdown position relative to the target element @default 'bottom' */\n position?: FloatingPosition;\n\n /** Offset of the dropdown element @default 8 */\n offset?: number | FloatingAxesOffsets;\n\n /** Called when dropdown position changes */\n onPositionChange?: (position: FloatingPosition) => void;\n\n /** Called when dropdown closes */\n onClose?: () => void;\n\n /** Called when the popover is dismissed by clicking outside or by pressing escape */\n onDismiss?: () => void;\n\n /** Called when dropdown opens */\n onOpen?: () => void;\n\n /** If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead. */\n keepMounted?: boolean;\n\n /**\n * Controls how the dropdown is hidden when `keepMounted` is set:\n * `'activity'` – hidden with React 19 `Activity` component,\n * `'display-none'` – hidden with `display: none` styles\n * @default 'activity'\n */\n keepMountedMode?: 'activity' | 'display-none';\n\n /** Props passed down to the `Transition` component. Use to configure duration and animation type. @default { duration: 150, transition: 'fade' } */\n transitionProps?: TransitionOverride;\n\n /** Called when exit transition ends */\n onExitTransitionEnd?: () => void;\n\n /** Called when enter transition ends */\n onEnterTransitionEnd?: () => void;\n\n /** Dropdown width, or `'target'` to make dropdown width the same as target element @default 'max-content' */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling @default { flip: true, shift: true, inline: false } */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow @default false */\n withArrow?: boolean;\n\n /** Determines whether the overlay should be displayed when the dropdown is opened @default false */\n withOverlay?: boolean;\n\n /** Props passed down to `Overlay` component */\n overlayProps?: OverlayProps & ElementProps<'div'>;\n\n /** Arrow size in px @default 7 */\n arrowSize?: number;\n\n /** Arrow offset in px @default 5 */\n arrowOffset?: number;\n\n /** Arrow `border-radius` in px @default 0 */\n arrowRadius?: number;\n\n /** Arrow position */\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within the `Portal` @default true */\n withinPortal?: boolean;\n\n /** Props to pass down to the `Portal` when `withinPortal` is true */\n portalProps?: BasePortalProps;\n\n /** Dropdown `z-index` @default 300 */\n zIndex?: string | number;\n\n /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Key of `theme.shadows` or any other valid CSS `box-shadow` value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not be rendered */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes @default false */\n returnFocus?: boolean;\n\n /** Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy) @default 'absolute' */\n floatingStrategy?: FloatingStrategy;\n\n /** If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen @default true */\n hideDetached?: boolean;\n\n /** If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change. @default true */\n preventPositionChangeWhenVisible?: boolean;\n}\n\nexport interface PopoverProps extends __PopoverProps, StylesApiProps<PopoverFactory> {\n __staticSelector?: string;\n\n /** `Popover.Target` and `Popover.Dropdown` components */\n children?: React.ReactNode;\n\n /** Initial opened state for uncontrolled component */\n defaultOpened?: boolean;\n\n /** Controlled dropdown opened state */\n opened?: boolean;\n\n /** Called with current state when dropdown opens or closes */\n onChange?: (opened: boolean) => void;\n\n /** Determines whether dropdown should be closed on outside clicks @default true */\n closeOnClickOutside?: boolean;\n\n /** Events that trigger outside clicks */\n clickOutsideEvents?: string[];\n\n /** Determines whether focus should be trapped within dropdown @default false */\n trapFocus?: boolean;\n\n /** Determines whether dropdown should be closed when `Escape` key is pressed @default true */\n closeOnEscape?: boolean;\n\n /** Id base to create accessibility connections */\n id?: string;\n\n /** Determines whether dropdown and target elements should have accessible roles @default true */\n withRoles?: boolean;\n}\n\nexport type PopoverFactory = Factory<{\n props: PopoverProps;\n stylesNames: PopoverStylesNames;\n vars: PopoverCssVariables;\n}>;\n\nconst defaultProps = {\n position: 'bottom',\n offset: 8,\n transitionProps: { transition: 'fade', duration: 150 },\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n closeOnClickOutside: true,\n withinPortal: true,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n withOverlay: false,\n hideDetached: true,\n preventPositionChangeWhenVisible: true,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n} satisfies Partial<PopoverProps>;\n\nconst varsResolver = createVarsResolver<PopoverFactory>((_, { radius, shadow }) => ({\n dropdown: {\n '--popover-radius': radius === undefined ? undefined : getRadius(radius),\n '--popover-shadow': getShadow(shadow),\n },\n}));\n\nexport function Popover(_props: PopoverProps) {\n const props = useProps('Popover', defaultProps, _props);\n const {\n children,\n position,\n offset,\n onPositionChange,\n opened,\n transitionProps,\n onExitTransitionEnd,\n onEnterTransitionEnd,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n portalProps,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onDismiss,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted,\n keepMountedMode,\n vars,\n floatingStrategy,\n withOverlay,\n overlayProps,\n hideDetached,\n attributes,\n preventPositionChangeWhenVisible,\n ...others\n } = props;\n\n const getStyles = useStyles<PopoverFactory>({\n name: __staticSelector,\n props,\n classes,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'dropdown',\n vars,\n varsResolver,\n });\n\n const { resolvedStyles } = useResolvedStylesApi<PopoverFactory>({ classNames, styles, props });\n\n const arrowRef = useRef<HTMLDivElement | null>(null);\n const [targetNode, setTargetNode] = useState<HTMLElement | null>(null);\n const [dropdownNode, setDropdownNode] = useState<HTMLElement | null>(null);\n const { dir } = useDirection();\n const env = useMantineEnv();\n\n const uid = useId(id);\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(dir, position),\n offset: typeof offset === 'number' ? offset + (withArrow ? arrowSize / 2 : 0) : offset,\n arrowRef,\n arrowOffset,\n onPositionChange,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose,\n onDismiss,\n strategy: floatingStrategy,\n disabled,\n preventPositionChangeWhenVisible,\n keepMounted,\n });\n\n useClickOutside(\n () => {\n if (closeOnClickOutside) {\n popover.onClose();\n onDismiss?.();\n }\n },\n clickOutsideEvents,\n [targetNode, dropdownNode]\n );\n\n const reference = useCallback(\n (node: HTMLElement) => {\n setTargetNode(node);\n popover.floating.refs.setReference(node);\n },\n [popover.floating.refs.setReference]\n );\n\n const floating = useCallback(\n (node: HTMLElement) => {\n setDropdownNode(node);\n popover.floating.refs.setFloating(node);\n },\n [popover.floating.refs.setFloating]\n );\n\n const onExited = useCallback(() => {\n transitionProps?.onExited?.();\n onExitTransitionEnd?.();\n popover.resetLockedPlacement();\n }, [transitionProps?.onExited, onExitTransitionEnd, popover.resetLockedPlacement]);\n\n const onEntered = useCallback(() => {\n transitionProps?.onEntered?.();\n onEnterTransitionEnd?.();\n }, [transitionProps?.onEntered, onEnterTransitionEnd]);\n\n return (\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transitionProps: { ...transitionProps, onExited, onEntered },\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n portalProps,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onDismiss,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => uid,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted,\n keepMountedMode,\n getStyles,\n resolvedStyles,\n floatingStrategy,\n referenceHidden:\n hideDetached && env !== 'test'\n ? popover.floating.middlewareData.hide?.referenceHidden\n : false,\n }}\n >\n {children}\n {withOverlay && (\n <Transition\n transition=\"fade\"\n mounted={popover.opened}\n duration={transitionProps?.duration || 250}\n exitDuration={transitionProps?.exitDuration || 250}\n >\n {(transitionStyles) => (\n <OptionalPortal withinPortal={withinPortal}>\n <Overlay\n {...overlayProps}\n {...getStyles('overlay', {\n className: overlayProps?.className,\n style: [transitionStyles, overlayProps?.style],\n })}\n />\n </OptionalPortal>\n )}\n </Transition>\n )}\n </PopoverContextProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.ContextMenu = PopoverContextMenu;\nPopover.varsResolver = varsResolver;\nPopover.displayName = '@mantine/core/Popover';\nPopover.extend = (input: ExtendComponent<PopoverFactory>) => input;\nPopover.withProps = (fixedProps: Partial<PopoverProps>) => {\n const Extended = (props: PopoverProps) => <Popover {...fixedProps} {...props} />;\n Extended.extend = Popover.extend;\n Extended.displayName = `WithProps(${Popover.displayName})`;\n return Extended;\n};\n\nexport namespace Popover {\n export type Props = PopoverProps;\n export type __Props = __PopoverProps;\n export type Factory = PopoverFactory;\n export type StylesNames = PopoverStylesNames;\n export type TargetProps = PopoverTargetProps;\n export type DropdownProps = PopoverDropdownProps;\n export type Width = PopoverWidth;\n export type ContextValue = PopoverContextValue;\n\n export namespace Target {\n export type Props = PopoverTargetProps;\n }\n\n export namespace Dropdown {\n export type Props = PopoverDropdownProps;\n }\n\n export namespace ContextMenu {\n export type Props = PopoverContextMenuProps;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.context.cjs","names":["createSafeContext"],"sources":["../../../src/components/Popover/Popover.context.ts"],"sourcesContent":["import {\n ClassNames,\n createSafeContext,\n GetStylesApi,\n MantineRadius,\n MantineShadow,\n Styles,\n} from '../../core';\nimport { ArrowPosition, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { BasePortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport type { PopoverFactory } from './Popover';\nimport { PopoverWidth } from './Popover.types';\n\nexport interface PopoverContextValue {\n x: number;\n y: number;\n arrowX: number | undefined;\n arrowY: number | undefined;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n opened: boolean;\n transitionProps?: TransitionOverride;\n reference: (node: HTMLElement) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean | undefined;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean | undefined;\n placement: FloatingPosition;\n withinPortal: boolean | undefined;\n portalProps?: BasePortalProps;\n closeOnEscape: boolean | undefined;\n zIndex: string | number | undefined;\n radius?: MantineRadius | undefined;\n shadow?: MantineShadow | undefined;\n onClose?: () => void;\n onDismiss?: () => void;\n getDropdownId: () => string;\n getTargetId: () => string;\n controlled: boolean;\n onToggle: () => void;\n withRoles: boolean | undefined;\n targetProps: Record<string, any>;\n disabled: boolean | undefined;\n returnFocus: boolean | undefined;\n classNames: ClassNames<PopoverFactory> | undefined;\n styles: Styles<PopoverFactory> | undefined;\n unstyled: boolean | undefined;\n __staticSelector: string;\n variant: string | undefined;\n keepMounted: boolean | undefined;\n getStyles: GetStylesApi<PopoverFactory>;\n resolvedStyles: Record<string, any> | undefined;\n floatingStrategy: FloatingStrategy | undefined;\n referenceHidden: boolean | undefined;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContextValue>(\n 'Popover component was not found in the tree'\n);\n"],"mappings":";;AA4DA,MAAa,CAAC,wBAAwB,2FAAqBA,EAAAA,kBACzD,6CACF"}
1
+ {"version":3,"file":"Popover.context.cjs","names":["createSafeContext"],"sources":["../../../src/components/Popover/Popover.context.ts"],"sourcesContent":["import {\n ClassNames,\n createSafeContext,\n GetStylesApi,\n MantineRadius,\n MantineShadow,\n Styles,\n} from '../../core';\nimport { ArrowPosition, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { BasePortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport type { PopoverFactory } from './Popover';\nimport { PopoverWidth } from './Popover.types';\n\nexport interface PopoverContextValue {\n x: number;\n y: number;\n arrowX: number | undefined;\n arrowY: number | undefined;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n opened: boolean;\n transitionProps?: TransitionOverride;\n reference: (node: HTMLElement) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean | undefined;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean | undefined;\n placement: FloatingPosition;\n withinPortal: boolean | undefined;\n portalProps?: BasePortalProps;\n closeOnEscape: boolean | undefined;\n zIndex: string | number | undefined;\n radius?: MantineRadius | undefined;\n shadow?: MantineShadow | undefined;\n onClose?: () => void;\n onDismiss?: () => void;\n getDropdownId: () => string;\n getTargetId: () => string;\n controlled: boolean;\n onToggle: () => void;\n withRoles: boolean | undefined;\n targetProps: Record<string, any>;\n disabled: boolean | undefined;\n returnFocus: boolean | undefined;\n classNames: ClassNames<PopoverFactory> | undefined;\n styles: Styles<PopoverFactory> | undefined;\n unstyled: boolean | undefined;\n __staticSelector: string;\n variant: string | undefined;\n keepMounted: boolean | undefined;\n keepMountedMode: 'activity' | 'display-none' | undefined;\n getStyles: GetStylesApi<PopoverFactory>;\n resolvedStyles: Record<string, any> | undefined;\n floatingStrategy: FloatingStrategy | undefined;\n referenceHidden: boolean | undefined;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContextValue>(\n 'Popover component was not found in the tree'\n);\n"],"mappings":";;AA6DA,MAAa,CAAC,wBAAwB,2FAAqBA,CAAAA,CAAAA,kBACzD,6CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverContextMenu.cjs","names":["useProps","getSingleElementChild","usePopoverContext","useContextMenuHandlers"],"sources":["../../../../src/components/Popover/PopoverContextMenu/PopoverContextMenu.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport { getSingleElementChild, useProps } from '../../../core';\nimport { useContextMenuHandlers } from '../../../utils/Floating/use-context-menu-handlers';\nimport { usePopoverContext } from '../Popover.context';\n\nexport interface PopoverContextMenuProps {\n /** Element that opens the popover when right-clicked. Dropdown is positioned at the cursor. The trigger element must not call `event.preventDefault()` in its own `onContextMenu` handler, otherwise the native context menu is not suppressed. */\n children: React.ReactNode;\n\n /** If set, the right-click trigger is disabled and the browser's default context menu is shown */\n disabled?: boolean;\n\n /** Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default */\n longPressDelay?: number;\n}\n\nexport function PopoverContextMenu(props: PopoverContextMenuProps) {\n const { children, disabled, longPressDelay } = useProps('PopoverContextMenu', null, props);\n\n const child = getSingleElementChild(children);\n if (!child) {\n throw new Error(\n 'Popover.ContextMenu 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 = usePopoverContext();\n\n const handlers = useContextMenuHandlers({\n childProps: child.props as any,\n disabled: disabled || ctx.disabled,\n opened: ctx.opened,\n longPressDelay,\n setReference: ctx.reference as unknown as (node: object) => void,\n open: () => {\n if (!ctx.opened) {\n ctx.onToggle();\n }\n },\n });\n\n return cloneElement(child, handlers as any);\n}\n\nPopoverContextMenu.displayName = '@mantine/core/PopoverContextMenu';\n"],"mappings":";;;;;;;AAgBA,SAAgB,mBAAmB,OAAgC;CACjE,MAAM,EAAE,UAAU,UAAU,mBAAmBA,kBAAAA,SAAS,sBAAsB,MAAM,KAAK;CAEzF,MAAM,QAAQC,iCAAAA,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,uKACF;CAGF,MAAM,MAAMC,wBAAAA,kBAAkB;CAe9B,QAAA,GAAA,MAAA,cAAoB,OAbHC,kCAAAA,uBAAuB;EACtC,YAAY,MAAM;EAClB,UAAU,YAAY,IAAI;EAC1B,QAAQ,IAAI;EACZ;EACA,cAAc,IAAI;EAClB,YAAY;GACV,IAAI,CAAC,IAAI,QACP,IAAI,SAAS;EAEjB;CACF,CAEkC,CAAQ;AAC5C;AAEA,mBAAmB,cAAc"}
1
+ {"version":3,"file":"PopoverContextMenu.cjs","names":["useProps","getSingleElementChild","usePopoverContext","useContextMenuHandlers"],"sources":["../../../../src/components/Popover/PopoverContextMenu/PopoverContextMenu.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport { getSingleElementChild, useProps } from '../../../core';\nimport { useContextMenuHandlers } from '../../../utils/Floating/use-context-menu-handlers';\nimport { usePopoverContext } from '../Popover.context';\n\nexport interface PopoverContextMenuProps {\n /** Element that opens the popover when right-clicked. Dropdown is positioned at the cursor. The trigger element must not call `event.preventDefault()` in its own `onContextMenu` handler, otherwise the native context menu is not suppressed. */\n children: React.ReactNode;\n\n /** If set, the right-click trigger is disabled and the browser's default context menu is shown */\n disabled?: boolean;\n\n /** Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default */\n longPressDelay?: number;\n}\n\nexport function PopoverContextMenu(props: PopoverContextMenuProps) {\n const { children, disabled, longPressDelay } = useProps('PopoverContextMenu', null, props);\n\n const child = getSingleElementChild(children);\n if (!child) {\n throw new Error(\n 'Popover.ContextMenu 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 = usePopoverContext();\n\n const handlers = useContextMenuHandlers({\n childProps: child.props as any,\n disabled: disabled || ctx.disabled,\n opened: ctx.opened,\n longPressDelay,\n setReference: ctx.reference as unknown as (node: object) => void,\n open: () => {\n if (!ctx.opened) {\n ctx.onToggle();\n }\n },\n });\n\n return cloneElement(child, handlers as any);\n}\n\nPopoverContextMenu.displayName = '@mantine/core/PopoverContextMenu';\n"],"mappings":";;;;;;;AAgBA,SAAgB,mBAAmB,OAAgC;CACjE,MAAM,EAAE,UAAU,UAAU,mBAAmBA,kBAAAA,SAAS,sBAAsB,MAAM,KAAK;CAEzF,MAAM,QAAQC,iCAAAA,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,uKACF;CAGF,MAAM,MAAMC,wBAAAA,kBAAkB;CAe9B,QAAA,GAAA,MAAA,aAAA,CAAoB,OAbHC,kCAAAA,uBAAuB;EACtC,YAAY,MAAM;EAClB,UAAU,YAAY,IAAI;EAC1B,QAAQ,IAAI;EACZ;EACA,cAAc,IAAI;EAClB,YAAY;GACV,IAAI,CAAC,IAAI,QACP,IAAI,SAAS;EAEjB;CACF,CAEkC,CAAQ;AAC5C;AAEA,mBAAmB,cAAc"}
@@ -45,6 +45,7 @@ const PopoverDropdown = require_factory.factory((_props) => {
45
45
  transition: ctx.transitionProps?.transition || "fade",
46
46
  duration: ctx.transitionProps?.duration ?? 150,
47
47
  keepMounted: ctx.keepMounted,
48
+ keepMountedMode: ctx.keepMountedMode,
48
49
  exitDuration: typeof ctx.transitionProps?.exitDuration === "number" ? ctx.transitionProps.exitDuration : ctx.transitionProps?.duration,
49
50
  children: (transitionStyles) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FocusTrap.FocusTrap, {
50
51
  active: ctx.trapFocus && ctx.opened,
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverDropdown.cjs","names":["factory","useProps","usePopoverContext","useDirection","getArrowMergeDropdownStyles","OptionalPortal","Transition","FocusTrap","Box","closeOnEscape","rem","FloatingArrow","classes"],"sources":["../../../../src/components/Popover/PopoverDropdown/PopoverDropdown.tsx"],"sourcesContent":["import { useFocusReturn, useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n closeOnEscape,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n rem,\n useDirection,\n useProps,\n} from '../../../core';\nimport { FloatingArrow, getArrowMergeDropdownStyles } from '../../../utils/Floating';\nimport { FocusTrap } from '../../FocusTrap';\nimport { OptionalPortal } from '../../Portal';\nimport { Transition } from '../../Transition';\nimport type { PopoverStylesNames } from '../Popover';\nimport { usePopoverContext } from '../Popover.context';\nimport classes from '../Popover.module.css';\n\nexport interface PopoverDropdownProps\n extends BoxProps, CompoundStylesApiProps<PopoverDropdownFactory>, ElementProps<'div'> {}\n\nexport type PopoverDropdownFactory = Factory<{\n props: PopoverDropdownProps;\n ref: HTMLDivElement;\n stylesNames: PopoverStylesNames;\n compound: true;\n}>;\n\nexport const PopoverDropdown = factory<PopoverDropdownFactory>((_props) => {\n const props = useProps('PopoverDropdown', null, _props);\n const {\n className,\n style,\n vars,\n children,\n onKeyDownCapture,\n variant,\n classNames,\n styles,\n ref,\n ...others\n } = props;\n\n const ctx = usePopoverContext();\n const { dir } = useDirection();\n\n const mergeStyles =\n ctx.arrowPosition === 'merge' && ctx.withArrow\n ? getArrowMergeDropdownStyles({ position: ctx.placement, dir })\n : undefined;\n\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus,\n });\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-labelledby': ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: 'dialog',\n tabIndex: -1,\n }\n : {};\n\n const mergedRef = useMergedRef(ref, ctx.floating);\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <OptionalPortal {...ctx.portalProps} withinPortal={ctx.withinPortal}>\n <Transition\n mounted={ctx.opened}\n {...ctx.transitionProps}\n transition={ctx.transitionProps?.transition || 'fade'}\n duration={ctx.transitionProps?.duration ?? 150}\n keepMounted={ctx.keepMounted}\n exitDuration={\n typeof ctx.transitionProps?.exitDuration === 'number'\n ? ctx.transitionProps.exitDuration\n : ctx.transitionProps?.duration\n }\n >\n {(transitionStyles) => (\n <FocusTrap active={ctx.trapFocus && ctx.opened} innerRef={mergedRef}>\n <Box\n {...accessibleProps}\n {...others}\n variant={variant}\n onKeyDownCapture={closeOnEscape(\n () => {\n ctx.onClose?.();\n ctx.onDismiss?.();\n },\n {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture,\n }\n )}\n data-position={ctx.placement}\n data-fixed={ctx.floatingStrategy === 'fixed' || undefined}\n {...ctx.getStyles('dropdown', {\n className,\n props,\n classNames,\n styles,\n style: [\n {\n ...transitionStyles,\n ...mergeStyles,\n zIndex: ctx.zIndex as React.CSSProperties['zIndex'],\n top: ctx.y ?? 0,\n left: ctx.x ?? 0,\n width: ctx.width === 'target' ? undefined : rem(ctx.width),\n ...(ctx.referenceHidden ? { display: 'none' } : null),\n },\n ctx.resolvedStyles?.dropdown,\n styles?.dropdown,\n style,\n ],\n })}\n >\n {children}\n\n <FloatingArrow\n ref={ctx.arrowRef}\n arrowX={ctx.arrowX}\n arrowY={ctx.arrowY}\n visible={ctx.withArrow}\n position={ctx.placement}\n arrowSize={ctx.arrowSize}\n arrowRadius={ctx.arrowRadius}\n arrowOffset={ctx.arrowOffset}\n arrowPosition={ctx.arrowPosition}\n {...ctx.getStyles('arrow', {\n props,\n classNames,\n styles,\n })}\n />\n </Box>\n </FocusTrap>\n )}\n </Transition>\n </OptionalPortal>\n );\n});\n\nPopoverDropdown.classes = classes;\nPopoverDropdown.displayName = '@mantine/core/PopoverDropdown';\n"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,MAAa,kBAAkBA,gBAAAA,SAAiC,WAAW;CACzE,MAAM,QAAQC,kBAAAA,SAAS,mBAAmB,MAAM,MAAM;CACtD,MAAM,EACJ,WACA,OACA,MACA,UACA,kBACA,SACA,YACA,QACA,KACA,GAAG,WACD;CAEJ,MAAM,MAAMC,wBAAAA,kBAAkB;CAC9B,MAAM,EAAE,QAAQC,0BAAAA,aAAa;CAE7B,MAAM,cACJ,IAAI,kBAAkB,WAAW,IAAI,YACjCC,kCAAAA,4BAA4B;EAAE,UAAU,IAAI;EAAW;CAAI,CAAC,IAC5D,KAAA;CAEN,MAAM,eAAA,GAAA,eAAA,gBAA6B;EACjC,QAAQ,IAAI;EACZ,mBAAmB,IAAI;CACzB,CAAC;CAED,MAAM,kBAAkB,IAAI,YACxB;EACE,mBAAmB,IAAI,YAAY;EACnC,IAAI,IAAI,cAAc;EACtB,MAAM;EACN,UAAU;CACZ,IACA,CAAC;CAEL,MAAM,aAAA,GAAA,eAAA,cAAyB,KAAK,IAAI,QAAQ;CAEhD,IAAI,IAAI,UACN,OAAO;CAGT,OACE,iBAAA,GAAA,kBAAA,KAACC,uBAAAA,gBAAD;EAAgB,GAAI,IAAI;EAAa,cAAc,IAAI;YACrD,iBAAA,GAAA,kBAAA,KAACC,mBAAAA,YAAD;GACE,SAAS,IAAI;GACb,GAAI,IAAI;GACR,YAAY,IAAI,iBAAiB,cAAc;GAC/C,UAAU,IAAI,iBAAiB,YAAY;GAC3C,aAAa,IAAI;GACjB,cACE,OAAO,IAAI,iBAAiB,iBAAiB,WACzC,IAAI,gBAAgB,eACpB,IAAI,iBAAiB;cAGzB,qBACA,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;IAAW,QAAQ,IAAI,aAAa,IAAI;IAAQ,UAAU;cACxD,iBAAA,GAAA,kBAAA,MAACC,YAAAA,KAAD;KACE,GAAI;KACJ,GAAI;KACK;KACT,kBAAkBC,wBAAAA,oBACV;MACJ,IAAI,UAAU;MACd,IAAI,YAAY;KAClB,GACA;MACE,QAAQ,IAAI;MACZ,WAAW;MACX,WAAW;KACb,CACF;KACA,iBAAe,IAAI;KACnB,cAAY,IAAI,qBAAqB,WAAW,KAAA;KAChD,GAAI,IAAI,UAAU,YAAY;MAC5B;MACA;MACA;MACA;MACA,OAAO;OACL;QACE,GAAG;QACH,GAAG;QACH,QAAQ,IAAI;QACZ,KAAK,IAAI,KAAK;QACd,MAAM,IAAI,KAAK;QACf,OAAO,IAAI,UAAU,WAAW,KAAA,IAAYC,YAAAA,IAAI,IAAI,KAAK;QACzD,GAAI,IAAI,kBAAkB,EAAE,SAAS,OAAO,IAAI;OAClD;OACA,IAAI,gBAAgB;OACpB,QAAQ;OACR;MACF;KACF,CAAC;eApCH,CAsCG,UAED,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,eAAD;MACE,KAAK,IAAI;MACT,QAAQ,IAAI;MACZ,QAAQ,IAAI;MACZ,SAAS,IAAI;MACb,UAAU,IAAI;MACd,WAAW,IAAI;MACf,aAAa,IAAI;MACjB,aAAa,IAAI;MACjB,eAAe,IAAI;MACnB,GAAI,IAAI,UAAU,SAAS;OACzB;OACA;OACA;MACF,CAAC;KACF,CAAA,CACE;;GACI,CAAA;EAEH,CAAA;CACE,CAAA;AAEpB,CAAC;AAED,gBAAgB,UAAUC,uBAAAA;AAC1B,gBAAgB,cAAc"}
1
+ {"version":3,"file":"PopoverDropdown.cjs","names":["factory","useProps","usePopoverContext","useDirection","getArrowMergeDropdownStyles","OptionalPortal","Transition","FocusTrap","Box","closeOnEscape","rem","FloatingArrow","classes"],"sources":["../../../../src/components/Popover/PopoverDropdown/PopoverDropdown.tsx"],"sourcesContent":["import { useFocusReturn, useMergedRef } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n closeOnEscape,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n rem,\n useDirection,\n useProps,\n} from '../../../core';\nimport { FloatingArrow, getArrowMergeDropdownStyles } from '../../../utils/Floating';\nimport { FocusTrap } from '../../FocusTrap';\nimport { OptionalPortal } from '../../Portal';\nimport { Transition } from '../../Transition';\nimport type { PopoverStylesNames } from '../Popover';\nimport { usePopoverContext } from '../Popover.context';\nimport classes from '../Popover.module.css';\n\nexport interface PopoverDropdownProps\n extends BoxProps, CompoundStylesApiProps<PopoverDropdownFactory>, ElementProps<'div'> {}\n\nexport type PopoverDropdownFactory = Factory<{\n props: PopoverDropdownProps;\n ref: HTMLDivElement;\n stylesNames: PopoverStylesNames;\n compound: true;\n}>;\n\nexport const PopoverDropdown = factory<PopoverDropdownFactory>((_props) => {\n const props = useProps('PopoverDropdown', null, _props);\n const {\n className,\n style,\n vars,\n children,\n onKeyDownCapture,\n variant,\n classNames,\n styles,\n ref,\n ...others\n } = props;\n\n const ctx = usePopoverContext();\n const { dir } = useDirection();\n\n const mergeStyles =\n ctx.arrowPosition === 'merge' && ctx.withArrow\n ? getArrowMergeDropdownStyles({ position: ctx.placement, dir })\n : undefined;\n\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus,\n });\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-labelledby': ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: 'dialog',\n tabIndex: -1,\n }\n : {};\n\n const mergedRef = useMergedRef(ref, ctx.floating);\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <OptionalPortal {...ctx.portalProps} withinPortal={ctx.withinPortal}>\n <Transition\n mounted={ctx.opened}\n {...ctx.transitionProps}\n transition={ctx.transitionProps?.transition || 'fade'}\n duration={ctx.transitionProps?.duration ?? 150}\n keepMounted={ctx.keepMounted}\n keepMountedMode={ctx.keepMountedMode}\n exitDuration={\n typeof ctx.transitionProps?.exitDuration === 'number'\n ? ctx.transitionProps.exitDuration\n : ctx.transitionProps?.duration\n }\n >\n {(transitionStyles) => (\n <FocusTrap active={ctx.trapFocus && ctx.opened} innerRef={mergedRef}>\n <Box\n {...accessibleProps}\n {...others}\n variant={variant}\n onKeyDownCapture={closeOnEscape(\n () => {\n ctx.onClose?.();\n ctx.onDismiss?.();\n },\n {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture,\n }\n )}\n data-position={ctx.placement}\n data-fixed={ctx.floatingStrategy === 'fixed' || undefined}\n {...ctx.getStyles('dropdown', {\n className,\n props,\n classNames,\n styles,\n style: [\n {\n ...transitionStyles,\n ...mergeStyles,\n zIndex: ctx.zIndex as React.CSSProperties['zIndex'],\n top: ctx.y ?? 0,\n left: ctx.x ?? 0,\n width: ctx.width === 'target' ? undefined : rem(ctx.width),\n ...(ctx.referenceHidden ? { display: 'none' } : null),\n },\n ctx.resolvedStyles?.dropdown,\n styles?.dropdown,\n style,\n ],\n })}\n >\n {children}\n\n <FloatingArrow\n ref={ctx.arrowRef}\n arrowX={ctx.arrowX}\n arrowY={ctx.arrowY}\n visible={ctx.withArrow}\n position={ctx.placement}\n arrowSize={ctx.arrowSize}\n arrowRadius={ctx.arrowRadius}\n arrowOffset={ctx.arrowOffset}\n arrowPosition={ctx.arrowPosition}\n {...ctx.getStyles('arrow', {\n props,\n classNames,\n styles,\n })}\n />\n </Box>\n </FocusTrap>\n )}\n </Transition>\n </OptionalPortal>\n );\n});\n\nPopoverDropdown.classes = classes;\nPopoverDropdown.displayName = '@mantine/core/PopoverDropdown';\n"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,MAAa,kBAAkBA,gBAAAA,SAAiC,WAAW;CACzE,MAAM,QAAQC,kBAAAA,SAAS,mBAAmB,MAAM,MAAM;CACtD,MAAM,EACJ,WACA,OACA,MACA,UACA,kBACA,SACA,YACA,QACA,KACA,GAAG,WACD;CAEJ,MAAM,MAAMC,wBAAAA,kBAAkB;CAC9B,MAAM,EAAE,QAAQC,0BAAAA,aAAa;CAE7B,MAAM,cACJ,IAAI,kBAAkB,WAAW,IAAI,YACjCC,kCAAAA,4BAA4B;EAAE,UAAU,IAAI;EAAW;CAAI,CAAC,IAC5D,KAAA;CAEN,MAAM,eAAA,GAAA,eAAA,eAAA,CAA6B;EACjC,QAAQ,IAAI;EACZ,mBAAmB,IAAI;CACzB,CAAC;CAED,MAAM,kBAAkB,IAAI,YACxB;EACE,mBAAmB,IAAI,YAAY;EACnC,IAAI,IAAI,cAAc;EACtB,MAAM;EACN,UAAU;CACZ,IACA,CAAC;CAEL,MAAM,aAAA,GAAA,eAAA,aAAA,CAAyB,KAAK,IAAI,QAAQ;CAEhD,IAAI,IAAI,UACN,OAAO;CAGT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,gBAAD;EAAgB,GAAI,IAAI;EAAa,cAAc,IAAI;YACrD,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;GACE,SAAS,IAAI;GACb,GAAI,IAAI;GACR,YAAY,IAAI,iBAAiB,cAAc;GAC/C,UAAU,IAAI,iBAAiB,YAAY;GAC3C,aAAa,IAAI;GACjB,iBAAiB,IAAI;GACrB,cACE,OAAO,IAAI,iBAAiB,iBAAiB,WACzC,IAAI,gBAAgB,eACpB,IAAI,iBAAiB;cAGzB,qBACA,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,WAAD;IAAW,QAAQ,IAAI,aAAa,IAAI;IAAQ,UAAU;cACxD,iBAAA,GAAA,kBAAA,KAAA,CAACC,YAAAA,KAAD;KACE,GAAI;KACJ,GAAI;KACK;KACT,kBAAkBC,wBAAAA,oBACV;MACJ,IAAI,UAAU;MACd,IAAI,YAAY;KAClB,GACA;MACE,QAAQ,IAAI;MACZ,WAAW;MACX,WAAW;KACb,CACF;KACA,iBAAe,IAAI;KACnB,cAAY,IAAI,qBAAqB,WAAW,KAAA;KAChD,GAAI,IAAI,UAAU,YAAY;MAC5B;MACA;MACA;MACA;MACA,OAAO;OACL;QACE,GAAG;QACH,GAAG;QACH,QAAQ,IAAI;QACZ,KAAK,IAAI,KAAK;QACd,MAAM,IAAI,KAAK;QACf,OAAO,IAAI,UAAU,WAAW,KAAA,IAAYC,YAAAA,IAAI,IAAI,KAAK;QACzD,GAAI,IAAI,kBAAkB,EAAE,SAAS,OAAO,IAAI;OAClD;OACA,IAAI,gBAAgB;OACpB,QAAQ;OACR;MACF;KACF,CAAC;eApCH,CAsCG,UAED,iBAAA,GAAA,kBAAA,IAAA,CAACC,sBAAAA,eAAD;MACE,KAAK,IAAI;MACT,QAAQ,IAAI;MACZ,QAAQ,IAAI;MACZ,SAAS,IAAI;MACb,UAAU,IAAI;MACd,WAAW,IAAI;MACf,aAAa,IAAI;MACjB,aAAa,IAAI;MACjB,eAAe,IAAI;MACnB,GAAI,IAAI,UAAU,SAAS;OACzB;OACA;OACA;MACF,CAAC;KACF,CAAA,CACE;;GACI,CAAA;EAEH,CAAA;CACE,CAAA;AAEpB,CAAC;AAED,gBAAgB,UAAUC,uBAAAA;AAC1B,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverTarget.cjs","names":["factory","useProps","getSingleElementChild","usePopoverContext","getRefProp"],"sources":["../../../../src/components/Popover/PopoverTarget/PopoverTarget.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport cx from 'clsx';\nimport { useMergedRef } from '@mantine/hooks';\nimport { factory, Factory, getRefProp, getSingleElementChild, useProps } from '../../../core';\nimport { usePopoverContext } from '../Popover.context';\n\nexport interface PopoverTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop that should be used to access element ref */\n refProp?: string;\n\n /** Popup accessible type @default 'dialog' */\n popupType?: string;\n}\n\nconst defaultProps = {\n refProp: 'ref',\n popupType: 'dialog',\n} satisfies Partial<PopoverTargetProps>;\n\nexport type PopoverTargetFactory = Factory<{\n props: PopoverTargetProps;\n ref: HTMLElement;\n compound: true;\n}>;\n\nexport const PopoverTarget = factory<PopoverTargetFactory>((props) => {\n const { children, refProp, popupType, ref, ...others } = useProps(\n 'PopoverTarget',\n defaultProps,\n props\n );\n\n const child = getSingleElementChild(children);\n if (!child) {\n throw new Error(\n 'Popover.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 forwardedProps: any = others;\n const ctx = usePopoverContext();\n const targetRef = useMergedRef(ctx.reference, getRefProp(child), ref);\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-haspopup': popupType,\n 'aria-expanded': ctx.opened,\n 'aria-controls': ctx.opened ? ctx.getDropdownId() : undefined,\n id: ctx.getTargetId(),\n }\n : {};\n\n const childProps = child.props as any;\n return cloneElement(child, {\n ...forwardedProps,\n ...accessibleProps,\n ...ctx.targetProps,\n className: cx(ctx.targetProps.className, forwardedProps.className, childProps.className),\n [refProp]: targetRef,\n ...(!ctx.controlled\n ? {\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n ctx.onToggle();\n childProps.onClick?.(event);\n },\n }\n : null),\n });\n});\n\nPopoverTarget.displayName = '@mantine/core/PopoverTarget';\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,eAAe;CACnB,SAAS;CACT,WAAW;AACb;AAQA,MAAa,gBAAgBA,gBAAAA,SAA+B,UAAU;CACpE,MAAM,EAAE,UAAU,SAAS,WAAW,KAAK,GAAG,WAAWC,kBAAAA,SACvD,iBACA,cACA,KACF;CAEA,MAAM,QAAQC,iCAAAA,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,kKACF;CAGF,MAAM,iBAAsB;CAC5B,MAAM,MAAMC,wBAAAA,kBAAkB;CAC9B,MAAM,aAAA,GAAA,eAAA,cAAyB,IAAI,WAAWC,qBAAAA,WAAW,KAAK,GAAG,GAAG;CAEpE,MAAM,kBAAkB,IAAI,YACxB;EACE,iBAAiB;EACjB,iBAAiB,IAAI;EACrB,iBAAiB,IAAI,SAAS,IAAI,cAAc,IAAI,KAAA;EACpD,IAAI,IAAI,YAAY;CACtB,IACA,CAAC;CAEL,MAAM,aAAa,MAAM;CACzB,QAAA,GAAA,MAAA,cAAoB,OAAO;EACzB,GAAG;EACH,GAAG;EACH,GAAG,IAAI;EACP,YAAA,GAAA,KAAA,SAAc,IAAI,YAAY,WAAW,eAAe,WAAW,WAAW,SAAS;GACtF,UAAU;EACX,GAAI,CAAC,IAAI,aACL,EACE,UAAU,UAAyC;GACjD,IAAI,SAAS;GACb,WAAW,UAAU,KAAK;EAC5B,EACF,IACA;CACN,CAAC;AACH,CAAC;AAED,cAAc,cAAc"}
1
+ {"version":3,"file":"PopoverTarget.cjs","names":["factory","useProps","getSingleElementChild","usePopoverContext","getRefProp"],"sources":["../../../../src/components/Popover/PopoverTarget/PopoverTarget.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport cx from 'clsx';\nimport { useMergedRef } from '@mantine/hooks';\nimport { factory, Factory, getRefProp, getSingleElementChild, useProps } from '../../../core';\nimport { usePopoverContext } from '../Popover.context';\n\nexport interface PopoverTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop that should be used to access element ref */\n refProp?: string;\n\n /** Popup accessible type @default 'dialog' */\n popupType?: string;\n}\n\nconst defaultProps = {\n refProp: 'ref',\n popupType: 'dialog',\n} satisfies Partial<PopoverTargetProps>;\n\nexport type PopoverTargetFactory = Factory<{\n props: PopoverTargetProps;\n ref: HTMLElement;\n compound: true;\n}>;\n\nexport const PopoverTarget = factory<PopoverTargetFactory>((props) => {\n const { children, refProp, popupType, ref, ...others } = useProps(\n 'PopoverTarget',\n defaultProps,\n props\n );\n\n const child = getSingleElementChild(children);\n if (!child) {\n throw new Error(\n 'Popover.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 forwardedProps: any = others;\n const ctx = usePopoverContext();\n const targetRef = useMergedRef(ctx.reference, getRefProp(child), ref);\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-haspopup': popupType,\n 'aria-expanded': ctx.opened,\n 'aria-controls': ctx.opened ? ctx.getDropdownId() : undefined,\n id: ctx.getTargetId(),\n }\n : {};\n\n const childProps = child.props as any;\n return cloneElement(child, {\n ...forwardedProps,\n ...accessibleProps,\n ...ctx.targetProps,\n className: cx(ctx.targetProps.className, forwardedProps.className, childProps.className),\n [refProp]: targetRef,\n ...(!ctx.controlled\n ? {\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n ctx.onToggle();\n childProps.onClick?.(event);\n },\n }\n : null),\n });\n});\n\nPopoverTarget.displayName = '@mantine/core/PopoverTarget';\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,eAAe;CACnB,SAAS;CACT,WAAW;AACb;AAQA,MAAa,gBAAgBA,gBAAAA,SAA+B,UAAU;CACpE,MAAM,EAAE,UAAU,SAAS,WAAW,KAAK,GAAG,WAAWC,kBAAAA,SACvD,iBACA,cACA,KACF;CAEA,MAAM,QAAQC,iCAAAA,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,kKACF;CAGF,MAAM,iBAAsB;CAC5B,MAAM,MAAMC,wBAAAA,kBAAkB;CAC9B,MAAM,aAAA,GAAA,eAAA,aAAA,CAAyB,IAAI,WAAWC,qBAAAA,WAAW,KAAK,GAAG,GAAG;CAEpE,MAAM,kBAAkB,IAAI,YACxB;EACE,iBAAiB;EACjB,iBAAiB,IAAI;EACrB,iBAAiB,IAAI,SAAS,IAAI,cAAc,IAAI,KAAA;EACpD,IAAI,IAAI,YAAY;CACtB,IACA,CAAC;CAEL,MAAM,aAAa,MAAM;CACzB,QAAA,GAAA,MAAA,aAAA,CAAoB,OAAO;EACzB,GAAG;EACH,GAAG;EACH,GAAG,IAAI;EACP,YAAA,GAAA,KAAA,QAAA,CAAc,IAAI,YAAY,WAAW,eAAe,WAAW,WAAW,SAAS;GACtF,UAAU;EACX,GAAI,CAAC,IAAI,aACL,EACE,UAAU,UAAyC;GACjD,IAAI,SAAS;GACb,WAAW,UAAU,KAAK;EAC5B,EACF,IACA;CACN,CAAC;AACH,CAAC;AAED,cAAc,cAAc"}
@@ -24,14 +24,18 @@ function getPopoverMiddlewares(options, getFloating, disableFlip, lockEnabled) {
24
24
  } : userFlip;
25
25
  middlewares.push((0, _floating_ui_react.flip)(flipOptions));
26
26
  }
27
- if (middlewaresOptions.shift) middlewares.push((0, _floating_ui_react.shift)(typeof middlewaresOptions.shift === "boolean" ? {
28
- limiter: (0, _floating_ui_react.limitShift)(),
29
- padding: 5
30
- } : {
31
- limiter: (0, _floating_ui_react.limitShift)(),
32
- padding: 5,
33
- ...middlewaresOptions.shift
34
- }));
27
+ if (middlewaresOptions.shift) {
28
+ const shiftOptions = typeof middlewaresOptions.shift === "boolean" ? {} : middlewaresOptions.shift;
29
+ middlewares.push((0, _floating_ui_react.shift)((state) => {
30
+ const isVerticalPlacement = state.placement.startsWith("top") || state.placement.startsWith("bottom");
31
+ return {
32
+ limiter: (0, _floating_ui_react.limitShift)(),
33
+ padding: 5,
34
+ ...options.width === "target" && isVerticalPlacement ? { mainAxis: false } : null,
35
+ ...shiftOptions
36
+ };
37
+ }));
38
+ }
35
39
  if (middlewaresOptions.inline) middlewares.push(typeof middlewaresOptions.inline === "boolean" ? (0, _floating_ui_react.inline)() : (0, _floating_ui_react.inline)(middlewaresOptions.inline));
36
40
  middlewares.push((0, _floating_ui_react.arrow)({
37
41
  element: options.arrowRef,
@@ -86,9 +90,17 @@ function usePopover(options) {
86
90
  whileElementsMounted: !options.keepMounted ? _floating_ui_react.autoUpdate : void 0
87
91
  });
88
92
  (0, react.useEffect)(() => {
89
- if (!floating.refs.reference.current || !floating.refs.floating.current) return;
90
- if (_opened) return (0, _floating_ui_react.autoUpdate)(floating.refs.reference.current, floating.refs.floating.current, floating.update);
91
- }, [_opened, floating.update]);
93
+ if (!options.keepMounted) return;
94
+ const referenceElement = floating.refs.reference.current;
95
+ const floatingElement = floating.refs.floating.current;
96
+ if (_opened && referenceElement && floatingElement) return (0, _floating_ui_react.autoUpdate)(referenceElement, floatingElement, floating.update);
97
+ }, [
98
+ options.keepMounted,
99
+ _opened,
100
+ floating.update,
101
+ floating.elements.reference,
102
+ floating.elements.floating
103
+ ]);
92
104
  const measuredAfterShowRef = (0, react.useRef)(false);
93
105
  (0, _mantine_hooks.useIsomorphicEffect)(() => {
94
106
  if (!_opened) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-popover.cjs","names":["autoUpdate"],"sources":["../../../src/components/Popover/use-popover.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n arrow,\n autoUpdate,\n flip,\n hide,\n inline,\n limitShift,\n Middleware,\n offset,\n shift,\n size,\n useFloating,\n UseFloatingReturn,\n} from '@floating-ui/react';\nimport { useDidUpdate, useIsomorphicEffect, useUncontrolled } from '@mantine/hooks';\nimport { FloatingAxesOffsets, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { PopoverMiddlewares, PopoverWidth } from './Popover.types';\n\ninterface UsePopoverOptions {\n offset: number | FloatingAxesOffsets;\n position: FloatingPosition;\n onPositionChange?: (position: FloatingPosition) => void;\n opened: boolean | undefined;\n defaultOpened: boolean | undefined;\n onChange?: (opened: boolean) => void;\n onClose?: () => void;\n onDismiss?: () => void;\n onOpen?: () => void;\n width: PopoverWidth;\n middlewares: PopoverMiddlewares | undefined;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n arrowOffset: number;\n strategy?: FloatingStrategy;\n disabled: boolean | undefined;\n preventPositionChangeWhenVisible: boolean | undefined;\n keepMounted: boolean | undefined;\n}\n\nfunction getDefaultMiddlewares(middlewares: PopoverMiddlewares | undefined): PopoverMiddlewares {\n if (middlewares === undefined) {\n return { shift: true, flip: true };\n }\n\n const result = { ...middlewares };\n if (middlewares.shift === undefined) {\n result.shift = true;\n }\n\n if (middlewares.flip === undefined) {\n result.flip = true;\n }\n\n return result;\n}\n\nfunction getPopoverMiddlewares(\n options: UsePopoverOptions,\n getFloating: () => UseFloatingReturn<Element>,\n disableFlip: boolean,\n lockEnabled: boolean\n) {\n const middlewaresOptions = getDefaultMiddlewares(options.middlewares);\n const middlewares: Middleware[] = [offset(options.offset), hide()];\n\n if (middlewaresOptions.flip && !disableFlip) {\n const userFlip = typeof middlewaresOptions.flip === 'boolean' ? {} : middlewaresOptions.flip;\n const flipOptions = lockEnabled\n ? { fallbackStrategy: 'initialPlacement' as const, ...userFlip }\n : userFlip;\n middlewares.push(flip(flipOptions));\n }\n\n if (middlewaresOptions.shift) {\n middlewares.push(\n shift(\n typeof middlewaresOptions.shift === 'boolean'\n ? { limiter: limitShift(), padding: 5 }\n : { limiter: limitShift(), padding: 5, ...middlewaresOptions.shift }\n )\n );\n }\n\n if (middlewaresOptions.inline) {\n middlewares.push(\n typeof middlewaresOptions.inline === 'boolean' ? inline() : inline(middlewaresOptions.inline)\n );\n }\n\n middlewares.push(arrow({ element: options.arrowRef, padding: options.arrowOffset }));\n\n if (middlewaresOptions.size || options.width === 'target') {\n middlewares.push(\n size({\n ...(typeof middlewaresOptions.size === 'boolean' ? {} : middlewaresOptions.size),\n apply({ rects, availableWidth, availableHeight, ...rest }) {\n const floating = getFloating();\n const styles = floating.refs.floating.current?.style ?? {};\n\n if (middlewaresOptions.size) {\n // If custom apply function is given use that else set defaults\n if (typeof middlewaresOptions.size === 'object' && !!middlewaresOptions.size.apply) {\n middlewaresOptions.size.apply({ rects, availableWidth, availableHeight, ...rest });\n } else {\n Object.assign(styles, {\n maxWidth: `${availableWidth}px`,\n maxHeight: `${availableHeight}px`,\n });\n }\n }\n\n if (options.width === 'target') {\n Object.assign(styles, {\n width: `${rects.reference.width}px`,\n });\n }\n },\n })\n );\n }\n\n return middlewares;\n}\n\nexport function usePopover(options: UsePopoverOptions) {\n const [_opened, setOpened] = useUncontrolled({\n value: options.opened,\n defaultValue: options.defaultOpened,\n finalValue: false,\n onChange: options.onChange,\n });\n\n const previouslyOpened = useRef(_opened);\n\n const [lockedPlacement, setLockedPlacement] = useState<FloatingPosition | null>(null);\n const lockEnabled = options.preventPositionChangeWhenVisible !== false;\n\n const wasOpenedRef = useRef(_opened);\n if (_opened !== wasOpenedRef.current) {\n wasOpenedRef.current = _opened;\n if (_opened && lockedPlacement !== null) {\n setLockedPlacement(null);\n }\n }\n\n const resetLockedPlacement = useCallback(() => setLockedPlacement(null), []);\n\n const onClose = () => {\n if (_opened && !options.disabled) {\n setOpened(false);\n }\n };\n\n const onToggle = () => {\n if (!options.disabled) {\n setOpened(!_opened);\n }\n };\n\n const floating: UseFloatingReturn<Element> = useFloating({\n open: _opened,\n strategy: options.strategy,\n placement: lockEnabled ? (lockedPlacement ?? options.position) : options.position,\n middleware: getPopoverMiddlewares(\n options,\n () => floating,\n lockEnabled && lockedPlacement !== null,\n lockEnabled\n ),\n whileElementsMounted: !options.keepMounted ? autoUpdate : undefined,\n });\n\n useEffect(() => {\n if (!floating.refs.reference.current || !floating.refs.floating.current) {\n return;\n }\n\n if (_opened) {\n return autoUpdate(\n floating.refs.reference.current,\n floating.refs.floating.current,\n floating.update\n );\n }\n }, [_opened, floating.update]);\n\n const measuredAfterShowRef = useRef(false);\n\n useIsomorphicEffect(() => {\n if (!_opened) {\n measuredAfterShowRef.current = false;\n return;\n }\n\n if (!lockEnabled || lockedPlacement !== null) {\n return;\n }\n\n const flEl = floating.refs.floating.current as HTMLElement | null;\n if (!flEl || flEl.offsetHeight === 0 || flEl.offsetWidth === 0) {\n return;\n }\n\n if (!measuredAfterShowRef.current) {\n measuredAfterShowRef.current = true;\n floating.update();\n return;\n }\n\n if (floating.isPositioned) {\n setLockedPlacement(floating.placement);\n }\n }, [\n lockEnabled,\n _opened,\n floating.isPositioned,\n floating.placement,\n lockedPlacement,\n floating.update,\n ]);\n\n const previousPlacementRef = useRef(floating.placement);\n useIsomorphicEffect(() => {\n if (previousPlacementRef.current !== floating.placement) {\n previousPlacementRef.current = floating.placement;\n options.onPositionChange?.(floating.placement);\n }\n }, [floating.placement]);\n\n useDidUpdate(() => {\n if (_opened !== previouslyOpened.current) {\n if (!_opened) {\n options.onClose?.();\n } else {\n options.onOpen?.();\n }\n }\n\n previouslyOpened.current = _opened;\n }, [_opened, options.onClose, options.onOpen]);\n\n return {\n floating,\n controlled: typeof options.opened === 'boolean',\n opened: _opened,\n onClose,\n onToggle,\n resetLockedPlacement,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-popover.cjs","names":["autoUpdate"],"sources":["../../../src/components/Popover/use-popover.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n arrow,\n autoUpdate,\n flip,\n hide,\n inline,\n limitShift,\n Middleware,\n offset,\n shift,\n size,\n useFloating,\n UseFloatingReturn,\n} from '@floating-ui/react';\nimport { useDidUpdate, useIsomorphicEffect, useUncontrolled } from '@mantine/hooks';\nimport { FloatingAxesOffsets, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { PopoverMiddlewares, PopoverWidth } from './Popover.types';\n\ninterface UsePopoverOptions {\n offset: number | FloatingAxesOffsets;\n position: FloatingPosition;\n onPositionChange?: (position: FloatingPosition) => void;\n opened: boolean | undefined;\n defaultOpened: boolean | undefined;\n onChange?: (opened: boolean) => void;\n onClose?: () => void;\n onDismiss?: () => void;\n onOpen?: () => void;\n width: PopoverWidth;\n middlewares: PopoverMiddlewares | undefined;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n arrowOffset: number;\n strategy?: FloatingStrategy;\n disabled: boolean | undefined;\n preventPositionChangeWhenVisible: boolean | undefined;\n keepMounted: boolean | undefined;\n}\n\nfunction getDefaultMiddlewares(middlewares: PopoverMiddlewares | undefined): PopoverMiddlewares {\n if (middlewares === undefined) {\n return { shift: true, flip: true };\n }\n\n const result = { ...middlewares };\n if (middlewares.shift === undefined) {\n result.shift = true;\n }\n\n if (middlewares.flip === undefined) {\n result.flip = true;\n }\n\n return result;\n}\n\nfunction getPopoverMiddlewares(\n options: UsePopoverOptions,\n getFloating: () => UseFloatingReturn<Element>,\n disableFlip: boolean,\n lockEnabled: boolean\n) {\n const middlewaresOptions = getDefaultMiddlewares(options.middlewares);\n const middlewares: Middleware[] = [offset(options.offset), hide()];\n\n if (middlewaresOptions.flip && !disableFlip) {\n const userFlip = typeof middlewaresOptions.flip === 'boolean' ? {} : middlewaresOptions.flip;\n const flipOptions = lockEnabled\n ? { fallbackStrategy: 'initialPlacement' as const, ...userFlip }\n : userFlip;\n middlewares.push(flip(flipOptions));\n }\n\n if (middlewaresOptions.shift) {\n const shiftOptions =\n typeof middlewaresOptions.shift === 'boolean' ? {} : middlewaresOptions.shift;\n middlewares.push(\n shift((state) => {\n const isVerticalPlacement =\n state.placement.startsWith('top') || state.placement.startsWith('bottom');\n return {\n limiter: limitShift(),\n padding: 5,\n ...(options.width === 'target' && isVerticalPlacement ? { mainAxis: false } : null),\n ...shiftOptions,\n };\n })\n );\n }\n\n if (middlewaresOptions.inline) {\n middlewares.push(\n typeof middlewaresOptions.inline === 'boolean' ? inline() : inline(middlewaresOptions.inline)\n );\n }\n\n middlewares.push(arrow({ element: options.arrowRef, padding: options.arrowOffset }));\n\n if (middlewaresOptions.size || options.width === 'target') {\n middlewares.push(\n size({\n ...(typeof middlewaresOptions.size === 'boolean' ? {} : middlewaresOptions.size),\n apply({ rects, availableWidth, availableHeight, ...rest }) {\n const floating = getFloating();\n const styles = floating.refs.floating.current?.style ?? {};\n\n if (middlewaresOptions.size) {\n // If custom apply function is given use that else set defaults\n if (typeof middlewaresOptions.size === 'object' && !!middlewaresOptions.size.apply) {\n middlewaresOptions.size.apply({ rects, availableWidth, availableHeight, ...rest });\n } else {\n Object.assign(styles, {\n maxWidth: `${availableWidth}px`,\n maxHeight: `${availableHeight}px`,\n });\n }\n }\n\n if (options.width === 'target') {\n Object.assign(styles, {\n width: `${rects.reference.width}px`,\n });\n }\n },\n })\n );\n }\n\n return middlewares;\n}\n\nexport function usePopover(options: UsePopoverOptions) {\n const [_opened, setOpened] = useUncontrolled({\n value: options.opened,\n defaultValue: options.defaultOpened,\n finalValue: false,\n onChange: options.onChange,\n });\n\n const previouslyOpened = useRef(_opened);\n\n const [lockedPlacement, setLockedPlacement] = useState<FloatingPosition | null>(null);\n const lockEnabled = options.preventPositionChangeWhenVisible !== false;\n\n const wasOpenedRef = useRef(_opened);\n if (_opened !== wasOpenedRef.current) {\n wasOpenedRef.current = _opened;\n if (_opened && lockedPlacement !== null) {\n setLockedPlacement(null);\n }\n }\n\n const resetLockedPlacement = useCallback(() => setLockedPlacement(null), []);\n\n const onClose = () => {\n if (_opened && !options.disabled) {\n setOpened(false);\n }\n };\n\n const onToggle = () => {\n if (!options.disabled) {\n setOpened(!_opened);\n }\n };\n\n const floating: UseFloatingReturn<Element> = useFloating({\n open: _opened,\n strategy: options.strategy,\n placement: lockEnabled ? (lockedPlacement ?? options.position) : options.position,\n middleware: getPopoverMiddlewares(\n options,\n () => floating,\n lockEnabled && lockedPlacement !== null,\n lockEnabled\n ),\n whileElementsMounted: !options.keepMounted ? autoUpdate : undefined,\n });\n\n useEffect(() => {\n if (!options.keepMounted) {\n return undefined;\n }\n\n const referenceElement = floating.refs.reference.current;\n const floatingElement = floating.refs.floating.current;\n\n if (_opened && referenceElement && floatingElement) {\n return autoUpdate(referenceElement, floatingElement, floating.update);\n }\n\n return undefined;\n }, [\n options.keepMounted,\n _opened,\n floating.update,\n floating.elements.reference,\n floating.elements.floating,\n ]);\n\n const measuredAfterShowRef = useRef(false);\n\n useIsomorphicEffect(() => {\n if (!_opened) {\n measuredAfterShowRef.current = false;\n return;\n }\n\n if (!lockEnabled || lockedPlacement !== null) {\n return;\n }\n\n const flEl = floating.refs.floating.current as HTMLElement | null;\n if (!flEl || flEl.offsetHeight === 0 || flEl.offsetWidth === 0) {\n return;\n }\n\n if (!measuredAfterShowRef.current) {\n measuredAfterShowRef.current = true;\n floating.update();\n return;\n }\n\n if (floating.isPositioned) {\n setLockedPlacement(floating.placement);\n }\n }, [\n lockEnabled,\n _opened,\n floating.isPositioned,\n floating.placement,\n lockedPlacement,\n floating.update,\n ]);\n\n const previousPlacementRef = useRef(floating.placement);\n useIsomorphicEffect(() => {\n if (previousPlacementRef.current !== floating.placement) {\n previousPlacementRef.current = floating.placement;\n options.onPositionChange?.(floating.placement);\n }\n }, [floating.placement]);\n\n useDidUpdate(() => {\n if (_opened !== previouslyOpened.current) {\n if (!_opened) {\n options.onClose?.();\n } else {\n options.onOpen?.();\n }\n }\n\n previouslyOpened.current = _opened;\n }, [_opened, options.onClose, options.onOpen]);\n\n return {\n floating,\n controlled: typeof options.opened === 'boolean',\n opened: _opened,\n onClose,\n onToggle,\n resetLockedPlacement,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalPortal.cjs","names":["factory","useMantineEnv","Portal"],"sources":["../../../src/components/Portal/OptionalPortal.tsx"],"sourcesContent":["import { factory, Factory, useMantineEnv } from '../../core';\nimport { Portal, PortalProps } from './Portal';\n\nexport interface OptionalPortalProps extends PortalProps {\n /**\n * Determines whether children should be rendered inside Portal.\n * When false, children are rendered as regular React children.\n *\n * Note: In test environment, Portal is always disabled regardless of this value.\n *\n * @default true\n */\n withinPortal?: boolean;\n}\n\nexport type OptionalPortalFactory = Factory<{\n props: OptionalPortalProps;\n ref: HTMLDivElement;\n}>;\n\nexport const OptionalPortal = factory<OptionalPortalFactory>(\n ({ withinPortal = true, children, ...others }) => {\n const env = useMantineEnv();\n\n if (env === 'test' || !withinPortal) {\n return <>{children}</>;\n }\n\n return <Portal {...others}>{children}</Portal>;\n }\n);\n\nOptionalPortal.displayName = '@mantine/core/OptionalPortal';\n\nexport namespace OptionalPortal {\n export type Props = OptionalPortalProps;\n}\n"],"mappings":";;;;;;AAoBA,MAAa,iBAAiBA,gBAAAA,SAC3B,EAAE,eAAe,MAAM,UAAU,GAAG,aAAa;CAGhD,IAFYC,wBAAAA,cAEN,MAAM,UAAU,CAAC,cACrB,OAAO,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAG,SAAW,CAAA;CAGvB,OAAO,iBAAA,GAAA,kBAAA,KAACC,eAAAA,QAAD;EAAQ,GAAI;EAAS;CAAiB,CAAA;AAC/C,CACF;AAEA,eAAe,cAAc"}
1
+ {"version":3,"file":"OptionalPortal.cjs","names":["factory","useMantineEnv","Portal"],"sources":["../../../src/components/Portal/OptionalPortal.tsx"],"sourcesContent":["import { factory, Factory, useMantineEnv } from '../../core';\nimport { Portal, PortalProps } from './Portal';\n\nexport interface OptionalPortalProps extends PortalProps {\n /**\n * Determines whether children should be rendered inside Portal.\n * When false, children are rendered as regular React children.\n *\n * Note: In test environment, Portal is always disabled regardless of this value.\n *\n * @default true\n */\n withinPortal?: boolean;\n}\n\nexport type OptionalPortalFactory = Factory<{\n props: OptionalPortalProps;\n ref: HTMLDivElement;\n}>;\n\nexport const OptionalPortal = factory<OptionalPortalFactory>(\n ({ withinPortal = true, children, ...others }) => {\n const env = useMantineEnv();\n\n if (env === 'test' || !withinPortal) {\n return <>{children}</>;\n }\n\n return <Portal {...others}>{children}</Portal>;\n }\n);\n\nOptionalPortal.displayName = '@mantine/core/OptionalPortal';\n\nexport namespace OptionalPortal {\n export type Props = OptionalPortalProps;\n}\n"],"mappings":";;;;;;AAoBA,MAAa,iBAAiBA,gBAAAA,SAC3B,EAAE,eAAe,MAAM,UAAU,GAAG,aAAa;CAGhD,IAFYC,wBAAAA,cAEN,MAAM,UAAU,CAAC,cACrB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAA,kBAAA,UAAA,EAAG,SAAW,CAAA;CAGvB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD;EAAQ,GAAI;EAAS;CAAiB,CAAA;AAC/C,CACF;AAEA,eAAe,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Portal.cjs","names":["factory","useProps"],"sources":["../../../src/components/Portal/Portal.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { assignRef, useIsomorphicEffect } from '@mantine/hooks';\nimport { Factory, factory, useProps } from '../../core';\n\nfunction createPortalNode(props: React.ComponentProps<'div'>) {\n const node = document.createElement('div');\n node.setAttribute('data-portal', 'true');\n typeof props.className === 'string' &&\n node.classList.add(...props.className.split(' ').filter(Boolean));\n typeof props.style === 'object' && Object.assign(node.style, props.style);\n typeof props.id === 'string' && node.setAttribute('id', props.id);\n return node;\n}\n\nexport interface BasePortalProps extends React.ComponentProps<'div'> {\n /**\n * Target element where portal should be rendered. Accepts:\n * - HTMLElement: Renders portal inside this element\n * - string: CSS selector - renders inside first matching element\n * - undefined: Uses shared portal node or creates new one based on `reuseTargetNode`\n *\n * Note: If selector doesn't match any element, portal will not render\n */\n target?: HTMLElement | string;\n\n /**\n * When true and target is not specified, all Portal instances share a single\n * container node appended to document.body. When false, each Portal creates\n * its own container node.\n *\n * Has no effect when target is specified.\n *\n * @default true\n */\n reuseTargetNode?: boolean;\n}\n\nexport interface PortalProps extends BasePortalProps {\n /** Content to render inside the portal */\n children: React.ReactNode;\n}\n\nfunction getTargetNode({ target, reuseTargetNode, ...others }: BasePortalProps): HTMLElement {\n if (target) {\n if (typeof target === 'string') {\n return document.querySelector<HTMLElement>(target) || createPortalNode(others);\n }\n\n return target;\n }\n\n if (reuseTargetNode) {\n const existingNode = document.querySelector<HTMLElement>('[data-mantine-shared-portal-node]');\n\n if (existingNode) {\n return existingNode;\n }\n\n const node = createPortalNode(others);\n node.setAttribute('data-mantine-shared-portal-node', 'true');\n document.body.appendChild(node);\n return node;\n }\n\n return createPortalNode(others);\n}\n\nexport type PortalFactory = Factory<{\n props: PortalProps;\n ref: HTMLDivElement;\n}>;\n\nconst defaultProps = {\n reuseTargetNode: true,\n} satisfies Partial<PortalProps>;\n\nexport const Portal = factory<PortalFactory>((props) => {\n const { children, target, reuseTargetNode, ref, ...others } = useProps(\n 'Portal',\n defaultProps,\n props\n );\n\n const [mounted, setMounted] = useState(false);\n const nodeRef = useRef<HTMLElement | null>(null);\n\n useIsomorphicEffect(() => {\n setMounted(true);\n nodeRef.current = getTargetNode({ target, reuseTargetNode, ...others });\n assignRef(ref, nodeRef.current);\n\n if (!target && !reuseTargetNode && nodeRef.current) {\n document.body.appendChild(nodeRef.current);\n }\n\n return () => {\n if (!target && !reuseTargetNode && nodeRef.current) {\n document.body.removeChild(nodeRef.current);\n }\n };\n }, [target]);\n\n if (!mounted || !nodeRef.current) {\n return null;\n }\n\n return createPortal(<>{children}</>, nodeRef.current);\n});\n\nPortal.displayName = '@mantine/core/Portal';\n\nexport namespace Portal {\n export type Props = PortalProps;\n}\n"],"mappings":";;;;;;;;AAKA,SAAS,iBAAiB,OAAoC;CAC5D,MAAM,OAAO,SAAS,cAAc,KAAK;CACzC,KAAK,aAAa,eAAe,MAAM;CACvC,OAAO,MAAM,cAAc,YACzB,KAAK,UAAU,IAAI,GAAG,MAAM,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC;CAClE,OAAO,MAAM,UAAU,YAAY,OAAO,OAAO,KAAK,OAAO,MAAM,KAAK;CACxE,OAAO,MAAM,OAAO,YAAY,KAAK,aAAa,MAAM,MAAM,EAAE;CAChE,OAAO;AACT;AA8BA,SAAS,cAAc,EAAE,QAAQ,iBAAiB,GAAG,UAAwC;CAC3F,IAAI,QAAQ;EACV,IAAI,OAAO,WAAW,UACpB,OAAO,SAAS,cAA2B,MAAM,KAAK,iBAAiB,MAAM;EAG/E,OAAO;CACT;CAEA,IAAI,iBAAiB;EACnB,MAAM,eAAe,SAAS,cAA2B,mCAAmC;EAE5F,IAAI,cACF,OAAO;EAGT,MAAM,OAAO,iBAAiB,MAAM;EACpC,KAAK,aAAa,mCAAmC,MAAM;EAC3D,SAAS,KAAK,YAAY,IAAI;EAC9B,OAAO;CACT;CAEA,OAAO,iBAAiB,MAAM;AAChC;AAOA,MAAM,eAAe,EACnB,iBAAiB,KACnB;AAEA,MAAa,SAASA,gBAAAA,SAAwB,UAAU;CACtD,MAAM,EAAE,UAAU,QAAQ,iBAAiB,KAAK,GAAG,WAAWC,kBAAAA,SAC5D,UACA,cACA,KACF;CAEA,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAuB,KAAK;CAC5C,MAAM,WAAA,GAAA,MAAA,QAAqC,IAAI;CAE/C,CAAA,GAAA,eAAA,2BAA0B;EACxB,WAAW,IAAI;EACf,QAAQ,UAAU,cAAc;GAAE;GAAQ;GAAiB,GAAG;EAAO,CAAC;EACtE,CAAA,GAAA,eAAA,WAAU,KAAK,QAAQ,OAAO;EAE9B,IAAI,CAAC,UAAU,CAAC,mBAAmB,QAAQ,SACzC,SAAS,KAAK,YAAY,QAAQ,OAAO;EAG3C,aAAa;GACX,IAAI,CAAC,UAAU,CAAC,mBAAmB,QAAQ,SACzC,SAAS,KAAK,YAAY,QAAQ,OAAO;EAE7C;CACF,GAAG,CAAC,MAAM,CAAC;CAEX,IAAI,CAAC,WAAW,CAAC,QAAQ,SACvB,OAAO;CAGT,QAAA,GAAA,UAAA,cAAoB,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAG,SAAW,CAAA,GAAG,QAAQ,OAAO;AACtD,CAAC;AAED,OAAO,cAAc"}
1
+ {"version":3,"file":"Portal.cjs","names":["factory","useProps"],"sources":["../../../src/components/Portal/Portal.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { assignRef, useIsomorphicEffect } from '@mantine/hooks';\nimport { Factory, factory, useProps } from '../../core';\n\nfunction createPortalNode(props: React.ComponentProps<'div'>) {\n const node = document.createElement('div');\n node.setAttribute('data-portal', 'true');\n typeof props.className === 'string' &&\n node.classList.add(...props.className.split(' ').filter(Boolean));\n typeof props.style === 'object' && Object.assign(node.style, props.style);\n typeof props.id === 'string' && node.setAttribute('id', props.id);\n return node;\n}\n\nexport interface BasePortalProps extends React.ComponentProps<'div'> {\n /**\n * Target element where portal should be rendered. Accepts:\n * - HTMLElement: Renders portal inside this element\n * - string: CSS selector - renders inside first matching element\n * - undefined: Uses shared portal node or creates new one based on `reuseTargetNode`\n *\n * Note: If selector doesn't match any element, portal will not render\n */\n target?: HTMLElement | string;\n\n /**\n * When true and target is not specified, all Portal instances share a single\n * container node appended to document.body. When false, each Portal creates\n * its own container node.\n *\n * Has no effect when target is specified.\n *\n * @default true\n */\n reuseTargetNode?: boolean;\n}\n\nexport interface PortalProps extends BasePortalProps {\n /** Content to render inside the portal */\n children: React.ReactNode;\n}\n\nfunction getTargetNode({ target, reuseTargetNode, ...others }: BasePortalProps): HTMLElement {\n if (target) {\n if (typeof target === 'string') {\n return document.querySelector<HTMLElement>(target) || createPortalNode(others);\n }\n\n return target;\n }\n\n if (reuseTargetNode) {\n const existingNode = document.querySelector<HTMLElement>('[data-mantine-shared-portal-node]');\n\n if (existingNode) {\n return existingNode;\n }\n\n const node = createPortalNode(others);\n node.setAttribute('data-mantine-shared-portal-node', 'true');\n document.body.appendChild(node);\n return node;\n }\n\n return createPortalNode(others);\n}\n\nexport type PortalFactory = Factory<{\n props: PortalProps;\n ref: HTMLDivElement;\n}>;\n\nconst defaultProps = {\n reuseTargetNode: true,\n} satisfies Partial<PortalProps>;\n\nexport const Portal = factory<PortalFactory>((props) => {\n const { children, target, reuseTargetNode, ref, ...others } = useProps(\n 'Portal',\n defaultProps,\n props\n );\n\n const [mounted, setMounted] = useState(false);\n const nodeRef = useRef<HTMLElement | null>(null);\n\n useIsomorphicEffect(() => {\n setMounted(true);\n nodeRef.current = getTargetNode({ target, reuseTargetNode, ...others });\n assignRef(ref, nodeRef.current);\n\n if (!target && !reuseTargetNode && nodeRef.current) {\n document.body.appendChild(nodeRef.current);\n }\n\n return () => {\n if (!target && !reuseTargetNode && nodeRef.current) {\n document.body.removeChild(nodeRef.current);\n }\n };\n }, [target]);\n\n if (!mounted || !nodeRef.current) {\n return null;\n }\n\n return createPortal(<>{children}</>, nodeRef.current);\n});\n\nPortal.displayName = '@mantine/core/Portal';\n\nexport namespace Portal {\n export type Props = PortalProps;\n}\n"],"mappings":";;;;;;;;AAKA,SAAS,iBAAiB,OAAoC;CAC5D,MAAM,OAAO,SAAS,cAAc,KAAK;CACzC,KAAK,aAAa,eAAe,MAAM;CACvC,OAAO,MAAM,cAAc,YACzB,KAAK,UAAU,IAAI,GAAG,MAAM,UAAU,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC;CAClE,OAAO,MAAM,UAAU,YAAY,OAAO,OAAO,KAAK,OAAO,MAAM,KAAK;CACxE,OAAO,MAAM,OAAO,YAAY,KAAK,aAAa,MAAM,MAAM,EAAE;CAChE,OAAO;AACT;AA8BA,SAAS,cAAc,EAAE,QAAQ,iBAAiB,GAAG,UAAwC;CAC3F,IAAI,QAAQ;EACV,IAAI,OAAO,WAAW,UACpB,OAAO,SAAS,cAA2B,MAAM,KAAK,iBAAiB,MAAM;EAG/E,OAAO;CACT;CAEA,IAAI,iBAAiB;EACnB,MAAM,eAAe,SAAS,cAA2B,mCAAmC;EAE5F,IAAI,cACF,OAAO;EAGT,MAAM,OAAO,iBAAiB,MAAM;EACpC,KAAK,aAAa,mCAAmC,MAAM;EAC3D,SAAS,KAAK,YAAY,IAAI;EAC9B,OAAO;CACT;CAEA,OAAO,iBAAiB,MAAM;AAChC;AAOA,MAAM,eAAe,EACnB,iBAAiB,KACnB;AAEA,MAAa,SAASA,gBAAAA,SAAwB,UAAU;CACtD,MAAM,EAAE,UAAU,QAAQ,iBAAiB,KAAK,GAAG,WAAWC,kBAAAA,SAC5D,UACA,cACA,KACF;CAEA,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,SAAA,CAAuB,KAAK;CAC5C,MAAM,WAAA,GAAA,MAAA,OAAA,CAAqC,IAAI;CAE/C,CAAA,GAAA,eAAA,oBAAA,OAA0B;EACxB,WAAW,IAAI;EACf,QAAQ,UAAU,cAAc;GAAE;GAAQ;GAAiB,GAAG;EAAO,CAAC;EACtE,CAAA,GAAA,eAAA,UAAA,CAAU,KAAK,QAAQ,OAAO;EAE9B,IAAI,CAAC,UAAU,CAAC,mBAAmB,QAAQ,SACzC,SAAS,KAAK,YAAY,QAAQ,OAAO;EAG3C,aAAa;GACX,IAAI,CAAC,UAAU,CAAC,mBAAmB,QAAQ,SACzC,SAAS,KAAK,YAAY,QAAQ,OAAO;EAE7C;CACF,GAAG,CAAC,MAAM,CAAC;CAEX,IAAI,CAAC,WAAW,CAAC,QAAQ,SACvB,OAAO;CAGT,QAAA,GAAA,UAAA,aAAA,CAAoB,iBAAA,GAAA,kBAAA,IAAA,CAAA,kBAAA,UAAA,EAAG,SAAW,CAAA,GAAG,QAAQ,OAAO;AACtD,CAAC;AAED,OAAO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.cjs","names":["factory","useProps","useResolvedStylesApi","ProgressRoot","ProgressSection","classes","ProgressLabel"],"sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import {\n factory,\n Factory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n} from '../../core';\nimport { ProgressLabel, type ProgressLabelProps } from './ProgressLabel/ProgressLabel';\nimport {\n __ProgressRootProps,\n ProgressRoot,\n ProgressRootCssVariables,\n ProgressRootStylesNames,\n type ProgressRootProps,\n} from './ProgressRoot/ProgressRoot';\nimport { ProgressSection, type ProgressSectionProps } from './ProgressSection/ProgressSection';\nimport classes from './Progress.module.css';\nimport type { ProgressContextValue } from './Progress.context';\nexport type ProgressStylesNames = ProgressRootStylesNames;\n\nexport interface ProgressProps extends __ProgressRootProps, StylesApiProps<ProgressFactory> {\n /** Value of the progress */\n value: number;\n\n /** Key of `theme.colors` or any valid CSS value @default theme.primaryColor */\n color?: MantineColor;\n\n /** If set, the section has stripes @default false */\n striped?: boolean;\n\n /** If set, the sections stripes are animated (automatically enables striped) @default false */\n animated?: boolean;\n}\n\nexport type ProgressFactory = Factory<{\n props: ProgressProps;\n ref: HTMLDivElement;\n stylesNames: ProgressStylesNames;\n vars: ProgressRootCssVariables;\n staticComponents: {\n Section: typeof ProgressSection;\n Root: typeof ProgressRoot;\n Label: typeof ProgressLabel;\n };\n}>;\n\nexport const Progress = factory<ProgressFactory>((_props) => {\n const props = useProps('Progress', null, _props);\n const {\n value,\n classNames,\n styles,\n vars,\n color,\n striped,\n animated,\n 'aria-label': label,\n ...others\n } = props;\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<ProgressFactory>({\n classNames,\n styles,\n props,\n });\n\n return (\n <ProgressRoot\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n vars={vars as any}\n {...others}\n >\n <ProgressSection\n value={value}\n color={color}\n striped={striped}\n animated={animated}\n aria-label={label}\n />\n </ProgressRoot>\n );\n});\n\nProgress.classes = classes;\nProgress.displayName = '@mantine/core/Progress';\nProgress.Section = ProgressSection;\nProgress.Root = ProgressRoot;\nProgress.Label = ProgressLabel;\n\nexport namespace Progress {\n export type Props = ProgressProps;\n export type Factory = ProgressFactory;\n export type StylesNames = ProgressStylesNames;\n export type ContextValue = ProgressContextValue;\n\n export namespace Label {\n export type Props = ProgressLabelProps;\n }\n\n export namespace Root {\n export type Props = ProgressRootProps;\n }\n\n export namespace Section {\n export type Props = ProgressSectionProps;\n }\n}\n"],"mappings":";;;;;;;;;;AA+CA,MAAa,WAAWA,gBAAAA,SAA0B,WAAW;CAC3D,MAAM,QAAQC,kBAAAA,SAAS,YAAY,MAAM,MAAM;CAC/C,MAAM,EACJ,OACA,YACA,QACA,MACA,OACA,SACA,UACA,cAAc,OACd,GAAG,WACD;CAEJ,MAAM,EAAE,oBAAoB,mBAAmBC,gCAAAA,qBAAsC;EACnF;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,KAACC,qBAAAA,cAAD;EACE,YAAY;EACZ,QAAQ;EACF;EACN,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,iBAAD;GACS;GACA;GACE;GACC;GACV,cAAY;EACb,CAAA;CACW,CAAA;AAElB,CAAC;AAED,SAAS,UAAUC,wBAAAA;AACnB,SAAS,cAAc;AACvB,SAAS,UAAUD,wBAAAA;AACnB,SAAS,OAAOD,qBAAAA;AAChB,SAAS,QAAQG,sBAAAA"}
1
+ {"version":3,"file":"Progress.cjs","names":["factory","useProps","useResolvedStylesApi","ProgressRoot","ProgressSection","classes","ProgressLabel"],"sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import {\n factory,\n Factory,\n MantineColor,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n} from '../../core';\nimport { ProgressLabel, type ProgressLabelProps } from './ProgressLabel/ProgressLabel';\nimport {\n __ProgressRootProps,\n ProgressRoot,\n ProgressRootCssVariables,\n ProgressRootStylesNames,\n type ProgressRootProps,\n} from './ProgressRoot/ProgressRoot';\nimport { ProgressSection, type ProgressSectionProps } from './ProgressSection/ProgressSection';\nimport classes from './Progress.module.css';\nimport type { ProgressContextValue } from './Progress.context';\nexport type ProgressStylesNames = ProgressRootStylesNames;\n\nexport interface ProgressProps extends __ProgressRootProps, StylesApiProps<ProgressFactory> {\n /** Value of the progress */\n value: number;\n\n /** Key of `theme.colors` or any valid CSS value @default theme.primaryColor */\n color?: MantineColor;\n\n /** If set, the section has stripes @default false */\n striped?: boolean;\n\n /** If set, the sections stripes are animated (automatically enables striped) @default false */\n animated?: boolean;\n}\n\nexport type ProgressFactory = Factory<{\n props: ProgressProps;\n ref: HTMLDivElement;\n stylesNames: ProgressStylesNames;\n vars: ProgressRootCssVariables;\n staticComponents: {\n Section: typeof ProgressSection;\n Root: typeof ProgressRoot;\n Label: typeof ProgressLabel;\n };\n}>;\n\nexport const Progress = factory<ProgressFactory>((_props) => {\n const props = useProps('Progress', null, _props);\n const {\n value,\n classNames,\n styles,\n vars,\n color,\n striped,\n animated,\n 'aria-label': label,\n ...others\n } = props;\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<ProgressFactory>({\n classNames,\n styles,\n props,\n });\n\n return (\n <ProgressRoot\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n vars={vars as any}\n {...others}\n >\n <ProgressSection\n value={value}\n color={color}\n striped={striped}\n animated={animated}\n aria-label={label}\n />\n </ProgressRoot>\n );\n});\n\nProgress.classes = classes;\nProgress.displayName = '@mantine/core/Progress';\nProgress.Section = ProgressSection;\nProgress.Root = ProgressRoot;\nProgress.Label = ProgressLabel;\n\nexport namespace Progress {\n export type Props = ProgressProps;\n export type Factory = ProgressFactory;\n export type StylesNames = ProgressStylesNames;\n export type ContextValue = ProgressContextValue;\n\n export namespace Label {\n export type Props = ProgressLabelProps;\n }\n\n export namespace Root {\n export type Props = ProgressRootProps;\n }\n\n export namespace Section {\n export type Props = ProgressSectionProps;\n }\n}\n"],"mappings":";;;;;;;;;;AA+CA,MAAa,WAAWA,gBAAAA,SAA0B,WAAW;CAC3D,MAAM,QAAQC,kBAAAA,SAAS,YAAY,MAAM,MAAM;CAC/C,MAAM,EACJ,OACA,YACA,QACA,MACA,OACA,SACA,UACA,cAAc,OACd,GAAG,WACD;CAEJ,MAAM,EAAE,oBAAoB,mBAAmBC,gCAAAA,qBAAsC;EACnF;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,cAAD;EACE,YAAY;EACZ,QAAQ;EACF;EACN,GAAI;YAEJ,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,iBAAD;GACS;GACA;GACE;GACC;GACV,cAAY;EACb,CAAA;CACW,CAAA;AAElB,CAAC;AAED,SAAS,UAAUC,wBAAAA;AACnB,SAAS,cAAc;AACvB,SAAS,UAAUD,wBAAAA;AACnB,SAAS,OAAOD,qBAAAA;AAChB,SAAS,QAAQG,sBAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.context.cjs","names":["createSafeContext"],"sources":["../../../src/components/Progress/Progress.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { ProgressRootFactory } from './ProgressRoot/ProgressRoot';\n\nexport interface ProgressContextValue {\n getStyles: GetStylesApi<ProgressRootFactory>;\n autoContrast: boolean | undefined;\n}\n\nexport const [ProgressProvider, useProgressContext] = createSafeContext<ProgressContextValue>(\n 'Progress.Root component was not found in tree'\n);\n"],"mappings":";;AAQA,MAAa,CAAC,kBAAkB,4FAAsBA,EAAAA,kBACpD,+CACF"}
1
+ {"version":3,"file":"Progress.context.cjs","names":["createSafeContext"],"sources":["../../../src/components/Progress/Progress.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { ProgressRootFactory } from './ProgressRoot/ProgressRoot';\n\nexport interface ProgressContextValue {\n getStyles: GetStylesApi<ProgressRootFactory>;\n autoContrast: boolean | undefined;\n}\n\nexport const [ProgressProvider, useProgressContext] = createSafeContext<ProgressContextValue>(\n 'Progress.Root component was not found in tree'\n);\n"],"mappings":";;AAQA,MAAa,CAAC,kBAAkB,4FAAsBA,CAAAA,CAAAA,kBACpD,+CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressLabel.cjs","names":["factory","useProps","Box","useProgressContext","classes"],"sources":["../../../../src/components/Progress/ProgressLabel/ProgressLabel.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useProgressContext } from '../Progress.context';\nimport classes from '../Progress.module.css';\n\nexport type ProgressLabelStylesNames = 'label';\n\nexport interface ProgressLabelProps\n extends BoxProps, CompoundStylesApiProps<ProgressLabelFactory>, ElementProps<'div'> {}\n\nexport type ProgressLabelFactory = Factory<{\n props: ProgressLabelProps;\n ref: HTMLDivElement;\n stylesNames: ProgressLabelStylesNames;\n compound: true;\n}>;\n\nexport const ProgressLabel = factory<ProgressLabelFactory>((props) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'ProgressLabel',\n null,\n props\n );\n\n const ctx = useProgressContext();\n\n return <Box {...ctx.getStyles('label', { className, style, classNames, styles })} {...others} />;\n});\n\nProgressLabel.classes = classes;\nProgressLabel.displayName = '@mantine/core/ProgressLabel';\n"],"mappings":";;;;;;;;AAwBA,MAAa,gBAAgBA,gBAAAA,SAA+B,UAAU;CACpE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,GAAG,WAAWC,kBAAAA,SAChE,iBACA,MACA,KACF;CAIA,OAAO,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EAAK,GAFAC,yBAAAA,mBAEM,EAAE,UAAU,SAAS;GAAE;GAAW;GAAO;GAAY;EAAO,CAAC;EAAG,GAAI;CAAS,CAAA;AACjG,CAAC;AAED,cAAc,UAAUC,wBAAAA;AACxB,cAAc,cAAc"}
1
+ {"version":3,"file":"ProgressLabel.cjs","names":["factory","useProps","Box","useProgressContext","classes"],"sources":["../../../../src/components/Progress/ProgressLabel/ProgressLabel.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useProgressContext } from '../Progress.context';\nimport classes from '../Progress.module.css';\n\nexport type ProgressLabelStylesNames = 'label';\n\nexport interface ProgressLabelProps\n extends BoxProps, CompoundStylesApiProps<ProgressLabelFactory>, ElementProps<'div'> {}\n\nexport type ProgressLabelFactory = Factory<{\n props: ProgressLabelProps;\n ref: HTMLDivElement;\n stylesNames: ProgressLabelStylesNames;\n compound: true;\n}>;\n\nexport const ProgressLabel = factory<ProgressLabelFactory>((props) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'ProgressLabel',\n null,\n props\n );\n\n const ctx = useProgressContext();\n\n return <Box {...ctx.getStyles('label', { className, style, classNames, styles })} {...others} />;\n});\n\nProgressLabel.classes = classes;\nProgressLabel.displayName = '@mantine/core/ProgressLabel';\n"],"mappings":";;;;;;;;AAwBA,MAAa,gBAAgBA,gBAAAA,SAA+B,UAAU;CACpE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,GAAG,WAAWC,kBAAAA,SAChE,iBACA,MACA,KACF;CAIA,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EAAK,GAFAC,yBAAAA,mBAEM,CAAC,CAAC,UAAU,SAAS;GAAE;GAAW;GAAO;GAAY;EAAO,CAAC;EAAG,GAAI;CAAS,CAAA;AACjG,CAAC;AAED,cAAc,UAAUC,wBAAAA;AACxB,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressRoot.cjs","names":["createVarsResolver","getSize","getRadius","factory","useProps","useStyles","ProgressProvider","Box","classes"],"sources":["../../../../src/components/Progress/ProgressRoot/ProgressRoot.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getRadius,\n getSize,\n MantineRadius,\n MantineSize,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { ProgressProvider } from '../Progress.context';\nimport classes from '../Progress.module.css';\n\nexport type ProgressRootStylesNames = 'root' | 'section' | 'label';\nexport type ProgressRootCssVariables = {\n root: '--progress-size' | '--progress-radius' | '--progress-transition-duration';\n};\n\nexport interface __ProgressRootProps extends BoxProps, ElementProps<'div'> {\n /** Controls track height @default 'md' */\n size?: MantineSize | (string & {}) | number;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** If set, adjusts label text color based on section background color for readability */\n autoContrast?: boolean;\n\n /** Controls sections width transition duration, value is specified in ms @default 100 */\n transitionDuration?: number;\n\n /** Controls orientation @default 'horizontal' */\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport interface ProgressRootProps\n extends __ProgressRootProps, StylesApiProps<ProgressRootFactory> {}\n\nexport type ProgressRootFactory = Factory<{\n props: ProgressRootProps;\n ref: HTMLDivElement;\n stylesNames: ProgressRootStylesNames;\n vars: ProgressRootCssVariables;\n}>;\n\nconst varsResolver = createVarsResolver<ProgressRootFactory>(\n (_, { size, radius, transitionDuration }) => ({\n root: {\n '--progress-size': getSize(size, 'progress-size'),\n '--progress-radius': radius === undefined ? undefined : getRadius(radius),\n '--progress-transition-duration':\n typeof transitionDuration === 'number' ? `${transitionDuration}ms` : undefined,\n },\n })\n);\n\nexport const ProgressRoot = factory<ProgressRootFactory>((_props) => {\n const props = useProps('ProgressRoot', null, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n autoContrast,\n transitionDuration,\n orientation,\n attributes,\n mod,\n ...others\n } = props;\n\n const getStyles = useStyles<ProgressRootFactory>({\n name: 'Progress',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n return (\n <ProgressProvider value={{ getStyles, autoContrast }}>\n <Box mod={[{ orientation }, mod]} {...getStyles('root')} {...others} />\n </ProgressProvider>\n );\n});\n\nProgressRoot.classes = classes;\nProgressRoot.varsResolver = varsResolver;\nProgressRoot.displayName = '@mantine/core/ProgressRoot';\n"],"mappings":";;;;;;;;;;;AAkDA,MAAM,eAAeA,6BAAAA,oBAClB,GAAG,EAAE,MAAM,QAAQ,0BAA0B,EAC5C,MAAM;CACJ,mBAAmBC,iBAAAA,QAAQ,MAAM,eAAe;CAChD,qBAAqB,WAAW,KAAA,IAAY,KAAA,IAAYC,iBAAAA,UAAU,MAAM;CACxE,kCACE,OAAO,uBAAuB,WAAW,GAAG,mBAAmB,MAAM,KAAA;AACzE,EACF,EACF;AAEA,MAAa,eAAeC,gBAAAA,SAA8B,WAAW;CACnE,MAAM,QAAQC,kBAAAA,SAAS,gBAAgB,MAAM,MAAM;CACnD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,cACA,oBACA,aACA,YACA,KACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAA+B;EAC/C,MAAM;EACN,SAAA,wBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,kBAAD;EAAkB,OAAO;GAAE;GAAW;EAAa;YACjD,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;GAAK,KAAK,CAAC,EAAE,YAAY,GAAG,GAAG;GAAG,GAAI,UAAU,MAAM;GAAG,GAAI;EAAS,CAAA;CACtD,CAAA;AAEtB,CAAC;AAED,aAAa,UAAUC,wBAAAA;AACvB,aAAa,eAAe;AAC5B,aAAa,cAAc"}
1
+ {"version":3,"file":"ProgressRoot.cjs","names":["createVarsResolver","getSize","getRadius","factory","useProps","useStyles","ProgressProvider","Box","classes"],"sources":["../../../../src/components/Progress/ProgressRoot/ProgressRoot.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getRadius,\n getSize,\n MantineRadius,\n MantineSize,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { ProgressProvider } from '../Progress.context';\nimport classes from '../Progress.module.css';\n\nexport type ProgressRootStylesNames = 'root' | 'section' | 'label';\nexport type ProgressRootCssVariables = {\n root: '--progress-size' | '--progress-radius' | '--progress-transition-duration';\n};\n\nexport interface __ProgressRootProps extends BoxProps, ElementProps<'div'> {\n /** Controls track height @default 'md' */\n size?: MantineSize | (string & {}) | number;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** If set, adjusts label text color based on section background color for readability */\n autoContrast?: boolean;\n\n /** Controls sections width transition duration, value is specified in ms @default 100 */\n transitionDuration?: number;\n\n /** Controls orientation @default 'horizontal' */\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport interface ProgressRootProps\n extends __ProgressRootProps, StylesApiProps<ProgressRootFactory> {}\n\nexport type ProgressRootFactory = Factory<{\n props: ProgressRootProps;\n ref: HTMLDivElement;\n stylesNames: ProgressRootStylesNames;\n vars: ProgressRootCssVariables;\n}>;\n\nconst varsResolver = createVarsResolver<ProgressRootFactory>(\n (_, { size, radius, transitionDuration }) => ({\n root: {\n '--progress-size': getSize(size, 'progress-size'),\n '--progress-radius': radius === undefined ? undefined : getRadius(radius),\n '--progress-transition-duration':\n typeof transitionDuration === 'number' ? `${transitionDuration}ms` : undefined,\n },\n })\n);\n\nexport const ProgressRoot = factory<ProgressRootFactory>((_props) => {\n const props = useProps('ProgressRoot', null, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n autoContrast,\n transitionDuration,\n orientation,\n attributes,\n mod,\n ...others\n } = props;\n\n const getStyles = useStyles<ProgressRootFactory>({\n name: 'Progress',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n return (\n <ProgressProvider value={{ getStyles, autoContrast }}>\n <Box mod={[{ orientation }, mod]} {...getStyles('root')} {...others} />\n </ProgressProvider>\n );\n});\n\nProgressRoot.classes = classes;\nProgressRoot.varsResolver = varsResolver;\nProgressRoot.displayName = '@mantine/core/ProgressRoot';\n"],"mappings":";;;;;;;;;;;AAkDA,MAAM,eAAeA,6BAAAA,oBAClB,GAAG,EAAE,MAAM,QAAQ,0BAA0B,EAC5C,MAAM;CACJ,mBAAmBC,iBAAAA,QAAQ,MAAM,eAAe;CAChD,qBAAqB,WAAW,KAAA,IAAY,KAAA,IAAYC,iBAAAA,UAAU,MAAM;CACxE,kCACE,OAAO,uBAAuB,WAAW,GAAG,mBAAmB,MAAM,KAAA;AACzE,EACF,EACF;AAEA,MAAa,eAAeC,gBAAAA,SAA8B,WAAW;CACnE,MAAM,QAAQC,kBAAAA,SAAS,gBAAgB,MAAM,MAAM;CACnD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,cACA,oBACA,aACA,YACA,KACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAA+B;EAC/C,MAAM;EACN,SAAA,wBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,kBAAD;EAAkB,OAAO;GAAE;GAAW;EAAa;YACjD,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;GAAK,KAAK,CAAC,EAAE,YAAY,GAAG,GAAG;GAAG,GAAI,UAAU,MAAM;GAAG,GAAI;EAAS,CAAA;CACtD,CAAA;AAEtB,CAAC;AAED,aAAa,UAAUC,wBAAAA;AACvB,aAAa,eAAe;AAC5B,aAAa,cAAc"}