@mantine/core 9.5.2 → 9.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (874) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +1 -1
  2. package/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/cjs/components/Accordion/AccordionChevron.cjs.map +1 -1
  4. package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs.map +1 -1
  5. package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs.map +1 -1
  6. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
  7. package/cjs/components/ActionBar/ActionBar.cjs +94 -0
  8. package/cjs/components/ActionBar/ActionBar.cjs.map +1 -0
  9. package/cjs/components/ActionBar/ActionBar.context.cjs +8 -0
  10. package/cjs/components/ActionBar/ActionBar.context.cjs.map +1 -0
  11. package/cjs/components/ActionBar/ActionBar.module.cjs +10 -0
  12. package/cjs/components/ActionBar/ActionBar.module.cjs.map +1 -0
  13. package/cjs/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.cjs +33 -0
  14. package/cjs/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.cjs.map +1 -0
  15. package/cjs/components/ActionBar/ActionBarDivider/ActionBarDivider.cjs +30 -0
  16. package/cjs/components/ActionBar/ActionBarDivider/ActionBarDivider.cjs.map +1 -0
  17. package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
  18. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs +16 -15
  19. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs.map +1 -1
  20. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs +15 -14
  21. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs.map +1 -1
  22. package/cjs/components/Affix/Affix.cjs.map +1 -1
  23. package/cjs/components/Alert/Alert.cjs.map +1 -1
  24. package/cjs/components/Anchor/Anchor.cjs.map +1 -1
  25. package/cjs/components/AngleSlider/AngleSlider.cjs +5 -4
  26. package/cjs/components/AngleSlider/AngleSlider.cjs.map +1 -1
  27. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  28. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
  29. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
  30. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
  31. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs +2 -1
  32. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs.map +1 -1
  33. package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
  34. package/cjs/components/AspectRatio/AspectRatio.cjs +14 -13
  35. package/cjs/components/AspectRatio/AspectRatio.cjs.map +1 -1
  36. package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  37. package/cjs/components/Avatar/Avatar.cjs.map +1 -1
  38. package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs.map +1 -1
  39. package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs.map +1 -1
  40. package/cjs/components/BackgroundImage/BackgroundImage.cjs +14 -13
  41. package/cjs/components/BackgroundImage/BackgroundImage.cjs.map +1 -1
  42. package/cjs/components/Badge/Badge.cjs.map +1 -1
  43. package/cjs/components/Blockquote/Blockquote.cjs +6 -5
  44. package/cjs/components/Blockquote/Blockquote.cjs.map +1 -1
  45. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
  46. package/cjs/components/Burger/Burger.cjs.map +1 -1
  47. package/cjs/components/Button/Button.cjs.map +1 -1
  48. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs +16 -15
  49. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
  50. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs +15 -14
  51. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
  52. package/cjs/components/Card/Card.cjs.map +1 -1
  53. package/cjs/components/Cascader/Cascader.cjs +5 -4
  54. package/cjs/components/Cascader/Cascader.cjs.map +1 -1
  55. package/cjs/components/Cascader/CascaderColumns.cjs +2 -1
  56. package/cjs/components/Cascader/CascaderColumns.cjs.map +1 -1
  57. package/cjs/components/Cascader/get-cascader-columns.cjs.map +1 -1
  58. package/cjs/components/Cascader/use-cascader-safe-area.cjs.map +1 -1
  59. package/cjs/components/Cascader/use-cascader.cjs.map +1 -1
  60. package/cjs/components/Checkbox/CheckIcon.cjs +6 -5
  61. package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
  62. package/cjs/components/Checkbox/Checkbox.cjs +1 -1
  63. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  64. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs +2 -1
  65. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
  66. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
  67. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  68. package/cjs/components/Chip/Chip.cjs.map +1 -1
  69. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
  70. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  71. package/cjs/components/CloseButton/CloseIcon.cjs.map +1 -1
  72. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  73. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  74. package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
  75. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  76. package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
  77. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs +4 -6
  78. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  79. package/cjs/components/ColorPicker/Saturation/Saturation.cjs +4 -6
  80. package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
  81. package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
  82. package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
  83. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  84. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
  85. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs +2 -1
  86. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
  87. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs +10 -9
  88. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
  89. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs +2 -1
  90. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
  91. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
  92. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs +2 -1
  93. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
  94. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
  95. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
  96. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  97. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs +10 -9
  98. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
  99. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  100. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.cjs.map +1 -1
  101. package/cjs/components/Combobox/use-combobox/get-index/get-index.cjs.map +1 -1
  102. package/cjs/components/Combobox/use-combobox/get-index/get-virtualized-index.cjs.map +1 -1
  103. package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
  104. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  105. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  106. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -1
  107. package/cjs/components/ComboboxPopover/ComboboxPopover.cjs.map +1 -1
  108. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs +13 -12
  109. package/cjs/components/ComboboxPopover/ComboboxPopoverTarget.cjs.map +1 -1
  110. package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
  111. package/cjs/components/DataList/DataList.cjs.map +1 -1
  112. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  113. package/cjs/components/Divider/Divider.cjs.map +1 -1
  114. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  115. package/cjs/components/Drawer/DrawerBody.cjs +2 -1
  116. package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
  117. package/cjs/components/Drawer/DrawerCloseButton.cjs +2 -1
  118. package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
  119. package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
  120. package/cjs/components/Drawer/DrawerHeader.cjs +2 -1
  121. package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -1
  122. package/cjs/components/Drawer/DrawerOverlay.cjs +2 -1
  123. package/cjs/components/Drawer/DrawerOverlay.cjs.map +1 -1
  124. package/cjs/components/Drawer/DrawerRoot.cjs.map +1 -1
  125. package/cjs/components/Drawer/DrawerStack.cjs.map +1 -1
  126. package/cjs/components/Drawer/DrawerTitle.cjs +2 -1
  127. package/cjs/components/Drawer/DrawerTitle.cjs.map +1 -1
  128. package/cjs/components/EmptyState/EmptyState.cjs.map +1 -1
  129. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs +2 -1
  130. package/cjs/components/EmptyState/EmptyStateActions/EmptyStateActions.cjs.map +1 -1
  131. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs +2 -1
  132. package/cjs/components/EmptyState/EmptyStateDescription/EmptyStateDescription.cjs.map +1 -1
  133. package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
  134. package/cjs/components/FileButton/FileButton.cjs.map +1 -1
  135. package/cjs/components/FileInput/FileInput.cjs.map +1 -1
  136. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  137. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
  138. package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
  139. package/cjs/components/FloatingWindow/FloatingWindowResizeHandle.cjs.map +1 -1
  140. package/cjs/components/FocusTrap/FocusTrap.cjs +2 -1
  141. package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
  142. package/cjs/components/Grid/Grid.cjs.map +1 -1
  143. package/cjs/components/Grid/GridCol/GridCol.cjs.map +1 -1
  144. package/cjs/components/Group/Group.cjs +16 -14
  145. package/cjs/components/Group/Group.cjs.map +1 -1
  146. package/cjs/components/Highlight/Highlight.cjs.map +1 -1
  147. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  148. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  149. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
  150. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  151. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  152. package/cjs/components/Image/Image.cjs.map +1 -1
  153. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  154. package/cjs/components/Input/Input.cjs +3 -3
  155. package/cjs/components/Input/Input.cjs.map +1 -1
  156. package/cjs/components/Input/Input.context.cjs.map +1 -1
  157. package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
  158. package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
  159. package/cjs/components/Input/InputDescription/InputDescription.cjs +2 -1
  160. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
  161. package/cjs/components/Input/InputError/InputError.cjs +2 -1
  162. package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
  163. package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
  164. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs +13 -12
  165. package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs.map +1 -1
  166. package/cjs/components/Input/InputSuccess/InputSuccess.cjs +2 -1
  167. package/cjs/components/Input/InputSuccess/InputSuccess.cjs.map +1 -1
  168. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  169. package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
  170. package/cjs/components/InputBase/InputBase.cjs.map +1 -1
  171. package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
  172. package/cjs/components/Kbd/Kbd.cjs +14 -13
  173. package/cjs/components/Kbd/Kbd.cjs.map +1 -1
  174. package/cjs/components/List/List.cjs.map +1 -1
  175. package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
  176. package/cjs/components/Loader/loaders/Bars.cjs.map +1 -1
  177. package/cjs/components/Loader/loaders/Dots.cjs.map +1 -1
  178. package/cjs/components/Loader/loaders/Oval.cjs.map +1 -1
  179. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  180. package/cjs/components/Mark/Mark.cjs +14 -13
  181. package/cjs/components/Mark/Mark.cjs.map +1 -1
  182. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  183. package/cjs/components/MaskInput/MaskInput.cjs +3 -2
  184. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
  185. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
  186. package/cjs/components/Menu/Menu.cjs.map +1 -1
  187. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs +4 -3
  188. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs.map +1 -1
  189. package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs.map +1 -1
  190. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs +2 -1
  191. package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs.map +1 -1
  192. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs +3 -2
  193. package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs.map +1 -1
  194. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs +2 -1
  195. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
  196. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
  197. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  198. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs +2 -1
  199. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
  200. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs.map +1 -1
  201. package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs.map +1 -1
  202. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs +2 -1
  203. package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs.map +1 -1
  204. package/cjs/components/Menu/MenuSearch/MenuSearch.cjs.map +1 -1
  205. package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs.map +1 -1
  206. package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
  207. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
  208. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  209. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  210. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
  211. package/cjs/components/Menu/use-menu-type-ahead.cjs.map +1 -1
  212. package/cjs/components/Menubar/Menubar.cjs.map +1 -1
  213. package/cjs/components/Menubar/MenubarMenu/MenubarMenu.cjs.map +1 -1
  214. package/cjs/components/Menubar/MenubarTarget/MenubarTarget.cjs.map +1 -1
  215. package/cjs/components/Modal/Modal.cjs.map +1 -1
  216. package/cjs/components/Modal/ModalBody.cjs +2 -1
  217. package/cjs/components/Modal/ModalBody.cjs.map +1 -1
  218. package/cjs/components/Modal/ModalCloseButton.cjs +2 -1
  219. package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
  220. package/cjs/components/Modal/ModalContent.cjs.map +1 -1
  221. package/cjs/components/Modal/ModalHeader.cjs +2 -1
  222. package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
  223. package/cjs/components/Modal/ModalOverlay.cjs +2 -1
  224. package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
  225. package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
  226. package/cjs/components/Modal/ModalStack.cjs.map +1 -1
  227. package/cjs/components/Modal/ModalTitle.cjs +2 -1
  228. package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
  229. package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
  230. package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
  231. package/cjs/components/ModalBase/ModalBaseBody.cjs.map +1 -1
  232. package/cjs/components/ModalBase/ModalBaseCloseButton.cjs.map +1 -1
  233. package/cjs/components/ModalBase/ModalBaseContent.cjs.map +1 -1
  234. package/cjs/components/ModalBase/ModalBaseHeader.cjs.map +1 -1
  235. package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
  236. package/cjs/components/ModalBase/ModalBaseTitle.cjs.map +1 -1
  237. package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
  238. package/cjs/components/ModalBase/use-modal.cjs +2 -1
  239. package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
  240. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  241. package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
  242. package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
  243. package/cjs/components/NavLink/NavLink.cjs.map +1 -1
  244. package/cjs/components/Notification/Notification.cjs +3 -3
  245. package/cjs/components/Notification/Notification.cjs.map +1 -1
  246. package/cjs/components/NumberInput/NumberInput.cjs +5 -3
  247. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  248. package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
  249. package/cjs/components/OverflowList/OverflowList.cjs +4 -2
  250. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  251. package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
  252. package/cjs/components/Overlay/Overlay.cjs +14 -13
  253. package/cjs/components/Overlay/Overlay.cjs.map +1 -1
  254. package/cjs/components/Pagination/Pagination.cjs +2 -1
  255. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  256. package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
  257. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs +2 -1
  258. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
  259. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
  260. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs +3 -2
  261. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
  262. package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +1 -1
  263. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
  264. package/cjs/components/Paper/Paper.cjs +1 -1
  265. package/cjs/components/Paper/Paper.cjs.map +1 -1
  266. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  267. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
  268. package/cjs/components/Pill/Pill.cjs.map +1 -1
  269. package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
  270. package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
  271. package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
  272. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
  273. package/cjs/components/PinInput/PinInput.cjs +6 -5
  274. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  275. package/cjs/components/Popover/Popover.cjs.map +1 -1
  276. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs +3 -2
  277. package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs.map +1 -1
  278. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
  279. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
  280. package/cjs/components/Popover/use-popover.cjs +16 -12
  281. package/cjs/components/Popover/use-popover.cjs.map +1 -1
  282. package/cjs/components/Portal/Portal.cjs.map +1 -1
  283. package/cjs/components/Progress/Progress.cjs.map +1 -1
  284. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs +2 -1
  285. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
  286. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
  287. package/cjs/components/Radio/Radio.cjs.map +1 -1
  288. package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
  289. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
  290. package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
  291. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  292. package/cjs/components/Rating/Rating.cjs +6 -3
  293. package/cjs/components/Rating/Rating.cjs.map +1 -1
  294. package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
  295. package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
  296. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs +2 -1
  297. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
  298. package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
  299. package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
  300. package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -1
  301. package/cjs/components/RollingNumber/RollingNumber.cjs +12 -10
  302. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -1
  303. package/cjs/components/ScrollArea/ScrollArea.cjs +8 -6
  304. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  305. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
  306. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
  307. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
  308. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
  309. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
  310. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
  311. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  312. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
  313. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
  314. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
  315. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
  316. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  317. package/cjs/components/Scroller/Scroller.cjs.map +1 -1
  318. package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
  319. package/cjs/components/Select/Select.cjs.map +1 -1
  320. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
  321. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  322. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs +10 -8
  323. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
  324. package/cjs/components/Skeleton/Skeleton.cjs +14 -13
  325. package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  326. package/cjs/components/Slider/Marks/Marks.cjs +3 -2
  327. package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
  328. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs +20 -11
  329. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  330. package/cjs/components/Slider/Slider/Slider.cjs +6 -6
  331. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  332. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  333. package/cjs/components/Slider/Track/Track.cjs.map +1 -1
  334. package/cjs/components/Splitter/GripIcon.cjs.map +1 -1
  335. package/cjs/components/Splitter/Splitter.cjs +8 -7
  336. package/cjs/components/Splitter/Splitter.cjs.map +1 -1
  337. package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
  338. package/cjs/components/Stack/Stack.cjs +14 -13
  339. package/cjs/components/Stack/Stack.cjs.map +1 -1
  340. package/cjs/components/Stepper/Stepper.cjs +6 -3
  341. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  342. package/cjs/components/Stepper/Stepper.context.cjs.map +1 -1
  343. package/cjs/components/Stepper/Stepper.module.cjs.map +1 -1
  344. package/cjs/components/Stepper/StepperStep/StepperStep.cjs +3 -2
  345. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  346. package/cjs/components/Switch/Switch.cjs.map +1 -1
  347. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
  348. package/cjs/components/Table/Table.cjs +2 -2
  349. package/cjs/components/Table/Table.cjs.map +1 -1
  350. package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
  351. package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
  352. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  353. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  354. package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
  355. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  356. package/cjs/components/Text/Text.cjs +18 -17
  357. package/cjs/components/Text/Text.cjs.map +1 -1
  358. package/cjs/components/TextInput/TextInput.cjs +6 -5
  359. package/cjs/components/TextInput/TextInput.cjs.map +1 -1
  360. package/cjs/components/Textarea/Autosize.cjs.map +1 -1
  361. package/cjs/components/ThemeIcon/ThemeIcon.cjs +14 -13
  362. package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
  363. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  364. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  365. package/cjs/components/Title/Title.cjs +1 -1
  366. package/cjs/components/Title/Title.cjs.map +1 -1
  367. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  368. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  369. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
  370. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
  371. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  372. package/cjs/components/Transition/Transition.cjs.map +1 -1
  373. package/cjs/components/Transition/use-transition.cjs.map +1 -1
  374. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
  375. package/cjs/components/Tree/Tree.cjs +2 -1
  376. package/cjs/components/Tree/Tree.cjs.map +1 -1
  377. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  378. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
  379. package/cjs/components/Tree/use-tree.cjs.map +1 -1
  380. package/cjs/components/TreeSelect/TreeSelect.cjs +11 -9
  381. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
  382. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -1
  383. package/cjs/components/Typography/Typography.cjs +12 -11
  384. package/cjs/components/Typography/Typography.cjs.map +1 -1
  385. package/cjs/components/Typography/Typography.module.cjs.map +1 -1
  386. package/cjs/components/UnstyledButton/UnstyledButton.cjs +12 -11
  387. package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
  388. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs +12 -11
  389. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  390. package/cjs/core/Box/Box.cjs.map +1 -1
  391. package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
  392. package/cjs/core/DirectionProvider/DirectionProvider.cjs +3 -2
  393. package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
  394. package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
  395. package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
  396. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs +4 -2
  397. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
  398. package/cjs/core/MantineProvider/MantineProvider.cjs +3 -3
  399. package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
  400. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
  401. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs.map +1 -1
  402. package/cjs/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.cjs.map +1 -1
  403. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
  404. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs +2 -1
  405. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
  406. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
  407. package/cjs/core/MantineProvider/use-matches/use-matches.cjs.map +1 -1
  408. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs.map +1 -1
  409. package/cjs/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.cjs.map +1 -1
  410. package/cjs/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.cjs.map +1 -1
  411. package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
  412. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs +0 -1
  413. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs.map +1 -1
  414. package/cjs/core/utils/deep-merge/deep-merge.cjs +4 -3
  415. package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -1
  416. package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
  417. package/cjs/index.cjs +6 -0
  418. package/cjs/utils/Floating/use-context-menu-handlers.cjs.map +1 -1
  419. package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
  420. package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
  421. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
  422. package/esm/components/Accordion/Accordion.mjs.map +1 -1
  423. package/esm/components/Accordion/AccordionChevron.mjs.map +1 -1
  424. package/esm/components/Accordion/AccordionControl/AccordionControl.mjs.map +1 -1
  425. package/esm/components/Accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  426. package/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs.map +1 -1
  427. package/esm/components/ActionBar/ActionBar.context.mjs +8 -0
  428. package/esm/components/ActionBar/ActionBar.context.mjs.map +1 -0
  429. package/esm/components/ActionBar/ActionBar.mjs +94 -0
  430. package/esm/components/ActionBar/ActionBar.mjs.map +1 -0
  431. package/esm/components/ActionBar/ActionBar.module.mjs +10 -0
  432. package/esm/components/ActionBar/ActionBar.module.mjs.map +1 -0
  433. package/esm/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.mjs +33 -0
  434. package/esm/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.mjs.map +1 -0
  435. package/esm/components/ActionBar/ActionBarDivider/ActionBarDivider.mjs +30 -0
  436. package/esm/components/ActionBar/ActionBarDivider/ActionBarDivider.mjs.map +1 -0
  437. package/esm/components/ActionIcon/ActionIcon.mjs.map +1 -1
  438. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs +16 -15
  439. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  440. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs +15 -14
  441. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs.map +1 -1
  442. package/esm/components/Affix/Affix.mjs.map +1 -1
  443. package/esm/components/Alert/Alert.mjs.map +1 -1
  444. package/esm/components/AngleSlider/AngleSlider.mjs +5 -4
  445. package/esm/components/AngleSlider/AngleSlider.mjs.map +1 -1
  446. package/esm/components/AppShell/AppShell.mjs.map +1 -1
  447. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs +2 -1
  448. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs.map +1 -1
  449. package/esm/components/AspectRatio/AspectRatio.mjs +14 -13
  450. package/esm/components/AspectRatio/AspectRatio.mjs.map +1 -1
  451. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  452. package/esm/components/Avatar/Avatar.mjs.map +1 -1
  453. package/esm/components/Avatar/AvatarGroup/AvatarGroup.mjs.map +1 -1
  454. package/esm/components/Avatar/AvatarPlaceholderIcon.mjs.map +1 -1
  455. package/esm/components/BackgroundImage/BackgroundImage.mjs +14 -13
  456. package/esm/components/BackgroundImage/BackgroundImage.mjs.map +1 -1
  457. package/esm/components/Badge/Badge.mjs.map +1 -1
  458. package/esm/components/Blockquote/Blockquote.mjs +6 -5
  459. package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
  460. package/esm/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  461. package/esm/components/Burger/Burger.mjs.map +1 -1
  462. package/esm/components/Button/Button.mjs.map +1 -1
  463. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs +16 -15
  464. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs.map +1 -1
  465. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs +15 -14
  466. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs.map +1 -1
  467. package/esm/components/Card/Card.mjs.map +1 -1
  468. package/esm/components/Cascader/Cascader.mjs +5 -4
  469. package/esm/components/Cascader/Cascader.mjs.map +1 -1
  470. package/esm/components/Cascader/CascaderColumns.mjs +2 -1
  471. package/esm/components/Cascader/CascaderColumns.mjs.map +1 -1
  472. package/esm/components/Cascader/get-cascader-columns.mjs.map +1 -1
  473. package/esm/components/Checkbox/CheckIcon.mjs +6 -5
  474. package/esm/components/Checkbox/CheckIcon.mjs.map +1 -1
  475. package/esm/components/Checkbox/Checkbox.mjs +1 -1
  476. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  477. package/esm/components/Checkbox/CheckboxCard/CheckboxCard.mjs +2 -1
  478. package/esm/components/Checkbox/CheckboxCard/CheckboxCard.mjs.map +1 -1
  479. package/esm/components/Checkbox/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  480. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  481. package/esm/components/Chip/Chip.mjs.map +1 -1
  482. package/esm/components/CloseButton/CloseButton.mjs.map +1 -1
  483. package/esm/components/CloseButton/CloseIcon.mjs.map +1 -1
  484. package/esm/components/Collapse/Collapse.mjs.map +1 -1
  485. package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
  486. package/esm/components/ColorInput/EyeDropperIcon.mjs.map +1 -1
  487. package/esm/components/ColorPicker/ColorPicker.mjs.map +1 -1
  488. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs +4 -6
  489. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs.map +1 -1
  490. package/esm/components/ColorPicker/Saturation/Saturation.mjs +4 -6
  491. package/esm/components/ColorPicker/Saturation/Saturation.mjs.map +1 -1
  492. package/esm/components/ColorPicker/Swatches/Swatches.mjs.map +1 -1
  493. package/esm/components/ColorSwatch/ColorSwatch.mjs.map +1 -1
  494. package/esm/components/Combobox/Combobox.mjs.map +1 -1
  495. package/esm/components/Combobox/ComboboxChevron/ComboboxChevron.mjs.map +1 -1
  496. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs +2 -1
  497. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs.map +1 -1
  498. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.mjs +10 -9
  499. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.mjs.map +1 -1
  500. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs +2 -1
  501. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs.map +1 -1
  502. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs.map +1 -1
  503. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs +2 -1
  504. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs.map +1 -1
  505. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.mjs +10 -9
  506. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.mjs.map +1 -1
  507. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  508. package/esm/components/Combobox/OptionsDropdown/default-options-filter.mjs.map +1 -1
  509. package/esm/components/Combobox/use-combobox/get-index/get-index.mjs.map +1 -1
  510. package/esm/components/Combobox/use-combobox/get-index/get-virtualized-index.mjs.map +1 -1
  511. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs.map +1 -1
  512. package/esm/components/ComboboxPopover/ComboboxPopover.mjs.map +1 -1
  513. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs +13 -12
  514. package/esm/components/ComboboxPopover/ComboboxPopoverTarget.mjs.map +1 -1
  515. package/esm/components/DataList/DataList.mjs.map +1 -1
  516. package/esm/components/Dialog/Dialog.mjs.map +1 -1
  517. package/esm/components/Divider/Divider.mjs.map +1 -1
  518. package/esm/components/Drawer/Drawer.mjs.map +1 -1
  519. package/esm/components/Drawer/DrawerBody.mjs +2 -1
  520. package/esm/components/Drawer/DrawerBody.mjs.map +1 -1
  521. package/esm/components/Drawer/DrawerCloseButton.mjs +2 -1
  522. package/esm/components/Drawer/DrawerCloseButton.mjs.map +1 -1
  523. package/esm/components/Drawer/DrawerContent.mjs.map +1 -1
  524. package/esm/components/Drawer/DrawerHeader.mjs +2 -1
  525. package/esm/components/Drawer/DrawerHeader.mjs.map +1 -1
  526. package/esm/components/Drawer/DrawerOverlay.mjs +2 -1
  527. package/esm/components/Drawer/DrawerOverlay.mjs.map +1 -1
  528. package/esm/components/Drawer/DrawerRoot.mjs.map +1 -1
  529. package/esm/components/Drawer/DrawerTitle.mjs +2 -1
  530. package/esm/components/Drawer/DrawerTitle.mjs.map +1 -1
  531. package/esm/components/EmptyState/EmptyState.mjs.map +1 -1
  532. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs +2 -1
  533. package/esm/components/EmptyState/EmptyStateActions/EmptyStateActions.mjs.map +1 -1
  534. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs +2 -1
  535. package/esm/components/EmptyState/EmptyStateDescription/EmptyStateDescription.mjs.map +1 -1
  536. package/esm/components/Fieldset/Fieldset.mjs.map +1 -1
  537. package/esm/components/FileInput/FileInput.mjs.map +1 -1
  538. package/esm/components/FloatingWindow/FloatingWindow.mjs.map +1 -1
  539. package/esm/components/FocusTrap/FocusTrap.mjs +2 -1
  540. package/esm/components/FocusTrap/FocusTrap.mjs.map +1 -1
  541. package/esm/components/Grid/Grid.mjs.map +1 -1
  542. package/esm/components/Group/Group.mjs +16 -14
  543. package/esm/components/Group/Group.mjs.map +1 -1
  544. package/esm/components/Highlight/Highlight.mjs.map +1 -1
  545. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  546. package/esm/components/HoverCard/HoverCardGroup/HoverCardGroup.mjs.map +1 -1
  547. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
  548. package/esm/components/Indicator/Indicator.mjs.map +1 -1
  549. package/esm/components/Input/Input.mjs +3 -3
  550. package/esm/components/Input/Input.mjs.map +1 -1
  551. package/esm/components/Input/InputClearSection/InputClearSection.mjs.map +1 -1
  552. package/esm/components/Input/InputDescription/InputDescription.mjs +2 -1
  553. package/esm/components/Input/InputDescription/InputDescription.mjs.map +1 -1
  554. package/esm/components/Input/InputError/InputError.mjs +2 -1
  555. package/esm/components/Input/InputError/InputError.mjs.map +1 -1
  556. package/esm/components/Input/InputLabel/InputLabel.mjs.map +1 -1
  557. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs +13 -12
  558. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs.map +1 -1
  559. package/esm/components/Input/InputSuccess/InputSuccess.mjs +2 -1
  560. package/esm/components/Input/InputSuccess/InputSuccess.mjs.map +1 -1
  561. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  562. package/esm/components/InputBase/InputBase.mjs.map +1 -1
  563. package/esm/components/Kbd/Kbd.mjs +14 -13
  564. package/esm/components/Kbd/Kbd.mjs.map +1 -1
  565. package/esm/components/List/List.mjs.map +1 -1
  566. package/esm/components/List/ListItem/ListItem.mjs.map +1 -1
  567. package/esm/components/Loader/loaders/Bars.mjs.map +1 -1
  568. package/esm/components/Loader/loaders/Dots.mjs.map +1 -1
  569. package/esm/components/LoadingOverlay/LoadingOverlay.mjs.map +1 -1
  570. package/esm/components/Mark/Mark.mjs +14 -13
  571. package/esm/components/Mark/Mark.mjs.map +1 -1
  572. package/esm/components/Marquee/Marquee.mjs.map +1 -1
  573. package/esm/components/MaskInput/MaskInput.mjs +3 -2
  574. package/esm/components/MaskInput/MaskInput.mjs.map +1 -1
  575. package/esm/components/Menu/Menu.mjs.map +1 -1
  576. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs +4 -3
  577. package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs.map +1 -1
  578. package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs +2 -1
  579. package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs.map +1 -1
  580. package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs +3 -2
  581. package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs.map +1 -1
  582. package/esm/components/Menu/MenuDivider/MenuDivider.mjs +2 -1
  583. package/esm/components/Menu/MenuDivider/MenuDivider.mjs.map +1 -1
  584. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
  585. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  586. package/esm/components/Menu/MenuLabel/MenuLabel.mjs +2 -1
  587. package/esm/components/Menu/MenuLabel/MenuLabel.mjs.map +1 -1
  588. package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs +2 -1
  589. package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs.map +1 -1
  590. package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs.map +1 -1
  591. package/esm/components/Menu/MenuSub/MenuSub.mjs.map +1 -1
  592. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  593. package/esm/components/Menu/MenuTarget/MenuTarget.mjs.map +1 -1
  594. package/esm/components/Menubar/Menubar.mjs.map +1 -1
  595. package/esm/components/Menubar/MenubarMenu/MenubarMenu.mjs.map +1 -1
  596. package/esm/components/Menubar/MenubarTarget/MenubarTarget.mjs.map +1 -1
  597. package/esm/components/Modal/Modal.mjs.map +1 -1
  598. package/esm/components/Modal/ModalBody.mjs +2 -1
  599. package/esm/components/Modal/ModalBody.mjs.map +1 -1
  600. package/esm/components/Modal/ModalCloseButton.mjs +2 -1
  601. package/esm/components/Modal/ModalCloseButton.mjs.map +1 -1
  602. package/esm/components/Modal/ModalContent.mjs.map +1 -1
  603. package/esm/components/Modal/ModalHeader.mjs +2 -1
  604. package/esm/components/Modal/ModalHeader.mjs.map +1 -1
  605. package/esm/components/Modal/ModalOverlay.mjs +2 -1
  606. package/esm/components/Modal/ModalOverlay.mjs.map +1 -1
  607. package/esm/components/Modal/ModalRoot.mjs.map +1 -1
  608. package/esm/components/Modal/ModalTitle.mjs +2 -1
  609. package/esm/components/Modal/ModalTitle.mjs.map +1 -1
  610. package/esm/components/ModalBase/ModalBase.mjs.map +1 -1
  611. package/esm/components/ModalBase/ModalBaseContent.mjs.map +1 -1
  612. package/esm/components/ModalBase/ModalBaseOverlay.mjs.map +1 -1
  613. package/esm/components/ModalBase/use-modal.mjs +2 -1
  614. package/esm/components/ModalBase/use-modal.mjs.map +1 -1
  615. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  616. package/esm/components/NativeSelect/NativeSelect.mjs.map +1 -1
  617. package/esm/components/NativeSelect/NativeSelectOption.mjs.map +1 -1
  618. package/esm/components/NavLink/NavLink.mjs.map +1 -1
  619. package/esm/components/Notification/Notification.mjs +3 -3
  620. package/esm/components/Notification/Notification.mjs.map +1 -1
  621. package/esm/components/NumberInput/NumberInput.mjs +5 -3
  622. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  623. package/esm/components/NumberInput/NumberInputChevron.mjs.map +1 -1
  624. package/esm/components/OverflowList/OverflowList.mjs +4 -2
  625. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  626. package/esm/components/Overlay/Overlay.mjs +14 -13
  627. package/esm/components/Overlay/Overlay.mjs.map +1 -1
  628. package/esm/components/Pagination/Pagination.icons.mjs.map +1 -1
  629. package/esm/components/Pagination/Pagination.mjs +2 -1
  630. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  631. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs +2 -1
  632. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs.map +1 -1
  633. package/esm/components/Pagination/PaginationEdges/PaginationEdges.mjs.map +1 -1
  634. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs +3 -2
  635. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs.map +1 -1
  636. package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs.map +1 -1
  637. package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs.map +1 -1
  638. package/esm/components/Paper/Paper.mjs +1 -1
  639. package/esm/components/Paper/Paper.mjs.map +1 -1
  640. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  641. package/esm/components/PasswordInput/PasswordToggleIcon.mjs.map +1 -1
  642. package/esm/components/Pill/Pill.mjs.map +1 -1
  643. package/esm/components/Pill/PillGroup/PillGroup.mjs.map +1 -1
  644. package/esm/components/PillsInput/PillsInput.mjs.map +1 -1
  645. package/esm/components/PinInput/PinInput.mjs +6 -5
  646. package/esm/components/PinInput/PinInput.mjs.map +1 -1
  647. package/esm/components/Popover/Popover.mjs.map +1 -1
  648. package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs +3 -2
  649. package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs.map +1 -1
  650. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
  651. package/esm/components/Popover/use-popover.mjs +16 -12
  652. package/esm/components/Popover/use-popover.mjs.map +1 -1
  653. package/esm/components/Progress/Progress.mjs.map +1 -1
  654. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs +2 -1
  655. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs.map +1 -1
  656. package/esm/components/Progress/ProgressRoot/ProgressRoot.mjs.map +1 -1
  657. package/esm/components/Radio/Radio.mjs.map +1 -1
  658. package/esm/components/Radio/RadioCard/RadioCard.mjs.map +1 -1
  659. package/esm/components/Radio/RadioGroup/RadioGroup.mjs.map +1 -1
  660. package/esm/components/Radio/RadioIcon.mjs.map +1 -1
  661. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
  662. package/esm/components/Rating/Rating.mjs +6 -3
  663. package/esm/components/Rating/Rating.mjs.map +1 -1
  664. package/esm/components/Rating/RatingItem/RatingItem.mjs.map +1 -1
  665. package/esm/components/Rating/StarSymbol/StarIcon.mjs.map +1 -1
  666. package/esm/components/Rating/StarSymbol/StarSymbol.mjs +2 -1
  667. package/esm/components/Rating/StarSymbol/StarSymbol.mjs.map +1 -1
  668. package/esm/components/RingProgress/Curve/Curve.mjs.map +1 -1
  669. package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
  670. package/esm/components/RollingNumber/DigitColumn.mjs.map +1 -1
  671. package/esm/components/RollingNumber/RollingNumber.mjs +12 -10
  672. package/esm/components/RollingNumber/RollingNumber.mjs.map +1 -1
  673. package/esm/components/ScrollArea/ScrollArea.mjs +8 -6
  674. package/esm/components/ScrollArea/ScrollArea.mjs.map +1 -1
  675. package/esm/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.mjs.map +1 -1
  676. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs.map +1 -1
  677. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs.map +1 -1
  678. package/esm/components/Scroller/Scroller.mjs.map +1 -1
  679. package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  680. package/esm/components/Select/Select.mjs.map +1 -1
  681. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs.map +1 -1
  682. package/esm/components/SimpleGrid/SimpleGrid.mjs.map +1 -1
  683. package/esm/components/SimpleGrid/SimpleGridVariables.mjs +10 -8
  684. package/esm/components/SimpleGrid/SimpleGridVariables.mjs.map +1 -1
  685. package/esm/components/Skeleton/Skeleton.mjs +14 -13
  686. package/esm/components/Skeleton/Skeleton.mjs.map +1 -1
  687. package/esm/components/Slider/Marks/Marks.mjs +3 -2
  688. package/esm/components/Slider/Marks/Marks.mjs.map +1 -1
  689. package/esm/components/Slider/RangeSlider/RangeSlider.mjs +20 -11
  690. package/esm/components/Slider/RangeSlider/RangeSlider.mjs.map +1 -1
  691. package/esm/components/Slider/Slider/Slider.mjs +6 -6
  692. package/esm/components/Slider/Slider/Slider.mjs.map +1 -1
  693. package/esm/components/Slider/Thumb/Thumb.mjs.map +1 -1
  694. package/esm/components/Slider/Track/Track.mjs.map +1 -1
  695. package/esm/components/Splitter/GripIcon.mjs.map +1 -1
  696. package/esm/components/Splitter/Splitter.mjs +8 -7
  697. package/esm/components/Splitter/Splitter.mjs.map +1 -1
  698. package/esm/components/Spoiler/Spoiler.mjs.map +1 -1
  699. package/esm/components/Stack/Stack.mjs +14 -13
  700. package/esm/components/Stack/Stack.mjs.map +1 -1
  701. package/esm/components/Stepper/Stepper.context.mjs.map +1 -1
  702. package/esm/components/Stepper/Stepper.mjs +6 -3
  703. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  704. package/esm/components/Stepper/Stepper.module.mjs.map +1 -1
  705. package/esm/components/Stepper/StepperStep/StepperStep.mjs +3 -2
  706. package/esm/components/Stepper/StepperStep/StepperStep.mjs.map +1 -1
  707. package/esm/components/Switch/Switch.mjs.map +1 -1
  708. package/esm/components/Switch/SwitchGroup/SwitchGroup.mjs.map +1 -1
  709. package/esm/components/Table/Table.mjs +2 -2
  710. package/esm/components/Table/Table.mjs.map +1 -1
  711. package/esm/components/Table/TableScrollContainer.mjs.map +1 -1
  712. package/esm/components/TableOfContents/TableOfContents.mjs.map +1 -1
  713. package/esm/components/Tabs/Tabs.mjs.map +1 -1
  714. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs.map +1 -1
  715. package/esm/components/Tabs/TabsTab/TabsTab.mjs.map +1 -1
  716. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  717. package/esm/components/Text/Text.mjs +18 -17
  718. package/esm/components/Text/Text.mjs.map +1 -1
  719. package/esm/components/TextInput/TextInput.mjs +6 -5
  720. package/esm/components/TextInput/TextInput.mjs.map +1 -1
  721. package/esm/components/ThemeIcon/ThemeIcon.mjs +14 -13
  722. package/esm/components/ThemeIcon/ThemeIcon.mjs.map +1 -1
  723. package/esm/components/Timeline/Timeline.mjs.map +1 -1
  724. package/esm/components/Timeline/TimelineItem/TimelineItem.mjs.map +1 -1
  725. package/esm/components/Title/Title.mjs +1 -1
  726. package/esm/components/Title/Title.mjs.map +1 -1
  727. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  728. package/esm/components/Tooltip/TooltipFloating/TooltipFloating.mjs.map +1 -1
  729. package/esm/components/Tooltip/TooltipGroup/TooltipGroup.mjs.map +1 -1
  730. package/esm/components/Transition/Transition.mjs.map +1 -1
  731. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
  732. package/esm/components/Tree/Tree.mjs +2 -1
  733. package/esm/components/Tree/Tree.mjs.map +1 -1
  734. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  735. package/esm/components/Tree/use-tree.mjs.map +1 -1
  736. package/esm/components/TreeSelect/TreeSelect.mjs +11 -9
  737. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -1
  738. package/esm/components/TreeSelect/TreeSelectOption.mjs.map +1 -1
  739. package/esm/components/Typography/Typography.mjs +12 -11
  740. package/esm/components/Typography/Typography.mjs.map +1 -1
  741. package/esm/components/Typography/Typography.module.mjs.map +1 -1
  742. package/esm/components/UnstyledButton/UnstyledButton.mjs +12 -11
  743. package/esm/components/UnstyledButton/UnstyledButton.mjs.map +1 -1
  744. package/esm/components/VisuallyHidden/VisuallyHidden.mjs +12 -11
  745. package/esm/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -1
  746. package/esm/core/DirectionProvider/DirectionProvider.mjs +3 -2
  747. package/esm/core/DirectionProvider/DirectionProvider.mjs.map +1 -1
  748. package/esm/core/InlineStyles/InlineStyles.mjs.map +1 -1
  749. package/esm/core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs +4 -2
  750. package/esm/core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs.map +1 -1
  751. package/esm/core/MantineProvider/MantineProvider.mjs +3 -3
  752. package/esm/core/MantineProvider/MantineProvider.mjs.map +1 -1
  753. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs.map +1 -1
  754. package/esm/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.mjs.map +1 -1
  755. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs +2 -1
  756. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs.map +1 -1
  757. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs +0 -1
  758. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs.map +1 -1
  759. package/esm/core/utils/deep-merge/deep-merge.mjs +4 -3
  760. package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -1
  761. package/esm/index.mjs +4 -1
  762. package/esm/utils/InlineInput/InlineInput.mjs.map +1 -1
  763. package/lib/components/Accordion/Accordion.d.ts +1 -1
  764. package/lib/components/Accordion/AccordionChevron.d.ts +1 -1
  765. package/lib/components/ActionBar/ActionBar.context.d.ts +8 -0
  766. package/lib/components/ActionBar/ActionBar.d.ts +44 -0
  767. package/lib/components/ActionBar/ActionBarCloseButton/ActionBarCloseButton.d.ts +22 -0
  768. package/lib/components/ActionBar/ActionBarDivider/ActionBarDivider.d.ts +16 -0
  769. package/lib/components/ActionBar/index.d.ts +17 -0
  770. package/lib/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.d.ts +1 -1
  771. package/lib/components/Avatar/AvatarPlaceholderIcon.d.ts +1 -1
  772. package/lib/components/Cascader/CascaderColumns.d.ts +1 -1
  773. package/lib/components/Checkbox/CheckIcon.d.ts +2 -2
  774. package/lib/components/CloseButton/CloseIcon.d.ts +1 -1
  775. package/lib/components/ColorInput/EyeDropperIcon.d.ts +1 -1
  776. package/lib/components/ColorPicker/Saturation/Saturation.d.ts +1 -1
  777. package/lib/components/ColorPicker/Swatches/Swatches.d.ts +1 -1
  778. package/lib/components/ColorPicker/Thumb/Thumb.d.ts +1 -1
  779. package/lib/components/Combobox/Combobox.d.ts +1 -1
  780. package/lib/components/Combobox/ComboboxClearButton/ComboboxClearButton.d.ts +1 -1
  781. package/lib/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.d.ts +1 -1
  782. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +1 -1
  783. package/lib/components/CopyButton/CopyButton.d.ts +1 -1
  784. package/lib/components/Drawer/DrawerStack.d.ts +1 -1
  785. package/lib/components/FocusTrap/FocusTrap.d.ts +1 -1
  786. package/lib/components/Grid/GridCol/GridColVariables.d.ts +1 -1
  787. package/lib/components/Grid/GridVariables.d.ts +1 -1
  788. package/lib/components/HoverCard/HoverCard.d.ts +1 -1
  789. package/lib/components/HoverCard/HoverCardDropdown/HoverCardDropdown.d.ts +1 -1
  790. package/lib/components/HoverCard/HoverCardGroup/HoverCardGroup.d.ts +1 -1
  791. package/lib/components/HoverCard/HoverCardTarget/HoverCardTarget.d.ts +1 -1
  792. package/lib/components/Input/InputClearSection/InputClearSection.d.ts +1 -1
  793. package/lib/components/Input/index.d.ts +1 -1
  794. package/lib/components/Menu/Menu.d.ts +1 -1
  795. package/lib/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.d.ts +1 -1
  796. package/lib/components/Menu/MenuRadioGroup/MenuRadioGroup.d.ts +1 -1
  797. package/lib/components/Menu/MenuSelectableItem/MenuSelectableItem.d.ts +1 -1
  798. package/lib/components/Menu/MenuSub/MenuSub.d.ts +1 -1
  799. package/lib/components/Menu/MenuSubTarget/MenuSubTarget.d.ts +1 -1
  800. package/lib/components/Menu/MenuTarget/MenuTarget.d.ts +1 -1
  801. package/lib/components/Menubar/MenubarDropdown/MenubarDropdown.d.ts +1 -1
  802. package/lib/components/Menubar/MenubarMenu/MenubarMenu.d.ts +1 -1
  803. package/lib/components/Menubar/MenubarTarget/MenubarTarget.d.ts +1 -1
  804. package/lib/components/Modal/ModalStack.d.ts +1 -1
  805. package/lib/components/ModalBase/ModalBase.d.ts +1 -1
  806. package/lib/components/ModalBase/ModalBaseBody.d.ts +1 -1
  807. package/lib/components/ModalBase/ModalBaseCloseButton.d.ts +1 -1
  808. package/lib/components/ModalBase/ModalBaseContent.d.ts +1 -1
  809. package/lib/components/ModalBase/ModalBaseHeader.d.ts +1 -1
  810. package/lib/components/ModalBase/ModalBaseOverlay.d.ts +1 -1
  811. package/lib/components/ModalBase/ModalBaseTitle.d.ts +1 -1
  812. package/lib/components/ModalBase/NativeScrollArea.d.ts +1 -1
  813. package/lib/components/NativeSelect/NativeSelectOption.d.ts +1 -1
  814. package/lib/components/NumberFormatter/NumberFormatter.d.ts +1 -1
  815. package/lib/components/NumberInput/NumberInputChevron.d.ts +1 -1
  816. package/lib/components/Pagination/Pagination.icons.d.ts +5 -5
  817. package/lib/components/Pagination/PaginationItems/PaginationItems.d.ts +1 -1
  818. package/lib/components/PasswordInput/PasswordToggleIcon.d.ts +1 -1
  819. package/lib/components/Popover/Popover.d.ts +2 -2
  820. package/lib/components/Progress/Progress.d.ts +1 -1
  821. package/lib/components/Radio/RadioIcon.d.ts +1 -1
  822. package/lib/components/Rating/RatingItem/RatingItem.d.ts +1 -1
  823. package/lib/components/Rating/StarSymbol/StarIcon.d.ts +1 -1
  824. package/lib/components/Rating/StarSymbol/StarSymbol.d.ts +1 -1
  825. package/lib/components/RingProgress/Curve/Curve.d.ts +1 -1
  826. package/lib/components/RollingNumber/DigitColumn.d.ts +1 -1
  827. package/lib/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.d.ts +2 -2
  828. package/lib/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.d.ts +1 -1
  829. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.d.ts +1 -1
  830. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.d.ts +1 -1
  831. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.d.ts +1 -1
  832. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.d.ts +1 -1
  833. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.d.ts +1 -1
  834. package/lib/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.d.ts +1 -1
  835. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.d.ts +1 -1
  836. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.d.ts +1 -1
  837. package/lib/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.d.ts +2 -2
  838. package/lib/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.d.ts +1 -1
  839. package/lib/components/SimpleGrid/SimpleGridVariables.d.ts +2 -2
  840. package/lib/components/Slider/Marks/Marks.d.ts +1 -1
  841. package/lib/components/Slider/SliderRoot/SliderRoot.d.ts +1 -1
  842. package/lib/components/Slider/Thumb/Thumb.d.ts +1 -1
  843. package/lib/components/Slider/Track/Track.d.ts +1 -1
  844. package/lib/components/Splitter/GripIcon.d.ts +2 -2
  845. package/lib/components/Stepper/Stepper.context.d.ts +1 -0
  846. package/lib/components/Stepper/Stepper.d.ts +3 -1
  847. package/lib/components/Table/TableDataRenderer.d.ts +1 -1
  848. package/lib/components/Textarea/Autosize.d.ts +1 -1
  849. package/lib/components/Tooltip/TooltipGroup/TooltipGroup.d.ts +1 -1
  850. package/lib/components/Transition/Transition.d.ts +1 -1
  851. package/lib/components/Tree/FlatTreeNode.d.ts +1 -1
  852. package/lib/components/Tree/Tree.d.ts +1 -1
  853. package/lib/components/Tree/TreeNode.d.ts +1 -1
  854. package/lib/components/TreeSelect/TreeSelectOption.d.ts +1 -1
  855. package/lib/components/index.d.ts +1 -0
  856. package/lib/core/DirectionProvider/DirectionProvider.d.ts +1 -1
  857. package/lib/core/InlineStyles/InlineStyles.d.ts +1 -1
  858. package/lib/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.d.ts +1 -1
  859. package/lib/core/MantineProvider/MantineClasses/MantineClasses.d.ts +1 -1
  860. package/lib/core/MantineProvider/MantineCssVariables/MantineCssVariables.d.ts +1 -1
  861. package/lib/core/MantineProvider/MantineProvider.d.ts +5 -5
  862. package/lib/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.d.ts +1 -1
  863. package/lib/utils/Floating/FloatingArrow/FloatingArrow.d.ts +1 -1
  864. package/lib/utils/InlineInput/InlineInput.d.ts +1 -1
  865. package/lib/utils/InputsGroupFieldset/InputsGroupFieldset.d.ts +1 -1
  866. package/package.json +5 -5
  867. package/styles/ActionBar.css +13 -0
  868. package/styles/ActionBar.layer.css +14 -0
  869. package/styles/Stepper.css +30 -0
  870. package/styles/Stepper.layer.css +30 -0
  871. package/styles/Typography.css +59 -0
  872. package/styles/Typography.layer.css +59 -0
  873. package/styles.css +144 -41
  874. package/styles.layer.css +144 -41
