@mantine/core 9.1.1 → 9.2.1

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 (1160) hide show
  1. package/cjs/components/Accordion/Accordion.cjs.map +1 -1
  2. package/cjs/components/Accordion/Accordion.context.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/AccordionItem.context.cjs.map +1 -1
  7. package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
  8. package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
  9. package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs.map +1 -1
  10. package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs.map +1 -1
  11. package/cjs/components/Affix/Affix.cjs.map +1 -1
  12. package/cjs/components/Alert/Alert.cjs.map +1 -1
  13. package/cjs/components/Anchor/Anchor.cjs.map +1 -1
  14. package/cjs/components/AngleSlider/AngleSlider.cjs.map +1 -1
  15. package/cjs/components/AppShell/AppShell.cjs.map +1 -1
  16. package/cjs/components/AppShell/AppShell.context.cjs.map +1 -1
  17. package/cjs/components/AppShell/AppShellAside/AppShellAside.cjs.map +1 -1
  18. package/cjs/components/AppShell/AppShellFooter/AppShellFooter.cjs.map +1 -1
  19. package/cjs/components/AppShell/AppShellHeader/AppShellHeader.cjs.map +1 -1
  20. package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs.map +1 -1
  21. package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs.map +1 -1
  22. package/cjs/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.cjs.map +1 -1
  23. package/cjs/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.cjs.map +1 -1
  24. package/cjs/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.cjs.map +1 -1
  25. package/cjs/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.cjs.map +1 -1
  26. package/cjs/components/AppShell/AppShellMediaStyles/assign-padding-variables/assign-padding-variables.cjs.map +1 -1
  27. package/cjs/components/AppShell/AppShellMediaStyles/get-base-size/get-base-size.cjs.map +1 -1
  28. package/cjs/components/AppShell/AppShellMediaStyles/get-padding-value/get-padding-value.cjs.map +1 -1
  29. package/cjs/components/AppShell/AppShellMediaStyles/get-variables/get-variables.cjs.map +1 -1
  30. package/cjs/components/AppShell/AppShellMediaStyles/is-primitive-size/is-primitive-size.cjs.map +1 -1
  31. package/cjs/components/AppShell/AppShellMediaStyles/is-responsive-size/is-responsive-size.cjs.map +1 -1
  32. package/cjs/components/AppShell/AppShellNavbar/AppShellNavbar.cjs.map +1 -1
  33. package/cjs/components/AppShell/AppShellSection/AppShellSection.cjs.map +1 -1
  34. package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
  35. package/cjs/components/AspectRatio/AspectRatio.cjs.map +1 -1
  36. package/cjs/components/Autocomplete/Autocomplete.cjs +5 -1
  37. package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  38. package/cjs/components/Avatar/Avatar.cjs.map +1 -1
  39. package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs.map +1 -1
  40. package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs.map +1 -1
  41. package/cjs/components/Avatar/get-initials/get-initials.cjs.map +1 -1
  42. package/cjs/components/Avatar/get-initials-color/get-initials-color.cjs.map +1 -1
  43. package/cjs/components/BackgroundImage/BackgroundImage.cjs.map +1 -1
  44. package/cjs/components/Badge/Badge.cjs.map +1 -1
  45. package/cjs/components/Blockquote/Blockquote.cjs.map +1 -1
  46. package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
  47. package/cjs/components/Burger/Burger.cjs.map +1 -1
  48. package/cjs/components/Button/Button.cjs.map +1 -1
  49. package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
  50. package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
  51. package/cjs/components/Card/Card.cjs.map +1 -1
  52. package/cjs/components/Card/Card.context.cjs.map +1 -1
  53. package/cjs/components/Card/CardSection/CardSection.cjs.map +1 -1
  54. package/cjs/components/Center/Center.cjs.map +1 -1
  55. package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
  56. package/cjs/components/Checkbox/Checkbox.cjs +10 -1
  57. package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  58. package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
  59. package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
  60. package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
  61. package/cjs/components/Chip/Chip.cjs.map +1 -1
  62. package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
  63. package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
  64. package/cjs/components/CloseButton/CloseIcon.cjs.map +1 -1
  65. package/cjs/components/Code/Code.cjs.map +1 -1
  66. package/cjs/components/Collapse/Collapse.cjs.map +1 -1
  67. package/cjs/components/ColorInput/ColorInput.cjs +5 -1
  68. package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
  69. package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
  70. package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs.map +1 -1
  71. package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  72. package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
  73. package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
  74. package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs.map +1 -1
  75. package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
  76. package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
  77. package/cjs/components/ColorPicker/Thumb/Thumb.cjs.map +1 -1
  78. package/cjs/components/ColorPicker/converters/converters.cjs.map +1 -1
  79. package/cjs/components/ColorPicker/converters/parsers.cjs.map +1 -1
  80. package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
  81. package/cjs/components/Combobox/Combobox.cjs.map +1 -1
  82. package/cjs/components/Combobox/Combobox.context.cjs.map +1 -1
  83. package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
  84. package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs.map +1 -1
  85. package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs.map +1 -1
  86. package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs.map +1 -1
  87. package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
  88. package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
  89. package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
  90. package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
  91. package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
  92. package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs.map +1 -1
  93. package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
  94. package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
  95. package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
  96. package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
  97. package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
  98. package/cjs/components/Combobox/OptionsDropdown/default-options-filter.cjs.map +1 -1
  99. package/cjs/components/Combobox/OptionsDropdown/is-empty-combobox-data.cjs.map +1 -1
  100. package/cjs/components/Combobox/OptionsDropdown/is-options-group.cjs.map +1 -1
  101. package/cjs/components/Combobox/OptionsDropdown/validate-options.cjs.map +1 -1
  102. package/cjs/components/Combobox/get-options-lockup/get-options-lockup.cjs.map +1 -1
  103. package/cjs/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.cjs.map +1 -1
  104. package/cjs/components/Combobox/use-combobox/get-index/get-index.cjs.map +1 -1
  105. package/cjs/components/Combobox/use-combobox/get-index/get-virtualized-index.cjs.map +1 -1
  106. package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
  107. package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
  108. package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
  109. package/cjs/components/Combobox/use-pills-reorder/move-pill.cjs +17 -0
  110. package/cjs/components/Combobox/use-pills-reorder/move-pill.cjs.map +1 -0
  111. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs +170 -0
  112. package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -0
  113. package/cjs/components/Container/Container.cjs.map +1 -1
  114. package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
  115. package/cjs/components/Dialog/Dialog.cjs.map +1 -1
  116. package/cjs/components/Divider/Divider.cjs.map +1 -1
  117. package/cjs/components/Drawer/Drawer.cjs.map +1 -1
  118. package/cjs/components/Drawer/Drawer.context.cjs.map +1 -1
  119. package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
  120. package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
  121. package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
  122. package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -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.map +1 -1
  127. package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
  128. package/cjs/components/FileButton/FileButton.cjs.map +1 -1
  129. package/cjs/components/FileInput/FileInput.cjs +5 -1
  130. package/cjs/components/FileInput/FileInput.cjs.map +1 -1
  131. package/cjs/components/Flex/Flex.cjs.map +1 -1
  132. package/cjs/components/Flex/flex-props.cjs.map +1 -1
  133. package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
  134. package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
  135. package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
  136. package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
  137. package/cjs/components/Grid/Grid.cjs.map +1 -1
  138. package/cjs/components/Grid/Grid.context.cjs.map +1 -1
  139. package/cjs/components/Grid/GridCol/GridCol.cjs.map +1 -1
  140. package/cjs/components/Grid/GridCol/GridColVariables.cjs.map +1 -1
  141. package/cjs/components/Grid/GridVariables.cjs.map +1 -1
  142. package/cjs/components/Group/Group.cjs.map +1 -1
  143. package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs.map +1 -1
  144. package/cjs/components/Highlight/Highlight.cjs +17 -5
  145. package/cjs/components/Highlight/Highlight.cjs.map +1 -1
  146. package/cjs/components/Highlight/highlighter/highlighter.cjs +60 -3
  147. package/cjs/components/Highlight/highlighter/highlighter.cjs.map +1 -1
  148. package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
  149. package/cjs/components/HoverCard/HoverCard.context.cjs.map +1 -1
  150. package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
  151. package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
  152. package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
  153. package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
  154. package/cjs/components/Image/Image.cjs.map +1 -1
  155. package/cjs/components/Indicator/Indicator.cjs.map +1 -1
  156. package/cjs/components/Indicator/get-position-variables/get-position-variables.cjs.map +1 -1
  157. package/cjs/components/Input/Input.cjs.map +1 -1
  158. package/cjs/components/Input/Input.context.cjs.map +1 -1
  159. package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
  160. package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
  161. package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -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.map +1 -1
  165. package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
  166. package/cjs/components/Input/InputWrapper/get-input-offsets/get-input-offsets.cjs.map +1 -1
  167. package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
  168. package/cjs/components/Input/use-input-props.cjs +5 -1
  169. package/cjs/components/Input/use-input-props.cjs.map +1 -1
  170. package/cjs/components/InputBase/InputBase.cjs.map +1 -1
  171. package/cjs/components/JsonInput/JsonInput.cjs +5 -2
  172. package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
  173. package/cjs/components/JsonInput/validate-json/validate-json.cjs.map +1 -1
  174. package/cjs/components/Kbd/Kbd.cjs.map +1 -1
  175. package/cjs/components/List/List.cjs.map +1 -1
  176. package/cjs/components/List/List.context.cjs.map +1 -1
  177. package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
  178. package/cjs/components/Loader/Loader.cjs.map +1 -1
  179. package/cjs/components/Loader/loaders/Bars.cjs.map +1 -1
  180. package/cjs/components/Loader/loaders/Dots.cjs.map +1 -1
  181. package/cjs/components/Loader/loaders/Oval.cjs.map +1 -1
  182. package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
  183. package/cjs/components/Mark/Mark.cjs.map +1 -1
  184. package/cjs/components/Mark/get-mark-color.cjs.map +1 -1
  185. package/cjs/components/Marquee/Marquee.cjs.map +1 -1
  186. package/cjs/components/MaskInput/MaskInput.cjs +5 -1
  187. package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
  188. package/cjs/components/MaskInput/use-mask-input-props.cjs +3 -2
  189. package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
  190. package/cjs/components/Menu/Menu.cjs +11 -1
  191. package/cjs/components/Menu/Menu.cjs.map +1 -1
  192. package/cjs/components/Menu/Menu.context.cjs.map +1 -1
  193. package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
  194. package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
  195. package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
  196. package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
  197. package/cjs/components/Menu/MenuSub/MenuSub.cjs +55 -10
  198. package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
  199. package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
  200. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs +9 -7
  201. package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
  202. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs +8 -5
  203. package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
  204. package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs.map +1 -1
  205. package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
  206. package/cjs/components/Modal/Modal.cjs.map +1 -1
  207. package/cjs/components/Modal/Modal.context.cjs.map +1 -1
  208. package/cjs/components/Modal/ModalBody.cjs.map +1 -1
  209. package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
  210. package/cjs/components/Modal/ModalContent.cjs.map +1 -1
  211. package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
  212. package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
  213. package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
  214. package/cjs/components/Modal/ModalStack.cjs.map +1 -1
  215. package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
  216. package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
  217. package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
  218. package/cjs/components/ModalBase/ModalBase.context.cjs.map +1 -1
  219. package/cjs/components/ModalBase/ModalBaseBody.cjs.map +1 -1
  220. package/cjs/components/ModalBase/ModalBaseCloseButton.cjs.map +1 -1
  221. package/cjs/components/ModalBase/ModalBaseContent.cjs.map +1 -1
  222. package/cjs/components/ModalBase/ModalBaseHeader.cjs.map +1 -1
  223. package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
  224. package/cjs/components/ModalBase/ModalBaseTitle.cjs.map +1 -1
  225. package/cjs/components/ModalBase/NativeScrollArea.cjs.map +1 -1
  226. package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
  227. package/cjs/components/ModalBase/use-modal-body-id.cjs.map +1 -1
  228. package/cjs/components/ModalBase/use-modal-title-id.cjs.map +1 -1
  229. package/cjs/components/ModalBase/use-modal-transition.cjs.map +1 -1
  230. package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
  231. package/cjs/components/MultiSelect/MultiSelect.cjs +19 -3
  232. package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
  233. package/cjs/components/MultiSelect/filter-picked-values.cjs.map +1 -1
  234. package/cjs/components/NativeSelect/NativeSelect.cjs +5 -1
  235. package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
  236. package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
  237. package/cjs/components/NavLink/NavLink.cjs.map +1 -1
  238. package/cjs/components/Notification/Notification.cjs.map +1 -1
  239. package/cjs/components/NumberFormatter/NumberFormatter.cjs.map +1 -1
  240. package/cjs/components/NumberInput/NumberInput.cjs +5 -1
  241. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  242. package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
  243. package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
  244. package/cjs/components/OverflowList/get-row-position-data.cjs.map +1 -1
  245. package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
  246. package/cjs/components/Overlay/Overlay.cjs.map +1 -1
  247. package/cjs/components/Pagination/Pagination.cjs.map +1 -1
  248. package/cjs/components/Pagination/Pagination.context.cjs.map +1 -1
  249. package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
  250. package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs.map +1 -1
  251. package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
  252. package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
  253. package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
  254. package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
  255. package/cjs/components/Paper/Paper.cjs.map +1 -1
  256. package/cjs/components/PasswordInput/PasswordInput.cjs +5 -1
  257. package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
  258. package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
  259. package/cjs/components/Pill/Pill.cjs.map +1 -1
  260. package/cjs/components/Pill/Pill.module.cjs.map +1 -1
  261. package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
  262. package/cjs/components/PillsInput/PillsInput.cjs +5 -1
  263. package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
  264. package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
  265. package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
  266. package/cjs/components/PinInput/PinInput.cjs +3 -3
  267. package/cjs/components/PinInput/PinInput.cjs.map +1 -1
  268. package/cjs/components/PinInput/create-pin-array/create-pin-array.cjs.map +1 -1
  269. package/cjs/components/Popover/Popover.cjs.map +1 -1
  270. package/cjs/components/Popover/Popover.context.cjs.map +1 -1
  271. package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
  272. package/cjs/components/Popover/PopoverTarget/PopoverTarget.cjs.map +1 -1
  273. package/cjs/components/Popover/use-popover.cjs.map +1 -1
  274. package/cjs/components/Portal/OptionalPortal.cjs.map +1 -1
  275. package/cjs/components/Portal/Portal.cjs.map +1 -1
  276. package/cjs/components/Progress/Progress.cjs.map +1 -1
  277. package/cjs/components/Progress/Progress.context.cjs.map +1 -1
  278. package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
  279. package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
  280. package/cjs/components/Progress/ProgressSection/ProgressSection.cjs.map +1 -1
  281. package/cjs/components/Radio/Radio.cjs +7 -1
  282. package/cjs/components/Radio/Radio.cjs.map +1 -1
  283. package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
  284. package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
  285. package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
  286. package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
  287. package/cjs/components/Rating/Rating.cjs.map +1 -1
  288. package/cjs/components/Rating/Rating.context.cjs.map +1 -1
  289. package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
  290. package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
  291. package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
  292. package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
  293. package/cjs/components/RingProgress/Curve/get-curve-props.cjs.map +1 -1
  294. package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
  295. package/cjs/components/RingProgress/get-curves/get-curves.cjs.map +1 -1
  296. package/cjs/components/RollingNumber/DigitColumn.cjs +46 -0
  297. package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -0
  298. package/cjs/components/RollingNumber/RollingNumber.cjs +102 -0
  299. package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -0
  300. package/cjs/components/RollingNumber/RollingNumber.module.cjs +13 -0
  301. package/cjs/components/RollingNumber/RollingNumber.module.cjs.map +1 -0
  302. package/cjs/components/RollingNumber/build-value.cjs +22 -0
  303. package/cjs/components/RollingNumber/build-value.cjs.map +1 -0
  304. package/cjs/components/RollingNumber/get-digit-parts.cjs +40 -0
  305. package/cjs/components/RollingNumber/get-digit-parts.cjs.map +1 -0
  306. package/cjs/components/RollingNumber/get-render-slots.cjs +78 -0
  307. package/cjs/components/RollingNumber/get-render-slots.cjs.map +1 -0
  308. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  309. package/cjs/components/ScrollArea/ScrollArea.context.cjs.map +1 -1
  310. package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
  311. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs +1 -1
  312. package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
  313. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs.map +1 -1
  314. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
  315. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
  316. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
  317. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
  318. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs +1 -1
  319. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
  320. package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.cjs.map +1 -1
  321. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
  322. package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
  323. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs +1 -1
  324. package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
  325. package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
  326. package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
  327. package/cjs/components/ScrollArea/utils/add-unlinked-scroll-listener.cjs.map +1 -1
  328. package/cjs/components/ScrollArea/utils/compose-event-handlers.cjs.map +1 -1
  329. package/cjs/components/ScrollArea/utils/get-scroll-position-from-pointer.cjs.map +1 -1
  330. package/cjs/components/ScrollArea/utils/get-thumb-offset-from-scroll.cjs.map +1 -1
  331. package/cjs/components/ScrollArea/utils/get-thumb-ratio.cjs.map +1 -1
  332. package/cjs/components/ScrollArea/utils/get-thumb-size.cjs.map +1 -1
  333. package/cjs/components/ScrollArea/utils/is-scrolling-within-scrollbar-bounds.cjs.map +1 -1
  334. package/cjs/components/ScrollArea/utils/linear-scale.cjs.map +1 -1
  335. package/cjs/components/ScrollArea/utils/to-int.cjs.map +1 -1
  336. package/cjs/components/Scroller/Scroller.cjs.map +1 -1
  337. package/cjs/components/SegmentedControl/SegmentedControl.cjs +1 -1
  338. package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
  339. package/cjs/components/Select/Select.cjs +5 -1
  340. package/cjs/components/Select/Select.cjs.map +1 -1
  341. package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
  342. package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  343. package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
  344. package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  345. package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
  346. package/cjs/components/Slider/Marks/is-mark-filled.cjs.map +1 -1
  347. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs +3 -1
  348. package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
  349. package/cjs/components/Slider/Slider/Slider.cjs +2 -1
  350. package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
  351. package/cjs/components/Slider/Slider.context.cjs.map +1 -1
  352. package/cjs/components/Slider/SliderRoot/SliderRoot.cjs.map +1 -1
  353. package/cjs/components/Slider/Thumb/Thumb.cjs +3 -1
  354. package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
  355. package/cjs/components/Slider/Track/Track.cjs.map +1 -1
  356. package/cjs/components/Slider/utils/get-change-value/get-change-value.cjs.map +1 -1
  357. package/cjs/components/Slider/utils/get-client-position/get-client-position.cjs.map +1 -1
  358. package/cjs/components/Slider/utils/get-floating-value/get-floating-value.cjs.map +1 -1
  359. package/cjs/components/Slider/utils/get-position/get-position.cjs.map +1 -1
  360. package/cjs/components/Slider/utils/get-precision/get-precision.cjs.map +1 -1
  361. package/cjs/components/Slider/utils/get-step-mark-value/get-step-mark-value.cjs.map +1 -1
  362. package/cjs/components/Space/Space.cjs.map +1 -1
  363. package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
  364. package/cjs/components/Stack/Stack.cjs.map +1 -1
  365. package/cjs/components/Stepper/Stepper.cjs.map +1 -1
  366. package/cjs/components/Stepper/Stepper.context.cjs.map +1 -1
  367. package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
  368. package/cjs/components/Switch/Switch.cjs +6 -0
  369. package/cjs/components/Switch/Switch.cjs.map +1 -1
  370. package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
  371. package/cjs/components/Table/Table.cjs.map +1 -1
  372. package/cjs/components/Table/Table.components.cjs.map +1 -1
  373. package/cjs/components/Table/Table.context.cjs.map +1 -1
  374. package/cjs/components/Table/Table.module.cjs.map +1 -1
  375. package/cjs/components/Table/TableDataRenderer.cjs.map +1 -1
  376. package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
  377. package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
  378. package/cjs/components/Tabs/Tabs.cjs.map +1 -1
  379. package/cjs/components/Tabs/Tabs.context.cjs.map +1 -1
  380. package/cjs/components/Tabs/TabsList/TabsList.cjs.map +1 -1
  381. package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
  382. package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
  383. package/cjs/components/TagsInput/TagsInput.cjs +19 -4
  384. package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  385. package/cjs/components/TagsInput/filter-picked-tags.cjs.map +1 -1
  386. package/cjs/components/TagsInput/get-splitted-tags.cjs.map +1 -1
  387. package/cjs/components/Text/Text.cjs.map +1 -1
  388. package/cjs/components/TextInput/TextInput.cjs +5 -1
  389. package/cjs/components/TextInput/TextInput.cjs.map +1 -1
  390. package/cjs/components/Textarea/Autosize.cjs.map +1 -1
  391. package/cjs/components/Textarea/Textarea.cjs +5 -2
  392. package/cjs/components/Textarea/Textarea.cjs.map +1 -1
  393. package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
  394. package/cjs/components/Timeline/Timeline.cjs.map +1 -1
  395. package/cjs/components/Timeline/Timeline.context.cjs.map +1 -1
  396. package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
  397. package/cjs/components/Title/Title.cjs.map +1 -1
  398. package/cjs/components/Title/get-title-size.cjs.map +1 -1
  399. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  400. package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
  401. package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
  402. package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
  403. package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
  404. package/cjs/components/Transition/Transition.cjs.map +1 -1
  405. package/cjs/components/Transition/get-transition-props/get-transition-props.cjs.map +1 -1
  406. package/cjs/components/Transition/get-transition-styles/get-transition-styles.cjs.map +1 -1
  407. package/cjs/components/Transition/transitions.cjs.map +1 -1
  408. package/cjs/components/Transition/use-transition.cjs.map +1 -1
  409. package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
  410. package/cjs/components/Tree/Tree.cjs.map +1 -1
  411. package/cjs/components/Tree/TreeNode.cjs.map +1 -1
  412. package/cjs/components/Tree/filter-tree-data/filter-tree-data.cjs.map +1 -1
  413. package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs.map +1 -1
  414. package/cjs/components/Tree/get-all-checked-nodes/get-all-checked-nodes.cjs.map +1 -1
  415. package/cjs/components/Tree/get-children-nodes-values/get-children-nodes-values.cjs.map +1 -1
  416. package/cjs/components/Tree/is-node-checked/is-node-checked.cjs +1 -0
  417. package/cjs/components/Tree/is-node-checked/is-node-checked.cjs.map +1 -1
  418. package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs +1 -0
  419. package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs.map +1 -1
  420. package/cjs/components/Tree/merge-async-children/merge-async-children.cjs.map +1 -1
  421. package/cjs/components/Tree/move-tree-node/move-tree-node.cjs.map +1 -1
  422. package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
  423. package/cjs/components/Tree/use-tree.cjs.map +1 -1
  424. package/cjs/components/TreeSelect/TreeSelect.cjs +602 -0
  425. package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -0
  426. package/cjs/components/TreeSelect/TreeSelect.module.cjs +16 -0
  427. package/cjs/components/TreeSelect/TreeSelect.module.cjs.map +1 -0
  428. package/cjs/components/TreeSelect/TreeSelectOption.cjs +95 -0
  429. package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -0
  430. package/cjs/components/TreeSelect/flatten-tree-select-data.cjs +34 -0
  431. package/cjs/components/TreeSelect/flatten-tree-select-data.cjs.map +1 -0
  432. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs +30 -0
  433. package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +1 -0
  434. package/cjs/components/Typography/Typography.cjs.map +1 -1
  435. package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
  436. package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  437. package/cjs/core/Box/Box.cjs.map +1 -1
  438. package/cjs/core/Box/get-box-mod/get-box-mod.cjs.map +1 -1
  439. package/cjs/core/Box/get-box-style/get-box-style.cjs.map +1 -1
  440. package/cjs/core/Box/get-style-object/get-style-object.cjs.map +1 -1
  441. package/cjs/core/Box/style-props/extract-style-props/extract-style-props.cjs.map +1 -1
  442. package/cjs/core/Box/style-props/parse-style-props/parse-style-props.cjs.map +1 -1
  443. package/cjs/core/Box/style-props/parse-style-props/sort-media-queries.cjs.map +1 -1
  444. package/cjs/core/Box/style-props/resolvers/border-resolver/border-resolver.cjs.map +1 -1
  445. package/cjs/core/Box/style-props/resolvers/color-resolver/color-resolver.cjs.map +1 -1
  446. package/cjs/core/Box/style-props/resolvers/font-family-resolver/font-family-resolver.cjs.map +1 -1
  447. package/cjs/core/Box/style-props/resolvers/font-size-resolver/font-size-resolver.cjs.map +1 -1
  448. package/cjs/core/Box/style-props/resolvers/identity-resolver/identity-resolver.cjs.map +1 -1
  449. package/cjs/core/Box/style-props/resolvers/index.cjs.map +1 -1
  450. package/cjs/core/Box/style-props/resolvers/line-height-resolver/line-height-resolver.cjs.map +1 -1
  451. package/cjs/core/Box/style-props/resolvers/radius-resolver/radius-resolver.cjs.map +1 -1
  452. package/cjs/core/Box/style-props/resolvers/size-resolver/size-resolver.cjs.map +1 -1
  453. package/cjs/core/Box/style-props/resolvers/spacing-resolver/spacing-resolver.cjs.map +1 -1
  454. package/cjs/core/Box/style-props/style-props-data.cjs.map +1 -1
  455. package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
  456. package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
  457. package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
  458. package/cjs/core/InlineStyles/css-object-to-string/css-object-to-string.cjs.map +1 -1
  459. package/cjs/core/InlineStyles/hash-styles.cjs.map +1 -1
  460. package/cjs/core/InlineStyles/styles-to-string/styles-to-string.cjs.map +1 -1
  461. package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs.map +1 -1
  462. package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
  463. package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs.map +1 -1
  464. package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
  465. package/cjs/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.cjs.map +1 -1
  466. package/cjs/core/MantineProvider/MantineCssVariables/get-css-color-variables.cjs.map +1 -1
  467. package/cjs/core/MantineProvider/MantineCssVariables/get-merged-variables.cjs.map +1 -1
  468. package/cjs/core/MantineProvider/MantineCssVariables/remove-default-variables.cjs.map +1 -1
  469. package/cjs/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.cjs.map +1 -1
  470. package/cjs/core/MantineProvider/MantineCssVariables/virtual-color/virtual-color.cjs.map +1 -1
  471. package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
  472. package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
  473. package/cjs/core/MantineProvider/color-functions/colors-tuple/colors-tuple.cjs.map +1 -1
  474. package/cjs/core/MantineProvider/color-functions/darken/darken.cjs.map +1 -1
  475. package/cjs/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs.map +1 -1
  476. package/cjs/core/MantineProvider/color-functions/get-auto-contrast-value/get-auto-contrast-value.cjs.map +1 -1
  477. package/cjs/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.cjs.map +1 -1
  478. package/cjs/core/MantineProvider/color-functions/get-gradient/get-gradient.cjs.map +1 -1
  479. package/cjs/core/MantineProvider/color-functions/get-primary-shade/get-primary-shade.cjs.map +1 -1
  480. package/cjs/core/MantineProvider/color-functions/get-theme-color/get-theme-color.cjs.map +1 -1
  481. package/cjs/core/MantineProvider/color-functions/lighten/lighten.cjs.map +1 -1
  482. package/cjs/core/MantineProvider/color-functions/luminance/luminance.cjs.map +1 -1
  483. package/cjs/core/MantineProvider/color-functions/parse-theme-color/parse-theme-color.cjs.map +1 -1
  484. package/cjs/core/MantineProvider/color-functions/rgba/rgba.cjs.map +1 -1
  485. package/cjs/core/MantineProvider/color-functions/to-rgba/to-rgba.cjs.map +1 -1
  486. package/cjs/core/MantineProvider/color-scheme-managers/is-mantine-color-scheme.cjs.map +1 -1
  487. package/cjs/core/MantineProvider/color-scheme-managers/local-storage-manager.cjs.map +1 -1
  488. package/cjs/core/MantineProvider/convert-css-variables/convert-css-variables.cjs.map +1 -1
  489. package/cjs/core/MantineProvider/convert-css-variables/css-variables-object-to-string.cjs.map +1 -1
  490. package/cjs/core/MantineProvider/create-theme/create-theme.cjs.map +1 -1
  491. package/cjs/core/MantineProvider/default-colors.cjs.map +1 -1
  492. package/cjs/core/MantineProvider/default-theme.cjs.map +1 -1
  493. package/cjs/core/MantineProvider/mantine-html-props.cjs.map +1 -1
  494. package/cjs/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.cjs +4 -1
  495. package/cjs/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.cjs.map +1 -1
  496. package/cjs/core/MantineProvider/merge-theme-overrides/merge-theme-overrides.cjs.map +1 -1
  497. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
  498. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
  499. package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
  500. package/cjs/core/MantineProvider/use-matches/use-matches.cjs.map +1 -1
  501. package/cjs/core/MantineProvider/use-props/use-props.cjs +10 -2
  502. package/cjs/core/MantineProvider/use-props/use-props.cjs.map +1 -1
  503. package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs.map +1 -1
  504. package/cjs/core/factory/create-polymorphic-component.cjs.map +1 -1
  505. package/cjs/core/factory/factory.cjs.map +1 -1
  506. package/cjs/core/factory/polymorphic-factory.cjs.map +1 -1
  507. package/cjs/core/styles-api/create-vars-resolver/create-vars-resolver.cjs.map +1 -1
  508. package/cjs/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.cjs.map +1 -1
  509. package/cjs/core/styles-api/use-styles/get-class-name/get-class-name.cjs.map +1 -1
  510. package/cjs/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.cjs.map +1 -1
  511. package/cjs/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.cjs.map +1 -1
  512. package/cjs/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.cjs.map +1 -1
  513. package/cjs/core/styles-api/use-styles/get-class-name/get-root-class-name/get-root-class-name.cjs.map +1 -1
  514. package/cjs/core/styles-api/use-styles/get-class-name/get-selector-class-name/get-selector-class-name.cjs.map +1 -1
  515. package/cjs/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.cjs.map +1 -1
  516. package/cjs/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.cjs.map +1 -1
  517. package/cjs/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.cjs.map +1 -1
  518. package/cjs/core/styles-api/use-styles/get-style/get-style.cjs.map +1 -1
  519. package/cjs/core/styles-api/use-styles/get-style/resolve-style/resolve-style.cjs.map +1 -1
  520. package/cjs/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.cjs.map +1 -1
  521. package/cjs/core/styles-api/use-styles/get-style/resolve-vars/merge-vars.cjs.map +1 -1
  522. package/cjs/core/styles-api/use-styles/use-styles.cjs.map +1 -1
  523. package/cjs/core/styles-api/use-styles/use-transformed-styles.cjs.map +1 -1
  524. package/cjs/core/utils/camel-to-kebab-case/camel-to-kebab-case.cjs.map +1 -1
  525. package/cjs/core/utils/close-on-escape/close-on-escape.cjs.map +1 -1
  526. package/cjs/core/utils/create-event-handler/create-event-handler.cjs.map +1 -1
  527. package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
  528. package/cjs/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.cjs.map +1 -1
  529. package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs.map +1 -1
  530. package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -1
  531. package/cjs/core/utils/filter-props/filter-props.cjs.map +1 -1
  532. package/cjs/core/utils/find-closest-number/find-closest-number.cjs.map +1 -1
  533. package/cjs/core/utils/find-element-ancestor/find-element-ancestor.cjs.map +1 -1
  534. package/cjs/core/utils/find-element-in-shadow-dom/find-element-in-shadow-dom.cjs.map +1 -1
  535. package/cjs/core/utils/get-base-value/get-base-value.cjs.map +1 -1
  536. package/cjs/core/utils/get-breakpoint-value/get-breakpoint-value.cjs.map +1 -1
  537. package/cjs/core/utils/get-context-item-index/get-context-item-index.cjs.map +1 -1
  538. package/cjs/core/utils/get-default-z-index/get-default-z-index.cjs.map +1 -1
  539. package/cjs/core/utils/get-env/get-env.cjs.map +1 -1
  540. package/cjs/core/utils/get-ref-prop/get-ref-prop.cjs.map +1 -1
  541. package/cjs/core/utils/get-safe-id/get-safe-id.cjs.map +1 -1
  542. package/cjs/core/utils/get-single-element-child/get-single-element-child.cjs.map +1 -1
  543. package/cjs/core/utils/get-size/get-size.cjs.map +1 -1
  544. package/cjs/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.cjs.map +1 -1
  545. package/cjs/core/utils/is-element/is-element.cjs.map +1 -1
  546. package/cjs/core/utils/is-number-like/is-number-like.cjs.map +1 -1
  547. package/cjs/core/utils/keys/keys.cjs.map +1 -1
  548. package/cjs/core/utils/memoize/memoize.cjs.map +1 -1
  549. package/cjs/core/utils/noop/noop.cjs.map +1 -1
  550. package/cjs/core/utils/primitive/primitive.cjs.map +1 -1
  551. package/cjs/core/utils/units-converters/px.cjs.map +1 -1
  552. package/cjs/core/utils/units-converters/rem.cjs.map +1 -1
  553. package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
  554. package/cjs/index.cjs +8 -0
  555. package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs.map +1 -1
  556. package/cjs/utils/Floating/FloatingArrow/get-arrow-position-styles.cjs.map +1 -1
  557. package/cjs/utils/Floating/get-floating-position/get-floating-position.cjs.map +1 -1
  558. package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
  559. package/cjs/utils/InlineInput/InlineInput.cjs +4 -0
  560. package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
  561. package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
  562. package/esm/components/Accordion/Accordion.context.mjs.map +1 -1
  563. package/esm/components/Accordion/Accordion.mjs.map +1 -1
  564. package/esm/components/Accordion/AccordionChevron.mjs.map +1 -1
  565. package/esm/components/Accordion/AccordionControl/AccordionControl.mjs.map +1 -1
  566. package/esm/components/Accordion/AccordionItem/AccordionItem.mjs.map +1 -1
  567. package/esm/components/Accordion/AccordionItem.context.mjs.map +1 -1
  568. package/esm/components/Accordion/AccordionPanel/AccordionPanel.mjs.map +1 -1
  569. package/esm/components/ActionIcon/ActionIcon.mjs.map +1 -1
  570. package/esm/components/ActionIcon/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
  571. package/esm/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.mjs.map +1 -1
  572. package/esm/components/Affix/Affix.mjs.map +1 -1
  573. package/esm/components/Alert/Alert.mjs.map +1 -1
  574. package/esm/components/Anchor/Anchor.mjs.map +1 -1
  575. package/esm/components/AngleSlider/AngleSlider.mjs.map +1 -1
  576. package/esm/components/AppShell/AppShell.context.mjs.map +1 -1
  577. package/esm/components/AppShell/AppShell.mjs.map +1 -1
  578. package/esm/components/AppShell/AppShellAside/AppShellAside.mjs.map +1 -1
  579. package/esm/components/AppShell/AppShellFooter/AppShellFooter.mjs.map +1 -1
  580. package/esm/components/AppShell/AppShellHeader/AppShellHeader.mjs.map +1 -1
  581. package/esm/components/AppShell/AppShellMain/AppShellMain.mjs.map +1 -1
  582. package/esm/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.mjs.map +1 -1
  583. package/esm/components/AppShell/AppShellMediaStyles/assign-aside-variables/assign-aside-variables.mjs.map +1 -1
  584. package/esm/components/AppShell/AppShellMediaStyles/assign-footer-variables/assign-footer-variables.mjs.map +1 -1
  585. package/esm/components/AppShell/AppShellMediaStyles/assign-header-variables/assign-header-variables.mjs.map +1 -1
  586. package/esm/components/AppShell/AppShellMediaStyles/assign-navbar-variables/assign-navbar-variables.mjs.map +1 -1
  587. package/esm/components/AppShell/AppShellMediaStyles/assign-padding-variables/assign-padding-variables.mjs.map +1 -1
  588. package/esm/components/AppShell/AppShellMediaStyles/get-base-size/get-base-size.mjs.map +1 -1
  589. package/esm/components/AppShell/AppShellMediaStyles/get-padding-value/get-padding-value.mjs.map +1 -1
  590. package/esm/components/AppShell/AppShellMediaStyles/get-variables/get-variables.mjs.map +1 -1
  591. package/esm/components/AppShell/AppShellMediaStyles/is-primitive-size/is-primitive-size.mjs.map +1 -1
  592. package/esm/components/AppShell/AppShellMediaStyles/is-responsive-size/is-responsive-size.mjs.map +1 -1
  593. package/esm/components/AppShell/AppShellNavbar/AppShellNavbar.mjs.map +1 -1
  594. package/esm/components/AppShell/AppShellSection/AppShellSection.mjs.map +1 -1
  595. package/esm/components/AppShell/use-resizing/use-resizing.mjs.map +1 -1
  596. package/esm/components/AspectRatio/AspectRatio.mjs.map +1 -1
  597. package/esm/components/Autocomplete/Autocomplete.mjs +5 -1
  598. package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
  599. package/esm/components/Avatar/Avatar.mjs.map +1 -1
  600. package/esm/components/Avatar/AvatarGroup/AvatarGroup.mjs.map +1 -1
  601. package/esm/components/Avatar/AvatarPlaceholderIcon.mjs.map +1 -1
  602. package/esm/components/Avatar/get-initials/get-initials.mjs.map +1 -1
  603. package/esm/components/Avatar/get-initials-color/get-initials-color.mjs.map +1 -1
  604. package/esm/components/BackgroundImage/BackgroundImage.mjs.map +1 -1
  605. package/esm/components/Badge/Badge.mjs.map +1 -1
  606. package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
  607. package/esm/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  608. package/esm/components/Burger/Burger.mjs.map +1 -1
  609. package/esm/components/Button/Button.mjs.map +1 -1
  610. package/esm/components/Button/ButtonGroup/ButtonGroup.mjs.map +1 -1
  611. package/esm/components/Button/ButtonGroupSection/ButtonGroupSection.mjs.map +1 -1
  612. package/esm/components/Card/Card.context.mjs.map +1 -1
  613. package/esm/components/Card/Card.mjs.map +1 -1
  614. package/esm/components/Card/CardSection/CardSection.mjs.map +1 -1
  615. package/esm/components/Center/Center.mjs.map +1 -1
  616. package/esm/components/Checkbox/CheckIcon.mjs.map +1 -1
  617. package/esm/components/Checkbox/Checkbox.mjs +10 -1
  618. package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
  619. package/esm/components/Checkbox/CheckboxCard/CheckboxCard.mjs.map +1 -1
  620. package/esm/components/Checkbox/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  621. package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
  622. package/esm/components/Chip/Chip.mjs.map +1 -1
  623. package/esm/components/Chip/ChipGroup/ChipGroup.mjs.map +1 -1
  624. package/esm/components/CloseButton/CloseButton.mjs.map +1 -1
  625. package/esm/components/CloseButton/CloseIcon.mjs.map +1 -1
  626. package/esm/components/Code/Code.mjs.map +1 -1
  627. package/esm/components/Collapse/Collapse.mjs.map +1 -1
  628. package/esm/components/ColorInput/ColorInput.mjs +5 -1
  629. package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
  630. package/esm/components/ColorInput/EyeDropperIcon.mjs.map +1 -1
  631. package/esm/components/ColorPicker/AlphaSlider/AlphaSlider.mjs.map +1 -1
  632. package/esm/components/ColorPicker/ColorPicker.context.mjs.map +1 -1
  633. package/esm/components/ColorPicker/ColorPicker.mjs.map +1 -1
  634. package/esm/components/ColorPicker/ColorSlider/ColorSlider.mjs.map +1 -1
  635. package/esm/components/ColorPicker/HueSlider/HueSlider.mjs.map +1 -1
  636. package/esm/components/ColorPicker/Saturation/Saturation.mjs.map +1 -1
  637. package/esm/components/ColorPicker/Swatches/Swatches.mjs.map +1 -1
  638. package/esm/components/ColorPicker/Thumb/Thumb.mjs.map +1 -1
  639. package/esm/components/ColorPicker/converters/converters.mjs.map +1 -1
  640. package/esm/components/ColorPicker/converters/parsers.mjs.map +1 -1
  641. package/esm/components/ColorSwatch/ColorSwatch.mjs.map +1 -1
  642. package/esm/components/Combobox/Combobox.context.mjs.map +1 -1
  643. package/esm/components/Combobox/Combobox.mjs.map +1 -1
  644. package/esm/components/Combobox/ComboboxChevron/ComboboxChevron.mjs.map +1 -1
  645. package/esm/components/Combobox/ComboboxClearButton/ComboboxClearButton.mjs.map +1 -1
  646. package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.mjs.map +1 -1
  647. package/esm/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.mjs.map +1 -1
  648. package/esm/components/Combobox/ComboboxEmpty/ComboboxEmpty.mjs.map +1 -1
  649. package/esm/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.mjs.map +1 -1
  650. package/esm/components/Combobox/ComboboxFooter/ComboboxFooter.mjs.map +1 -1
  651. package/esm/components/Combobox/ComboboxGroup/ComboboxGroup.mjs.map +1 -1
  652. package/esm/components/Combobox/ComboboxHeader/ComboboxHeader.mjs.map +1 -1
  653. package/esm/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.mjs.map +1 -1
  654. package/esm/components/Combobox/ComboboxOption/ComboboxOption.mjs.map +1 -1
  655. package/esm/components/Combobox/ComboboxOptions/ComboboxOptions.mjs.map +1 -1
  656. package/esm/components/Combobox/ComboboxSearch/ComboboxSearch.mjs.map +1 -1
  657. package/esm/components/Combobox/ComboboxTarget/ComboboxTarget.mjs.map +1 -1
  658. package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
  659. package/esm/components/Combobox/OptionsDropdown/default-options-filter.mjs.map +1 -1
  660. package/esm/components/Combobox/OptionsDropdown/is-empty-combobox-data.mjs.map +1 -1
  661. package/esm/components/Combobox/OptionsDropdown/is-options-group.mjs.map +1 -1
  662. package/esm/components/Combobox/OptionsDropdown/validate-options.mjs.map +1 -1
  663. package/esm/components/Combobox/get-options-lockup/get-options-lockup.mjs.map +1 -1
  664. package/esm/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.mjs.map +1 -1
  665. package/esm/components/Combobox/use-combobox/get-index/get-index.mjs.map +1 -1
  666. package/esm/components/Combobox/use-combobox/get-index/get-virtualized-index.mjs.map +1 -1
  667. package/esm/components/Combobox/use-combobox/use-combobox.mjs.map +1 -1
  668. package/esm/components/Combobox/use-combobox/use-virtualized-combobox.mjs.map +1 -1
  669. package/esm/components/Combobox/use-combobox-target-props/use-combobox-target-props.mjs.map +1 -1
  670. package/esm/components/Combobox/use-pills-reorder/move-pill.mjs +17 -0
  671. package/esm/components/Combobox/use-pills-reorder/move-pill.mjs.map +1 -0
  672. package/esm/components/Combobox/use-pills-reorder/use-pills-reorder.mjs +169 -0
  673. package/esm/components/Combobox/use-pills-reorder/use-pills-reorder.mjs.map +1 -0
  674. package/esm/components/Container/Container.mjs.map +1 -1
  675. package/esm/components/CopyButton/CopyButton.mjs.map +1 -1
  676. package/esm/components/Dialog/Dialog.mjs.map +1 -1
  677. package/esm/components/Divider/Divider.mjs.map +1 -1
  678. package/esm/components/Drawer/Drawer.context.mjs.map +1 -1
  679. package/esm/components/Drawer/Drawer.mjs.map +1 -1
  680. package/esm/components/Drawer/DrawerBody.mjs.map +1 -1
  681. package/esm/components/Drawer/DrawerCloseButton.mjs.map +1 -1
  682. package/esm/components/Drawer/DrawerContent.mjs.map +1 -1
  683. package/esm/components/Drawer/DrawerHeader.mjs.map +1 -1
  684. package/esm/components/Drawer/DrawerOverlay.mjs.map +1 -1
  685. package/esm/components/Drawer/DrawerRoot.mjs.map +1 -1
  686. package/esm/components/Drawer/DrawerStack.mjs.map +1 -1
  687. package/esm/components/Drawer/DrawerTitle.mjs.map +1 -1
  688. package/esm/components/Fieldset/Fieldset.mjs.map +1 -1
  689. package/esm/components/FileButton/FileButton.mjs.map +1 -1
  690. package/esm/components/FileInput/FileInput.mjs +5 -1
  691. package/esm/components/FileInput/FileInput.mjs.map +1 -1
  692. package/esm/components/Flex/Flex.mjs.map +1 -1
  693. package/esm/components/Flex/flex-props.mjs.map +1 -1
  694. package/esm/components/FloatingIndicator/FloatingIndicator.mjs.map +1 -1
  695. package/esm/components/FloatingIndicator/use-floating-indicator.mjs.map +1 -1
  696. package/esm/components/FloatingWindow/FloatingWindow.mjs.map +1 -1
  697. package/esm/components/FocusTrap/FocusTrap.mjs.map +1 -1
  698. package/esm/components/Grid/Grid.context.mjs.map +1 -1
  699. package/esm/components/Grid/Grid.mjs.map +1 -1
  700. package/esm/components/Grid/GridCol/GridCol.mjs.map +1 -1
  701. package/esm/components/Grid/GridCol/GridColVariables.mjs.map +1 -1
  702. package/esm/components/Grid/GridVariables.mjs.map +1 -1
  703. package/esm/components/Group/Group.mjs.map +1 -1
  704. package/esm/components/Group/filter-falsy-children/filter-falsy-children.mjs.map +1 -1
  705. package/esm/components/Highlight/Highlight.mjs +18 -6
  706. package/esm/components/Highlight/Highlight.mjs.map +1 -1
  707. package/esm/components/Highlight/highlighter/highlighter.mjs +60 -4
  708. package/esm/components/Highlight/highlighter/highlighter.mjs.map +1 -1
  709. package/esm/components/HoverCard/HoverCard.context.mjs.map +1 -1
  710. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  711. package/esm/components/HoverCard/HoverCardDropdown/HoverCardDropdown.mjs.map +1 -1
  712. package/esm/components/HoverCard/HoverCardGroup/HoverCardGroup.mjs.map +1 -1
  713. package/esm/components/HoverCard/HoverCardTarget/HoverCardTarget.mjs.map +1 -1
  714. package/esm/components/HoverCard/use-hover-card.mjs.map +1 -1
  715. package/esm/components/Image/Image.mjs.map +1 -1
  716. package/esm/components/Indicator/Indicator.mjs.map +1 -1
  717. package/esm/components/Indicator/get-position-variables/get-position-variables.mjs.map +1 -1
  718. package/esm/components/Input/Input.context.mjs.map +1 -1
  719. package/esm/components/Input/Input.mjs.map +1 -1
  720. package/esm/components/Input/InputClearButton/InputClearButton.mjs.map +1 -1
  721. package/esm/components/Input/InputClearSection/InputClearSection.mjs.map +1 -1
  722. package/esm/components/Input/InputDescription/InputDescription.mjs.map +1 -1
  723. package/esm/components/Input/InputError/InputError.mjs.map +1 -1
  724. package/esm/components/Input/InputLabel/InputLabel.mjs.map +1 -1
  725. package/esm/components/Input/InputPlaceholder/InputPlaceholder.mjs.map +1 -1
  726. package/esm/components/Input/InputWrapper/InputWrapper.mjs.map +1 -1
  727. package/esm/components/Input/InputWrapper/get-input-offsets/get-input-offsets.mjs.map +1 -1
  728. package/esm/components/Input/InputWrapper.context.mjs.map +1 -1
  729. package/esm/components/Input/use-input-props.mjs +5 -1
  730. package/esm/components/Input/use-input-props.mjs.map +1 -1
  731. package/esm/components/InputBase/InputBase.mjs.map +1 -1
  732. package/esm/components/JsonInput/JsonInput.mjs +5 -2
  733. package/esm/components/JsonInput/JsonInput.mjs.map +1 -1
  734. package/esm/components/JsonInput/validate-json/validate-json.mjs.map +1 -1
  735. package/esm/components/Kbd/Kbd.mjs.map +1 -1
  736. package/esm/components/List/List.context.mjs.map +1 -1
  737. package/esm/components/List/List.mjs.map +1 -1
  738. package/esm/components/List/ListItem/ListItem.mjs.map +1 -1
  739. package/esm/components/Loader/Loader.mjs.map +1 -1
  740. package/esm/components/Loader/loaders/Bars.mjs.map +1 -1
  741. package/esm/components/Loader/loaders/Dots.mjs.map +1 -1
  742. package/esm/components/Loader/loaders/Oval.mjs.map +1 -1
  743. package/esm/components/LoadingOverlay/LoadingOverlay.mjs.map +1 -1
  744. package/esm/components/Mark/Mark.mjs.map +1 -1
  745. package/esm/components/Mark/get-mark-color.mjs.map +1 -1
  746. package/esm/components/Marquee/Marquee.mjs.map +1 -1
  747. package/esm/components/MaskInput/MaskInput.mjs +5 -1
  748. package/esm/components/MaskInput/MaskInput.mjs.map +1 -1
  749. package/esm/components/MaskInput/use-mask-input-props.mjs +4 -3
  750. package/esm/components/MaskInput/use-mask-input-props.mjs.map +1 -1
  751. package/esm/components/Menu/Menu.context.mjs.map +1 -1
  752. package/esm/components/Menu/Menu.mjs +12 -2
  753. package/esm/components/Menu/Menu.mjs.map +1 -1
  754. package/esm/components/Menu/MenuDivider/MenuDivider.mjs.map +1 -1
  755. package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
  756. package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
  757. package/esm/components/Menu/MenuLabel/MenuLabel.mjs.map +1 -1
  758. package/esm/components/Menu/MenuSub/MenuSub.context.mjs.map +1 -1
  759. package/esm/components/Menu/MenuSub/MenuSub.mjs +56 -11
  760. package/esm/components/Menu/MenuSub/MenuSub.mjs.map +1 -1
  761. package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs +9 -7
  762. package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs.map +1 -1
  763. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs +8 -5
  764. package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
  765. package/esm/components/Menu/MenuSubTarget/MenuSubTarget.mjs.map +1 -1
  766. package/esm/components/Menu/MenuTarget/MenuTarget.mjs.map +1 -1
  767. package/esm/components/Modal/Modal.context.mjs.map +1 -1
  768. package/esm/components/Modal/Modal.mjs.map +1 -1
  769. package/esm/components/Modal/ModalBody.mjs.map +1 -1
  770. package/esm/components/Modal/ModalCloseButton.mjs.map +1 -1
  771. package/esm/components/Modal/ModalContent.mjs.map +1 -1
  772. package/esm/components/Modal/ModalHeader.mjs.map +1 -1
  773. package/esm/components/Modal/ModalOverlay.mjs.map +1 -1
  774. package/esm/components/Modal/ModalRoot.mjs.map +1 -1
  775. package/esm/components/Modal/ModalStack.mjs.map +1 -1
  776. package/esm/components/Modal/ModalTitle.mjs.map +1 -1
  777. package/esm/components/Modal/use-modals-stack.mjs.map +1 -1
  778. package/esm/components/ModalBase/ModalBase.context.mjs.map +1 -1
  779. package/esm/components/ModalBase/ModalBase.mjs.map +1 -1
  780. package/esm/components/ModalBase/ModalBaseBody.mjs.map +1 -1
  781. package/esm/components/ModalBase/ModalBaseCloseButton.mjs.map +1 -1
  782. package/esm/components/ModalBase/ModalBaseContent.mjs.map +1 -1
  783. package/esm/components/ModalBase/ModalBaseHeader.mjs.map +1 -1
  784. package/esm/components/ModalBase/ModalBaseOverlay.mjs.map +1 -1
  785. package/esm/components/ModalBase/ModalBaseTitle.mjs.map +1 -1
  786. package/esm/components/ModalBase/NativeScrollArea.mjs.map +1 -1
  787. package/esm/components/ModalBase/use-lock-scroll.mjs.map +1 -1
  788. package/esm/components/ModalBase/use-modal-body-id.mjs.map +1 -1
  789. package/esm/components/ModalBase/use-modal-title-id.mjs.map +1 -1
  790. package/esm/components/ModalBase/use-modal-transition.mjs.map +1 -1
  791. package/esm/components/ModalBase/use-modal.mjs.map +1 -1
  792. package/esm/components/MultiSelect/MultiSelect.mjs +19 -3
  793. package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
  794. package/esm/components/MultiSelect/filter-picked-values.mjs.map +1 -1
  795. package/esm/components/NativeSelect/NativeSelect.mjs +5 -1
  796. package/esm/components/NativeSelect/NativeSelect.mjs.map +1 -1
  797. package/esm/components/NativeSelect/NativeSelectOption.mjs.map +1 -1
  798. package/esm/components/NavLink/NavLink.mjs.map +1 -1
  799. package/esm/components/Notification/Notification.mjs.map +1 -1
  800. package/esm/components/NumberFormatter/NumberFormatter.mjs.map +1 -1
  801. package/esm/components/NumberInput/NumberInput.mjs +5 -1
  802. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  803. package/esm/components/NumberInput/NumberInputChevron.mjs.map +1 -1
  804. package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
  805. package/esm/components/OverflowList/get-row-position-data.mjs.map +1 -1
  806. package/esm/components/OverflowList/use-dimensions.mjs.map +1 -1
  807. package/esm/components/Overlay/Overlay.mjs.map +1 -1
  808. package/esm/components/Pagination/Pagination.context.mjs.map +1 -1
  809. package/esm/components/Pagination/Pagination.icons.mjs.map +1 -1
  810. package/esm/components/Pagination/Pagination.mjs.map +1 -1
  811. package/esm/components/Pagination/PaginationControl/PaginationControl.mjs.map +1 -1
  812. package/esm/components/Pagination/PaginationDots/PaginationDots.mjs.map +1 -1
  813. package/esm/components/Pagination/PaginationEdges/PaginationEdges.mjs.map +1 -1
  814. package/esm/components/Pagination/PaginationItems/PaginationItems.mjs.map +1 -1
  815. package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs.map +1 -1
  816. package/esm/components/Paper/Paper.mjs.map +1 -1
  817. package/esm/components/PasswordInput/PasswordInput.mjs +5 -1
  818. package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
  819. package/esm/components/PasswordInput/PasswordToggleIcon.mjs.map +1 -1
  820. package/esm/components/Pill/Pill.mjs.map +1 -1
  821. package/esm/components/Pill/Pill.module.mjs.map +1 -1
  822. package/esm/components/Pill/PillGroup/PillGroup.mjs.map +1 -1
  823. package/esm/components/PillsInput/PillsInput.context.mjs.map +1 -1
  824. package/esm/components/PillsInput/PillsInput.mjs +5 -1
  825. package/esm/components/PillsInput/PillsInput.mjs.map +1 -1
  826. package/esm/components/PillsInput/PillsInputField/PillsInputField.mjs.map +1 -1
  827. package/esm/components/PinInput/PinInput.mjs +3 -3
  828. package/esm/components/PinInput/PinInput.mjs.map +1 -1
  829. package/esm/components/PinInput/create-pin-array/create-pin-array.mjs.map +1 -1
  830. package/esm/components/Popover/Popover.context.mjs.map +1 -1
  831. package/esm/components/Popover/Popover.mjs.map +1 -1
  832. package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
  833. package/esm/components/Popover/PopoverTarget/PopoverTarget.mjs.map +1 -1
  834. package/esm/components/Popover/use-popover.mjs.map +1 -1
  835. package/esm/components/Portal/OptionalPortal.mjs.map +1 -1
  836. package/esm/components/Portal/Portal.mjs.map +1 -1
  837. package/esm/components/Progress/Progress.context.mjs.map +1 -1
  838. package/esm/components/Progress/Progress.mjs.map +1 -1
  839. package/esm/components/Progress/ProgressLabel/ProgressLabel.mjs.map +1 -1
  840. package/esm/components/Progress/ProgressRoot/ProgressRoot.mjs.map +1 -1
  841. package/esm/components/Progress/ProgressSection/ProgressSection.mjs.map +1 -1
  842. package/esm/components/Radio/Radio.mjs +7 -1
  843. package/esm/components/Radio/Radio.mjs.map +1 -1
  844. package/esm/components/Radio/RadioCard/RadioCard.mjs.map +1 -1
  845. package/esm/components/Radio/RadioGroup/RadioGroup.mjs.map +1 -1
  846. package/esm/components/Radio/RadioIcon.mjs.map +1 -1
  847. package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
  848. package/esm/components/Rating/Rating.context.mjs.map +1 -1
  849. package/esm/components/Rating/Rating.mjs.map +1 -1
  850. package/esm/components/Rating/RatingItem/RatingItem.mjs.map +1 -1
  851. package/esm/components/Rating/StarSymbol/StarIcon.mjs.map +1 -1
  852. package/esm/components/Rating/StarSymbol/StarSymbol.mjs.map +1 -1
  853. package/esm/components/RingProgress/Curve/Curve.mjs.map +1 -1
  854. package/esm/components/RingProgress/Curve/get-curve-props.mjs.map +1 -1
  855. package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
  856. package/esm/components/RingProgress/get-curves/get-curves.mjs.map +1 -1
  857. package/esm/components/RollingNumber/DigitColumn.mjs +45 -0
  858. package/esm/components/RollingNumber/DigitColumn.mjs.map +1 -0
  859. package/esm/components/RollingNumber/RollingNumber.mjs +101 -0
  860. package/esm/components/RollingNumber/RollingNumber.mjs.map +1 -0
  861. package/esm/components/RollingNumber/RollingNumber.module.mjs +13 -0
  862. package/esm/components/RollingNumber/RollingNumber.module.mjs.map +1 -0
  863. package/esm/components/RollingNumber/build-value.mjs +22 -0
  864. package/esm/components/RollingNumber/build-value.mjs.map +1 -0
  865. package/esm/components/RollingNumber/get-digit-parts.mjs +40 -0
  866. package/esm/components/RollingNumber/get-digit-parts.mjs.map +1 -0
  867. package/esm/components/RollingNumber/get-render-slots.mjs +78 -0
  868. package/esm/components/RollingNumber/get-render-slots.mjs.map +1 -0
  869. package/esm/components/ScrollArea/ScrollArea.context.mjs.map +1 -1
  870. package/esm/components/ScrollArea/ScrollArea.mjs.map +1 -1
  871. package/esm/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.mjs.map +1 -1
  872. package/esm/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.mjs +1 -1
  873. package/esm/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.mjs.map +1 -1
  874. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.mjs.map +1 -1
  875. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.mjs.map +1 -1
  876. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.mjs.map +1 -1
  877. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.mjs.map +1 -1
  878. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.mjs.map +1 -1
  879. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.mjs.map +1 -1
  880. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs +1 -1
  881. package/esm/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.mjs.map +1 -1
  882. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.mjs.map +1 -1
  883. package/esm/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.mjs.map +1 -1
  884. package/esm/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.mjs +1 -1
  885. package/esm/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.mjs.map +1 -1
  886. package/esm/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.mjs.map +1 -1
  887. package/esm/components/ScrollArea/use-resize-observer.mjs.map +1 -1
  888. package/esm/components/ScrollArea/utils/add-unlinked-scroll-listener.mjs.map +1 -1
  889. package/esm/components/ScrollArea/utils/compose-event-handlers.mjs.map +1 -1
  890. package/esm/components/ScrollArea/utils/get-scroll-position-from-pointer.mjs.map +1 -1
  891. package/esm/components/ScrollArea/utils/get-thumb-offset-from-scroll.mjs.map +1 -1
  892. package/esm/components/ScrollArea/utils/get-thumb-ratio.mjs.map +1 -1
  893. package/esm/components/ScrollArea/utils/get-thumb-size.mjs.map +1 -1
  894. package/esm/components/ScrollArea/utils/is-scrolling-within-scrollbar-bounds.mjs.map +1 -1
  895. package/esm/components/ScrollArea/utils/linear-scale.mjs.map +1 -1
  896. package/esm/components/ScrollArea/utils/to-int.mjs.map +1 -1
  897. package/esm/components/Scroller/Scroller.mjs.map +1 -1
  898. package/esm/components/SegmentedControl/SegmentedControl.mjs +1 -1
  899. package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  900. package/esm/components/Select/Select.mjs +5 -1
  901. package/esm/components/Select/Select.mjs.map +1 -1
  902. package/esm/components/SemiCircleProgress/SemiCircleProgress.mjs.map +1 -1
  903. package/esm/components/SimpleGrid/SimpleGrid.mjs.map +1 -1
  904. package/esm/components/SimpleGrid/SimpleGridVariables.mjs.map +1 -1
  905. package/esm/components/Skeleton/Skeleton.mjs.map +1 -1
  906. package/esm/components/Slider/Marks/Marks.mjs.map +1 -1
  907. package/esm/components/Slider/Marks/is-mark-filled.mjs.map +1 -1
  908. package/esm/components/Slider/RangeSlider/RangeSlider.mjs +3 -1
  909. package/esm/components/Slider/RangeSlider/RangeSlider.mjs.map +1 -1
  910. package/esm/components/Slider/Slider/Slider.mjs +2 -1
  911. package/esm/components/Slider/Slider/Slider.mjs.map +1 -1
  912. package/esm/components/Slider/Slider.context.mjs.map +1 -1
  913. package/esm/components/Slider/SliderRoot/SliderRoot.mjs.map +1 -1
  914. package/esm/components/Slider/Thumb/Thumb.mjs +3 -1
  915. package/esm/components/Slider/Thumb/Thumb.mjs.map +1 -1
  916. package/esm/components/Slider/Track/Track.mjs.map +1 -1
  917. package/esm/components/Slider/utils/get-change-value/get-change-value.mjs.map +1 -1
  918. package/esm/components/Slider/utils/get-client-position/get-client-position.mjs.map +1 -1
  919. package/esm/components/Slider/utils/get-floating-value/get-floating-value.mjs.map +1 -1
  920. package/esm/components/Slider/utils/get-position/get-position.mjs.map +1 -1
  921. package/esm/components/Slider/utils/get-precision/get-precision.mjs.map +1 -1
  922. package/esm/components/Slider/utils/get-step-mark-value/get-step-mark-value.mjs.map +1 -1
  923. package/esm/components/Space/Space.mjs.map +1 -1
  924. package/esm/components/Spoiler/Spoiler.mjs.map +1 -1
  925. package/esm/components/Stack/Stack.mjs.map +1 -1
  926. package/esm/components/Stepper/Stepper.context.mjs.map +1 -1
  927. package/esm/components/Stepper/Stepper.mjs.map +1 -1
  928. package/esm/components/Stepper/StepperStep/StepperStep.mjs.map +1 -1
  929. package/esm/components/Switch/Switch.mjs +6 -0
  930. package/esm/components/Switch/Switch.mjs.map +1 -1
  931. package/esm/components/Switch/SwitchGroup/SwitchGroup.mjs.map +1 -1
  932. package/esm/components/Table/Table.components.mjs.map +1 -1
  933. package/esm/components/Table/Table.context.mjs.map +1 -1
  934. package/esm/components/Table/Table.mjs.map +1 -1
  935. package/esm/components/Table/Table.module.mjs.map +1 -1
  936. package/esm/components/Table/TableDataRenderer.mjs.map +1 -1
  937. package/esm/components/Table/TableScrollContainer.mjs.map +1 -1
  938. package/esm/components/TableOfContents/TableOfContents.mjs.map +1 -1
  939. package/esm/components/Tabs/Tabs.context.mjs.map +1 -1
  940. package/esm/components/Tabs/Tabs.mjs.map +1 -1
  941. package/esm/components/Tabs/TabsList/TabsList.mjs.map +1 -1
  942. package/esm/components/Tabs/TabsPanel/TabsPanel.mjs.map +1 -1
  943. package/esm/components/Tabs/TabsTab/TabsTab.mjs.map +1 -1
  944. package/esm/components/TagsInput/TagsInput.mjs +19 -4
  945. package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
  946. package/esm/components/TagsInput/filter-picked-tags.mjs.map +1 -1
  947. package/esm/components/TagsInput/get-splitted-tags.mjs.map +1 -1
  948. package/esm/components/Text/Text.mjs.map +1 -1
  949. package/esm/components/TextInput/TextInput.mjs +5 -1
  950. package/esm/components/TextInput/TextInput.mjs.map +1 -1
  951. package/esm/components/Textarea/Autosize.mjs.map +1 -1
  952. package/esm/components/Textarea/Textarea.mjs +5 -2
  953. package/esm/components/Textarea/Textarea.mjs.map +1 -1
  954. package/esm/components/ThemeIcon/ThemeIcon.mjs.map +1 -1
  955. package/esm/components/Timeline/Timeline.context.mjs.map +1 -1
  956. package/esm/components/Timeline/Timeline.mjs.map +1 -1
  957. package/esm/components/Timeline/TimelineItem/TimelineItem.mjs.map +1 -1
  958. package/esm/components/Title/Title.mjs.map +1 -1
  959. package/esm/components/Title/get-title-size.mjs.map +1 -1
  960. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  961. package/esm/components/Tooltip/TooltipFloating/TooltipFloating.mjs.map +1 -1
  962. package/esm/components/Tooltip/TooltipFloating/use-floating-tooltip.mjs.map +1 -1
  963. package/esm/components/Tooltip/TooltipGroup/TooltipGroup.mjs.map +1 -1
  964. package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
  965. package/esm/components/Transition/Transition.mjs.map +1 -1
  966. package/esm/components/Transition/get-transition-props/get-transition-props.mjs.map +1 -1
  967. package/esm/components/Transition/get-transition-styles/get-transition-styles.mjs.map +1 -1
  968. package/esm/components/Transition/transitions.mjs.map +1 -1
  969. package/esm/components/Transition/use-transition.mjs.map +1 -1
  970. package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
  971. package/esm/components/Tree/Tree.mjs.map +1 -1
  972. package/esm/components/Tree/TreeNode.mjs.map +1 -1
  973. package/esm/components/Tree/filter-tree-data/filter-tree-data.mjs.map +1 -1
  974. package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs.map +1 -1
  975. package/esm/components/Tree/get-all-checked-nodes/get-all-checked-nodes.mjs.map +1 -1
  976. package/esm/components/Tree/get-children-nodes-values/get-children-nodes-values.mjs.map +1 -1
  977. package/esm/components/Tree/is-node-checked/is-node-checked.mjs +1 -1
  978. package/esm/components/Tree/is-node-checked/is-node-checked.mjs.map +1 -1
  979. package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs +1 -1
  980. package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs.map +1 -1
  981. package/esm/components/Tree/merge-async-children/merge-async-children.mjs.map +1 -1
  982. package/esm/components/Tree/move-tree-node/move-tree-node.mjs.map +1 -1
  983. package/esm/components/Tree/use-tree-node-drag-drop.mjs.map +1 -1
  984. package/esm/components/Tree/use-tree.mjs.map +1 -1
  985. package/esm/components/TreeSelect/TreeSelect.mjs +601 -0
  986. package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -0
  987. package/esm/components/TreeSelect/TreeSelect.module.mjs +16 -0
  988. package/esm/components/TreeSelect/TreeSelect.module.mjs.map +1 -0
  989. package/esm/components/TreeSelect/TreeSelectOption.mjs +94 -0
  990. package/esm/components/TreeSelect/TreeSelectOption.mjs.map +1 -0
  991. package/esm/components/TreeSelect/flatten-tree-select-data.mjs +34 -0
  992. package/esm/components/TreeSelect/flatten-tree-select-data.mjs.map +1 -0
  993. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs +29 -0
  994. package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +1 -0
  995. package/esm/components/Typography/Typography.mjs.map +1 -1
  996. package/esm/components/UnstyledButton/UnstyledButton.mjs.map +1 -1
  997. package/esm/components/VisuallyHidden/VisuallyHidden.mjs.map +1 -1
  998. package/esm/core/Box/Box.mjs.map +1 -1
  999. package/esm/core/Box/get-box-mod/get-box-mod.mjs.map +1 -1
  1000. package/esm/core/Box/get-box-style/get-box-style.mjs.map +1 -1
  1001. package/esm/core/Box/get-style-object/get-style-object.mjs.map +1 -1
  1002. package/esm/core/Box/style-props/extract-style-props/extract-style-props.mjs.map +1 -1
  1003. package/esm/core/Box/style-props/parse-style-props/parse-style-props.mjs.map +1 -1
  1004. package/esm/core/Box/style-props/parse-style-props/sort-media-queries.mjs.map +1 -1
  1005. package/esm/core/Box/style-props/resolvers/border-resolver/border-resolver.mjs.map +1 -1
  1006. package/esm/core/Box/style-props/resolvers/color-resolver/color-resolver.mjs.map +1 -1
  1007. package/esm/core/Box/style-props/resolvers/font-family-resolver/font-family-resolver.mjs.map +1 -1
  1008. package/esm/core/Box/style-props/resolvers/font-size-resolver/font-size-resolver.mjs.map +1 -1
  1009. package/esm/core/Box/style-props/resolvers/identity-resolver/identity-resolver.mjs.map +1 -1
  1010. package/esm/core/Box/style-props/resolvers/index.mjs.map +1 -1
  1011. package/esm/core/Box/style-props/resolvers/line-height-resolver/line-height-resolver.mjs.map +1 -1
  1012. package/esm/core/Box/style-props/resolvers/radius-resolver/radius-resolver.mjs.map +1 -1
  1013. package/esm/core/Box/style-props/resolvers/size-resolver/size-resolver.mjs.map +1 -1
  1014. package/esm/core/Box/style-props/resolvers/spacing-resolver/spacing-resolver.mjs.map +1 -1
  1015. package/esm/core/Box/style-props/style-props-data.mjs.map +1 -1
  1016. package/esm/core/Box/use-random-classname/use-random-classname.mjs.map +1 -1
  1017. package/esm/core/DirectionProvider/DirectionProvider.mjs.map +1 -1
  1018. package/esm/core/InlineStyles/InlineStyles.mjs.map +1 -1
  1019. package/esm/core/InlineStyles/css-object-to-string/css-object-to-string.mjs.map +1 -1
  1020. package/esm/core/InlineStyles/hash-styles.mjs.map +1 -1
  1021. package/esm/core/InlineStyles/styles-to-string/styles-to-string.mjs.map +1 -1
  1022. package/esm/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.mjs.map +1 -1
  1023. package/esm/core/MantineProvider/Mantine.context.mjs.map +1 -1
  1024. package/esm/core/MantineProvider/MantineClasses/MantineClasses.mjs.map +1 -1
  1025. package/esm/core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs.map +1 -1
  1026. package/esm/core/MantineProvider/MantineCssVariables/default-css-variables-resolver.mjs.map +1 -1
  1027. package/esm/core/MantineProvider/MantineCssVariables/get-css-color-variables.mjs.map +1 -1
  1028. package/esm/core/MantineProvider/MantineCssVariables/get-merged-variables.mjs.map +1 -1
  1029. package/esm/core/MantineProvider/MantineCssVariables/remove-default-variables.mjs.map +1 -1
  1030. package/esm/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.mjs.map +1 -1
  1031. package/esm/core/MantineProvider/MantineCssVariables/virtual-color/virtual-color.mjs.map +1 -1
  1032. package/esm/core/MantineProvider/MantineProvider.mjs.map +1 -1
  1033. package/esm/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs.map +1 -1
  1034. package/esm/core/MantineProvider/color-functions/colors-tuple/colors-tuple.mjs.map +1 -1
  1035. package/esm/core/MantineProvider/color-functions/darken/darken.mjs.map +1 -1
  1036. package/esm/core/MantineProvider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs.map +1 -1
  1037. package/esm/core/MantineProvider/color-functions/get-auto-contrast-value/get-auto-contrast-value.mjs.map +1 -1
  1038. package/esm/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.mjs.map +1 -1
  1039. package/esm/core/MantineProvider/color-functions/get-gradient/get-gradient.mjs.map +1 -1
  1040. package/esm/core/MantineProvider/color-functions/get-primary-shade/get-primary-shade.mjs.map +1 -1
  1041. package/esm/core/MantineProvider/color-functions/get-theme-color/get-theme-color.mjs.map +1 -1
  1042. package/esm/core/MantineProvider/color-functions/lighten/lighten.mjs.map +1 -1
  1043. package/esm/core/MantineProvider/color-functions/luminance/luminance.mjs.map +1 -1
  1044. package/esm/core/MantineProvider/color-functions/parse-theme-color/parse-theme-color.mjs.map +1 -1
  1045. package/esm/core/MantineProvider/color-functions/rgba/rgba.mjs.map +1 -1
  1046. package/esm/core/MantineProvider/color-functions/to-rgba/to-rgba.mjs.map +1 -1
  1047. package/esm/core/MantineProvider/color-scheme-managers/is-mantine-color-scheme.mjs.map +1 -1
  1048. package/esm/core/MantineProvider/color-scheme-managers/local-storage-manager.mjs.map +1 -1
  1049. package/esm/core/MantineProvider/convert-css-variables/convert-css-variables.mjs.map +1 -1
  1050. package/esm/core/MantineProvider/convert-css-variables/css-variables-object-to-string.mjs.map +1 -1
  1051. package/esm/core/MantineProvider/create-theme/create-theme.mjs.map +1 -1
  1052. package/esm/core/MantineProvider/default-colors.mjs.map +1 -1
  1053. package/esm/core/MantineProvider/default-theme.mjs.map +1 -1
  1054. package/esm/core/MantineProvider/mantine-html-props.mjs.map +1 -1
  1055. package/esm/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.mjs +4 -1
  1056. package/esm/core/MantineProvider/merge-mantine-theme/merge-mantine-theme.mjs.map +1 -1
  1057. package/esm/core/MantineProvider/merge-theme-overrides/merge-theme-overrides.mjs.map +1 -1
  1058. package/esm/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.mjs.map +1 -1
  1059. package/esm/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.mjs.map +1 -1
  1060. package/esm/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.mjs.map +1 -1
  1061. package/esm/core/MantineProvider/use-matches/use-matches.mjs.map +1 -1
  1062. package/esm/core/MantineProvider/use-props/use-props.mjs +10 -2
  1063. package/esm/core/MantineProvider/use-props/use-props.mjs.map +1 -1
  1064. package/esm/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.mjs.map +1 -1
  1065. package/esm/core/factory/create-polymorphic-component.mjs.map +1 -1
  1066. package/esm/core/factory/factory.mjs.map +1 -1
  1067. package/esm/core/factory/polymorphic-factory.mjs.map +1 -1
  1068. package/esm/core/styles-api/create-vars-resolver/create-vars-resolver.mjs.map +1 -1
  1069. package/esm/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.mjs.map +1 -1
  1070. package/esm/core/styles-api/use-styles/get-class-name/get-class-name.mjs.map +1 -1
  1071. package/esm/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.mjs.map +1 -1
  1072. package/esm/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.mjs.map +1 -1
  1073. package/esm/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.mjs.map +1 -1
  1074. package/esm/core/styles-api/use-styles/get-class-name/get-root-class-name/get-root-class-name.mjs.map +1 -1
  1075. package/esm/core/styles-api/use-styles/get-class-name/get-selector-class-name/get-selector-class-name.mjs.map +1 -1
  1076. package/esm/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.mjs.map +1 -1
  1077. package/esm/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.mjs.map +1 -1
  1078. package/esm/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.mjs.map +1 -1
  1079. package/esm/core/styles-api/use-styles/get-style/get-style.mjs.map +1 -1
  1080. package/esm/core/styles-api/use-styles/get-style/resolve-style/resolve-style.mjs.map +1 -1
  1081. package/esm/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.mjs.map +1 -1
  1082. package/esm/core/styles-api/use-styles/get-style/resolve-vars/merge-vars.mjs.map +1 -1
  1083. package/esm/core/styles-api/use-styles/use-styles.mjs.map +1 -1
  1084. package/esm/core/styles-api/use-styles/use-transformed-styles.mjs.map +1 -1
  1085. package/esm/core/utils/camel-to-kebab-case/camel-to-kebab-case.mjs.map +1 -1
  1086. package/esm/core/utils/close-on-escape/close-on-escape.mjs.map +1 -1
  1087. package/esm/core/utils/create-event-handler/create-event-handler.mjs.map +1 -1
  1088. package/esm/core/utils/create-safe-context/create-safe-context.mjs.map +1 -1
  1089. package/esm/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.mjs.map +1 -1
  1090. package/esm/core/utils/create-use-external-events/create-use-external-events.mjs.map +1 -1
  1091. package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -1
  1092. package/esm/core/utils/filter-props/filter-props.mjs.map +1 -1
  1093. package/esm/core/utils/find-closest-number/find-closest-number.mjs.map +1 -1
  1094. package/esm/core/utils/find-element-ancestor/find-element-ancestor.mjs.map +1 -1
  1095. package/esm/core/utils/find-element-in-shadow-dom/find-element-in-shadow-dom.mjs.map +1 -1
  1096. package/esm/core/utils/get-base-value/get-base-value.mjs.map +1 -1
  1097. package/esm/core/utils/get-breakpoint-value/get-breakpoint-value.mjs.map +1 -1
  1098. package/esm/core/utils/get-context-item-index/get-context-item-index.mjs.map +1 -1
  1099. package/esm/core/utils/get-default-z-index/get-default-z-index.mjs.map +1 -1
  1100. package/esm/core/utils/get-env/get-env.mjs.map +1 -1
  1101. package/esm/core/utils/get-ref-prop/get-ref-prop.mjs.map +1 -1
  1102. package/esm/core/utils/get-safe-id/get-safe-id.mjs.map +1 -1
  1103. package/esm/core/utils/get-single-element-child/get-single-element-child.mjs.map +1 -1
  1104. package/esm/core/utils/get-size/get-size.mjs.map +1 -1
  1105. package/esm/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.mjs.map +1 -1
  1106. package/esm/core/utils/is-element/is-element.mjs.map +1 -1
  1107. package/esm/core/utils/is-number-like/is-number-like.mjs.map +1 -1
  1108. package/esm/core/utils/keys/keys.mjs.map +1 -1
  1109. package/esm/core/utils/memoize/memoize.mjs.map +1 -1
  1110. package/esm/core/utils/noop/noop.mjs.map +1 -1
  1111. package/esm/core/utils/primitive/primitive.mjs.map +1 -1
  1112. package/esm/core/utils/units-converters/px.mjs.map +1 -1
  1113. package/esm/core/utils/units-converters/rem.mjs.map +1 -1
  1114. package/esm/core/utils/use-hovered/use-hovered.mjs.map +1 -1
  1115. package/esm/index.mjs +5 -1
  1116. package/esm/utils/Floating/FloatingArrow/FloatingArrow.mjs.map +1 -1
  1117. package/esm/utils/Floating/FloatingArrow/get-arrow-position-styles.mjs.map +1 -1
  1118. package/esm/utils/Floating/get-floating-position/get-floating-position.mjs.map +1 -1
  1119. package/esm/utils/Floating/use-delayed-hover.mjs.map +1 -1
  1120. package/esm/utils/InlineInput/InlineInput.mjs +4 -0
  1121. package/esm/utils/InlineInput/InlineInput.mjs.map +1 -1
  1122. package/esm/utils/InputsGroupFieldset/InputsGroupFieldset.mjs.map +1 -1
  1123. package/lib/components/Combobox/Combobox.types.d.ts +3 -0
  1124. package/lib/components/Combobox/index.d.ts +2 -0
  1125. package/lib/components/Combobox/use-pills-reorder/move-pill.d.ts +2 -0
  1126. package/lib/components/Combobox/use-pills-reorder/use-pills-reorder.d.ts +26 -0
  1127. package/lib/components/Highlight/Highlight.d.ts +12 -1
  1128. package/lib/components/Highlight/highlighter/highlighter.d.ts +3 -0
  1129. package/lib/components/MaskInput/MaskInput.d.ts +2 -0
  1130. package/lib/components/Menu/Menu.context.d.ts +1 -0
  1131. package/lib/components/Menu/MenuSub/MenuSub.context.d.ts +6 -0
  1132. package/lib/components/MultiSelect/MultiSelect.d.ts +2 -0
  1133. package/lib/components/RollingNumber/DigitColumn.d.ts +11 -0
  1134. package/lib/components/RollingNumber/RollingNumber.d.ts +41 -0
  1135. package/lib/components/RollingNumber/build-value.d.ts +10 -0
  1136. package/lib/components/RollingNumber/get-digit-parts.d.ts +12 -0
  1137. package/lib/components/RollingNumber/get-render-slots.d.ts +35 -0
  1138. package/lib/components/RollingNumber/index.d.ts +9 -0
  1139. package/lib/components/Slider/RangeSlider/RangeSlider.d.ts +2 -0
  1140. package/lib/components/Slider/Slider/Slider.d.ts +2 -0
  1141. package/lib/components/Slider/Thumb/Thumb.d.ts +2 -1
  1142. package/lib/components/TagsInput/TagsInput.d.ts +2 -0
  1143. package/lib/components/TreeSelect/TreeSelect.d.ts +124 -0
  1144. package/lib/components/TreeSelect/TreeSelectOption.d.ts +36 -0
  1145. package/lib/components/TreeSelect/flatten-tree-select-data.d.ts +12 -0
  1146. package/lib/components/TreeSelect/get-checked-values-by-strategy.d.ts +4 -0
  1147. package/lib/components/TreeSelect/index.d.ts +13 -0
  1148. package/lib/components/index.d.ts +2 -0
  1149. package/lib/core/MantineProvider/use-props/use-props.d.ts +1 -1
  1150. package/package.json +4 -4
  1151. package/styles/Pill.css +35 -0
  1152. package/styles/Pill.layer.css +35 -0
  1153. package/styles/RollingNumber.css +60 -0
  1154. package/styles/RollingNumber.layer.css +61 -0
  1155. package/styles/Table.css +30 -0
  1156. package/styles/Table.layer.css +30 -0
  1157. package/styles/TreeSelect.css +113 -0
  1158. package/styles/TreeSelect.layer.css +114 -0
  1159. package/styles.css +240 -0
  1160. package/styles.layer.css +240 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PinInput.mjs","names":["useId","classes"],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { assignRef, useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n createVarsResolver,\n DataAttributes,\n ElementProps,\n Factory,\n factory,\n getSize,\n MantineRadius,\n MantineSize,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { createPinArray } from './create-pin-array/create-pin-array';\nimport classes from './PinInput.module.css';\n\nconst regex = {\n number: /^[0-9]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i,\n};\n\nexport type PinInputStylesNames = 'root' | 'pinInput' | 'input';\n\nexport type PinInputCssVariables = {\n root: '--pin-input-size';\n};\n\nexport interface PinInputProps\n extends BoxProps, StylesApiProps<PinInputFactory>, ElementProps<'div', 'onChange' | 'ref'> {\n ref?: React.Ref<HTMLInputElement>;\n\n /** Hidden input `name` attribute */\n name?: string;\n\n /** Hidden input `form` attribute */\n form?: string;\n\n /** Key of `theme.spacing` or any valid CSS value to set `gap` between inputs, numbers are converted to rem @default 'md' */\n gap?: MantineSpacing;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Controls inputs `width` and `height` @default 'sm' */\n size?: MantineSize;\n\n /** If set, the first input is focused when component is mounted @default false */\n autoFocus?: boolean;\n\n /** Controlled component value */\n value?: string;\n\n /** Uncontrolled component default value */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Called when all inputs have value */\n onComplete?: (value: string) => void;\n\n /** Inputs placeholder @default '○' */\n placeholder?: string;\n\n /** Determines whether focus should be moved automatically to the next input once filled @default true */\n manageFocus?: boolean;\n\n /** Determines whether `autocomplete=\"one-time-code\"` attribute should be set on all inputs @default true */\n oneTimeCode?: boolean;\n\n /** Base id used to generate unique ids for inputs */\n id?: string;\n\n /** Adds disabled attribute to all inputs */\n disabled?: boolean;\n\n /** Sets `aria-invalid` attribute and applies error styles to all inputs */\n error?: boolean;\n\n /** Determines which values can be entered @default 'alphanumeric' */\n type?: 'alphanumeric' | 'number' | RegExp;\n\n /** Changes input type to `\"password\"` @default false */\n mask?: boolean;\n\n /** Number of inputs @default 4 */\n length?: number;\n\n /** If set, the user cannot edit the value */\n readOnly?: boolean;\n\n /** Inputs `type` attribute, inferred from the `type` prop if not specified */\n inputType?: React.HTMLInputTypeAttribute;\n\n /** `inputmode` attribute, inferred from the `type` prop if not specified */\n inputMode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search'\n | undefined;\n\n /** `aria-label` attribute */\n ariaLabel?: string;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: React.ComponentProps<'input'>;\n\n /** Assigns ref of the root element */\n rootRef?: React.Ref<HTMLDivElement>;\n\n /** Props added to the input element depending on its index */\n getInputProps?: (index: number) => InputProps & ElementProps<'input', 'size'> & DataAttributes;\n}\n\nexport type PinInputFactory = Factory<{\n props: PinInputProps;\n ref: HTMLDivElement;\n stylesNames: PinInputStylesNames;\n vars: PinInputCssVariables;\n}>;\n\nconst defaultProps = {\n gap: 'sm',\n length: 4,\n manageFocus: true,\n oneTimeCode: true,\n placeholder: '○',\n type: 'alphanumeric',\n ariaLabel: 'PinInput',\n size: 'sm',\n} satisfies Partial<PinInputProps>;\n\nconst varsResolver = createVarsResolver<PinInputFactory>((_, { size }) => ({\n root: {\n '--pin-input-size': getSize(size ?? 'sm', 'pin-input-size'),\n },\n}));\n\nexport const PinInput = factory<PinInputFactory>((props) => {\n const {\n name,\n form,\n className,\n value,\n defaultValue,\n variant,\n gap,\n style,\n size,\n classNames,\n styles,\n unstyled,\n length,\n onChange,\n onComplete,\n manageFocus,\n autoFocus,\n error,\n radius,\n disabled,\n oneTimeCode,\n placeholder,\n type,\n mask,\n readOnly,\n inputType,\n inputMode,\n ariaLabel,\n vars,\n id,\n hiddenInputProps,\n rootRef,\n getInputProps,\n attributes,\n ref,\n ...others\n } = useProps('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 isPasteShortcut = (ctrlKey || metaKey) && key === 'v';\n const isAllowedKey =\n allowedKeys.includes(key) || isPasteShortcut || !Number.isNaN(Number(key));\n\n if (!isAllowedKey) {\n event.preventDefault();\n return;\n }\n }\n\n switch (key) {\n case 'ArrowLeft':\n event.preventDefault();\n focusInputField('prev', index);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Tab':\n if (shiftKey) {\n if (index > 0 && manageFocus) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n case ' ':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Delete':\n event.preventDefault();\n setFieldValue('', index);\n break;\n\n case 'Backspace':\n if (inputValue === '') {\n event.preventDefault();\n focusInputField('prev', index);\n } else {\n setFieldValue('', index);\n if (index < currentLength - 1) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n default:\n if (inputValue.length > 0 && key === currentValue[index]) {\n event.preventDefault();\n focusInputField('next', index);\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, index: number) => {\n event.target.select();\n setFocusedIndex(index);\n };\n\n const handleBlur = () => {\n setFocusedIndex(-1);\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const pasteData = event.clipboardData.getData('text/plain').replace(/[\\n\\r\\s]+/g, '');\n const isValid = validate(pasteData.trim());\n\n if (isValid) {\n const pasteArray = createPinArray(currentLength, pasteData);\n setValues(pasteArray);\n const filledCount = pasteArray.filter((val) => val !== '').length;\n if (filledCount >= currentLength) {\n inputsRef.current[currentLength - 1]?.focus();\n } else {\n inputsRef.current[filledCount]?.focus();\n }\n }\n };\n\n return (\n <>\n <Group\n {...others}\n {...getStyles('root')}\n ref={rootRef}\n role=\"group\"\n id={uuid}\n gap={gap}\n unstyled={unstyled}\n wrap=\"nowrap\"\n variant={variant}\n __size={size}\n dir=\"ltr\"\n >\n {currentValue.map((char: string, index: number) => (\n <Input\n component=\"input\"\n {...getStyles('pinInput', {\n style: {\n '--input-padding': '0',\n '--input-text-align': 'center',\n } as React.CSSProperties,\n })}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n size={size}\n __staticSelector=\"PinInput\"\n id={`${uuid}-${index + 1}`}\n key={`${uuid}-${index}`}\n inputMode={inputMode || (type === 'number' ? 'numeric' : 'text')}\n onChange={(event) => handleChange(event, index)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n onFocus={(event) => handleFocus(event, index)}\n onBlur={handleBlur}\n onPaste={handlePaste}\n type={inputType || (mask ? 'password' : type === 'number' ? 'tel' : 'text')}\n radius={radius}\n error={error}\n variant={variant}\n disabled={disabled}\n ref={(node) => {\n if (node) {\n index === 0 && assignRef(ref, node);\n inputsRef.current[index] = node;\n }\n }}\n autoComplete={oneTimeCode ? 'one-time-code' : 'off'}\n placeholder={focusedIndex === index ? '' : placeholder}\n value={char}\n autoFocus={autoFocus && index === 0}\n unstyled={unstyled}\n aria-label={ariaLabel}\n readOnly={readOnly}\n {...getInputProps?.(index)}\n />\n ))}\n </Group>\n\n <input type=\"hidden\" name={name} form={form} value={_valueToString} {...hiddenInputProps} />\n </>\n );\n});\n\nPinInput.classes = { ...classes, ...InputBase.classes };\nPinInput.varsResolver = varsResolver;\nPinInput.displayName = '@mantine/core/PinInput';\n\nexport namespace PinInput {\n export type Props = PinInputProps;\n export type StylesNames = PinInputStylesNames;\n export type Factory = PinInputFactory;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PinInput.mjs","names":["useId","classes"],"sources":["../../../src/components/PinInput/PinInput.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { assignRef, useId, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n createVarsResolver,\n DataAttributes,\n ElementProps,\n Factory,\n factory,\n getSize,\n MantineRadius,\n MantineSize,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n useStyles,\n} from '../../core';\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { createPinArray } from './create-pin-array/create-pin-array';\nimport classes from './PinInput.module.css';\n\nconst regex = {\n number: /^[0-9]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i,\n};\n\nexport type PinInputStylesNames = 'root' | 'pinInput' | 'input';\n\nexport type PinInputCssVariables = {\n root: '--pin-input-size';\n};\n\nexport interface PinInputProps\n extends BoxProps, StylesApiProps<PinInputFactory>, ElementProps<'div', 'onChange' | 'ref'> {\n ref?: React.Ref<HTMLInputElement>;\n\n /** Hidden input `name` attribute */\n name?: string;\n\n /** Hidden input `form` attribute */\n form?: string;\n\n /** Key of `theme.spacing` or any valid CSS value to set `gap` between inputs, numbers are converted to rem @default 'md' */\n gap?: MantineSpacing;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Controls inputs `width` and `height` @default 'sm' */\n size?: MantineSize;\n\n /** If set, the first input is focused when component is mounted @default false */\n autoFocus?: boolean;\n\n /** Controlled component value */\n value?: string;\n\n /** Uncontrolled component default value */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Called when all inputs have value */\n onComplete?: (value: string) => void;\n\n /** Inputs placeholder @default '○' */\n placeholder?: string;\n\n /** Determines whether focus should be moved automatically to the next input once filled @default true */\n manageFocus?: boolean;\n\n /** Determines whether `autocomplete=\"one-time-code\"` attribute should be set on all inputs @default true */\n oneTimeCode?: boolean;\n\n /** Base id used to generate unique ids for inputs */\n id?: string;\n\n /** Adds disabled attribute to all inputs */\n disabled?: boolean;\n\n /** Sets `aria-invalid` attribute and applies error styles to all inputs */\n error?: boolean;\n\n /** Determines which values can be entered @default 'alphanumeric' */\n type?: 'alphanumeric' | 'number' | RegExp;\n\n /** Changes input type to `\"password\"` @default false */\n mask?: boolean;\n\n /** Number of inputs @default 4 */\n length?: number;\n\n /** If set, the user cannot edit the value */\n readOnly?: boolean;\n\n /** Inputs `type` attribute, inferred from the `type` prop if not specified */\n inputType?: React.HTMLInputTypeAttribute;\n\n /** `inputmode` attribute, inferred from the `type` prop if not specified */\n inputMode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search'\n | undefined;\n\n /** `aria-label` attribute */\n ariaLabel?: string;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: React.ComponentProps<'input'>;\n\n /** Assigns ref of the root element */\n rootRef?: React.Ref<HTMLDivElement>;\n\n /** Props added to the input element depending on its index */\n getInputProps?: (index: number) => InputProps & ElementProps<'input', 'size'> & DataAttributes;\n}\n\nexport type PinInputFactory = Factory<{\n props: PinInputProps;\n ref: HTMLDivElement;\n stylesNames: PinInputStylesNames;\n vars: PinInputCssVariables;\n}>;\n\nconst defaultProps = {\n gap: 'sm',\n length: 4,\n manageFocus: true,\n oneTimeCode: true,\n placeholder: '○',\n type: 'alphanumeric',\n ariaLabel: 'PinInput',\n size: 'sm',\n} satisfies Partial<PinInputProps>;\n\nconst varsResolver = createVarsResolver<PinInputFactory>((_, { size }) => ({\n root: {\n '--pin-input-size': getSize(size ?? 'sm', 'pin-input-size'),\n },\n}));\n\nexport const PinInput = factory<PinInputFactory>((props) => {\n const {\n name,\n form,\n className,\n value,\n defaultValue,\n variant,\n gap,\n style,\n size,\n classNames,\n styles,\n unstyled,\n length,\n onChange,\n onComplete,\n manageFocus,\n autoFocus,\n error,\n radius,\n disabled,\n oneTimeCode,\n placeholder,\n type,\n mask,\n readOnly,\n inputType,\n inputMode,\n ariaLabel,\n vars,\n id,\n hiddenInputProps,\n rootRef,\n getInputProps,\n attributes,\n ref,\n ...others\n } = useProps(['Input', 'PinInput'], defaultProps, props);\n\n const uuid = useId(id);\n\n const getStyles = useStyles<PinInputFactory>({\n name: 'PinInput',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<PinInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n const inputsRef = useRef<Array<HTMLInputElement>>([]);\n const currentLength = length ?? 4;\n\n const completedRef = useRef(false);\n\n const [_value, setValues] = useUncontrolled<string[]>({\n value: value !== undefined ? createPinArray(currentLength, value) : undefined,\n defaultValue: defaultValue?.split('').slice(0, currentLength),\n finalValue: createPinArray(currentLength, ''),\n onChange: (val) => {\n const stringValue = val.join('').trim();\n onChange?.(stringValue);\n if (stringValue.length === currentLength && !completedRef.current) {\n completedRef.current = true;\n onComplete?.(stringValue);\n } else if (stringValue.length < currentLength) {\n completedRef.current = false;\n }\n },\n });\n\n const currentValue =\n _value.length !== currentLength ? createPinArray(currentLength, _value.join('')) : _value;\n\n const _valueToString = currentValue.join('').trim();\n\n const validate = (code: string) => {\n const re = type instanceof RegExp ? type : type && type in regex ? regex[type] : null;\n return re?.test(code);\n };\n\n const focusInputField = (dir: 'next' | 'prev', index: number) => {\n if (!manageFocus) {\n return;\n }\n\n if (dir === 'next') {\n const nextIndex = index + 1;\n if (nextIndex < currentLength) {\n inputsRef.current[nextIndex]?.focus();\n }\n } else if (dir === 'prev') {\n const prevIndex = index - 1;\n if (prevIndex >= 0) {\n inputsRef.current[prevIndex]?.focus();\n }\n }\n };\n\n const setFieldValue = (val: string, index: number) => {\n const values = [...currentValue];\n values[index] = val;\n setValues(values);\n return values;\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const inputValue = event.target.value;\n\n if (inputValue.length > 1) {\n const isPaste = inputValue.length > 2;\n if (isPaste) {\n const isValid = validate(inputValue);\n if (isValid) {\n setValues(createPinArray(currentLength, inputValue));\n const filledCount = Math.min(inputValue.length, currentLength);\n if (filledCount < currentLength) {\n focusInputField('next', filledCount - 1);\n }\n }\n return;\n }\n\n const newChar = inputValue.split('')[inputValue.length - 1];\n if (validate(newChar)) {\n setFieldValue(newChar, index);\n focusInputField('next', index);\n }\n return;\n }\n\n if (inputValue.length === 1) {\n if (validate(inputValue)) {\n setFieldValue(inputValue, index);\n focusInputField('next', index);\n } else {\n setFieldValue('', index);\n }\n } else if (inputValue.length === 0) {\n setFieldValue('', index);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n const { ctrlKey, metaKey, key, shiftKey, target } = event;\n const inputValue = (target as HTMLInputElement).value;\n\n if (inputMode === 'numeric') {\n const allowedKeys = ['Backspace', 'Tab', 'Control', 'Delete', 'ArrowLeft', 'ArrowRight'];\n const isModifierShortcut = ctrlKey || metaKey;\n const isAllowedKey =\n allowedKeys.includes(key) || isModifierShortcut || !Number.isNaN(Number(key));\n\n if (!isAllowedKey) {\n event.preventDefault();\n return;\n }\n }\n\n switch (key) {\n case 'ArrowLeft':\n event.preventDefault();\n focusInputField('prev', index);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Tab':\n if (shiftKey) {\n if (index > 0 && manageFocus) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n case ' ':\n event.preventDefault();\n focusInputField('next', index);\n break;\n\n case 'Delete':\n event.preventDefault();\n setFieldValue('', index);\n break;\n\n case 'Backspace':\n if (inputValue === '') {\n event.preventDefault();\n focusInputField('prev', index);\n } else {\n setFieldValue('', index);\n if (index < currentLength - 1) {\n event.preventDefault();\n focusInputField('prev', index);\n }\n }\n break;\n\n default:\n if (inputValue.length > 0 && key === currentValue[index]) {\n event.preventDefault();\n focusInputField('next', index);\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, index: number) => {\n event.target.select();\n setFocusedIndex(index);\n };\n\n const handleBlur = () => {\n setFocusedIndex(-1);\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const pasteData = event.clipboardData.getData('text/plain').replace(/[\\n\\r\\s]+/g, '');\n const isValid = validate(pasteData.trim());\n\n if (isValid) {\n const pasteArray = createPinArray(currentLength, pasteData);\n setValues(pasteArray);\n const filledCount = pasteArray.filter((val) => val !== '').length;\n if (filledCount >= currentLength) {\n inputsRef.current[currentLength - 1]?.focus();\n } else {\n inputsRef.current[filledCount]?.focus();\n }\n }\n };\n\n return (\n <>\n <Group\n {...others}\n {...getStyles('root')}\n ref={rootRef}\n role=\"group\"\n id={uuid}\n gap={gap}\n unstyled={unstyled}\n wrap=\"nowrap\"\n variant={variant}\n __size={size}\n dir=\"ltr\"\n >\n {currentValue.map((char: string, index: number) => (\n <Input\n component=\"input\"\n {...getStyles('pinInput', {\n style: {\n '--input-padding': '0',\n '--input-text-align': 'center',\n } as React.CSSProperties,\n })}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n size={size}\n __staticSelector=\"PinInput\"\n id={`${uuid}-${index + 1}`}\n key={`${uuid}-${index}`}\n inputMode={inputMode || (type === 'number' ? 'numeric' : 'text')}\n onChange={(event) => handleChange(event, index)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n onFocus={(event) => handleFocus(event, index)}\n onBlur={handleBlur}\n onPaste={handlePaste}\n type={inputType || (mask ? 'password' : type === 'number' ? 'tel' : 'text')}\n radius={radius}\n error={error}\n variant={variant}\n disabled={disabled}\n ref={(node) => {\n if (node) {\n index === 0 && assignRef(ref, node);\n inputsRef.current[index] = node;\n }\n }}\n autoComplete={oneTimeCode ? 'one-time-code' : 'off'}\n placeholder={focusedIndex === index ? '' : placeholder}\n value={char}\n autoFocus={autoFocus && index === 0}\n unstyled={unstyled}\n aria-label={ariaLabel}\n readOnly={readOnly}\n {...getInputProps?.(index)}\n />\n ))}\n </Group>\n\n <input type=\"hidden\" name={name} form={form} value={_valueToString} {...hiddenInputProps} />\n </>\n );\n});\n\nPinInput.classes = { ...classes, ...InputBase.classes };\nPinInput.varsResolver = varsResolver;\nPinInput.displayName = '@mantine/core/PinInput';\n\nexport namespace PinInput {\n export type Props = PinInputProps;\n export type StylesNames = PinInputStylesNames;\n export type Factory = PinInputFactory;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,MAAM,QAAQ;CACZ,QAAQ;CACR,cAAc;AAChB;AA2GA,MAAM,eAAe;CACnB,KAAK;CACL,QAAQ;CACR,aAAa;CACb,aAAa;CACb,aAAa;CACb,MAAM;CACN,WAAW;CACX,MAAM;AACR;AAEA,MAAM,eAAe,oBAAqC,GAAG,EAAE,YAAY,EACzE,MAAM,EACJ,oBAAoB,QAAQ,QAAQ,MAAM,gBAAgB,EAC5D,EACF,EAAE;AAEF,MAAa,WAAW,SAA0B,UAAU;CAC1D,MAAM,EACJ,MACA,MACA,WACA,OACA,cACA,SACA,KACA,OACA,MACA,YACA,QACA,UACA,QACA,UACA,YACA,aACA,WACA,OACA,QACA,UACA,aACA,aACA,MACA,MACA,UACA,WACA,WACA,WACA,MACA,IACA,kBACA,SACA,eACA,YACA,KACA,GAAG,WACD,SAAS,CAAC,SAAS,UAAU,GAAG,cAAc,KAAK;CAEvD,MAAM,OAAOA,QAAM,EAAE;CAErB,MAAM,YAAY,UAA2B;EAC3C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,oBAAoB,mBAAmB,qBAAsC;EACnF;EACA;EACA;CACF,CAAC;CAED,MAAM,CAAC,cAAc,mBAAmB,SAAS,EAAE;CACnD,MAAM,YAAY,OAAgC,CAAC,CAAC;CACpD,MAAM,gBAAgB,UAAU;CAEhC,MAAM,eAAe,OAAO,KAAK;CAEjC,MAAM,CAAC,QAAQ,aAAa,gBAA0B;EACpD,OAAO,UAAU,KAAA,IAAY,eAAe,eAAe,KAAK,IAAI,KAAA;EACpE,cAAc,cAAc,MAAM,EAAE,EAAE,MAAM,GAAG,aAAa;EAC5D,YAAY,eAAe,eAAe,EAAE;EAC5C,WAAW,QAAQ;GACjB,MAAM,cAAc,IAAI,KAAK,EAAE,EAAE,KAAK;GACtC,WAAW,WAAW;GACtB,IAAI,YAAY,WAAW,iBAAiB,CAAC,aAAa,SAAS;IACjE,aAAa,UAAU;IACvB,aAAa,WAAW;GAC1B,OAAO,IAAI,YAAY,SAAS,eAC9B,aAAa,UAAU;EAE3B;CACF,CAAC;CAED,MAAM,eACJ,OAAO,WAAW,gBAAgB,eAAe,eAAe,OAAO,KAAK,EAAE,CAAC,IAAI;CAErF,MAAM,iBAAiB,aAAa,KAAK,EAAE,EAAE,KAAK;CAElD,MAAM,YAAY,SAAiB;EAEjC,QADW,gBAAgB,SAAS,OAAO,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,OACtE,KAAK,IAAI;CACtB;CAEA,MAAM,mBAAmB,KAAsB,UAAkB;EAC/D,IAAI,CAAC,aACH;EAGF,IAAI,QAAQ,QAAQ;GAClB,MAAM,YAAY,QAAQ;GAC1B,IAAI,YAAY,eACd,UAAU,QAAQ,YAAY,MAAM;EAExC,OAAO,IAAI,QAAQ,QAAQ;GACzB,MAAM,YAAY,QAAQ;GAC1B,IAAI,aAAa,GACf,UAAU,QAAQ,YAAY,MAAM;EAExC;CACF;CAEA,MAAM,iBAAiB,KAAa,UAAkB;EACpD,MAAM,SAAS,CAAC,GAAG,YAAY;EAC/B,OAAO,SAAS;EAChB,UAAU,MAAM;EAChB,OAAO;CACT;CAEA,MAAM,gBAAgB,OAA4C,UAAkB;EAClF,MAAM,aAAa,MAAM,OAAO;EAEhC,IAAI,WAAW,SAAS,GAAG;GAEzB,IADgB,WAAW,SAAS,GACvB;IAEX,IADgB,SAAS,UACf,GAAG;KACX,UAAU,eAAe,eAAe,UAAU,CAAC;KACnD,MAAM,cAAc,KAAK,IAAI,WAAW,QAAQ,aAAa;KAC7D,IAAI,cAAc,eAChB,gBAAgB,QAAQ,cAAc,CAAC;IAE3C;IACA;GACF;GAEA,MAAM,UAAU,WAAW,MAAM,EAAE,EAAE,WAAW,SAAS;GACzD,IAAI,SAAS,OAAO,GAAG;IACrB,cAAc,SAAS,KAAK;IAC5B,gBAAgB,QAAQ,KAAK;GAC/B;GACA;EACF;EAEA,IAAI,WAAW,WAAW,GACxB,IAAI,SAAS,UAAU,GAAG;GACxB,cAAc,YAAY,KAAK;GAC/B,gBAAgB,QAAQ,KAAK;EAC/B,OACE,cAAc,IAAI,KAAK;OAEpB,IAAI,WAAW,WAAW,GAC/B,cAAc,IAAI,KAAK;CAE3B;CAEA,MAAM,iBAAiB,OAA8C,UAAkB;EACrF,MAAM,EAAE,SAAS,SAAS,KAAK,UAAU,WAAW;EACpD,MAAM,aAAc,OAA4B;EAEhD,IAAI,cAAc,WAAW;GAC3B,MAAM,cAAc;IAAC;IAAa;IAAO;IAAW;IAAU;IAAa;GAAY;GACvF,MAAM,qBAAqB,WAAW;GAItC,IAAI,EAFF,YAAY,SAAS,GAAG,KAAK,sBAAsB,CAAC,OAAO,MAAM,OAAO,GAAG,CAAC,IAE3D;IACjB,MAAM,eAAe;IACrB;GACF;EACF;EAEA,QAAQ,KAAR;GACE,KAAK;IACH,MAAM,eAAe;IACrB,gBAAgB,QAAQ,KAAK;IAC7B;GAEF,KAAK;IACH,MAAM,eAAe;IACrB,gBAAgB,QAAQ,KAAK;IAC7B;GAEF,KAAK;IACH,IAAI;SACE,QAAQ,KAAK,aAAa;MAC5B,MAAM,eAAe;MACrB,gBAAgB,QAAQ,KAAK;KAC/B;;IAEF;GAEF,KAAK;IACH,MAAM,eAAe;IACrB,gBAAgB,QAAQ,KAAK;IAC7B;GAEF,KAAK;IACH,MAAM,eAAe;IACrB,cAAc,IAAI,KAAK;IACvB;GAEF,KAAK;IACH,IAAI,eAAe,IAAI;KACrB,MAAM,eAAe;KACrB,gBAAgB,QAAQ,KAAK;IAC/B,OAAO;KACL,cAAc,IAAI,KAAK;KACvB,IAAI,QAAQ,gBAAgB,GAAG;MAC7B,MAAM,eAAe;MACrB,gBAAgB,QAAQ,KAAK;KAC/B;IACF;IACA;GAEF,SACE,IAAI,WAAW,SAAS,KAAK,QAAQ,aAAa,QAAQ;IACxD,MAAM,eAAe;IACrB,gBAAgB,QAAQ,KAAK;GAC/B;EACJ;CACF;CAEA,MAAM,eAAe,OAA2C,UAAkB;EAChF,MAAM,OAAO,OAAO;EACpB,gBAAgB,KAAK;CACvB;CAEA,MAAM,mBAAmB;EACvB,gBAAgB,EAAE;CACpB;CAEA,MAAM,eAAe,UAAkD;EACrE,MAAM,eAAe;EACrB,MAAM,YAAY,MAAM,cAAc,QAAQ,YAAY,EAAE,QAAQ,cAAc,EAAE;EAGpF,IAFgB,SAAS,UAAU,KAAK,CAE9B,GAAG;GACX,MAAM,aAAa,eAAe,eAAe,SAAS;GAC1D,UAAU,UAAU;GACpB,MAAM,cAAc,WAAW,QAAQ,QAAQ,QAAQ,EAAE,EAAE;GAC3D,IAAI,eAAe,eACjB,UAAU,QAAQ,gBAAgB,IAAI,MAAM;QAE5C,UAAU,QAAQ,cAAc,MAAM;EAE1C;CACF;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EACE,GAAI;EACJ,GAAI,UAAU,MAAM;EACpB,KAAK;EACL,MAAK;EACL,IAAI;EACC;EACK;EACV,MAAK;EACI;EACT,QAAQ;EACR,KAAI;YAEH,aAAa,KAAK,MAAc,UAC/B,8BAAC,OAAD;GACE,WAAU;GACV,GAAI,UAAU,YAAY,EACxB,OAAO;IACL,mBAAmB;IACnB,sBAAsB;GACxB,EACF,CAAC;GACD,YAAY;GACZ,QAAQ;GACF;GACN,kBAAiB;GACjB,IAAI,GAAG,KAAK,GAAG,QAAQ;GACvB,KAAK,GAAG,KAAK,GAAG;GAChB,WAAW,cAAc,SAAS,WAAW,YAAY;GACzD,WAAW,UAAU,aAAa,OAAO,KAAK;GAC9C,YAAY,UAAU,cAAc,OAAO,KAAK;GAChD,UAAU,UAAU,YAAY,OAAO,KAAK;GAC5C,QAAQ;GACR,SAAS;GACT,MAAM,cAAc,OAAO,aAAa,SAAS,WAAW,QAAQ;GAC5D;GACD;GACE;GACC;GACV,MAAM,SAAS;IACb,IAAI,MAAM;KACR,UAAU,KAAK,UAAU,KAAK,IAAI;KAClC,UAAU,QAAQ,SAAS;IAC7B;GACF;GACA,cAAc,cAAc,kBAAkB;GAC9C,aAAa,iBAAiB,QAAQ,KAAK;GAC3C,OAAO;GACP,WAAW,aAAa,UAAU;GACxB;GACV,cAAY;GACF;GACV,GAAI,gBAAgB,KAAK;EAC1B,CAAA,CACF;CACI,CAAA,GAEP,oBAAC,SAAD;EAAO,MAAK;EAAe;EAAY;EAAM,OAAO;EAAgB,GAAI;CAAmB,CAAA,CAC3F,EAAA,CAAA;AAEN,CAAC;AAED,SAAS,UAAU;CAAE,GAAGC;CAAS,GAAG,UAAU;AAAQ;AACtD,SAAS,eAAe;AACxB,SAAS,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-pin-array.mjs","names":[],"sources":["../../../../src/components/PinInput/create-pin-array/create-pin-array.ts"],"sourcesContent":["export function createPinArray(length: number, value: string): string[] {\n if (length < 1) {\n return [];\n }\n\n const values = new Array<string>(length).fill('');\n\n if (value) {\n const splitted = value.trim().split('');\n for (let i = 0; i < Math.min(length, splitted.length); i += 1) {\n values[i] = splitted[i] === ' ' ? '' : splitted[i];\n }\n }\n\n return values;\n}\n"],"mappings":";;AAAA,SAAgB,eAAe,QAAgB,OAAyB;AACtE,KAAI,SAAS,EACX,QAAO,EAAE;CAGX,MAAM,SAAS,IAAI,MAAc,OAAO,CAAC,KAAK,GAAG;AAEjD,KAAI,OAAO;EACT,MAAM,WAAW,MAAM,MAAM,CAAC,MAAM,GAAG;AACvC,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,QAAQ,SAAS,OAAO,EAAE,KAAK,EAC1D,QAAO,KAAK,SAAS,OAAO,MAAM,KAAK,SAAS;;AAIpD,QAAO"}
1
+ {"version":3,"file":"create-pin-array.mjs","names":[],"sources":["../../../../src/components/PinInput/create-pin-array/create-pin-array.ts"],"sourcesContent":["export function createPinArray(length: number, value: string): string[] {\n if (length < 1) {\n return [];\n }\n\n const values = new Array<string>(length).fill('');\n\n if (value) {\n const splitted = value.trim().split('');\n for (let i = 0; i < Math.min(length, splitted.length); i += 1) {\n values[i] = splitted[i] === ' ' ? '' : splitted[i];\n }\n }\n\n return values;\n}\n"],"mappings":";;AAAA,SAAgB,eAAe,QAAgB,OAAyB;CACtE,IAAI,SAAS,GACX,OAAO,CAAC;CAGV,MAAM,SAAS,IAAI,MAAc,MAAM,EAAE,KAAK,EAAE;CAEhD,IAAI,OAAO;EACT,MAAM,WAAW,MAAM,KAAK,EAAE,MAAM,EAAE;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,QAAQ,SAAS,MAAM,GAAG,KAAK,GAC1D,OAAO,KAAK,SAAS,OAAO,MAAM,KAAK,SAAS;CAEpD;CAEA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.context.mjs","names":[],"sources":["../../../src/components/Popover/Popover.context.ts"],"sourcesContent":["import {\n ClassNames,\n createSafeContext,\n GetStylesApi,\n MantineRadius,\n MantineShadow,\n Styles,\n} from '../../core';\nimport { ArrowPosition, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { BasePortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport type { PopoverFactory } from './Popover';\nimport { PopoverWidth } from './Popover.types';\n\nexport interface PopoverContextValue {\n x: number;\n y: number;\n arrowX: number | undefined;\n arrowY: number | undefined;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n opened: boolean;\n transitionProps?: TransitionOverride;\n reference: (node: HTMLElement) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean | undefined;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean | undefined;\n placement: FloatingPosition;\n withinPortal: boolean | undefined;\n portalProps?: BasePortalProps;\n closeOnEscape: boolean | undefined;\n zIndex: string | number | undefined;\n radius?: MantineRadius | undefined;\n shadow?: MantineShadow | undefined;\n onClose?: () => void;\n onDismiss?: () => void;\n getDropdownId: () => string;\n getTargetId: () => string;\n controlled: boolean;\n onToggle: () => void;\n withRoles: boolean | undefined;\n targetProps: Record<string, any>;\n disabled: boolean | undefined;\n returnFocus: boolean | undefined;\n classNames: ClassNames<PopoverFactory> | undefined;\n styles: Styles<PopoverFactory> | undefined;\n unstyled: boolean | undefined;\n __staticSelector: string;\n variant: string | undefined;\n keepMounted: boolean | undefined;\n getStyles: GetStylesApi<PopoverFactory>;\n resolvedStyles: Record<string, any> | undefined;\n floatingStrategy: FloatingStrategy | undefined;\n referenceHidden: boolean | undefined;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContextValue>(\n 'Popover component was not found in the tree'\n);\n"],"mappings":";;;AA4DA,MAAa,CAAC,wBAAwB,qBAAqB,kBACzD,8CACD"}
1
+ {"version":3,"file":"Popover.context.mjs","names":[],"sources":["../../../src/components/Popover/Popover.context.ts"],"sourcesContent":["import {\n ClassNames,\n createSafeContext,\n GetStylesApi,\n MantineRadius,\n MantineShadow,\n Styles,\n} from '../../core';\nimport { ArrowPosition, FloatingPosition, FloatingStrategy } from '../../utils/Floating';\nimport { BasePortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport type { PopoverFactory } from './Popover';\nimport { PopoverWidth } from './Popover.types';\n\nexport interface PopoverContextValue {\n x: number;\n y: number;\n arrowX: number | undefined;\n arrowY: number | undefined;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n opened: boolean;\n transitionProps?: TransitionOverride;\n reference: (node: HTMLElement) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean | undefined;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean | undefined;\n placement: FloatingPosition;\n withinPortal: boolean | undefined;\n portalProps?: BasePortalProps;\n closeOnEscape: boolean | undefined;\n zIndex: string | number | undefined;\n radius?: MantineRadius | undefined;\n shadow?: MantineShadow | undefined;\n onClose?: () => void;\n onDismiss?: () => void;\n getDropdownId: () => string;\n getTargetId: () => string;\n controlled: boolean;\n onToggle: () => void;\n withRoles: boolean | undefined;\n targetProps: Record<string, any>;\n disabled: boolean | undefined;\n returnFocus: boolean | undefined;\n classNames: ClassNames<PopoverFactory> | undefined;\n styles: Styles<PopoverFactory> | undefined;\n unstyled: boolean | undefined;\n __staticSelector: string;\n variant: string | undefined;\n keepMounted: boolean | undefined;\n getStyles: GetStylesApi<PopoverFactory>;\n resolvedStyles: Record<string, any> | undefined;\n floatingStrategy: FloatingStrategy | undefined;\n referenceHidden: boolean | undefined;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContextValue>(\n 'Popover component was not found in the tree'\n);\n"],"mappings":";;;AA4DA,MAAa,CAAC,wBAAwB,qBAAqB,kBACzD,6CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.mjs","names":["useId"],"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 { PopoverDropdown, PopoverDropdownProps } from './PopoverDropdown/PopoverDropdown';\nimport { PopoverTarget, PopoverTargetProps } from './PopoverTarget/PopoverTarget';\nimport { usePopover } from './use-popover';\nimport classes from './Popover.module.css';\n\nexport type PopoverStylesNames = 'dropdown' | 'arrow' | 'overlay';\nexport type PopoverCssVariables = {\n dropdown: '--popover-radius' | '--popover-shadow';\n};\n\nexport interface __PopoverProps {\n /** Dropdown position relative to the target element @default 'bottom' */\n position?: FloatingPosition;\n\n /** Offset of the dropdown element @default 8 */\n offset?: number | FloatingAxesOffsets;\n\n /** Called when dropdown position changes */\n onPositionChange?: (position: FloatingPosition) => void;\n\n /** Called when dropdown closes */\n onClose?: () => void;\n\n /** Called when the popover is dismissed by clicking outside or by pressing escape */\n onDismiss?: () => void;\n\n /** Called when dropdown opens */\n onOpen?: () => void;\n\n /** If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead. */\n keepMounted?: boolean;\n\n /** Props passed down to the `Transition` component. Use to configure duration and animation type. @default { duration: 150, transition: 'fade' } */\n transitionProps?: TransitionOverride;\n\n /** Called when exit transition ends */\n onExitTransitionEnd?: () => void;\n\n /** Called when enter transition ends */\n onEnterTransitionEnd?: () => void;\n\n /** Dropdown width, or `'target'` to make dropdown width the same as target element @default 'max-content' */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling @default { flip: true, shift: true, inline: false } */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow @default false */\n withArrow?: boolean;\n\n /** Determines whether the overlay should be displayed when the dropdown is opened @default false */\n withOverlay?: boolean;\n\n /** Props passed down to `Overlay` component */\n overlayProps?: OverlayProps & ElementProps<'div'>;\n\n /** Arrow size in px @default 7 */\n arrowSize?: number;\n\n /** Arrow offset in px @default 5 */\n arrowOffset?: number;\n\n /** Arrow `border-radius` in px @default 0 */\n arrowRadius?: number;\n\n /** Arrow position */\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within the `Portal` @default true */\n withinPortal?: boolean;\n\n /** Props to pass down to the `Portal` when `withinPortal` is true */\n portalProps?: BasePortalProps;\n\n /** Dropdown `z-index` @default 300 */\n zIndex?: string | number;\n\n /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Key of `theme.shadows` or any other valid CSS `box-shadow` value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not be rendered */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes @default false */\n returnFocus?: boolean;\n\n /** Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy) @default 'absolute' */\n floatingStrategy?: FloatingStrategy;\n\n /** If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen @default true */\n hideDetached?: boolean;\n\n /** Prevents popover from flipping/shifting when it the dropdown is visible */\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 clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n} satisfies Partial<PopoverProps>;\n\nconst varsResolver = createVarsResolver<PopoverFactory>((_, { radius, shadow }) => ({\n dropdown: {\n '--popover-radius': radius === undefined ? undefined : getRadius(radius),\n '--popover-shadow': getShadow(shadow),\n },\n}));\n\nexport function Popover(_props: PopoverProps) {\n const props = useProps('Popover', defaultProps, _props);\n const {\n children,\n position,\n offset,\n onPositionChange,\n opened,\n transitionProps,\n onExitTransitionEnd,\n onEnterTransitionEnd,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n portalProps,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onDismiss,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted,\n vars,\n floatingStrategy,\n withOverlay,\n overlayProps,\n hideDetached,\n attributes,\n preventPositionChangeWhenVisible,\n ...others\n } = props;\n\n const getStyles = useStyles<PopoverFactory>({\n name: __staticSelector,\n props,\n classes,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'dropdown',\n vars,\n varsResolver,\n });\n\n const { resolvedStyles } = useResolvedStylesApi<PopoverFactory>({ classNames, styles, props });\n\n const [dropdownVisible, setDropdownVisible] = useState(opened ?? defaultOpened ?? false);\n const positionRef = useRef<FloatingPosition>(position);\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 dropdownVisible,\n setDropdownVisible,\n positionRef,\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 setDropdownVisible(false);\n // Only reset position if preventPositionChangeWhenVisible is false\n // to maintain the flipped position on subsequent opens\n if (!preventPositionChangeWhenVisible) {\n positionRef.current = position;\n }\n }, [transitionProps?.onExited, onExitTransitionEnd, preventPositionChangeWhenVisible, position]);\n\n const onEntered = useCallback(() => {\n transitionProps?.onEntered?.();\n onEnterTransitionEnd?.();\n }, [transitionProps?.onEntered, onEnterTransitionEnd]);\n\n return (\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transitionProps: { ...transitionProps, onExited, onEntered },\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n portalProps,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onDismiss,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => uid,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted,\n getStyles,\n resolvedStyles,\n floatingStrategy,\n referenceHidden:\n hideDetached && env !== 'test'\n ? popover.floating.middlewareData.hide?.referenceHidden\n : false,\n }}\n >\n {children}\n {withOverlay && (\n <Transition\n transition=\"fade\"\n mounted={popover.opened}\n duration={transitionProps?.duration || 250}\n exitDuration={transitionProps?.exitDuration || 250}\n >\n {(transitionStyles) => (\n <OptionalPortal withinPortal={withinPortal}>\n <Overlay\n {...overlayProps}\n {...getStyles('overlay', {\n className: overlayProps?.className,\n style: [transitionStyles, overlayProps?.style],\n })}\n />\n </OptionalPortal>\n )}\n </Transition>\n )}\n </PopoverContextProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.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"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.mjs","names":["useId"],"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 { PopoverDropdown, PopoverDropdownProps } from './PopoverDropdown/PopoverDropdown';\nimport { PopoverTarget, PopoverTargetProps } from './PopoverTarget/PopoverTarget';\nimport { usePopover } from './use-popover';\nimport classes from './Popover.module.css';\n\nexport type PopoverStylesNames = 'dropdown' | 'arrow' | 'overlay';\nexport type PopoverCssVariables = {\n dropdown: '--popover-radius' | '--popover-shadow';\n};\n\nexport interface __PopoverProps {\n /** Dropdown position relative to the target element @default 'bottom' */\n position?: FloatingPosition;\n\n /** Offset of the dropdown element @default 8 */\n offset?: number | FloatingAxesOffsets;\n\n /** Called when dropdown position changes */\n onPositionChange?: (position: FloatingPosition) => void;\n\n /** Called when dropdown closes */\n onClose?: () => void;\n\n /** Called when the popover is dismissed by clicking outside or by pressing escape */\n onDismiss?: () => void;\n\n /** Called when dropdown opens */\n onOpen?: () => void;\n\n /** If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead. */\n keepMounted?: boolean;\n\n /** Props passed down to the `Transition` component. Use to configure duration and animation type. @default { duration: 150, transition: 'fade' } */\n transitionProps?: TransitionOverride;\n\n /** Called when exit transition ends */\n onExitTransitionEnd?: () => void;\n\n /** Called when enter transition ends */\n onEnterTransitionEnd?: () => void;\n\n /** Dropdown width, or `'target'` to make dropdown width the same as target element @default 'max-content' */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling @default { flip: true, shift: true, inline: false } */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow @default false */\n withArrow?: boolean;\n\n /** Determines whether the overlay should be displayed when the dropdown is opened @default false */\n withOverlay?: boolean;\n\n /** Props passed down to `Overlay` component */\n overlayProps?: OverlayProps & ElementProps<'div'>;\n\n /** Arrow size in px @default 7 */\n arrowSize?: number;\n\n /** Arrow offset in px @default 5 */\n arrowOffset?: number;\n\n /** Arrow `border-radius` in px @default 0 */\n arrowRadius?: number;\n\n /** Arrow position */\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within the `Portal` @default true */\n withinPortal?: boolean;\n\n /** Props to pass down to the `Portal` when `withinPortal` is true */\n portalProps?: BasePortalProps;\n\n /** Dropdown `z-index` @default 300 */\n zIndex?: string | number;\n\n /** Key of `theme.radius` or any valid CSS value to set border-radius @default theme.defaultRadius */\n radius?: MantineRadius;\n\n /** Key of `theme.shadows` or any other valid CSS `box-shadow` value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not be rendered */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes @default false */\n returnFocus?: boolean;\n\n /** Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy) @default 'absolute' */\n floatingStrategy?: FloatingStrategy;\n\n /** If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen @default true */\n hideDetached?: boolean;\n\n /** Prevents popover from flipping/shifting when it the dropdown is visible */\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 clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n} satisfies Partial<PopoverProps>;\n\nconst varsResolver = createVarsResolver<PopoverFactory>((_, { radius, shadow }) => ({\n dropdown: {\n '--popover-radius': radius === undefined ? undefined : getRadius(radius),\n '--popover-shadow': getShadow(shadow),\n },\n}));\n\nexport function Popover(_props: PopoverProps) {\n const props = useProps('Popover', defaultProps, _props);\n const {\n children,\n position,\n offset,\n onPositionChange,\n opened,\n transitionProps,\n onExitTransitionEnd,\n onEnterTransitionEnd,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n portalProps,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onDismiss,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted,\n vars,\n floatingStrategy,\n withOverlay,\n overlayProps,\n hideDetached,\n attributes,\n preventPositionChangeWhenVisible,\n ...others\n } = props;\n\n const getStyles = useStyles<PopoverFactory>({\n name: __staticSelector,\n props,\n classes,\n classNames,\n styles,\n unstyled,\n attributes,\n rootSelector: 'dropdown',\n vars,\n varsResolver,\n });\n\n const { resolvedStyles } = useResolvedStylesApi<PopoverFactory>({ classNames, styles, props });\n\n const [dropdownVisible, setDropdownVisible] = useState(opened ?? defaultOpened ?? false);\n const positionRef = useRef<FloatingPosition>(position);\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 dropdownVisible,\n setDropdownVisible,\n positionRef,\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 setDropdownVisible(false);\n // Only reset position if preventPositionChangeWhenVisible is false\n // to maintain the flipped position on subsequent opens\n if (!preventPositionChangeWhenVisible) {\n positionRef.current = position;\n }\n }, [transitionProps?.onExited, onExitTransitionEnd, preventPositionChangeWhenVisible, position]);\n\n const onEntered = useCallback(() => {\n transitionProps?.onEntered?.();\n onEnterTransitionEnd?.();\n }, [transitionProps?.onEntered, onEnterTransitionEnd]);\n\n return (\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transitionProps: { ...transitionProps, onExited, onEntered },\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n portalProps,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onDismiss,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => uid,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted,\n getStyles,\n resolvedStyles,\n floatingStrategy,\n referenceHidden:\n hideDetached && env !== 'test'\n ? popover.floating.middlewareData.hide?.referenceHidden\n : false,\n }}\n >\n {children}\n {withOverlay && (\n <Transition\n transition=\"fade\"\n mounted={popover.opened}\n duration={transitionProps?.duration || 250}\n exitDuration={transitionProps?.exitDuration || 250}\n >\n {(transitionStyles) => (\n <OptionalPortal withinPortal={withinPortal}>\n <Overlay\n {...overlayProps}\n {...getStyles('overlay', {\n className: overlayProps?.className,\n style: [transitionStyles, overlayProps?.style],\n })}\n />\n </OptionalPortal>\n )}\n </Transition>\n )}\n </PopoverContextProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverDropdown.mjs","names":["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 useProps,\n} from '../../../core';\nimport { FloatingArrow } 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\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus,\n });\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-labelledby': ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: 'dialog',\n tabIndex: -1,\n }\n : {};\n\n const mergedRef = useMergedRef(ref, ctx.floating);\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <OptionalPortal {...ctx.portalProps} withinPortal={ctx.withinPortal}>\n <Transition\n mounted={ctx.opened}\n {...ctx.transitionProps}\n transition={ctx.transitionProps?.transition || 'fade'}\n duration={ctx.transitionProps?.duration ?? 150}\n keepMounted={ctx.keepMounted}\n exitDuration={\n typeof ctx.transitionProps?.exitDuration === 'number'\n ? ctx.transitionProps.exitDuration\n : ctx.transitionProps?.duration\n }\n >\n {(transitionStyles) => (\n <FocusTrap active={ctx.trapFocus && ctx.opened} innerRef={mergedRef}>\n <Box\n {...accessibleProps}\n {...others}\n variant={variant}\n onKeyDownCapture={closeOnEscape(\n () => {\n ctx.onClose?.();\n ctx.onDismiss?.();\n },\n {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture,\n }\n )}\n data-position={ctx.placement}\n data-fixed={ctx.floatingStrategy === 'fixed' || undefined}\n {...ctx.getStyles('dropdown', {\n className,\n props,\n classNames,\n styles,\n style: [\n {\n ...transitionStyles,\n 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":";;;;;;;;;;;;;;;AA8BA,MAAa,kBAAkB,SAAiC,WAAW;CACzE,MAAM,QAAQ,SAAS,mBAAmB,MAAM,OAAO;CACvD,MAAM,EACJ,WACA,OACA,MACA,UACA,kBACA,SACA,YACA,QACA,KACA,GAAG,WACD;CAEJ,MAAM,MAAM,mBAAmB;CAE/B,MAAM,cAAc,eAAe;EACjC,QAAQ,IAAI;EACZ,mBAAmB,IAAI;EACxB,CAAC;CAEF,MAAM,kBAAkB,IAAI,YACxB;EACE,mBAAmB,IAAI,aAAa;EACpC,IAAI,IAAI,eAAe;EACvB,MAAM;EACN,UAAU;EACX,GACD,EAAE;CAEN,MAAM,YAAY,aAAa,KAAK,IAAI,SAAS;AAEjD,KAAI,IAAI,SACN,QAAO;AAGT,QACE,oBAAC,gBAAD;EAAgB,GAAI,IAAI;EAAa,cAAc,IAAI;YACrD,oBAAC,YAAD;GACE,SAAS,IAAI;GACb,GAAI,IAAI;GACR,YAAY,IAAI,iBAAiB,cAAc;GAC/C,UAAU,IAAI,iBAAiB,YAAY;GAC3C,aAAa,IAAI;GACjB,cACE,OAAO,IAAI,iBAAiB,iBAAiB,WACzC,IAAI,gBAAgB,eACpB,IAAI,iBAAiB;cAGzB,qBACA,oBAAC,WAAD;IAAW,QAAQ,IAAI,aAAa,IAAI;IAAQ,UAAU;cACxD,qBAAC,KAAD;KACE,GAAI;KACJ,GAAI;KACK;KACT,kBAAkB,oBACV;AACJ,UAAI,WAAW;AACf,UAAI,aAAa;QAEnB;MACE,QAAQ,IAAI;MACZ,WAAW;MACX,WAAW;MACZ,CACF;KACD,iBAAe,IAAI;KACnB,cAAY,IAAI,qBAAqB,WAAW,KAAA;KAChD,GAAI,IAAI,UAAU,YAAY;MAC5B;MACA;MACA;MACA;MACA,OAAO;OACL;QACE,GAAG;QACH,QAAQ,IAAI;QACZ,KAAK,IAAI,KAAK;QACd,MAAM,IAAI,KAAK;QACf,OAAO,IAAI,UAAU,WAAW,KAAA,IAAY,IAAI,IAAI,MAAM;QAC1D,GAAI,IAAI,kBAAkB,EAAE,SAAS,QAAQ,GAAG;QACjD;OACD,IAAI,gBAAgB;OACpB,QAAQ;OACR;OACD;MACF,CAAC;eAnCJ,CAqCG,UAED,oBAAC,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;OACD,CAAC;MACF,CAAA,CACE;;IACI,CAAA;GAEH,CAAA;EACE,CAAA;EAEnB;AAEF,gBAAgB,UAAUA;AAC1B,gBAAgB,cAAc"}
1
+ {"version":3,"file":"PopoverDropdown.mjs","names":["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 useProps,\n} from '../../../core';\nimport { FloatingArrow } 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\n const returnFocus = useFocusReturn({\n opened: ctx.opened,\n shouldReturnFocus: ctx.returnFocus,\n });\n\n const accessibleProps = ctx.withRoles\n ? {\n 'aria-labelledby': ctx.getTargetId(),\n id: ctx.getDropdownId(),\n role: 'dialog',\n tabIndex: -1,\n }\n : {};\n\n const mergedRef = useMergedRef(ref, ctx.floating);\n\n if (ctx.disabled) {\n return null;\n }\n\n return (\n <OptionalPortal {...ctx.portalProps} withinPortal={ctx.withinPortal}>\n <Transition\n mounted={ctx.opened}\n {...ctx.transitionProps}\n transition={ctx.transitionProps?.transition || 'fade'}\n duration={ctx.transitionProps?.duration ?? 150}\n keepMounted={ctx.keepMounted}\n exitDuration={\n typeof ctx.transitionProps?.exitDuration === 'number'\n ? ctx.transitionProps.exitDuration\n : ctx.transitionProps?.duration\n }\n >\n {(transitionStyles) => (\n <FocusTrap active={ctx.trapFocus && ctx.opened} innerRef={mergedRef}>\n <Box\n {...accessibleProps}\n {...others}\n variant={variant}\n onKeyDownCapture={closeOnEscape(\n () => {\n ctx.onClose?.();\n ctx.onDismiss?.();\n },\n {\n active: ctx.closeOnEscape,\n onTrigger: returnFocus,\n onKeyDown: onKeyDownCapture,\n }\n )}\n data-position={ctx.placement}\n data-fixed={ctx.floatingStrategy === 'fixed' || undefined}\n {...ctx.getStyles('dropdown', {\n className,\n props,\n classNames,\n styles,\n style: [\n {\n ...transitionStyles,\n 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":";;;;;;;;;;;;;;;AA8BA,MAAa,kBAAkB,SAAiC,WAAW;CACzE,MAAM,QAAQ,SAAS,mBAAmB,MAAM,MAAM;CACtD,MAAM,EACJ,WACA,OACA,MACA,UACA,kBACA,SACA,YACA,QACA,KACA,GAAG,WACD;CAEJ,MAAM,MAAM,kBAAkB;CAE9B,MAAM,cAAc,eAAe;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,YAAY,aAAa,KAAK,IAAI,QAAQ;CAEhD,IAAI,IAAI,UACN,OAAO;CAGT,OACE,oBAAC,gBAAD;EAAgB,GAAI,IAAI;EAAa,cAAc,IAAI;YACrD,oBAAC,YAAD;GACE,SAAS,IAAI;GACb,GAAI,IAAI;GACR,YAAY,IAAI,iBAAiB,cAAc;GAC/C,UAAU,IAAI,iBAAiB,YAAY;GAC3C,aAAa,IAAI;GACjB,cACE,OAAO,IAAI,iBAAiB,iBAAiB,WACzC,IAAI,gBAAgB,eACpB,IAAI,iBAAiB;cAGzB,qBACA,oBAAC,WAAD;IAAW,QAAQ,IAAI,aAAa,IAAI;IAAQ,UAAU;cACxD,qBAAC,KAAD;KACE,GAAI;KACJ,GAAI;KACK;KACT,kBAAkB,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,QAAQ,IAAI;QACZ,KAAK,IAAI,KAAK;QACd,MAAM,IAAI,KAAK;QACf,OAAO,IAAI,UAAU,WAAW,KAAA,IAAY,IAAI,IAAI,KAAK;QACzD,GAAI,IAAI,kBAAkB,EAAE,SAAS,OAAO,IAAI;OAClD;OACA,IAAI,gBAAgB;OACpB,QAAQ;OACR;MACF;KACF,CAAC;eAnCH,CAqCG,UAED,oBAAC,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,UAAUA;AAC1B,gBAAgB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverTarget.mjs","names":[],"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;CACZ;AAQD,MAAa,gBAAgB,SAA+B,UAAU;CACpE,MAAM,EAAE,UAAU,SAAS,WAAW,KAAK,GAAG,WAAW,SACvD,iBACA,cACA,MACD;CAED,MAAM,QAAQ,sBAAsB,SAAS;AAC7C,KAAI,CAAC,MACH,OAAM,IAAI,MACR,mKACD;CAGH,MAAM,iBAAsB;CAC5B,MAAM,MAAM,mBAAmB;CAC/B,MAAM,YAAY,aAAa,IAAI,WAAW,WAAW,MAAM,EAAE,IAAI;CAErE,MAAM,kBAAkB,IAAI,YACxB;EACE,iBAAiB;EACjB,iBAAiB,IAAI;EACrB,iBAAiB,IAAI,SAAS,IAAI,eAAe,GAAG,KAAA;EACpD,IAAI,IAAI,aAAa;EACtB,GACD,EAAE;CAEN,MAAM,aAAa,MAAM;AACzB,QAAO,aAAa,OAAO;EACzB,GAAG;EACH,GAAG;EACH,GAAG,IAAI;EACP,WAAW,GAAG,IAAI,YAAY,WAAW,eAAe,WAAW,WAAW,UAAU;GACvF,UAAU;EACX,GAAI,CAAC,IAAI,aACL,EACE,UAAU,UAAyC;AACjD,OAAI,UAAU;AACd,cAAW,UAAU,MAAM;KAE9B,GACD;EACL,CAAC;EACF;AAEF,cAAc,cAAc"}
1
+ {"version":3,"file":"PopoverTarget.mjs","names":[],"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,gBAAgB,SAA+B,UAAU;CACpE,MAAM,EAAE,UAAU,SAAS,WAAW,KAAK,GAAG,WAAW,SACvD,iBACA,cACA,KACF;CAEA,MAAM,QAAQ,sBAAsB,QAAQ;CAC5C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,kKACF;CAGF,MAAM,iBAAsB;CAC5B,MAAM,MAAM,kBAAkB;CAC9B,MAAM,YAAY,aAAa,IAAI,WAAW,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,OAAO,aAAa,OAAO;EACzB,GAAG;EACH,GAAG;EACH,GAAG,IAAI;EACP,WAAW,GAAG,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 +1 @@
1
- {"version":3,"file":"use-popover.mjs","names":[],"sources":["../../../src/components/Popover/use-popover.ts"],"sourcesContent":["import { useEffect, useRef } 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 { useMantineEnv } from '../../core';\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 dropdownVisible: boolean;\n setDropdownVisible: (visible: boolean) => void;\n positionRef: React.RefObject<FloatingPosition>;\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 env: 'test' | 'default'\n) {\n const middlewaresOptions = getDefaultMiddlewares(options.middlewares);\n const middlewares: Middleware[] = [offset(options.offset), hide()];\n\n if (options.dropdownVisible && env !== 'test' && options.preventPositionChangeWhenVisible) {\n middlewaresOptions.flip = false;\n }\n\n if (middlewaresOptions.flip) {\n middlewares.push(\n typeof middlewaresOptions.flip === 'boolean' ? flip() : flip(middlewaresOptions.flip)\n );\n }\n\n if (middlewaresOptions.shift) {\n middlewares.push(\n shift(\n typeof middlewaresOptions.shift === 'boolean'\n ? { limiter: limitShift(), padding: 5 }\n : { limiter: limitShift(), padding: 5, ...middlewaresOptions.shift }\n )\n );\n }\n\n if (middlewaresOptions.inline) {\n middlewares.push(\n typeof middlewaresOptions.inline === 'boolean' ? inline() : inline(middlewaresOptions.inline)\n );\n }\n\n middlewares.push(arrow({ element: options.arrowRef, padding: options.arrowOffset }));\n\n if (middlewaresOptions.size || options.width === 'target') {\n middlewares.push(\n size({\n ...(typeof middlewaresOptions.size === 'boolean' ? {} : middlewaresOptions.size),\n apply({ rects, availableWidth, availableHeight, ...rest }) {\n const floating = getFloating();\n const styles = floating.refs.floating.current?.style ?? {};\n\n if (middlewaresOptions.size) {\n // If custom apply function is given use that else set defaults\n if (typeof middlewaresOptions.size === 'object' && !!middlewaresOptions.size.apply) {\n middlewaresOptions.size.apply({ rects, availableWidth, availableHeight, ...rest });\n } else {\n Object.assign(styles, {\n maxWidth: `${availableWidth}px`,\n maxHeight: `${availableHeight}px`,\n });\n }\n }\n\n if (options.width === 'target') {\n Object.assign(styles, {\n width: `${rects.reference.width}px`,\n });\n }\n },\n })\n );\n }\n\n return middlewares;\n}\n\nexport function usePopover(options: UsePopoverOptions) {\n const env = useMantineEnv();\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 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 strategy: options.strategy,\n placement: options.preventPositionChangeWhenVisible\n ? options.positionRef.current\n : options.position,\n middleware: getPopoverMiddlewares(options, () => floating, env),\n whileElementsMounted: !options.keepMounted ? autoUpdate : undefined,\n });\n\n useEffect(() => {\n if (!floating.refs.reference.current || !floating.refs.floating.current) {\n return;\n }\n\n if (_opened) {\n return autoUpdate(\n floating.refs.reference.current,\n floating.refs.floating.current,\n floating.update\n );\n }\n }, [_opened, floating.update]);\n\n useDidUpdate(() => {\n options.onPositionChange?.(floating.placement);\n options.positionRef.current = floating.placement;\n }, [floating.placement, options.preventPositionChangeWhenVisible]);\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 useIsomorphicEffect(() => {\n let timeout: number = -1;\n\n if (_opened) {\n // Required to be in timeout to give floating ui render time to flip/shift popover\n timeout = window.setTimeout(() => options.setDropdownVisible(true), 4);\n }\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [_opened, options.position]);\n\n return {\n floating,\n controlled: typeof options.opened === 'boolean',\n opened: _opened,\n onClose,\n onToggle,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-popover.mjs","names":[],"sources":["../../../src/components/Popover/use-popover.ts"],"sourcesContent":["import { useEffect, useRef } 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 { useMantineEnv } from '../../core';\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 dropdownVisible: boolean;\n setDropdownVisible: (visible: boolean) => void;\n positionRef: React.RefObject<FloatingPosition>;\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 env: 'test' | 'default'\n) {\n const middlewaresOptions = getDefaultMiddlewares(options.middlewares);\n const middlewares: Middleware[] = [offset(options.offset), hide()];\n\n if (options.dropdownVisible && env !== 'test' && options.preventPositionChangeWhenVisible) {\n middlewaresOptions.flip = false;\n }\n\n if (middlewaresOptions.flip) {\n middlewares.push(\n typeof middlewaresOptions.flip === 'boolean' ? flip() : flip(middlewaresOptions.flip)\n );\n }\n\n if (middlewaresOptions.shift) {\n middlewares.push(\n shift(\n typeof middlewaresOptions.shift === 'boolean'\n ? { limiter: limitShift(), padding: 5 }\n : { limiter: limitShift(), padding: 5, ...middlewaresOptions.shift }\n )\n );\n }\n\n if (middlewaresOptions.inline) {\n middlewares.push(\n typeof middlewaresOptions.inline === 'boolean' ? inline() : inline(middlewaresOptions.inline)\n );\n }\n\n middlewares.push(arrow({ element: options.arrowRef, padding: options.arrowOffset }));\n\n if (middlewaresOptions.size || options.width === 'target') {\n middlewares.push(\n size({\n ...(typeof middlewaresOptions.size === 'boolean' ? {} : middlewaresOptions.size),\n apply({ rects, availableWidth, availableHeight, ...rest }) {\n const floating = getFloating();\n const styles = floating.refs.floating.current?.style ?? {};\n\n if (middlewaresOptions.size) {\n // If custom apply function is given use that else set defaults\n if (typeof middlewaresOptions.size === 'object' && !!middlewaresOptions.size.apply) {\n middlewaresOptions.size.apply({ rects, availableWidth, availableHeight, ...rest });\n } else {\n Object.assign(styles, {\n maxWidth: `${availableWidth}px`,\n maxHeight: `${availableHeight}px`,\n });\n }\n }\n\n if (options.width === 'target') {\n Object.assign(styles, {\n width: `${rects.reference.width}px`,\n });\n }\n },\n })\n );\n }\n\n return middlewares;\n}\n\nexport function usePopover(options: UsePopoverOptions) {\n const env = useMantineEnv();\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 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 strategy: options.strategy,\n placement: options.preventPositionChangeWhenVisible\n ? options.positionRef.current\n : options.position,\n middleware: getPopoverMiddlewares(options, () => floating, env),\n whileElementsMounted: !options.keepMounted ? autoUpdate : undefined,\n });\n\n useEffect(() => {\n if (!floating.refs.reference.current || !floating.refs.floating.current) {\n return;\n }\n\n if (_opened) {\n return autoUpdate(\n floating.refs.reference.current,\n floating.refs.floating.current,\n floating.update\n );\n }\n }, [_opened, floating.update]);\n\n useDidUpdate(() => {\n options.onPositionChange?.(floating.placement);\n options.positionRef.current = floating.placement;\n }, [floating.placement, options.preventPositionChangeWhenVisible]);\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 useIsomorphicEffect(() => {\n let timeout: number = -1;\n\n if (_opened) {\n // Required to be in timeout to give floating ui render time to flip/shift popover\n timeout = window.setTimeout(() => options.setDropdownVisible(true), 4);\n }\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [_opened, options.position]);\n\n return {\n floating,\n controlled: typeof options.opened === 'boolean',\n opened: _opened,\n onClose,\n onToggle,\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionalPortal.mjs","names":[],"sources":["../../../src/components/Portal/OptionalPortal.tsx"],"sourcesContent":["import { factory, Factory, useMantineEnv } from '../../core';\nimport { Portal, PortalProps } from './Portal';\n\nexport interface OptionalPortalProps extends PortalProps {\n /**\n * Determines whether children should be rendered inside Portal.\n * When false, children are rendered as regular React children.\n *\n * Note: In test environment, Portal is always disabled regardless of this value.\n *\n * @default true\n */\n withinPortal?: boolean;\n}\n\nexport type OptionalPortalFactory = Factory<{\n props: OptionalPortalProps;\n ref: HTMLDivElement;\n}>;\n\nexport const OptionalPortal = factory<OptionalPortalFactory>(\n ({ withinPortal = true, children, ...others }) => {\n const env = useMantineEnv();\n\n if (env === 'test' || !withinPortal) {\n return <>{children}</>;\n }\n\n return <Portal {...others}>{children}</Portal>;\n }\n);\n\nOptionalPortal.displayName = '@mantine/core/OptionalPortal';\n\nexport namespace OptionalPortal {\n export type Props = OptionalPortalProps;\n}\n"],"mappings":";;;;;;AAoBA,MAAa,iBAAiB,SAC3B,EAAE,eAAe,MAAM,UAAU,GAAG,aAAa;AAGhD,KAFY,eAAe,KAEf,UAAU,CAAC,aACrB,QAAO,oBAAA,UAAA,EAAG,UAAY,CAAA;AAGxB,QAAO,oBAAC,QAAD;EAAQ,GAAI;EAAS;EAAkB,CAAA;EAEjD;AAED,eAAe,cAAc"}
1
+ {"version":3,"file":"OptionalPortal.mjs","names":[],"sources":["../../../src/components/Portal/OptionalPortal.tsx"],"sourcesContent":["import { factory, Factory, useMantineEnv } from '../../core';\nimport { Portal, PortalProps } from './Portal';\n\nexport interface OptionalPortalProps extends PortalProps {\n /**\n * Determines whether children should be rendered inside Portal.\n * When false, children are rendered as regular React children.\n *\n * Note: In test environment, Portal is always disabled regardless of this value.\n *\n * @default true\n */\n withinPortal?: boolean;\n}\n\nexport type OptionalPortalFactory = Factory<{\n props: OptionalPortalProps;\n ref: HTMLDivElement;\n}>;\n\nexport const OptionalPortal = factory<OptionalPortalFactory>(\n ({ withinPortal = true, children, ...others }) => {\n const env = useMantineEnv();\n\n if (env === 'test' || !withinPortal) {\n return <>{children}</>;\n }\n\n return <Portal {...others}>{children}</Portal>;\n }\n);\n\nOptionalPortal.displayName = '@mantine/core/OptionalPortal';\n\nexport namespace OptionalPortal {\n export type Props = OptionalPortalProps;\n}\n"],"mappings":";;;;;;AAoBA,MAAa,iBAAiB,SAC3B,EAAE,eAAe,MAAM,UAAU,GAAG,aAAa;CAGhD,IAFY,cAEN,MAAM,UAAU,CAAC,cACrB,OAAO,oBAAA,UAAA,EAAG,SAAW,CAAA;CAGvB,OAAO,oBAAC,QAAD;EAAQ,GAAI;EAAS;CAAiB,CAAA;AAC/C,CACF;AAEA,eAAe,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Portal.mjs","names":[],"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,MAAM;AAC1C,MAAK,aAAa,eAAe,OAAO;AACxC,QAAO,MAAM,cAAc,YACzB,KAAK,UAAU,IAAI,GAAG,MAAM,UAAU,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC;AACnE,QAAO,MAAM,UAAU,YAAY,OAAO,OAAO,KAAK,OAAO,MAAM,MAAM;AACzE,QAAO,MAAM,OAAO,YAAY,KAAK,aAAa,MAAM,MAAM,GAAG;AACjE,QAAO;;AA+BT,SAAS,cAAc,EAAE,QAAQ,iBAAiB,GAAG,UAAwC;AAC3F,KAAI,QAAQ;AACV,MAAI,OAAO,WAAW,SACpB,QAAO,SAAS,cAA2B,OAAO,IAAI,iBAAiB,OAAO;AAGhF,SAAO;;AAGT,KAAI,iBAAiB;EACnB,MAAM,eAAe,SAAS,cAA2B,oCAAoC;AAE7F,MAAI,aACF,QAAO;EAGT,MAAM,OAAO,iBAAiB,OAAO;AACrC,OAAK,aAAa,mCAAmC,OAAO;AAC5D,WAAS,KAAK,YAAY,KAAK;AAC/B,SAAO;;AAGT,QAAO,iBAAiB,OAAO;;AAQjC,MAAM,eAAe,EACnB,iBAAiB,MAClB;AAED,MAAa,SAAS,SAAwB,UAAU;CACtD,MAAM,EAAE,UAAU,QAAQ,iBAAiB,KAAK,GAAG,WAAW,SAC5D,UACA,cACA,MACD;CAED,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,UAAU,OAA2B,KAAK;AAEhD,2BAA0B;AACxB,aAAW,KAAK;AAChB,UAAQ,UAAU,cAAc;GAAE;GAAQ;GAAiB,GAAG;GAAQ,CAAC;AACvE,YAAU,KAAK,QAAQ,QAAQ;AAE/B,MAAI,CAAC,UAAU,CAAC,mBAAmB,QAAQ,QACzC,UAAS,KAAK,YAAY,QAAQ,QAAQ;AAG5C,eAAa;AACX,OAAI,CAAC,UAAU,CAAC,mBAAmB,QAAQ,QACzC,UAAS,KAAK,YAAY,QAAQ,QAAQ;;IAG7C,CAAC,OAAO,CAAC;AAEZ,KAAI,CAAC,WAAW,CAAC,QAAQ,QACvB,QAAO;AAGT,QAAO,aAAa,oBAAA,YAAA,EAAG,UAAY,CAAA,EAAE,QAAQ,QAAQ;EACrD;AAEF,OAAO,cAAc"}
1
+ {"version":3,"file":"Portal.mjs","names":[],"sources":["../../../src/components/Portal/Portal.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { assignRef, useIsomorphicEffect } from '@mantine/hooks';\nimport { Factory, factory, useProps } from '../../core';\n\nfunction createPortalNode(props: React.ComponentProps<'div'>) {\n const node = document.createElement('div');\n node.setAttribute('data-portal', 'true');\n typeof props.className === 'string' &&\n node.classList.add(...props.className.split(' ').filter(Boolean));\n typeof props.style === 'object' && Object.assign(node.style, props.style);\n typeof props.id === 'string' && node.setAttribute('id', props.id);\n return node;\n}\n\nexport interface BasePortalProps extends React.ComponentProps<'div'> {\n /**\n * Target element where portal should be rendered. Accepts:\n * - HTMLElement: Renders portal inside this element\n * - string: CSS selector - renders inside first matching element\n * - undefined: Uses shared portal node or creates new one based on `reuseTargetNode`\n *\n * Note: If selector doesn't match any element, portal will not render\n */\n target?: HTMLElement | string;\n\n /**\n * When true and target is not specified, all Portal instances share a single\n * container node appended to document.body. When false, each Portal creates\n * its own container node.\n *\n * Has no effect when target is specified.\n *\n * @default true\n */\n reuseTargetNode?: boolean;\n}\n\nexport interface PortalProps extends BasePortalProps {\n /** Content to render inside the portal */\n children: React.ReactNode;\n}\n\nfunction getTargetNode({ target, reuseTargetNode, ...others }: BasePortalProps): HTMLElement {\n if (target) {\n if (typeof target === 'string') {\n return document.querySelector<HTMLElement>(target) || createPortalNode(others);\n }\n\n return target;\n }\n\n if (reuseTargetNode) {\n const existingNode = document.querySelector<HTMLElement>('[data-mantine-shared-portal-node]');\n\n if (existingNode) {\n return existingNode;\n }\n\n const node = createPortalNode(others);\n node.setAttribute('data-mantine-shared-portal-node', 'true');\n document.body.appendChild(node);\n return node;\n }\n\n return createPortalNode(others);\n}\n\nexport type PortalFactory = Factory<{\n props: PortalProps;\n ref: HTMLDivElement;\n}>;\n\nconst defaultProps = {\n reuseTargetNode: true,\n} satisfies Partial<PortalProps>;\n\nexport const Portal = factory<PortalFactory>((props) => {\n const { children, target, reuseTargetNode, ref, ...others } = useProps(\n 'Portal',\n defaultProps,\n props\n );\n\n const [mounted, setMounted] = useState(false);\n const nodeRef = useRef<HTMLElement | null>(null);\n\n useIsomorphicEffect(() => {\n setMounted(true);\n nodeRef.current = getTargetNode({ target, reuseTargetNode, ...others });\n assignRef(ref, nodeRef.current);\n\n if (!target && !reuseTargetNode && nodeRef.current) {\n document.body.appendChild(nodeRef.current);\n }\n\n return () => {\n if (!target && !reuseTargetNode && nodeRef.current) {\n document.body.removeChild(nodeRef.current);\n }\n };\n }, [target]);\n\n if (!mounted || !nodeRef.current) {\n return null;\n }\n\n return createPortal(<>{children}</>, nodeRef.current);\n});\n\nPortal.displayName = '@mantine/core/Portal';\n\nexport namespace Portal {\n export type Props = PortalProps;\n}\n"],"mappings":";;;;;;;;AAKA,SAAS,iBAAiB,OAAoC;CAC5D,MAAM,OAAO,SAAS,cAAc,KAAK;CACzC,KAAK,aAAa,eAAe,MAAM;CACvC,OAAO,MAAM,cAAc,YACzB,KAAK,UAAU,IAAI,GAAG,MAAM,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC;CAClE,OAAO,MAAM,UAAU,YAAY,OAAO,OAAO,KAAK,OAAO,MAAM,KAAK;CACxE,OAAO,MAAM,OAAO,YAAY,KAAK,aAAa,MAAM,MAAM,EAAE;CAChE,OAAO;AACT;AA8BA,SAAS,cAAc,EAAE,QAAQ,iBAAiB,GAAG,UAAwC;CAC3F,IAAI,QAAQ;EACV,IAAI,OAAO,WAAW,UACpB,OAAO,SAAS,cAA2B,MAAM,KAAK,iBAAiB,MAAM;EAG/E,OAAO;CACT;CAEA,IAAI,iBAAiB;EACnB,MAAM,eAAe,SAAS,cAA2B,mCAAmC;EAE5F,IAAI,cACF,OAAO;EAGT,MAAM,OAAO,iBAAiB,MAAM;EACpC,KAAK,aAAa,mCAAmC,MAAM;EAC3D,SAAS,KAAK,YAAY,IAAI;EAC9B,OAAO;CACT;CAEA,OAAO,iBAAiB,MAAM;AAChC;AAOA,MAAM,eAAe,EACnB,iBAAiB,KACnB;AAEA,MAAa,SAAS,SAAwB,UAAU;CACtD,MAAM,EAAE,UAAU,QAAQ,iBAAiB,KAAK,GAAG,WAAW,SAC5D,UACA,cACA,KACF;CAEA,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;CAC5C,MAAM,UAAU,OAA2B,IAAI;CAE/C,0BAA0B;EACxB,WAAW,IAAI;EACf,QAAQ,UAAU,cAAc;GAAE;GAAQ;GAAiB,GAAG;EAAO,CAAC;EACtE,UAAU,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,OAAO,aAAa,oBAAA,YAAA,EAAG,SAAW,CAAA,GAAG,QAAQ,OAAO;AACtD,CAAC;AAED,OAAO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.context.mjs","names":[],"sources":["../../../src/components/Progress/Progress.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { ProgressRootFactory } from './ProgressRoot/ProgressRoot';\n\nexport interface ProgressContextValue {\n getStyles: GetStylesApi<ProgressRootFactory>;\n autoContrast: boolean | undefined;\n}\n\nexport const [ProgressProvider, useProgressContext] = createSafeContext<ProgressContextValue>(\n 'Progress.Root component was not found in tree'\n);\n"],"mappings":";;;AAQA,MAAa,CAAC,kBAAkB,sBAAsB,kBACpD,gDACD"}
1
+ {"version":3,"file":"Progress.context.mjs","names":[],"sources":["../../../src/components/Progress/Progress.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '../../core';\nimport type { ProgressRootFactory } from './ProgressRoot/ProgressRoot';\n\nexport interface ProgressContextValue {\n getStyles: GetStylesApi<ProgressRootFactory>;\n autoContrast: boolean | undefined;\n}\n\nexport const [ProgressProvider, useProgressContext] = createSafeContext<ProgressContextValue>(\n 'Progress.Root component was not found in tree'\n);\n"],"mappings":";;;AAQA,MAAa,CAAC,kBAAkB,sBAAsB,kBACpD,+CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.mjs","names":["classes"],"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,WAAW,SAA0B,WAAW;CAC3D,MAAM,QAAQ,SAAS,YAAY,MAAM,OAAO;CAChD,MAAM,EACJ,OACA,YACA,QACA,MACA,OACA,SACA,UACA,cAAc,OACd,GAAG,WACD;CAEJ,MAAM,EAAE,oBAAoB,mBAAmB,qBAAsC;EACnF;EACA;EACA;EACD,CAAC;AAEF,QACE,oBAAC,cAAD;EACE,YAAY;EACZ,QAAQ;EACF;EACN,GAAI;YAEJ,oBAAC,iBAAD;GACS;GACA;GACE;GACC;GACV,cAAY;GACZ,CAAA;EACW,CAAA;EAEjB;AAEF,SAAS,UAAUA;AACnB,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,OAAO;AAChB,SAAS,QAAQ"}
1
+ {"version":3,"file":"Progress.mjs","names":["classes"],"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,WAAW,SAA0B,WAAW;CAC3D,MAAM,QAAQ,SAAS,YAAY,MAAM,MAAM;CAC/C,MAAM,EACJ,OACA,YACA,QACA,MACA,OACA,SACA,UACA,cAAc,OACd,GAAG,WACD;CAEJ,MAAM,EAAE,oBAAoB,mBAAmB,qBAAsC;EACnF;EACA;EACA;CACF,CAAC;CAED,OACE,oBAAC,cAAD;EACE,YAAY;EACZ,QAAQ;EACF;EACN,GAAI;YAEJ,oBAAC,iBAAD;GACS;GACA;GACE;GACC;GACV,cAAY;EACb,CAAA;CACW,CAAA;AAElB,CAAC;AAED,SAAS,UAAUA;AACnB,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,OAAO;AAChB,SAAS,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressLabel.mjs","names":["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,gBAAgB,SAA+B,UAAU;CACpE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,GAAG,WAAW,SAChE,iBACA,MACA,MACD;AAID,QAAO,oBAAC,KAAD;EAAK,GAFA,oBAAoB,CAEZ,UAAU,SAAS;GAAE;GAAW;GAAO;GAAY;GAAQ,CAAC;EAAE,GAAI;EAAU,CAAA;EAChG;AAEF,cAAc,UAAUA;AACxB,cAAc,cAAc"}
1
+ {"version":3,"file":"ProgressLabel.mjs","names":["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,gBAAgB,SAA+B,UAAU;CACpE,MAAM,EAAE,YAAY,WAAW,OAAO,QAAQ,MAAM,GAAG,WAAW,SAChE,iBACA,MACA,KACF;CAIA,OAAO,oBAAC,KAAD;EAAK,GAFA,mBAEM,EAAE,UAAU,SAAS;GAAE;GAAW;GAAO;GAAY;EAAO,CAAC;EAAG,GAAI;CAAS,CAAA;AACjG,CAAC;AAED,cAAc,UAAUA;AACxB,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressRoot.mjs","names":["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,eAAe,oBAClB,GAAG,EAAE,MAAM,QAAQ,0BAA0B,EAC5C,MAAM;CACJ,mBAAmB,QAAQ,MAAM,gBAAgB;CACjD,qBAAqB,WAAW,KAAA,IAAY,KAAA,IAAY,UAAU,OAAO;CACzE,kCACE,OAAO,uBAAuB,WAAW,GAAG,mBAAmB,MAAM,KAAA;CACxE,EACF,EACF;AAED,MAAa,eAAe,SAA8B,WAAW;CACnE,MAAM,QAAQ,SAAS,gBAAgB,MAAM,OAAO;CACpD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,cACA,oBACA,aACA,YACA,KACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA+B;EAC/C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,oBAAC,kBAAD;EAAkB,OAAO;GAAE;GAAW;GAAc;YAClD,oBAAC,KAAD;GAAK,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI;GAAE,GAAI,UAAU,OAAO;GAAE,GAAI;GAAU,CAAA;EACtD,CAAA;EAErB;AAEF,aAAa,UAAUA;AACvB,aAAa,eAAe;AAC5B,aAAa,cAAc"}
1
+ {"version":3,"file":"ProgressRoot.mjs","names":["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,eAAe,oBAClB,GAAG,EAAE,MAAM,QAAQ,0BAA0B,EAC5C,MAAM;CACJ,mBAAmB,QAAQ,MAAM,eAAe;CAChD,qBAAqB,WAAW,KAAA,IAAY,KAAA,IAAY,UAAU,MAAM;CACxE,kCACE,OAAO,uBAAuB,WAAW,GAAG,mBAAmB,MAAM,KAAA;AACzE,EACF,EACF;AAEA,MAAa,eAAe,SAA8B,WAAW;CACnE,MAAM,QAAQ,SAAS,gBAAgB,MAAM,MAAM;CACnD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,cACA,oBACA,aACA,YACA,KACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA+B;EAC/C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,oBAAC,kBAAD;EAAkB,OAAO;GAAE;GAAW;EAAa;YACjD,oBAAC,KAAD;GAAK,KAAK,CAAC,EAAE,YAAY,GAAG,GAAG;GAAG,GAAI,UAAU,MAAM;GAAG,GAAI;EAAS,CAAA;CACtD,CAAA;AAEtB,CAAC;AAED,aAAa,UAAUA;AACvB,aAAa,eAAe;AAC5B,aAAa,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressSection.mjs","names":["classes"],"sources":["../../../../src/components/Progress/ProgressSection/ProgressSection.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n getAutoContrastValue,\n getContrastColor,\n getThemeColor,\n MantineColor,\n useMantineTheme,\n useProps,\n} from '../../../core';\nimport { useProgressContext } from '../Progress.context';\nimport classes from '../Progress.module.css';\n\nexport type ProgressSectionStylesNames = 'section';\n\nexport interface ProgressSectionProps\n extends BoxProps, CompoundStylesApiProps<ProgressSectionFactory>, ElementProps<'div'> {\n /** Value of the section in 0–100 range */\n value: number;\n\n /** Determines whether `aria-*` props should be added to the root element @default true */\n withAria?: boolean;\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, `striped` prop is ignored @default false */\n animated?: boolean;\n}\n\nexport type ProgressSectionFactory = Factory<{\n props: ProgressSectionProps;\n ref: HTMLDivElement;\n stylesNames: ProgressSectionStylesNames;\n compound: true;\n}>;\n\nconst defaultProps = {\n withAria: true,\n} satisfies Partial<ProgressSectionProps>;\n\nexport const ProgressSection = factory<ProgressSectionFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n value,\n withAria,\n color,\n striped,\n animated,\n mod,\n ...others\n } = useProps('ProgressSection', defaultProps, props);\n\n const ctx = useProgressContext();\n const theme = useMantineTheme();\n\n const ariaAttributes = withAria\n ? {\n role: 'progressbar',\n 'aria-valuemax': 100,\n 'aria-valuemin': 0,\n 'aria-valuenow': value,\n 'aria-valuetext': `${value}%`,\n }\n : {};\n\n return (\n <Box\n {...ctx.getStyles('section', { className, classNames, styles, style })}\n {...others}\n {...ariaAttributes}\n mod={[{ striped: striped || animated, animated }, mod]}\n __vars={{\n '--progress-section-size': `${value}%`,\n '--progress-section-color': getThemeColor(color, theme),\n '--progress-label-color': getAutoContrastValue(ctx.autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast: ctx.autoContrast })\n : undefined,\n }}\n />\n );\n});\n\nProgressSection.classes = classes;\nProgressSection.displayName = '@mantine/core/ProgressSection';\n"],"mappings":";;;;;;;;;;;;AA4CA,MAAM,eAAe,EACnB,UAAU,MACX;AAED,MAAa,kBAAkB,SAAiC,UAAU;CACxE,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,OACA,UACA,OACA,SACA,UACA,KACA,GAAG,WACD,SAAS,mBAAmB,cAAc,MAAM;CAEpD,MAAM,MAAM,oBAAoB;CAChC,MAAM,QAAQ,iBAAiB;CAE/B,MAAM,iBAAiB,WACnB;EACE,MAAM;EACN,iBAAiB;EACjB,iBAAiB;EACjB,iBAAiB;EACjB,kBAAkB,GAAG,MAAM;EAC5B,GACD,EAAE;AAEN,QACE,oBAAC,KAAD;EACE,GAAI,IAAI,UAAU,WAAW;GAAE;GAAW;GAAY;GAAQ;GAAO,CAAC;EACtE,GAAI;EACJ,GAAI;EACJ,KAAK,CAAC;GAAE,SAAS,WAAW;GAAU;GAAU,EAAE,IAAI;EACtD,QAAQ;GACN,2BAA2B,GAAG,MAAM;GACpC,4BAA4B,cAAc,OAAO,MAAM;GACvD,0BAA0B,qBAAqB,IAAI,cAAc,MAAM,GACnE,iBAAiB;IAAE;IAAO;IAAO,cAAc,IAAI;IAAc,CAAC,GAClE,KAAA;GACL;EACD,CAAA;EAEJ;AAEF,gBAAgB,UAAUA;AAC1B,gBAAgB,cAAc"}
1
+ {"version":3,"file":"ProgressSection.mjs","names":["classes"],"sources":["../../../../src/components/Progress/ProgressSection/ProgressSection.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n getAutoContrastValue,\n getContrastColor,\n getThemeColor,\n MantineColor,\n useMantineTheme,\n useProps,\n} from '../../../core';\nimport { useProgressContext } from '../Progress.context';\nimport classes from '../Progress.module.css';\n\nexport type ProgressSectionStylesNames = 'section';\n\nexport interface ProgressSectionProps\n extends BoxProps, CompoundStylesApiProps<ProgressSectionFactory>, ElementProps<'div'> {\n /** Value of the section in 0–100 range */\n value: number;\n\n /** Determines whether `aria-*` props should be added to the root element @default true */\n withAria?: boolean;\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, `striped` prop is ignored @default false */\n animated?: boolean;\n}\n\nexport type ProgressSectionFactory = Factory<{\n props: ProgressSectionProps;\n ref: HTMLDivElement;\n stylesNames: ProgressSectionStylesNames;\n compound: true;\n}>;\n\nconst defaultProps = {\n withAria: true,\n} satisfies Partial<ProgressSectionProps>;\n\nexport const ProgressSection = factory<ProgressSectionFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n value,\n withAria,\n color,\n striped,\n animated,\n mod,\n ...others\n } = useProps('ProgressSection', defaultProps, props);\n\n const ctx = useProgressContext();\n const theme = useMantineTheme();\n\n const ariaAttributes = withAria\n ? {\n role: 'progressbar',\n 'aria-valuemax': 100,\n 'aria-valuemin': 0,\n 'aria-valuenow': value,\n 'aria-valuetext': `${value}%`,\n }\n : {};\n\n return (\n <Box\n {...ctx.getStyles('section', { className, classNames, styles, style })}\n {...others}\n {...ariaAttributes}\n mod={[{ striped: striped || animated, animated }, mod]}\n __vars={{\n '--progress-section-size': `${value}%`,\n '--progress-section-color': getThemeColor(color, theme),\n '--progress-label-color': getAutoContrastValue(ctx.autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast: ctx.autoContrast })\n : undefined,\n }}\n />\n );\n});\n\nProgressSection.classes = classes;\nProgressSection.displayName = '@mantine/core/ProgressSection';\n"],"mappings":";;;;;;;;;;;;AA4CA,MAAM,eAAe,EACnB,UAAU,KACZ;AAEA,MAAa,kBAAkB,SAAiC,UAAU;CACxE,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,OACA,UACA,OACA,SACA,UACA,KACA,GAAG,WACD,SAAS,mBAAmB,cAAc,KAAK;CAEnD,MAAM,MAAM,mBAAmB;CAC/B,MAAM,QAAQ,gBAAgB;CAE9B,MAAM,iBAAiB,WACnB;EACE,MAAM;EACN,iBAAiB;EACjB,iBAAiB;EACjB,iBAAiB;EACjB,kBAAkB,GAAG,MAAM;CAC7B,IACA,CAAC;CAEL,OACE,oBAAC,KAAD;EACE,GAAI,IAAI,UAAU,WAAW;GAAE;GAAW;GAAY;GAAQ;EAAM,CAAC;EACrE,GAAI;EACJ,GAAI;EACJ,KAAK,CAAC;GAAE,SAAS,WAAW;GAAU;EAAS,GAAG,GAAG;EACrD,QAAQ;GACN,2BAA2B,GAAG,MAAM;GACpC,4BAA4B,cAAc,OAAO,KAAK;GACtD,0BAA0B,qBAAqB,IAAI,cAAc,KAAK,IAClE,iBAAiB;IAAE;IAAO;IAAO,cAAc,IAAI;GAAa,CAAC,IACjE,KAAA;EACN;CACD,CAAA;AAEL,CAAC;AAED,gBAAgB,UAAUA;AAC1B,gBAAgB,cAAc"}
@@ -63,6 +63,11 @@ const Radio = factory((_props) => {
63
63
  const componentSize = props.size ? size : contextSize;
64
64
  const { styleProps, rest } = extractStyleProps(others);
65
65
  const uuid = useId$1(id);
66
+ const describedBy = [
67
+ description ? `${uuid}-description` : void 0,
68
+ error && typeof error !== "boolean" ? `${uuid}-error` : void 0,
69
+ rest["aria-describedby"]
70
+ ].filter(Boolean).join(" ") || void 0;
66
71
  const contextChecked = ctx ? ctx.value === rest.value : void 0;
67
72
  const withContextProps = {
68
73
  checked: contextChecked ?? checked,
@@ -110,7 +115,8 @@ const Radio = factory((_props) => {
110
115
  "with-error-styles": withErrorStyles
111
116
  },
112
117
  id: uuid,
113
- type: "radio"
118
+ type: "radio",
119
+ "aria-describedby": describedBy
114
120
  }), /* @__PURE__ */ jsx(Icon, {
115
121
  ...getStyles("icon"),
116
122
  "aria-hidden": true
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.mjs","names":["useId","classes"],"sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import { use } from 'react';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n DataAttributes,\n ElementProps,\n extractStyleProps,\n factory,\n Factory,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getSize,\n getThemeColor,\n MantineColor,\n MantineRadius,\n MantineSize,\n parseThemeColor,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { InlineInput, InlineInputStylesNames } from '../../utils/InlineInput';\nimport {\n RadioCard,\n type RadioCardProps,\n type RadioCardStylesNames,\n type RadioCardFactory,\n type RadioCardCssVariables,\n type RadioCardContextValue,\n} from './RadioCard/RadioCard';\nimport {\n RadioGroup,\n RadioGroupContext,\n type RadioGroupProps,\n type RadioGroupStylesNames,\n type RadioGroupFactory,\n type RadioGroupContextValue,\n} from './RadioGroup/RadioGroup';\nimport { RadioIcon, RadioIconProps } from './RadioIcon';\nimport {\n RadioIndicator,\n type RadioIndicatorProps,\n type RadioIndicatorStylesNames,\n type RadioIndicatorFactory,\n type RadioIndicatorCssVariables,\n type RadioIndicatorVariant,\n} from './RadioIndicator/RadioIndicator';\nimport classes from './Radio.module.css';\nexport type RadioVariant = 'filled' | 'outline';\nexport type RadioStylesNames = InlineInputStylesNames | 'inner' | 'radio' | 'icon';\nexport type RadioCssVariables = {\n root:\n | '--radio-size'\n | '--radio-radius'\n | '--radio-color'\n | '--radio-icon-color'\n | '--radio-icon-size';\n};\n\nexport interface RadioProps\n extends BoxProps, StylesApiProps<RadioFactory>, ElementProps<'input', 'size' | 'children'> {\n /** Content of the `label` associated with the radio */\n label?: React.ReactNode;\n\n /** Key of theme.colors or any valid CSS color to set radio background color in checked state @default theme.primaryColor */\n color?: MantineColor;\n\n /** Controls size of the component @default 'sm' */\n size?: MantineSize | (string & {});\n\n /** A component that replaces the default radio icon (centered dot) */\n icon?: React.FC<RadioIconProps>;\n\n /** Props passed down to the root element */\n wrapperProps?: React.ComponentProps<'div'> & DataAttributes;\n\n /** Position of the label relative to the input @default 'right' */\n labelPosition?: 'left' | 'right';\n\n /** Description displayed below the label */\n description?: React.ReactNode;\n\n /** Error displayed below the label */\n error?: React.ReactNode;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default 'xl' */\n radius?: MantineRadius;\n\n /** Assigns ref of the root element */\n rootRef?: React.Ref<HTMLDivElement>;\n\n /** Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting */\n iconColor?: MantineColor;\n\n /** If set, adjusts text color based on background color for `filled` variant */\n autoContrast?: boolean;\n\n /** If set, applies error styles to the radio when `error` prop is set @default true */\n withErrorStyles?: boolean;\n}\n\nexport type RadioFactory = Factory<{\n props: RadioProps;\n ref: HTMLInputElement;\n stylesNames: RadioStylesNames;\n vars: RadioCssVariables;\n variant: RadioVariant;\n staticComponents: {\n Group: typeof RadioGroup;\n Card: typeof RadioCard;\n Indicator: typeof RadioIndicator;\n };\n}>;\n\nconst defaultProps = {\n labelPosition: 'right',\n withErrorStyles: true,\n} satisfies Partial<RadioProps>;\n\nconst varsResolver = createVarsResolver<RadioFactory>(\n (theme, { size, radius, color, iconColor, variant, autoContrast }) => {\n const parsedColor = parseThemeColor({ color: color || theme.primaryColor, theme });\n const outlineColor =\n parsedColor.isThemeColor && parsedColor.shade === undefined\n ? `var(--mantine-color-${parsedColor.color}-outline)`\n : parsedColor.color;\n\n return {\n root: {\n '--radio-size': getSize(size, 'radio-size'),\n '--radio-radius': radius === undefined ? undefined : getRadius(radius),\n '--radio-color': variant === 'outline' ? outlineColor : getThemeColor(color, theme),\n '--radio-icon-color': iconColor\n ? getThemeColor(iconColor, theme)\n : getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n '--radio-icon-size': getSize(size, 'radio-icon-size'),\n },\n };\n }\n);\n\nexport const Radio = factory<RadioFactory>((_props) => {\n const props = useProps('Radio', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n id,\n size,\n label,\n labelPosition,\n description,\n error,\n radius,\n color,\n variant,\n disabled,\n wrapperProps,\n icon: Icon = RadioIcon,\n rootRef,\n iconColor,\n onChange,\n mod,\n attributes,\n withErrorStyles,\n checked,\n ...others\n } = props;\n\n const getStyles = useStyles<RadioFactory>({\n name: 'Radio',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const ctx = use(RadioGroupContext);\n\n const contextSize = ctx?.size ?? size;\n const componentSize = props.size ? size : contextSize;\n\n const { styleProps, rest } = extractStyleProps(others);\n const uuid = useId(id);\n\n const contextChecked = ctx ? ctx.value === rest.value : undefined;\n\n const withContextProps = {\n checked: contextChecked ?? checked,\n name: rest.name ?? ctx?.name,\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => {\n ctx?.onChange(event);\n onChange?.(event);\n },\n disabled: ctx?.disabled ?? disabled,\n };\n\n return (\n <InlineInput\n {...getStyles('root')}\n __staticSelector=\"Radio\"\n __stylesApiProps={props}\n id={uuid}\n size={componentSize}\n labelPosition={labelPosition}\n label={label}\n description={description}\n error={error}\n disabled={withContextProps.disabled}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n data-checked={(contextChecked ?? checked) || undefined}\n variant={variant}\n ref={rootRef}\n mod={mod}\n attributes={attributes}\n {...styleProps}\n {...wrapperProps}\n >\n <Box {...getStyles('inner')} mod={{ 'label-position': labelPosition }}>\n <Box\n {...getStyles('radio', { focusable: true, variant })}\n {...rest}\n {...withContextProps}\n component=\"input\"\n mod={{ error: !!error, 'with-error-styles': withErrorStyles }}\n id={uuid}\n type=\"radio\"\n />\n <Icon {...getStyles('icon')} aria-hidden />\n </Box>\n </InlineInput>\n );\n});\n\nRadio.classes = classes;\nRadio.varsResolver = varsResolver;\nRadio.displayName = '@mantine/core/Radio';\nRadio.Group = RadioGroup;\nRadio.Card = RadioCard;\nRadio.Indicator = RadioIndicator;\n\nexport namespace Radio {\n export type Props = RadioProps;\n export type StylesNames = RadioStylesNames;\n export type Factory = RadioFactory;\n export type Variant = RadioVariant;\n\n export namespace Group {\n export type Props = RadioGroupProps;\n export type StylesNames = RadioGroupStylesNames;\n export type Factory = RadioGroupFactory;\n export type ContextValue = RadioGroupContextValue;\n }\n\n export namespace Card {\n export type Props = RadioCardProps;\n export type StylesNames = RadioCardStylesNames;\n export type Factory = RadioCardFactory;\n export type CssVariables = RadioCardCssVariables;\n export type ContextValue = RadioCardContextValue;\n }\n\n export namespace Indicator {\n export type Props = RadioIndicatorProps;\n export type StylesNames = RadioIndicatorStylesNames;\n export type Factory = RadioIndicatorFactory;\n export type CssVariables = RadioIndicatorCssVariables;\n export type Variant = RadioIndicatorVariant;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqHA,MAAM,eAAe;CACnB,eAAe;CACf,iBAAiB;CAClB;AAED,MAAM,eAAe,oBAClB,OAAO,EAAE,MAAM,QAAQ,OAAO,WAAW,SAAS,mBAAmB;CACpE,MAAM,cAAc,gBAAgB;EAAE,OAAO,SAAS,MAAM;EAAc;EAAO,CAAC;CAClF,MAAM,eACJ,YAAY,gBAAgB,YAAY,UAAU,KAAA,IAC9C,uBAAuB,YAAY,MAAM,aACzC,YAAY;AAElB,QAAO,EACL,MAAM;EACJ,gBAAgB,QAAQ,MAAM,aAAa;EAC3C,kBAAkB,WAAW,KAAA,IAAY,KAAA,IAAY,UAAU,OAAO;EACtE,iBAAiB,YAAY,YAAY,eAAe,cAAc,OAAO,MAAM;EACnF,sBAAsB,YAClB,cAAc,WAAW,MAAM,GAC/B,qBAAqB,cAAc,MAAM,GACvC,iBAAiB;GAAE;GAAO;GAAO;GAAc,CAAC,GAChD,KAAA;EACN,qBAAqB,QAAQ,MAAM,kBAAkB;EACtD,EACF;EAEJ;AAED,MAAa,QAAQ,SAAuB,WAAW;CACrD,MAAM,QAAQ,SAAS,SAAS,cAAc,OAAO;CACrD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,IACA,MACA,OACA,eACA,aACA,OACA,QACA,OACA,SACA,UACA,cACA,MAAM,OAAO,WACb,SACA,WACA,UACA,KACA,YACA,iBACA,SACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAAwB;EACxC,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,MAAM,IAAI,kBAAkB;CAElC,MAAM,cAAc,KAAK,QAAQ;CACjC,MAAM,gBAAgB,MAAM,OAAO,OAAO;CAE1C,MAAM,EAAE,YAAY,SAAS,kBAAkB,OAAO;CACtD,MAAM,OAAOA,QAAM,GAAG;CAEtB,MAAM,iBAAiB,MAAM,IAAI,UAAU,KAAK,QAAQ,KAAA;CAExD,MAAM,mBAAmB;EACvB,SAAS,kBAAkB;EAC3B,MAAM,KAAK,QAAQ,KAAK;EACxB,WAAW,UAA+C;AACxD,QAAK,SAAS,MAAM;AACpB,cAAW,MAAM;;EAEnB,UAAU,KAAK,YAAY;EAC5B;AAED,QACE,oBAAC,aAAD;EACE,GAAI,UAAU,OAAO;EACrB,kBAAiB;EACjB,kBAAkB;EAClB,IAAI;EACJ,MAAM;EACS;EACR;EACM;EACN;EACP,UAAU,iBAAiB;EACf;EACJ;EACE;EACV,iBAAe,kBAAkB,YAAY,KAAA;EACpC;EACT,KAAK;EACA;EACO;EACZ,GAAI;EACJ,GAAI;YAEJ,qBAAC,KAAD;GAAK,GAAI,UAAU,QAAQ;GAAE,KAAK,EAAE,kBAAkB,eAAe;aAArE,CACE,oBAAC,KAAD;IACE,GAAI,UAAU,SAAS;KAAE,WAAW;KAAM;KAAS,CAAC;IACpD,GAAI;IACJ,GAAI;IACJ,WAAU;IACV,KAAK;KAAE,OAAO,CAAC,CAAC;KAAO,qBAAqB;KAAiB;IAC7D,IAAI;IACJ,MAAK;IACL,CAAA,EACF,oBAAC,MAAD;IAAM,GAAI,UAAU,OAAO;IAAE,eAAA;IAAc,CAAA,CACvC;;EACM,CAAA;EAEhB;AAEF,MAAM,UAAUC;AAChB,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,QAAQ;AACd,MAAM,OAAO;AACb,MAAM,YAAY"}
1
+ {"version":3,"file":"Radio.mjs","names":["useId","classes"],"sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import { use } from 'react';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n DataAttributes,\n ElementProps,\n extractStyleProps,\n factory,\n Factory,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getSize,\n getThemeColor,\n MantineColor,\n MantineRadius,\n MantineSize,\n parseThemeColor,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { InlineInput, InlineInputStylesNames } from '../../utils/InlineInput';\nimport {\n RadioCard,\n type RadioCardProps,\n type RadioCardStylesNames,\n type RadioCardFactory,\n type RadioCardCssVariables,\n type RadioCardContextValue,\n} from './RadioCard/RadioCard';\nimport {\n RadioGroup,\n RadioGroupContext,\n type RadioGroupProps,\n type RadioGroupStylesNames,\n type RadioGroupFactory,\n type RadioGroupContextValue,\n} from './RadioGroup/RadioGroup';\nimport { RadioIcon, RadioIconProps } from './RadioIcon';\nimport {\n RadioIndicator,\n type RadioIndicatorProps,\n type RadioIndicatorStylesNames,\n type RadioIndicatorFactory,\n type RadioIndicatorCssVariables,\n type RadioIndicatorVariant,\n} from './RadioIndicator/RadioIndicator';\nimport classes from './Radio.module.css';\nexport type RadioVariant = 'filled' | 'outline';\nexport type RadioStylesNames = InlineInputStylesNames | 'inner' | 'radio' | 'icon';\nexport type RadioCssVariables = {\n root:\n | '--radio-size'\n | '--radio-radius'\n | '--radio-color'\n | '--radio-icon-color'\n | '--radio-icon-size';\n};\n\nexport interface RadioProps\n extends BoxProps, StylesApiProps<RadioFactory>, ElementProps<'input', 'size' | 'children'> {\n /** Content of the `label` associated with the radio */\n label?: React.ReactNode;\n\n /** Key of theme.colors or any valid CSS color to set radio background color in checked state @default theme.primaryColor */\n color?: MantineColor;\n\n /** Controls size of the component @default 'sm' */\n size?: MantineSize | (string & {});\n\n /** A component that replaces the default radio icon (centered dot) */\n icon?: React.FC<RadioIconProps>;\n\n /** Props passed down to the root element */\n wrapperProps?: React.ComponentProps<'div'> & DataAttributes;\n\n /** Position of the label relative to the input @default 'right' */\n labelPosition?: 'left' | 'right';\n\n /** Description displayed below the label */\n description?: React.ReactNode;\n\n /** Error displayed below the label */\n error?: React.ReactNode;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default 'xl' */\n radius?: MantineRadius;\n\n /** Assigns ref of the root element */\n rootRef?: React.Ref<HTMLDivElement>;\n\n /** Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting */\n iconColor?: MantineColor;\n\n /** If set, adjusts text color based on background color for `filled` variant */\n autoContrast?: boolean;\n\n /** If set, applies error styles to the radio when `error` prop is set @default true */\n withErrorStyles?: boolean;\n}\n\nexport type RadioFactory = Factory<{\n props: RadioProps;\n ref: HTMLInputElement;\n stylesNames: RadioStylesNames;\n vars: RadioCssVariables;\n variant: RadioVariant;\n staticComponents: {\n Group: typeof RadioGroup;\n Card: typeof RadioCard;\n Indicator: typeof RadioIndicator;\n };\n}>;\n\nconst defaultProps = {\n labelPosition: 'right',\n withErrorStyles: true,\n} satisfies Partial<RadioProps>;\n\nconst varsResolver = createVarsResolver<RadioFactory>(\n (theme, { size, radius, color, iconColor, variant, autoContrast }) => {\n const parsedColor = parseThemeColor({ color: color || theme.primaryColor, theme });\n const outlineColor =\n parsedColor.isThemeColor && parsedColor.shade === undefined\n ? `var(--mantine-color-${parsedColor.color}-outline)`\n : parsedColor.color;\n\n return {\n root: {\n '--radio-size': getSize(size, 'radio-size'),\n '--radio-radius': radius === undefined ? undefined : getRadius(radius),\n '--radio-color': variant === 'outline' ? outlineColor : getThemeColor(color, theme),\n '--radio-icon-color': iconColor\n ? getThemeColor(iconColor, theme)\n : getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n '--radio-icon-size': getSize(size, 'radio-icon-size'),\n },\n };\n }\n);\n\nexport const Radio = factory<RadioFactory>((_props) => {\n const props = useProps('Radio', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n id,\n size,\n label,\n labelPosition,\n description,\n error,\n radius,\n color,\n variant,\n disabled,\n wrapperProps,\n icon: Icon = RadioIcon,\n rootRef,\n iconColor,\n onChange,\n mod,\n attributes,\n withErrorStyles,\n checked,\n ...others\n } = props;\n\n const getStyles = useStyles<RadioFactory>({\n name: 'Radio',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const ctx = use(RadioGroupContext);\n\n const contextSize = ctx?.size ?? size;\n const componentSize = props.size ? size : contextSize;\n\n const { styleProps, rest } = extractStyleProps(others);\n const uuid = useId(id);\n const descriptionId = description ? `${uuid}-description` : undefined;\n const errorId = error && typeof error !== 'boolean' ? `${uuid}-error` : undefined;\n const describedBy =\n [descriptionId, errorId, rest['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n const contextChecked = ctx ? ctx.value === rest.value : undefined;\n\n const withContextProps = {\n checked: contextChecked ?? checked,\n name: rest.name ?? ctx?.name,\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => {\n ctx?.onChange(event);\n onChange?.(event);\n },\n disabled: ctx?.disabled ?? disabled,\n };\n\n return (\n <InlineInput\n {...getStyles('root')}\n __staticSelector=\"Radio\"\n __stylesApiProps={props}\n id={uuid}\n size={componentSize}\n labelPosition={labelPosition}\n label={label}\n description={description}\n error={error}\n disabled={withContextProps.disabled}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n data-checked={(contextChecked ?? checked) || undefined}\n variant={variant}\n ref={rootRef}\n mod={mod}\n attributes={attributes}\n {...styleProps}\n {...wrapperProps}\n >\n <Box {...getStyles('inner')} mod={{ 'label-position': labelPosition }}>\n <Box\n {...getStyles('radio', { focusable: true, variant })}\n {...rest}\n {...withContextProps}\n component=\"input\"\n mod={{ error: !!error, 'with-error-styles': withErrorStyles }}\n id={uuid}\n type=\"radio\"\n aria-describedby={describedBy}\n />\n <Icon {...getStyles('icon')} aria-hidden />\n </Box>\n </InlineInput>\n );\n});\n\nRadio.classes = classes;\nRadio.varsResolver = varsResolver;\nRadio.displayName = '@mantine/core/Radio';\nRadio.Group = RadioGroup;\nRadio.Card = RadioCard;\nRadio.Indicator = RadioIndicator;\n\nexport namespace Radio {\n export type Props = RadioProps;\n export type StylesNames = RadioStylesNames;\n export type Factory = RadioFactory;\n export type Variant = RadioVariant;\n\n export namespace Group {\n export type Props = RadioGroupProps;\n export type StylesNames = RadioGroupStylesNames;\n export type Factory = RadioGroupFactory;\n export type ContextValue = RadioGroupContextValue;\n }\n\n export namespace Card {\n export type Props = RadioCardProps;\n export type StylesNames = RadioCardStylesNames;\n export type Factory = RadioCardFactory;\n export type CssVariables = RadioCardCssVariables;\n export type ContextValue = RadioCardContextValue;\n }\n\n export namespace Indicator {\n export type Props = RadioIndicatorProps;\n export type StylesNames = RadioIndicatorStylesNames;\n export type Factory = RadioIndicatorFactory;\n export type CssVariables = RadioIndicatorCssVariables;\n export type Variant = RadioIndicatorVariant;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioCard.mjs","names":["classes"],"sources":["../../../../src/components/Radio/RadioCard/RadioCard.tsx"],"sourcesContent":["import { createContext, use } from 'react';\nimport {\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getRadius,\n MantineRadius,\n StylesApiProps,\n useDirection,\n useProps,\n useStyles,\n} from '../../../core';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { RadioGroupContext } from '../RadioGroup/RadioGroup';\nimport classes from './RadioCard.module.css';\n\nexport interface RadioCardContextValue {\n checked: boolean;\n}\n\nexport const RadioCardContext = createContext<RadioCardContextValue | null>(null);\n\nexport type RadioCardStylesNames = 'card';\nexport type RadioCardCssVariables = {\n card: '--card-radius';\n};\n\nexport interface RadioCardProps\n extends BoxProps, StylesApiProps<RadioCardFactory>, ElementProps<'button', 'onChange'> {\n /** Checked state */\n checked?: boolean;\n\n /** Adds border to the root element */\n withBorder?: boolean;\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 /** Value of the radio, used with Radio.Group */\n value?: string;\n\n /** Value used to associate all related radio cards, required for accessibility if used outside of `Radio.Group` */\n name?: string;\n}\n\nexport type RadioCardFactory = Factory<{\n props: RadioCardProps;\n ref: HTMLButtonElement;\n stylesNames: RadioCardStylesNames;\n vars: RadioCardCssVariables;\n}>;\n\nconst defaultProps = {\n withBorder: true,\n} satisfies Partial<RadioCardProps>;\n\nconst varsResolver = createVarsResolver<RadioCardFactory>((_, { radius }) => ({\n card: {\n '--card-radius': getRadius(radius),\n },\n}));\n\nexport const RadioCard = factory<RadioCardFactory>((_props) => {\n const props = useProps('RadioCard', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n checked,\n mod,\n withBorder,\n value,\n onClick,\n name,\n onKeyDown,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RadioCardFactory>({\n name: 'RadioCard',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n rootSelector: 'card',\n });\n\n const { dir } = useDirection();\n const ctx = use(RadioGroupContext);\n const _checked = typeof checked === 'boolean' ? checked : ctx?.value === value || false;\n const _name = name || ctx?.name;\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(event);\n\n if (!_name) {\n return;\n }\n\n if (['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'].includes(event.nativeEvent.code)) {\n event.preventDefault();\n\n const siblings = Array.from(\n document.querySelectorAll<HTMLButtonElement>(`[role=\"radio\"][name=\"${_name}\"]`)\n );\n\n const currentIndex = siblings.findIndex((element) => element === event.target);\n const nextIndex = currentIndex + 1 >= siblings.length ? 0 : currentIndex + 1;\n const prevIndex = currentIndex - 1 < 0 ? siblings.length - 1 : currentIndex - 1;\n\n if (event.nativeEvent.code === 'ArrowDown') {\n siblings[nextIndex].focus();\n siblings[nextIndex].click();\n }\n\n if (event.nativeEvent.code === 'ArrowUp') {\n siblings[prevIndex].focus();\n siblings[prevIndex].click();\n }\n\n if (event.nativeEvent.code === 'ArrowLeft') {\n siblings[dir === 'ltr' ? prevIndex : nextIndex].focus();\n siblings[dir === 'ltr' ? prevIndex : nextIndex].click();\n }\n\n if (event.nativeEvent.code === 'ArrowRight') {\n siblings[dir === 'ltr' ? nextIndex : prevIndex].focus();\n siblings[dir === 'ltr' ? nextIndex : prevIndex].click();\n }\n }\n };\n\n return (\n <RadioCardContext value={{ checked: _checked }}>\n <UnstyledButton\n mod={[{ 'with-border': withBorder, checked: _checked }, mod]}\n {...getStyles('card')}\n {...others}\n role=\"radio\"\n aria-checked={_checked}\n name={_name}\n onClick={(event) => {\n onClick?.(event);\n ctx?.onChange(value || '');\n }}\n onKeyDown={handleKeyDown}\n />\n </RadioCardContext>\n );\n});\n\nRadioCard.displayName = '@mantine/core/RadioCard';\nRadioCard.classes = classes;\nRadioCard.varsResolver = varsResolver;\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAa,mBAAmB,cAA4C,KAAK;AAgCjF,MAAM,eAAe,EACnB,YAAY,MACb;AAED,MAAM,eAAe,oBAAsC,GAAG,EAAE,cAAc,EAC5E,MAAM,EACJ,iBAAiB,UAAU,OAAO,EACnC,EACF,EAAE;AAEH,MAAa,YAAY,SAA2B,WAAW;CAC7D,MAAM,QAAQ,SAAS,aAAa,cAAc,OAAO;CACzD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,SACA,KACA,YACA,OACA,SACA,MACA,WACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA4B;EAC5C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACf,CAAC;CAEF,MAAM,EAAE,QAAQ,cAAc;CAC9B,MAAM,MAAM,IAAI,kBAAkB;CAClC,MAAM,WAAW,OAAO,YAAY,YAAY,UAAU,KAAK,UAAU,SAAS;CAClF,MAAM,QAAQ,QAAQ,KAAK;CAE3B,MAAM,iBAAiB,UAAkD;AACvE,cAAY,MAAM;AAElB,MAAI,CAAC,MACH;AAGF,MAAI;GAAC;GAAa;GAAW;GAAa;GAAa,CAAC,SAAS,MAAM,YAAY,KAAK,EAAE;AACxF,SAAM,gBAAgB;GAEtB,MAAM,WAAW,MAAM,KACrB,SAAS,iBAAoC,wBAAwB,MAAM,IAAI,CAChF;GAED,MAAM,eAAe,SAAS,WAAW,YAAY,YAAY,MAAM,OAAO;GAC9E,MAAM,YAAY,eAAe,KAAK,SAAS,SAAS,IAAI,eAAe;GAC3E,MAAM,YAAY,eAAe,IAAI,IAAI,SAAS,SAAS,IAAI,eAAe;AAE9E,OAAI,MAAM,YAAY,SAAS,aAAa;AAC1C,aAAS,WAAW,OAAO;AAC3B,aAAS,WAAW,OAAO;;AAG7B,OAAI,MAAM,YAAY,SAAS,WAAW;AACxC,aAAS,WAAW,OAAO;AAC3B,aAAS,WAAW,OAAO;;AAG7B,OAAI,MAAM,YAAY,SAAS,aAAa;AAC1C,aAAS,QAAQ,QAAQ,YAAY,WAAW,OAAO;AACvD,aAAS,QAAQ,QAAQ,YAAY,WAAW,OAAO;;AAGzD,OAAI,MAAM,YAAY,SAAS,cAAc;AAC3C,aAAS,QAAQ,QAAQ,YAAY,WAAW,OAAO;AACvD,aAAS,QAAQ,QAAQ,YAAY,WAAW,OAAO;;;;AAK7D,QACE,oBAAC,kBAAD;EAAkB,OAAO,EAAE,SAAS,UAAU;YAC5C,oBAAC,gBAAD;GACE,KAAK,CAAC;IAAE,eAAe;IAAY,SAAS;IAAU,EAAE,IAAI;GAC5D,GAAI,UAAU,OAAO;GACrB,GAAI;GACJ,MAAK;GACL,gBAAc;GACd,MAAM;GACN,UAAU,UAAU;AAClB,cAAU,MAAM;AAChB,SAAK,SAAS,SAAS,GAAG;;GAE5B,WAAW;GACX,CAAA;EACe,CAAA;EAErB;AAEF,UAAU,cAAc;AACxB,UAAU,UAAUA;AACpB,UAAU,eAAe"}
1
+ {"version":3,"file":"RadioCard.mjs","names":["classes"],"sources":["../../../../src/components/Radio/RadioCard/RadioCard.tsx"],"sourcesContent":["import { createContext, use } from 'react';\nimport {\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getRadius,\n MantineRadius,\n StylesApiProps,\n useDirection,\n useProps,\n useStyles,\n} from '../../../core';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { RadioGroupContext } from '../RadioGroup/RadioGroup';\nimport classes from './RadioCard.module.css';\n\nexport interface RadioCardContextValue {\n checked: boolean;\n}\n\nexport const RadioCardContext = createContext<RadioCardContextValue | null>(null);\n\nexport type RadioCardStylesNames = 'card';\nexport type RadioCardCssVariables = {\n card: '--card-radius';\n};\n\nexport interface RadioCardProps\n extends BoxProps, StylesApiProps<RadioCardFactory>, ElementProps<'button', 'onChange'> {\n /** Checked state */\n checked?: boolean;\n\n /** Adds border to the root element */\n withBorder?: boolean;\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 /** Value of the radio, used with Radio.Group */\n value?: string;\n\n /** Value used to associate all related radio cards, required for accessibility if used outside of `Radio.Group` */\n name?: string;\n}\n\nexport type RadioCardFactory = Factory<{\n props: RadioCardProps;\n ref: HTMLButtonElement;\n stylesNames: RadioCardStylesNames;\n vars: RadioCardCssVariables;\n}>;\n\nconst defaultProps = {\n withBorder: true,\n} satisfies Partial<RadioCardProps>;\n\nconst varsResolver = createVarsResolver<RadioCardFactory>((_, { radius }) => ({\n card: {\n '--card-radius': getRadius(radius),\n },\n}));\n\nexport const RadioCard = factory<RadioCardFactory>((_props) => {\n const props = useProps('RadioCard', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n checked,\n mod,\n withBorder,\n value,\n onClick,\n name,\n onKeyDown,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RadioCardFactory>({\n name: 'RadioCard',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n rootSelector: 'card',\n });\n\n const { dir } = useDirection();\n const ctx = use(RadioGroupContext);\n const _checked = typeof checked === 'boolean' ? checked : ctx?.value === value || false;\n const _name = name || ctx?.name;\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(event);\n\n if (!_name) {\n return;\n }\n\n if (['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'].includes(event.nativeEvent.code)) {\n event.preventDefault();\n\n const siblings = Array.from(\n document.querySelectorAll<HTMLButtonElement>(`[role=\"radio\"][name=\"${_name}\"]`)\n );\n\n const currentIndex = siblings.findIndex((element) => element === event.target);\n const nextIndex = currentIndex + 1 >= siblings.length ? 0 : currentIndex + 1;\n const prevIndex = currentIndex - 1 < 0 ? siblings.length - 1 : currentIndex - 1;\n\n if (event.nativeEvent.code === 'ArrowDown') {\n siblings[nextIndex].focus();\n siblings[nextIndex].click();\n }\n\n if (event.nativeEvent.code === 'ArrowUp') {\n siblings[prevIndex].focus();\n siblings[prevIndex].click();\n }\n\n if (event.nativeEvent.code === 'ArrowLeft') {\n siblings[dir === 'ltr' ? prevIndex : nextIndex].focus();\n siblings[dir === 'ltr' ? prevIndex : nextIndex].click();\n }\n\n if (event.nativeEvent.code === 'ArrowRight') {\n siblings[dir === 'ltr' ? nextIndex : prevIndex].focus();\n siblings[dir === 'ltr' ? nextIndex : prevIndex].click();\n }\n }\n };\n\n return (\n <RadioCardContext value={{ checked: _checked }}>\n {/* eslint-disable-next-line jsx-a11y/interactive-supports-focus -- UnstyledButton renders a native <button> which is focusable */}\n <UnstyledButton\n mod={[{ 'with-border': withBorder, checked: _checked }, mod]}\n {...getStyles('card')}\n {...others}\n role=\"radio\"\n aria-checked={_checked}\n name={_name}\n onClick={(event) => {\n onClick?.(event);\n ctx?.onChange(value || '');\n }}\n onKeyDown={handleKeyDown}\n />\n </RadioCardContext>\n );\n});\n\nRadioCard.displayName = '@mantine/core/RadioCard';\nRadioCard.classes = classes;\nRadioCard.varsResolver = varsResolver;\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAa,mBAAmB,cAA4C,IAAI;AAgChF,MAAM,eAAe,EACnB,YAAY,KACd;AAEA,MAAM,eAAe,oBAAsC,GAAG,EAAE,cAAc,EAC5E,MAAM,EACJ,iBAAiB,UAAU,MAAM,EACnC,EACF,EAAE;AAEF,MAAa,YAAY,SAA2B,WAAW;CAC7D,MAAM,QAAQ,SAAS,aAAa,cAAc,MAAM;CACxD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,SACA,KACA,YACA,OACA,SACA,MACA,WACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAY,UAA4B;EAC5C,MAAM;EACN,SAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;CAChB,CAAC;CAED,MAAM,EAAE,QAAQ,aAAa;CAC7B,MAAM,MAAM,IAAI,iBAAiB;CACjC,MAAM,WAAW,OAAO,YAAY,YAAY,UAAU,KAAK,UAAU,SAAS;CAClF,MAAM,QAAQ,QAAQ,KAAK;CAE3B,MAAM,iBAAiB,UAAkD;EACvE,YAAY,KAAK;EAEjB,IAAI,CAAC,OACH;EAGF,IAAI;GAAC;GAAa;GAAW;GAAa;EAAY,EAAE,SAAS,MAAM,YAAY,IAAI,GAAG;GACxF,MAAM,eAAe;GAErB,MAAM,WAAW,MAAM,KACrB,SAAS,iBAAoC,wBAAwB,MAAM,GAAG,CAChF;GAEA,MAAM,eAAe,SAAS,WAAW,YAAY,YAAY,MAAM,MAAM;GAC7E,MAAM,YAAY,eAAe,KAAK,SAAS,SAAS,IAAI,eAAe;GAC3E,MAAM,YAAY,eAAe,IAAI,IAAI,SAAS,SAAS,IAAI,eAAe;GAE9E,IAAI,MAAM,YAAY,SAAS,aAAa;IAC1C,SAAS,WAAW,MAAM;IAC1B,SAAS,WAAW,MAAM;GAC5B;GAEA,IAAI,MAAM,YAAY,SAAS,WAAW;IACxC,SAAS,WAAW,MAAM;IAC1B,SAAS,WAAW,MAAM;GAC5B;GAEA,IAAI,MAAM,YAAY,SAAS,aAAa;IAC1C,SAAS,QAAQ,QAAQ,YAAY,WAAW,MAAM;IACtD,SAAS,QAAQ,QAAQ,YAAY,WAAW,MAAM;GACxD;GAEA,IAAI,MAAM,YAAY,SAAS,cAAc;IAC3C,SAAS,QAAQ,QAAQ,YAAY,WAAW,MAAM;IACtD,SAAS,QAAQ,QAAQ,YAAY,WAAW,MAAM;GACxD;EACF;CACF;CAEA,OACE,oBAAC,kBAAD;EAAkB,OAAO,EAAE,SAAS,SAAS;YAE3C,oBAAC,gBAAD;GACE,KAAK,CAAC;IAAE,eAAe;IAAY,SAAS;GAAS,GAAG,GAAG;GAC3D,GAAI,UAAU,MAAM;GACpB,GAAI;GACJ,MAAK;GACL,gBAAc;GACd,MAAM;GACN,UAAU,UAAU;IAClB,UAAU,KAAK;IACf,KAAK,SAAS,SAAS,EAAE;GAC3B;GACA,WAAW;EACZ,CAAA;CACe,CAAA;AAEtB,CAAC;AAED,UAAU,cAAc;AACxB,UAAU,UAAUA;AACpB,UAAU,eAAe"}