@@ -1 +1 @@
1
- {"version":3,"file":"PillsInput.cjs","names":["factory","useProps","PillsInputContext","InputBase","PillsInputField"],"sources":["../../../src/components/PillsInput/PillsInput.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { BoxProps, ElementProps, factory, Factory, StylesApiProps, useProps } from '../../core';\nimport { __BaseInputProps, __InputStylesNames } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { PillsInputContext, type PillsInputContextValue } from './PillsInput.context';\nimport {\n PillsInputField,\n type PillsInputFieldProps,\n type PillsInputFieldFactory,\n type PillsInputFieldStylesNames,\n} from './PillsInputField/PillsInputField';\nexport interface PillsInputProps\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<PillsInputFactory>,\n ElementProps<'div', 'size'> {\n __stylesApiProps?: Record<string, any>;\n __staticSelector?: string;\n}\n\nexport type PillsInputFactory = Factory<{\n props: PillsInputProps;\n ref: HTMLDivElement;\n stylesNames: __InputStylesNames;\n staticComponents: {\n Field: typeof PillsInputField;\n };\n}>;\n\nconst defaultProps = {\n size: 'sm',\n} satisfies Partial<PillsInputProps>;\n\nexport const PillsInput = factory<PillsInputFactory>((_props) => {\n const props = useProps(['Input', 'InputWrapper', 'PillsInput'], defaultProps, _props);\n const {\n children,\n onMouseDown,\n onClick,\n size,\n disabled,\n __staticSelector,\n error,\n variant,\n ...others\n } = props;\n\n const fieldRef = useRef<HTMLInputElement>(null);\n\n return (\n <PillsInputContext value={{ fieldRef, size, disabled, hasError: !!error, variant }}>\n <InputBase\n size={size}\n error={error}\n variant={variant}\n component=\"div\"\n data-no-overflow\n onMouseDown={(event) => {\n event.preventDefault();\n onMouseDown?.(event);\n fieldRef.current?.focus();\n }}\n onClick={(event) => {\n event.preventDefault();\n const fieldset = event.currentTarget.closest('fieldset');\n if (!fieldset?.disabled) {\n fieldRef.current?.focus();\n onClick?.(event);\n }\n }}\n {...others}\n multiline\n disabled={disabled}\n __staticSelector={__staticSelector || 'PillsInput'}\n withAria={false}\n >\n {children}\n </InputBase>\n </PillsInputContext>\n );\n});\n\nPillsInput.displayName = '@mantine/core/PillsInput';\nPillsInput.classes = InputBase.classes;\nPillsInput.Field = PillsInputField;\n\nexport namespace PillsInput {\n export type Props = PillsInputProps;\n export type Factory = PillsInputFactory;\n export type ContextValue = PillsInputContextValue;\n\n export namespace Field {\n export type Props = PillsInputFieldProps;\n export type Factory = PillsInputFieldFactory;\n export type StylesNames = PillsInputFieldStylesNames;\n }\n}\n"],"mappings":";;;;;;;;;AA8BA,MAAM,eAAe,EACnB,MAAM,KACR;AAEA,MAAa,aAAaA,gBAAAA,SAA4B,WAAW;CAE/D,MAAM,EACJ,UACA,aACA,SACA,MACA,UACA,kBACA,OACA,SACA,GAAG,WAVSC,kBAAAA,SAAS;EAAC;EAAS;EAAgB;CAAY,GAAG,cAAc,MAWtE;CAER,MAAM,YAAA,GAAA,MAAA,OAAA,CAAoC,IAAI;CAE9C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,mBAAD;EAAmB,OAAO;GAAE;GAAU;GAAM;GAAU,UAAU,CAAC,CAAC;GAAO;EAAQ;YAC/E,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,WAAD;GACQ;GACC;GACE;GACT,WAAU;GACV,oBAAA;GACA,cAAc,UAAU;IACtB,MAAM,eAAe;IACrB,cAAc,KAAK;IACnB,SAAS,SAAS,MAAM;GAC1B;GACA,UAAU,UAAU;IAClB,MAAM,eAAe;IAErB,IAAI,CADa,MAAM,cAAc,QAAQ,UACjC,CAAC,EAAE,UAAU;KACvB,SAAS,SAAS,MAAM;KACxB,UAAU,KAAK;IACjB;GACF;GACA,GAAI;GACJ,WAAA;GACU;GACV,kBAAkB,oBAAoB;GACtC,UAAU;GAET;EACQ,CAAA;CACM,CAAA;AAEvB,CAAC;AAED,WAAW,cAAc;AACzB,WAAW,UAAUA,kBAAAA,UAAU;AAC/B,WAAW,QAAQC,wBAAAA"}
1
+ {"version":3,"file":"PillsInput.cjs","names":["factory","useProps","useRef","PillsInputContext","InputBase","PillsInputField"],"sources":["../../../src/components/PillsInput/PillsInput.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { BoxProps, ElementProps, factory, Factory, StylesApiProps, useProps } from '../../core';\nimport { __BaseInputProps, __InputStylesNames } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { PillsInputContext, type PillsInputContextValue } from './PillsInput.context';\nimport {\n PillsInputField,\n type PillsInputFieldProps,\n type PillsInputFieldFactory,\n type PillsInputFieldStylesNames,\n} from './PillsInputField/PillsInputField';\nexport interface PillsInputProps\n extends\n BoxProps,\n __BaseInputProps,\n StylesApiProps<PillsInputFactory>,\n ElementProps<'div', 'size'> {\n __stylesApiProps?: Record<string, any>;\n __staticSelector?: string;\n}\n\nexport type PillsInputFactory = Factory<{\n props: PillsInputProps;\n ref: HTMLDivElement;\n stylesNames: __InputStylesNames;\n staticComponents: {\n Field: typeof PillsInputField;\n };\n}>;\n\nconst defaultProps = {\n size: 'sm',\n} satisfies Partial<PillsInputProps>;\n\nexport const PillsInput = factory<PillsInputFactory>((_props) => {\n const props = useProps(['Input', 'InputWrapper', 'PillsInput'], defaultProps, _props);\n const {\n children,\n onMouseDown,\n onClick,\n size,\n disabled,\n __staticSelector,\n error,\n variant,\n ...others\n } = props;\n\n const fieldRef = useRef<HTMLInputElement>(null);\n\n return (\n <PillsInputContext value={{ fieldRef, size, disabled, hasError: !!error, variant }}>\n <InputBase\n size={size}\n error={error}\n variant={variant}\n component=\"div\"\n data-no-overflow\n onMouseDown={(event) => {\n event.preventDefault();\n onMouseDown?.(event);\n fieldRef.current?.focus();\n }}\n onClick={(event) => {\n event.preventDefault();\n const fieldset = event.currentTarget.closest('fieldset');\n if (!fieldset?.disabled) {\n fieldRef.current?.focus();\n onClick?.(event);\n }\n }}\n {...others}\n multiline\n disabled={disabled}\n __staticSelector={__staticSelector || 'PillsInput'}\n withAria={false}\n >\n {children}\n </InputBase>\n </PillsInputContext>\n );\n});\n\nPillsInput.displayName = '@mantine/core/PillsInput';\nPillsInput.classes = InputBase.classes;\nPillsInput.Field = PillsInputField;\n\nexport namespace PillsInput {\n export type Props = PillsInputProps;\n export type Factory = PillsInputFactory;\n export type ContextValue = PillsInputContextValue;\n\n export namespace Field {\n export type Props = PillsInputFieldProps;\n export type Factory = PillsInputFieldFactory;\n export type StylesNames = PillsInputFieldStylesNames;\n }\n}\n"],"mappings":";;;;;;;;;AA8BA,MAAM,eAAe,EACnB,MAAM,KACR;AAEA,MAAa,aAAaA,gBAAAA,SAA4B,WAAW;CAE/D,MAAM,EACJ,UACA,aACA,SACA,MACA,UACA,kBACA,OACA,SACA,GAAG,WAVSC,kBAAAA,SAAS;EAAC;EAAS;EAAgB;CAAY,GAAG,cAAc,MAWtE;CAER,MAAM,YAAA,GAAWC,MAAAA,OAAAA,CAAyB,IAAI;CAE9C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,mBAAD;EAAmB,OAAO;GAAE;GAAU;GAAM;GAAU,UAAU,CAAC,CAAC;GAAO;EAAQ;EAC/E,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,WAAD;GACQ;GACC;GACE;GACT,WAAU;GACV,oBAAA;GACA,cAAc,UAAU;IACtB,MAAM,eAAe;IACrB,cAAc,KAAK;IACnB,SAAS,SAAS,MAAM;GAC1B;GACA,UAAU,UAAU;IAClB,MAAM,eAAe;IAErB,IAAI,CADa,MAAM,cAAc,QAAQ,UACjC,CAAC,EAAE,UAAU;KACvB,SAAS,SAAS,MAAM;KACxB,UAAU,KAAK;IACjB;GACF;GACA,GAAI;GACJ,WAAA;GACU;GACV,kBAAkB,oBAAoB;GACtC,UAAU;GAET;EACQ,CAAA;CACM,CAAA;AAEvB,CAAC;AAED,WAAW,cAAc;AACzB,WAAW,UAAUA,kBAAAA,UAAU;AAC/B,WAAW,QAAQC,wBAAAA"}
@@ -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,CAAA,CAAA,cAAA,CAAiE,IAAI"}
1
+ {"version":3,"file":"PillsInput.context.cjs","names":["createContext"],"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,kBAAoBA,CAAAA,CAAAA,cAAAA,CAA6C,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,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"}
1
+ {"version":3,"file":"PillsInputField.cjs","names":["factory","useProps","use","PillsInputContext","InputWrapperContext","useStyles","Box","useMergedRef","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,GAAMC,MAAAA,IAAAA,CAAIC,2BAAAA,iBAAiB;CACjC,MAAM,mBAAA,GAAkBD,MAAAA,IAAAA,CAAIE,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,GAAKC,eAAAA,aAAAA,CAAa,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"}
@@ -106,11 +106,12 @@ const PinInput = require_factory.factory((props) => {
106
106
  }
107
107
  return;
108
108
  }
109
- if (inputValue.length === 1) if (validate(inputValue)) {
110
- setFieldValue(inputValue, index);
111
- focusInputField("next", index);
112
- } else setFieldValue("", index);
113
- else if (inputValue.length === 0) setFieldValue("", index);
109
+ if (inputValue.length === 1) {
110
+ if (validate(inputValue)) {
111
+ setFieldValue(inputValue, index);
112
+ focusInputField("next", index);
113
+ } else setFieldValue("", index);
114
+ } else if (inputValue.length === 0) setFieldValue("", index);
114
115
  };
115
116
  const handleKeyDown = (event, index) => {
116
117
  const { ctrlKey, metaKey, key, shiftKey, target } = event;
@@ -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 /** 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
+ {"version":3,"file":"PinInput.cjs","names":["createVarsResolver","getSize","factory","useProps","useId","useStyles","useResolvedStylesApi","useState","useRef","useUncontrolled","createPinArray","Group","Input","assignRef","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":"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":";;;;;;;;;;;;;;;;;;;;;;;AAsLA,MAAM,eAAe;CACnB,UAAU;CACV,QAAQ;CACR,iBAAiB;EAAE,YAAY;EAAQ,UAAU;CAAI;CACrD,aAAa;EAAE,MAAM;EAAM,OAAO;EAAM,QAAQ;CAAM;CACtD,WAAW;CACX,aAAa;CACb,aAAa;CACb,eAAe;CACf,qBAAqB;CACrB,cAAc;CACd,eAAe;CACf,WAAW;CACX,WAAW;CACX,aAAa;CACb,aAAa;CACb,cAAc;CACd,kCAAkC;CAClC,oBAAoB,CAAC,aAAa,YAAY;CAC9C,QAAQA,4BAAAA,iBAAiB,SAAS;CAClC,kBAAkB;CAClB,OAAO;AACT;AAEA,MAAM,eAAeC,6BAAAA,oBAAoC,GAAG,EAAE,QAAQ,cAAc,EAClF,UAAU;CACR,oBAAoB,WAAW,KAAA,IAAY,KAAA,IAAYC,iBAAAA,UAAU,MAAM;CACvE,oBAAoBC,iBAAAA,UAAU,MAAM;AACtC,EACF,EAAE;AAEF,SAAgB,QAAQ,QAAsB;CAC5C,MAAM,QAAQC,kBAAAA,SAAS,WAAW,cAAc,MAAM;CACtD,MAAM,EACJ,UACA,UACA,QACA,kBACA,QACA,iBACA,qBACA,sBACA,OACA,aACA,WACA,WACA,aACA,aACA,eACA,UACA,YACA,QACA,qBACA,cACA,aACA,eACA,oBACA,WACA,SACA,WACA,QACA,UACA,QACA,QACA,QACA,IACA,eACA,kBACA,WACA,UACA,aACA,SACA,aACA,iBACA,MACA,kBACA,aACA,cACA,cACA,YACA,kCACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAA0B;EAC1C,MAAM;EACN;EACA,SAAA,uBAAA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;CACF,CAAC;CAED,MAAM,EAAE,mBAAmBC,gCAAAA,qBAAqC;EAAE;EAAY;EAAQ;CAAM,CAAC;CAE7F,MAAM,YAAA,GAAA,MAAA,OAAA,CAAyC,IAAI;CACnD,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,SAAA,CAA8C,IAAI;CACrE,MAAM,CAAC,cAAc,oBAAA,GAAA,MAAA,SAAA,CAAgD,IAAI;CACzE,MAAM,EAAE,QAAQC,0BAAAA,aAAa;CAC7B,MAAM,MAAMC,wBAAAA,cAAc;CAE1B,MAAM,OAAA,GAAA,eAAA,MAAA,CAAY,EAAE;CACpB,MAAM,UAAUC,oBAAAA,WAAW;EACzB;EACA;EACA,UAAUC,8BAAAA,oBAAoB,KAAK,QAAQ;EAC3C,QAAQ,OAAO,WAAW,WAAW,UAAU,YAAY,YAAY,IAAI,KAAK;EAChF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;CACF,CAAC;CAED,CAAA,GAAA,eAAA,gBAAA,OACQ;EACJ,IAAI,qBAAqB;GACvB,QAAQ,QAAQ;GAChB,YAAY;EACd;CACF,GACA,oBACA,CAAC,YAAY,YAAY,CAC3B;CAEA,MAAM,aAAA,GAAA,MAAA,YAAA,EACH,SAAsB;EACrB,cAAc,IAAI;EAClB,QAAQ,SAAS,KAAK,aAAa,IAAI;CACzC,GACA,CAAC,QAAQ,SAAS,KAAK,YAAY,CACrC;CAEA,MAAM,YAAA,GAAA,MAAA,YAAA,EACH,SAAsB;EACrB,gBAAgB,IAAI;EACpB,QAAQ,SAAS,KAAK,YAAY,IAAI;CACxC,GACA,CAAC,QAAQ,SAAS,KAAK,WAAW,CACpC;CAEA,MAAM,YAAA,GAAA,MAAA,YAAA,OAA6B;EACjC,iBAAiB,WAAW;EAC5B,sBAAsB;EACtB,QAAQ,qBAAqB;CAC/B,GAAG;EAAC,iBAAiB;EAAU;EAAqB,QAAQ;CAAoB,CAAC;CAEjF,MAAM,aAAA,GAAA,MAAA,YAAA,OAA8B;EAClC,iBAAiB,YAAY;EAC7B,uBAAuB;CACzB,GAAG,CAAC,iBAAiB,WAAW,oBAAoB,CAAC;CAErD,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,wBAAAA,wBAAD;EACE,OAAO;GACL;GACA;GACA,YAAY,QAAQ;GACpB;GACA;GACA,GAAG,QAAQ,SAAS;GACpB,GAAG,QAAQ,SAAS;GACpB,QAAQ,QAAQ,UAAU,gBAAgB,OAAO;GACjD,QAAQ,QAAQ,UAAU,gBAAgB,OAAO;GACjD,QAAQ,QAAQ;GAChB;GACA,iBAAiB;IAAE,GAAG;IAAiB;IAAU;GAAU;GAC3D;GACA;GACA;GACA;GACA;GACA;GACA,WAAW,QAAQ,SAAS;GAC5B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,SAAS,QAAQ;GACjB,UAAU,QAAQ;GAClB,mBAAmB;GACnB,qBAAqB,GAAG,IAAI;GAC5B;GACA,aAAa;GACb;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,iBACE,gBAAgB,QAAQ,SACpB,QAAQ,SAAS,eAAe,MAAM,kBACtC;EACR;YAjDF,CAmDG,UACA,eACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;GACE,YAAW;GACX,SAAS,QAAQ;GACjB,UAAU,iBAAiB,YAAY;GACvC,cAAc,iBAAiB,gBAAgB;cAE7C,qBACA,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,gBAAD;IAA8B;cAC5B,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,SAAD;KACE,GAAI;KACJ,GAAI,UAAU,WAAW;MACvB,WAAW,cAAc;MACzB,OAAO,CAAC,kBAAkB,cAAc,KAAK;KAC/C,CAAC;IACF,CAAA;GACa,CAAA;EAER,CAAA,CAEQ;;AAE5B;AAEA,QAAQ,SAASC,sBAAAA;AACjB,QAAQ,WAAWC,wBAAAA;AACnB,QAAQ,cAAcC,2BAAAA;AACtB,QAAQ,eAAe;AACvB,QAAQ,cAAc;AACtB,QAAQ,UAAU,UAA2C;AAC7D,QAAQ,aAAa,eAAsC;CACzD,MAAM,YAAY,UAAwB,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;EAAS,GAAI;EAAY,GAAI;CAAQ,CAAA;CAC/E,SAAS,SAAS,QAAQ;CAC1B,SAAS,cAAc,aAAa,QAAQ,YAAY;CACxD,OAAO;AACT"}
1
+ {"version":3,"file":"Popover.cjs","names":["getDefaultZIndex","createVarsResolver","getRadius","getShadow","useProps","useStyles","useResolvedStylesApi","useRef","useState","useDirection","useMantineEnv","useId","usePopover","getFloatingPosition","useCallback","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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"}
@@ -10,7 +10,7 @@ function PopoverContextMenu(props) {
10
10
  const child = require_get_single_element_child.getSingleElementChild(children);
11
11
  if (!child) throw new Error("Popover.ContextMenu component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");
12
12
  const ctx = require_Popover_context.usePopoverContext();
13
- return (0, react.cloneElement)(child, require_use_context_menu_handlers.useContextMenuHandlers({
13
+ const handlers = require_use_context_menu_handlers.useContextMenuHandlers({
14
14
  childProps: child.props,
15
15
  disabled: disabled || ctx.disabled,
16
16
  opened: ctx.opened,
@@ -19,7 +19,8 @@ function PopoverContextMenu(props) {
19
19
  open: () => {
20
20
  if (!ctx.opened) ctx.onToggle();
21
21
  }
22
- }));
22
+ });
23
+ return (0, react.cloneElement)(child, handlers);
23
24
  }
24
25
  PopoverContextMenu.displayName = "@mantine/core/PopoverContextMenu";
25
26
  //#endregion
@@ -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,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"}
1
+ {"version":3,"file":"PopoverContextMenu.cjs","names":["useProps","getSingleElementChild","usePopoverContext","useContextMenuHandlers","cloneElement"],"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,MAAM,WAAWC,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,CAAC;CAED,QAAA,GAAOC,MAAAA,aAAAA,CAAa,OAAO,QAAe;AAC5C;AAEA,mBAAmB,cAAc"}
@@ -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 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
+ {"version":3,"file":"PopoverDropdown.cjs","names":["factory","useProps","usePopoverContext","useDirection","getArrowMergeDropdownStyles","useFocusReturn","useMergedRef","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,GAAcC,eAAAA,eAAAA,CAAe;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,GAAYC,eAAAA,aAAAA,CAAa,KAAK,IAAI,QAAQ;CAEhD,IAAI,IAAI,UACN,OAAO;CAGT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,gBAAD;EAAgB,GAAI,IAAI;EAAa,cAAc,IAAI;EACrD,UAAA,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;GAGzB,WAAA,qBACA,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,WAAD;IAAW,QAAQ,IAAI,aAAa,IAAI;IAAQ,UAAU;IACxD,UAAA,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;KApCH,UAAA,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,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"}
1
+ {"version":3,"file":"PopoverTarget.cjs","names":["factory","useProps","getSingleElementChild","usePopoverContext","useMergedRef","getRefProp","cloneElement","cx"],"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,GAAYC,eAAAA,aAAAA,CAAa,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,GAAOC,MAAAA,aAAAA,CAAa,OAAO;EACzB,GAAG;EACH,GAAG;EACH,GAAG,IAAI;EACP,YAAA,GAAWC,KAAAA,QAAAA,CAAG,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"}
@@ -45,16 +45,18 @@ function getPopoverMiddlewares(options, getFloating, disableFlip, lockEnabled) {
45
45
  ...typeof middlewaresOptions.size === "boolean" ? {} : middlewaresOptions.size,
46
46
  apply({ rects, availableWidth, availableHeight, ...rest }) {
47
47
  const styles = getFloating().refs.floating.current?.style ?? {};
48
- if (middlewaresOptions.size) if (typeof middlewaresOptions.size === "object" && !!middlewaresOptions.size.apply) middlewaresOptions.size.apply({
49
- rects,
50
- availableWidth,
51
- availableHeight,
52
- ...rest
53
- });
54
- else Object.assign(styles, {
55
- maxWidth: `${availableWidth}px`,
56
- maxHeight: `${availableHeight}px`
57
- });
48
+ if (middlewaresOptions.size) {
49
+ if (typeof middlewaresOptions.size === "object" && !!middlewaresOptions.size.apply) middlewaresOptions.size.apply({
50
+ rects,
51
+ availableWidth,
52
+ availableHeight,
53
+ ...rest
54
+ });
55
+ else Object.assign(styles, {
56
+ maxWidth: `${availableWidth}px`,
57
+ maxHeight: `${availableHeight}px`
58
+ });
59
+ }
58
60
  if (options.width === "target") Object.assign(styles, { width: `${rects.reference.width}px` });
59
61
  }
60
62
  }));
@@ -132,8 +134,10 @@ function usePopover(options) {
132
134
  }
133
135
  }, [floating.placement]);
134
136
  (0, _mantine_hooks.useDidUpdate)(() => {
135
- if (_opened !== previouslyOpened.current) if (!_opened) options.onClose?.();
136
- else options.onOpen?.();
137
+ if (_opened !== previouslyOpened.current) {
138
+ if (!_opened) options.onClose?.();
139
+ else options.onOpen?.();
140
+ }
137
141
  previouslyOpened.current = _opened;
138
142
  }, [
139
143
  _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 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":";;;;;AAuCA,SAAS,sBAAsB,aAAiE;CAC9F,IAAI,gBAAgB,KAAA,GAClB,OAAO;EAAE,OAAO;EAAM,MAAM;CAAK;CAGnC,MAAM,SAAS,EAAE,GAAG,YAAY;CAChC,IAAI,YAAY,UAAU,KAAA,GACxB,OAAO,QAAQ;CAGjB,IAAI,YAAY,SAAS,KAAA,GACvB,OAAO,OAAO;CAGhB,OAAO;AACT;AAEA,SAAS,sBACP,SACA,aACA,aACA,aACA;CACA,MAAM,qBAAqB,sBAAsB,QAAQ,WAAW;CACpE,MAAM,cAA4B,EAAA,GAAA,mBAAA,OAAA,CAAQ,QAAQ,MAAM,IAAA,GAAA,mBAAA,KAAA,CAAQ,CAAC;CAEjE,IAAI,mBAAmB,QAAQ,CAAC,aAAa;EAC3C,MAAM,WAAW,OAAO,mBAAmB,SAAS,YAAY,CAAC,IAAI,mBAAmB;EACxF,MAAM,cAAc,cAChB;GAAE,kBAAkB;GAA6B,GAAG;EAAS,IAC7D;EACJ,YAAY,MAAA,GAAA,mBAAA,KAAA,CAAU,WAAW,CAAC;CACpC;CAEA,IAAI,mBAAmB,OAAO;EAC5B,MAAM,eACJ,OAAO,mBAAmB,UAAU,YAAY,CAAC,IAAI,mBAAmB;EAC1E,YAAY,MAAA,GAAA,mBAAA,MAAA,EACH,UAAU;GACf,MAAM,sBACJ,MAAM,UAAU,WAAW,KAAK,KAAK,MAAM,UAAU,WAAW,QAAQ;GAC1E,OAAO;IACL,UAAA,GAAA,mBAAA,WAAA,CAAoB;IACpB,SAAS;IACT,GAAI,QAAQ,UAAU,YAAY,sBAAsB,EAAE,UAAU,MAAM,IAAI;IAC9E,GAAG;GACL;EACF,CAAC,CACH;CACF;CAEA,IAAI,mBAAmB,QACrB,YAAY,KACV,OAAO,mBAAmB,WAAW,aAAA,GAAA,mBAAA,OAAA,CAAmB,KAAA,GAAA,mBAAA,OAAA,CAAW,mBAAmB,MAAM,CAC9F;CAGF,YAAY,MAAA,GAAA,mBAAA,MAAA,CAAW;EAAE,SAAS,QAAQ;EAAU,SAAS,QAAQ;CAAY,CAAC,CAAC;CAEnF,IAAI,mBAAmB,QAAQ,QAAQ,UAAU,UAC/C,YAAY,MAAA,GAAA,mBAAA,KAAA,CACL;EACH,GAAI,OAAO,mBAAmB,SAAS,YAAY,CAAC,IAAI,mBAAmB;EAC3E,MAAM,EAAE,OAAO,gBAAgB,iBAAiB,GAAG,QAAQ;GAEzD,MAAM,SADW,YACK,CAAC,CAAC,KAAK,SAAS,SAAS,SAAS,CAAC;GAEzD,IAAI,mBAAmB,MAErB,IAAI,OAAO,mBAAmB,SAAS,YAAY,CAAC,CAAC,mBAAmB,KAAK,OAC3E,mBAAmB,KAAK,MAAM;IAAE;IAAO;IAAgB;IAAiB,GAAG;GAAK,CAAC;QAEjF,OAAO,OAAO,QAAQ;IACpB,UAAU,GAAG,eAAe;IAC5B,WAAW,GAAG,gBAAgB;GAChC,CAAC;GAIL,IAAI,QAAQ,UAAU,UACpB,OAAO,OAAO,QAAQ,EACpB,OAAO,GAAG,MAAM,UAAU,MAAM,IAClC,CAAC;EAEL;CACF,CAAC,CACH;CAGF,OAAO;AACT;AAEA,SAAgB,WAAW,SAA4B;CACrD,MAAM,CAAC,SAAS,cAAA,GAAA,eAAA,gBAAA,CAA6B;EAC3C,OAAO,QAAQ;EACf,cAAc,QAAQ;EACtB,YAAY;EACZ,UAAU,QAAQ;CACpB,CAAC;CAED,MAAM,oBAAA,GAAA,MAAA,OAAA,CAA0B,OAAO;CAEvC,MAAM,CAAC,iBAAiB,uBAAA,GAAA,MAAA,SAAA,CAAwD,IAAI;CACpF,MAAM,cAAc,QAAQ,qCAAqC;CAEjE,MAAM,gBAAA,GAAA,MAAA,OAAA,CAAsB,OAAO;CACnC,IAAI,YAAY,aAAa,SAAS;EACpC,aAAa,UAAU;EACvB,IAAI,WAAW,oBAAoB,MACjC,mBAAmB,IAAI;CAE3B;CAEA,MAAM,wBAAA,GAAA,MAAA,YAAA,OAAyC,mBAAmB,IAAI,GAAG,CAAC,CAAC;CAE3E,MAAM,gBAAgB;EACpB,IAAI,WAAW,CAAC,QAAQ,UACtB,UAAU,KAAK;CAEnB;CAEA,MAAM,iBAAiB;EACrB,IAAI,CAAC,QAAQ,UACX,UAAU,CAAC,OAAO;CAEtB;CAEA,MAAM,YAAA,GAAA,mBAAA,YAAA,CAAmD;EACvD,MAAM;EACN,UAAU,QAAQ;EAClB,WAAW,cAAe,mBAAmB,QAAQ,WAAY,QAAQ;EACzE,YAAY,sBACV,eACM,UACN,eAAe,oBAAoB,MACnC,WACF;EACA,sBAAsB,CAAC,QAAQ,cAAcA,mBAAAA,aAAa,KAAA;CAC5D,CAAC;CAED,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,QAAQ,aACX;EAGF,MAAM,mBAAmB,SAAS,KAAK,UAAU;EACjD,MAAM,kBAAkB,SAAS,KAAK,SAAS;EAE/C,IAAI,WAAW,oBAAoB,iBACjC,QAAA,GAAA,mBAAA,WAAA,CAAkB,kBAAkB,iBAAiB,SAAS,MAAM;CAIxE,GAAG;EACD,QAAQ;EACR;EACA,SAAS;EACT,SAAS,SAAS;EAClB,SAAS,SAAS;CACpB,CAAC;CAED,MAAM,wBAAA,GAAA,MAAA,OAAA,CAA8B,KAAK;CAEzC,CAAA,GAAA,eAAA,oBAAA,OAA0B;EACxB,IAAI,CAAC,SAAS;GACZ,qBAAqB,UAAU;GAC/B;EACF;EAEA,IAAI,CAAC,eAAe,oBAAoB,MACtC;EAGF,MAAM,OAAO,SAAS,KAAK,SAAS;EACpC,IAAI,CAAC,QAAQ,KAAK,iBAAiB,KAAK,KAAK,gBAAgB,GAC3D;EAGF,IAAI,CAAC,qBAAqB,SAAS;GACjC,qBAAqB,UAAU;GAC/B,SAAS,OAAO;GAChB;EACF;EAEA,IAAI,SAAS,cACX,mBAAmB,SAAS,SAAS;CAEzC,GAAG;EACD;EACA;EACA,SAAS;EACT,SAAS;EACT;EACA,SAAS;CACX,CAAC;CAED,MAAM,wBAAA,GAAA,MAAA,OAAA,CAA8B,SAAS,SAAS;CACtD,CAAA,GAAA,eAAA,oBAAA,OAA0B;EACxB,IAAI,qBAAqB,YAAY,SAAS,WAAW;GACvD,qBAAqB,UAAU,SAAS;GACxC,QAAQ,mBAAmB,SAAS,SAAS;EAC/C;CACF,GAAG,CAAC,SAAS,SAAS,CAAC;CAEvB,CAAA,GAAA,eAAA,aAAA,OAAmB;EACjB,IAAI,YAAY,iBAAiB,SAC/B,IAAI,CAAC,SACH,QAAQ,UAAU;OAElB,QAAQ,SAAS;EAIrB,iBAAiB,UAAU;CAC7B,GAAG;EAAC;EAAS,QAAQ;EAAS,QAAQ;CAAM,CAAC;CAE7C,OAAO;EACL;EACA,YAAY,OAAO,QAAQ,WAAW;EACtC,QAAQ;EACR;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-popover.cjs","names":["offset","hide","flip","shift","limitShift","inline","arrow","size","useUncontrolled","useRef","useState","useCallback","useFloating","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":"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
+ {"version":3,"file":"Portal.cjs","names":["factory","useProps","useState","useRef","createPortal"],"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,GAAcC,MAAAA,SAAAA,CAAS,KAAK;CAC5C,MAAM,WAAA,GAAUC,MAAAA,OAAAA,CAA2B,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,GAAOC,UAAAA,aAAAA,CAAa,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,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
+ {"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 type { ProgressContextValue } from './Progress.context';\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';\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;EAEJ,UAAA,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"}
@@ -8,8 +8,9 @@ let react_jsx_runtime = require("react/jsx-runtime");
8
8
  //#region packages/@mantine/core/src/components/Progress/ProgressLabel/ProgressLabel.tsx
9
9
  const ProgressLabel = require_factory.factory((props) => {
10
10
  const { classNames, className, style, styles, vars, ...others } = require_use_props.useProps("ProgressLabel", null, props);
11
+ const ctx = require_Progress_context.useProgressContext();
11
12
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Box.Box, {
12
- ...require_Progress_context.useProgressContext().getStyles("label", {
13
+ ...ctx.getStyles("label", {
13
14
  className,
14
15
  style,
15
16
  classNames,
@@ -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,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
+ {"version":3,"file":"ProgressLabel.cjs","names":["factory","useProps","useProgressContext","Box","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;CAEA,MAAM,MAAMC,yBAAAA,mBAAmB;CAE/B,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EAAK,GAAI,IAAI,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,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"}
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;EACjD,UAAA,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"}