@mantine-vue/core 1.1.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 (475) hide show
  1. package/cjs/index.cjs +32009 -0
  2. package/cjs/index.cjs.map +1 -0
  3. package/esm/index.mjs +31597 -0
  4. package/esm/index.mjs.map +1 -0
  5. package/lib/components/Accordion/Accordion.context.d.ts +27 -0
  6. package/lib/components/Accordion/Accordion.d.ts +526 -0
  7. package/lib/components/Accordion/AccordionChevron.d.ts +16 -0
  8. package/lib/components/Accordion/AccordionControl/AccordionControl.d.ts +89 -0
  9. package/lib/components/Accordion/AccordionItem/AccordionItem.d.ts +43 -0
  10. package/lib/components/Accordion/AccordionItem.context.d.ts +4 -0
  11. package/lib/components/Accordion/AccordionPanel/AccordionPanel.d.ts +53 -0
  12. package/lib/components/Accordion/index.d.ts +13 -0
  13. package/lib/components/ActionIcon/ActionIcon.d.ts +400 -0
  14. package/lib/components/ActionIcon/ActionIconGroup/ActionIconGroup.d.ts +54 -0
  15. package/lib/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.d.ts +96 -0
  16. package/lib/components/ActionIcon/index.d.ts +3 -0
  17. package/lib/components/Affix/Affix.d.ts +86 -0
  18. package/lib/components/Affix/index.d.ts +2 -0
  19. package/lib/components/Alert/Alert.d.ts +136 -0
  20. package/lib/components/Alert/index.d.ts +1 -0
  21. package/lib/components/Anchor/Anchor.d.ts +70 -0
  22. package/lib/components/Anchor/index.d.ts +1 -0
  23. package/lib/components/AngleSlider/AngleSlider.d.ts +217 -0
  24. package/lib/components/AngleSlider/index.d.ts +2 -0
  25. package/lib/components/AppShell/AppShell.context.d.ts +9 -0
  26. package/lib/components/AppShell/AppShell.d.ts +802 -0
  27. package/lib/components/AppShell/AppShell.types.d.ts +41 -0
  28. package/lib/components/AppShell/AppShellAside/AppShellAside.d.ts +102 -0
  29. package/lib/components/AppShell/AppShellFooter/AppShellFooter.d.ts +102 -0
  30. package/lib/components/AppShell/AppShellHeader/AppShellHeader.d.ts +102 -0
  31. package/lib/components/AppShell/AppShellMain/AppShellMain.d.ts +21 -0
  32. package/lib/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.d.ts +27 -0
  33. package/lib/components/AppShell/AppShellMediaStyles/get-variables.d.ts +18 -0
  34. package/lib/components/AppShell/AppShellNavbar/AppShellNavbar.d.ts +102 -0
  35. package/lib/components/AppShell/AppShellSection/AppShellSection.d.ts +73 -0
  36. package/lib/components/AppShell/create-app-shell-component.d.ts +103 -0
  37. package/lib/components/AppShell/index.d.ts +12 -0
  38. package/lib/components/AppShell/use-resizing/use-resizing.d.ts +5 -0
  39. package/lib/components/AspectRatio/AspectRatio.d.ts +51 -0
  40. package/lib/components/AspectRatio/index.d.ts +1 -0
  41. package/lib/components/Autocomplete/Autocomplete.d.ts +143 -0
  42. package/lib/components/Autocomplete/index.d.ts +2 -0
  43. package/lib/components/Avatar/Avatar.d.ts +327 -0
  44. package/lib/components/Avatar/AvatarGroup/AvatarGroup.d.ts +52 -0
  45. package/lib/components/Avatar/AvatarPlaceholderIcon.d.ts +3 -0
  46. package/lib/components/Avatar/get-initials/get-initials.d.ts +1 -0
  47. package/lib/components/Avatar/get-initials-color/get-initials-color.d.ts +1 -0
  48. package/lib/components/Avatar/index.d.ts +4 -0
  49. package/lib/components/BackgroundImage/BackgroundImage.d.ts +53 -0
  50. package/lib/components/BackgroundImage/index.d.ts +1 -0
  51. package/lib/components/Badge/Badge.d.ts +141 -0
  52. package/lib/components/Badge/index.d.ts +1 -0
  53. package/lib/components/Blockquote/Blockquote.d.ts +83 -0
  54. package/lib/components/Blockquote/index.d.ts +1 -0
  55. package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +54 -0
  56. package/lib/components/Breadcrumbs/index.d.ts +1 -0
  57. package/lib/components/Burger/Burger.d.ts +83 -0
  58. package/lib/components/Burger/index.d.ts +1 -0
  59. package/lib/components/Button/Button.d.ts +536 -0
  60. package/lib/components/Button/ButtonGroup/ButtonGroup.d.ts +54 -0
  61. package/lib/components/Button/ButtonGroupSection/ButtonGroupSection.d.ts +96 -0
  62. package/lib/components/Button/index.d.ts +3 -0
  63. package/lib/components/Card/Card.context.d.ts +7 -0
  64. package/lib/components/Card/Card.d.ts +222 -0
  65. package/lib/components/Card/CardSection/CardSection.d.ts +70 -0
  66. package/lib/components/Card/index.d.ts +2 -0
  67. package/lib/components/Center/Center.d.ts +60 -0
  68. package/lib/components/Center/index.d.ts +1 -0
  69. package/lib/components/Checkbox/CheckIcon.d.ts +31 -0
  70. package/lib/components/Checkbox/Checkbox.d.ts +807 -0
  71. package/lib/components/Checkbox/CheckboxCard/CheckboxCard.d.ts +110 -0
  72. package/lib/components/Checkbox/CheckboxGroup/CheckboxGroup.d.ts +176 -0
  73. package/lib/components/Checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +143 -0
  74. package/lib/components/Checkbox/index.d.ts +9 -0
  75. package/lib/components/Chip/Chip.d.ts +373 -0
  76. package/lib/components/Chip/ChipGroup/ChipGroup.d.ts +50 -0
  77. package/lib/components/Chip/index.d.ts +4 -0
  78. package/lib/components/CloseButton/CloseButton.d.ts +94 -0
  79. package/lib/components/CloseButton/CloseIcon.d.ts +15 -0
  80. package/lib/components/CloseButton/index.d.ts +2 -0
  81. package/lib/components/Code/Code.d.ts +60 -0
  82. package/lib/components/Code/index.d.ts +1 -0
  83. package/lib/components/Collapse/Collapse.d.ts +78 -0
  84. package/lib/components/Collapse/index.d.ts +1 -0
  85. package/lib/components/ColorInput/ColorInput.d.ts +119 -0
  86. package/lib/components/ColorInput/EyeDropperIcon.d.ts +3 -0
  87. package/lib/components/ColorInput/index.d.ts +2 -0
  88. package/lib/components/ColorPicker/AlphaSlider/AlphaSlider.d.ts +77 -0
  89. package/lib/components/ColorPicker/ColorPicker.context.d.ts +6 -0
  90. package/lib/components/ColorPicker/ColorPicker.d.ts +216 -0
  91. package/lib/components/ColorPicker/ColorPicker.types.d.ts +19 -0
  92. package/lib/components/ColorPicker/ColorSlider/ColorSlider.d.ts +139 -0
  93. package/lib/components/ColorPicker/HueSlider/HueSlider.d.ts +69 -0
  94. package/lib/components/ColorPicker/Saturation/Saturation.d.ts +84 -0
  95. package/lib/components/ColorPicker/Swatches/Swatches.d.ts +50 -0
  96. package/lib/components/ColorPicker/Thumb/Thumb.d.ts +20 -0
  97. package/lib/components/ColorPicker/converters/converters.d.ts +7 -0
  98. package/lib/components/ColorPicker/converters/index.d.ts +2 -0
  99. package/lib/components/ColorPicker/converters/parsers.d.ts +9 -0
  100. package/lib/components/ColorPicker/index.d.ts +8 -0
  101. package/lib/components/ColorSwatch/ColorSwatch.d.ts +64 -0
  102. package/lib/components/ColorSwatch/index.d.ts +1 -0
  103. package/lib/components/Combobox/Combobox.context.d.ts +12 -0
  104. package/lib/components/Combobox/Combobox.d.ts +697 -0
  105. package/lib/components/Combobox/Combobox.types.d.ts +43 -0
  106. package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +118 -0
  107. package/lib/components/Combobox/data-utils.d.ts +14 -0
  108. package/lib/components/Combobox/index.d.ts +15 -0
  109. package/lib/components/Combobox/use-combobox/use-combobox.d.ts +36 -0
  110. package/lib/components/Combobox/use-combobox/use-virtualized-combobox.d.ts +12 -0
  111. package/lib/components/Combobox/use-combobox-target-props/use-combobox-target-props.d.ts +20 -0
  112. package/lib/components/Combobox/use-pills-reorder/use-pills-reorder.d.ts +21 -0
  113. package/lib/components/Container/Container.d.ts +63 -0
  114. package/lib/components/Container/index.d.ts +1 -0
  115. package/lib/components/CopyButton/CopyButton.d.ts +23 -0
  116. package/lib/components/CopyButton/index.d.ts +1 -0
  117. package/lib/components/Dialog/Dialog.d.ts +183 -0
  118. package/lib/components/Dialog/index.d.ts +2 -0
  119. package/lib/components/Divider/Divider.d.ts +91 -0
  120. package/lib/components/Divider/index.d.ts +1 -0
  121. package/lib/components/Drawer/Drawer.d.ts +606 -0
  122. package/lib/components/Drawer/index.d.ts +2 -0
  123. package/lib/components/Fieldset/Fieldset.d.ts +72 -0
  124. package/lib/components/Fieldset/index.d.ts +2 -0
  125. package/lib/components/FileButton/FileButton.d.ts +98 -0
  126. package/lib/components/FileButton/index.d.ts +1 -0
  127. package/lib/components/FileInput/FileInput.d.ts +273 -0
  128. package/lib/components/FileInput/index.d.ts +1 -0
  129. package/lib/components/Flex/Flex.d.ts +67 -0
  130. package/lib/components/Flex/flex-props.d.ts +2 -0
  131. package/lib/components/Flex/index.d.ts +2 -0
  132. package/lib/components/FloatingIndicator/FloatingIndicator.d.ts +116 -0
  133. package/lib/components/FloatingIndicator/index.d.ts +4 -0
  134. package/lib/components/FloatingIndicator/use-floating-indicator.d.ts +14 -0
  135. package/lib/components/FloatingWindow/FloatingWindow.d.ts +207 -0
  136. package/lib/components/FloatingWindow/index.d.ts +2 -0
  137. package/lib/components/FocusTrap/FocusTrap.d.ts +90 -0
  138. package/lib/components/FocusTrap/index.d.ts +2 -0
  139. package/lib/components/Grid/Grid.context.d.ts +12 -0
  140. package/lib/components/Grid/Grid.d.ts +309 -0
  141. package/lib/components/Grid/GridCol/GridCol.d.ts +73 -0
  142. package/lib/components/Grid/GridCol/GridColVariables.d.ts +54 -0
  143. package/lib/components/Grid/GridVariables.d.ts +63 -0
  144. package/lib/components/Grid/index.d.ts +3 -0
  145. package/lib/components/Group/Group.d.ts +90 -0
  146. package/lib/components/Group/index.d.ts +1 -0
  147. package/lib/components/Highlight/Highlight.d.ts +118 -0
  148. package/lib/components/Highlight/highlighter/highlighter.d.ts +11 -0
  149. package/lib/components/Highlight/index.d.ts +4 -0
  150. package/lib/components/HoverCard/HoverCard.context.d.ts +5 -0
  151. package/lib/components/HoverCard/HoverCard.d.ts +121 -0
  152. package/lib/components/HoverCard/HoverCardDropdown/HoverCardDropdown.d.ts +6 -0
  153. package/lib/components/HoverCard/HoverCardGroup/HoverCardGroup.d.ts +35 -0
  154. package/lib/components/HoverCard/HoverCardTarget/HoverCardTarget.d.ts +23 -0
  155. package/lib/components/HoverCard/index.d.ts +10 -0
  156. package/lib/components/HoverCard/use-hover-card.d.ts +11 -0
  157. package/lib/components/Image/Image.d.ts +74 -0
  158. package/lib/components/Image/index.d.ts +1 -0
  159. package/lib/components/Indicator/Indicator.d.ts +167 -0
  160. package/lib/components/Indicator/Indicator.types.d.ts +4 -0
  161. package/lib/components/Indicator/get-position-variables/get-position-variables.d.ts +5 -0
  162. package/lib/components/Indicator/index.d.ts +3 -0
  163. package/lib/components/Input/Input.context.d.ts +7 -0
  164. package/lib/components/Input/Input.d.ts +1086 -0
  165. package/lib/components/Input/InputClearButton/InputClearButton.d.ts +43 -0
  166. package/lib/components/Input/InputClearSection/InputClearSection.d.ts +10 -0
  167. package/lib/components/Input/InputDescription/InputDescription.d.ts +62 -0
  168. package/lib/components/Input/InputError/InputError.d.ts +62 -0
  169. package/lib/components/Input/InputLabel/InputLabel.d.ts +89 -0
  170. package/lib/components/Input/InputPlaceholder/InputPlaceholder.d.ts +53 -0
  171. package/lib/components/Input/InputWrapper/InputWrapper.d.ts +180 -0
  172. package/lib/components/Input/InputWrapper/get-input-offsets/get-input-offsets.d.ts +8 -0
  173. package/lib/components/Input/InputWrapper.context.d.ts +16 -0
  174. package/lib/components/Input/index.d.ts +19 -0
  175. package/lib/components/InputBase/InputBase.d.ts +431 -0
  176. package/lib/components/InputBase/index.d.ts +2 -0
  177. package/lib/components/JsonInput/JsonInput.d.ts +106 -0
  178. package/lib/components/JsonInput/index.d.ts +2 -0
  179. package/lib/components/JsonInput/validate-json/validate-json.d.ts +1 -0
  180. package/lib/components/Kbd/Kbd.d.ts +45 -0
  181. package/lib/components/Kbd/index.d.ts +1 -0
  182. package/lib/components/List/List.context.d.ts +9 -0
  183. package/lib/components/List/List.d.ts +276 -0
  184. package/lib/components/List/ListItem/ListItem.d.ts +52 -0
  185. package/lib/components/List/index.d.ts +3 -0
  186. package/lib/components/Loader/Loader.d.ts +74 -0
  187. package/lib/components/Loader/Loader.types.d.ts +4 -0
  188. package/lib/components/Loader/index.d.ts +5 -0
  189. package/lib/components/Loader/loaders/Bars.d.ts +3 -0
  190. package/lib/components/Loader/loaders/Dots.d.ts +3 -0
  191. package/lib/components/Loader/loaders/Oval.d.ts +3 -0
  192. package/lib/components/LoadingOverlay/LoadingOverlay.d.ts +117 -0
  193. package/lib/components/LoadingOverlay/index.d.ts +1 -0
  194. package/lib/components/Mark/Mark.d.ts +51 -0
  195. package/lib/components/Mark/get-mark-color.d.ts +6 -0
  196. package/lib/components/Mark/index.d.ts +2 -0
  197. package/lib/components/Marquee/Marquee.d.ts +134 -0
  198. package/lib/components/Marquee/index.d.ts +2 -0
  199. package/lib/components/MaskInput/MaskInput.d.ts +147 -0
  200. package/lib/components/MaskInput/index.d.ts +3 -0
  201. package/lib/components/MaskInput/use-mask-input.d.ts +36 -0
  202. package/lib/components/Menu/Menu.context.d.ts +19 -0
  203. package/lib/components/Menu/Menu.d.ts +1174 -0
  204. package/lib/components/Menu/index.d.ts +4 -0
  205. package/lib/components/Modal/Modal.d.ts +557 -0
  206. package/lib/components/Modal/index.d.ts +2 -0
  207. package/lib/components/ModalBase/ModalBase.context.d.ts +19 -0
  208. package/lib/components/ModalBase/ModalBase.d.ts +180 -0
  209. package/lib/components/ModalBase/ModalBaseBody.d.ts +6 -0
  210. package/lib/components/ModalBase/ModalBaseCloseButton.d.ts +6 -0
  211. package/lib/components/ModalBase/ModalBaseContent.d.ts +29 -0
  212. package/lib/components/ModalBase/ModalBaseHeader.d.ts +6 -0
  213. package/lib/components/ModalBase/ModalBaseOverlay.d.ts +29 -0
  214. package/lib/components/ModalBase/ModalBaseTitle.d.ts +6 -0
  215. package/lib/components/ModalBase/NativeScrollArea.d.ts +3 -0
  216. package/lib/components/ModalBase/index.d.ts +16 -0
  217. package/lib/components/ModalBase/use-lock-scroll.d.ts +2 -0
  218. package/lib/components/ModalBase/use-modal-body-id.d.ts +1 -0
  219. package/lib/components/ModalBase/use-modal-title-id.d.ts +1 -0
  220. package/lib/components/ModalBase/use-modal-transition.d.ts +5 -0
  221. package/lib/components/ModalBase/use-modal.d.ts +12 -0
  222. package/lib/components/MultiSelect/MultiSelect.d.ts +189 -0
  223. package/lib/components/MultiSelect/index.d.ts +2 -0
  224. package/lib/components/NativeSelect/NativeSelect.d.ts +220 -0
  225. package/lib/components/NativeSelect/NativeSelectOption.d.ts +17 -0
  226. package/lib/components/NativeSelect/get-parsed-data/get-parsed-data.d.ts +22 -0
  227. package/lib/components/NativeSelect/index.d.ts +5 -0
  228. package/lib/components/NavLink/NavLink.d.ts +207 -0
  229. package/lib/components/NavLink/index.d.ts +2 -0
  230. package/lib/components/Notification/Notification.d.ts +143 -0
  231. package/lib/components/Notification/index.d.ts +2 -0
  232. package/lib/components/NumberFormatter/NumberFormatter.d.ts +100 -0
  233. package/lib/components/NumberFormatter/index.d.ts +2 -0
  234. package/lib/components/NumberInput/NumberInput.d.ts +437 -0
  235. package/lib/components/NumberInput/NumberInputChevron.d.ts +14 -0
  236. package/lib/components/NumberInput/index.d.ts +3 -0
  237. package/lib/components/OverflowList/OverflowList.d.ts +113 -0
  238. package/lib/components/OverflowList/get-row-position-data.d.ts +11 -0
  239. package/lib/components/OverflowList/index.d.ts +2 -0
  240. package/lib/components/OverflowList/use-dimensions.d.ts +18 -0
  241. package/lib/components/Overlay/Overlay.d.ts +103 -0
  242. package/lib/components/Overlay/index.d.ts +1 -0
  243. package/lib/components/Pagination/Pagination.context.d.ts +18 -0
  244. package/lib/components/Pagination/Pagination.d.ts +710 -0
  245. package/lib/components/Pagination/Pagination.icons.d.ts +15 -0
  246. package/lib/components/Pagination/PaginationControl/PaginationControl.d.ts +70 -0
  247. package/lib/components/Pagination/PaginationDots/PaginationDots.d.ts +16 -0
  248. package/lib/components/Pagination/PaginationEdges/PaginationEdges.d.ts +97 -0
  249. package/lib/components/Pagination/PaginationItems/PaginationItems.d.ts +6 -0
  250. package/lib/components/Pagination/PaginationLabel/PaginationLabel.d.ts +3 -0
  251. package/lib/components/Pagination/PaginationRoot/PaginationRoot.d.ts +170 -0
  252. package/lib/components/Pagination/index.d.ts +11 -0
  253. package/lib/components/Paper/Paper.d.ts +72 -0
  254. package/lib/components/Paper/index.d.ts +1 -0
  255. package/lib/components/PasswordInput/PasswordInput.d.ts +314 -0
  256. package/lib/components/PasswordInput/PasswordToggleIcon.d.ts +15 -0
  257. package/lib/components/PasswordInput/index.d.ts +3 -0
  258. package/lib/components/Pill/Pill.d.ts +280 -0
  259. package/lib/components/Pill/PillGroup/PillGroup.d.ts +76 -0
  260. package/lib/components/Pill/index.d.ts +4 -0
  261. package/lib/components/PillsInput/PillsInput.context.d.ts +11 -0
  262. package/lib/components/PillsInput/PillsInput.d.ts +379 -0
  263. package/lib/components/PillsInput/PillsInputField/PillsInputField.d.ts +98 -0
  264. package/lib/components/PillsInput/index.d.ts +5 -0
  265. package/lib/components/PinInput/PinInput.d.ts +334 -0
  266. package/lib/components/PinInput/create-pin-array/create-pin-array.d.ts +1 -0
  267. package/lib/components/PinInput/index.d.ts +2 -0
  268. package/lib/components/Popover/Popover.context.d.ts +39 -0
  269. package/lib/components/Popover/Popover.d.ts +487 -0
  270. package/lib/components/Popover/index.d.ts +2 -0
  271. package/lib/components/Portal/OptionalPortal.d.ts +35 -0
  272. package/lib/components/Portal/Portal.d.ts +25 -0
  273. package/lib/components/Portal/index.d.ts +2 -0
  274. package/lib/components/Progress/Progress.context.d.ts +9 -0
  275. package/lib/components/Progress/Progress.d.ts +445 -0
  276. package/lib/components/Progress/ProgressLabel/ProgressLabel.d.ts +43 -0
  277. package/lib/components/Progress/ProgressRoot/ProgressRoot.d.ts +98 -0
  278. package/lib/components/Progress/ProgressSection/ProgressSection.d.ts +87 -0
  279. package/lib/components/Progress/index.d.ts +8 -0
  280. package/lib/components/Radio/Radio.d.ts +732 -0
  281. package/lib/components/Radio/RadioCard/RadioCard.d.ts +101 -0
  282. package/lib/components/Radio/RadioGroup/RadioGroup.d.ts +150 -0
  283. package/lib/components/Radio/RadioIcon.d.ts +3 -0
  284. package/lib/components/Radio/RadioIndicator/RadioIndicator.d.ts +134 -0
  285. package/lib/components/Radio/index.d.ts +9 -0
  286. package/lib/components/Rating/Rating.context.d.ts +8 -0
  287. package/lib/components/Rating/Rating.d.ts +188 -0
  288. package/lib/components/Rating/RatingItem/RatingItem.d.ts +124 -0
  289. package/lib/components/Rating/StarSymbol/StarIcon.d.ts +3 -0
  290. package/lib/components/Rating/StarSymbol/StarSymbol.d.ts +14 -0
  291. package/lib/components/Rating/index.d.ts +2 -0
  292. package/lib/components/RingProgress/Curve/Curve.d.ts +83 -0
  293. package/lib/components/RingProgress/Curve/get-curve-props.d.ts +18 -0
  294. package/lib/components/RingProgress/RingProgress.d.ts +148 -0
  295. package/lib/components/RingProgress/get-curves/get-curves.d.ts +22 -0
  296. package/lib/components/RingProgress/index.d.ts +2 -0
  297. package/lib/components/RollingNumber/DigitColumn.d.ts +49 -0
  298. package/lib/components/RollingNumber/RollingNumber.d.ts +172 -0
  299. package/lib/components/RollingNumber/build-value.d.ts +10 -0
  300. package/lib/components/RollingNumber/get-digit-parts.d.ts +12 -0
  301. package/lib/components/RollingNumber/get-render-slots.d.ts +35 -0
  302. package/lib/components/RollingNumber/index.d.ts +8 -0
  303. package/lib/components/ScrollArea/ScrollArea.context.d.ts +21 -0
  304. package/lib/components/ScrollArea/ScrollArea.d.ts +482 -0
  305. package/lib/components/ScrollArea/ScrollArea.types.d.ts +23 -0
  306. package/lib/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.d.ts +3 -0
  307. package/lib/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.d.ts +43 -0
  308. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.d.ts +24 -0
  309. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.d.ts +16 -0
  310. package/lib/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.d.ts +12 -0
  311. package/lib/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.d.ts +106 -0
  312. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.d.ts +79 -0
  313. package/lib/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.d.ts +79 -0
  314. package/lib/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.d.ts +3 -0
  315. package/lib/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.d.ts +25 -0
  316. package/lib/components/ScrollArea/index.d.ts +3 -0
  317. package/lib/components/ScrollArea/utils/index.d.ts +9 -0
  318. package/lib/components/Scroller/Scroller.d.ts +153 -0
  319. package/lib/components/Scroller/index.d.ts +2 -0
  320. package/lib/components/SegmentedControl/SegmentedControl.d.ts +210 -0
  321. package/lib/components/SegmentedControl/index.d.ts +2 -0
  322. package/lib/components/Select/Select.d.ts +226 -0
  323. package/lib/components/Select/index.d.ts +2 -0
  324. package/lib/components/SemiCircleProgress/SemiCircleProgress.d.ts +133 -0
  325. package/lib/components/SemiCircleProgress/index.d.ts +2 -0
  326. package/lib/components/SimpleGrid/SimpleGrid.d.ts +101 -0
  327. package/lib/components/SimpleGrid/SimpleGridVariables.d.ts +107 -0
  328. package/lib/components/SimpleGrid/index.d.ts +1 -0
  329. package/lib/components/Skeleton/Skeleton.d.ts +76 -0
  330. package/lib/components/Skeleton/index.d.ts +1 -0
  331. package/lib/components/Slider/Marks/Marks.d.ts +77 -0
  332. package/lib/components/Slider/RangeSlider/RangeSlider.d.ts +324 -0
  333. package/lib/components/Slider/Slider/Slider.d.ts +316 -0
  334. package/lib/components/Slider/Slider.context.d.ts +9 -0
  335. package/lib/components/Slider/SliderMark.d.ts +5 -0
  336. package/lib/components/Slider/SliderRoot/SliderRoot.d.ts +42 -0
  337. package/lib/components/Slider/Thumb/Thumb.d.ts +133 -0
  338. package/lib/components/Slider/Track/Track.d.ts +103 -0
  339. package/lib/components/Slider/index.d.ts +5 -0
  340. package/lib/components/Slider/utils/slider-utils.d.ts +32 -0
  341. package/lib/components/Space/Space.d.ts +14 -0
  342. package/lib/components/Space/index.d.ts +1 -0
  343. package/lib/components/Splitter/GripIcon.d.ts +6 -0
  344. package/lib/components/Splitter/Splitter.context.d.ts +7 -0
  345. package/lib/components/Splitter/Splitter.d.ts +450 -0
  346. package/lib/components/Splitter/SplitterPane/SplitterPane.d.ts +109 -0
  347. package/lib/components/Splitter/index.d.ts +7 -0
  348. package/lib/components/Splitter/use-splitter.d.ts +43 -0
  349. package/lib/components/Spoiler/Spoiler.d.ts +132 -0
  350. package/lib/components/Spoiler/index.d.ts +2 -0
  351. package/lib/components/Stack/Stack.d.ts +63 -0
  352. package/lib/components/Stack/index.d.ts +1 -0
  353. package/lib/components/Stepper/Stepper.context.d.ts +6 -0
  354. package/lib/components/Stepper/Stepper.d.ts +529 -0
  355. package/lib/components/Stepper/StepperCompleted/StepperCompleted.d.ts +1 -0
  356. package/lib/components/Stepper/StepperStep/StepperStep.d.ts +189 -0
  357. package/lib/components/Stepper/index.d.ts +7 -0
  358. package/lib/components/Switch/Switch.d.ts +560 -0
  359. package/lib/components/Switch/SwitchGroup/SwitchGroup.d.ts +176 -0
  360. package/lib/components/Switch/index.d.ts +4 -0
  361. package/lib/components/Table/Table.components.d.ts +661 -0
  362. package/lib/components/Table/Table.context.d.ts +14 -0
  363. package/lib/components/Table/Table.d.ts +1066 -0
  364. package/lib/components/Table/TableDataRenderer.d.ts +15 -0
  365. package/lib/components/Table/TableScrollContainer.d.ts +86 -0
  366. package/lib/components/Table/index.d.ts +7 -0
  367. package/lib/components/TableOfContents/TableOfContents.d.ts +159 -0
  368. package/lib/components/TableOfContents/index.d.ts +2 -0
  369. package/lib/components/Tabs/Tabs.context.d.ts +28 -0
  370. package/lib/components/Tabs/Tabs.d.ts +560 -0
  371. package/lib/components/Tabs/TabsList/TabsList.d.ts +53 -0
  372. package/lib/components/Tabs/TabsPanel/TabsPanel.d.ts +52 -0
  373. package/lib/components/Tabs/TabsTab/TabsTab.d.ts +115 -0
  374. package/lib/components/Tabs/index.d.ts +10 -0
  375. package/lib/components/TagsInput/TagsInput.d.ts +175 -0
  376. package/lib/components/TagsInput/index.d.ts +2 -0
  377. package/lib/components/Text/Text.d.ts +158 -0
  378. package/lib/components/Text/index.d.ts +1 -0
  379. package/lib/components/TextInput/TextInput.d.ts +3 -0
  380. package/lib/components/TextInput/index.d.ts +1 -0
  381. package/lib/components/Textarea/Autosize.d.ts +38 -0
  382. package/lib/components/Textarea/Textarea.d.ts +70 -0
  383. package/lib/components/Textarea/index.d.ts +1 -0
  384. package/lib/components/ThemeIcon/ThemeIcon.d.ts +96 -0
  385. package/lib/components/ThemeIcon/index.d.ts +1 -0
  386. package/lib/components/Timeline/Timeline.context.d.ts +8 -0
  387. package/lib/components/Timeline/Timeline.d.ts +366 -0
  388. package/lib/components/Timeline/TimelineItem/TimelineItem.d.ts +143 -0
  389. package/lib/components/Timeline/index.d.ts +5 -0
  390. package/lib/components/Title/Title.d.ts +73 -0
  391. package/lib/components/Title/get-title-size.d.ts +7 -0
  392. package/lib/components/Title/index.d.ts +2 -0
  393. package/lib/components/Tooltip/Tooltip.d.ts +372 -0
  394. package/lib/components/Tooltip/Tooltip.types.d.ts +26 -0
  395. package/lib/components/Tooltip/TooltipFloating/TooltipFloating.d.ts +69 -0
  396. package/lib/components/Tooltip/TooltipGroup/TooltipGroup.d.ts +35 -0
  397. package/lib/components/Tooltip/index.d.ts +7 -0
  398. package/lib/components/Tooltip/use-tooltip.d.ts +33 -0
  399. package/lib/components/Transition/Transition.d.ts +109 -0
  400. package/lib/components/Transition/get-transition-styles.d.ts +9 -0
  401. package/lib/components/Transition/index.d.ts +1 -0
  402. package/lib/components/Transition/transitions.d.ts +10 -0
  403. package/lib/components/Transition/use-transition.d.ts +18 -0
  404. package/lib/components/Tree/FlatTreeNode.d.ts +145 -0
  405. package/lib/components/Tree/Tree.d.ts +237 -0
  406. package/lib/components/Tree/TreeNode.d.ts +2 -0
  407. package/lib/components/Tree/filter-tree-data/filter-tree-data.d.ts +4 -0
  408. package/lib/components/Tree/flatten-tree-data/flatten-tree-data.d.ts +12 -0
  409. package/lib/components/Tree/get-all-checked-nodes/get-all-checked-nodes.d.ts +11 -0
  410. package/lib/components/Tree/get-children-nodes-values/get-children-nodes-values.d.ts +4 -0
  411. package/lib/components/Tree/index.d.ts +15 -0
  412. package/lib/components/Tree/is-node-checked/is-node-checked.d.ts +2 -0
  413. package/lib/components/Tree/is-node-indeterminate/is-node-indeterminate.d.ts +2 -0
  414. package/lib/components/Tree/merge-async-children/merge-async-children.d.ts +2 -0
  415. package/lib/components/Tree/move-tree-node/move-tree-node.d.ts +8 -0
  416. package/lib/components/Tree/use-tree-node-drag-drop.d.ts +34 -0
  417. package/lib/components/Tree/use-tree.d.ts +55 -0
  418. package/lib/components/TreeSelect/TreeSelect.d.ts +352 -0
  419. package/lib/components/TreeSelect/index.d.ts +2 -0
  420. package/lib/components/Typography/Typography.d.ts +34 -0
  421. package/lib/components/Typography/index.d.ts +2 -0
  422. package/lib/components/UnstyledButton/UnstyledButton.d.ts +79 -0
  423. package/lib/components/UnstyledButton/index.d.ts +1 -0
  424. package/lib/components/VisuallyHidden/VisuallyHidden.d.ts +43 -0
  425. package/lib/components/VisuallyHidden/index.d.ts +1 -0
  426. package/lib/components/index.d.ts +110 -0
  427. package/lib/core/Box/Box.d.ts +262 -0
  428. package/lib/core/Box/index.d.ts +2 -0
  429. package/lib/core/Box/style-props/index.d.ts +3 -0
  430. package/lib/core/Box/style-props/parse-style-props.d.ts +18 -0
  431. package/lib/core/Box/style-props/style-props-data.d.ts +7 -0
  432. package/lib/core/Box/style-props/style-props.types.d.ts +115 -0
  433. package/lib/core/DirectionProvider/DirectionProvider.d.ts +24 -0
  434. package/lib/core/DirectionProvider/index.d.ts +1 -0
  435. package/lib/core/InlineStyles/InlineStyles.d.ts +51 -0
  436. package/lib/core/InlineStyles/index.d.ts +1 -0
  437. package/lib/core/MantineProvider/Mantine.context.d.ts +49 -0
  438. package/lib/core/MantineProvider/MantineProvider.d.ts +611 -0
  439. package/lib/core/MantineProvider/MantineThemeProvider.d.ts +235 -0
  440. package/lib/core/MantineProvider/color-functions.d.ts +53 -0
  441. package/lib/core/MantineProvider/css-variables.d.ts +14 -0
  442. package/lib/core/MantineProvider/default-colors.d.ts +2 -0
  443. package/lib/core/MantineProvider/default-theme.d.ts +2 -0
  444. package/lib/core/MantineProvider/index.d.ts +10 -0
  445. package/lib/core/MantineProvider/merge-mantine-theme.d.ts +5 -0
  446. package/lib/core/MantineProvider/theme.types.d.ts +107 -0
  447. package/lib/core/MantineProvider/use-props.d.ts +1 -0
  448. package/lib/core/factory/factory.d.ts +28 -0
  449. package/lib/core/factory/index.d.ts +4 -0
  450. package/lib/core/factory/polymorphic-factory.d.ts +1 -0
  451. package/lib/core/factory/use-forwarded-ref.d.ts +39 -0
  452. package/lib/core/factory/with-box-props.d.ts +18 -0
  453. package/lib/core/index.d.ts +8 -0
  454. package/lib/core/styles-api/create-vars-resolver.d.ts +2 -0
  455. package/lib/core/styles-api/index.d.ts +3 -0
  456. package/lib/core/styles-api/styles-api.types.d.ts +27 -0
  457. package/lib/core/styles-api/use-styles.d.ts +14 -0
  458. package/lib/core/types.d.ts +24 -0
  459. package/lib/core/utils/index.d.ts +4 -0
  460. package/lib/index.d.mts +2 -0
  461. package/lib/index.d.ts +2 -0
  462. package/lib/utils/Floating/FloatingArrow/FloatingArrow.d.ts +55 -0
  463. package/lib/utils/Floating/FloatingArrow/get-arrow-position-styles.d.ts +16 -0
  464. package/lib/utils/Floating/get-floating-position/get-floating-position.d.ts +2 -0
  465. package/lib/utils/Floating/index.d.ts +6 -0
  466. package/lib/utils/Floating/types.d.ts +10 -0
  467. package/lib/utils/Floating/use-context-menu-handlers.d.ts +17 -0
  468. package/lib/utils/Floating/use-delayed-hover.d.ts +9 -0
  469. package/lib/utils/InlineInput/InlineInput.d.ts +150 -0
  470. package/lib/utils/InlineInput/index.d.ts +2 -0
  471. package/lib/utils/InputsGroupFieldset.d.ts +3 -0
  472. package/lib/utils/index.d.ts +2 -0
  473. package/package.json +51 -0
  474. package/styles.css +8547 -0
  475. package/styles.layer.css +8549 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/core/utils/index.ts","../src/core/styles-api/create-vars-resolver.ts","../src/core/MantineProvider/color-functions.ts","../src/core/MantineProvider/default-colors.ts","../src/core/MantineProvider/default-theme.ts","../src/core/MantineProvider/merge-mantine-theme.ts","../src/core/MantineProvider/css-variables.ts","../src/core/MantineProvider/Mantine.context.ts","../src/core/MantineProvider/MantineThemeProvider.ts","../src/core/MantineProvider/MantineProvider.ts","../src/core/MantineProvider/use-props.ts","../src/core/styles-api/use-styles.ts","../src/core/InlineStyles/InlineStyles.ts","../src/core/factory/use-forwarded-ref.ts","../src/core/Box/style-props/parse-style-props.ts","../src/core/Box/style-props/style-props-data.ts","../src/core/Box/Box.ts","../src/core/factory/factory.ts","../src/core/factory/with-box-props.ts","../src/core/DirectionProvider/DirectionProvider.ts","../src/core/index.ts","../src/components/VisuallyHidden/VisuallyHidden.module.css","../src/components/VisuallyHidden/VisuallyHidden.ts","../src/components/FocusTrap/FocusTrap.ts","../src/components/Portal/Portal.ts","../src/components/Portal/OptionalPortal.ts","../src/components/UnstyledButton/UnstyledButton.module.css","../src/components/UnstyledButton/UnstyledButton.ts","../src/components/Paper/Paper.module.css","../src/components/Paper/Paper.ts","../src/components/Overlay/Overlay.module.css","../src/components/Overlay/Overlay.ts","../src/components/Loader/Loader.module.css","../src/components/Loader/loaders/Bars.ts","../src/components/Loader/loaders/Dots.ts","../src/components/Loader/loaders/Oval.ts","../src/components/Loader/Loader.ts","../src/components/Center/Center.module.css","../src/components/Center/Center.ts","../src/components/Container/Container.module.css","../src/components/Container/Container.ts","../src/components/AspectRatio/AspectRatio.module.css","../src/components/AspectRatio/AspectRatio.ts","../src/components/Divider/Divider.module.css","../src/components/Divider/Divider.ts","../src/components/Text/Text.module.css","../src/components/Text/Text.ts","../src/components/Anchor/Anchor.module.css","../src/components/Anchor/Anchor.ts","../src/components/Title/get-title-size.ts","../src/components/Title/Title.module.css","../src/components/Title/Title.ts","../src/components/Code/Code.module.css","../src/components/Code/Code.ts","../src/components/Kbd/Kbd.module.css","../src/components/Kbd/Kbd.ts","../src/components/Mark/get-mark-color.ts","../src/components/Mark/Mark.module.css","../src/components/Mark/Mark.ts","../src/components/Image/Image.module.css","../src/components/Image/Image.ts","../src/components/BackgroundImage/BackgroundImage.module.css","../src/components/BackgroundImage/BackgroundImage.ts","../src/components/Skeleton/Skeleton.module.css","../src/components/Skeleton/Skeleton.ts","../src/components/ColorSwatch/ColorSwatch.module.css","../src/components/ColorSwatch/ColorSwatch.ts","../src/components/AngleSlider/AngleSlider.module.css","../src/components/AngleSlider/AngleSlider.ts","../src/components/Badge/Badge.module.css","../src/components/Badge/Badge.ts","../src/components/ThemeIcon/ThemeIcon.module.css","../src/components/ThemeIcon/ThemeIcon.ts","../src/components/Transition/transitions.ts","../src/components/Transition/get-transition-styles.ts","../src/components/Transition/use-transition.ts","../src/components/Transition/Transition.ts","../src/components/ActionIcon/ActionIcon.module.css","../src/components/ActionIcon/ActionIconGroup/ActionIconGroup.ts","../src/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.ts","../src/components/ActionIcon/ActionIcon.ts","../src/components/CloseButton/CloseIcon.ts","../src/components/CloseButton/CloseButton.module.css","../src/components/CloseButton/CloseButton.ts","../src/components/Button/Button.module.css","../src/components/Button/ButtonGroup/ButtonGroup.ts","../src/components/Button/ButtonGroupSection/ButtonGroupSection.ts","../src/components/Button/Button.ts","../src/components/Burger/Burger.module.css","../src/components/Burger/Burger.ts","../src/components/Collapse/Collapse.ts","../src/components/CopyButton/CopyButton.ts","../src/components/LoadingOverlay/LoadingOverlay.module.css","../src/components/LoadingOverlay/LoadingOverlay.ts","../src/components/Card/Card.context.ts","../src/components/Card/CardSection/CardSection.ts","../src/components/Card/Card.module.css","../src/components/Card/Card.ts","../src/components/Alert/Alert.module.css","../src/components/Alert/Alert.ts","../src/components/Blockquote/Blockquote.module.css","../src/components/Blockquote/Blockquote.ts","../src/components/Breadcrumbs/Breadcrumbs.module.css","../src/components/Breadcrumbs/Breadcrumbs.ts","../src/components/List/List.context.ts","../src/components/List/ListItem/ListItem.ts","../src/components/List/List.module.css","../src/components/List/List.ts","../src/components/Indicator/get-position-variables/get-position-variables.ts","../src/components/Indicator/Indicator.module.css","../src/components/Indicator/Indicator.ts","../src/components/Avatar/Avatar.module.css","../src/components/Avatar/AvatarGroup/AvatarGroup.ts","../src/components/Avatar/AvatarPlaceholderIcon.ts","../src/components/Avatar/get-initials/get-initials.ts","../src/components/Avatar/get-initials-color/get-initials-color.ts","../src/components/Avatar/Avatar.ts","../src/components/SimpleGrid/SimpleGridVariables.ts","../src/components/SimpleGrid/SimpleGrid.module.css","../src/components/SimpleGrid/SimpleGrid.ts","../src/components/Grid/Grid.context.ts","../src/components/Grid/GridCol/GridColVariables.ts","../src/components/Grid/GridCol/GridCol.ts","../src/components/Grid/GridVariables.ts","../src/components/Grid/Grid.module.css","../src/components/Grid/Grid.ts","../src/components/ScrollArea/ScrollArea.context.ts","../src/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.ts","../src/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.ts","../src/components/ScrollArea/utils/index.ts","../src/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.ts","../src/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.ts","../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.ts","../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.ts","../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.ts","../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.ts","../src/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.ts","../src/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.ts","../src/components/ScrollArea/ScrollArea.module.css","../src/components/ScrollArea/ScrollArea.ts","../src/components/Accordion/Accordion.context.ts","../src/components/Accordion/AccordionChevron.ts","../src/components/Accordion/AccordionItem.context.ts","../src/components/Accordion/AccordionControl/AccordionControl.ts","../src/components/Accordion/AccordionItem/AccordionItem.ts","../src/components/Accordion/AccordionPanel/AccordionPanel.ts","../src/components/Accordion/Accordion.module.css","../src/components/Accordion/Accordion.ts","../src/components/Scroller/Scroller.module.css","../src/components/Scroller/Scroller.ts","../src/components/Table/Table.context.ts","../src/components/Table/Table.module.css","../src/components/Table/Table.components.ts","../src/components/Table/TableDataRenderer.ts","../src/components/Table/TableScrollContainer.ts","../src/components/Table/Table.ts","../src/components/Progress/Progress.context.ts","../src/components/Progress/Progress.module.css","../src/components/Progress/ProgressLabel/ProgressLabel.ts","../src/components/Progress/ProgressRoot/ProgressRoot.ts","../src/components/Progress/ProgressSection/ProgressSection.ts","../src/components/Progress/Progress.ts","../src/components/RingProgress/Curve/get-curve-props.ts","../src/components/RingProgress/Curve/Curve.ts","../src/components/RingProgress/get-curves/get-curves.ts","../src/components/RingProgress/RingProgress.module.css","../src/components/RingProgress/RingProgress.ts","../src/components/RollingNumber/get-digit-parts.ts","../src/components/RollingNumber/build-value.ts","../src/components/RollingNumber/DigitColumn.ts","../src/components/RollingNumber/get-render-slots.ts","../src/components/RollingNumber/RollingNumber.module.css","../src/components/RollingNumber/RollingNumber.ts","../src/components/Timeline/Timeline.context.ts","../src/components/Timeline/Timeline.module.css","../src/components/Timeline/TimelineItem/TimelineItem.ts","../src/components/Timeline/Timeline.ts","../src/components/Highlight/highlighter/highlighter.ts","../src/components/Highlight/Highlight.ts","../src/components/Typography/Typography.module.css","../src/components/Typography/Typography.ts","../src/components/SemiCircleProgress/SemiCircleProgress.module.css","../src/components/SemiCircleProgress/SemiCircleProgress.ts","../src/components/Spoiler/Spoiler.module.css","../src/components/Spoiler/Spoiler.ts","../src/components/Fieldset/Fieldset.module.css","../src/components/Fieldset/Fieldset.ts","../src/components/FileButton/FileButton.ts","../src/components/Input/Input.context.ts","../src/components/Input/InputClearButton/InputClearButton.ts","../src/components/Input/InputClearSection/InputClearSection.ts","../src/components/Input/InputWrapper.context.ts","../src/components/Input/Input.module.css","../src/components/Input/InputDescription/InputDescription.ts","../src/components/Input/InputError/InputError.ts","../src/components/Input/InputLabel/InputLabel.ts","../src/components/Input/InputPlaceholder/InputPlaceholder.ts","../src/components/Input/InputWrapper/get-input-offsets/get-input-offsets.ts","../src/components/Input/InputWrapper/InputWrapper.ts","../src/components/Input/Input.ts","../src/components/InputBase/InputBase.ts","../src/components/FileInput/FileInput.ts","../src/components/Notification/Notification.module.css","../src/components/Notification/Notification.ts","../src/components/NumberFormatter/NumberFormatter.ts","../src/components/NumberInput/NumberInputChevron.ts","../src/components/NumberInput/NumberInput.module.css","../src/components/NumberInput/NumberInput.ts","../src/components/Group/Group.module.css","../src/components/Group/Group.ts","../src/components/PinInput/create-pin-array/create-pin-array.ts","../src/components/PinInput/PinInput.module.css","../src/components/PinInput/PinInput.ts","../src/components/NativeSelect/get-parsed-data/get-parsed-data.ts","../src/components/NativeSelect/NativeSelectOption.ts","../src/components/NativeSelect/NativeSelect.ts","../src/components/NavLink/NavLink.module.css","../src/components/NavLink/NavLink.ts","../src/components/Marquee/Marquee.module.css","../src/components/Marquee/Marquee.ts","../src/components/Affix/Affix.module.css","../src/components/Affix/Affix.ts","../src/components/Dialog/Dialog.module.css","../src/components/Dialog/Dialog.ts","../src/components/Rating/Rating.context.ts","../src/components/Rating/StarSymbol/StarIcon.ts","../src/components/Rating/StarSymbol/StarSymbol.ts","../src/components/Rating/RatingItem/RatingItem.ts","../src/components/Rating/Rating.module.css","../src/components/Rating/Rating.ts","../src/components/FloatingIndicator/use-floating-indicator.ts","../src/components/FloatingIndicator/FloatingIndicator.module.css","../src/components/FloatingIndicator/FloatingIndicator.ts","../src/components/SegmentedControl/SegmentedControl.module.css","../src/components/SegmentedControl/SegmentedControl.ts","../src/components/Pagination/Pagination.icons.ts","../src/components/Pagination/Pagination.context.ts","../src/components/Pagination/PaginationControl/PaginationControl.ts","../src/components/Pagination/PaginationEdges/PaginationEdges.ts","../src/components/Pagination/PaginationDots/PaginationDots.ts","../src/components/Pagination/PaginationItems/PaginationItems.ts","../src/components/Pagination/PaginationLabel/PaginationLabel.ts","../src/components/Pagination/Pagination.module.css","../src/components/Pagination/PaginationRoot/PaginationRoot.ts","../src/components/Pagination/Pagination.ts","../src/components/Tabs/Tabs.context.ts","../src/components/Tabs/TabsList/TabsList.ts","../src/components/Tabs/TabsPanel/TabsPanel.ts","../src/components/Tabs/TabsTab/TabsTab.ts","../src/components/Tabs/Tabs.module.css","../src/components/Tabs/Tabs.ts","../src/components/Textarea/Autosize.ts","../src/components/Textarea/Textarea.ts","../src/components/JsonInput/validate-json/validate-json.ts","../src/components/JsonInput/JsonInput.ts","../src/components/TextInput/TextInput.ts","../src/components/PasswordInput/PasswordToggleIcon.ts","../src/components/PasswordInput/PasswordInput.module.css","../src/components/PasswordInput/PasswordInput.ts","../src/utils/InlineInput/InlineInput.module.css","../src/utils/InlineInput/InlineInput.ts","../src/utils/InputsGroupFieldset.ts","../src/components/Checkbox/CheckIcon.ts","../src/components/Checkbox/CheckboxGroup/CheckboxGroup.ts","../src/components/Checkbox/CheckboxCard/CheckboxCard.module.css","../src/components/Checkbox/CheckboxCard/CheckboxCard.ts","../src/components/Checkbox/CheckboxIndicator/CheckboxIndicator.module.css","../src/components/Checkbox/CheckboxIndicator/CheckboxIndicator.ts","../src/components/Checkbox/Checkbox.module.css","../src/components/Checkbox/Checkbox.ts","../src/components/Chip/ChipGroup/ChipGroup.ts","../src/components/Chip/Chip.module.css","../src/components/Chip/Chip.ts","../src/components/PillsInput/PillsInput.context.ts","../src/components/Pill/Pill.module.css","../src/components/Pill/PillGroup/PillGroup.ts","../src/components/Pill/Pill.ts","../src/components/PillsInput/PillsInput.module.css","../src/components/PillsInput/PillsInputField/PillsInputField.ts","../src/components/PillsInput/PillsInput.ts","../src/components/Radio/RadioGroup/RadioGroup.ts","../src/components/Radio/RadioCard/RadioCard.module.css","../src/components/Radio/RadioCard/RadioCard.ts","../src/components/Radio/RadioIcon.ts","../src/components/Radio/RadioIndicator/RadioIndicator.module.css","../src/components/Radio/RadioIndicator/RadioIndicator.ts","../src/components/Radio/Radio.module.css","../src/components/Radio/Radio.ts","../src/components/Switch/SwitchGroup/SwitchGroup.ts","../src/components/Switch/Switch.module.css","../src/components/Switch/Switch.ts","../src/components/Space/Space.ts","../src/components/Flex/flex-props.ts","../src/components/Flex/Flex.module.css","../src/components/Flex/Flex.ts","../src/components/Stack/Stack.module.css","../src/components/Stack/Stack.ts","../src/components/Stepper/Stepper.context.ts","../src/components/Stepper/StepperCompleted/StepperCompleted.ts","../src/components/Stepper/Stepper.module.css","../src/components/Stepper/StepperStep/StepperStep.ts","../src/components/Stepper/Stepper.ts","../src/components/OverflowList/get-row-position-data.ts","../src/components/OverflowList/use-dimensions.ts","../src/components/OverflowList/OverflowList.module.css","../src/components/OverflowList/OverflowList.ts","../src/components/TableOfContents/TableOfContents.module.css","../src/components/TableOfContents/TableOfContents.ts","../src/components/FloatingWindow/FloatingWindow.module.css","../src/components/FloatingWindow/FloatingWindow.ts","../src/components/Slider/Slider.context.ts","../src/components/Slider/SliderRoot/SliderRoot.ts","../src/components/Slider/Thumb/Thumb.ts","../src/components/Slider/utils/slider-utils.ts","../src/components/Slider/Marks/Marks.ts","../src/components/Slider/Track/Track.ts","../src/components/Slider/Slider.module.css","../src/components/Slider/Slider/Slider.ts","../src/components/Slider/RangeSlider/RangeSlider.ts","../src/components/ColorPicker/ColorPicker.context.ts","../src/components/ColorPicker/Thumb/Thumb.ts","../src/components/ColorPicker/ColorPicker.module.css","../src/components/ColorPicker/ColorSlider/ColorSlider.ts","../src/components/ColorPicker/converters/parsers.ts","../src/components/ColorPicker/converters/converters.ts","../src/components/ColorPicker/AlphaSlider/AlphaSlider.ts","../src/components/ColorPicker/HueSlider/HueSlider.ts","../src/components/ColorPicker/Saturation/Saturation.ts","../src/components/ColorPicker/Swatches/Swatches.ts","../src/components/ColorPicker/ColorPicker.ts","../src/components/AppShell/AppShell.context.ts","../src/components/AppShell/AppShell.module.css","../src/components/AppShell/create-app-shell-component.ts","../src/components/AppShell/AppShellAside/AppShellAside.ts","../src/components/AppShell/AppShellFooter/AppShellFooter.ts","../src/components/AppShell/AppShellHeader/AppShellHeader.ts","../src/components/AppShell/AppShellMain/AppShellMain.ts","../src/components/AppShell/AppShellMediaStyles/get-variables.ts","../src/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.ts","../src/components/AppShell/AppShellNavbar/AppShellNavbar.ts","../src/components/AppShell/AppShellSection/AppShellSection.ts","../src/components/AppShell/use-resizing/use-resizing.ts","../src/components/AppShell/AppShell.ts","../src/components/MaskInput/use-mask-input.ts","../src/components/MaskInput/MaskInput.ts","../src/components/Splitter/GripIcon.ts","../src/components/Splitter/Splitter.context.ts","../src/components/Splitter/Splitter.module.css","../src/components/Splitter/SplitterPane/SplitterPane.ts","../src/components/Splitter/use-splitter.ts","../src/components/Splitter/Splitter.ts","../src/components/Tree/get-children-nodes-values/get-children-nodes-values.ts","../src/components/Tree/use-tree-node-drag-drop.ts","../src/components/Tree/TreeNode.ts","../src/components/Tree/get-all-checked-nodes/get-all-checked-nodes.ts","../src/components/Tree/is-node-checked/is-node-checked.ts","../src/components/Tree/is-node-indeterminate/is-node-indeterminate.ts","../src/components/Tree/use-tree.ts","../src/components/Tree/Tree.module.css","../src/components/Tree/Tree.ts","../src/components/Tree/FlatTreeNode.ts","../src/components/Tree/merge-async-children/merge-async-children.ts","../src/components/Tree/move-tree-node/move-tree-node.ts","../src/components/Tree/filter-tree-data/filter-tree-data.ts","../src/components/Tree/flatten-tree-data/flatten-tree-data.ts","../src/components/ModalBase/ModalBase.context.ts","../src/components/ModalBase/use-lock-scroll.ts","../src/components/ModalBase/use-modal.ts","../src/components/ModalBase/ModalBase.ts","../src/components/ModalBase/use-modal-body-id.ts","../src/components/ModalBase/ModalBase.module.css","../src/components/ModalBase/ModalBaseBody.ts","../src/components/ModalBase/ModalBaseCloseButton.ts","../src/components/ModalBase/ModalBaseContent.ts","../src/components/ModalBase/ModalBaseHeader.ts","../src/components/ModalBase/use-modal-transition.ts","../src/components/ModalBase/ModalBaseOverlay.ts","../src/components/ModalBase/use-modal-title-id.ts","../src/components/ModalBase/ModalBaseTitle.ts","../src/components/ModalBase/NativeScrollArea.ts","../src/components/Modal/Modal.module.css","../src/components/Modal/Modal.ts","../src/components/Drawer/Drawer.module.css","../src/components/Drawer/Drawer.ts","../src/utils/Floating/FloatingArrow/get-arrow-position-styles.ts","../src/utils/Floating/FloatingArrow/FloatingArrow.ts","../src/utils/Floating/get-floating-position/get-floating-position.ts","../src/utils/Floating/use-delayed-hover.ts","../src/utils/Floating/use-context-menu-handlers.ts","../src/components/Popover/Popover.context.ts","../src/components/Popover/Popover.module.css","../src/components/Popover/Popover.ts","../src/components/Tooltip/Tooltip.module.css","../src/components/Tooltip/TooltipFloating/TooltipFloating.ts","../src/components/Tooltip/TooltipGroup/TooltipGroup.ts","../src/components/Tooltip/use-tooltip.ts","../src/components/Tooltip/Tooltip.ts","../src/components/HoverCard/HoverCard.context.ts","../src/components/HoverCard/HoverCardDropdown/HoverCardDropdown.ts","../src/components/HoverCard/HoverCardGroup/HoverCardGroup.ts","../src/components/HoverCard/HoverCardTarget/HoverCardTarget.ts","../src/components/HoverCard/use-hover-card.ts","../src/components/HoverCard/HoverCard.ts","../src/components/Menu/Menu.context.ts","../src/components/Menu/Menu.module.css","../src/components/Menu/Menu.ts","../src/components/Combobox/Combobox.context.ts","../src/components/Combobox/Combobox.module.css","../src/components/Combobox/use-combobox/use-combobox.ts","../src/components/Combobox/use-combobox-target-props/use-combobox-target-props.ts","../src/components/Combobox/Combobox.ts","../src/components/Combobox/use-combobox/use-virtualized-combobox.ts","../src/components/Combobox/data-utils.ts","../src/components/Combobox/OptionsDropdown/OptionsDropdown.ts","../src/components/Combobox/use-pills-reorder/use-pills-reorder.ts","../src/components/Select/Select.ts","../src/components/Autocomplete/Autocomplete.ts","../src/components/MultiSelect/MultiSelect.ts","../src/components/TagsInput/TagsInput.ts","../src/components/ColorInput/EyeDropperIcon.ts","../src/components/ColorInput/ColorInput.module.css","../src/components/ColorInput/ColorInput.ts","../src/components/TreeSelect/TreeSelect.module.css","../src/components/TreeSelect/TreeSelect.ts","../src/index.ts"],"sourcesContent":["import { inject, provide, type InjectionKey } from 'vue'\n\nexport * from '@mantine-vue/utils'\n\nexport function createSafeInjectionContext<T>(errorMessage: string) {\n const key = Symbol(errorMessage) as InjectionKey<T>\n\n const useSafeContext = () => {\n const ctx = inject(key, null)\n\n if (ctx === null) {\n throw new Error(errorMessage)\n }\n\n return ctx\n }\n\n const provideSafeContext = (value: T) => provide(key, value)\n\n return [provideSafeContext, useSafeContext, key] as const\n}\n\nexport const createSafeContext = createSafeInjectionContext\n","import type { MantineTheme } from '../MantineProvider'\n\nexport function createVarsResolver<Props>(\n resolver: (\n theme: MantineTheme,\n props: Props,\n ctx: Record<string, any>,\n ) => Record<string, Record<string, string | undefined>>,\n) {\n return resolver\n}\n","import { rem } from '@mantine-vue/utils'\nimport type {\n MantineColorScheme,\n MantineColorShade,\n MantineColorsTuple,\n MantineGradient,\n MantineTheme,\n VariantColorsResolver,\n} from './theme.types'\n\nexport function getPrimaryShade(\n theme: MantineTheme,\n colorScheme: MantineColorScheme,\n): MantineColorShade {\n if (typeof theme.primaryShade === 'number') {\n return theme.primaryShade\n }\n\n return colorScheme === 'dark' ? theme.primaryShade.dark : theme.primaryShade.light\n}\n\nexport interface RGBA {\n r: number\n g: number\n b: number\n a: number\n}\n\nfunction isHexColor(hex: string): boolean {\n const HEX_REGEXP = /^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i\n return HEX_REGEXP.test(hex)\n}\n\nfunction hexToRgba(color: string): RGBA {\n let hexString = color.replace('#', '')\n\n if (hexString.length === 3) {\n const shorthandHex = hexString.split('')\n hexString = [\n shorthandHex[0],\n shorthandHex[0],\n shorthandHex[1],\n shorthandHex[1],\n shorthandHex[2],\n shorthandHex[2],\n ].join('')\n }\n\n if (hexString.length === 8) {\n const alpha = Number.parseInt(hexString.slice(6, 8), 16) / 255\n return {\n r: Number.parseInt(hexString.slice(0, 2), 16),\n g: Number.parseInt(hexString.slice(2, 4), 16),\n b: Number.parseInt(hexString.slice(4, 6), 16),\n a: alpha,\n }\n }\n\n const parsed = Number.parseInt(hexString, 16)\n const r = (parsed >> 16) & 255\n const g = (parsed >> 8) & 255\n const b = parsed & 255\n\n return { r, g, b, a: 1 }\n}\n\nfunction rgbStringToRgba(color: string): RGBA {\n const [r, g, b, a] = color\n .replace(/[^0-9,./]/g, '')\n .split(/[/,]/)\n .map(Number)\n\n return { r, g, b, a: a === undefined ? 1 : a }\n}\n\nfunction hslStringToRgba(hslaString: string): RGBA {\n const hslaRegex =\n /^hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+%)\\s*,\\s*(\\d+%)\\s*(,\\s*(0?\\.\\d+|\\d+(\\.\\d+)?))?\\s*\\)$/i\n\n const matches = hslaString.match(hslaRegex)\n if (!matches) {\n return { r: 0, g: 0, b: 0, a: 1 }\n }\n\n const h = Number.parseInt(matches[1], 10)\n const s = Number.parseInt(matches[2], 10) / 100\n const l = Number.parseInt(matches[3], 10) / 100\n const a = matches[5] ? Number.parseFloat(matches[5]) : undefined\n\n const chroma = (1 - Math.abs(2 * l - 1)) * s\n const huePrime = h / 60\n const x = chroma * (1 - Math.abs((huePrime % 2) - 1))\n const m = l - chroma / 2\n\n let r: number\n let g: number\n let b: number\n\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma\n g = x\n b = 0\n } else if (huePrime >= 1 && huePrime < 2) {\n r = x\n g = chroma\n b = 0\n } else if (huePrime >= 2 && huePrime < 3) {\n r = 0\n g = chroma\n b = x\n } else if (huePrime >= 3 && huePrime < 4) {\n r = 0\n g = x\n b = chroma\n } else if (huePrime >= 4 && huePrime < 5) {\n r = x\n g = 0\n b = chroma\n } else {\n r = chroma\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n a: a || 1,\n }\n}\n\nexport function toRgba(color: string): RGBA {\n if (isHexColor(color)) {\n return hexToRgba(color)\n }\n\n if (color.startsWith('rgb')) {\n return rgbStringToRgba(color)\n }\n\n if (color.startsWith('hsl')) {\n return hslStringToRgba(color)\n }\n\n return { r: 0, g: 0, b: 0, a: 1 }\n}\n\nexport function rgba(color: string, alpha: number) {\n if (typeof color !== 'string' || alpha > 1 || alpha < 0) {\n return 'rgba(0, 0, 0, 1)'\n }\n\n if (color.startsWith('var(')) {\n const mixPercentage = (1 - alpha) * 100\n return `color-mix(in srgb, ${color}, transparent ${mixPercentage}%)`\n }\n\n if (color.startsWith('oklch')) {\n if (color.includes('/')) {\n return color.replace(/\\/\\s*[\\d.]+\\s*\\)/, `/ ${alpha})`)\n }\n return color.replace(')', ` / ${alpha})`)\n }\n\n const { r, g, b } = toRgba(color)\n return `rgba(${r}, ${g}, ${b}, ${alpha})`\n}\n\nexport const alpha = rgba\n\nexport function darken(color: string, alphaValue: number) {\n if (color.startsWith('var(')) {\n return `color-mix(in srgb, ${color}, black ${alphaValue * 100}%)`\n }\n\n const { r, g, b, a } = toRgba(color)\n const f = 1 - alphaValue\n const dark = (input: number) => Math.round(input * f)\n\n return `rgba(${dark(r)}, ${dark(g)}, ${dark(b)}, ${a})`\n}\n\nexport function lighten(color: string, alphaValue: number) {\n if (color.startsWith('var(')) {\n return `color-mix(in srgb, ${color}, white ${alphaValue * 100}%)`\n }\n\n const { r, g, b, a } = toRgba(color)\n const light = (input: number) => Math.round(input + (255 - input) * alphaValue)\n\n return `rgba(${light(r)}, ${light(g)}, ${light(b)}, ${a})`\n}\n\nfunction gammaCorrect(c: number) {\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4\n}\n\nfunction getLightnessFromOklch(oklchColor: string) {\n const match = oklchColor.match(/oklch\\((.*?)%\\s/)\n return match ? Number.parseFloat(match[1]) : null\n}\n\nexport function luminance(color: string): number {\n if (color.startsWith('oklch(')) {\n return (getLightnessFromOklch(color) || 0) / 100\n }\n\n const { r, g, b } = toRgba(color)\n\n const sR = r / 255\n const sG = g / 255\n const sB = b / 255\n\n const rLinear = gammaCorrect(sR)\n const gLinear = gammaCorrect(sG)\n const bLinear = gammaCorrect(sB)\n\n return 0.2126 * rLinear + 0.7152 * gLinear + 0.0722 * bLinear\n}\n\nexport function isLightColor(color: string, luminanceThreshold = 0.179) {\n if (color.startsWith('var(')) {\n return false\n }\n\n return luminance(color) > luminanceThreshold\n}\n\nexport function colorsTuple(input: string | string[]): MantineColorsTuple {\n if (Array.isArray(input)) {\n return input as unknown as MantineColorsTuple\n }\n\n return Array(10).fill(input) as unknown as MantineColorsTuple\n}\n\ninterface VirtualColorInput {\n dark: string\n light: string\n name: string\n}\n\nexport type VirtualColor = MantineColorsTuple & {\n 'mantine-virtual-color': true\n name: string\n dark: string\n light: string\n}\n\nexport function virtualColor(input: VirtualColorInput): MantineColorsTuple {\n const result = colorsTuple(\n Array.from({ length: 10 }).map((_, i) => `var(--mantine-color-${input.name}-${i})`),\n )\n\n Object.defineProperty(result, 'mantine-virtual-color', {\n enumerable: false,\n writable: false,\n configurable: false,\n value: true,\n })\n Object.defineProperty(result, 'dark', {\n enumerable: false,\n writable: false,\n configurable: false,\n value: input.dark,\n })\n Object.defineProperty(result, 'light', {\n enumerable: false,\n writable: false,\n configurable: false,\n value: input.light,\n })\n Object.defineProperty(result, 'name', {\n enumerable: false,\n writable: false,\n configurable: false,\n value: input.name,\n })\n\n return result\n}\n\nexport function isVirtualColor(value: unknown): value is VirtualColor {\n return !!value && typeof value === 'object' && 'mantine-virtual-color' in value\n}\n\nexport interface ParseThemeColorResult {\n color: string\n value: string\n shade: MantineColorShade | undefined\n variable: string | undefined\n isThemeColor: boolean\n isLight: boolean\n}\n\nexport function parseThemeColor({\n color,\n theme,\n colorScheme,\n}: {\n color: unknown\n theme: MantineTheme\n colorScheme?: MantineColorScheme\n}): ParseThemeColorResult {\n if (typeof color !== 'string') {\n throw new Error(\n `[@mantine-vue/core] Failed to parse color. Expected color to be a string, instead got ${typeof color}`,\n )\n }\n\n if (color === 'bright') {\n const value = colorScheme === 'dark' ? theme.white : theme.black\n return {\n color,\n value,\n shade: undefined,\n isThemeColor: false,\n isLight: isLightColor(value, theme.luminanceThreshold),\n variable: '--mantine-color-bright',\n }\n }\n\n if (color === 'dimmed') {\n const value = colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7]\n return {\n color,\n value,\n shade: undefined,\n isThemeColor: false,\n isLight: isLightColor(\n colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[6],\n theme.luminanceThreshold,\n ),\n variable: '--mantine-color-dimmed',\n }\n }\n\n if (color === 'white' || color === 'black') {\n const value = color === 'white' ? theme.white : theme.black\n return {\n color,\n value,\n shade: undefined,\n isThemeColor: false,\n isLight: isLightColor(value, theme.luminanceThreshold),\n variable: `--mantine-color-${color}`,\n }\n }\n\n const [_color, shade] = color.split('.')\n const colorShade = shade ? (Number(shade) as MantineColorShade) : undefined\n const isThemeColor = _color in theme.colors\n\n if (isThemeColor) {\n const colorValue =\n colorShade !== undefined\n ? theme.colors[_color][colorShade]\n : theme.colors[_color][getPrimaryShade(theme, colorScheme || 'light')]\n\n return {\n color: _color,\n value: colorValue,\n shade: colorShade,\n isThemeColor,\n isLight: isLightColor(colorValue, theme.luminanceThreshold),\n variable: shade\n ? `--mantine-color-${_color}-${colorShade}`\n : `--mantine-color-${_color}-filled`,\n }\n }\n\n return {\n color,\n value: color,\n isThemeColor,\n isLight: isLightColor(color, theme.luminanceThreshold),\n shade: colorShade,\n variable: undefined,\n }\n}\n\nexport function getThemeColor(\n color: string | undefined | null,\n theme: MantineTheme,\n colorScheme: MantineColorScheme = 'light',\n) {\n const parsed = parseThemeColor({ color: color || theme.primaryColor, theme, colorScheme })\n return parsed.variable ? `var(${parsed.variable})` : (color as string)\n}\n\nexport function getGradient(gradient: MantineGradient | undefined, theme: MantineTheme) {\n const merged = {\n from: gradient?.from || theme.defaultGradient.from,\n to: gradient?.to || theme.defaultGradient.to,\n deg: gradient?.deg ?? theme.defaultGradient.deg ?? 0,\n }\n\n const fromColor = getThemeColor(merged.from, theme)\n const toColor = getThemeColor(merged.to, theme)\n\n return `linear-gradient(${merged.deg}deg, ${fromColor} 0%, ${toColor} 100%)`\n}\n\nexport function getAutoContrastValue(autoContrast: boolean | undefined, theme: MantineTheme) {\n return typeof autoContrast === 'boolean' ? autoContrast : theme.autoContrast\n}\n\nexport function getContrastColor({\n color,\n theme,\n autoContrast,\n}: {\n color?: string | null\n theme: MantineTheme\n autoContrast?: boolean | null\n}) {\n const _autoContrast = typeof autoContrast === 'boolean' ? autoContrast : theme.autoContrast\n\n if (!_autoContrast) {\n return 'var(--mantine-color-white)'\n }\n\n const parsed = parseThemeColor({ color: color || theme.primaryColor, theme })\n return parsed.isLight ? 'var(--mantine-color-black)' : 'var(--mantine-color-white)'\n}\n\nexport function getPrimaryContrastColor(theme: MantineTheme, colorScheme: 'light' | 'dark') {\n return getContrastColor({\n color: theme.colors[theme.primaryColor][getPrimaryShade(theme, colorScheme)],\n theme,\n autoContrast: null,\n })\n}\n\nexport const defaultVariantColorsResolver: VariantColorsResolver = ({\n color,\n theme,\n variant,\n gradient,\n autoContrast,\n}) => {\n const parsed = parseThemeColor({ color, theme })\n const _autoContrast = typeof autoContrast === 'boolean' ? autoContrast : theme.autoContrast\n\n if (variant === 'none') {\n return { background: 'transparent', hover: 'transparent', color: 'inherit', border: 'none' }\n }\n\n if (variant === 'filled') {\n const textColor = _autoContrast\n ? parsed.isLight\n ? 'var(--mantine-color-black)'\n : 'var(--mantine-color-white)'\n : 'var(--mantine-color-white)'\n\n if (parsed.isThemeColor) {\n if (parsed.shade === undefined) {\n return {\n background: `var(--mantine-color-${color}-filled)`,\n hover: `var(--mantine-color-${color}-filled-hover)`,\n color: textColor,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: `var(--mantine-color-${parsed.color}-${parsed.shade})`,\n hover: `var(--mantine-color-${parsed.color}-${parsed.shade === 9 ? 8 : parsed.shade + 1})`,\n color: textColor,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: color!,\n hover: darken(color!, 0.1),\n color: textColor,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n if (variant === 'light') {\n if (parsed.isThemeColor) {\n if (parsed.shade === undefined) {\n return {\n background: `var(--mantine-color-${color}-light)`,\n hover: `var(--mantine-color-${color}-light-hover)`,\n color: `var(--mantine-color-${color}-light-color)`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n const parsedColor = theme.colors[parsed.color][parsed.shade]\n\n return {\n background: parsedColor,\n hover: darken(parsedColor, 0.1),\n color: `var(--mantine-color-${parsed.color}-light-color)`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: rgba(color!, 0.1),\n hover: rgba(color!, 0.12),\n color: color!,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n if (variant === 'outline') {\n if (parsed.isThemeColor) {\n if (parsed.shade === undefined) {\n return {\n background: 'transparent',\n hover: `var(--mantine-color-${color}-outline-hover)`,\n color: `var(--mantine-color-${color}-outline)`,\n border: `${rem(1)} solid var(--mantine-color-${color}-outline)`,\n }\n }\n\n return {\n background: 'transparent',\n hover: rgba(theme.colors[parsed.color][parsed.shade], 0.05),\n color: `var(--mantine-color-${parsed.color}-${parsed.shade})`,\n border: `${rem(1)} solid var(--mantine-color-${parsed.color}-${parsed.shade})`,\n }\n }\n\n return {\n background: 'transparent',\n hover: rgba(color!, 0.05),\n color: color!,\n border: `${rem(1)} solid ${color}`,\n }\n }\n\n if (variant === 'subtle') {\n if (parsed.isThemeColor) {\n if (parsed.shade === undefined) {\n return {\n background: 'transparent',\n hover: `var(--mantine-color-${color}-light-hover)`,\n color: `var(--mantine-color-${color}-light-color)`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n const parsedColor = theme.colors[parsed.color][parsed.shade]\n\n return {\n background: 'transparent',\n hover: rgba(parsedColor, 0.12),\n color: `var(--mantine-color-${parsed.color}-${Math.min(parsed.shade, 6)})`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: 'transparent',\n hover: rgba(color!, 0.12),\n color: color!,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n if (variant === 'transparent') {\n if (parsed.isThemeColor) {\n if (parsed.shade === undefined) {\n return {\n background: 'transparent',\n hover: 'transparent',\n color: `var(--mantine-color-${color}-light-color)`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: 'transparent',\n hover: 'transparent',\n color: `var(--mantine-color-${parsed.color}-${Math.min(parsed.shade, 6)})`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: 'transparent',\n hover: 'transparent',\n color: color!,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n if (variant === 'white') {\n if (parsed.isThemeColor) {\n if (parsed.shade === undefined) {\n return {\n background: 'var(--mantine-color-white)',\n hover: darken(theme.white, 0.01),\n color: `var(--mantine-color-${color}-filled)`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: 'var(--mantine-color-white)',\n hover: darken(theme.white, 0.01),\n color: `var(--mantine-color-${parsed.color}-${parsed.shade})`,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n return {\n background: 'var(--mantine-color-white)',\n hover: darken(theme.white, 0.01),\n color: color!,\n border: `${rem(1)} solid transparent`,\n }\n }\n\n if (variant === 'gradient') {\n return {\n background: getGradient(gradient, theme),\n hover: getGradient(gradient, theme),\n color: 'var(--mantine-color-white)',\n border: 'none',\n }\n }\n\n if (variant === 'default') {\n return {\n background: 'var(--mantine-color-default)',\n hover: 'var(--mantine-color-default-hover)',\n color: 'var(--mantine-color-default-color)',\n border: `${rem(1)} solid var(--mantine-color-default-border)`,\n }\n }\n\n return {} as ReturnType<VariantColorsResolver>\n}\n","import type { MantineThemeColors } from './theme.types'\n\nexport const DEFAULT_COLORS: MantineThemeColors = {\n dark: [\n '#C9C9C9',\n '#b8b8b8',\n '#828282',\n '#696969',\n '#424242',\n '#3b3b3b',\n '#2e2e2e',\n '#242424',\n '#1f1f1f',\n '#141414',\n ],\n gray: [\n '#f8f9fa',\n '#f1f3f5',\n '#e9ecef',\n '#dee2e6',\n '#ced4da',\n '#adb5bd',\n '#868e96',\n '#495057',\n '#343a40',\n '#212529',\n ],\n red: [\n '#fff5f5',\n '#ffe3e3',\n '#ffc9c9',\n '#ffa8a8',\n '#ff8787',\n '#ff6b6b',\n '#fa5252',\n '#f03e3e',\n '#e03131',\n '#c92a2a',\n ],\n pink: [\n '#fff0f6',\n '#ffdeeb',\n '#fcc2d7',\n '#faa2c1',\n '#f783ac',\n '#f06595',\n '#e64980',\n '#d6336c',\n '#c2255c',\n '#a61e4d',\n ],\n grape: [\n '#f8f0fc',\n '#f3d9fa',\n '#eebefa',\n '#e599f7',\n '#da77f2',\n '#cc5de8',\n '#be4bdb',\n '#ae3ec9',\n '#9c36b5',\n '#862e9c',\n ],\n violet: [\n '#f3f0ff',\n '#e5dbff',\n '#d0bfff',\n '#b197fc',\n '#9775fa',\n '#845ef7',\n '#7950f2',\n '#7048e8',\n '#6741d9',\n '#5f3dc4',\n ],\n indigo: [\n '#edf2ff',\n '#dbe4ff',\n '#bac8ff',\n '#91a7ff',\n '#748ffc',\n '#5c7cfa',\n '#4c6ef5',\n '#4263eb',\n '#3b5bdb',\n '#364fc7',\n ],\n blue: [\n '#e7f5ff',\n '#d0ebff',\n '#a5d8ff',\n '#74c0fc',\n '#4dabf7',\n '#339af0',\n '#228be6',\n '#1c7ed6',\n '#1971c2',\n '#1864ab',\n ],\n cyan: [\n '#e3fafc',\n '#c5f6fa',\n '#99e9f2',\n '#66d9e8',\n '#3bc9db',\n '#22b8cf',\n '#15aabf',\n '#1098ad',\n '#0c8599',\n '#0b7285',\n ],\n teal: [\n '#e6fcf5',\n '#c3fae8',\n '#96f2d7',\n '#63e6be',\n '#38d9a9',\n '#20c997',\n '#12b886',\n '#0ca678',\n '#099268',\n '#087f5b',\n ],\n green: [\n '#ebfbee',\n '#d3f9d8',\n '#b2f2bb',\n '#8ce99a',\n '#69db7c',\n '#51cf66',\n '#40c057',\n '#37b24d',\n '#2f9e44',\n '#2b8a3e',\n ],\n lime: [\n '#f4fce3',\n '#e9fac8',\n '#d8f5a2',\n '#c0eb75',\n '#a9e34b',\n '#94d82d',\n '#82c91e',\n '#74b816',\n '#66a80f',\n '#5c940d',\n ],\n yellow: [\n '#fff9db',\n '#fff3bf',\n '#ffec99',\n '#ffe066',\n '#ffd43b',\n '#fcc419',\n '#fab005',\n '#f59f00',\n '#f08c00',\n '#e67700',\n ],\n orange: [\n '#fff4e6',\n '#ffe8cc',\n '#ffd8a8',\n '#ffc078',\n '#ffa94d',\n '#ff922b',\n '#fd7e14',\n '#f76707',\n '#e8590c',\n '#d9480f',\n ],\n}\n","import { rem } from '@mantine-vue/utils'\nimport { defaultVariantColorsResolver } from './color-functions'\nimport { DEFAULT_COLORS } from './default-colors'\nimport type { MantineTheme } from './theme.types'\n\nconst DEFAULT_FONT_FAMILY =\n '-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji'\n\nexport const DEFAULT_THEME: MantineTheme = {\n scale: 1,\n fontSmoothing: true,\n focusRing: 'auto',\n white: '#fff',\n black: '#000',\n colors: DEFAULT_COLORS,\n primaryShade: { light: 6, dark: 8 },\n primaryColor: 'blue',\n variantColorResolver: defaultVariantColorsResolver,\n autoContrast: false,\n luminanceThreshold: 0.3,\n fontFamily: DEFAULT_FONT_FAMILY,\n fontFamilyMonospace:\n 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace',\n respectReducedMotion: false,\n cursorType: 'default',\n defaultGradient: { from: 'blue', to: 'cyan', deg: 45 },\n defaultRadius: 'md',\n activeClassName: 'mantine-active',\n focusClassName: '',\n headings: {\n fontFamily: DEFAULT_FONT_FAMILY,\n fontWeight: '700',\n textWrap: 'wrap',\n sizes: {\n h1: { fontSize: rem(34), lineHeight: '1.3' },\n h2: { fontSize: rem(26), lineHeight: '1.35' },\n h3: { fontSize: rem(22), lineHeight: '1.4' },\n h4: { fontSize: rem(18), lineHeight: '1.45' },\n h5: { fontSize: rem(16), lineHeight: '1.5' },\n h6: { fontSize: rem(14), lineHeight: '1.5' },\n },\n },\n fontSizes: { xs: rem(12), sm: rem(14), md: rem(16), lg: rem(18), xl: rem(20) },\n lineHeights: { xs: '1.4', sm: '1.45', md: '1.55', lg: '1.6', xl: '1.65' },\n fontWeights: { regular: '400', medium: '600', bold: '700' },\n radius: { xs: rem(2), sm: rem(4), md: rem(8), lg: rem(16), xl: rem(32) },\n spacing: { xs: rem(10), sm: rem(12), md: rem(16), lg: rem(20), xl: rem(32) },\n breakpoints: { xs: '36em', sm: '48em', md: '62em', lg: '75em', xl: '88em' },\n shadows: {\n xs: `0 ${rem(1)} ${rem(3)} rgba(0, 0, 0, 0.05), 0 ${rem(1)} ${rem(2)} rgba(0, 0, 0, 0.1)`,\n sm: `0 ${rem(1)} ${rem(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${rem(10)} ${rem(15)} ${rem(-5)}, rgba(0, 0, 0, 0.04) 0 ${rem(7)} ${rem(7)} ${rem(-5)}`,\n md: `0 ${rem(1)} ${rem(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${rem(20)} ${rem(25)} ${rem(-5)}, rgba(0, 0, 0, 0.04) 0 ${rem(10)} ${rem(10)} ${rem(-5)}`,\n lg: `0 ${rem(1)} ${rem(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${rem(28)} ${rem(23)} ${rem(-7)}, rgba(0, 0, 0, 0.04) 0 ${rem(12)} ${rem(12)} ${rem(-7)}`,\n xl: `0 ${rem(1)} ${rem(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${rem(36)} ${rem(28)} ${rem(-7)}, rgba(0, 0, 0, 0.04) 0 ${rem(17)} ${rem(17)} ${rem(-7)}`,\n },\n other: {},\n components: {},\n}\n","import { deepMerge } from '@mantine-vue/utils'\nimport type { MantineTheme, MantineThemeOverride } from './theme.types'\n\nexport const INVALID_PRIMARY_COLOR_ERROR =\n '[@mantine-vue/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors'\n\nexport const INVALID_PRIMARY_SHADE_ERROR =\n '[@mantine-vue/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }'\n\nfunction isValidPrimaryShade(shade: number) {\n return shade >= 0 && shade <= 9 && parseInt(shade.toString(), 10) === shade\n}\n\nexport function validateMantineTheme(theme: MantineTheme): asserts theme is MantineTheme {\n if (!(theme.primaryColor in theme.colors)) {\n throw new Error(INVALID_PRIMARY_COLOR_ERROR)\n }\n\n if (typeof theme.primaryShade === 'object') {\n if (\n !isValidPrimaryShade(theme.primaryShade.dark) ||\n !isValidPrimaryShade(theme.primaryShade.light)\n ) {\n throw new Error(INVALID_PRIMARY_SHADE_ERROR)\n }\n }\n\n if (typeof theme.primaryShade === 'number' && !isValidPrimaryShade(theme.primaryShade)) {\n throw new Error(INVALID_PRIMARY_SHADE_ERROR)\n }\n}\n\nexport function mergeMantineTheme(\n currentTheme: MantineTheme,\n themeOverride?: MantineThemeOverride,\n) {\n if (!themeOverride) {\n validateMantineTheme(currentTheme)\n return currentTheme\n }\n\n const result = deepMerge(currentTheme, themeOverride as any)\n\n if (themeOverride.fontFamily && !themeOverride.headings?.fontFamily) {\n result.headings = { ...result.headings, fontFamily: themeOverride.fontFamily }\n }\n\n validateMantineTheme(result)\n return result\n}\n","import { deepMerge, keys, rem } from '@mantine-vue/utils'\nimport {\n alpha,\n darken,\n getPrimaryContrastColor,\n getPrimaryShade,\n isVirtualColor,\n} from './color-functions'\nimport type { MantineColorShade, MantineTheme } from './theme.types'\n\nexport interface ConvertCSSVariablesInput {\n variables: Record<string, string>\n light?: Record<string, string>\n dark?: Record<string, string>\n}\n\nexport type CSSVariablesResolver = (theme: MantineTheme) => ConvertCSSVariablesInput\n\nfunction assignSizeVariables(\n variables: Record<string, string>,\n sizes: Record<string, string>,\n name: string,\n) {\n keys(sizes).forEach((size) => {\n variables[`--mantine-${name}-${size}`] = sizes[size]\n })\n}\n\nfunction getCSSColorVariables({\n theme,\n color,\n colorScheme,\n name = color,\n withColorValues = true,\n}: {\n theme: MantineTheme\n color: string\n colorScheme: 'light' | 'dark'\n name?: string\n withColorValues?: boolean\n}) {\n const primaryShade = getPrimaryShade(theme, colorScheme)\n const colorValues = theme.colors[color]\n const result: Record<string, string> = {}\n\n if (colorScheme === 'light') {\n result[`--mantine-color-${name}-text`] = `var(--mantine-color-${name}-filled)`\n result[`--mantine-color-${name}-filled`] = `var(--mantine-color-${name}-${primaryShade})`\n result[`--mantine-color-${name}-filled-hover`] =\n `var(--mantine-color-${name}-${primaryShade === 9 ? 8 : primaryShade + 1})`\n result[`--mantine-color-${name}-light`] = `var(--mantine-color-${name}-1)`\n result[`--mantine-color-${name}-light-hover`] = `var(--mantine-color-${name}-2)`\n result[`--mantine-color-${name}-light-color`] = `var(--mantine-color-${name}-9)`\n result[`--mantine-color-${name}-outline`] = `var(--mantine-color-${name}-${primaryShade})`\n result[`--mantine-color-${name}-outline-hover`] = alpha(colorValues[primaryShade], 0.05)\n } else {\n result[`--mantine-color-${name}-text`] = `var(--mantine-color-${name}-4)`\n result[`--mantine-color-${name}-filled`] = `var(--mantine-color-${name}-${primaryShade})`\n result[`--mantine-color-${name}-filled-hover`] =\n `var(--mantine-color-${name}-${primaryShade === 9 ? 8 : primaryShade + 1})`\n result[`--mantine-color-${name}-light`] = darken(colorValues[9], 0.5)\n result[`--mantine-color-${name}-light-hover`] = darken(colorValues[9], 0.3)\n result[`--mantine-color-${name}-light-color`] = `var(--mantine-color-${name}-0)`\n const outlineShade = Math.max(primaryShade - 4, 0) as MantineColorShade\n result[`--mantine-color-${name}-outline`] = `var(--mantine-color-${name}-${outlineShade})`\n result[`--mantine-color-${name}-outline-hover`] = alpha(colorValues[outlineShade], 0.05)\n }\n\n if (withColorValues) {\n colorValues.forEach((value, index) => {\n result[`--mantine-color-${name}-${index}`] = value\n })\n }\n\n return result\n}\n\nexport const defaultCssVariablesResolver: CSSVariablesResolver = (theme) => {\n const lightPrimaryShade = getPrimaryShade(theme, 'light')\n const defaultRadius =\n String(theme.defaultRadius) in theme.radius\n ? theme.radius[String(theme.defaultRadius)]\n : rem(theme.defaultRadius)\n\n const result: ConvertCSSVariablesInput = {\n variables: {\n '--mantine-z-index-app': '100',\n '--mantine-z-index-modal': '200',\n '--mantine-z-index-popover': '300',\n '--mantine-z-index-overlay': '400',\n '--mantine-z-index-max': '9999',\n '--mantine-scale': theme.scale.toString(),\n '--mantine-cursor-type': theme.cursorType,\n '--mantine-webkit-font-smoothing': theme.fontSmoothing ? 'antialiased' : 'unset',\n '--mantine-moz-font-smoothing': theme.fontSmoothing ? 'grayscale' : 'unset',\n '--mantine-color-white': theme.white,\n '--mantine-color-black': theme.black,\n '--mantine-line-height': theme.lineHeights.md,\n '--mantine-font-family': theme.fontFamily,\n '--mantine-font-family-monospace': theme.fontFamilyMonospace,\n '--mantine-font-family-headings': theme.headings.fontFamily,\n '--mantine-heading-font-weight': theme.headings.fontWeight,\n '--mantine-heading-text-wrap': theme.headings.textWrap,\n '--mantine-radius-default': defaultRadius,\n '--mantine-primary-color-filled': `var(--mantine-color-${theme.primaryColor}-filled)`,\n '--mantine-primary-color-filled-hover': `var(--mantine-color-${theme.primaryColor}-filled-hover)`,\n '--mantine-primary-color-light': `var(--mantine-color-${theme.primaryColor}-light)`,\n '--mantine-primary-color-light-hover': `var(--mantine-color-${theme.primaryColor}-light-hover)`,\n '--mantine-primary-color-light-color': `var(--mantine-color-${theme.primaryColor}-light-color)`,\n },\n light: {\n '--mantine-color-scheme': 'light',\n '--mantine-primary-color-contrast': getPrimaryContrastColor(theme, 'light'),\n '--mantine-color-bright': 'var(--mantine-color-black)',\n '--mantine-color-text': theme.black,\n '--mantine-color-body': theme.white,\n '--mantine-color-error': 'var(--mantine-color-red-6)',\n '--mantine-color-placeholder': 'var(--mantine-color-gray-5)',\n '--mantine-color-anchor': `var(--mantine-color-${theme.primaryColor}-${lightPrimaryShade})`,\n '--mantine-color-default': 'var(--mantine-color-white)',\n '--mantine-color-default-hover': 'var(--mantine-color-gray-0)',\n '--mantine-color-default-color': 'var(--mantine-color-black)',\n '--mantine-color-default-border': 'var(--mantine-color-gray-4)',\n '--mantine-color-dimmed': 'var(--mantine-color-gray-6)',\n '--mantine-color-disabled': 'var(--mantine-color-gray-2)',\n '--mantine-color-disabled-color': 'var(--mantine-color-gray-5)',\n '--mantine-color-disabled-border': 'var(--mantine-color-gray-3)',\n },\n dark: {\n '--mantine-color-scheme': 'dark',\n '--mantine-primary-color-contrast': getPrimaryContrastColor(theme, 'dark'),\n '--mantine-color-bright': 'var(--mantine-color-white)',\n '--mantine-color-text': 'var(--mantine-color-dark-0)',\n '--mantine-color-body': 'var(--mantine-color-dark-7)',\n '--mantine-color-error': 'var(--mantine-color-red-8)',\n '--mantine-color-placeholder': 'var(--mantine-color-dark-3)',\n '--mantine-color-anchor': `var(--mantine-color-${theme.primaryColor}-4)`,\n '--mantine-color-default': 'var(--mantine-color-dark-6)',\n '--mantine-color-default-hover': 'var(--mantine-color-dark-5)',\n '--mantine-color-default-color': 'var(--mantine-color-white)',\n '--mantine-color-default-border': 'var(--mantine-color-dark-4)',\n '--mantine-color-dimmed': 'var(--mantine-color-dark-2)',\n '--mantine-color-disabled': 'var(--mantine-color-dark-6)',\n '--mantine-color-disabled-color': 'var(--mantine-color-dark-3)',\n '--mantine-color-disabled-border': 'var(--mantine-color-dark-4)',\n },\n }\n\n assignSizeVariables(result.variables, theme.breakpoints, 'breakpoint')\n assignSizeVariables(result.variables, theme.spacing, 'spacing')\n assignSizeVariables(result.variables, theme.fontSizes, 'font-size')\n assignSizeVariables(result.variables, theme.lineHeights, 'line-height')\n assignSizeVariables(result.variables, theme.shadows, 'shadow')\n assignSizeVariables(result.variables, theme.radius, 'radius')\n assignSizeVariables(result.variables, theme.fontWeights, 'font-weight')\n\n theme.colors[theme.primaryColor].forEach((_, index) => {\n result.variables[`--mantine-primary-color-${index}`] =\n `var(--mantine-color-${theme.primaryColor}-${index})`\n })\n\n keys(theme.colors).forEach((color) => {\n const value = theme.colors[color]\n\n if (isVirtualColor(value)) {\n Object.assign(\n result.light!,\n getCSSColorVariables({\n theme,\n color: value.light,\n colorScheme: 'light',\n name: value.name,\n }),\n )\n Object.assign(\n result.dark!,\n getCSSColorVariables({\n theme,\n color: value.dark,\n colorScheme: 'dark',\n name: value.name,\n }),\n )\n return\n }\n\n value.forEach((shade, index) => {\n result.variables[`--mantine-color-${color}-${index}`] = shade\n })\n\n Object.assign(\n result.light!,\n getCSSColorVariables({ theme, color, colorScheme: 'light', withColorValues: false }),\n )\n Object.assign(\n result.dark!,\n getCSSColorVariables({ theme, color, colorScheme: 'dark', withColorValues: false }),\n )\n })\n\n keys(theme.headings.sizes).forEach((heading) => {\n const value = theme.headings.sizes[heading as keyof typeof theme.headings.sizes]\n result.variables[`--mantine-${heading}-font-size`] = value.fontSize\n result.variables[`--mantine-${heading}-line-height`] = value.lineHeight\n result.variables[`--mantine-${heading}-font-weight`] =\n value.fontWeight || theme.headings.fontWeight\n })\n\n return result\n}\n\nexport function getMergedVariables({\n theme,\n generator,\n}: {\n theme: MantineTheme\n generator?: CSSVariablesResolver\n}): ConvertCSSVariablesInput {\n const defaultVariables = defaultCssVariablesResolver(theme)\n\n if (!generator) {\n return defaultVariables\n }\n\n const generatedVariables = generator(theme)\n\n return {\n variables: deepMerge(defaultVariables.variables, generatedVariables.variables || {}),\n light: deepMerge(defaultVariables.light || {}, generatedVariables.light || {}),\n dark: deepMerge(defaultVariables.dark || {}, generatedVariables.dark || {}),\n }\n}\n\nexport function cssVariablesObjectToString(variables: Record<string, string | undefined>) {\n return keys(variables)\n .filter((variable) => variables[variable] !== undefined)\n .map((variable) => `${variable}: ${variables[variable]};`)\n .join('\\n')\n}\n\nexport function convertCssVariables(input: ConvertCSSVariablesInput, selector = ':root') {\n const blocks = [`${selector}{${cssVariablesObjectToString(input.variables)}}`]\n\n if (input.light) {\n blocks.push(\n `${selector}[data-mantine-color-scheme=\"light\"]{${cssVariablesObjectToString(input.light)}}`,\n )\n }\n\n if (input.dark) {\n blocks.push(\n `${selector}[data-mantine-color-scheme=\"dark\"]{${cssVariablesObjectToString(input.dark)}}`,\n )\n }\n\n return blocks.join('\\n')\n}\n","import {\n computed,\n inject,\n onMounted,\n onUnmounted,\n provide,\n ref,\n shallowRef,\n type ComputedRef,\n type InjectionKey,\n type Ref,\n} from 'vue'\nimport type { CSSVariablesResolver } from './css-variables'\nimport type { MantineColorScheme, MantineTheme } from './theme.types'\n\nexport interface MantineStylesTransform {\n sx?: () => (sx: any) => string\n styles?: () => (styles: any, payload: any) => Record<string, string>\n}\n\nexport interface MantineContextValue {\n colorScheme: Ref<MantineColorScheme>\n setColorScheme: (colorScheme: MantineColorScheme) => void\n clearColorScheme: () => void\n getRootElement: () => HTMLElement | undefined\n classNamesPrefix: string\n getStyleNonce?: () => string | undefined\n cssVariablesResolver?: CSSVariablesResolver\n cssVariablesSelector: string\n withStaticClasses: boolean\n headless?: boolean\n stylesTransform?: MantineStylesTransform\n env?: 'default' | 'test'\n deduplicateInlineStyles?: boolean\n}\n\nexport const MantineContextKey = Symbol('MantineContext') as InjectionKey<MantineContextValue>\nexport const MantineThemeKey = Symbol('MantineTheme') as InjectionKey<ComputedRef<MantineTheme>>\n\nexport function provideMantineContext(value: MantineContextValue) {\n provide(MantineContextKey, value)\n}\n\nexport function useMantineContext() {\n const ctx = inject(MantineContextKey, null)\n\n if (!ctx) {\n throw new Error('[@mantine-vue/core] MantineProvider was not found in tree')\n }\n\n return ctx\n}\n\nexport function useMantineCssVariablesResolver() {\n return useMantineContext().cssVariablesResolver\n}\n\nexport function useMantineClassNamesPrefix() {\n return useMantineContext().classNamesPrefix\n}\n\nexport function useMantineStyleNonce() {\n return useMantineContext().getStyleNonce\n}\n\nexport function useMantineWithStaticClasses() {\n return useMantineContext().withStaticClasses\n}\n\nexport function useMantineIsHeadless() {\n return useMantineContext().headless\n}\n\nexport function useMantineEnv() {\n return useMantineContext().env || 'default'\n}\n\nexport function useMantineDeduplicateInlineStyles() {\n return useMantineContext().deduplicateInlineStyles || false\n}\n\nexport function createProviderColorScheme(defaultColorScheme: MantineColorScheme) {\n const colorScheme = ref(defaultColorScheme)\n return {\n colorScheme,\n setColorScheme: (value: MantineColorScheme) => {\n colorScheme.value = value\n },\n clearColorScheme: () => {\n colorScheme.value = defaultColorScheme\n },\n }\n}\n\nexport function provideMantineTheme(theme: ComputedRef<MantineTheme>) {\n provide(MantineThemeKey, theme)\n}\n\nexport function resolveColorScheme(colorScheme: 'light' | 'dark' | 'auto'): 'light' | 'dark' {\n if (colorScheme !== 'auto') {\n return colorScheme\n }\n\n const prefersDark =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-color-scheme: dark)').matches\n\n return prefersDark ? 'dark' : 'light'\n}\n\n// Vue equivalent of @mantine/core's useMantineColorScheme hook: exposes the\n// current (possibly 'auto') color scheme plus setters, backed by the nearest\n// MantineProvider's context.\nexport function useMantineColorScheme() {\n const ctx = useMantineContext()\n return {\n colorScheme: ctx.colorScheme,\n setColorScheme: ctx.setColorScheme,\n clearColorScheme: ctx.clearColorScheme,\n }\n}\n\nexport interface UseComputedColorSchemeOptions {\n getInitialValueInEffect?: boolean\n}\n\n// Vue equivalent of @mantine/core's useComputedColorScheme hook: resolves\n// 'auto' to a concrete 'light' | 'dark' based on the OS color scheme media\n// query, matching the same resolution MantineProvider itself uses to set\n// `data-mantine-color-scheme` on the root element.\nexport function useComputedColorScheme(\n defaultValue: 'light' | 'dark' = 'light',\n options: UseComputedColorSchemeOptions = {},\n) {\n const ctx = useMantineContext()\n const getSystemPreference = () =>\n typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n ? window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n : defaultValue\n\n const systemColorScheme = shallowRef<'light' | 'dark'>(\n options.getInitialValueInEffect ? defaultValue : getSystemPreference(),\n )\n\n let media: MediaQueryList | undefined\n const update = () => {\n systemColorScheme.value = media?.matches ? 'dark' : 'light'\n }\n\n onMounted(() => {\n if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {\n media = window.matchMedia('(prefers-color-scheme: dark)')\n update()\n media.addEventListener('change', update)\n }\n })\n onUnmounted(() => media?.removeEventListener('change', update))\n\n return computed(() =>\n ctx.colorScheme.value === 'auto' ? systemColorScheme.value : ctx.colorScheme.value,\n )\n}\n","import { computed, defineComponent, inject, provide, type PropType } from 'vue'\nimport { DEFAULT_THEME } from './default-theme'\nimport { MantineThemeKey } from './Mantine.context'\nimport { mergeMantineTheme } from './merge-mantine-theme'\nimport type { MantineTheme, MantineThemeOverride } from './theme.types'\n\nexport function useMantineTheme() {\n const ctx = inject(MantineThemeKey, null)\n if (!ctx) {\n throw new Error(\n '@mantine-vue/core: MantineProvider was not found in component tree, make sure you have it in your app',\n )\n }\n\n return ctx\n}\n\nexport function useSafeMantineTheme() {\n return inject(\n MantineThemeKey,\n computed<MantineTheme>(() => DEFAULT_THEME),\n )\n}\n\nexport const MantineThemeProvider = defineComponent({\n name: 'MantineThemeProvider',\n props: {\n inherit: { type: Boolean, default: true },\n theme: { type: Object as PropType<MantineThemeOverride>, default: undefined },\n },\n setup(props, { slots }) {\n const parentTheme = useSafeMantineTheme()\n const mergedTheme = computed(() =>\n mergeMantineTheme(props.inherit ? parentTheme.value : DEFAULT_THEME, props.theme),\n )\n\n provide(MantineThemeKey, mergedTheme)\n return () => slots.default?.()\n },\n})\n","import './baseline.css'\nimport './global.css'\nimport './default-css-variables.css'\nimport { em, keys, px } from '@mantine-vue/utils'\nimport { computed, defineComponent, h, onMounted, onUnmounted, watch, type PropType } from 'vue'\nimport { convertCssVariables, getMergedVariables, type CSSVariablesResolver } from './css-variables'\nimport {\n createProviderColorScheme,\n provideMantineContext,\n resolveColorScheme,\n useMantineContext,\n type MantineStylesTransform,\n} from './Mantine.context'\nimport { MantineThemeProvider, useMantineTheme, useSafeMantineTheme } from './MantineThemeProvider'\nimport type { MantineColorScheme, MantineThemeOverride } from './theme.types'\n\nexport interface MantineProviderProps {\n theme?: MantineThemeOverride\n defaultColorScheme?: MantineColorScheme\n forceColorScheme?: 'light' | 'dark'\n cssVariablesSelector?: string\n withCssVariables?: boolean\n deduplicateCssVariables?: boolean\n getRootElement?: () => HTMLElement | undefined\n classNamesPrefix?: string\n getStyleNonce?: () => string\n cssVariablesResolver?: CSSVariablesResolver\n withStaticClasses?: boolean\n withGlobalClasses?: boolean\n stylesTransform?: MantineStylesTransform\n deduplicateInlineStyles?: boolean\n env?: 'default' | 'test'\n}\n\nfunction defaultRootElement() {\n return typeof document === 'undefined' ? undefined : document.documentElement\n}\n\nexport const MantineProvider = defineComponent({\n name: 'MantineProvider',\n props: {\n theme: { type: Object as PropType<MantineThemeOverride>, default: undefined },\n defaultColorScheme: { type: String as PropType<MantineColorScheme>, default: 'light' },\n forceColorScheme: { type: String as PropType<'light' | 'dark'>, default: undefined },\n cssVariablesSelector: { type: String, default: ':root' },\n withCssVariables: { type: Boolean, default: true },\n deduplicateCssVariables: { type: Boolean, default: true },\n getRootElement: {\n type: Function as PropType<() => HTMLElement | undefined>,\n default: defaultRootElement,\n },\n classNamesPrefix: { type: String, default: 'mantine' },\n getStyleNonce: { type: Function as PropType<() => string>, default: undefined },\n cssVariablesResolver: { type: Function as PropType<CSSVariablesResolver>, default: undefined },\n withStaticClasses: { type: Boolean, default: true },\n withGlobalClasses: { type: Boolean, default: true },\n stylesTransform: { type: Object as PropType<MantineStylesTransform>, default: undefined },\n deduplicateInlineStyles: { type: Boolean, default: false },\n env: { type: String as PropType<'default' | 'test'>, default: 'default' },\n },\n setup(props, { slots }) {\n const providerColorScheme = createProviderColorScheme(\n props.forceColorScheme ?? props.defaultColorScheme,\n )\n\n const setColorScheme = (value: MantineColorScheme) => {\n if (!props.forceColorScheme) {\n providerColorScheme.setColorScheme(value)\n }\n }\n\n provideMantineContext({\n colorScheme: providerColorScheme.colorScheme,\n setColorScheme,\n clearColorScheme: providerColorScheme.clearColorScheme,\n getRootElement: props.getRootElement,\n classNamesPrefix: props.classNamesPrefix,\n getStyleNonce: props.getStyleNonce,\n cssVariablesResolver: props.cssVariablesResolver,\n cssVariablesSelector: props.cssVariablesSelector,\n withStaticClasses: props.withStaticClasses,\n stylesTransform: props.stylesTransform,\n env: props.env,\n deduplicateInlineStyles: props.deduplicateInlineStyles,\n })\n\n const updateRootColorScheme = () =>\n props\n .getRootElement()\n ?.setAttribute(\n 'data-mantine-color-scheme',\n resolveColorScheme(props.forceColorScheme ?? providerColorScheme.colorScheme.value),\n )\n\n onMounted(updateRootColorScheme)\n watch(providerColorScheme.colorScheme, updateRootColorScheme)\n\n let media: MediaQueryList | undefined\n onMounted(() => {\n if (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {\n media = window.matchMedia('(prefers-color-scheme: dark)')\n media.addEventListener('change', updateRootColorScheme)\n }\n })\n onUnmounted(() => media?.removeEventListener('change', updateRootColorScheme))\n\n return () =>\n h(MantineThemeProvider, { theme: props.theme }, () => [\n props.withCssVariables ? h(MantineCssVariables) : null,\n props.withGlobalClasses ? h(MantineClasses) : null,\n slots.default?.(),\n ])\n },\n})\n\nexport const HeadlessMantineProvider = defineComponent({\n name: 'HeadlessMantineProvider',\n props: {\n theme: { type: Object as PropType<MantineThemeOverride>, default: undefined },\n env: { type: String as PropType<'default' | 'test'>, default: 'default' },\n },\n setup(props, { slots }) {\n const colorScheme = createProviderColorScheme('auto')\n provideMantineContext({\n colorScheme: colorScheme.colorScheme,\n setColorScheme: colorScheme.setColorScheme,\n clearColorScheme: colorScheme.clearColorScheme,\n getRootElement: defaultRootElement,\n classNamesPrefix: 'mantine',\n cssVariablesSelector: ':root',\n withStaticClasses: false,\n headless: true,\n env: props.env,\n })\n\n return () => h(MantineThemeProvider, { theme: props.theme }, slots.default)\n },\n})\n\nexport const MantineCssVariables = defineComponent({\n name: 'MantineCssVariables',\n setup() {\n const theme = useSafeMantineTheme()\n const ctx = useMantineContext()\n const styles = computed(() =>\n convertCssVariables(\n getMergedVariables({ theme: theme.value, generator: ctx.cssVariablesResolver }),\n ctx.cssVariablesSelector,\n ),\n )\n\n return () => h('style', { 'data-mantine-styles': true, innerHTML: styles.value })\n },\n})\n\nexport const MantineClasses = defineComponent({\n name: 'MantineClasses',\n setup() {\n const theme = useMantineTheme()\n\n const classes = computed(() =>\n keys(theme.value.breakpoints).reduce<string>((acc, breakpoint) => {\n const isPxBreakpoint = theme.value.breakpoints[breakpoint].includes('px')\n const pxValue = px(theme.value.breakpoints[breakpoint]) as number\n const maxWidthBreakpoint = isPxBreakpoint ? `${pxValue - 0.1}px` : em(pxValue - 0.1)\n const minWidthBreakpoint = isPxBreakpoint ? `${pxValue}px` : em(pxValue)\n\n return `${acc}@media (max-width: ${maxWidthBreakpoint}) {.mantine-visible-from-${breakpoint} {display: none !important;}}@media (min-width: ${minWidthBreakpoint}) {.mantine-hidden-from-${breakpoint} {display: none !important;}}`\n }, ''),\n )\n\n return () => h('style', { 'data-mantine-styles': 'classes', innerHTML: classes.value })\n },\n})\n","import { computed } from 'vue'\nimport { filterProps } from '@mantine-vue/utils'\nimport { useSafeMantineTheme } from './MantineThemeProvider'\n\nexport function useProps<Props extends Record<string, any>>(\n component: string,\n defaultProps: Partial<Props> | null,\n props: Props,\n) {\n const theme = useSafeMantineTheme()\n const resolvedProps = computed(\n () =>\n ({\n ...defaultProps,\n ...theme.value.components[component]?.defaultProps,\n ...filterProps(props),\n }) as Props,\n )\n\n return new Proxy({} as Props, {\n get(_, key) {\n return resolvedProps.value[key as keyof Props]\n },\n has(_, key) {\n return key in resolvedProps.value\n },\n ownKeys() {\n return Reflect.ownKeys(resolvedProps.value)\n },\n getOwnPropertyDescriptor(_, key) {\n return {\n enumerable: true,\n configurable: true,\n value: resolvedProps.value[key as keyof Props],\n }\n },\n })\n}\n","import { computed } from 'vue'\nimport { filterProps } from '@mantine-vue/utils'\nimport {\n useMantineClassNamesPrefix,\n useMantineTheme,\n useMantineWithStaticClasses,\n} from '../MantineProvider'\nimport type { UseStylesInput } from './styles-api.types'\n\nfunction mergeVars(sources: Array<Record<string, any> | undefined>): Record<string, any> {\n return sources.reduce<Record<string, any>>((acc, current) => {\n if (current) {\n Object.keys(current).forEach((key) => {\n acc[key] = { ...acc[key], ...filterProps(current[key] ?? {}) }\n })\n }\n return acc\n }, {})\n}\n\nfunction normalizeStyle(style: any): Record<string, any> {\n if (!style) return {}\n if (Array.isArray(style)) {\n return style.reduce<Record<string, any>>((acc, s) => Object.assign(acc, normalizeStyle(s)), {})\n }\n if (typeof style === 'object') return style\n return {}\n}\n\nfunction resolveRecord<T>(\n value: T | ((theme: any, payload: any) => T) | undefined,\n theme: any,\n payload: any,\n) {\n return typeof value === 'function'\n ? (value as (theme: any, payload: any) => T)(theme, payload)\n : (value ?? {})\n}\n\nconst FOCUS_CLASS_NAMES = {\n always: 'mantine-focus-always',\n auto: 'mantine-focus-auto',\n never: 'mantine-focus-never',\n} as const\n\nexport function useStyles<Payload = any>(input: UseStylesInput<Payload>) {\n const theme = useMantineTheme()\n const classNamesPrefix = useMantineClassNamesPrefix()\n const withStaticClasses = useMantineWithStaticClasses()\n\n const themeNames = computed(\n () => (Array.isArray(input.name) ? input.name : [input.name]).filter(Boolean) as string[],\n )\n const componentThemes = computed(() =>\n themeNames.value.map((name) => theme.value.components[name] ?? {}),\n )\n\n const getResolvedClassNames = () => ({\n ...componentThemes.value.reduce<Record<string, any>>(\n (acc, componentTheme) => ({\n ...acc,\n ...resolveRecord(componentTheme.classNames, theme.value, input.props),\n }),\n {},\n ),\n ...resolveRecord(input.classNames, theme.value, input.props),\n })\n const getResolvedStyles = () => ({\n ...componentThemes.value.reduce<Record<string, any>>(\n (acc, componentTheme) => ({\n ...acc,\n ...resolveRecord(componentTheme.styles, theme.value, input.props),\n }),\n {},\n ),\n ...resolveRecord(input.styles, theme.value, input.props),\n })\n const getResolvedVars = () =>\n mergeVars([\n input.varsResolver?.(theme.value, input.props ?? {}, input.stylesCtx ?? {}),\n ...componentThemes.value.map((componentTheme) =>\n resolveRecord(componentTheme.vars, theme.value, input.props),\n ),\n resolveRecord(input.vars, theme.value, input.props),\n ])\n\n return (\n selector: string,\n options: {\n active?: boolean\n focusable?: boolean\n className?: any\n style?: any\n classNames?: UseStylesInput<Payload>['classNames']\n styles?: UseStylesInput<Payload>['styles']\n props?: Record<string, any>\n variant?: string\n } = {},\n ) => {\n const rootSelector = input.rootSelector ?? 'root'\n const staticClasses = withStaticClasses\n ? themeNames.value.map((name) => `${classNamesPrefix}-${name}-${selector}`)\n : []\n const optionsProps = options.props ?? input.props\n const resolvedClassNames = {\n ...getResolvedClassNames(),\n ...resolveRecord(options.classNames, theme.value, optionsProps),\n }\n const resolvedStyles = {\n ...getResolvedStyles(),\n ...resolveRecord(options.styles, theme.value, optionsProps),\n }\n const resolvedVars = getResolvedVars()\n\n return {\n ...input.attributes?.[selector],\n class: [\n input.unstyled ? null : input.classes?.[selector],\n input.unstyled || !options.variant\n ? null\n : input.classes?.[`${selector}--${options.variant}`],\n ...staticClasses,\n resolvedClassNames[selector],\n selector === rootSelector ? input.className : null,\n options.active && !input.unstyled ? theme.value.activeClassName : null,\n options.focusable && !input.unstyled\n ? theme.value.focusClassName ||\n FOCUS_CLASS_NAMES[theme.value.focusRing as keyof typeof FOCUS_CLASS_NAMES]\n : null,\n options.className,\n ].filter(Boolean),\n style: {\n ...resolvedStyles[selector],\n ...resolvedVars[selector],\n ...(selector === rootSelector ? normalizeStyle(input.style) : {}),\n ...normalizeStyle(options.style),\n },\n }\n }\n}\n","import { computed, defineComponent, h, type PropType } from 'vue'\nimport { cssVariablesObjectToString } from '../MantineProvider'\n\nfunction stylesToString(styles: Record<string, string | number | undefined>) {\n return cssVariablesObjectToString(\n Object.entries(styles).reduce<Record<string, string>>((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = String(value)\n }\n\n return acc\n }, {}),\n )\n}\n\nexport const InlineStyles = defineComponent({\n name: 'InlineStyles',\n props: {\n selector: { type: String, required: true },\n styles: {\n type: Object as PropType<Record<string, string | number | undefined>>,\n default: undefined,\n },\n media: {\n type: Object as PropType<Record<string, Record<string, string | number | undefined>>>,\n default: undefined,\n },\n container: {\n type: Object as PropType<Record<string, Record<string, string | number | undefined>>>,\n default: undefined,\n },\n deduplicate: { type: Boolean, default: false },\n },\n setup(props) {\n const css = computed(() => {\n const blocks: string[] = []\n\n if (props.styles && Object.keys(props.styles).length > 0) {\n blocks.push(`${props.selector}{${stylesToString(props.styles)}}`)\n }\n\n Object.entries(props.media ?? {}).forEach(([query, styles]) => {\n blocks.push(`@media ${query}{${props.selector}{${stylesToString(styles)}}}`)\n })\n\n Object.entries(props.container ?? {}).forEach(([query, styles]) => {\n blocks.push(`@container ${query}{${props.selector}{${stylesToString(styles)}}}`)\n })\n\n return blocks.join('\\n')\n })\n\n return () =>\n h('style', {\n 'data-mantine-inline-styles': true,\n 'data-deduplicate': props.deduplicate || undefined,\n innerHTML: css.value,\n })\n },\n})\n","import { getCurrentInstance, onBeforeUnmount, onMounted, onUpdated, type Ref } from 'vue'\nimport { assignRef, type VueRefTarget } from '@mantine-vue/hooks'\n\n/**\n * Vue has no built-in equivalent of React's `forwardRef`: a `ref` attached to\n * a component (e.g. `<Button ref=\"x\" />`) always resolves to the component's\n * public instance proxy, never to the DOM node it renders.\n *\n * This helper reads the `ref` the *parent* attached to the current component\n * instance and keeps it in sync with `elementRef` -- the component's own ref\n * to its rendered root element -- so the parent's ref ends up pointing at the\n * real DOM node instead, matching React Mantine's `factory()` behavior.\n *\n * It relies on a documented-but-internal detail of Vue 3: whenever a `ref`\n * prop is a string, a `Ref`, or a function, Vue normalizes `vnode.ref` into\n * an `{ i, r, k, f }` descriptor before the component ever sees it, where `r`\n * is the original value the parent passed (see `normalizeRef` in\n * `@vue/runtime-core`'s `vnode.ts`). This shape has been stable across Vue\n * 3.x, but it isn't public API, so treat this as a best-effort forwarder --\n * if a future Vue version changes it, this degrades to a no-op (the ref\n * simply won't forward), not a crash.\n *\n * Usage inside a component's `setup()`, once `elementRef` is bound to the\n * component's real root element:\n *\n * ```ts\n * setup(props, { attrs }) {\n * const elementRef = ref<HTMLDivElement | null>(null)\n * useForwardedRef(elementRef)\n * return () => h('div', { ...attrs, ref: elementRef })\n * }\n * ```\n *\n * For multi-layer components (e.g. `Button` renders `UnstyledButton`, which\n * renders `Box`, which renders the native element), every layer needs to\n * call `useForwardedRef` and attach its own `elementRef` to whatever it\n * renders -- each layer intercepts the ref passed by its parent and\n * re-targets it one level down, the same way React's `forwardRef` calls are\n * threaded explicitly through each wrapper.\n */\nexport function useForwardedRef<T extends Element>(elementRef: Ref<T | null>): void {\n const instance = getCurrentInstance()\n\n const sync = () => {\n const externalRef = getExternalRef<T>(instance?.vnode.ref)\n if (externalRef) {\n assignRef(externalRef, elementRef.value)\n }\n }\n\n // `onUpdated` (not `onBeforeUpdate`) so `elementRef.value` already reflects\n // the DOM node for the just-applied render before we propagate it outward.\n onMounted(sync)\n onUpdated(sync)\n\n // Match React's `ref.current = null` cleanup: clear the external ref when\n // this component unmounts, so consumers relying on the ref becoming null\n // (e.g. to detach observers) still see that transition.\n onBeforeUnmount(() => {\n const externalRef = getExternalRef<T>(instance?.vnode.ref)\n if (externalRef) {\n assignRef(externalRef, null)\n }\n })\n}\n\nfunction getExternalRef<T>(vnodeRef: unknown): VueRefTarget<T> | null {\n if (!vnodeRef) {\n return null\n }\n\n const raw =\n typeof vnodeRef === 'object' && vnodeRef !== null && 'r' in vnodeRef\n ? (vnodeRef as { r: unknown }).r\n : vnodeRef\n\n if (typeof raw === 'function' || (raw !== null && typeof raw === 'object' && 'value' in raw)) {\n return raw as VueRefTarget<T>\n }\n\n return null\n}\n","import { camelToKebabCase, getBreakpointValue, rem } from '@mantine-vue/utils'\nimport { parseThemeColor, type MantineTheme } from '../../MantineProvider'\nimport type { StyleProp } from './style-props.types'\nimport type { StylePropType, SystemPropData } from './style-props-data'\n\nexport interface ParseStylePropsInput {\n styleProps: Record<string, StyleProp<any> | undefined>\n theme: MantineTheme\n data: Record<string, SystemPropData>\n}\n\nfunction colorResolver(value: unknown, theme: MantineTheme, text: boolean) {\n const parsed = parseThemeColor({ color: value, theme })\n if (text && parsed.isThemeColor && parsed.shade === undefined) {\n return `var(--mantine-color-${parsed.color}-text)`\n }\n return parsed.variable ? `var(${parsed.variable})` : parsed.color\n}\n\nfunction resolveValue(value: unknown, type: StylePropType, theme: MantineTheme): unknown {\n if (value === undefined) return undefined\n if (type === 'identity') return value\n if (type === 'size') return typeof value === 'number' ? rem(value) : value\n if (type === 'color') return colorResolver(value, theme, false)\n if (type === 'textColor') return colorResolver(value, theme, true)\n if (type === 'fontFamily') {\n const families: Record<string, string> = {\n text: 'var(--mantine-font-family)',\n mono: 'var(--mantine-font-family-monospace)',\n monospace: 'var(--mantine-font-family-monospace)',\n heading: 'var(--mantine-font-family-headings)',\n headings: 'var(--mantine-font-family-headings)',\n }\n return typeof value === 'string' ? (families[value] ?? value) : value\n }\n if (type === 'fontSize') {\n if (typeof value === 'string' && value in theme.fontSizes) {\n return `var(--mantine-font-size-${value})`\n }\n if (typeof value === 'string' && /^h[1-6]$/.test(value)) {\n return `var(--mantine-${value}-font-size)`\n }\n return rem(value)\n }\n if (type === 'lineHeight') {\n if (typeof value === 'string' && value in theme.lineHeights) {\n return `var(--mantine-line-height-${value})`\n }\n return typeof value === 'string' && /^h[1-6]$/.test(value)\n ? `var(--mantine-${value}-line-height)`\n : value\n }\n if (type === 'radius') {\n return typeof value === 'string' && value in theme.radius\n ? `var(--mantine-radius-${value})`\n : rem(value)\n }\n if (type === 'spacing') {\n if (typeof value === 'string') {\n const key = value.replace('-', '')\n if (key in theme.spacing) {\n const variable = `--mantine-spacing-${key}`\n return value.startsWith('-') ? `calc(var(${variable}) * -1)` : `var(${variable})`\n }\n }\n return rem(value)\n }\n if (type === 'border') {\n if (typeof value === 'number') return rem(value)\n if (typeof value !== 'string') return value\n const [size, style, ...color] = value.split(' ').filter(Boolean)\n return [rem(size), style, color.length ? colorResolver(color.join(' '), theme, false) : null]\n .filter(Boolean)\n .join(' ')\n }\n return value\n}\n\nexport function parseStyleProps({ styleProps, theme, data }: ParseStylePropsInput) {\n const inlineStyles: Record<string, string | number> = {}\n const styles: Record<string, string | number> = {}\n const media: Record<string, Record<string, string | number>> = {}\n\n Object.entries(styleProps).forEach(([prop, value]) => {\n const propData = data[prop]\n\n if (!propData || value === undefined) {\n return\n }\n\n const cssProperty = camelToKebabCase(propData.property)\n\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n const breakpoints = Object.keys(value).filter((breakpoint) => breakpoint !== 'base')\n if (breakpoints.length === 0) {\n const resolved = resolveValue(value.base, propData.type, theme)\n if (resolved !== undefined) inlineStyles[cssProperty] = resolved as string | number\n return\n }\n\n Object.entries(value).forEach(([breakpoint, breakpointValue]) => {\n const resolved = resolveValue(breakpointValue, propData.type, theme)\n\n if (resolved === undefined) {\n return\n }\n\n if (breakpoint === 'base') {\n styles[cssProperty] = resolved as string | number\n return\n }\n\n const breakpointSize = theme.breakpoints[breakpoint] ?? breakpoint\n const query = `(min-width: ${getBreakpointValue(breakpointSize) / 16}em)`\n media[query] = media[query] ?? {}\n media[query][cssProperty] = resolved as string | number\n })\n } else {\n const resolved = resolveValue(value, propData.type, theme)\n if (resolved !== undefined) inlineStyles[cssProperty] = resolved as string | number\n }\n })\n\n const sortedMedia = Object.fromEntries(\n Object.entries(media).sort(([a], [b]) => {\n const aValue = getBreakpointValue(a.replace('(min-width:', '').replace(')', '').trim())\n const bValue = getBreakpointValue(b.replace('(min-width:', '').replace(')', '').trim())\n return aValue - bValue\n }),\n )\n\n return {\n inlineStyles,\n styles,\n media: sortedMedia,\n hasResponsiveStyles: Object.keys(styles).length > 0 || Object.keys(media).length > 0,\n }\n}\n\nexport function hashStyleProps(styles: Record<string, any>, media: Record<string, any>) {\n const input = JSON.stringify({ styles, media })\n let hash = 0\n\n for (let index = 0; index < input.length; index += 1) {\n hash = (hash << 5) - hash + input.charCodeAt(index)\n hash |= 0\n }\n\n return `mantine-vue-${Math.abs(hash).toString(36)}`\n}\n\nexport function useRandomClassName() {\n return `mantine-vue-${Math.random().toString(36).slice(2, 9)}`\n}\n","import type { MantineStyleProps } from './style-props.types'\n\nexport type StylePropType =\n | 'spacing'\n | 'identity'\n | 'border'\n | 'radius'\n | 'color'\n | 'textColor'\n | 'fontFamily'\n | 'fontSize'\n | 'lineHeight'\n | 'size'\n\nexport interface SystemPropData {\n type: StylePropType\n property: string\n}\n\nexport const STYLE_PROPS_DATA: Record<keyof MantineStyleProps, SystemPropData> = {\n m: { type: 'spacing', property: 'margin' },\n mt: { type: 'spacing', property: 'marginTop' },\n mb: { type: 'spacing', property: 'marginBottom' },\n ml: { type: 'spacing', property: 'marginLeft' },\n mr: { type: 'spacing', property: 'marginRight' },\n ms: { type: 'spacing', property: 'marginInlineStart' },\n me: { type: 'spacing', property: 'marginInlineEnd' },\n mis: { type: 'spacing', property: 'marginInlineStart' },\n mie: { type: 'spacing', property: 'marginInlineEnd' },\n mx: { type: 'spacing', property: 'marginInline' },\n my: { type: 'spacing', property: 'marginBlock' },\n p: { type: 'spacing', property: 'padding' },\n pt: { type: 'spacing', property: 'paddingTop' },\n pb: { type: 'spacing', property: 'paddingBottom' },\n pl: { type: 'spacing', property: 'paddingLeft' },\n pr: { type: 'spacing', property: 'paddingRight' },\n ps: { type: 'spacing', property: 'paddingInlineStart' },\n pe: { type: 'spacing', property: 'paddingInlineEnd' },\n pis: { type: 'spacing', property: 'paddingInlineStart' },\n pie: { type: 'spacing', property: 'paddingInlineEnd' },\n px: { type: 'spacing', property: 'paddingInline' },\n py: { type: 'spacing', property: 'paddingBlock' },\n bd: { type: 'border', property: 'border' },\n bdrs: { type: 'radius', property: 'borderRadius' },\n bg: { type: 'color', property: 'background' },\n c: { type: 'textColor', property: 'color' },\n opacity: { type: 'identity', property: 'opacity' },\n ff: { type: 'fontFamily', property: 'fontFamily' },\n fz: { type: 'fontSize', property: 'fontSize' },\n fw: { type: 'identity', property: 'fontWeight' },\n lts: { type: 'size', property: 'letterSpacing' },\n ta: { type: 'identity', property: 'textAlign' },\n lh: { type: 'lineHeight', property: 'lineHeight' },\n fs: { type: 'identity', property: 'fontStyle' },\n tt: { type: 'identity', property: 'textTransform' },\n td: { type: 'identity', property: 'textDecoration' },\n w: { type: 'spacing', property: 'width' },\n miw: { type: 'spacing', property: 'minWidth' },\n maw: { type: 'spacing', property: 'maxWidth' },\n h: { type: 'spacing', property: 'height' },\n mih: { type: 'spacing', property: 'minHeight' },\n mah: { type: 'spacing', property: 'maxHeight' },\n bgsz: { type: 'size', property: 'backgroundSize' },\n bgp: { type: 'identity', property: 'backgroundPosition' },\n bgr: { type: 'identity', property: 'backgroundRepeat' },\n bga: { type: 'identity', property: 'backgroundAttachment' },\n pos: { type: 'identity', property: 'position' },\n top: { type: 'size', property: 'top' },\n left: { type: 'size', property: 'left' },\n bottom: { type: 'size', property: 'bottom' },\n right: { type: 'size', property: 'right' },\n inset: { type: 'size', property: 'inset' },\n display: { type: 'identity', property: 'display' },\n flex: { type: 'identity', property: 'flex' },\n}\n","import { Fragment, defineComponent, h, ref, type Component, type PropType } from 'vue'\nimport { camelToKebabCase, filterProps, isNumberLike } from '@mantine-vue/utils'\nimport { InlineStyles } from '../InlineStyles'\nimport { useSafeMantineTheme } from '../MantineProvider'\nimport { useForwardedRef } from '../factory/use-forwarded-ref'\nimport {\n hashStyleProps,\n parseStyleProps,\n STYLE_PROPS_DATA,\n type MantineStyleProps,\n} from './style-props'\n\nexport interface BoxProps extends MantineStyleProps {\n component?: string | Component\n __size?: string | number\n variant?: string\n size?: string | number\n hiddenFrom?: string\n visibleFrom?: string\n lightHidden?: boolean\n darkHidden?: boolean\n mod?:\n | Record<string, boolean | string | number | undefined>\n | Array<Record<string, boolean | string | number | undefined> | undefined>\n}\n\nfunction styleProp<Key extends keyof MantineStyleProps>() {\n return [String, Number, Object] as unknown as PropType<MantineStyleProps[Key]>\n}\n\nfunction isVueComponent(component: string | Component): component is Component {\n return typeof component !== 'string'\n}\n\nfunction modToAttributes(\n mod: BoxProps['mod'],\n): Record<string, boolean | string | number | undefined> {\n const mods = Array.isArray(mod) ? mod : [mod]\n\n return mods.reduce<Record<string, boolean | string | number | undefined>>((acc, item) => {\n Object.entries(item ?? {}).forEach(([key, value]) => {\n if (value !== false && value !== undefined && value !== null) {\n acc[`data-${camelToKebabCase(key)}`] = value\n }\n })\n return acc\n }, {})\n}\n\nexport const Box = defineComponent({\n name: 'Box',\n inheritAttrs: false,\n props: {\n component: { type: [String, Object, Function] as PropType<string | Component>, default: 'div' },\n __size: [String, Number],\n variant: String,\n size: [String, Number],\n hiddenFrom: String,\n visibleFrom: String,\n lightHidden: Boolean,\n darkHidden: Boolean,\n /** Margin, theme key: theme.spacing */\n m: styleProp<'m'>(),\n /** MarginBlock, theme key: theme.spacing */\n my: styleProp<'my'>(),\n /** MarginInline, theme key: theme.spacing */\n mx: styleProp<'mx'>(),\n /** MarginTop, theme key: theme.spacing */\n mt: styleProp<'mt'>(),\n /** MarginBottom, theme key: theme.spacing */\n mb: styleProp<'mb'>(),\n /** MarginInlineStart, theme key: theme.spacing */\n ms: styleProp<'ms'>(),\n /** MarginInlineEnd, theme key: theme.spacing */\n me: styleProp<'me'>(),\n /** MarginInlineStart, theme key: theme.spacing */\n mis: styleProp<'mis'>(),\n /** MarginInlineEnd, theme key: theme.spacing */\n mie: styleProp<'mie'>(),\n /** MarginLeft, theme key: theme.spacing */\n ml: styleProp<'ml'>(),\n /** MarginRight, theme key: theme.spacing */\n mr: styleProp<'mr'>(),\n /** Padding, theme key: theme.spacing */\n p: styleProp<'p'>(),\n /** PaddingBlock, theme key: theme.spacing */\n py: styleProp<'py'>(),\n /** PaddingInline, theme key: theme.spacing */\n px: styleProp<'px'>(),\n /** PaddingTop, theme key: theme.spacing */\n pt: styleProp<'pt'>(),\n /** PaddingBottom, theme key: theme.spacing */\n pb: styleProp<'pb'>(),\n /** PaddingInlineStart, theme key: theme.spacing */\n ps: styleProp<'ps'>(),\n /** PaddingInlineEnd, theme key: theme.spacing */\n pe: styleProp<'pe'>(),\n /** PaddingInlineStart, theme key: theme.spacing */\n pis: styleProp<'pis'>(),\n /** PaddingInlineEnd, theme key: theme.spacing */\n pie: styleProp<'pie'>(),\n /** PaddingLeft, theme key: theme.spacing */\n pl: styleProp<'pl'>(),\n /** PaddingRight, theme key: theme.spacing */\n pr: styleProp<'pr'>(),\n /** Border */\n bd: styleProp<'bd'>(),\n /** BorderRadius, theme key: theme.radius */\n bdrs: styleProp<'bdrs'>(),\n /** Background, theme key: theme.colors */\n bg: styleProp<'bg'>(),\n /** Color, theme key: theme.colors */\n c: styleProp<'c'>(),\n /** Opacity */\n opacity: styleProp<'opacity'>(),\n /** FontFamily */\n ff: styleProp<'ff'>(),\n /** FontSize, theme key: theme.fontSizes */\n fz: styleProp<'fz'>(),\n /** FontWeight */\n fw: styleProp<'fw'>(),\n /** LetterSpacing */\n lts: styleProp<'lts'>(),\n /** TextAlign */\n ta: styleProp<'ta'>(),\n /** LineHeight, theme key: theme.lineHeights */\n lh: styleProp<'lh'>(),\n /** FontStyle */\n fs: styleProp<'fs'>(),\n /** TextTransform */\n tt: styleProp<'tt'>(),\n /** TextDecoration */\n td: styleProp<'td'>(),\n /** Width, theme key: theme.spacing */\n w: styleProp<'w'>(),\n /** MinWidth, theme key: theme.spacing */\n miw: styleProp<'miw'>(),\n /** MaxWidth, theme key: theme.spacing */\n maw: styleProp<'maw'>(),\n /** Height, theme key: theme.spacing */\n h: styleProp<'h'>(),\n /** MinHeight, theme key: theme.spacing */\n mih: styleProp<'mih'>(),\n /** MaxHeight, theme key: theme.spacing */\n mah: styleProp<'mah'>(),\n /** BackgroundSize */\n bgsz: styleProp<'bgsz'>(),\n /** BackgroundPosition */\n bgp: styleProp<'bgp'>(),\n /** BackgroundRepeat */\n bgr: styleProp<'bgr'>(),\n /** BackgroundAttachment */\n bga: styleProp<'bga'>(),\n /** Position */\n pos: styleProp<'pos'>(),\n /** Top */\n top: styleProp<'top'>(),\n /** Left */\n left: styleProp<'left'>(),\n /** Bottom */\n bottom: styleProp<'bottom'>(),\n /** Right */\n right: styleProp<'right'>(),\n /** Inset */\n inset: styleProp<'inset'>(),\n /** Display */\n display: styleProp<'display'>(),\n /** Flex */\n flex: styleProp<'flex'>(),\n mod: [Object, Array] as PropType<BoxProps['mod']>,\n },\n setup(props, { attrs, slots }) {\n const theme = useSafeMantineTheme()\n const elementRef = ref<Element | null>(null)\n useForwardedRef(elementRef)\n\n return () => {\n const styleProps = Object.keys(STYLE_PROPS_DATA).reduce<Record<string, any>>((acc, key) => {\n acc[key] = props[key as keyof typeof props]\n return acc\n }, {})\n const parsed = parseStyleProps({ styleProps, theme: theme.value, data: STYLE_PROPS_DATA })\n const responsiveClassName = parsed.hasResponsiveStyles\n ? hashStyleProps(parsed.styles, parsed.media)\n : undefined\n const className = [\n attrs.class,\n responsiveClassName,\n {\n 'mantine-light-hidden': props.lightHidden,\n 'mantine-dark-hidden': props.darkHidden,\n [`mantine-hidden-from-${props.hiddenFrom}`]: props.hiddenFrom,\n [`mantine-visible-from-${props.visibleFrom}`]: props.visibleFrom,\n },\n ]\n\n const children = slots.default\n const node = h(\n props.component,\n {\n ...attrs,\n ...modToAttributes(props.mod),\n size: props.__size,\n class: className,\n 'data-variant': (attrs as any)['data-variant'] ?? props.variant,\n 'data-size':\n (attrs as any)['data-size'] ?? (isNumberLike(props.size) ? undefined : props.size),\n style: [filterProps(parsed.inlineStyles), attrs.style],\n ref: elementRef,\n },\n isVueComponent(props.component) && children ? { default: children } : children?.(),\n )\n\n if (!parsed.hasResponsiveStyles) {\n return node\n }\n\n return h(Fragment, null, [\n h(InlineStyles, {\n selector: `.${responsiveClassName}`,\n styles: parsed.styles,\n media: parsed.media,\n }),\n node,\n ])\n }\n },\n})\n","import { defineComponent, h, ref, type PropType } from 'vue'\n\nexport interface VueFactoryPayload<Props extends Record<string, any> = Record<string, any>> {\n name: string\n props?: Record<string, any>\n setup: (\n props: Props,\n ctx: { attrs: Record<string, unknown>; slots: any; emit: any; ref: any },\n ) => any\n}\n\nexport function factory<Props extends Record<string, any>>(payload: VueFactoryPayload<Props>) {\n return defineComponent({\n name: payload.name,\n props: payload.props ?? {},\n setup(props, ctx) {\n const elementRef = ref<HTMLElement | null>(null)\n return () => payload.setup(props as Props, { ...ctx, ref: elementRef })\n },\n })\n}\n\nexport interface FactoryBoxProps {\n component?: string\n class?: any\n style?: any\n}\n\nexport const polymorphicProps = {\n component: { type: String as PropType<string>, default: undefined },\n}\n\nexport function renderPolymorphic(\n component: string | undefined,\n props: Record<string, any>,\n children?: any,\n) {\n return h(component || 'div', props, children)\n}\n","import type { BoxProps } from '../Box'\n\n/**\n * Additively widens a Vue component's template `$props` with `BoxProps` so that\n * Mantine style props (m, mt, p, w, h, bg, c, …) and Box layout props\n * (hiddenFrom, visibleFrom, mod, …) are available for autocomplete/IntelliSense\n * and type-checking.\n *\n * Runtime is untouched: these props already pass through to the underlying Box\n * as fall-through attributes. The merge happens at the instance level\n * (`InstanceType<C> & { $props: BoxProps }`) so the component's own props,\n * slots, emits and static members (e.g. `Group`) are all preserved.\n */\nexport type WithBoxProps<C> = C & {\n new (): (C extends new (...args: any[]) => infer I ? I : object) & { $props: BoxProps }\n}\n\nexport function withBoxProps<C>(component: C): WithBoxProps<C> {\n return component as WithBoxProps<C>\n}\n","import {\n defineComponent,\n inject,\n provide,\n ref,\n type InjectionKey,\n type PropType,\n type Ref,\n} from 'vue'\n\nexport type Direction = 'ltr' | 'rtl'\n\nexport interface DirectionContextValue {\n dir: Ref<Direction>\n setDirection: (dir: Direction) => void\n toggleDirection: () => void\n}\n\nexport const DirectionContextKey = Symbol('DirectionContext') as InjectionKey<DirectionContextValue>\n\nexport function useDirection() {\n return inject(DirectionContextKey, {\n dir: ref<Direction>('ltr'),\n setDirection: () => {},\n toggleDirection: () => {},\n })\n}\n\nexport const DirectionProvider = defineComponent({\n name: 'DirectionProvider',\n props: {\n initialDirection: { type: String as PropType<Direction>, default: 'ltr' },\n },\n setup(props, { slots }) {\n const dir = ref(props.initialDirection)\n const setDirection = (value: Direction) => {\n dir.value = value\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('dir', value)\n }\n }\n\n provide(DirectionContextKey, {\n dir,\n setDirection,\n toggleDirection: () => setDirection(dir.value === 'ltr' ? 'rtl' : 'ltr'),\n })\n\n return () => slots.default?.()\n },\n})\n","export * from './utils'\nexport * from './styles-api'\nexport * from './MantineProvider'\nexport * from './InlineStyles'\nexport * from './Box'\nexport * from './factory'\nexport * from './DirectionProvider'\nexport * from './types'\n",".root {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n width: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box, useProps, useStyles } from '../../core'\nimport classes from './VisuallyHidden.module.css'\n\nexport type VisuallyHiddenStylesNames = 'root'\n\nexport const VisuallyHidden = withBoxProps(\n defineComponent({\n name: 'VisuallyHidden',\n inheritAttrs: false,\n props: {\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('VisuallyHidden', null, rawProps)\n const getStyles = useStyles({\n name: 'VisuallyHidden',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(Box, { component: 'span', ...attrs, ...getStyles('root') }, () => slots.default?.())\n },\n }),\n)\n","import { cloneVNode, defineComponent, h, type PropType, type VNode } from 'vue'\nimport { mergeRefs, useFocusTrap, type VueRefTarget } from '@mantine-vue/hooks'\nimport { VisuallyHidden } from '../VisuallyHidden'\n\nexport interface FocusTrapProps {\n active?: boolean\n refProp?: string\n innerRef?: VueRefTarget<any>\n}\n\nfunction isSingleVNode(children: VNode[]) {\n return children.length === 1 && typeof children[0].type !== 'symbol'\n}\n\nexport const FocusTrapInitialFocus = defineComponent({\n name: 'FocusTrapInitialFocus',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () => h(VisuallyHidden, { ...attrs, tabindex: -1, 'data-autofocus': '' })\n },\n})\n\nconst FocusTrapBase = defineComponent({\n name: 'FocusTrap',\n props: {\n active: { type: Boolean, default: true },\n refProp: { type: String, default: 'ref' },\n innerRef: { type: [Object, Function] as PropType<VueRefTarget<any>>, default: undefined },\n },\n setup(props, { slots }) {\n const focusTrapRef = useFocusTrap(() => props.active)\n\n return () => {\n const children = slots.default?.() ?? []\n\n if (!isSingleVNode(children)) {\n return children\n }\n\n const child = children[0]\n const existingRef = (child as any).ref as VueRefTarget<any>\n const ref = mergeRefs(focusTrapRef, props.innerRef, existingRef)\n\n return cloneVNode(child, { [props.refProp]: ref }, true)\n }\n },\n})\n\nexport const FocusTrap = Object.assign(FocusTrapBase, {\n InitialFocus: FocusTrapInitialFocus,\n})\n","import { defineComponent, h, onBeforeUnmount, onMounted, ref, Teleport, type PropType } from 'vue'\n\nfunction createPortalNode(props: Record<string, any>) {\n const node = document.createElement('div')\n node.setAttribute('data-portal', 'true')\n\n if (typeof props.class === 'string') {\n node.classList.add(...props.class.split(' ').filter(Boolean))\n }\n\n if (typeof props.style === 'object') {\n Object.assign(node.style, props.style)\n }\n\n if (typeof props.id === 'string') {\n node.setAttribute('id', props.id)\n }\n\n return node\n}\n\nfunction getTargetNode({\n target,\n reuseTargetNode,\n props,\n}: {\n target?: HTMLElement | string\n reuseTargetNode: boolean\n props: Record<string, any>\n}) {\n if (target) {\n if (typeof target === 'string') {\n return document.querySelector<HTMLElement>(target) || createPortalNode(props)\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(props)\n node.setAttribute('data-mantine-shared-portal-node', 'true')\n document.body.appendChild(node)\n return node\n }\n\n return createPortalNode(props)\n}\n\nexport const Portal = defineComponent({\n name: 'Portal',\n inheritAttrs: false,\n props: {\n target: { type: [String, Object] as PropType<HTMLElement | string>, default: undefined },\n reuseTargetNode: { type: Boolean, default: true },\n },\n setup(props, { attrs, slots }) {\n const mounted = ref(false)\n const node = ref<HTMLElement | null>(null)\n\n onMounted(() => {\n mounted.value = true\n node.value = getTargetNode({\n target: props.target,\n reuseTargetNode: props.reuseTargetNode,\n props: attrs,\n })\n\n if (!props.target && !props.reuseTargetNode && node.value) {\n document.body.appendChild(node.value)\n }\n })\n\n onBeforeUnmount(() => {\n if (!props.target && !props.reuseTargetNode && node.value?.parentNode) {\n node.value.parentNode.removeChild(node.value)\n }\n })\n\n return () => {\n if (!mounted.value || !node.value) {\n return null\n }\n\n return h(Teleport as any, { to: node.value }, slots.default?.())\n }\n },\n})\n","import { defineComponent, h } from 'vue'\nimport { useMantineEnv } from '../../core'\nimport { Portal } from './Portal'\n\nexport const OptionalPortal = defineComponent({\n name: 'OptionalPortal',\n inheritAttrs: false,\n props: {\n withinPortal: { type: Boolean, default: true },\n target: { type: [String, Object], default: undefined },\n reuseTargetNode: { type: Boolean, default: true },\n },\n setup(props, { attrs, slots }) {\n const env = useMantineEnv()\n\n return () => {\n if (env === 'test' || !props.withinPortal) {\n return slots.default?.()\n }\n\n return h(\n Portal,\n {\n ...attrs,\n target: props.target as any,\n reuseTargetNode: props.reuseTargetNode,\n },\n slots.default,\n )\n }\n },\n})\n",".root {\n background-color: transparent;\n cursor: pointer;\n border: 0;\n padding: 0;\n appearance: none;\n font-size: var(--mantine-font-size-md);\n text-align: start;\n text-decoration: none;\n color: inherit;\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n}\n","import { defineComponent, h, ref } from 'vue'\nimport type { PropType } from 'vue'\nimport { Box, useForwardedRef, useStyles } from '../../core'\nimport classes from './UnstyledButton.module.css'\n\nexport const UnstyledButton = defineComponent({\n name: 'UnstyledButton',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'button' },\n __staticSelector: { type: String, default: undefined },\n variant: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = rawProps\n const getStyles = useStyles({\n name: props.__staticSelector ?? 'UnstyledButton',\n classes,\n props,\n get className() {\n return attrs.class\n },\n get style() {\n return attrs.style as any\n },\n get classNames() {\n return props.classNames as any\n },\n get styles() {\n return props.styles as any\n },\n get vars() {\n return props.vars as any\n },\n get unstyled() {\n return props.unstyled\n },\n })\n const elementRef = ref<HTMLElement | null>(null)\n useForwardedRef(elementRef)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { focusable: true }),\n component: props.component,\n variant: props.variant,\n mod: props.mod,\n type: attrs.type ?? (props.component === 'button' ? 'button' : undefined),\n ref: elementRef,\n },\n () => slots.default?.(),\n )\n },\n})\n",".root {\n --paper-radius: var(--mantine-radius-default);\n\n outline: 0;\n -webkit-tap-highlight-color: transparent;\n display: block;\n touch-action: manipulation;\n text-decoration: none;\n border-radius: var(--paper-radius);\n box-shadow: var(--paper-shadow);\n background-color: var(--mantine-color-body);\n\n @mixin light {\n --paper-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin dark {\n --paper-border-color: var(--mantine-color-dark-4);\n }\n\n &:where([data-with-border]) {\n border: rem(1px) solid var(--paper-border-color);\n }\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getShadow,\n useForwardedRef,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Paper.module.css'\n\nconst varsResolver = createVarsResolver<any>((_, { radius, shadow }) => ({\n root: {\n '--paper-radius': radius === undefined ? undefined : getRadius(radius),\n '--paper-shadow': getShadow(shadow),\n },\n}))\n\nexport const Paper = withBoxProps(\n defineComponent({\n name: 'Paper',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n shadow: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n withBorder: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Paper', null, rawProps)\n const getStyles = useStyles({\n name: 'Paper',\n classes,\n props,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n const elementRef = ref<HTMLElement | null>(null)\n useForwardedRef(elementRef)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: props.component,\n mod: { 'with-border': props.withBorder },\n ref: elementRef,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n inset: 0;\n position: absolute;\n background: var(--overlay-bg, rgba(0, 0, 0, 0.6));\n -webkit-backdrop-filter: var(--overlay-filter);\n backdrop-filter: var(--overlay-filter);\n border-radius: var(--overlay-radius, 0);\n z-index: var(--overlay-z-index);\n\n &:where([data-fixed]) {\n position: fixed;\n }\n\n &:where([data-center]) {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getDefaultZIndex,\n getRadius,\n rem,\n rgba,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Overlay.module.css'\n\nconst defaultProps = {\n zIndex: getDefaultZIndex('modal'),\n}\n\nconst varsResolver = createVarsResolver<any>(\n (_, { gradient, color, backgroundOpacity, blur, radius, zIndex }) => ({\n root: {\n '--overlay-bg':\n gradient ||\n ((color !== undefined || backgroundOpacity !== undefined) &&\n rgba(color || '#000', backgroundOpacity ?? 0.6)) ||\n undefined,\n '--overlay-filter': blur ? `blur(${rem(blur)})` : undefined,\n '--overlay-radius': radius === undefined ? undefined : getRadius(radius),\n '--overlay-z-index': zIndex?.toString(),\n },\n }),\n)\n\nexport const Overlay = withBoxProps(\n defineComponent({\n name: 'Overlay',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n backgroundOpacity: { type: Number, default: undefined },\n color: { type: String, default: undefined },\n blur: [String, Number] as PropType<string | number>,\n gradient: { type: String, default: undefined },\n zIndex: [String, Number] as PropType<string | number>,\n radius: [String, Number] as PropType<string | number>,\n center: { type: Boolean, default: false },\n fixed: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Overlay', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Overlay',\n classes,\n props,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: props.component,\n mod: { center: props.center, fixed: props.fixed },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n --loader-size-xs: 18px;\n --loader-size-sm: 22px;\n --loader-size-md: 36px;\n --loader-size-lg: 44px;\n --loader-size-xl: 58px;\n --loader-size: var(--loader-size-md);\n --loader-color: var(--mantine-primary-color-filled);\n}\n\n/* ----- Bars loader ----- */\n@keyframes bars-loader-animation {\n 0% {\n transform: scale(0.6);\n opacity: 0;\n }\n\n 50%,\n 100% {\n transform: scale(1);\n }\n}\n\n.barsLoader {\n position: relative;\n width: var(--loader-size);\n height: var(--loader-size);\n display: flex;\n gap: calc(var(--loader-size) / 5);\n}\n\n.bar {\n flex: 1;\n background: var(--loader-color);\n animation: bars-loader-animation 1.2s cubic-bezier(0, 0.5, 0.5, 1) infinite;\n border-radius: 2px;\n\n &:nth-of-type(1) {\n animation-delay: -240ms;\n }\n\n &:nth-of-type(2) {\n animation-delay: -120ms;\n }\n\n &:nth-of-type(3) {\n animation-delay: 0;\n }\n}\n\n/* ----- Dots loader ----- */\n@keyframes loader-dots-animation {\n 0%,\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n\n 50% {\n transform: scale(0.6);\n opacity: 0.5;\n }\n}\n\n.dotsLoader {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: calc(var(--loader-size) / 10);\n position: relative;\n width: var(--loader-size);\n height: var(--loader-size);\n}\n\n.dot {\n width: calc(var(--loader-size) / 3 - var(--loader-size) / 15);\n height: calc(var(--loader-size) / 3 - var(--loader-size) / 15);\n border-radius: 50%;\n background: var(--loader-color);\n animation: loader-dots-animation 0.8s infinite linear;\n\n &:nth-child(2) {\n animation-delay: 0.4s;\n }\n}\n\n/* ----- Oval loader ----- */\n@keyframes oval-loader-animation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.ovalLoader {\n display: inline-block;\n width: var(--loader-size);\n height: var(--loader-size);\n\n &::after {\n content: '';\n display: block;\n width: var(--loader-size);\n height: var(--loader-size);\n border-radius: 10000px;\n border-width: calc(var(--loader-size) / 8);\n border-style: solid;\n border-color: var(--loader-color) var(--loader-color) var(--loader-color) transparent;\n animation: oval-loader-animation 1.2s linear infinite;\n }\n}\n","import { defineComponent, h } from 'vue'\nimport { Box } from '../../../core'\nimport classes from '../Loader.module.css'\n\nexport const Bars = defineComponent({\n name: 'Bars',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(Box, { ...attrs, component: 'span', class: [classes.barsLoader, attrs.class] }, () => [\n h('span', { class: classes.bar }),\n h('span', { class: classes.bar }),\n h('span', { class: classes.bar }),\n ])\n },\n})\n","import { defineComponent, h } from 'vue'\nimport { Box } from '../../../core'\nimport classes from '../Loader.module.css'\n\nexport const Dots = defineComponent({\n name: 'Dots',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(Box, { ...attrs, component: 'span', class: [classes.dotsLoader, attrs.class] }, () => [\n h('span', { class: classes.dot }),\n h('span', { class: classes.dot }),\n h('span', { class: classes.dot }),\n ])\n },\n})\n","import { defineComponent, h } from 'vue'\nimport { Box } from '../../../core'\nimport classes from '../Loader.module.css'\n\nexport const Oval = defineComponent({\n name: 'Oval',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () => h(Box, { ...attrs, component: 'span', class: [classes.ovalLoader, attrs.class] })\n },\n})\n","import { defineComponent, h, resolveDynamicComponent, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSize,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../core'\nimport { Bars } from './loaders/Bars'\nimport { Dots } from './loaders/Dots'\nimport { Oval } from './loaders/Oval'\nimport type { MantineLoader, MantineLoadersRecord } from './Loader.types'\nimport classes from './Loader.module.css'\n\nexport const defaultLoaders: MantineLoadersRecord = {\n bars: Bars,\n oval: Oval,\n dots: Dots,\n}\n\nconst defaultProps = {\n loaders: defaultLoaders,\n type: 'oval',\n size: 'md',\n}\n\nconst varsResolver = createVarsResolver<any>((theme, { size, color }) => ({\n root: {\n '--loader-size': getSize(size, 'loader-size'),\n '--loader-color': color ? getThemeColor(color, theme) : undefined,\n },\n}))\n\nexport const Loader = withBoxProps(\n defineComponent({\n name: 'Loader',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n type: { type: String as PropType<MantineLoader>, default: undefined },\n loaders: { type: Object as PropType<MantineLoadersRecord>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Loader', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Loader',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n if (slots.default) {\n return h(Box, { ...attrs, ...getStyles('root') }, () => slots.default?.())\n }\n\n const loaders = props.loaders ?? defaultLoaders\n const type = props.type ?? 'oval'\n const loader = resolveDynamicComponent(loaders[type] ?? defaultLoaders.oval)\n return h(Box, {\n ...attrs,\n ...getStyles('root'),\n component: loader as any,\n size: props.size,\n })\n }\n },\n }),\n)\n",".root {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:where([data-inline]) {\n display: inline-flex;\n }\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box, useProps, useStyles } from '../../core'\nimport classes from './Center.module.css'\n\nexport const Center = withBoxProps(\n defineComponent({\n name: 'Center',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n inline: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Center', null, rawProps)\n const getStyles = useStyles({\n name: 'Center',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.component,\n mod: { inline: props.inline },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n --container-size-xs: 540px;\n --container-size-sm: 720px;\n --container-size-md: 960px;\n --container-size-lg: 1140px;\n --container-size-xl: 1320px;\n --container-size: var(--container-size-md);\n\n &:where([data-strategy='block']) {\n max-width: var(--container-size);\n padding-inline: var(--mantine-spacing-md);\n margin-inline: auto;\n\n &:where([data-fluid]) {\n max-width: 100%;\n }\n }\n\n &:where([data-strategy='grid']) {\n display: grid;\n grid-template-columns: 1fr min(100%, var(--container-size)) 1fr;\n margin-inline: auto;\n\n & > * {\n grid-column: 2;\n }\n\n & > [data-breakout] {\n grid-column: 1 / -1;\n\n & > [data-container] {\n max-width: var(--container-size);\n margin-inline: auto;\n }\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSize, useProps, useStyles } from '../../core'\nimport classes from './Container.module.css'\n\nconst defaultProps = {\n strategy: 'block',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { size, fluid }) => ({\n root: {\n '--container-size': fluid ? undefined : getSize(size, 'container-size'),\n },\n}))\n\nexport const Container = withBoxProps(\n defineComponent({\n name: 'Container',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n fluid: { type: Boolean, default: false },\n strategy: { type: String as PropType<'block' | 'grid'>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Container', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Container',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n mod: { fluid: props.fluid, strategy: props.strategy },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n --ar-ratio: 1;\n max-width: 100%;\n}\n\n.root > :where(*:not(style)) {\n aspect-ratio: var(--ar-ratio);\n width: 100%;\n}\n\n.root > :where(img, video) {\n object-fit: cover;\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, useProps, useStyles } from '../../core'\nimport classes from './AspectRatio.module.css'\n\nconst varsResolver = createVarsResolver<any>((_, { ratio }) => ({\n root: {\n '--ar-ratio': ratio?.toString(),\n },\n}))\n\nexport const AspectRatio = withBoxProps(\n defineComponent({\n name: 'AspectRatio',\n inheritAttrs: false,\n props: {\n ratio: { type: Number, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('AspectRatio', null, rawProps)\n const getStyles = useStyles({\n name: 'AspectRatio',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => h(Box, { ...attrs, ...getStyles('root') }, () => slots.default?.())\n },\n }),\n)\n",".root {\n --divider-size-xs: 1px;\n --divider-size-sm: 2px;\n --divider-size-md: 3px;\n --divider-size-lg: 4px;\n --divider-size-xl: 5px;\n --divider-size: var(--divider-size-xs);\n\n @mixin where-light {\n --divider-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --divider-color: var(--mantine-color-dark-4);\n }\n\n &:where([data-orientation='horizontal']) {\n border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);\n }\n\n &:where([data-orientation='vertical']) {\n border-inline-start: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);\n height: auto;\n align-self: stretch;\n }\n\n &:where([data-with-label]) {\n border: 0;\n }\n}\n\n.label {\n display: flex;\n align-items: center;\n font-size: var(--mantine-font-size-xs);\n color: var(--mantine-color-dimmed);\n white-space: nowrap;\n\n &:where([data-position='left'])::before {\n display: none;\n }\n\n &:where([data-position='right'])::after {\n display: none;\n }\n\n &::before {\n content: '';\n flex: 1;\n height: 1px;\n border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);\n margin-inline-end: var(--mantine-spacing-xs);\n }\n\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);\n margin-inline-start: var(--mantine-spacing-xs);\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSize,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Divider.module.css'\n\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted'\n\nconst defaultProps = {\n orientation: 'horizontal',\n labelPosition: 'center',\n variant: 'solid',\n} as const\n\nconst varsResolver = createVarsResolver<any>((theme, { color, variant, size }) => ({\n root: {\n '--divider-color': color ? getThemeColor(color, theme) : undefined,\n '--divider-border-style': variant,\n '--divider-size': getSize(size, 'divider-size'),\n },\n}))\n\nexport const Divider = withBoxProps(\n defineComponent({\n name: 'Divider',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n size: [String, Number] as PropType<string | number>,\n label: { type: [String, Number, Object, Function], default: undefined },\n labelPosition: { type: String as PropType<'left' | 'center' | 'right'>, default: undefined },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n variant: { type: String as PropType<DividerVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Divider', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Divider',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const label = slots.default?.() ?? props.label\n\n return h(\n Box,\n {\n ...attrs,\n role: 'separator',\n ...getStyles('root'),\n mod: { orientation: props.orientation, withLabel: Boolean(label) },\n },\n () =>\n label\n ? h(\n Box as any,\n {\n component: 'span',\n ...getStyles('label'),\n mod: { position: props.labelPosition },\n },\n () =>\n typeof label === 'string' || typeof label === 'number' ? String(label) : label,\n )\n : undefined,\n )\n }\n },\n }),\n)\n",".root {\n -webkit-tap-highlight-color: transparent;\n text-decoration: none;\n font-size: var(--text-fz, var(--mantine-font-size-md));\n line-height: var(--text-lh, var(--mantine-line-height-md));\n font-weight: var(--mantine-font-weight-regular);\n text-wrap: var(--text-text-wrap, var(--mantine-text-wrap));\n margin: 0;\n padding: 0;\n\n &:where([data-truncate]) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &:where([data-truncate='start']) {\n direction: rtl;\n text-align: end;\n\n @mixin where-rtl {\n direction: ltr;\n text-align: start;\n }\n }\n\n &:where([data-variant='gradient']) {\n background-image: var(--text-gradient);\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n }\n\n &:where([data-line-clamp]) {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: var(--text-line-clamp);\n -webkit-box-orient: vertical;\n }\n\n &:where([data-inherit]) {\n line-height: inherit;\n font-weight: inherit;\n font-size: inherit;\n }\n\n &:where([data-inline]) {\n line-height: 1;\n }\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getGradient,\n getLineHeight,\n useForwardedRef,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Text.module.css'\n\ntype TextTruncate = 'end' | 'start' | boolean\n\nfunction getTextTruncate(truncate: TextTruncate | undefined) {\n if (truncate === 'start') {\n return 'start'\n }\n\n if (truncate === 'end' || truncate) {\n return 'end'\n }\n\n return undefined\n}\n\nconst defaultProps = {\n inherit: false,\n}\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { variant, lineClamp, gradient, size, textWrap }) => ({\n root: {\n '--text-fz': getFontSize(size),\n '--text-lh': getLineHeight(size),\n '--text-gradient': variant === 'gradient' ? getGradient(gradient, theme) : undefined,\n '--text-line-clamp': typeof lineClamp === 'number' ? lineClamp.toString() : undefined,\n '--text-text-wrap': textWrap,\n },\n }),\n)\n\nexport const Text = withBoxProps(\n defineComponent({\n name: 'Text',\n inheritAttrs: false,\n props: {\n component: { type: String, default: undefined },\n __staticSelector: { type: String, default: undefined },\n size: [String, Number] as PropType<string | number>,\n lineClamp: { type: Number, default: undefined },\n truncate: { type: [String, Boolean] as PropType<TextTruncate>, default: undefined },\n inline: { type: Boolean, default: false },\n inherit: { type: Boolean, default: undefined },\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n span: { type: Boolean, default: false },\n textWrap: {\n type: String as PropType<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable'>,\n default: undefined,\n },\n variant: { type: String as PropType<'text' | 'gradient'>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Text', defaultProps, rawProps)\n const getStyles = useStyles({\n name: props.__staticSelector ?? 'Text',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n const elementRef = ref<HTMLElement | null>(null)\n useForwardedRef(elementRef)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.component ?? (props.span ? 'span' : 'p'),\n variant: props.variant,\n mod: [\n {\n truncate: getTextTruncate(props.truncate),\n lineClamp: typeof props.lineClamp === 'number',\n inline: props.inline,\n inherit: props.inherit,\n },\n props.mod,\n ],\n ref: elementRef,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n color: var(--mantine-color-anchor);\n text-decoration: none;\n appearance: none;\n border: none;\n display: inline;\n padding: 0;\n margin: 0;\n background-color: transparent;\n cursor: pointer;\n\n &:where([data-underline='hover']) {\n @mixin hover {\n text-decoration: underline;\n }\n }\n\n &:where([data-underline='not-hover']) {\n text-decoration: underline;\n\n @mixin hover {\n text-decoration: none;\n }\n }\n\n &:where([data-underline='always']) {\n text-decoration: underline;\n }\n\n &:where([data-variant='gradient']) {\n &,\n &:hover {\n text-decoration: none;\n }\n }\n\n &:where([data-line-clamp]) {\n display: -webkit-box;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useProps } from '../../core'\nimport { Text } from '../Text'\nimport classes from './Anchor.module.css'\n\nconst defaultProps = {\n underline: 'hover',\n} as const\n\nexport const Anchor = defineComponent({\n name: 'Anchor',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'a' },\n underline: {\n type: String as PropType<'always' | 'hover' | 'not-hover' | 'never'>,\n default: undefined,\n },\n unstyled: { type: Boolean, default: false },\n variant: { type: String as PropType<'text' | 'gradient'>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Anchor', defaultProps, rawProps)\n\n return () =>\n h(\n Text,\n {\n ...attrs,\n ...props,\n component: props.component,\n class: [props.unstyled ? null : classes.root, attrs.class],\n __staticSelector: 'Anchor',\n mod: { underline: props.underline },\n },\n slots.default,\n )\n },\n})\n","import { rem } from '../../core'\n\nexport type TitleOrder = 1 | 2 | 3 | 4 | 5 | 6\nexport type TitleSize = `h${TitleOrder}` | string | number\n\nconst headings: unknown[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']\nconst sizes: unknown[] = ['xs', 'sm', 'md', 'lg', 'xl']\n\nexport function getTitleSize(order: TitleOrder, size?: TitleSize) {\n const titleSize = size !== undefined ? size : `h${order}`\n\n if (headings.includes(titleSize)) {\n return {\n fontSize: `var(--mantine-${titleSize}-font-size)`,\n fontWeight: `var(--mantine-${titleSize}-font-weight)`,\n lineHeight: `var(--mantine-${titleSize}-line-height)`,\n }\n }\n\n if (sizes.includes(titleSize)) {\n return {\n fontSize: `var(--mantine-font-size-${titleSize})`,\n fontWeight: `var(--mantine-h${order}-font-weight)`,\n lineHeight: `var(--mantine-h${order}-line-height)`,\n }\n }\n\n return {\n fontSize: rem(titleSize),\n fontWeight: `var(--mantine-h${order}-font-weight)`,\n lineHeight: `var(--mantine-h${order}-line-height)`,\n }\n}\n",".root {\n margin: 0;\n font-weight: var(--title-fw);\n font-size: var(--title-fz);\n line-height: var(--title-lh);\n font-family: var(--mantine-font-family-headings);\n text-wrap: var(--title-text-wrap, var(--mantine-heading-text-wrap));\n\n &:where([data-line-clamp]) {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: var(--title-line-clamp);\n -webkit-box-orient: vertical;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, useProps, useStyles } from '../../core'\nimport { getTitleSize, type TitleOrder, type TitleSize } from './get-title-size'\nimport classes from './Title.module.css'\n\nconst defaultProps = {\n order: 1,\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { order, size, lineClamp, textWrap }) => {\n const sizeVariables = getTitleSize(order || 1, size)\n return {\n root: {\n '--title-fw': sizeVariables.fontWeight,\n '--title-lh': sizeVariables.lineHeight,\n '--title-fz': sizeVariables.fontSize,\n '--title-line-clamp': typeof lineClamp === 'number' ? lineClamp.toString() : undefined,\n '--title-text-wrap': textWrap,\n },\n }\n})\n\nexport const Title = withBoxProps(\n defineComponent({\n name: 'Title',\n inheritAttrs: false,\n props: {\n order: { type: Number as PropType<TitleOrder>, default: undefined },\n size: [String, Number] as PropType<TitleSize>,\n lineClamp: { type: Number, default: undefined },\n textWrap: {\n type: String as PropType<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable'>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Title', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Title',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const order = props.order ?? 1\n\n if (![1, 2, 3, 4, 5, 6].includes(order)) {\n return null\n }\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: `h${order}`,\n mod: { order, lineClamp: typeof props.lineClamp === 'number' },\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n",".root {\n font-family: var(--mantine-font-family-monospace);\n line-height: var(--mantine-line-height);\n padding: 2px calc(var(--mantine-spacing-xs) / 2);\n border-radius: var(--mantine-radius-sm);\n font-size: var(--mantine-font-size-xs);\n margin: 0;\n overflow: auto;\n\n @mixin where-light {\n background-color: var(--code-bg, var(--mantine-color-gray-0));\n }\n\n @mixin where-dark {\n background-color: var(--code-bg, var(--mantine-color-dark-6));\n }\n\n &[data-block] {\n padding: var(--mantine-spacing-xs);\n }\n}\n","import { defineComponent, h } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Code.module.css'\n\nconst varsResolver = createVarsResolver<any>((theme, { color }) => ({\n root: {\n '--code-bg': color ? getThemeColor(color, theme) : undefined,\n },\n}))\n\nexport const Code = withBoxProps(\n defineComponent({\n name: 'Code',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n block: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Code', null, rawProps)\n const getStyles = useStyles({\n name: 'Code',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.block ? 'pre' : 'code',\n mod: { block: props.block },\n dir: 'ltr',\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n --kbd-fz-xs: 10px;\n --kbd-fz-sm: 12px;\n --kbd-fz-md: 14px;\n --kbd-fz-lg: 16px;\n --kbd-fz-xl: 20px;\n --kbd-fz: var(--kbd-fz-sm);\n\n font-family: var(--mantine-font-family-monospace);\n line-height: var(--mantine-line-height);\n font-weight: var(--mantine-font-weight-bold);\n font-size: var(--kbd-fz);\n border-radius: var(--mantine-radius-sm);\n border: 1px solid;\n border-bottom-width: 3px;\n unicode-bidi: embed;\n text-align: center;\n padding: 0.12em 0.45em;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n color: var(--mantine-color-gray-7);\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n color: var(--mantine-color-dark-0);\n background-color: var(--mantine-color-dark-6);\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSize, useProps, useStyles } from '../../core'\nimport classes from './Kbd.module.css'\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n root: { '--kbd-fz': getSize(size, 'kbd-fz') },\n}))\n\nexport const Kbd = withBoxProps(\n defineComponent({\n name: 'Kbd',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Kbd', null, rawProps)\n const getStyles = useStyles({\n name: 'Kbd',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(Box, { ...attrs, ...getStyles('root'), component: 'kbd' }, () => slots.default?.())\n },\n }),\n)\n","import { parseThemeColor, type MantineTheme } from '../../core'\n\nexport function getMarkColor({\n color,\n theme,\n defaultShade,\n}: {\n color: string | undefined\n theme: MantineTheme\n defaultShade: number\n}) {\n const parsed = parseThemeColor({ color, theme, colorScheme: 'light' })\n\n if (!parsed.isThemeColor) {\n return color\n }\n\n if (parsed.shade === undefined) {\n return `var(--mantine-color-${parsed.color}-${defaultShade})`\n }\n\n return parsed.value\n}\n",".root {\n color: var(--mantine-color-black);\n\n @mixin where-light {\n background-color: var(--mark-bg-light);\n }\n\n @mixin where-dark {\n background-color: var(--mark-bg-dark);\n }\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, useProps, useStyles } from '../../core'\nimport { getMarkColor } from './get-mark-color'\nimport classes from './Mark.module.css'\n\nconst defaultProps = {\n color: 'yellow',\n}\n\nconst varsResolver = createVarsResolver<any>((theme, { color }) => ({\n root: {\n '--mark-bg-dark': getMarkColor({ color, theme, defaultShade: 5 }),\n '--mark-bg-light': getMarkColor({ color, theme, defaultShade: 2 }),\n },\n}))\n\nexport const Mark = withBoxProps(\n defineComponent({\n name: 'Mark',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Mark', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Mark',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(Box, { ...attrs, ...getStyles('root'), component: 'mark' }, () => slots.default?.())\n },\n }),\n)\n",".root {\n display: block;\n object-fit: var(--image-object-fit, cover);\n width: 100%;\n border-radius: var(--image-radius, 0);\n}\n","import { defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getRadius, useProps, useStyles } from '../../core'\nimport classes from './Image.module.css'\n\nconst varsResolver = createVarsResolver<any>((_, { radius, fit }) => ({\n root: {\n '--image-radius': radius === undefined ? undefined : getRadius(radius),\n '--image-object-fit': fit,\n },\n}))\n\nexport const Image = withBoxProps(\n defineComponent({\n name: 'Image',\n inheritAttrs: false,\n props: {\n src: { type: [String, Object] as PropType<any>, default: undefined },\n fallbackSrc: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n fit: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n emits: ['error'],\n setup(rawProps, { attrs, emit }) {\n const props = useProps('Image', null, rawProps)\n const error = ref(!props.src)\n const getStyles = useStyles({\n name: 'Image',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n watch(\n () => props.src,\n (src) => {\n error.value = !src\n },\n )\n\n return () => {\n const useFallback = error.value && props.fallbackSrc\n\n return h(Box, {\n ...attrs,\n ...getStyles('root'),\n component: 'img',\n src: useFallback ? props.fallbackSrc : props.src,\n mod: { fallback: Boolean(useFallback) },\n onError: (event: Event) => {\n emit('error', event)\n error.value = true\n },\n })\n }\n },\n }),\n)\n",".root {\n background-size: cover;\n background-position: center;\n display: block;\n width: 100%;\n border: 0;\n text-decoration: none;\n border-radius: var(--bi-radius, 0);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getRadius, useProps, useStyles } from '../../core'\nimport classes from './BackgroundImage.module.css'\n\nconst varsResolver = createVarsResolver<any>((_, { radius }) => ({\n root: { '--bi-radius': radius === undefined ? undefined : getRadius(radius) },\n}))\n\nexport const BackgroundImage = withBoxProps(\n defineComponent({\n name: 'BackgroundImage',\n inheritAttrs: false,\n props: {\n src: { type: String, required: true },\n radius: [String, Number] as PropType<string | number>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('BackgroundImage', null, rawProps)\n const getStyles = useStyles({\n name: 'BackgroundImage',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { style: { backgroundImage: `url(${props.src})` } }),\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","@keyframes skeleton-fade {\n 0%,\n 100% {\n opacity: 0.4;\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.root {\n height: var(--skeleton-height, auto);\n width: var(--skeleton-width, 100%);\n border-radius: var(--skeleton-radius, var(--mantine-radius-default));\n position: relative;\n transform: translateZ(0);\n -webkit-transform: translateZ(0);\n\n &:where([data-animate])::after {\n animation: skeleton-fade 1500ms linear infinite;\n }\n\n &:where([data-visible]) {\n overflow: hidden;\n\n &::before {\n position: absolute;\n content: '';\n inset: 0;\n z-index: 10;\n background-color: var(--mantine-color-body);\n }\n\n &::after {\n position: absolute;\n content: '';\n inset: 0;\n z-index: 11;\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Skeleton.module.css'\n\nconst defaultProps = {\n visible: true,\n animate: true,\n}\n\nconst varsResolver = createVarsResolver<any>((_, { width, height, radius, circle }) => ({\n root: {\n '--skeleton-height': rem(height),\n '--skeleton-width': circle ? rem(height) : rem(width),\n '--skeleton-radius': circle ? '1000px' : radius === undefined ? undefined : getRadius(radius),\n },\n}))\n\nexport const Skeleton = withBoxProps(\n defineComponent({\n name: 'Skeleton',\n inheritAttrs: false,\n props: {\n visible: { type: Boolean, default: undefined },\n height: [String, Number] as PropType<string | number>,\n width: [String, Number] as PropType<string | number>,\n circle: { type: Boolean, default: false },\n radius: [String, Number] as PropType<string | number>,\n animate: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Skeleton', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Skeleton',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n mod: { visible: props.visible, animate: props.animate },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n --cs-size: 28px;\n --cs-radius: 1000px;\n\n -webkit-tap-highlight-color: transparent;\n border: none;\n appearance: none;\n display: block;\n line-height: 1;\n position: relative;\n width: var(--cs-size);\n height: var(--cs-size);\n min-width: var(--cs-size);\n min-height: var(--cs-size);\n border-radius: var(--cs-radius);\n color: inherit;\n text-decoration: none;\n\n @mixin light {\n --alpha-overlay-color: var(--mantine-color-gray-3);\n --alpha-overlay-bg: var(--mantine-color-white);\n }\n\n @mixin dark {\n --alpha-overlay-color: var(--mantine-color-dark-4);\n --alpha-overlay-bg: var(--mantine-color-dark-7);\n }\n}\n\n.colorOverlay {\n position: absolute;\n inset: 0;\n border-radius: var(--cs-radius);\n}\n\n.shadowOverlay {\n position: absolute;\n inset: 0;\n border-radius: var(--cs-radius);\n z-index: 1;\n box-shadow:\n rgba(0, 0, 0, 0.1) 0 0 0 rem(1px) inset,\n rgb(0, 0, 0, 0.15) 0 0 rem(4px) inset;\n}\n\n.alphaOverlay {\n position: absolute;\n inset: 0;\n border-radius: var(--cs-radius);\n background-size: 8px 8px;\n background-position:\n 0 0,\n 0 4px,\n 4px -4px,\n -4px 0;\n background-image:\n linear-gradient(45deg, var(--alpha-overlay-color) 25%, transparent 25%),\n linear-gradient(-45deg, var(--alpha-overlay-color) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--alpha-overlay-color) 75%),\n linear-gradient(-45deg, var(--alpha-overlay-bg) 75%, var(--alpha-overlay-color) 75%);\n}\n\n.childrenOverlay {\n position: absolute;\n inset: 0;\n border-radius: var(--cs-radius);\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './ColorSwatch.module.css'\n\nconst defaultProps = {\n withShadow: true,\n}\n\nconst varsResolver = createVarsResolver<any>((_, { radius, size }) => ({\n root: {\n '--cs-radius': radius === undefined ? undefined : getRadius(radius),\n '--cs-size': rem(size),\n },\n}))\n\nexport const ColorSwatch = withBoxProps(\n defineComponent({\n name: 'ColorSwatch',\n inheritAttrs: false,\n props: {\n color: { type: String, required: true },\n size: [String, Number] as PropType<string | number>,\n radius: [String, Number] as PropType<string | number>,\n withShadow: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ColorSwatch', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'ColorSwatch',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(Box, { ...attrs, ...getStyles('root') }, () => [\n h('span', getStyles('alphaOverlay')),\n props.withShadow ? h('span', getStyles('shadowOverlay')) : null,\n h('span', getStyles('colorOverlay', { style: { backgroundColor: props.color } })),\n h('span', getStyles('childrenOverlay'), slots.default?.()),\n ])\n },\n }),\n)\n",".root {\n width: var(--slider-size);\n height: var(--slider-size);\n position: relative;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n --slider-size: 60px;\n --thumb-size: calc(var(--slider-size) / 5);\n\n &:focus-within {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n}\n\n.marks {\n position: absolute;\n inset: 1px;\n border-radius: var(--slider-size);\n pointer-events: none;\n}\n\n.mark {\n width: 2px;\n position: absolute;\n top: 0;\n bottom: 0;\n left: calc(50% - 1px);\n transform: rotate(var(--angle));\n\n &::before {\n content: '';\n position: absolute;\n top: calc(var(--thumb-size) / 3);\n left: 0.5px;\n width: 1px;\n height: calc(var(--thumb-size) / 1.5);\n transform: translate(-50%, -50%);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-4);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-3);\n }\n }\n\n &[data-label]::after {\n min-width: 18px;\n text-align: center;\n content: attr(data-label);\n position: absolute;\n top: -24px;\n left: -7px;\n transform: rotate(calc(360deg - var(--angle)));\n font-size: var(--mantine-font-size-xs);\n }\n}\n\n.thumb {\n position: absolute;\n inset-block: 0;\n inset-inline-start: calc(50% - 1.5px);\n inset-inline-end: 0;\n height: 100%;\n width: 3px;\n outline: none;\n pointer-events: none;\n\n &::before {\n content: '';\n position: absolute;\n right: 0;\n top: 0;\n height: min(var(--thumb-size), calc(var(--slider-size) / 2));\n width: 3px;\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-7);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-1);\n }\n }\n}\n\n.label {\n font-size: var(--mantine-font-size-xs);\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { normalizeRadialValue, useRadialMove, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n findClosestNumber,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './AngleSlider.module.css'\n\nexport type AngleSliderStylesNames = 'root' | 'thumb' | 'label' | 'marks' | 'mark'\nexport type AngleSliderCssVariables = {\n root: '--slider-size' | '--thumb-size'\n}\n\nexport interface AngleSliderMark {\n value: number\n label?: string\n}\n\nexport interface AngleSliderProps {\n step?: number\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n onChangeEnd?: (value: number) => void\n onScrubStart?: () => void\n onScrubEnd?: () => void\n withLabel?: boolean\n marks?: AngleSliderMark[]\n size?: number\n thumbSize?: number\n formatLabel?: (value: number) => any\n disabled?: boolean\n restrictToMarks?: boolean\n hiddenInputProps?: Record<string, any>\n name?: string\n classNames?: Record<string, string> | ((theme: any, props: any) => Record<string, string>)\n styles?: Record<string, any> | ((theme: any, props: any) => Record<string, any>)\n vars?:\n | Record<string, Record<string, string | undefined>>\n | ((theme: any, props: any) => Record<string, Record<string, string | undefined>>)\n unstyled?: boolean\n}\n\nconst defaultProps = {\n step: 1,\n withLabel: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { size, thumbSize }) => ({\n root: {\n '--slider-size': size === undefined ? undefined : rem(size),\n '--thumb-size': thumbSize === undefined ? undefined : rem(thumbSize),\n },\n}))\n\nexport const AngleSlider = withBoxProps(\n defineComponent({\n name: 'AngleSlider',\n inheritAttrs: false,\n props: {\n step: { type: Number, default: undefined },\n value: { type: Number, default: undefined },\n defaultValue: { type: Number, default: undefined },\n onChange: { type: Function as PropType<(value: number) => void>, default: undefined },\n onChangeEnd: { type: Function as PropType<(value: number) => void>, default: undefined },\n onScrubStart: { type: Function as PropType<() => void>, default: undefined },\n onScrubEnd: { type: Function as PropType<() => void>, default: undefined },\n withLabel: { type: Boolean, default: undefined },\n marks: { type: Array as PropType<AngleSliderMark[]>, default: undefined },\n size: { type: Number, default: undefined },\n thumbSize: { type: Number, default: undefined },\n formatLabel: { type: Function as PropType<(value: number) => any>, default: undefined },\n disabled: { type: Boolean, default: false },\n restrictToMarks: { type: Boolean, default: false },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n name: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('AngleSlider', defaultProps, rawProps)\n const rootRef = ref<HTMLDivElement | null>(null)\n const [value, setValue] = useUncontrolled<number>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: 0,\n onChange: props.onChange,\n })\n\n const update = (nextValue: number) => {\n if (!rootRef.value || props.disabled) {\n return\n }\n\n const resolved =\n props.restrictToMarks && Array.isArray(props.marks)\n ? findClosestNumber(\n nextValue,\n props.marks.map((mark) => mark.value),\n )\n : nextValue\n\n setValue(resolved)\n }\n\n const radialMove = useRadialMove(update, {\n step: props.step,\n onChangeEnd: props.onChangeEnd,\n onScrubStart: props.onScrubStart,\n onScrubEnd: props.onScrubEnd,\n })\n\n const getStyles = useStyles({\n name: 'AngleSlider',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n const setRootRef = (node: any) => {\n const element = node?.$el ?? node ?? null\n rootRef.value = element\n radialMove.ref(element)\n }\n\n const setKeyboardValue = (nextValue: number) => {\n const resolved =\n props.restrictToMarks && Array.isArray(props.marks)\n ? findClosestNumber(\n nextValue,\n props.marks.map((mark) => mark.value),\n )\n : nextValue\n\n setValue(resolved)\n props.onChangeEnd?.(resolved)\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return\n }\n\n const step = props.step ?? defaultProps.step\n let nextValue = value.value\n\n if (event.key === 'ArrowLeft' || event.key === 'ArrowDown') {\n event.preventDefault()\n nextValue = value.value === 0 ? 359 : normalizeRadialValue(value.value - step, step)\n }\n\n if (event.key === 'ArrowRight' || event.key === 'ArrowUp') {\n event.preventDefault()\n nextValue = value.value === 359 ? 0 : normalizeRadialValue(value.value + step, step)\n }\n\n if (event.key === 'Home') {\n nextValue = 0\n }\n\n if (event.key === 'End') {\n nextValue = 359\n }\n\n if (props.restrictToMarks && Array.isArray(props.marks)) {\n const markValues = props.marks.map((mark) => mark.value)\n const currentIndex = markValues.indexOf(value.value)\n\n if (currentIndex !== -1) {\n if (event.key === 'ArrowLeft' || event.key === 'ArrowDown') {\n nextValue = markValues[currentIndex === 0 ? markValues.length - 1 : currentIndex - 1]\n } else if (event.key === 'ArrowRight' || event.key === 'ArrowUp') {\n nextValue = markValues[currentIndex === markValues.length - 1 ? 0 : currentIndex + 1]\n } else {\n nextValue = findClosestNumber(nextValue, markValues)\n }\n } else {\n nextValue = findClosestNumber(nextValue, markValues)\n }\n }\n\n setKeyboardValue(nextValue)\n }\n\n return () => {\n const marks = props.marks?.map((mark, index) =>\n h('div', {\n key: index,\n ...getStyles('mark', { style: { '--angle': `${mark.value}deg` } }),\n 'data-label': mark.label || undefined,\n }),\n )\n\n return h(\n Box,\n {\n ...attrs,\n ref: setRootRef,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n mod: { disabled: props.disabled },\n },\n () => [\n marks && marks.length > 0 ? h('div', getStyles('marks'), marks) : null,\n props.withLabel\n ? h(\n 'div',\n getStyles('label'),\n props.formatLabel ? props.formatLabel(value.value) : value.value,\n )\n : null,\n h('div', {\n tabindex: attrs.tabindex ?? (props.disabled ? -1 : 0),\n role: 'slider',\n 'aria-valuemax': 360,\n 'aria-valuemin': 0,\n 'aria-valuenow': value.value,\n 'aria-label': attrs['aria-label'],\n onKeydown: handleKeyDown,\n ...getStyles('thumb', { style: { transform: `rotate(${value.value}deg)` } }),\n }),\n h('input', {\n ...props.hiddenInputProps,\n type: 'hidden',\n name: props.name,\n value: value.value,\n }),\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(AngleSlider, { classes, varsResolver })\n",".root {\n --badge-height-xs: 16px;\n --badge-height-sm: 18px;\n --badge-height-md: 20px;\n --badge-height-lg: 26px;\n --badge-height-xl: 32px;\n\n --badge-fz-xs: 9px;\n --badge-fz-sm: 10px;\n --badge-fz-md: 11px;\n --badge-fz-lg: 13px;\n --badge-fz-xl: 16px;\n\n --badge-padding-x-xs: 6px;\n --badge-padding-x-sm: 8px;\n --badge-padding-x-md: 10px;\n --badge-padding-x-lg: 12px;\n --badge-padding-x-xl: 16px;\n\n --badge-height: var(--badge-height-md);\n --badge-fz: var(--badge-fz-md);\n --badge-padding-x: var(--badge-padding-x-md);\n --badge-radius: 1000px;\n --badge-lh: calc(var(--badge-height) - rem(2px));\n --badge-color: var(--mantine-color-white);\n --badge-bg: var(--mantine-primary-color-filled);\n --badge-border-width: 1px;\n --badge-bd: var(--badge-border-width) solid transparent;\n\n -webkit-tap-highlight-color: transparent;\n font-size: var(--badge-fz);\n border-radius: var(--badge-radius);\n height: var(--badge-height);\n line-height: var(--badge-lh);\n text-decoration: none;\n padding: 0 var(--badge-padding-x);\n display: inline-grid;\n align-items: center;\n justify-content: center;\n width: fit-content;\n text-transform: uppercase;\n font-weight: var(--mantine-font-weight-bold);\n letter-spacing: 0.25px;\n cursor: default;\n text-overflow: ellipsis;\n overflow: hidden;\n color: var(--badge-color);\n background: var(--badge-bg);\n border: var(--badge-bd);\n\n &:where([data-with-left-section]),\n &:where([data-variant='dot']) {\n grid-template-columns: auto 1fr;\n }\n\n &:where([data-with-right-section]) {\n grid-template-columns: 1fr auto;\n }\n\n &:where([data-with-left-section][data-with-right-section]),\n &:where([data-variant='dot'][data-with-right-section]) {\n grid-template-columns: auto 1fr auto;\n }\n\n &:where([data-block]) {\n display: flex;\n width: 100%;\n }\n\n &:where([data-circle]) {\n padding-inline: 2px;\n display: flex;\n width: var(--badge-height);\n }\n\n &:where([data-variant='dot']) {\n --badge-dot-size: calc(var(--badge-height) / 3.4);\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border-color: var(--mantine-color-gray-4);\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n border-color: var(--mantine-color-dark-5);\n color: var(--mantine-color-white);\n }\n\n &::before {\n content: '';\n display: block;\n width: var(--badge-dot-size);\n height: var(--badge-dot-size);\n border-radius: var(--badge-dot-size);\n background-color: var(--badge-dot-color);\n margin-inline-end: var(--badge-dot-size);\n }\n }\n}\n\n.label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n cursor: inherit;\n}\n\n.section {\n --badge-section-margin: calc(var(--mantine-spacing-xs) / 2);\n\n display: inline-flex;\n justify-content: center;\n align-items: center;\n max-height: calc(var(--badge-height) - var(--badge-border-width) * 2);\n\n &:where([data-position='left']) {\n margin-inline-end: var(--badge-section-margin);\n }\n\n &:where([data-position='right']) {\n margin-inline-start: var(--badge-section-margin);\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Badge.module.css'\n\nexport type BadgeVariant =\n | 'filled'\n | 'light'\n | 'outline'\n | 'dot'\n | 'transparent'\n | 'white'\n | 'default'\n | 'gradient'\n | (string & {})\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, gradient, variant, size, autoContrast, circle }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n gradient,\n variant: variant || 'filled',\n autoContrast,\n })\n\n return {\n root: {\n '--badge-height': getSize(size, 'badge-height'),\n '--badge-padding-x': getSize(size, 'badge-padding-x'),\n '--badge-fz': getSize(size, 'badge-fz'),\n '--badge-radius': circle || radius === undefined ? undefined : getRadius(radius),\n '--badge-bg': color || variant ? colors.background : undefined,\n '--badge-color': color || variant ? colors.color : undefined,\n '--badge-bd': color || variant ? colors.border : undefined,\n '--badge-dot-color': variant === 'dot' ? getThemeColor(color, theme) : undefined,\n },\n }\n },\n)\n\nexport const Badge = withBoxProps(\n defineComponent({\n name: 'Badge',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n size: [String, Number] as PropType<string | number>,\n circle: { type: Boolean, default: false },\n radius: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n leftSection: { type: [String, Number, Object, Function], default: undefined },\n rightSection: { type: [String, Number, Object, Function], default: undefined },\n fullWidth: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<BadgeVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Badge', null, rawProps)\n const getStyles = useStyles({\n name: 'Badge',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n const renderSection = (section: any, position: 'left' | 'right') =>\n section\n ? h(\n 'span',\n {\n ...getStyles('section'),\n 'data-position': position,\n },\n typeof section === 'function' ? section() : section,\n )\n : null\n\n return () => {\n const children = slots.default?.()\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.component,\n variant: props.variant,\n mod: {\n block: props.fullWidth,\n circle: props.circle,\n withRightSection: Boolean(props.rightSection),\n withLeftSection: Boolean(props.leftSection),\n },\n },\n () => [\n renderSection(props.leftSection, 'left'),\n h('span', getStyles('label'), children),\n renderSection(props.rightSection, 'right'),\n ],\n )\n }\n },\n }),\n)\n",".root {\n --ti-size-xs: 18px;\n --ti-size-sm: 22px;\n --ti-size-md: 28px;\n --ti-size-lg: 34px;\n --ti-size-xl: 44px;\n --ti-size: var(--ti-size-md);\n\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n user-select: none;\n\n width: var(--ti-size);\n height: var(--ti-size);\n min-width: var(--ti-size);\n min-height: var(--ti-size);\n border-radius: var(--ti-radius, var(--mantine-radius-default));\n background: var(--ti-bg, var(--mantine-primary-color-filled));\n color: var(--ti-color, var(--mantine-color-white));\n border: var(--ti-bd, 1px solid transparent);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './ThemeIcon.module.css'\n\nexport type ThemeIconVariant =\n | 'filled'\n | 'light'\n | 'outline'\n | 'transparent'\n | 'white'\n | 'default'\n | 'gradient'\n | (string & {})\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { size, radius, variant, gradient, color, autoContrast }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n gradient,\n variant: variant || 'filled',\n autoContrast,\n })\n\n return {\n root: {\n '--ti-size': getSize(size, 'ti-size'),\n '--ti-radius': radius === undefined ? undefined : getRadius(radius),\n '--ti-bg': color || variant ? colors.background : undefined,\n '--ti-color': color || variant ? colors.color : undefined,\n '--ti-bd': color || variant ? colors.border : undefined,\n },\n }\n },\n)\n\nexport const ThemeIcon = withBoxProps(\n defineComponent({\n name: 'ThemeIcon',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<ThemeIconVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ThemeIcon', null, rawProps)\n const getStyles = useStyles({\n name: 'ThemeIcon',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n variant: props.variant,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import type { CSSProperties } from 'vue'\n\nexport interface MantineTransitionStyles {\n common?: CSSProperties\n in: CSSProperties\n out: CSSProperties\n transitionProperty: CSSProperties['transitionProperty']\n}\n\nexport type MantineTransitionName =\n | 'fade'\n | 'fade-down'\n | 'fade-up'\n | 'fade-left'\n | 'fade-right'\n | 'skew-up'\n | 'skew-down'\n | 'rotate-right'\n | 'rotate-left'\n | 'slide-down'\n | 'slide-up'\n | 'slide-right'\n | 'slide-left'\n | 'scale-y'\n | 'scale-x'\n | 'scale'\n | 'pop'\n | 'pop-top-left'\n | 'pop-top-right'\n | 'pop-bottom-left'\n | 'pop-bottom-right'\n\nexport type MantineTransition = MantineTransitionName | MantineTransitionStyles\n\nconst popIn = (from: 'top' | 'bottom') => ({\n in: { opacity: 1, transform: 'scale(1)' },\n out: { opacity: 0, transform: `scale(.9) translateY(${from === 'bottom' ? 10 : -10}px)` },\n transitionProperty: 'transform, opacity',\n})\n\nexport const transitions: Record<MantineTransitionName, MantineTransitionStyles> = {\n fade: {\n in: { opacity: 1 },\n out: { opacity: 0 },\n transitionProperty: 'opacity',\n },\n\n 'fade-up': {\n in: { opacity: 1, transform: 'translateY(0)' },\n out: { opacity: 0, transform: 'translateY(30px)' },\n transitionProperty: 'opacity, transform',\n },\n\n 'fade-down': {\n in: { opacity: 1, transform: 'translateY(0)' },\n out: { opacity: 0, transform: 'translateY(-30px)' },\n transitionProperty: 'opacity, transform',\n },\n\n 'fade-left': {\n in: { opacity: 1, transform: 'translateX(0)' },\n out: { opacity: 0, transform: 'translateX(30px)' },\n transitionProperty: 'opacity, transform',\n },\n\n 'fade-right': {\n in: { opacity: 1, transform: 'translateX(0)' },\n out: { opacity: 0, transform: 'translateX(-30px)' },\n transitionProperty: 'opacity, transform',\n },\n\n scale: {\n in: { opacity: 1, transform: 'scale(1)' },\n out: { opacity: 0, transform: 'scale(0)' },\n common: { transformOrigin: 'top' },\n transitionProperty: 'transform, opacity',\n },\n\n 'scale-y': {\n in: { opacity: 1, transform: 'scaleY(1)' },\n out: { opacity: 0, transform: 'scaleY(0)' },\n common: { transformOrigin: 'top' },\n transitionProperty: 'transform, opacity',\n },\n\n 'scale-x': {\n in: { opacity: 1, transform: 'scaleX(1)' },\n out: { opacity: 0, transform: 'scaleX(0)' },\n common: { transformOrigin: 'left' },\n transitionProperty: 'transform, opacity',\n },\n\n 'skew-up': {\n in: { opacity: 1, transform: 'translateY(0) skew(0deg, 0deg)' },\n out: { opacity: 0, transform: 'translateY(-20px) skew(-10deg, -5deg)' },\n common: { transformOrigin: 'top' },\n transitionProperty: 'transform, opacity',\n },\n\n 'skew-down': {\n in: { opacity: 1, transform: 'translateY(0) skew(0deg, 0deg)' },\n out: { opacity: 0, transform: 'translateY(20px) skew(-10deg, -5deg)' },\n common: { transformOrigin: 'bottom' },\n transitionProperty: 'transform, opacity',\n },\n\n 'rotate-left': {\n in: { opacity: 1, transform: 'translateY(0) rotate(0deg)' },\n out: { opacity: 0, transform: 'translateY(20px) rotate(-5deg)' },\n common: { transformOrigin: 'bottom' },\n transitionProperty: 'transform, opacity',\n },\n\n 'rotate-right': {\n in: { opacity: 1, transform: 'translateY(0) rotate(0deg)' },\n out: { opacity: 0, transform: 'translateY(20px) rotate(5deg)' },\n common: { transformOrigin: 'top' },\n transitionProperty: 'transform, opacity',\n },\n\n 'slide-down': {\n in: { opacity: 1, transform: 'translateY(0)' },\n out: { opacity: 0, transform: 'translateY(-100%)' },\n common: { transformOrigin: 'top' },\n transitionProperty: 'transform, opacity',\n },\n\n 'slide-up': {\n in: { opacity: 1, transform: 'translateY(0)' },\n out: { opacity: 0, transform: 'translateY(100%)' },\n common: { transformOrigin: 'bottom' },\n transitionProperty: 'transform, opacity',\n },\n\n 'slide-left': {\n in: { opacity: 1, transform: 'translateX(0)' },\n out: { opacity: 0, transform: 'translateX(100%)' },\n common: { transformOrigin: 'left' },\n transitionProperty: 'transform, opacity',\n },\n\n 'slide-right': {\n in: { opacity: 1, transform: 'translateX(0)' },\n out: { opacity: 0, transform: 'translateX(-100%)' },\n common: { transformOrigin: 'right' },\n transitionProperty: 'transform, opacity',\n },\n\n pop: {\n ...popIn('bottom'),\n common: { transformOrigin: 'center center' },\n },\n\n 'pop-bottom-left': {\n ...popIn('bottom'),\n common: { transformOrigin: 'bottom left' },\n },\n\n 'pop-bottom-right': {\n ...popIn('bottom'),\n common: { transformOrigin: 'bottom right' },\n },\n\n 'pop-top-left': {\n ...popIn('top'),\n common: { transformOrigin: 'top left' },\n },\n\n 'pop-top-right': {\n ...popIn('top'),\n common: { transformOrigin: 'top right' },\n },\n}\n","import type { CSSProperties } from 'vue'\nimport { transitions, type MantineTransition } from './transitions'\n\nexport type TransitionStatus =\n | 'entered'\n | 'exited'\n | 'entering'\n | 'exiting'\n | 'pre-exiting'\n | 'pre-entering'\n\nconst transitionStatuses: Record<TransitionStatus, 'in' | 'out'> = {\n entering: 'in',\n entered: 'in',\n exiting: 'out',\n exited: 'out',\n 'pre-exiting': 'out',\n 'pre-entering': 'out',\n}\n\nexport function getTransitionStyles({\n transition,\n state,\n duration,\n timingFunction,\n}: {\n transition: MantineTransition\n state: TransitionStatus\n duration: number\n timingFunction: CSSProperties['transitionTimingFunction']\n}): CSSProperties {\n const shared: CSSProperties = {\n WebkitBackfaceVisibility: 'hidden',\n transitionDuration: `${duration}ms`,\n transitionTimingFunction: timingFunction,\n }\n\n if (typeof transition === 'string') {\n if (!(transition in transitions)) {\n return {}\n }\n\n return {\n transitionProperty: transitions[transition].transitionProperty,\n ...shared,\n ...transitions[transition].common,\n ...transitions[transition][transitionStatuses[state]],\n }\n }\n\n return {\n transitionProperty: transition.transitionProperty,\n ...shared,\n ...transition.common,\n ...transition[transitionStatuses[state]],\n }\n}\n","import { computed, nextTick, onBeforeUnmount, ref, watch } from 'vue'\nimport { useReducedMotion } from '@mantine-vue/hooks'\nimport { useMantineTheme } from '../../core'\nimport type { TransitionStatus } from './get-transition-styles'\n\nexport interface UseTransitionInput {\n mounted: () => boolean\n duration: () => number\n exitDuration: () => number\n timingFunction: () => string\n onEnter?: () => void\n onExit?: () => void\n onEntered?: () => void\n onExited?: () => void\n enterDelay?: () => number | undefined\n exitDelay?: () => number | undefined\n}\n\nfunction forceReflow() {\n if (typeof document === 'undefined' || !document.documentElement) return\n void document.documentElement.offsetHeight\n}\n\nexport function useTransition({\n mounted,\n duration,\n exitDuration,\n timingFunction,\n onEnter,\n onExit,\n onEntered,\n onExited,\n enterDelay,\n exitDelay,\n}: UseTransitionInput) {\n const theme = useMantineTheme()\n const shouldReduceMotion = useReducedMotion()\n const reduceMotion = () => Boolean(theme.value.respectReducedMotion && shouldReduceMotion.value)\n\n const transitionDuration = ref(reduceMotion() ? 0 : duration())\n const transitionStatus = ref<TransitionStatus>(mounted() ? 'entered' : 'exited')\n\n let transitionTimeout = -1\n let delayTimeout = -1\n let generation = 0\n\n function clearAllTimeouts() {\n generation += 1\n if (typeof window === 'undefined') return\n window.clearTimeout(transitionTimeout)\n window.clearTimeout(delayTimeout)\n }\n\n async function handleStateChange(shouldMount: boolean) {\n clearAllTimeouts()\n const runId = generation\n const preHandler = shouldMount ? onEnter : onExit\n const handler = shouldMount ? onEntered : onExited\n const newTransitionDuration = reduceMotion() ? 0 : shouldMount ? duration() : exitDuration()\n transitionDuration.value = newTransitionDuration\n\n if (typeof window === 'undefined' || newTransitionDuration === 0) {\n preHandler?.()\n handler?.()\n transitionStatus.value = shouldMount ? 'entered' : 'exited'\n return\n }\n\n if (shouldMount) {\n // Entering: the element doesn't exist yet, so it needs to be painted at the\n // \"out\" (hidden) style first. Wait for Vue to actually patch the DOM with\n // that style, force a synchronous reflow so the browser commits it, then\n // flip to the target style — the property change now animates via the\n // transition-property/duration that was already declared on this paint.\n transitionStatus.value = 'pre-entering'\n\n await nextTick()\n if (runId !== generation) return\n forceReflow()\n if (runId !== generation) return\n preHandler?.()\n transitionStatus.value = 'entering'\n } else {\n // Exiting: the element already exists and is currently visible with\n // transition-property already active from the last render, so simply\n // changing the style value is enough to trigger the animation — no\n // baseline frame is needed.\n preHandler?.()\n transitionStatus.value = 'exiting'\n }\n\n transitionTimeout = window.setTimeout(() => {\n if (runId !== generation) return\n handler?.()\n transitionStatus.value = shouldMount ? 'entered' : 'exited'\n }, newTransitionDuration)\n }\n\n function handleTransitionWithDelay(shouldMount: boolean) {\n clearAllTimeouts()\n const runId = generation\n const delay = shouldMount ? enterDelay?.() : exitDelay?.()\n\n if (typeof window === 'undefined' || typeof delay !== 'number') {\n handleStateChange(shouldMount)\n return\n }\n\n delayTimeout = window.setTimeout(() => {\n if (runId !== generation) return\n handleStateChange(shouldMount)\n }, delay)\n }\n\n watch(mounted, (value, oldValue) => {\n if (value !== oldValue) handleTransitionWithDelay(value)\n })\n\n onBeforeUnmount(clearAllTimeouts)\n\n return {\n transitionDuration,\n transitionStatus,\n transitionTimingFunction: computed(() => timingFunction() || 'ease'),\n }\n}\n","import {\n defineComponent,\n type CSSProperties,\n type PropType,\n type SlotsType,\n type VNodeChild,\n} from 'vue'\nimport { useMantineEnv } from '../../core'\nimport { getTransitionStyles } from './get-transition-styles'\nimport type { MantineTransition } from './transitions'\nimport { useTransition } from './use-transition'\n\nexport type { MantineTransition } from './transitions'\n\nexport interface TransitionSlots {\n default?: (styles: CSSProperties) => VNodeChild\n}\n\nexport interface TransitionProps {\n /** If set, the element is kept in the DOM when hidden */\n keepMounted?: boolean\n\n /** Transition name or object */\n transition?: MantineTransition\n\n /** Transition duration in ms @default 250 */\n duration?: number\n\n /** Exit transition duration in ms @default duration */\n exitDuration?: number\n\n /** Transition timing function @default theme.transitionTimingFunction */\n timingFunction?: string\n\n /** Determines whether component should be mounted to the DOM */\n mounted: boolean\n\n /** Delay in ms before enter transition starts */\n enterDelay?: number\n\n /** Delay in ms before exit transition starts */\n exitDelay?: number\n}\n\nexport const Transition = defineComponent({\n name: 'MantineTransition',\n slots: Object as SlotsType<TransitionSlots>,\n props: {\n keepMounted: { type: Boolean, default: false },\n transition: { type: [String, Object] as PropType<MantineTransition>, default: 'fade' },\n duration: { type: Number, default: 250 },\n exitDuration: { type: Number, default: undefined },\n timingFunction: { type: String, default: 'ease' },\n mounted: { type: Boolean, required: true },\n enterDelay: { type: Number, default: undefined },\n exitDelay: { type: Number, default: undefined },\n },\n emits: {\n enter: () => true,\n entered: () => true,\n exit: () => true,\n exited: () => true,\n },\n setup(props, { slots, emit }) {\n const env = useMantineEnv()\n\n const { transitionDuration, transitionStatus, transitionTimingFunction } = useTransition({\n mounted: () => props.mounted,\n duration: () => props.duration,\n exitDuration: () => props.exitDuration ?? props.duration,\n timingFunction: () => props.timingFunction,\n enterDelay: () => props.enterDelay,\n exitDelay: () => props.exitDelay,\n onEnter: () => emit('enter'),\n onExit: () => emit('exit'),\n onEntered: () => emit('entered'),\n onExited: () => emit('exited'),\n })\n\n return () => {\n if (env === 'test') {\n if (props.mounted) {\n emit('enter')\n emit('entered')\n return slots.default?.({})\n }\n\n emit('exit')\n emit('exited')\n return props.keepMounted ? slots.default?.({ display: 'none' }) : null\n }\n\n if (transitionDuration.value === 0) {\n if (props.keepMounted) {\n return slots.default?.(props.mounted ? {} : { display: 'none' })\n }\n return props.mounted ? slots.default?.({}) : null\n }\n\n const isExited = transitionStatus.value === 'exited'\n\n if (props.keepMounted) {\n return slots.default?.(\n isExited\n ? { display: 'none' }\n : getTransitionStyles({\n transition: props.transition,\n duration: transitionDuration.value,\n state: transitionStatus.value,\n timingFunction: transitionTimingFunction.value,\n }),\n )\n }\n\n if (isExited) return null\n\n return slots.default?.(\n getTransitionStyles({\n transition: props.transition,\n duration: transitionDuration.value,\n state: transitionStatus.value,\n timingFunction: transitionTimingFunction.value,\n }),\n )\n }\n },\n})\n",".root {\n --ai-size-xs: 18px;\n --ai-size-sm: 22px;\n --ai-size-md: 28px;\n --ai-size-lg: 34px;\n --ai-size-xl: 44px;\n\n --ai-size-input-xs: 30px;\n --ai-size-input-sm: 36px;\n --ai-size-input-md: 42px;\n --ai-size-input-lg: 50px;\n --ai-size-input-xl: 60px;\n\n --ai-size: var(--ai-size-md);\n --ai-color: var(--mantine-color-white);\n\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n user-select: none;\n overflow: hidden;\n\n width: var(--ai-size);\n height: var(--ai-size);\n min-width: var(--ai-size);\n min-height: var(--ai-size);\n border-radius: var(--ai-radius, var(--mantine-radius-default));\n background: var(--ai-bg, var(--mantine-primary-color-filled));\n color: var(--ai-color, var(--mantine-color-white));\n border: var(--ai-bd, rem(1px) solid transparent);\n cursor: pointer;\n\n @mixin hover {\n &:where(:not([data-loading], :disabled, [data-disabled])) {\n background-color: var(--ai-hover, var(--mantine-primary-color-filled-hover));\n color: var(--ai-hover-color, var(--ai-color));\n }\n }\n\n &[data-loading] {\n cursor: not-allowed;\n\n & .icon {\n opacity: 0;\n transform: translateY(100%);\n }\n }\n\n &:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {\n cursor: not-allowed;\n border: 1px solid transparent;\n color: var(--mantine-color-disabled-color);\n background: var(--mantine-color-disabled);\n\n &:active {\n transform: none;\n }\n }\n}\n\n.loader {\n inset: -1px;\n position: absolute;\n border-radius: var(--ai-radius, var(--mantine-radius-default));\n display: flex;\n align-items: center;\n justify-content: center;\n\n @mixin where-light {\n background-color: rgba(255, 255, 255, 0.15);\n }\n\n @mixin where-dark {\n background-color: rgba(0, 0, 0, 0.15);\n }\n}\n\n.group {\n --ai-border-width: 1px;\n display: flex;\n\n & :where(*) {\n &:focus {\n position: relative;\n z-index: 1;\n }\n }\n\n &[data-orientation='horizontal'] {\n flex-direction: row;\n\n & .root,\n & .groupSection {\n &:not(:only-child):first-child {\n border-end-end-radius: 0;\n border-start-end-radius: 0;\n border-inline-end-width: calc(var(--ai-border-width) / 2);\n }\n\n &:not(:only-child):last-child {\n border-end-start-radius: 0;\n border-start-start-radius: 0;\n border-inline-start-width: calc(var(--ai-border-width) / 2);\n }\n\n &:not(:only-child):not(:first-child):not(:last-child) {\n border-radius: 0;\n border-inline-width: calc(var(--ai-border-width) / 2);\n }\n }\n }\n\n &[data-orientation='vertical'] {\n flex-direction: column;\n\n & .root,\n & .groupSection {\n &:not(:only-child):first-child {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n border-bottom-width: calc(var(--ai-border-width) / 2);\n }\n\n &:not(:only-child):last-child {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n border-top-width: calc(var(--ai-border-width) / 2);\n }\n\n &:not(:only-child):not(:first-child):not(:last-child) {\n border-radius: 0;\n border-bottom-width: calc(var(--ai-border-width) / 2);\n border-top-width: calc(var(--ai-border-width) / 2);\n }\n }\n }\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n transition:\n transform 150ms ease,\n opacity 100ms ease;\n width: 100%;\n height: 100%;\n}\n\n.groupSection {\n --section-height-xs: 18px;\n --section-height-sm: 22px;\n --section-height-md: 28px;\n --section-height-lg: 34px;\n --section-height-xl: 44px;\n\n --section-height-input-xs: 30px;\n --section-height-input-sm: 36px;\n --section-height-input-md: 42px;\n --section-height-input-lg: 50px;\n --section-height-input-xl: 60px;\n\n --section-padding-x-xs: 6px;\n --section-padding-x-sm: 8px;\n --section-padding-x-md: 10px;\n --section-padding-x-lg: 12px;\n --section-padding-x-xl: 16px;\n\n --section-height: var(--section-height-sm);\n --section-padding-x: var(--section-padding-x-sm);\n --section-color: var(--mantine-color-white);\n\n font-weight: var(--mantine-font-weight-medium);\n width: auto;\n border-radius: var(--section-radius, var(--mantine-radius-default));\n font-size: var(--section-fz, var(--mantine-font-size-sm));\n background: var(--section-bg, var(--mantine-primary-color-filled));\n border: var(--section-bd, rem(1px) solid transparent);\n color: var(--section-color, var(--mantine-color-white));\n height: var(--section-height, var(--section-height-sm));\n padding-inline: var(--section-padding-x, var(--section-padding-x-sm));\n vertical-align: middle;\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, rem, useProps, useStyles } from '../../../core'\nimport classes from '../ActionIcon.module.css'\n\nconst defaultProps = {\n orientation: 'horizontal',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { borderWidth }) => ({\n group: { '--ai-border-width': rem(borderWidth) },\n}))\n\nexport const ActionIconGroup = withBoxProps(\n defineComponent({\n name: 'ActionIconGroup',\n inheritAttrs: false,\n props: {\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n borderWidth: [String, Number] as PropType<string | number>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ActionIconGroup', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'ActionIconGroup',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('group'),\n role: 'group',\n mod: { orientation: props.orientation },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../../core'\nimport classes from '../ActionIcon.module.css'\nimport type { ActionIconVariant } from '../ActionIcon'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, gradient, variant, autoContrast, size }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n gradient,\n variant: variant || 'filled',\n autoContrast,\n })\n\n return {\n groupSection: {\n '--section-height': getSize(size, 'section-height'),\n '--section-padding-x': getSize(size, 'section-padding-x'),\n '--section-fz': getFontSize(size),\n '--section-radius': radius === undefined ? undefined : getRadius(radius),\n '--section-bg': color || variant ? colors.background : undefined,\n '--section-color': colors.color,\n '--section-bd': color || variant ? colors.border : undefined,\n },\n }\n },\n)\n\nexport const ActionIconGroupSection = withBoxProps(\n defineComponent({\n name: 'ActionIconGroupSection',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<ActionIconVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ActionIconGroupSection', null, rawProps)\n const getStyles = useStyles({\n name: 'ActionIconGroupSection',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('groupSection'),\n variant: props.variant,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../core'\nimport { Loader } from '../Loader'\nimport { Transition } from '../Transition'\nimport { UnstyledButton } from '../UnstyledButton'\nimport { ActionIconGroup } from './ActionIconGroup/ActionIconGroup'\nimport { ActionIconGroupSection } from './ActionIconGroupSection/ActionIconGroupSection'\nimport classes from './ActionIcon.module.css'\n\nexport type ActionIconVariant =\n | 'filled'\n | 'light'\n | 'outline'\n | 'transparent'\n | 'white'\n | 'subtle'\n | 'default'\n | 'gradient'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { size, radius, variant, gradient, color, autoContrast }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n gradient,\n variant: variant || 'filled',\n autoContrast,\n })\n\n return {\n root: {\n '--ai-size': getSize(size, 'ai-size'),\n '--ai-radius': radius === undefined ? undefined : getRadius(radius),\n '--ai-bg': color || variant ? colors.background : undefined,\n '--ai-hover': color || variant ? colors.hover : undefined,\n '--ai-hover-color': color || variant ? colors.hoverColor : undefined,\n '--ai-color': colors.color,\n '--ai-bd': color || variant ? colors.border : undefined,\n },\n }\n },\n)\n\nconst ActionIconBase = defineComponent({\n name: 'ActionIcon',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'button' },\n loading: { type: Boolean, default: false },\n loaderProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n size: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n disabled: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<ActionIconVariant>, default: undefined },\n __staticSelector: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ActionIcon', null, rawProps)\n const getStyles = useStyles({\n name: props.__staticSelector ?? 'ActionIcon',\n props,\n className: attrs.class,\n style: attrs.style as any,\n classes,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () =>\n h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('root', {\n active: !props.disabled && !props.loading && !attrs['data-disabled'],\n }),\n component: props.component,\n unstyled: props.unstyled,\n variant: props.variant,\n disabled: props.disabled || props.loading,\n mod: { loading: props.loading, disabled: props.disabled },\n },\n () => [\n h(\n Transition,\n { mounted: props.loading, transition: 'slide-down', duration: 150 },\n {\n default: (transitionStyles: any) =>\n props.loading\n ? h(\n Box,\n {\n component: 'span',\n ...getStyles('loader', { style: transitionStyles }),\n 'aria-hidden': 'true',\n },\n () =>\n h(Loader, {\n color: 'var(--ai-color)',\n size: 'calc(var(--ai-size) * 0.55)',\n ...props.loaderProps,\n }),\n )\n : null,\n },\n ),\n h(Box, { component: 'span', mod: { loading: props.loading }, ...getStyles('icon') }, () =>\n slots.default?.(),\n ),\n ],\n )\n },\n})\n\nexport const ActionIcon = withBoxProps(\n Object.assign(ActionIconBase, {\n Group: ActionIconGroup,\n GroupSection: ActionIconGroupSection,\n }),\n)\n","import { defineComponent, h } from 'vue'\n\nexport const CloseIcon = defineComponent({\n name: 'CloseIcon',\n props: {\n size: { type: String, default: 'var(--cb-icon-size, 70%)' },\n },\n setup(props, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n ...attrs,\n viewBox: '0 0 15 15',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n style: { width: props.size, height: props.size, ...(attrs.style as any) },\n },\n [\n h('path', {\n d: 'M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z',\n fill: 'currentColor',\n 'fill-rule': 'evenodd',\n 'clip-rule': 'evenodd',\n }),\n ],\n )\n },\n})\n",".root {\n --cb-size-xs: 18px;\n --cb-size-sm: 22px;\n --cb-size-md: 28px;\n --cb-size-lg: 34px;\n --cb-size-xl: 44px;\n\n --cb-size: var(--cb-size-md);\n --cb-icon-size: 70%;\n --cb-radius: var(--mantine-radius-default);\n\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n user-select: none;\n\n width: var(--cb-size);\n height: var(--cb-size);\n min-width: var(--cb-size);\n min-height: var(--cb-size);\n border-radius: var(--cb-radius);\n\n @mixin where-light {\n color: var(--mantine-color-gray-7);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-1);\n }\n\n &[data-disabled],\n &:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n}\n\n.root:where([data-variant='subtle']):where(:not([data-disabled], :disabled)) {\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { createVarsResolver, getRadius, getSize, rem, useProps, useStyles } from '../../core'\nimport { UnstyledButton } from '../UnstyledButton'\nimport { CloseIcon } from './CloseIcon'\nimport classes from './CloseButton.module.css'\n\nconst defaultProps = {\n variant: 'subtle',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { size, radius, iconSize }) => ({\n root: {\n '--cb-size': getSize(size, 'cb-size'),\n '--cb-radius': radius === undefined ? undefined : getRadius(radius),\n '--cb-icon-size': rem(iconSize),\n },\n}))\n\nexport const CloseButton = defineComponent({\n name: 'CloseButton',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'button' },\n size: [String, Number] as PropType<string | number>,\n radius: [String, Number] as PropType<string | number>,\n disabled: { type: Boolean, default: false },\n iconSize: [String, Number] as PropType<string | number>,\n icon: { type: [String, Object, Function], default: undefined },\n variant: { type: String as PropType<'subtle' | 'transparent'>, default: undefined },\n __staticSelector: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('CloseButton', defaultProps, rawProps)\n const getStyles = useStyles({\n name: props.__staticSelector || 'CloseButton',\n props,\n className: attrs.class,\n style: attrs.style as any,\n classes,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () =>\n h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.component,\n unstyled: props.unstyled,\n variant: props.variant,\n disabled: props.disabled,\n mod: { disabled: props.disabled },\n },\n () => [props.icon ? props.icon : h(CloseIcon), slots.default?.()],\n )\n },\n})\n",".root {\n --button-height-xs: 30px;\n --button-height-sm: 36px;\n --button-height-md: 42px;\n --button-height-lg: 50px;\n --button-height-xl: 60px;\n --button-height-compact-xs: 22px;\n --button-height-compact-sm: 26px;\n --button-height-compact-md: 30px;\n --button-height-compact-lg: 34px;\n --button-height-compact-xl: 40px;\n --button-padding-x-xs: 14px;\n --button-padding-x-sm: 18px;\n --button-padding-x-md: 22px;\n --button-padding-x-lg: 26px;\n --button-padding-x-xl: 32px;\n --button-padding-x-compact-xs: 7px;\n --button-padding-x-compact-sm: 8px;\n --button-padding-x-compact-md: 10px;\n --button-padding-x-compact-lg: 12px;\n --button-padding-x-compact-xl: 14px;\n --button-height: var(--button-height-sm);\n --button-padding-x: var(--button-padding-x-sm);\n --button-color: var(--mantine-color-white);\n\n user-select: none;\n font-weight: var(--mantine-font-weight-medium);\n position: relative;\n line-height: 1;\n text-align: center;\n overflow: hidden;\n width: auto;\n cursor: pointer;\n display: inline-block;\n border-radius: var(--button-radius, var(--mantine-radius-default));\n font-size: var(--button-fz, var(--mantine-font-size-sm));\n background: var(--button-bg, var(--mantine-primary-color-filled));\n border: var(--button-bd, rem(1px) solid transparent);\n color: var(--button-color, var(--mantine-color-white));\n height: var(--button-height, var(--button-height-sm));\n padding-inline: var(--button-padding-x, var(--button-padding-x-sm));\n vertical-align: middle;\n}\n\n.root:where([data-block]) {\n display: block;\n width: 100%;\n}\n\n.root:where([data-with-left-section]) {\n padding-inline-start: calc(var(--button-padding-x) / 1.5);\n}\n\n.root:where([data-with-right-section]) {\n padding-inline-end: calc(var(--button-padding-x) / 1.5);\n}\n\n.root:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {\n cursor: not-allowed;\n border: 1px solid transparent;\n transform: none;\n color: var(--mantine-color-disabled-color);\n background: var(--mantine-color-disabled);\n}\n\n.root::before {\n content: '';\n pointer-events: none;\n position: absolute;\n inset: -1px;\n border-radius: var(--button-radius, var(--mantine-radius-default));\n transform: translateY(-100%);\n opacity: 0;\n filter: blur(12px);\n transition:\n transform 150ms ease,\n opacity 100ms ease;\n\n @mixin where-light {\n background-color: rgba(255, 255, 255, 0.15);\n }\n\n @mixin where-dark {\n background-color: rgba(0, 0, 0, 0.15);\n }\n}\n\n.root:where([data-loading]) {\n cursor: not-allowed;\n transform: none;\n}\n\n.root:where([data-loading])::before {\n transform: translateY(0);\n opacity: 1;\n}\n\n.root:where([data-loading]) .inner {\n opacity: 0;\n transform: translateY(100%);\n}\n\n.root:where(:not([data-loading], :disabled, [data-disabled])):hover {\n background-color: var(--button-hover, var(--mantine-primary-color-filled-hover));\n color: var(--button-hover-color, var(--button-color));\n}\n\n.inner {\n display: flex;\n align-items: center;\n justify-content: var(--button-justify, center);\n height: 100%;\n overflow: visible;\n transition:\n transform 150ms ease,\n opacity 100ms ease;\n}\n\n.label {\n white-space: nowrap;\n height: 100%;\n overflow: hidden;\n display: flex;\n align-items: center;\n opacity: 1;\n text-box-trim: trim-both;\n text-box-edge: cap alphabetic;\n}\n\n.label:where([data-loading]) {\n opacity: 0.2;\n}\n\n.section {\n display: flex;\n align-items: center;\n}\n\n.section:where([data-position='left']) {\n margin-inline-end: var(--mantine-spacing-xs);\n}\n\n.section:where([data-position='right']) {\n margin-inline-start: var(--mantine-spacing-xs);\n}\n\n.loader {\n position: absolute;\n left: 50%;\n top: 50%;\n}\n\n.group {\n --button-border-width: 1px;\n display: flex;\n}\n\n.group .root:focus {\n position: relative;\n z-index: 1;\n}\n\n.group[data-orientation='horizontal'] {\n flex-direction: row;\n}\n\n.group[data-orientation='vertical'] {\n flex-direction: column;\n}\n\n.group[data-orientation='horizontal'] .root:not(:only-child):first-child,\n.group[data-orientation='horizontal'] .groupSection:not(:only-child):first-child {\n border-end-end-radius: 0;\n border-start-end-radius: 0;\n border-inline-end-width: calc(var(--button-border-width) / 2);\n}\n\n.group[data-orientation='horizontal'] .root:not(:only-child):last-child,\n.group[data-orientation='horizontal'] .groupSection:not(:only-child):last-child {\n border-end-start-radius: 0;\n border-start-start-radius: 0;\n border-inline-start-width: calc(var(--button-border-width) / 2);\n}\n\n.group[data-orientation='horizontal'] .root:not(:only-child):not(:first-child):not(:last-child),\n.group[data-orientation='horizontal']\n .groupSection:not(:only-child):not(:first-child):not(:last-child) {\n border-radius: 0;\n border-inline-width: calc(var(--button-border-width) / 2);\n}\n\n.group[data-orientation='vertical'] .root:not(:only-child):first-child,\n.group[data-orientation='vertical'] .groupSection:not(:only-child):first-child {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n border-bottom-width: calc(var(--button-border-width) / 2);\n}\n\n.group[data-orientation='vertical'] .root:not(:only-child):last-child,\n.group[data-orientation='vertical'] .groupSection:not(:only-child):last-child {\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n border-top-width: calc(var(--button-border-width) / 2);\n}\n\n.group[data-orientation='vertical'] .root:not(:only-child):not(:first-child):not(:last-child),\n.group[data-orientation='vertical']\n .groupSection:not(:only-child):not(:first-child):not(:last-child) {\n border-radius: 0;\n border-bottom-width: calc(var(--button-border-width) / 2);\n border-top-width: calc(var(--button-border-width) / 2);\n}\n\n.groupSection {\n --section-height-xs: 30px;\n --section-height-sm: 36px;\n --section-height-md: 42px;\n --section-height-lg: 50px;\n --section-height-xl: 60px;\n --section-height-compact-xs: 22px;\n --section-height-compact-sm: 26px;\n --section-height-compact-md: 30px;\n --section-height-compact-lg: 34px;\n --section-height-compact-xl: 40px;\n --section-padding-x-xs: 14px;\n --section-padding-x-sm: 18px;\n --section-padding-x-md: 22px;\n --section-padding-x-lg: 26px;\n --section-padding-x-xl: 32px;\n --section-padding-x-compact-xs: 7px;\n --section-padding-x-compact-sm: 8px;\n --section-padding-x-compact-md: 10px;\n --section-padding-x-compact-lg: 12px;\n --section-padding-x-compact-xl: 14px;\n --section-height: var(--section-height-sm);\n --section-padding-x: var(--section-padding-x-sm);\n --section-color: var(--mantine-color-white);\n\n font-weight: var(--mantine-font-weight-medium);\n width: auto;\n border-radius: var(--section-radius, var(--mantine-radius-default));\n font-size: var(--section-fz, var(--mantine-font-size-sm));\n background: var(--section-bg, var(--mantine-primary-color-filled));\n border: var(--section-bd, rem(1px) solid transparent);\n color: var(--section-color, var(--mantine-color-white));\n height: var(--section-height, var(--section-height-sm));\n padding-inline: var(--section-padding-x, var(--section-padding-x-sm));\n vertical-align: middle;\n line-height: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, rem, useProps, useStyles } from '../../../core'\nimport classes from '../Button.module.css'\n\nconst defaultProps = {\n orientation: 'horizontal',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { borderWidth }) => ({\n group: { '--button-border-width': rem(borderWidth) },\n}))\n\nexport const ButtonGroup = withBoxProps(\n defineComponent({\n name: 'ButtonGroup',\n inheritAttrs: false,\n props: {\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n borderWidth: [String, Number] as PropType<string | number>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ButtonGroup', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'ButtonGroup',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('group'),\n role: 'group',\n mod: { orientation: props.orientation },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../../core'\nimport classes from '../Button.module.css'\nimport type { ButtonVariant } from '../Button'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, gradient, variant, autoContrast, size }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n gradient,\n variant: variant || 'filled',\n autoContrast,\n })\n\n const compactSize =\n typeof size === 'string' && size.includes('compact-') ? size.replace('compact-', '') : size\n\n return {\n groupSection: {\n '--section-height': getSize(size, 'section-height'),\n '--section-padding-x': getSize(size, 'section-padding-x'),\n '--section-fz': getFontSize(compactSize),\n '--section-radius': radius === undefined ? undefined : getRadius(radius),\n '--section-bg': color || variant ? colors.background : undefined,\n '--section-color': colors.color,\n '--section-bd': color || variant ? colors.border : undefined,\n },\n }\n },\n)\n\nexport const ButtonGroupSection = withBoxProps(\n defineComponent({\n name: 'ButtonGroupSection',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<ButtonVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ButtonGroupSection', null, rawProps)\n const getStyles = useStyles({\n name: 'ButtonGroupSection',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('groupSection'),\n variant: props.variant,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import {\n defineComponent,\n h,\n ref,\n type CSSProperties,\n type PropType,\n type SlotsType,\n type VNodeChild,\n} from 'vue'\nimport {\n Box,\n type BoxProps,\n withBoxProps,\n createVarsResolver,\n getFontSize,\n getRadius,\n getSize,\n MantineSize,\n rem,\n useForwardedRef,\n useProps,\n useStyles,\n MantineRadius,\n} from '../../core'\nimport { Loader } from '../Loader'\nimport { Transition, type MantineTransition } from '../Transition'\nimport { UnstyledButton } from '../UnstyledButton'\nimport { ButtonGroup } from './ButtonGroup/ButtonGroup'\nimport { ButtonGroupSection } from './ButtonGroupSection/ButtonGroupSection'\nimport classes from './Button.module.css'\n\nexport type ButtonSize = MantineSize | `compact-${MantineSize}` | (string & {})\nexport type ButtonVariant =\n | 'filled'\n | 'light'\n | 'outline'\n | 'transparent'\n | 'white'\n | 'subtle'\n | 'default'\n | 'gradient'\n | (string & {})\n\nexport interface ButtonSlots {\n default?: () => VNodeChild\n leftSection?: () => VNodeChild\n rightSection?: () => VNodeChild\n}\n\nexport interface ButtonProps extends BoxProps {\n /** Controls button `height`, `font-size` and horizontal `padding` @default 'sm' */\n size?: ButtonSize\n /** Key of `theme.colors` or any valid CSS color @default theme.primaryColor */\n color?: string\n /** Sets `justify-content` of `inner` element @default 'center' */\n justify?: CSSProperties['justifyContent']\n /** Content on the left side of the button label */\n leftSection?: VNodeChild | (() => VNodeChild)\n /** Content on the right side of the button label */\n rightSection?: VNodeChild | (() => VNodeChild)\n /** Sets `width: 100%` @default false */\n fullWidth?: boolean\n /** Key of `theme.radius` or any valid CSS value to set `border-radius` */\n radius?: MantineRadius\n /** Gradient configuration used for `variant=\"gradient\"` */\n gradient?: { from: string; to: string; deg?: number }\n /** Sets `disabled` attribute, applies disabled styles */\n disabled?: boolean\n /** If set, the `Loader` component is displayed over the button */\n loading?: boolean\n /** Props added to the `Loader` component (only visible when `loading` is set) */\n loaderProps?: Record<string, any>\n /** If set, adjusts text color based on background color for `filled` variant */\n autoContrast?: boolean\n /** Component or element used as the root */\n component?: string\n /** Visual variant */\n variant?: ButtonVariant\n 'data-disabled'?: boolean\n classNames?: Record<string, string> | ((...args: any[]) => Record<string, string>)\n styles?: Record<string, any> | ((...args: any[]) => Record<string, any>)\n vars?: Record<string, any> | ((...args: any[]) => Record<string, any>)\n unstyled?: boolean\n}\n\nconst loaderTransition: MantineTransition = {\n in: { opacity: 1, transform: `translate(-50%, calc(-50% + ${rem(1)}))` },\n out: { opacity: 0, transform: 'translate(-50%, -200%)' },\n common: { transformOrigin: 'center' },\n transitionProperty: 'opacity, transform',\n}\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, gradient, variant, size, justify, autoContrast }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n gradient,\n variant: variant || 'filled',\n autoContrast,\n })\n\n const compactSize =\n typeof size === 'string' && size.includes('compact-') ? size.replace('compact-', '') : size\n\n return {\n root: {\n '--button-justify': justify,\n '--button-height': getSize(size, 'button-height'),\n '--button-padding-x': getSize(size, 'button-padding-x'),\n '--button-fz': getFontSize(compactSize),\n '--button-radius': radius === undefined ? undefined : getRadius(radius),\n '--button-bg': color || variant ? colors.background : undefined,\n '--button-hover': color || variant ? colors.hover : undefined,\n '--button-color': colors.color,\n '--button-bd': color || variant ? colors.border : undefined,\n '--button-hover-color': color || variant ? colors.hoverColor : undefined,\n },\n }\n },\n)\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nconst ButtonBase = defineComponent({\n name: 'Button',\n inheritAttrs: false,\n slots: Object as SlotsType<ButtonSlots>,\n props: {\n component: { type: String, default: 'button' },\n size: [String, Number] as PropType<ButtonSize>,\n color: { type: String, default: undefined },\n justify: { type: String, default: undefined },\n leftSection: { type: [String, Number, Object, Function], default: undefined },\n rightSection: { type: [String, Number, Object, Function], default: undefined },\n fullWidth: { type: Boolean, default: false },\n radius: [String, Number] as PropType<MantineRadius>,\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n loaderProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<ButtonVariant>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n 'data-disabled': { type: Boolean, default: false },\n dataDisabled: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Button', null, rawProps)\n const elementRef = ref<HTMLElement | null>(null)\n useForwardedRef(elementRef)\n const getStyles = useStyles({\n name: 'Button',\n props,\n get className() {\n return attrs.class\n },\n get style() {\n return attrs.style as any\n },\n classes,\n get classNames() {\n return props.classNames as any\n },\n get styles() {\n return props.styles as any\n },\n get unstyled() {\n return props.unstyled\n },\n get vars() {\n return props.vars as any\n },\n varsResolver,\n })\n\n const renderSection = (content: any, position: 'left' | 'right') =>\n content\n ? h(\n Box,\n {\n component: 'span',\n ...getStyles('section'),\n mod: { position },\n },\n () => renderContent(content),\n )\n : null\n\n return () => {\n const leftSection = props.leftSection ?? slots.leftSection?.()\n const rightSection = props.rightSection ?? slots.rightSection?.()\n const disabled = props.disabled || props.loading\n const dataDisabled =\n disabled || props['data-disabled'] || props.dataDisabled || attrs['data-disabled']\n\n return h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('root', {\n active: !props.disabled && !props.loading && !attrs['data-disabled'],\n }),\n component: props.component,\n unstyled: props.unstyled,\n variant: props.variant,\n disabled,\n mod: [\n {\n disabled: dataDisabled,\n loading: props.loading,\n block: props.fullWidth,\n withLeftSection: Boolean(leftSection),\n withRightSection: Boolean(rightSection),\n },\n props.mod,\n ],\n ref: elementRef,\n },\n () => [\n h(\n Transition,\n { mounted: props.loading, transition: loaderTransition, duration: 150 },\n {\n default: (transitionStyles: any) =>\n props.loading\n ? h(\n Box,\n {\n component: 'span',\n ...getStyles('loader', { style: transitionStyles }),\n 'aria-hidden': 'true',\n },\n () =>\n h(Loader, {\n color: 'var(--button-color)',\n size: 'calc(var(--button-height) / 1.8)',\n ...props.loaderProps,\n }),\n )\n : null,\n },\n ),\n h('span', getStyles('inner'), [\n renderSection(leftSection, 'left'),\n h(\n Box,\n {\n component: 'span',\n mod: { loading: props.loading },\n ...getStyles('label'),\n },\n () => slots.default?.(),\n ),\n renderSection(rightSection, 'right'),\n ]),\n ],\n )\n }\n },\n})\n\nexport const Button = withBoxProps(\n Object.assign(ButtonBase, {\n Group: ButtonGroup,\n GroupSection: ButtonGroupSection,\n }),\n)\n",".root {\n --burger-size-xs: 12px;\n --burger-size-sm: 18px;\n --burger-size-md: 24px;\n --burger-size-lg: 34px;\n --burger-size-xl: 42px;\n --burger-size: var(--burger-size-md);\n --burger-line-size: calc(var(--burger-size) / 12);\n\n width: calc(var(--burger-size) + var(--mantine-spacing-xs));\n height: calc(var(--burger-size) + var(--mantine-spacing-xs));\n padding: calc(var(--mantine-spacing-xs) / 2);\n cursor: pointer;\n\n @mixin where-light {\n --burger-color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n --burger-color: var(--mantine-color-white);\n }\n}\n\n.burger,\n.burger::before,\n.burger::after {\n display: block;\n width: var(--burger-size);\n height: var(--burger-line-size);\n background-color: var(--burger-color);\n outline: 1px solid transparent;\n transition-property: background-color, transform;\n transition-duration: var(--burger-transition-duration, 300ms);\n transition-timing-function: var(--burger-transition-timing-function, ease);\n}\n\n.burger {\n position: relative;\n user-select: none;\n}\n\n.burger::before,\n.burger::after {\n position: absolute;\n content: '';\n inset-inline-start: 0;\n}\n\n.burger::before {\n top: calc(var(--burger-size) / -3);\n}\n\n.burger::after {\n top: calc(var(--burger-size) / 3);\n}\n\n.burger[data-opened] {\n background-color: transparent;\n}\n\n.burger[data-opened]::before {\n transform: translateY(calc(var(--burger-size) / 3)) rotate(45deg);\n}\n\n.burger[data-opened]::after {\n transform: translateY(calc(var(--burger-size) / -3)) rotate(-45deg);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSize,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport { UnstyledButton } from '../UnstyledButton'\nimport classes from './Burger.module.css'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { color, size, lineSize, transitionDuration, transitionTimingFunction }) => ({\n root: {\n '--burger-color': color ? getThemeColor(color, theme) : undefined,\n '--burger-size': getSize(size, 'burger-size'),\n '--burger-line-size': lineSize ? rem(lineSize) : undefined,\n '--burger-transition-duration':\n transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n '--burger-transition-timing-function': transitionTimingFunction,\n },\n }),\n)\n\nexport const Burger = withBoxProps(\n defineComponent({\n name: 'Burger',\n inheritAttrs: false,\n props: {\n size: [String, Number] as PropType<string | number>,\n lineSize: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n opened: { type: Boolean, default: false },\n transitionDuration: { type: Number, default: undefined },\n transitionTimingFunction: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Burger', null, rawProps)\n const getStyles = useStyles({\n name: 'Burger',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('root'),\n unstyled: props.unstyled,\n },\n () => [\n h(Box, {\n ...getStyles('burger'),\n mod: { opened: props.opened },\n }),\n slots.default?.(),\n ],\n )\n },\n }),\n)\n","import { computed, defineComponent, h, type PropType } from 'vue'\nimport { useCollapse, useHorizontalCollapse, useReducedMotion } from '@mantine-vue/hooks'\nimport { withBoxProps, Box, useMantineEnv, useMantineTheme } from '../../core'\n\nconst defaultProps = {\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n animateOpacity: true,\n orientation: 'vertical',\n keepMounted: true,\n} as const\n\nexport const Collapse = withBoxProps(\n defineComponent({\n name: 'Collapse',\n inheritAttrs: false,\n props: {\n orientation: { type: String as PropType<'vertical' | 'horizontal'>, default: undefined },\n expanded: { type: Boolean, required: true },\n onTransitionEnd: { type: Function as PropType<() => void>, default: undefined },\n onTransitionStart: { type: Function as PropType<() => void>, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n transitionTimingFunction: { type: String, default: undefined },\n animateOpacity: { type: Boolean, default: undefined },\n keepMounted: { type: Boolean, default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = rawProps\n const env = useMantineEnv()\n const theme = useMantineTheme()\n const shouldReduceMotion = useReducedMotion(false, { getInitialValueInEffect: false })\n const expanded = computed(() => props.expanded)\n const transitionDuration = computed(\n () => props.transitionDuration ?? defaultProps.transitionDuration,\n )\n const transitionTimingFunction = computed(\n () => props.transitionTimingFunction ?? defaultProps.transitionTimingFunction,\n )\n const animateOpacity = computed(() => props.animateOpacity ?? defaultProps.animateOpacity)\n const orientation = computed(() => props.orientation ?? defaultProps.orientation)\n const keepMounted = computed(() => props.keepMounted ?? defaultProps.keepMounted)\n const duration = computed(() =>\n theme.value.respectReducedMotion && shouldReduceMotion.value ? 0 : transitionDuration.value,\n )\n\n const verticalCollapse = useCollapse({\n expanded,\n transitionDuration: duration.value,\n transitionTimingFunction: transitionTimingFunction.value,\n onTransitionEnd: props.onTransitionEnd,\n onTransitionStart: props.onTransitionStart,\n keepMounted: false,\n })\n\n const horizontalCollapse = useHorizontalCollapse({\n expanded,\n transitionDuration: duration.value,\n transitionTimingFunction: transitionTimingFunction.value,\n onTransitionEnd: props.onTransitionEnd,\n onTransitionStart: props.onTransitionStart,\n keepMounted: false,\n })\n\n return () => {\n if (duration.value === 0) {\n if (!props.expanded && !(keepMounted.value === true && env !== 'test')) {\n return null\n }\n\n return h(\n Box,\n {\n ...attrs,\n style: {\n ...(attrs.style as any),\n display: props.expanded ? undefined : 'none',\n },\n },\n () => slots.default?.(),\n )\n }\n\n const collapse = orientation.value === 'horizontal' ? horizontalCollapse : verticalCollapse\n const isExited = collapse.state.value === 'exited'\n\n if (keepMounted.value === false && isExited) {\n return null\n }\n\n const collapseProps = collapse.getCollapseProps({\n style: {\n ...(attrs.style as any),\n opacity: props.expanded || !animateOpacity.value ? 1 : 0,\n transition: animateOpacity.value\n ? `opacity ${duration.value}ms ${transitionTimingFunction.value}`\n : 'none',\n },\n })\n\n return h(\n Box,\n {\n ...attrs,\n ...collapseProps,\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n","import { defineComponent } from 'vue'\nimport { useClipboard } from '@mantine-vue/hooks'\nimport { useProps } from '../../core'\n\nconst defaultProps = {\n timeout: 1000,\n}\n\nexport const CopyButton = defineComponent({\n name: 'CopyButton',\n props: {\n value: { type: String, required: true },\n timeout: { type: Number, default: undefined },\n },\n setup(rawProps, { slots, attrs }) {\n const props = useProps('CopyButton', defaultProps, rawProps)\n const clipboard = useClipboard({ timeout: props.timeout })\n const copy = () => clipboard.copy(props.value)\n\n return () =>\n slots.default?.({\n ...attrs,\n copy,\n copied: clipboard.copied.value,\n })\n },\n})\n",".root {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n z-index: var(--lo-z-index);\n}\n\n.loader {\n position: relative;\n z-index: calc(var(--lo-z-index) + 1);\n}\n\n.overlay {\n z-index: var(--lo-z-index);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getDefaultZIndex,\n useMantineTheme,\n useProps,\n useStyles,\n} from '../../core'\nimport { Loader } from '../Loader'\nimport { Overlay } from '../Overlay'\nimport { Transition, type MantineTransition } from '../Transition'\nimport classes from './LoadingOverlay.module.css'\n\nconst defaultProps: Record<string, any> = {\n transitionProps: { transition: 'fade', duration: 0 },\n overlayProps: { backgroundOpacity: 0.75 },\n zIndex: getDefaultZIndex('overlay'),\n}\n\nconst varsResolver = createVarsResolver<any>((_, { zIndex }) => ({\n root: {\n '--lo-z-index': zIndex?.toString(),\n },\n}))\n\nexport const LoadingOverlay = withBoxProps(\n defineComponent({\n name: 'LoadingOverlay',\n inheritAttrs: false,\n props: {\n transitionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n loaderProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n overlayProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n visible: { type: Boolean, default: false },\n zIndex: [String, Number] as PropType<string | number>,\n onEnter: { type: Function as PropType<() => void>, default: undefined },\n onEntered: { type: Function as PropType<() => void>, default: undefined },\n onExit: { type: Function as PropType<() => void>, default: undefined },\n onExited: { type: Function as PropType<() => void>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('LoadingOverlay', defaultProps, rawProps)\n const theme = useMantineTheme()\n const getStyles = useStyles({\n name: 'LoadingOverlay',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const overlayProps: Record<string, any> = {\n ...defaultProps.overlayProps,\n ...props.overlayProps,\n }\n const transitionProps: Record<string, any> = {\n ...defaultProps.transitionProps,\n ...props.transitionProps,\n }\n\n return h(\n Transition,\n {\n transition: transitionProps.transition as MantineTransition,\n duration: transitionProps.duration,\n timingFunction: transitionProps.timingFunction,\n keepMounted: transitionProps.keepMounted,\n mounted: props.visible,\n onEnter: props.onEnter,\n onEntered: props.onEntered,\n onExit: props.onExit,\n onExited: props.onExited,\n },\n {\n default: (transitionStyles: any) =>\n props.visible\n ? h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { style: transitionStyles }),\n },\n () => [\n h(Loader, {\n unstyled: props.unstyled,\n ...props.loaderProps,\n ...getStyles('loader', {\n className: props.loaderProps?.class,\n style: props.loaderProps?.style,\n }),\n }),\n h(Overlay, {\n ...overlayProps,\n ...getStyles('overlay', {\n className: ['mantine-dark-hidden', overlayProps.class],\n style: overlayProps.style,\n }),\n unstyled: props.unstyled,\n color: overlayProps.color || theme.value.white,\n }),\n h(Overlay, {\n ...overlayProps,\n ...getStyles('overlay', {\n className: ['mantine-light-hidden', overlayProps.class],\n style: overlayProps.style,\n }),\n unstyled: props.unstyled,\n color: overlayProps.color || theme.value.colors.dark[5],\n }),\n ],\n )\n : null,\n },\n )\n }\n },\n }),\n)\n","import { createSafeContext } from '../../core'\n\nexport interface CardContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any }) => any\n}\n\nexport const [provideCardContext, useCardContext] = createSafeContext<CardContextValue>(\n 'Card component was not found in tree',\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps } from '../../../core'\nimport { useCardContext } from '../Card.context'\n\nexport const CardSection = withBoxProps(\n defineComponent({\n name: 'CardSection',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n withBorder: { type: Boolean, default: false },\n inheritPadding: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('CardSection', null, rawProps)\n const ctx = useCardContext()\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('section', { className: attrs.class, style: attrs.style as any }),\n component: props.component,\n mod: [\n {\n withBorder: props.withBorder,\n inheritPadding: props.inheritPadding,\n },\n props.mod,\n ],\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n",".root {\n --card-padding: var(--mantine-spacing-md);\n\n position: relative;\n overflow: hidden;\n display: flex;\n padding: var(--card-padding);\n color: var(--mantine-color-text);\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n }\n}\n\n.root:where([data-orientation='horizontal']) {\n flex-direction: row;\n}\n\n.root:where([data-orientation='vertical']) {\n flex-direction: column;\n}\n\n.section {\n display: block;\n margin-inline: calc(var(--card-padding) * -1);\n\n @mixin where-light {\n --border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --border-color: var(--mantine-color-dark-4);\n }\n}\n\n.section:where([data-orientation='vertical']):first-child {\n margin-top: calc(var(--card-padding) * -1);\n border-top: none !important;\n}\n\n.section:where([data-orientation='vertical']):last-child {\n margin-bottom: calc(var(--card-padding) * -1);\n border-bottom: none !important;\n}\n\n.section:where([data-orientation='vertical'][data-inherit-padding]) {\n padding-inline: var(--card-padding);\n}\n\n.section:where([data-orientation='vertical'][data-with-border]) {\n border-top: 1px solid var(--border-color);\n border-bottom: 1px solid var(--border-color);\n}\n\n.section:where([data-orientation='vertical']) + .section {\n border-top: none !important;\n}\n\n.section:where([data-orientation='horizontal']) {\n margin-block: calc(var(--card-padding) * -1);\n margin-inline: 0;\n}\n\n.section:where([data-orientation='horizontal']):first-child {\n margin-inline-start: calc(var(--card-padding) * -1);\n border-inline-start: none !important;\n}\n\n.section:where([data-orientation='horizontal']):last-child {\n margin-inline-end: calc(var(--card-padding) * -1);\n border-inline-end: none !important;\n}\n\n.section:where([data-orientation='horizontal'][data-inherit-padding]) {\n padding-block: var(--card-padding);\n}\n\n.section:where([data-orientation='horizontal'][data-with-border]) {\n border-inline-start: 1px solid var(--border-color);\n border-inline-end: 1px solid var(--border-color);\n}\n\n.section:where([data-orientation='horizontal']) + .section {\n border-inline-start: none !important;\n}\n","import { cloneVNode, defineComponent, h, type PropType, type VNode } from 'vue'\nimport { withBoxProps, createVarsResolver, getSpacing, useProps, useStyles } from '../../core'\nimport { Paper } from '../Paper'\nimport { CardSection } from './CardSection/CardSection'\nimport { provideCardContext } from './Card.context'\nimport classes from './Card.module.css'\n\nconst defaultProps = {\n orientation: 'vertical',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { padding }) => ({\n root: {\n '--card-padding': getSpacing(padding),\n },\n}))\n\nfunction isCardSection(child: VNode) {\n return (\n child.type === CardSection ||\n (typeof child.type === 'object' && (child.type as any).name === 'CardSection')\n )\n}\n\nconst CardBase = defineComponent({\n name: 'Card',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n shadow: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n withBorder: { type: Boolean, default: false },\n padding: [String, Number] as PropType<string | number>,\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Card', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Card',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n provideCardContext({ getStyles })\n\n return () => {\n const children = slots.default?.() ?? []\n const content = children.map((child, index) =>\n isCardSection(child)\n ? cloneVNode(child, {\n 'data-orientation': props.orientation,\n 'data-first-section': index === 0 ? '' : undefined,\n 'data-last-section': index === children.length - 1 ? '' : undefined,\n })\n : child,\n )\n\n return h(\n Paper,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.component,\n shadow: props.shadow,\n radius: props.radius,\n withBorder: props.withBorder,\n unstyled: props.unstyled,\n 'data-orientation': props.orientation,\n },\n () => content,\n )\n }\n },\n})\n\nexport const Card = withBoxProps(\n Object.assign(CardBase, {\n Section: CardSection,\n }),\n)\n",".root {\n --alert-radius: var(--mantine-radius-default);\n --alert-bg: var(--mantine-primary-color-light);\n --alert-bd: 1px solid transparent;\n --alert-color: var(--mantine-primary-color-light-color);\n\n padding: var(--mantine-spacing-md) var(--mantine-spacing-md);\n border-radius: var(--alert-radius);\n position: relative;\n overflow: hidden;\n background-color: var(--alert-bg);\n border: var(--alert-bd);\n color: var(--alert-color);\n}\n\n.wrapper {\n display: flex;\n}\n\n.body {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: var(--mantine-spacing-xs);\n}\n\n.title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: var(--mantine-font-size-sm);\n font-weight: var(--mantine-font-weight-bold);\n\n &:where([data-with-close-button]) {\n padding-inline-end: var(--mantine-spacing-md);\n }\n}\n\n.label {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.icon {\n line-height: 1;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n margin-inline-end: var(--mantine-spacing-md);\n margin-top: 1px;\n}\n\n.message {\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: var(--mantine-font-size-sm);\n\n @mixin where-light {\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-white);\n }\n\n &:where([data-variant='filled']) {\n color: var(--alert-color);\n }\n\n &:where([data-variant='white']) {\n color: var(--mantine-color-black);\n }\n}\n\n.closeButton {\n width: 20px;\n height: 20px;\n color: var(--alert-color);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useId } from '@mantine-vue/hooks'\nimport { withBoxProps, Box, createVarsResolver, getRadius, useProps, useStyles } from '../../core'\nimport { CloseButton } from '../CloseButton'\nimport classes from './Alert.module.css'\n\nexport type AlertVariant = 'filled' | 'light' | 'outline' | 'default' | 'transparent' | 'white'\n\nconst varsResolver = createVarsResolver<any>((theme, { radius, color, variant, autoContrast }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n variant: variant || 'light',\n autoContrast,\n })\n\n return {\n root: {\n '--alert-radius': radius === undefined ? undefined : getRadius(radius),\n '--alert-bg': color || variant ? colors.background : undefined,\n '--alert-color': colors.color,\n '--alert-bd': color || variant ? colors.border : undefined,\n },\n }\n})\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport const Alert = withBoxProps(\n defineComponent({\n name: 'Alert',\n inheritAttrs: false,\n props: {\n id: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n title: { type: [String, Number, Object, Function], default: undefined },\n icon: { type: [String, Number, Object, Function], default: undefined },\n withCloseButton: { type: Boolean, default: false },\n onClose: { type: Function as PropType<() => void>, default: undefined },\n closeButtonLabel: { type: String, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<AlertVariant>, default: undefined },\n role: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Alert', null, rawProps)\n const rootId = useId(props.id)\n const getStyles = useStyles({\n name: 'Alert',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const title = props.title ?? slots.title?.()\n const icon = props.icon ?? slots.icon?.()\n const message = slots.default?.()\n const id = rootId.value || undefined\n const titleId = title && id ? `${id}-title` : undefined\n const bodyId = id ? `${id}-body` : undefined\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n id,\n variant: props.variant,\n role: props.role || 'alert',\n 'aria-describedby': message ? bodyId : undefined,\n 'aria-labelledby': title ? titleId : undefined,\n },\n () =>\n h('div', getStyles('wrapper'), [\n icon ? h('div', getStyles('icon'), renderContent(icon)) : null,\n h('div', getStyles('body'), [\n title\n ? h(\n 'div',\n {\n ...getStyles('title'),\n 'data-with-close-button': props.withCloseButton ? '' : undefined,\n },\n [h('span', { id: titleId, ...getStyles('label') }, renderContent(title))],\n )\n : null,\n message\n ? h(\n 'div',\n {\n id: bodyId,\n ...getStyles('message'),\n 'data-variant': props.variant,\n },\n message,\n )\n : null,\n ]),\n props.withCloseButton\n ? h(CloseButton, {\n ...getStyles('closeButton'),\n onClick: props.onClose,\n variant: 'transparent',\n size: 16,\n iconSize: 16,\n 'aria-label': props.closeButtonLabel,\n unstyled: props.unstyled,\n })\n : null,\n ]),\n )\n }\n },\n }),\n)\n",".root {\n --blockquote-border: 3px solid var(--bq-bd);\n\n position: relative;\n margin: 0;\n text-wrap: var(--bq-text-wrap, var(--mantine-text-wrap));\n border-inline-start: var(--blockquote-border);\n border-start-end-radius: var(--bq-radius);\n border-end-end-radius: var(--bq-radius);\n padding: var(--mantine-spacing-xl) rem(38px);\n\n @mixin where-light {\n background-color: var(--bq-bg-light);\n }\n\n @mixin where-dark {\n background-color: var(--bq-bg-dark);\n }\n}\n\n.icon {\n --blockquote-icon-offset: calc(var(--bq-icon-size) / -2);\n\n position: absolute;\n color: var(--bq-bd);\n background-color: var(--mantine-color-body);\n display: flex;\n align-items: center;\n justify-content: center;\n top: var(--blockquote-icon-offset);\n inset-inline-start: var(--blockquote-icon-offset);\n width: var(--bq-icon-size);\n height: var(--bq-icon-size);\n border-radius: var(--bq-icon-size);\n}\n\n.cite {\n display: block;\n margin-top: var(--mantine-spacing-md);\n opacity: 0.6;\n font-size: 85%;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getThemeColor,\n parseThemeColor,\n rem,\n rgba,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './Blockquote.module.css'\n\nconst defaultProps = {\n iconSize: 48,\n}\n\nconst varsResolver = createVarsResolver<any>((theme, { color, iconSize, radius, textWrap }) => {\n const darkParsed = parseThemeColor({\n color: color || theme.primaryColor,\n theme,\n colorScheme: 'dark',\n })\n\n const lightParsed = parseThemeColor({\n color: color || theme.primaryColor,\n theme,\n colorScheme: 'light',\n })\n\n return {\n root: {\n '--bq-bg-light': rgba(lightParsed.value, 0.07),\n '--bq-bg-dark': rgba(darkParsed.value, 0.06),\n '--bq-bd': getThemeColor(color, theme),\n '--bq-icon-size': rem(iconSize),\n '--bq-radius': getRadius(radius),\n '--bq-text-wrap': textWrap,\n },\n }\n})\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport const Blockquote = withBoxProps(\n defineComponent({\n name: 'Blockquote',\n inheritAttrs: false,\n props: {\n icon: { type: [String, Number, Object, Function], default: undefined },\n iconSize: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n radius: [String, Number] as PropType<string | number>,\n cite: { type: [String, Number, Object, Function], default: undefined },\n textWrap: {\n type: String as PropType<'wrap' | 'nowrap' | 'balance' | 'pretty' | 'stable'>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Blockquote', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Blockquote',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const icon = props.icon ?? slots.icon?.()\n const cite = props.cite ?? slots.cite?.()\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: 'blockquote',\n },\n () => [\n icon ? h('span', getStyles('icon'), renderContent(icon)) : null,\n slots.default?.(),\n cite ? h('cite', getStyles('cite'), renderContent(cite)) : null,\n ],\n )\n }\n },\n }),\n)\n",".root {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.breadcrumb {\n line-height: 1;\n white-space: nowrap;\n -webkit-tap-highlight-color: transparent;\n}\n\n.separator {\n margin-inline: var(--bc-separator-margin, var(--mantine-spacing-xs));\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n\n @mixin where-light {\n color: var(--mantine-color-gray-7);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-2);\n }\n}\n","import { cloneVNode, defineComponent, h, Text, type PropType, type VNode } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSpacing, useProps, useStyles } from '../../core'\nimport classes from './Breadcrumbs.module.css'\n\nconst defaultProps = {\n separator: '/',\n}\n\nconst varsResolver = createVarsResolver<any>((_, { separatorMargin }) => ({\n root: {\n '--bc-separator-margin': getSpacing(separatorMargin),\n },\n}))\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport const Breadcrumbs = withBoxProps(\n defineComponent({\n name: 'Breadcrumbs',\n inheritAttrs: false,\n props: {\n separator: { type: [String, Number, Object, Function], default: undefined },\n separatorMargin: [String, Number] as PropType<string | number>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Breadcrumbs', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Breadcrumbs',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const children = slots.default?.() ?? []\n const items = children.reduce<VNode[]>((acc, child, index) => {\n const item =\n child.type === Text\n ? h('div', getStyles('breadcrumb'), child.children as any)\n : cloneVNode(\n child,\n getStyles('breadcrumb', { className: (child.props as any)?.class }),\n )\n\n acc.push(item)\n\n if (index !== children.length - 1) {\n acc.push(\n h(\n Box,\n {\n ...getStyles('separator'),\n key: `separator-${index}`,\n },\n () => renderContent(props.separator),\n ),\n )\n }\n\n return acc\n }, [])\n\n return h(Box, { ...attrs, ...getStyles('root') }, () => items)\n }\n },\n }),\n)\n","import { createSafeContext } from '../../core'\n\nexport interface ListContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any }) => any\n center?: boolean\n icon?: any\n}\n\nexport const [provideListContext, useListContext] = createSafeContext<ListContextValue>(\n 'List component was not found in tree',\n)\n","import { cloneVNode, defineComponent, h, isVNode, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps } from '../../../core'\nimport { useListContext } from '../List.context'\n\nfunction renderListIcon(icon: any) {\n if (typeof icon === 'function') {\n return icon()\n }\n\n return isVNode(icon) ? cloneVNode(icon) : icon\n}\n\nexport const ListItem = withBoxProps(\n defineComponent({\n name: 'ListItem',\n inheritAttrs: false,\n props: {\n icon: { type: [String, Number, Object, Function], default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ListItem', null, rawProps)\n const ctx = useListContext()\n\n return () => {\n const icon = props.icon ?? ctx.icon\n\n return h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('item', { className: attrs.class, style: attrs.style as any }),\n component: 'li',\n mod: [{ withIcon: Boolean(icon), centered: ctx.center }, props.mod],\n },\n () =>\n h('div', ctx.getStyles('itemWrapper'), [\n icon ? h('span', ctx.getStyles('itemIcon'), renderListIcon(icon)) : null,\n h('span', ctx.getStyles('itemLabel'), slots.default?.()),\n ]),\n )\n }\n },\n }),\n)\n",".root {\n --list-fz: var(--mantine-font-size-md);\n --list-lh: var(--mantine-line-height-md);\n --list-marker-gap: var(--mantine-spacing-lg);\n\n list-style-position: outside;\n font-size: var(--list-fz);\n line-height: var(--list-lh);\n margin: 0;\n padding: 0;\n padding-inline-start: var(--list-marker-gap);\n\n &[data-type='none'] {\n --list-marker-gap: 0;\n }\n\n &:where([data-with-padding]) {\n padding-inline-start: calc(var(--list-marker-gap) + var(--mantine-spacing-md));\n }\n}\n\n.item {\n white-space: normal;\n line-height: var(--list-lh);\n\n &:where([data-with-icon]) {\n list-style: none;\n\n & .itemWrapper {\n --li-direction: row;\n --li-align: center;\n }\n }\n\n &:where(:not(:first-of-type)) {\n margin-top: var(--list-spacing, 0);\n }\n\n &:where([data-centered]) {\n line-height: 1;\n }\n}\n\n.itemWrapper {\n display: inline-flex;\n flex-direction: var(--li-direction, column);\n align-items: var(--li-align, flex-start);\n white-space: normal;\n}\n\n.itemIcon {\n display: inline-block;\n vertical-align: middle;\n margin-inline-end: var(--mantine-spacing-sm);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getLineHeight,\n getSpacing,\n useProps,\n useStyles,\n} from '../../core'\nimport { ListItem } from './ListItem/ListItem'\nimport { provideListContext } from './List.context'\nimport classes from './List.module.css'\n\nconst defaultProps = {\n type: 'unordered',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { size, spacing }) => ({\n root: {\n '--list-fz': getFontSize(size),\n '--list-lh': getLineHeight(size),\n '--list-spacing': getSpacing(spacing),\n },\n}))\n\nconst ListBase = defineComponent({\n name: 'List',\n inheritAttrs: false,\n props: {\n type: { type: String as PropType<'ordered' | 'unordered'>, default: undefined },\n withPadding: { type: Boolean, default: false },\n size: { type: String, default: undefined },\n icon: { type: [String, Number, Object, Function], default: undefined },\n spacing: [String, Number] as PropType<string | number>,\n center: { type: Boolean, default: false },\n listStyleType: { type: String, default: undefined },\n start: { type: Number, default: undefined },\n reversed: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('List', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'List',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n provideListContext({\n getStyles,\n center: props.center,\n icon: props.icon,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { style: { listStyleType: props.listStyleType } }),\n component: props.type === 'unordered' ? 'ul' : 'ol',\n start: props.type === 'ordered' ? props.start : undefined,\n reversed: props.type === 'ordered' && props.reversed ? '' : undefined,\n mod: [\n {\n withPadding: props.withPadding,\n type: props.icon ? 'none' : props.listStyleType,\n },\n props.mod,\n ],\n },\n () => slots.default?.(),\n )\n },\n})\n\nexport const List = withBoxProps(\n Object.assign(ListBase, {\n Item: ListItem,\n }),\n)\n","import { rem } from '../../../core'\nimport type { IndicatorPosition } from '../Indicator.types'\n\nexport function getPositionVariables(\n position: IndicatorPosition = 'top-end',\n offset: number | { x: number; y: number } = 0,\n) {\n const variables: Record<string, string | undefined> = {\n '--indicator-top': undefined,\n '--indicator-bottom': undefined,\n '--indicator-left': undefined,\n '--indicator-right': undefined,\n '--indicator-translate-x': undefined,\n '--indicator-translate-y': undefined,\n }\n\n const offsetX = typeof offset === 'number' ? offset : offset.x\n const offsetY = typeof offset === 'number' ? offset : offset.y\n const [side, placement] = position.split('-')\n\n if (side === 'top') {\n variables['--indicator-top'] = rem(offsetY)\n variables['--indicator-translate-y'] = '-50%'\n }\n\n if (side === 'middle') {\n variables['--indicator-top'] = '50%'\n variables['--indicator-translate-y'] = '-50%'\n }\n\n if (side === 'bottom') {\n variables['--indicator-bottom'] = rem(offsetY)\n variables['--indicator-translate-y'] = '50%'\n }\n\n if (placement === 'start') {\n variables['--indicator-left'] = rem(offsetX)\n variables['--indicator-translate-x'] = '-50%'\n }\n\n if (placement === 'center') {\n variables['--indicator-left'] = '50%'\n variables['--indicator-translate-x'] = '-50%'\n }\n\n if (placement === 'end') {\n variables['--indicator-right'] = rem(offsetX)\n variables['--indicator-translate-x'] = '50%'\n }\n\n return variables\n}\n","@keyframes processing {\n 0% {\n opacity: 0.6;\n transform: scale(0);\n }\n\n 100% {\n opacity: 0;\n transform: scale(2.8);\n }\n}\n\n.root {\n --indicator-size: 10px;\n --indicator-color: var(--mantine-primary-color-filled);\n\n position: relative;\n display: block;\n\n &:where([data-inline]) {\n display: inline-block;\n }\n}\n\n.indicator {\n position: absolute;\n top: var(--indicator-top);\n left: var(--indicator-left);\n right: var(--indicator-right);\n bottom: var(--indicator-bottom);\n transform: translate(var(--indicator-translate-x), var(--indicator-translate-y));\n min-width: var(--indicator-size);\n height: var(--indicator-size);\n border-radius: var(--indicator-radius, 1000rem);\n z-index: var(--indicator-z-index, 200);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--mantine-font-size-xs);\n background-color: var(--indicator-color);\n color: var(--indicator-text-color, var(--mantine-color-white));\n white-space: nowrap;\n\n &::before {\n content: '';\n position: absolute;\n inset: 0;\n background-color: var(--indicator-color);\n border-radius: var(--indicator-radius, 1000rem);\n z-index: -1;\n }\n\n &:where([data-with-label]) {\n padding-inline: calc(var(--mantine-spacing-xs) / 2);\n }\n\n &:where([data-with-border]) {\n border: 2px solid var(--mantine-color-body);\n }\n\n &[data-processing] {\n &::before {\n animation: processing 1000ms linear infinite;\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport { getPositionVariables } from './get-position-variables/get-position-variables'\nimport type { IndicatorPosition } from './Indicator.types'\nimport classes from './Indicator.module.css'\n\nconst defaultProps = {\n position: 'top-end',\n offset: 0,\n showZero: true,\n zIndex: 200,\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { color, position, offset, size, radius, zIndex, autoContrast }) => ({\n root: {\n '--indicator-color': color ? getThemeColor(color, theme) : undefined,\n '--indicator-text-color': getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n '--indicator-size': rem(size),\n '--indicator-radius': radius === undefined ? undefined : getRadius(radius),\n '--indicator-z-index': zIndex?.toString(),\n ...getPositionVariables(position, offset),\n },\n }),\n)\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport const Indicator = withBoxProps(\n defineComponent({\n name: 'Indicator',\n inheritAttrs: false,\n props: {\n position: { type: String as PropType<IndicatorPosition>, default: undefined },\n offset: {\n type: [Number, Object] as PropType<number | { x: number; y: number }>,\n default: undefined,\n },\n inline: { type: Boolean, default: false },\n size: [String, Number] as PropType<string | number>,\n label: { type: [String, Number, Object, Function], default: undefined },\n radius: [String, Number] as PropType<string | number>,\n color: { type: String, default: undefined },\n withBorder: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n processing: { type: Boolean, default: false },\n zIndex: [String, Number] as PropType<string | number>,\n autoContrast: { type: Boolean, default: undefined },\n maxValue: { type: Number, default: undefined },\n showZero: { type: Boolean, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Indicator', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Indicator',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const shouldHideZero = !props.showZero && (props.label === 0 || props.label === '0')\n const formattedLabel =\n props.maxValue !== undefined &&\n typeof props.label === 'number' &&\n props.label > props.maxValue\n ? `${props.maxValue}+`\n : props.label\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n mod: [{ inline: props.inline }, props.mod],\n },\n () => [\n !props.disabled && !shouldHideZero\n ? h(\n Box,\n {\n ...getStyles('indicator'),\n mod: {\n withLabel: Boolean(props.label),\n withBorder: props.withBorder,\n processing: props.processing,\n },\n },\n () => renderContent(formattedLabel),\n )\n : null,\n slots.default?.(),\n ],\n )\n }\n },\n }),\n)\n","/* Avatar.Group root element */\n.group {\n --ag-spacing: var(--mantine-spacing-sm);\n --ag-offset: calc(var(--ag-spacing) * -1);\n\n display: flex;\n padding-inline-start: var(--ag-spacing);\n}\n\n/* Avatar root element */\n.root {\n --avatar-size-xs: 16px;\n --avatar-size-sm: 26px;\n --avatar-size-md: 38px;\n --avatar-size-lg: 56px;\n --avatar-size-xl: 84px;\n\n --avatar-size: var(--avatar-size-md);\n --avatar-radius: 1000px;\n --avatar-bg: var(--mantine-color-gray-light);\n --avatar-bd: 1px solid transparent;\n --avatar-color: var(--mantine-color-gray-light-color);\n --avatar-placeholder-fz: calc(var(--avatar-size) / 2.5);\n\n -webkit-tap-highlight-color: transparent;\n position: relative;\n display: block;\n user-select: none;\n overflow: hidden;\n border-radius: var(--avatar-radius);\n text-decoration: none;\n padding: 0;\n width: var(--avatar-size);\n height: var(--avatar-size);\n min-width: var(--avatar-size);\n\n &:where([data-within-group]) {\n margin-inline-start: var(--ag-offset);\n border: 2px solid var(--mantine-color-body);\n background: var(--mantine-color-body);\n }\n}\n\n.image {\n object-fit: cover;\n width: 100%;\n height: 100%;\n display: block;\n}\n\n.placeholder {\n font-weight: var(--mantine-font-weight-bold);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n user-select: none;\n border-radius: var(--avatar-radius);\n font-size: var(--avatar-placeholder-fz);\n background: var(--avatar-bg);\n border: var(--avatar-bd);\n color: var(--avatar-color);\n\n & > [data-avatar-placeholder-icon] {\n width: 70%;\n height: 70%;\n }\n}\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSpacing,\n useProps,\n useStyles,\n} from '../../../core'\nimport classes from '../Avatar.module.css'\n\nexport interface AvatarGroupContextValue {\n withinGroup: boolean\n}\n\nexport const AvatarGroupContextKey = Symbol(\n 'AvatarGroupContext',\n) as InjectionKey<AvatarGroupContextValue>\n\nexport function useAvatarGroupContext() {\n return inject(AvatarGroupContextKey, { withinGroup: false })\n}\n\nconst varsResolver = createVarsResolver<any>((_, { spacing }) => ({\n group: {\n '--ag-spacing': getSpacing(spacing),\n },\n}))\n\nexport const AvatarGroup = withBoxProps(\n defineComponent({\n name: 'AvatarGroup',\n inheritAttrs: false,\n props: {\n spacing: [String, Number] as PropType<string | number>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('AvatarGroup', null, rawProps)\n const getStyles = useStyles({\n name: 'AvatarGroup',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n provide(AvatarGroupContextKey, { withinGroup: true })\n\n return () => h(Box, { ...attrs, ...getStyles('group') }, () => slots.default?.())\n },\n }),\n)\n","import { defineComponent, h } from 'vue'\n\nexport const AvatarPlaceholderIcon = defineComponent({\n name: 'AvatarPlaceholderIcon',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n ...attrs,\n 'data-avatar-placeholder-icon': true,\n viewBox: '0 0 15 15',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n },\n [\n h('path', {\n d: 'M0.877014 7.49988C0.877014 3.84219 3.84216 0.877045 7.49985 0.877045C11.1575 0.877045 14.1227 3.84219 14.1227 7.49988C14.1227 11.1575 11.1575 14.1227 7.49985 14.1227C3.84216 14.1227 0.877014 11.1575 0.877014 7.49988ZM7.49985 1.82704C4.36683 1.82704 1.82701 4.36686 1.82701 7.49988C1.82701 8.97196 2.38774 10.3131 3.30727 11.3213C4.19074 9.94119 5.73818 9.02499 7.50023 9.02499C9.26206 9.02499 10.8093 9.94097 11.6929 11.3208C12.6121 10.3127 13.1727 8.97172 13.1727 7.49988C13.1727 4.36686 10.6328 1.82704 7.49985 1.82704ZM10.9818 11.9787C10.2839 10.7795 8.9857 9.97499 7.50023 9.97499C6.01458 9.97499 4.71624 10.7797 4.01845 11.9791C4.97952 12.7272 6.18765 13.1727 7.49985 13.1727C8.81227 13.1727 10.0206 12.727 10.9818 11.9787ZM5.14999 6.50487C5.14999 5.207 6.20212 4.15487 7.49999 4.15487C8.79786 4.15487 9.84999 5.207 9.84999 6.50487C9.84999 7.80274 8.79786 8.85487 7.49999 8.85487C6.20212 8.85487 5.14999 7.80274 5.14999 6.50487ZM7.49999 5.10487C6.72679 5.10487 6.09999 5.73167 6.09999 6.50487C6.09999 7.27807 6.72679 7.90487 7.49999 7.90487C8.27319 7.90487 8.89999 7.27807 8.89999 6.50487C8.89999 5.73167 8.27319 5.10487 7.49999 5.10487Z',\n fill: 'currentColor',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }),\n ],\n )\n },\n})\n","export function getInitials(name: string, limit = 2) {\n const parts = name.split(' ')\n\n if (parts.length === 1) {\n return name.slice(0, limit).toUpperCase()\n }\n\n return parts\n .map((part) => part[0])\n .slice(0, limit)\n .join('')\n .toUpperCase()\n}\n","function hashCode(input: string) {\n let hash = 0\n\n for (let i = 0; i < input.length; i += 1) {\n const char = input.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash |= 0\n }\n\n return hash\n}\n\nconst defaultColors = [\n 'blue',\n 'cyan',\n 'grape',\n 'green',\n 'indigo',\n 'lime',\n 'orange',\n 'pink',\n 'red',\n 'teal',\n 'violet',\n]\n\nexport function getInitialsColor(name: string, colors: string[] = defaultColors) {\n const hash = hashCode(name)\n const index = Math.abs(hash) % colors.length\n return colors[index]\n}\n","import { defineComponent, h, ref, watch, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../core'\nimport { AvatarGroup } from './AvatarGroup/AvatarGroup'\nimport { useAvatarGroupContext } from './AvatarGroup/AvatarGroup'\nimport { AvatarPlaceholderIcon } from './AvatarPlaceholderIcon'\nimport { getInitials } from './get-initials/get-initials'\nimport { getInitialsColor } from './get-initials-color/get-initials-color'\nimport classes from './Avatar.module.css'\n\nexport type AvatarVariant =\n | 'filled'\n | 'light'\n | 'gradient'\n | 'outline'\n | 'transparent'\n | 'default'\n | 'white'\n\nconst varsResolver = createVarsResolver<any>(\n (\n theme,\n { size, radius, variant, gradient, color, autoContrast, name, allowedInitialsColors },\n ) => {\n const resolvedColor =\n color === 'initials' && typeof name === 'string'\n ? getInitialsColor(name, allowedInitialsColors)\n : color\n\n const colors = theme.variantColorResolver({\n color: resolvedColor || 'gray',\n theme,\n gradient,\n variant: variant || 'light',\n autoContrast,\n })\n\n return {\n root: {\n '--avatar-size': getSize(size, 'avatar-size'),\n '--avatar-radius': radius === undefined ? undefined : getRadius(radius),\n '--avatar-bg': resolvedColor || variant ? colors.background : undefined,\n '--avatar-color': resolvedColor || variant ? colors.color : undefined,\n '--avatar-bd': resolvedColor || variant ? colors.border : undefined,\n },\n }\n },\n)\n\nconst AvatarBase = defineComponent({\n name: 'Avatar',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n size: [String, Number] as PropType<string | number>,\n radius: [String, Number] as PropType<string | number>,\n color: { type: String as PropType<string | 'initials'>, default: undefined },\n gradient: {\n type: Object as PropType<{ from: string; to: string; deg?: number }>,\n default: undefined,\n },\n src: { type: String as PropType<string | null>, default: undefined },\n alt: { type: String, default: undefined },\n imageProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n name: { type: String, default: undefined },\n allowedInitialsColors: { type: Array as PropType<string[]>, default: undefined },\n variant: { type: String as PropType<AvatarVariant>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Avatar', null, rawProps)\n const groupCtx = useAvatarGroupContext()\n const imageError = ref(!rawProps.src)\n const getStyles = useStyles({\n name: 'Avatar',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n watch(\n () => rawProps.src,\n (src) => {\n imageError.value = !src\n },\n )\n\n return () => {\n const src = rawProps.src\n const imageProps = rawProps.imageProps ?? {}\n const placeholder =\n slots.default?.() || (rawProps.name ? getInitials(rawProps.name) : h(AvatarPlaceholderIcon))\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root'),\n component: props.component,\n mod: [{ withinGroup: groupCtx.withinGroup }, props.mod],\n },\n () =>\n imageError.value || !src\n ? h('span', { ...getStyles('placeholder'), title: rawProps.alt }, placeholder)\n : h('img', {\n ...imageProps,\n ...getStyles('image'),\n src,\n alt: rawProps.alt,\n onError: (event: Event) => {\n imageError.value = true\n imageProps.onError?.(event)\n },\n }),\n )\n }\n },\n})\n\nexport const Avatar = withBoxProps(\n Object.assign(AvatarBase, {\n Group: AvatarGroup,\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n filterProps,\n getBaseValue,\n getSpacing,\n getSortedBreakpoints,\n InlineStyles,\n keys,\n px,\n rem,\n useMantineTheme,\n} from '../../core'\n\ntype StyleProp<T> = T | Partial<Record<string, T>>\n\nfunction getMinColWidthValue(value: string | number | undefined): string | undefined {\n if (value === undefined) {\n return undefined\n }\n\n return typeof value === 'number' ? rem(value) : value\n}\n\nfunction isObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport const SimpleGridMediaVariables = defineComponent({\n name: 'SimpleGridMediaVariables',\n props: {\n selector: { type: String, required: true },\n cols: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n spacing: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n verticalSpacing: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n minColWidth: [String, Number] as PropType<string | number>,\n autoRows: { type: String, default: undefined },\n },\n setup(props) {\n const theme = useMantineTheme()\n\n return () => {\n const verticalSpacing =\n props.verticalSpacing === undefined ? props.spacing : props.verticalSpacing\n const useAutoColumns = props.minColWidth !== undefined\n const baseStyles = filterProps({\n '--sg-spacing-x': getSpacing(getBaseValue(props.spacing)),\n '--sg-spacing-y': getSpacing(getBaseValue(verticalSpacing)),\n '--sg-auto-rows': props.autoRows,\n ...(useAutoColumns\n ? { '--sg-min-col-width': getMinColWidthValue(props.minColWidth) }\n : { '--sg-cols': getBaseValue(props.cols)?.toString() }),\n })\n\n const queries = keys(theme.value.breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n acc[breakpoint] = acc[breakpoint] ?? {}\n\n if (isObject(props.spacing) && props.spacing[breakpoint] !== undefined) {\n acc[breakpoint]['--sg-spacing-x'] = getSpacing(props.spacing[breakpoint])\n }\n\n if (isObject(verticalSpacing) && verticalSpacing[breakpoint] !== undefined) {\n acc[breakpoint]['--sg-spacing-y'] = getSpacing(verticalSpacing[breakpoint])\n }\n\n if (!useAutoColumns && isObject(props.cols) && props.cols[breakpoint] !== undefined) {\n acc[breakpoint]['--sg-cols'] = props.cols[breakpoint]\n }\n\n return acc\n },\n {},\n )\n\n const media = getSortedBreakpoints(theme.value.breakpoints).reduce<\n Record<string, Record<string, any>>\n >((acc, item) => {\n if (keys(queries[item.breakpoint] ?? {}).length > 0) {\n acc[`(min-width: ${theme.value.breakpoints[item.breakpoint]})`] = queries[item.breakpoint]\n }\n\n return acc\n }, {})\n\n return h(InlineStyles, { selector: props.selector, styles: baseStyles, media })\n }\n },\n})\n\nfunction getBreakpoints(values: unknown) {\n return isObject(values) ? keys(values).filter((breakpoint) => breakpoint !== 'base') : []\n}\n\nfunction sortBreakpoints(breakpoints: string[]) {\n return breakpoints.sort((a, b) => px(a) - px(b))\n}\n\nexport const SimpleGridContainerVariables = defineComponent({\n name: 'SimpleGridContainerVariables',\n props: {\n selector: { type: String, required: true },\n cols: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n spacing: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n verticalSpacing: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n minColWidth: [String, Number] as PropType<string | number>,\n autoRows: { type: String, default: undefined },\n },\n setup(props) {\n return () => {\n const verticalSpacing =\n props.verticalSpacing === undefined ? props.spacing : props.verticalSpacing\n const useAutoColumns = props.minColWidth !== undefined\n const baseStyles = filterProps({\n '--sg-spacing-x': getSpacing(getBaseValue(props.spacing)),\n '--sg-spacing-y': getSpacing(getBaseValue(verticalSpacing)),\n '--sg-auto-rows': props.autoRows,\n ...(useAutoColumns\n ? { '--sg-min-col-width': getMinColWidthValue(props.minColWidth) }\n : { '--sg-cols': getBaseValue(props.cols)?.toString() }),\n })\n const breakpoints = sortBreakpoints(\n Array.from(\n new Set([\n ...getBreakpoints(props.spacing),\n ...getBreakpoints(verticalSpacing),\n ...(useAutoColumns ? [] : getBreakpoints(props.cols)),\n ]),\n ),\n )\n\n const container = breakpoints.reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n acc[`simple-grid (min-width: ${breakpoint})`] = {}\n\n if (isObject(props.spacing) && props.spacing[breakpoint] !== undefined) {\n acc[`simple-grid (min-width: ${breakpoint})`]['--sg-spacing-x'] = getSpacing(\n props.spacing[breakpoint],\n )\n }\n\n if (isObject(verticalSpacing) && verticalSpacing[breakpoint] !== undefined) {\n acc[`simple-grid (min-width: ${breakpoint})`]['--sg-spacing-y'] = getSpacing(\n verticalSpacing[breakpoint],\n )\n }\n\n if (!useAutoColumns && isObject(props.cols) && props.cols[breakpoint] !== undefined) {\n acc[`simple-grid (min-width: ${breakpoint})`]['--sg-cols'] = props.cols[breakpoint]\n }\n\n return acc\n },\n {},\n )\n\n return h(InlineStyles, { selector: props.selector, styles: baseStyles, container })\n }\n },\n})\n",".container {\n container: simple-grid / inline-size;\n}\n\n.root {\n display: grid;\n grid-template-columns: repeat(var(--sg-cols), minmax(0, 1fr));\n grid-auto-rows: var(--sg-auto-rows, auto);\n gap: var(--sg-spacing-y) var(--sg-spacing-x);\n}\n\n.root[data-auto-cols='auto-fill'] {\n grid-template-columns: repeat(auto-fill, minmax(var(--sg-min-col-width), 1fr));\n}\n\n.root[data-auto-cols='auto-fit'] {\n grid-template-columns: repeat(auto-fit, minmax(var(--sg-min-col-width), 1fr));\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps, useRandomClassName, useStyles } from '../../core'\nimport { SimpleGridContainerVariables, SimpleGridMediaVariables } from './SimpleGridVariables'\nimport classes from './SimpleGrid.module.css'\n\ntype StyleProp<T> = T | Partial<Record<string, T>>\n\nconst defaultProps = {\n cols: 1,\n spacing: 'md',\n type: 'media',\n} as const\n\nexport const SimpleGrid = withBoxProps(\n defineComponent({\n name: 'SimpleGrid',\n inheritAttrs: false,\n props: {\n cols: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n spacing: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n verticalSpacing: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n type: { type: String as PropType<'media' | 'container'>, default: undefined },\n minColWidth: [String, Number] as PropType<string | number>,\n autoFlow: { type: String as PropType<'auto-fit' | 'auto-fill'>, default: undefined },\n autoRows: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('SimpleGrid', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'SimpleGrid',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n })\n const responsiveClassName = useRandomClassName()\n\n return () => {\n const autoColsAttr =\n props.minColWidth !== undefined ? props.autoFlow || 'auto-fill' : undefined\n const variablesProps = {\n selector: `.${responsiveClassName}`,\n cols: props.cols,\n spacing: props.spacing,\n verticalSpacing: props.verticalSpacing,\n minColWidth: props.minColWidth,\n autoRows: props.autoRows,\n }\n const root = h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: responsiveClassName }),\n 'data-auto-cols': autoColsAttr,\n },\n () => slots.default?.(),\n )\n\n if (props.type === 'container') {\n return [\n h(SimpleGridContainerVariables, variablesProps),\n h('div', getStyles('container'), root),\n ]\n }\n\n return [h(SimpleGridMediaVariables, variablesProps), root]\n }\n },\n }),\n)\n","import { createSafeContext } from '../../core'\n\nexport type GridBreakpoints = Record<string, string>\n\nexport interface GridContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any }) => any\n grow?: boolean\n columns: number\n breakpoints?: GridBreakpoints\n type?: 'container' | 'media'\n}\n\nexport const [provideGridContext, useGridContext] = createSafeContext<GridContextValue>(\n 'Grid component was not found in tree',\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n filterProps,\n getBaseValue,\n getSortedBreakpoints,\n InlineStyles,\n keys,\n useMantineTheme,\n} from '../../../core'\nimport { useGridContext } from '../Grid.context'\n\nexport type ColSpan = number | 'auto' | 'content'\ntype StyleProp<T> = T | Partial<Record<string, T>>\n\nfunction isObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nconst getColumnFlexBasis = (span: ColSpan | undefined, columns: number) => {\n if (span === 'content') {\n return 'auto'\n }\n\n if (span === 'auto') {\n return '0rem'\n }\n\n if (!span) {\n return undefined\n }\n\n if (span === columns) {\n return '100%'\n }\n\n const percentage = (100 * span) / columns\n const gapFactor = (columns - span) / columns\n return `calc(${percentage}% - ${gapFactor} * var(--grid-column-gap))`\n}\n\nconst getColumnMaxWidth = (span: ColSpan | undefined, columns: number, grow?: boolean) => {\n if (grow || span === 'auto') {\n return '100%'\n }\n\n if (span === 'content') {\n return 'unset'\n }\n\n return getColumnFlexBasis(span, columns)\n}\n\nconst getColumnFlexGrow = (span: ColSpan | undefined, grow?: boolean) => {\n if (!span) {\n return undefined\n }\n\n return span === 'auto' || grow ? '1' : 'auto'\n}\n\nconst getColumnOffset = (offset: number | undefined, columns: number) => {\n if (offset === 0) {\n return '0'\n }\n\n if (!offset) {\n return undefined\n }\n\n const percentage = (100 * offset) / columns\n const gapFactor = offset / columns\n return `calc(${percentage}% + ${gapFactor} * var(--grid-column-gap))`\n}\n\nexport const GridColVariables = defineComponent({\n name: 'GridColVariables',\n props: {\n selector: { type: String, required: true },\n span: { type: [Number, String, Object] as PropType<StyleProp<ColSpan>>, default: undefined },\n order: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n offset: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n align: { type: [String, Object] as PropType<StyleProp<string>>, default: undefined },\n },\n setup(props) {\n const theme = useMantineTheme()\n const ctx = useGridContext()\n\n return () => {\n const breakpoints = ctx.breakpoints || theme.value.breakpoints\n const baseSpan = (getBaseValue(props.span) ?? 12) as ColSpan\n const baseOrder = getBaseValue(props.order as any) as number | undefined\n const baseOffset = getBaseValue(props.offset as any) as number | undefined\n const baseAlign = getBaseValue(props.align as any) as string | undefined\n const baseStyles = filterProps({\n '--col-order': baseOrder?.toString(),\n '--col-flex-grow': getColumnFlexGrow(baseSpan, ctx.grow),\n '--col-flex-basis': getColumnFlexBasis(baseSpan, ctx.columns),\n '--col-width': baseSpan === 'content' ? 'auto' : undefined,\n '--col-max-width': getColumnMaxWidth(baseSpan, ctx.columns, ctx.grow),\n '--col-offset': getColumnOffset(baseOffset, ctx.columns),\n '--col-align-self': baseAlign,\n })\n const queries = keys(breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n acc[breakpoint] = {}\n\n if (isObject(props.order) && props.order[breakpoint] !== undefined) {\n acc[breakpoint]['--col-order'] = props.order[breakpoint]?.toString()\n }\n\n if (isObject(props.span) && props.span[breakpoint] !== undefined) {\n const span = props.span[breakpoint] as ColSpan\n acc[breakpoint]['--col-flex-grow'] = getColumnFlexGrow(span, ctx.grow)\n acc[breakpoint]['--col-flex-basis'] = getColumnFlexBasis(span, ctx.columns)\n acc[breakpoint]['--col-width'] = span === 'content' ? 'auto' : undefined\n acc[breakpoint]['--col-max-width'] = getColumnMaxWidth(span, ctx.columns, ctx.grow)\n }\n\n if (isObject(props.offset) && props.offset[breakpoint] !== undefined) {\n acc[breakpoint]['--col-offset'] = getColumnOffset(props.offset[breakpoint], ctx.columns)\n }\n\n if (isObject(props.align) && props.align[breakpoint] !== undefined) {\n acc[breakpoint]['--col-align-self'] = props.align[breakpoint]\n }\n\n return acc\n },\n {},\n )\n const values = getSortedBreakpoints(breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, item) => {\n if (keys(queries[item.breakpoint] ?? {}).length > 0) {\n const query =\n ctx.type === 'container'\n ? `mantine-grid (min-width: ${breakpoints[item.breakpoint]})`\n : `(min-width: ${breakpoints[item.breakpoint]})`\n acc[query] = queries[item.breakpoint]\n }\n\n return acc\n },\n {},\n )\n\n return h(InlineStyles as any, {\n selector: props.selector,\n styles: baseStyles,\n media: ctx.type === 'container' ? undefined : values,\n container: ctx.type === 'container' ? values : undefined,\n })\n }\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps, useRandomClassName } from '../../../core'\nimport { useGridContext } from '../Grid.context'\nimport { GridColVariables, type ColSpan } from './GridColVariables'\n\ntype StyleProp<T> = T | Partial<Record<string, T>>\n\nconst defaultProps = {\n span: 12,\n} as const\n\nexport const GridCol = withBoxProps(\n defineComponent({\n name: 'GridCol',\n inheritAttrs: false,\n props: {\n span: { type: [Number, String, Object] as PropType<StyleProp<ColSpan>>, default: undefined },\n order: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n offset: { type: [Number, Object] as PropType<StyleProp<number>>, default: undefined },\n align: { type: [String, Object] as PropType<StyleProp<string>>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('GridCol', defaultProps, rawProps)\n const ctx = useGridContext()\n const responsiveClassName = useRandomClassName()\n\n return () => [\n h(GridColVariables, {\n selector: `.${responsiveClassName}`,\n span: props.span,\n order: props.order,\n offset: props.offset,\n align: props.align,\n }),\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('col', {\n className: [attrs.class, responsiveClassName],\n style: attrs.style as any,\n }),\n },\n () => slots.default?.(),\n ),\n ]\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n filterProps,\n getBaseValue,\n getSortedBreakpoints,\n getSpacing,\n InlineStyles,\n keys,\n useMantineTheme,\n} from '../../core'\nimport type { GridBreakpoints } from './Grid.context'\n\ntype StyleProp<T> = T | Partial<Record<string, T>>\n\nfunction isObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport const GridVariables = defineComponent({\n name: 'GridVariables',\n props: {\n selector: { type: String, required: true },\n gap: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n rowGap: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n columnGap: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n breakpoints: { type: Object as PropType<GridBreakpoints>, default: undefined },\n type: { type: String as PropType<'container' | 'media'>, default: undefined },\n },\n setup(props) {\n const theme = useMantineTheme()\n\n return () => {\n const breakpoints = props.breakpoints || theme.value.breakpoints\n const baseStyles = filterProps({\n '--grid-gap': getSpacing(getBaseValue(props.gap)),\n '--grid-row-gap': getSpacing(getBaseValue(props.rowGap)),\n '--grid-column-gap': getSpacing(getBaseValue(props.columnGap)),\n })\n const queries = keys(breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, breakpoint) => {\n acc[breakpoint] = {}\n\n if (isObject(props.gap) && props.gap[breakpoint] !== undefined) {\n acc[breakpoint]['--grid-gap'] = getSpacing(props.gap[breakpoint])\n }\n\n if (isObject(props.rowGap) && props.rowGap[breakpoint] !== undefined) {\n acc[breakpoint]['--grid-row-gap'] = getSpacing(props.rowGap[breakpoint])\n }\n\n if (isObject(props.columnGap) && props.columnGap[breakpoint] !== undefined) {\n acc[breakpoint]['--grid-column-gap'] = getSpacing(props.columnGap[breakpoint])\n }\n\n return acc\n },\n {},\n )\n const values = getSortedBreakpoints(breakpoints).reduce<Record<string, Record<string, any>>>(\n (acc, item) => {\n if (keys(queries[item.breakpoint] ?? {}).length > 0) {\n const query =\n props.type === 'container'\n ? `mantine-grid (min-width: ${breakpoints[item.breakpoint]})`\n : `(min-width: ${breakpoints[item.breakpoint]})`\n acc[query] = queries[item.breakpoint]\n }\n\n return acc\n },\n {},\n )\n\n return h(InlineStyles, {\n selector: props.selector,\n styles: baseStyles,\n media: props.type === 'container' ? undefined : values,\n container: props.type === 'container' ? values : undefined,\n })\n }\n },\n})\n",".container {\n container: mantine-grid / inline-size;\n}\n\n.root {\n --grid-overflow: visible;\n --grid-column-gap: var(--grid-gap);\n --grid-row-gap: var(--grid-gap);\n\n overflow: var(--grid-overflow);\n}\n\n.inner {\n display: flex;\n flex-wrap: wrap;\n justify-content: var(--grid-justify);\n align-items: var(--grid-align);\n gap: var(--grid-row-gap) var(--grid-column-gap);\n}\n\n.col {\n --col-flex-grow: 0;\n --col-offset: 0rem;\n\n flex-shrink: 0;\n order: var(--col-order);\n flex-basis: var(--col-flex-basis);\n width: var(--col-width);\n max-width: var(--col-max-width);\n flex-grow: var(--col-flex-grow);\n margin-inline-start: var(--col-offset);\n align-self: var(--col-align-self);\n}\n","import { defineComponent, h, reactive, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n useProps,\n useRandomClassName,\n useStyles,\n} from '../../core'\nimport { GridCol } from './GridCol/GridCol'\nimport { provideGridContext, type GridBreakpoints } from './Grid.context'\nimport { GridVariables } from './GridVariables'\nimport classes from './Grid.module.css'\n\ntype StyleProp<T> = T | Partial<Record<string, T>>\n\nconst defaultProps = {\n gap: 'md',\n columns: 12,\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { justify, align, overflow }) => ({\n root: {\n '--grid-justify': justify,\n '--grid-align': align,\n '--grid-overflow': overflow,\n },\n}))\n\nconst GridBase = defineComponent({\n name: 'Grid',\n inheritAttrs: false,\n props: {\n gap: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n rowGap: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n columnGap: {\n type: [String, Number, Object] as PropType<StyleProp<string | number>>,\n default: undefined,\n },\n grow: { type: Boolean, default: false },\n justify: { type: String, default: undefined },\n align: { type: String, default: undefined },\n columns: { type: Number, default: undefined },\n overflow: { type: String, default: undefined },\n type: { type: String as PropType<'media' | 'container'>, default: undefined },\n breakpoints: { type: Object as PropType<GridBreakpoints>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Grid', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Grid',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n const responsiveClassName = useRandomClassName()\n\n const ctx = reactive({\n getStyles,\n get grow() {\n return props.grow\n },\n get columns() {\n return props.columns ?? 12\n },\n get breakpoints() {\n return props.breakpoints\n },\n get type() {\n return props.type\n },\n })\n provideGridContext(ctx as any)\n\n return () => {\n const variables = h(GridVariables, {\n selector: `.${responsiveClassName}`,\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n breakpoints: props.breakpoints,\n type: props.type,\n })\n const root = h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: responsiveClassName }),\n },\n () => h('div', getStyles('inner'), slots.default?.()),\n )\n\n if (props.type === 'container' && props.breakpoints) {\n return [variables, h('div', getStyles('container'), root)]\n }\n\n return [variables, root]\n }\n },\n})\n\nexport const Grid = withBoxProps(\n Object.assign(GridBase, {\n Col: GridCol,\n }),\n)\n","import type { Ref } from 'vue'\nimport { createSafeContext } from '../../core'\n\nexport interface ScrollAreaContextValue {\n type: 'auto' | 'always' | 'scroll' | 'hover' | 'never'\n scrollHideDelay: number\n scrollbars?: 'x' | 'y' | 'xy' | false\n viewport: Ref<HTMLDivElement | null>\n onViewportChange: (node: HTMLDivElement | null) => void\n content: Ref<HTMLDivElement | null>\n onContentChange: (node: HTMLDivElement | null) => void\n scrollbarX: Ref<HTMLDivElement | null>\n onScrollbarXChange: (node: HTMLDivElement | null) => void\n scrollbarY: Ref<HTMLDivElement | null>\n onScrollbarYChange: (node: HTMLDivElement | null) => void\n onCornerWidthChange: (width: number) => void\n onCornerHeightChange: (height: number) => void\n getStyles: (selector: string, options?: { className?: any; style?: any }) => any\n}\n\nexport const [provideScrollAreaContext, useScrollAreaContext] =\n createSafeContext<ScrollAreaContextValue>('ScrollArea.Root component was not found in tree')\n","import { defineComponent, h, onBeforeUnmount, ref, watch } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\n\nexport const ScrollAreaCorner = defineComponent({\n name: 'ScrollAreaCorner',\n inheritAttrs: false,\n setup(_, { attrs }) {\n const ctx = useScrollAreaContext()\n const width = ref(0)\n const height = ref(0)\n let resizeObserverX: ResizeObserver | null = null\n let resizeObserverY: ResizeObserver | null = null\n\n const updateSize = () => {\n const nextHeight = ctx.scrollbarX.value?.offsetHeight || 0\n const nextWidth = ctx.scrollbarY.value?.offsetWidth || 0\n\n height.value = nextHeight\n width.value = nextWidth\n ctx.onCornerHeightChange(nextHeight)\n ctx.onCornerWidthChange(nextWidth)\n }\n\n const observeScrollbars = () => {\n resizeObserverX?.disconnect()\n resizeObserverY?.disconnect()\n resizeObserverX = null\n resizeObserverY = null\n\n if (typeof ResizeObserver !== 'undefined') {\n if (ctx.scrollbarX.value) {\n resizeObserverX = new ResizeObserver(updateSize)\n resizeObserverX.observe(ctx.scrollbarX.value)\n }\n\n if (ctx.scrollbarY.value) {\n resizeObserverY = new ResizeObserver(updateSize)\n resizeObserverY.observe(ctx.scrollbarY.value)\n }\n }\n\n updateSize()\n }\n\n watch([ctx.scrollbarX, ctx.scrollbarY], observeScrollbars, { flush: 'post' })\n\n onBeforeUnmount(() => {\n resizeObserverX?.disconnect()\n resizeObserverY?.disconnect()\n })\n\n return () => {\n const hasSize = Boolean(width.value && height.value)\n const hasBothScrollbars = Boolean(ctx.scrollbarX.value && ctx.scrollbarY.value)\n const hasCorner = ctx.type !== 'scroll' && ctx.scrollbars === 'xy' && hasBothScrollbars\n\n return hasCorner && hasSize\n ? h('div', {\n ...attrs,\n style: [{ width: width.value, height: height.value }, attrs.style as any],\n })\n : null\n }\n },\n})\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps } from '../../../core'\nimport { provideScrollAreaContext, type ScrollAreaContextValue } from '../ScrollArea.context'\n\nconst defaultProps = {\n scrollHideDelay: 1000,\n type: 'hover',\n} as const\n\nexport const ScrollAreaRoot = withBoxProps(\n defineComponent({\n name: 'ScrollAreaRoot',\n inheritAttrs: false,\n props: {\n getStyles: {\n type: Function as PropType<ScrollAreaContextValue['getStyles']>,\n required: true,\n },\n type: {\n type: String as PropType<ScrollAreaContextValue['type']>,\n default: undefined,\n },\n scrollbars: {\n type: [String, Boolean] as PropType<ScrollAreaContextValue['scrollbars']>,\n default: undefined,\n },\n scrollHideDelay: { type: Number, default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ScrollAreaRoot', defaultProps, rawProps)\n const viewport = ref<HTMLDivElement | null>(null)\n const content = ref<HTMLDivElement | null>(null)\n const scrollbarX = ref<HTMLDivElement | null>(null)\n const scrollbarY = ref<HTMLDivElement | null>(null)\n const cornerWidth = ref(0)\n const cornerHeight = ref(0)\n\n provideScrollAreaContext({\n type: props.type ?? defaultProps.type,\n scrollHideDelay: props.scrollHideDelay ?? defaultProps.scrollHideDelay,\n scrollbars: props.scrollbars,\n viewport,\n onViewportChange: (node) => {\n viewport.value = node\n },\n content,\n onContentChange: (node) => {\n content.value = node\n },\n scrollbarX,\n onScrollbarXChange: (node) => {\n scrollbarX.value = node\n },\n scrollbarY,\n onScrollbarYChange: (node) => {\n scrollbarY.value = node\n },\n onCornerWidthChange: (width) => {\n cornerWidth.value = width\n },\n onCornerHeightChange: (height) => {\n cornerHeight.value = height\n },\n getStyles: props.getStyles,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n style: [\n {\n '--sa-corner-width': props.scrollbars !== 'xy' ? '0px' : `${cornerWidth.value}px`,\n '--sa-corner-height': props.scrollbars !== 'xy' ? '0px' : `${cornerHeight.value}px`,\n },\n attrs.style as any,\n ],\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import type { Sizes } from '../ScrollArea.types'\n\nexport function linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) {\n return output[0]\n }\n\n const ratio = (output[1] - output[0]) / (input[1] - input[0])\n return output[0] + ratio * (value - input[0])\n }\n}\n\nexport function getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize\n return Number.isNaN(ratio) ? 0 : ratio\n}\n\nexport function getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content)\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio\n return Math.max(thumbSize, 18)\n}\n\nfunction clamp(value: number, [min, max]: [number, number]) {\n return Math.min(max, Math.max(min, value))\n}\n\nexport function getThumbOffsetFromScroll(\n scrollPos: number,\n sizes: Sizes,\n dir: 'rtl' | 'ltr' = 'ltr',\n) {\n const thumbSizePx = getThumbSize(sizes)\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd\n const scrollbar = sizes.scrollbar.size - scrollbarPadding\n const maxScrollPos = sizes.content - sizes.viewport\n const maxThumbPos = scrollbar - thumbSizePx\n const scrollClampRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0]\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange as [number, number])\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos])\n\n return interpolate(scrollWithoutMomentum)\n}\n\nexport function getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: 'ltr' | 'rtl' = 'ltr',\n) {\n const thumbSizePx = getThumbSize(sizes)\n const thumbCenter = thumbSizePx / 2\n const offset = pointerOffset || thumbCenter\n const thumbOffsetFromEnd = thumbSizePx - offset\n const minPointerPos = sizes.scrollbar.paddingStart + offset\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd\n const maxScrollPos = sizes.content - sizes.viewport\n const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0]\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange as [number, number])\n\n return interpolate(pointerPos)\n}\n\nexport function isScrollingWithinScrollbarBounds(scrollPos: number, maxScrollPos: number) {\n return scrollPos > 0 && scrollPos < maxScrollPos\n}\n\nexport function toInt(value?: string) {\n return value ? parseInt(value, 10) : 0\n}\n\nexport function addUnlinkedScrollListener(node: HTMLElement, handler = () => {}) {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop }\n let rAF = 0\n\n ;(function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop }\n const isHorizontalScroll = prevPosition.left !== position.left\n const isVerticalScroll = prevPosition.top !== position.top\n\n if (isHorizontalScroll || isVerticalScroll) {\n handler()\n }\n\n prevPosition = position\n rAF = window.requestAnimationFrame(loop)\n })()\n\n return () => window.cancelAnimationFrame(rAF)\n}\n","import { createSafeContext } from '../../../core'\n\nexport interface ScrollbarContextValue {\n hasThumb: boolean\n scrollbar: HTMLDivElement | null\n onThumbChange: (thumb: HTMLDivElement | null) => void\n onThumbPointerUp: () => void\n onThumbPointerDown: (pointerPos: { x: number; y: number }) => void\n onThumbPositionChange: () => void\n}\n\nexport const [provideScrollbarContext, useScrollbarContext] =\n createSafeContext<ScrollbarContextValue>('ScrollAreaScrollbar was not found in tree')\n","import { defineComponent, h, onBeforeUnmount, onMounted, ref, watch, type PropType } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\nimport type { Sizes } from '../ScrollArea.types'\nimport { provideScrollbarContext } from './Scrollbar.context'\n\nexport interface ScrollbarPrivateProps {\n sizes: Sizes\n hasThumb: boolean\n onThumbChange: (thumb: HTMLDivElement | null) => void\n onThumbPointerUp: () => void\n onThumbPointerDown: (pointerPos: { x: number; y: number }) => void\n onThumbPositionChange: () => void\n onWheelScroll: (event: WheelEvent, maxScrollPos: number) => void\n onDragScroll: (pointerPos: { x: number; y: number }) => void\n onResize: () => void\n}\n\nexport const Scrollbar = defineComponent({\n name: 'ScrollAreaScrollbarInternal',\n inheritAttrs: false,\n props: {\n sizes: { type: Object as PropType<Sizes>, required: true },\n hasThumb: { type: Boolean, required: true },\n onThumbChange: {\n type: Function as PropType<ScrollbarPrivateProps['onThumbChange']>,\n required: true,\n },\n onThumbPointerUp: {\n type: Function as PropType<ScrollbarPrivateProps['onThumbPointerUp']>,\n required: true,\n },\n onThumbPointerDown: {\n type: Function as PropType<ScrollbarPrivateProps['onThumbPointerDown']>,\n required: true,\n },\n onThumbPositionChange: {\n type: Function as PropType<ScrollbarPrivateProps['onThumbPositionChange']>,\n required: true,\n },\n onWheelScroll: {\n type: Function as PropType<ScrollbarPrivateProps['onWheelScroll']>,\n required: true,\n },\n onDragScroll: {\n type: Function as PropType<ScrollbarPrivateProps['onDragScroll']>,\n required: true,\n },\n onResize: { type: Function as PropType<ScrollbarPrivateProps['onResize']>, required: true },\n onScrollbarMounted: {\n type: Function as PropType<(node: HTMLDivElement | null) => void>,\n default: undefined,\n },\n },\n setup(props, { attrs, slots }) {\n const context = useScrollAreaContext()\n const scrollbar = ref<HTMLDivElement | null>(null)\n const rect = ref<DOMRect | null>(null)\n const prevWebkitUserSelect = ref('')\n let resizeObserver: ResizeObserver | null = null\n let resizeFrame = 0\n\n provideScrollbarContext({\n get hasThumb() {\n return props.hasThumb\n },\n get scrollbar() {\n return scrollbar.value\n },\n onThumbChange: props.onThumbChange,\n onThumbPointerUp: props.onThumbPointerUp,\n onThumbPointerDown: props.onThumbPointerDown,\n onThumbPositionChange: props.onThumbPositionChange,\n })\n\n const handleResize = () => {\n window.cancelAnimationFrame(resizeFrame)\n resizeFrame = window.requestAnimationFrame(() => props.onResize())\n }\n\n const observeResize = () => {\n resizeObserver?.disconnect()\n resizeObserver = null\n\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize)\n\n if (scrollbar.value) {\n resizeObserver.observe(scrollbar.value)\n }\n\n if (context.content.value) {\n resizeObserver.observe(context.content.value)\n }\n }\n\n props.onResize()\n }\n\n const handleDragScroll = (event: PointerEvent) => {\n if (rect.value) {\n props.onDragScroll({\n x: event.clientX - rect.value.left,\n y: event.clientY - rect.value.top,\n })\n }\n }\n\n const handleWheel = (event: WheelEvent) => {\n const target = event.target as HTMLElement\n const isScrollbarWheel = scrollbar.value?.contains(target)\n\n if (isScrollbarWheel) {\n props.onWheelScroll(event, props.sizes.content - props.sizes.viewport)\n }\n }\n\n onMounted(() => {\n document.addEventListener('wheel', handleWheel, { passive: false })\n observeResize()\n props.onThumbPositionChange()\n })\n\n watch([scrollbar, context.content], observeResize, { flush: 'post' })\n watch(\n () => props.sizes,\n () => props.onThumbPositionChange(),\n { deep: true },\n )\n\n onBeforeUnmount(() => {\n document.removeEventListener('wheel', handleWheel)\n resizeObserver?.disconnect()\n window.cancelAnimationFrame(resizeFrame)\n })\n\n return () =>\n h(\n 'div',\n {\n ...attrs,\n ref: (node: any) => {\n const element = node?.$el ?? node ?? null\n scrollbar.value = element\n props.onScrollbarMounted?.(element)\n },\n 'data-mantine-scrollbar': true,\n style: [{ position: 'absolute' }, attrs.style as any],\n onPointerdown: (event: PointerEvent) => {\n ;(attrs.onPointerdown as ((event: PointerEvent) => void) | undefined)?.(event)\n event.preventDefault()\n\n if (event.button === 0) {\n const element = event.target as HTMLElement\n element.setPointerCapture(event.pointerId)\n rect.value = scrollbar.value?.getBoundingClientRect() ?? null\n prevWebkitUserSelect.value = document.body.style.webkitUserSelect\n document.body.style.webkitUserSelect = 'none'\n handleDragScroll(event)\n }\n },\n onPointermove: (event: PointerEvent) => {\n ;(attrs.onPointermove as ((event: PointerEvent) => void) | undefined)?.(event)\n handleDragScroll(event)\n },\n onPointerup: (event: PointerEvent) => {\n ;(attrs.onPointerup as ((event: PointerEvent) => void) | undefined)?.(event)\n const element = event.target as HTMLElement\n\n if (element.hasPointerCapture(event.pointerId)) {\n event.preventDefault()\n element.releasePointerCapture(event.pointerId)\n }\n },\n onLostpointercapture: () => {\n document.body.style.webkitUserSelect = prevWebkitUserSelect.value\n rect.value = null\n },\n },\n slots.default?.(),\n )\n },\n})\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\nimport type { ScrollAreaScrollbarAxisProps, Sizes } from '../ScrollArea.types'\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils'\nimport { Scrollbar } from './Scrollbar'\n\nexport const ScrollAreaScrollbarX = defineComponent({\n name: 'ScrollAreaScrollbarX',\n inheritAttrs: false,\n props: {\n sizes: { type: Object as PropType<Sizes>, required: true },\n hasThumb: { type: Boolean, required: true },\n onSizesChange: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onSizesChange']>,\n required: true,\n },\n onThumbChange: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbChange']>,\n required: true,\n },\n onThumbPointerDown: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbPointerDown']>,\n required: true,\n },\n onThumbPointerUp: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbPointerUp']>,\n required: true,\n },\n onThumbPositionChange: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbPositionChange']>,\n required: true,\n },\n onWheelScroll: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onWheelScroll']>,\n required: true,\n },\n onDragScroll: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onDragScroll']>,\n required: true,\n },\n },\n setup(props, { attrs, slots }) {\n const ctx = useScrollAreaContext()\n const scrollbar = ref<HTMLDivElement | null>(null)\n\n return () =>\n h(\n Scrollbar,\n {\n ...attrs,\n 'data-orientation': 'horizontal',\n sizes: props.sizes,\n hasThumb: props.hasThumb,\n onThumbChange: props.onThumbChange,\n onThumbPointerDown: (pointerPos: { x: number }) => props.onThumbPointerDown(pointerPos.x),\n onThumbPointerUp: props.onThumbPointerUp,\n onThumbPositionChange: props.onThumbPositionChange,\n onDragScroll: (pointerPos: { x: number }) => props.onDragScroll(pointerPos.x),\n onScrollbarMounted: (node: HTMLDivElement | null) => {\n scrollbar.value = node\n ctx.onScrollbarXChange(node)\n },\n style: [{ '--sa-thumb-width': `${getThumbSize(props.sizes)}px` }, attrs.style as any],\n onWheelScroll: (event: WheelEvent, maxScrollPos: number) => {\n if (ctx.viewport.value) {\n const scrollPos = ctx.viewport.value.scrollLeft + event.deltaX\n props.onWheelScroll(scrollPos)\n\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault()\n }\n }\n },\n onResize: () => {\n if (scrollbar.value && ctx.viewport.value) {\n const computedStyle = window.getComputedStyle(scrollbar.value)\n\n props.onSizesChange({\n content: ctx.viewport.value.scrollWidth,\n viewport: ctx.viewport.value.offsetWidth,\n scrollbar: {\n size: scrollbar.value.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n })\n }\n },\n },\n slots.default,\n )\n },\n})\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\nimport type { ScrollAreaScrollbarAxisProps, Sizes } from '../ScrollArea.types'\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils'\nimport { Scrollbar } from './Scrollbar'\n\nexport const ScrollAreaScrollbarY = defineComponent({\n name: 'ScrollAreaScrollbarY',\n inheritAttrs: false,\n props: {\n sizes: { type: Object as PropType<Sizes>, required: true },\n hasThumb: { type: Boolean, required: true },\n onSizesChange: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onSizesChange']>,\n required: true,\n },\n onThumbChange: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbChange']>,\n required: true,\n },\n onThumbPointerDown: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbPointerDown']>,\n required: true,\n },\n onThumbPointerUp: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbPointerUp']>,\n required: true,\n },\n onThumbPositionChange: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onThumbPositionChange']>,\n required: true,\n },\n onWheelScroll: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onWheelScroll']>,\n required: true,\n },\n onDragScroll: {\n type: Function as PropType<ScrollAreaScrollbarAxisProps['onDragScroll']>,\n required: true,\n },\n },\n setup(props, { attrs, slots }) {\n const ctx = useScrollAreaContext()\n const scrollbar = ref<HTMLDivElement | null>(null)\n\n return () =>\n h(\n Scrollbar,\n {\n ...attrs,\n 'data-orientation': 'vertical',\n sizes: props.sizes,\n hasThumb: props.hasThumb,\n onThumbChange: props.onThumbChange,\n onThumbPointerDown: (pointerPos: { y: number }) => props.onThumbPointerDown(pointerPos.y),\n onThumbPointerUp: props.onThumbPointerUp,\n onThumbPositionChange: props.onThumbPositionChange,\n onDragScroll: (pointerPos: { y: number }) => props.onDragScroll(pointerPos.y),\n onScrollbarMounted: (node: HTMLDivElement | null) => {\n scrollbar.value = node\n ctx.onScrollbarYChange(node)\n },\n style: [{ '--sa-thumb-height': `${getThumbSize(props.sizes)}px` }, attrs.style as any],\n onWheelScroll: (event: WheelEvent, maxScrollPos: number) => {\n if (ctx.viewport.value) {\n const scrollPos = ctx.viewport.value.scrollTop + event.deltaY\n props.onWheelScroll(scrollPos)\n\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault()\n }\n }\n },\n onResize: () => {\n if (scrollbar.value && ctx.viewport.value) {\n const computedStyle = window.getComputedStyle(scrollbar.value)\n\n props.onSizesChange({\n content: ctx.viewport.value.scrollHeight,\n viewport: ctx.viewport.value.offsetHeight,\n scrollbar: {\n size: scrollbar.value.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n })\n }\n },\n },\n slots.default,\n )\n },\n})\n","import { defineComponent, h, nextTick, ref, type PropType } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\nimport type { Sizes } from '../ScrollArea.types'\nimport { getScrollPositionFromPointer, getThumbOffsetFromScroll, getThumbRatio } from '../utils'\nimport { ScrollAreaScrollbarX } from './ScrollbarX'\nimport { ScrollAreaScrollbarY } from './ScrollbarY'\n\nexport const ScrollAreaScrollbarVisible = defineComponent({\n name: 'ScrollAreaScrollbarVisible',\n inheritAttrs: false,\n props: {\n orientation: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'vertical',\n },\n },\n setup(props, { attrs, slots }) {\n const context = useScrollAreaContext()\n const thumb = ref<HTMLDivElement | null>(null)\n const pointerOffset = ref(0)\n const sizes = ref<Sizes>({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n })\n\n const getScrollPosition = (pointerPos: number, direction?: 'ltr' | 'rtl') =>\n getScrollPositionFromPointer(pointerPos, pointerOffset.value, sizes.value, direction)\n\n return () => {\n const thumbRatio = getThumbRatio(sizes.value.viewport, sizes.value.content)\n const hasThumb = Boolean(thumbRatio > 0 && thumbRatio < 1)\n const commonProps = {\n ...attrs,\n sizes: sizes.value,\n onSizesChange: (nextSizes: Sizes) => {\n sizes.value = nextSizes\n nextTick(() => {\n if (props.orientation === 'horizontal') {\n if (context.viewport.value && thumb.value) {\n const scrollPos = context.viewport.value.scrollLeft\n const offset = getThumbOffsetFromScroll(scrollPos, sizes.value)\n thumb.value.style.transform = `translate3d(${offset}px, 0, 0)`\n }\n } else if (context.viewport.value && thumb.value) {\n const scrollPos = context.viewport.value.scrollTop\n const offset = getThumbOffsetFromScroll(scrollPos, sizes.value)\n\n if (sizes.value.scrollbar.size === 0) {\n thumb.value.style.setProperty('--thumb-opacity', '0')\n } else {\n thumb.value.style.setProperty('--thumb-opacity', '1')\n }\n\n thumb.value.style.transform = `translate3d(0, ${offset}px, 0)`\n }\n })\n },\n hasThumb,\n onThumbChange: (node: HTMLDivElement | null) => {\n thumb.value = node\n },\n onThumbPointerUp: () => {\n pointerOffset.value = 0\n },\n onThumbPointerDown: (pointerPos: number) => {\n pointerOffset.value = pointerPos\n },\n }\n\n if (props.orientation === 'horizontal') {\n return h(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n onThumbPositionChange: () => {\n if (context.viewport.value && thumb.value) {\n const scrollPos = context.viewport.value.scrollLeft\n const offset = getThumbOffsetFromScroll(scrollPos, sizes.value)\n thumb.value.style.transform = `translate3d(${offset}px, 0, 0)`\n }\n },\n onWheelScroll: (scrollPos: number) => {\n if (context.viewport.value) {\n context.viewport.value.scrollLeft = scrollPos\n }\n },\n onDragScroll: (pointerPos: number) => {\n if (context.viewport.value) {\n context.viewport.value.scrollLeft = getScrollPosition(pointerPos)\n }\n },\n },\n slots.default,\n )\n }\n\n return h(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n onThumbPositionChange: () => {\n if (context.viewport.value && thumb.value) {\n const scrollPos = context.viewport.value.scrollTop\n const offset = getThumbOffsetFromScroll(scrollPos, sizes.value)\n\n if (sizes.value.scrollbar.size === 0) {\n thumb.value.style.setProperty('--thumb-opacity', '0')\n } else {\n thumb.value.style.setProperty('--thumb-opacity', '1')\n }\n\n thumb.value.style.transform = `translate3d(0, ${offset}px, 0)`\n }\n },\n onWheelScroll: (scrollPos: number) => {\n if (context.viewport.value) {\n context.viewport.value.scrollTop = scrollPos\n }\n },\n onDragScroll: (pointerPos: number) => {\n if (context.viewport.value) {\n context.viewport.value.scrollTop = getScrollPosition(pointerPos)\n }\n },\n },\n slots.default,\n )\n }\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\nimport { ScrollAreaScrollbarVisible } from './ScrollAreaScrollbarVisible'\n\nexport const ScrollAreaScrollbar = defineComponent({\n name: 'ScrollAreaScrollbar',\n inheritAttrs: false,\n props: {\n orientation: {\n type: String as PropType<'horizontal' | 'vertical'>,\n required: true,\n },\n forceMount: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const ctx = useScrollAreaContext()\n\n return () => {\n if (ctx.type === 'never') {\n return null\n }\n\n return h(\n ScrollAreaScrollbarVisible,\n {\n ...attrs,\n orientation: props.orientation,\n 'data-state': attrs['data-state'] ?? (ctx.type === 'always' ? 'visible' : 'hidden'),\n },\n slots.default,\n )\n }\n },\n})\n","import { defineComponent, h, onBeforeUnmount, onMounted } from 'vue'\nimport { useScrollAreaContext } from '../ScrollArea.context'\nimport { addUnlinkedScrollListener } from '../utils'\nimport { useScrollbarContext } from '../ScrollAreaScrollbar/Scrollbar.context'\n\nexport const ScrollAreaThumb = defineComponent({\n name: 'ScrollAreaThumb',\n inheritAttrs: false,\n setup(_, { attrs }) {\n const scrollAreaContext = useScrollAreaContext()\n const scrollbarContext = useScrollbarContext()\n let removeUnlinkedScrollListener: (() => void) | undefined\n let debounceTimer = 0\n\n const removeScrollListener = () => {\n if (removeUnlinkedScrollListener) {\n removeUnlinkedScrollListener()\n removeUnlinkedScrollListener = undefined\n }\n }\n\n const debounceScrollEnd = () => {\n window.clearTimeout(debounceTimer)\n debounceTimer = window.setTimeout(removeScrollListener, 100)\n }\n\n const handleScroll = () => {\n debounceScrollEnd()\n\n if (!removeUnlinkedScrollListener && scrollAreaContext.viewport.value) {\n removeUnlinkedScrollListener = addUnlinkedScrollListener(\n scrollAreaContext.viewport.value,\n scrollbarContext.onThumbPositionChange,\n )\n scrollbarContext.onThumbPositionChange()\n }\n }\n\n onMounted(() => {\n scrollbarContext.onThumbPositionChange()\n scrollAreaContext.viewport.value?.addEventListener('scroll', handleScroll)\n })\n\n onBeforeUnmount(() => {\n window.clearTimeout(debounceTimer)\n removeScrollListener()\n scrollAreaContext.viewport.value?.removeEventListener('scroll', handleScroll)\n })\n\n return () => {\n if (!scrollbarContext.hasThumb) {\n return null\n }\n\n return h('div', {\n ...attrs,\n ref: (node: any) => scrollbarContext.onThumbChange(node?.$el ?? node ?? null),\n 'data-state': scrollbarContext.hasThumb ? 'visible' : 'hidden',\n style: [\n { width: 'var(--sa-thumb-width)', height: 'var(--sa-thumb-height)' },\n attrs.style as any,\n ],\n onPointerdownCapture: (event: PointerEvent) => {\n ;(attrs.onPointerdownCapture as ((event: PointerEvent) => void) | undefined)?.(event)\n const thumb = event.target as HTMLElement\n const thumbRect = thumb.getBoundingClientRect()\n const x = event.clientX - thumbRect.left\n const y = event.clientY - thumbRect.top\n scrollbarContext.onThumbPointerDown({ x, y })\n },\n onPointerup: (event: PointerEvent) => {\n ;(attrs.onPointerup as ((event: PointerEvent) => void) | undefined)?.(event)\n scrollbarContext.onThumbPointerUp()\n },\n })\n }\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useScrollAreaContext } from '../ScrollArea.context'\n\nexport const ScrollAreaViewport = withBoxProps(\n defineComponent({\n name: 'ScrollAreaViewport',\n inheritAttrs: false,\n props: {\n onViewportMounted: {\n type: Function as PropType<(node: HTMLDivElement | null) => void>,\n default: undefined,\n },\n onContentMounted: {\n type: Function as PropType<(node: HTMLDivElement | null) => void>,\n default: undefined,\n },\n },\n setup(props, { attrs, slots }) {\n const ctx = useScrollAreaContext()\n\n return () => {\n const scrollbars = ctx.scrollbars ?? 'xy'\n\n return h(\n Box,\n {\n ...attrs,\n ref: (node: any) => {\n const element = node?.$el ?? node ?? null\n props.onViewportMounted?.(element)\n ctx.onViewportChange(element)\n },\n style: [\n {\n overflowX: scrollbars === 'x' || scrollbars === 'xy' ? 'scroll' : 'hidden',\n overflowY: scrollbars === 'y' || scrollbars === 'xy' ? 'scroll' : 'hidden',\n },\n attrs.style as any,\n ],\n },\n () =>\n h(\n 'div',\n {\n ...ctx.getStyles('content'),\n ref: (node: any) => {\n const element = node?.$el ?? node ?? null\n props.onContentMounted?.(element)\n ctx.onContentChange(element)\n },\n },\n slots.default?.(),\n ),\n )\n }\n },\n }),\n)\n",".root {\n --scrollarea-scrollbar-size: 12px;\n\n position: relative;\n overflow: hidden;\n\n &:where([data-autosize]) .content {\n min-width: min-content;\n }\n}\n\n.viewport {\n scrollbar-width: none;\n overscroll-behavior: var(--scrollarea-over-scroll-behavior);\n -ms-overflow-style: none;\n -webkit-overflow-scrolling: touch;\n width: 100%;\n height: 100%;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n &:where([data-scrollbars='xy'], [data-scrollbars='y']) {\n &:where(\n [data-offset-scrollbars='xy'],\n [data-offset-scrollbars='y'],\n [data-offset-scrollbars='present']\n ) {\n &:where([data-vertical-hidden]) {\n padding-inline-end: 0;\n padding-inline-start: 0;\n }\n\n &:not([data-vertical-hidden]) {\n padding-inline-end: var(--scrollarea-scrollbar-size);\n padding-inline-start: unset;\n }\n }\n }\n\n &:where([data-scrollbars='xy'], [data-scrollbars='x']) {\n &:where(\n [data-offset-scrollbars='xy'],\n [data-offset-scrollbars='x'],\n [data-offset-scrollbars='present']\n ) {\n &:where([data-horizontal-hidden]) {\n padding-bottom: 0;\n }\n\n &:not([data-horizontal-hidden]) {\n padding-bottom: var(--scrollarea-scrollbar-size);\n }\n }\n }\n}\n\n.viewportInner {\n min-width: 100%;\n display: table;\n}\n\n.scrollbar {\n user-select: none;\n touch-action: none;\n box-sizing: border-box;\n transition:\n background-color 150ms ease,\n opacity 150ms ease;\n\n padding: calc(var(--scrollarea-scrollbar-size) / 5);\n display: flex;\n background-color: transparent;\n flex-direction: row;\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n\n & > .thumb {\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n\n & > .thumb {\n background-color: rgba(255, 255, 255, 0.5);\n }\n }\n }\n\n &:where([data-hidden], [data-state='hidden']) {\n display: none;\n }\n\n &:where([data-orientation='vertical']) {\n width: var(--scrollarea-scrollbar-size);\n top: 0;\n bottom: var(--sa-corner-width);\n inset-inline-end: 0;\n }\n\n &:where([data-orientation='horizontal']) {\n height: var(--scrollarea-scrollbar-size);\n flex-direction: column;\n bottom: 0;\n inset-inline-start: 0;\n inset-inline-end: var(--sa-corner-width);\n }\n}\n\n.thumb {\n flex: 1;\n border-radius: var(--scrollarea-scrollbar-size);\n position: relative;\n transition: background-color 150ms ease;\n overflow: hidden;\n opacity: var(--thumb-opacity);\n\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n min-width: 44px;\n min-height: 44px;\n }\n\n @mixin where-light {\n background-color: rgba(0, 0, 0, 0.4);\n }\n\n @mixin where-dark {\n background-color: rgba(255, 255, 255, 0.4);\n }\n}\n\n.corner {\n position: absolute;\n opacity: 0;\n transition: opacity 150ms ease;\n display: block;\n inset-inline-end: 0;\n bottom: 0;\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n\n &:where([data-hovered]) {\n opacity: 1;\n }\n\n &:where([data-hidden]) {\n display: none;\n }\n}\n\n.content {\n min-width: 100%;\n}\n","import {\n defineComponent,\n h,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n type PropType,\n} from 'vue'\nimport { withBoxProps, Box, createVarsResolver, rem, useProps, useStyles } from '../../core'\nimport { ScrollAreaCorner } from './ScrollAreaCorner/ScrollAreaCorner'\nimport { ScrollAreaRoot } from './ScrollAreaRoot/ScrollAreaRoot'\nimport { ScrollAreaScrollbar } from './ScrollAreaScrollbar/ScrollAreaScrollbar'\nimport { ScrollAreaThumb } from './ScrollAreaThumb/ScrollAreaThumb'\nimport { ScrollAreaViewport } from './ScrollAreaViewport/ScrollAreaViewport'\nimport classes from './ScrollArea.module.css'\n\nexport type ScrollAreaStylesNames =\n | 'root'\n | 'viewport'\n | 'scrollbar'\n | 'thumb'\n | 'corner'\n | 'content'\nexport type ScrollAreaType = 'auto' | 'always' | 'scroll' | 'hover' | 'never'\nexport type ScrollAreaScrollbars = 'x' | 'y' | 'xy' | false\n\nexport interface ScrollAreaProps {\n scrollbarSize?: number | string\n type?: ScrollAreaType\n scrollHideDelay?: number\n scrollbars?: ScrollAreaScrollbars\n offsetScrollbars?: boolean | 'x' | 'y' | 'present'\n viewportProps?: Record<string, any>\n onScrollPositionChange?: (position: { x: number; y: number }) => void\n onBottomReached?: () => void\n onTopReached?: () => void\n onLeftReached?: () => void\n onRightReached?: () => void\n overscrollBehavior?: string\n startScrollPosition?: { x?: number; y?: number }\n}\n\nconst defaultProps = {\n scrollHideDelay: 1000,\n type: 'hover',\n scrollbars: 'xy',\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (_, { scrollbarSize, overscrollBehavior, scrollbars }) => {\n let overrideOverscrollBehavior = overscrollBehavior\n\n if (overscrollBehavior && scrollbars) {\n if (scrollbars === 'x') {\n overrideOverscrollBehavior = `${overscrollBehavior} auto`\n } else if (scrollbars === 'y') {\n overrideOverscrollBehavior = `auto ${overscrollBehavior}`\n }\n }\n\n return {\n root: {\n '--scrollarea-scrollbar-size': rem(scrollbarSize),\n '--scrollarea-over-scroll-behavior': overrideOverscrollBehavior,\n },\n }\n },\n)\n\nfunction toOffsetScrollbars(value: ScrollAreaProps['offsetScrollbars']) {\n return value === true ? 'xy' : value || undefined\n}\n\nexport const ScrollAreaBase = defineComponent({\n name: 'ScrollArea',\n inheritAttrs: false,\n props: {\n scrollbarSize: [String, Number] as PropType<string | number>,\n type: { type: String as PropType<ScrollAreaType>, default: undefined },\n scrollHideDelay: { type: Number, default: undefined },\n scrollbars: { type: [String, Boolean] as PropType<ScrollAreaScrollbars>, default: undefined },\n offsetScrollbars: {\n type: [String, Boolean] as PropType<ScrollAreaProps['offsetScrollbars']>,\n default: undefined,\n },\n viewportProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n onScrollPositionChange: {\n type: Function as PropType<ScrollAreaProps['onScrollPositionChange']>,\n default: undefined,\n },\n onBottomReached: {\n type: Function as PropType<ScrollAreaProps['onBottomReached']>,\n default: undefined,\n },\n onTopReached: {\n type: Function as PropType<ScrollAreaProps['onTopReached']>,\n default: undefined,\n },\n onLeftReached: {\n type: Function as PropType<ScrollAreaProps['onLeftReached']>,\n default: undefined,\n },\n onRightReached: {\n type: Function as PropType<ScrollAreaProps['onRightReached']>,\n default: undefined,\n },\n overscrollBehavior: { type: String, default: undefined },\n startScrollPosition: {\n type: Object as PropType<ScrollAreaProps['startScrollPosition']>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ScrollArea', defaultProps, rawProps)\n const viewport = ref<HTMLDivElement | null>(null)\n const content = ref<HTMLDivElement | null>(null)\n const hovered = ref(false)\n const scrollingX = ref(false)\n const scrollingY = ref(false)\n const overflowX = ref(false)\n const overflowY = ref(false)\n const prevAtTop = ref(true)\n const prevAtBottom = ref(false)\n const prevAtLeft = ref(true)\n const prevAtRight = ref(false)\n const prevScrollTop = ref(0)\n const prevScrollLeft = ref(0)\n let resizeObserver: ResizeObserver | null = null\n let scrollTimerX: number | null = null\n let scrollTimerY: number | null = null\n let hoverHideTimer: number | null = null\n\n const getStyles = useStyles({\n name: 'ScrollArea',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const updateOverflow = () => {\n if (!viewport.value) {\n overflowX.value = false\n overflowY.value = false\n return\n }\n\n overflowX.value = viewport.value.offsetWidth < viewport.value.scrollWidth\n overflowY.value = viewport.value.offsetHeight < viewport.value.scrollHeight\n }\n\n const observeOverflow = () => {\n resizeObserver?.disconnect()\n resizeObserver = null\n\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(updateOverflow)\n\n if (viewport.value) {\n resizeObserver.observe(viewport.value)\n }\n\n if (content.value) {\n resizeObserver.observe(content.value)\n }\n }\n\n updateOverflow()\n }\n\n const setScrolling = (axis: 'x' | 'y') => {\n const current = axis === 'x' ? scrollingX : scrollingY\n const currentTimer = axis === 'x' ? scrollTimerX : scrollTimerY\n\n current.value = true\n\n if (currentTimer) {\n window.clearTimeout(currentTimer)\n }\n\n const nextTimer = window.setTimeout(() => {\n current.value = false\n }, props.scrollHideDelay)\n\n if (axis === 'x') {\n scrollTimerX = nextTimer\n } else {\n scrollTimerY = nextTimer\n }\n }\n\n const getScrollbarState = (orientation: 'horizontal' | 'vertical') => {\n const isHorizontal = orientation === 'horizontal'\n const hasOverflow = isHorizontal ? overflowX.value : overflowY.value\n\n if (props.type === 'always') {\n return 'visible'\n }\n\n if (props.type === 'auto') {\n return hasOverflow ? 'visible' : 'hidden'\n }\n\n if (props.type === 'hover') {\n return hovered.value && hasOverflow ? 'visible' : 'hidden'\n }\n\n if (props.type === 'scroll') {\n return (isHorizontal ? scrollingX.value : scrollingY.value) && hasOverflow\n ? 'visible'\n : 'hidden'\n }\n\n return 'hidden'\n }\n\n watch([viewport, content], observeOverflow, { flush: 'post' })\n\n onMounted(async () => {\n await nextTick()\n observeOverflow()\n if (props.startScrollPosition && viewport.value) {\n viewport.value.scrollTo({\n left: props.startScrollPosition.x ?? 0,\n top: props.startScrollPosition.y ?? 0,\n })\n }\n })\n\n onBeforeUnmount(() => {\n resizeObserver?.disconnect()\n\n if (scrollTimerX) {\n window.clearTimeout(scrollTimerX)\n }\n\n if (scrollTimerY) {\n window.clearTimeout(scrollTimerY)\n }\n\n if (hoverHideTimer) {\n window.clearTimeout(hoverHideTimer)\n }\n })\n\n const handleScroll = (event: Event) => {\n props.viewportProps?.onScroll?.(event)\n const node = event.currentTarget as HTMLDivElement\n props.onScrollPositionChange?.({ x: node.scrollLeft, y: node.scrollTop })\n\n const isAtBottom = node.scrollTop - (node.scrollHeight - node.clientHeight) >= -0.8\n const isAtTop = node.scrollTop === 0\n const isAtRight = node.scrollLeft - (node.scrollWidth - node.clientWidth) >= -0.8\n const isAtLeft = node.scrollLeft === 0\n\n if (node.scrollLeft !== prevScrollLeft.value) {\n setScrolling('x')\n }\n\n if (node.scrollTop !== prevScrollTop.value) {\n setScrolling('y')\n }\n\n updateOverflow()\n\n if (isAtBottom && !prevAtBottom.value) {\n props.onBottomReached?.()\n }\n\n if (isAtTop && !prevAtTop.value) {\n props.onTopReached?.()\n }\n\n if (isAtRight && !prevAtRight.value) {\n props.onRightReached?.()\n }\n\n if (isAtLeft && !prevAtLeft.value) {\n props.onLeftReached?.()\n }\n\n prevAtBottom.value = isAtBottom\n prevAtTop.value = isAtTop\n prevAtRight.value = isAtRight\n prevAtLeft.value = isAtLeft\n prevScrollTop.value = node.scrollTop\n prevScrollLeft.value = node.scrollLeft\n }\n\n return () =>\n h(\n ScrollAreaRoot,\n {\n ...attrs,\n ...getStyles('root'),\n getStyles,\n type: props.type === 'never' ? 'always' : props.type,\n scrollHideDelay: props.scrollHideDelay,\n scrollbars: props.scrollbars,\n mod: { autosize: attrs['data-autosize'] === 'true' || attrs['data-autosize'] === true },\n onPointerenter: (event: PointerEvent) => {\n ;(attrs.onPointerenter as ((event: PointerEvent) => void) | undefined)?.(event)\n if (hoverHideTimer) {\n window.clearTimeout(hoverHideTimer)\n }\n hovered.value = true\n },\n onPointerleave: (event: PointerEvent) => {\n ;(attrs.onPointerleave as ((event: PointerEvent) => void) | undefined)?.(event)\n hoverHideTimer = window.setTimeout(() => {\n hovered.value = false\n }, props.scrollHideDelay)\n },\n },\n () => [\n h(\n ScrollAreaViewport,\n {\n ...props.viewportProps,\n ...getStyles('viewport', { style: props.viewportProps?.style }),\n onViewportMounted: (node: HTMLDivElement | null) => {\n viewport.value = node\n },\n onContentMounted: (node: HTMLDivElement | null) => {\n content.value = node\n },\n 'data-offset-scrollbars': toOffsetScrollbars(props.offsetScrollbars),\n 'data-scrollbars': props.scrollbars || undefined,\n onScroll: handleScroll,\n },\n () => slots.default?.(),\n ),\n (props.scrollbars === 'xy' || props.scrollbars === 'x') &&\n h(\n ScrollAreaScrollbar,\n {\n ...getStyles('scrollbar'),\n orientation: 'horizontal',\n 'data-hidden': props.type === 'never' ? true : undefined,\n 'data-state': getScrollbarState('horizontal'),\n forceMount: true,\n },\n () => h(ScrollAreaThumb, getStyles('thumb')),\n ),\n (props.scrollbars === 'xy' || props.scrollbars === 'y') &&\n h(\n ScrollAreaScrollbar,\n {\n ...getStyles('scrollbar'),\n orientation: 'vertical',\n 'data-hidden': props.type === 'never' ? true : undefined,\n 'data-state': getScrollbarState('vertical'),\n forceMount: true,\n },\n () => h(ScrollAreaThumb, getStyles('thumb')),\n ),\n h(ScrollAreaCorner, {\n ...getStyles('corner'),\n 'data-hidden': props.type === 'never' ? true : undefined,\n }),\n ],\n )\n },\n})\n\nexport const ScrollAreaAutosize = defineComponent({\n name: 'ScrollAreaAutosize',\n inheritAttrs: false,\n props: ScrollAreaBase.props,\n setup(props: any, { attrs, slots }) {\n return () =>\n h(\n Box,\n {\n ...attrs,\n style: [{ display: 'flex', overflow: 'hidden' }, attrs.style as any],\n },\n () =>\n h(\n Box,\n {\n style: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n minWidth: props.scrollbars === 'x' ? undefined : 0,\n minHeight: props.scrollbars === 'y' ? undefined : 0,\n },\n },\n () => h(ScrollAreaBase, { ...props, 'data-autosize': 'true' }, () => slots.default?.()),\n ),\n )\n },\n})\n\nexport const ScrollArea = withBoxProps(\n Object.assign(ScrollAreaBase, {\n Autosize: ScrollAreaAutosize,\n classes,\n varsResolver,\n }),\n)\n","import { createSafeContext } from '../../core'\n\nexport type AccordionChevronPosition = 'left' | 'right'\nexport type AccordionHeadingOrder = 2 | 3 | 4 | 5 | 6\nexport type AccordionValue<Multiple extends boolean = false> = Multiple extends true\n ? string[]\n : string | null\n\nexport interface AccordionContextValue {\n loop?: boolean\n transitionDuration?: number\n disableChevronRotation?: boolean\n chevronPosition?: AccordionChevronPosition\n order?: AccordionHeadingOrder\n chevron: any\n onChange: (value: string) => void\n isItemActive: (value: string) => boolean\n getControlId: (value: string) => string\n getRegionId: (value: string) => string\n getStyles: (\n selector: string,\n options?: {\n className?: any\n style?: any\n classNames?: any\n styles?: any\n props?: any\n variant?: string\n },\n ) => any\n variant?: string\n unstyled?: boolean\n keepMounted?: boolean\n}\n\nexport const [provideAccordionContext, useAccordionContext] =\n createSafeContext<AccordionContextValue>('Accordion component was not found in the tree')\n","import { defineComponent, h, type PropType } from 'vue'\nimport { rem } from '../../core'\n\nexport const AccordionChevron = defineComponent({\n name: 'AccordionChevron',\n inheritAttrs: false,\n props: {\n size: { type: [Number, String] as PropType<number | string>, default: 16 },\n },\n setup(props, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n viewBox: '0 0 15 15',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n ...attrs,\n style: [\n { width: rem(props.size), height: rem(props.size), display: 'block' },\n attrs.style as any,\n ],\n },\n h('path', {\n d: 'M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z',\n fill: 'currentColor',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }),\n )\n },\n})\n","import { createSafeContext } from '../../core'\n\nexport interface AccordionItemContextValue {\n value: string\n}\n\nexport const [provideAccordionItemContext, useAccordionItemContext] =\n createSafeContext<AccordionItemContextValue>('Accordion.Item component was not found in the tree')\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { UnstyledButton } from '../../UnstyledButton'\nimport { useAccordionContext } from '../Accordion.context'\nimport { useAccordionItemContext } from '../AccordionItem.context'\n\nexport type AccordionControlStylesNames = 'control' | 'chevron' | 'label' | 'itemTitle' | 'icon'\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nfunction createAccordionKeydownHandler(loop?: boolean, onKeydown?: (event: KeyboardEvent) => void) {\n return (event: KeyboardEvent) => {\n onKeydown?.(event)\n\n if (event.defaultPrevented || (event.key !== 'ArrowDown' && event.key !== 'ArrowUp')) {\n return\n }\n\n const controls = Array.from(\n (event.currentTarget as HTMLElement)\n .closest('[data-accordion]')\n ?.querySelectorAll<HTMLElement>('[data-accordion-control]') ?? [],\n ).filter(\n (item) => !item.hasAttribute('disabled') && item.getAttribute('aria-disabled') !== 'true',\n )\n const currentIndex = controls.indexOf(event.currentTarget as HTMLElement)\n\n if (currentIndex === -1) {\n return\n }\n\n const lastIndex = controls.length - 1\n const nextIndex =\n event.key === 'ArrowDown'\n ? currentIndex === lastIndex\n ? loop\n ? 0\n : currentIndex\n : currentIndex + 1\n : currentIndex === 0\n ? loop\n ? lastIndex\n : currentIndex\n : currentIndex - 1\n\n if (nextIndex !== currentIndex) {\n event.preventDefault()\n controls[nextIndex]?.focus()\n }\n }\n}\n\nexport const AccordionControl = withBoxProps(\n defineComponent({\n name: 'AccordionControl',\n inheritAttrs: false,\n props: {\n disabled: { type: Boolean, default: false },\n chevron: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n icon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n onClick: { type: Function as PropType<(event: MouseEvent) => void>, default: undefined },\n onKeydown: { type: Function as PropType<(event: KeyboardEvent) => void>, default: undefined },\n onKeyDown: { type: Function as PropType<(event: KeyboardEvent) => void>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const { value } = useAccordionItemContext()\n const ctx = useAccordionContext()\n\n const renderControl = () => {\n const isActive = ctx.isItemActive(value)\n\n return h(\n UnstyledButton,\n {\n ...attrs,\n ...ctx.getStyles('control', {\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames,\n styles: props.styles,\n props,\n variant: ctx.variant,\n }),\n unstyled: ctx.unstyled,\n variant: ctx.variant,\n mod: [\n { active: isActive, chevronPosition: ctx.chevronPosition, disabled: props.disabled },\n props.mod,\n ],\n 'data-accordion-control': true,\n onClick: (event: MouseEvent) => {\n props.onClick?.(event)\n if (!props.disabled) {\n ctx.onChange(value)\n }\n },\n type: 'button',\n disabled: props.disabled,\n 'aria-expanded': isActive,\n 'aria-controls': ctx.getRegionId(value),\n id: ctx.getControlId(value),\n onKeydown: createAccordionKeydownHandler(ctx.loop, props.onKeydown ?? props.onKeyDown),\n },\n () => [\n h(\n Box,\n {\n component: 'span',\n mod: {\n rotate: !ctx.disableChevronRotation && isActive,\n position: ctx.chevronPosition,\n },\n ...ctx.getStyles('chevron', {\n classNames: props.classNames,\n styles: props.styles,\n props,\n }),\n },\n () => renderContent(props.chevron === undefined ? ctx.chevron : props.chevron),\n ),\n h(\n 'span',\n ctx.getStyles('label', {\n classNames: props.classNames,\n styles: props.styles,\n props,\n }),\n slots.default?.(),\n ),\n props.icon\n ? h(\n Box,\n {\n component: 'span',\n mod: { chevronPosition: ctx.chevronPosition },\n ...ctx.getStyles('icon', {\n classNames: props.classNames,\n styles: props.styles,\n props,\n }),\n },\n () => renderContent(props.icon),\n )\n : null,\n ],\n )\n }\n\n return () =>\n typeof ctx.order === 'number'\n ? h(\n `h${ctx.order}`,\n ctx.getStyles('itemTitle', {\n classNames: props.classNames,\n styles: props.styles,\n props,\n }),\n renderControl(),\n )\n : renderControl()\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useAccordionContext } from '../Accordion.context'\nimport { provideAccordionItemContext } from '../AccordionItem.context'\n\nexport type AccordionItemStylesNames = 'item'\n\nexport const AccordionItem = withBoxProps(\n defineComponent({\n name: 'AccordionItem',\n inheritAttrs: false,\n props: {\n value: { type: String, required: true },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const ctx = useAccordionContext()\n provideAccordionItemContext({ value: props.value })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('item', {\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames,\n styles: props.styles,\n props,\n variant: ctx.variant,\n }),\n variant: ctx.variant,\n mod: [{ active: ctx.isItemActive(props.value) }, props.mod],\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { Collapse } from '../../Collapse'\nimport { useAccordionContext } from '../Accordion.context'\nimport { useAccordionItemContext } from '../AccordionItem.context'\n\nexport type AccordionPanelStylesNames = 'panel' | 'content'\n\nexport const AccordionPanel = withBoxProps(\n defineComponent({\n name: 'AccordionPanel',\n inheritAttrs: false,\n props: {\n onTransitionEnd: { type: Function as PropType<() => void>, default: undefined },\n onTransitionStart: { type: Function as PropType<() => void>, default: undefined },\n keepMounted: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const { value } = useAccordionItemContext()\n const ctx = useAccordionContext()\n\n return () =>\n h(\n Collapse,\n {\n ...attrs,\n ...ctx.getStyles('panel', {\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames,\n styles: props.styles,\n props,\n }),\n expanded: ctx.isItemActive(value),\n transitionDuration: ctx.transitionDuration ?? 200,\n role: 'region',\n id: ctx.getRegionId(value),\n 'aria-labelledby': ctx.getControlId(value),\n keepMounted: props.keepMounted ?? ctx.keepMounted,\n onTransitionEnd: props.onTransitionEnd,\n onTransitionStart: props.onTransitionStart,\n },\n () =>\n h(\n Box,\n {\n component: 'div',\n ...ctx.getStyles('content', {\n classNames: props.classNames,\n styles: props.styles,\n props,\n }),\n },\n () => slots.default?.(),\n ),\n )\n },\n }),\n)\n",".root {\n --accordion-radius: var(--mantine-radius-default);\n}\n\n.panel {\n overflow-wrap: break-word;\n}\n\n.content {\n padding: var(--mantine-spacing-md);\n padding-top: calc(var(--mantine-spacing-xs) / 2);\n}\n\n.itemTitle {\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.control {\n width: 100%;\n display: flex;\n align-items: center;\n flex-direction: row-reverse;\n padding-inline: var(--mantine-spacing-md);\n opacity: 1;\n cursor: pointer;\n background-color: transparent;\n color: var(--mantine-color-bright);\n\n &:where([data-chevron-position='left']) {\n flex-direction: row;\n padding-inline-start: 0;\n }\n\n &:where(:disabled, [data-disabled]) {\n opacity: 0.4;\n cursor: not-allowed;\n }\n}\n\n.control--default,\n.control--contained {\n &:where(:not(:disabled, [data-disabled])) {\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n }\n }\n }\n}\n\n.label {\n color: inherit;\n font-weight: var(--mantine-font-weight-regular);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: var(--mantine-spacing-sm);\n padding-bottom: var(--mantine-spacing-sm);\n}\n\n.chevron {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n transition: transform var(--accordion-transition-duration, 200ms) ease;\n width: var(--accordion-chevron-size, rem(15px));\n min-width: var(--accordion-chevron-size, rem(15px));\n transform: rotate(0deg);\n\n &:where([data-rotate]) {\n transform: rotate(180deg);\n }\n\n &:where([data-position='left']) {\n margin-inline-end: var(--mantine-spacing-md);\n margin-inline-start: var(--mantine-spacing-md);\n }\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-inline-end: var(--mantine-spacing-sm);\n\n &:where([data-chevron-position='left']) {\n margin-inline-end: 0;\n margin-inline-start: var(--mantine-spacing-lg);\n }\n}\n\n.item {\n @mixin where-light {\n --item-border-color: var(--mantine-color-gray-3);\n --item-filled-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n --item-border-color: var(--mantine-color-dark-4);\n --item-filled-color: var(--mantine-color-dark-6);\n }\n}\n\n.item--default {\n border-bottom: 1px solid var(--item-border-color);\n}\n\n.item--contained {\n border: 1px solid var(--item-border-color);\n transition: background-color 150ms ease;\n\n &:where([data-active]) {\n background-color: var(--item-filled-color);\n }\n\n &:first-of-type {\n border-start-start-radius: var(--accordion-radius);\n border-start-end-radius: var(--accordion-radius);\n\n & > [data-accordion-control] {\n border-start-start-radius: var(--accordion-radius);\n border-start-end-radius: var(--accordion-radius);\n }\n }\n\n &:last-of-type {\n border-end-start-radius: var(--accordion-radius);\n border-end-end-radius: var(--accordion-radius);\n\n & > [data-accordion-control] {\n border-end-start-radius: var(--accordion-radius);\n border-end-end-radius: var(--accordion-radius);\n }\n }\n\n & + & {\n border-top: 0;\n }\n}\n\n.item--filled {\n border-radius: var(--accordion-radius);\n\n &:where([data-active]) {\n background-color: var(--item-filled-color);\n }\n}\n\n.item--separated {\n background-color: var(--item-filled-color);\n border-radius: var(--accordion-radius);\n border: 1px solid transparent;\n transition: background-color 150ms ease;\n\n &[data-active] {\n border-color: var(--item-border-color);\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-7);\n }\n }\n\n & + & {\n margin-top: var(--mantine-spacing-md);\n }\n}\n","import { defineComponent, h, reactive, type PropType } from 'vue'\nimport { useId, useUncontrolled } from '@mantine-vue/hooks'\nimport { Box, createVarsResolver, getRadius, rem, useProps, useStyles } from '../../core'\nimport {\n provideAccordionContext,\n type AccordionChevronPosition,\n type AccordionHeadingOrder,\n type AccordionValue,\n} from './Accordion.context'\nimport { AccordionChevron } from './AccordionChevron'\nimport { AccordionControl } from './AccordionControl/AccordionControl'\nimport { AccordionItem } from './AccordionItem/AccordionItem'\nimport { AccordionPanel } from './AccordionPanel/AccordionPanel'\nimport classes from './Accordion.module.css'\n\nexport type AccordionStylesNames =\n | 'root'\n | 'content'\n | 'item'\n | 'panel'\n | 'icon'\n | 'chevron'\n | 'label'\n | 'itemTitle'\n | 'control'\n\nexport type AccordionVariant = 'default' | 'contained' | 'filled' | 'separated'\n\nconst VALUE_ERROR = 'Accordion.Item component was rendered with invalid value or without value'\n\nconst defaultProps = {\n multiple: false,\n loop: true,\n disableChevronRotation: false,\n chevronPosition: 'right',\n variant: 'default',\n chevronSize: 'auto',\n chevronIconSize: 16,\n} as const\n\nfunction getSafeId(prefix: string) {\n return (value: string) => {\n if (typeof value !== 'string' || value.length === 0) {\n throw new Error(VALUE_ERROR)\n }\n\n return `${prefix}-${value}`\n }\n}\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nconst varsResolver = createVarsResolver<any>((_, { transitionDuration, chevronSize, radius }) => ({\n root: {\n '--accordion-transition-duration':\n transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n '--accordion-chevron-size': chevronSize === undefined ? undefined : rem(chevronSize),\n '--accordion-radius': radius === undefined ? undefined : getRadius(radius),\n },\n}))\n\nconst AccordionBase = defineComponent({\n name: 'Accordion',\n inheritAttrs: false,\n props: {\n multiple: { type: Boolean, default: undefined },\n value: { type: [String, Array] as PropType<string | string[] | null>, default: undefined },\n defaultValue: {\n type: [String, Array] as PropType<string | string[] | null>,\n default: undefined,\n },\n onChange: {\n type: Function as PropType<(value: AccordionValue<any>) => void>,\n default: undefined,\n },\n id: { type: String, default: undefined },\n loop: { type: Boolean, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n disableChevronRotation: { type: Boolean, default: undefined },\n chevronPosition: { type: String as PropType<AccordionChevronPosition>, default: undefined },\n chevronSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n chevronIconSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n order: { type: Number as PropType<AccordionHeadingOrder>, default: undefined },\n chevron: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n variant: { type: String as PropType<AccordionVariant>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n keepMounted: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Accordion', defaultProps, rawProps)\n const uid = useId(props.id)\n const [currentValue, setCurrentValue] = useUncontrolled<string | string[] | null>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: props.multiple ? [] : null,\n onChange: (value) => props.onChange?.(value as any),\n })\n const getStyles = useStyles({\n name: 'Accordion',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const isItemActive = (itemValue: string) =>\n Array.isArray(currentValue.value)\n ? currentValue.value.includes(itemValue)\n : itemValue === currentValue.value\n\n const handleItemChange = (itemValue: string) => {\n const value = currentValue.value\n const nextValue = Array.isArray(value)\n ? value.includes(itemValue)\n ? value.filter((selectedValue) => selectedValue !== itemValue)\n : [...value, itemValue]\n : itemValue === value\n ? null\n : itemValue\n\n setCurrentValue(nextValue)\n }\n\n provideAccordionContext(\n reactive({\n get loop() {\n return props.loop\n },\n get transitionDuration() {\n return props.transitionDuration\n },\n get disableChevronRotation() {\n return props.disableChevronRotation\n },\n get chevronPosition() {\n return props.chevronPosition\n },\n get order() {\n return props.order\n },\n get chevron() {\n return props.chevron === null\n ? null\n : (props.chevron ?? (() => h(AccordionChevron, { size: props.chevronIconSize })))\n },\n onChange: handleItemChange,\n isItemActive,\n get getControlId() {\n return getSafeId(`${uid.value}-control`)\n },\n get getRegionId() {\n return getSafeId(`${uid.value}-panel`)\n },\n getStyles,\n get variant() {\n return props.variant\n },\n get unstyled() {\n return props.unstyled\n },\n get keepMounted() {\n return props.keepMounted\n },\n }) as any,\n )\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n id: uid.value,\n variant: props.variant,\n 'data-accordion': true,\n },\n () => renderContent(slots.default),\n )\n },\n})\n\nexport const Accordion = Object.assign(AccordionBase, {\n classes,\n varsResolver,\n Item: AccordionItem,\n Panel: AccordionPanel,\n Control: AccordionControl,\n Chevron: AccordionChevron,\n})\n",".root {\n --scroller-control-size: 50px;\n --scroller-background-color: var(--mantine-color-body);\n\n display: flex;\n align-items: center;\n position: relative;\n overflow: hidden;\n max-width: 100%;\n}\n\n.container {\n flex: 1;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n user-select: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n &[data-draggable] {\n cursor: grab;\n }\n}\n\n.content {\n display: inline-flex;\n white-space: nowrap;\n}\n\n.chevron {\n width: var(--scroller-control-size);\n height: var(--scroller-control-size);\n}\n\n.control {\n display: flex;\n align-items: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--scroller-control-size);\n z-index: 1;\n color: var(--mantine-color-dimmed);\n opacity: 1;\n pointer-events: auto;\n transition:\n opacity 200ms ease,\n color 150ms ease;\n\n &:hover {\n color: var(--mantine-color-text);\n }\n\n &:where([data-position='start']) {\n inset-inline-start: 0;\n background: linear-gradient(to right, var(--scroller-background-color) 40%, transparent);\n justify-content: flex-start;\n\n & .chevron {\n transform: rotate(90deg);\n }\n }\n\n &:where([data-position='end']) {\n inset-inline-end: 0;\n background: linear-gradient(to left, var(--scroller-background-color) 40%, transparent);\n justify-content: flex-end;\n\n & .chevron {\n transform: rotate(-90deg);\n }\n }\n\n &:where([data-hidden]) {\n opacity: 0;\n pointer-events: none;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useScroller } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport { AccordionChevron } from '../Accordion'\nimport { UnstyledButton } from '../UnstyledButton'\nimport classes from './Scroller.module.css'\n\nexport type ScrollerStylesNames = 'root' | 'container' | 'content' | 'control' | 'chevron'\nexport type ScrollerCssVariables = {\n root: '--scroller-control-size' | '--scroller-background-color'\n}\n\nexport interface ScrollerProps {\n scrollAmount?: number\n controlSize?: string | number\n edgeGradientColor?: string\n startControlProps?: Record<string, any>\n endControlProps?: Record<string, any>\n startControlIcon?: any\n endControlIcon?: any\n showStartControl?: boolean\n showEndControl?: boolean\n draggable?: boolean\n classNames?: Record<string, string> | ((theme: any, props: any) => Record<string, string>)\n styles?: Record<string, any> | ((theme: any, props: any) => Record<string, any>)\n vars?:\n | Record<string, Record<string, string | undefined>>\n | ((theme: any, props: any) => Record<string, Record<string, string | undefined>>)\n unstyled?: boolean\n}\n\nconst defaultProps = {\n scrollAmount: 200,\n draggable: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>((theme, { controlSize, edgeGradientColor }) => ({\n root: {\n '--scroller-control-size': controlSize === undefined ? undefined : rem(controlSize),\n '--scroller-background-color': edgeGradientColor\n ? getThemeColor(edgeGradientColor, theme)\n : undefined,\n },\n}))\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport const Scroller = withBoxProps(\n defineComponent({\n name: 'Scroller',\n inheritAttrs: false,\n props: {\n scrollAmount: { type: Number, default: undefined },\n controlSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n edgeGradientColor: { type: String, default: undefined },\n startControlProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n endControlProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n startControlIcon: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n endControlIcon: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n showStartControl: { type: Boolean, default: false },\n showEndControl: { type: Boolean, default: false },\n draggable: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Scroller', defaultProps, rawProps)\n const scroller = useScroller({\n scrollAmount: props.scrollAmount,\n draggable: props.draggable,\n })\n const getStyles = useStyles({\n name: 'Scroller',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const showStart = props.showStartControl || scroller.canScrollStart.value\n const showEnd = props.showEndControl || scroller.canScrollEnd.value\n\n return h(\n Box,\n { ...attrs, ...getStyles('root', { className: attrs.class, style: attrs.style as any }) },\n () => [\n h(\n UnstyledButton,\n {\n ...props.startControlProps,\n ...getStyles('control'),\n onClick: scroller.scrollStart,\n 'data-position': 'start',\n 'data-hidden': !showStart || undefined,\n 'aria-label': 'Scroll left',\n tabindex: showStart ? 0 : -1,\n },\n () =>\n renderContent(props.startControlIcon) || h(AccordionChevron, getStyles('chevron')),\n ),\n h(\n 'div',\n {\n ...getStyles('container'),\n ref: scroller.ref as any,\n role: 'presentation',\n 'data-draggable': props.draggable || undefined,\n ...scroller.dragHandlers,\n },\n h('div', getStyles('content'), slots.default?.()),\n ),\n h(\n UnstyledButton,\n {\n ...props.endControlProps,\n ...getStyles('control'),\n onClick: scroller.scrollEnd,\n 'data-position': 'end',\n 'data-hidden': !showEnd || undefined,\n 'aria-label': 'Scroll right',\n tabindex: showEnd ? 0 : -1,\n },\n () =>\n renderContent(props.endControlIcon) || h(AccordionChevron, getStyles('chevron')),\n ),\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(Scroller, { classes, varsResolver })\n","import { createSafeContext } from '../../core'\n\nexport interface TableContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any; props?: any }) => any\n stickyHeader?: boolean\n striped?: 'odd' | 'even'\n highlightOnHover?: boolean\n withColumnBorders?: boolean\n withRowBorders?: boolean\n captionSide: 'top' | 'bottom'\n}\n\nexport const [provideTableContext, useTableContext] = createSafeContext<TableContextValue>(\n 'Table component was not found in the tree',\n)\n",".table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n line-height: var(--mantine-line-height);\n font-size: var(--mantine-font-size-sm);\n table-layout: var(--table-layout, auto);\n caption-side: var(--table-caption-side, bottom);\n border: none;\n}\n\n.table {\n @mixin where-light {\n --table-hover-color: var(--mantine-color-gray-1);\n --table-striped-color: var(--mantine-color-gray-0);\n --table-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --table-hover-color: var(--mantine-color-dark-5);\n --table-striped-color: var(--mantine-color-dark-6);\n --table-border-color: var(--mantine-color-dark-4);\n }\n}\n\n.table:where([data-with-table-border]) {\n border: rem(1px) solid var(--table-border-color);\n}\n\n.table:where([data-tabular-nums]) {\n font-variant-numeric: tabular-nums;\n}\n\n.table:where([data-variant='vertical']) :where(.th) {\n font-weight: var(--mantine-font-weight-medium);\n}\n\n.table:where([data-variant='vertical']) :where(.th) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n }\n}\n\n.th {\n text-align: start;\n}\n\n.tr {\n border-bottom: none;\n background-color: transparent;\n\n @mixin hover {\n &:where([data-hover]) {\n background-color: var(--tr-hover-bg);\n }\n }\n}\n\n.tr:where([data-with-row-border]) {\n border-bottom: rem(1px) solid var(--table-border-color);\n}\n\n.td,\n.th {\n padding: var(--table-vertical-spacing) var(--table-horizontal-spacing, var(--mantine-spacing-xs));\n}\n\n.td:where([data-with-column-border]:not(:first-child)),\n.th:where([data-with-column-border]:not(:first-child)) {\n border-inline-start: rem(1px) solid var(--table-border-color);\n}\n\n.td:where([data-with-column-border]:not(:last-child)),\n.th:where([data-with-column-border]:not(:last-child)) {\n border-inline-end: rem(1px) solid var(--table-border-color);\n}\n\n.tbody > :where(tr):where([data-with-row-border]:last-of-type) {\n border-bottom: none;\n}\n\n.tbody > :where(tr):where([data-striped='odd']:nth-of-type(odd)) {\n background-color: var(--table-striped-color);\n}\n\n.tbody > :where(tr):where([data-striped='even']:nth-of-type(even)) {\n background-color: var(--table-striped-color);\n}\n\n.tbody > :where(tr)[data-hover] {\n --tr-hover-bg: var(--table-highlight-on-hover-color, var(--table-hover-color));\n}\n\n.thead {\n top: var(--table-sticky-header-offset, 0);\n z-index: 3;\n}\n\n.thead:where([data-sticky]) {\n position: sticky;\n}\n\n.thead:where([data-sticky]) :where(.th) {\n position: sticky;\n top: var(--table-sticky-header-offset, 0);\n background-color: var(--mantine-color-body);\n}\n\n/* border-collapse: collapse drops borders on position: sticky cells —\n the tr's border-bottom scrolls away with the row, so redraw it with\n box-shadow on the (sticky) th. The tr's border-bottom is suppressed\n here so the two don't stack into a double line. */\n.thead:where([data-sticky]) :where(.tr[data-with-row-border]) {\n border-bottom: none;\n}\n\n.thead:where([data-sticky]) :where(.tr[data-with-row-border]) :where(.th) {\n box-shadow: inset 0 -1px 0 var(--table-border-color);\n}\n\n.thead:where([data-sticky]) :where(.th[data-with-column-border]) {\n border-inline-start: none;\n border-inline-end: none;\n}\n\n/* Single pseudo-element per internal boundary, centered on the boundary\n (-0.5px) to align with the body's border-collapse line. */\n.thead:where([data-sticky]) :where(.th[data-with-column-border]:not(:first-child))::before {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-start: -0.5px;\n width: 1px;\n background-color: var(--table-border-color);\n}\n\n:where([data-with-table-border]) .thead[data-sticky] {\n position: sticky;\n top: var(--table-sticky-header-offset, 0);\n z-index: 4;\n border-top: none;\n}\n\n:where([data-with-table-border]) .thead[data-sticky]::before {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: -0.5px;\n width: 100%;\n height: 1px;\n background-color: var(--table-border-color);\n z-index: 5;\n}\n\n:where([data-with-table-border]) .thead[data-sticky] .th:first-child {\n border-top: none;\n}\n\n.caption {\n color: var(--mantine-color-dimmed);\n}\n\n.caption:where([data-side='top']) {\n margin-bottom: var(--mantine-spacing-xs);\n}\n\n.caption:where([data-side='bottom']) {\n margin-top: var(--mantine-spacing-xs);\n}\n\n.scrollContainer {\n overflow-x: var(--table-overflow);\n}\n\n.scrollContainerInner {\n min-width: var(--table-min-width);\n max-height: var(--table-max-height);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box, useProps } from '../../core'\nimport { useTableContext, type TableContextValue } from './Table.context'\nimport classes from './Table.module.css'\n\ninterface TableElementOptions {\n columnBorder?: true\n rowBorder?: true\n striped?: true\n highlightOnHover?: true\n captionSide?: true\n stickyHeader?: true\n}\n\nfunction getDataAttributes(ctx: TableContextValue, options?: TableElementOptions) {\n if (!options) {\n return undefined\n }\n\n const data: Record<string, boolean | string | undefined> = {}\n\n if (options.columnBorder && ctx.withColumnBorders) {\n data['data-with-column-border'] = true\n }\n\n if (options.rowBorder && ctx.withRowBorders) {\n data['data-with-row-border'] = true\n }\n\n if (options.striped && ctx.striped) {\n data['data-striped'] = ctx.striped\n }\n\n if (options.highlightOnHover && ctx.highlightOnHover) {\n data['data-hover'] = true\n }\n\n if (options.captionSide && ctx.captionSide) {\n data['data-side'] = ctx.captionSide\n }\n\n if (options.stickyHeader && ctx.stickyHeader) {\n data['data-sticky'] = true\n }\n\n return data\n}\n\nexport function tableElement(\n element: 'th' | 'td' | 'tr' | 'thead' | 'tbody' | 'tfoot' | 'caption',\n options?: TableElementOptions,\n) {\n const name = `Table${element.charAt(0).toUpperCase()}${element.slice(1)}`\n\n return defineComponent({\n name,\n inheritAttrs: false,\n props: {\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n className: { type: [String, Array, Object] as PropType<any>, default: undefined },\n style: { type: [String, Array, Object] as PropType<any>, default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps(name, {}, rawProps)\n const ctx = useTableContext()\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: element,\n ...getDataAttributes(ctx, options),\n ...ctx.getStyles(element, {\n className: [props.className, attrs.class],\n style: [props.style, attrs.style],\n props,\n }),\n },\n () => slots.default?.(),\n )\n },\n })\n}\n\nexport const TableTh = Object.assign(tableElement('th', { columnBorder: true }), { classes })\nexport const TableTd = Object.assign(tableElement('td', { columnBorder: true }), { classes })\nexport const TableTr = Object.assign(\n tableElement('tr', {\n rowBorder: true,\n striped: true,\n highlightOnHover: true,\n }),\n { classes },\n)\nexport const TableThead = Object.assign(tableElement('thead', { stickyHeader: true }), { classes })\nexport const TableTbody = Object.assign(tableElement('tbody'), { classes })\nexport const TableTfoot = Object.assign(tableElement('tfoot'), { classes })\nexport const TableCaption = Object.assign(tableElement('caption', { captionSide: true }), {\n classes,\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport type { TableData } from './Table'\nimport {\n TableCaption,\n TableTbody,\n TableTd,\n TableTfoot,\n TableTh,\n TableThead,\n TableTr,\n} from './Table.components'\n\nexport const TableDataRenderer = defineComponent({\n name: 'TableDataRenderer',\n props: {\n data: { type: Object as PropType<TableData>, required: true },\n },\n setup(props) {\n return () => [\n props.data.caption ? h(TableCaption, null, () => props.data.caption) : null,\n props.data.head\n ? h(TableThead, null, () =>\n h(TableTr, null, () =>\n props.data.head?.map((item, index) => h(TableTh, { key: index }, () => item)),\n ),\n )\n : null,\n props.data.body\n ? h(TableTbody, null, () =>\n props.data.body?.map((row, rowIndex) =>\n h(TableTr, { key: rowIndex }, () =>\n row.map((item, index) => h(TableTd, { key: index }, () => item)),\n ),\n ),\n )\n : null,\n props.data.foot\n ? h(TableTfoot, null, () =>\n h(TableTr, null, () =>\n props.data.foot?.map((item, index) => h(TableTh, { key: index }, () => item)),\n ),\n )\n : null,\n ]\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, rem, useProps, useStyles } from '../../core'\nimport { ScrollArea, type ScrollAreaProps } from '../ScrollArea'\nimport classes from './Table.module.css'\n\nexport type TableScrollContainerStylesNames = 'scrollContainer' | 'scrollContainerInner'\n\nexport interface TableScrollContainerProps {\n minWidth: string | number\n maxHeight?: string | number\n type?: 'native' | 'scrollarea'\n scrollAreaProps?: Partial<ScrollAreaProps> & Record<string, any>\n}\n\nconst defaultProps = {\n type: 'scrollarea',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { minWidth, maxHeight, type }) => ({\n scrollContainer: {\n '--table-min-width': rem(minWidth),\n '--table-max-height': rem(maxHeight),\n '--table-overflow': type === 'native' ? 'auto' : undefined,\n },\n}))\n\nexport const TableScrollContainer = withBoxProps(\n defineComponent({\n name: 'TableScrollContainer',\n inheritAttrs: false,\n props: {\n minWidth: { type: [String, Number] as PropType<string | number>, required: true },\n maxHeight: { type: [String, Number] as PropType<string | number>, default: undefined },\n type: { type: String as PropType<'native' | 'scrollarea'>, default: undefined },\n scrollAreaProps: {\n type: Object as PropType<TableScrollContainerProps['scrollAreaProps']>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('TableScrollContainer', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'TableScrollContainer',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const content = () => h('div', getStyles('scrollContainerInner'), slots.default?.())\n\n if (props.type === 'scrollarea') {\n return h(\n ScrollArea as any,\n {\n ...(props.maxHeight\n ? { offsetScrollbars: 'xy', ...props.scrollAreaProps }\n : { offsetScrollbars: 'x', ...props.scrollAreaProps }),\n ...getStyles('scrollContainer'),\n },\n content,\n )\n }\n\n return h(Box, { component: 'div', ...getStyles('scrollContainer') }, content)\n }\n },\n }),\n)\n\nObject.assign(TableScrollContainer, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSpacing,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport {\n TableCaption,\n TableTbody,\n TableTd,\n TableTfoot,\n TableTh,\n TableThead,\n TableTr,\n} from './Table.components'\nimport { provideTableContext } from './Table.context'\nimport { TableDataRenderer } from './TableDataRenderer'\nimport { TableScrollContainer } from './TableScrollContainer'\nimport classes from './Table.module.css'\n\nexport type TableVariant = 'default' | 'vertical'\nexport type TableStylesNames =\n | 'table'\n | 'thead'\n | 'tbody'\n | 'tfoot'\n | 'tr'\n | 'th'\n | 'td'\n | 'caption'\n\nexport interface TableData {\n head?: any[]\n body?: any[][]\n foot?: any[]\n caption?: string\n}\n\nconst defaultProps = {\n withRowBorders: true,\n verticalSpacing: 7,\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (\n theme,\n {\n layout,\n captionSide,\n horizontalSpacing,\n verticalSpacing,\n borderColor,\n stripedColor,\n highlightOnHoverColor,\n striped,\n highlightOnHover,\n stickyHeaderOffset,\n stickyHeader,\n },\n ) => ({\n table: {\n '--table-layout': layout,\n '--table-caption-side': captionSide,\n '--table-horizontal-spacing': getSpacing(horizontalSpacing),\n '--table-vertical-spacing': getSpacing(verticalSpacing),\n '--table-border-color': borderColor ? getThemeColor(borderColor, theme) : undefined,\n '--table-striped-color':\n striped && stripedColor ? getThemeColor(stripedColor, theme) : undefined,\n '--table-highlight-on-hover-color':\n highlightOnHover && highlightOnHoverColor\n ? getThemeColor(highlightOnHoverColor, theme)\n : undefined,\n '--table-sticky-header-offset': stickyHeader ? rem(stickyHeaderOffset) : undefined,\n },\n }),\n)\n\nconst TableBase = defineComponent({\n name: 'Table',\n inheritAttrs: false,\n props: {\n layout: { type: String as PropType<string>, default: undefined },\n captionSide: { type: String as PropType<'top' | 'bottom'>, default: undefined },\n borderColor: { type: String, default: undefined },\n withTableBorder: { type: Boolean, default: false },\n withColumnBorders: { type: Boolean, default: false },\n withRowBorders: { type: Boolean, default: undefined },\n horizontalSpacing: { type: [String, Number] as PropType<string | number>, default: undefined },\n verticalSpacing: { type: [String, Number] as PropType<string | number>, default: undefined },\n striped: { type: [Boolean, String] as PropType<boolean | 'odd' | 'even'>, default: false },\n stripedColor: { type: String, default: undefined },\n highlightOnHover: { type: Boolean, default: false },\n highlightOnHoverColor: { type: String, default: undefined },\n data: { type: Object as PropType<TableData>, default: undefined },\n stickyHeader: { type: Boolean, default: false },\n stickyHeaderOffset: { type: [String, Number] as PropType<string | number>, default: undefined },\n tabularNums: { type: Boolean, default: false },\n variant: { type: String as PropType<TableVariant>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Table', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Table',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provideTableContext({\n getStyles,\n get stickyHeader() {\n return props.stickyHeader\n },\n get striped() {\n return props.striped === true ? 'odd' : props.striped || undefined\n },\n get highlightOnHover() {\n return props.highlightOnHover\n },\n get withColumnBorders() {\n return props.withColumnBorders\n },\n get withRowBorders() {\n return props.withRowBorders\n },\n get captionSide() {\n return props.captionSide || 'bottom'\n },\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'table',\n variant: props.variant,\n mod: [\n {\n withTableBorder: props.withTableBorder,\n tabularNums: props.tabularNums,\n },\n props.mod,\n ],\n ...getStyles('table', {\n className: attrs.class,\n style: attrs.style as any,\n }),\n },\n () =>\n slots.default\n ? slots.default()\n : props.data\n ? h(TableDataRenderer, { data: props.data })\n : null,\n )\n },\n})\n\nexport const Table = withBoxProps(\n Object.assign(TableBase, {\n classes,\n varsResolver,\n Thead: TableThead,\n Tbody: TableTbody,\n Tfoot: TableTfoot,\n Td: TableTd,\n Th: TableTh,\n Tr: TableTr,\n Caption: TableCaption,\n ScrollContainer: TableScrollContainer,\n DataRenderer: TableDataRenderer,\n }),\n)\n","import { createSafeContext } from '../../core'\n\nexport interface ProgressContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any; props?: any }) => any\n autoContrast?: boolean\n}\n\nexport const [provideProgressContext, useProgressContext] = createSafeContext<ProgressContextValue>(\n 'Progress.Root component was not found in tree',\n)\n","@keyframes stripes-animation {\n 0% {\n background-position: 0 0;\n }\n\n 100% {\n background-position: 40px 0;\n }\n}\n\n@keyframes stripes-animation-vertical {\n 0% {\n background-position: 0 0;\n }\n\n 100% {\n background-position: 0 40px;\n }\n}\n\n.root {\n --progress-radius: var(--mantine-radius-default);\n --progress-size: var(--progress-size-md);\n\n --progress-size-xs: 3px;\n --progress-size-sm: 5px;\n --progress-size-md: 8px;\n --progress-size-lg: 12px;\n --progress-size-xl: 16px;\n\n position: relative;\n height: var(--progress-size);\n border-radius: var(--progress-radius);\n overflow: hidden;\n display: flex;\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n\n &:where([data-orientation='vertical']) {\n height: auto;\n width: var(--progress-size);\n flex-direction: column-reverse;\n }\n}\n\n.section {\n background-color: var(--progress-section-color);\n height: 100%;\n width: var(--progress-section-size);\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n background-size: 20px 20px;\n transition: width var(--progress-transition-duration, 100ms) ease;\n\n &:where([data-striped]) {\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n }\n\n &:where([data-animated]) {\n animation: stripes-animation 1s linear infinite;\n }\n\n &:where(:last-of-type) {\n border-radius: 0;\n border-start-end-radius: var(--progress-radius);\n border-end-end-radius: var(--progress-radius);\n }\n\n &:where(:first-of-type) {\n border-radius: 0;\n border-start-start-radius: var(--progress-radius);\n border-end-start-radius: var(--progress-radius);\n }\n\n .root:where([data-orientation='vertical']) & {\n width: 100%;\n height: var(--progress-section-size);\n transition: height var(--progress-transition-duration, 100ms) ease;\n\n &:where([data-striped]) {\n background-image: linear-gradient(\n 135deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n }\n\n &:where([data-animated]) {\n animation: stripes-animation-vertical 1s linear infinite;\n }\n\n &:where(:last-of-type) {\n border-radius: 0;\n border-start-start-radius: var(--progress-radius);\n border-start-end-radius: var(--progress-radius);\n }\n\n &:where(:first-of-type) {\n border-radius: 0;\n border-end-start-radius: var(--progress-radius);\n border-end-end-radius: var(--progress-radius);\n }\n }\n}\n\n.label {\n color: var(--progress-label-color, var(--mantine-color-white));\n font-weight: bold;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: min(calc(var(--progress-size) * 0.65), rem(18px));\n line-height: 1;\n padding-inline: 4px;\n\n .root:where([data-orientation='vertical']) & {\n writing-mode: vertical-rl;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps } from '../../../core'\nimport { useProgressContext } from '../Progress.context'\nimport classes from '../Progress.module.css'\n\nexport const ProgressLabel = withBoxProps(\n defineComponent({\n name: 'ProgressLabel',\n inheritAttrs: false,\n props: {\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n className: { type: [String, Array, Object] as PropType<any>, default: undefined },\n style: { type: [String, Array, Object] as PropType<any>, default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ProgressLabel', null, rawProps)\n const ctx = useProgressContext()\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('label', {\n className: [props.className, attrs.class],\n style: [props.style, attrs.style],\n props,\n }),\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n\nObject.assign(ProgressLabel, { classes })\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../../core'\nimport { provideProgressContext } from '../Progress.context'\nimport classes from '../Progress.module.css'\n\nexport type ProgressRootStylesNames = 'root' | 'section' | 'label'\n\nconst varsResolver = createVarsResolver<any>((_, { 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\nexport const ProgressRoot = withBoxProps(\n defineComponent({\n name: 'ProgressRoot',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ProgressRoot', null, rawProps)\n const getStyles = useStyles({\n name: 'Progress',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provideProgressContext({ getStyles, autoContrast: props.autoContrast })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n mod: [{ orientation: props.orientation }, props.mod],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n\nObject.assign(ProgressRoot, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n getAutoContrastValue,\n getContrastColor,\n getThemeColor,\n useMantineTheme,\n useProps,\n} from '../../../core'\nimport { useProgressContext } from '../Progress.context'\nimport classes from '../Progress.module.css'\n\nconst defaultProps = {\n withAria: true,\n} as const\n\nexport const ProgressSection = withBoxProps(\n defineComponent({\n name: 'ProgressSection',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n withAria: { type: Boolean, default: undefined },\n color: { type: String, default: undefined },\n striped: { type: Boolean, default: false },\n animated: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('ProgressSection', defaultProps, rawProps)\n const ctx = useProgressContext()\n const theme = useMantineTheme()\n\n return () => {\n const ariaAttributes =\n props.withAria === false\n ? {}\n : {\n role: 'progressbar',\n 'aria-valuemax': 100,\n 'aria-valuemin': 0,\n 'aria-valuenow': props.value,\n 'aria-valuetext': `${props.value}%`,\n }\n\n return h(\n Box,\n {\n ...attrs,\n ...ariaAttributes,\n mod: [\n { striped: props.striped || props.animated, animated: props.animated },\n props.mod,\n ],\n ...ctx.getStyles('section', {\n className: attrs.class,\n style: {\n '--progress-section-size': `${props.value}%`,\n '--progress-section-color': getThemeColor(props.color, theme.value),\n '--progress-label-color': getAutoContrastValue(ctx.autoContrast, theme.value)\n ? getContrastColor({\n color: props.color,\n theme: theme.value,\n autoContrast: ctx.autoContrast,\n })\n : undefined,\n ...(attrs.style as Record<string, any>),\n },\n props,\n }),\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n\nObject.assign(ProgressSection, { classes })\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useProps } from '../../core'\nimport { ProgressLabel } from './ProgressLabel/ProgressLabel'\nimport { ProgressRoot } from './ProgressRoot/ProgressRoot'\nimport { ProgressSection } from './ProgressSection/ProgressSection'\nimport classes from './Progress.module.css'\n\nexport type ProgressStylesNames = 'root' | 'section' | 'label'\n\nconst ProgressBase = defineComponent({\n name: 'Progress',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n color: { type: String, default: undefined },\n striped: { type: Boolean, default: false },\n animated: { type: Boolean, default: false },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('Progress', null, rawProps)\n\n return () =>\n h(\n ProgressRoot,\n {\n ...attrs,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n size: props.size,\n radius: props.radius,\n autoContrast: props.autoContrast,\n transitionDuration: props.transitionDuration,\n orientation: props.orientation,\n },\n () =>\n h(ProgressSection, {\n value: props.value,\n color: props.color,\n striped: props.striped,\n animated: props.animated,\n 'aria-label': attrs['aria-label'],\n }),\n )\n },\n})\n\nexport const Progress = Object.assign(ProgressBase, {\n classes,\n Root: ProgressRoot,\n Section: ProgressSection,\n Label: ProgressLabel,\n})\n","interface GetCurveProps {\n size: number\n thickness: number\n sum: number\n value: number | undefined\n root: boolean | undefined\n offset: number\n}\n\nexport function getCurveProps({ size, thickness, sum, value, root, offset }: GetCurveProps) {\n const radius = (size * 0.9 - thickness * 2) / 2\n const deg = (Math.PI * radius * 2) / 100\n\n const strokeDasharray =\n root || value === undefined\n ? `${(100 - sum) * deg}, ${sum * deg}`\n : `${value * deg}, ${(100 - value) * deg}`\n\n return {\n 'stroke-width': Number.isNaN(thickness) ? 12 : thickness,\n cx: size / 2 || 0,\n cy: size / 2 || 0,\n r: radius || 0,\n transform: root ? `scale(1, -1) translate(0, -${size})` : undefined,\n 'stroke-dasharray': strokeDasharray,\n 'stroke-dashoffset': root ? 0 : offset || 0,\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box, getThemeColor, useMantineTheme } from '../../../core'\nimport { getCurveProps } from './get-curve-props'\n\nexport const Curve = defineComponent({\n name: 'RingProgressCurve',\n inheritAttrs: false,\n props: {\n value: { type: Number, default: undefined },\n size: { type: Number, required: true },\n offset: { type: Number, required: true },\n sum: { type: Number, required: true },\n thickness: { type: Number, required: true },\n lineRoundCaps: { type: Boolean, default: undefined },\n root: { type: Boolean, default: false },\n color: { type: String, default: undefined },\n getStyles: {\n type: Function as PropType<(selector: string, options?: any) => Record<string, any>>,\n required: true,\n },\n },\n setup(props, { attrs }) {\n const theme = useMantineTheme()\n\n return () =>\n h(Box, {\n ...attrs,\n component: 'circle',\n ...props.getStyles('curve', {\n style: {\n '--curve-color': props.color ? getThemeColor(props.color, theme.value) : undefined,\n },\n }),\n fill: 'none',\n 'stroke-linecap': props.lineRoundCaps ? 'round' : 'butt',\n ...getCurveProps({\n sum: props.sum,\n size: props.size,\n thickness: props.thickness,\n value: props.value,\n offset: props.offset,\n root: props.root,\n }),\n })\n },\n})\n","import type { RingProgressSection } from '../RingProgress'\n\ninterface RootCurveData {\n value?: never\n color?: string\n}\n\ninterface GetCurves {\n sections: RingProgressSection[]\n size: number\n thickness: number\n renderRoundedLineCaps: boolean | undefined\n rootColor?: string\n sectionGap?: number\n}\n\ninterface Curve {\n sum: number\n offset: number\n root: boolean\n data: RingProgressSection | RootCurveData\n lineRoundCaps?: boolean\n}\n\nexport function getCurves({\n size,\n thickness,\n sections,\n renderRoundedLineCaps,\n rootColor,\n sectionGap = 0,\n}: GetCurves) {\n const sum = sections.reduce((acc, current) => acc + current.value, 0)\n const accumulated = Math.PI * ((size * 0.9 - thickness * 2) / 2) * 2\n let offset = accumulated\n const curves: Curve[] = []\n const curvesInOrder: Curve[] = []\n const gapPercentage = (sectionGap / 360) * 100\n\n for (let i = 0; i < sections.length; i += 1) {\n const adjustedValue = Math.max(0, sections[i].value - gapPercentage)\n curves.push({ sum, offset, data: { ...sections[i], value: adjustedValue }, root: false })\n offset -= (sections[i].value / 100) * accumulated\n }\n\n curves.push({ sum, offset, data: { color: rootColor }, root: true })\n curvesInOrder.push({ ...curves[curves.length - 1], lineRoundCaps: false })\n\n if (curves.length > 2) {\n curvesInOrder.push({ ...curves[0], lineRoundCaps: renderRoundedLineCaps })\n curvesInOrder.push({ ...curves[curves.length - 2], lineRoundCaps: renderRoundedLineCaps })\n\n for (let i = 1; i <= curves.length - 3; i += 1) {\n curvesInOrder.push({ ...curves[i], lineRoundCaps: false })\n }\n } else {\n curvesInOrder.push({ ...curves[0], lineRoundCaps: renderRoundedLineCaps })\n }\n\n return curvesInOrder\n}\n",".root {\n position: relative;\n width: var(--rp-size);\n height: var(--rp-size);\n min-width: var(--rp-size);\n min-height: var(--rp-size);\n --rp-transition-duration: 0ms;\n}\n\n.svg {\n width: var(--rp-size);\n height: var(--rp-size);\n min-width: var(--rp-size);\n min-height: var(--rp-size);\n transform: rotate(calc(var(--rp-start-angle, 270deg) - 360deg));\n}\n\n.curve {\n stroke: var(--curve-color, var(--rp-curve-root-color));\n transition:\n stroke-dashoffset var(--rp-transition-duration) ease,\n stroke-dasharray var(--rp-transition-duration) ease,\n stroke var(--rp-transition-duration);\n\n @mixin light {\n --rp-curve-root-color: var(--mantine-color-gray-2);\n }\n\n @mixin dark {\n --rp-curve-root-color: var(--mantine-color-dark-4);\n }\n}\n\n.label {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n inset-inline: var(--rp-label-offset);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, rem, useProps, useStyles } from '../../core'\nimport { Curve } from './Curve/Curve'\nimport { getCurves } from './get-curves/get-curves'\nimport classes from './RingProgress.module.css'\n\nexport interface RingProgressSection extends Record<string, any> {\n value: number\n color: string\n tooltip?: any\n}\n\nexport type RingProgressStylesNames = 'root' | 'svg' | 'label' | 'curve'\nexport type RingProgressCssVariables = {\n root: '--rp-size' | '--rp-label-offset' | '--rp-transition-duration'\n svg: '--rp-start-angle'\n}\n\nexport interface RingProgressProps {\n label?: any\n thickness?: number\n size?: number\n roundCaps?: boolean\n sections: RingProgressSection[]\n rootColor?: string\n transitionDuration?: number\n sectionGap?: number\n startAngle?: number\n classNames?: Record<string, string> | ((theme: any, props: any) => Record<string, string>)\n styles?: Record<string, any> | ((theme: any, props: any) => Record<string, any>)\n vars?:\n | Record<string, Record<string, string | undefined>>\n | ((theme: any, props: any) => Record<string, Record<string, string | undefined>>)\n unstyled?: boolean\n}\n\nconst defaultProps = {\n size: 120,\n thickness: 12,\n startAngle: 270,\n} as const\n\nfunction getClampedThickness(thickness: number, size: number) {\n return Math.min(thickness || 12, (size || 120) / 4)\n}\n\nconst varsResolver = createVarsResolver<any>(\n (_, { size, thickness, transitionDuration, startAngle }) => ({\n root: {\n '--rp-size': rem(size),\n '--rp-label-offset': rem((thickness ?? defaultProps.thickness) * 2),\n '--rp-transition-duration': transitionDuration ? `${transitionDuration}ms` : undefined,\n },\n svg: {\n '--rp-start-angle': `${startAngle}deg`,\n },\n }),\n)\n\nexport const RingProgress = withBoxProps(\n defineComponent({\n name: 'RingProgress',\n inheritAttrs: false,\n props: {\n label: {\n type: [String, Number, Object, Function, Array] as PropType<any>,\n default: undefined,\n },\n thickness: { type: Number, default: undefined },\n size: { type: Number, default: undefined },\n roundCaps: { type: Boolean, default: false },\n sections: { type: Array as PropType<RingProgressSection[]>, required: true },\n rootColor: { type: String, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n sectionGap: { type: Number, default: undefined },\n startAngle: { type: Number, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('RingProgress', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'RingProgress',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const renderContent = (value: any) => (typeof value === 'function' ? value() : value)\n\n return () => {\n const size = props.size ?? defaultProps.size\n const thickness = props.thickness ?? defaultProps.thickness\n const clampedThickness = getClampedThickness(thickness, size)\n const label = props.label ?? slots.label?.()\n\n const curves = getCurves({\n size,\n thickness: clampedThickness,\n sections: props.sections,\n renderRoundedLineCaps: props.roundCaps,\n rootColor: props.rootColor,\n sectionGap: props.sectionGap,\n }).map(({ data, sum, root, lineRoundCaps, offset }, index) => {\n const { value, color, tooltip, ...sectionAttrs } = data as RingProgressSection\n\n return h(Curve, {\n ...sectionAttrs,\n key: index,\n size,\n thickness: clampedThickness,\n sum,\n offset,\n value,\n color,\n root,\n lineRoundCaps,\n getStyles,\n ...(tooltip\n ? { 'aria-label': typeof tooltip === 'string' ? tooltip : undefined }\n : null),\n })\n })\n\n return h(\n Box,\n {\n ...attrs,\n size,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => [\n h('svg', { ...getStyles('svg'), viewBox: `0 0 ${size} ${size}` }, curves),\n label ? h('div', { ...getStyles('label') }, renderContent(label)) : null,\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(RingProgress, { classes, varsResolver })\n","export interface DigitParts {\n negative: boolean\n intDigits: string[]\n fracDigits: string[]\n hasDecimal: boolean\n}\n\nexport interface GetDigitPartsInput {\n value: number\n decimalScale?: number\n fixedDecimalScale?: boolean\n}\n\nconst PLAIN_FORMAT = new Intl.NumberFormat('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20,\n})\n\nfunction toPlainString(num: number, decimalScale?: number): string {\n if (!Number.isFinite(num)) {\n return '0'\n }\n\n if (decimalScale !== undefined) {\n return new Intl.NumberFormat('en-US', {\n useGrouping: false,\n minimumFractionDigits: decimalScale,\n maximumFractionDigits: decimalScale,\n }).format(num)\n }\n\n const str = String(num)\n\n if (!str.includes('e') && !str.includes('E')) {\n return str\n }\n\n return PLAIN_FORMAT.format(num)\n}\n\nexport function getDigitParts({\n value,\n decimalScale,\n fixedDecimalScale,\n}: GetDigitPartsInput): DigitParts {\n const abs = Math.abs(value)\n let str = toPlainString(abs, decimalScale)\n\n if (!fixedDecimalScale && decimalScale !== undefined) {\n const parts = str.split('.')\n\n if (parts[1]) {\n const trimmed = parts[1].replace(/0+$/, '')\n str = trimmed ? `${parts[0]}.${trimmed}` : parts[0]\n }\n }\n\n const dotIdx = str.indexOf('.')\n const intStr = dotIdx >= 0 ? str.slice(0, dotIdx) : str\n const fracStr = dotIdx >= 0 ? str.slice(dotIdx + 1) : ''\n\n return {\n negative: value < 0,\n intDigits: intStr.split(''),\n fracDigits: fracStr ? fracStr.split('') : [],\n hasDecimal: dotIdx >= 0,\n }\n}\n","import { getDigitParts } from './get-digit-parts'\n\nexport interface BuildValueInput {\n value: number\n prefix?: string\n suffix?: string\n decimalSeparator?: string\n thousandSeparator?: string | boolean\n decimalScale?: number\n fixedDecimalScale?: boolean\n}\n\nexport function buildValue({\n value,\n prefix,\n suffix,\n decimalSeparator = '.',\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n}: BuildValueInput): string {\n const parts = getDigitParts({ value, decimalScale, fixedDecimalScale })\n let intStr = parts.intDigits.join('')\n\n if (thousandSeparator) {\n const sep = typeof thousandSeparator === 'string' ? thousandSeparator : ','\n intStr = intStr.replace(/\\B(?=(\\d{3})+(?!\\d))/g, sep)\n }\n\n let result = parts.negative ? `-${intStr}` : intStr\n\n if (parts.fracDigits.length > 0) {\n result += `${decimalSeparator}${parts.fracDigits.join('')}`\n }\n\n return `${prefix || ''}${result}${suffix || ''}`\n}\n","import { defineComponent, h, type PropType } from 'vue'\n\nconst STRIP_CELLS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1']\n\nexport const DigitColumn = defineComponent({\n name: 'RollingNumberDigitColumn',\n props: {\n digit: { type: String, required: true },\n previousDigit: { type: [String, null] as PropType<string | null>, default: null },\n empty: { type: Boolean, default: false },\n valueDirection: { type: String as PropType<'up' | 'down'>, required: true },\n getStyles: {\n type: Function as PropType<(selector: string, options?: any) => Record<string, any>>,\n required: true,\n },\n },\n setup(props) {\n return () => {\n const digitIndex = Number.parseInt(props.digit, 10)\n const previousDigitIndex =\n props.previousDigit !== null ? Number.parseInt(props.previousDigit, 10) : digitIndex\n const wrapsForward =\n props.valueDirection === 'up' &&\n props.previousDigit !== null &&\n digitIndex < previousDigitIndex &&\n digitIndex <= 1\n const animateToIndex = wrapsForward ? digitIndex + 10 : digitIndex\n const direction = digitIndex >= previousDigitIndex ? 'up' : 'down'\n const columnStyles = props.getStyles('digitColumn')\n\n return h(\n 'span',\n {\n ...props.getStyles('digit'),\n 'data-empty': props.empty || undefined,\n 'aria-hidden': 'true',\n },\n h(\n 'span',\n {\n key: props.digit,\n ...columnStyles,\n style: {\n ...columnStyles.style,\n transform: `translateY(${-digitIndex}em)`,\n '--rn-roll-from': `translateY(${-previousDigitIndex}em)`,\n '--rn-roll-to': `translateY(${-animateToIndex}em)`,\n },\n 'data-direction': direction,\n },\n STRIP_CELLS.map((digit, index) => h('span', { key: index }, digit)),\n ),\n )\n }\n },\n})\n","import { getDigitParts, type DigitParts } from './get-digit-parts'\n\nexport interface DigitSlot {\n type: 'digit'\n key: string\n digit: string\n previousDigit: string | null\n empty: boolean\n}\n\nexport interface CharSlot {\n type: 'char'\n key: string\n char: string\n empty: boolean\n}\n\nexport type RenderSlot = DigitSlot | CharSlot\n\nexport interface GetRenderSlotsInput {\n current: DigitParts\n previous: DigitParts\n prefix?: string\n suffix?: string\n decimalSeparator?: string\n thousandSeparator?: string | boolean\n}\n\nfunction padLeft(arr: string[], length: number): (string | null)[] {\n return [...Array(length - arr.length).fill(null), ...arr]\n}\n\nfunction padRight(arr: string[], length: number): (string | null)[] {\n return [...arr, ...Array(length - arr.length).fill(null)]\n}\n\nexport function getRenderSlots({\n current,\n previous,\n prefix,\n suffix,\n decimalSeparator = '.',\n thousandSeparator,\n}: GetRenderSlotsInput): RenderSlot[] {\n const maxIntLen = Math.max(current.intDigits.length, previous.intDigits.length)\n const maxFracLen = Math.max(current.fracDigits.length, previous.fracDigits.length)\n const currIntPadded = padLeft(current.intDigits, maxIntLen)\n const prevIntPadded = padLeft(previous.intDigits, maxIntLen)\n const currFracPadded = padRight(current.fracDigits, maxFracLen)\n const prevFracPadded = padRight(previous.fracDigits, maxFracLen)\n const sep = thousandSeparator\n ? typeof thousandSeparator === 'string'\n ? thousandSeparator\n : ','\n : null\n const slots: RenderSlot[] = []\n\n if (prefix) {\n for (let i = 0; i < prefix.length; i += 1) {\n slots.push({ type: 'char', key: `prefix-${i}`, char: prefix[i], empty: false })\n }\n }\n\n if (current.negative || previous.negative) {\n slots.push({ type: 'char', key: 'sign', char: '-', empty: !current.negative })\n }\n\n for (let i = 0; i < maxIntLen; i += 1) {\n const posFromRight = maxIntLen - 1 - i\n const currDigit = currIntPadded[i]\n const prevDigit = prevIntPadded[i]\n const isEmpty = currDigit === null\n\n slots.push({\n type: 'digit',\n key: `int-${posFromRight}`,\n digit: currDigit ?? '0',\n previousDigit: prevDigit,\n empty: isEmpty,\n })\n\n if (sep && posFromRight > 0 && posFromRight % 3 === 0) {\n slots.push({ type: 'char', key: `sep-${posFromRight}`, char: sep, empty: isEmpty })\n }\n }\n\n if (current.hasDecimal || previous.hasDecimal) {\n slots.push({ type: 'char', key: 'dec', char: decimalSeparator, empty: !current.hasDecimal })\n }\n\n for (let i = 0; i < maxFracLen; i += 1) {\n const currDigit = currFracPadded[i]\n const prevDigit = prevFracPadded[i]\n const isEmpty = currDigit === null\n\n slots.push({\n type: 'digit',\n key: `frac-${i}`,\n digit: currDigit ?? '0',\n previousDigit: prevDigit,\n empty: isEmpty,\n })\n }\n\n if (suffix) {\n for (let i = 0; i < suffix.length; i += 1) {\n slots.push({ type: 'char', key: `suffix-${i}`, char: suffix[i], empty: false })\n }\n }\n\n return slots\n}\n\nexport interface GetRenderSlotsFromValuesInput {\n value: number\n previousValue: number\n prefix?: string\n suffix?: string\n decimalSeparator?: string\n thousandSeparator?: string | boolean\n decimalScale?: number\n fixedDecimalScale?: boolean\n}\n\nexport function getRenderSlotsFromValues({\n value,\n previousValue,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n}: GetRenderSlotsFromValuesInput): RenderSlot[] {\n const current = getDigitParts({ value, decimalScale, fixedDecimalScale })\n const previous = getDigitParts({ value: previousValue, decimalScale, fixedDecimalScale })\n\n return getRenderSlots({ current, previous, prefix, suffix, decimalSeparator, thousandSeparator })\n}\n",".root {\n display: inline-flex;\n align-items: baseline;\n overflow: hidden;\n\n &[data-tabular-numbers] {\n font-variant-numeric: tabular-nums;\n }\n}\n\n.digit {\n display: inline-block;\n width: 1ch;\n height: 1em;\n overflow: hidden;\n line-height: 1;\n transition:\n width var(--rn-duration) var(--rn-timing-function),\n opacity var(--rn-duration) var(--rn-timing-function);\n\n &[data-empty] {\n width: 0;\n opacity: 0;\n }\n}\n\n.digitColumn {\n display: flex;\n flex-direction: column;\n animation: mantine-rolling-number-roll var(--rn-duration) var(--rn-timing-function);\n\n & > span {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 1em;\n }\n}\n\n.char {\n display: inline-block;\n overflow: hidden;\n white-space: pre;\n transition: opacity var(--rn-duration) var(--rn-timing-function);\n\n &[data-empty] {\n width: 0;\n opacity: 0;\n }\n}\n\n@keyframes mantine-rolling-number-roll {\n from {\n transform: var(--rn-roll-from);\n }\n\n to {\n transform: var(--rn-roll-to);\n }\n}\n","import { defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, useProps, useStyles } from '../../core'\nimport { buildValue } from './build-value'\nimport { DigitColumn } from './DigitColumn'\nimport { getDigitParts } from './get-digit-parts'\nimport { getRenderSlots } from './get-render-slots'\nimport classes from './RollingNumber.module.css'\n\nexport type RollingNumberStylesNames = 'root' | 'digit' | 'digitColumn' | 'char'\nexport type RollingNumberCssVariables = {\n root: '--rn-duration' | '--rn-timing-function'\n}\n\nexport interface RollingNumberProps {\n value: number\n prefix?: string\n suffix?: string\n decimalSeparator?: string\n thousandSeparator?: string | boolean\n decimalScale?: number\n fixedDecimalScale?: boolean\n animationDuration?: number\n timingFunction?: string\n tabularNumbers?: boolean\n withLiveRegion?: boolean\n mod?: Record<string, any> | Array<Record<string, any> | undefined>\n classNames?: Record<string, string> | ((theme: any, props: any) => Record<string, string>)\n styles?: Record<string, any> | ((theme: any, props: any) => Record<string, any>)\n vars?:\n | Record<string, Record<string, string | undefined>>\n | ((theme: any, props: any) => Record<string, Record<string, string | undefined>>)\n unstyled?: boolean\n}\n\nconst defaultProps = {\n animationDuration: 600,\n timingFunction: 'ease',\n decimalSeparator: '.',\n tabularNumbers: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { animationDuration, timingFunction }) => ({\n root: {\n '--rn-duration': `${animationDuration}ms`,\n '--rn-timing-function': timingFunction,\n },\n}))\n\nexport const RollingNumber = withBoxProps(\n defineComponent({\n name: 'RollingNumber',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n prefix: { type: String, default: undefined },\n suffix: { type: String, default: undefined },\n decimalSeparator: { type: String, default: undefined },\n thousandSeparator: {\n type: [String, Boolean] as PropType<string | boolean>,\n default: undefined,\n },\n decimalScale: { type: Number, default: undefined },\n fixedDecimalScale: { type: Boolean, default: false },\n animationDuration: { type: Number, default: undefined },\n timingFunction: { type: String, default: undefined },\n tabularNumbers: { type: Boolean, default: undefined },\n withLiveRegion: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('RollingNumber', defaultProps, rawProps)\n const previousValue = ref(props.value)\n const getStyles = useStyles({\n name: 'RollingNumber',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n watch(\n () => props.value,\n (_, oldValue) => {\n previousValue.value = oldValue\n },\n { flush: 'post' },\n )\n\n return () => {\n const valueDirection = props.value >= previousValue.value ? 'up' : 'down'\n const current = getDigitParts({\n value: props.value,\n decimalScale: props.decimalScale,\n fixedDecimalScale: props.fixedDecimalScale,\n })\n const previous = getDigitParts({\n value: previousValue.value,\n decimalScale: props.decimalScale,\n fixedDecimalScale: props.fixedDecimalScale,\n })\n const slots = getRenderSlots({\n current,\n previous,\n prefix: props.prefix,\n suffix: props.suffix,\n decimalSeparator: props.decimalSeparator,\n thousandSeparator: props.thousandSeparator,\n })\n const accessibleValue = buildValue({\n value: props.value,\n prefix: props.prefix,\n suffix: props.suffix,\n decimalSeparator: props.decimalSeparator,\n thousandSeparator: props.thousandSeparator,\n decimalScale: props.decimalScale,\n fixedDecimalScale: props.fixedDecimalScale,\n })\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n mod: [{ tabularNumbers: props.tabularNumbers }, props.mod],\n role: props.withLiveRegion ? 'status' : 'img',\n 'aria-label': accessibleValue,\n },\n () =>\n slots.map((slot) =>\n slot.type === 'digit'\n ? h(DigitColumn, {\n key: slot.key,\n digit: slot.digit,\n previousDigit: slot.previousDigit,\n getStyles,\n empty: slot.empty,\n valueDirection,\n })\n : h(\n 'span',\n {\n key: slot.key,\n ...getStyles('char'),\n 'data-empty': slot.empty || undefined,\n 'aria-hidden': 'true',\n },\n slot.char,\n ),\n ),\n )\n }\n },\n }),\n)\n\nObject.assign(RollingNumber, { classes, varsResolver })\n","import { createSafeContext } from '../../core'\n\nexport interface TimelineContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any; props?: any }) => any\n}\n\nexport const [provideTimelineContext, useTimelineContext] = createSafeContext<TimelineContextValue>(\n 'Timeline component was not found in tree',\n)\n",".root {\n --offset: calc(var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2);\n --tl-bullet-size: 20px;\n --tl-line-width: 4px;\n --tl-radius: 1000px;\n --tl-color: var(--mantine-primary-color-filled);\n\n &:where([data-align='left']) {\n padding-inline-start: var(--offset);\n }\n\n &:where([data-align='right']) {\n padding-inline-end: var(--offset);\n }\n}\n\n.itemTitle {\n font-weight: var(--mantine-font-weight-medium);\n line-height: 1;\n margin-bottom: calc(var(--mantine-spacing-xs) / 2);\n}\n\n.item {\n --item-border: var(--tl-line-width) var(--tli-border-style, solid) var(--item-border-color);\n\n position: relative;\n color: var(--mantine-color-text);\n\n &::before {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n inset-inline-start: var(--timeline-line-start, 0);\n inset-inline-end: var(--timeline-line-end, 0);\n bottom: calc(var(--mantine-spacing-xl) * -1);\n border-inline-start: var(--item-border);\n display: var(--timeline-line-display, none);\n\n .root[data-align='left'] & {\n --timeline-line-start: calc(var(--tl-line-width) * -1);\n --timeline-line-end: auto;\n }\n\n .root[data-align='right'] & {\n --timeline-line-start: auto;\n --timeline-line-end: calc(var(--tl-line-width) * -1);\n }\n }\n\n .root:where([data-align='left']) & {\n padding-inline-start: var(--offset);\n text-align: start;\n }\n\n .root:where([data-align='right']) & {\n padding-inline-end: var(--offset);\n text-align: end;\n }\n\n @mixin where-light {\n --item-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --item-border-color: var(--mantine-color-dark-4);\n }\n\n &:where([data-line-active]) {\n &::before {\n border-color: var(--tli-color, var(--tl-color));\n }\n }\n\n &:where(:not(:last-of-type)) {\n --timeline-line-display: block;\n }\n\n &:where(:not(:first-of-type)) {\n margin-top: var(--mantine-spacing-xl);\n }\n}\n\n.itemBullet {\n width: var(--tl-bullet-size);\n height: var(--tl-bullet-size);\n border-radius: var(--tli-radius, var(--tl-radius));\n border: var(--tl-line-width) solid;\n background-color: var(--mantine-color-body);\n position: absolute;\n top: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mantine-color-text);\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n\n .root:where([data-align='left']) & {\n inset-inline-start: calc((var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2) * -1);\n inset-inline-end: auto;\n }\n\n .root:where([data-align='right']) & {\n inset-inline-start: auto;\n inset-inline-end: calc((var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2) * -1);\n }\n\n &:where([data-with-child]) {\n border-width: var(--tl-line-width);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n }\n\n &:where([data-active]) {\n border-color: var(--tli-color, var(--tl-color));\n background-color: var(--mantine-color-white);\n color: var(--tl-icon-color, var(--mantine-color-white));\n\n &:where([data-with-child]) {\n background-color: var(--tli-color, var(--tl-color));\n color: var(--tl-icon-color, var(--mantine-color-white));\n }\n }\n}\n\n.itemBody {\n .root:where([data-align='left']) & {\n padding-inline-start: var(--offset);\n text-align: start;\n }\n\n .root:where([data-align='right']) & {\n padding-inline-end: var(--offset);\n text-align: end;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n getRadius,\n getThemeColor,\n useMantineTheme,\n useProps,\n} from '../../../core'\nimport { useTimelineContext } from '../Timeline.context'\nimport classes from '../Timeline.module.css'\n\nexport type TimelineItemStylesNames =\n | 'itemBody'\n | 'itemContent'\n | 'itemBullet'\n | 'item'\n | 'itemTitle'\n\nexport const TimelineItem = withBoxProps(\n defineComponent({\n name: 'TimelineItem',\n inheritAttrs: false,\n props: {\n __active: { type: Boolean, default: false },\n __lineActive: { type: Boolean, default: false },\n __align: { type: String as PropType<'right' | 'left'>, default: undefined },\n active: { type: Boolean, default: undefined },\n lineActive: { type: Boolean, default: undefined },\n title: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n bullet: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n color: { type: String, default: undefined },\n lineVariant: { type: String as PropType<'solid' | 'dashed' | 'dotted'>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n className: { type: [String, Array, Object] as PropType<any>, default: undefined },\n style: { type: [String, Array, Object] as PropType<any>, default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('TimelineItem', null, rawProps)\n const ctx = useTimelineContext()\n const theme = useMantineTheme()\n\n const renderContent = (value: any) => (typeof value === 'function' ? value() : value)\n\n return () => {\n const active = props.active ?? props.__active\n const lineActive = props.lineActive ?? props.__lineActive\n const stylesApiProps = { className: props.className ?? attrs.class, props }\n\n return h(\n Box,\n {\n ...attrs,\n mod: [{ lineActive, active }, props.mod],\n ...ctx.getStyles('item', {\n ...stylesApiProps,\n style: {\n '--tli-radius': props.radius !== undefined ? getRadius(props.radius) : undefined,\n '--tli-color': props.color ? getThemeColor(props.color, theme.value) : undefined,\n '--tli-border-style': props.lineVariant || undefined,\n ...(props.style as Record<string, any>),\n ...(attrs.style as Record<string, any>),\n },\n }),\n },\n () => [\n h(\n Box,\n {\n ...ctx.getStyles('itemBullet', { props }),\n mod: { withChild: Boolean(props.bullet), align: props.__align, active },\n },\n () => renderContent(props.bullet),\n ),\n h('div', ctx.getStyles('itemBody', { props }), [\n props.title\n ? h('div', ctx.getStyles('itemTitle', { props }), renderContent(props.title))\n : null,\n h('div', ctx.getStyles('itemContent', { props }), slots.default?.()),\n ]),\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(TimelineItem, { classes })\n","import { cloneVNode, defineComponent, h, type PropType, type VNode } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport { provideTimelineContext } from './Timeline.context'\nimport { TimelineItem } from './TimelineItem/TimelineItem'\nimport classes from './Timeline.module.css'\n\nexport type TimelineStylesNames =\n | 'root'\n | 'itemBody'\n | 'itemContent'\n | 'itemBullet'\n | 'item'\n | 'itemTitle'\n\nconst defaultProps = {\n active: -1,\n align: 'left',\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { bulletSize, lineWidth, radius, color, autoContrast }) => ({\n root: {\n '--tl-bullet-size': rem(bulletSize),\n '--tl-line-width': rem(lineWidth),\n '--tl-radius': radius === undefined ? undefined : getRadius(radius),\n '--tl-color': color ? getThemeColor(color, theme) : undefined,\n '--tl-icon-color': getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n },\n }),\n)\n\nconst TimelineBase = defineComponent({\n name: 'Timeline',\n inheritAttrs: false,\n props: {\n active: { type: Number, default: undefined },\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n bulletSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n align: { type: String as PropType<'right' | 'left'>, default: undefined },\n lineWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n reverseActive: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Timeline', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Timeline',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provideTimelineContext({ getStyles })\n\n return () => {\n const children = (slots.default?.() ?? []).filter(Boolean) as VNode[]\n const active = props.active ?? defaultProps.active\n const items = children.map((item, index) =>\n cloneVNode(\n item,\n {\n unstyled: props.unstyled,\n __align: props.align,\n __active: props.reverseActive ? active >= children.length - index - 1 : active >= index,\n __lineActive: props.reverseActive\n ? active >= children.length - index - 1\n : active - 1 >= index,\n },\n true,\n ),\n )\n\n return h(\n Box,\n {\n ...attrs,\n mod: [{ align: props.align }, props.mod],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => items,\n )\n }\n },\n})\n\nexport const Timeline = withBoxProps(\n Object.assign(TimelineBase, {\n classes,\n varsResolver,\n Item: TimelineItem,\n }),\n)\n","function escapeRegex(value: string) {\n return value.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n}\n\nexport function foldAccents(text: string): string {\n return text.normalize('NFD').replace(/\\p{M}/gu, '')\n}\n\nfunction foldAccentsWithMap(text: string): { folded: string; map: number[] } {\n let folded = ''\n const map: number[] = []\n let i = 0\n\n while (i < text.length) {\n const cp = text.codePointAt(i)!\n const cpStr = String.fromCodePoint(cp)\n const foldedCp = foldAccents(cpStr)\n\n for (let j = 0; j < foldedCp.length; j += 1) {\n map.push(i)\n }\n\n folded += foldedCp\n i += cpStr.length\n }\n\n map.push(text.length)\n return { folded, map }\n}\n\nexport interface HighlightChunk {\n chunk: string\n highlighted: boolean\n}\n\nexport interface HighlighterOptions {\n wholeWord?: boolean\n caseInsensitive?: boolean\n accentInsensitive?: boolean\n}\n\nfunction getAccentInsensitiveChunks(value: string, re: RegExp): HighlightChunk[] {\n const { folded, map } = foldAccentsWithMap(value)\n const chunks: HighlightChunk[] = []\n let lastOrigEnd = 0\n let match: RegExpExecArray | null\n\n while ((match = re.exec(folded)) !== null) {\n const foldedStart = match.index\n const foldedEnd = foldedStart + match[0].length\n const origStart = map[foldedStart]\n const origEnd = map[foldedEnd]\n\n if (origStart > lastOrigEnd) {\n chunks.push({ chunk: value.slice(lastOrigEnd, origStart), highlighted: false })\n }\n\n chunks.push({ chunk: value.slice(origStart, origEnd), highlighted: true })\n lastOrigEnd = origEnd\n\n if (match[0].length === 0) {\n re.lastIndex += 1\n }\n }\n\n if (lastOrigEnd < value.length) {\n chunks.push({ chunk: value.slice(lastOrigEnd), highlighted: false })\n }\n\n return chunks.filter(({ chunk }) => chunk)\n}\n\nexport function highlighter(\n value: string,\n _highlight: string | string[],\n options: HighlighterOptions = {},\n): HighlightChunk[] {\n if (_highlight == null) {\n return [{ chunk: value, highlighted: false }]\n }\n\n const { wholeWord = false, caseInsensitive = true, accentInsensitive = true } = options\n const prepareTerm = (term: string) =>\n accentInsensitive ? foldAccents(escapeRegex(term)) : escapeRegex(term)\n const highlight = Array.isArray(_highlight)\n ? _highlight.map(prepareTerm)\n : prepareTerm(_highlight)\n const shouldHighlight = Array.isArray(highlight)\n ? highlight.filter((part) => part.trim().length > 0).length > 0\n : highlight.trim() !== ''\n\n if (!shouldHighlight) {\n return [{ chunk: value, highlighted: false }]\n }\n\n const matcher =\n typeof highlight === 'string'\n ? highlight.trim()\n : highlight\n .filter((part) => part.trim().length !== 0)\n .map((part) => part.trim())\n .sort((a, b) => b.length - a.length)\n .join('|')\n\n const pattern = wholeWord ? `(?<![\\\\p{L}\\\\p{N}_])(${matcher})(?![\\\\p{L}\\\\p{N}_])` : `(${matcher})`\n const flags = ['g', caseInsensitive ? 'i' : '', wholeWord ? 'u' : ''].join('')\n const re = new RegExp(pattern, flags)\n\n if (accentInsensitive) {\n return getAccentInsensitiveChunks(value, re)\n }\n\n return value\n .split(re)\n .map((part, index) => ({ chunk: part, highlighted: index % 2 === 1 }))\n .filter(({ chunk }) => chunk)\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useProps } from '../../core'\nimport { Mark } from '../Mark'\nimport { Text } from '../Text'\nimport { foldAccents, highlighter } from './highlighter/highlighter'\n\nexport interface HighlightTerm {\n text: string\n color?: string\n}\n\nconst defaultProps = {\n color: 'yellow',\n wholeWord: false,\n caseInsensitive: true,\n accentInsensitive: true,\n} as const\n\nfunction normalizeKey(value: string, caseInsensitive?: boolean, accentInsensitive?: boolean) {\n let key = value\n\n if (caseInsensitive) {\n key = key.toLowerCase()\n }\n\n if (accentInsensitive) {\n key = foldAccents(key)\n }\n\n return key\n}\n\nexport const Highlight = defineComponent({\n name: 'Highlight',\n inheritAttrs: false,\n props: {\n highlight: {\n type: [String, Array] as PropType<string | string[] | HighlightTerm[]>,\n required: true,\n },\n color: { type: String, default: undefined },\n highlightStyles: {\n type: [Object, Function] as PropType<\n Record<string, any> | ((theme: any) => Record<string, any>)\n >,\n default: undefined,\n },\n wholeWord: { type: Boolean, default: undefined },\n caseInsensitive: { type: Boolean, default: undefined },\n accentInsensitive: { type: Boolean, default: undefined },\n component: { type: String, default: undefined },\n span: { type: Boolean, default: false },\n unstyled: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Highlight', defaultProps, rawProps)\n\n return () => {\n const text =\n slots\n .default?.()\n .map((node) => String(node.children ?? ''))\n .join('') ?? ''\n const isTermArray = Array.isArray(props.highlight) && typeof props.highlight[0] === 'object'\n const colorMap = new Map<string, string>()\n let highlightStrings: string[]\n\n if (isTermArray) {\n highlightStrings = (props.highlight as HighlightTerm[]).map((term) => {\n if (term.color) {\n colorMap.set(\n normalizeKey(term.text, props.caseInsensitive, props.accentInsensitive),\n term.color,\n )\n }\n\n return term.text\n })\n } else if (Array.isArray(props.highlight)) {\n highlightStrings = props.highlight as string[]\n } else {\n highlightStrings = [props.highlight as string]\n }\n\n const chunks = highlighter(text, highlightStrings, {\n wholeWord: props.wholeWord,\n caseInsensitive: props.caseInsensitive,\n accentInsensitive: props.accentInsensitive,\n })\n\n return h(\n Text,\n {\n ...attrs,\n component: props.component,\n span: props.span,\n unstyled: props.unstyled,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n __staticSelector: 'Highlight',\n },\n () =>\n chunks.map(({ chunk, highlighted }, index) =>\n highlighted\n ? h(\n Mark,\n {\n key: index,\n unstyled: props.unstyled,\n color:\n colorMap.get(\n normalizeKey(chunk, props.caseInsensitive, props.accentInsensitive),\n ) || props.color,\n style: props.highlightStyles,\n 'data-highlight': chunk,\n },\n () => chunk,\n )\n : h('span', { key: index }, chunk),\n ),\n )\n }\n },\n})\n",".root {\n & :first-child {\n margin-top: 0;\n }\n\n & :last-child {\n margin-bottom: 0;\n }\n\n & :where(h1, h2, h3, h4, h5, h6) {\n margin-bottom: var(--mantine-spacing-xs);\n text-wrap: var(--mantine-heading-text-wrap);\n font-family: var(--mantine-font-family-headings);\n }\n\n & :where(h1) {\n margin-top: calc(1.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h1-font-size);\n line-height: var(--mantine-h1-line-height);\n font-weight: var(--mantine-h1-font-weight);\n }\n\n & :where(h2) {\n margin-top: var(--mantine-spacing-xl);\n font-size: var(--mantine-h2-font-size);\n line-height: var(--mantine-h2-line-height);\n font-weight: var(--mantine-h2-font-weight);\n }\n\n & :where(h3) {\n margin-top: calc(0.8 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h3-font-size);\n line-height: var(--mantine-h3-line-height);\n font-weight: var(--mantine-h3-font-weight);\n }\n\n & :where(h4) {\n margin-top: calc(0.8 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h4-font-size);\n line-height: var(--mantine-h4-line-height);\n font-weight: var(--mantine-h4-font-weight);\n }\n\n & :where(h5) {\n margin-top: calc(0.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h5-font-size);\n line-height: var(--mantine-h5-line-height);\n font-weight: var(--mantine-h5-font-weight);\n }\n\n & :where(h6) {\n margin-top: calc(0.5 * var(--mantine-spacing-xl));\n font-size: var(--mantine-h6-font-size);\n line-height: var(--mantine-h6-line-height);\n font-weight: var(--mantine-h6-font-weight);\n }\n\n & :where(img) {\n max-width: 100%;\n margin-bottom: var(--mantine-spacing-xs);\n }\n\n & :where(p) {\n margin-top: 0;\n margin-bottom: var(--mantine-spacing-lg);\n }\n\n & :where(mark) {\n @mixin where-light {\n background-color: var(--mantine-color-yellow-2);\n color: inherit;\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-yellow-5);\n color: var(--mantine-color-black);\n }\n }\n\n & :where(a) {\n color: var(--mantine-color-anchor);\n text-decoration: none;\n\n @mixin hover {\n text-decoration: underline;\n }\n }\n\n & :where(hr) {\n margin-top: var(--mantine-spacing-md);\n margin-bottom: var(--mantine-spacing-md);\n border: 0;\n border-top: 1px solid;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-3);\n }\n }\n\n & :where(pre) {\n padding: var(--mantine-spacing-xs);\n line-height: var(--mantine-line-height);\n margin: 0;\n margin-top: var(--mantine-spacing-md);\n margin-bottom: var(--mantine-spacing-md);\n overflow-x: auto;\n font-family: var(--mantine-font-family-monospace);\n font-size: var(--mantine-font-size-xs);\n border-radius: var(--mantine-radius-sm);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n\n & :where(code) {\n background-color: transparent;\n padding: 0;\n border-radius: 0;\n color: inherit;\n border: 0;\n }\n }\n\n & :where(kbd) {\n --kbd-fz: 12px;\n --kbd-padding: 3px 5px;\n\n font-family: var(--mantine-font-family-monospace);\n line-height: var(--mantine-line-height);\n font-weight: var(--mantine-font-weight-bold);\n padding: var(--kbd-padding);\n font-size: var(--kbd-fz);\n border-radius: var(--mantine-radius-sm);\n border: 1px solid;\n border-bottom-width: 3px;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n color: var(--mantine-color-gray-7);\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-3);\n color: var(--mantine-color-dark-0);\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n & :where(code) {\n line-height: var(--mantine-line-height);\n padding: 1px 5px;\n border-radius: var(--mantine-radius-sm);\n font-family: var(--mantine-font-family-monospace);\n font-size: var(--mantine-font-size-xs);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n color: var(--mantine-color-white);\n }\n }\n\n & :where(ul, ol):not([data-type='taskList']) {\n margin-bottom: var(--mantine-spacing-md);\n padding-inline-start: var(--mantine-spacing-xl);\n list-style-position: outside;\n }\n\n & :where(table) {\n width: 100%;\n border-collapse: collapse;\n caption-side: bottom;\n margin-bottom: var(--mantine-spacing-md);\n\n @mixin where-light {\n --table-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --table-border-color: var(--mantine-color-dark-4);\n }\n\n & :where(caption) {\n margin-top: var(--mantine-spacing-xs);\n font-size: var(--mantine-font-size-sm);\n color: var(--mantine-color-dimmed);\n }\n\n & :where(th) {\n text-align: start;\n font-weight: bold;\n font-size: var(--mantine-font-size-sm);\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n }\n\n & :where(thead th) {\n border-bottom: 1px solid;\n border-color: var(--table-border-color);\n }\n\n & :where(tfoot th) {\n border-top: 1px solid;\n border-color: var(--table-border-color);\n }\n\n & :where(td) {\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);\n border-bottom: 1px solid;\n border-color: var(--table-border-color);\n font-size: var(--mantine-font-size-sm);\n }\n\n & :where(tr:last-of-type td) {\n border-bottom: 0;\n }\n }\n\n & :where(blockquote) {\n font-size: var(--mantine-font-size-lg);\n line-height: var(--mantine-line-height);\n margin: var(--mantine-spacing-md) 0;\n border-radius: var(--mantine-radius-sm);\n padding: var(--mantine-spacing-md) var(--mantine-spacing-lg);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n }\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box, useProps, useStyles } from '../../core'\nimport classes from './Typography.module.css'\n\nexport type TypographyStylesNames = 'root'\n\nexport const Typography = withBoxProps(\n defineComponent({\n name: 'Typography',\n inheritAttrs: false,\n props: {\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Typography', null, rawProps)\n const getStyles = useStyles({\n name: 'Typography',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n })\n\n return () => h(Box, { ...attrs, ...getStyles('root') }, () => slots.default?.())\n },\n }),\n)\n\nObject.assign(Typography, { classes })\n",".root {\n --scp-filled-segment-color: var(--mantine-primary-color-filled);\n --scp-transition-duration: 0ms;\n --scp-thickness: 12px;\n\n @mixin where-light {\n --scp-empty-segment-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n --scp-empty-segment-color: var(--mantine-color-dark-4);\n }\n\n position: relative;\n width: fit-content;\n}\n\n.svg {\n display: block;\n transform: var(--scp-rotation);\n overflow: hidden;\n}\n\n.filledSegment {\n transition:\n stroke-dashoffset var(--scp-transition-duration) ease,\n stroke-dasharray var(--scp-transition-duration) ease,\n stroke var(--scp-transition-duration);\n}\n\n.label {\n position: absolute;\n margin: 0;\n padding: 0;\n inset-inline: 0;\n text-align: center;\n z-index: 1;\n\n &:where([data-position='bottom']) {\n bottom: 0;\n padding-inline: calc(var(--scp-thickness) * 2);\n\n &:where([data-orientation='down']) {\n bottom: auto;\n top: 0;\n }\n }\n\n &:where([data-position='center']) {\n top: 50%;\n transform: translateY(-50%);\n padding-inline: calc(var(--scp-thickness) * 3);\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport classes from './SemiCircleProgress.module.css'\n\nexport type SemiCircleProgressStylesNames =\n | 'root'\n | 'svg'\n | 'emptySegment'\n | 'filledSegment'\n | 'label'\n\nconst defaultProps = {\n size: 200,\n thickness: 12,\n orientation: 'up',\n fillDirection: 'left-to-right',\n labelPosition: 'bottom',\n} as const\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value))\n}\n\nfunction getRotation({\n orientation,\n fillDirection,\n}: {\n orientation?: 'up' | 'down'\n fillDirection?: 'right-to-left' | 'left-to-right'\n}) {\n if (orientation === 'down') {\n return fillDirection === 'right-to-left' ? 'rotate(180deg) rotateY(180deg)' : 'rotate(180deg)'\n }\n\n return fillDirection === 'left-to-right' ? 'rotateY(180deg)' : undefined\n}\n\nconst varsResolver = createVarsResolver<any>(\n (\n theme,\n {\n filledSegmentColor,\n emptySegmentColor,\n orientation,\n fillDirection,\n transitionDuration,\n thickness,\n },\n ) => ({\n root: {\n '--scp-filled-segment-color': filledSegmentColor\n ? getThemeColor(filledSegmentColor, theme)\n : undefined,\n '--scp-empty-segment-color': emptySegmentColor\n ? getThemeColor(emptySegmentColor, theme)\n : undefined,\n '--scp-rotation': getRotation({ orientation, fillDirection }),\n '--scp-transition-duration': transitionDuration ? `${transitionDuration}ms` : undefined,\n '--scp-thickness': rem(thickness),\n },\n }),\n)\n\nexport const SemiCircleProgress = withBoxProps(\n defineComponent({\n name: 'SemiCircleProgress',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n size: { type: Number, default: undefined },\n thickness: { type: Number, default: undefined },\n orientation: { type: String as PropType<'up' | 'down'>, default: undefined },\n fillDirection: {\n type: String as PropType<'right-to-left' | 'left-to-right'>,\n default: undefined,\n },\n filledSegmentColor: { type: String, default: undefined },\n emptySegmentColor: { type: String, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n labelPosition: { type: String as PropType<'center' | 'bottom'>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('SemiCircleProgress', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'SemiCircleProgress',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const renderContent = (value: any) => (typeof value === 'function' ? value() : value)\n\n return () => {\n const size = props.size ?? defaultProps.size\n const thickness = props.thickness ?? defaultProps.thickness\n const coordinateForCircle = size / 2\n const radius = (size - 2 * thickness) / 2\n const circumference = Math.PI * radius\n const semiCirclePercentage = clamp(props.value, 0, 100) * (circumference / 100)\n const label = props.label ?? slots.label?.()\n\n return h(\n Box,\n {\n ...attrs,\n w: size,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => [\n label\n ? h(\n 'div',\n {\n ...getStyles('label'),\n 'data-position': props.labelPosition,\n 'data-orientation': props.orientation,\n },\n renderContent(label),\n )\n : null,\n h(\n 'svg',\n {\n width: size,\n height: size / 2,\n viewBox: `0 0 ${size} ${size / 2}`,\n ...getStyles('svg'),\n },\n [\n h('circle', {\n cx: coordinateForCircle,\n cy: coordinateForCircle,\n r: radius,\n fill: 'none',\n stroke: 'var(--scp-empty-segment-color)',\n 'stroke-width': thickness,\n 'stroke-dasharray': circumference,\n ...getStyles('emptySegment', { style: { strokeDashoffset: circumference } }),\n }),\n h('circle', {\n cx: coordinateForCircle,\n cy: coordinateForCircle,\n r: radius,\n fill: 'none',\n stroke: 'var(--scp-filled-segment-color)',\n 'stroke-width': thickness,\n 'stroke-dasharray': circumference,\n ...getStyles('filledSegment', {\n style: { strokeDashoffset: semiCirclePercentage },\n }),\n }),\n ],\n ),\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(SemiCircleProgress, { classes, varsResolver })\n",".root {\n position: relative;\n\n &:where([data-has-spoiler]) {\n margin-bottom: 24px;\n }\n}\n\n.content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: max-height var(--spoiler-transition-duration, 200ms) ease;\n}\n\n.control {\n position: absolute;\n inset-inline-start: 0;\n top: 100%;\n height: 24px;\n}\n","import { computed, defineComponent, h, type PropType } from 'vue'\nimport { useElementSize, useId, useUncontrolled } from '@mantine-vue/hooks'\nimport { withBoxProps, Box, createVarsResolver, rem, useProps, useStyles } from '../../core'\nimport { Anchor } from '../Anchor'\nimport classes from './Spoiler.module.css'\n\nexport type SpoilerStylesNames = 'root' | 'control' | 'content'\n\nconst defaultProps = {\n maxHeight: 100,\n defaultExpanded: false,\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { transitionDuration }) => ({\n root: {\n '--spoiler-transition-duration':\n transitionDuration !== undefined ? `${transitionDuration}ms` : undefined,\n },\n}))\n\nexport const Spoiler = withBoxProps(\n defineComponent({\n name: 'Spoiler',\n inheritAttrs: false,\n props: {\n maxHeight: { type: Number, default: undefined },\n showLabel: { type: [String, Number, Object, Function] as PropType<any>, required: true },\n hideLabel: { type: [String, Number, Object, Function] as PropType<any>, required: true },\n defaultExpanded: { type: Boolean, default: undefined },\n expanded: { type: Boolean, default: undefined },\n onExpandedChange: {\n type: Function as PropType<(expanded: boolean) => void>,\n default: undefined,\n },\n transitionDuration: { type: Number, default: undefined },\n showAriaLabel: { type: String, default: undefined },\n hideAriaLabel: { type: String, default: undefined },\n id: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Spoiler', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Spoiler',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n const id = useId(props.id)\n const [show, setShowState] = useUncontrolled<boolean>({\n value: computed(() => props.expanded),\n defaultValue: props.defaultExpanded,\n finalValue: false,\n onChange: (value) => props.onExpandedChange?.(value),\n })\n const { ref: contentRef, height } = useElementSize<HTMLDivElement>()\n\n const renderContent = (value: any) => (typeof value === 'function' ? value() : value)\n\n return () => {\n const regionId = `${id.value}-region`\n const currentLabel = show.value ? props.hideLabel : props.showLabel\n const maxHeight = props.maxHeight ?? defaultProps.maxHeight\n const hasSpoiler = currentLabel !== null && maxHeight < height.value\n const ariaLabel = show.value ? props.hideAriaLabel : props.showAriaLabel\n\n return h(\n Box,\n {\n ...attrs,\n id: id.value,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n mod: { hasSpoiler },\n },\n () => [\n hasSpoiler\n ? h(\n Anchor,\n {\n component: 'button',\n type: 'button',\n onClick: () => setShowState(!show.value),\n 'aria-expanded': show.value,\n 'aria-controls': regionId,\n 'aria-label': ariaLabel,\n ...getStyles('control'),\n },\n () => renderContent(currentLabel),\n )\n : null,\n h(\n 'div',\n {\n ...getStyles('content', {\n style: {\n maxHeight: !show.value\n ? rem(maxHeight)\n : height.value\n ? rem(height.value)\n : undefined,\n },\n }),\n 'data-reduce-motion': '',\n role: 'region',\n id: regionId,\n },\n [h('div', { ref: contentRef }, slots.default?.())],\n ),\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(Spoiler, { classes, varsResolver })\n",".root {\n padding: var(--mantine-spacing-lg);\n padding-top: var(--mantine-spacing-xs);\n border-radius: var(--fieldset-radius, var(--mantine-radius-default));\n min-inline-size: auto;\n}\n\n.root:where([data-variant='default']) {\n border: 1px solid;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n background-color: var(--mantine-color-dark-7);\n }\n}\n\n.root:where([data-variant='filled']) {\n border: 1px solid;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n background-color: var(--mantine-color-dark-6);\n }\n}\n\n.root:where([data-variant='unstyled']) {\n padding: 0;\n border: 0;\n border-radius: 0;\n}\n\n.legend {\n font-size: var(--mantine-font-size-sm);\n}\n\n.root:where([data-variant='unstyled']) .legend {\n padding: 0;\n margin-bottom: var(--mantine-spacing-sm);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getRadius, useProps, useStyles } from '../../core'\nimport classes from './Fieldset.module.css'\n\nexport type FieldsetStylesNames = 'root' | 'legend'\nexport type FieldsetVariant = 'default' | 'filled' | 'unstyled'\n\nconst defaultProps = {\n variant: 'default',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { radius }) => ({\n root: {\n '--fieldset-radius': radius === undefined ? undefined : getRadius(radius),\n },\n}))\n\nexport const Fieldset = withBoxProps(\n defineComponent({\n name: 'Fieldset',\n inheritAttrs: false,\n props: {\n legend: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n variant: { type: String as PropType<FieldsetVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Fieldset', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Fieldset',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n const renderContent = (value: any) => (typeof value === 'function' ? value() : value)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'fieldset',\n variant: props.variant,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => [\n props.legend ? h('legend', getStyles('legend'), renderContent(props.legend)) : null,\n slots.default?.(),\n ],\n )\n },\n }),\n)\n\nObject.assign(Fieldset, { classes, varsResolver })\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { assignRef } from '@mantine-vue/hooks'\n\nexport const FileButton = defineComponent({\n name: 'FileButton',\n inheritAttrs: false,\n props: {\n onChange: {\n type: Function as PropType<(payload: File | File[] | null) => void>,\n required: true,\n },\n multiple: { type: Boolean, default: false },\n accept: { type: String, default: undefined },\n name: { type: String, default: undefined },\n form: { type: String, default: undefined },\n resetRef: { type: [Object, Function] as PropType<any>, default: undefined },\n disabled: { type: Boolean, default: false },\n capture: {\n type: [Boolean, String] as PropType<boolean | 'user' | 'environment' | undefined>,\n default: undefined,\n },\n inputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n inputRef: { type: [Object, Function] as PropType<any>, default: undefined },\n },\n setup(props, { attrs, slots }) {\n const inputRef = ref<HTMLInputElement | null>(null)\n const reset = () => {\n if (inputRef.value) {\n inputRef.value.value = ''\n }\n }\n\n assignRef(props.resetRef, reset)\n\n const onClick = () => {\n if (!props.disabled) {\n inputRef.value?.click()\n }\n }\n\n return () => [\n h('input', {\n ...props.inputProps,\n style: [{ display: 'none' }, props.inputProps?.style],\n type: 'file',\n accept: props.accept,\n multiple: props.multiple,\n name: props.name,\n form: props.form,\n capture: props.capture,\n ref: (node: any) => {\n inputRef.value = node\n assignRef(props.inputRef, node)\n },\n onChange: (event: Event) => {\n const files = (event.currentTarget as HTMLInputElement).files\n\n if (files === null) {\n props.onChange(props.multiple ? [] : null)\n return\n }\n\n props.onChange(props.multiple ? Array.from(files) : files[0] || null)\n },\n }),\n slots.default?.({ onClick, ...attrs }),\n ]\n },\n})\n","import { inject, provide, type InjectionKey } from 'vue'\n\nexport interface InputContextValue {\n size: string | number\n}\n\nexport const InputContextKey = Symbol('InputContext') as InjectionKey<InputContextValue>\n\nexport function provideInputContext(value: InputContextValue) {\n provide(InputContextKey, value)\n}\n\nexport function useInputContext() {\n return inject(InputContextKey, { size: 'sm' })\n}\n","import { withBoxProps } from '../../../core'\nimport { defineComponent, h, type PropType } from 'vue'\nimport { CloseButton } from '../../CloseButton'\nimport { useInputContext } from '../Input.context'\n\nexport const InputClearButton = withBoxProps(\n defineComponent({\n name: 'InputClearButton',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n variant: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const ctx = useInputContext()\n\n return () =>\n h(\n CloseButton as any,\n {\n ...attrs,\n variant: props.variant || 'transparent',\n size: props.size || ctx.size || 'sm',\n classNames: props.classNames,\n styles: props.styles,\n __staticSelector: 'InputClearButton',\n style: [{ pointerEvents: 'all', background: 'var(--input-bg)' }, attrs.style as any],\n } as any,\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { h } from 'vue'\n\nexport type ClearSectionMode = 'both' | 'rightSection' | 'clear'\n\nexport interface InputClearSectionProps {\n __clearable?: boolean\n __clearSection?: any\n rightSection?: any\n __defaultRightSection?: any\n size?: string | number\n __clearSectionMode?: ClearSectionMode\n}\n\nconst clearSectionOffset: Record<string, number> = {\n xs: 7,\n sm: 8,\n md: 10,\n lg: 12,\n xl: 15,\n}\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport function InputClearSection({\n __clearable,\n __clearSection,\n rightSection,\n __defaultRightSection,\n size = 'sm',\n __clearSectionMode = 'both',\n}: InputClearSectionProps) {\n const clearSection = __clearable && __clearSection\n\n if (__clearSectionMode === 'rightSection') {\n return rightSection === null ? null : renderContent(rightSection || __defaultRightSection)\n }\n\n if (__clearSectionMode === 'clear') {\n return rightSection === null ? null : renderContent(clearSection || __defaultRightSection)\n }\n\n if (clearSection && (rightSection || __defaultRightSection)) {\n return h(\n 'div',\n {\n 'data-combined-clear-section': true,\n style: {\n display: 'flex',\n gap: '2px',\n alignItems: 'center',\n paddingInlineEnd: `${clearSectionOffset[String(size)] ?? clearSectionOffset.sm}px`,\n },\n },\n [renderContent(clearSection), renderContent(rightSection || __defaultRightSection)],\n )\n }\n\n return rightSection === null\n ? null\n : renderContent(rightSection || clearSection || __defaultRightSection)\n}\n","import { inject, provide, type InjectionKey } from 'vue'\n\nexport interface InputWrapperContextValue {\n offsetTop: boolean\n offsetBottom: boolean\n describedBy?: string\n inputId?: string\n labelId?: string\n getStyles:\n | ((selector: string, options?: { className?: any; style?: any; props?: any }) => any)\n | null\n}\n\nexport const InputWrapperContextKey = Symbol(\n 'InputWrapperContext',\n) as InjectionKey<InputWrapperContextValue>\n\nexport function provideInputWrapperContext(value: InputWrapperContextValue) {\n provide(InputWrapperContextKey, value)\n}\n\nexport function useInputWrapperContext() {\n return inject(InputWrapperContextKey, {\n offsetBottom: false,\n offsetTop: false,\n describedBy: undefined,\n getStyles: null,\n inputId: undefined,\n labelId: undefined,\n })\n}\n",".wrapper {\n position: relative;\n margin-top: var(--input-margin-top, 0rem);\n margin-bottom: var(--input-margin-bottom, 0rem);\n\n --input-height-xs: 30px;\n --input-height-sm: 36px;\n --input-height-md: 42px;\n --input-height-lg: 50px;\n --input-height-xl: 60px;\n\n --input-padding-y-xs: 5px;\n --input-padding-y-sm: 6px;\n --input-padding-y-md: 8px;\n --input-padding-y-lg: 10px;\n --input-padding-y-xl: 13px;\n\n --input-height: var(--input-height-sm);\n --input-radius: var(--mantine-radius-default);\n\n --input-cursor: text;\n --input-line-height: calc(var(--input-height) - rem(2px));\n --input-padding: calc(var(--input-height) / 3);\n --input-padding-inline-start: var(--input-padding);\n --input-padding-inline-end: var(--input-padding);\n --input-placeholder-color: var(--mantine-color-placeholder);\n --input-color: var(--mantine-color-text);\n --input-disabled-bg: var(--mantine-color-disabled);\n --input-disabled-color: var(--mantine-color-disabled-color);\n\n --input-left-section-size: var(--input-left-section-width, calc(var(--input-height) - rem(2px)));\n\n --input-right-section-size: var(\n --input-right-section-width,\n calc(var(--input-height) - rem(2px))\n );\n\n --input-size: var(--input-height);\n\n --section-y: 1px;\n --left-section-start: 1px;\n --left-section-border-radius: var(--input-radius) 0 0 var(--input-radius);\n\n --right-section-end: 1px;\n --right-section-border-radius: 0 var(--input-radius) var(--input-radius) 0;\n\n &[data-variant='unstyled'] {\n --input-padding: 0;\n --input-padding-y: 0;\n --input-padding-inline-start: 0;\n --input-padding-inline-end: 0;\n }\n\n &[data-pointer] {\n --input-cursor: pointer;\n }\n\n &[data-with-bottom-section] {\n --input-bottom-section-height: 28px;\n }\n\n &[data-multiline] {\n --input-padding-y-xs: 4.5px;\n --input-padding-y-sm: 5.5px;\n --input-padding-y-md: 7px;\n --input-padding-y-lg: 9.5px;\n --input-padding-y-xl: 13px;\n\n --input-size: auto;\n --input-line-height: var(--mantine-line-height);\n }\n\n &[data-with-left-section] {\n --input-padding-inline-start: var(--input-left-section-size);\n }\n\n &[data-with-right-section] {\n --input-padding-inline-end: var(--input-right-section-size);\n\n &:has([data-combined-clear-section]) {\n .wrapper[data-size='xs'] & {\n --input-padding-inline-end: 41px;\n }\n\n .wrapper[data-size='sm'] & {\n --input-padding-inline-end: 50px;\n }\n\n .wrapper[data-size='md'] & {\n --input-padding-inline-end: 60px;\n }\n\n .wrapper[data-size='lg'] & {\n --input-padding-inline-end: 72px;\n }\n\n .wrapper[data-size='xl'] & {\n --input-padding-inline-end: 89px;\n }\n }\n }\n\n @mixin light {\n &[data-variant='default'] {\n --input-bd: var(--mantine-color-gray-4);\n --input-bg: var(--mantine-color-white);\n --input-bd-focus: var(--mantine-primary-color-filled);\n }\n\n &[data-variant='filled'] {\n --input-bd: transparent;\n --input-bg: var(--mantine-color-gray-1);\n --input-bd-focus: var(--mantine-primary-color-filled);\n }\n\n &[data-variant='unstyled'] {\n --input-bd: transparent;\n --input-bg: transparent;\n --input-bd-focus: transparent;\n }\n }\n\n @mixin dark {\n &[data-variant='default'] {\n --input-bd: var(--mantine-color-dark-4);\n --input-bg: var(--mantine-color-dark-6);\n --input-bd-focus: var(--mantine-primary-color-filled);\n }\n\n &[data-variant='filled'] {\n --input-bd: transparent;\n --input-bg: var(--mantine-color-dark-5);\n --input-bd-focus: var(--mantine-primary-color-filled);\n }\n\n &[data-variant='unstyled'] {\n --input-bd: transparent;\n --input-bg: transparent;\n --input-bd-focus: transparent;\n }\n }\n\n [data-mantine-color-scheme] &[data-error] {\n &:not([data-variant='unstyled']) {\n --input-bd: var(--mantine-color-error);\n }\n\n --input-color: var(--mantine-color-error);\n --input-placeholder-color: var(--mantine-color-error);\n --input-section-color: var(--mantine-color-error);\n }\n\n @mixin where-rtl {\n --left-section-border-radius: 0 var(--input-radius) var(--input-radius) 0;\n --right-section-border-radius: var(--input-radius) 0 0 var(--input-radius);\n }\n\n &[dir='ltr'] {\n --left-section-border-radius: var(--input-radius) 0 0 var(--input-radius);\n --right-section-border-radius: 0 var(--input-radius) var(--input-radius) 0;\n }\n}\n\n.input {\n -webkit-tap-highlight-color: transparent;\n appearance: none;\n resize: var(--input-resize, none);\n display: block;\n width: 100%;\n transition: border-color 100ms ease;\n\n text-align: var(--input-text-align, start);\n color: var(--input-color);\n border: 0.0625rem solid var(--input-bd);\n background-color: var(--input-bg);\n font-family: var(--input-font-family, var(--mantine-font-family));\n height: var(--input-size);\n min-height: var(--input-height);\n line-height: var(--input-line-height);\n font-size: var(--_input-fz, var(--input-fz, var(--mantine-font-size-md)));\n border-radius: var(--input-radius);\n padding-inline-start: var(--input-padding-inline-start);\n padding-inline-end: var(--input-padding-inline-end);\n padding-top: var(--input-padding-y, 0rem);\n padding-bottom: var(--input-padding-y, 0rem);\n cursor: var(--input-cursor);\n overflow: var(--input-overflow);\n\n /* Used as data attribute in Textarea component, does not have associated prop on the Input component */\n &[data-no-overflow] {\n --input-overflow: hidden;\n }\n\n /* Used as data attribute in JsonInput component, does not have associated prop on the Input component */\n &[data-monospace] {\n --input-font-family: var(--mantine-font-family-monospace);\n --_input-fz: calc(var(--input-fz) - 0.125rem);\n }\n\n &:focus,\n &:focus-within {\n outline: none;\n --input-bd: var(--input-bd-focus);\n\n [data-error] & {\n --input-bd: var(--mantine-color-error);\n }\n }\n\n &::placeholder {\n color: var(--input-placeholder-color);\n opacity: 1;\n }\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button,\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &[type='number'] {\n -moz-appearance: textfield;\n }\n\n &:disabled,\n &[data-disabled] {\n cursor: not-allowed;\n opacity: 0.6;\n background-color: var(--input-disabled-bg);\n color: var(--input-disabled-color);\n }\n\n /* Required to be a separate selector to work in Firefox, can be merged with &:disabled once :has is supported */\n &:has(input:disabled) {\n cursor: not-allowed;\n opacity: 0.6;\n background-color: var(--input-disabled-bg);\n color: var(--input-disabled-color);\n }\n\n &[readonly] {\n caret-color: transparent;\n }\n\n [data-with-bottom-section] & {\n padding-bottom: calc(var(--input-padding-y, 0rem) + var(--input-bottom-section-height));\n }\n}\n\n.bottomSection {\n position: absolute;\n bottom: 1px;\n left: 1px;\n right: 1px;\n height: var(--input-bottom-section-height);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-inline: var(--input-padding);\n border-radius: 0 0 var(--input-radius) var(--input-radius);\n pointer-events: all;\n color: var(--mantine-color-dimmed);\n font-size: var(--input-fz, var(--mantine-font-size-sm));\n}\n\n.section {\n pointer-events: var(--section-pointer-events);\n position: absolute;\n z-index: 1;\n inset-inline-start: var(--section-start);\n inset-inline-end: var(--section-end);\n bottom: var(--section-y);\n top: var(--section-y);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--section-size);\n border-radius: var(--section-border-radius);\n color: var(--input-section-color, var(--mantine-color-dimmed));\n\n &[data-position='right'] {\n --section-pointer-events: var(--input-right-section-pointer-events);\n --section-end: var(--right-section-end);\n --section-size: var(--input-right-section-size);\n --section-border-radius: var(--right-section-border-radius);\n\n &:has([data-combined-clear-section]) {\n .wrapper[data-size='xs'] & {\n --section-size: 41px;\n }\n\n .wrapper[data-size='sm'] & {\n --section-size: 50px;\n }\n\n .wrapper[data-size='md'] & {\n --section-size: 60px;\n }\n\n .wrapper[data-size='lg'] & {\n --section-size: 72px;\n }\n\n .wrapper[data-size='xl'] & {\n --section-size: 89px;\n }\n }\n }\n\n &[data-position='left'] {\n --section-pointer-events: var(--input-left-section-pointer-events);\n --section-start: var(--left-section-start);\n --section-size: var(--input-left-section-size);\n --section-border-radius: var(--left-section-border-radius);\n }\n}\n\n/* ----- Input.Placeholder ----- */\n.placeholder {\n color: var(--input-placeholder-color, var(--mantine-color-placeholder));\n\n [data-error] & {\n --input-placeholder-color: var(--input-color, var(--mantine-color-placeholder));\n }\n}\n\n/* ----- Input.Wrapper ----- */\n.root {\n line-height: var(--mantine-line-height);\n}\n\n.label {\n display: inline-block;\n font-weight: var(--mantine-font-weight-medium);\n overflow-wrap: break-word;\n cursor: default;\n -webkit-tap-highlight-color: transparent;\n font-size: var(--input-label-size, var(--mantine-font-size-sm));\n}\n\n.required {\n color: var(--input-asterisk-color, var(--mantine-color-error));\n}\n\n.error,\n.description {\n word-wrap: break-word;\n line-height: 1.2;\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.error {\n color: var(--mantine-color-error);\n font-size: var(--input-error-size, calc(var(--mantine-font-size-sm) - 0.125rem));\n}\n\n.description {\n color: var(--mantine-color-dimmed);\n font-size: var(--input-description-size, calc(var(--mantine-font-size-sm) - 0.125rem));\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getFontSize, rem, useStyles } from '../../../core'\nimport { useInputWrapperContext } from '../InputWrapper.context'\nimport classes from '../Input.module.css'\n\nexport type InputDescriptionStylesNames = 'description'\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n description: {\n '--input-description-size':\n size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n}))\n\nexport const InputDescription = withBoxProps(\n defineComponent({\n name: 'InputDescription',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n __inheritStyles: { type: Boolean, default: true },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const wrapperCtx = useInputWrapperContext()\n const ownGetStyles = useStyles({\n name: 'InputWrapper',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const getStyles = (props.__inheritStyles && wrapperCtx.getStyles) || ownGetStyles\n\n return h(\n Box,\n {\n ...attrs,\n component: 'p',\n ...getStyles('description', {\n className: attrs.class,\n style: attrs.style as any,\n props,\n }),\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n\nObject.assign(InputDescription, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getFontSize, rem, useStyles } from '../../../core'\nimport { useInputWrapperContext } from '../InputWrapper.context'\nimport classes from '../Input.module.css'\n\nexport type InputErrorStylesNames = 'error'\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n error: {\n '--input-error-size': size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n}))\n\nexport const InputError = withBoxProps(\n defineComponent({\n name: 'InputError',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n __inheritStyles: { type: Boolean, default: true },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const wrapperCtx = useInputWrapperContext()\n const ownGetStyles = useStyles({\n name: 'InputWrapper',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const getStyles = (props.__inheritStyles && wrapperCtx.getStyles) || ownGetStyles\n\n return h(\n Box,\n {\n ...attrs,\n component: 'p',\n ...getStyles('error', { className: attrs.class, style: attrs.style as any, props }),\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n\nObject.assign(InputError, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getFontSize, useStyles } from '../../../core'\nimport { useInputWrapperContext } from '../InputWrapper.context'\nimport classes from '../Input.module.css'\n\nexport type InputLabelStylesNames = 'label' | 'required'\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n label: {\n '--input-label-size': getFontSize(size),\n '--input-asterisk-color': undefined,\n },\n}))\n\nexport const InputLabel = withBoxProps(\n defineComponent({\n name: 'InputLabel',\n inheritAttrs: false,\n props: {\n required: { type: Boolean, default: false },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n labelElement: { type: String as PropType<'label' | 'div'>, default: 'label' },\n htmlFor: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const wrapperCtx = useInputWrapperContext()\n const ownGetStyles = useStyles({\n name: 'InputWrapper',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const getStyles = wrapperCtx.getStyles || ownGetStyles\n\n return h(\n Box,\n {\n ...attrs,\n component: props.labelElement,\n htmlFor: props.labelElement === 'label' ? props.htmlFor : undefined,\n ...getStyles('label', { className: attrs.class, style: attrs.style as any, props }),\n mod: [{ required: props.required }, props.mod],\n onMousedown: (event: MouseEvent) => {\n if (!event.defaultPrevented && event.detail > 1) {\n event.preventDefault()\n }\n },\n },\n () => [\n slots.default?.(),\n props.required\n ? h('span', { ...getStyles('required', { props }), 'aria-hidden': true }, ' *')\n : null,\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(InputLabel, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useStyles } from '../../../core'\nimport classes from '../Input.module.css'\n\nexport type InputPlaceholderStylesNames = 'placeholder'\n\nexport const InputPlaceholder = withBoxProps(\n defineComponent({\n name: 'InputPlaceholder',\n inheritAttrs: false,\n props: {\n error: { type: [String, Number, Object, Boolean] as PropType<any>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const getStyles = useStyles({\n name: 'InputPlaceholder',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'span',\n ...getStyles('placeholder', { className: attrs.class, style: attrs.style as any }),\n mod: [{ error: Boolean(props.error) }, props.mod],\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","export type InputWrapperOrderPart = 'label' | 'input' | 'description' | 'error'\n\nexport function getInputOffsets(\n inputWrapperOrder: InputWrapperOrderPart[],\n { hasDescription, hasError }: { hasDescription: boolean; hasError: boolean },\n) {\n const inputIndex = inputWrapperOrder.findIndex((part) => part === 'input')\n const aboveInput = inputWrapperOrder.slice(0, inputIndex)\n const belowInput = inputWrapperOrder.slice(inputIndex + 1)\n const offsetTop =\n (hasDescription && aboveInput.includes('description')) ||\n (hasError && aboveInput.includes('error'))\n const offsetBottom =\n (hasDescription && belowInput.includes('description')) ||\n (hasError && belowInput.includes('error'))\n\n return { offsetBottom, offsetTop }\n}\n","import { computed, defineComponent, h, type PropType } from 'vue'\nimport { useId } from '@mantine-vue/hooks'\nimport { Box, createVarsResolver, getFontSize, rem, useStyles } from '../../../core'\nimport { InputDescription } from '../InputDescription/InputDescription'\nimport { InputError } from '../InputError/InputError'\nimport { InputLabel } from '../InputLabel/InputLabel'\nimport { provideInputWrapperContext } from '../InputWrapper.context'\nimport { getInputOffsets, type InputWrapperOrderPart } from './get-input-offsets/get-input-offsets'\nimport classes from '../Input.module.css'\n\nexport type InputWrapperStylesNames = 'root' | 'label' | 'required' | 'description' | 'error'\n\nconst defaultOrder: InputWrapperOrderPart[] = ['label', 'description', 'input', 'error']\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n label: {\n '--input-label-size': getFontSize(size),\n '--input-asterisk-color': undefined,\n },\n error: {\n '--input-error-size': size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n description: {\n '--input-description-size':\n size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n}))\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nexport const InputWrapper = defineComponent({\n name: 'InputWrapper',\n inheritAttrs: false,\n props: {\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n required: { type: Boolean, default: false },\n withAsterisk: { type: Boolean, default: undefined },\n labelProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n descriptionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n errorProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n inputContainer: { type: Function as PropType<(children: any) => any>, default: undefined },\n inputWrapperOrder: { type: Array as PropType<InputWrapperOrderPart[]>, default: undefined },\n id: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n labelElement: { type: String as PropType<'label' | 'div'>, default: 'label' },\n variant: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const idBase = useId(props.id)\n const getStyles = useStyles({\n name: 'InputWrapper',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const ids = computed(() => {\n const errorId = props.errorProps?.id || `${idBase.value}-error`\n const descriptionId = props.descriptionProps?.id || `${idBase.value}-description`\n const hasError = Boolean(props.error) && typeof props.error !== 'boolean'\n const hasDescription = Boolean(props.description)\n const describedBy = `${hasError ? errorId : ''} ${hasDescription ? descriptionId : ''}`.trim()\n\n return {\n errorId,\n descriptionId,\n inputId: idBase.value,\n labelId: props.labelProps?.id || `${idBase.value}-label`,\n hasError,\n hasDescription,\n describedBy: describedBy || undefined,\n }\n })\n\n provideInputWrapperContext({\n getStyles,\n get describedBy() {\n return ids.value.describedBy\n },\n get inputId() {\n return ids.value.inputId\n },\n get labelId() {\n return ids.value.labelId\n },\n get offsetBottom() {\n return getInputOffsets(props.inputWrapperOrder ?? defaultOrder, {\n hasDescription: ids.value.hasDescription,\n hasError: ids.value.hasError,\n }).offsetBottom\n },\n get offsetTop() {\n return getInputOffsets(props.inputWrapperOrder ?? defaultOrder, {\n hasDescription: ids.value.hasDescription,\n hasError: ids.value.hasError,\n }).offsetTop\n },\n } as any)\n\n return () => {\n const order = props.inputWrapperOrder ?? defaultOrder\n const isRequired =\n typeof props.withAsterisk === 'boolean' ? props.withAsterisk : props.required\n const sharedProps = {\n size: props.size,\n variant: props.variant,\n }\n\n const label = props.label\n ? h(\n InputLabel,\n {\n key: 'label',\n labelElement: props.labelElement,\n id: ids.value.labelId,\n htmlFor: ids.value.inputId,\n required: isRequired,\n ...sharedProps,\n ...props.labelProps,\n },\n () => renderContent(props.label),\n )\n : null\n\n const description = ids.value.hasDescription\n ? h(\n InputDescription,\n {\n key: 'description',\n ...props.descriptionProps,\n ...sharedProps,\n size: props.descriptionProps?.size || props.size,\n id: props.descriptionProps?.id || ids.value.descriptionId,\n },\n () => renderContent(props.description),\n )\n : null\n\n const input = props.inputContainer\n ? props.inputContainer(slots.default?.())\n : slots.default?.()\n\n const error = ids.value.hasError\n ? h(\n InputError,\n {\n key: 'error',\n ...props.errorProps,\n ...sharedProps,\n size: props.errorProps?.size || props.size,\n id: props.errorProps?.id || ids.value.errorId,\n },\n () => renderContent(props.error),\n )\n : null\n\n const content = order.map((part) => {\n if (part === 'label') {\n return label\n }\n if (part === 'description') {\n return description\n }\n if (part === 'error') {\n return error\n }\n return input\n })\n\n return h(\n Box,\n {\n ...attrs,\n variant: props.variant,\n 'data-size': props.size,\n mod: [{ error: Boolean(props.error) }, props.mod],\n id: props.labelElement === 'label' ? undefined : props.id,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => content,\n )\n }\n },\n})\n\nObject.assign(InputWrapper, { classes, varsResolver })\n","import { reactive, defineComponent, h, type PropType } from 'vue'\nimport { assignRef } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getRadius,\n getSize,\n rem,\n useStyles,\n} from '../../core'\nimport { Loader } from '../Loader'\nimport { InputClearButton } from './InputClearButton/InputClearButton'\nimport { InputClearSection, type ClearSectionMode } from './InputClearSection/InputClearSection'\nimport { InputDescription } from './InputDescription/InputDescription'\nimport { InputError } from './InputError/InputError'\nimport { InputLabel } from './InputLabel/InputLabel'\nimport { InputPlaceholder } from './InputPlaceholder/InputPlaceholder'\nimport { provideInputContext } from './Input.context'\nimport { useInputWrapperContext } from './InputWrapper.context'\nimport { InputWrapper } from './InputWrapper/InputWrapper'\nimport classes from './Input.module.css'\n\nexport type InputStylesNames = 'input' | 'wrapper' | 'section' | 'bottomSection'\nexport type InputVariant = 'default' | 'filled' | 'unstyled'\nexport type InputCssVariables = {\n wrapper:\n | '--input-height'\n | '--input-fz'\n | '--input-radius'\n | '--input-left-section-width'\n | '--input-right-section-width'\n | '--input-left-section-pointer-events'\n | '--input-right-section-pointer-events'\n | '--input-padding-y'\n | '--input-margin-top'\n | '--input-margin-bottom'\n}\nexport interface InputStylesCtx {\n offsetTop?: boolean\n offsetBottom?: boolean\n}\n\nconst varsResolver = createVarsResolver<any>((_, props, ctx: InputStylesCtx) => ({\n wrapper: {\n '--input-margin-top': ctx.offsetTop ? 'calc(var(--mantine-spacing-xs) / 2)' : undefined,\n '--input-margin-bottom': ctx.offsetBottom ? 'calc(var(--mantine-spacing-xs) / 2)' : undefined,\n '--input-height': getSize(props.size, 'input-height'),\n '--input-fz': getFontSize(props.size),\n '--input-radius': props.radius === undefined ? undefined : getRadius(props.radius),\n '--input-left-section-width':\n props.leftSectionWidth !== undefined ? rem(props.leftSectionWidth) : undefined,\n '--input-right-section-width':\n props.rightSectionWidth !== undefined ? rem(props.rightSectionWidth) : undefined,\n '--input-padding-y': props.multiline ? getSize(props.size, 'input-padding-y') : undefined,\n '--input-left-section-pointer-events': props.leftSectionPointerEvents,\n '--input-right-section-pointer-events': props.rightSectionPointerEvents,\n },\n}))\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nconst InputBase = defineComponent({\n name: 'Input',\n inheritAttrs: false,\n props: {\n component: { type: [String, Object, Function] as PropType<any>, default: 'input' },\n __staticSelector: { type: String, default: undefined },\n __stylesApiProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n leftSection: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n leftSectionWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n leftSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n leftSectionPointerEvents: { type: String, default: 'none' },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n rightSectionWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n rightSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n rightSectionPointerEvents: { type: String, default: 'none' },\n required: { type: Boolean, default: false },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: false },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n pointer: { type: Boolean, default: false },\n withErrorStyles: { type: Boolean, default: true },\n inputSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n __clearSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n __clearable: { type: Boolean, default: false },\n __clearSectionMode: { type: String as PropType<ClearSectionMode>, default: 'both' },\n __defaultRightSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n loading: { type: Boolean, default: false },\n loadingPosition: { type: String as PropType<'left' | 'right'>, default: 'right' },\n __bottomSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n __bottomSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n variant: { type: String as PropType<InputVariant>, default: 'default' },\n error: { type: [String, Number, Object, Boolean] as PropType<any>, default: undefined },\n multiline: { type: Boolean, default: false },\n id: { type: String, default: undefined },\n withAria: { type: Boolean, default: true },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n rootRef: { type: [Object, Function] as PropType<any>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const wrapperCtx = useInputWrapperContext()\n const stylesCtx = reactive<InputStylesCtx>({\n offsetBottom: false,\n offsetTop: false,\n })\n const getStyles = useStyles({\n name: ['Input', props.__staticSelector],\n props: props.__stylesApiProps || props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n rootSelector: 'wrapper',\n varsResolver,\n stylesCtx,\n })\n\n provideInputContext({ size: props.size || 'sm' })\n\n return () => {\n stylesCtx.offsetBottom = wrapperCtx.offsetBottom\n stylesCtx.offsetTop = wrapperCtx.offsetTop\n\n const loadingIndicator = props.loading\n ? h(Loader, {\n size:\n props.loadingPosition === 'left'\n ? 'calc(var(--input-left-section-size) / 2)'\n : 'calc(var(--input-right-section-size) / 2)',\n })\n : null\n const leftSection =\n props.loading && props.loadingPosition === 'left' ? loadingIndicator : props.leftSection\n const rightSection = InputClearSection({\n __clearable: props.__clearable,\n __clearSection: props.__clearSection,\n rightSection:\n props.loading && props.loadingPosition === 'right'\n ? loadingIndicator\n : props.rightSection,\n __defaultRightSection: props.__defaultRightSection,\n size: props.size,\n __clearSectionMode: props.__clearSectionMode,\n })\n const ariaAttributes = props.withAria\n ? {\n required: props.required,\n disabled: props.disabled,\n 'aria-invalid': props.error ? true : undefined,\n 'aria-describedby': wrapperCtx.describedBy,\n id: wrapperCtx.inputId || props.id,\n }\n : {}\n\n return h(\n Box,\n {\n ...props.wrapperProps,\n ref: (node: any) => assignRef(props.rootRef, node?.$el ?? node ?? null),\n ...getStyles('wrapper'),\n mod: [\n {\n error: Boolean(props.error) && props.withErrorStyles,\n pointer: props.pointer,\n disabled: props.disabled,\n multiline: props.multiline,\n withRightSection: Boolean(rightSection),\n withLeftSection: Boolean(leftSection),\n withBottomSection: Boolean(props.__bottomSection),\n },\n props.mod,\n ],\n variant: props.variant,\n 'data-size': props.size,\n },\n () => [\n leftSection\n ? h(\n 'div',\n {\n ...props.leftSectionProps,\n 'data-position': 'left',\n ...getStyles('section', {\n className: props.leftSectionProps?.class,\n style: props.leftSectionProps?.style,\n }),\n },\n renderContent(leftSection),\n )\n : null,\n h(\n Box,\n {\n ...attrs,\n ...ariaAttributes,\n component: props.component,\n required: props.required,\n disabled: props.disabled,\n __size: props.inputSize,\n mod: {\n disabled: props.disabled,\n error: Boolean(props.error) && props.withErrorStyles,\n },\n variant: props.variant,\n ...getStyles('input'),\n },\n () => slots.default?.(),\n ),\n props.__bottomSection\n ? h(\n 'div',\n {\n ...props.__bottomSectionProps,\n ...getStyles('bottomSection', {\n className: props.__bottomSectionProps?.class,\n style: props.__bottomSectionProps?.style,\n }),\n },\n renderContent(props.__bottomSection),\n )\n : null,\n rightSection\n ? h(\n 'div',\n {\n ...props.rightSectionProps,\n 'data-position': 'right',\n ...getStyles('section', {\n className: props.rightSectionProps?.class,\n style: props.rightSectionProps?.style,\n }),\n },\n renderContent(rightSection),\n )\n : null,\n ],\n )\n }\n },\n})\n\nexport const Input = withBoxProps(\n Object.assign(InputBase, {\n classes,\n varsResolver,\n Wrapper: InputWrapper,\n Label: InputLabel,\n Error: InputError,\n Description: InputDescription,\n Placeholder: InputPlaceholder,\n ClearButton: InputClearButton,\n }),\n)\n","import { withBoxProps } from '../../core'\nimport { defineComponent, h, type PropType } from 'vue'\nimport { Input } from '../Input'\n\nexport type InputBaseStylesNames =\n | 'input'\n | 'wrapper'\n | 'section'\n | 'bottomSection'\n | 'root'\n | 'label'\n | 'required'\n | 'description'\n | 'error'\n\nexport const InputBase = withBoxProps(\n defineComponent({\n name: 'InputBase',\n inheritAttrs: false,\n props: {\n component: { type: [String, Object, Function] as PropType<any>, default: 'input' },\n __staticSelector: { type: String, default: 'InputBase' },\n __stylesApiProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n required: { type: Boolean, default: false },\n withAsterisk: { type: Boolean, default: undefined },\n labelProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n descriptionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n errorProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n inputContainer: { type: Function as PropType<(children: any) => any>, default: undefined },\n inputWrapperOrder: {\n type: Array as PropType<Array<'label' | 'input' | 'description' | 'error'>>,\n default: undefined,\n },\n id: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n labelElement: { type: String as PropType<'label' | 'div'>, default: 'label' },\n variant: { type: String as PropType<'default' | 'filled' | 'unstyled'>, default: 'default' },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n multiline: { type: Boolean, default: false },\n withAria: { type: Boolean, default: true },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n leftSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n leftSectionWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n leftSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n leftSectionPointerEvents: { type: String, default: undefined },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n rightSectionWidth: {\n type: [String, Number] as PropType<string | number>,\n default: undefined,\n },\n rightSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n rightSectionPointerEvents: { type: String, default: undefined },\n __clearSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n __clearable: { type: Boolean, default: false },\n __clearSectionMode: {\n type: String as PropType<'both' | 'rightSection' | 'clear'>,\n default: undefined,\n },\n __defaultRightSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: false },\n pointer: { type: Boolean, default: false },\n withErrorStyles: { type: Boolean, default: true },\n inputSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n loading: { type: Boolean, default: false },\n loadingPosition: { type: String as PropType<'left' | 'right'>, default: undefined },\n __bottomSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n __bottomSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n rootRef: { type: [Object, Function] as PropType<any>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n },\n setup(props, { attrs, slots }) {\n return () =>\n h(\n Input.Wrapper,\n {\n ...props.wrapperProps,\n id: props.id,\n label: props.label,\n description: props.description,\n error: props.error,\n required: props.required,\n withAsterisk: props.withAsterisk,\n labelProps: props.labelProps,\n descriptionProps: props.descriptionProps,\n errorProps: props.errorProps,\n inputContainer: props.inputContainer,\n inputWrapperOrder: props.inputWrapperOrder,\n size: props.size,\n labelElement: props.labelElement,\n variant: props.variant,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n mod: props.mod,\n },\n () =>\n h(\n Input,\n {\n ...attrs,\n component: props.component,\n __staticSelector: props.__staticSelector,\n __stylesApiProps: props.__stylesApiProps ?? props,\n error: props.error,\n required: props.required,\n id: props.id,\n size: props.size,\n variant: props.variant,\n multiline: props.multiline,\n withAria: props.withAria,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n leftSection: props.leftSection,\n leftSectionWidth: props.leftSectionWidth,\n leftSectionProps: props.leftSectionProps,\n leftSectionPointerEvents: props.leftSectionPointerEvents,\n rightSection: props.rightSection,\n rightSectionWidth: props.rightSectionWidth,\n rightSectionProps: props.rightSectionProps,\n rightSectionPointerEvents: props.rightSectionPointerEvents,\n __clearSection: props.__clearSection,\n __clearable: props.__clearable,\n __clearSectionMode: props.__clearSectionMode,\n __defaultRightSection: props.__defaultRightSection,\n radius: props.radius,\n disabled: props.disabled,\n pointer: props.pointer,\n withErrorStyles: props.withErrorStyles,\n inputSize: props.inputSize,\n loading: props.loading,\n loadingPosition: props.loadingPosition,\n __bottomSection: props.__bottomSection,\n __bottomSectionProps: props.__bottomSectionProps,\n rootRef: props.rootRef,\n },\n () => slots.default?.(),\n ),\n )\n },\n }),\n)\n\nObject.assign(InputBase, { classes: Input.classes })\n","import { computed, defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { assignRef, useUncontrolled } from '@mantine-vue/hooks'\nimport { CloseButton } from '../CloseButton'\nimport { FileButton } from '../FileButton'\nimport { Input } from '../Input'\nimport type { ClearSectionMode } from '../Input'\nimport { InputBase } from '../InputBase'\n\nfunction defaultValueComponent(value: File | File[] | null) {\n const label = Array.isArray(value) ? value.map((file) => file.name).join(', ') : value?.name\n return h(\n 'div',\n { style: { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } },\n label,\n )\n}\n\nexport const FileInput = defineComponent({\n name: 'FileInput',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'button' },\n onChange: {\n type: Function as PropType<(payload: File | File[] | null) => void>,\n default: undefined,\n },\n value: {\n type: [Object, Array, null] as PropType<File | File[] | null | undefined>,\n default: undefined,\n },\n defaultValue: {\n type: [Object, Array, null] as PropType<File | File[] | null | undefined>,\n default: undefined,\n },\n multiple: { type: Boolean, default: false },\n accept: { type: String, default: undefined },\n name: { type: String, default: undefined },\n form: { type: String, default: undefined },\n valueComponent: {\n type: Function as PropType<(value: File | File[] | null) => any>,\n default: defaultValueComponent,\n },\n clearable: { type: Boolean, default: false },\n clearSectionMode: { type: String as PropType<ClearSectionMode>, default: 'both' },\n clearButtonProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n readOnly: { type: Boolean, default: false },\n capture: {\n type: [Boolean, String] as PropType<boolean | 'user' | 'environment' | undefined>,\n default: undefined,\n },\n fileInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n placeholder: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n resetRef: { type: [Object, Function] as PropType<any>, default: undefined },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n required: { type: Boolean, default: false },\n withAsterisk: { type: Boolean, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const resetRef = ref<(() => void) | null>(null)\n const [value, setValue] = useUncontrolled<File | File[] | null>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: props.multiple ? [] : null,\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n const hasValue = computed(() =>\n Array.isArray(value.value) ? value.value.length !== 0 : value.value !== null,\n )\n\n const reset = () => {\n resetRef.value?.()\n }\n\n assignRef(props.resetRef, reset)\n\n watch(\n value,\n (nextValue) => {\n if ((Array.isArray(nextValue) && nextValue.length === 0) || nextValue === null) {\n resetRef.value?.()\n }\n },\n { deep: true },\n )\n\n return () => {\n const clearButton = h(CloseButton, {\n ...props.clearButtonProps,\n variant: 'subtle',\n size: props.size,\n unstyled: props.unstyled,\n onClick: () => setValue(props.multiple ? [] : null),\n })\n const clearable = props.clearable && hasValue.value && !props.readOnly\n\n return h(\n FileButton,\n {\n onChange: setValue,\n multiple: props.multiple,\n accept: props.accept,\n name: props.name,\n form: props.form,\n disabled: props.readOnly,\n capture: props.capture,\n inputProps: props.fileInputProps,\n resetRef,\n },\n {\n default: ({ onClick }: { onClick: () => void }) =>\n h(\n InputBase,\n {\n ...attrs,\n component: props.component || 'button',\n onClick,\n rightSection: props.rightSection,\n __clearSection: clearButton,\n __clearable: clearable,\n __clearSectionMode: props.clearSectionMode,\n __staticSelector: 'FileInput',\n __stylesApiProps: props,\n multiline: true,\n type: 'button',\n pointer: true,\n unstyled: props.unstyled,\n size: props.size,\n label: props.label,\n description: props.description,\n error: props.error,\n required: props.required,\n withAsterisk: props.withAsterisk,\n wrapperProps: props.wrapperProps,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n },\n () =>\n !hasValue.value\n ? h(\n Input.Placeholder,\n { __staticSelector: 'FileInput' } as any,\n () => props.placeholder,\n )\n : props.valueComponent(value.value),\n ),\n },\n )\n }\n },\n})\n\nObject.assign(FileInput, { classes: InputBase.classes })\n",".root {\n --notification-radius: var(--mantine-radius-default);\n --notification-color: var(--mantine-primary-color-filled);\n\n overflow: hidden;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n padding-inline-start: 22px;\n padding-inline-end: var(--mantine-spacing-xs);\n padding-top: var(--mantine-spacing-xs);\n padding-bottom: var(--mantine-spacing-xs);\n border-radius: var(--notification-radius);\n box-shadow: var(--mantine-shadow-lg);\n\n &::before {\n content: '';\n display: block;\n position: absolute;\n width: 6px;\n top: var(--notification-radius);\n bottom: var(--notification-radius);\n inset-inline-start: 4px;\n border-radius: var(--notification-radius);\n background-color: var(--notification-color);\n }\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n }\n\n &:where([data-with-icon]) {\n &::before {\n display: none;\n }\n }\n\n &:where([data-with-border]) {\n @mixin where-light {\n border: 1px solid var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border: 1px solid var(--mantine-color-dark-4);\n }\n }\n}\n\n.icon {\n box-sizing: border-box;\n margin-inline-end: var(--mantine-spacing-md);\n width: 28px;\n height: 28px;\n border-radius: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--notification-color);\n color: var(--mantine-color-white);\n}\n\n.loader {\n margin-inline-end: var(--mantine-spacing-md);\n}\n\n.body {\n flex: 1;\n overflow: hidden;\n margin-inline-end: var(--mantine-spacing-xs);\n}\n\n.title {\n margin-bottom: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--mantine-font-size-sm);\n line-height: var(--mantine-line-height-sm);\n font-weight: var(--mantine-font-weight-medium);\n\n @mixin where-light {\n color: var(--mantine-color-gray-9);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-white);\n }\n}\n\n.description {\n font-size: var(--mantine-font-size-sm);\n line-height: var(--mantine-line-height-sm);\n overflow: hidden;\n text-overflow: ellipsis;\n\n @mixin where-light {\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-0);\n }\n\n &:where([data-with-title]) {\n @mixin where-light {\n color: var(--mantine-color-gray-6);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-2);\n }\n }\n}\n\n.closeButton {\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../core'\nimport { CloseButton } from '../CloseButton'\nimport { Loader } from '../Loader'\nimport classes from './Notification.module.css'\n\nexport type NotificationStylesNames =\n | 'root'\n | 'icon'\n | 'loader'\n | 'body'\n | 'title'\n | 'description'\n | 'closeButton'\n\nconst defaultProps = {\n withCloseButton: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>((theme, { radius, color }) => ({\n root: {\n '--notification-radius': radius === undefined ? undefined : getRadius(radius),\n '--notification-color': color ? getThemeColor(color, theme) : undefined,\n },\n}))\n\nexport const Notification = withBoxProps(\n defineComponent({\n name: 'Notification',\n inheritAttrs: false,\n props: {\n onClose: { type: Function as PropType<() => void>, default: undefined },\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n icon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n title: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n loading: { type: Boolean, default: false },\n withBorder: { type: Boolean, default: false },\n withCloseButton: { type: Boolean, default: undefined },\n closeButtonProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n loaderProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Notification', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Notification',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n const renderContent = (value: any) => (typeof value === 'function' ? value() : value)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n role: attrs.role || 'alert',\n mod: [\n { withIcon: Boolean(props.icon) || props.loading, withBorder: props.withBorder },\n props.mod,\n ],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => [\n props.icon && !props.loading\n ? h('div', getStyles('icon'), renderContent(props.icon))\n : null,\n props.loading\n ? h(Loader, {\n size: 28,\n color: props.color,\n ...getStyles('loader'),\n ...props.loaderProps,\n })\n : null,\n h('div', getStyles('body'), [\n props.title ? h('div', getStyles('title'), renderContent(props.title)) : null,\n h(\n Box,\n {\n ...getStyles('description'),\n mod: { withTitle: Boolean(props.title) },\n },\n () => slots.default?.(),\n ),\n ]),\n props.withCloseButton\n ? h(CloseButton, {\n iconSize: 16,\n color: 'gray',\n __staticSelector: 'Notification',\n unstyled: props.unstyled,\n ...props.closeButtonProps,\n ...getStyles('closeButton'),\n onClick: (event: MouseEvent) => {\n props.closeButtonProps?.onClick?.(event)\n props.onClose?.()\n },\n })\n : null,\n ],\n )\n },\n }),\n)\n\nObject.assign(Notification, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\n\nexport type ThousandsGroupStyle = 'thousand' | 'lakh' | 'wan' | 'none'\n\nexport interface NumberFormatterOptions {\n allowNegative?: boolean\n decimalScale?: number\n decimalSeparator?: string\n fixedDecimalScale?: boolean\n prefix?: string\n suffix?: string\n thousandsGroupStyle?: ThousandsGroupStyle\n thousandSeparator?: string | boolean\n}\n\nfunction getGroupSizes(style: ThousandsGroupStyle | undefined) {\n if (style === 'lakh') {\n return [3, 2]\n }\n\n if (style === 'wan') {\n return [4, 4]\n }\n\n return [3, 3]\n}\n\nfunction groupInteger(value: string, separator: string, style?: ThousandsGroupStyle) {\n if (!separator || style === 'none') {\n return value\n }\n\n const [firstSize, nextSize] = getGroupSizes(style)\n const parts: string[] = []\n let remaining = value\n\n if (remaining.length > firstSize) {\n parts.unshift(remaining.slice(-firstSize))\n remaining = remaining.slice(0, -firstSize)\n\n while (remaining.length > nextSize) {\n parts.unshift(remaining.slice(-nextSize))\n remaining = remaining.slice(0, -nextSize)\n }\n }\n\n if (remaining) {\n parts.unshift(remaining)\n }\n\n return parts.join(separator)\n}\n\nexport function formatNumber(\n value: number | string | bigint,\n options: NumberFormatterOptions = {},\n) {\n const decimalSeparator = options.decimalSeparator || '.'\n const thousandSeparator =\n options.thousandSeparator === true ? ',' : options.thousandSeparator || ''\n const stringValue = String(value)\n const negative = stringValue.startsWith('-')\n const unsigned = negative ? stringValue.slice(1) : stringValue\n\n if (negative && options.allowNegative === false) {\n return ''\n }\n\n const hasTrailingDecimalSeparator = unsigned.endsWith('.')\n const [integerPart, decimalPart = ''] = unsigned.split('.')\n let decimals = decimalPart\n\n if (typeof options.decimalScale === 'number') {\n decimals = decimals.slice(0, options.decimalScale)\n\n if (options.fixedDecimalScale) {\n decimals = decimals.padEnd(options.decimalScale, '0')\n }\n }\n\n const grouped = groupInteger(\n integerPart || '0',\n String(thousandSeparator),\n options.thousandsGroupStyle,\n )\n const decimalValue =\n decimals || hasTrailingDecimalSeparator ? `${decimalSeparator}${decimals}` : ''\n const formatted = `${negative ? '-' : ''}${grouped}${decimalValue}`\n\n return `${options.prefix || ''}${formatted}${options.suffix || ''}`\n}\n\nexport const NumberFormatter = defineComponent({\n name: 'NumberFormatter',\n inheritAttrs: false,\n props: {\n value: {\n type: [String, Number, BigInt] as PropType<string | number | bigint | undefined>,\n default: undefined,\n },\n allowNegative: { type: Boolean, default: true },\n decimalScale: { type: Number, default: undefined },\n decimalSeparator: { type: String, default: '.' },\n fixedDecimalScale: { type: Boolean, default: false },\n prefix: { type: String, default: undefined },\n suffix: { type: String, default: undefined },\n thousandsGroupStyle: { type: String as PropType<ThousandsGroupStyle>, default: 'thousand' },\n thousandSeparator: {\n type: [String, Boolean] as PropType<string | boolean>,\n default: undefined,\n },\n },\n setup(props, { attrs }) {\n return () =>\n props.value === undefined\n ? null\n : h(\n 'span',\n attrs,\n formatNumber(props.value, {\n allowNegative: props.allowNegative,\n decimalScale: props.decimalScale,\n decimalSeparator: props.decimalSeparator,\n fixedDecimalScale: props.fixedDecimalScale,\n prefix: props.prefix,\n suffix: props.suffix,\n thousandsGroupStyle: props.thousandsGroupStyle,\n thousandSeparator: props.thousandSeparator,\n }),\n )\n },\n})\n\nObject.assign(NumberFormatter, { displayName: '@mantine/core/NumberFormatter' })\n","import { defineComponent, h, type PropType } from 'vue'\n\nexport const NumberInputChevron = defineComponent({\n name: 'NumberInputChevron',\n inheritAttrs: false,\n props: {\n direction: { type: String as PropType<'up' | 'down'>, required: true },\n },\n setup(props, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n viewBox: '0 0 15 15',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n 'aria-hidden': true,\n ...attrs,\n style: [\n {\n width: 'var(--ni-chevron-size)',\n height: 'var(--ni-chevron-size)',\n transform: props.direction === 'up' ? 'rotate(180deg)' : undefined,\n },\n attrs.style as any,\n ],\n },\n h('path', {\n d: 'M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z',\n fill: 'currentColor',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }),\n )\n },\n})\n",".root {\n --ni-right-section-width-xs: 17px;\n --ni-right-section-width-sm: 24px;\n --ni-right-section-width-md: 27px;\n --ni-right-section-width-lg: 31px;\n --ni-right-section-width-xl: 34px;\n}\n\n.controls {\n --ni-chevron-size-xs: 10px;\n --ni-chevron-size-sm: 14px;\n --ni-chevron-size-md: 16px;\n --ni-chevron-size-lg: 18px;\n --ni-chevron-size-xl: 20px;\n --ni-chevron-size: var(--ni-chevron-size-sm);\n\n display: flex;\n flex-direction: column;\n width: 100%;\n height: calc(var(--input-height) - rem(2px));\n max-width: calc(var(--ni-chevron-size) * 1.7);\n margin-inline-start: auto;\n}\n\n.control {\n --control-border: 1px solid var(--input-bd);\n --control-radius: calc(var(--input-radius) - rem(1px));\n\n flex: 0 0 50%;\n width: 100%;\n padding: 0;\n height: calc(var(--input-height) / 2 - rem(1px));\n border-inline-start: var(--control-border);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mantine-color-text);\n background-color: transparent;\n cursor: pointer;\n\n &:where(:disabled) {\n background-color: transparent;\n cursor: not-allowed;\n opacity: 0.6;\n color: var(--mantine-color-disabled-color);\n }\n\n .root[data-error] :where(&) {\n color: var(--mantine-color-error);\n }\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n }\n\n &:where(:first-of-type) {\n border-radius: 0;\n border-start-end-radius: var(--control-radius);\n }\n\n &:last-of-type {\n border-radius: 0;\n border-end-end-radius: var(--control-radius);\n }\n}\n","import { computed, defineComponent, h, onBeforeUnmount, ref, type PropType } from 'vue'\nimport { assignRef, useUncontrolled } from '@mantine-vue/hooks'\nimport { Box, createVarsResolver, getSize, useStyles } from '../../core'\nimport { InputBase } from '../InputBase'\nimport { UnstyledButton } from '../UnstyledButton'\nimport {\n formatNumber,\n type NumberFormatterOptions,\n type ThousandsGroupStyle,\n} from '../NumberFormatter'\nimport { NumberInputChevron } from './NumberInputChevron'\nimport classes from './NumberInput.module.css'\n\nconst leadingDecimalZeroPattern = /^(0\\.0*|-0(\\.0*)?)$/\nconst leadingZerosPattern = /^-?0\\d+(\\.\\d+)?\\.?$/\nconst trailingZerosPattern = /\\.\\d*0$/\nconst trailingDecimalSeparatorPattern = /^-?\\d+\\.$/\n\nexport interface NumberInputHandlers {\n increment: () => void\n decrement: () => void\n}\n\nexport type NumberInputValue = number | string | bigint\nexport type NumberInputStylesNames =\n | 'controls'\n | 'control'\n | 'input'\n | 'wrapper'\n | 'section'\n | 'bottomSection'\n | 'root'\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n controls: {\n '--ni-chevron-size': getSize(size, 'ni-chevron-size'),\n },\n}))\n\nfunction clamp(value: number, min?: number, max?: number) {\n return Math.min(max ?? value, Math.max(min ?? value, value))\n}\n\nfunction clampBigInt(value: bigint, min?: bigint, max?: bigint) {\n if (min !== undefined && value < min) {\n return min\n }\n\n if (max !== undefined && value > max) {\n return max\n }\n\n return value\n}\n\nfunction stripFormatting(value: string, options: NumberFormatterOptions) {\n let next = value\n\n if (options.prefix && next.startsWith(options.prefix)) {\n next = next.slice(options.prefix.length)\n }\n\n if (options.suffix) {\n next = next.split(options.suffix).join('')\n }\n\n const separator = options.thousandSeparator === true ? ',' : options.thousandSeparator\n\n if (separator) {\n next = next.split(String(separator)).join('')\n }\n\n if (options.decimalSeparator && options.decimalSeparator !== '.') {\n next = next.replace(options.decimalSeparator, '.')\n }\n\n return next.trim()\n}\n\nfunction parseNumberInputValue(\n rawValue: string,\n allowDecimal: boolean,\n allowNegative: boolean,\n allowLeadingZeros: boolean,\n decimalScale?: number,\n fixedDecimalScale?: boolean,\n): NumberInputValue {\n let normalized = rawValue\n\n if (!allowNegative) {\n normalized = normalized.replace(/-/g, '')\n }\n\n if (!allowDecimal) {\n normalized = normalized.split('.')[0]\n }\n\n if (allowDecimal && typeof decimalScale === 'number' && normalized.includes('.')) {\n const [integerPart, decimalPart = ''] = normalized.split('.')\n normalized = `${integerPart}.${decimalPart.slice(0, decimalScale)}`\n }\n\n if (normalized === '' || (allowNegative && normalized === '-') || normalized.endsWith('.')) {\n return normalized\n }\n\n if (fixedDecimalScale && typeof decimalScale === 'number' && normalized.includes('.')) {\n const [, decimalPart = ''] = normalized.split('.')\n\n if (decimalPart.length < decimalScale) {\n return normalized\n }\n }\n\n if (trailingZerosPattern.test(normalized) || leadingDecimalZeroPattern.test(normalized)) {\n return normalized\n }\n\n if (allowLeadingZeros && leadingZerosPattern.test(normalized)) {\n return normalized\n }\n\n const parsed = Number(normalized)\n\n if (Number.isNaN(parsed) || Math.abs(parsed) > Number.MAX_SAFE_INTEGER) {\n return normalized\n }\n\n return parsed\n}\n\nfunction sanitizeNumberInputString(\n rawValue: string,\n allowDecimal: boolean,\n allowNegative: boolean,\n decimalScale?: number,\n) {\n let normalized = rawValue\n\n if (!allowNegative) {\n normalized = normalized.replace(/-/g, '')\n }\n\n if (!allowDecimal) {\n return normalized.split('.')[0]\n }\n\n if (typeof decimalScale === 'number' && normalized.includes('.')) {\n const [integerPart, decimalPart = ''] = normalized.split('.')\n return `${integerPart}.${decimalPart.slice(0, decimalScale)}`\n }\n\n return normalized\n}\n\nfunction clampAndSanitizeInput(sanitizedValue: string | number, max?: number, min?: number) {\n const stringValue = sanitizedValue.toString()\n const hasTrailingDecimalSeparator = trailingDecimalSeparatorPattern.test(stringValue)\n const replaced = stringValue.replace(/^0+(?=\\d)/, '')\n const parsedValue = parseFloat(replaced)\n\n if (Number.isNaN(parsedValue)) {\n return replaced\n }\n\n if (parsedValue > Number.MAX_SAFE_INTEGER) {\n return max !== undefined ? max : replaced\n }\n\n const clamped = clamp(parsedValue, min, max)\n\n if (hasTrailingDecimalSeparator) {\n const clampedString = clamped.toString().replace(/^0+(?=\\d)/, '')\n return `${clampedString}.`\n }\n\n return clamped\n}\n\nfunction isInRange(value: number | undefined, min: number | undefined, max: number | undefined) {\n if (value === undefined) {\n return true\n }\n\n const minValid = min === undefined || value >= min\n const maxValid = max === undefined || value <= max\n\n return minValid && maxValid\n}\n\nfunction isStrictAllowed(value: NumberInputValue, min?: number, max?: number) {\n if (value === '' || value === '-') {\n return true\n }\n\n if (typeof value === 'bigint') {\n return true\n }\n\n const parsed = typeof value === 'number' ? value : Number(value)\n\n if (Number.isNaN(parsed)) {\n return true\n }\n\n return isInRange(parsed, min, max)\n}\n\nfunction restoreInputValue(input: HTMLInputElement, value: string) {\n input.value = value\n}\n\nfunction getCaretBoundaries(value: string, options: NumberFormatterOptions) {\n const min = options.prefix && value.startsWith(options.prefix) ? options.prefix.length : 0\n const max =\n options.suffix && value.endsWith(options.suffix)\n ? value.length - options.suffix.length\n : value.length\n\n return { min, max }\n}\n\nfunction clampCaretPosition(position: number, min: number, max: number) {\n return Math.min(max, Math.max(min, position))\n}\n\nfunction parseBigIntInputValue(\n rawValue: string,\n allowNegative: boolean,\n allowLeadingZeros: boolean,\n) {\n const normalized = allowNegative ? rawValue : rawValue.replace(/-/g, '')\n\n if (normalized === '' || (allowNegative && normalized === '-')) {\n return normalized\n }\n\n if (!/^-?\\d+$/.test(normalized) || (allowLeadingZeros && leadingZerosPattern.test(normalized))) {\n return rawValue\n }\n\n try {\n return BigInt(normalized)\n } catch {\n return normalized\n }\n}\n\nfunction toNumeric(value: NumberInputValue | undefined) {\n if (typeof value === 'number') {\n return value\n }\n\n if (typeof value === 'bigint') {\n return value\n }\n\n if (typeof value === 'string' && value !== '' && value !== '-') {\n const parsed = Number(value)\n return Number.isNaN(parsed) ? undefined : parsed\n }\n\n return undefined\n}\n\nfunction getDecimalPlaces(value: number | string) {\n const match = String(value).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/)\n return Math.max(0, (match?.[1]?.length || 0) - (match?.[2] ? Number(match[2]) : 0))\n}\n\nexport const NumberInput = defineComponent({\n name: 'NumberInput',\n inheritAttrs: false,\n props: {\n value: {\n type: [String, Number, BigInt] as PropType<NumberInputValue | undefined>,\n default: undefined,\n },\n defaultValue: {\n type: [String, Number, BigInt] as PropType<NumberInputValue | undefined>,\n default: undefined,\n },\n onChange: { type: Function as PropType<(value: NumberInputValue) => void>, default: undefined },\n onValueChange: {\n type: Function as PropType<\n (\n payload: { floatValue?: number; formattedValue: string; value: string },\n event: { source: string },\n ) => void\n >,\n default: undefined,\n },\n allowLeadingZeros: { type: Boolean, default: true },\n allowNegative: { type: Boolean, default: true },\n allowedDecimalSeparators: {\n type: Array as PropType<string[]>,\n default: () => ['.', ','],\n },\n decimalScale: { type: Number, default: undefined },\n decimalSeparator: { type: String, default: '.' },\n fixedDecimalScale: { type: Boolean, default: false },\n prefix: { type: String, default: undefined },\n suffix: { type: String, default: undefined },\n thousandsGroupStyle: { type: String as PropType<ThousandsGroupStyle>, default: 'thousand' },\n thousandSeparator: {\n type: [String, Boolean] as PropType<string | boolean>,\n default: undefined,\n },\n min: { type: [Number, BigInt] as PropType<number | bigint | undefined>, default: undefined },\n max: { type: [Number, BigInt] as PropType<number | bigint | undefined>, default: undefined },\n step: { type: [Number, BigInt] as PropType<number | bigint>, default: 1 },\n hideControls: { type: Boolean, default: false },\n clampBehavior: { type: String as PropType<'strict' | 'blur' | 'none'>, default: 'blur' },\n allowDecimal: { type: Boolean, default: true },\n handlersRef: { type: [Object, Function] as PropType<any>, default: undefined },\n stepHoldDelay: { type: Number, default: undefined },\n stepHoldInterval: {\n type: [Number, Function] as PropType<number | ((t: number) => number)>,\n default: undefined,\n },\n startValue: { type: [Number, BigInt] as PropType<number | bigint>, default: 0 },\n withKeyboardEvents: { type: Boolean, default: true },\n trimLeadingZeroesOnBlur: { type: Boolean, default: true },\n selectAllOnFocus: { type: Boolean, default: false },\n onMinReached: { type: Function as PropType<() => void>, default: undefined },\n onMaxReached: { type: Function as PropType<() => void>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n disabled: { type: Boolean, default: false },\n readOnly: { type: Boolean, default: false },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n rightSectionWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n rightSectionPointerEvents: { type: String, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n required: { type: Boolean, default: false },\n withAsterisk: { type: Boolean, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const inputRef = ref<HTMLInputElement | null>(null)\n const isEditing = ref(false)\n const isBigIntMode = computed(\n () => typeof props.value === 'bigint' || typeof props.defaultValue === 'bigint',\n )\n const [value, setValue] = useUncontrolled<NumberInputValue>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: '',\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n const getStyles = useStyles({\n name: 'NumberInput',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const formatterOptions = computed<NumberFormatterOptions>(() => ({\n allowNegative: props.allowNegative,\n decimalScale: props.decimalScale,\n decimalSeparator: props.decimalSeparator,\n fixedDecimalScale: props.fixedDecimalScale,\n prefix: props.prefix,\n suffix: props.suffix,\n thousandsGroupStyle: props.thousandsGroupStyle,\n thousandSeparator: props.thousandSeparator,\n }))\n\n const getFormatterOptions = (nextValue: NumberInputValue = value.value) => ({\n ...formatterOptions.value,\n fixedDecimalScale:\n isEditing.value || typeof nextValue === 'string'\n ? false\n : formatterOptions.value.fixedDecimalScale,\n })\n\n const displayValue = computed(() =>\n value.value === '' || value.value === '-'\n ? String(value.value)\n : formatNumber(value.value, getFormatterOptions()),\n )\n\n const clampCaretToFormatting = (input: HTMLInputElement) => {\n const { min, max } = getCaretBoundaries(input.value, formatterOptions.value)\n const start = input.selectionStart\n const end = input.selectionEnd\n\n if (start === null || end === null) {\n return\n }\n\n const nextStart = clampCaretPosition(start, min, max)\n const nextEnd = clampCaretPosition(end, min, max)\n\n if (nextStart !== start || nextEnd !== end) {\n input.setSelectionRange(nextStart, nextEnd)\n }\n }\n\n const scheduleCaretClamp = (input: HTMLInputElement) => {\n setTimeout(() => clampCaretToFormatting(input), 0)\n }\n\n const commitValue = (nextValue: NumberInputValue, source = 'event') => {\n if (props.clampBehavior === 'strict') {\n const numeric = toNumeric(nextValue)\n\n if (\n typeof numeric === 'number' &&\n (typeof props.min === 'number' || typeof props.max === 'number')\n ) {\n if (\n (typeof props.min === 'number' && numeric < props.min) ||\n (typeof props.max === 'number' && numeric > props.max)\n ) {\n return\n }\n }\n }\n\n setValue(nextValue)\n const raw = typeof nextValue === 'bigint' ? nextValue.toString() : String(nextValue)\n props.onValueChange?.(\n {\n floatValue:\n typeof nextValue === 'number'\n ? nextValue\n : Number.isNaN(Number(raw))\n ? undefined\n : Number(raw),\n formattedValue:\n nextValue === '' ? '' : formatNumber(nextValue, getFormatterOptions(nextValue)),\n value: raw,\n },\n { source },\n )\n }\n\n const stepValue = (direction: 1 | -1) => {\n if (props.disabled || props.readOnly) {\n return\n }\n\n if (isBigIntMode.value) {\n const current = typeof value.value === 'bigint' ? value.value : BigInt(0)\n const step = typeof props.step === 'bigint' ? props.step : BigInt(props.step)\n const start =\n typeof props.startValue === 'bigint' ? props.startValue : BigInt(props.startValue)\n const base = value.value === '' || value.value === '-' ? start : current\n const next = base + step * BigInt(direction)\n const min =\n typeof props.min === 'bigint'\n ? props.min\n : props.min === undefined\n ? undefined\n : BigInt(props.min)\n const max =\n typeof props.max === 'bigint'\n ? props.max\n : props.max === undefined\n ? undefined\n : BigInt(props.max)\n const clamped = clampBigInt(next, min, max)\n\n if (max !== undefined && next > max) {\n props.onMaxReached?.()\n }\n\n if (min !== undefined && next < min) {\n props.onMinReached?.()\n }\n\n commitValue(clamped, direction === 1 ? 'increment' : 'decrement')\n return\n }\n\n const numeric = toNumeric(value.value)\n const step = typeof props.step === 'number' ? props.step : Number(props.step)\n const start =\n typeof props.startValue === 'number' ? props.startValue : Number(props.startValue)\n const base = typeof numeric === 'number' ? numeric : start\n const precision = Math.max(getDecimalPlaces(base), getDecimalPlaces(step))\n const factor = 10 ** precision\n const next = (Math.round(base * factor) + Math.round(step * factor) * direction) / factor\n const min = typeof props.min === 'number' ? props.min : !props.allowNegative ? 0 : undefined\n const max = typeof props.max === 'number' ? props.max : undefined\n const clamped = clamp(next, min, max)\n\n if (max !== undefined && next > max) {\n props.onMaxReached?.()\n }\n\n if (min !== undefined && next < min) {\n props.onMinReached?.()\n }\n\n commitValue(clamped, direction === 1 ? 'increment' : 'decrement')\n }\n\n assignRef(props.handlersRef, {\n increment: () => stepValue(1),\n decrement: () => stepValue(-1),\n })\n\n // Step-hold state\n let holdTimeout: ReturnType<typeof setTimeout> | null = null\n let holdScheduled: ReturnType<typeof setTimeout> | null = null\n let holdStartTime = 0\n\n const clearHold = () => {\n if (holdTimeout !== null) {\n clearTimeout(holdTimeout)\n holdTimeout = null\n }\n if (holdScheduled !== null) {\n clearTimeout(holdScheduled)\n holdScheduled = null\n }\n }\n\n const startHold = (direction: 1 | -1) => {\n if (props.stepHoldDelay === undefined) return\n holdStartTime = Date.now()\n holdTimeout = setTimeout(() => {\n holdTimeout = null\n const scheduleNext = () => {\n stepValue(direction)\n const elapsed = Date.now() - holdStartTime\n const interval =\n typeof props.stepHoldInterval === 'function'\n ? props.stepHoldInterval(elapsed)\n : (props.stepHoldInterval ?? 0)\n holdScheduled = setTimeout(scheduleNext, interval)\n }\n scheduleNext()\n }, props.stepHoldDelay)\n }\n\n onBeforeUnmount(clearHold)\n\n const controls = () =>\n h(Box, { ...getStyles('controls'), component: 'div' }, () => [\n h(\n UnstyledButton,\n {\n ...getStyles('control'),\n tabIndex: -1,\n 'aria-hidden': true,\n disabled:\n props.disabled ||\n (typeof toNumeric(value.value) === 'number' &&\n typeof props.max === 'number' &&\n (toNumeric(value.value) as number) >= props.max),\n mod: { direction: 'up' },\n onMousedown: (event: MouseEvent) => event.preventDefault(),\n onPointerdown: (event: PointerEvent) => {\n event.preventDefault()\n inputRef.value?.focus()\n stepValue(1)\n startHold(1)\n },\n onPointerup: clearHold,\n onPointerleave: clearHold,\n onPointercancel: clearHold,\n },\n () => h(NumberInputChevron, { direction: 'up' }),\n ),\n h(\n UnstyledButton,\n {\n ...getStyles('control'),\n tabIndex: -1,\n 'aria-hidden': true,\n disabled:\n props.disabled ||\n (typeof toNumeric(value.value) === 'number' &&\n typeof props.min === 'number' &&\n (toNumeric(value.value) as number) <= props.min),\n mod: { direction: 'down' },\n onMousedown: (event: MouseEvent) => event.preventDefault(),\n onPointerdown: (event: PointerEvent) => {\n event.preventDefault()\n inputRef.value?.focus()\n stepValue(-1)\n startHold(-1)\n },\n onPointerup: clearHold,\n onPointerleave: clearHold,\n onPointercancel: clearHold,\n },\n () => h(NumberInputChevron, { direction: 'down' }),\n ),\n ])\n\n return () =>\n h(InputBase, {\n ...attrs,\n component: 'input',\n __staticSelector: 'NumberInput',\n __stylesApiProps: props,\n inputMode: isBigIntMode.value ? 'numeric' : 'decimal',\n type: 'text',\n value: displayValue.value,\n readOnly: props.readOnly,\n disabled: props.disabled,\n size: props.size,\n label: props.label,\n description: props.description,\n error: props.error,\n required: props.required,\n withAsterisk: props.withAsterisk,\n wrapperProps: props.wrapperProps,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n rightSection:\n props.hideControls || props.readOnly\n ? props.rightSection\n : props.rightSection || controls,\n rightSectionPointerEvents:\n props.rightSectionPointerEvents ?? (props.disabled ? 'none' : undefined),\n rightSectionWidth:\n props.rightSectionWidth ?? `var(--ni-right-section-width-${props.size || 'sm'})`,\n class: [classes.root, attrs.class],\n onInput: (event: Event) => {\n isEditing.value = true\n const input = event.currentTarget as HTMLInputElement\n const rawValue = stripFormatting(input.value, formatterOptions.value)\n const decimalSeparator = props.decimalSeparator || '.'\n const separatorsToReplace = props.allowedDecimalSeparators.filter(\n (separator) => separator !== decimalSeparator,\n )\n const raw = separatorsToReplace.reduce(\n (acc, separator) => acc.split(separator).join('.'),\n rawValue.replace(decimalSeparator, '.'),\n )\n const sanitized = sanitizeNumberInputString(\n raw,\n props.allowDecimal,\n props.allowNegative,\n props.decimalScale,\n )\n const nextValue = isBigIntMode.value\n ? parseBigIntInputValue(sanitized, props.allowNegative, props.allowLeadingZeros)\n : parseNumberInputValue(\n sanitized,\n props.allowDecimal,\n props.allowNegative,\n props.allowLeadingZeros,\n props.decimalScale,\n props.fixedDecimalScale,\n )\n\n if (\n props.clampBehavior === 'strict' &&\n !isBigIntMode.value &&\n !isStrictAllowed(\n nextValue,\n typeof props.min === 'number' ? props.min : undefined,\n typeof props.max === 'number' ? props.max : undefined,\n )\n ) {\n restoreInputValue(input, displayValue.value)\n return\n }\n\n const formattedNextValue =\n nextValue === '' || nextValue === '-'\n ? String(nextValue)\n : formatNumber(nextValue, getFormatterOptions(nextValue))\n\n if (input.value !== formattedNextValue) {\n restoreInputValue(input, formattedNextValue)\n }\n\n scheduleCaretClamp(input)\n commitValue(nextValue)\n },\n onKeydown: (event: KeyboardEvent) => {\n if (!props.readOnly && props.withKeyboardEvents && event.key === 'ArrowUp') {\n event.preventDefault()\n stepValue(1)\n }\n\n if (!props.readOnly && props.withKeyboardEvents && event.key === 'ArrowDown') {\n event.preventDefault()\n stepValue(-1)\n }\n\n scheduleCaretClamp(event.currentTarget as HTMLInputElement)\n },\n onKeyup: (event: KeyboardEvent) => {\n scheduleCaretClamp(event.currentTarget as HTMLInputElement)\n },\n onClick: (event: MouseEvent) => {\n scheduleCaretClamp(event.currentTarget as HTMLInputElement)\n },\n onFocus: (event: FocusEvent) => {\n isEditing.value = true\n\n if (props.selectAllOnFocus) {\n setTimeout(() => (event.currentTarget as HTMLInputElement).select(), 0)\n } else {\n scheduleCaretClamp(event.currentTarget as HTMLInputElement)\n }\n },\n onBlur: () => {\n isEditing.value = false\n let sanitizedValue = value.value\n const min = typeof props.min === 'number' ? props.min : undefined\n const max = typeof props.max === 'number' ? props.max : undefined\n\n if (props.clampBehavior === 'blur' && typeof sanitizedValue === 'number') {\n sanitizedValue = clamp(sanitizedValue, min, max)\n }\n\n if (\n props.trimLeadingZeroesOnBlur &&\n typeof sanitizedValue === 'string' &&\n getDecimalPlaces(sanitizedValue) < 15\n ) {\n sanitizedValue = clampAndSanitizeInput(sanitizedValue, max, min)\n }\n\n if (sanitizedValue !== value.value) {\n commitValue(sanitizedValue, 'blur')\n }\n },\n rootRef: (node: any) => {\n inputRef.value = node?.querySelector?.('input') ?? node\n },\n })\n },\n})\n\nObject.assign(NumberInput, { classes: { ...InputBase.classes, ...classes }, varsResolver })\n",".root {\n display: flex;\n flex-direction: row;\n flex-wrap: var(--group-wrap, wrap);\n justify-content: var(--group-justify, flex-start);\n align-items: var(--group-align, center);\n gap: var(--group-gap, var(--mantine-spacing-md));\n\n &:where([data-grow]) {\n & > * {\n flex-grow: 1;\n max-width: var(--group-child-width);\n }\n }\n}\n","import { Comment, defineComponent, h, reactive, type PropType, type VNode } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSpacing, useProps, useStyles } from '../../core'\nimport classes from './Group.module.css'\n\nconst defaultProps = {\n preventGrowOverflow: true,\n gap: 'md',\n align: 'center',\n justify: 'flex-start',\n wrap: 'wrap',\n}\n\nfunction filterFalsyChildren(children: VNode[]) {\n return children.filter((child) => child.type !== Comment)\n}\n\nconst varsResolver = createVarsResolver<any>(\n (_, { grow, preventGrowOverflow, gap, align, justify, wrap }, { childWidth }) => ({\n root: {\n '--group-child-width': grow && preventGrowOverflow ? childWidth : undefined,\n '--group-gap': getSpacing(gap),\n '--group-align': align,\n '--group-justify': justify,\n '--group-wrap': wrap,\n },\n }),\n)\n\nexport const Group = withBoxProps(\n defineComponent({\n name: 'Group',\n inheritAttrs: false,\n props: {\n justify: { type: String, default: undefined },\n align: { type: String, default: undefined },\n wrap: { type: String, default: undefined },\n gap: [String, Number] as PropType<string | number>,\n grow: { type: Boolean, default: false },\n preventGrowOverflow: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Group', defaultProps, rawProps)\n const stylesCtx = reactive({ childWidth: '' })\n const getStyles = useStyles({\n name: 'Group',\n classes,\n props,\n stylesCtx,\n className: undefined,\n style: undefined,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => {\n const children = filterFalsyChildren(slots.default?.() ?? [])\n const childrenCount = Math.max(children.length, 1)\n const resolvedGap = getSpacing(props.gap ?? 'md')\n stylesCtx.childWidth = `calc(${100 / childrenCount}% - (${resolvedGap} - ${resolvedGap} / ${childrenCount}))`\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n mod: { grow: props.grow },\n },\n () => children,\n )\n }\n },\n }),\n)\n","export function createPinArray(length: number, value: string): string[] {\n if (length < 1) {\n return []\n }\n\n const values = Array.from({ length }, () => '')\n\n if (value) {\n const splitted = value.trim().split('')\n\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",".root {\n --pin-input-size-xs: 30px;\n --pin-input-size-sm: 36px;\n --pin-input-size-md: 42px;\n --pin-input-size-lg: 50px;\n --pin-input-size-xl: 60px;\n --pin-input-size: var(--pin-input-size-sm);\n}\n\n.pinInput {\n width: var(--pin-input-size);\n height: var(--pin-input-size);\n}\n","import { computed, defineComponent, h, ref, type PropType } from 'vue'\nimport { assignRef, useId, useUncontrolled, type VueRefTarget } from '@mantine-vue/hooks'\nimport { withBoxProps, createVarsResolver, getSize, useProps, useStyles } from '../../core'\nimport { Group } from '../Group'\nimport { Input } 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'\nexport type PinInputCssVariables = {\n root: '--pin-input-size'\n}\n\nexport interface PinInputProps {\n name?: string\n form?: string\n gap?: string | number\n radius?: string | number\n size?: string | number\n autoFocus?: boolean\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n onComplete?: (value: string) => void\n placeholder?: string\n manageFocus?: boolean\n oneTimeCode?: boolean\n id?: string\n disabled?: boolean\n error?: boolean\n type?: 'alphanumeric' | 'number' | RegExp\n mask?: boolean\n length?: number\n readOnly?: boolean\n inputType?: string\n inputMode?: string\n ariaLabel?: string\n hiddenInputProps?: Record<string, any>\n rootRef?: VueRefTarget<HTMLDivElement>\n inputRef?: VueRefTarget<HTMLInputElement>\n getInputProps?: (index: number) => Record<string, any>\n variant?: string\n classNames?: Record<string, string> | ((theme: any, props: any) => Record<string, string>)\n styles?: Record<string, any> | ((theme: any, props: any) => Record<string, any>)\n vars?:\n | Record<string, Record<string, string | undefined>>\n | ((theme: any, props: any) => Record<string, Record<string, string | undefined>>)\n unstyled?: boolean\n}\n\nconst defaultProps = {\n gap: 'sm',\n length: 4,\n manageFocus: true,\n oneTimeCode: true,\n placeholder: '\\u25cb',\n type: 'alphanumeric',\n ariaLabel: 'PinInput',\n size: 'sm',\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n root: {\n '--pin-input-size': getSize(size ?? 'sm', 'pin-input-size'),\n },\n}))\n\nfunction getInputElement(node: any): HTMLInputElement | null {\n const element = node?.$el ?? node\n\n if (!element) {\n return null\n }\n\n if (typeof HTMLInputElement !== 'undefined' && element instanceof HTMLInputElement) {\n return element\n }\n\n return element.querySelector?.('input') ?? null\n}\n\nexport const PinInput = withBoxProps(\n defineComponent({\n name: 'PinInput',\n inheritAttrs: false,\n props: {\n name: { type: String, default: undefined },\n form: { type: String, default: undefined },\n gap: { type: [String, Number] as PropType<string | number>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n autoFocus: { type: Boolean, default: false },\n value: { type: String, default: undefined },\n defaultValue: { type: String, default: undefined },\n onChange: { type: Function as PropType<(value: string) => void>, default: undefined },\n onComplete: { type: Function as PropType<(value: string) => void>, default: undefined },\n placeholder: { type: String, default: undefined },\n manageFocus: { type: Boolean, default: undefined },\n oneTimeCode: { type: Boolean, default: undefined },\n id: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n error: { type: Boolean, default: false },\n type: {\n type: [String, Object] as PropType<'alphanumeric' | 'number' | RegExp>,\n default: undefined,\n },\n mask: { type: Boolean, default: false },\n length: { type: Number, default: undefined },\n readOnly: { type: Boolean, default: false },\n inputType: { type: String, default: undefined },\n inputMode: { type: String, default: undefined },\n ariaLabel: { type: String, default: undefined },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n rootRef: {\n type: [Object, Function] as PropType<VueRefTarget<HTMLDivElement>>,\n default: undefined,\n },\n inputRef: {\n type: [Object, Function] as PropType<VueRefTarget<HTMLInputElement>>,\n default: undefined,\n },\n getInputProps: {\n type: Function as PropType<(index: number) => Record<string, any>>,\n default: undefined,\n },\n variant: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('PinInput', defaultProps, rawProps)\n const uuid = useId(props.id)\n const focusedIndex = ref(-1)\n const inputsRef = ref<Array<HTMLInputElement | null>>([])\n const completed = ref(false)\n const currentLength = computed(() => props.length ?? defaultProps.length)\n\n const getStyles = useStyles({\n name: 'PinInput',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const [value, setValue] = useUncontrolled<string[]>({\n value: () =>\n props.value !== undefined ? createPinArray(currentLength.value, props.value) : undefined,\n defaultValue: props.defaultValue?.split('').slice(0, currentLength.value),\n finalValue: createPinArray(currentLength.value, ''),\n onChange: (nextValue) => {\n const stringValue = nextValue.join('').trim()\n props.onChange?.(stringValue)\n\n if (stringValue.length === currentLength.value && !completed.value) {\n completed.value = true\n props.onComplete?.(stringValue)\n } else if (stringValue.length < currentLength.value) {\n completed.value = false\n }\n },\n })\n\n const currentValue = computed(() =>\n value.value.length !== currentLength.value\n ? createPinArray(currentLength.value, value.value.join(''))\n : value.value,\n )\n const valueToString = computed(() => currentValue.value.join('').trim())\n\n const validate = (code: string) => {\n const validator =\n props.type instanceof RegExp\n ? props.type\n : props.type && props.type in regex\n ? regex[props.type as keyof typeof regex]\n : null\n\n return validator?.test(code) ?? true\n }\n\n const focusInputField = (dir: 'next' | 'prev', index: number) => {\n if (!props.manageFocus) {\n return\n }\n\n const nextIndex = dir === 'next' ? index + 1 : index - 1\n\n if (nextIndex >= 0 && nextIndex < currentLength.value) {\n inputsRef.value[nextIndex]?.focus()\n }\n }\n\n const setFieldValue = (nextChar: string, index: number) => {\n const nextValue = [...currentValue.value]\n nextValue[index] = nextChar\n setValue(nextValue)\n return nextValue\n }\n\n const handleInput = (event: Event, index: number) => {\n const target = event.target as HTMLInputElement\n const inputValue = target.value\n\n if (inputValue.length > 1) {\n const isPasteLike = inputValue.length > 2\n\n if (isPasteLike) {\n if (validate(inputValue)) {\n setValue(createPinArray(currentLength.value, inputValue))\n const filledCount = Math.min(inputValue.length, currentLength.value)\n\n if (filledCount < currentLength.value) {\n focusInputField('next', filledCount - 1)\n }\n }\n\n return\n }\n\n const nextChar = inputValue.split('')[inputValue.length - 1]\n\n if (validate(nextChar)) {\n setFieldValue(nextChar, index)\n focusInputField('next', index)\n }\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 {\n setFieldValue('', index)\n }\n }\n\n const handleKeyDown = (event: KeyboardEvent, index: number) => {\n const inputValue = (event.target as HTMLInputElement).value\n\n if (props.inputMode === 'numeric') {\n const allowedKeys = ['Backspace', 'Tab', 'Control', 'Delete', 'ArrowLeft', 'ArrowRight']\n const isModifierShortcut = event.ctrlKey || event.metaKey\n const isAllowedKey =\n allowedKeys.includes(event.key) ||\n isModifierShortcut ||\n !Number.isNaN(Number(event.key))\n\n if (!isAllowedKey) {\n event.preventDefault()\n return\n }\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n focusInputField('prev', index)\n } else if (event.key === 'ArrowRight') {\n event.preventDefault()\n focusInputField('next', index)\n } else if (event.key === 'Tab' && event.shiftKey && index > 0 && props.manageFocus) {\n event.preventDefault()\n focusInputField('prev', index)\n } else if (event.key === ' ') {\n event.preventDefault()\n focusInputField('next', index)\n } else if (event.key === 'Delete') {\n event.preventDefault()\n setFieldValue('', index)\n } else if (event.key === 'Backspace') {\n if (inputValue === '') {\n event.preventDefault()\n focusInputField('prev', index)\n } else {\n setFieldValue('', index)\n\n if (index < currentLength.value - 1) {\n event.preventDefault()\n focusInputField('prev', index)\n }\n }\n } else if (inputValue.length > 0 && event.key === currentValue.value[index]) {\n event.preventDefault()\n focusInputField('next', index)\n }\n }\n\n const handlePaste = (event: ClipboardEvent) => {\n event.preventDefault()\n const pasteData = event.clipboardData?.getData('text/plain').replace(/[\\n\\r\\s]+/g, '') ?? ''\n\n if (validate(pasteData.trim())) {\n const pasteArray = createPinArray(currentLength.value, pasteData)\n setValue(pasteArray)\n const filledCount = pasteArray.filter(Boolean).length\n const nextIndex =\n filledCount >= currentLength.value ? currentLength.value - 1 : filledCount\n inputsRef.value[nextIndex]?.focus()\n }\n }\n\n return () =>\n h('div', { style: { display: 'contents' } }, [\n h(\n Group,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n ref: (node: any) => assignRef(props.rootRef, node?.$el ?? node ?? null),\n role: 'group',\n id: uuid.value,\n gap: props.gap,\n wrap: 'nowrap',\n variant: props.variant,\n dir: 'ltr',\n unstyled: props.unstyled,\n },\n () =>\n currentValue.value.map((char, index) => {\n const pinInputStyles = getStyles('pinInput', {\n style: {\n '--input-padding': '0',\n '--input-text-align': 'center',\n },\n })\n const customInputProps = props.getInputProps?.(index) ?? {}\n\n return h(\n Input as any,\n {\n ...pinInputStyles,\n component: 'input',\n __staticSelector: 'PinInput',\n __stylesApiProps: props,\n key: `${uuid.value}-${index}`,\n id: `${uuid.value}-${index + 1}`,\n inputMode: props.inputMode || (props.type === 'number' ? 'numeric' : 'text'),\n onInput: (event: Event) => handleInput(event, index),\n onChange: (event: Event) => handleInput(event, index),\n onKeydown: (event: KeyboardEvent) => handleKeyDown(event, index),\n onFocus: (event: FocusEvent) => {\n ;(event.target as HTMLInputElement).select()\n focusedIndex.value = index\n },\n onBlur: () => {\n focusedIndex.value = -1\n },\n onPaste: handlePaste,\n type:\n props.inputType ||\n (props.mask ? 'password' : props.type === 'number' ? 'tel' : 'text'),\n radius: props.radius,\n error: props.error,\n variant: props.variant,\n disabled: props.disabled,\n ref: (node: any) => {\n const input = getInputElement(node)\n inputsRef.value[index] = input\n\n if (index === 0) {\n assignRef(props.inputRef, input)\n }\n },\n autocomplete: props.oneTimeCode ? 'one-time-code' : 'off',\n placeholder: focusedIndex.value === index ? '' : props.placeholder,\n value: char,\n autofocus: props.autoFocus && index === 0,\n unstyled: props.unstyled,\n 'aria-label': props.ariaLabel,\n readonly: props.readOnly,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n size: props.size,\n ...customInputProps,\n } as any,\n )\n }),\n ),\n h('input', {\n ...props.hiddenInputProps,\n type: 'hidden',\n name: props.name,\n form: props.form,\n value: valueToString.value,\n }),\n ])\n },\n }),\n)\n\nObject.assign(PinInput, { classes: { ...classes, ...InputBase.classes }, varsResolver })\n","export type NativeSelectPrimitive = string | number | boolean | bigint\n\nexport interface NativeSelectItem<Value extends NativeSelectPrimitive = string> {\n value: Value\n label?: string\n disabled?: boolean\n}\n\nexport interface NativeSelectItemGroup<Value extends NativeSelectPrimitive = string> {\n group: string\n items: Array<Value | NativeSelectItem<Value>>\n}\n\nexport type NativeSelectData<Value extends NativeSelectPrimitive = string> = Array<\n Value | NativeSelectItem<Value> | NativeSelectItemGroup<Value>\n>\n\nexport interface NativeSelectParsedItem<Value extends NativeSelectPrimitive = string> {\n value: Value\n label: string\n disabled?: boolean\n}\n\nexport interface NativeSelectParsedItemGroup<Value extends NativeSelectPrimitive = string> {\n group: string\n items: NativeSelectParsedItem<Value>[]\n}\n\nexport type NativeSelectParsedData<Value extends NativeSelectPrimitive = string> = Array<\n NativeSelectParsedItem<Value> | NativeSelectParsedItemGroup<Value>\n>\n\nfunction parseItem<Value extends NativeSelectPrimitive = string>(\n item: Value | NativeSelectItem<Value> | NativeSelectItemGroup<Value>,\n): NativeSelectParsedItem<Value> | NativeSelectParsedItemGroup<Value> {\n if (typeof item === 'object' && item !== null && 'group' in item) {\n return {\n group: item.group,\n items: item.items.map((value) => parseItem<Value>(value) as NativeSelectParsedItem<Value>),\n }\n }\n\n if (typeof item === 'object' && item !== null && 'value' in item) {\n return {\n ...item,\n label: item.label ?? `${item.value}`,\n }\n }\n\n return { value: item as Value, label: `${item}` }\n}\n\nexport function getParsedNativeSelectData<Value extends NativeSelectPrimitive = string>(\n data: NativeSelectData<Value> | undefined,\n): NativeSelectParsedData<Value> {\n return data?.map((item) => parseItem<Value>(item)) ?? []\n}\n","import { defineComponent, h, type PropType, type VNode } from 'vue'\nimport type {\n NativeSelectParsedItem,\n NativeSelectParsedItemGroup,\n NativeSelectPrimitive,\n} from './get-parsed-data/get-parsed-data'\n\nexport type NativeSelectOptionData<Value extends NativeSelectPrimitive = string> =\n | NativeSelectParsedItem<Value>\n | NativeSelectParsedItemGroup<Value>\n\nfunction isGroup<Value extends NativeSelectPrimitive>(\n input: NativeSelectOptionData<Value>,\n): input is NativeSelectParsedItemGroup<Value> {\n return 'group' in input\n}\n\nexport function renderNativeSelectOption<Value extends NativeSelectPrimitive>(\n data: NativeSelectOptionData<Value>,\n): VNode {\n if (isGroup(data)) {\n return h(\n 'optgroup',\n { label: data.group },\n data.items.map((item) => renderNativeSelectOption(item)),\n )\n }\n\n const { value, label, ...others } = data\n\n return h('option', { ...others, value }, label)\n}\n\nexport const NativeSelectOption = defineComponent({\n name: 'NativeSelectOption',\n props: {\n data: { type: Object as PropType<NativeSelectOptionData>, required: true },\n },\n setup(props) {\n return () => renderNativeSelectOption(props.data)\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useProps } from '../../core'\nimport { InputBase } from '../InputBase'\nimport { getParsedNativeSelectData, type NativeSelectData } from './get-parsed-data/get-parsed-data'\nimport { NativeSelectOption } from './NativeSelectOption'\n\nexport interface NativeSelectProps {\n data?: NativeSelectData<any>\n size?: string | number\n error?: any\n rightSection?: any\n rightSectionPointerEvents?: string\n label?: any\n description?: any\n required?: boolean\n disabled?: boolean\n id?: string\n name?: string\n form?: string\n value?: string\n defaultValue?: string\n onChange?: (event: Event) => void\n variant?: 'default' | 'filled' | 'unstyled'\n radius?: string | number\n classNames?: Record<string, string> | ((theme: any, props: any) => Record<string, string>)\n styles?: Record<string, any> | ((theme: any, props: any) => Record<string, any>)\n vars?:\n | Record<string, Record<string, string | undefined>>\n | ((theme: any, props: any) => Record<string, Record<string, string | undefined>>)\n unstyled?: boolean\n}\n\nconst defaultProps = {\n size: 'sm',\n rightSectionPointerEvents: 'none',\n} as const\n\nfunction NativeSelectChevron() {\n return h(\n 'svg',\n {\n viewBox: '0 0 15 15',\n width: '1em',\n height: '1em',\n 'aria-hidden': true,\n focusable: false,\n },\n h('path', {\n d: 'M4 6l3.5 3.5L11 6',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 1.5,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n }),\n )\n}\n\nexport const NativeSelect = defineComponent({\n name: 'NativeSelect',\n inheritAttrs: false,\n props: {\n data: { type: Array as PropType<NativeSelectData<any>>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n rightSectionPointerEvents: { type: String, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n required: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { type: String, default: undefined },\n name: { type: String, default: undefined },\n form: { type: String, default: undefined },\n value: { type: String, default: undefined },\n defaultValue: { type: String, default: undefined },\n onChange: { type: Function as PropType<(event: Event) => void>, default: undefined },\n variant: { type: String as PropType<'default' | 'filled' | 'unstyled'>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('NativeSelect', defaultProps, rawProps)\n\n return () => {\n const parsedOptions = getParsedNativeSelectData(props.data).map((item, index) =>\n h(NativeSelectOption, { key: index, data: item }),\n )\n\n return h(\n InputBase as any,\n {\n ...attrs,\n component: 'select',\n __staticSelector: 'NativeSelect',\n size: props.size,\n pointer: true,\n error: props.error,\n unstyled: props.unstyled,\n rightSection: props.rightSection ?? NativeSelectChevron,\n rightSectionPointerEvents: props.rightSectionPointerEvents,\n label: props.label,\n description: props.description,\n required: props.required,\n disabled: props.disabled,\n id: props.id,\n name: props.name,\n form: props.form,\n ...(props.value !== undefined ? { value: props.value } : null),\n ...(props.defaultValue !== undefined ? { value: props.defaultValue } : null),\n onChange: props.onChange,\n variant: props.variant,\n radius: props.radius,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n } as any,\n () => slots.default?.() ?? parsedOptions,\n )\n }\n },\n})\n\nObject.assign(NativeSelect, { classes: InputBase.classes })\n",".root {\n --nl-bg: var(--mantine-primary-color-light);\n --nl-hover: var(--mantine-primary-color-light-hover);\n --nl-color: var(--mantine-primary-color-light-color);\n\n display: flex;\n align-items: center;\n width: 100%;\n padding: 8px var(--mantine-spacing-sm);\n user-select: none;\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n }\n }\n\n &:where([data-disabled]) {\n opacity: 0.4;\n pointer-events: none;\n }\n\n &:where([data-active], [aria-current='page']) {\n background-color: var(--nl-bg);\n color: var(--nl-color);\n\n @mixin hover {\n background-color: var(--nl-hover);\n }\n\n .description {\n --description-opacity: 0.9;\n --description-color: var(--nl-color);\n }\n }\n}\n\n.section {\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 150ms ease;\n\n & > svg {\n display: block;\n }\n\n &:where([data-position='left']) {\n margin-inline-end: var(--mantine-spacing-sm);\n }\n\n &:where([data-position='right']) {\n margin-inline-start: var(--mantine-spacing-sm);\n }\n\n &:where([data-rotate]) {\n transform: rotate(90deg);\n }\n}\n\n.label {\n font-size: var(--mantine-font-size-sm);\n}\n\n.body {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:where([data-no-wrap]) {\n white-space: nowrap;\n }\n}\n\n.description {\n display: block;\n font-size: var(--mantine-font-size-xs);\n opacity: var(--description-opacity, 1);\n color: var(--description-color, var(--mantine-color-dimmed));\n overflow: hidden;\n text-overflow: ellipsis;\n\n :where([data-no-wrap]) & {\n white-space: nowrap;\n }\n}\n\n.children {\n padding-inline-start: var(--nl-offset, var(--mantine-spacing-lg));\n}\n\n.chevron {\n transform: rotate(-90deg);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport { withBoxProps, Box, createVarsResolver, getSpacing, useStyles } from '../../core'\nimport { AccordionChevron } from '../Accordion'\nimport { Collapse } from '../Collapse'\nimport { UnstyledButton } from '../UnstyledButton'\nimport classes from './NavLink.module.css'\n\nexport type NavLinkStylesNames =\n | 'root'\n | 'section'\n | 'body'\n | 'label'\n | 'description'\n | 'chevron'\n | 'collapse'\n | 'children'\nexport type NavLinkVariant = 'filled' | 'light' | 'subtle'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { variant, color, childrenOffset, autoContrast }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n variant: variant || 'light',\n autoContrast,\n })\n\n return {\n root: {\n '--nl-bg': color || variant ? colors.background : undefined,\n '--nl-hover': color || variant ? colors.hover : undefined,\n '--nl-color': color || variant ? colors.color : undefined,\n },\n children: {\n '--nl-offset': getSpacing(childrenOffset),\n },\n }\n },\n)\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nexport const NavLink = withBoxProps(\n defineComponent({\n name: 'NavLink',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'a' },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n leftSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n active: { type: Boolean, default: false },\n color: { type: String, default: undefined },\n noWrap: { type: Boolean, default: false },\n opened: { type: Boolean, default: undefined },\n defaultOpened: { type: Boolean, default: undefined },\n onChange: { type: Function as PropType<(opened: boolean) => void>, default: undefined },\n disableRightSectionRotation: { type: Boolean, default: false },\n childrenOffset: { type: [String, Number] as PropType<string | number>, default: 'lg' },\n disabled: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n keepMounted: { type: Boolean, default: undefined },\n variant: { type: String as PropType<NavLinkVariant>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const [opened, setOpened] = useUncontrolled<boolean>({\n value: () => props.opened,\n defaultValue: props.defaultOpened,\n finalValue: false,\n onChange: (value) => props.onChange?.(value),\n })\n const getStyles = useStyles({\n name: 'NavLink',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const children = slots.default?.()\n const withChildren = Boolean(children && children.length > 0)\n const rightSection = props.rightSection ?? slots.rightSection?.()\n const leftSection = props.leftSection ?? slots.leftSection?.()\n\n const toggle = (event: Event) => {\n if (withChildren) {\n event.preventDefault()\n setOpened(!opened.value)\n }\n }\n\n return [\n h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: props.component,\n unstyled: props.unstyled,\n variant: props.variant,\n mod: [\n { disabled: props.disabled, active: props.active, expanded: opened.value },\n props.mod,\n ],\n onClick: (event: MouseEvent) => {\n callHandler((attrs as any).onClick, event)\n toggle(event)\n },\n onKeydown: (event: KeyboardEvent) => {\n callHandler((attrs as any).onKeydown ?? (attrs as any).onKeyDown, event)\n\n if (event.code === 'Space' && withChildren) {\n toggle(event)\n }\n },\n },\n () => [\n leftSection\n ? h(\n Box,\n { component: 'span', ...getStyles('section'), mod: { position: 'left' } },\n () => renderContent(leftSection),\n )\n : null,\n h(Box, { ...getStyles('body'), mod: { 'no-wrap': props.noWrap } }, () => [\n h(Box, { component: 'span', ...getStyles('label') }, () =>\n renderContent(props.label ?? slots.label?.()),\n ),\n props.description || slots.description\n ? h(\n Box,\n {\n component: 'span',\n mod: { active: props.active },\n ...getStyles('description'),\n },\n () => renderContent(props.description ?? slots.description?.()),\n )\n : null,\n ]),\n withChildren || rightSection !== undefined\n ? h(\n Box,\n {\n ...getStyles('section'),\n component: 'span',\n mod: {\n rotate: opened.value && !props.disableRightSectionRotation,\n position: 'right',\n },\n },\n () =>\n withChildren\n ? rightSection !== undefined\n ? renderContent(rightSection)\n : h(AccordionChevron, getStyles('chevron'))\n : renderContent(rightSection),\n )\n : null,\n ],\n ),\n withChildren\n ? h(\n Collapse,\n {\n expanded: opened.value,\n keepMounted: props.keepMounted,\n ...getStyles('collapse'),\n },\n () => h('div', getStyles('children'), children),\n )\n : null,\n ]\n }\n },\n }),\n)\n\nObject.assign(NavLink, { classes, varsResolver })\n","@keyframes marquee-horizontal {\n from {\n transform: translateX(0);\n }\n\n to {\n transform: translateX(\n calc(\n -100% / var(--marquee-repeat, 4) - var(--marquee-gap, var(--mantine-spacing-md)) /\n var(--marquee-repeat, 4)\n )\n );\n }\n}\n\n@keyframes marquee-vertical {\n from {\n transform: translateY(0);\n }\n\n to {\n transform: translateY(\n calc(\n -100% / var(--marquee-repeat, 4) - var(--marquee-gap, var(--mantine-spacing-md)) /\n var(--marquee-repeat, 4)\n )\n );\n }\n}\n\n.root {\n --_fade-color: var(--marquee-fade-color, var(--mantine-color-body));\n --_fade-size: var(--marquee-fade-size, 5%);\n\n position: relative;\n overflow: hidden;\n display: flex;\n max-height: 100%;\n max-width: 100%;\n\n &:where([data-orientation='horizontal']) {\n flex-direction: row;\n }\n\n &:where([data-orientation='vertical']) {\n flex-direction: column;\n }\n\n /* Fade edges using pseudo-elements */\n &[data-fade-edges]::before,\n &[data-fade-edges]::after {\n content: '';\n position: absolute;\n z-index: 1;\n pointer-events: none;\n }\n\n /* Horizontal fade edges */\n &[data-orientation='horizontal'][data-fade-edges]::before,\n &[data-orientation='horizontal'][data-fade-edges]::after {\n top: 0;\n bottom: 0;\n width: var(--_fade-size);\n }\n\n &[data-orientation='horizontal'][data-fade-edges]::before {\n left: 0;\n background: linear-gradient(to right, var(--_fade-color), transparent);\n }\n\n &[data-orientation='horizontal'][data-fade-edges]::after {\n right: 0;\n background: linear-gradient(to left, var(--_fade-color), transparent);\n }\n\n /* Vertical fade edges */\n &[data-orientation='vertical'][data-fade-edges]::before,\n &[data-orientation='vertical'][data-fade-edges]::after {\n left: 0;\n right: 0;\n height: var(--_fade-size);\n }\n\n &[data-orientation='vertical'][data-fade-edges]::before {\n top: 0;\n background: linear-gradient(to bottom, var(--_fade-color), transparent);\n }\n\n &[data-orientation='vertical'][data-fade-edges]::after {\n bottom: 0;\n background: linear-gradient(to top, var(--_fade-color), transparent);\n }\n}\n\n.content {\n display: flex;\n gap: var(--marquee-gap, var(--mantine-spacing-md));\n animation-duration: var(--marquee-duration, 40000ms);\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n\n .root[data-orientation='horizontal'] > & {\n flex-direction: row;\n animation-name: marquee-horizontal;\n }\n\n .root[data-orientation='vertical'] > & {\n flex-direction: column;\n animation-name: marquee-vertical;\n }\n\n .root[data-reverse] > & {\n animation-direction: reverse;\n }\n\n .root[data-pause-on-hover]:hover > & {\n animation-play-state: paused;\n }\n}\n\n.group {\n display: flex;\n flex-shrink: 0;\n gap: var(--marquee-gap, var(--mantine-spacing-md));\n\n .root[data-orientation='horizontal'] & {\n flex-direction: row;\n }\n\n .root[data-orientation='vertical'] & {\n flex-direction: column;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSpacing, useProps, useStyles } from '../../core'\nimport classes from './Marquee.module.css'\n\nexport type MarqueeStylesNames = 'root' | 'content' | 'group'\n\nconst defaultProps = {\n repeat: 4,\n duration: 100000,\n orientation: 'horizontal',\n fadeEdges: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (_, { duration, gap, repeat, fadeEdgeColor, fadeEdgeSize }) => ({\n root: {\n '--marquee-duration': `${duration}ms`,\n '--marquee-gap': getSpacing(gap),\n '--marquee-repeat': (repeat ?? 4).toString(),\n '--marquee-fade-color': fadeEdgeColor,\n '--marquee-fade-size': fadeEdgeSize,\n },\n }),\n)\n\nexport const Marquee = withBoxProps(\n defineComponent({\n name: 'Marquee',\n inheritAttrs: false,\n props: {\n reverse: { type: Boolean, default: false },\n pauseOnHover: { type: Boolean, default: false },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n repeat: { type: Number, default: undefined },\n duration: { type: Number, default: undefined },\n gap: { type: [String, Number] as PropType<string | number>, default: undefined },\n fadeEdges: { type: Boolean, default: undefined },\n fadeEdgeColor: { type: String, default: undefined },\n fadeEdgeSize: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Marquee', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Marquee',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const repeatedChildren = Array.from(\n { length: props.repeat ?? defaultProps.repeat },\n (_, index) => h('div', { key: index, ...getStyles('group') }, slots.default?.()),\n )\n\n return h(\n Box,\n {\n ...attrs,\n mod: [\n {\n orientation: props.orientation,\n reverse: props.reverse,\n pauseOnHover: props.pauseOnHover,\n fadeEdges: props.fadeEdges,\n },\n props.mod,\n ],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => h('div', getStyles('content'), repeatedChildren),\n )\n }\n },\n }),\n)\n\nObject.assign(Marquee, { classes, varsResolver })\n",".root {\n position: fixed;\n z-index: var(--affix-z-index);\n inset-inline-start: var(--affix-left);\n inset-inline-end: var(--affix-right);\n top: var(--affix-top);\n bottom: var(--affix-bottom);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getDefaultZIndex,\n getSpacing,\n useProps,\n useStyles,\n} from '../../core'\nimport { OptionalPortal } from '../Portal'\nimport classes from './Affix.module.css'\n\nexport type AffixStylesNames = 'root'\n\nexport interface AffixPosition {\n top?: string | number\n left?: string | number\n bottom?: string | number\n right?: string | number\n}\n\nconst defaultProps = {\n position: { bottom: 0, right: 0 },\n zIndex: getDefaultZIndex('modal'),\n withinPortal: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { zIndex, position }) => ({\n root: {\n '--affix-z-index': zIndex?.toString(),\n '--affix-top': getSpacing(position?.top),\n '--affix-left': getSpacing(position?.left),\n '--affix-bottom': getSpacing(position?.bottom),\n '--affix-right': getSpacing(position?.right),\n },\n}))\n\nexport const Affix = withBoxProps(\n defineComponent({\n name: 'Affix',\n inheritAttrs: false,\n props: {\n zIndex: { type: [String, Number] as PropType<string | number>, default: undefined },\n withinPortal: { type: Boolean, default: undefined },\n portalProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n position: { type: Object as PropType<AffixPosition>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Affix', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Affix',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () =>\n h(\n OptionalPortal,\n {\n ...props.portalProps,\n withinPortal: props.withinPortal,\n },\n () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => slots.default?.(),\n ),\n )\n },\n }),\n)\n\nObject.assign(Affix, { classes, varsResolver })\n",".root {\n --dialog-size-xs: 160px;\n --dialog-size-sm: 200px;\n --dialog-size-md: 340px;\n --dialog-size-lg: 400px;\n --dialog-size-xl: 500px;\n --dialog-size: var(--dialog-size-md);\n\n position: relative;\n width: var(--dialog-size);\n max-width: calc(100vw - var(--mantine-spacing-xl) * 2);\n min-height: 50px;\n}\n\n.closeButton {\n position: absolute;\n top: calc(var(--mantine-spacing-md) / 2);\n inset-inline-end: calc(var(--mantine-spacing-md) / 2);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { createVarsResolver, getSize, useMantineEnv, useProps, useStyles } from '../../core'\nimport { Affix, type AffixPosition } from '../Affix'\nimport { CloseButton } from '../CloseButton'\nimport { Paper } from '../Paper'\nimport { Transition, type MantineTransition } from '../Transition'\nimport classes from './Dialog.module.css'\n\nexport type DialogStylesNames = 'root' | 'closeButton'\n\nconst defaultProps = {\n shadow: 'md',\n p: 'md',\n withBorder: true,\n transitionProps: { transition: 'pop-top-right' as MantineTransition, duration: 200 },\n position: { bottom: 30, right: 30 },\n} as const\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n root: {\n '--dialog-size': getSize(size, 'dialog-size'),\n },\n}))\n\nexport const Dialog = defineComponent({\n name: 'Dialog',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, required: true },\n keepMounted: { type: Boolean, default: false },\n withCloseButton: { type: Boolean, default: false },\n onClose: { type: Function as PropType<() => void>, default: undefined },\n transitionProps: {\n type: Object as PropType<{\n transition?: MantineTransition\n duration?: number\n keepMounted?: boolean\n }>,\n default: undefined,\n },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n zIndex: { type: [String, Number] as PropType<string | number>, default: undefined },\n withinPortal: { type: Boolean, default: undefined },\n portalProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n position: { type: Object as PropType<AffixPosition>, default: undefined },\n shadow: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n withBorder: { type: Boolean, default: undefined },\n p: { type: [String, Number] as PropType<string | number>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Dialog', defaultProps, rawProps)\n const env = useMantineEnv()\n const getStyles = useStyles({\n name: 'Dialog',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const renderPaper = (transitionStyles: any) =>\n h(\n Paper,\n {\n ...attrs,\n ...getStyles('root', { style: transitionStyles, className: attrs.class }),\n unstyled: props.unstyled,\n shadow: props.shadow,\n radius: props.radius,\n withBorder: props.withBorder,\n p: props.p,\n },\n () => [\n props.withCloseButton\n ? h(CloseButton, {\n onClick: props.onClose,\n unstyled: props.unstyled,\n ...getStyles('closeButton'),\n })\n : null,\n slots.default?.(),\n ],\n )\n\n return () =>\n h(\n Affix,\n {\n zIndex: props.zIndex,\n position: props.position,\n withinPortal: props.withinPortal,\n portalProps: props.portalProps,\n unstyled: props.unstyled,\n },\n () =>\n env === 'test'\n ? props.opened\n ? renderPaper({})\n : props.keepMounted\n ? renderPaper({ display: 'none' })\n : null\n : h(\n Transition,\n {\n keepMounted: props.keepMounted,\n mounted: props.opened,\n ...props.transitionProps,\n },\n { default: renderPaper },\n ),\n )\n },\n})\n\nObject.assign(Dialog, { classes, varsResolver })\n","import { createSafeContext } from '../../core'\n\nexport interface RatingContextValue {\n getStyles: (selector: string, options?: { className?: any; style?: any; props?: any }) => any\n}\n\nexport const [provideRatingContext, useRatingContext] = createSafeContext<RatingContextValue>(\n 'Rating was not found in tree',\n)\n","import { defineComponent, h } from 'vue'\n\nexport const StarIcon = defineComponent({\n name: 'StarIcon',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n ...attrs,\n viewBox: '0 0 24 24',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n },\n h('path', {\n d: 'M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z',\n }),\n )\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useRatingContext } from '../Rating.context'\nimport { StarIcon } from './StarIcon'\n\nexport const StarSymbol = defineComponent({\n name: 'StarSymbol',\n props: {\n type: { type: String as PropType<'empty' | 'full'>, required: true },\n },\n setup(props) {\n const ctx = useRatingContext()\n\n return () =>\n h(StarIcon, {\n ...ctx.getStyles('starSymbol'),\n 'data-filled': props.type === 'full' ? true : undefined,\n })\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useDirection } from '../../../core'\nimport { useRatingContext } from '../Rating.context'\nimport { StarSymbol } from '../StarSymbol/StarSymbol'\n\nexport const RatingItem = withBoxProps(\n defineComponent({\n name: 'RatingItem',\n inheritAttrs: false,\n props: {\n getSymbolLabel: { type: Function as PropType<(value: number) => string>, default: undefined },\n emptyIcon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n fullIcon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n full: { type: Boolean, required: true },\n active: { type: Boolean, required: true },\n checked: { type: Boolean, required: true },\n readOnly: { type: Boolean, default: false },\n fractionValue: { type: Number, required: true },\n value: { type: Number, required: true },\n id: { type: String, required: true },\n name: { type: String, required: true },\n onChangeValue: { type: Function as PropType<(value: number) => void>, required: true },\n onInputChange: { type: Function as PropType<(value: number) => void>, required: true },\n onItemBlur: { type: Function as PropType<() => void>, default: undefined },\n },\n setup(props) {\n const ctx = useRatingContext()\n const { dir } = useDirection()\n const renderIcon = (icon: any) => (typeof icon === 'function' ? icon(props.value) : icon)\n\n return () => {\n const icon = props.full\n ? renderIcon(props.fullIcon) || h(StarSymbol, { type: 'full' })\n : renderIcon(props.emptyIcon) || h(StarSymbol, { type: 'empty' })\n const clipPath =\n props.fractionValue === 1\n ? undefined\n : dir.value === 'ltr'\n ? `inset(0 ${props.active ? 100 - props.fractionValue * 100 : 100}% 0 0)`\n : `inset(0 0 0 ${props.active ? 100 - props.fractionValue * 100 : 100}% )`\n\n return [\n !props.readOnly\n ? h('input', {\n ...ctx.getStyles('input'),\n id: props.id,\n type: 'radio',\n name: props.name,\n value: props.value,\n checked: props.checked,\n 'data-active': props.active ? true : undefined,\n 'aria-label': props.getSymbolLabel?.(props.value),\n onBlur: props.onItemBlur,\n onChange: () => props.onInputChange(props.value),\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Enter') {\n props.onChangeValue(props.value)\n }\n },\n })\n : null,\n h(\n Box,\n {\n component: props.readOnly ? 'div' : 'label',\n ...ctx.getStyles('label', {\n style: {\n '--rating-item-z-index':\n props.fractionValue === 1 ? undefined : props.active ? '2' : '0',\n },\n }),\n 'data-read-only': props.readOnly ? true : undefined,\n for: props.id,\n onClick: props.readOnly ? undefined : () => props.onChangeValue(props.value),\n },\n () =>\n h(\n Box,\n {\n ...ctx.getStyles('symbolBody', {\n style: {\n '--rating-symbol-clip-path': clipPath,\n },\n }),\n },\n () => icon,\n ),\n ),\n ]\n }\n },\n }),\n)\n",".root {\n --rating-size-xs: 14px;\n --rating-size-sm: 18px;\n --rating-size-md: 20px;\n --rating-size-lg: 28px;\n --rating-size-xl: 32px;\n\n display: flex;\n width: max-content;\n\n &:where(:has(input:disabled)) {\n pointer-events: none;\n }\n}\n\n.symbolGroup {\n position: relative;\n transition: transform 100ms ease;\n\n &:where([data-active]) {\n z-index: 1;\n transform: scale(1.1);\n }\n}\n\n.starSymbol {\n width: var(--rating-size);\n height: var(--rating-size);\n display: block;\n\n @mixin where-light {\n fill: var(--mantine-color-gray-3);\n stroke: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n fill: var(--mantine-color-dark-3);\n stroke: var(--mantine-color-dark-3);\n }\n\n &:where([data-filled]) {\n fill: var(--rating-color);\n stroke: var(--rating-color);\n }\n}\n\n.input {\n height: 0;\n width: 0;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n opacity: 0;\n -webkit-tap-highlight-color: transparent;\n\n &:focus-visible + label {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n}\n\n.label {\n display: block;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n z-index: var(--rating-item-z-index, 0);\n -webkit-tap-highlight-color: transparent;\n\n &:where([data-read-only]) {\n cursor: default;\n }\n\n &:where(:last-of-type) {\n position: relative;\n }\n}\n\n.symbolBody {\n clip-path: var(--rating-symbol-clip-path);\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { useId, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSize,\n getThemeColor,\n useDirection,\n useProps,\n useStyles,\n} from '../../core'\nimport { provideRatingContext } from './Rating.context'\nimport { RatingItem } from './RatingItem/RatingItem'\nimport classes from './Rating.module.css'\n\nexport type RatingStylesNames =\n | 'root'\n | 'starSymbol'\n | 'input'\n | 'label'\n | 'symbolBody'\n | 'symbolGroup'\n\nfunction roundValueTo(value: number, to: number) {\n const rounded = Math.round(value / to) * to\n const precision = `${to}`.split('.')[1]?.length || 0\n return Number(rounded.toFixed(precision))\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value))\n}\n\nconst defaultProps = {\n size: 'sm',\n getSymbolLabel: (value: number) => `${value}`,\n count: 5,\n fractions: 1,\n color: 'yellow',\n} as const\n\nconst varsResolver = createVarsResolver<any>((theme, { size, color }) => ({\n root: {\n '--rating-size': getSize(size, 'rating-size'),\n '--rating-color': getThemeColor(color, theme),\n },\n}))\n\nexport const Rating = withBoxProps(\n defineComponent({\n name: 'Rating',\n inheritAttrs: false,\n props: {\n defaultValue: { type: Number, default: undefined },\n value: { type: Number, default: undefined },\n onChange: { type: Function as PropType<(value: number) => void>, default: undefined },\n emptySymbol: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n fullSymbol: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n fractions: { type: Number, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n count: { type: Number, default: undefined },\n onHover: { type: Function as PropType<(value: number) => void>, default: undefined },\n getSymbolLabel: { type: Function as PropType<(value: number) => string>, default: undefined },\n name: { type: String, default: undefined },\n id: { type: String, default: undefined },\n readOnly: { type: Boolean, default: false },\n allowClear: { type: Boolean, default: false },\n highlightSelectedOnly: { type: Boolean, default: false },\n color: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('Rating', defaultProps, rawProps)\n const rootRef = ref<HTMLDivElement | null>(null)\n const hovered = ref(-1)\n const isOutside = ref(true)\n const { dir } = useDirection()\n const name = useId(props.name)\n const id = useId(props.id)\n const [currentValue, setCurrentValue] = useUncontrolled<number>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: 0,\n onChange: (value) => props.onChange?.(value),\n })\n const getStyles = useStyles({\n name: 'Rating',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provideRatingContext({ getStyles })\n\n const getRatingFromCoordinates = (x: number, count: number, decimalUnit: number) => {\n if (!rootRef.value) {\n return 0\n }\n\n const { left, right, width } = rootRef.value.getBoundingClientRect()\n const symbolWidth = width / count\n const hoverPosition = dir.value === 'rtl' ? right - x : x - left\n const hoverValue = hoverPosition / symbolWidth\n\n return clamp(roundValueTo(hoverValue + decimalUnit / 2, decimalUnit), decimalUnit, count)\n }\n\n return () => {\n const count = Math.max(0, Math.floor(props.count ?? defaultProps.count))\n const fractions = Math.floor(props.fractions ?? defaultProps.fractions)\n\n if (fractions < 0) {\n throw new Error('Rating fractions cannot be negative')\n }\n\n const decimalUnit = 1 / Math.max(fractions, 1)\n const stableValueRounded = roundValueTo(currentValue.value, decimalUnit)\n const finalValue = hovered.value !== -1 ? hovered.value : stableValueRounded\n const items = Array.from({ length: count }, (_, index) => {\n const integerValue = index + 1\n const fractionItems = Array.from({ length: index === 0 ? fractions + 1 : fractions })\n const isGroupActive = !props.readOnly && Math.ceil(hovered.value) === integerValue\n\n return h(\n 'div',\n {\n key: integerValue,\n 'data-active': isGroupActive ? true : undefined,\n ...getStyles('symbolGroup'),\n },\n fractionItems.map((_, fractionIndex) => {\n const fractionValue = decimalUnit * (index === 0 ? fractionIndex : fractionIndex + 1)\n const symbolValue = roundValueTo(integerValue - 1 + fractionValue, decimalUnit)\n\n return h(RatingItem, {\n key: `${integerValue}-${symbolValue}`,\n getSymbolLabel: props.getSymbolLabel,\n emptyIcon: props.emptySymbol,\n fullIcon: props.fullSymbol,\n full: props.highlightSelectedOnly\n ? symbolValue === finalValue\n : symbolValue <= finalValue,\n active: symbolValue === finalValue,\n checked: symbolValue === stableValueRounded,\n readOnly: props.readOnly,\n fractionValue,\n value: symbolValue,\n name: name.value,\n id: `${id.value}-${index}-${fractionIndex}`,\n onItemBlur: () => {\n if (isOutside.value) {\n hovered.value = -1\n }\n },\n onInputChange: (value: number) => {\n if (!props.readOnly) {\n hovered.value = value\n }\n },\n onChangeValue: (value: number) => {\n if (!props.readOnly) {\n setCurrentValue(props.allowClear && value === stableValueRounded ? 0 : value)\n }\n },\n })\n }),\n )\n })\n\n return h(\n Box,\n {\n ...attrs,\n id: id.value,\n ref: (node: any) => {\n rootRef.value = node?.$el ?? node ?? null\n },\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n onMouseenter: () => {\n if (!props.readOnly) {\n isOutside.value = false\n }\n },\n onMousemove: (event: MouseEvent) => {\n if (props.readOnly) {\n return\n }\n\n const rounded = getRatingFromCoordinates(event.clientX, count, decimalUnit)\n if (rounded !== hovered.value) {\n hovered.value = rounded\n props.onHover?.(rounded)\n }\n },\n onMouseleave: () => {\n if (!props.readOnly) {\n const previous = hovered.value\n hovered.value = -1\n isOutside.value = true\n if (previous !== -1) {\n props.onHover?.(-1)\n }\n }\n },\n onTouchstart: (event: TouchEvent) => {\n if (!props.readOnly && event.touches.length === 1) {\n setCurrentValue(\n getRatingFromCoordinates(event.touches[0].clientX, count, decimalUnit),\n )\n }\n },\n onTouchend: (event: TouchEvent) => event.preventDefault(),\n },\n () => items,\n )\n }\n },\n }),\n)\n\nObject.assign(Rating, { classes, varsResolver })\n","import { nextTick, onBeforeUnmount, onMounted, ref, watch, type Ref } from 'vue'\n\nfunction toNumber(value: string) {\n return Number.parseInt(value, 10) || 0\n}\n\nexport interface UseFloatingIndicatorInput {\n target: Ref<HTMLElement | null | undefined>\n parent: Ref<HTMLElement | null | undefined>\n floatingRef: Ref<HTMLElement | null>\n displayAfterTransitionEnd?: boolean\n onTransitionStart?: () => void\n onTransitionEnd?: () => void\n}\n\nexport function useFloatingIndicator({\n target,\n parent,\n floatingRef,\n displayAfterTransitionEnd,\n onTransitionStart,\n onTransitionEnd,\n}: UseFloatingIndicatorInput) {\n const initialized = ref(false)\n const hidden = ref(\n typeof displayAfterTransitionEnd === 'boolean' ? displayAfterTransitionEnd : false,\n )\n let targetResizeObserver: ResizeObserver | undefined\n let parentResizeObserver: ResizeObserver | undefined\n let transitionTimeout: ReturnType<typeof setTimeout> | undefined\n let previousTarget: HTMLElement | null | undefined = target.value\n\n const updatePosition = () => {\n const targetElement = target.value\n const parentElement = parent.value\n const floatingElement = floatingRef.value\n\n if (!targetElement || !parentElement || !floatingElement || typeof window === 'undefined') {\n return\n }\n\n const targetRect = targetElement.getBoundingClientRect()\n const parentRect = parentElement.getBoundingClientRect()\n const targetStyle = window.getComputedStyle(targetElement)\n const parentStyle = window.getComputedStyle(parentElement)\n const borderTopWidth =\n toNumber(targetStyle.borderTopWidth) + toNumber(parentStyle.borderTopWidth)\n const borderLeftWidth =\n toNumber(targetStyle.borderLeftWidth) + toNumber(parentStyle.borderLeftWidth)\n\n floatingElement.style.transform = `translateY(${targetRect.top - parentRect.top - borderTopWidth}px) translateX(${targetRect.left - parentRect.left - borderLeftWidth}px)`\n floatingElement.style.width = `${targetRect.width}px`\n floatingElement.style.height = `${targetRect.height}px`\n }\n\n const updatePositionWithoutAnimation = () => {\n if (transitionTimeout) {\n clearTimeout(transitionTimeout)\n }\n\n if (floatingRef.value) {\n floatingRef.value.style.transitionDuration = '0ms'\n }\n\n updatePosition()\n transitionTimeout = setTimeout(() => {\n if (floatingRef.value) {\n floatingRef.value.style.transitionDuration = ''\n }\n }, 30)\n }\n\n const cleanupObservers = () => {\n targetResizeObserver?.disconnect()\n parentResizeObserver?.disconnect()\n targetResizeObserver = undefined\n parentResizeObserver = undefined\n }\n\n const observe = () => {\n cleanupObservers()\n\n if (typeof ResizeObserver === 'undefined') {\n return\n }\n\n if (target.value) {\n targetResizeObserver = new ResizeObserver(updatePositionWithoutAnimation)\n targetResizeObserver.observe(target.value)\n }\n\n if (parent.value) {\n parentResizeObserver = new ResizeObserver(updatePositionWithoutAnimation)\n parentResizeObserver.observe(parent.value)\n }\n }\n\n watch(\n [target, parent],\n () => {\n if (initialized.value && previousTarget !== target.value) {\n onTransitionStart?.()\n }\n\n previousTarget = target.value\n nextTick(() => {\n updatePosition()\n observe()\n })\n },\n { immediate: true },\n )\n\n onMounted(() => {\n setTimeout(() => {\n initialized.value = true\n }, 20)\n\n const parentElement = parent.value\n const handleTransitionEnd = () => {\n updatePositionWithoutAnimation()\n hidden.value = false\n }\n const handleIndicatorTransitionEnd = (event: TransitionEvent) => {\n if (event.propertyName === 'transform') {\n onTransitionEnd?.()\n }\n }\n\n parentElement?.addEventListener('transitionend', handleTransitionEnd)\n floatingRef.value?.addEventListener('transitionend', handleIndicatorTransitionEnd)\n\n onBeforeUnmount(() => {\n parentElement?.removeEventListener('transitionend', handleTransitionEnd)\n floatingRef.value?.removeEventListener('transitionend', handleIndicatorTransitionEnd)\n })\n })\n\n onBeforeUnmount(() => {\n cleanupObservers()\n if (transitionTimeout) {\n clearTimeout(transitionTimeout)\n }\n })\n\n return { initialized, hidden, updatePosition }\n}\n",".root {\n --transition-duration: 150ms;\n\n top: 0;\n left: 0;\n position: absolute;\n z-index: 0;\n transition-property: transform, width, height;\n transition-timing-function: ease;\n transition-duration: 0ms;\n\n &:where([data-initialized]) {\n transition-duration: var(--transition-duration);\n }\n\n &:where([data-hidden]) {\n display: none;\n }\n}\n","import { computed, defineComponent, h, ref, toRef, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, useStyles } from '../../core'\nimport { useFloatingIndicator } from './use-floating-indicator'\nimport classes from './FloatingIndicator.module.css'\n\nexport type FloatingIndicatorStylesNames = 'root'\n\nconst varsResolver = createVarsResolver<any>((_, { transitionDuration }) => ({\n root: {\n '--transition-duration':\n typeof transitionDuration === 'number'\n ? `${transitionDuration}ms`\n : transitionDuration || '150ms',\n },\n}))\n\nexport const FloatingIndicator = withBoxProps(\n defineComponent({\n name: 'FloatingIndicator',\n inheritAttrs: false,\n props: {\n target: { type: Object as PropType<HTMLElement | null | undefined>, default: undefined },\n parent: { type: Object as PropType<HTMLElement | null | undefined>, default: undefined },\n transitionDuration: {\n type: [Number, String] as PropType<number | string>,\n default: undefined,\n },\n displayAfterTransitionEnd: { type: Boolean, default: false },\n onTransitionStart: { type: Function as PropType<() => void>, default: undefined },\n onTransitionEnd: { type: Function as PropType<() => void>, default: undefined },\n component: { type: String, default: 'div' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const floatingRef = ref<HTMLElement | null>(null)\n const target = toRef(props, 'target')\n const parent = toRef(props, 'parent')\n const getStyles = useStyles({\n name: 'FloatingIndicator',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n const state = useFloatingIndicator({\n target,\n parent,\n floatingRef,\n displayAfterTransitionEnd: props.displayAfterTransitionEnd,\n onTransitionStart: props.onTransitionStart,\n onTransitionEnd: props.onTransitionEnd,\n })\n const shouldRender = computed(() => Boolean(props.target && props.parent))\n\n return () =>\n shouldRender.value\n ? h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: props.component,\n ref: (node: any) => {\n floatingRef.value = node?.$el ?? node ?? null\n },\n mod: [\n { initialized: state.initialized.value, hidden: state.hidden.value },\n props.mod,\n ],\n },\n () => slots.default?.(),\n )\n : null\n },\n }),\n)\n\nObject.assign(FloatingIndicator, { classes, varsResolver })\n",".root {\n --sc-padding-xs: 2px 6px;\n --sc-padding-sm: 3px 10px;\n --sc-padding-md: 4px 14px;\n --sc-padding-lg: 7px 16px;\n --sc-padding-xl: 10px 20px;\n\n --sc-transition-duration: 200ms;\n --sc-padding: var(--sc-padding-sm);\n --sc-transition-timing-function: ease;\n --sc-font-size: var(--mantine-font-size-sm);\n\n position: relative;\n display: inline-flex;\n flex-direction: row;\n width: auto;\n border-radius: var(--sc-radius, var(--mantine-radius-default));\n overflow: hidden;\n padding: 4px;\n\n &:where([data-full-width]) {\n display: flex;\n }\n\n &:where([data-orientation='vertical']) {\n display: flex;\n flex-direction: column;\n width: max-content;\n\n &:where([data-full-width]) {\n width: auto;\n }\n }\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-8);\n }\n}\n\n.indicator {\n position: absolute;\n display: block;\n z-index: 1;\n border-radius: max(\n calc(var(--sc-radius, var(--mantine-radius-default)) - 4px),\n calc(var(--sc-radius, var(--mantine-radius-default)) / 4)\n );\n\n @mixin where-light {\n box-shadow: var(--sc-shadow, none);\n background-color: var(--sc-color, var(--mantine-color-white));\n }\n\n @mixin where-dark {\n box-shadow: none;\n background-color: var(--sc-color, var(--mantine-color-dark-5));\n }\n}\n\n.label {\n -webkit-tap-highlight-color: transparent;\n font-weight: var(--mantine-font-weight-medium);\n display: block;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: none;\n border-radius: calc(var(--sc-radius, var(--mantine-radius-default)) - 4px);\n font-size: var(--sc-font-size);\n padding: var(--sc-padding);\n transition: color var(--sc-transition-duration) var(--sc-transition-timing-function);\n cursor: pointer;\n\n /* outline is controlled by .input */\n outline: var(--segmented-control-outline, none);\n\n @mixin where-light {\n color: var(--mantine-color-gray-7);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-1);\n }\n\n &:where([data-read-only]) {\n cursor: default;\n }\n\n fieldset:disabled &,\n &:where([data-disabled]) {\n cursor: not-allowed;\n color: var(--mantine-color-disabled-color);\n }\n\n &:where([data-active]) {\n @mixin where-light {\n color: var(--sc-label-color, var(--mantine-color-black));\n }\n\n @mixin where-dark {\n color: var(--sc-label-color, var(--mantine-color-white));\n }\n\n &::before {\n .root:where([data-initialized]) & {\n display: none;\n }\n content: '';\n inset: 0;\n z-index: 0;\n position: absolute;\n border-radius: calc(var(--sc-radius, var(--mantine-radius-default)) - 4px);\n\n @mixin where-light {\n box-shadow: var(--sc-shadow, none);\n background-color: var(--sc-color, var(--mantine-color-white));\n }\n\n @mixin where-dark {\n box-shadow: none;\n background-color: var(--sc-color, var(--mantine-color-dark-5));\n }\n }\n }\n\n &:where(:not([data-disabled], [data-active], [data-read-only])) {\n @mixin hover {\n @mixin where-light {\n color: var(--mantine-color-black);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-white);\n }\n }\n }\n\n fieldset:disabled & {\n @mixin hover {\n color: var(--mantine-color-disabled-color) !important;\n }\n }\n}\n\n.input {\n height: 0;\n width: 0;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n opacity: 0;\n\n &[data-focus-ring='auto'] {\n &:focus:focus-visible {\n & + .label {\n --segmented-control-outline: 2px solid var(--mantine-primary-color-filled);\n }\n }\n }\n\n &[data-focus-ring='always'] {\n &:focus {\n & + .label {\n --segmented-control-outline: 2px solid var(--mantine-primary-color-filled);\n }\n }\n }\n}\n\n.control {\n position: relative;\n flex: 1;\n z-index: 2;\n transition: border-color var(--sc-transition-duration) var(--sc-transition-timing-function);\n\n .root[data-with-items-borders] :where(&)::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n inset-inline-start: 0;\n background-color: var(--separator-color);\n width: 1px;\n transition: background-color var(--sc-transition-duration) var(--sc-transition-timing-function);\n }\n\n &[data-orientation='vertical'] {\n &::before {\n top: 0;\n inset-inline: 0;\n bottom: auto;\n height: 1px;\n width: auto;\n }\n }\n\n @mixin where-light {\n --separator-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --separator-color: var(--mantine-color-dark-4);\n }\n\n &:first-of-type {\n &::before {\n --separator-color: transparent;\n }\n }\n\n &[data-active] {\n [data-mantine-color-scheme] & {\n &,\n & + .control {\n &::before {\n --separator-color: transparent;\n }\n }\n }\n }\n}\n\n.innerLabel {\n position: relative;\n z-index: 2;\n}\n","import { computed, defineComponent, h, onMounted, reactive, ref, type PropType } from 'vue'\nimport { useId, useMounted, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getContrastColor,\n getFontSize,\n getRadius,\n getSize,\n getThemeColor,\n useMantineTheme,\n useStyles,\n} from '../../core'\nimport { isPrimitive } from '@mantine-vue/utils'\nimport { FloatingIndicator } from '../FloatingIndicator'\nimport classes from './SegmentedControl.module.css'\n\nexport type SegmentedControlStylesNames =\n | 'root'\n | 'input'\n | 'label'\n | 'control'\n | 'indicator'\n | 'innerLabel'\n\nexport interface SegmentedControlItem<Value = string> {\n value: Value\n label: any\n disabled?: boolean\n}\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, transitionDuration, size, transitionTimingFunction, autoContrast }) => ({\n root: {\n '--sc-radius': radius === undefined ? undefined : getRadius(radius),\n '--sc-color': color ? getThemeColor(color, theme) : undefined,\n '--sc-label-color': color ? getContrastColor({ color, theme, autoContrast }) : undefined,\n '--sc-shadow': color ? undefined : 'var(--mantine-shadow-xs)',\n '--sc-transition-duration':\n transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n '--sc-transition-timing-function': transitionTimingFunction,\n '--sc-padding': getSize(size, 'sc-padding'),\n '--sc-font-size': getFontSize(size),\n },\n }),\n)\n\nfunction normalizeData(data: Array<any>) {\n return data.map((item) => (isPrimitive(item) ? { label: String(item), value: item } : item))\n}\n\nexport const SegmentedControl = defineComponent({\n name: 'SegmentedControl',\n inheritAttrs: false,\n props: {\n data: {\n type: Array as PropType<Array<string | number | SegmentedControlItem<string | number>>>,\n required: true,\n },\n value: { type: [String, Number, Boolean] as PropType<any>, default: undefined },\n defaultValue: { type: [String, Number, Boolean] as PropType<any>, default: undefined },\n onChange: { type: Function as PropType<(value: any) => void>, default: undefined },\n disabled: { type: Boolean, default: false },\n name: { type: String, default: undefined },\n fullWidth: { type: Boolean, default: false },\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n transitionTimingFunction: { type: String, default: undefined },\n orientation: { type: String as PropType<'vertical' | 'horizontal'>, default: 'horizontal' },\n readOnly: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n withItemsBorders: { type: Boolean, default: true },\n variant: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const theme = useMantineTheme()\n const uuid = useId(props.name)\n const mounted = useMounted()\n const parent = ref<HTMLElement | null>(null)\n const itemRefs = reactive<Record<string, HTMLElement | null>>({})\n const normalizedData = computed(() => normalizeData(props.data))\n const [value, setValue] = useUncontrolled<any>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue:\n normalizedData.value.find((item) => !item.disabled)?.value ??\n normalizedData.value[0]?.value,\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n const getStyles = useStyles({\n name: 'SegmentedControl',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n onMounted(() => {\n if (!uuid.value) {\n uuid.value = `mantine-segmented-control-${Math.random().toString(36).slice(2)}`\n }\n })\n\n return () => {\n if (normalizedData.value.length === 0) {\n return null\n }\n\n const activeValue = `${value.value}`\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: 'div',\n variant: props.variant,\n ref: (node: any) => {\n parent.value = node?.$el ?? node ?? null\n },\n role: 'radiogroup',\n 'data-disabled': props.disabled || undefined,\n mod: [\n {\n 'full-width': props.fullWidth,\n orientation: props.orientation,\n initialized: mounted.value,\n 'with-items-borders': props.withItemsBorders,\n },\n props.mod,\n ],\n },\n () => [\n value.value !== undefined\n ? h(FloatingIndicator, {\n target: itemRefs[activeValue],\n parent: parent.value,\n component: 'span',\n transitionDuration: 'var(--sc-transition-duration)',\n ...getStyles('indicator'),\n })\n : null,\n ...normalizedData.value.map((item) => {\n const itemValue = `${item.value}`\n const id = `${uuid.value || props.name || 'segmented'}-${itemValue}`\n const itemDisabled = props.disabled || item.disabled\n const active = value.value === item.value\n\n return h(\n Box,\n {\n key: itemValue,\n ...getStyles('control'),\n component: 'div',\n mod: { active, orientation: props.orientation },\n },\n () => [\n h('input', {\n ...getStyles('input'),\n disabled: itemDisabled,\n type: 'radio',\n name: uuid.value || props.name,\n value: itemValue,\n id,\n checked: active,\n 'data-focus-ring': theme.value.focusRing,\n onClick: (event: MouseEvent) => {\n if (props.readOnly) {\n event.preventDefault()\n }\n },\n onChange: (event: Event) => {\n if (props.readOnly) {\n ;(event.currentTarget as HTMLInputElement).checked = active\n } else {\n setValue(item.value)\n }\n },\n }),\n h(\n Box,\n {\n component: 'label',\n htmlFor: id,\n ...getStyles('label'),\n ref: (node: any) => {\n itemRefs[itemValue] = node?.$el ?? node ?? null\n },\n mod: {\n active: active && !itemDisabled,\n disabled: itemDisabled,\n 'read-only': props.readOnly,\n },\n },\n () => h('span', getStyles('innerLabel'), item.label),\n ),\n ],\n )\n }),\n ],\n )\n }\n },\n})\n\nObject.assign(SegmentedControl, { classes, varsResolver })\n","import { defineComponent, h } from 'vue'\n\nfunction createPaginationIcon(name: string, path: string) {\n return defineComponent({\n name,\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n viewBox: '0 0 16 16',\n xmlns: 'http://www.w3.org/2000/svg',\n 'aria-hidden': true,\n focusable: false,\n ...attrs,\n style: [\n {\n width: 'calc(var(--pagination-control-size) / 1.8)',\n height: 'calc(var(--pagination-control-size) / 1.8)',\n },\n attrs.style as any,\n ],\n },\n h('path', { d: path, fill: 'currentColor', fillRule: 'evenodd', clipRule: 'evenodd' }),\n )\n },\n })\n}\n\nexport const PaginationNextIcon = createPaginationIcon(\n 'PaginationNextIcon',\n 'M5.293 2.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L9.586 8 5.293 3.707a1 1 0 0 1 0-1.414Z',\n)\n\nexport const PaginationPreviousIcon = createPaginationIcon(\n 'PaginationPreviousIcon',\n 'M10.707 2.293a1 1 0 0 1 0 1.414L6.414 8l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0Z',\n)\n\nexport const PaginationFirstIcon = createPaginationIcon(\n 'PaginationFirstIcon',\n 'M4 2a1 1 0 0 1 1 1v10a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1Zm8.707.293a1 1 0 0 1 0 1.414L8.414 8l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0Z',\n)\n\nexport const PaginationLastIcon = createPaginationIcon(\n 'PaginationLastIcon',\n 'M12 2a1 1 0 0 0-1 1v10a1 1 0 1 0 2 0V3a1 1 0 0 0-1-1ZM3.293 2.293a1 1 0 0 0 0 1.414L7.586 8l-4.293 4.293a1 1 0 1 0 1.414 1.414l5-5a1 1 0 0 0 0-1.414l-5-5a1 1 0 0 0-1.414 0Z',\n)\n\nexport const PaginationDotsIcon = createPaginationIcon(\n 'PaginationDotsIcon',\n 'M2 8a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm4.5 0a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm4.5 0a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Z',\n)\n","import { createSafeContext } from '../../core'\n\nexport interface PaginationContextValue {\n total: number\n range: Array<number | 'dots'>\n active: number\n disabled?: boolean\n getItemProps?: (page: number) => Record<string, any>\n getStyles: (selector: string, options?: { className?: any; style?: any; props?: any }) => any\n onChange: (page: number) => void\n onNext: () => void\n onPrevious: () => void\n onFirst: () => void\n onLast: () => void\n}\n\nexport const [providePaginationContext, usePaginationContext] =\n createSafeContext<PaginationContextValue>('Pagination.Root component was not found in tree')\n","import { withBoxProps } from '../../../core'\nimport { defineComponent, h, type PropType } from 'vue'\nimport { UnstyledButton } from '../../UnstyledButton'\nimport { usePaginationContext } from '../Pagination.context'\n\nexport const PaginationControl = withBoxProps(\n defineComponent({\n name: 'PaginationControl',\n inheritAttrs: false,\n props: {\n active: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n withPadding: { type: Boolean, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n className: { type: null as any, default: undefined },\n class: { type: null as any, default: undefined },\n style: { type: null as any, default: undefined },\n },\n setup(rawProps, { attrs, slots }) {\n const props = rawProps\n const ctx = usePaginationContext()\n\n return () => {\n const disabled = props.disabled || ctx.disabled\n const withPadding = props.withPadding ?? true\n\n return h(\n UnstyledButton,\n {\n ...attrs,\n disabled,\n 'aria-disabled': disabled || undefined,\n 'aria-current': props.active ? 'page' : attrs['aria-current'],\n unstyled: (attrs as any).unstyled,\n __staticSelector: 'Pagination',\n ...ctx.getStyles('control', {\n className: props.className ?? props.class ?? attrs.class,\n style: props.style ?? attrs.style,\n }),\n mod: [{ active: props.active, disabled, withPadding }, props.mod],\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n PaginationFirstIcon,\n PaginationLastIcon,\n PaginationNextIcon,\n PaginationPreviousIcon,\n} from '../Pagination.icons'\nimport { usePaginationContext } from '../Pagination.context'\nimport { PaginationControl } from '../PaginationControl/PaginationControl'\nimport { withBoxProps } from '../../../core'\n\nfunction createEdge(\n name: string,\n icon: any,\n label: string,\n getDisabled: (ctx: any) => boolean,\n getAction: (ctx: any) => () => void,\n) {\n return defineComponent({\n name,\n inheritAttrs: false,\n props: {\n icon: { type: [Object, Function] as PropType<any>, default: undefined },\n disabled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const ctx = usePaginationContext()\n\n return () => {\n const Icon = props.icon ?? icon\n const disabled = props.disabled || ctx.disabled || getDisabled(ctx)\n\n return h(\n PaginationControl,\n {\n ...attrs,\n disabled,\n withPadding: false,\n 'aria-label': attrs['aria-label'] ?? label,\n onClick: disabled ? undefined : getAction(ctx),\n },\n () => h(Icon, { class: 'mantine-rotate-rtl' }),\n )\n }\n },\n })\n}\n\nexport const PaginationNext = withBoxProps(\n createEdge(\n 'PaginationNext',\n PaginationNextIcon,\n 'Next page',\n (ctx) => ctx.active >= ctx.total,\n (ctx) => ctx.onNext,\n ),\n)\n\nexport const PaginationPrevious = withBoxProps(\n createEdge(\n 'PaginationPrevious',\n PaginationPreviousIcon,\n 'Previous page',\n (ctx) => ctx.active <= 1,\n (ctx) => ctx.onPrevious,\n ),\n)\n\nexport const PaginationFirst = withBoxProps(\n createEdge(\n 'PaginationFirst',\n PaginationFirstIcon,\n 'First page',\n (ctx) => ctx.active <= 1,\n (ctx) => ctx.onFirst,\n ),\n)\n\nexport const PaginationLast = withBoxProps(\n createEdge(\n 'PaginationLast',\n PaginationLastIcon,\n 'Last page',\n (ctx) => ctx.active >= ctx.total,\n (ctx) => ctx.onLast,\n ),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { PaginationDotsIcon } from '../Pagination.icons'\nimport { usePaginationContext } from '../Pagination.context'\n\nexport const PaginationDots = withBoxProps(\n defineComponent({\n name: 'PaginationDots',\n inheritAttrs: false,\n props: {\n icon: { type: [Object, Function] as PropType<any>, default: undefined },\n },\n setup(props, { attrs }) {\n const ctx = usePaginationContext()\n\n return () => {\n const Icon = props.icon ?? PaginationDotsIcon\n\n return h(\n Box,\n {\n ...attrs,\n component: 'span',\n ...ctx.getStyles('dots', { className: attrs.class, style: attrs.style as any }),\n },\n () => h(Icon),\n )\n }\n },\n }),\n)\n","import { defineComponent, h } from 'vue'\nimport { DOTS } from '@mantine-vue/hooks'\nimport { Box } from '../../../core'\nimport { PaginationDots } from '../PaginationDots/PaginationDots'\nimport { PaginationControl } from '../PaginationControl/PaginationControl'\nimport { usePaginationContext } from '../Pagination.context'\n\nexport const PaginationItems = defineComponent({\n name: 'PaginationItems',\n setup() {\n const ctx = usePaginationContext()\n\n return () =>\n ctx.range.map((page, index) => {\n if (page === DOTS) {\n return h(PaginationDots, { key: `dots-${index}` })\n }\n\n const itemProps = ctx.getItemProps?.(page) ?? {}\n const { children, onClick, ...others } = itemProps\n\n return h(\n PaginationControl,\n {\n key: page,\n active: page === ctx.active,\n disabled: ctx.disabled,\n 'aria-label': others['aria-label'] ?? `${page}`,\n 'aria-current': page === ctx.active ? 'page' : undefined,\n ...others,\n onClick: (event: MouseEvent) => {\n onClick?.(event)\n ctx.onChange(page)\n },\n },\n () => children ?? page,\n )\n })\n },\n})\n\nexport const PaginationItemsGroup = defineComponent({\n name: 'PaginationItemsGroup',\n inheritAttrs: false,\n setup(_, { attrs }) {\n const ctx = usePaginationContext()\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('items', { className: attrs.class, style: attrs.style as any }),\n },\n () => h(PaginationItems),\n )\n },\n})\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { usePaginationContext } from '../Pagination.context'\n\nexport const PaginationLabel = withBoxProps(\n defineComponent({\n name: 'PaginationLabel',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = usePaginationContext()\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'span',\n ...ctx.getStyles('label', { className: attrs.class, style: attrs.style as any }),\n },\n () =>\n slots.default?.({ active: ctx.active, total: ctx.total }) ??\n `Page ${ctx.active} of ${ctx.total}`,\n )\n },\n }),\n)\n",".root {\n --pagination-control-size-xs: 22px;\n --pagination-control-size-sm: 26px;\n --pagination-control-size-md: 32px;\n --pagination-control-size-lg: 38px;\n --pagination-control-size-xl: 44px;\n\n --pagination-control-size-input-xs: 30px;\n --pagination-control-size-input-sm: 36px;\n --pagination-control-size-input-md: 42px;\n --pagination-control-size-input-lg: 50px;\n --pagination-control-size-input-xl: 60px;\n\n --pagination-control-size: var(--pagination-control-size-md);\n --pagination-control-fz: var(--mantine-font-size-md);\n --pagination-active-bg: var(--mantine-primary-color-filled);\n\n &:where([data-layout='responsive']) {\n container-type: inline-size;\n }\n}\n\n.control {\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid;\n cursor: pointer;\n color: var(--mantine-color-text);\n height: var(--pagination-control-size);\n min-width: var(--pagination-control-size);\n font-size: var(--pagination-control-fz);\n line-height: 1;\n border-radius: var(--pagination-control-radius, var(--mantine-radius-default));\n\n &:where([data-with-padding]) {\n padding: calc(var(--pagination-control-size) / 4);\n }\n\n &:where(:disabled, [data-disabled]) {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-4);\n background-color: var(--mantine-color-white);\n\n @mixin hover {\n &:where(:not(:disabled, [data-disabled])) {\n background-color: var(--mantine-color-gray-0);\n }\n }\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n background-color: var(--mantine-color-dark-6);\n\n @mixin hover {\n &:where(:not(:disabled, [data-disabled])) {\n background-color: var(--mantine-color-dark-5);\n }\n }\n }\n\n &:where([data-active]) {\n background-color: var(--pagination-active-bg);\n border-color: var(--pagination-active-bg);\n color: var(--pagination-active-color, var(--mantine-color-white));\n\n @mixin hover {\n background-color: var(--pagination-active-bg);\n }\n }\n}\n\n.dots {\n height: var(--pagination-control-size);\n min-width: var(--pagination-control-size);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n}\n\n.items {\n display: flex;\n gap: inherit;\n align-items: center;\n\n @container (width <= 400px) {\n display: none;\n }\n}\n\n.label {\n display: none;\n align-items: center;\n justify-content: center;\n height: var(--pagination-control-size);\n font-size: var(--pagination-control-fz);\n white-space: nowrap;\n\n @container (width <= 400px) {\n display: flex;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { usePagination } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getFontSize,\n getRadius,\n getSize,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../../core'\nimport { providePaginationContext } from '../Pagination.context'\nimport classes from '../Pagination.module.css'\n\nexport type PaginationRootStylesNames = 'root' | 'control' | 'dots' | 'items' | 'label'\nexport type PaginationLayout = 'default' | 'responsive'\n\nconst defaultProps = {\n siblings: 1,\n boundaries: 1,\n size: 'md',\n color: 'var(--mantine-primary-color-filled)',\n layout: 'default',\n} as const\n\nconst varsResolver = createVarsResolver<any>((theme, { size, radius, color, autoContrast }) => ({\n root: {\n '--pagination-control-radius': radius === undefined ? undefined : getRadius(radius),\n '--pagination-control-size': getSize(size, 'pagination-control-size'),\n '--pagination-control-fz': getFontSize(size),\n '--pagination-active-bg': color ? getThemeColor(color, theme) : undefined,\n '--pagination-active-color': getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n },\n}))\n\nexport const PaginationRoot = defineComponent({\n name: 'PaginationRoot',\n inheritAttrs: false,\n props: {\n total: { type: Number, required: true },\n value: { type: Number, default: undefined },\n defaultValue: { type: Number, default: undefined },\n onChange: { type: Function as PropType<(page: number) => void>, default: undefined },\n siblings: { type: Number, default: undefined },\n boundaries: { type: Number, default: undefined },\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n getItemProps: {\n type: Function as PropType<(page: number) => Record<string, any>>,\n default: undefined,\n },\n layout: { type: String as PropType<PaginationLayout>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('PaginationRoot', defaultProps, rawProps)\n const pagination = usePagination({\n total: props.total,\n page: () => props.value,\n initialPage: props.defaultValue,\n siblings: props.siblings,\n boundaries: props.boundaries,\n onChange: props.onChange,\n })\n const getStyles = useStyles({\n name: 'Pagination',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n providePaginationContext({\n total: props.total,\n disabled: props.disabled,\n getItemProps: props.getItemProps,\n getStyles,\n get range() {\n return pagination.range.value\n },\n get active() {\n return pagination.active.value\n },\n onChange: pagination.setPage,\n onNext: pagination.next,\n onPrevious: pagination.previous,\n onFirst: pagination.first,\n onLast: pagination.last,\n } as any)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n mod: [{ disabled: props.disabled }, props.mod],\n 'data-layout': props.layout,\n },\n () => slots.default?.(),\n )\n },\n})\n\nObject.assign(PaginationRoot, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useProps } from '../../core'\nimport { Group } from '../Group'\nimport {\n PaginationFirst,\n PaginationLast,\n PaginationNext,\n PaginationPrevious,\n} from './PaginationEdges/PaginationEdges'\nimport { PaginationItems, PaginationItemsGroup } from './PaginationItems/PaginationItems'\nimport { PaginationLabel } from './PaginationLabel/PaginationLabel'\nimport { PaginationRoot, type PaginationLayout } from './PaginationRoot/PaginationRoot'\nimport { PaginationControl } from './PaginationControl/PaginationControl'\nimport { PaginationDots } from './PaginationDots/PaginationDots'\nimport classes from './Pagination.module.css'\n\nexport type PaginationStylesNames = 'root' | 'control' | 'dots' | 'items' | 'label'\n\nconst defaultProps = {\n withControls: true,\n withPages: true,\n siblings: 1,\n boundaries: 1,\n gap: 8,\n} as const\n\nconst PaginationBase = defineComponent({\n name: 'Pagination',\n inheritAttrs: false,\n props: {\n total: { type: Number, required: true },\n value: { type: Number, default: undefined },\n defaultValue: { type: Number, default: undefined },\n onChange: { type: Function as PropType<(page: number) => void>, default: undefined },\n siblings: { type: Number, default: undefined },\n boundaries: { type: Number, default: undefined },\n withControls: { type: Boolean, default: undefined },\n withEdges: { type: Boolean, default: false },\n withPages: { type: Boolean, default: undefined },\n hideWithOnePage: { type: Boolean, default: false },\n gap: { type: [String, Number] as PropType<string | number>, default: undefined },\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: false },\n autoContrast: { type: Boolean, default: undefined },\n getItemProps: {\n type: Function as PropType<(page: number) => Record<string, any>>,\n default: undefined,\n },\n layout: { type: String as PropType<PaginationLayout>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('Pagination', defaultProps, rawProps)\n\n return () => {\n if (props.total <= 0 || (props.hideWithOnePage && props.total === 1)) {\n return null\n }\n\n const pages =\n props.withPages && props.layout === 'responsive'\n ? [h(PaginationItemsGroup), h(PaginationLabel)]\n : props.withPages\n ? h(PaginationItems)\n : null\n\n return h(\n PaginationRoot,\n {\n ...attrs,\n total: props.total,\n value: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onChange,\n siblings: props.siblings,\n boundaries: props.boundaries,\n color: props.color,\n radius: props.radius,\n size: props.size,\n disabled: props.disabled,\n autoContrast: props.autoContrast,\n getItemProps: props.getItemProps,\n layout: props.layout,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n },\n () =>\n h(Group, { gap: props.gap, wrap: 'nowrap' }, () => [\n props.withEdges ? h(PaginationFirst) : null,\n props.withControls ? h(PaginationPrevious) : null,\n pages,\n props.withControls ? h(PaginationNext) : null,\n props.withEdges ? h(PaginationLast) : null,\n ]),\n )\n }\n },\n})\n\nexport const Pagination = Object.assign(PaginationBase, {\n classes,\n Root: PaginationRoot,\n Control: PaginationControl,\n Dots: PaginationDots,\n First: PaginationFirst,\n Last: PaginationLast,\n Next: PaginationNext,\n Previous: PaginationPrevious,\n Items: PaginationItems,\n Label: PaginationLabel,\n})\n","import { createSafeContext } from '../../core'\n\nexport interface TabsContextValue {\n id: string\n value: string | null\n orientation?: 'horizontal' | 'vertical'\n loop?: boolean\n activateTabWithKeyboard?: boolean\n allowTabDeactivation?: boolean\n onChange: (value: string | null) => void\n getTabId: (value: string) => string\n getPanelId: (value: string) => string\n variant?: string\n color?: string\n radius?: string | number\n inverted?: boolean\n keepMounted?: boolean\n keepMountedMode?: 'activity' | 'display-none'\n placement?: 'right' | 'left'\n unstyled?: boolean\n getStyles: (\n selector: string,\n options?: {\n className?: any\n style?: any\n classNames?: any\n styles?: any\n props?: any\n variant?: string\n },\n ) => any\n}\n\nexport const [provideTabsContext, useTabsContext] = createSafeContext<TabsContextValue>(\n 'Tabs component was not found in the tree',\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useTabsContext } from '../Tabs.context'\n\nexport type TabsListStylesNames = 'list'\n\nexport const TabsList = withBoxProps(\n defineComponent({\n name: 'TabsList',\n inheritAttrs: false,\n props: {\n grow: { type: Boolean, default: false },\n justify: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const ctx = useTabsContext()\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('list', {\n className: attrs.class,\n classNames: props.classNames,\n styles: props.styles,\n style: {\n '--tabs-justify': props.justify,\n ...(attrs.style as Record<string, any>),\n },\n props,\n variant: ctx.variant,\n }),\n role: 'tablist',\n variant: ctx.variant,\n mod: [\n {\n grow: props.grow,\n orientation: ctx.orientation,\n placement: ctx.orientation === 'vertical' && ctx.placement,\n inverted: ctx.inverted,\n },\n props.mod,\n ],\n 'aria-orientation': ctx.orientation,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useTabsContext } from '../Tabs.context'\n\nexport type TabsPanelStylesNames = 'panel'\n\nexport const TabsPanel = withBoxProps(\n defineComponent({\n name: 'TabsPanel',\n inheritAttrs: false,\n props: {\n value: { type: String, required: true },\n keepMounted: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const ctx = useTabsContext()\n\n return () => {\n const active = ctx.value === props.value\n const shouldKeepMounted = ctx.keepMounted || props.keepMounted\n const content = shouldKeepMounted || active ? slots.default?.() : null\n\n return h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('panel', {\n className: attrs.class,\n classNames: props.classNames,\n styles: props.styles,\n style: {\n ...(attrs.style as Record<string, any>),\n display: !active ? 'none' : undefined,\n },\n props,\n }),\n mod: [{ orientation: ctx.orientation }, props.mod],\n role: 'tabpanel',\n id: ctx.getPanelId(props.value),\n 'aria-labelledby': ctx.getTabId(props.value),\n },\n () => content,\n )\n }\n },\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box, getThemeColor, useDirection, useMantineTheme } from '../../../core'\nimport { UnstyledButton } from '../../UnstyledButton'\nimport { useTabsContext } from '../Tabs.context'\n\nexport type TabsTabStylesNames = 'tab' | 'tabSection' | 'tabLabel'\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nfunction getTabs(event: KeyboardEvent, selector: string) {\n const target = event.currentTarget as HTMLElement\n const parent = target.closest('[role=\"tablist\"]')\n return Array.from(parent?.querySelectorAll<HTMLElement>(selector) ?? []).filter(\n (item) => !item.hasAttribute('disabled') && item.getAttribute('aria-disabled') !== 'true',\n )\n}\n\nfunction createTabsKeydownHandler({\n orientation,\n dir,\n loop,\n activateOnFocus,\n onKeydown,\n}: {\n orientation: 'horizontal' | 'vertical'\n dir: 'ltr' | 'rtl'\n loop?: boolean\n activateOnFocus?: boolean\n onKeydown?: (event: KeyboardEvent) => void\n}) {\n return (event: KeyboardEvent) => {\n onKeydown?.(event)\n\n if (event.defaultPrevented) {\n return\n }\n\n const horizontal = orientation === 'horizontal'\n const previousKey = horizontal ? (dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft') : 'ArrowUp'\n const nextKey = horizontal ? (dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight') : 'ArrowDown'\n const keyActions: Record<string, 'previous' | 'next' | 'first' | 'last'> = {\n [previousKey]: 'previous',\n [nextKey]: 'next',\n Home: 'first',\n End: 'last',\n }\n const action = keyActions[event.key]\n\n if (!action) {\n return\n }\n\n const tabs = getTabs(event, '[role=\"tab\"]')\n const currentIndex = tabs.indexOf(event.currentTarget as HTMLElement)\n\n if (currentIndex === -1) {\n return\n }\n\n const lastIndex = tabs.length - 1\n const nextIndex =\n action === 'first'\n ? 0\n : action === 'last'\n ? lastIndex\n : action === 'next'\n ? currentIndex === lastIndex\n ? loop\n ? 0\n : currentIndex\n : currentIndex + 1\n : currentIndex === 0\n ? loop\n ? lastIndex\n : currentIndex\n : currentIndex - 1\n\n if (nextIndex === currentIndex) {\n return\n }\n\n event.preventDefault()\n tabs[nextIndex]?.focus()\n\n if (activateOnFocus) {\n tabs[nextIndex]?.click()\n }\n }\n}\n\nexport const TabsTab = defineComponent({\n name: 'TabsTab',\n inheritAttrs: false,\n props: {\n value: { type: String, required: true },\n rightSection: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n leftSection: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n color: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onClick: { type: Function as PropType<(event: MouseEvent) => void>, default: undefined },\n onKeydown: { type: Function as PropType<(event: KeyboardEvent) => void>, default: undefined },\n onKeyDown: { type: Function as PropType<(event: KeyboardEvent) => void>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const theme = useMantineTheme()\n const { dir } = useDirection()\n const ctx = useTabsContext()\n\n return () => {\n const active = props.value === ctx.value\n const stylesApiProps = { classNames: props.classNames, styles: props.styles, props }\n const activateTab = (event: MouseEvent) => {\n ctx.onChange(\n ctx.allowTabDeactivation ? (props.value === ctx.value ? null : props.value) : props.value,\n )\n props.onClick?.(event)\n }\n\n return h(\n UnstyledButton,\n {\n ...attrs,\n ...ctx.getStyles('tab', {\n className: attrs.class,\n variant: ctx.variant,\n style: {\n '--tabs-color': props.color ? getThemeColor(props.color, theme.value) : undefined,\n ...(attrs.style as Record<string, any>),\n },\n ...stylesApiProps,\n }),\n disabled: props.disabled,\n unstyled: ctx.unstyled,\n variant: ctx.variant,\n mod: [\n {\n active,\n disabled: props.disabled,\n orientation: ctx.orientation,\n inverted: ctx.inverted,\n placement: ctx.orientation === 'vertical' && ctx.placement,\n },\n props.mod,\n ],\n role: 'tab',\n id: ctx.getTabId(props.value),\n 'aria-selected': active,\n tabIndex:\n props.tabIndex !== undefined ? props.tabIndex : active || ctx.value === null ? 0 : -1,\n 'aria-controls': ctx.getPanelId(props.value),\n onClick: activateTab,\n onKeydown: createTabsKeydownHandler({\n orientation: ctx.orientation || 'horizontal',\n dir: dir.value,\n activateOnFocus: ctx.activateTabWithKeyboard,\n loop: ctx.loop,\n onKeydown: props.onKeydown ?? props.onKeyDown,\n }),\n },\n () => [\n props.leftSection\n ? h(\n Box,\n {\n component: 'span',\n ...ctx.getStyles('tabSection', stylesApiProps),\n 'data-position': 'left',\n },\n () => renderContent(props.leftSection),\n )\n : null,\n slots.default\n ? h(Box, { component: 'span', ...ctx.getStyles('tabLabel', stylesApiProps) }, () =>\n slots.default?.(),\n )\n : null,\n props.rightSection\n ? h(\n Box,\n {\n component: 'span',\n ...ctx.getStyles('tabSection', stylesApiProps),\n 'data-position': 'right',\n },\n () => renderContent(props.rightSection),\n )\n : null,\n ],\n )\n }\n },\n})\n",".root {\n @mixin light {\n --tab-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin dark {\n --tab-border-color: var(--mantine-color-dark-4);\n }\n\n display: var(--tabs-display);\n flex-direction: var(--tabs-flex-direction);\n\n --tabs-list-direction: row;\n --tabs-panel-grow: unset;\n --tabs-display: block;\n --tabs-flex-direction: row;\n --tabs-list-border-width: 0;\n --tabs-list-border-size: 0 0 var(--tabs-list-border-width) 0;\n --tabs-list-gap: unset;\n\n --tabs-list-line-bottom: 0;\n --tabs-list-line-top: unset;\n --tabs-list-line-start: 0;\n --tabs-list-line-end: 0;\n\n --tab-radius: var(--tabs-radius) var(--tabs-radius) 0 0;\n --tab-border-width: 0 0 var(--tabs-list-border-width) 0;\n\n &[data-inverted] {\n --tabs-list-line-bottom: unset;\n --tabs-list-line-top: 0;\n --tab-radius: 0 0 var(--tabs-radius) var(--tabs-radius);\n --tab-border-width: var(--tabs-list-border-width) 0 0 0;\n\n & .list--default::before {\n top: 0;\n bottom: unset;\n }\n }\n\n &[data-orientation='vertical'] {\n --tabs-list-line-start: unset;\n --tabs-list-line-end: 0;\n --tabs-list-line-top: 0;\n --tabs-list-line-bottom: 0;\n --tabs-list-border-size: 0 var(--tabs-list-border-width) 0 0;\n --tab-border-width: 0 var(--tabs-list-border-width) 0 0;\n --tab-radius: var(--tabs-radius) 0 0 var(--tabs-radius);\n --tabs-list-direction: column;\n --tabs-panel-grow: 1;\n --tabs-display: flex;\n\n @mixin rtl {\n --tabs-list-border-size: 0 0 0 var(--tabs-list-border-width);\n --tab-border-width: 0 0 0 var(--tabs-list-border-width);\n --tab-radius: 0 var(--tabs-radius) var(--tabs-radius) 0;\n }\n\n &[data-placement='right'] {\n --tabs-flex-direction: row-reverse;\n --tabs-list-line-start: 0;\n --tabs-list-line-end: unset;\n --tabs-list-border-size: 0 0 0 var(--tabs-list-border-width);\n --tab-border-width: 0 0 0 var(--tabs-list-border-width);\n --tab-radius: 0 var(--tabs-radius) var(--tabs-radius) 0;\n\n @mixin rtl {\n --tabs-list-border-size: 0 var(--tabs-list-border-width) 0 0;\n --tab-border-width: 0 var(--tabs-list-border-width) 0 0;\n --tab-radius: var(--tabs-radius) 0 0 var(--tabs-radius);\n }\n }\n }\n\n &[data-variant='default'] {\n --tabs-list-border-width: 2px;\n\n @mixin light {\n --tab-hover-color: var(--mantine-color-gray-0);\n }\n\n @mixin dark {\n --tab-hover-color: var(--mantine-color-dark-6);\n }\n }\n\n &[data-variant='outline'] {\n --tabs-list-border-width: 1px;\n }\n\n &[data-variant='pills'] {\n --tabs-list-gap: calc(var(--mantine-spacing-sm) / 2);\n\n @mixin light {\n --tab-hover-color: var(--mantine-color-gray-0);\n }\n\n @mixin dark {\n --tab-hover-color: var(--mantine-color-dark-6);\n }\n }\n}\n\n.list {\n display: flex;\n flex-wrap: wrap;\n justify-content: var(--tabs-justify, flex-start);\n flex-direction: var(--tabs-list-direction);\n gap: var(--tabs-list-gap);\n\n &:where([data-grow]) .tab {\n flex: 1;\n }\n}\n\n.panel {\n flex-grow: var(--tabs-panel-grow);\n}\n\n.tab {\n position: relative;\n padding: var(--mantine-spacing-xs) var(--mantine-spacing-md);\n font-size: var(--mantine-font-size-sm);\n white-space: nowrap;\n z-index: 0;\n display: flex;\n align-items: center;\n line-height: 1;\n user-select: none;\n\n &:where(:disabled, [data-disabled]) {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:focus {\n z-index: 1;\n }\n}\n\n.tabSection {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:where([data-position='left']:not(:only-child)) {\n margin-inline-end: var(--mantine-spacing-xs);\n }\n\n &:where([data-position='right']:not(:only-child)) {\n margin-inline-start: var(--mantine-spacing-xs);\n }\n}\n\n.tabLabel {\n flex: 1;\n text-align: center;\n}\n\n/*************************************** default variant ***************************************/\n.list--default {\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n border: 1px solid var(--tab-border-color);\n bottom: var(--tabs-list-line-bottom);\n inset-inline-start: var(--tabs-list-line-start);\n inset-inline-end: var(--tabs-list-line-end);\n top: var(--tabs-list-line-top);\n }\n}\n\n.tab--default {\n border-radius: var(--tab-radius);\n border-width: var(--tab-border-width);\n border-style: solid;\n border-color: transparent;\n background-color: transparent;\n\n &:where([data-active]) {\n border-color: var(--tabs-color);\n }\n\n @mixin hover {\n background-color: var(--tab-hover-color);\n\n &:where(:not([data-active])) {\n border-color: var(--tab-border-color);\n }\n }\n\n &:disabled,\n &[data-disabled] {\n @mixin hover {\n background-color: transparent;\n }\n }\n}\n\n/*************************************** outline variant ***************************************/\n.list--outline {\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n border-color: var(--tab-border-color);\n border-width: var(--tabs-list-border-size);\n border-style: solid;\n bottom: var(--tabs-list-line-bottom);\n inset-inline-start: var(--tabs-list-line-start);\n inset-inline-end: var(--tabs-list-line-end);\n top: var(--tabs-list-line-top);\n }\n}\n\n.tab--outline {\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n border-inline: 1px solid transparent;\n border-top-color: var(--tab-border-top-color);\n border-bottom-color: var(--tab-border-bottom-color);\n border-radius: var(--tab-radius);\n position: relative;\n\n --tab-border-bottom-color: transparent;\n --tab-border-top-color: transparent;\n --tab-border-inline-end-color: transparent;\n --tab-border-inline-start-color: transparent;\n\n &:where([data-active]) {\n &::before {\n content: '';\n position: absolute;\n background-color: var(--tab-border-color);\n bottom: var(--tab-before-bottom, rem(-1px));\n inset-inline-start: var(--tab-before-start, rem(-1px));\n inset-inline-end: var(--tab-before-end, auto);\n top: var(--tab-before-top, auto);\n width: 1px;\n height: 1px;\n }\n\n &::after {\n content: '';\n position: absolute;\n background-color: var(--tab-border-color);\n bottom: var(--tab-after-bottom, rem(-1px));\n inset-inline-end: var(--tab-after-end, rem(-1px));\n inset-inline-start: var(--tab-after-start, auto);\n top: var(--tab-after-top, auto);\n width: 1px;\n height: 1px;\n }\n\n border-top-color: var(--tab-border-top-color);\n border-bottom-color: var(--tab-border-bottom-color);\n border-inline-start-color: var(--tab-border-inline-start-color);\n border-inline-end-color: var(--tab-border-inline-end-color);\n\n --tab-border-top-color: var(--tab-border-color);\n --tab-border-inline-start-color: var(--tab-border-color);\n --tab-border-inline-end-color: var(--tab-border-color);\n --tab-border-bottom-color: var(--mantine-color-body);\n\n &[data-inverted] {\n --tab-border-bottom-color: var(--tab-border-color);\n --tab-border-top-color: var(--mantine-color-body);\n\n --tab-before-bottom: auto;\n --tab-before-top: -1px;\n --tab-after-bottom: auto;\n --tab-after-top: -1px;\n }\n\n &[data-orientation='vertical'] {\n &[data-placement='left'] {\n --tab-border-inline-end-color: var(--mantine-color-body);\n --tab-border-inline-start-color: var(--tab-border-color);\n --tab-border-bottom-color: var(--tab-border-color);\n\n --tab-before-end: -1px;\n --tab-before-start: auto;\n --tab-before-bottom: auto;\n --tab-before-top: -1px;\n --tab-after-start: auto;\n --tab-after-end: -1px;\n }\n\n &[data-placement='right'] {\n --tab-border-inline-start-color: var(--mantine-color-body);\n --tab-border-inline-end-color: var(--tab-border-color);\n --tab-border-bottom-color: var(--tab-border-color);\n\n --tab-before-start: -1px;\n --tab-before-end: auto;\n --tab-before-bottom: auto;\n --tab-before-top: -1px;\n --tab-after-end: auto;\n --tab-after-start: -1px;\n }\n }\n }\n}\n\n/*************************************** pills variant ***************************************/\n.tab--pills {\n border-radius: var(--tabs-radius);\n background-color: var(--tab-bg);\n color: var(--tab-color);\n\n --tab-bg: transparent;\n --tab-color: inherit;\n\n &:not([data-disabled]) {\n @mixin hover {\n --tab-bg: var(--tab-hover-color);\n }\n }\n\n &[data-active][data-active] {\n --tab-bg: var(--tabs-color);\n --tab-color: var(--tabs-text-color, var(--mantine-color-white));\n\n @mixin hover {\n --tab-bg: var(--tabs-color);\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useId, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../core'\nimport { provideTabsContext } from './Tabs.context'\nimport { TabsList } from './TabsList/TabsList'\nimport { TabsPanel } from './TabsPanel/TabsPanel'\nimport { TabsTab } from './TabsTab/TabsTab'\nimport classes from './Tabs.module.css'\n\nexport type TabsStylesNames = 'root' | 'list' | 'panel' | 'tab' | 'tabSection' | 'tabLabel'\nexport type TabsVariant = 'default' | 'outline' | 'pills'\n\nconst VALUE_ERROR =\n 'Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value'\n\nconst defaultProps = {\n keepMounted: true,\n keepMountedMode: 'activity',\n orientation: 'horizontal',\n loop: true,\n activateTabWithKeyboard: true,\n variant: 'default',\n placement: 'left',\n} as const\n\nfunction getSafeId(prefix: string) {\n return (value: string) => {\n if (typeof value !== 'string' || value.length === 0) {\n throw new Error(VALUE_ERROR)\n }\n\n return `${prefix}-${value}`\n }\n}\n\nconst varsResolver = createVarsResolver<any>((theme, { radius, color, autoContrast }) => ({\n root: {\n '--tabs-radius': getRadius(radius),\n '--tabs-color': getThemeColor(color, theme),\n '--tabs-text-color': getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n },\n}))\n\nconst TabsBase = defineComponent({\n name: 'Tabs',\n inheritAttrs: false,\n props: {\n defaultValue: { type: String as PropType<string | null>, default: undefined },\n value: { type: String as PropType<string | null>, default: undefined },\n onChange: { type: Function as PropType<(value: string | null) => void>, default: undefined },\n orientation: { type: String as PropType<'vertical' | 'horizontal'>, default: undefined },\n placement: { type: String as PropType<'left' | 'right'>, default: undefined },\n id: { type: String, default: undefined },\n loop: { type: Boolean, default: undefined },\n activateTabWithKeyboard: { type: Boolean, default: undefined },\n allowTabDeactivation: { type: Boolean, default: false },\n variant: { type: String as PropType<TabsVariant>, default: undefined },\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n inverted: { type: Boolean, default: false },\n keepMounted: { type: Boolean, default: undefined },\n keepMountedMode: { type: String as PropType<'activity' | 'display-none'>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Tabs', defaultProps, rawProps)\n const uid = useId(props.id)\n const [currentTab, setCurrentTab] = useUncontrolled<string | null>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: null,\n onChange: (value) => props.onChange?.(value),\n })\n const getStyles = useStyles({\n name: 'Tabs',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provideTabsContext({\n id: uid.value,\n get orientation() {\n return props.orientation\n },\n get loop() {\n return props.loop\n },\n get activateTabWithKeyboard() {\n return props.activateTabWithKeyboard\n },\n get allowTabDeactivation() {\n return props.allowTabDeactivation\n },\n get variant() {\n return props.variant\n },\n get color() {\n return props.color\n },\n get radius() {\n return props.radius\n },\n get inverted() {\n return props.inverted\n },\n get keepMounted() {\n return props.keepMounted\n },\n get keepMountedMode() {\n return props.keepMountedMode\n },\n get placement() {\n return props.placement\n },\n get unstyled() {\n return props.unstyled\n },\n getStyles,\n get value() {\n return currentTab.value\n },\n onChange: setCurrentTab,\n getTabId: getSafeId(`${uid.value}-tab`),\n getPanelId: getSafeId(`${uid.value}-panel`),\n } as any)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n id: uid.value,\n variant: props.variant,\n mod: [\n {\n orientation: props.orientation,\n inverted: props.orientation === 'horizontal' && props.inverted,\n placement: props.orientation === 'vertical' && props.placement,\n },\n props.mod,\n ],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => slots.default?.(),\n )\n },\n})\n\nexport const Tabs = Object.assign(TabsBase, {\n classes,\n varsResolver,\n Tab: TabsTab,\n Panel: TabsPanel,\n List: TabsList,\n})\n","/**\n * Uses a shared hidden <textarea> to measure row height and calculate\n * the height that fits the content within minRows / maxRows bounds.\n */\nimport { defineComponent, h, onMounted, onUnmounted, ref, watch, type PropType } from 'vue'\n\nconst SIZING_STYLE_KEYS = [\n 'borderBottomWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'boxSizing',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'tabSize',\n 'textIndent',\n 'textRendering',\n 'textTransform',\n 'width',\n 'wordBreak',\n 'wordSpacing',\n 'scrollbarGutter',\n] as const\n\ntype SizingStyleKey = (typeof SIZING_STYLE_KEYS)[number]\n\ninterface SizingData {\n sizingStyle: Pick<CSSStyleDeclaration, Extract<SizingStyleKey, keyof CSSStyleDeclaration>>\n paddingSize: number\n borderSize: number\n}\n\nconst HIDDEN_TEXTAREA_STYLE: Record<string, string> = {\n 'min-height': '0',\n 'max-height': 'none',\n height: '0',\n visibility: 'hidden',\n overflow: 'hidden',\n position: 'absolute',\n 'z-index': '-1000',\n top: '0',\n right: '0',\n display: 'block',\n}\n\nfunction forceHiddenStyles(node: HTMLElement) {\n for (const key of Object.keys(HIDDEN_TEXTAREA_STYLE)) {\n node.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important')\n }\n}\n\nfunction getSizingData(node: HTMLElement): SizingData | null {\n const style = window.getComputedStyle(node)\n if (style === null) return null\n\n const sizingStyle = {} as SizingData['sizingStyle']\n for (const key of SIZING_STYLE_KEYS) {\n ;(sizingStyle as any)[key] = style[key as keyof CSSStyleDeclaration]\n }\n\n if ((sizingStyle as any).boxSizing === '') return null\n\n const paddingSize = parseFloat(sizingStyle.paddingBottom!) + parseFloat(sizingStyle.paddingTop!)\n const borderSize =\n parseFloat(sizingStyle.borderBottomWidth!) + parseFloat(sizingStyle.borderTopWidth!)\n\n return { sizingStyle, paddingSize, borderSize }\n}\n\nlet hiddenTextarea: HTMLTextAreaElement | null = null\n\nfunction calculateNodeHeight(\n sizingData: SizingData,\n value: string,\n minRows = 1,\n maxRows = Infinity,\n): [number, number] {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea')\n hiddenTextarea.setAttribute('tabindex', '-1')\n hiddenTextarea.setAttribute('aria-hidden', 'true')\n hiddenTextarea.setAttribute('aria-label', 'autosize measurement')\n forceHiddenStyles(hiddenTextarea)\n }\n\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea)\n }\n\n const { paddingSize, borderSize, sizingStyle } = sizingData\n const { boxSizing } = sizingStyle as any\n\n for (const key of Object.keys(sizingStyle)) {\n ;(hiddenTextarea!.style as any)[key] = (sizingStyle as any)[key]\n }\n forceHiddenStyles(hiddenTextarea)\n\n // Double set to work around Firefox scrollHeight bug:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1795904\n hiddenTextarea.value = value\n let height =\n boxSizing === 'border-box'\n ? hiddenTextarea.scrollHeight + borderSize\n : hiddenTextarea.scrollHeight - paddingSize\n\n hiddenTextarea.value = value\n height =\n boxSizing === 'border-box'\n ? hiddenTextarea.scrollHeight + borderSize\n : hiddenTextarea.scrollHeight - paddingSize\n\n // Measure a single row for min/max clamping\n hiddenTextarea.value = 'x'\n const rowHeight = hiddenTextarea.scrollHeight - paddingSize\n\n let minHeight = rowHeight * minRows\n if (boxSizing === 'border-box') minHeight = minHeight + paddingSize + borderSize\n height = Math.max(minHeight, height)\n\n let maxHeight = rowHeight * maxRows\n if (boxSizing === 'border-box') maxHeight = maxHeight + paddingSize + borderSize\n height = Math.min(maxHeight, height)\n\n return [height, rowHeight]\n}\n\nexport const TextareaAutosize = defineComponent({\n name: 'TextareaAutosize',\n // inheritAttrs: false so we can intercept onInput and filter maxRows/minRows\n inheritAttrs: false,\n props: {\n // Consumed here; NOT forwarded to <textarea> (not valid HTML attrs)\n maxRows: { type: Number as PropType<number | undefined>, default: undefined },\n minRows: { type: Number as PropType<number | undefined>, default: undefined },\n // Declaring value as a prop lets us watch it for controlled-mode resizing\n value: { type: [String, Number] as PropType<string | number | undefined>, default: undefined },\n },\n setup(props, { attrs }) {\n const textareaRef = ref<HTMLTextAreaElement | null>(null)\n const heightRef = ref(0)\n const widthRef = ref(0)\n\n function resizeTextarea() {\n const node = textareaRef.value\n if (!node) return\n\n const sizingData = getSizingData(node)\n if (!sizingData) return\n\n const [height] = calculateNodeHeight(\n sizingData,\n node.value || node.placeholder || 'x',\n props.minRows,\n props.maxRows,\n )\n\n if (heightRef.value !== height) {\n heightRef.value = height\n node.style.setProperty('height', `${height}px`, 'important')\n }\n }\n\n const cleanupFns: Array<() => void> = []\n\n onMounted(() => {\n // Initial size\n resizeTextarea()\n\n // Window resize\n const onResize = () => resizeTextarea()\n window.addEventListener('resize', onResize)\n cleanupFns.push(() => window.removeEventListener('resize', onResize))\n\n // ResizeObserver — only fires when the textarea's WIDTH changes (column resize, etc.)\n const node = textareaRef.value\n if (node && typeof ResizeObserver !== 'undefined') {\n widthRef.value = node.offsetWidth\n const observer = new ResizeObserver(() => {\n if (textareaRef.value && textareaRef.value.offsetWidth !== widthRef.value) {\n widthRef.value = textareaRef.value.offsetWidth\n resizeTextarea()\n }\n })\n observer.observe(node)\n cleanupFns.push(() => observer.disconnect())\n }\n\n // Font loading can change line height\n const onFontsLoaded = () => resizeTextarea()\n document.fonts.addEventListener('loadingdone', onFontsLoaded)\n cleanupFns.push(() => document.fonts.removeEventListener('loadingdone', onFontsLoaded))\n\n // Form reset (uncontrolled mode only)\n const onReset = (event: Event) => {\n if (textareaRef.value?.form === event.target && props.value === undefined) {\n const before = textareaRef.value!.value\n requestAnimationFrame(() => {\n if (textareaRef.value && before !== textareaRef.value.value) {\n resizeTextarea()\n }\n })\n }\n }\n document.body.addEventListener('reset', onReset)\n cleanupFns.push(() => document.body.removeEventListener('reset', onReset))\n })\n\n onUnmounted(() => {\n cleanupFns.forEach((fn) => fn())\n cleanupFns.length = 0\n })\n\n watch(\n () => props.value,\n () => resizeTextarea(),\n )\n\n return () => {\n // Strip autosize-only attrs that are not valid on a real <textarea>\n const { maxRows: _mr, minRows: _mn, ...rest } = attrs as any\n\n return h('textarea', {\n ...rest,\n // value comes through attrs (or via the declared prop above for watching)\n value: props.value !== undefined ? props.value : rest.value,\n ref: textareaRef,\n onInput: (event: Event) => {\n // In uncontrolled mode the DOM value changed; resize immediately\n if (props.value === undefined) {\n resizeTextarea()\n }\n rest.onInput?.(event)\n },\n })\n }\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { InputBase } from '../InputBase'\nimport { TextareaAutosize } from './Autosize'\n\nexport const Textarea = defineComponent({\n name: 'Textarea',\n inheritAttrs: false,\n props: {\n autosize: { type: Boolean, default: false },\n maxRows: { type: Number, default: undefined },\n minRows: { type: Number, default: undefined },\n resize: {\n type: String as PropType<'none' | 'both' | 'horizontal' | 'vertical'>,\n default: undefined,\n },\n bottomSection: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n bottomSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n __staticSelector: { type: String, default: undefined },\n },\n setup(props, { attrs }) {\n return () => {\n const shouldAutosize = props.autosize\n const autosizeProps = shouldAutosize\n ? { maxRows: props.maxRows, minRows: props.minRows }\n : { rows: props.minRows }\n\n return h(InputBase, {\n ...attrs,\n component: shouldAutosize ? TextareaAutosize : 'textarea',\n __staticSelector: props.__staticSelector || 'Textarea',\n multiline: true,\n // data-no-overflow suppresses overflow scrollbar when no maxRows cap\n 'data-no-overflow': shouldAutosize && props.maxRows === undefined ? true : undefined,\n __bottomSection: props.bottomSection,\n __bottomSectionProps: props.bottomSectionProps,\n style: [{ '--input-resize': props.resize }, (attrs as any).style],\n ...autosizeProps,\n })\n }\n },\n})\n\nObject.assign(Textarea, { classes: InputBase.classes })\n","export function validateJson(value: string, deserialize: typeof JSON.parse) {\n if (typeof value === 'string' && value.trim().length === 0) {\n return true\n }\n\n try {\n deserialize(value)\n return true\n } catch {\n return false\n }\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport { InputBase } from '../InputBase'\nimport { Textarea } from '../Textarea'\nimport { validateJson } from './validate-json/validate-json'\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nexport const JsonInput = defineComponent({\n name: 'JsonInput',\n inheritAttrs: false,\n props: {\n value: { type: String, default: undefined },\n defaultValue: { type: String, default: undefined },\n onChange: { type: Function as PropType<(value: string) => void>, default: undefined },\n formatOnBlur: { type: Boolean, default: false },\n validationError: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n serialize: { type: Function as PropType<typeof JSON.stringify>, default: JSON.stringify },\n deserialize: { type: Function as PropType<typeof JSON.parse>, default: JSON.parse },\n indentSpaces: { type: Number, default: 2 },\n readOnly: { type: Boolean, default: false },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n },\n setup(props, { attrs }) {\n const [value, setValue] = useUncontrolled<string>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: '',\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n const valid = ref(validateJson(value.value, props.deserialize))\n\n return () =>\n h(Textarea, {\n ...attrs,\n value: value.value,\n readOnly: props.readOnly,\n autoComplete: 'off',\n __staticSelector: 'JsonInput',\n error: valid.value ? props.error : props.validationError || true,\n 'data-monospace': true,\n onInput: (event: Event) => {\n callHandler((attrs as any).onInput, event)\n setValue((event.currentTarget as HTMLTextAreaElement).value)\n },\n onFocus: (event: FocusEvent) => {\n callHandler((attrs as any).onFocus, event)\n valid.value = true\n },\n onBlur: (event: FocusEvent) => {\n callHandler((attrs as any).onBlur, event)\n const target = event.currentTarget as HTMLTextAreaElement\n const isValid = validateJson(target.value, props.deserialize)\n\n if (props.formatOnBlur && !props.readOnly && isValid && target.value.trim() !== '') {\n setValue(props.serialize(props.deserialize(target.value), null, props.indentSpaces))\n }\n\n valid.value = isValid\n },\n })\n },\n})\n\nObject.assign(JsonInput, { classes: InputBase.classes })\n","import { defineComponent, h } from 'vue'\nimport { InputBase } from '../InputBase'\n\nexport const TextInput = defineComponent({\n name: 'TextInput',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(InputBase, {\n ...attrs,\n component: 'input',\n __staticSelector: 'TextInput',\n __stylesApiProps: attrs,\n })\n },\n})\n\nObject.assign(TextInput, { classes: InputBase.classes })\n","import { defineComponent, h } from 'vue'\n\nexport const PasswordToggleIcon = defineComponent({\n name: 'PasswordToggleIcon',\n props: {\n reveal: { type: Boolean, default: false },\n },\n setup(props) {\n return () =>\n h(\n 'svg',\n {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 256 256',\n style: { width: 'var(--psi-icon-size)', height: 'var(--psi-icon-size)' },\n },\n props.reveal\n ? [\n h('path', { fill: 'none', d: 'M0 0h256v256H0z' }),\n h('path', {\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': '16',\n d: 'M48 40l160 176M154.91 157.6a40 40 0 01-53.82-59.2M135.53 88.71a40 40 0 0132.3 35.53',\n }),\n h('path', {\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': '16',\n d: 'M208.61 169.1C230.41 149.58 240 128 240 128s-32-72-112-72a126 126 0 00-20.68 1.68M74 68.6C33.23 89.24 16 128 16 128s32 72 112 72a118.05 118.05 0 0054-12.6',\n }),\n ]\n : [\n h('path', { fill: 'none', d: 'M0 0h256v256H0z' }),\n h('path', {\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': '16',\n d: 'M128 56c-80 0-112 72-112 72s32 72 112 72 112-72 112-72-32-72-112-72z',\n }),\n h('circle', {\n cx: '128',\n cy: '128',\n r: '40',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n 'stroke-width': '16',\n }),\n ],\n )\n },\n})\n",".root {\n --psi-button-size-xs: 22px;\n --psi-button-size-sm: 26px;\n --psi-button-size-md: 28px;\n --psi-button-size-lg: 32px;\n --psi-button-size-xl: 40px;\n\n --psi-icon-size-xs: 16px;\n --psi-icon-size-sm: 20px;\n --psi-icon-size-md: 22px;\n --psi-icon-size-lg: 24px;\n --psi-icon-size-xl: 28px;\n\n --psi-button-size: var(--psi-button-size-sm);\n --psi-icon-size: var(--psi-icon-size-sm);\n}\n\n.input {\n position: relative;\n overflow: hidden;\n}\n\n.innerInput {\n font-family: var(--mantine-font-family);\n background-color: transparent;\n border: 0;\n padding-inline-end: var(--input-padding-inline-end);\n padding-inline-start: var(--input-padding-inline-start);\n position: absolute;\n inset: 0;\n outline: 0;\n font-size: inherit;\n line-height: var(--mantine-line-height);\n height: 100%;\n width: 100%;\n color: inherit;\n\n .input[data-disabled] &,\n &:disabled {\n cursor: not-allowed;\n }\n\n &::placeholder {\n color: var(--input-placeholder-color);\n opacity: 1;\n }\n\n &::-ms-reveal {\n display: none;\n }\n}\n\n.visibilityToggle {\n width: var(--psi-button-size);\n height: var(--psi-button-size);\n min-width: var(--psi-button-size);\n min-height: var(--psi-button-size);\n\n &:disabled {\n display: none;\n }\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { useId, useUncontrolled } from '@mantine-vue/hooks'\nimport { createVarsResolver, getSize, useStyles } from '../../core'\nimport { ActionIcon } from '../ActionIcon'\nimport { Input } from '../Input'\nimport inputClasses from '../Input/Input.module.css'\nimport { PasswordToggleIcon } from './PasswordToggleIcon'\nimport classes from './PasswordInput.module.css'\n\nexport type PasswordInputStylesNames =\n | 'root'\n | 'visibilityToggle'\n | 'innerInput'\n | 'input'\n | 'wrapper'\n | 'section'\n | 'bottomSection'\n | 'label'\n | 'required'\n | 'description'\n | 'error'\n\nconst varsResolver = createVarsResolver<any>((_, { size }) => ({\n root: {\n '--psi-icon-size': getSize(size, 'psi-icon-size'),\n '--psi-button-size': getSize(size, 'psi-button-size'),\n },\n}))\n\nconst mergedClasses = { ...inputClasses, ...classes }\n\nexport const PasswordInput = defineComponent({\n name: 'PasswordInput',\n inheritAttrs: false,\n props: {\n visibilityToggleIcon: { type: [Object, Function] as PropType<any>, default: undefined },\n visibilityToggleButtonProps: {\n type: Object as PropType<Record<string, any>>,\n default: undefined,\n },\n visible: { type: Boolean, default: undefined },\n defaultVisible: { type: Boolean, default: undefined },\n onVisibilityChange: {\n type: Function as PropType<(visible: boolean) => void>,\n default: undefined,\n },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n required: { type: Boolean, default: false },\n withAsterisk: { type: Boolean, default: undefined },\n labelProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n descriptionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n errorProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n inputContainer: { type: Function as PropType<(children: any) => any>, default: undefined },\n inputWrapperOrder: {\n type: Array as PropType<Array<'label' | 'input' | 'description' | 'error'>>,\n default: undefined,\n },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n id: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n variant: { type: String as PropType<'default' | 'filled' | 'unstyled'>, default: 'default' },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: false },\n leftSection: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n leftSectionWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n leftSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n leftSectionPointerEvents: { type: String, default: undefined },\n rightSection: {\n type: [String, Number, Object, Function, null] as PropType<any>,\n default: undefined,\n },\n rightSectionWidth: { type: [String, Number] as PropType<string | number>, default: undefined },\n rightSectionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n rightSectionPointerEvents: { type: String, default: undefined },\n withErrorStyles: { type: Boolean, default: true },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const uuid = useId(props.id)\n const fallbackId = ref(`password-input-${Math.random().toString(36).slice(2)}`)\n const [visible, setVisible] = useUncontrolled<boolean>({\n value: () => props.visible,\n defaultValue: props.defaultVisible,\n finalValue: false,\n onChange: (value) => props.onVisibilityChange?.(value),\n })\n const getStyles = useStyles({\n name: 'PasswordInput',\n props,\n classes: mergedClasses,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const toggleVisibility = () => setVisible(!visible.value)\n\n return () => {\n const id = uuid.value || fallbackId.value\n const errorId = props.errorProps?.id || `${id}-error`\n const descriptionId = props.descriptionProps?.id || `${id}-description`\n const hasError = Boolean(props.error) && typeof props.error !== 'boolean'\n const hasDescription = Boolean(props.description)\n const describedBy =\n `${hasError ? errorId : ''} ${hasDescription ? descriptionId : ''}`.trim() || undefined\n const VisibilityToggleIcon = props.visibilityToggleIcon || PasswordToggleIcon\n const visibilityToggleButton = h(\n ActionIcon,\n {\n ...getStyles('visibilityToggle'),\n ...props.visibilityToggleButtonProps,\n disabled: props.disabled,\n radius: props.radius,\n 'aria-pressed': visible.value,\n tabIndex: -1,\n 'aria-label':\n props.visibilityToggleButtonProps?.['aria-label'] || 'Toggle password visibility',\n variant: props.visibilityToggleButtonProps?.variant ?? 'subtle',\n color: 'gray',\n unstyled: props.unstyled,\n onTouchend: (event: TouchEvent) => {\n event.preventDefault()\n props.visibilityToggleButtonProps?.onTouchend?.(event)\n toggleVisibility()\n },\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n props.visibilityToggleButtonProps?.onMousedown?.(event)\n toggleVisibility()\n },\n onKeydown: (event: KeyboardEvent) => {\n props.visibilityToggleButtonProps?.onKeydown?.(event)\n if (event.key === ' ') {\n event.preventDefault()\n toggleVisibility()\n }\n },\n },\n () => h(VisibilityToggleIcon, { reveal: visible.value }),\n )\n\n return h(\n Input.Wrapper,\n {\n ...props.wrapperProps,\n id,\n label: props.label,\n description: props.description,\n error: props.error,\n required: props.required,\n withAsterisk: props.withAsterisk,\n labelProps: { ...props.labelProps, htmlFor: id },\n descriptionProps: { ...props.descriptionProps, id: descriptionId },\n errorProps: { ...props.errorProps, id: errorId },\n inputContainer: props.inputContainer,\n inputWrapperOrder: props.inputWrapperOrder,\n size: props.size,\n variant: props.variant,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () =>\n h(\n Input,\n {\n component: 'div',\n error: props.error,\n leftSection: props.leftSection,\n size: props.size,\n classNames: {\n ...(props.classNames as any),\n input: [classes.input, (props.classNames as any)?.input],\n },\n styles: props.styles,\n radius: props.radius,\n disabled: props.disabled,\n __staticSelector: 'PasswordInput',\n __stylesApiProps: props,\n rightSectionWidth: props.rightSectionWidth,\n rightSection: props.rightSection ?? visibilityToggleButton,\n variant: props.variant,\n unstyled: props.unstyled,\n leftSectionWidth: props.leftSectionWidth,\n rightSectionPointerEvents: props.rightSectionPointerEvents || 'all',\n rightSectionProps: props.rightSectionProps,\n leftSectionProps: props.leftSectionProps,\n leftSectionPointerEvents: props.leftSectionPointerEvents,\n withAria: false,\n withErrorStyles: props.withErrorStyles,\n },\n () =>\n h('input', {\n ...attrs,\n ...getStyles('innerInput'),\n required: props.required,\n 'data-invalid': props.error ? true : undefined,\n 'data-with-left-section': props.leftSection ? true : undefined,\n disabled: props.disabled,\n id,\n 'aria-describedby': describedBy,\n autocomplete: (attrs.autocomplete as any) || 'off',\n type: visible.value ? 'text' : 'password',\n }),\n ),\n )\n }\n },\n})\n\nObject.assign(PasswordInput, { classes: mergedClasses, varsResolver })\n",".root {\n --label-lh-xs: 16px;\n --label-lh-sm: 20px;\n --label-lh-md: 24px;\n --label-lh-lg: 30px;\n --label-lh-xl: 36px;\n --label-lh: var(--label-lh-sm);\n}\n\n.root[data-label-position='left'] {\n --label-order: 1;\n --label-offset-end: var(--mantine-spacing-sm);\n --label-offset-start: 0;\n}\n\n.root[data-label-position='right'] {\n --label-order: 2;\n --label-offset-end: 0;\n --label-offset-start: var(--mantine-spacing-sm);\n}\n\n.body {\n -webkit-tap-highlight-color: transparent;\n display: flex;\n}\n\n.labelWrapper {\n --label-cursor: var(--mantine-cursor-type);\n -webkit-tap-highlight-color: transparent;\n display: inline-flex;\n flex-direction: column;\n font-size: var(--label-fz, var(--mantine-font-size-sm));\n line-height: var(--label-lh);\n cursor: var(--label-cursor);\n order: var(--label-order);\n}\n\n.labelWrapper[data-disabled] {\n --label-cursor: not-allowed;\n}\n\n.label {\n cursor: var(--label-cursor);\n color: inherit;\n padding-inline-start: var(--label-offset-start);\n padding-inline-end: var(--label-offset-end);\n}\n\n.label:where([data-disabled]) {\n color: var(--mantine-color-disabled-color);\n}\n\n.description {\n margin-top: calc(var(--mantine-spacing-xs) / 2);\n padding-inline-start: var(--label-offset-start);\n padding-inline-end: var(--label-offset-end);\n cursor: default;\n}\n\n.error {\n margin-top: calc(var(--mantine-spacing-xs) / 2);\n padding-inline-start: var(--label-offset-start);\n padding-inline-end: var(--label-offset-end);\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box, getFontSize, getSize, useStyles } from '../../core'\nimport { Input } from '../../components/Input'\nimport classes from './InlineInput.module.css'\n\nexport const InlineInputClasses = classes\n\nexport type InlineInputStylesNames =\n | 'root'\n | 'body'\n | 'labelWrapper'\n | 'label'\n | 'description'\n | 'error'\n\nexport const InlineInput = defineComponent({\n name: 'InlineInput',\n inheritAttrs: false,\n props: {\n __staticSelector: { type: String, required: true },\n __stylesApiProps: { type: Object as PropType<Record<string, any>>, required: true },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n id: { type: String, required: true },\n disabled: { type: Boolean, default: false },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n labelPosition: { type: String as PropType<'left' | 'right'>, default: 'right' },\n bodyElement: { type: String, default: 'div' },\n labelElement: { type: String, default: 'label' },\n variant: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const getStyles = useStyles({\n name: props.__staticSelector,\n props: props.__stylesApiProps,\n className: attrs.class,\n style: attrs.style as any,\n classes,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n })\n\n return () => {\n const descriptionId = props.description ? `${props.id}-description` : undefined\n const errorId =\n props.error && typeof props.error !== 'boolean' ? `${props.id}-error` : undefined\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', {\n className: attrs.class,\n style: {\n '--label-fz': getFontSize(props.size),\n '--label-lh': getSize(props.size, 'label-lh'),\n ...(attrs.style as Record<string, any>),\n },\n }),\n mod: [{ labelPosition: props.labelPosition }, props.mod],\n variant: props.variant,\n 'data-size': props.size,\n },\n () =>\n h(\n Box,\n {\n component: props.bodyElement,\n htmlFor: props.bodyElement === 'label' ? props.id : undefined,\n ...getStyles('body'),\n },\n () => [\n slots.default?.(),\n h(\n 'div',\n { ...getStyles('labelWrapper'), 'data-disabled': props.disabled || undefined },\n [\n props.label\n ? h(\n Box,\n {\n component: props.labelElement,\n htmlFor: props.labelElement === 'label' ? props.id : undefined,\n ...getStyles('label'),\n 'data-disabled': props.disabled || undefined,\n },\n () => (typeof props.label === 'function' ? props.label() : props.label),\n )\n : null,\n props.description\n ? h(\n Input.Description,\n {\n id: descriptionId,\n size: props.size,\n __inheritStyles: false,\n ...getStyles('description'),\n },\n () =>\n typeof props.description === 'function'\n ? props.description()\n : props.description,\n )\n : null,\n props.error && typeof props.error !== 'boolean'\n ? h(\n Input.Error,\n {\n id: errorId,\n size: props.size,\n __inheritStyles: false,\n ...getStyles('error'),\n },\n () => (typeof props.error === 'function' ? props.error() : props.error),\n )\n : null,\n ],\n ),\n ],\n ),\n )\n }\n },\n})\n","import { defineComponent, h } from 'vue'\nimport { Box } from '../core'\n\nexport const InputsGroupFieldset = defineComponent({\n name: 'InputsGroupFieldset',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'fieldset',\n style: [{ border: 0, padding: 0, margin: 0, minWidth: 0 }, attrs.style as any],\n },\n () => slots.default?.(),\n )\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { rem } from '../../core'\n\nexport const CheckIcon = defineComponent({\n name: 'CheckIcon',\n inheritAttrs: false,\n props: {\n // No default on purpose: most consumers (Combobox, Select, TreeSelect,\n // Stepper, Swatches) size this purely via their own CSS class/width\n // props passed through attrs. An inline style always wins over a class,\n // so only emit a width/height style when `size` was explicitly passed\n // (e.g. by DateTimePicker's submit button) - otherwise leave existing\n // callers' sizing untouched.\n size: { type: [Number, String] as PropType<number | string>, default: undefined },\n },\n setup(props, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n viewBox: '0 0 10 7',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n 'aria-hidden': true,\n ...attrs,\n style:\n props.size !== undefined\n ? [\n { width: rem(props.size), height: rem(props.size), display: 'block' },\n attrs.style as any,\n ]\n : attrs.style,\n },\n h('path', {\n d: 'M4 4.586L1.707 2.293A1 1 0 1 0 .293 3.707l3 3a.997.997 0 0 0 1.414 0l5-5A1 1 0 1 0 8.293.293L4 4.586z',\n fill: 'currentColor',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }),\n )\n },\n})\n\nexport const CheckboxIcon = defineComponent({\n name: 'CheckboxIcon',\n inheritAttrs: false,\n props: {\n indeterminate: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n return () =>\n props.indeterminate\n ? h(\n 'svg',\n {\n xmlns: 'http://www.w3.org/2000/svg',\n fill: 'none',\n viewBox: '0 0 32 6',\n 'aria-hidden': true,\n ...attrs,\n },\n h('rect', { width: '32', height: '6', fill: 'currentColor', rx: '3' }),\n )\n : h(CheckIcon, attrs)\n },\n})\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport { InputWrapper } from '../../Input'\nimport { InputsGroupFieldset } from '../../../utils'\n\nexport interface CheckboxGroupContextValue {\n value: string[]\n onChange: (eventOrValue: Event | string) => void\n size?: string | number\n isDisabled?: (value: string) => boolean\n}\n\nconst CheckboxGroupContextKey: InjectionKey<CheckboxGroupContextValue> =\n Symbol('CheckboxGroupContext')\n\nexport function useCheckboxGroupContext() {\n return inject(CheckboxGroupContextKey, null)\n}\n\nexport const CheckboxGroup = defineComponent({\n name: 'CheckboxGroup',\n inheritAttrs: false,\n props: {\n value: { type: Array as PropType<string[] | undefined>, default: undefined },\n defaultValue: { type: Array as PropType<string[] | undefined>, default: undefined },\n onChange: { type: Function as PropType<(value: string[]) => void>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n readOnly: { type: Boolean, default: false },\n name: { type: String, default: undefined },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n hiddenInputValuesSeparator: { type: String, default: ',' },\n maxSelectedValues: { type: Number, default: undefined },\n disabled: { type: Boolean, default: false },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const [value, setValue] = useUncontrolled<string[]>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: [],\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n\n const handleChange = (eventOrValue: Event | string) => {\n if (props.readOnly) {\n return\n }\n\n const itemValue =\n typeof eventOrValue === 'string'\n ? eventOrValue\n : String((eventOrValue.currentTarget as HTMLInputElement | null)?.value ?? '')\n const isCurrentlySelected = value.value.includes(itemValue)\n\n if (\n !isCurrentlySelected &&\n props.maxSelectedValues &&\n value.value.length >= props.maxSelectedValues\n ) {\n return\n }\n\n setValue(\n isCurrentlySelected\n ? value.value.filter((item) => item !== itemValue)\n : [...value.value, itemValue],\n )\n }\n\n const isDisabled = (checkboxValue: string) => {\n if (props.disabled) {\n return true\n }\n\n if (!props.maxSelectedValues) {\n return false\n }\n\n const isCurrentlySelected = value.value.includes(checkboxValue)\n const hasReachedLimit = value.value.length >= props.maxSelectedValues\n return !isCurrentlySelected && hasReachedLimit\n }\n\n provide(CheckboxGroupContextKey, {\n get value() {\n return value.value\n },\n onChange: handleChange,\n get size() {\n return props.size\n },\n isDisabled,\n })\n\n return () => {\n const hiddenInputValue = value.value.join(props.hiddenInputValuesSeparator)\n\n return h(\n InputWrapper,\n {\n size: props.size,\n ...props.wrapperProps,\n ...attrs,\n label: props.label,\n description: props.description,\n error: props.error,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n labelElement: 'div',\n __staticSelector: 'CheckboxGroup',\n } as any,\n () => [\n h(InputsGroupFieldset, { role: 'group' }, () => slots.default?.()),\n h('input', {\n type: 'hidden',\n name: props.name,\n value: hiddenInputValue,\n ...props.hiddenInputProps,\n }),\n ],\n )\n }\n },\n})\n\nObject.assign(CheckboxGroup, { classes: InputWrapper.classes })\n",".card {\n --card-radius: var(--mantine-radius-default);\n\n display: block;\n width: 100%;\n border-radius: var(--card-radius);\n cursor: pointer;\n\n & :where(*) {\n cursor: inherit;\n }\n\n &:where([data-with-border]) {\n border: 1px solid transparent;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n }\n}\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport { withBoxProps, createVarsResolver, getRadius, useStyles } from '../../../core'\nimport { UnstyledButton } from '../../UnstyledButton'\nimport { useCheckboxGroupContext } from '../CheckboxGroup/CheckboxGroup'\nimport classes from './CheckboxCard.module.css'\n\nexport interface CheckboxCardContextValue {\n checked: boolean\n}\n\nconst CheckboxCardContextKey: InjectionKey<CheckboxCardContextValue> = Symbol('CheckboxCardContext')\n\nexport function useCheckboxCardContext() {\n return inject(CheckboxCardContextKey, null)\n}\n\nconst varsResolver = createVarsResolver<any>((_, { radius }) => ({\n card: {\n '--card-radius': getRadius(radius),\n },\n}))\n\nexport const CheckboxCard = withBoxProps(\n defineComponent({\n name: 'CheckboxCard',\n inheritAttrs: false,\n props: {\n checked: { type: Boolean, default: undefined },\n defaultChecked: { type: Boolean, default: undefined },\n onChange: { type: Function as PropType<(value: boolean) => void>, default: undefined },\n withBorder: { type: Boolean, default: true },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n value: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const groupContext = useCheckboxGroupContext()\n const [checked, setChecked] = useUncontrolled<boolean>({\n value: () =>\n typeof props.checked === 'boolean'\n ? props.checked\n : groupContext\n ? groupContext.value.includes(props.value || '')\n : undefined,\n defaultValue: props.defaultChecked,\n finalValue: false,\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n const getStyles = useStyles({\n name: 'CheckboxCard',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provide(CheckboxCardContextKey, {\n get checked() {\n return checked.value\n },\n })\n\n return () =>\n h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('card', { className: attrs.class, style: attrs.style as any }),\n __staticSelector: 'CheckboxCard',\n mod: [{ 'with-border': props.withBorder, checked: checked.value }, props.mod],\n role: 'checkbox',\n 'aria-checked': checked.value,\n onClick: (event: MouseEvent) => {\n const handler = attrs.onClick as ((event: MouseEvent) => void) | undefined\n handler?.(event)\n groupContext?.onChange(props.value || '')\n setChecked(!checked.value)\n },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n\nObject.assign(CheckboxCard, { classes, varsResolver })\n",".indicator {\n --checkbox-size-xs: 16px;\n --checkbox-size-sm: 20px;\n --checkbox-size-md: 24px;\n --checkbox-size-lg: 30px;\n --checkbox-size-xl: 36px;\n\n --checkbox-size: var(--checkbox-size-sm);\n --checkbox-color: var(--mantine-primary-color-filled);\n\n &:where([data-variant='filled']) {\n --checkbox-icon-color: var(--mantine-color-white);\n }\n\n &:where([data-variant='outline']) {\n --checkbox-icon-color: var(--checkbox-color);\n }\n\n position: relative;\n border: 1px solid transparent;\n width: var(--checkbox-size);\n min-width: var(--checkbox-size);\n height: var(--checkbox-size);\n min-height: var(--checkbox-size);\n border-radius: var(--checkbox-radius, var(--mantine-radius-default));\n transition:\n border-color 100ms ease,\n background-color 100ms ease;\n cursor: var(--mantine-cursor-type);\n -webkit-tap-highlight-color: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border-color: var(--mantine-color-gray-4);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n border-color: var(--mantine-color-dark-4);\n }\n\n &[data-indeterminate],\n &[data-checked] {\n background-color: var(--checkbox-color);\n border-color: var(--checkbox-color);\n\n & > .icon {\n opacity: 1;\n transform: none;\n color: var(--checkbox-icon-color);\n }\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n border-color: var(--mantine-color-disabled-border);\n background-color: var(--mantine-color-disabled);\n\n &[data-checked] > .icon {\n @mixin light {\n color: var(--mantine-color-gray-5);\n }\n\n @mixin dark {\n color: var(--mantine-color-dark-3);\n }\n }\n }\n}\n\n.indicator:where([data-variant='outline']) {\n &[data-indeterminate]:not([data-disabled]),\n &[data-checked]:not([data-disabled]) {\n background-color: transparent;\n border-color: var(--checkbox-color);\n\n & > .icon {\n color: var(--checkbox-icon-color);\n opacity: 1;\n transform: none;\n }\n }\n}\n\n.icon {\n display: block;\n width: 60%;\n color: transparent;\n pointer-events: none;\n transform: translateY(rem(5px)) scale(0.5);\n opacity: 1;\n transition:\n transform 100ms ease,\n opacity 100ms ease;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getSize,\n getThemeColor,\n useStyles,\n} from '../../../core'\nimport { CheckboxIcon } from '../CheckIcon'\nimport { useCheckboxCardContext } from '../CheckboxCard/CheckboxCard'\nimport classes from './CheckboxIndicator.module.css'\n\nexport type CheckboxIndicatorVariant = 'filled' | 'outline'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, size, iconColor, autoContrast }) => ({\n indicator: {\n '--checkbox-size': getSize(size, 'checkbox-size'),\n '--checkbox-radius': radius === undefined ? undefined : getRadius(radius),\n '--checkbox-color': getThemeColor(color, theme),\n '--checkbox-icon-color': iconColor\n ? getThemeColor(iconColor, theme)\n : getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n },\n }),\n)\n\nexport const CheckboxIndicator = withBoxProps(\n defineComponent({\n name: 'CheckboxIndicator',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n radius: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n iconColor: { type: String, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n indeterminate: { type: Boolean, default: false },\n icon: { type: [Object, Function] as PropType<any>, default: undefined },\n checked: { type: Boolean, default: undefined },\n disabled: { type: Boolean, default: false },\n variant: { type: String as PropType<CheckboxIndicatorVariant>, default: 'filled' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const cardContext = useCheckboxCardContext()\n const getStyles = useStyles({\n name: 'CheckboxIndicator',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const Icon = props.icon || CheckboxIcon\n const checked =\n typeof props.checked === 'boolean' || props.indeterminate\n ? props.checked || props.indeterminate\n : cardContext?.checked || false\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('indicator', { className: attrs.class, style: attrs.style as any }),\n variant: props.variant,\n mod: [\n { checked, indeterminate: props.indeterminate, disabled: props.disabled },\n props.mod,\n ],\n },\n () => h(Icon, { indeterminate: props.indeterminate, ...getStyles('icon') }),\n )\n }\n },\n }),\n)\n\nObject.assign(CheckboxIndicator, { classes, varsResolver })\n",".root {\n --checkbox-size-xs: 16px;\n --checkbox-size-sm: 20px;\n --checkbox-size-md: 24px;\n --checkbox-size-lg: 30px;\n --checkbox-size-xl: 36px;\n\n --checkbox-size: var(--checkbox-size-sm);\n --checkbox-color: var(--mantine-primary-color-filled);\n\n &:where([data-variant='filled']) {\n --checkbox-icon-color: var(--mantine-color-white);\n }\n\n &:where([data-variant='outline']) {\n --checkbox-icon-color: var(--checkbox-color);\n }\n}\n\n.inner {\n position: relative;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n order: 1;\n\n &:where([data-label-position='left']) {\n order: 2;\n }\n}\n\n.input {\n appearance: none;\n border: 1px solid transparent;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n border-radius: var(--checkbox-radius, var(--mantine-radius-default));\n padding: 0;\n display: block;\n margin: 0;\n transition:\n border-color 100ms ease,\n background-color 100ms ease;\n cursor: var(--mantine-cursor-type);\n -webkit-tap-highlight-color: transparent;\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border-color: var(--mantine-color-gray-4);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n border-color: var(--mantine-color-dark-4);\n }\n\n &:where([data-with-error-styles][data-error]) {\n border-color: var(--mantine-color-error);\n }\n\n &[data-indeterminate],\n &:checked {\n background-color: var(--checkbox-color);\n border-color: var(--checkbox-color);\n\n & + .icon {\n opacity: 1;\n transform: none;\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n border-color: var(--mantine-color-disabled-border);\n background-color: var(--mantine-color-disabled);\n\n & + .icon {\n color: var(--mantine-color-disabled-color);\n }\n }\n}\n\n.input:where([data-variant='outline']) {\n & + .icon {\n color: var(--checkbox-color);\n }\n\n &[data-indeterminate]:not(:disabled),\n &:checked:not(:disabled) {\n background-color: transparent;\n border-color: var(--checkbox-color);\n\n & + .icon {\n color: var(--checkbox-icon-color);\n opacity: 1;\n transform: none;\n }\n }\n}\n\n.icon {\n position: absolute;\n inset: 0;\n width: 60%;\n margin: auto;\n color: var(--checkbox-icon-color);\n pointer-events: none;\n transform: translateY(rem(5px)) scale(0.5);\n opacity: 0;\n transition:\n transform 100ms ease,\n opacity 100ms ease;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useId, assignRef } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getSize,\n getThemeColor,\n useStyles,\n} from '../../core'\nimport { InlineInput, InlineInputClasses } from '../../utils'\nimport { CheckboxIcon } from './CheckIcon'\nimport { CheckboxCard } from './CheckboxCard/CheckboxCard'\nimport { CheckboxGroup, useCheckboxGroupContext } from './CheckboxGroup/CheckboxGroup'\nimport { CheckboxIndicator } from './CheckboxIndicator/CheckboxIndicator'\nimport classes from './Checkbox.module.css'\n\nexport type CheckboxVariant = 'filled' | 'outline'\nexport type CheckboxStylesNames =\n | 'icon'\n | 'inner'\n | 'input'\n | 'root'\n | 'body'\n | 'labelWrapper'\n | 'label'\n | 'description'\n | 'error'\n\nconst mergedClasses = { ...InlineInputClasses, ...classes }\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, size, iconColor, autoContrast }) => ({\n root: {\n '--checkbox-size': getSize(size, 'checkbox-size'),\n '--checkbox-radius': radius === undefined ? undefined : getRadius(radius),\n '--checkbox-color': getThemeColor(color, theme),\n '--checkbox-icon-color': iconColor\n ? getThemeColor(iconColor, theme)\n : getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n },\n }),\n)\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nconst CheckboxBase = defineComponent({\n name: 'Checkbox',\n inheritAttrs: false,\n props: {\n id: { type: String, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n radius: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n labelPosition: { type: String as PropType<'left' | 'right'>, default: 'right' },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n indeterminate: { type: Boolean, default: false },\n icon: { type: [Object, Function] as PropType<any>, default: undefined },\n rootRef: { type: [Object, Function] as PropType<any>, default: undefined },\n iconColor: { type: String, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n withErrorStyles: { type: Boolean, default: true },\n checked: { type: Boolean, default: undefined },\n disabled: { type: Boolean, default: false },\n readOnly: { type: Boolean, default: false },\n variant: { type: String as PropType<CheckboxVariant>, default: 'filled' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const uuid = useId(props.id)\n const groupContext = useCheckboxGroupContext()\n const getStyles = useStyles({\n name: 'Checkbox',\n props,\n classes: mergedClasses,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const id = uuid.value || props.id || ''\n const descriptionId = props.description ? `${id}-description` : undefined\n const errorId = props.error && typeof props.error !== 'boolean' ? `${id}-error` : undefined\n const describedBy =\n [descriptionId, errorId, attrs['aria-describedby']].filter(Boolean).join(' ') || undefined\n const Icon = props.icon || CheckboxIcon\n const value = String(attrs.value ?? '')\n const checked = groupContext ? groupContext.value.includes(value) : props.checked\n const disabled = groupContext?.isDisabled?.(value) || props.disabled\n const size = groupContext?.size ?? props.size\n\n return h(\n InlineInput,\n {\n ...props.wrapperProps,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n __staticSelector: 'Checkbox',\n __stylesApiProps: props,\n id,\n size,\n labelPosition: props.labelPosition,\n label: props.label,\n description: props.description,\n error: props.error,\n disabled,\n classNames: props.classNames,\n styles: props.styles,\n unstyled: props.unstyled,\n 'data-checked': checked || undefined,\n variant: props.variant,\n ref: (node: any) => assignRef(props.rootRef, node?.$el ?? node ?? null),\n mod: props.mod,\n },\n () =>\n h(Box, { ...getStyles('inner'), mod: { labelPosition: props.labelPosition } }, () => [\n h(Box, {\n ...attrs,\n ...getStyles('input', { style: undefined }),\n component: 'input',\n id,\n checked: props.indeterminate ? false : checked,\n disabled,\n readonly: props.readOnly,\n type: 'checkbox',\n 'aria-describedby': describedBy,\n 'data-indeterminate': props.indeterminate || undefined,\n mod: { error: Boolean(props.error), withErrorStyles: props.withErrorStyles },\n variant: props.variant,\n onClick: (event: MouseEvent) => {\n callHandler(attrs.onClick, event)\n if (props.readOnly && props.checked === undefined) {\n event.preventDefault()\n }\n },\n onChange: (event: Event) => {\n callHandler(attrs.onChange, event)\n groupContext?.onChange(event)\n },\n }),\n h(Icon, { indeterminate: props.indeterminate, ...getStyles('icon') }),\n ]),\n )\n }\n },\n})\n\nexport const Checkbox = withBoxProps(\n Object.assign(CheckboxBase, {\n classes: mergedClasses,\n varsResolver,\n Group: CheckboxGroup,\n Indicator: CheckboxIndicator,\n Card: CheckboxCard,\n }),\n)\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\n\nexport type ChipGroupValue = string | null | string[]\n\nexport interface ChipGroupContextValue {\n isChipSelected: (value: string) => boolean\n onChange: (event: Event) => void\n multiple?: boolean\n}\n\nconst ChipGroupContextKey: InjectionKey<ChipGroupContextValue> = Symbol('ChipGroupContext')\n\nexport function useChipGroupContext() {\n return inject(ChipGroupContextKey, null)\n}\n\nexport const ChipGroup = defineComponent({\n name: 'ChipGroup',\n props: {\n multiple: { type: Boolean, default: false },\n value: {\n type: [String, Array] as PropType<string | string[] | null | undefined>,\n default: undefined,\n },\n defaultValue: {\n type: [String, Array] as PropType<string | string[] | null | undefined>,\n default: undefined,\n },\n onChange: {\n type: Function as PropType<(value: string | string[]) => void>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const [value, setValue] = useUncontrolled<ChipGroupValue>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: props.multiple ? [] : null,\n onChange: (nextValue) => props.onChange?.(nextValue as string | string[]),\n })\n\n const isChipSelected = (chipValue: string) =>\n Array.isArray(value.value) ? value.value.includes(chipValue) : value.value === chipValue\n\n const handleChange = (event: Event) => {\n const chipValue = String((event.currentTarget as HTMLInputElement | null)?.value ?? '')\n\n if (Array.isArray(value.value)) {\n setValue(\n value.value.includes(chipValue)\n ? value.value.filter((item) => item !== chipValue)\n : [...value.value, chipValue],\n )\n } else {\n setValue(chipValue)\n }\n }\n\n provide(ChipGroupContextKey, {\n isChipSelected,\n onChange: handleChange,\n get multiple() {\n return props.multiple\n },\n })\n\n return () => h('div', { style: { display: 'contents' } }, slots.default?.())\n },\n})\n",".root {\n --chip-size-xs: 23px;\n --chip-size-sm: 28px;\n --chip-size-md: 32px;\n --chip-size-lg: 36px;\n --chip-size-xl: 40px;\n\n --chip-icon-size-xs: 9px;\n --chip-icon-size-sm: 12px;\n --chip-icon-size-md: 14px;\n --chip-icon-size-lg: 16px;\n --chip-icon-size-xl: 18px;\n\n --chip-padding-xs: 16px;\n --chip-padding-sm: 20px;\n --chip-padding-md: 24px;\n --chip-padding-lg: 28px;\n --chip-padding-xl: 32px;\n\n --chip-checked-padding-xs: 8.2px;\n --chip-checked-padding-sm: 10px;\n --chip-checked-padding-md: 11.7px;\n --chip-checked-padding-lg: 13.5px;\n --chip-checked-padding-xl: 15.7px;\n\n --chip-spacing-xs: 10px;\n --chip-spacing-sm: 12px;\n --chip-spacing-md: 16px;\n --chip-spacing-lg: 20px;\n --chip-spacing-xl: 22px;\n\n --chip-size: var(--chip-size-sm);\n --chip-icon-size: var(--chip-icon-size-sm);\n --chip-padding: var(--chip-padding-sm);\n --chip-spacing: var(--chip-spacing-sm);\n --chip-checked-padding: var(--chip-checked-padding-sm);\n --chip-bg: var(--mantine-primary-color-filled);\n --chip-hover: var(--mantine-primary-color-filled-hover);\n --chip-color: var(--mantine-color-white);\n --chip-bd: 1px solid transparent;\n}\n\n.label {\n display: inline-flex;\n align-items: center;\n user-select: none;\n border-radius: var(--chip-radius, 1000rem);\n height: var(--chip-size);\n font-size: var(--chip-fz, var(--mantine-font-size-sm));\n line-height: calc(var(--chip-size) - rem(2px));\n padding-inline: var(--chip-padding);\n cursor: pointer;\n white-space: nowrap;\n -webkit-tap-highlight-color: transparent;\n border: 1px solid transparent;\n color: var(--mantine-color-text);\n text-box-trim: trim-both;\n text-box-edge: cap alphabetic;\n\n &:where([data-checked]) {\n padding-inline: var(--chip-checked-padding);\n }\n\n &:where([data-disabled]) {\n cursor: not-allowed;\n background-color: var(--mantine-color-disabled);\n color: var(--mantine-color-disabled-color);\n }\n}\n\n.label:where([data-variant='outline']:not([data-disabled])) {\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border: 1px solid var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n border: 1px solid var(--mantine-color-dark-4);\n }\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n &:where([data-checked]) {\n --chip-icon-color: var(--chip-color);\n border: var(--chip-bd);\n\n @mixin hover {\n background-color: var(--chip-hover);\n }\n }\n}\n\n.label:where([data-variant='filled']:not([data-disabled])),\n.label:where([data-variant='light']:not([data-disabled])) {\n border: 1px solid transparent;\n color: var(--mantine-color-text);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n }\n\n &:where([data-checked]) {\n --chip-icon-color: var(--chip-color);\n color: var(--chip-color);\n background-color: var(--chip-bg);\n\n @mixin hover {\n background-color: var(--chip-hover);\n }\n }\n}\n\n.iconWrapper {\n width: calc(var(--chip-icon-size) + (var(--chip-spacing) / 1.5));\n max-width: calc(var(--chip-icon-size) + (var(--chip-spacing) / 1.5));\n height: var(--chip-icon-size);\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n\n.checkIcon {\n width: var(--chip-icon-size);\n height: var(--chip-icon-size);\n display: block;\n color: var(--chip-icon-color, inherit);\n}\n\n.input {\n width: 0;\n height: 0;\n padding: 0;\n opacity: 0;\n margin: 0;\n\n &:focus-visible + .label {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { assignRef, useId, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../core'\nimport { CheckIcon } from '../Checkbox'\nimport { ChipGroup, useChipGroupContext } from './ChipGroup/ChipGroup'\nimport classes from './Chip.module.css'\n\nexport type ChipStylesNames = 'root' | 'input' | 'iconWrapper' | 'checkIcon' | 'label'\nexport type ChipVariant = 'outline' | 'filled' | 'light'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { size, radius, variant, color, autoContrast }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n variant: variant || 'filled',\n autoContrast,\n })\n\n return {\n root: {\n '--chip-fz': getFontSize(size),\n '--chip-size': getSize(size, 'chip-size'),\n '--chip-radius': radius === undefined ? undefined : getRadius(radius),\n '--chip-checked-padding': getSize(size, 'chip-checked-padding'),\n '--chip-padding': getSize(size, 'chip-padding'),\n '--chip-icon-size': getSize(size, 'chip-icon-size'),\n '--chip-bg': color || variant ? colors.background : undefined,\n '--chip-hover': color || variant ? colors.hover : undefined,\n '--chip-color': color || variant ? colors.color : undefined,\n '--chip-bd': color || variant ? colors.border : undefined,\n '--chip-spacing': getSize(size, 'chip-spacing'),\n },\n }\n },\n)\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nconst ChipBase = defineComponent({\n name: 'Chip',\n inheritAttrs: false,\n props: {\n id: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n type: { type: String as PropType<'radio' | 'checkbox'>, default: 'checkbox' },\n checked: { type: Boolean, default: undefined },\n defaultChecked: { type: Boolean, default: undefined },\n onChange: { type: Function as PropType<(checked: boolean) => void>, default: undefined },\n color: { type: String, default: undefined },\n value: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n icon: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n rootRef: { type: [Object, Function] as PropType<any>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n variant: { type: String as PropType<ChipVariant>, default: 'filled' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Chip', null, rawProps)\n const groupContext = useChipGroupContext()\n const uuid = useId(props.id)\n const [value, setValue] = useUncontrolled<boolean>({\n value: () => props.checked,\n defaultValue: props.defaultChecked,\n finalValue: false,\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n const getStyles = useStyles({\n name: 'Chip',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const id = uuid.value || props.id || ''\n const chipValue = props.value ?? String(attrs.value ?? '')\n const checked = groupContext ? groupContext.isChipSelected(chipValue) : value.value\n const inputType = groupContext ? (groupContext.multiple ? 'checkbox' : 'radio') : props.type\n const icon = props.icon ?? slots.icon\n const showIcon = checked && icon !== null && icon !== false\n const {\n class: _class,\n style: _style,\n onChange: attrsOnChange,\n value: _attrsValue,\n ...inputAttrs\n } = attrs as Record<string, any>\n const renderIcon = () => {\n const iconProps = getStyles('checkIcon')\n\n if (icon === undefined) {\n return h(CheckIcon, iconProps)\n }\n\n return typeof icon === 'function' ? icon(iconProps) : icon\n }\n\n return h(\n Box,\n {\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n ...props.wrapperProps,\n component: 'div',\n variant: props.variant,\n mod: props.mod,\n ref: (node: any) => assignRef(props.rootRef, node?.$el ?? node ?? null),\n },\n () => [\n h('input', {\n ...inputAttrs,\n ...getStyles('input'),\n id,\n type: inputType,\n checked,\n disabled: props.disabled,\n value: chipValue,\n onChange: (event: Event) => {\n callHandler(attrsOnChange, event)\n\n if (groupContext) {\n groupContext.onChange(event)\n props.onChange?.((event.currentTarget as HTMLInputElement).checked)\n } else {\n setValue((event.currentTarget as HTMLInputElement).checked)\n }\n },\n }),\n h(\n Box,\n {\n component: 'label',\n htmlFor: id,\n variant: props.variant || 'filled',\n mod: { checked, disabled: props.disabled },\n ...getStyles('label'),\n },\n () => [\n showIcon ? h('span', getStyles('iconWrapper'), renderIcon()) : null,\n h('span', null, slots.default?.()),\n ],\n ),\n ],\n )\n }\n },\n})\n\nexport const Chip = withBoxProps(\n Object.assign(ChipBase, {\n classes,\n varsResolver,\n Group: ChipGroup,\n }),\n)\n","import { inject, provide, type InjectionKey, type Ref } from 'vue'\nimport type { InputVariant } from '../Input'\n\nexport interface PillsInputContextValue {\n fieldRef: Ref<HTMLInputElement | null>\n size?: string | number\n disabled?: boolean\n hasError?: boolean\n variant?: InputVariant | (string & {})\n}\n\nconst PillsInputContextKey: InjectionKey<PillsInputContextValue> = Symbol('PillsInputContext')\n\nexport function providePillsInputContext(value: PillsInputContextValue) {\n provide(PillsInputContextKey, value)\n}\n\nexport function usePillsInputContext() {\n return inject(PillsInputContextKey, null)\n}\n",".root {\n --pill-fz-xs: 10px;\n --pill-fz-sm: 12px;\n --pill-fz-md: 14px;\n --pill-fz-lg: 16px;\n --pill-fz-xl: 18px;\n\n --pill-height-xs: 18px;\n --pill-height-sm: 22px;\n --pill-height-md: 25px;\n --pill-height-lg: 28px;\n --pill-height-xl: 32px;\n\n --pill-fz: var(--pill-fz-sm);\n --pill-height: var(--pill-height-sm);\n\n font-size: var(--pill-fz);\n flex: 0;\n height: var(--pill-height);\n padding-inline: 0.8em;\n display: inline-flex;\n align-items: center;\n border-radius: var(--pill-radius, 1000rem);\n line-height: 1;\n white-space: nowrap;\n user-select: none;\n -webkit-user-select: none;\n max-width: 100%;\n position: relative;\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-7);\n color: var(--mantine-color-dark-0);\n }\n\n @mixin where-light {\n color: var(--mantine-color-black);\n }\n\n &:where([data-with-remove]:not(:has(button:disabled))) {\n padding-inline-end: 0;\n }\n\n &:where([data-disabled], :has(button:disabled)) {\n cursor: not-allowed;\n }\n\n &:where([draggable='true']) {\n cursor: grab;\n }\n\n &:where([draggable='true']):focus-visible {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n\n &:where([data-dragging]) {\n opacity: 0.4;\n cursor: grabbing;\n }\n\n &:where([data-drag-over='before'])::before,\n &:where([data-drag-over='after'])::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n width: rem(2px);\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='before'])::before {\n inset-inline-start: rem(-4px);\n }\n\n &:where([data-drag-over='after'])::after {\n inset-inline-end: rem(-4px);\n }\n\n &:where([data-variant='default']) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n\n &:where([data-disabled], :has(button:disabled)) {\n background-color: var(--mantine-color-disabled);\n }\n }\n }\n\n &:where([data-variant='contrast']) {\n @mixin where-light {\n background-color: var(--mantine-color-white);\n\n &:where([data-disabled], :has(button:disabled)) {\n background-color: var(--mantine-color-disabled);\n }\n }\n }\n}\n\n.label {\n cursor: inherit;\n display: block;\n overflow: hidden;\n height: 100%;\n line-height: var(--pill-height);\n text-overflow: ellipsis;\n}\n\n.remove {\n color: inherit;\n font-size: inherit;\n height: 100%;\n min-height: unset;\n min-width: 2em;\n width: unset;\n border-radius: 0;\n padding-inline-start: 0.1em;\n padding-inline-end: 0.3em;\n flex: 0;\n border-end-end-radius: var(--pill-radius, 50%);\n border-start-end-radius: var(--pill-radius, 50%);\n\n .root[data-disabled] > &,\n &:disabled {\n display: none;\n background-color: transparent;\n width: 0.8em;\n min-width: 0.8em;\n padding: 0;\n cursor: not-allowed;\n\n & > svg {\n display: none;\n }\n }\n\n & > svg {\n pointer-events: none;\n }\n}\n\n.group {\n --pg-gap-xs: 6px;\n --pg-gap-sm: 8px;\n --pg-gap-md: 10px;\n --pg-gap-lg: 12px;\n --pg-gap-xl: 12px;\n --pg-gap: var(--pg-gap-sm);\n\n display: flex;\n align-items: center;\n gap: var(--pg-gap);\n flex-wrap: wrap;\n}\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSize, useProps, useStyles } from '../../../core'\nimport { usePillsInputContext } from '../../PillsInput/PillsInput.context'\nimport classes from '../Pill.module.css'\n\nexport interface PillGroupContextValue {\n size?: string | number\n disabled?: boolean\n}\n\nconst PillGroupContextKey: InjectionKey<PillGroupContextValue> = Symbol('PillGroupContext')\n\nexport function usePillGroupContext() {\n return inject(PillGroupContextKey, null)\n}\n\nexport type PillGroupStylesNames = 'group'\n\nconst varsResolver = createVarsResolver<any>((_, { gap }, ctx) => ({\n group: {\n '--pg-gap': gap !== undefined ? getSize(gap) : getSize(ctx.size, 'pg-gap'),\n },\n}))\n\nexport const PillGroup = withBoxProps(\n defineComponent({\n name: 'PillGroup',\n inheritAttrs: false,\n props: {\n gap: { type: [String, Number] as PropType<string | number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('PillGroup', null, rawProps)\n const pillsInputContext = usePillsInputContext()\n const getSizeValue = () => pillsInputContext?.size || props.size || undefined\n const getStyles = useStyles({\n name: 'PillGroup',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n stylesCtx: {\n get size() {\n return getSizeValue()\n },\n },\n })\n\n provide(PillGroupContextKey, {\n get size() {\n return getSizeValue()\n },\n get disabled() {\n return props.disabled\n },\n })\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('group', { className: attrs.class, style: attrs.style as any }),\n component: 'div',\n 'data-size': getSizeValue(),\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n\nObject.assign(PillGroup, { classes, varsResolver })\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n useProps,\n useStyles,\n} from '../../core'\nimport { CloseButton } from '../CloseButton'\nimport { usePillsInputContext } from '../PillsInput/PillsInput.context'\nimport { PillGroup, usePillGroupContext } from './PillGroup/PillGroup'\nimport classes from './Pill.module.css'\n\nexport type PillStylesNames = 'root' | 'label' | 'remove'\nexport type PillVariant = 'default' | 'contrast'\n\nconst varsResolver = createVarsResolver<any>((_, { radius }, ctx) => ({\n root: {\n '--pill-fz': getSize(ctx.size, 'pill-fz'),\n '--pill-height': getSize(ctx.size, 'pill-height'),\n '--pill-radius': radius === undefined ? undefined : getRadius(radius),\n },\n}))\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nconst PillBase = defineComponent({\n name: 'Pill',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n withRemoveButton: { type: Boolean, default: false },\n onRemove: { type: Function as PropType<() => void>, default: undefined },\n removeButtonProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n disabled: { type: Boolean, default: false },\n variant: { type: String as PropType<PillVariant>, default: 'default' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Pill', null, rawProps)\n const groupContext = usePillGroupContext()\n const pillsInputContext = usePillsInputContext()\n const getSizeValue = () => props.size || groupContext?.size || undefined\n const getVariant = () =>\n pillsInputContext?.variant === 'filled' ? 'contrast' : props.variant || 'default'\n const getDisabled = () => props.disabled || groupContext?.disabled\n const getStyles = useStyles({\n name: 'Pill',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n stylesCtx: {\n get size() {\n return getSizeValue()\n },\n },\n })\n\n return () => {\n const disabled = getDisabled()\n const removeButtonProps = props.removeButtonProps ?? {}\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: 'span',\n variant: getVariant(),\n 'data-size': getSizeValue(),\n mod: [{ 'with-remove': props.withRemoveButton && !disabled, disabled }, props.mod],\n },\n () => [\n h('span', getStyles('label'), slots.default?.()),\n props.withRemoveButton\n ? h(CloseButton, {\n variant: 'transparent',\n radius: props.radius,\n tabIndex: -1,\n 'aria-hidden': true,\n unstyled: props.unstyled,\n ...removeButtonProps,\n ...getStyles('remove', {\n className: removeButtonProps.class,\n style: removeButtonProps.style,\n }),\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n callHandler(\n removeButtonProps.onMousedown ??\n removeButtonProps.onMousedown ??\n removeButtonProps.onMouseDown,\n event,\n )\n },\n onClick: (event: MouseEvent) => {\n event.stopPropagation()\n props.onRemove?.()\n callHandler(removeButtonProps.onClick, event)\n },\n })\n : null,\n ],\n )\n }\n },\n})\n\nexport const Pill = withBoxProps(\n Object.assign(PillBase, {\n classes,\n varsResolver,\n Group: PillGroup,\n }),\n)\n",".field {\n background-color: transparent;\n appearance: none;\n min-width: 100px;\n flex: 1;\n border: 0;\n font-size: inherit;\n height: 1.6em;\n color: inherit;\n padding: 0;\n\n &::placeholder {\n color: var(--input-placeholder-color);\n opacity: 1;\n }\n\n &:where([data-type='hidden'], [data-type='auto']) {\n height: 1px;\n width: 1px;\n top: 0;\n left: 0;\n pointer-events: none;\n position: absolute;\n opacity: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &:where([data-type='auto']:focus) {\n height: 1.6em;\n visibility: visible;\n opacity: 1;\n position: static;\n }\n\n &:where([data-pointer]:not([data-disabled], :disabled)) {\n cursor: pointer;\n }\n\n &:where([data-disabled], :disabled) {\n cursor: not-allowed;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { assignRef } from '@mantine-vue/hooks'\nimport { withBoxProps, Box, useProps, useStyles } from '../../../core'\nimport { useInputWrapperContext } from '../../Input'\nimport { usePillsInputContext } from '../PillsInput.context'\nimport classes from '../PillsInput.module.css'\n\nexport type PillsInputFieldStylesNames = 'field'\n\nexport const PillsInputField = withBoxProps(\n defineComponent({\n name: 'PillsInputField',\n inheritAttrs: false,\n props: {\n type: { type: String as PropType<'auto' | 'visible' | 'hidden'>, default: 'visible' },\n pointer: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { type: String, default: undefined },\n inputRef: { type: [Object, Function] as PropType<any>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('PillsInputField', null, rawProps)\n const context = usePillsInputContext()\n const inputWrapperContext = useInputWrapperContext()\n const getStyles = useStyles({\n name: 'PillsInputField',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n })\n\n return () => {\n const disabled = props.disabled || context?.disabled\n\n return h(Box, {\n ...attrs,\n ...getStyles('field', { className: attrs.class, style: attrs.style as any }),\n component: 'input',\n ref: (node: any) => {\n const input = node?.$el ?? node ?? null\n if (context) {\n context.fieldRef.value = input\n }\n assignRef(props.inputRef, input)\n },\n 'data-type': props.type,\n disabled,\n mod: [{ disabled, pointer: props.pointer }, props.mod],\n id: inputWrapperContext.inputId || props.id,\n 'aria-invalid': context?.hasError || undefined,\n 'aria-describedby': inputWrapperContext.describedBy,\n type: 'text',\n onMousedown: (event: MouseEvent) => {\n if (!props.pointer) {\n event.stopPropagation()\n }\n },\n })\n }\n },\n }),\n)\n\nObject.assign(PillsInputField, { classes })\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { InputBase } from '../InputBase'\nimport { providePillsInputContext } from './PillsInput.context'\nimport { PillsInputField } from './PillsInputField/PillsInputField'\n\nconst PillsInputBase = defineComponent({\n name: 'PillsInput',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n disabled: { type: Boolean, default: false },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n variant: { type: String as PropType<'default' | 'filled' | 'unstyled'>, default: 'default' },\n __staticSelector: { type: String, default: undefined },\n __stylesApiProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n required: { type: Boolean, default: false },\n withAsterisk: { type: Boolean, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n },\n setup(props, { attrs, slots }) {\n const fieldRef = ref<HTMLInputElement | null>(null)\n\n providePillsInputContext({\n fieldRef,\n get size() {\n return props.size\n },\n get disabled() {\n return props.disabled\n },\n get hasError() {\n return Boolean(props.error)\n },\n get variant() {\n return props.variant\n },\n })\n\n const focusField = () => fieldRef.value?.focus()\n\n return () =>\n h(\n InputBase,\n {\n ...attrs,\n size: props.size,\n error: props.error,\n variant: props.variant,\n component: 'div',\n 'data-no-overflow': true,\n multiline: true,\n disabled: props.disabled,\n __staticSelector: props.__staticSelector || 'PillsInput',\n __stylesApiProps: props.__stylesApiProps,\n withAria: false,\n label: props.label,\n description: props.description,\n required: props.required,\n withAsterisk: props.withAsterisk,\n wrapperProps: props.wrapperProps,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n radius: props.radius,\n mod: props.mod,\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n focusField()\n const handler = (attrs as any).onMousedown ?? (attrs as any).onMouseDown\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n },\n onClick: (event: MouseEvent) => {\n event.preventDefault()\n const fieldset = (event.currentTarget as HTMLElement).closest(\n 'fieldset',\n ) as HTMLFieldSetElement | null\n if (!fieldset?.disabled) {\n focusField()\n const handler = (attrs as any).onClick\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n }\n },\n },\n () => slots.default?.(),\n )\n },\n})\n\nexport const PillsInput = Object.assign(PillsInputBase, {\n classes: InputBase.classes,\n Field: PillsInputField,\n})\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { useId, useUncontrolled } from '@mantine-vue/hooks'\nimport { InputWrapper } from '../../Input'\nimport { InputsGroupFieldset } from '../../../utils'\n\nexport interface RadioGroupContextValue {\n value: string | null\n onChange: (eventOrValue: Event | string) => void\n size?: string | number\n name?: string\n disabled?: boolean\n}\n\nconst RadioGroupContextKey: InjectionKey<RadioGroupContextValue> = Symbol('RadioGroupContext')\n\nexport function useRadioGroupContext() {\n return inject(RadioGroupContextKey, null)\n}\n\nexport const RadioGroup = defineComponent({\n name: 'RadioGroup',\n inheritAttrs: false,\n props: {\n value: { type: String as PropType<string | null | undefined>, default: undefined },\n defaultValue: { type: String as PropType<string | null | undefined>, default: undefined },\n onChange: { type: Function as PropType<(value: string) => void>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n name: { type: String, default: undefined },\n readOnly: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const name = useId(props.name)\n const [value, setValue] = useUncontrolled<string | null>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: '',\n onChange: (nextValue) => props.onChange?.(String(nextValue ?? '')),\n })\n\n const handleChange = (eventOrValue: Event | string) => {\n if (props.readOnly) {\n return\n }\n\n const itemValue =\n typeof eventOrValue === 'string'\n ? eventOrValue\n : String((eventOrValue.currentTarget as HTMLInputElement | null)?.value ?? '')\n setValue(itemValue)\n }\n\n provide(RadioGroupContextKey, {\n get value() {\n return value.value\n },\n onChange: handleChange,\n get size() {\n return props.size\n },\n get name() {\n return name.value || props.name\n },\n get disabled() {\n return props.disabled\n },\n })\n\n return () =>\n h(\n InputWrapper,\n {\n size: props.size,\n ...props.wrapperProps,\n ...attrs,\n label: props.label,\n description: props.description,\n error: props.error,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n labelElement: 'div',\n __staticSelector: 'RadioGroup',\n } as any,\n () => h(InputsGroupFieldset, { role: 'radiogroup' }, () => slots.default?.()),\n )\n },\n})\n\nObject.assign(RadioGroup, { classes: InputWrapper.classes })\n",".card {\n --card-radius: var(--mantine-radius-default);\n\n display: block;\n width: 100%;\n border-radius: var(--card-radius);\n cursor: pointer;\n\n & :where(*) {\n cursor: inherit;\n }\n\n &:where([data-with-border]) {\n border: 1px solid transparent;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n }\n}\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { withBoxProps, createVarsResolver, getRadius, useStyles } from '../../../core'\nimport { UnstyledButton } from '../../UnstyledButton'\nimport { useRadioGroupContext } from '../RadioGroup/RadioGroup'\nimport classes from './RadioCard.module.css'\n\nexport interface RadioCardContextValue {\n checked: boolean\n}\n\nconst RadioCardContextKey: InjectionKey<RadioCardContextValue> = Symbol('RadioCardContext')\n\nexport function useRadioCardContext() {\n return inject(RadioCardContextKey, null)\n}\n\nconst varsResolver = createVarsResolver<any>((_, { radius }) => ({\n card: {\n '--card-radius': getRadius(radius),\n },\n}))\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nexport const RadioCard = withBoxProps(\n defineComponent({\n name: 'RadioCard',\n inheritAttrs: false,\n props: {\n checked: { type: Boolean, default: undefined },\n withBorder: { type: Boolean, default: true },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n value: { type: String, default: undefined },\n name: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const groupContext = useRadioGroupContext()\n const getStyles = useStyles({\n name: 'RadioCard',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n const isChecked = () =>\n typeof props.checked === 'boolean'\n ? props.checked\n : groupContext?.value === props.value || false\n\n provide(RadioCardContextKey, {\n get checked() {\n return isChecked()\n },\n })\n\n return () => {\n const checked = isChecked()\n const name = props.name || groupContext?.name\n\n return h(\n UnstyledButton,\n {\n ...attrs,\n ...getStyles('card', { className: attrs.class, style: attrs.style as any }),\n __staticSelector: 'RadioCard',\n mod: [{ 'with-border': props.withBorder, checked }, props.mod],\n role: 'radio',\n name,\n 'aria-checked': checked,\n onClick: (event: MouseEvent) => {\n callHandler(attrs.onClick, event)\n groupContext?.onChange(props.value || '')\n },\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n\nObject.assign(RadioCard, { classes, varsResolver })\n","import { defineComponent, h } from 'vue'\n\nexport const RadioIcon = defineComponent({\n name: 'RadioIcon',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n xmlns: 'http://www.w3.org/2000/svg',\n fill: 'none',\n viewBox: '0 0 5 5',\n 'aria-hidden': true,\n ...attrs,\n },\n h('circle', { cx: '2.5', cy: '2.5', r: '2.5', fill: 'currentColor' }),\n )\n },\n})\n",".indicator {\n --radio-size-xs: 16px;\n --radio-size-sm: 20px;\n --radio-size-md: 24px;\n --radio-size-lg: 30px;\n --radio-size-xl: 36px;\n\n --radio-icon-size-xs: 6px;\n --radio-icon-size-sm: 8px;\n --radio-icon-size-md: 10px;\n --radio-icon-size-lg: 14px;\n --radio-icon-size-xl: 16px;\n\n --radio-icon-size: var(--radio-icon-size-sm);\n --radio-size: var(--radio-size-sm);\n --radio-color: var(--mantine-primary-color-filled);\n --radio-icon-color: var(--mantine-color-white);\n\n position: relative;\n border: 1px solid transparent;\n width: var(--radio-size);\n min-width: var(--radio-size);\n height: var(--radio-size);\n min-height: var(--radio-size);\n border-radius: var(--radio-radius, 10000px);\n transition:\n border-color 100ms ease,\n background-color 100ms ease;\n cursor: var(--mantine-cursor-type);\n -webkit-tap-highlight-color: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border-color: var(--mantine-color-gray-4);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n border-color: var(--mantine-color-dark-4);\n }\n\n &[data-checked] {\n background-color: var(--radio-color);\n border-color: var(--radio-color);\n\n & > .icon {\n opacity: 1;\n transform: none;\n color: var(--radio-icon-color);\n }\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n background-color: var(--mantine-color-disabled);\n border-color: var(--mantine-color-disabled-border);\n\n &[data-checked] > .icon {\n color: var(--mantine-color-disabled-color);\n }\n }\n}\n\n.indicator--outline {\n &[data-checked]:not([data-disabled]) {\n background-color: transparent;\n border-color: var(--radio-color);\n\n & > .icon {\n color: var(--radio-color);\n opacity: 1;\n transform: none;\n }\n }\n}\n\n.icon {\n display: block;\n width: var(--radio-icon-size);\n height: var(--radio-icon-size);\n color: transparent;\n pointer-events: none;\n transform: translateY(rem(5px)) scale(0.5);\n opacity: 1;\n transition:\n transform 100ms ease,\n opacity 100ms ease;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getSize,\n getThemeColor,\n useStyles,\n} from '../../../core'\nimport { RadioIcon } from '../RadioIcon'\nimport { useRadioCardContext } from '../RadioCard/RadioCard'\nimport classes from './RadioIndicator.module.css'\n\nexport type RadioIndicatorVariant = 'filled' | 'outline'\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { radius, color, size, iconColor, autoContrast }) => ({\n indicator: {\n '--radio-size': getSize(size, 'radio-size'),\n '--radio-radius': radius === undefined ? undefined : getRadius(radius),\n '--radio-color': getThemeColor(color, theme),\n '--radio-icon-size':\n typeof size === 'number'\n ? `calc(${getSize(size, 'radio-size')} * 0.4)`\n : getSize(size, 'radio-icon-size'),\n '--radio-icon-color': iconColor\n ? getThemeColor(iconColor, theme)\n : getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n },\n }),\n)\n\nexport const RadioIndicator = withBoxProps(\n defineComponent({\n name: 'RadioIndicator',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n iconColor: { type: String, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n icon: { type: [Object, Function] as PropType<any>, default: undefined },\n checked: { type: Boolean, default: undefined },\n disabled: { type: Boolean, default: false },\n variant: { type: String as PropType<RadioIndicatorVariant>, default: 'filled' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const cardContext = useRadioCardContext()\n const getStyles = useStyles({\n name: 'RadioIndicator',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const Icon = props.icon || RadioIcon\n const checked =\n typeof props.checked === 'boolean' ? props.checked : cardContext?.checked || false\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('indicator', { className: attrs.class, style: attrs.style as any }),\n variant: props.variant,\n mod: [{ checked, disabled: props.disabled }, props.mod],\n },\n () => h(Icon, getStyles('icon')),\n )\n }\n },\n }),\n)\n\nObject.assign(RadioIndicator, { classes, varsResolver })\n",".root {\n --radio-size-xs: 16px;\n --radio-size-sm: 20px;\n --radio-size-md: 24px;\n --radio-size-lg: 30px;\n --radio-size-xl: 36px;\n --radio-size: var(--radio-size-sm);\n\n --radio-icon-size-xs: 6px;\n --radio-icon-size-sm: 8px;\n --radio-icon-size-md: 10px;\n --radio-icon-size-lg: 14px;\n --radio-icon-size-xl: 16px;\n --radio-icon-size: var(--radio-icon-size-sm);\n --radio-icon-color: var(--mantine-color-white);\n}\n\n.inner {\n position: relative;\n width: var(--radio-size);\n height: var(--radio-size);\n order: 1;\n\n &:where([data-label-position='left']) {\n order: 2;\n }\n}\n\n.icon {\n color: var(--radio-icon-color);\n opacity: var(--radio-icon-opacity, 0);\n translate: -50% -50%;\n transform: var(--radio-icon-transform, scale(0.2) translateY(rem(10px)));\n transition:\n opacity 100ms ease,\n transform 200ms ease;\n pointer-events: none;\n width: var(--radio-icon-size);\n height: var(--radio-icon-size);\n position: absolute;\n top: 50%;\n left: 50%;\n}\n\n.radio {\n border: 1px solid;\n position: relative;\n appearance: none;\n width: var(--radio-size);\n height: var(--radio-size);\n border-radius: var(--radio-radius, var(--radio-size));\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transition-property: background-color, border-color;\n transition-timing-function: ease;\n transition-duration: 100ms;\n cursor: var(--mantine-cursor-type);\n -webkit-tap-highlight-color: transparent;\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border-color: var(--mantine-color-gray-4);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n border-color: var(--mantine-color-dark-4);\n }\n\n &:checked {\n background-color: var(--radio-color, var(--mantine-primary-color-filled));\n border-color: var(--radio-color, var(--mantine-primary-color-filled));\n\n & + .icon {\n --radio-icon-opacity: 1;\n --radio-icon-transform: scale(1);\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n background-color: var(--mantine-color-disabled);\n border-color: var(--mantine-color-disabled-border);\n\n & + .icon {\n --radio-icon-color: var(--mantine-color-disabled-color);\n }\n }\n\n &:where([data-with-error-styles][data-error]) {\n border-color: var(--mantine-color-error);\n }\n\n &:where([data-variant='outline']) {\n & + .icon {\n --radio-icon-color: var(--radio-color);\n }\n\n &:checked:not(:disabled) {\n background-color: transparent;\n border-color: var(--radio-color);\n\n & + .icon {\n --radio-icon-color: var(--radio-color);\n --radio-icon-opacity: 1;\n --radio-icon-transform: none;\n }\n }\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useId, assignRef } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getRadius,\n getSize,\n getThemeColor,\n useStyles,\n} from '../../core'\nimport { InlineInput, InlineInputClasses } from '../../utils'\nimport { RadioCard } from './RadioCard/RadioCard'\nimport { RadioGroup, useRadioGroupContext } from './RadioGroup/RadioGroup'\nimport { RadioIcon } from './RadioIcon'\nimport { RadioIndicator } from './RadioIndicator/RadioIndicator'\nimport classes from './Radio.module.css'\n\nexport type RadioVariant = 'filled' | 'outline'\nexport type RadioStylesNames =\n | 'root'\n | 'body'\n | 'labelWrapper'\n | 'label'\n | 'description'\n | 'error'\n | 'inner'\n | 'radio'\n | 'icon'\n\nconst mergedClasses = { ...InlineInputClasses, ...classes }\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { size, radius, color, iconColor, autoContrast }) => ({\n root: {\n '--radio-size': getSize(size, 'radio-size'),\n '--radio-radius': radius === undefined ? undefined : getRadius(radius),\n '--radio-color': 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\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nconst RadioBase = defineComponent({\n name: 'Radio',\n inheritAttrs: false,\n props: {\n id: { type: String, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n icon: { type: [Object, Function] as PropType<any>, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n labelPosition: { type: String as PropType<'left' | 'right'>, default: 'right' },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n radius: { type: [String, Number] as PropType<string | number>, default: 'xl' },\n rootRef: { type: [Object, Function] as PropType<any>, default: undefined },\n iconColor: { type: String, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n withErrorStyles: { type: Boolean, default: true },\n checked: { type: Boolean, default: undefined },\n disabled: { type: Boolean, default: false },\n variant: { type: String as PropType<RadioVariant>, default: 'filled' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const uuid = useId(props.id)\n const groupContext = useRadioGroupContext()\n const getStyles = useStyles({\n name: 'Radio',\n props,\n classes: mergedClasses,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const id = uuid.value || props.id || ''\n const descriptionId = props.description ? `${id}-description` : undefined\n const errorId = props.error && typeof props.error !== 'boolean' ? `${id}-error` : undefined\n const describedBy =\n [descriptionId, errorId, attrs['aria-describedby']].filter(Boolean).join(' ') || undefined\n const Icon = props.icon || RadioIcon\n const value = String(attrs.value ?? '')\n const checked = groupContext ? groupContext.value === value : props.checked\n const disabled = groupContext?.disabled || props.disabled\n const size = groupContext?.size ?? props.size\n const name = groupContext?.name ?? attrs.name\n\n return h(\n InlineInput,\n {\n ...props.wrapperProps,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n __staticSelector: 'Radio',\n __stylesApiProps: props,\n id,\n size,\n labelPosition: props.labelPosition,\n label: props.label,\n description: props.description,\n error: props.error,\n disabled,\n classNames: props.classNames,\n styles: props.styles,\n unstyled: props.unstyled,\n 'data-checked': checked || undefined,\n variant: props.variant,\n ref: (node: any) => assignRef(props.rootRef, node?.$el ?? node ?? null),\n mod: props.mod,\n },\n () =>\n h(Box, { ...getStyles('inner'), mod: { labelPosition: props.labelPosition } }, () => [\n h(Box, {\n ...attrs,\n ...getStyles('radio'),\n component: 'input',\n id,\n checked,\n disabled,\n name,\n type: 'radio',\n 'aria-describedby': describedBy,\n mod: { error: Boolean(props.error), withErrorStyles: props.withErrorStyles },\n variant: props.variant,\n onChange: (event: Event) => {\n callHandler(attrs.onChange, event)\n groupContext?.onChange(event)\n },\n }),\n h(Icon, getStyles('icon')),\n ]),\n )\n }\n },\n})\n\nexport const Radio = withBoxProps(\n Object.assign(RadioBase, {\n classes: mergedClasses,\n varsResolver,\n Group: RadioGroup,\n Indicator: RadioIndicator,\n Card: RadioCard,\n }),\n)\n","import { defineComponent, h, inject, provide, type InjectionKey, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport { InputWrapper } from '../../Input'\nimport { InputsGroupFieldset } from '../../../utils'\n\nexport interface SwitchGroupContextValue {\n value: string[]\n onChange: (event: Event) => void\n size?: string | number\n isDisabled?: (value: string) => boolean\n}\n\nconst SwitchGroupContextKey: InjectionKey<SwitchGroupContextValue> = Symbol('SwitchGroupContext')\n\nexport function useSwitchGroupContext() {\n return inject(SwitchGroupContextKey, null)\n}\n\nexport const SwitchGroup = defineComponent({\n name: 'SwitchGroup',\n inheritAttrs: false,\n props: {\n value: { type: Array as PropType<string[] | undefined>, default: undefined },\n defaultValue: { type: Array as PropType<string[] | undefined>, default: undefined },\n onChange: { type: Function as PropType<(value: string[]) => void>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n readOnly: { type: Boolean, default: false },\n name: { type: String, default: undefined },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n hiddenInputValuesSeparator: { type: String, default: ',' },\n maxSelectedValues: { type: Number, default: undefined },\n disabled: { type: Boolean, default: false },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const [value, setValue] = useUncontrolled<string[]>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: [],\n onChange: (nextValue) => props.onChange?.(nextValue),\n })\n\n const handleChange = (event: Event) => {\n if (props.readOnly) {\n return\n }\n\n const itemValue = String((event.currentTarget as HTMLInputElement | null)?.value ?? '')\n const isCurrentlySelected = value.value.includes(itemValue)\n\n if (\n !isCurrentlySelected &&\n props.maxSelectedValues &&\n value.value.length >= props.maxSelectedValues\n ) {\n return\n }\n\n setValue(\n isCurrentlySelected\n ? value.value.filter((item) => item !== itemValue)\n : [...value.value, itemValue],\n )\n }\n\n const isDisabled = (switchValue: string) => {\n if (props.disabled) {\n return true\n }\n\n if (!props.maxSelectedValues) {\n return false\n }\n\n const isCurrentlySelected = value.value.includes(switchValue)\n const hasReachedLimit = value.value.length >= props.maxSelectedValues\n return !isCurrentlySelected && hasReachedLimit\n }\n\n provide(SwitchGroupContextKey, {\n get value() {\n return value.value\n },\n onChange: handleChange,\n get size() {\n return props.size\n },\n isDisabled,\n })\n\n return () =>\n h(\n InputWrapper,\n {\n size: props.size,\n ...props.wrapperProps,\n ...attrs,\n label: props.label,\n description: props.description,\n error: props.error,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n labelElement: 'div',\n __staticSelector: 'SwitchGroup',\n } as any,\n () => [\n h(InputsGroupFieldset, { role: 'group' }, () => slots.default?.()),\n h('input', {\n type: 'hidden',\n name: props.name,\n value: value.value.join(props.hiddenInputValuesSeparator),\n ...props.hiddenInputProps,\n }),\n ],\n )\n },\n})\n\nObject.assign(SwitchGroup, { classes: InputWrapper.classes })\n",".root {\n --switch-height-xs: 16px;\n --switch-height-sm: 20px;\n --switch-height-md: 24px;\n --switch-height-lg: 30px;\n --switch-height-xl: 36px;\n --switch-width-xs: 32px;\n --switch-width-sm: 38px;\n --switch-width-md: 46px;\n --switch-width-lg: 56px;\n --switch-width-xl: 72px;\n --switch-thumb-size-xs: 12px;\n --switch-thumb-size-sm: 14px;\n --switch-thumb-size-md: 18px;\n --switch-thumb-size-lg: 22px;\n --switch-thumb-size-xl: 28px;\n --switch-label-font-size-xs: 5px;\n --switch-label-font-size-sm: 6px;\n --switch-label-font-size-md: 7px;\n --switch-label-font-size-lg: 9px;\n --switch-label-font-size-xl: 11px;\n --switch-track-label-padding-xs: 2px;\n --switch-track-label-padding-sm: 2.5px;\n --switch-track-label-padding-md: 3px;\n --switch-track-label-padding-lg: 3px;\n --switch-track-label-padding-xl: 3.5px;\n --switch-height: var(--switch-height-sm);\n --switch-width: var(--switch-width-sm);\n --switch-thumb-size: var(--switch-thumb-size-sm);\n --switch-label-font-size: var(--switch-label-font-size-sm);\n --switch-track-label-padding: var(--switch-track-label-padding-sm);\n --switch-radius: 1000px;\n --switch-color: var(--mantine-primary-color-filled);\n --switch-disabled-color: var(--mantine-color-disabled);\n position: relative;\n}\n\n.input {\n /* Hide the input visually without removing it from the accessibility tree or obscuring it in the DOM */\n height: 100%;\n width: 100%;\n opacity: 0;\n margin: 0;\n padding: 0;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.track {\n -webkit-tap-highlight-color: transparent;\n cursor: var(--switch-cursor, var(--mantine-cursor-type));\n overflow: hidden;\n position: relative;\n border-radius: var(--switch-radius);\n background-color: var(--switch-bg);\n height: var(--switch-height);\n min-width: var(--switch-width);\n margin: 0;\n transition:\n background-color 150ms ease,\n border-color 150ms ease;\n appearance: none;\n display: flex;\n align-items: center;\n font-size: var(--switch-label-font-size);\n font-weight: var(--mantine-font-weight-medium);\n order: var(--switch-order, 1);\n user-select: none;\n z-index: 0;\n line-height: 0;\n color: var(--switch-text-color);\n}\n\n.track:where([data-without-labels]) {\n width: var(--switch-width);\n}\n\n.input:focus-visible + .track {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n}\n\n.input:checked + .track {\n --switch-bg: var(--switch-color);\n --switch-text-color: var(--mantine-color-white);\n}\n\n.input:disabled + .track,\n.input[data-disabled] + .track {\n --switch-bg: var(--switch-disabled-color);\n --switch-cursor: not-allowed;\n}\n\n.track {\n @mixin light {\n --switch-bg: var(--mantine-color-gray-3);\n --switch-text-color: var(--mantine-color-gray-6);\n }\n\n @mixin dark {\n --switch-bg: var(--mantine-color-dark-5);\n --switch-text-color: var(--mantine-color-dark-1);\n }\n}\n\n.track[data-label-position='left'] {\n --switch-order: 2;\n}\n\n.thumb {\n position: absolute;\n z-index: 1;\n border-radius: var(--switch-radius);\n display: flex;\n background-color: var(--switch-thumb-bg, var(--mantine-color-white));\n height: var(--switch-thumb-size);\n width: var(--switch-thumb-size);\n inset-inline-start: var(--switch-thumb-start, var(--switch-track-label-padding));\n transition: inset-inline-start 150ms ease;\n}\n\n.thumb[data-with-thumb-indicator]::before {\n content: '';\n width: 40%;\n height: 40%;\n background-color: var(--switch-bg);\n position: absolute;\n border-radius: var(--switch-radius);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.thumb > * {\n margin: auto;\n}\n\n.input:checked + .track > .thumb {\n --switch-thumb-start: calc(100% - var(--switch-thumb-size) - var(--switch-track-label-padding));\n}\n\n.input:disabled + .track > .thumb,\n.input[data-disabled] + .track > .thumb {\n --switch-thumb-bg: var(--switch-thumb-bg-disabled);\n}\n\n.thumb {\n @mixin light {\n --switch-thumb-bg-disabled: var(--mantine-color-gray-0);\n }\n\n @mixin dark {\n --switch-thumb-bg-disabled: var(--mantine-color-dark-3);\n }\n}\n\n.trackLabel {\n height: 100%;\n display: grid;\n place-content: center;\n min-width: calc(var(--switch-width) - var(--switch-thumb-size));\n padding-inline: var(--switch-track-label-padding);\n margin-inline-start: calc(var(--switch-thumb-size) + var(--switch-track-label-padding));\n transition: margin 150ms ease;\n}\n\n.input:checked + .track > .trackLabel {\n margin-inline-end: calc(var(--switch-thumb-size) + var(--switch-track-label-padding));\n margin-inline-start: 0;\n}\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { useId, useUncontrolled, assignRef } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getRadius,\n getSize,\n getThemeColor,\n useStyles,\n} from '../../core'\nimport { InlineInput, InlineInputClasses } from '../../utils'\nimport { SwitchGroup, useSwitchGroupContext } from './SwitchGroup/SwitchGroup'\nimport classes from './Switch.module.css'\n\nexport type SwitchStylesNames =\n | 'root'\n | 'track'\n | 'trackLabel'\n | 'thumb'\n | 'input'\n | 'body'\n | 'labelWrapper'\n | 'label'\n | 'description'\n | 'error'\n\nconst mergedClasses = { ...InlineInputClasses, ...classes }\n\nconst varsResolver = createVarsResolver<any>((theme, { radius, color, size }) => ({\n root: {\n '--switch-radius': radius === undefined ? undefined : getRadius(radius),\n '--switch-height': getSize(size, 'switch-height'),\n '--switch-width': getSize(size, 'switch-width'),\n '--switch-thumb-size': getSize(size, 'switch-thumb-size'),\n '--switch-label-font-size': getSize(size, 'switch-label-font-size'),\n '--switch-track-label-padding': getSize(size, 'switch-track-label-padding'),\n '--switch-color': color ? getThemeColor(color, theme) : undefined,\n },\n}))\n\nfunction renderContent(content: any) {\n return typeof content === 'function' ? content() : content\n}\n\nfunction callHandler(handler: any, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else {\n handler?.(event)\n }\n}\n\nconst SwitchBase = defineComponent({\n name: 'Switch',\n inheritAttrs: false,\n props: {\n id: { type: String, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n offLabel: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n onLabel: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: 'sm' },\n radius: { type: [String, Number] as PropType<string | number>, default: 'xl' },\n wrapperProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n thumbIcon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n labelPosition: { type: String as PropType<'left' | 'right'>, default: 'right' },\n description: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n error: {\n type: [String, Number, Object, Function, Boolean] as PropType<any>,\n default: undefined,\n },\n rootRef: { type: [Object, Function] as PropType<any>, default: undefined },\n withThumbIndicator: { type: Boolean, default: true },\n checked: { type: Boolean, default: undefined },\n defaultChecked: { type: Boolean, default: undefined },\n onChange: { type: Function as PropType<(event: Event) => void>, default: undefined },\n disabled: { type: Boolean, default: false },\n variant: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const uuid = useId(props.id)\n const groupContext = useSwitchGroupContext()\n const internalChecked = ref(false)\n const [checked, setChecked] = useUncontrolled<boolean>({\n value: () => props.checked,\n defaultValue: props.defaultChecked,\n finalValue: false,\n onChange: (value) => {\n internalChecked.value = value\n },\n })\n const getStyles = useStyles({\n name: 'Switch',\n props,\n classes: mergedClasses,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n return () => {\n const id = uuid.value || props.id || ''\n const descriptionId = props.description ? `${id}-description` : undefined\n const errorId = props.error && typeof props.error !== 'boolean' ? `${id}-error` : undefined\n const describedBy =\n [descriptionId, errorId, attrs['aria-describedby']].filter(Boolean).join(' ') || undefined\n const value = String(attrs.value ?? '')\n const currentChecked = groupContext ? groupContext.value.includes(value) : checked.value\n const disabled = groupContext?.isDisabled?.(value) || props.disabled\n const size = groupContext?.size ?? props.size\n\n return h(\n InlineInput,\n {\n ...props.wrapperProps,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n __staticSelector: 'Switch',\n __stylesApiProps: props,\n id,\n size,\n labelPosition: props.labelPosition,\n label: props.label,\n description: props.description,\n error: props.error,\n disabled,\n bodyElement: 'label',\n labelElement: 'span',\n classNames: props.classNames,\n styles: props.styles,\n unstyled: props.unstyled,\n 'data-checked': currentChecked || undefined,\n variant: props.variant,\n ref: (node: any) => assignRef(props.rootRef, node?.$el ?? node ?? null),\n mod: props.mod,\n },\n () => [\n h('input', {\n ...attrs,\n ...getStyles('input'),\n disabled,\n checked: currentChecked,\n id,\n type: 'checkbox',\n role: 'switch',\n 'aria-describedby': describedBy,\n onChange: (event: Event) => {\n callHandler(attrs.onChange, event)\n props.onChange?.(event)\n if (groupContext) {\n groupContext.onChange(event)\n } else {\n setChecked((event.currentTarget as HTMLInputElement).checked)\n }\n },\n }),\n h(\n Box,\n {\n component: 'span',\n 'aria-hidden': 'true',\n mod: {\n error: Boolean(props.error),\n labelPosition: props.labelPosition,\n withoutLabels: !props.onLabel && !props.offLabel,\n },\n ...getStyles('track'),\n },\n () => [\n h(\n Box,\n {\n component: 'span',\n mod: { withThumbIndicator: props.withThumbIndicator && !props.thumbIcon },\n ...getStyles('thumb'),\n },\n () => renderContent(props.thumbIcon),\n ),\n h(\n 'span',\n getStyles('trackLabel'),\n renderContent(currentChecked ? props.onLabel : props.offLabel),\n ),\n ],\n ),\n ],\n )\n }\n },\n})\n\nexport const Switch = withBoxProps(\n Object.assign(SwitchBase, {\n classes: mergedClasses,\n varsResolver,\n Group: SwitchGroup,\n }),\n)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, useProps } from '../../core'\n\nexport const Space = withBoxProps(\n defineComponent({\n name: 'Space',\n inheritAttrs: false,\n props: {\n w: [String, Number] as PropType<string | number>,\n h: [String, Number] as PropType<string | number>,\n miw: [String, Number] as PropType<string | number>,\n mih: [String, Number] as PropType<string | number>,\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Space', null, rawProps)\n\n return () =>\n h(\n Box,\n {\n ...attrs,\n w: props.w,\n h: props.h,\n miw: props.miw ?? props.w,\n mih: props.mih ?? props.h,\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import type { SystemPropData } from '../../core'\n\nexport const FLEX_STYLE_PROPS_DATA: Record<string, SystemPropData> = {\n gap: { type: 'spacing', property: 'gap' },\n rowGap: { type: 'spacing', property: 'rowGap' },\n columnGap: { type: 'spacing', property: 'columnGap' },\n align: { type: 'identity', property: 'alignItems' },\n justify: { type: 'identity', property: 'justifyContent' },\n wrap: { type: 'identity', property: 'flexWrap' },\n direction: { type: 'identity', property: 'flexDirection' },\n}\n",".root {\n display: flex;\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n filterProps,\n hashStyleProps,\n InlineStyles,\n parseStyleProps,\n useMantineDeduplicateInlineStyles,\n useMantineTheme,\n useProps,\n useRandomClassName,\n useStyles,\n type StyleProp,\n} from '../../core'\nimport { FLEX_STYLE_PROPS_DATA } from './flex-props'\nimport classes from './Flex.module.css'\n\nexport const Flex = withBoxProps(\n defineComponent({\n name: 'Flex',\n inheritAttrs: false,\n props: {\n component: { type: String, default: 'div' },\n gap: [String, Number, Object] as PropType<StyleProp<string | number>>,\n rowGap: [String, Number, Object] as PropType<StyleProp<string | number>>,\n columnGap: [String, Number, Object] as PropType<StyleProp<string | number>>,\n align: [String, Object] as PropType<StyleProp<string>>,\n justify: [String, Object] as PropType<StyleProp<string>>,\n wrap: [String, Object] as PropType<StyleProp<string>>,\n direction: [String, Object] as PropType<StyleProp<string>>,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Flex', null, rawProps)\n const theme = useMantineTheme()\n const deduplicateInlineStyles = useMantineDeduplicateInlineStyles()\n const getStyles = useStyles({\n name: 'Flex',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n })\n\n return () => {\n const parsedStyleProps = parseStyleProps({\n styleProps: {\n gap: props.gap,\n rowGap: props.rowGap,\n columnGap: props.columnGap,\n align: props.align,\n justify: props.justify,\n wrap: props.wrap,\n direction: props.direction,\n },\n theme: theme.value,\n data: FLEX_STYLE_PROPS_DATA,\n })\n const responsiveClassName =\n deduplicateInlineStyles && parsedStyleProps.hasResponsiveStyles\n ? hashStyleProps(parsedStyleProps.styles, parsedStyleProps.media)\n : useRandomClassName()\n\n return [\n parsedStyleProps.hasResponsiveStyles\n ? h(InlineStyles, {\n selector: `.${responsiveClassName}`,\n styles: parsedStyleProps.styles,\n media: parsedStyleProps.media,\n deduplicate: deduplicateInlineStyles,\n })\n : null,\n h(\n Box,\n {\n component: props.component,\n ...attrs,\n ...getStyles('root', {\n className: parsedStyleProps.hasResponsiveStyles ? responsiveClassName : undefined,\n style: filterProps(parsedStyleProps.inlineStyles),\n }),\n },\n () => slots.default?.(),\n ),\n ]\n }\n },\n }),\n)\n",".root {\n display: flex;\n flex-direction: column;\n align-items: var(--stack-align, stretch);\n justify-content: var(--stack-justify, flex-start);\n gap: var(--stack-gap, var(--mantine-spacing-md));\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSpacing, useProps, useStyles } from '../../core'\nimport classes from './Stack.module.css'\n\nconst defaultProps = {\n gap: 'md',\n align: 'stretch',\n justify: 'flex-start',\n}\n\nconst varsResolver = createVarsResolver<any>((_, { gap, align, justify }) => ({\n root: {\n '--stack-gap': getSpacing(gap),\n '--stack-align': align,\n '--stack-justify': justify,\n },\n}))\n\nexport const Stack = withBoxProps(\n defineComponent({\n name: 'Stack',\n inheritAttrs: false,\n props: {\n gap: [String, Number] as PropType<string | number>,\n align: { type: String, default: undefined },\n justify: { type: String, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Stack', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Stack',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n\n return () => h(Box, { ...attrs, ...getStyles('root') }, () => slots.default?.())\n },\n }),\n)\n","import { createSafeContext } from '../../core'\n\nexport interface StepperContextValue {\n getStyles: (selector: string, options?: Record<string, any>) => any\n orientation: 'horizontal' | 'vertical'\n iconPosition: 'left' | 'right'\n}\n\nexport const [provideStepperContext, useStepperContext] = createSafeContext<StepperContextValue>(\n 'Stepper component was not found in tree',\n)\n","import { defineComponent } from 'vue'\n\nexport const StepperCompleted = defineComponent({\n name: 'StepperCompleted',\n setup() {\n return () => null\n },\n})\n",".root {\n --stepper-icon-size-xs: 34px;\n --stepper-icon-size-sm: 36px;\n --stepper-icon-size-md: 42px;\n --stepper-icon-size-lg: 48px;\n --stepper-icon-size-xl: 52px;\n --stepper-icon-size: var(--stepper-icon-size-md);\n --stepper-color: var(--mantine-primary-color-filled);\n --stepper-content-padding: var(--mantine-spacing-md);\n --stepper-spacing: var(--mantine-spacing-md);\n --stepper-radius: 1000px;\n --stepper-fz: var(--mantine-font-size-md);\n --stepper-outline-thickness: 2px;\n}\n.root {\n @mixin light {\n --stepper-outline-color: var(--mantine-color-gray-2);\n }\n\n @mixin dark {\n --stepper-outline-color: var(--mantine-color-dark-5);\n }\n}\n\n.steps {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n}\n.steps:where([data-wrap]) {\n flex-wrap: wrap;\n gap: var(--mantine-spacing-md) 0;\n}\n.steps:where([data-orientation='vertical']) {\n flex-direction: column;\n}\n.steps:where([data-orientation='vertical'][data-icon-position='left']) {\n align-items: flex-start;\n}\n.steps:where([data-orientation='vertical'][data-icon-position='right']) {\n align-items: flex-end;\n}\n.steps:where([data-orientation='horizontal']) {\n flex-direction: row;\n}\n\n.separator {\n transition: background-color 150ms ease;\n flex: 1;\n height: var(--stepper-outline-thickness);\n margin-inline: var(--mantine-spacing-md);\n background-color: var(--stepper-outline-color);\n}\n.separator:where([data-active]) {\n background-color: var(--stepper-color);\n}\n.content {\n padding-top: var(--stepper-content-padding);\n}\n\n.step {\n --step-color: var(--stepper-color);\n display: flex;\n cursor: default;\n}\n.step:where([data-allow-click]) {\n cursor: pointer;\n}\n.step:where([data-icon-position='left']) {\n flex-direction: row;\n}\n.step:where([data-icon-position='right']) {\n flex-direction: row-reverse;\n}\n.step--horizontal {\n align-items: center;\n}\n.step--vertical {\n --separator-spacing: calc(var(--mantine-spacing-xs) / 2);\n justify-content: flex-start;\n min-height: calc(var(--stepper-icon-size) + var(--mantine-spacing-xl) + var(--separator-spacing));\n margin-top: var(--separator-spacing);\n overflow: hidden;\n}\n.step--vertical:where(:first-of-type) {\n margin-top: 0;\n}\n.step--vertical:where(:last-of-type) {\n min-height: auto;\n}\n.step--vertical:where(:last-of-type) .verticalSeparator {\n display: none;\n}\n\n.stepWrapper {\n position: relative;\n}\n.verticalSeparator {\n top: calc(var(--stepper-icon-size) + var(--separator-spacing));\n inset-inline-start: calc(var(--stepper-icon-size) / 2);\n height: 100vh;\n position: absolute;\n border-inline-start: var(--stepper-outline-thickness) solid var(--stepper-outline-color);\n}\n.verticalSeparator:where([data-active]) {\n border-color: var(--stepper-color);\n}\n\n.stepIcon {\n height: var(--stepper-icon-size);\n width: var(--stepper-icon-size);\n min-height: var(--stepper-icon-size);\n min-width: var(--stepper-icon-size);\n border-radius: var(--stepper-radius);\n font-size: var(--stepper-fz);\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n font-weight: bold;\n transition:\n background-color 150ms ease,\n border-color 150ms ease;\n border: var(--stepper-outline-thickness) solid var(--stepper-outline-color);\n background-color: var(--stepper-outline-color);\n}\n.stepIcon {\n @mixin where-light {\n color: var(--mantine-color-gray-7);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-1);\n }\n}\n.stepIcon:where([data-progress]) {\n border-color: var(--step-color);\n}\n.stepIcon:where([data-completed]) {\n color: var(--stepper-icon-color, var(--mantine-color-white));\n background-color: var(--step-color);\n border-color: var(--step-color);\n}\n.stepIconContent {\n display: flex;\n}\n.stepCompletedIcon {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--stepper-icon-color, var(--mantine-color-white));\n}\n.stepBody {\n display: flex;\n flex-direction: column;\n}\n.stepBody:where([data-icon-position='left']) {\n margin-inline-start: var(--mantine-spacing-sm);\n}\n.stepBody:where([data-icon-position='right']) {\n text-align: end;\n margin-inline-end: var(--mantine-spacing-sm);\n}\n.stepLabel {\n font-weight: var(--mantine-font-weight-medium);\n font-size: var(--stepper-fz);\n line-height: 1;\n}\n.stepDescription {\n margin-top: calc(var(--stepper-spacing) / 3);\n margin-bottom: calc(var(--stepper-spacing) / 3);\n font-size: calc(var(--stepper-fz) - rem(2px));\n line-height: 1;\n color: var(--mantine-color-dimmed);\n}\n","import { defineComponent, h, isVNode, type PropType } from 'vue'\nimport { withBoxProps, getThemeColor, useMantineTheme, useProps } from '../../../core'\nimport { CheckIcon } from '../../Checkbox'\nimport { Loader } from '../../Loader'\nimport { Transition } from '../../Transition'\nimport { UnstyledButton } from '../../UnstyledButton'\nimport { useStepperContext } from '../Stepper.context'\nimport classes from '../Stepper.module.css'\n\nexport type StepperStepState = 'stepInactive' | 'stepProgress' | 'stepCompleted'\nexport type StepperStepStylesNames =\n | 'step'\n | 'stepLoader'\n | 'verticalSeparator'\n | 'stepWrapper'\n | 'stepIcon'\n | 'stepCompletedIcon'\n | 'stepIconContent'\n | 'stepBody'\n | 'stepLabel'\n | 'stepDescription'\n\nfunction renderFragment(fragment: any, step = 0) {\n if (typeof fragment === 'function') {\n return fragment({ step })\n }\n\n return isVNode(fragment) ? fragment : fragment\n}\n\nconst defaultProps = {\n withIcon: true,\n allowStepClick: true,\n iconPosition: 'left',\n} as const\n\nexport const StepperStep = withBoxProps(\n defineComponent({\n name: 'StepperStep',\n inheritAttrs: false,\n props: {\n step: { type: Number, default: undefined },\n state: { type: String as PropType<StepperStepState>, default: undefined },\n color: { type: String, default: undefined },\n withIcon: { type: Boolean, default: undefined },\n icon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n completedIcon: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n progressIcon: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n description: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n iconSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n iconPosition: { type: String as PropType<'right' | 'left'>, default: undefined },\n loading: { type: Boolean, default: false },\n allowStepClick: { type: Boolean, default: undefined },\n allowStepSelect: { type: Boolean, default: undefined },\n orientation: { type: String as PropType<'vertical' | 'horizontal'>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n className: { type: [String, Array, Object] as PropType<any>, default: undefined },\n style: { type: [String, Array, Object] as PropType<any>, default: undefined },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('StepperStep', defaultProps, rawProps)\n const ctx = useStepperContext()\n const theme = useMantineTheme()\n\n return () => {\n const dataAttributes = {\n 'data-progress': props.state === 'stepProgress' || undefined,\n 'data-completed': props.state === 'stepCompleted' || undefined,\n }\n const iconPosition = props.iconPosition ?? ctx.iconPosition\n const stylesApi = { classNames: props.classNames, styles: props.styles, props }\n const currentIcon =\n props.state === 'stepProgress' ? (props.progressIcon ?? props.icon) : props.icon\n const completed = props.completedIcon\n ? renderFragment(props.completedIcon, props.step)\n : h(CheckIcon, { width: '60%', height: '60%' })\n const stepStyles = ctx.getStyles('step', {\n className: [\n props.className ?? attrs.class,\n classes[`step--${ctx.orientation}` as keyof typeof classes],\n ],\n style: props.style ?? attrs.style,\n ...stylesApi,\n })\n\n return h(\n UnstyledButton,\n {\n ...attrs,\n ...stepStyles,\n mod: [{ iconPosition, allowClick: props.allowStepClick }, props.mod],\n ...dataAttributes,\n style: [\n stepStyles.style,\n { '--step-color': props.color ? getThemeColor(props.color, theme.value) : undefined },\n props.style,\n attrs.style,\n ],\n tabindex: props.allowStepClick ? 0 : -1,\n },\n () => [\n props.withIcon\n ? h('span', ctx.getStyles('stepWrapper', stylesApi), [\n h('span', { ...ctx.getStyles('stepIcon', stylesApi), ...dataAttributes }, [\n h(\n Transition,\n {\n mounted: props.state === 'stepCompleted',\n transition: 'scale',\n duration: 200,\n },\n {\n default: (transitionStyles: any) =>\n h(\n 'span',\n ctx.getStyles('stepCompletedIcon', {\n ...stylesApi,\n style: transitionStyles,\n }),\n props.loading\n ? h(Loader, {\n color: 'var(--mantine-color-white)',\n size: 'calc(var(--stepper-icon-size) / 2)',\n ...ctx.getStyles('stepLoader', stylesApi),\n })\n : completed,\n ),\n },\n ),\n props.state !== 'stepCompleted'\n ? h(\n 'span',\n ctx.getStyles('stepIconContent', stylesApi),\n props.loading\n ? h(Loader, {\n size: 'calc(var(--stepper-icon-size) / 2)',\n color: props.color,\n ...ctx.getStyles('stepLoader', stylesApi),\n })\n : renderFragment(currentIcon, props.step),\n )\n : null,\n ]),\n props.orientation === 'vertical'\n ? h('span', {\n ...ctx.getStyles('verticalSeparator', stylesApi),\n 'data-active': props.state === 'stepCompleted' || undefined,\n })\n : null,\n ])\n : null,\n props.label !== undefined || props.description !== undefined\n ? h(\n 'span',\n {\n ...ctx.getStyles('stepBody', stylesApi),\n 'data-orientation': ctx.orientation,\n 'data-icon-position': iconPosition,\n },\n [\n props.label !== undefined\n ? h(\n 'span',\n ctx.getStyles('stepLabel', stylesApi),\n renderFragment(props.label, props.step),\n )\n : null,\n props.description !== undefined\n ? h(\n 'span',\n ctx.getStyles('stepDescription', stylesApi),\n renderFragment(props.description, props.step),\n )\n : null,\n ],\n )\n : null,\n ],\n )\n }\n },\n }),\n)\n\nObject.assign(StepperStep, { classes })\n","import { Comment, Fragment, cloneVNode, defineComponent, h, type PropType, type VNode } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getAutoContrastValue,\n getContrastColor,\n getFontSize,\n getRadius,\n getSize,\n getSpacing,\n getThemeColor,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport { provideStepperContext } from './Stepper.context'\nimport { StepperCompleted } from './StepperCompleted/StepperCompleted'\nimport { StepperStep } from './StepperStep/StepperStep'\nimport classes from './Stepper.module.css'\n\nexport type StepperStylesNames =\n | 'root'\n | 'separator'\n | 'steps'\n | 'content'\n | 'step'\n | 'stepLoader'\n | 'verticalSeparator'\n | 'stepWrapper'\n | 'stepIcon'\n | 'stepCompletedIcon'\n | 'stepIconContent'\n | 'stepBody'\n | 'stepLabel'\n | 'stepDescription'\n\nconst defaultProps = {\n orientation: 'horizontal',\n iconPosition: 'left',\n allowNextStepsSelect: true,\n wrap: true,\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { color, iconSize, size, contentPadding, radius, autoContrast }) => ({\n root: {\n '--stepper-color': color ? getThemeColor(color, theme) : undefined,\n '--stepper-icon-color': getAutoContrastValue(autoContrast, theme)\n ? getContrastColor({ color, theme, autoContrast })\n : undefined,\n '--stepper-icon-size':\n iconSize === undefined ? getSize(size, 'stepper-icon-size') : rem(iconSize),\n '--stepper-content-padding': getSpacing(contentPadding),\n '--stepper-radius': radius === undefined ? undefined : getRadius(radius),\n '--stepper-fz': getFontSize(size),\n '--stepper-spacing': getSpacing(size),\n },\n }),\n)\n\nfunction getSlotContent(vnode: VNode | undefined) {\n const children = vnode?.children as any\n return typeof children?.default === 'function' ? children.default() : children\n}\n\nfunction flattenChildren(children: VNode[]): VNode[] {\n return children.flatMap((child) =>\n child.type === Fragment && Array.isArray(child.children)\n ? flattenChildren(child.children as VNode[])\n : child.type === Comment\n ? []\n : [child],\n )\n}\n\nconst StepperBase = defineComponent({\n name: 'Stepper',\n inheritAttrs: false,\n props: {\n active: { type: Number, required: true },\n onStepClick: { type: Function as PropType<(stepIndex: number) => void>, default: undefined },\n icon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n completedIcon: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n progressIcon: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n color: { type: String, default: undefined },\n iconSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n contentPadding: { type: [String, Number] as PropType<string | number>, default: undefined },\n orientation: { type: String as PropType<'vertical' | 'horizontal'>, default: undefined },\n iconPosition: { type: String as PropType<'right' | 'left'>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n allowNextStepsSelect: { type: Boolean, default: undefined },\n wrap: { type: Boolean, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n keepMounted: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Stepper', defaultProps, rawProps)\n const getStyles = useStyles({\n name: 'Stepper',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n provideStepperContext({\n getStyles,\n get orientation() {\n return props.orientation\n },\n get iconPosition() {\n return props.iconPosition\n },\n } as any)\n\n return () => {\n const children = flattenChildren((slots.default?.() ?? []) as VNode[])\n const steps = children.filter((child) => child.type !== StepperCompleted)\n const completed = children.find((child) => child.type === StepperCompleted)\n const items: VNode[] = []\n\n steps.forEach((item, index) => {\n const itemProps = (item.props ?? {}) as Record<string, any>\n const state =\n props.active === index\n ? 'stepProgress'\n : props.active > index\n ? 'stepCompleted'\n : 'stepInactive'\n const selectable =\n typeof props.onStepClick === 'function' &&\n (typeof itemProps.allowStepSelect === 'boolean'\n ? itemProps.allowStepSelect\n : state === 'stepCompleted' || props.allowNextStepsSelect)\n\n items.push(\n cloneVNode(\n item,\n {\n icon: itemProps.icon ?? props.icon ?? index + 1,\n step: index,\n state,\n onClick: () => selectable && props.onStepClick?.(index),\n allowStepClick: selectable,\n completedIcon: itemProps.completedIcon ?? props.completedIcon,\n progressIcon: itemProps.progressIcon ?? props.progressIcon,\n color: itemProps.color ?? props.color,\n iconSize: props.iconSize,\n iconPosition: itemProps.iconPosition ?? props.iconPosition,\n orientation: props.orientation,\n },\n true,\n ),\n )\n\n if (props.orientation === 'horizontal' && index !== steps.length - 1) {\n items.push(\n h('div', {\n ...getStyles('separator'),\n 'data-active': index < props.active || undefined,\n 'data-orientation': props.orientation,\n key: `separator-${index}`,\n }),\n )\n }\n })\n\n const contents = props.keepMounted\n ? [\n ...steps.map((step, index) =>\n h(\n 'div',\n {\n ...getStyles('content'),\n style: [\n getStyles('content').style,\n props.active === index ? undefined : { display: 'none' },\n ],\n 'aria-hidden': props.active === index ? undefined : 'true',\n },\n getSlotContent(step),\n ),\n ),\n completed\n ? h(\n 'div',\n {\n ...getStyles('content'),\n style: [\n getStyles('content').style,\n props.active > steps.length - 1 ? undefined : { display: 'none' },\n ],\n 'aria-hidden': props.active > steps.length - 1 ? undefined : 'true',\n },\n getSlotContent(completed),\n )\n : null,\n ]\n : (() => {\n const content =\n props.active > steps.length - 1\n ? getSlotContent(completed)\n : getSlotContent(steps[props.active])\n return content ? h('div', getStyles('content'), content) : null\n })()\n\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n mod: props.mod,\n size: props.size,\n },\n () => [\n h(\n Box,\n {\n ...getStyles('steps'),\n mod: {\n orientation: props.orientation,\n iconPosition: props.iconPosition,\n wrap: props.wrap && props.orientation !== 'vertical',\n },\n },\n () => items,\n ),\n contents,\n ],\n )\n }\n },\n})\n\nexport const Stepper = withBoxProps(\n Object.assign(StepperBase, {\n classes,\n varsResolver,\n Step: StepperStep,\n Completed: StepperCompleted,\n }),\n)\n","interface NodePosition {\n elements: Set<HTMLElement>\n bottom: number\n top: number\n}\n\nfunction groupNodesByTopPosition(nodes: HTMLElement[]): Record<number, NodePosition> {\n return nodes.reduce<Record<number, NodePosition>>((result, node) => {\n const rect = node.getBoundingClientRect()\n const top = Math.round(rect.top)\n const bottom = Math.round(rect.bottom)\n const row = result[top] ?? { elements: new Set<HTMLElement>(), bottom, top }\n row.bottom = Math.max(row.bottom, bottom)\n row.elements.add(node)\n result[top] = row\n return result\n }, {})\n}\n\nexport function getRowPositionsData(container: HTMLElement | null, overflow: HTMLElement | null) {\n if (!container) {\n return null\n }\n\n const children = Array.from(container.children).filter(\n (child) => child !== overflow,\n ) as HTMLElement[]\n if (children.length === 0) {\n return null\n }\n\n const itemsSizesMap = groupNodesByTopPosition(children)\n return { itemsSizesMap, rowPositions: Object.keys(itemsSizesMap).map(Number), children }\n}\n","import { onBeforeUnmount, onMounted, ref, type Ref } from 'vue'\n\nexport interface ResizeObserverDimensions {\n width: number\n height: number\n contentWidth: number\n contentHeight: number\n}\n\nfunction getEl(value: any): HTMLElement | null {\n if (!value) return null\n return (value.$el ?? value) as HTMLElement | null\n}\n\nexport function useDimensions(element: Ref<any>) {\n const dimensions = ref<ResizeObserverDimensions | null>(null)\n let observer: ResizeObserver | null = null\n\n onMounted(() => {\n const el = getEl(element.value)\n if (!el || typeof ResizeObserver === 'undefined') {\n return\n }\n\n observer = new ResizeObserver(([entry]) => {\n if (entry) {\n dimensions.value = {\n width: entry.borderBoxSize?.[0]?.inlineSize ?? entry.target.clientWidth,\n height: entry.borderBoxSize?.[0]?.blockSize ?? entry.target.clientHeight,\n contentWidth: entry.contentRect.width,\n contentHeight: entry.contentRect.height,\n }\n }\n })\n observer.observe(el)\n })\n\n onBeforeUnmount(() => observer?.disconnect())\n return dimensions\n}\n",".root {\n display: flex;\n flex-wrap: wrap;\n contain: layout style;\n gap: var(--ol-gap, var(--mantine-spacing-xs));\n}\n","import {\n cloneVNode,\n computed,\n defineComponent,\n h,\n nextTick,\n onMounted,\n ref,\n watch,\n type PropType,\n type VNode,\n} from 'vue'\nimport { withBoxProps, Box, createVarsResolver, getSpacing, useProps, useStyles } from '../../core'\nimport { getRowPositionsData } from './get-row-position-data'\nimport { useDimensions } from './use-dimensions'\nimport classes from './OverflowList.module.css'\n\nexport type OverflowListStylesNames = 'root'\n\nconst defaultProps = { maxRows: 1, maxVisibleItems: Infinity } as const\nconst varsResolver = createVarsResolver<any>((_, { gap }) => ({\n root: { '--ol-gap': getSpacing(gap) },\n}))\n\nfunction getDataSignature(data: any[], getItemKey?: (item: any, index: number) => PropertyKey) {\n return data\n .map((item, index) =>\n getItemKey\n ? getItemKey(item, index)\n : item !== null && (typeof item === 'object' || typeof item === 'function')\n ? index\n : String(item),\n )\n .join(' ')\n}\n\nfunction getEl(value: any): HTMLElement | null {\n if (!value) return null\n return (value.$el ?? value) as HTMLElement | null\n}\n\nexport const OverflowList = withBoxProps(\n defineComponent({\n name: 'OverflowList',\n inheritAttrs: false,\n props: {\n data: { type: Array as PropType<any[]>, required: true },\n renderItem: { type: Function as PropType<(item: any, index: number) => any>, required: true },\n renderOverflow: { type: Function as PropType<(items: any[]) => any>, required: true },\n maxRows: { type: Number, default: undefined },\n maxVisibleItems: { type: Number, default: undefined },\n gap: { type: [String, Number] as PropType<string | number>, default: undefined },\n collapseFrom: { type: String as PropType<'start' | 'end'>, default: 'end' },\n getItemKey: {\n type: Function as PropType<(item: any, index: number) => PropertyKey>,\n default: undefined,\n },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, expose }) {\n const props = useProps('OverflowList', defaultProps, rawProps)\n\n const rootRef = ref<any>(null)\n const overflowRef = ref<any>(null)\n\n const visibleCount = ref(props.data.length)\n const subtractCount = ref(0)\n const phase = ref<'normal' | 'measuring' | 'measuring-overflow-indicator'>('normal')\n\n const dimensions = useDimensions(rootRef)\n\n const maxRows = computed(() => props.maxRows ?? defaultProps.maxRows)\n const maxVisibleItems = computed(() => props.maxVisibleItems ?? defaultProps.maxVisibleItems)\n const finalVisibleCount = computed(() =>\n Math.max(0, visibleCount.value - subtractCount.value),\n )\n const isCollapseStart = computed(() => props.collapseFrom === 'start')\n\n const getStyles = useStyles({\n name: 'OverflowList',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n vars: props.vars as any,\n varsResolver,\n })\n\n expose({ root: rootRef })\n\n function fitsInRows(\n widths: number[],\n containerWidth: number,\n columnGap: number,\n startIndex = 0,\n ) {\n let rows = 1\n let rowWidth = 0\n for (let index = startIndex; index < widths.length; index += 1) {\n const width = widths[index]\n const needed = rowWidth > 0 ? width + columnGap : width\n if (rowWidth + needed > containerWidth && rowWidth > 0) {\n rows += 1\n if (rows > maxRows.value) return false\n rowWidth = width\n } else {\n rowWidth += needed\n }\n }\n return true\n }\n\n function countVisibleItems() {\n const container = getEl(rootRef.value)\n const overflow = getEl(overflowRef.value)\n const rowData = getRowPositionsData(container, overflow)\n if (!rowData || !container) return\n\n if (isCollapseStart.value) {\n const containerWidth = container.getBoundingClientRect().width\n const gap = parseFloat(getComputedStyle(container).columnGap) || 0\n const widths = rowData.children.map((child) => child.getBoundingClientRect().width)\n let count = 0\n for (let index = widths.length - 1; index >= 0; index -= 1) {\n if (!fitsInRows(widths, containerWidth, gap, index)) break\n count = widths.length - index\n }\n visibleCount.value = Math.min(count, maxVisibleItems.value)\n return\n }\n\n if (props.data.length === 1) {\n const item = rowData.itemsSizesMap[rowData.rowPositions[0]].elements.values().next().value\n visibleCount.value =\n (item?.getBoundingClientRect().width ?? 0) > container.getBoundingClientRect().width\n ? 0\n : 1\n return\n }\n\n visibleCount.value = Math.min(\n rowData.rowPositions\n .slice(0, maxRows.value)\n .reduce((count, position) => count + rowData.itemsSizesMap[position].elements.size, 0),\n maxVisibleItems.value,\n )\n }\n\n function updateOverflowIndicator() {\n const container = getEl(rootRef.value)\n const overflow = getEl(overflowRef.value)\n if (!overflow || !container) return false\n const rowData = getRowPositionsData(container, overflow)\n if (!rowData) return false\n\n if (isCollapseStart.value) {\n const containerWidth = container.getBoundingClientRect().width\n const gap = parseFloat(getComputedStyle(container).columnGap) || 0\n const widths = [\n overflow.getBoundingClientRect().width,\n ...rowData.children.map((child) => child.getBoundingClientRect().width),\n ]\n if (!fitsInRows(widths, containerWidth, gap)) {\n subtractCount.value += 1\n return true\n }\n return false\n }\n\n const rect = overflow.getBoundingClientRect()\n const lastRow = rowData.itemsSizesMap[rowData.rowPositions[rowData.rowPositions.length - 1]]\n if (rect.top + rect.height / 2 > lastRow.bottom) {\n subtractCount.value += 1\n return true\n }\n return false\n }\n\n // Cancellation token: each new measure() call increments this; stale async runs bail out\n // when they detect a newer token, preventing races from rapid resizes or data changes.\n let measureToken = 0\n\n async function measure() {\n const token = ++measureToken\n phase.value = 'measuring'\n visibleCount.value = props.data.length\n subtractCount.value = 0\n await nextTick()\n if (token !== measureToken) return\n countVisibleItems()\n phase.value = 'measuring-overflow-indicator'\n await nextTick()\n if (token !== measureToken) return\n while (updateOverflowIndicator()) {\n await nextTick()\n if (token !== measureToken) return\n }\n phase.value = 'normal'\n }\n\n // Re-measure when data content/order, maxRows, or collapseFrom changes.\n watch(\n () => [getDataSignature(props.data, props.getItemKey), props.maxRows, props.collapseFrom],\n measure,\n { flush: 'post' },\n )\n\n watch(dimensions, () => measure(), { flush: 'post' })\n\n // Trigger the first measurement on mount. The data watch only fires on changes (not on\n // initial render), and in test/SSR environments the ResizeObserver may never fire at all,\n // so onMounted is the reliable initial trigger.\n onMounted(() => measure())\n\n return () => {\n const finalItems = isCollapseStart.value\n ? props.data.slice(-maxVisibleItems.value)\n : props.data.slice(0, maxVisibleItems.value)\n const indexOffset = isCollapseStart.value ? props.data.length - finalItems.length : 0\n const overflowItems = isCollapseStart.value\n ? props.data.slice(0, props.data.length - finalVisibleCount.value)\n : props.data.slice(finalVisibleCount.value)\n const showOverflow = overflowItems.length > 0 && phase.value !== 'measuring'\n const overflowNode = showOverflow ? props.renderOverflow(overflowItems) : null\n\n // Attach overflowRef so updateOverflowIndicator() can measure the collapsed element.\n const renderedOverflow =\n overflowNode && typeof overflowNode === 'object'\n ? cloneVNode(overflowNode as VNode, { ref: overflowRef }, true)\n : overflowNode\n\n const items = finalItems.map((item, index) => {\n const visible =\n phase.value === 'measuring' ||\n (isCollapseStart.value\n ? index >= finalItems.length - finalVisibleCount.value\n : index < finalVisibleCount.value)\n return visible ? props.renderItem(item, indexOffset + index) : null\n })\n\n return h(\n Box,\n {\n ...attrs,\n ref: rootRef,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () =>\n isCollapseStart.value ? [renderedOverflow, ...items] : [...items, renderedOverflow],\n )\n }\n },\n }),\n)\n\nObject.assign(OverflowList, { classes, varsResolver })\n",".root {\n display: flex;\n flex-direction: column;\n --toc-depth-offset: 0.8em;\n}\n\n.control {\n display: block;\n padding: 0.3em 0.8em;\n font-size: var(--toc-size, var(--mantine-font-size-md));\n border-radius: var(--toc-radius, var(--mantine-radius-default));\n padding-left: max(calc(var(--depth-offset) * var(--toc-depth-offset)), 0.8em);\n\n @mixin where-hover {\n &:where(:not([data-variant='none'])) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n }\n\n &:where([data-active]) {\n background-color: var(--toc-bg);\n color: var(--toc-color);\n }\n}\n","import { defineComponent, h, type PropType, type Ref } from 'vue'\nimport {\n assignRef,\n useId,\n useScrollSpy,\n type UseScrollSpyHeadingData,\n type UseScrollSpyOptions,\n} from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getFontSize,\n getRadius,\n rem,\n useProps,\n useStyles,\n} from '../../core'\nimport { UnstyledButton } from '../UnstyledButton'\nimport classes from './TableOfContents.module.css'\n\nexport type TableOfContentsStylesNames = 'root' | 'control'\nexport type TableOfContentsVariant = 'filled' | 'light' | 'none'\nexport interface InitialTableOfContentsData {\n depth: number\n value: string\n id?: string\n}\n\nconst defaultProps = {\n variant: 'filled',\n getControlProps: ({ data }: any) => ({ children: data.value }),\n} as const\n\nconst varsResolver = createVarsResolver<any>(\n (theme, { color, size, variant, autoContrast, depthOffset, radius }) => {\n const colors = theme.variantColorResolver({\n color: color || theme.primaryColor,\n theme,\n variant: variant || 'filled',\n autoContrast,\n })\n return {\n root: {\n '--toc-bg': variant !== 'none' ? colors.background : undefined,\n '--toc-color': variant !== 'none' ? colors.color : undefined,\n '--toc-size': getFontSize(size),\n '--toc-depth-offset': rem(depthOffset),\n '--toc-radius': getRadius(radius),\n },\n }\n },\n)\n\nexport const TableOfContents = withBoxProps(\n defineComponent({\n name: 'TableOfContents',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n autoContrast: { type: Boolean, default: undefined },\n scrollSpyOptions: { type: Object as PropType<UseScrollSpyOptions>, default: undefined },\n initialData: { type: Array as PropType<InitialTableOfContentsData[]>, default: undefined },\n getControlProps: {\n type: Function as PropType<\n (payload: { active: boolean; data: UseScrollSpyHeadingData }) => Record<string, any>\n >,\n default: undefined,\n },\n minDepthToOffset: { type: Number, default: undefined },\n depthOffset: { type: [String, Number] as PropType<string | number>, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n reinitializeRef: { type: Object as PropType<Ref<(() => void) | null>>, default: undefined },\n variant: { type: String as PropType<TableOfContentsVariant>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('TableOfContents', defaultProps, rawProps)\n const id = useId()\n const spy = useScrollSpy(props.scrollSpyOptions ?? {})\n assignRef(props.reinitializeRef, spy.reinitialize)\n const getStyles = useStyles({\n name: 'TableOfContents',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n\n return () => {\n const headings = (\n spy.initialized.value ? spy.data.value : (props.initialData ?? [])\n ) as Array<UseScrollSpyHeadingData | InitialTableOfContentsData>\n return h(\n Box,\n {\n ...attrs,\n variant: props.variant,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () =>\n headings.map((data, index) => {\n const normalized = {\n ...data,\n id: data.id ?? `${id.value}-${index}`,\n getNode: 'getNode' in data ? data.getNode : () => null as any,\n } as UseScrollSpyHeadingData\n const controlProps =\n props.getControlProps?.({ active: index === spy.active.value, data: normalized }) ??\n {}\n const { children, ...restControlProps } = controlProps\n return h(\n UnstyledButton,\n {\n ...restControlProps,\n key: normalized.id,\n variant: props.variant,\n 'data-active': index === spy.active.value || undefined,\n style: [\n { '--depth-offset': data.depth - (props.minDepthToOffset ?? 1) },\n controlProps.style,\n getStyles('control').style,\n ],\n class: [getStyles('control').class, controlProps.class, controlProps.className],\n },\n () => (typeof children === 'function' ? children() : children),\n )\n }),\n )\n }\n },\n }),\n)\n\nObject.assign(TableOfContents, { classes, varsResolver })\n",".root {\n position: fixed;\n z-index: var(--floating-window-z-index);\n}\n","import { defineComponent, h, type PropType, type Ref } from 'vue'\nimport {\n assignRef,\n useFloatingWindow,\n type FloatingWindowPosition,\n type FloatingWindowPositionConfig,\n type SetFloatingWindowPosition,\n} from '@mantine-vue/hooks'\nimport { getDefaultZIndex, useProps, useStyles } from '../../core'\nimport { Paper } from '../Paper'\nimport { OptionalPortal } from '../Portal'\nimport classes from './FloatingWindow.module.css'\n\nexport type FloatingWindowStylesNames = 'root'\nconst defaultProps = {\n constrainToViewport: true,\n withinPortal: true,\n zIndex: getDefaultZIndex('overlay'),\n} as const\n\nexport const FloatingWindow = defineComponent({\n name: 'FloatingWindow',\n inheritAttrs: false,\n props: {\n enabled: { type: Boolean, default: undefined },\n constrainToViewport: { type: Boolean, default: undefined },\n constrainOffset: { type: Number, default: undefined },\n dragHandleSelector: { type: String, default: undefined },\n excludeDragHandleSelector: { type: String, default: undefined },\n axis: { type: String as PropType<'x' | 'y'>, default: undefined },\n initialPosition: { type: Object as PropType<FloatingWindowPositionConfig>, default: undefined },\n onPositionChange: {\n type: Function as PropType<(position: FloatingWindowPosition) => void>,\n default: undefined,\n },\n onDragStart: { type: Function as PropType<() => void>, default: undefined },\n onDragEnd: { type: Function as PropType<() => void>, default: undefined },\n setPositionRef: {\n type: Object as PropType<Ref<SetFloatingWindowPosition | null>>,\n default: undefined,\n },\n withinPortal: { type: Boolean, default: undefined },\n portalProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n zIndex: { type: [String, Number] as PropType<string | number>, default: undefined },\n shadow: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n withBorder: { type: Boolean, default: false },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots, expose }) {\n const props = useProps('FloatingWindow', defaultProps, rawProps)\n const floating = useFloatingWindow<HTMLDivElement>(props)\n assignRef(props.setPositionRef, floating.setPosition)\n expose({ setPosition: floating.setPosition })\n const getStyles = useStyles({\n name: 'FloatingWindow',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n })\n\n return () =>\n h(OptionalPortal, { withinPortal: props.withinPortal, ...props.portalProps }, () =>\n h(\n Paper,\n {\n ...attrs,\n ref: ((value: any) => floating.ref(value?.$el ?? value)) as any,\n shadow: props.shadow,\n radius: props.radius,\n withBorder: props.withBorder,\n mod: [{ dragging: floating.isDragging.value }, props.mod],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n style: [\n getStyles('root').style,\n { '--floating-window-z-index': String(props.zIndex) },\n attrs.style,\n ],\n },\n () => slots.default?.(),\n ),\n )\n },\n})\n\nObject.assign(FloatingWindow, { classes })\n","import { createSafeContext } from '../../core'\nexport type SliderStylesNames =\n | 'root'\n | 'label'\n | 'thumb'\n | 'trackContainer'\n | 'track'\n | 'bar'\n | 'markWrapper'\n | 'mark'\n | 'markLabel'\nexport type SliderCssVariables = {\n root: '--slider-size' | '--slider-color' | '--slider-thumb-size' | '--slider-radius'\n}\nexport const [provideSliderContext, useSliderContext] = createSafeContext<{\n getStyles: (selector: string, options?: any) => any\n}>('SliderProvider was not found in tree')\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useSliderContext } from '../Slider.context'\nexport const SliderRoot = withBoxProps(\n defineComponent({\n name: 'SliderRoot',\n inheritAttrs: false,\n props: {\n size: { type: [String, Number] as PropType<string | number>, required: true },\n disabled: { type: Boolean, default: false },\n variant: { type: String, default: undefined },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: 'horizontal' },\n },\n setup(props, { attrs, slots }) {\n const ctx = useSliderContext()\n return () =>\n h(\n Box,\n {\n ...attrs,\n tabindex: -1,\n variant: props.variant,\n ...ctx.getStyles('root', { className: attrs.class, style: attrs.style }),\n mod: { orientation: props.orientation },\n },\n () => slots.default?.(),\n )\n },\n }),\n)\n","import { defineComponent, h, ref, type PropType } from 'vue'\nimport { Box } from '../../../core'\nimport { useSliderContext } from '../Slider.context'\n\nexport const Thumb = defineComponent({\n name: 'SliderThumb',\n inheritAttrs: false,\n props: {\n max: { type: Number, required: true },\n min: { type: Number, required: true },\n value: { type: Number, required: true },\n position: { type: Number, required: true },\n dragging: { type: Boolean, default: false },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n thumbValueText: {\n type: [String, Function] as PropType<string | ((value: number) => string)>,\n default: undefined,\n },\n labelTransitionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n labelAlwaysOn: { type: Boolean, default: false },\n thumbLabel: { type: String, default: undefined },\n showLabelOnHover: { type: Boolean, default: true },\n isHovered: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: 'horizontal' },\n },\n emits: ['focus', 'blur', 'mousedown'],\n setup(props, { attrs, slots, emit }) {\n const ctx = useSliderContext()\n const focused = ref(false)\n return () => {\n const visible =\n props.label != null &&\n (props.labelAlwaysOn ||\n props.dragging ||\n focused.value ||\n (props.showLabelOnHover && props.isHovered))\n return h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('thumb', { className: attrs.class, style: attrs.style }),\n tabindex: props.disabled ? -1 : 0,\n role: 'slider',\n 'aria-label': props.thumbLabel,\n 'aria-valuemax': props.max,\n 'aria-valuemin': props.min,\n 'aria-valuenow': props.value,\n 'aria-valuetext':\n typeof props.thumbValueText === 'function'\n ? props.thumbValueText(props.value)\n : props.thumbValueText,\n 'aria-disabled': props.disabled || undefined,\n 'aria-orientation': props.orientation,\n mod: { dragging: props.dragging, disabled: props.disabled },\n style: [\n ctx.getStyles('thumb').style,\n { '--slider-thumb-offset': `${props.position}%` },\n attrs.style,\n ],\n onFocus: (event: FocusEvent) => {\n focused.value = true\n emit('focus', event)\n },\n onBlur: (event: FocusEvent) => {\n focused.value = false\n emit('blur', event)\n },\n onMousedown: (event: MouseEvent) => emit('mousedown', event),\n onTouchstart: (event: TouchEvent) => emit('mousedown', event),\n onClick: (event: MouseEvent) => event.stopPropagation(),\n },\n () => [\n slots.default?.(),\n visible\n ? h(\n 'div',\n ctx.getStyles('label'),\n typeof props.label === 'function' ? props.label() : props.label,\n )\n : null,\n ],\n )\n }\n },\n})\n","export const clamp = (value: number, min: number, max: number) =>\n Math.min(max, Math.max(min, value))\nexport function getPosition({ value, min, max }: { value: number; min: number; max: number }) {\n return clamp(((value - min) / (max - min)) * 100, 0, 100)\n}\nexport function getPrecision(step: number) {\n if (!step) return 0\n const split = step.toString().split('.')\n return split.length > 1 ? split[1].length : 0\n}\nexport function getFloatingValue(value: number, precision: number) {\n return parseFloat(value.toFixed(precision))\n}\nexport function getChangeValue({\n value,\n containerWidth,\n min,\n max,\n step,\n precision,\n}: {\n value: number\n containerWidth?: number\n min: number\n max: number\n step: number\n precision?: number\n}) {\n const left = !containerWidth ? value : clamp(value, 0, containerWidth) / containerWidth\n const dx = left * (max - min)\n const next = Math.max((dx !== 0 ? Math.round(dx / step) * step : 0) + min, min)\n return precision === undefined ? next : Number(next.toFixed(precision))\n}\nexport function getNextMarkValue(current: number, marks: { value: number }[]) {\n return (\n [...marks].sort((a, b) => a.value - b.value).find((mark) => mark.value > current)?.value ??\n current\n )\n}\nexport function getPreviousMarkValue(current: number, marks: { value: number }[]) {\n return (\n [...marks].sort((a, b) => b.value - a.value).find((mark) => mark.value < current)?.value ??\n current\n )\n}\nexport function findClosest(value: number, values: number[]) {\n return values.reduce(\n (closest, item) => (Math.abs(item - value) < Math.abs(closest - value) ? item : closest),\n values[0] ?? value,\n )\n}\nexport function isMarkFilled({\n mark,\n offset,\n value,\n inverted = false,\n startPointValue,\n}: {\n mark: { value: number }\n offset?: number\n value: number\n inverted?: boolean\n startPointValue?: number\n}) {\n if (typeof startPointValue === 'number' && !inverted)\n return (\n (mark.value >= startPointValue && mark.value <= value) ||\n (mark.value <= startPointValue && mark.value >= value)\n )\n return inverted\n ? typeof offset === 'number'\n ? mark.value <= offset || mark.value >= value\n : mark.value >= value\n : typeof offset === 'number'\n ? mark.value >= offset && mark.value <= value\n : mark.value <= value\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box } from '../../../core'\nimport { useSliderContext } from '../Slider.context'\nimport type { SliderMark } from '../SliderMark'\nimport { getPosition, isMarkFilled } from '../utils/slider-utils'\n\nexport const Marks = defineComponent({\n name: 'SliderMarks',\n props: {\n marks: { type: Array as PropType<SliderMark[]>, default: undefined },\n min: { type: Number, required: true },\n max: { type: Number, required: true },\n value: { type: Number, required: true },\n offset: { type: Number, default: undefined },\n disabled: { type: Boolean, default: false },\n inverted: { type: Boolean, default: false },\n startPointValue: { type: Number, default: undefined },\n },\n setup(props) {\n const ctx = useSliderContext()\n return () =>\n props.marks\n ? h(\n 'div',\n props.marks.map((mark, index) =>\n mark.hidden\n ? null\n : h(\n Box,\n {\n ...ctx.getStyles('markWrapper'),\n key: index,\n style: [\n ctx.getStyles('markWrapper').style,\n {\n '--mark-offset': `${getPosition({ value: mark.value, min: props.min, max: props.max })}%`,\n },\n ],\n },\n () => [\n h(Box, {\n ...ctx.getStyles('mark'),\n mod: {\n filled: isMarkFilled({\n mark,\n value: props.value,\n offset: props.offset,\n inverted: props.inverted,\n startPointValue: props.startPointValue,\n }),\n disabled: props.disabled,\n },\n }),\n mark.label != null ? h('div', ctx.getStyles('markLabel'), mark.label) : null,\n ],\n ),\n ),\n )\n : null\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box } from '../../../core'\nimport { Marks } from '../Marks/Marks'\nimport type { SliderMark } from '../SliderMark'\nimport { useSliderContext } from '../Slider.context'\n\nexport const Track = defineComponent({\n name: 'SliderTrack',\n inheritAttrs: false,\n props: {\n filled: { type: Number, required: true },\n offset: { type: Number, default: 0 },\n marksOffset: { type: Number, default: undefined },\n marks: { type: Array as PropType<SliderMark[]>, default: undefined },\n min: { type: Number, required: true },\n max: { type: Number, required: true },\n value: { type: Number, required: true },\n startPointValue: { type: Number, default: undefined },\n disabled: { type: Boolean, default: false },\n inverted: { type: Boolean, default: false },\n containerProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useSliderContext()\n return () =>\n h(\n Box,\n {\n ...props.containerProps,\n ...ctx.getStyles('trackContainer'),\n mod: { disabled: props.disabled },\n },\n () =>\n h(\n Box,\n {\n ...ctx.getStyles('track'),\n mod: { inverted: props.inverted, disabled: props.disabled },\n },\n () => [\n h(Box, {\n ...ctx.getStyles('bar'),\n mod: { inverted: props.inverted, disabled: props.disabled },\n style: [\n ctx.getStyles('bar').style,\n {\n '--slider-bar-width': `calc(${props.filled}% + 2 * var(--slider-size))`,\n '--slider-bar-offset': `calc(${props.offset}% - var(--slider-size))`,\n },\n ],\n }),\n slots.default?.(),\n h(Marks, {\n marks: props.marks,\n min: props.min,\n max: props.max,\n value: props.value,\n offset: props.marksOffset,\n disabled: props.disabled,\n inverted: props.inverted,\n startPointValue: props.startPointValue,\n }),\n ],\n ),\n )\n },\n})\n",".root {\n --slider-size-xs: 4px;\n --slider-size-sm: 6px;\n --slider-size-md: 8px;\n --slider-size-lg: 10px;\n --slider-size-xl: 12px;\n\n --slider-size: var(--slider-size-md);\n --slider-radius: 1000px;\n --slider-color: var(--mantine-primary-color-filled);\n --slider-track-disabled-bg: var(--mantine-color-disabled);\n\n -webkit-tap-highlight-color: transparent;\n outline: none;\n height: calc(var(--slider-size) * 2);\n padding-inline: var(--slider-size);\n display: flex;\n flex-direction: column;\n align-items: center;\n touch-action: none;\n position: relative;\n\n @mixin light {\n --slider-track-bg: var(--mantine-color-gray-2);\n }\n\n @mixin dark {\n --slider-track-bg: var(--mantine-color-dark-4);\n }\n\n &[data-orientation='vertical'] {\n width: calc(var(--slider-size) * 2);\n height: 200px;\n padding-inline: 0;\n padding-block: var(--slider-size);\n }\n}\n\n.label {\n position: absolute;\n top: -36px;\n font-size: var(--mantine-font-size-xs);\n color: var(--mantine-color-white);\n padding: calc(var(--mantine-spacing-xs) / 2);\n border-radius: var(--mantine-radius-sm);\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n touch-action: none;\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-9);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n\n :where(.root[data-orientation='vertical']) & {\n top: auto;\n inset-inline-start: calc(100% + 8px);\n }\n}\n\n.thumb {\n position: absolute;\n display: flex;\n height: var(--slider-thumb-size);\n width: var(--slider-thumb-size);\n border: 4px solid;\n transform: translate(-50%, -50%);\n top: 50%;\n cursor: pointer;\n border-radius: var(--slider-radius);\n align-items: center;\n justify-content: center;\n transition:\n box-shadow 100ms ease,\n transform 100ms ease;\n z-index: 3;\n user-select: none;\n touch-action: none;\n outline-offset: 2px;\n left: var(--slider-thumb-offset);\n\n @mixin where-rtl {\n left: auto;\n right: calc(var(--slider-thumb-offset) - var(--slider-thumb-size));\n }\n\n fieldset:disabled &,\n &:where([data-disabled]) {\n display: none;\n }\n\n &:where([data-dragging]) {\n transform: translate(-50%, -50%) scale(1.05);\n box-shadow: var(--mantine-shadow-sm);\n }\n\n @mixin where-light {\n color: var(--slider-color);\n border-color: var(--slider-color);\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-white);\n border-color: var(--mantine-color-white);\n background-color: var(--slider-color);\n }\n\n :where(.root[data-orientation='vertical']) & {\n left: 50%;\n top: auto;\n right: auto;\n bottom: var(--slider-thumb-offset);\n transform: translate(-50%, 50%);\n\n &:where([data-dragging]) {\n transform: translate(-50%, 50%) scale(1.05);\n }\n\n @mixin where-rtl {\n left: 50%;\n right: auto;\n }\n }\n}\n\n.trackContainer {\n display: flex;\n align-items: center;\n width: 100%;\n height: calc(var(--slider-size) * 2);\n cursor: pointer;\n\n fieldset:disabled &,\n &:where([data-disabled]) {\n cursor: not-allowed;\n }\n\n :where(.root[data-orientation='vertical']) & {\n flex-direction: column;\n width: calc(var(--slider-size) * 2);\n height: 100%;\n }\n}\n\n.track {\n position: relative;\n width: 100%;\n height: var(--slider-size);\n\n &:where([data-inverted]:not([data-disabled])) {\n --track-bg: var(--slider-color);\n }\n\n fieldset:disabled &:where([data-inverted]),\n &:where([data-inverted][data-disabled]) {\n --track-bg: var(--slider-track-disabled-bg);\n }\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n border-radius: var(--slider-radius);\n inset-inline: calc(var(--slider-size) * -1);\n background-color: var(--track-bg, var(--slider-track-bg));\n z-index: 0;\n }\n\n :where(.root[data-orientation='vertical']) & {\n width: var(--slider-size);\n height: 100%;\n\n &::before {\n inset-inline: 0;\n top: calc(var(--slider-size) * -1);\n bottom: calc(var(--slider-size) * -1);\n }\n }\n}\n\n.bar {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n background-color: var(--slider-color);\n border-radius: var(--slider-radius);\n width: var(--slider-bar-width);\n inset-inline-start: var(--slider-bar-offset);\n\n &:where([data-inverted]) {\n background-color: var(--slider-track-bg);\n }\n\n fieldset:disabled &:where(:not([data-inverted])),\n &:where([data-disabled]:not([data-inverted])) {\n background-color: var(--mantine-color-disabled-color);\n }\n\n :where(.root[data-orientation='vertical']) & {\n top: auto;\n bottom: var(--slider-bar-offset);\n inset-inline-start: 0;\n width: 100%;\n height: var(--slider-bar-width);\n }\n}\n\n.markWrapper {\n position: absolute;\n inset-inline-start: calc(var(--mark-offset) - var(--slider-size) / 2);\n top: 0;\n z-index: 2;\n height: 0;\n pointer-events: none;\n\n :where(.root[data-orientation='vertical']) & {\n inset-inline-start: 0;\n top: auto;\n bottom: calc(var(--mark-offset) + var(--slider-size) / 2);\n height: 0;\n width: 0;\n }\n}\n\n.mark {\n border: 2px solid;\n height: var(--slider-size);\n width: var(--slider-size);\n border-radius: 1000px;\n background-color: var(--mantine-color-white);\n pointer-events: none;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n\n &:where([data-filled]) {\n border-color: var(--slider-color);\n\n &:where([data-disabled]) {\n border-color: var(--mantine-color-disabled-border);\n }\n }\n}\n\n.markLabel {\n transform: translate(calc(-50% + var(--slider-size) / 2), calc(var(--mantine-spacing-xs) / 2));\n font-size: var(--mantine-font-size-sm);\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n\n @mixin where-light {\n color: var(--mantine-color-gray-6);\n }\n\n @mixin where-dark {\n color: var(--mantine-color-dark-2);\n }\n\n :where(.root[data-orientation='vertical']) & {\n transform: translate(\n calc(var(--slider-size) + var(--mantine-spacing-xs) / 2),\n calc(-50% - var(--slider-size) / 2)\n );\n }\n}\n","import { computed, defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { useMove, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n withBoxProps,\n createVarsResolver,\n getRadius,\n getSize,\n getThemeColor,\n rem,\n useDirection,\n useProps,\n useStyles,\n} from '../../../core'\nimport { provideSliderContext, type SliderStylesNames } from '../Slider.context'\nimport type { SliderMark } from '../SliderMark'\nimport { SliderRoot } from '../SliderRoot/SliderRoot'\nimport { Thumb } from '../Thumb/Thumb'\nimport { Track } from '../Track/Track'\nimport {\n clamp,\n findClosest,\n getChangeValue,\n getFloatingValue,\n getNextMarkValue,\n getPosition,\n getPrecision,\n getPreviousMarkValue,\n} from '../utils/slider-utils'\nimport classes from '../Slider.module.css'\n\nexport type { SliderStylesNames }\nconst defaultProps = {\n radius: 'xl',\n min: 0,\n max: 100,\n step: 1,\n marks: [],\n label: (value: number) => value,\n thumbLabel: '',\n showLabelOnHover: true,\n scale: (value: number) => value,\n size: 'md',\n orientation: 'horizontal',\n} as const\nconst varsResolver = createVarsResolver<any>((theme, { size, color, thumbSize, radius }) => ({\n root: {\n '--slider-size': getSize(size, 'slider-size'),\n '--slider-color': color ? getThemeColor(color, theme) : undefined,\n '--slider-radius': radius === undefined ? undefined : getRadius(radius),\n '--slider-thumb-size':\n thumbSize !== undefined ? rem(thumbSize) : 'calc(var(--slider-size) * 2)',\n },\n}))\n\nexport const Slider = withBoxProps(\n defineComponent({\n name: 'Slider',\n inheritAttrs: false,\n props: {\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n min: { type: Number, default: undefined },\n max: { type: Number, default: undefined },\n domain: { type: Array as unknown as PropType<[number, number]>, default: undefined },\n step: { type: Number, default: undefined },\n precision: { type: Number, default: undefined },\n value: { type: Number, default: undefined },\n defaultValue: { type: Number, default: undefined },\n onChange: { type: Function as PropType<(value: number) => void>, default: undefined },\n onChangeEnd: { type: Function as PropType<(value: number) => void>, default: undefined },\n name: { type: String, default: undefined },\n marks: { type: Array as PropType<SliderMark[]>, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n labelTransitionProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n labelAlwaysOn: { type: Boolean, default: false },\n thumbLabel: { type: String, default: undefined },\n thumbValueText: { type: [String, Function] as PropType<any>, default: undefined },\n showLabelOnHover: { type: Boolean, default: undefined },\n thumbChildren: {\n type: [String, Number, Object, Function] as PropType<any>,\n default: undefined,\n },\n disabled: { type: Boolean, default: false },\n thumbSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n scale: { type: Function as PropType<(value: number) => number>, default: undefined },\n inverted: { type: Boolean, default: false },\n startPointValue: { type: Number, default: undefined },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n restrictToMarks: { type: Boolean, default: false },\n thumbProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('Slider', defaultProps as any, rawProps) as any\n const direction = useDirection()\n const hovered = ref(false)\n const thumb = ref<HTMLElement | null>(null)\n const [current, setCurrent] = useUncontrolled<number>({\n value: () =>\n props.value === undefined ? undefined : clamp(props.value, props.min, props.max),\n defaultValue:\n props.defaultValue === undefined\n ? undefined\n : clamp(props.defaultValue, props.min, props.max),\n finalValue: clamp(0, props.min, props.max),\n onChange: (value) => props.onChange?.(value),\n })\n const valueRef = ref(current.value)\n watch(current, (value) => {\n valueRef.value = value\n })\n const precision = computed(() => props.precision ?? getPrecision(props.step))\n const domain = computed(() => props.domain ?? ([props.min, props.max] as [number, number]))\n const getStyles = useStyles({\n name: 'Slider',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n provideSliderContext({ getStyles })\n const update = (raw: number, end = false) => {\n if (props.disabled) return\n let next = getChangeValue({\n value: raw,\n min: domain.value[0],\n max: domain.value[1],\n step: props.step,\n precision: precision.value,\n })\n if (props.restrictToMarks)\n next = findClosest(\n next,\n props.marks.map((mark: SliderMark) => mark.value),\n )\n next = getFloatingValue(clamp(next, props.min, props.max), precision.value)\n setCurrent(next)\n valueRef.value = next\n if (end) props.onChangeEnd?.(next)\n }\n const move = useMove<HTMLDivElement>(\n ({ x, y }) => update(props.orientation === 'vertical' ? 1 - y : x),\n { onScrubEnd: () => !props.disabled && props.onChangeEnd?.(valueRef.value) },\n direction.dir.value,\n )\n const keydown = (event: KeyboardEvent) => {\n if (props.disabled) return\n let next = valueRef.value\n const increase =\n event.key === 'ArrowUp' ||\n (event.key === 'ArrowRight' && direction.dir.value === 'ltr') ||\n (event.key === 'ArrowLeft' && direction.dir.value === 'rtl')\n const decrease =\n event.key === 'ArrowDown' ||\n (event.key === 'ArrowLeft' && direction.dir.value === 'ltr') ||\n (event.key === 'ArrowRight' && direction.dir.value === 'rtl')\n if (!increase && !decrease) return\n event.preventDefault()\n next = props.restrictToMarks\n ? increase\n ? getNextMarkValue(next, props.marks)\n : getPreviousMarkValue(next, props.marks)\n : next + (increase ? props.step : -props.step)\n update(\n (clamp(next, domain.value[0], domain.value[1]) - domain.value[0]) /\n (domain.value[1] - domain.value[0]),\n true,\n )\n }\n return () => {\n const position = getPosition({\n value: current.value,\n min: domain.value[0],\n max: domain.value[1],\n })\n const scaled = props.scale(current.value)\n const label = typeof props.label === 'function' ? props.label(scaled) : props.label\n const start =\n typeof props.startPointValue === 'number' && !props.inverted\n ? getPosition({\n value: props.startPointValue,\n min: domain.value[0],\n max: domain.value[1],\n })\n : 0\n return h(\n SliderRoot,\n { ...attrs, size: props.size, disabled: props.disabled, orientation: props.orientation },\n () => [\n h(\n Track,\n {\n filled: Math.abs(position - start),\n offset: Math.min(position, start),\n marks: props.marks,\n min: domain.value[0],\n max: domain.value[1],\n value: current.value,\n disabled: props.disabled,\n inverted: props.inverted,\n startPointValue: props.startPointValue,\n containerProps: {\n ref: (node: any) => move.ref(node?.$el ?? node),\n onMouseenter: () => (hovered.value = true),\n onMouseleave: () => (hovered.value = false),\n },\n },\n {\n default: () =>\n h(\n Thumb,\n {\n ...props.thumbProps,\n ref: (node: any) => (thumb.value = node?.$el ?? node),\n max: props.max,\n min: props.min,\n value: scaled,\n position,\n dragging: move.active.value,\n label,\n labelTransitionProps: props.labelTransitionProps,\n labelAlwaysOn: props.labelAlwaysOn,\n thumbLabel: props.thumbLabel,\n thumbValueText: props.thumbValueText,\n showLabelOnHover: props.showLabelOnHover,\n isHovered: hovered.value,\n disabled: props.disabled,\n orientation: props.orientation,\n onKeydown: keydown,\n },\n () => props.thumbChildren,\n ),\n },\n ),\n props.name\n ? h('input', {\n type: 'hidden',\n name: props.name,\n value: current.value,\n ...props.hiddenInputProps,\n })\n : null,\n ],\n )\n }\n },\n }),\n)\nObject.assign(Slider, { classes, varsResolver })\n","import { computed, defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { useMove, useUncontrolled } from '@mantine-vue/hooks'\nimport {\n createVarsResolver,\n getRadius,\n getSize,\n getThemeColor,\n rem,\n useDirection,\n useProps,\n useStyles,\n} from '../../../core'\nimport { provideSliderContext } from '../Slider.context'\nimport type { SliderMark } from '../SliderMark'\nimport { SliderRoot } from '../SliderRoot/SliderRoot'\nimport { Thumb } from '../Thumb/Thumb'\nimport { Track } from '../Track/Track'\nimport {\n clamp,\n findClosest,\n getChangeValue,\n getFloatingValue,\n getNextMarkValue,\n getPosition,\n getPrecision,\n getPreviousMarkValue,\n} from '../utils/slider-utils'\nimport classes from '../Slider.module.css'\nexport type RangeSliderValue = [number, number]\nconst defaults = {\n min: 0,\n max: 100,\n step: 1,\n minRange: 10,\n maxRange: Infinity,\n pushOnOverlap: true,\n marks: [],\n label: (value: number) => value,\n showLabelOnHover: true,\n scale: (value: number) => value,\n size: 'md',\n radius: 'xl',\n orientation: 'horizontal',\n} as const\nconst varsResolver = createVarsResolver<any>((theme, { size, color, thumbSize, radius }) => ({\n root: {\n '--slider-size': getSize(size, 'slider-size'),\n '--slider-color': color ? getThemeColor(color, theme) : undefined,\n '--slider-radius': getRadius(radius),\n '--slider-thumb-size':\n thumbSize !== undefined ? rem(thumbSize) : 'calc(var(--slider-size) * 2)',\n },\n}))\nexport const RangeSlider = defineComponent({\n name: 'RangeSlider',\n inheritAttrs: false,\n props: {\n value: { type: Array as unknown as PropType<RangeSliderValue>, default: undefined },\n defaultValue: { type: Array as unknown as PropType<RangeSliderValue>, default: undefined },\n onChange: { type: Function as PropType<(value: RangeSliderValue) => void>, default: undefined },\n onChangeEnd: {\n type: Function as PropType<(value: RangeSliderValue) => void>,\n default: undefined,\n },\n min: { type: Number, default: undefined },\n max: { type: Number, default: undefined },\n domain: { type: Array as unknown as PropType<RangeSliderValue>, default: undefined },\n step: { type: Number, default: undefined },\n precision: { type: Number, default: undefined },\n minRange: { type: Number, default: undefined },\n maxRange: { type: Number, default: undefined },\n pushOnOverlap: { type: Boolean, default: undefined },\n marks: { type: Array as PropType<SliderMark[]>, default: undefined },\n restrictToMarks: { type: Boolean, default: false },\n name: { type: String, default: undefined },\n label: { type: [String, Number, Object, Function] as PropType<any>, default: undefined },\n labelAlwaysOn: { type: Boolean, default: false },\n showLabelOnHover: { type: Boolean, default: undefined },\n thumbLabel: { type: Array as unknown as PropType<[string, string]>, default: undefined },\n thumbValueText: { type: [String, Function] as PropType<any>, default: undefined },\n thumbChildren: { type: Array as PropType<any[]>, default: undefined },\n thumbProps: {\n type: Function as PropType<(index: number) => Record<string, any>>,\n default: undefined,\n },\n disabled: { type: Boolean, default: false },\n inverted: { type: Boolean, default: false },\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n scale: { type: Function as PropType<(value: number) => number>, default: undefined },\n size: { type: [String, Number] as PropType<string | number>, default: undefined },\n color: { type: String, default: undefined },\n radius: { type: [String, Number] as PropType<string | number>, default: undefined },\n thumbSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('RangeSlider', defaults as any, rawProps) as any\n const direction = useDirection()\n const activeThumb = ref(0)\n const focused = ref(0)\n const hovered = ref(false)\n const [current, setCurrent] = useUncontrolled<RangeSliderValue>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: [props.min, props.max],\n onChange: (value) => props.onChange?.(value),\n })\n const valueRef = ref<RangeSliderValue>([...current.value])\n watch(current, (value) => (valueRef.value = [...value]))\n const precision = computed(() => props.precision ?? getPrecision(props.step))\n const domain = computed(() => props.domain ?? ([props.min, props.max] as RangeSliderValue))\n const getStyles = useStyles({\n name: 'RangeSlider',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n provideSliderContext({ getStyles })\n const setAt = (raw: number, index: number, end = false) => {\n if (props.disabled) return\n const next = [...valueRef.value] as RangeSliderValue\n let value = getChangeValue({\n value: raw,\n min: domain.value[0],\n max: domain.value[1],\n step: props.step,\n precision: precision.value,\n })\n if (props.restrictToMarks)\n value = findClosest(\n value,\n props.marks.map((mark: SliderMark) => mark.value),\n )\n value = clamp(value, props.min, props.max)\n const other = index === 0 ? 1 : 0\n if (index === 0 && value > next[1] - props.minRange) {\n if (props.pushOnOverlap) next[1] = clamp(value + props.minRange, props.min, props.max)\n else value = next[0]\n }\n if (index === 1 && value < next[0] + props.minRange) {\n if (props.pushOnOverlap) next[0] = clamp(value - props.minRange, props.min, props.max)\n else value = next[1]\n }\n if (Math.abs(value - next[other]) > props.maxRange) {\n if (props.pushOnOverlap)\n next[other] = value + (index === 0 ? props.maxRange : -props.maxRange)\n else value = next[index]\n }\n next[index] = getFloatingValue(value, precision.value)\n next.sort((a, b) => a - b)\n setCurrent(next)\n valueRef.value = next\n if (end) props.onChangeEnd?.(next)\n }\n const move = useMove<HTMLDivElement>(\n ({ x, y }) => setAt(props.orientation === 'vertical' ? 1 - y : x, activeThumb.value),\n { onScrubEnd: () => props.onChangeEnd?.(valueRef.value) },\n direction.dir.value,\n )\n const keydown = (index: number, event: KeyboardEvent) => {\n const increase = event.key === 'ArrowUp' || event.key === 'ArrowRight'\n const decrease = event.key === 'ArrowDown' || event.key === 'ArrowLeft'\n if (!increase && !decrease) return\n event.preventDefault()\n let next = valueRef.value[index]\n next = props.restrictToMarks\n ? increase\n ? getNextMarkValue(next, props.marks)\n : getPreviousMarkValue(next, props.marks)\n : next + (increase ? props.step : -props.step)\n setAt((next - domain.value[0]) / (domain.value[1] - domain.value[0]), index, true)\n }\n return () => {\n const positions = current.value.map((value) =>\n getPosition({ value, min: domain.value[0], max: domain.value[1] }),\n ) as RangeSliderValue\n return h(\n SliderRoot,\n { ...attrs, size: props.size, disabled: props.disabled, orientation: props.orientation },\n () => [\n h(\n Track,\n {\n offset: positions[0],\n marksOffset: current.value[0],\n filled: positions[1] - positions[0],\n marks: props.marks,\n min: domain.value[0],\n max: domain.value[1],\n value: current.value[1],\n disabled: props.disabled,\n inverted: props.inverted,\n containerProps: {\n ref: (node: any) => move.ref(node?.$el ?? node),\n onMouseenter: () => (hovered.value = true),\n onMouseleave: () => (hovered.value = false),\n onMousedownCapture: (event: MouseEvent) => {\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n const ratio =\n props.orientation === 'vertical'\n ? (rect.bottom - event.clientY) / rect.height\n : (event.clientX - rect.left) / rect.width\n const value =\n domain.value[0] + clamp(ratio, 0, 1) * (domain.value[1] - domain.value[0])\n activeThumb.value =\n Math.abs(current.value[0] - value) > Math.abs(current.value[1] - value) ? 1 : 0\n },\n },\n },\n {\n default: () =>\n [0, 1].map((index) =>\n h(\n Thumb,\n {\n ...props.thumbProps?.(index),\n max: props.max,\n min: props.min,\n value: props.scale(current.value[index]),\n position: positions[index],\n dragging: move.active.value && activeThumb.value === index,\n label:\n typeof props.label === 'function'\n ? props.label(props.scale(current.value[index]))\n : props.label,\n labelAlwaysOn: props.labelAlwaysOn,\n thumbLabel: props.thumbLabel?.[index],\n thumbValueText: props.thumbValueText,\n showLabelOnHover: props.showLabelOnHover,\n isHovered: hovered.value,\n disabled: props.disabled,\n orientation: props.orientation,\n onMousedown: () => (activeThumb.value = index),\n onFocus: () => (focused.value = index),\n onKeydown: (event: KeyboardEvent) => keydown(index, event),\n },\n () => props.thumbChildren?.[index],\n ),\n ),\n },\n ),\n props.name\n ? [\n h('input', {\n type: 'hidden',\n name: `${props.name}_from`,\n value: current.value[0],\n ...props.hiddenInputProps,\n }),\n h('input', {\n type: 'hidden',\n name: `${props.name}_to`,\n value: current.value[1],\n ...props.hiddenInputProps,\n }),\n ]\n : null,\n ],\n )\n }\n },\n})\nObject.assign(RangeSlider, { classes, varsResolver })\n","import { inject, provide, type InjectionKey } from 'vue'\nexport interface ColorPickerContextValue {\n getStyles: (selector: string, options?: any) => any\n unstyled?: boolean\n}\nconst ColorPickerContextKey = Symbol('ColorPickerContext') as InjectionKey<ColorPickerContextValue>\nexport const provideColorPickerContext = (value: ColorPickerContextValue) =>\n provide(ColorPickerContextKey, value)\nexport const useColorPickerContext = () => inject(ColorPickerContextKey, null)\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box } from '../../../core'\nexport const Thumb = defineComponent({\n name: 'ColorPickerThumb',\n inheritAttrs: false,\n props: { position: { type: Object as PropType<{ x: number; y: number }>, required: true } },\n setup(props, { attrs }) {\n return () =>\n h(Box, {\n ...attrs,\n style: [\n attrs.style,\n {\n '--thumb-y-offset': `${props.position.y * 100}%`,\n '--thumb-x-offset': `${props.position.x * 100}%`,\n },\n ],\n })\n },\n})\n",".wrapper {\n --cp-width-xs: 180px;\n --cp-width-sm: 200px;\n --cp-width-md: 240px;\n --cp-width-lg: 280px;\n --cp-width-xl: 320px;\n\n --cp-preview-size-xs: 26px;\n --cp-preview-size-sm: 34px;\n --cp-preview-size-md: 42px;\n --cp-preview-size-lg: 50px;\n --cp-preview-size-xl: 54px;\n\n --cp-thumb-size-xs: 8px;\n --cp-thumb-size-sm: 12px;\n --cp-thumb-size-md: 16px;\n --cp-thumb-size-lg: 20px;\n --cp-thumb-size-xl: 22px;\n\n --cp-saturation-height-xs: 100px;\n --cp-saturation-height-sm: 110px;\n --cp-saturation-height-md: 120px;\n --cp-saturation-height-lg: 140px;\n --cp-saturation-height-xl: 160px;\n\n --cp-preview-size: var(--cp-preview-size-sm);\n --cp-thumb-size: var(--cp-thumb-size-sm);\n --cp-saturation-height: var(--cp-saturation-height-sm);\n --cp-width: var(--cp-width-sm);\n --cp-body-spacing: var(--mantine-spacing-sm);\n\n width: var(--cp-width);\n padding: 1px;\n\n &:where([data-full-width]) {\n width: 100%;\n }\n}\n\n.preview {\n width: var(--cp-preview-size);\n height: var(--cp-preview-size);\n}\n\n.body {\n display: flex;\n padding-top: calc(var(--cp-body-spacing) / 2);\n}\n\n.sliders {\n flex: 1;\n\n &:not(:only-child) {\n margin-inline-end: var(--mantine-spacing-xs);\n }\n}\n\n.thumb {\n overflow: hidden;\n position: absolute;\n box-shadow: 0 0 1px rgba(0, 0, 0, 0.6);\n border: 2px solid var(--mantine-color-white);\n width: var(--cp-thumb-size);\n height: var(--cp-thumb-size);\n border-radius: var(--cp-thumb-size);\n left: calc(var(--thumb-x-offset) - var(--cp-thumb-size) / 2);\n top: calc(var(--thumb-y-offset) - var(--cp-thumb-size) / 2);\n}\n\n.swatch {\n height: unset !important;\n width: unset !important;\n min-width: 0 !important;\n min-height: 0 !important;\n margin: 2px;\n cursor: pointer;\n padding-bottom: calc(var(--cp-swatch-size) - rem(4px));\n flex: 0 0 calc(var(--cp-swatch-size) - rem(4px));\n}\n\n.swatches {\n margin-top: 5px;\n margin-inline: -2px;\n display: flex;\n flex-wrap: wrap;\n\n &:only-child {\n margin-top: 0;\n }\n}\n\n.saturation {\n --cp-thumb-size-xs: 8px;\n --cp-thumb-size-sm: 12px;\n --cp-thumb-size-md: 16px;\n --cp-thumb-size-lg: 20px;\n --cp-thumb-size-xl: 22px;\n\n -webkit-tap-highlight-color: transparent;\n position: relative;\n height: var(--cp-saturation-height);\n border-radius: var(--mantine-radius-sm);\n margin: calc(var(--cp-thumb-size) / 2);\n\n &:where([data-focus-ring='auto']) {\n &:focus:focus-visible {\n & .thumb {\n outline: 2px solid var(--mantine-color-blue-filled);\n }\n }\n }\n\n &:where([data-focus-ring='always']) {\n &:focus {\n & .thumb {\n outline: 2px solid var(--mantine-color-blue-filled);\n }\n }\n }\n}\n\n.saturationOverlay {\n position: absolute;\n border-radius: var(--mantine-radius-sm);\n inset: calc(var(--cp-thumb-size) * -1 / 2 - rem(1px));\n}\n\n.slider {\n --cp-thumb-size-xs: 8px;\n --cp-thumb-size-sm: 12px;\n --cp-thumb-size-md: 16px;\n --cp-thumb-size-lg: 20px;\n --cp-thumb-size-xl: 22px;\n --cp-thumb-size: var(--cp-thumb-size, rem(12px));\n\n position: relative;\n height: calc(var(--cp-thumb-size) + rem(2px));\n margin-inline: calc(var(--cp-thumb-size) / 2);\n outline: none;\n\n & + & {\n margin-top: 6px;\n }\n\n &:where([data-focus-ring='auto']) {\n &:focus:focus-visible {\n & .thumb {\n outline: 2px solid var(--mantine-color-blue-filled);\n }\n }\n }\n\n &:where([data-focus-ring='always']) {\n &:focus {\n & .thumb {\n outline: 2px solid var(--mantine-color-blue-filled);\n }\n }\n }\n\n @mixin where-light {\n --slider-checkers: var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n --slider-checkers: var(--mantine-color-dark-4);\n }\n}\n\n.sliderOverlay {\n position: absolute;\n top: 0;\n bottom: 0;\n inset-inline: calc(var(--cp-thumb-size) * -1 / 2 - rem(1px));\n border-radius: 10000rem;\n}\n","import { defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { clampUseMovePosition, useMove } from '@mantine-vue/hooks'\nimport { Box, useMantineTheme, useStyles } from '../../../core'\nimport { useColorPickerContext } from '../ColorPicker.context'\nimport { Thumb } from '../Thumb/Thumb'\nimport classes from '../ColorPicker.module.css'\nexport type ColorSliderStylesNames = 'slider' | 'sliderOverlay' | 'thumb'\nexport const ColorSlider = defineComponent({\n name: 'ColorSlider',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n onChange: { type: Function as PropType<(value: number) => void>, default: undefined },\n onChangeEnd: { type: Function as PropType<(value: number) => void>, default: undefined },\n onScrubStart: { type: Function as PropType<() => void>, default: undefined },\n onScrubEnd: { type: Function as PropType<() => void>, default: undefined },\n size: { type: String, default: 'md' },\n focusable: { type: Boolean, default: true },\n maxValue: { type: Number, required: true },\n overlays: { type: Array as PropType<Record<string, any>[]>, required: true },\n round: { type: Boolean, required: true },\n thumbColor: { type: String, default: 'transparent' },\n __staticSelector: { type: String, default: 'ColorPicker' },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs }) {\n const ctx = useColorPickerContext()\n const theme = useMantineTheme()\n const position = ref({ x: props.value / props.maxValue, y: 0 })\n const positionRef = ref(position.value)\n const ownStyles = useStyles({\n name: props.__staticSelector,\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n unstyled: props.unstyled,\n })\n const getStyles = ctx?.getStyles ?? ownStyles\n const changeValue = (value: number) =>\n props.round ? Math.round(value * props.maxValue) : value * props.maxValue\n const move = useMove<HTMLDivElement>(\n ({ x, y }) => {\n positionRef.value = { x, y }\n position.value = { x, y: 0 }\n props.onChange?.(changeValue(x))\n },\n {\n onScrubStart: props.onScrubStart,\n onScrubEnd: () => {\n props.onChangeEnd?.(changeValue(positionRef.value.x))\n props.onScrubEnd?.()\n },\n },\n )\n watch(\n () => props.value,\n (value) => (position.value = { x: value / props.maxValue, y: 0 }),\n )\n const keydown = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return\n event.preventDefault()\n const next = clampUseMovePosition({\n x: position.value.x + (event.key === 'ArrowRight' ? 0.05 : -0.05),\n y: 0,\n })\n const value = changeValue(next.x)\n props.onChange?.(value)\n props.onChangeEnd?.(value)\n }\n return () =>\n h(\n Box,\n {\n ...attrs,\n ref: (node: any) => move.ref(node?.$el ?? node),\n ...getStyles('slider', { className: attrs.class, style: attrs.style }),\n role: 'slider',\n 'aria-valuenow': props.value,\n 'aria-valuemax': props.maxValue,\n 'aria-valuemin': 0,\n tabindex: props.focusable ? 0 : -1,\n onKeydown: keydown,\n 'data-focus-ring': theme.value.focusRing,\n style: [\n getStyles('slider').style,\n { '--cp-thumb-size': `var(--cp-thumb-size-${props.size})` },\n attrs.style,\n ],\n },\n () => [\n ...props.overlays.map((overlay, index) =>\n h('div', {\n ...getStyles('sliderOverlay'),\n style: [getStyles('sliderOverlay').style, overlay],\n key: index,\n }),\n ),\n h(Thumb, {\n position: position.value,\n ...getStyles('thumb'),\n style: [getStyles('thumb').style, { top: '0.0625rem', background: props.thumbColor }],\n }),\n ],\n )\n },\n})\nObject.assign(ColorSlider, { classes })\n","import type { ColorFormat, HslaColor, HsvaColor, RgbaColor } from '../ColorPicker.types'\nexport function round(number: number, digits = 0, base = 10 ** digits) {\n return Math.round(base * number) / base\n}\nfunction hslaToHsva({ h, s, l, a }: HslaColor): HsvaColor {\n const ss = s * ((l < 50 ? l : 100 - l) / 100)\n return { h, s: ss > 0 ? ((2 * ss) / (l + ss)) * 100 : 0, v: l + ss, a }\n}\nconst angleUnits: Record<string, number> = { grad: 360 / 400, turn: 360, rad: 360 / (Math.PI * 2) }\nexport function parseHue(value: string, unit = 'deg') {\n return Number(value) * (angleUnits[unit] || 1)\n}\nconst HSL_REGEXP =\n /hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i\nexport function parseHsla(color: string): HsvaColor {\n const match = HSL_REGEXP.exec(color)\n if (!match) return { h: 0, s: 0, v: 0, a: 1 }\n return hslaToHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n l: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n })\n}\nfunction rgbaToHsva({ r, g, b, a }: RgbaColor): HsvaColor {\n const max = Math.max(r, g, b)\n const delta = max - Math.min(r, g, b)\n const hh = delta\n ? max === r\n ? (g - b) / delta\n : max === g\n ? 2 + (b - r) / delta\n : 4 + (r - g) / delta\n : 0\n return {\n h: round(60 * (hh < 0 ? hh + 6 : hh), 3),\n s: round(max ? (delta / max) * 100 : 0, 3),\n v: round((max / 255) * 100, 3),\n a,\n }\n}\nexport function parseHex(color: string): HsvaColor {\n const hex = color[0] === '#' ? color.slice(1) : color\n if (hex.length === 3)\n return rgbaToHsva({\n r: parseInt(hex[0] + hex[0], 16),\n g: parseInt(hex[1] + hex[1], 16),\n b: parseInt(hex[2] + hex[2], 16),\n a: 1,\n })\n return rgbaToHsva({\n r: parseInt(hex.slice(0, 2), 16),\n g: parseInt(hex.slice(2, 4), 16),\n b: parseInt(hex.slice(4, 6), 16),\n a: 1,\n })\n}\nexport function parseHexa(color: string): HsvaColor {\n const hex = color[0] === '#' ? color.slice(1) : color\n const alpha = (value: string) => round(parseInt(value, 16) / 255, 3)\n return hex.length === 4\n ? { ...parseHex(hex.slice(0, 3)), a: alpha(hex[3] + hex[3]) }\n : { ...parseHex(hex.slice(0, 6)), a: alpha(hex.slice(6, 8)) }\n}\nconst RGB_REGEXP =\n /rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i\nexport function parseRgba(color: string): HsvaColor {\n const match = RGB_REGEXP.exec(color)\n if (!match) return { h: 0, s: 0, v: 0, a: 1 }\n return rgbaToHsva({\n r: Number(match[1]) / (match[2] ? 100 / 255 : 1),\n g: Number(match[3]) / (match[4] ? 100 / 255 : 1),\n b: Number(match[5]) / (match[6] ? 100 / 255 : 1),\n a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? 100 : 1),\n })\n}\nconst VALIDATION: Record<ColorFormat, RegExp> = {\n hex: /^#?([0-9A-F]{3}){1,2}$/i,\n hexa: /^#?([0-9A-F]{4}){1,2}$/i,\n rgb: /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/i,\n rgba: /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/i,\n hsl: /hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\s*,\\s*(\\d+(?:\\.\\d+)?%)\\)/i,\n hsla: /^hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*(\\d*(?:\\.\\d+)?)\\)$/i,\n}\nconst PARSERS: Record<ColorFormat, (color: string) => HsvaColor> = {\n hex: parseHex,\n hexa: parseHexa,\n rgb: parseRgba,\n rgba: parseRgba,\n hsl: parseHsla,\n hsla: parseHsla,\n}\nexport function isColorValid(color: string) {\n return (\n typeof color === 'string' && Object.values(VALIDATION).some((rule) => rule.test(color.trim()))\n )\n}\nexport function parseColor(color: string): HsvaColor {\n if (color === 'transparent') return { h: 0, s: 0, v: 0, a: 0 }\n if (typeof color !== 'string') return { h: 0, s: 0, v: 0, a: 1 }\n const value = color.trim()\n for (const [format, rule] of Object.entries(VALIDATION))\n if (rule.test(value)) return PARSERS[format as ColorFormat](value)\n return { h: 0, s: 0, v: 0, a: 1 }\n}\n","import type { ColorFormat, HsvaColor, RgbaColor } from '../ColorPicker.types'\nimport { round } from './parsers'\nexport function hsvaToRgbaObject({ h, s, v, a }: HsvaColor): RgbaColor {\n const hue = (h / 360) * 6\n const sat = s / 100\n const val = v / 100\n const hh = Math.floor(hue)\n const l = val * (1 - sat)\n const c = val * (1 - (hue - hh) * sat)\n const d = val * (1 - (1 - hue + hh) * sat)\n const mod = hh % 6\n return {\n r: round([val, c, l, l, d, val][mod] * 255),\n g: round([d, val, val, c, l, l][mod] * 255),\n b: round([l, l, d, val, val, c][mod] * 255),\n a: round(a, 2),\n }\n}\nexport function hsvaToRgba(color: HsvaColor, alpha: boolean) {\n const { r, g, b, a } = hsvaToRgbaObject(color)\n return alpha ? `rgba(${r}, ${g}, ${b}, ${round(a, 2)})` : `rgb(${r}, ${g}, ${b})`\n}\nexport function hsvaToHsl({ h, s, v, a }: HsvaColor, alpha: boolean) {\n const hh = ((200 - s) * v) / 100\n const result = {\n h: Math.round(h),\n s: Math.round(hh > 0 && hh < 200 ? ((s * v) / 100 / (hh <= 100 ? hh : 200 - hh)) * 100 : 0),\n l: Math.round(hh / 2),\n }\n return alpha\n ? `hsla(${result.h}, ${result.s}%, ${result.l}%, ${round(a, 2)})`\n : `hsl(${result.h}, ${result.s}%, ${result.l}%)`\n}\nconst hexPart = (number: number) => number.toString(16).padStart(2, '0')\nexport function hsvaToHex(color: HsvaColor) {\n const { r, g, b } = hsvaToRgbaObject(color)\n return `#${hexPart(r)}${hexPart(g)}${hexPart(b)}`\n}\nexport function hsvaToHexa(color: HsvaColor) {\n return `${hsvaToHex(color)}${hexPart(Math.round(color.a * 255))}`\n}\nconst CONVERTERS: Record<ColorFormat, (color: HsvaColor) => string> = {\n hex: hsvaToHex,\n hexa: hsvaToHexa,\n rgb: (color) => hsvaToRgba(color, false),\n rgba: (color) => hsvaToRgba(color, true),\n hsl: (color) => hsvaToHsl(color, false),\n hsla: (color) => hsvaToHsl(color, true),\n}\nexport function convertHsvaTo(format: ColorFormat, color: HsvaColor) {\n return color ? (CONVERTERS[format] ?? CONVERTERS.hex)(color) : '#000000'\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { rem } from '../../../core'\nimport { ColorSlider } from '../ColorSlider/ColorSlider'\nimport { round } from '../converters'\nexport const AlphaSlider = defineComponent({\n name: 'AlphaSlider',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n color: { type: String, required: true },\n onChange: { type: Function as PropType<(value: number) => void>, default: undefined },\n onChangeEnd: { type: Function as PropType<(value: number) => void>, default: undefined },\n onScrubStart: { type: Function as PropType<() => void>, default: undefined },\n onScrubEnd: { type: Function as PropType<() => void>, default: undefined },\n size: { type: String, default: 'md' },\n focusable: { type: Boolean, default: true },\n },\n setup(props, { attrs }) {\n return () =>\n h(ColorSlider, {\n ...attrs,\n ...props,\n __staticSelector: 'AlphaSlider',\n maxValue: 1,\n round: false,\n 'data-alpha': '',\n onChange: (value: number) => props.onChange?.(round(value, 2)),\n onChangeEnd: (value: number) => props.onChangeEnd?.(round(value, 2)),\n overlays: [\n {\n backgroundImage:\n 'linear-gradient(45deg,var(--slider-checkers) 25%,transparent 25%),linear-gradient(-45deg,var(--slider-checkers) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--slider-checkers) 75%)',\n backgroundSize: `${rem(8)} ${rem(8)}`,\n },\n { backgroundImage: `linear-gradient(90deg, transparent, ${props.color})` },\n { boxShadow: `rgba(0,0,0,.1) 0 0 0 ${rem(1)} inset` },\n ],\n })\n },\n})\nObject.assign(AlphaSlider, { classes: ColorSlider.classes })\n","import { defineComponent, h, type PropType } from 'vue'\nimport { rem } from '../../../core'\nimport { ColorSlider } from '../ColorSlider/ColorSlider'\nexport const HueSlider = defineComponent({\n name: 'HueSlider',\n inheritAttrs: false,\n props: {\n value: { type: Number, required: true },\n onChange: { type: Function as PropType<(value: number) => void>, default: undefined },\n onChangeEnd: { type: Function as PropType<(value: number) => void>, default: undefined },\n onScrubStart: { type: Function as PropType<() => void>, default: undefined },\n onScrubEnd: { type: Function as PropType<() => void>, default: undefined },\n size: { type: String, default: 'md' },\n focusable: { type: Boolean, default: true },\n },\n setup(props, { attrs }) {\n return () =>\n h(ColorSlider, {\n ...attrs,\n ...props,\n __staticSelector: 'HueSlider',\n maxValue: 360,\n thumbColor: `hsl(${props.value}, 100%, 50%)`,\n round: true,\n 'data-hue': '',\n overlays: [\n {\n backgroundImage:\n 'linear-gradient(to right,hsl(0,100%,50%),hsl(60,100%,50%),hsl(120,100%,50%),hsl(170,100%,50%),hsl(240,100%,50%),hsl(300,100%,50%),hsl(360,100%,50%))',\n },\n {\n boxShadow: `rgba(0,0,0,.1) 0 0 0 ${rem(1)} inset, rgba(0,0,0,.15) 0 0 ${rem(4)} inset`,\n },\n ],\n })\n },\n})\nObject.assign(HueSlider, { classes: ColorSlider.classes })\n","import { defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { clampUseMovePosition, useMove } from '@mantine-vue/hooks'\nimport { Box } from '../../../core'\nimport { useColorPickerContext } from '../ColorPicker.context'\nimport type { HsvaColor } from '../ColorPicker.types'\nimport { convertHsvaTo } from '../converters'\nimport { Thumb } from '../Thumb/Thumb'\nexport const Saturation = defineComponent({\n name: 'Saturation',\n inheritAttrs: false,\n props: {\n value: { type: Object as PropType<HsvaColor>, required: true },\n onChange: { type: Function as PropType<(color: Partial<HsvaColor>) => void>, required: true },\n onChangeEnd: {\n type: Function as PropType<(color: Partial<HsvaColor>) => void>,\n required: true,\n },\n onScrubStart: { type: Function as PropType<() => void>, default: undefined },\n onScrubEnd: { type: Function as PropType<() => void>, default: undefined },\n saturationLabel: { type: String, default: undefined },\n size: { type: String, required: true },\n color: { type: String, required: true },\n focusable: { type: Boolean, default: true },\n },\n setup(props, { attrs }) {\n const ctx = useColorPickerContext()!\n const position = ref({ x: props.value.s / 100, y: 1 - props.value.v / 100 })\n const positionRef = ref(position.value)\n const move = useMove<HTMLDivElement>(\n ({ x, y }) => {\n position.value = { x, y }\n positionRef.value = { x, y }\n props.onChange({ s: Math.round(x * 100), v: Math.round((1 - y) * 100) })\n },\n {\n onScrubStart: props.onScrubStart,\n onScrubEnd: () => {\n const { x, y } = positionRef.value\n props.onChangeEnd({ s: Math.round(x * 100), v: Math.round((1 - y) * 100) })\n props.onScrubEnd?.()\n },\n },\n )\n watch(\n () => [props.value.s, props.value.v],\n () => (position.value = { x: props.value.s / 100, y: 1 - props.value.v / 100 }),\n )\n const keydown = (event: KeyboardEvent) => {\n const delta = 0.05\n let next = { ...position.value }\n if (event.key === 'ArrowUp') next.y -= delta\n else if (event.key === 'ArrowDown') next.y += delta\n else if (event.key === 'ArrowRight') next.x += delta\n else if (event.key === 'ArrowLeft') next.x -= delta\n else return\n event.preventDefault()\n next = clampUseMovePosition(next)\n const color = { s: Math.round(next.x * 100), v: Math.round((1 - next.y) * 100) }\n props.onChange(color)\n props.onChangeEnd(color)\n }\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...ctx.getStyles('saturation'),\n ref: (node: any) => move.ref(node?.$el ?? node),\n role: 'slider',\n 'aria-label': props.saturationLabel,\n 'aria-valuenow': position.value.x,\n 'aria-valuetext': convertHsvaTo('rgba', props.value),\n tabindex: props.focusable ? 0 : -1,\n onKeydown: keydown,\n },\n () => [\n h(\n 'div',\n ctx.getStyles('saturationOverlay', {\n style: { backgroundColor: `hsl(${props.value.h}, 100%, 50%)` },\n }),\n ),\n h(\n 'div',\n ctx.getStyles('saturationOverlay', {\n style: { backgroundImage: 'linear-gradient(90deg,#fff,transparent)' },\n }),\n ),\n h(\n 'div',\n ctx.getStyles('saturationOverlay', {\n style: { backgroundImage: 'linear-gradient(0deg,#000,transparent)' },\n }),\n ),\n h(Thumb, {\n position: position.value,\n ...ctx.getStyles('thumb', { style: { backgroundColor: props.color } }),\n }),\n ],\n )\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box, luminance } from '../../../core'\nimport { CheckIcon } from '../../Checkbox'\nimport { ColorSwatch } from '../../ColorSwatch'\nimport { useColorPickerContext } from '../ColorPicker.context'\n\nexport const Swatches = defineComponent({\n name: 'Swatches',\n props: {\n data: { type: Array as PropType<string[]>, required: true },\n focusable: { type: Boolean, default: true },\n value: { type: String, default: undefined },\n setValue: { type: Function as PropType<(value: string) => void>, required: true },\n onChangeEnd: { type: Function as PropType<(value: string) => void>, default: undefined },\n },\n setup(props, { attrs }) {\n const ctx = useColorPickerContext()!\n return () =>\n h(Box, { ...attrs, ...ctx.getStyles('swatches') }, () =>\n props.data.map((color, index) =>\n h(\n ColorSwatch,\n {\n ...ctx.getStyles('swatch'),\n component: 'button',\n type: 'button',\n color,\n key: index,\n radius: 'sm',\n unstyled: ctx.unstyled,\n 'aria-label': color,\n tabindex: props.focusable ? 0 : -1,\n 'data-swatch': '',\n onClick: () => {\n props.setValue(color)\n props.onChangeEnd?.(color)\n },\n },\n () =>\n props.value === color\n ? h(CheckIcon, {\n width: '35%',\n color: luminance(color) < 0.5 ? 'white' : 'black',\n })\n : null,\n ),\n ),\n )\n },\n})\n","import { defineComponent, h, ref, watch, type PropType } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport { Box, createVarsResolver, getSize, getSpacing, useProps, useStyles } from '../../core'\nimport { ColorSwatch } from '../ColorSwatch'\nimport { AlphaSlider } from './AlphaSlider/AlphaSlider'\nimport { provideColorPickerContext } from './ColorPicker.context'\nimport type { ColorFormat, HsvaColor } from './ColorPicker.types'\nimport { convertHsvaTo, isColorValid, parseColor } from './converters'\nimport { HueSlider } from './HueSlider/HueSlider'\nimport { Saturation } from './Saturation/Saturation'\nimport { Swatches } from './Swatches/Swatches'\nimport classes from './ColorPicker.module.css'\nexport type ColorPickerStylesNames =\n | 'wrapper'\n | 'preview'\n | 'body'\n | 'sliders'\n | 'slider'\n | 'sliderOverlay'\n | 'thumb'\n | 'saturation'\n | 'saturationOverlay'\n | 'swatches'\n | 'swatch'\nconst defaults = {\n swatchesPerRow: 7,\n withPicker: true,\n focusable: true,\n size: 'md',\n format: 'hex',\n __staticSelector: 'ColorPicker',\n} as const\nconst varsResolver = createVarsResolver<any>((_, { size, swatchesPerRow }) => ({\n wrapper: {\n '--cp-preview-size': getSize(size, 'cp-preview-size'),\n '--cp-width': getSize(size, 'cp-width'),\n '--cp-body-spacing': getSpacing(size),\n '--cp-swatch-size': `${100 / swatchesPerRow}%`,\n '--cp-thumb-size': getSize(size, 'cp-thumb-size'),\n '--cp-saturation-height': getSize(size, 'cp-saturation-height'),\n },\n}))\nexport const ColorPicker = defineComponent({\n name: 'ColorPicker',\n inheritAttrs: false,\n props: {\n value: { type: String, default: undefined },\n defaultValue: { type: String, default: undefined },\n onChange: { type: Function as PropType<(value: string) => void>, default: undefined },\n onChangeEnd: { type: Function as PropType<(value: string) => void>, default: undefined },\n format: { type: String as PropType<ColorFormat>, default: undefined },\n withPicker: { type: Boolean, default: undefined },\n swatches: { type: Array as PropType<string[]>, default: undefined },\n swatchesPerRow: { type: Number, default: undefined },\n size: { type: String, default: undefined },\n fullWidth: { type: Boolean, default: false },\n focusable: { type: Boolean, default: undefined },\n saturationLabel: { type: String, default: undefined },\n hueLabel: { type: String, default: undefined },\n alphaLabel: { type: String, default: undefined },\n onColorSwatchClick: { type: Function as PropType<(color: string) => void>, default: undefined },\n name: { type: String, default: undefined },\n hiddenInputProps: { type: Object as PropType<Record<string, any>>, default: undefined },\n __staticSelector: { type: String, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs }) {\n const props = useProps('ColorPicker', defaults as any, rawProps) as any\n const [current, setCurrent, controlled] = useUncontrolled<string>({\n value: () => props.value,\n defaultValue: props.defaultValue,\n finalValue: '#FFFFFF',\n onChange: (value) => props.onChange?.(value),\n })\n const parsed = ref<HsvaColor>(parseColor(current.value))\n let scrubbing = false\n let timer: ReturnType<typeof setTimeout> | undefined\n const getStyles = useStyles({\n name: props.__staticSelector,\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n provideColorPickerContext({ getStyles, unstyled: props.unstyled })\n const output = (color: HsvaColor) => convertHsvaTo(props.format, color)\n const change = (partial: Partial<HsvaColor>) => {\n parsed.value = { ...parsed.value, ...partial }\n setCurrent(output(parsed.value))\n }\n watch(\n () => props.value,\n (value) => {\n if (typeof value === 'string' && isColorValid(value) && !scrubbing)\n parsed.value = parseColor(value)\n },\n )\n watch(\n () => props.format,\n () => setCurrent(output(parsed.value)),\n )\n const start = () => {\n clearTimeout(timer)\n scrubbing = true\n }\n const stop = () => {\n clearTimeout(timer)\n timer = setTimeout(() => (scrubbing = false), 200)\n }\n return () =>\n h(\n Box,\n {\n ...attrs,\n ...getStyles('wrapper', { className: attrs.class, style: attrs.style }),\n mod: [{ fullWidth: props.fullWidth }, props.mod],\n },\n () => [\n props.name\n ? h('input', {\n type: 'hidden',\n name: props.name,\n value: current.value,\n ...props.hiddenInputProps,\n })\n : null,\n props.withPicker\n ? [\n h(Saturation, {\n value: parsed.value,\n onChange: change,\n onChangeEnd: (value: Partial<HsvaColor>) =>\n props.onChangeEnd?.(output({ ...parsed.value, ...value })),\n color: current.value,\n size: props.size,\n focusable: props.focusable,\n saturationLabel: props.saturationLabel,\n onScrubStart: start,\n onScrubEnd: stop,\n }),\n h('div', getStyles('body'), [\n h('div', getStyles('sliders'), [\n h(HueSlider, {\n value: parsed.value.h,\n onChange: (hue: number) => change({ h: hue }),\n onChangeEnd: (hue: number) =>\n props.onChangeEnd?.(output({ ...parsed.value, h: hue })),\n size: props.size,\n focusable: props.focusable,\n 'aria-label': props.hueLabel,\n onScrubStart: start,\n onScrubEnd: stop,\n }),\n ['hexa', 'rgba', 'hsla'].includes(props.format)\n ? h(AlphaSlider, {\n value: parsed.value.a,\n color: convertHsvaTo('hex', parsed.value),\n onChange: (alpha: number) => change({ a: alpha }),\n onChangeEnd: (alpha: number) =>\n props.onChangeEnd?.(output({ ...parsed.value, a: alpha })),\n size: props.size,\n focusable: props.focusable,\n 'aria-label': props.alphaLabel,\n onScrubStart: start,\n onScrubEnd: stop,\n })\n : null,\n ]),\n ['hexa', 'rgba', 'hsla'].includes(props.format)\n ? h(ColorSwatch, {\n color: current.value,\n radius: 'sm',\n size: 'var(--cp-preview-size)',\n ...getStyles('preview'),\n })\n : null,\n ]),\n ]\n : null,\n Array.isArray(props.swatches)\n ? h(Swatches, {\n data: props.swatches,\n focusable: props.focusable,\n value: current.value,\n setValue: (color: string) => {\n const converted = output(parseColor(color))\n setCurrent(converted)\n if (!controlled.value) parsed.value = parseColor(color)\n },\n onChangeEnd: (color: string) => {\n const converted = output(parseColor(color))\n props.onColorSwatchClick?.(converted)\n props.onChangeEnd?.(converted)\n },\n })\n : null,\n ],\n )\n },\n})\nObject.assign(ColorPicker, { classes, varsResolver })\n","import { createSafeContext } from '../../core'\nexport interface AppShellContextValue {\n getStyles: (selector: string, options?: any) => any\n withBorder?: boolean\n zIndex?: string | number\n disabled?: boolean\n offsetScrollbars?: boolean\n mode: 'fixed' | 'static'\n}\nexport const [provideAppShellContext, useAppShellContext] = createSafeContext<AppShellContextValue>(\n 'AppShell was not found in tree',\n)\n",".root {\n &[data-resizing] {\n --app-shell-transition-duration: 0ms !important;\n }\n\n &[data-disabled] {\n --app-shell-header-offset: 0rem !important;\n --app-shell-navbar-offset: 0rem !important;\n --app-shell-aside-offset: 0rem !important;\n --app-shell-footer-offset: 0rem !important;\n }\n\n &[data-mode='static'] {\n display: grid;\n grid-template-columns: var(--app-shell-navbar-width, 0) 1fr var(--app-shell-aside-width, 0);\n grid-template-rows: auto 1fr auto;\n position: relative;\n height: 100%;\n overflow: auto;\n }\n\n @mixin light {\n --app-shell-border-color: var(--mantine-color-gray-3);\n }\n\n @mixin dark {\n --app-shell-border-color: var(--mantine-color-dark-4);\n }\n}\n\n.navbar,\n.aside,\n.header,\n.main,\n.footer {\n transition-duration: var(--app-shell-transition-duration);\n transition-timing-function: var(--app-shell-transition-timing-function);\n}\n\n.navbar,\n.aside {\n position: fixed;\n display: flex;\n flex-direction: column;\n top: var(--app-shell-header-offset, 0rem);\n height: calc(\n 100dvh - var(--app-shell-header-offset, 0rem) - var(--app-shell-footer-offset, 0rem)\n );\n background-color: var(--mantine-color-body);\n transition-property: transform, top, height;\n\n :where([data-mode='static']) & {\n position: var(--app-shell-navbar-position, fixed);\n grid-row: var(--app-shell-navbar-grid-row, auto);\n height: 100%;\n }\n\n :where([data-layout='alt']) & {\n top: 0rem;\n height: 100dvh;\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-row: 1 / -1;\n height: 100%;\n }\n}\n\n.navbar {\n inset-inline-start: 0;\n width: var(--app-shell-navbar-width);\n transition-property: transform, top, height;\n transform: var(--app-shell-navbar-transform);\n z-index: var(--app-shell-navbar-z-index);\n\n :where([data-mode='static']) & {\n grid-column: var(--app-shell-navbar-grid-column, auto);\n display: var(--app-shell-navbar-display, flex);\n }\n\n @mixin where-rtl {\n transform: var(--app-shell-navbar-transform-rtl);\n }\n\n &:where([data-with-border]) {\n border-inline-end: 1px solid var(--app-shell-border-color);\n }\n}\n\n.aside {\n inset-inline-end: 0;\n width: var(--app-shell-aside-width);\n transform: var(--app-shell-aside-transform);\n z-index: var(--app-shell-aside-z-index);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-aside-position, fixed);\n grid-column: var(--app-shell-aside-grid-column, auto);\n grid-row: var(--app-shell-aside-grid-row, auto);\n display: var(--app-shell-aside-display, flex);\n }\n\n @mixin where-rtl {\n transform: var(--app-shell-aside-transform-rtl);\n }\n\n &:where([data-with-border]) {\n border-inline-start: 1px solid var(--app-shell-border-color);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-row: 1 / -1;\n }\n\n :where([data-scroll-locked]) & {\n visibility: var(--app-shell-aside-scroll-locked-visibility);\n }\n}\n\n.main {\n padding-inline-start: calc(var(--app-shell-navbar-offset, 0rem) + var(--app-shell-padding));\n padding-inline-end: calc(var(--app-shell-aside-offset, 0rem) + var(--app-shell-padding));\n padding-top: calc(var(--app-shell-header-offset, 0rem) + var(--app-shell-padding));\n padding-bottom: calc(var(--app-shell-footer-offset, 0rem) + var(--app-shell-padding));\n min-height: 100dvh;\n transition-property: padding;\n\n :where([data-mode='static']) & {\n padding-inline-start: var(--app-shell-padding);\n padding-inline-end: var(--app-shell-padding);\n padding-top: var(--app-shell-padding);\n padding-bottom: var(--app-shell-padding);\n min-height: auto;\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n grid-row: var(--app-shell-main-grid-row, 2);\n }\n}\n\n.header,\n.footer {\n position: fixed;\n inset-inline: 0;\n transition-property: transform, margin-inline-start, margin-inline-end;\n background-color: var(--mantine-color-body);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-header-position, fixed);\n grid-column: var(--app-shell-header-grid-column, auto);\n }\n\n :where([data-layout='alt']) & {\n margin-inline-start: var(--app-shell-navbar-offset, 0rem);\n margin-inline-end: var(--app-shell-aside-offset, 0rem);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n margin-inline-start: 0rem;\n margin-inline-end: 0rem;\n }\n}\n\n.header {\n top: 0;\n height: var(--app-shell-header-height);\n background-color: var(--mantine-color-body);\n transform: var(--app-shell-header-transform);\n z-index: var(--app-shell-header-z-index);\n\n :where([data-mode='static']) & {\n grid-row: var(--app-shell-header-grid-row, auto);\n }\n\n &:where([data-with-border]) {\n border-bottom: 1px solid var(--app-shell-border-color);\n }\n}\n\n.footer {\n bottom: 0;\n height: calc(var(--app-shell-footer-height) + env(safe-area-inset-bottom));\n padding-bottom: env(safe-area-inset-bottom);\n transform: var(--app-shell-footer-transform);\n z-index: var(--app-shell-footer-z-index);\n\n :where([data-mode='static']) & {\n position: var(--app-shell-footer-position, fixed);\n grid-column: var(--app-shell-footer-grid-column, auto);\n grid-row: var(--app-shell-footer-grid-row, auto);\n }\n\n :where([data-mode='static'][data-layout='alt']) & {\n grid-column: var(--app-shell-main-column-start, 1) / var(--app-shell-main-column-end, -1);\n }\n\n &:where([data-with-border]) {\n border-top: 1px solid var(--app-shell-border-color);\n }\n}\n\n.section {\n flex-grow: 0;\n\n &:where([data-grow]) {\n flex-grow: 1;\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Box } from '../../core'\nimport { useAppShellContext } from './AppShell.context'\nimport classes from './AppShell.module.css'\n\nexport function createAppShellComponent(\n name: string,\n selector: 'header' | 'footer' | 'navbar' | 'aside',\n component: string,\n) {\n const result = defineComponent({\n name,\n inheritAttrs: false,\n props: {\n withBorder: { type: Boolean, default: undefined },\n zIndex: { type: [String, Number] as PropType<string | number>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const ctx = useAppShellContext()\n return () => {\n if (ctx.disabled) return null\n const styles = ctx.getStyles(selector, { className: attrs.class, style: attrs.style })\n return h(\n Box,\n {\n ...attrs,\n ...styles,\n component,\n mod: [{ withBorder: props.withBorder ?? ctx.withBorder }, props.mod],\n style: [\n styles.style,\n {\n [`--app-shell-${selector}-z-index`]:\n selector === 'navbar' || selector === 'aside'\n ? `calc(${props.zIndex ?? ctx.zIndex} + 1)`\n : String(props.zIndex ?? ctx.zIndex),\n },\n attrs.style,\n ],\n },\n () => slots.default?.(),\n )\n }\n },\n })\n return Object.assign(result, { classes })\n}\n","import { createAppShellComponent } from '../create-app-shell-component'\nexport const AppShellAside = createAppShellComponent('AppShellAside', 'aside', 'aside')\n","import { createAppShellComponent } from '../create-app-shell-component'\nexport const AppShellFooter = createAppShellComponent('AppShellFooter', 'footer', 'footer')\n","import { createAppShellComponent } from '../create-app-shell-component'\nexport const AppShellHeader = createAppShellComponent('AppShellHeader', 'header', 'header')\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useAppShellContext } from '../AppShell.context'\nimport classes from '../AppShell.module.css'\nexport const AppShellMain = withBoxProps(\n Object.assign(\n defineComponent({\n name: 'AppShellMain',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useAppShellContext()\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'main',\n ...ctx.getStyles('main', { className: attrs.class, style: attrs.style }),\n },\n () => slots.default?.(),\n )\n },\n }),\n { classes },\n ),\n)\n","import { em, getBreakpointValue, getSpacing, rem, type MantineTheme } from '../../../core'\nimport type {\n AppShellAsideConfiguration,\n AppShellFooterConfiguration,\n AppShellHeaderConfiguration,\n AppShellNavbarConfiguration,\n AppShellResponsiveSize,\n AppShellSize,\n} from '../AppShell.types'\nexport type CSSVariables = Record<`--${string}`, string | undefined>\nexport type MediaQueryVariables = Record<string, CSSVariables>\n\nconst isResponsive = (value: unknown): value is AppShellResponsiveSize =>\n Boolean(value && typeof value === 'object')\nconst size = (value: AppShellSize | undefined) => (value === undefined ? undefined : rem(value))\nconst paddingValue = (value: AppShellSize | undefined) =>\n Number(value) === 0 ? '0px' : getSpacing(value)\nfunction breakpointPx(value: string | number, theme: MantineTheme) {\n return typeof value === 'string' && value in theme.breakpoints\n ? getBreakpointValue(theme.breakpoints[value])\n : getBreakpointValue(value)\n}\nfunction media(styles: MediaQueryVariables, query: string, values: CSSVariables) {\n styles[query] = { ...styles[query], ...values }\n}\nfunction responsive(\n value: AppShellSize | AppShellResponsiveSize | undefined,\n property: `--${string}`,\n base: CSSVariables,\n min: MediaQueryVariables,\n theme: MantineTheme,\n transform = size,\n) {\n if (isResponsive(value)) {\n if (value.base !== undefined) base[property] = transform(value.base)\n Object.entries(value).forEach(([key, item]) => {\n if (key !== 'base' && item !== undefined)\n media(min, `(min-width: ${em(breakpointPx(key, theme))})`, { [property]: transform(item) })\n })\n } else if (value !== undefined) base[property] = transform(value)\n}\n\nexport function getVariables({\n navbar,\n aside,\n header,\n footer,\n padding,\n theme,\n mode,\n}: {\n navbar?: AppShellNavbarConfiguration\n aside?: AppShellAsideConfiguration\n header?: AppShellHeaderConfiguration\n footer?: AppShellFooterConfiguration\n padding?: AppShellSize | AppShellResponsiveSize\n theme: MantineTheme\n mode: 'fixed' | 'static'\n}) {\n const baseStyles: CSSVariables = {}\n const minMediaStyles: MediaQueryVariables = {}\n const maxMediaStyles: MediaQueryVariables = {}\n responsive(padding, '--app-shell-padding', baseStyles, minMediaStyles, theme, paddingValue)\n const assignVertical = (\n config: AppShellHeaderConfiguration | AppShellFooterConfiguration | undefined,\n name: 'header' | 'footer',\n ) => {\n if (!config) return\n const property = `--app-shell-${name}-height` as const\n responsive(config.height, property, baseStyles, minMediaStyles, theme)\n const shouldOffset = mode === 'static' || config.offset !== false\n if (shouldOffset)\n responsive(config.height, `--app-shell-${name}-offset`, baseStyles, minMediaStyles, theme)\n if (config.collapsed) {\n baseStyles[`--app-shell-${name}-transform`] =\n name === 'header'\n ? 'translateY(calc(var(--app-shell-header-height) * -1))'\n : 'translateY(var(--app-shell-footer-height))'\n if (mode === 'fixed') baseStyles[`--app-shell-${name}-offset`] = '0px !important'\n }\n if (mode === 'static') {\n baseStyles[`--app-shell-${name}-position`] = 'sticky'\n baseStyles[`--app-shell-${name}-grid-column`] = '1 / -1'\n baseStyles[`--app-shell-${name}-grid-row`] = name === 'header' ? '1' : '3'\n }\n }\n assignVertical(header, 'header')\n assignVertical(footer, 'footer')\n const assignNavbarVariables = (config: AppShellNavbarConfiguration | undefined) => {\n if (!config) return\n responsive(config.width, '--app-shell-navbar-width', baseStyles, minMediaStyles, theme)\n responsive(config.width, '--app-shell-navbar-offset', baseStyles, minMediaStyles, theme)\n if (mode === 'static') {\n responsive(config.width, '--app-shell-navbar-grid-width', baseStyles, minMediaStyles, theme)\n }\n\n const bp = breakpointPx(config.breakpoint, theme)\n const minQuery = `(min-width: ${em(bp)})`\n const maxQuery = `(max-width: ${em(bp - 0.1)})`\n\n if (!config.collapsed?.mobile) {\n media(maxMediaStyles, maxQuery, {\n '--app-shell-navbar-offset': '0px',\n '--app-shell-navbar-width': '100%',\n ...(mode === 'static' ? { '--app-shell-navbar-grid-width': '0px' } : {}),\n })\n }\n\n if (mode === 'static') {\n media(minMediaStyles, minQuery, {\n '--app-shell-navbar-position': 'sticky',\n '--app-shell-navbar-grid-row': '2',\n '--app-shell-navbar-grid-column': '1',\n '--app-shell-main-column-start': '2',\n })\n }\n\n if (config.collapsed?.desktop) {\n media(minMediaStyles, minQuery, {\n '--app-shell-navbar-transform': 'translateX(calc(var(--app-shell-navbar-width) * -1))',\n '--app-shell-navbar-transform-rtl': 'translateX(var(--app-shell-navbar-width))',\n ...(mode === 'fixed'\n ? { '--app-shell-navbar-offset': '0px !important' }\n : {\n '--app-shell-navbar-width': '0px',\n '--app-shell-navbar-display': 'none',\n '--app-shell-main-column-start': '1',\n }),\n })\n }\n\n if (config.collapsed?.mobile) {\n media(maxMediaStyles, maxQuery, {\n '--app-shell-navbar-width': '100%',\n '--app-shell-navbar-offset': '0px',\n ...(mode === 'static' ? { '--app-shell-navbar-grid-width': '0px' } : {}),\n '--app-shell-navbar-transform': 'translateX(calc(var(--app-shell-navbar-width) * -1))',\n '--app-shell-navbar-transform-rtl': 'translateX(var(--app-shell-navbar-width))',\n })\n }\n }\n\n const assignAsideVariables = (config: AppShellAsideConfiguration | undefined) => {\n if (!config) return\n responsive(config.width, '--app-shell-aside-width', baseStyles, minMediaStyles, theme)\n responsive(config.width, '--app-shell-aside-offset', baseStyles, minMediaStyles, theme)\n\n const bp = breakpointPx(config.breakpoint, theme)\n const minQuery = `(min-width: ${em(bp)})`\n const maxQuery = `(max-width: ${em(bp - 0.1)})`\n\n if (!config.collapsed?.mobile) {\n media(\n maxMediaStyles,\n maxQuery,\n mode === 'fixed'\n ? { '--app-shell-aside-width': '100%', '--app-shell-aside-offset': '0px' }\n : { '--app-shell-aside-width': '0px', '--app-shell-aside-offset': '0px' },\n )\n }\n\n if (mode === 'static') {\n media(minMediaStyles, minQuery, {\n '--app-shell-aside-position': 'sticky',\n '--app-shell-aside-grid-row': '2',\n '--app-shell-aside-grid-column': '3',\n '--app-shell-main-column-end': '3',\n })\n }\n\n if (config.collapsed?.desktop) {\n media(minMediaStyles, minQuery, {\n '--app-shell-aside-transform': 'translateX(var(--app-shell-aside-width))',\n '--app-shell-aside-transform-rtl': 'translateX(calc(var(--app-shell-aside-width) * -1))',\n '--app-shell-aside-scroll-locked-visibility': 'hidden',\n ...(mode === 'fixed'\n ? { '--app-shell-aside-offset': '0px !important' }\n : {\n '--app-shell-aside-width': '0px',\n '--app-shell-aside-display': 'none',\n '--app-shell-main-column-end': '-1',\n }),\n })\n }\n\n if (config.collapsed?.mobile) {\n media(maxMediaStyles, maxQuery, {\n ...(mode === 'fixed'\n ? { '--app-shell-aside-width': '100%', '--app-shell-aside-offset': '0px' }\n : { '--app-shell-aside-width': '0px' }),\n '--app-shell-aside-transform': 'translateX(var(--app-shell-aside-width))',\n '--app-shell-aside-transform-rtl': 'translateX(calc(var(--app-shell-aside-width) * -1))',\n '--app-shell-aside-scroll-locked-visibility': 'hidden',\n })\n }\n }\n\n assignNavbarVariables(navbar)\n assignAsideVariables(aside)\n if (mode === 'static') {\n baseStyles['--app-shell-main-grid-column'] = '1 / -1'\n baseStyles['--app-shell-main-grid-row'] = '2'\n }\n return { baseStyles, media: { ...minMediaStyles, ...maxMediaStyles } }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { InlineStyles, useMantineContext, useMantineTheme } from '../../../core'\nimport type {\n AppShellAsideConfiguration,\n AppShellFooterConfiguration,\n AppShellHeaderConfiguration,\n AppShellNavbarConfiguration,\n AppShellResponsiveSize,\n AppShellSize,\n} from '../AppShell.types'\nimport { getVariables } from './get-variables'\nexport const AppShellMediaStyles = defineComponent({\n name: 'AppShellMediaStyles',\n props: {\n navbar: Object as PropType<AppShellNavbarConfiguration>,\n aside: Object as PropType<AppShellAsideConfiguration>,\n header: Object as PropType<AppShellHeaderConfiguration>,\n footer: Object as PropType<AppShellFooterConfiguration>,\n padding: [String, Number, Object] as PropType<AppShellSize | AppShellResponsiveSize>,\n mode: { type: String as PropType<'fixed' | 'static'>, required: true },\n selector: String,\n },\n setup(props) {\n const theme = useMantineTheme()\n const ctx = useMantineContext()\n return () => {\n const values = getVariables({ ...props, theme: theme.value })\n return h(InlineStyles, {\n selector: props.selector || ctx.cssVariablesSelector,\n styles: values.baseStyles,\n media: values.media,\n })\n }\n },\n})\n","import { createAppShellComponent } from '../create-app-shell-component'\nexport const AppShellNavbar = createAppShellComponent('AppShellNavbar', 'navbar', 'nav')\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useAppShellContext } from '../AppShell.context'\nimport classes from '../AppShell.module.css'\nexport const AppShellSection = withBoxProps(\n Object.assign(\n defineComponent({\n name: 'AppShellSection',\n inheritAttrs: false,\n props: {\n grow: { type: Boolean, default: false },\n component: { type: [String, Object, Function] as PropType<any>, default: 'div' },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n },\n setup(props, { attrs, slots }) {\n const ctx = useAppShellContext()\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: props.component,\n mod: [{ grow: props.grow }, props.mod],\n ...ctx.getStyles('section', { className: attrs.class, style: attrs.style }),\n },\n () => slots.default?.(),\n )\n },\n }),\n { classes },\n ),\n)\n","import { onBeforeUnmount, onMounted, ref, watch, type MaybeRefOrGetter } from 'vue'\nexport function useResizing(input: {\n transitionDuration: MaybeRefOrGetter<number>\n disabled: MaybeRefOrGetter<boolean>\n}) {\n const resizing = ref(true)\n let timer: ReturnType<typeof setTimeout>\n const stop = (delay: number) => {\n clearTimeout(timer)\n resizing.value = true\n timer = setTimeout(() => (resizing.value = false), delay)\n }\n const resize = () => stop(200)\n onMounted(() => {\n window.addEventListener('resize', resize)\n stop(0)\n })\n watch(\n [\n () =>\n typeof input.transitionDuration === 'function'\n ? input.transitionDuration()\n : input.transitionDuration,\n () => (typeof input.disabled === 'function' ? input.disabled() : input.disabled),\n ],\n () =>\n stop(\n Number(\n typeof input.transitionDuration === 'function'\n ? input.transitionDuration()\n : input.transitionDuration,\n ) || 0,\n ),\n )\n onBeforeUnmount(() => {\n clearTimeout(timer)\n window.removeEventListener('resize', resize)\n })\n return resizing\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getDefaultZIndex,\n useProps,\n useStyles,\n} from '../../core'\nimport { provideAppShellContext } from './AppShell.context'\nimport type {\n AppShellAsideConfiguration,\n AppShellFooterConfiguration,\n AppShellHeaderConfiguration,\n AppShellNavbarConfiguration,\n AppShellResponsiveSize,\n AppShellSize,\n} from './AppShell.types'\nimport { AppShellAside } from './AppShellAside/AppShellAside'\nimport { AppShellFooter } from './AppShellFooter/AppShellFooter'\nimport { AppShellHeader } from './AppShellHeader/AppShellHeader'\nimport { AppShellMain } from './AppShellMain/AppShellMain'\nimport { AppShellMediaStyles } from './AppShellMediaStyles/AppShellMediaStyles'\nimport { AppShellNavbar } from './AppShellNavbar/AppShellNavbar'\nimport { AppShellSection } from './AppShellSection/AppShellSection'\nimport { useResizing } from './use-resizing/use-resizing'\nimport classes from './AppShell.module.css'\nexport type AppShellStylesNames =\n | 'root'\n | 'navbar'\n | 'main'\n | 'header'\n | 'footer'\n | 'aside'\n | 'section'\nconst defaults = {\n withBorder: true,\n padding: 0,\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n zIndex: getDefaultZIndex('app'),\n mode: 'fixed',\n offsetScrollbars: true,\n} as const\nconst varsResolver = createVarsResolver<any>(\n (_, { transitionDuration, transitionTimingFunction }) => ({\n root: {\n '--app-shell-transition-duration': `${transitionDuration}ms`,\n '--app-shell-transition-timing-function': transitionTimingFunction,\n },\n }),\n)\nlet appShellId = 0\nconst AppShellBase = defineComponent({\n name: 'AppShell',\n inheritAttrs: false,\n props: {\n withBorder: { type: Boolean, default: undefined },\n padding: {\n type: [String, Number, Object] as PropType<AppShellSize | AppShellResponsiveSize>,\n default: undefined,\n },\n navbar: { type: Object as PropType<AppShellNavbarConfiguration>, default: undefined },\n aside: { type: Object as PropType<AppShellAsideConfiguration>, default: undefined },\n header: { type: Object as PropType<AppShellHeaderConfiguration>, default: undefined },\n footer: { type: Object as PropType<AppShellFooterConfiguration>, default: undefined },\n transitionDuration: { type: Number, default: undefined },\n transitionTimingFunction: { type: String, default: undefined },\n zIndex: { type: [String, Number] as PropType<string | number>, default: undefined },\n layout: { type: String as PropType<'default' | 'alt'>, default: 'default' },\n disabled: { type: Boolean, default: false },\n offsetScrollbars: { type: Boolean, default: undefined },\n mode: { type: String as PropType<'fixed' | 'static'>, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('AppShell', defaults as any, rawProps) as any\n const id = (attrs.id as string | undefined) ?? `mantine-app-shell-${++appShellId}`\n const getStyles = useStyles({\n name: 'AppShell',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames,\n styles: props.styles,\n vars: props.vars,\n unstyled: props.unstyled,\n varsResolver,\n })\n const resizing = useResizing({\n transitionDuration: () => props.transitionDuration,\n disabled: () => props.disabled,\n })\n provideAppShellContext({\n getStyles,\n get withBorder() {\n return props.withBorder\n },\n get zIndex() {\n return props.zIndex\n },\n get disabled() {\n return props.disabled\n },\n get offsetScrollbars() {\n return props.offsetScrollbars\n },\n get mode() {\n return props.mode\n },\n } as any)\n return () =>\n h(\n Box,\n {\n ...attrs,\n id,\n ...getStyles('root', { className: attrs.class, style: attrs.style }),\n mod: [\n {\n resizing: resizing.value,\n layout: props.layout,\n disabled: props.disabled,\n mode: props.mode,\n },\n props.mod,\n ],\n },\n () => [\n h(AppShellMediaStyles, {\n navbar: props.navbar,\n aside: props.aside,\n header: props.header,\n footer: props.footer,\n padding: props.padding,\n mode: props.mode,\n selector: props.mode === 'static' ? `#${id}` : undefined,\n }),\n slots.default?.(),\n ],\n )\n },\n})\nexport const AppShell = withBoxProps(\n Object.assign(AppShellBase, {\n classes,\n varsResolver,\n Navbar: AppShellNavbar,\n Header: AppShellHeader,\n Main: AppShellMain,\n Aside: AppShellAside,\n Footer: AppShellFooter,\n Section: AppShellSection,\n }),\n)\n","export type MaskInputMask = string | Array<string | RegExp>\n\nexport interface MaskInputState {\n value: string\n selection: { start: number; end: number } | null\n}\n\nexport interface MaskOptions {\n mask: MaskInputMask\n tokens?: Record<string, RegExp>\n modify?: (\n value: string,\n ) => Partial<Pick<MaskOptions, 'mask' | 'tokens' | 'slotChar' | 'separate'>> | undefined\n separate?: boolean\n slotChar?: string | null\n transform?: (char: string) => string\n}\n\nexport interface MaskSlot {\n type: 'token' | 'literal'\n char: string\n pattern?: RegExp\n optional?: boolean\n}\n\nconst DEFAULT_TOKENS: Record<string, RegExp> = {\n '9': /[0-9]/,\n a: /[A-Za-z]/,\n A: /[A-Z]/,\n '*': /[A-Za-z0-9]/,\n '#': /[-+0-9]/,\n}\n\nfunction matches(pattern: RegExp, value: string) {\n pattern.lastIndex = 0\n return pattern.test(value)\n}\n\nexport function parseMask(mask: MaskInputMask, tokens: Record<string, RegExp>): MaskSlot[] {\n if (Array.isArray(mask)) {\n return mask.map((item) =>\n item instanceof RegExp\n ? { type: 'token', char: '_', pattern: item }\n : { type: 'literal', char: item },\n )\n }\n\n const slots: MaskSlot[] = []\n let optional = false\n\n for (let index = 0; index < mask.length; index++) {\n const char = mask[index]\n\n if (char === '\\\\' && index + 1 < mask.length) {\n slots.push({ type: 'literal', char: mask[++index] })\n } else if (char === '?') {\n optional = true\n } else if (tokens[char]) {\n slots.push({ type: 'token', char, pattern: tokens[char], optional })\n } else {\n slots.push({ type: 'literal', char, optional })\n }\n }\n\n return slots\n}\n\nexport function resolveMaskOptions(options: MaskOptions, rawValue: string) {\n const tokens = { ...DEFAULT_TOKENS, ...options.tokens }\n let mask = options.mask\n let slotChar = options.slotChar === undefined ? '_' : options.slotChar\n let separate = options.separate ?? false\n const overrides = options.modify?.(rawValue)\n\n if (overrides) {\n mask = overrides.mask ?? mask\n Object.assign(tokens, overrides.tokens)\n slotChar = overrides.slotChar === undefined ? slotChar : overrides.slotChar\n separate = overrides.separate ?? separate\n }\n\n return { slots: parseMask(mask, tokens), slotChar, separate, transform: options.transform }\n}\n\nexport function applyMaskToRaw(\n raw: string,\n slots: MaskSlot[],\n transform?: (char: string) => string,\n) {\n let result = ''\n let rawIndex = 0\n\n for (let slotIndex = 0; slotIndex < slots.length; slotIndex++) {\n const slot = slots[slotIndex]\n\n if (slot.type === 'literal') {\n result += slot.char\n continue\n }\n\n let accepted = false\n while (rawIndex < raw.length && !accepted) {\n const char = transform ? transform(raw[rawIndex++]) : raw[rawIndex++]\n if (matches(slot.pattern!, char)) {\n result += char\n accepted = true\n }\n }\n\n if (!accepted) {\n break\n }\n }\n\n return result\n}\n\nexport function processInput(\n input: string,\n slots: MaskSlot[],\n transform?: (char: string) => string,\n) {\n let raw = ''\n let inputIndex = 0\n\n for (const slot of slots) {\n if (slot.type === 'literal') {\n if (input[inputIndex] === slot.char) {\n inputIndex++\n }\n continue\n }\n\n while (inputIndex < input.length) {\n const candidate = transform ? transform(input[inputIndex++]) : input[inputIndex++]\n if (matches(slot.pattern!, candidate)) {\n raw += candidate\n break\n }\n }\n }\n\n return applyMaskToRaw(raw, slots, transform)\n}\n\nexport function extractRaw(masked: string, slots: MaskSlot[]) {\n let raw = ''\n for (let index = 0; index < masked.length && index < slots.length; index++) {\n if (slots[index].type === 'token' && matches(slots[index].pattern!, masked[index])) {\n raw += masked[index]\n }\n }\n return raw\n}\n\nexport function buildDisplayValue(\n value: string,\n slots: MaskSlot[],\n slotChar: string | null | undefined,\n show: boolean,\n) {\n if (!show) {\n return value\n }\n\n let display = value\n for (let index = value.length; index < slots.length; index++) {\n const slot = slots[index]\n if (slot.type === 'literal') {\n display += slot.char\n } else if (slotChar) {\n display += slotChar.length > 1 ? slotChar[index] || '_' : slotChar\n } else {\n break\n }\n }\n return display\n}\n\nexport function isComplete(masked: string, slots: MaskSlot[]) {\n return slots.every(\n (slot, index) =>\n slot.type === 'literal' ||\n slot.optional ||\n (index < masked.length && matches(slot.pattern!, masked[index])),\n )\n}\n\nexport function nextToken(slots: MaskSlot[], from: number) {\n for (let index = from; index < slots.length; index++) {\n if (slots[index].type === 'token') {\n return index\n }\n }\n return slots.length\n}\n\nexport function previousToken(slots: MaskSlot[], from: number) {\n for (let index = from; index >= 0; index--) {\n if (slots[index].type === 'token') {\n return index\n }\n }\n return -1\n}\n","import { defineComponent, h, onBeforeUnmount, ref, watch, type PropType } from 'vue'\nimport { assignRef } from '@mantine-vue/hooks'\nimport { InputBase } from '../InputBase'\nimport {\n applyMaskToRaw,\n buildDisplayValue,\n extractRaw,\n isComplete,\n nextToken,\n previousToken,\n processInput,\n resolveMaskOptions,\n type MaskInputMask,\n type MaskInputState,\n} from './use-mask-input'\n\nexport interface MaskInputProps {\n mask: MaskInputMask\n tokens?: Record<string, RegExp>\n modify?: (\n value: string,\n ) => Partial<Pick<MaskInputProps, 'mask' | 'tokens' | 'slotChar' | 'separate'>> | undefined\n separate?: boolean\n slotChar?: string | null\n alwaysShowMask?: boolean\n showMaskOnFocus?: boolean\n transform?: (char: string) => string\n autoClear?: boolean\n onChangeRaw?: (rawValue: string, maskedValue: string) => void\n onComplete?: (maskedValue: string, rawValue: string) => void\n beforeMaskedStateChange?: (states: {\n previousState: MaskInputState\n currentState: MaskInputState\n nextState: MaskInputState\n }) => MaskInputState\n resetRef?: any\n}\n\nfunction callHandler(handler: unknown, event: Event) {\n if (Array.isArray(handler)) {\n handler.forEach((item) => item?.(event))\n } else if (typeof handler === 'function') {\n handler(event)\n }\n}\n\nexport const MaskInput = defineComponent({\n name: 'MaskInput',\n inheritAttrs: false,\n props: {\n mask: { type: [String, Array] as PropType<MaskInputMask>, required: true },\n tokens: { type: Object as PropType<Record<string, RegExp>>, default: undefined },\n modify: { type: Function as PropType<MaskInputProps['modify']>, default: undefined },\n separate: { type: Boolean, default: false },\n slotChar: { type: String as PropType<string | null>, default: '_' },\n alwaysShowMask: { type: Boolean, default: false },\n showMaskOnFocus: { type: Boolean, default: true },\n transform: { type: Function as PropType<(char: string) => string>, default: undefined },\n autoClear: { type: Boolean, default: false },\n onChangeRaw: {\n type: Function as PropType<(raw: string, masked: string) => void>,\n default: undefined,\n },\n onComplete: {\n type: Function as PropType<(masked: string, raw: string) => void>,\n default: undefined,\n },\n beforeMaskedStateChange: {\n type: Function as PropType<MaskInputProps['beforeMaskedStateChange']>,\n default: undefined,\n },\n resetRef: { type: [Object, Function] as PropType<any>, default: undefined },\n },\n setup(props, { attrs }) {\n const input = ref<HTMLInputElement | null>(null)\n const processed = ref('')\n const rawValue = ref('')\n const displayValue = ref('')\n const focused = ref(false)\n const wasComplete = ref(false)\n\n const options = () => ({\n mask: props.mask,\n tokens: props.tokens,\n modify: props.modify,\n separate: props.separate,\n slotChar: props.slotChar,\n transform: props.transform,\n })\n\n const selection = (element = input.value): MaskInputState['selection'] =>\n element ? { start: element.selectionStart ?? 0, end: element.selectionEnd ?? 0 } : null\n\n const commit = (masked: string, cursor?: number, notify = true, currentValue?: string) => {\n const initial = resolveMaskOptions(options(), rawValue.value)\n const nextProcessed = processInput(masked, initial.slots, initial.transform)\n const nextRaw = extractRaw(nextProcessed, initial.slots)\n const resolved = resolveMaskOptions(options(), nextRaw)\n const reprocessed = processInput(masked, resolved.slots, resolved.transform)\n const resolvedRaw = extractRaw(reprocessed, resolved.slots)\n const showSlots = props.alwaysShowMask || (focused.value && props.showMaskOnFocus)\n let nextDisplay = buildDisplayValue(reprocessed, resolved.slots, resolved.slotChar, showSlots)\n let nextSelection = cursor === undefined ? selection() : { start: cursor, end: cursor }\n\n if (props.beforeMaskedStateChange) {\n const changed = props.beforeMaskedStateChange({\n previousState: { value: displayValue.value, selection: selection() },\n currentState: {\n value: currentValue ?? input.value?.value ?? displayValue.value,\n selection: selection(),\n },\n nextState: { value: nextDisplay, selection: nextSelection },\n })\n nextDisplay = changed.value\n nextSelection = changed.selection\n }\n\n processed.value = reprocessed\n rawValue.value = resolvedRaw\n displayValue.value = nextDisplay\n if (input.value) {\n input.value.value = nextDisplay\n if (nextSelection && document.activeElement === input.value) {\n const position = Math.min(nextSelection.start, reprocessed.length)\n input.value.setSelectionRange(position, Math.min(nextSelection.end, reprocessed.length))\n }\n }\n\n const complete = isComplete(reprocessed, resolved.slots)\n if (notify) {\n props.onChangeRaw?.(resolvedRaw, nextDisplay)\n if (complete && !wasComplete.value) {\n props.onComplete?.(nextDisplay, resolvedRaw)\n }\n }\n wasComplete.value = complete\n }\n\n const reset = () => {\n processed.value = ''\n rawValue.value = ''\n wasComplete.value = false\n const resolved = resolveMaskOptions(options(), '')\n displayValue.value = props.alwaysShowMask\n ? buildDisplayValue('', resolved.slots, resolved.slotChar, true)\n : ''\n if (input.value) {\n input.value.value = displayValue.value\n }\n props.onChangeRaw?.('', '')\n }\n\n assignRef(props.resetRef, reset)\n watch(\n () => props.resetRef,\n (value) => assignRef(value, reset),\n )\n watch(\n () => (attrs as any).value,\n (value) => {\n if (input.value && value !== undefined && String(value) !== displayValue.value) {\n commit(String(value), undefined, false, String(value))\n }\n },\n )\n onBeforeUnmount(() => assignRef(props.resetRef, null))\n\n const attach = (root: any) => {\n const element = (root?.$el ?? root)?.querySelector?.('input') ?? root?.$el ?? root\n input.value = element instanceof HTMLInputElement ? element : null\n assignRef((attrs as any).rootRef, root?.$el ?? root ?? null)\n\n if (!input.value) {\n return\n }\n\n const initial = (attrs as any).value ?? (attrs as any).defaultValue ?? input.value.value\n if (initial) {\n commit(String(initial), undefined, false, String(initial))\n } else if (props.alwaysShowMask) {\n const resolved = resolveMaskOptions(options(), '')\n displayValue.value = buildDisplayValue('', resolved.slots, resolved.slotChar, true)\n input.value.value = displayValue.value\n }\n }\n\n const handleInput = (event: Event) => {\n const element = event.currentTarget as HTMLInputElement\n const previous = displayValue.value\n const current = element.value\n let prefix = 0\n while (\n prefix < previous.length &&\n prefix < current.length &&\n previous[prefix] === current[prefix]\n )\n prefix++\n let suffix = 0\n while (\n suffix < previous.length - prefix &&\n suffix < current.length - prefix &&\n previous[previous.length - 1 - suffix] === current[current.length - 1 - suffix]\n )\n suffix++\n\n const resolved = resolveMaskOptions(options(), rawValue.value)\n const removedEnd = previous.length - suffix\n const before = extractRaw(previous.slice(0, prefix), resolved.slots.slice(0, prefix))\n const after = extractRaw(previous.slice(removedEnd), resolved.slots.slice(removedEnd))\n const inserted = current.slice(prefix, current.length - suffix)\n const next = applyMaskToRaw(before + inserted + after, resolved.slots, resolved.transform)\n const maskedPrefix = applyMaskToRaw(before + inserted, resolved.slots, resolved.transform)\n commit(next, maskedPrefix.length, true, current)\n callHandler((attrs as any).onInput, event)\n }\n\n const handleFocus = (event: FocusEvent) => {\n focused.value = true\n const resolved = resolveMaskOptions(options(), rawValue.value)\n if (props.showMaskOnFocus || props.alwaysShowMask) {\n displayValue.value = buildDisplayValue(\n processed.value,\n resolved.slots,\n resolved.slotChar,\n true,\n )\n ;(event.currentTarget as HTMLInputElement).value = displayValue.value\n }\n requestAnimationFrame(() => {\n const start = nextToken(resolved.slots, 0)\n const end = processed.value.length || start\n const element = event.currentTarget as HTMLInputElement\n if (\n document.activeElement === element &&\n ((element.selectionStart ?? 0) < start || (element.selectionStart ?? 0) > end)\n ) {\n element.setSelectionRange(end, end)\n }\n })\n callHandler((attrs as any).onFocus, event)\n }\n\n const handleBlur = (event: FocusEvent) => {\n focused.value = false\n const resolved = resolveMaskOptions(options(), rawValue.value)\n const complete = isComplete(processed.value, resolved.slots)\n if (props.autoClear && !complete && rawValue.value) {\n reset()\n } else if (!props.alwaysShowMask) {\n displayValue.value = rawValue.value ? processed.value : ''\n ;(event.currentTarget as HTMLInputElement).value = displayValue.value\n }\n callHandler((attrs as any).onBlur, event)\n callHandler((attrs as any).onChange, event)\n }\n\n const handleKeydown = (event: KeyboardEvent) => {\n const element = event.currentTarget as HTMLInputElement\n const resolved = resolveMaskOptions(options(), rawValue.value)\n const start = element.selectionStart ?? 0\n const end = element.selectionEnd ?? start\n\n if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault()\n let deleteStart = start\n let deleteEnd = end\n if (start === end) {\n const token =\n event.key === 'Backspace'\n ? previousToken(resolved.slots, start - 1)\n : nextToken(resolved.slots, start)\n if (token < 0 || token >= processed.value.length) return\n deleteStart = token\n deleteEnd = token + 1\n }\n const before = extractRaw(\n processed.value.slice(0, deleteStart),\n resolved.slots.slice(0, deleteStart),\n )\n const after = extractRaw(processed.value.slice(deleteEnd), resolved.slots.slice(deleteEnd))\n commit(applyMaskToRaw(before + after, resolved.slots, resolved.transform), deleteStart)\n } else if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n event.preventDefault()\n const position = nextToken(resolved.slots, Math.min(start, processed.value.length))\n if (position >= resolved.slots.length) return\n const character = resolved.transform ? resolved.transform(event.key) : event.key\n resolved.slots[position].pattern!.lastIndex = 0\n if (!resolved.slots[position].pattern!.test(character)) return\n const before = extractRaw(\n processed.value.slice(0, position),\n resolved.slots.slice(0, position),\n )\n const after = extractRaw(processed.value.slice(end), resolved.slots.slice(end))\n const next = applyMaskToRaw(before + character + after, resolved.slots, resolved.transform)\n commit(next, nextToken(resolved.slots, position + 1))\n }\n callHandler((attrs as any).onKeydown, event)\n }\n\n const handlePaste = (event: ClipboardEvent) => {\n event.preventDefault()\n const element = event.currentTarget as HTMLInputElement\n const resolved = resolveMaskOptions(options(), rawValue.value)\n const start = Math.min(element.selectionStart ?? 0, processed.value.length)\n const end = Math.min(element.selectionEnd ?? start, processed.value.length)\n const before = extractRaw(processed.value.slice(0, start), resolved.slots.slice(0, start))\n const after = extractRaw(processed.value.slice(end), resolved.slots.slice(end))\n const pasted = event.clipboardData?.getData('text') ?? ''\n const next = applyMaskToRaw(before + pasted + after, resolved.slots, resolved.transform)\n const pasteEnd = applyMaskToRaw(before + pasted, resolved.slots, resolved.transform).length\n commit(next, pasteEnd)\n callHandler((attrs as any).onPaste, event)\n }\n\n return () => {\n const forwarded = { ...attrs } as Record<string, any>\n delete forwarded.rootRef\n delete forwarded.onInput\n delete forwarded.onFocus\n delete forwarded.onBlur\n delete forwarded.onChange\n delete forwarded.onKeydown\n delete forwarded.onPaste\n delete forwarded.value\n delete forwarded.defaultValue\n\n return h(InputBase, {\n ...forwarded,\n component: 'input',\n type: forwarded.type ?? 'text',\n __staticSelector: 'MaskInput',\n __stylesApiProps: attrs,\n rootRef: attach,\n onInput: handleInput,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeydown: handleKeydown,\n onPaste: handlePaste,\n })\n }\n },\n})\n\nObject.assign(MaskInput, { classes: InputBase.classes })\n","import { defineComponent, h } from 'vue'\n\nconst paths = {\n vertical: [\n 'M8 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M8 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M8 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M14 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M14 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M14 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n ],\n horizontal: [\n 'M4 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M4 15a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M11 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M11 15a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M18 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n 'M18 15a1 1 0 1 0 2 0a1 1 0 1 0 -2 0',\n ],\n}\n\nfunction createGripIcon(name: string, direction: keyof typeof paths) {\n return defineComponent({\n name,\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n ...attrs,\n },\n paths[direction].map((d) => h('path', { d })),\n )\n },\n })\n}\n\nexport const GripVerticalIcon = createGripIcon('GripVerticalIcon', 'vertical')\nexport const GripHorizontalIcon = createGripIcon('GripHorizontalIcon', 'horizontal')\n","import { createSafeContext } from '../../core'\n\nexport interface SplitterContextValue {\n getStyles: (selector: string, options?: Record<string, any>) => Record<string, any>\n readonly sizes: number[]\n readonly collapsed: boolean[]\n readonly orientation: 'horizontal' | 'vertical'\n}\n\nexport const [provideSplitterContext, useSplitterContext] = createSafeContext<SplitterContextValue>(\n 'Splitter component was not found in the tree',\n)\n",".root {\n display: flex;\n\n &:where([data-orientation='horizontal']) {\n flex-direction: row;\n }\n\n &:where([data-orientation='vertical']) {\n flex-direction: column;\n }\n}\n\n.pane {\n flex-grow: 0;\n flex-shrink: 1;\n overflow: auto;\n}\n\n.handle {\n flex: 0 0 var(--splitter-line-size, rem(2px));\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n touch-action: none;\n outline: none;\n background-color: var(--splitter-handle-color, var(--mantine-color-body));\n\n &:where([data-orientation='horizontal']) {\n cursor: col-resize;\n }\n\n &:where([data-orientation='vertical']) {\n cursor: row-resize;\n }\n}\n\n.thumb {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 1000px;\n color: var(--mantine-color-dimmed);\n transition: color 100ms ease;\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n border: rem(1px) solid var(--mantine-color-gray-3);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-6);\n border: rem(1px) solid var(--mantine-color-dark-4);\n }\n\n &:where([data-orientation='horizontal']) {\n width: rem(12px);\n height: rem(60px);\n }\n\n &:where([data-orientation='vertical']) {\n width: rem(60px);\n height: rem(12px);\n }\n\n & > svg {\n width: 100%;\n height: 100%;\n }\n\n .handle:focus-visible & {\n box-shadow: 0 0 0 rem(2px) var(--mantine-primary-color-filled);\n }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { withBoxProps, Box } from '../../../core'\nimport { useSplitterContext } from '../Splitter.context'\nimport classes from '../Splitter.module.css'\n\nexport type SplitterPaneStylesNames = 'pane'\n\nexport interface SplitterPaneProps {\n defaultSize: number\n min?: number\n max?: number\n collapsible?: boolean\n collapseThreshold?: number\n __index?: number\n mod?: any\n classNames?: any\n styles?: any\n vars?: any\n}\n\nexport const SplitterPane = withBoxProps(\n defineComponent({\n name: 'SplitterPane',\n inheritAttrs: false,\n props: {\n defaultSize: { type: Number, required: true },\n min: { type: Number, default: undefined },\n max: { type: Number, default: undefined },\n collapsible: { type: Boolean, default: false },\n collapseThreshold: { type: Number, default: undefined },\n __index: { type: Number, default: undefined },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const context = useSplitterContext()\n return () => {\n const index = props.__index ?? 0\n const sizeStyle = { flexBasis: `${context.sizes[index] ?? 0}%` }\n const paneStyles = context.getStyles('pane', {\n className: attrs.class,\n classNames: props.classNames,\n styles: props.styles,\n props,\n })\n return h(\n Box,\n {\n ...attrs,\n mod: [{ collapsed: context.collapsed[index] || undefined }, props.mod],\n ...paneStyles,\n style: [paneStyles.style, sizeStyle, attrs.style],\n },\n () => slots.default?.(),\n )\n }\n },\n }),\n)\n\nObject.assign(SplitterPane, { classes })\n","import { computed, onBeforeUnmount, ref, shallowRef, watch, type ComputedRef } from 'vue'\n\nexport interface UseSplitterPanel {\n defaultSize: number\n min?: number\n max?: number\n collapsible?: boolean\n collapseThreshold?: number\n}\n\nexport interface UseSplitterRedistributeInput {\n sizes: number[]\n panels: UseSplitterPanel[]\n handleIndex: number\n delta: number\n}\n\nexport type UseSplitterRedistributeFn = (input: UseSplitterRedistributeInput) => number[]\nexport type SplitterOrientation = 'horizontal' | 'vertical'\n\nexport interface UseSplitterOptions {\n panels: ComputedRef<UseSplitterPanel[]>\n orientation: () => SplitterOrientation\n sizes: () => number[] | undefined\n onSizeChange: (sizes: number[]) => void\n onResizeStart?: (handleIndex: number) => void\n onResizeEnd?: (handleIndex: number, sizes: number[]) => void\n onCollapseChange?: (panelIndex: number, collapsed: boolean) => void\n redistribute: () => 'nearest' | 'equal' | UseSplitterRedistributeFn | undefined\n step: () => number\n shiftStep: () => number\n dir: () => 'ltr' | 'rtl'\n resetOnDoubleClick: () => boolean\n}\n\nexport interface UseSplitterReturnValue {\n readonly sizes: number[]\n readonly collapsed: boolean[]\n readonly activeHandle: number\n setContainer: (node: any) => void\n getHandleProps: (index: number) => Record<string, any>\n setSizes: (sizes: number[]) => void\n collapse: (panelIndex: number) => void\n expand: (panelIndex: number) => void\n toggleCollapse: (panelIndex: number) => void\n reset: (handleIndex: number) => void\n}\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max)\nconst getMin = (panel: UseSplitterPanel) => panel?.min ?? 0\nconst getMax = (panel: UseSplitterPanel) => panel?.max ?? 100\nconst getCollapseThreshold = (panel: UseSplitterPanel) => panel.collapseThreshold ?? getMin(panel)\n\nfunction checkCollapse(\n sizes: number[],\n panels: UseSplitterPanel[],\n handleIndex: number,\n delta: number,\n) {\n const before = panels[handleIndex]\n const after = panels[handleIndex + 1]\n const rawBefore = sizes[handleIndex] + delta\n const rawAfter = sizes[handleIndex + 1] - delta\n\n if (\n before.collapsible &&\n rawBefore < getCollapseThreshold(before) &&\n rawBefore < sizes[handleIndex]\n ) {\n const result = [...sizes]\n result[handleIndex + 1] += result[handleIndex]\n result[handleIndex] = 0\n return result\n }\n\n if (\n after.collapsible &&\n rawAfter < getCollapseThreshold(after) &&\n rawAfter < sizes[handleIndex + 1]\n ) {\n const result = [...sizes]\n result[handleIndex] += result[handleIndex + 1]\n result[handleIndex + 1] = 0\n return result\n }\n\n return null\n}\n\nfunction applyAdjacentOnly(\n sizes: number[],\n panels: UseSplitterPanel[],\n handleIndex: number,\n delta: number,\n) {\n const result = [...sizes]\n const total = result[handleIndex] + result[handleIndex + 1]\n const maximum = Math.min(getMax(panels[handleIndex]), total - getMin(panels[handleIndex + 1]))\n const minimum = Math.max(getMin(panels[handleIndex]), total - getMax(panels[handleIndex + 1]))\n result[handleIndex] = clamp(result[handleIndex] + delta, minimum, maximum)\n result[handleIndex + 1] = total - result[handleIndex]\n return result\n}\n\nfunction redistributeNearest(\n sizes: number[],\n panels: UseSplitterPanel[],\n handleIndex: number,\n delta: number,\n) {\n const result = [...sizes]\n const growIndex = delta > 0 ? handleIndex : handleIndex + 1\n const wanted = Math.min(Math.abs(delta), getMax(panels[growIndex]) - result[growIndex])\n let taken = 0\n const start = delta > 0 ? handleIndex + 1 : handleIndex\n const end = delta > 0 ? result.length : -1\n const increment = delta > 0 ? 1 : -1\n\n for (let index = start; index !== end && taken < wanted; index += increment) {\n const amount = Math.min(result[index] - getMin(panels[index]), wanted - taken)\n result[index] -= amount\n taken += amount\n }\n\n result[growIndex] += taken\n return result\n}\n\nfunction redistributeEqual(\n sizes: number[],\n panels: UseSplitterPanel[],\n handleIndex: number,\n delta: number,\n) {\n const result = [...sizes]\n const growIndex = delta > 0 ? handleIndex : handleIndex + 1\n const wanted = Math.min(Math.abs(delta), getMax(panels[growIndex]) - result[growIndex])\n const donors = result\n .map((size, index) => ({ size, index }))\n .filter(({ size, index }) =>\n delta > 0\n ? index > handleIndex && size > getMin(panels[index])\n : index <= handleIndex && size > getMin(panels[index]),\n )\n .map(({ index }) => index)\n let remaining = wanted\n\n while (remaining > 0.001 && donors.length) {\n const perDonor = remaining / donors.length\n const exhausted: number[] = []\n donors.forEach((index, donorIndex) => {\n const available = result[index] - getMin(panels[index])\n const amount = Math.min(available, perDonor)\n result[index] -= amount\n remaining -= amount\n if (available <= perDonor + 0.001) exhausted.push(donorIndex)\n })\n exhausted.reverse().forEach((index) => donors.splice(index, 1))\n if (!exhausted.length) break\n }\n\n result[growIndex] += wanted - remaining\n return result\n}\n\nfunction applyConstraints(\n sizes: number[],\n panels: UseSplitterPanel[],\n handleIndex: number,\n delta: number,\n redistribute?: 'nearest' | 'equal' | UseSplitterRedistributeFn,\n) {\n if (typeof redistribute === 'function') {\n return redistribute({ sizes: [...sizes], panels, handleIndex, delta })\n }\n\n if (redistribute) {\n const result =\n redistribute === 'nearest'\n ? redistributeNearest(sizes, panels, handleIndex, delta)\n : redistributeEqual(sizes, panels, handleIndex, delta)\n const before = panels[handleIndex]\n const after = panels[handleIndex + 1]\n if (\n before.collapsible &&\n result[handleIndex] < getCollapseThreshold(before) &&\n result[handleIndex] < sizes[handleIndex]\n ) {\n result[handleIndex + 1] += result[handleIndex]\n result[handleIndex] = 0\n } else if (\n after.collapsible &&\n result[handleIndex + 1] < getCollapseThreshold(after) &&\n result[handleIndex + 1] < sizes[handleIndex + 1]\n ) {\n result[handleIndex] += result[handleIndex + 1]\n result[handleIndex + 1] = 0\n }\n return result\n }\n\n return (\n checkCollapse(sizes, panels, handleIndex, delta) ??\n applyAdjacentOnly(sizes, panels, handleIndex, delta)\n )\n}\n\nexport function useSplitter(options: UseSplitterOptions): UseSplitterReturnValue {\n const initialSizes = options.panels.value.map((panel) => panel.defaultSize)\n const uncontrolledSizes = ref(initialSizes)\n const currentSizes = computed(() => options.sizes() ?? uncontrolledSizes.value)\n const activeHandle = ref(-1)\n const container = shallowRef<HTMLElement | null>(null)\n const preCollapseSizes = ref([...initialSizes])\n let liveSizes = [...currentSizes.value]\n let documentController: AbortController | null = null\n let frame = 0\n const handleControllers = new Map<number, AbortController>()\n const drag = {\n active: false,\n handleIndex: -1,\n startPointer: 0,\n containerSize: 0,\n startSizes: [] as number[],\n }\n\n watch(\n currentSizes,\n (value) => {\n liveSizes = [...value]\n },\n { deep: true },\n )\n watch(options.panels, (panels, previousPanels) => {\n if (options.sizes() !== undefined || panels.length === previousPanels.length) return\n const next = panels.map((panel, index) => uncontrolledSizes.value[index] ?? panel.defaultSize)\n uncontrolledSizes.value = next\n preCollapseSizes.value = [...next]\n liveSizes = [...next]\n })\n\n const updateSizes = (sizes: number[]) => {\n liveSizes = [...sizes]\n if (options.sizes() === undefined) uncontrolledSizes.value = sizes\n options.onSizeChange(sizes)\n }\n\n const emitCollapseTransitions = (\n previous: number[],\n next: number[],\n indices: number[],\n snapshot: number[],\n ) => {\n indices.forEach((index) => {\n if (previous[index] !== 0 && next[index] === 0) {\n preCollapseSizes.value = [...snapshot]\n options.onCollapseChange?.(index, true)\n } else if (previous[index] === 0 && next[index] !== 0) {\n options.onCollapseChange?.(index, false)\n }\n })\n }\n\n const collapse = (panelIndex: number) => {\n const panels = options.panels.value\n if (!panels[panelIndex]?.collapsible || liveSizes[panelIndex] === 0) return\n preCollapseSizes.value = [...liveSizes]\n const next = [...liveSizes]\n const neighbor = panelIndex === 0 ? 1 : panelIndex - 1\n next[neighbor] += next[panelIndex]\n next[panelIndex] = 0\n updateSizes(next)\n options.onCollapseChange?.(panelIndex, true)\n }\n\n const expand = (panelIndex: number) => {\n const panels = options.panels.value\n if (!panels[panelIndex]?.collapsible || liveSizes[panelIndex] !== 0) return\n const neighbor = panelIndex === 0 ? 1 : panelIndex - 1\n const restore = preCollapseSizes.value[panelIndex] || panels[panelIndex].defaultSize\n const actual = Math.min(restore, Math.max(0, liveSizes[neighbor] - getMin(panels[neighbor])))\n if (actual <= 0) return\n const next = [...liveSizes]\n next[panelIndex] = actual\n next[neighbor] -= actual\n updateSizes(next)\n options.onCollapseChange?.(panelIndex, false)\n }\n\n const toggleCollapse = (panelIndex: number) =>\n liveSizes[panelIndex] === 0 ? expand(panelIndex) : collapse(panelIndex)\n\n const reset = (handleIndex: number) => {\n const panels = options.panels.value\n if (handleIndex < 0 || handleIndex + 1 >= liveSizes.length) return\n const total = liveSizes[handleIndex] + liveSizes[handleIndex + 1]\n const defaultsTotal = panels[handleIndex].defaultSize + panels[handleIndex + 1].defaultSize\n const target =\n defaultsTotal === 0 ? total / 2 : (total * panels[handleIndex].defaultSize) / defaultsTotal\n const previous = [...liveSizes]\n const next = applyAdjacentOnly(previous, panels, handleIndex, target - previous[handleIndex])\n emitCollapseTransitions(previous, next, [handleIndex, handleIndex + 1], previous)\n updateSizes(next)\n }\n\n const finishDrag = (event: PointerEvent) => {\n if (!drag.active) return\n cancelAnimationFrame(frame)\n flushResize(event)\n drag.active = false\n const index = drag.handleIndex\n drag.handleIndex = -1\n activeHandle.value = -1\n document.body.style.userSelect = ''\n document.body.style.webkitUserSelect = ''\n document.body.style.cursor = ''\n documentController?.abort()\n documentController = null\n options.onResizeEnd?.(index, [...liveSizes])\n }\n\n const flushResize = (event: PointerEvent) => {\n if (!drag.containerSize) return\n const horizontal = options.orientation() === 'horizontal'\n const pointer = horizontal ? event.clientX : event.clientY\n const pixelDelta = pointer - drag.startPointer\n const percentDelta =\n ((horizontal && options.dir() === 'rtl' ? -pixelDelta : pixelDelta) / drag.containerSize) *\n 100\n const previous = [...liveSizes]\n const next = applyConstraints(\n drag.startSizes,\n options.panels.value,\n drag.handleIndex,\n percentDelta,\n options.redistribute(),\n )\n emitCollapseTransitions(\n previous,\n next,\n [drag.handleIndex, drag.handleIndex + 1],\n drag.startSizes,\n )\n updateSizes(next)\n }\n\n const onPointerMove = (event: PointerEvent) => {\n if (!drag.active) return\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => flushResize(event))\n }\n\n const setHandle = (handleIndex: number, node: any) => {\n handleControllers.get(handleIndex)?.abort()\n handleControllers.delete(handleIndex)\n const element = (node?.$el ?? node) as HTMLElement | null\n if (!element) return\n const controller = new AbortController()\n handleControllers.set(handleIndex, controller)\n element.addEventListener(\n 'pointerdown',\n (event) => {\n if (event.button !== 0 || !container.value) return\n const horizontal = options.orientation() === 'horizontal'\n const rect = container.value.getBoundingClientRect()\n drag.active = true\n drag.handleIndex = handleIndex\n drag.startPointer = horizontal ? event.clientX : event.clientY\n drag.containerSize = horizontal ? rect.width : rect.height\n drag.startSizes = [...liveSizes]\n activeHandle.value = handleIndex\n document.body.style.userSelect = 'none'\n document.body.style.webkitUserSelect = 'none'\n document.body.style.cursor = horizontal ? 'col-resize' : 'row-resize'\n options.onResizeStart?.(handleIndex)\n documentController?.abort()\n documentController = new AbortController()\n const signal = documentController.signal\n document.addEventListener('pointermove', onPointerMove, { signal })\n document.addEventListener('pointerup', finishDrag, { signal })\n document.addEventListener('pointercancel', finishDrag, { signal })\n },\n { signal: controller.signal },\n )\n }\n\n const onKeydown = (event: KeyboardEvent, index: number) => {\n const horizontal = options.orientation() === 'horizontal'\n const rtl = options.dir() === 'rtl'\n const step = event.shiftKey ? options.shiftStep() : options.step()\n const panels = options.panels.value\n let delta = 0\n\n if (event.key === 'ArrowLeft' && horizontal) delta = rtl ? step : -step\n else if (event.key === 'ArrowRight' && horizontal) delta = rtl ? -step : step\n else if (event.key === 'ArrowUp' && !horizontal) delta = -step\n else if (event.key === 'ArrowDown' && !horizontal) delta = step\n else if (event.key === 'Home') delta = -(liveSizes[index] - getMin(panels[index]))\n else if (event.key === 'End') delta = getMax(panels[index]) - liveSizes[index]\n else if (event.key === 'Enter') {\n if (panels[index].collapsible && liveSizes[index] <= liveSizes[index + 1])\n toggleCollapse(index)\n else if (panels[index + 1].collapsible) toggleCollapse(index + 1)\n else if (panels[index].collapsible) toggleCollapse(index)\n else return\n event.preventDefault()\n return\n } else return\n\n event.preventDefault()\n if (delta) {\n const previous = [...liveSizes]\n const next = applyConstraints(previous, panels, index, delta, options.redistribute())\n emitCollapseTransitions(previous, next, [index, index + 1], previous)\n updateSizes(next)\n }\n }\n\n onBeforeUnmount(() => {\n documentController?.abort()\n handleControllers.forEach((controller) => controller.abort())\n cancelAnimationFrame(frame)\n if (drag.active) {\n document.body.style.userSelect = ''\n document.body.style.webkitUserSelect = ''\n document.body.style.cursor = ''\n }\n })\n\n return {\n get sizes() {\n return currentSizes.value\n },\n get collapsed() {\n return currentSizes.value.map((size) => size === 0)\n },\n get activeHandle() {\n return activeHandle.value\n },\n setContainer: (node) => {\n container.value = node?.$el ?? node ?? null\n },\n getHandleProps: (index) => ({\n ref: (node: any) => setHandle(index, node),\n role: 'separator',\n 'aria-orientation': options.orientation(),\n 'aria-valuenow': Math.round(currentSizes.value[index] ?? 0),\n 'aria-valuemin': Math.round(getMin(options.panels.value[index])),\n 'aria-valuemax': Math.round(getMax(options.panels.value[index])),\n tabindex: 0,\n onKeydown: (event: KeyboardEvent) => onKeydown(event, index),\n onDblclick: () => options.resetOnDoubleClick() && reset(index),\n 'data-active': activeHandle.value === index || undefined,\n 'data-orientation': options.orientation(),\n }),\n setSizes: updateSizes,\n collapse,\n expand,\n toggleCollapse,\n reset,\n }\n}\n","import {\n cloneVNode,\n computed,\n defineComponent,\n h,\n shallowRef,\n type PropType,\n type VNode,\n type VNodeChild,\n} from 'vue'\nimport { assignRef, type VueRefTarget } from '@mantine-vue/hooks'\nimport { rem } from '@mantine-vue/utils'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getThemeColor,\n useDirection,\n useProps,\n useStyles,\n} from '../../core'\nimport { GripHorizontalIcon, GripVerticalIcon } from './GripIcon'\nimport { provideSplitterContext } from './Splitter.context'\nimport { SplitterPane } from './SplitterPane/SplitterPane'\nimport {\n useSplitter,\n type UseSplitterRedistributeFn,\n type UseSplitterReturnValue,\n} from './use-splitter'\nimport classes from './Splitter.module.css'\n\nexport type SplitterStylesNames = 'root' | 'handle' | 'thumb' | 'pane'\nexport type SplitterCssVariables = '--splitter-line-size' | '--splitter-handle-color'\n\nexport interface SplitterProps {\n orientation?: 'horizontal' | 'vertical'\n sizes?: number[]\n onSizeChange?: (sizes: number[]) => void\n onResizeStart?: (handleIndex: number) => void\n onResizeEnd?: (handleIndex: number, sizes: number[]) => void\n onCollapseChange?: (panelIndex: number, collapsed: boolean) => void\n redistribute?: 'nearest' | 'equal' | UseSplitterRedistributeFn\n step?: number\n shiftStep?: number\n lineSize?: number | string\n handleColor?: string\n handleIcon?: VNodeChild\n withHandle?: boolean\n resetOnDoubleClick?: boolean\n splitterRef?: VueRefTarget<UseSplitterReturnValue>\n mod?: any\n classNames?: any\n styles?: any\n vars?: any\n unstyled?: boolean\n}\n\nconst defaultProps = {\n orientation: 'horizontal',\n lineSize: 2,\n withHandle: true,\n resetOnDoubleClick: true,\n step: 1,\n shiftStep: 10,\n} as const\n\nconst varsResolver = createVarsResolver<any>((theme, { lineSize, handleColor }) => ({\n root: {\n '--splitter-line-size': rem(lineSize),\n '--splitter-handle-color': handleColor ? getThemeColor(handleColor, theme) : undefined,\n },\n}))\n\nfunction flattenChildren(children: VNode[]): VNode[] {\n return children.flatMap((child) =>\n typeof child.type === 'symbol' && Array.isArray(child.children)\n ? flattenChildren(child.children as VNode[])\n : [child],\n )\n}\n\nconst SplitterBase = defineComponent({\n name: 'Splitter',\n inheritAttrs: false,\n props: {\n orientation: { type: String as PropType<'horizontal' | 'vertical'>, default: undefined },\n sizes: { type: Array as PropType<number[]>, default: undefined },\n onSizeChange: { type: Function as PropType<(sizes: number[]) => void>, default: undefined },\n onResizeStart: { type: Function as PropType<(index: number) => void>, default: undefined },\n onResizeEnd: {\n type: Function as PropType<(index: number, sizes: number[]) => void>,\n default: undefined,\n },\n onCollapseChange: {\n type: Function as PropType<(index: number, collapsed: boolean) => void>,\n default: undefined,\n },\n redistribute: {\n type: [String, Function] as PropType<'nearest' | 'equal' | UseSplitterRedistributeFn>,\n default: undefined,\n },\n step: { type: Number, default: undefined },\n shiftStep: { type: Number, default: undefined },\n lineSize: { type: [String, Number] as PropType<string | number>, default: undefined },\n handleColor: { type: String, default: undefined },\n handleIcon: { type: null as unknown as PropType<VNodeChild>, default: undefined },\n withHandle: { type: Boolean, default: undefined },\n resetOnDoubleClick: { type: Boolean, default: undefined },\n splitterRef: {\n type: [Object, Function] as PropType<VueRefTarget<UseSplitterReturnValue>>,\n default: undefined,\n },\n mod: { type: [Object, Array] as PropType<any>, default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(rawProps, { attrs, slots, expose }) {\n const props = useProps('Splitter', defaultProps, rawProps)\n const { dir } = useDirection()\n const paneChildren = shallowRef<VNode[]>([])\n const panels = computed(() =>\n paneChildren.value.map((child) => ({\n defaultSize: Number(\n (child.props as any)?.defaultSize ?? (child.props as any)?.['default-size'] ?? 0,\n ),\n min: (child.props as any)?.min,\n max: (child.props as any)?.max,\n collapsible: (child.props as any)?.collapsible,\n collapseThreshold:\n (child.props as any)?.collapseThreshold ?? (child.props as any)?.['collapse-threshold'],\n })),\n )\n const splitter = useSplitter({\n panels,\n orientation: () => props.orientation ?? 'horizontal',\n sizes: () => props.sizes,\n onSizeChange: (sizes) => props.onSizeChange?.(sizes),\n onResizeStart: (index) => props.onResizeStart?.(index),\n onResizeEnd: (index, sizes) => props.onResizeEnd?.(index, sizes),\n onCollapseChange: (index, collapsed) => props.onCollapseChange?.(index, collapsed),\n redistribute: () => props.redistribute,\n step: () => props.step ?? 1,\n shiftStep: () => props.shiftStep ?? 10,\n dir: () => dir.value,\n resetOnDoubleClick: () => props.resetOnDoubleClick ?? true,\n })\n assignRef(props.splitterRef, splitter)\n expose(splitter)\n\n const getStyles = useStyles({\n name: 'Splitter',\n props,\n classes,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n\n provideSplitterContext({\n getStyles,\n get sizes() {\n return splitter.sizes\n },\n get collapsed() {\n return splitter.collapsed\n },\n get orientation() {\n return props.orientation ?? 'horizontal'\n },\n })\n\n return () => {\n paneChildren.value = flattenChildren((slots.default?.() ?? []) as VNode[])\n const items: VNode[] = []\n paneChildren.value.forEach((child, index) => {\n if (index > 0) {\n const handleIndex = index - 1\n items.push(\n h(\n Box,\n {\n key: `handle-${handleIndex}`,\n ...getStyles('handle'),\n ...splitter.getHandleProps(handleIndex),\n },\n () =>\n props.withHandle\n ? h(\n 'div',\n {\n ...getStyles('thumb'),\n 'data-orientation': props.orientation,\n 'data-active': splitter.activeHandle === handleIndex || undefined,\n },\n [\n props.handleIcon !== undefined\n ? props.handleIcon\n : h(\n props.orientation === 'vertical'\n ? GripHorizontalIcon\n : GripVerticalIcon,\n ),\n ],\n )\n : undefined,\n ),\n )\n }\n items.push(cloneVNode(child, { key: `pane-${index}`, __index: index }, true))\n })\n\n return h(\n Box,\n {\n ...attrs,\n ref: splitter.setContainer,\n mod: [{ orientation: props.orientation }, props.mod],\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n },\n () => items,\n )\n }\n },\n})\n\nexport const Splitter = withBoxProps(\n Object.assign(SplitterBase, {\n classes,\n varsResolver,\n Pane: SplitterPane,\n }),\n)\n","import type { TreeNodeData } from '../Tree'\n\nexport function findTreeNode(value: string, data: TreeNodeData[]): TreeNodeData | null {\n for (const node of data) {\n if (node.value === value) return node\n if (Array.isArray(node.children)) {\n const child = findTreeNode(value, node.children)\n if (child) return child\n }\n }\n return null\n}\n\nexport function getChildrenNodesValues(\n value: string,\n data: TreeNodeData[],\n acc: string[] = [],\n): string[] {\n const node = findTreeNode(value, data)\n if (!node) return acc\n if (!Array.isArray(node.children) || node.children.length === 0) return [node.value]\n\n node.children.forEach((child) => {\n if (Array.isArray(child.children) && child.children.length > 0) {\n getChildrenNodesValues(child.value, data, acc)\n } else {\n acc.push(child.value)\n }\n })\n return acc\n}\n\nexport function getAllChildrenNodes(data: TreeNodeData[]): string[] {\n return data.reduce<string[]>((acc, node) => {\n if (Array.isArray(node.children) && node.children.length > 0)\n acc.push(...getAllChildrenNodes(node.children))\n else acc.push(node.value)\n return acc\n }, [])\n}\n","import { onBeforeUnmount, onMounted, ref, type Ref } from 'vue'\nimport { findTreeNode } from './get-children-nodes-values/get-children-nodes-values'\nimport type { TreeDragDropPayload, TreeDragDropPosition } from './move-tree-node/move-tree-node'\nimport type { TreeDragState, TreeNodeData } from './Tree'\n\nexport type TreeAllowDrop = (payload: TreeDragDropPayload) => boolean\nexport interface TreeDragHandleProps {\n onMousedown: (event: MouseEvent) => void\n}\n\ninterface Input {\n nodeValue: string\n hasChildren: () => boolean\n isExpanded: () => boolean\n data: () => TreeNodeData[]\n onDragDrop?: (payload: TreeDragDropPayload) => void\n dragState: Ref<TreeDragState>\n allowDrop?: TreeAllowDrop\n withDragHandle?: boolean\n}\n\nfunction isDescendantOf(\n data: TreeNodeData[],\n ancestorValue: string,\n descendantValue: string,\n): boolean {\n const ancestor = findTreeNode(ancestorValue, data)\n const check = (nodes: TreeNodeData[]): boolean =>\n nodes.some(\n (node) => node.value === descendantValue || (!!node.children && check(node.children)),\n )\n return !!ancestor?.children && check(ancestor.children)\n}\n\nfunction getPosition(\n event: DragEvent,\n element: HTMLElement,\n hasChildren: boolean,\n expanded: boolean,\n): TreeDragDropPosition {\n const rect = element.getBoundingClientRect()\n const ratio = rect.height ? (event.clientY - rect.top) / rect.height : 0\n if (hasChildren && expanded) return ratio < 0.5 ? 'before' : 'inside'\n if (hasChildren) return ratio < 0.25 ? 'before' : ratio > 0.75 ? 'after' : 'inside'\n return ratio < 0.5 ? 'before' : 'after'\n}\n\nexport function useTreeNodeDragDrop(input: Input) {\n const handleActive = ref(false)\n const release = () => {\n handleActive.value = false\n }\n onMounted(() => window.addEventListener('mouseup', release))\n onBeforeUnmount(() => window.removeEventListener('mouseup', release))\n\n if (!input.onDragDrop) return { getElementProps: () => ({}), dragHandleProps: undefined }\n\n const dragStart = (event: DragEvent) => {\n if (input.withDragHandle && !handleActive.value) {\n event.preventDefault()\n return\n }\n event.stopPropagation()\n event.dataTransfer?.setData('text/plain', input.nodeValue)\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move'\n input.dragState.value.draggedValue = input.nodeValue\n const target = event.currentTarget as HTMLElement\n target.closest('[role=treeitem]')?.setAttribute('data-dragging', 'true')\n requestAnimationFrame(() => target.setAttribute('data-dragging', 'true'))\n }\n const dragOver = (event: DragEvent) => {\n const dragged = input.dragState.value.draggedValue\n const target = event.currentTarget as HTMLElement\n if (\n !dragged ||\n dragged === input.nodeValue ||\n isDescendantOf(input.data(), dragged, input.nodeValue)\n )\n return\n const position = getPosition(event, target, input.hasChildren(), input.isExpanded())\n const payload = { draggedNode: dragged, targetNode: input.nodeValue, position }\n if (input.allowDrop && !input.allowDrop(payload)) {\n input.dragState.value.currentDropTarget?.removeAttribute('data-drag-over')\n target.removeAttribute('data-drag-over')\n input.dragState.value.currentDropTarget = null\n return\n }\n event.preventDefault()\n event.stopPropagation()\n if (event.dataTransfer) event.dataTransfer.dropEffect = 'move'\n if (input.dragState.value.currentDropTarget !== target)\n input.dragState.value.currentDropTarget?.removeAttribute('data-drag-over')\n target.setAttribute('data-drag-over', position)\n input.dragState.value.currentDropTarget = target\n }\n const dragLeave = (event: DragEvent) => {\n const target = event.currentTarget as HTMLElement\n if (event.relatedTarget instanceof Node && target.contains(event.relatedTarget)) return\n target.removeAttribute('data-drag-over')\n if (input.dragState.value.currentDropTarget === target)\n input.dragState.value.currentDropTarget = null\n }\n const drop = (event: DragEvent) => {\n event.preventDefault()\n event.stopPropagation()\n const target = event.currentTarget as HTMLElement\n const position = target.getAttribute('data-drag-over') as TreeDragDropPosition | null\n target.removeAttribute('data-drag-over')\n const dragged = input.dragState.value.draggedValue\n if (dragged && position && dragged !== input.nodeValue) {\n const payload = { draggedNode: dragged, targetNode: input.nodeValue, position }\n if (!input.allowDrop || input.allowDrop(payload)) input.onDragDrop?.(payload)\n }\n input.dragState.value = { draggedValue: null, currentDropTarget: null }\n }\n const dragEnd = (event: DragEvent) => {\n const target = event.currentTarget as HTMLElement\n target.removeAttribute('data-dragging')\n target.closest('[role=treeitem]')?.removeAttribute('data-dragging')\n input.dragState.value.currentDropTarget?.removeAttribute('data-drag-over')\n input.dragState.value = { draggedValue: null, currentDropTarget: null }\n handleActive.value = false\n }\n\n return {\n getElementProps: () => ({\n draggable: input.withDragHandle ? handleActive.value : true,\n onDragstart: dragStart,\n onDragover: dragOver,\n onDragleave: dragLeave,\n onDrop: drop,\n onDragend: dragEnd,\n }),\n dragHandleProps: input.withDragHandle\n ? {\n onMousedown: () => {\n handleActive.value = true\n },\n }\n : undefined,\n }\n}\n","import { defineComponent, h, ref, type PropType, type VNode, type VNodeChild } from 'vue'\nimport { Box } from '../../core'\nimport { Loader } from '../Loader'\nimport type { TreeAllowDrop } from './use-tree-node-drag-drop'\nimport { useTreeNodeDragDrop } from './use-tree-node-drag-drop'\nimport type { RenderNode, TreeDragState, TreeNodeData } from './Tree'\nimport type { TreeDragDropPayload } from './move-tree-node/move-tree-node'\nimport type { TreeController } from './use-tree'\n\nfunction getValuesRange(anchor: string | null, value: string | undefined, flatValues: string[]) {\n if (!anchor || !value) return []\n const first = flatValues.indexOf(anchor)\n const second = flatValues.indexOf(value)\n if (first === -1 || second === -1) return []\n return flatValues.slice(Math.min(first, second), Math.max(first, second) + 1)\n}\n\nfunction visible(node: HTMLElement, root: Element) {\n for (\n let current: HTMLElement | null = node;\n current && current !== root;\n current = current.parentElement\n ) {\n if (current.style.display === 'none') return false\n }\n return true\n}\n\nexport const TreeNode: ReturnType<typeof defineComponent> = defineComponent({\n name: 'TreeNode',\n props: {\n node: { type: Object as PropType<TreeNodeData>, required: true },\n getStyles: { type: Function as PropType<any>, required: true },\n rootIndex: { type: Number, default: undefined },\n controller: { type: Object as PropType<TreeController>, required: true },\n expandOnClick: { type: Boolean, default: true },\n flatValues: { type: Array as PropType<string[]>, required: true },\n isSubtree: { type: Boolean, default: false },\n level: { type: Number, default: 1 },\n renderNode: { type: Function as PropType<RenderNode>, default: undefined },\n selectOnClick: { type: Boolean, default: false },\n allowRangeSelection: { type: Boolean, default: true },\n expandOnSpace: { type: Boolean, default: true },\n checkOnSpace: { type: Boolean, default: false },\n keepMounted: { type: Boolean, default: false },\n onDragDrop: {\n type: Function as PropType<(payload: TreeDragDropPayload) => void>,\n default: undefined,\n },\n allowDrop: { type: Function as PropType<TreeAllowDrop>, default: undefined },\n withDragHandle: { type: Boolean, default: false },\n dragState: { type: Object as PropType<{ value: TreeDragState }>, required: true },\n data: { type: Array as PropType<TreeNodeData[]>, required: true },\n },\n setup(props) {\n const element = ref<HTMLElement | null>(null)\n const hasChildren = () =>\n Array.isArray(props.node.children) ||\n (!!props.node.hasChildren && !Array.isArray(props.node.children))\n const expanded = () => props.controller.expandedState.value[props.node.value] || false\n const dnd = useTreeNodeDragDrop({\n nodeValue: props.node.value,\n hasChildren,\n isExpanded: expanded,\n data: () => props.data,\n onDragDrop: props.onDragDrop,\n dragState: props.dragState as any,\n allowDrop: props.allowDrop,\n withDragHandle: props.withDragHandle,\n })\n\n const onKeydown = (event: KeyboardEvent) => {\n if (event.code === 'ArrowRight') {\n event.stopPropagation()\n event.preventDefault()\n if (expanded()) element.value?.querySelector<HTMLElement>('[role=treeitem]')?.focus()\n else if (hasChildren()) props.controller.expand(props.node.value)\n } else if (event.code === 'ArrowLeft') {\n event.stopPropagation()\n event.preventDefault()\n if (expanded() && hasChildren()) props.controller.collapse(props.node.value)\n else if (props.isSubtree)\n element.value?.parentElement?.closest<HTMLElement>('[role=treeitem]')?.focus()\n } else if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n const root = element.value?.closest('[data-tree-root]')\n if (!root || !element.value) return\n event.stopPropagation()\n event.preventDefault()\n const nodes = Array.from(root.querySelectorAll<HTMLElement>('[role=treeitem]')).filter(\n (node) => visible(node, root),\n )\n const index = nodes.indexOf(element.value)\n const next = nodes[event.code === 'ArrowDown' ? index + 1 : index - 1]\n next?.focus()\n if (event.shiftKey && next)\n props.controller.setSelectedState(\n getValuesRange(props.controller.anchorNode.value, next.dataset.value, props.flatValues),\n )\n } else if (event.code === 'Space') {\n if (props.expandOnSpace && hasChildren()) {\n event.stopPropagation()\n event.preventDefault()\n props.controller.toggleExpanded(props.node.value)\n }\n if (props.checkOnSpace) {\n event.stopPropagation()\n event.preventDefault()\n if (props.controller.isNodeChecked(props.node.value)) {\n props.controller.uncheckNode(props.node.value)\n } else props.controller.checkNode(props.node.value)\n }\n }\n }\n\n return (): VNodeChild => {\n const selected = props.controller.selectedState.value.includes(props.node.value)\n const isExpanded = expanded()\n const nested: VNode[] = (props.node.children || []).map((node) =>\n h(TreeNode as any, {\n ...props,\n key: node.value,\n node,\n rootIndex: undefined,\n level: props.level + 1,\n isSubtree: true,\n }),\n )\n const onClick = (event: MouseEvent) => {\n event.stopPropagation()\n if (props.allowRangeSelection && event.shiftKey && props.controller.anchorNode.value) {\n props.controller.setSelectedState(\n getValuesRange(props.controller.anchorNode.value, props.node.value, props.flatValues),\n )\n } else {\n if (props.expandOnClick && hasChildren())\n props.controller.toggleExpanded(props.node.value)\n if (props.selectOnClick) props.controller.select(props.node.value)\n }\n element.value?.focus()\n }\n const elementProps = {\n ...props.getStyles('label'),\n ...dnd.getElementProps(),\n onClick,\n 'data-selected': selected || undefined,\n 'data-value': props.node.value,\n }\n const payload = {\n node: props.node,\n level: props.level,\n selected,\n isRoot: props.level === 1,\n tree: props.controller,\n expanded: isExpanded,\n hasChildren: hasChildren(),\n isLoading: props.controller.isNodeLoading(props.node.value),\n loadError: props.controller.getNodeLoadError(props.node.value),\n elementProps,\n dragHandleProps: dnd.dragHandleProps,\n }\n const label = props.renderNode\n ? props.renderNode(payload)\n : h('div', elementProps, [\n typeof props.node.label === 'function' ? props.node.label() : props.node.label,\n ] as any)\n const loading: VNode | null =\n isExpanded && payload.isLoading && nested.length === 0\n ? h(\n Box,\n {\n component: 'ul',\n role: 'group',\n ...props.getStyles('subtree'),\n 'data-level': props.level,\n },\n () =>\n h(\n 'li',\n props.getStyles('node', {\n style: { '--label-offset': `calc(var(--level-offset) * ${props.level})` },\n }),\n [\n h('div', props.getStyles('label'), [\n h(Loader, { size: 16, style: { marginInlineStart: '4px' } }),\n ]),\n ],\n ),\n )\n : null\n const subtree =\n nested.length > 0 && (isExpanded || props.keepMounted)\n ? h(\n Box,\n {\n component: 'ul',\n role: 'group',\n ...props.getStyles('subtree'),\n 'data-level': props.level,\n style: [props.getStyles('subtree').style, !isExpanded ? { display: 'none' } : null],\n },\n () => nested,\n )\n : null\n\n return h(\n 'li',\n {\n ...props.node.nodeProps,\n ...props.getStyles('node', {\n style: { '--label-offset': `calc(var(--level-offset) * ${props.level - 1})` },\n }),\n role: 'treeitem',\n 'aria-selected': selected,\n 'aria-expanded': hasChildren() ? isExpanded : undefined,\n 'data-value': props.node.value,\n 'data-selected': selected || undefined,\n 'data-level': props.level,\n tabindex: props.rootIndex === 0 ? 0 : -1,\n onKeydown,\n ref: element,\n },\n [label as any, loading, subtree],\n )\n }\n },\n})\n","import type { TreeNodeData } from '../Tree'\n\nexport interface CheckedNodeStatus {\n checked: boolean\n indeterminate: boolean\n hasChildren: boolean\n value: string\n}\n\nexport function getAllCheckedNodes(\n data: TreeNodeData[],\n checkedState: string[],\n acc: CheckedNodeStatus[] = [],\n) {\n const currentTreeChecked: CheckedNodeStatus[] = []\n for (const node of data) {\n if (Array.isArray(node.children) && node.children.length > 0) {\n const inner = getAllCheckedNodes(node.children, checkedState, acc)\n if (inner.currentTreeChecked.length === node.children.length) {\n const checked = inner.currentTreeChecked.every((item) => item.checked)\n const item = { checked, indeterminate: !checked, value: node.value, hasChildren: true }\n currentTreeChecked.push(item)\n acc.push(item)\n } else if (inner.currentTreeChecked.length > 0) {\n const item = { checked: false, indeterminate: true, value: node.value, hasChildren: true }\n currentTreeChecked.push(item)\n acc.push(item)\n }\n } else if (checkedState.includes(node.value)) {\n const item = { checked: true, indeterminate: false, value: node.value, hasChildren: false }\n currentTreeChecked.push(item)\n acc.push(item)\n }\n }\n return { result: acc, currentTreeChecked }\n}\n","import { getAllCheckedNodes } from '../get-all-checked-nodes/get-all-checked-nodes'\nimport type { TreeNodeData } from '../Tree'\n\nexport function isNodeChecked(\n value: string,\n data: TreeNodeData[],\n checkedState: string[],\n): boolean {\n if (checkedState.length === 0) return false\n if (checkedState.includes(value)) return true\n return getAllCheckedNodes(data, checkedState).result.some(\n (node) => node.value === value && node.checked,\n )\n}\n","import { getAllCheckedNodes } from '../get-all-checked-nodes/get-all-checked-nodes'\nimport type { TreeNodeData } from '../Tree'\n\nexport function isNodeIndeterminate(\n value: string,\n data: TreeNodeData[],\n checkedState: string[],\n): boolean {\n if (checkedState.length === 0) return false\n return getAllCheckedNodes(data, checkedState).result.some(\n (node) => node.value === value && node.indeterminate,\n )\n}\n","import { ref, shallowRef, type MaybeRefOrGetter, type Ref } from 'vue'\nimport { useUncontrolled } from '@mantine-vue/hooks'\nimport {\n getAllCheckedNodes,\n type CheckedNodeStatus,\n} from './get-all-checked-nodes/get-all-checked-nodes'\nimport {\n findTreeNode,\n getAllChildrenNodes,\n getChildrenNodesValues,\n} from './get-children-nodes-values/get-children-nodes-values'\nimport { isNodeChecked as getIsNodeChecked } from './is-node-checked/is-node-checked'\nimport { isNodeIndeterminate as getIsNodeIndeterminate } from './is-node-indeterminate/is-node-indeterminate'\nimport type { TreeNodeData } from './Tree'\n\nexport type TreeExpandedState = Record<string, boolean>\n\nfunction getInitialTreeExpandedState(\n initial: TreeExpandedState,\n data: TreeNodeData[],\n value: string | string[] | undefined,\n acc: TreeExpandedState = {},\n) {\n data.forEach((node) => {\n acc[node.value] = node.value in initial ? initial[node.value] : node.value === value\n if (Array.isArray(node.children))\n getInitialTreeExpandedState(initial, node.children, value, acc)\n })\n return acc\n}\n\nexport function getTreeExpandedState(\n data: TreeNodeData[],\n values: string[] | '*',\n): TreeExpandedState {\n const state = getInitialTreeExpandedState({}, data, [])\n if (values === '*') return Object.fromEntries(Object.keys(state).map((key) => [key, true]))\n values.forEach((value) => {\n state[value] = true\n })\n return state\n}\n\nfunction getInitialCheckedState(initial: string[], data: TreeNodeData[], strictly: boolean) {\n if (strictly) return initial\n return Array.from(new Set(initial.flatMap((node) => getChildrenNodesValues(node, data))))\n}\n\nfunction getAllNodeValues(data: TreeNodeData[]): string[] {\n return data.flatMap((node) => [\n node.value,\n ...(node.children?.length ? getAllNodeValues(node.children) : []),\n ])\n}\n\nexport interface UseTreeInput {\n initialExpandedState?: TreeExpandedState\n expandedState?: MaybeRefOrGetter<TreeExpandedState | undefined>\n onExpandedStateChange?: (state: TreeExpandedState) => void\n initialSelectedState?: string[]\n selectedState?: MaybeRefOrGetter<string[] | undefined>\n onSelectedStateChange?: (state: string[]) => void\n initialCheckedState?: string[]\n checkedState?: MaybeRefOrGetter<string[] | undefined>\n onCheckedStateChange?: (state: string[]) => void\n multiple?: boolean\n onNodeExpand?: (value: string) => void\n onNodeCollapse?: (value: string) => void\n onLoadChildren?: (nodeValue: string) => Promise<void>\n checkStrictly?: boolean\n}\n\nexport interface UseTreeReturnType {\n checkStrictly: boolean\n multiple: boolean\n expandedState: Readonly<Ref<TreeExpandedState>>\n selectedState: Readonly<Ref<string[]>>\n checkedState: Readonly<Ref<string[]>>\n anchorNode: Ref<string | null>\n initialize(data: TreeNodeData[]): void\n toggleExpanded(value: string): void\n collapse(value: string): void\n expand(value: string): void\n expandAllNodes(): void\n collapseAllNodes(): void\n setExpandedState(value: TreeExpandedState): void\n toggleSelected(value: string): string[]\n select(value: string): void\n deselect(value: string): void\n clearSelected(): void\n setSelectedState(value: string[]): void\n checkNode(value: string): void\n uncheckNode(value: string): void\n checkAllNodes(): void\n uncheckAllNodes(): void\n setCheckedState(value: string[]): void\n getCheckedNodes(): CheckedNodeStatus[]\n isNodeChecked(value: string): boolean\n isNodeIndeterminate(value: string): boolean\n isNodeLoading(value: string): boolean\n getNodeLoadError(value: string): Error | null\n loadNode(value: string): Promise<void>\n invalidateNode(value: string): void\n}\n\nexport function useTree(input: UseTreeInput = {}): UseTreeReturnType {\n const {\n initialSelectedState = [],\n initialCheckedState = [],\n initialExpandedState = {},\n multiple = false,\n checkStrictly = false,\n } = input\n const data = shallowRef<TreeNodeData[]>([])\n const [expandedState, setExpandedState] = useUncontrolled<TreeExpandedState>({\n value: input.expandedState,\n defaultValue: initialExpandedState,\n finalValue: {},\n onChange: input.onExpandedStateChange,\n })\n const [selectedState, setSelectedState] = useUncontrolled<string[]>({\n value: input.selectedState,\n defaultValue: initialSelectedState,\n finalValue: [],\n onChange: input.onSelectedStateChange,\n })\n const [checkedState, setCheckedState] = useUncontrolled<string[]>({\n value: input.checkedState,\n defaultValue: initialCheckedState,\n finalValue: [],\n onChange: input.onCheckedStateChange,\n })\n const anchorNode = ref<string | null>(null)\n const loadingNodes = ref(new Set<string>())\n const loadedNodes = new Set<string>()\n const loadErrors = ref<Record<string, Error>>({})\n\n const initialize = (nextData: TreeNodeData[]) => {\n setExpandedState(\n getInitialTreeExpandedState(expandedState.value, nextData, selectedState.value),\n )\n setCheckedState(getInitialCheckedState(checkedState.value, nextData, checkStrictly))\n data.value = nextData\n }\n\n const loadNode = async (value: string) => {\n if (!input.onLoadChildren || loadingNodes.value.has(value) || loadedNodes.has(value)) return\n loadingNodes.value = new Set(loadingNodes.value).add(value)\n if (value in loadErrors.value) {\n const next = { ...loadErrors.value }\n delete next[value]\n loadErrors.value = next\n }\n try {\n await input.onLoadChildren(value)\n loadedNodes.add(value)\n } catch (error) {\n loadErrors.value = {\n ...loadErrors.value,\n [value]: error instanceof Error ? error : new Error(String(error)),\n }\n } finally {\n const next = new Set(loadingNodes.value)\n next.delete(value)\n loadingNodes.value = next\n }\n }\n\n const tryLoadAsync = (value: string) => {\n const node = findTreeNode(value, data.value)\n if (node?.hasChildren && !Array.isArray(node.children)) void loadNode(value)\n }\n\n const toggleExpanded = (value: string) => {\n const next = { ...expandedState.value, [value]: !expandedState.value[value] }\n if (next[value]) input.onNodeExpand?.(value)\n else input.onNodeCollapse?.(value)\n if (next[value]) tryLoadAsync(value)\n setExpandedState(next)\n }\n const collapse = (value: string) => {\n if (expandedState.value[value] !== false) input.onNodeCollapse?.(value)\n setExpandedState({ ...expandedState.value, [value]: false })\n }\n const expand = (value: string) => {\n if (expandedState.value[value] !== true) input.onNodeExpand?.(value)\n tryLoadAsync(value)\n setExpandedState({ ...expandedState.value, [value]: true })\n }\n const expandAllNodes = () => {\n const next = { ...expandedState.value }\n Object.keys(next).forEach((key) => {\n next[key] = true\n tryLoadAsync(key)\n })\n setExpandedState(next)\n }\n const collapseAllNodes = () =>\n setExpandedState(\n Object.fromEntries(Object.keys(expandedState.value).map((key) => [key, false])),\n )\n\n const toggleSelected = (value: string) => {\n const included = selectedState.value.includes(value)\n const next = multiple\n ? included\n ? selectedState.value.filter((item) => item !== value)\n : [...selectedState.value, value]\n : included\n ? []\n : [value]\n anchorNode.value = included ? null : value\n setSelectedState(next)\n return next\n }\n const select = (value: string) => {\n anchorNode.value = value\n setSelectedState(\n multiple && !selectedState.value.includes(value) ? [...selectedState.value, value] : [value],\n )\n }\n const deselect = (value: string) => {\n if (anchorNode.value === value) anchorNode.value = null\n setSelectedState(selectedState.value.filter((item) => item !== value))\n }\n const clearSelected = () => {\n setSelectedState([])\n anchorNode.value = null\n }\n\n const checkNode = (value: string) => {\n const values = checkStrictly ? [value] : getChildrenNodesValues(value, data.value)\n setCheckedState(Array.from(new Set([...checkedState.value, ...values])))\n }\n const uncheckNode = (value: string) => {\n const values = checkStrictly ? [value] : getChildrenNodesValues(value, data.value)\n setCheckedState(checkedState.value.filter((item) => !values.includes(item)))\n }\n const getCheckedNodes = (): CheckedNodeStatus[] => {\n if (checkStrictly) {\n return checkedState.value.map((value): CheckedNodeStatus => {\n const node = findTreeNode(value, data.value)\n return {\n checked: true,\n indeterminate: false,\n value,\n hasChildren: !!node && ((node.children?.length ?? 0) > 0 || !!node.hasChildren),\n }\n })\n }\n\n return getAllCheckedNodes(data.value as TreeNodeData[], checkedState.value as string[]).result\n }\n\n const checkAllNodes = (): void => {\n const values: string[] = checkStrictly\n ? getAllNodeValues(data.value)\n : getAllChildrenNodes(data.value)\n setCheckedState(values)\n }\n\n return {\n checkStrictly,\n multiple,\n expandedState,\n selectedState,\n checkedState,\n anchorNode,\n initialize,\n toggleExpanded,\n collapse,\n expand,\n expandAllNodes,\n collapseAllNodes,\n setExpandedState,\n toggleSelected,\n select,\n deselect,\n clearSelected,\n setSelectedState,\n checkNode,\n uncheckNode,\n checkAllNodes,\n uncheckAllNodes: () => setCheckedState([]),\n setCheckedState,\n getCheckedNodes,\n isNodeChecked: (value: string): boolean =>\n checkStrictly\n ? checkedState.value.includes(value)\n : getIsNodeChecked(value, data.value, checkedState.value),\n isNodeIndeterminate: (value: string): boolean =>\n !checkStrictly && getIsNodeIndeterminate(value, data.value, checkedState.value),\n isNodeLoading: (value) => loadingNodes.value.has(value),\n getNodeLoadError: (value) => loadErrors.value[value] || null,\n loadNode,\n invalidateNode: (value) => {\n loadedNodes.delete(value)\n if (value in loadErrors.value) {\n const next = { ...loadErrors.value }\n delete next[value]\n loadErrors.value = next\n }\n },\n }\n}\n\nexport type TreeController = ReturnType<typeof useTree>\n",":where([data-tree-root]) {\n --level-offset: var(--mantine-spacing-lg);\n --tree-line-width: rem(1px);\n --tree-line-color: var(--mantine-color-default-border);\n}\n\n.root {\n margin: 0;\n padding: 0;\n user-select: none;\n}\n\n.subtree {\n margin: 0;\n padding: 0;\n}\n\n.node {\n cursor: pointer;\n list-style: none;\n margin: 0;\n padding: 0;\n outline: 0;\n\n &:focus-visible {\n > .label {\n outline: 2px solid var(--mantine-primary-color-filled);\n outline-offset: 2px;\n }\n }\n}\n\n.label {\n position: relative;\n padding-inline-start: var(--label-offset);\n\n &:where([data-selected]) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n\n &:where([data-dragging]) {\n opacity: 0.4;\n }\n\n &:where([data-drag-over='before'])::before {\n content: '';\n position: absolute;\n top: -1px;\n inset-inline-start: var(--label-offset, 0);\n inset-inline-end: 0;\n height: 2px;\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='after'])::after {\n content: '';\n position: absolute;\n bottom: -1px;\n inset-inline-start: var(--label-offset, 0);\n inset-inline-end: 0;\n height: 2px;\n background-color: var(--mantine-primary-color-filled);\n pointer-events: none;\n z-index: 1;\n }\n\n &:where([data-drag-over='inside']) {\n background-color: var(--mantine-primary-color-light);\n }\n}\n\n:where([data-with-lines]) {\n .node {\n position: relative;\n }\n\n /* Horizontal connector at the node's own level — applies to both nested and flat layouts */\n .node:not([data-level='1'])::before {\n content: '';\n position: absolute;\n top: rem(12px);\n inset-inline-start: calc(var(--label-offset) - var(--level-offset) / 2);\n width: calc(var(--level-offset) / 2);\n height: 0;\n border-top: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n z-index: 1;\n }\n\n /* Vertical line for nested layout (regular Tree): the line spans the parent <li>'s\n full height — including descendants — so ancestor columns stay continuous. */\n .subtree > .node {\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n inset-inline-start: calc(var(--label-offset) - var(--level-offset) / 2);\n width: 0;\n border-inline-start: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n z-index: 1;\n }\n\n &:last-child::after {\n bottom: auto;\n height: rem(12px);\n }\n }\n\n .node:where([data-dragging]) {\n &::before,\n &::after {\n display: none;\n }\n\n .flatLine {\n display: none;\n }\n }\n}\n\n/* Vertical line markers rendered as DOM children by `FlatTreeNode` for flat layouts\n (e.g. virtualized trees) where ::after on a single node can't span ancestor rows.\n Each marker is positioned at column `--flat-line-column` and is only visible\n inside a `[data-with-lines]` tree. */\n.flatLine {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n inset-inline-start: calc((var(--flat-line-column) - 1.5) * var(--level-offset));\n border-inline-start: var(--tree-line-width) solid var(--tree-line-color);\n pointer-events: none;\n z-index: 1;\n display: none;\n}\n\n:where([data-with-lines]) .flatLine {\n display: block;\n}\n\n.flatLineClosing {\n bottom: auto;\n height: rem(12px);\n}\n","import {\n defineComponent,\n h,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n type Component,\n type PropType,\n type VNodeChild,\n} from 'vue'\nimport {\n withBoxProps,\n Box,\n createVarsResolver,\n getSpacing,\n useStyles,\n type BoxProps,\n} from '../../core'\nimport type { TreeDragDropPayload } from './move-tree-node/move-tree-node'\nimport { TreeNode } from './TreeNode'\nimport type { TreeAllowDrop, TreeDragHandleProps } from './use-tree-node-drag-drop'\nimport { useTree, type TreeController } from './use-tree'\nimport classes from './Tree.module.css'\n\nexport interface TreeNodeData {\n label: VNodeChild | (() => VNodeChild)\n value: string\n nodeProps?: Record<string, any>\n children?: TreeNodeData[]\n hasChildren?: boolean\n}\nexport interface RenderTreeNodePayload {\n level: number\n expanded: boolean\n hasChildren: boolean\n selected: boolean\n isRoot: boolean\n isLoading: boolean\n loadError: Error | null\n node: TreeNodeData\n tree: TreeController\n elementProps: Record<string, any>\n dragHandleProps: TreeDragHandleProps | undefined\n}\nexport type RenderNode = (payload: RenderTreeNodePayload) => VNodeChild\nexport type TreeStylesNames = 'root' | 'node' | 'subtree' | 'label'\nexport type TreeCssVariables = { root: '--level-offset' }\nexport interface TreeDragState {\n draggedValue: string | null\n currentDropTarget: HTMLElement | null\n}\nexport interface TreeProps extends BoxProps {\n data: TreeNodeData[]\n levelOffset?: string | number\n expandOnClick?: boolean\n expandOnSpace?: boolean\n checkOnSpace?: boolean\n selectOnClick?: boolean\n tree?: TreeController\n renderNode?: RenderNode\n clearSelectionOnOutsideClick?: boolean\n allowRangeSelection?: boolean\n keepMounted?: boolean\n onDragDrop?: (payload: TreeDragDropPayload) => void\n allowDrop?: TreeAllowDrop\n withDragHandle?: boolean\n withLines?: boolean\n}\nexport type TreeFactory = any\n\nfunction getFlatValues(data: TreeNodeData[]): string[] {\n return data.flatMap((node) => [\n node.value,\n ...(node.children ? getFlatValues(node.children) : []),\n ])\n}\n\nconst varsResolver = createVarsResolver<any>((_, { levelOffset }) => ({\n root: { '--level-offset': getSpacing(levelOffset) },\n}))\n\nexport const Tree = withBoxProps(\n defineComponent({\n name: 'Tree',\n inheritAttrs: false,\n props: {\n component: {\n type: [String, Object, Function] as PropType<string | Component>,\n default: 'ul',\n },\n data: { type: Array as PropType<TreeNodeData[]>, required: true },\n levelOffset: { type: [String, Number] as PropType<string | number>, default: 'lg' },\n expandOnClick: { type: Boolean, default: true },\n expandOnSpace: { type: Boolean, default: true },\n checkOnSpace: { type: Boolean, default: false },\n selectOnClick: { type: Boolean, default: false },\n tree: { type: Object as PropType<TreeController>, default: undefined },\n renderNode: { type: Function as PropType<RenderNode>, default: undefined },\n clearSelectionOnOutsideClick: { type: Boolean, default: false },\n allowRangeSelection: { type: Boolean, default: true },\n keepMounted: { type: Boolean, default: false },\n onDragDrop: {\n type: Function as PropType<(payload: TreeDragDropPayload) => void>,\n default: undefined,\n },\n allowDrop: { type: Function as PropType<TreeAllowDrop>, default: undefined },\n withDragHandle: { type: Boolean, default: false },\n withLines: { type: Boolean, default: false },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const defaultController = useTree()\n const controller = () => props.tree || defaultController\n const root = ref<any>(null)\n const dragState = ref<TreeDragState>({ draggedValue: null, currentDropTarget: null })\n const getStyles = useStyles({\n name: 'Tree',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n watch([() => props.data, () => props.tree], () => controller().initialize(props.data), {\n immediate: true,\n })\n const outside = (event: MouseEvent) => {\n const element = (root.value?.$el ?? root.value) as HTMLElement | null\n if (\n props.clearSelectionOnOutsideClick &&\n element &&\n !element.contains(event.target as Node)\n )\n controller().clearSelected()\n }\n onMounted(() => document.addEventListener('mousedown', outside))\n onBeforeUnmount(() => document.removeEventListener('mousedown', outside))\n\n return () => {\n const flatValues = getFlatValues(props.data)\n const renderNode =\n props.renderNode ||\n (slots.node ? (payload: RenderTreeNodePayload) => slots.node?.(payload) : undefined)\n const nodes = props.data.map((node, index) =>\n h(TreeNode, {\n key: node.value,\n node,\n getStyles,\n rootIndex: index,\n controller: controller(),\n flatValues,\n expandOnClick: props.expandOnClick,\n selectOnClick: props.selectOnClick,\n allowRangeSelection: props.allowRangeSelection,\n expandOnSpace: props.expandOnSpace,\n checkOnSpace: props.checkOnSpace,\n keepMounted: props.keepMounted,\n onDragDrop: props.onDragDrop,\n allowDrop: props.allowDrop,\n withDragHandle: props.withDragHandle,\n dragState: dragState as any,\n data: props.data,\n renderNode,\n }),\n )\n return h(\n Box,\n {\n ...attrs,\n ...getStyles('root', { className: attrs.class, style: attrs.style as any }),\n component: props.component,\n ref: root,\n role: 'tree',\n 'aria-multiselectable': controller().multiple,\n 'data-tree-root': '',\n 'data-with-lines': props.withLines || undefined,\n },\n () => nodes,\n )\n }\n },\n }),\n)\n\nObject.assign(Tree, { classes, varsResolver })\n","import { defineComponent, h, ref, type CSSProperties, type PropType, type VNodeChild } from 'vue'\nimport type { FlatTreeLineState } from './flatten-tree-data/flatten-tree-data'\nimport type { RenderNode, TreeNodeData } from './Tree'\nimport type { TreeController } from './use-tree'\nimport classes from './Tree.module.css'\n\nexport interface FlatTreeNodeProps {\n node: TreeNodeData\n level: number\n parent: string | null\n hasChildren: boolean\n expanded: boolean\n tree: TreeController\n expandOnClick?: boolean\n selectOnClick?: boolean\n expandOnSpace?: boolean\n checkOnSpace?: boolean\n renderNode?: RenderNode\n style?: CSSProperties\n tabIndex?: number\n linesPath?: FlatTreeLineState[]\n}\n\nexport const FlatTreeNode = defineComponent({\n name: 'FlatTreeNode',\n props: {\n node: { type: Object as PropType<TreeNodeData>, required: true },\n level: { type: Number, required: true },\n parent: { type: String as PropType<string | null>, default: null },\n hasChildren: { type: Boolean, required: true },\n expanded: { type: Boolean, required: true },\n tree: { type: Object as PropType<TreeController>, required: true },\n expandOnClick: { type: Boolean, default: true },\n selectOnClick: { type: Boolean, default: false },\n expandOnSpace: { type: Boolean, default: true },\n checkOnSpace: { type: Boolean, default: false },\n renderNode: { type: Function as PropType<RenderNode>, default: undefined },\n style: { type: Object as PropType<CSSProperties>, default: undefined },\n tabIndex: { type: Number, default: -1 },\n linesPath: { type: Array as PropType<FlatTreeLineState[]>, default: undefined },\n },\n setup(props) {\n const element = ref<HTMLElement | null>(null)\n const focusSibling = (offset: number) => {\n const root = element.value?.closest('[data-tree-root]')\n if (!root || !element.value) return\n const nodes = Array.from(root.querySelectorAll<HTMLElement>('[role=treeitem]')).filter(\n (node) => node.style.display !== 'none',\n )\n nodes[nodes.indexOf(element.value) + offset]?.focus()\n }\n const onClick = (event: MouseEvent) => {\n event.stopPropagation()\n if (props.expandOnClick && props.hasChildren) props.tree.toggleExpanded(props.node.value)\n if (props.selectOnClick) props.tree.select(props.node.value)\n element.value?.focus()\n }\n const onKeydown = (event: KeyboardEvent) => {\n if (event.code === 'ArrowRight') {\n event.preventDefault()\n if (props.expanded && props.hasChildren) focusSibling(1)\n else if (props.hasChildren) props.tree.expand(props.node.value)\n } else if (event.code === 'ArrowLeft') {\n event.preventDefault()\n if (props.expanded && props.hasChildren) props.tree.collapse(props.node.value)\n else if (props.parent)\n element.value\n ?.closest('[data-tree-root]')\n ?.querySelector<HTMLElement>(\n `[role=treeitem][data-value=\"${CSS.escape(props.parent)}\"]`,\n )\n ?.focus()\n } else if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n event.preventDefault()\n focusSibling(event.code === 'ArrowDown' ? 1 : -1)\n } else if (event.code === 'Space') {\n if (props.expandOnSpace && props.hasChildren) {\n event.preventDefault()\n props.tree.toggleExpanded(props.node.value)\n }\n if (props.checkOnSpace) {\n event.preventDefault()\n if (props.tree.isNodeChecked(props.node.value)) {\n props.tree.uncheckNode(props.node.value)\n } else props.tree.checkNode(props.node.value)\n }\n }\n }\n\n return (): VNodeChild => {\n const selected = props.tree.selectedState.value.includes(props.node.value)\n const elementProps = {\n class: classes.label,\n onClick,\n 'data-selected': selected || undefined,\n 'data-value': props.node.value,\n }\n const label = props.renderNode\n ? props.renderNode({\n node: props.node,\n level: props.level,\n selected,\n isRoot: props.level === 1,\n tree: props.tree,\n expanded: props.expanded,\n hasChildren: props.hasChildren,\n isLoading: props.tree.isNodeLoading(props.node.value),\n loadError: props.tree.getNodeLoadError(props.node.value),\n elementProps,\n dragHandleProps: undefined,\n })\n : h('div', elementProps, [\n typeof props.node.label === 'function' ? props.node.label() : props.node.label,\n ] as any)\n const lines =\n props.linesPath?.flatMap((state, index) =>\n state === 'none'\n ? []\n : [\n h('span', {\n key: index,\n 'aria-hidden': 'true',\n class: [classes.flatLine, state === 'closing' && classes.flatLineClosing],\n style: { '--flat-line-column': index + 2 },\n }),\n ],\n ) ?? []\n return h(\n 'div',\n {\n ...props.node.nodeProps,\n ref: element,\n class: classes.node,\n style: [\n {\n '--label-offset': `calc(var(--level-offset, var(--mantine-spacing-lg)) * ${props.level - 1})`,\n },\n props.style,\n ],\n role: 'treeitem',\n 'aria-selected': selected,\n 'aria-expanded': props.hasChildren ? props.expanded : undefined,\n 'data-value': props.node.value,\n 'data-selected': selected || undefined,\n 'data-level': props.level,\n tabindex: props.tabIndex,\n onKeydown,\n },\n [...lines, label as any],\n )\n }\n },\n})\n","import type { TreeNodeData } from '../Tree'\n\nexport function mergeAsyncChildren(\n data: TreeNodeData[],\n parentValue: string,\n children: TreeNodeData[],\n): TreeNodeData[] {\n let changed = false\n const result = data.map((node) => {\n if (node.value === parentValue) {\n changed = true\n const merged = { ...node, children }\n delete merged.hasChildren\n return merged\n }\n if (Array.isArray(node.children)) {\n const updated = mergeAsyncChildren(node.children, parentValue, children)\n if (updated !== node.children) {\n changed = true\n return { ...node, children: updated }\n }\n }\n return node\n })\n return changed ? result : data\n}\n","import { findTreeNode } from '../get-children-nodes-values/get-children-nodes-values'\nimport type { TreeNodeData } from '../Tree'\n\nexport type TreeDragDropPosition = 'before' | 'after' | 'inside'\nexport interface TreeDragDropPayload {\n draggedNode: string\n targetNode: string\n position: TreeDragDropPosition\n}\n\nfunction isDescendant(data: TreeNodeData[], ancestorValue: string, value: string): boolean {\n const ancestor = findTreeNode(ancestorValue, data)\n if (!ancestor?.children) return false\n return ancestor.children.some(\n (node) =>\n node.value === value || (node.children ? isDescendant([node], node.value, value) : false),\n )\n}\n\nfunction removeNode(\n data: TreeNodeData[],\n value: string,\n): { data: TreeNodeData[]; removed: TreeNodeData | null } {\n let removed: TreeNodeData | null = null\n const next = data.reduce<TreeNodeData[]>((acc, node) => {\n if (node.value === value) {\n removed = { ...node }\n } else if (node.children) {\n const result = removeNode(node.children, value)\n if (result.removed) {\n removed = result.removed\n acc.push({ ...node, children: result.data })\n } else acc.push(node)\n } else acc.push(node)\n return acc\n }, [])\n return { data: next, removed }\n}\n\nfunction insertNode(\n data: TreeNodeData[],\n node: TreeNodeData,\n target: string,\n position: TreeDragDropPosition,\n): TreeNodeData[] {\n if (position === 'inside') {\n return data.map((item) =>\n item.value === target\n ? { ...item, children: [...(item.children || []), node] }\n : item.children\n ? { ...item, children: insertNode(item.children, node, target, position) }\n : item,\n )\n }\n const index = data.findIndex((item) => item.value === target)\n if (index !== -1) {\n const result = [...data]\n result.splice(position === 'before' ? index : index + 1, 0, node)\n return result\n }\n return data.map((item) =>\n item.children ? { ...item, children: insertNode(item.children, node, target, position) } : item,\n )\n}\n\nexport function moveTreeNode(data: TreeNodeData[], payload: TreeDragDropPayload): TreeNodeData[] {\n const { draggedNode, targetNode, position } = payload\n if (\n draggedNode === targetNode ||\n !findTreeNode(targetNode, data) ||\n isDescendant(data, draggedNode, targetNode)\n )\n return data\n const removed = removeNode(data, draggedNode)\n return removed.removed ? insertNode(removed.data, removed.removed, targetNode, position) : data\n}\n","import type { TreeNodeData } from '../Tree'\n\nexport type TreeNodeFilter = (query: string, node: TreeNodeData) => boolean\n\nexport function defaultTreeNodeFilter(query: string, node: TreeNodeData): boolean {\n const label = typeof node.label === 'string' ? node.label : node.value\n return label.toLowerCase().includes(query.toLowerCase().trim())\n}\n\nexport function filterTreeData(\n data: TreeNodeData[],\n query: string,\n filter: TreeNodeFilter = defaultTreeNodeFilter,\n): TreeNodeData[] {\n if (!query.trim()) return data\n const result: TreeNodeData[] = []\n for (const node of data) {\n const children =\n Array.isArray(node.children) && node.children.length > 0\n ? filterTreeData(node.children, query, filter)\n : []\n if (filter(query, node) || children.length > 0) {\n result.push(children.length > 0 ? { ...node, children } : { ...node })\n }\n }\n return result\n}\n","import type { TreeNodeData } from '../Tree'\nimport type { TreeExpandedState } from '../use-tree'\n\nexport type FlatTreeLineState = 'continuing' | 'closing' | 'none'\nexport interface FlattenedTreeNodeData {\n node: TreeNodeData\n level: number\n parent: string | null\n hasChildren: boolean\n expanded: boolean\n linesPath: FlatTreeLineState[]\n}\n\nfunction flattenTo(\n acc: FlattenedTreeNodeData[],\n data: TreeNodeData[],\n state: TreeExpandedState,\n parent: string | null,\n level: number,\n ancestorIsLast: boolean[],\n) {\n data.forEach((node, index) => {\n const isLast = index === data.length - 1\n const loaded = Array.isArray(node.children)\n const hasChildren = loaded || (!!node.hasChildren && !loaded)\n const expanded = state[node.value] || false\n const linesPath: FlatTreeLineState[] = []\n for (let current = 2; current <= level; current += 1) {\n linesPath.push(\n current === level\n ? isLast\n ? 'closing'\n : 'continuing'\n : ancestorIsLast[current - 1]\n ? 'none'\n : 'continuing',\n )\n }\n acc.push({ node, level, parent, hasChildren, expanded, linesPath })\n if (expanded && loaded)\n flattenTo(acc, node.children!, state, node.value, level + 1, [...ancestorIsLast, isLast])\n })\n}\n\nexport function flattenTreeData(\n data: TreeNodeData[],\n expandedState: TreeExpandedState,\n): FlattenedTreeNodeData[] {\n const result: FlattenedTreeNodeData[] = []\n flattenTo(result, data, expandedState, null, 1, [])\n return result\n}\n","import { createSafeContext } from '../../core'\nexport interface ModalBaseContextValue {\n unstyled?: boolean\n titleMounted: boolean\n bodyMounted: boolean\n setTitleMounted: (value: boolean) => void\n setBodyMounted: (value: boolean) => void\n getTitleId: () => string\n getBodyId: () => string\n transitionProps?: Record<string, any>\n onExitTransitionEnd?: () => void\n onEnterTransitionEnd?: () => void\n zIndex?: string | number\n opened: boolean\n onClose: () => void\n closeOnEscape?: boolean\n trapFocus?: boolean\n closeOnClickOutside?: boolean\n}\nexport const [provideModalBaseContext, useModalBaseContext] =\n createSafeContext<ModalBaseContextValue>('ModalBase component was not found in tree')\n","import { onBeforeUnmount, watch, type MaybeRefOrGetter } from 'vue'\n\nconst LOCK_ATTR = 'data-scroll-locked'\nconst SCROLL_BAR_SIZE_VAR = '--removed-body-scroll-bar-size'\n\nlet passiveSupported = false\ntry {\n const opts = Object.defineProperty({}, 'passive', {\n get() {\n passiveSupported = true\n return true\n },\n })\n window.addEventListener('test', opts as any, opts as any)\n window.removeEventListener('test', opts as any, opts as any)\n} catch {}\nconst nonPassive: AddEventListenerOptions | boolean = passiveSupported ? { passive: false } : false\n\nfunction getLockCount(): number {\n const n = parseInt(document.body.getAttribute(LOCK_ATTR) ?? '0', 10)\n return isFinite(n) ? n : 0\n}\n\nfunction getScrollbarGap(): number {\n if (typeof window === 'undefined') return 0\n const cs = window.getComputedStyle(document.body)\n const left = parseInt(cs.marginLeft || '0', 10) || 0\n const right = parseInt(cs.marginRight || '0', 10) || 0\n return Math.max(0, window.innerWidth - document.documentElement.clientWidth + right - left)\n}\n\nlet styleEl: HTMLStyleElement | null = null\n\nfunction injectStyles(gap: number) {\n if (styleEl) return\n styleEl = document.createElement('style')\n styleEl.setAttribute('data-mantine-scroll-lock', '')\n styleEl.textContent = [\n `body[${LOCK_ATTR}] {`,\n ` overflow: hidden !important;`,\n ` overscroll-behavior: contain;`,\n ` position: relative !important;`,\n ` margin-right: ${gap}px !important;`,\n ` ${SCROLL_BAR_SIZE_VAR}: ${gap}px;`,\n `}`,\n ].join('\\n')\n document.head.appendChild(styleEl)\n}\n\nfunction removeStyles() {\n styleEl?.remove()\n styleEl = null\n}\n\nfunction preventZoom(event: WheelEvent | TouchEvent) {\n const isCtrlWheel = event instanceof WheelEvent && event.ctrlKey\n const isPinch = event instanceof TouchEvent && event.touches.length === 2\n if ((isCtrlWheel || isPinch) && event.cancelable) {\n event.preventDefault()\n }\n}\n\nfunction addZoomPrevention() {\n document.addEventListener('wheel', preventZoom as EventListener, nonPassive)\n document.addEventListener('touchmove', preventZoom as EventListener, nonPassive)\n}\n\nfunction removeZoomPrevention() {\n document.removeEventListener('wheel', preventZoom as EventListener)\n document.removeEventListener('touchmove', preventZoom as EventListener)\n}\n\nlet previousOverflow = ''\n\nexport function useLockScroll(opened: MaybeRefOrGetter<boolean>) {\n let locked = false\n\n const resolve = () =>\n typeof opened === 'function'\n ? opened()\n : typeof opened === 'object' && opened && 'value' in opened\n ? opened.value\n : opened\n\n const unlock = () => {\n if (!locked || typeof document === 'undefined') return\n locked = false\n\n const next = getLockCount() - 1\n if (next <= 0) {\n document.body.removeAttribute(LOCK_ATTR)\n document.body.style.overflow = previousOverflow\n removeStyles()\n removeZoomPrevention()\n } else {\n document.body.setAttribute(LOCK_ATTR, String(next))\n }\n }\n\n watch(\n resolve,\n (value) => {\n if (value && !locked && typeof document !== 'undefined') {\n const current = getLockCount()\n if (current === 0) {\n previousOverflow = document.body.style.overflow\n injectStyles(getScrollbarGap())\n addZoomPrevention()\n }\n document.body.setAttribute(LOCK_ATTR, String(current + 1))\n locked = true\n } else if (!value) {\n unlock()\n }\n },\n { immediate: true },\n )\n\n onBeforeUnmount(unlock)\n}\n","import { computed, ref } from 'vue'\nimport { useFocusReturn, useId, useWindowEvent } from '@mantine-vue/hooks'\n\nexport function useModal(input: {\n id?: string\n opened: () => boolean\n onClose: () => void\n trapFocus: () => boolean\n closeOnEscape: () => boolean\n returnFocus: () => boolean\n}) {\n const id = useId(input.id)\n const titleMounted = ref(false)\n const bodyMounted = ref(false)\n useWindowEvent(\n 'keydown',\n (event) => {\n const stopped =\n (event.target as HTMLElement)?.getAttribute?.('data-mantine-stop-propagation') === 'true'\n if (\n event.key === 'Escape' &&\n !event.isComposing &&\n input.opened() &&\n input.closeOnEscape() &&\n !stopped\n )\n input.onClose()\n },\n { capture: true },\n )\n useFocusReturn({\n opened: input.opened,\n shouldReturnFocus: () => input.trapFocus() && input.returnFocus(),\n })\n return { id: computed(() => id.value), titleMounted, bodyMounted }\n}\n","import { computed, defineComponent, h, type PropType } from 'vue'\nimport { useId } from '@mantine-vue/hooks'\nimport { withBoxProps, Box, getDefaultZIndex, getShadow, getSpacing } from '../../core'\nimport { OptionalPortal } from '../Portal'\nimport { provideModalBaseContext } from './ModalBase.context'\nimport { useLockScroll } from './use-lock-scroll'\nimport { useModal } from './use-modal'\n\nexport interface ModalBaseProps {\n opened: boolean\n onClose: () => void\n id?: string\n keepMounted?: boolean\n lockScroll?: boolean\n trapFocus?: boolean\n withinPortal?: boolean\n portalProps?: Record<string, any>\n closeOnClickOutside?: boolean\n transitionProps?: Record<string, any>\n onExitTransitionEnd?: () => void\n onEnterTransitionEnd?: () => void\n closeOnEscape?: boolean\n returnFocus?: boolean\n zIndex?: string | number\n shadow?: string\n padding?: string | number\n unstyled?: boolean\n}\nexport const ModalBase = withBoxProps(\n defineComponent({\n name: 'ModalBase',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, required: true },\n onClose: { type: Function as PropType<() => void>, required: true },\n id: String,\n keepMounted: { type: Boolean, default: false },\n lockScroll: { type: Boolean, default: true },\n trapFocus: { type: Boolean, default: true },\n withinPortal: { type: Boolean, default: true },\n portalProps: { type: Object, default: undefined },\n closeOnClickOutside: { type: Boolean, default: true },\n transitionProps: { type: Object, default: undefined },\n onExitTransitionEnd: { type: Function as PropType<() => void>, default: undefined },\n onEnterTransitionEnd: { type: Function as PropType<() => void>, default: undefined },\n closeOnEscape: { type: Boolean, default: true },\n returnFocus: { type: Boolean, default: true },\n zIndex: { type: [String, Number], default: undefined },\n shadow: { type: String, default: 'xl' },\n padding: { type: [String, Number], default: 'md' },\n unstyled: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const fallbackId = useId(props.id)\n const modal = useModal({\n id: props.id,\n opened: () => props.opened,\n onClose: props.onClose,\n trapFocus: () => props.trapFocus,\n closeOnEscape: () => props.closeOnEscape,\n returnFocus: () => props.returnFocus,\n })\n useLockScroll(computed(() => props.opened && props.lockScroll))\n provideModalBaseContext({\n get unstyled() {\n return props.unstyled\n },\n get titleMounted() {\n return modal.titleMounted.value\n },\n get bodyMounted() {\n return modal.bodyMounted.value\n },\n setTitleMounted: (value) => {\n modal.titleMounted.value = value\n },\n setBodyMounted: (value) => {\n modal.bodyMounted.value = value\n },\n getTitleId: () => `${modal.id.value || fallbackId.value}-title`,\n getBodyId: () => `${modal.id.value || fallbackId.value}-body`,\n get transitionProps() {\n return { ...props.transitionProps, keepMounted: props.keepMounted }\n },\n get onExitTransitionEnd() {\n return props.onExitTransitionEnd\n },\n get onEnterTransitionEnd() {\n return props.onEnterTransitionEnd\n },\n get zIndex() {\n return props.zIndex\n },\n get opened() {\n return props.opened\n },\n onClose: props.onClose,\n get closeOnEscape() {\n return props.closeOnEscape\n },\n get trapFocus() {\n return props.trapFocus\n },\n get closeOnClickOutside() {\n return props.closeOnClickOutside\n },\n })\n return () =>\n h(OptionalPortal, { withinPortal: props.withinPortal, ...props.portalProps }, () =>\n h(\n Box,\n {\n ...attrs,\n id: modal.id.value || fallbackId.value,\n style: [\n {\n '--mb-z-index': String(props.zIndex ?? getDefaultZIndex('modal')),\n '--mb-shadow': getShadow(props.shadow),\n '--mb-padding': getSpacing(props.padding),\n },\n attrs.style,\n ],\n },\n () => slots.default?.(),\n ),\n )\n },\n }),\n)\n","import { onBeforeUnmount, onMounted } from 'vue'\nimport { useModalBaseContext } from './ModalBase.context'\nexport function useModalBodyId() {\n const ctx = useModalBaseContext()\n onMounted(() => ctx.setBodyMounted(true))\n onBeforeUnmount(() => ctx.setBodyMounted(false))\n return ctx.getBodyId\n}\n",".title {\n line-height: 1;\n padding: 0;\n margin: 0;\n font-weight: var(--mantine-font-weight-regular);\n font-size: var(--mantine-font-size-md);\n}\n\n.header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--mb-padding, var(--mantine-spacing-md));\n padding-inline-end: calc(var(--mb-padding, var(--mantine-spacing-md)) - rem(5px));\n position: sticky;\n top: 0;\n background-color: var(--mantine-color-body);\n z-index: 1000;\n min-height: 60px;\n transition: padding-inline-end 100ms;\n}\n\n.inner {\n position: fixed;\n width: 100%;\n top: 0;\n bottom: 0;\n z-index: var(--mb-z-index);\n pointer-events: none;\n}\n\n.content {\n pointer-events: all;\n box-shadow: var(--mb-shadow, var(--mantine-shadow-xl));\n\n & [data-mantine-scrollbar] {\n z-index: 1001;\n }\n\n [data-offset-scrollbars] &:has([data-mantine-scrollbar]) .header {\n padding-inline-end: calc(var(--mb-padding, var(--mantine-spacing-md)) + rem(5px));\n }\n}\n\n.close {\n margin-inline-start: auto;\n}\n\n.body {\n padding: var(--mb-padding, var(--mantine-spacing-md));\n padding-top: var(--mb-padding, var(--mantine-spacing-md));\n\n &:where(:not(:only-child)) {\n padding-top: 0;\n }\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box } from '../../core'\nimport { useModalBaseContext } from './ModalBase.context'\nimport { useModalBodyId } from './use-modal-body-id'\nimport classes from './ModalBase.module.css'\nexport const ModalBaseBody = withBoxProps(\n defineComponent({\n name: 'ModalBaseBody',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useModalBaseContext()\n const id = useModalBodyId()\n return () =>\n h(Box, { ...attrs, id: id(), class: [!ctx.unstyled && classes.body, attrs.class] }, () =>\n slots.default?.(),\n )\n },\n }),\n)\nexport interface ModalBaseBodyProps {\n [key: string]: any\n}\n","import { defineComponent, h } from 'vue'\nimport { CloseButton } from '../CloseButton'\nimport { useModalBaseContext } from './ModalBase.context'\nimport classes from './ModalBase.module.css'\nexport const ModalBaseCloseButton = defineComponent({\n name: 'ModalBaseCloseButton',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useModalBaseContext()\n return () =>\n h(\n CloseButton,\n {\n ...attrs,\n class: [!ctx.unstyled && classes.close, attrs.class],\n unstyled: ctx.unstyled,\n onClick: (event: MouseEvent) => {\n ctx.onClose()\n ;(attrs.onClick as any)?.(event)\n },\n },\n slots,\n )\n },\n})\nexport interface ModalBaseCloseButtonProps {\n [key: string]: any\n}\n","import { withBoxProps } from '../../core'\nimport { defineComponent, h } from 'vue'\nimport { FocusTrap } from '../FocusTrap'\nimport { Paper } from '../Paper'\nimport { Transition } from '../Transition'\nimport { useModalBaseContext } from './ModalBase.context'\nimport classes from './ModalBase.module.css'\nexport const ModalBaseContent = withBoxProps(\n defineComponent({\n name: 'ModalBaseContent',\n inheritAttrs: false,\n props: {\n transitionProps: { type: Object, default: undefined },\n innerProps: { type: Object, default: () => ({}) },\n },\n setup(props, { attrs, slots }) {\n const ctx = useModalBaseContext()\n\n return () =>\n h(\n Transition,\n {\n mounted: ctx.opened,\n transition: 'pop',\n ...ctx.transitionProps,\n ...props.transitionProps,\n onExited: () => {\n ctx.onExitTransitionEnd?.()\n ;(ctx.transitionProps as any)?.onExited?.()\n },\n onEntered: () => {\n ctx.onEnterTransitionEnd?.()\n ;(ctx.transitionProps as any)?.onEntered?.()\n },\n },\n {\n default: (transitionStyle: any) =>\n h(\n 'div',\n {\n ...props.innerProps,\n class: [!ctx.unstyled && classes.inner, props.innerProps.class],\n },\n [\n h(\n FocusTrap,\n { active: ctx.opened && ctx.trapFocus },\n {\n default: () =>\n h(\n Paper,\n {\n ...attrs,\n component: 'section',\n role: 'dialog',\n tabindex: -1,\n 'aria-modal': 'true',\n 'aria-describedby': ctx.bodyMounted ? ctx.getBodyId() : undefined,\n 'aria-labelledby': ctx.titleMounted ? ctx.getTitleId() : undefined,\n style: [attrs.style, transitionStyle],\n class: [!ctx.unstyled && classes.content, attrs.class],\n unstyled: ctx.unstyled,\n },\n () => slots.default?.(),\n ),\n },\n ),\n ],\n ),\n },\n )\n },\n }),\n)\nexport interface ModalBaseContentProps {\n transitionProps?: Record<string, any>\n innerProps?: Record<string, any>\n [key: string]: any\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box } from '../../core'\nimport { useModalBaseContext } from './ModalBase.context'\nimport classes from './ModalBase.module.css'\nexport const ModalBaseHeader = withBoxProps(\n defineComponent({\n name: 'ModalBaseHeader',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useModalBaseContext()\n return () =>\n h(\n Box,\n { ...attrs, component: 'header', class: [!ctx.unstyled && classes.header, attrs.class] },\n () => slots.default?.(),\n )\n },\n }),\n)\nexport interface ModalBaseHeaderProps {\n [key: string]: any\n}\n","import { useModalBaseContext } from './ModalBase.context'\nexport function useModalTransition(override?: Record<string, any>) {\n const ctx = useModalBaseContext()\n return {\n duration: 200,\n timingFunction: 'ease',\n transition: 'fade',\n ...ctx.transitionProps,\n ...override,\n }\n}\n","import { defineComponent, h } from 'vue'\nimport { Overlay } from '../Overlay'\nimport { Transition } from '../Transition'\nimport { useModalBaseContext } from './ModalBase.context'\nimport { useModalTransition } from './use-modal-transition'\nexport const ModalBaseOverlay = defineComponent({\n name: 'ModalBaseOverlay',\n inheritAttrs: false,\n props: {\n visible: { type: Boolean, default: undefined },\n transitionProps: { type: Object, default: undefined },\n },\n setup(props, { attrs }) {\n const ctx = useModalBaseContext()\n const transition = useModalTransition(props.transitionProps)\n return () =>\n h(\n Transition,\n { mounted: props.visible ?? ctx.opened, ...transition, transition: 'fade' },\n {\n default: (styles: any) =>\n h(Overlay, {\n ...attrs,\n fixed: true,\n style: [attrs.style, styles],\n zIndex: ctx.zIndex,\n unstyled: ctx.unstyled,\n onClick: (event: MouseEvent) => {\n ;(attrs.onClick as any)?.(event)\n if (ctx.closeOnClickOutside) ctx.onClose()\n },\n }),\n },\n )\n },\n})\nexport interface ModalBaseOverlayProps {\n visible?: boolean\n transitionProps?: Record<string, any>\n [key: string]: any\n}\n","import { onBeforeUnmount, onMounted } from 'vue'\nimport { useModalBaseContext } from './ModalBase.context'\nexport function useModalTitle() {\n const ctx = useModalBaseContext()\n onMounted(() => ctx.setTitleMounted(true))\n onBeforeUnmount(() => ctx.setTitleMounted(false))\n return ctx.getTitleId\n}\n","import { defineComponent, h } from 'vue'\nimport { withBoxProps, Box } from '../../core'\nimport { useModalBaseContext } from './ModalBase.context'\nimport { useModalTitle } from './use-modal-title-id'\nimport classes from './ModalBase.module.css'\nexport const ModalBaseTitle = withBoxProps(\n defineComponent({\n name: 'ModalBaseTitle',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useModalBaseContext()\n const id = useModalTitle()\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'h2',\n id: id(),\n class: [!ctx.unstyled && classes.title, attrs.class],\n },\n () => slots.default?.(),\n )\n },\n }),\n)\nexport interface ModalBaseTitleProps {\n [key: string]: any\n}\n","import { defineComponent } from 'vue'\nexport const NativeScrollArea = defineComponent({\n name: 'NativeScrollArea',\n setup(_, { slots }) {\n return () => slots.default?.()\n },\n})\n",".root {\n --modal-size-xs: 320px;\n --modal-size-sm: 380px;\n --modal-size-md: 440px;\n --modal-size-lg: 620px;\n --modal-size-xl: 780px;\n --modal-size: var(--modal-size-md);\n\n --modal-y-offset: 5dvh;\n --modal-x-offset: 5vw;\n\n &[data-full-screen] {\n --modal-border-radius: 0 !important;\n\n .content {\n --modal-content-flex: 0 0 100%;\n --modal-content-max-height: auto;\n --modal-content-height: 100dvh;\n }\n\n .inner {\n --modal-inner-y-offset: 0;\n --modal-inner-x-offset: 0;\n }\n }\n\n &[data-centered] {\n .inner {\n --modal-inner-align: center;\n }\n }\n}\n\n.header {\n border-start-start-radius: var(--modal-radius, var(--mantine-radius-default));\n border-start-end-radius: var(--modal-radius, var(--mantine-radius-default));\n}\n\n.content {\n flex: var(--modal-content-flex, 0 0 var(--modal-size));\n max-width: 100%;\n max-height: var(--modal-content-max-height, calc(100dvh - var(--modal-y-offset) * 2));\n height: var(--modal-content-height, auto);\n overflow-y: auto;\n\n &[data-full-screen] {\n border-radius: 0;\n }\n\n &[data-hidden] {\n opacity: 0 !important;\n pointer-events: none;\n }\n}\n\n.inner {\n display: flex;\n justify-content: center;\n align-items: var(--modal-inner-align, flex-start);\n padding-top: var(--modal-inner-y-offset, var(--modal-y-offset));\n padding-bottom: var(--modal-inner-y-offset, var(--modal-y-offset));\n padding-inline: var(--modal-inner-x-offset, var(--modal-x-offset));\n}\n","import { defineComponent, h, type PropType, type VNodeChild } from 'vue'\nimport { createSafeContext, createVarsResolver, getSize, rem, useStyles } from '../../core'\nimport {\n ModalBase,\n ModalBaseBody,\n ModalBaseCloseButton,\n ModalBaseContent,\n ModalBaseHeader,\n ModalBaseOverlay,\n ModalBaseTitle,\n type ModalBaseProps,\n} from '../ModalBase'\nimport classes from './Modal.module.css'\n\nexport interface ModalProps extends ModalBaseProps {\n title?: VNodeChild | (() => VNodeChild)\n withOverlay?: boolean\n overlayProps?: Record<string, any>\n withCloseButton?: boolean\n closeButtonProps?: Record<string, any>\n centered?: boolean\n fullScreen?: boolean\n radius?: string | number\n xOffset?: string | number\n yOffset?: string | number\n size?: string | number\n scrollAreaComponent?: any\n classNames?: any\n styles?: any\n vars?: any\n}\nconst [provideModalContext, useModalContext] = createSafeContext<{\n getStyles: any\n fullScreen: boolean\n yOffset?: string | number\n scrollAreaComponent?: any\n}>('Modal component was not found in tree')\nconst varsResolver = createVarsResolver<any>((_, props) => ({\n root: {\n '--modal-size': getSize(props.size, 'modal-size'),\n '--modal-radius': props.radius == null ? undefined : rem(props.radius),\n '--modal-y-offset': rem(props.yOffset),\n '--modal-x-offset': rem(props.xOffset),\n },\n}))\n\nexport const ModalRoot = defineComponent({\n name: 'ModalRoot',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, required: true },\n onClose: { type: Function as PropType<() => void>, required: true },\n centered: Boolean,\n fullScreen: Boolean,\n radius: [String, Number],\n xOffset: { type: [String, Number], default: '5vw' },\n yOffset: { type: [String, Number], default: '5dvh' },\n size: { type: [String, Number], default: 'md' },\n scrollAreaComponent: { type: [Object, Function], default: undefined },\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: Boolean,\n },\n setup(props, { attrs, slots }) {\n const getStyles = useStyles({\n name: 'Modal',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n provideModalContext({\n getStyles,\n get fullScreen() {\n return props.fullScreen\n },\n get yOffset() {\n return props.yOffset\n },\n get scrollAreaComponent() {\n return props.scrollAreaComponent\n },\n })\n return () =>\n h(\n ModalBase,\n {\n ...attrs,\n opened: props.opened,\n onClose: props.onClose,\n unstyled: props.unstyled,\n ...getStyles('root'),\n mod: { centered: props.centered, 'full-screen': props.fullScreen },\n },\n slots,\n )\n },\n})\n\nfunction compound(\n name: string,\n Base: any,\n selector: string,\n extra?: (ctx: any) => Record<string, any>,\n) {\n return defineComponent({\n name,\n inheritAttrs: false,\n props: {\n visible: { type: Boolean, default: undefined },\n transitionProps: Object,\n __hidden: Boolean,\n },\n setup(props, { attrs, slots }) {\n const ctx = useModalContext()\n return () =>\n h(\n Base,\n {\n ...attrs,\n ...props,\n ...ctx.getStyles(selector, { className: attrs.class, style: attrs.style }),\n ...extra?.(ctx),\n },\n slots,\n )\n },\n })\n}\nexport const ModalBody = compound('ModalBody', ModalBaseBody, 'body')\nexport const ModalCloseButton = compound('ModalCloseButton', ModalBaseCloseButton, 'close')\nexport const ModalHeader = compound('ModalHeader', ModalBaseHeader, 'header')\nexport const ModalOverlay = compound('ModalOverlay', ModalBaseOverlay, 'overlay')\nexport const ModalTitle = compound('ModalTitle', ModalBaseTitle, 'title')\nexport const ModalContent = compound('ModalContent', ModalBaseContent, 'content', (ctx) => ({\n innerProps: ctx.getStyles('inner'),\n}))\n\nconst ModalBaseComponent = defineComponent({\n name: 'Modal',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, required: true },\n onClose: { type: Function as PropType<() => void>, required: true },\n title: { type: [String, Object, Function] as PropType<any>, default: undefined },\n withOverlay: { type: Boolean, default: true },\n overlayProps: Object,\n withCloseButton: { type: Boolean, default: true },\n closeButtonProps: Object,\n },\n setup(props, { attrs, slots }) {\n return () => {\n const title = typeof props.title === 'function' ? props.title() : props.title\n const header = title != null || props.withCloseButton\n return h(\n ModalRoot,\n { ...attrs, opened: props.opened, onClose: props.onClose },\n {\n default: () => [\n props.withOverlay && h(ModalOverlay, props.overlayProps),\n h(ModalContent, null, {\n default: () => [\n header &&\n h(ModalHeader, null, {\n default: () => [\n title != null && h(ModalTitle, null, { default: () => title as any }),\n props.withCloseButton && h(ModalCloseButton, props.closeButtonProps),\n ],\n }),\n h(ModalBody, null, slots),\n ],\n }),\n ],\n },\n )\n }\n },\n})\nexport const Modal = Object.assign(ModalBaseComponent, {\n classes,\n varsResolver,\n Root: ModalRoot,\n Overlay: ModalOverlay,\n Content: ModalContent,\n Body: ModalBody,\n Header: ModalHeader,\n Title: ModalTitle,\n CloseButton: ModalCloseButton,\n})\nexport type ModalStylesNames =\n | 'root'\n | 'body'\n | 'close'\n | 'content'\n | 'header'\n | 'inner'\n | 'overlay'\n | 'title'\nexport type ModalCssVariables = any\nexport type ModalFactory = any\n",".root {\n --drawer-size-xs: 320px;\n --drawer-size-sm: 380px;\n --drawer-size-md: 440px;\n --drawer-size-lg: 620px;\n --drawer-size-xl: 780px;\n --drawer-size: var(--drawer-size-md);\n --drawer-offset: 0rem;\n}\n\n.header {\n z-index: 1000;\n}\n\n.content {\n flex: var(--drawer-flex, 0 0 var(--drawer-size));\n height: var(--drawer-height, calc(100% - var(--drawer-offset) * 2));\n margin: var(--drawer-offset);\n max-width: calc(100% - var(--drawer-offset) * 2);\n max-height: calc(100% - var(--drawer-offset) * 2);\n overflow-y: auto;\n\n &[data-hidden] {\n opacity: 0 !important;\n pointer-events: none;\n }\n}\n\n.inner {\n display: flex;\n justify-content: var(--drawer-justify, flex-start);\n align-items: var(--drawer-align, flex-start);\n}\n","import {\n computed,\n defineComponent,\n h,\n inject,\n provide,\n reactive,\n ref,\n type InjectionKey,\n type PropType,\n type VNodeChild,\n watch,\n} from 'vue'\nimport {\n createSafeContext,\n createVarsResolver,\n getDefaultZIndex,\n getSize,\n rem,\n useDirection,\n useStyles,\n} from '../../core'\nimport {\n ModalBase,\n ModalBaseBody,\n ModalBaseCloseButton,\n ModalBaseContent,\n ModalBaseHeader,\n ModalBaseOverlay,\n ModalBaseTitle,\n type ModalBaseProps,\n} from '../ModalBase'\nimport classes from './Drawer.module.css'\n\nexport type DrawerPosition = 'top' | 'bottom' | 'left' | 'right'\nexport interface DrawerProps extends ModalBaseProps {\n title?: VNodeChild | (() => VNodeChild)\n withOverlay?: boolean\n overlayProps?: Record<string, any>\n withCloseButton?: boolean\n closeButtonProps?: Record<string, any>\n position?: DrawerPosition\n radius?: string | number\n offset?: string | number\n size?: string | number\n scrollAreaComponent?: any\n stackId?: string\n classNames?: any\n styles?: any\n vars?: any\n}\n\nconst [provideDrawerContext, useDrawerContext] = createSafeContext<{\n getStyles: any\n radius?: string | number\n scrollAreaComponent?: any\n}>('Drawer component was not found in tree')\n\nexport interface DrawerStackContextValue {\n stack: string[]\n addModal: (id: string, zIndex: string | number) => void\n removeModal: (id: string) => void\n getZIndex: (id: string) => string\n currentId: string\n maxZIndex: string | number\n}\n\nconst DrawerStackContextKey: InjectionKey<DrawerStackContextValue> = Symbol('DrawerStackContext')\n\nfunction useDrawerStackContext(): DrawerStackContextValue | null {\n return inject(DrawerStackContextKey, null)\n}\n\nexport const DrawerStack = defineComponent({\n name: 'DrawerStack',\n setup(_, { slots }) {\n const stack = ref<string[]>([])\n const maxZIndex = ref<string | number>(getDefaultZIndex('modal'))\n\n const ctx: DrawerStackContextValue = reactive({\n get stack() {\n return stack.value\n },\n addModal(id: string, zIndex: string | number) {\n stack.value = [...new Set([...stack.value, id])]\n if (typeof zIndex === 'number' && typeof maxZIndex.value === 'number') {\n maxZIndex.value = Math.max(maxZIndex.value, zIndex)\n }\n },\n removeModal(id: string) {\n stack.value = stack.value.filter((currentId) => currentId !== id)\n },\n getZIndex(id: string) {\n return `calc(${maxZIndex.value} + ${stack.value.indexOf(id)} + 1)`\n },\n get currentId() {\n return stack.value[stack.value.length - 1] ?? ''\n },\n get maxZIndex() {\n return maxZIndex.value\n },\n })\n\n provide(DrawerStackContextKey, ctx)\n\n return () => slots.default?.()\n },\n})\n\nexport interface UseDrawersStackReturnType<T extends string> {\n state: Record<T, boolean>\n open: (id: T) => void\n close: (id: T) => void\n toggle: (id: T) => void\n closeAll: () => void\n register: (id: T) => { opened: boolean; onClose: () => void; stackId: T }\n}\n\nexport function useDrawersStack<const T extends string>(\n drawers: T[],\n): UseDrawersStackReturnType<T> {\n const state = reactive(\n drawers.reduce((acc, id) => ({ ...acc, [id]: false }), {} as Record<T, boolean>),\n ) as Record<T, boolean>\n\n function open(id: T) {\n state[id] = true\n }\n\n function close(id: T) {\n state[id] = false\n }\n\n function toggle(id: T) {\n state[id] = !state[id]\n }\n\n function closeAll() {\n drawers.forEach((id) => {\n state[id] = false\n })\n }\n\n function register(id: T) {\n return {\n opened: state[id],\n onClose: () => close(id),\n stackId: id,\n }\n }\n\n return { state, open, close, toggle, closeAll, register }\n}\n\nconst varsResolver = createVarsResolver<any>((_, props) => ({\n root: {\n '--drawer-size': getSize(props.size, 'drawer-size'),\n '--drawer-flex':\n props.position === 'top' || props.position === 'bottom'\n ? '0 0 calc(100% - var(--drawer-offset) * 2)'\n : undefined,\n '--drawer-height':\n props.position === 'left' || props.position === 'right' ? undefined : 'var(--drawer-size)',\n '--drawer-align':\n props.position === 'top'\n ? 'flex-start'\n : props.position === 'bottom'\n ? 'flex-end'\n : undefined,\n '--drawer-justify': props.position === 'right' ? 'flex-end' : undefined,\n '--drawer-offset': rem(props.offset),\n },\n}))\n\nconst transitions: Record<DrawerPosition, string> = {\n top: 'slide-down',\n bottom: 'slide-up',\n left: 'slide-right',\n right: 'slide-left',\n}\nconst rtlTransitions: Record<DrawerPosition, string> = {\n top: 'slide-down',\n bottom: 'slide-up',\n left: 'slide-left',\n right: 'slide-right',\n}\n\nexport const DrawerRoot = defineComponent({\n name: 'DrawerRoot',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, required: true },\n onClose: { type: Function as PropType<() => void>, required: true },\n position: { type: String as PropType<DrawerPosition>, default: 'left' },\n radius: [String, Number],\n offset: { type: [String, Number], default: 0 },\n size: { type: [String, Number], default: 'md' },\n scrollAreaComponent: { type: [Object, Function], default: undefined },\n transitionProps: Object,\n classNames: { type: [Object, Function], default: undefined },\n styles: { type: [Object, Function], default: undefined },\n vars: { type: [Object, Function], default: undefined },\n unstyled: Boolean,\n },\n setup(props, { attrs, slots }) {\n const { dir } = useDirection()\n const getStyles = useStyles({\n name: 'Drawer',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n varsResolver,\n unstyled: props.unstyled,\n })\n provideDrawerContext({\n getStyles,\n get radius() {\n return props.radius\n },\n get scrollAreaComponent() {\n return props.scrollAreaComponent\n },\n })\n return () =>\n h(\n ModalBase,\n {\n ...attrs,\n opened: props.opened,\n onClose: props.onClose,\n unstyled: props.unstyled,\n ...getStyles('root'),\n transitionProps: {\n transition: (dir.value === 'rtl' ? rtlTransitions : transitions)[props.position],\n ...props.transitionProps,\n },\n 'data-position': props.position,\n },\n slots,\n )\n },\n})\n\nfunction compound(\n name: string,\n Base: any,\n selector: string,\n extra?: (ctx: any) => Record<string, any>,\n) {\n return defineComponent({\n name,\n inheritAttrs: false,\n props: {\n visible: { type: Boolean, default: undefined },\n transitionProps: Object,\n __hidden: Boolean,\n },\n setup(props, { attrs, slots }) {\n const ctx = useDrawerContext()\n return () =>\n h(\n Base,\n {\n ...attrs,\n ...props,\n ...ctx.getStyles(selector, { className: attrs.class, style: attrs.style }),\n ...extra?.(ctx),\n },\n slots,\n )\n },\n })\n}\n\nexport const DrawerBody = compound('DrawerBody', ModalBaseBody, 'body')\nexport const DrawerCloseButton = compound('DrawerCloseButton', ModalBaseCloseButton, 'close')\nexport const DrawerHeader = compound('DrawerHeader', ModalBaseHeader, 'header')\nexport const DrawerOverlay = compound('DrawerOverlay', ModalBaseOverlay, 'overlay')\nexport const DrawerTitle = compound('DrawerTitle', ModalBaseTitle, 'title')\nexport const DrawerContent = compound('DrawerContent', ModalBaseContent, 'content', (ctx) => ({\n innerProps: ctx.getStyles('inner'),\n radius: ctx.radius ?? 0,\n}))\n\nconst DrawerBaseComponent = defineComponent({\n name: 'Drawer',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, required: true },\n onClose: { type: Function as PropType<() => void>, required: true },\n title: { type: [String, Object, Function] as PropType<any>, default: undefined },\n withOverlay: { type: Boolean, default: true },\n overlayProps: Object,\n withCloseButton: { type: Boolean, default: true },\n closeButtonProps: Object,\n stackId: { type: String, default: undefined },\n zIndex: { type: [String, Number], default: undefined },\n },\n setup(props, { attrs, slots }) {\n const stackCtx = useDrawerStackContext()\n\n // Register/deregister with the stack when opened changes\n watch(\n () => props.opened,\n (opened) => {\n if (stackCtx && props.stackId) {\n if (opened) {\n stackCtx.addModal(\n props.stackId,\n typeof props.zIndex === 'number' ? props.zIndex : getDefaultZIndex('modal'),\n )\n } else {\n stackCtx.removeModal(props.stackId)\n }\n }\n },\n { immediate: true },\n )\n\n const resolvedZIndex = computed(() => {\n if (stackCtx && props.stackId) return stackCtx.getZIndex(props.stackId)\n return props.zIndex\n })\n\n const stackProps = computed(() => {\n if (!stackCtx || !props.stackId) return {}\n const isCurrent = stackCtx.currentId === props.stackId\n return {\n closeOnEscape: isCurrent,\n trapFocus: isCurrent,\n }\n })\n\n const overlayVisible = computed(() => {\n if (!props.withOverlay) return false\n if (stackCtx && props.stackId) return stackCtx.currentId === props.stackId\n return props.opened\n })\n\n const contentHidden = computed(() => {\n if (stackCtx && props.stackId && props.opened) {\n return props.stackId !== stackCtx.currentId\n }\n return false\n })\n\n return () => {\n const title = typeof props.title === 'function' ? props.title() : props.title\n const header = title != null || props.withCloseButton\n\n return h(\n DrawerRoot,\n {\n ...attrs,\n opened: props.opened,\n onClose: props.onClose,\n zIndex: resolvedZIndex.value,\n ...stackProps.value,\n },\n {\n default: () => [\n props.withOverlay &&\n h(DrawerOverlay, {\n visible: overlayVisible.value,\n transitionProps: stackCtx && props.stackId ? { duration: 0 } : undefined,\n ...props.overlayProps,\n }),\n h(\n DrawerContent,\n { __hidden: contentHidden.value },\n {\n default: () => [\n header &&\n h(DrawerHeader, null, {\n default: () => [\n title != null && h(DrawerTitle, null, { default: () => title as any }),\n props.withCloseButton && h(DrawerCloseButton, props.closeButtonProps),\n ],\n }),\n h(DrawerBody, null, slots),\n ],\n },\n ),\n ],\n },\n )\n }\n },\n})\n\nexport const Drawer = Object.assign(DrawerBaseComponent, {\n classes,\n varsResolver,\n Root: DrawerRoot,\n Overlay: DrawerOverlay,\n Content: DrawerContent,\n Body: DrawerBody,\n Header: DrawerHeader,\n Title: DrawerTitle,\n CloseButton: DrawerCloseButton,\n Stack: DrawerStack,\n})\n\nexport type DrawerStylesNames =\n | 'root'\n | 'body'\n | 'close'\n | 'content'\n | 'header'\n | 'inner'\n | 'overlay'\n | 'title'\nexport type DrawerCssVariables = any\nexport type DrawerFactory = any\n","import type { CSSProperties } from 'vue'\nimport type { ArrowPosition, FloatingPlacement, FloatingPosition, FloatingSide } from '../types'\n\nfunction horizontalSide(\n placement: FloatingPlacement | 'center',\n arrowY: number | undefined,\n offset: number,\n position: ArrowPosition,\n) {\n if (placement === 'center' || position === 'center') return { top: arrowY }\n return placement === 'end' ? { bottom: offset } : { top: offset }\n}\nfunction verticalSide(\n placement: FloatingPlacement | 'center',\n arrowX: number | undefined,\n offset: number,\n position: ArrowPosition,\n dir: 'rtl' | 'ltr',\n) {\n if (placement === 'center' || position === 'center') return { left: arrowX }\n if (placement === 'end') return { [dir === 'ltr' ? 'right' : 'left']: offset }\n return { [dir === 'ltr' ? 'left' : 'right']: offset }\n}\nconst radiusBySide: Record<FloatingSide, keyof CSSProperties> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n}\nfunction mergeStyles(\n position: FloatingPosition,\n size: number,\n dir: 'rtl' | 'ltr',\n): CSSProperties | undefined {\n const [side, placement] = position.split('-') as [FloatingSide, FloatingPlacement?]\n if (!placement) return undefined\n const base: CSSProperties = { width: `${size}px`, height: `${size}px`, position: 'absolute' }\n if (side === 'bottom' || side === 'top') {\n const physical =\n placement === 'start' ? (dir === 'ltr' ? 'left' : 'right') : dir === 'ltr' ? 'right' : 'left'\n const startShape = (placement === 'start') !== (dir === 'rtl')\n return {\n ...base,\n [side === 'bottom' ? 'top' : 'bottom']: -size,\n [physical]: 0,\n clipPath:\n side === 'bottom'\n ? startShape\n ? 'polygon(0% 0%, 0% 100%, 100% 100%)'\n : 'polygon(100% 0%, 0% 100%, 100% 100%)'\n : startShape\n ? 'polygon(0% 0%, 100% 0%, 0% 100%)'\n : 'polygon(0% 0%, 100% 0%, 100% 100%)',\n }\n }\n return {\n ...base,\n [side === 'left' ? 'right' : 'left']: -size,\n [placement === 'start' ? 'top' : 'bottom']: 0,\n clipPath:\n side === 'left'\n ? placement === 'start'\n ? 'polygon(0% 0%, 100% 0%, 0% 100%)'\n : 'polygon(0% 0%, 0% 100%, 100% 100%)'\n : placement === 'start'\n ? 'polygon(0% 0%, 100% 0%, 100% 100%)'\n : 'polygon(100% 0%, 0% 100%, 100% 100%)',\n }\n}\n\nexport function getArrowPositionStyles(input: {\n position: FloatingPosition\n arrowSize: number\n arrowOffset: number\n arrowRadius: number\n arrowPosition: ArrowPosition\n arrowX?: number\n arrowY?: number\n dir: 'rtl' | 'ltr'\n}): CSSProperties {\n if (input.arrowPosition === 'merge') {\n const merged = mergeStyles(input.position, input.arrowSize, input.dir)\n if (merged) return merged\n }\n const [side, placement = 'center'] = input.position.split('-') as [\n FloatingSide,\n FloatingPlacement | 'center',\n ]\n const base: CSSProperties = {\n width: `${input.arrowSize}px`,\n height: `${input.arrowSize}px`,\n transform: 'rotate(45deg)',\n position: 'absolute',\n [radiusBySide[side]]: `${input.arrowRadius}px`,\n }\n const edge = -input.arrowSize / 2\n if (side === 'left')\n return {\n ...base,\n ...horizontalSide(placement, input.arrowY, input.arrowOffset, input.arrowPosition),\n right: edge,\n borderLeftColor: 'transparent',\n borderBottomColor: 'transparent',\n clipPath: 'polygon(100% 0, 0 0, 100% 100%)',\n }\n if (side === 'right')\n return {\n ...base,\n ...horizontalSide(placement, input.arrowY, input.arrowOffset, input.arrowPosition),\n left: edge,\n borderRightColor: 'transparent',\n borderTopColor: 'transparent',\n clipPath: 'polygon(0 100%, 0 0, 100% 100%)',\n }\n if (side === 'top')\n return {\n ...base,\n ...verticalSide(placement, input.arrowX, input.arrowOffset, input.arrowPosition, input.dir),\n bottom: edge,\n borderTopColor: 'transparent',\n borderLeftColor: 'transparent',\n clipPath: 'polygon(0 100%, 100% 100%, 100% 0)',\n }\n return {\n ...base,\n ...verticalSide(placement, input.arrowX, input.arrowOffset, input.arrowPosition, input.dir),\n top: edge,\n borderBottomColor: 'transparent',\n borderRightColor: 'transparent',\n clipPath: 'polygon(0 100%, 0 0, 100% 0)',\n }\n}\n\nexport function getArrowMergeDropdownStyles({\n position,\n dir,\n}: {\n position: FloatingPosition\n dir: 'rtl' | 'ltr'\n}): CSSProperties | undefined {\n const [side, placement] = position.split('-') as [FloatingSide, FloatingPlacement?]\n if (!placement) return undefined\n const physicallyLeft =\n (placement === 'start' && dir === 'ltr') || (placement === 'end' && dir === 'rtl')\n if (side === 'bottom')\n return physicallyLeft ? { borderTopLeftRadius: 0 } : { borderTopRightRadius: 0 }\n if (side === 'top')\n return physicallyLeft ? { borderBottomLeftRadius: 0 } : { borderBottomRightRadius: 0 }\n if (side === 'left')\n return placement === 'start' ? { borderTopRightRadius: 0 } : { borderBottomRightRadius: 0 }\n return placement === 'start' ? { borderTopLeftRadius: 0 } : { borderBottomLeftRadius: 0 }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { useDirection } from '../../../core'\nimport type { ArrowPosition, FloatingPosition } from '../types'\nimport { getArrowPositionStyles } from './get-arrow-position-styles'\n\nexport const FloatingArrow = defineComponent({\n name: 'FloatingArrow',\n inheritAttrs: false,\n props: {\n position: { type: String as PropType<FloatingPosition>, required: true },\n arrowSize: { type: Number, required: true },\n arrowOffset: { type: Number, required: true },\n arrowRadius: { type: Number, required: true },\n arrowPosition: { type: String as PropType<ArrowPosition>, required: true },\n arrowX: Number,\n arrowY: Number,\n visible: Boolean,\n },\n setup(props, { attrs }) {\n const { dir } = useDirection()\n return () =>\n props.visible\n ? h('div', {\n ...attrs,\n style: [attrs.style, getArrowPositionStyles({ ...props, dir: dir.value })],\n })\n : null\n },\n})\n","import type { FloatingPlacement, FloatingPosition, FloatingSide } from '../types'\n\nexport function getFloatingPosition(\n dir: 'rtl' | 'ltr',\n position: FloatingPosition,\n): FloatingPosition {\n if (dir === 'rtl' && (position.includes('right') || position.includes('left'))) {\n const [side, placement] = position.split('-') as [FloatingSide, FloatingPlacement?]\n const flipped = side === 'right' ? 'left' : 'right'\n return placement ? `${flipped}-${placement}` : flipped\n }\n return position\n}\n","import { onBeforeUnmount } from 'vue'\n\nexport function useDelayedHover(input: {\n open: () => void\n close: () => void\n openDelay?: number\n closeDelay?: number\n}) {\n let openTimeout: ReturnType<typeof setTimeout> | undefined\n let closeTimeout: ReturnType<typeof setTimeout> | undefined\n const clearTimeouts = () => {\n clearTimeout(openTimeout)\n clearTimeout(closeTimeout)\n }\n const schedule = (callback: () => void, delay?: number) =>\n delay ? setTimeout(callback, delay) : callback()\n const openDropdown = () => {\n clearTimeouts()\n openTimeout = schedule(input.open, input.openDelay) as any\n }\n const closeDropdown = () => {\n clearTimeouts()\n closeTimeout = schedule(input.close, input.closeDelay) as any\n }\n onBeforeUnmount(clearTimeouts)\n return { openDropdown, closeDropdown }\n}\n","import { ref } from 'vue'\nimport { useLongPress } from '@mantine-vue/hooks'\n\nfunction call(handler: unknown, event: Event) {\n if (Array.isArray(handler)) handler.forEach((item) => typeof item === 'function' && item(event))\n else if (typeof handler === 'function') handler(event)\n}\n\nexport function useContextMenuHandlers(options: {\n childProps: Record<string, any>\n disabled?: boolean\n opened: boolean\n longPressDelay?: number\n setReference: (node: object) => void\n open: () => void\n}) {\n const touchActive = ref(false)\n const gestureHandled = ref(false)\n const touchTarget = ref<EventTarget | null>(null)\n const openAtPoint = (clientX: number, clientY: number, contextElement: object | null) => {\n options.setReference({\n getBoundingClientRect: () => ({\n x: clientX,\n y: clientY,\n width: 0,\n height: 0,\n top: clientY,\n left: clientX,\n right: clientX,\n bottom: clientY,\n toJSON: () => undefined,\n }),\n contextElement,\n })\n options.open()\n }\n const longPress = useLongPress(\n (event) => {\n if (options.disabled || gestureHandled.value || !('touches' in event)) return\n const touch = event.touches[0] ?? event.changedTouches[0]\n if (!touch) return\n openAtPoint(touch.clientX, touch.clientY, touchTarget.value as object | null)\n gestureHandled.value = true\n },\n {\n threshold: options.longPressDelay ?? 500,\n events: ['touch'],\n cancelOnMove: true,\n onStart: (event) => {\n touchActive.value = true\n gestureHandled.value = false\n touchTarget.value = event.currentTarget\n },\n onFinish: (event) => {\n touchActive.value = false\n gestureHandled.value = false\n if (!options.disabled) event.preventDefault()\n },\n onCancel: () => {\n touchActive.value = false\n gestureHandled.value = false\n },\n },\n )\n return {\n onMousedown: (event: MouseEvent) => {\n call(options.childProps.onMousedown ?? options.childProps.onMouseDown, event)\n if (!options.disabled && event.button === 2) event.stopPropagation()\n },\n onContextmenu: (event: MouseEvent) => {\n call(options.childProps.onContextmenu ?? options.childProps.onContextMenu, event)\n if (options.disabled || event.defaultPrevented) return\n event.preventDefault()\n if (gestureHandled.value) return\n openAtPoint(event.clientX, event.clientY, event.currentTarget)\n if (touchActive.value) gestureHandled.value = true\n },\n onTouchstart: (event: TouchEvent) => {\n call(options.childProps.onTouchstart ?? options.childProps.onTouchStart, event)\n longPress.onTouchstart?.(event)\n },\n onTouchend: (event: TouchEvent) => {\n call(options.childProps.onTouchend ?? options.childProps.onTouchEnd, event)\n longPress.onTouchend?.(event)\n },\n onTouchcancel: (event: TouchEvent) => {\n call(options.childProps.onTouchcancel ?? options.childProps.onTouchCancel, event)\n longPress.onTouchcancel?.(event)\n },\n onTouchmove: (event: TouchEvent) => {\n call(options.childProps.onTouchmove ?? options.childProps.onTouchMove, event)\n longPress.onTouchmove?.(event)\n },\n style: options.disabled\n ? options.childProps.style\n : {\n ...options.childProps.style,\n WebkitTouchCallout: 'none',\n WebkitUserSelect: 'none',\n userSelect: 'none',\n },\n get 'data-expanded'() {\n return options.opened || undefined\n },\n }\n}\n","import { createSafeContext } from '../../core'\nimport type { ArrowPosition, FloatingPosition, FloatingStrategy } from '../../utils/Floating'\n\nexport interface PopoverContextValue {\n opened: boolean\n controlled: boolean\n disabled?: boolean\n withRoles: boolean\n withArrow: boolean\n arrowSize: number\n arrowOffset: number\n arrowRadius: number\n arrowPosition: ArrowPosition\n placement: FloatingPosition\n x: number\n y: number\n targetWidth?: number\n arrowX?: number\n arrowY?: number\n reference: (node: any) => void\n floating: (node: any) => void\n arrowRef: (node: any) => void\n onToggle: () => void\n onClose: () => void\n onDismiss?: () => void\n getTargetId: () => string\n getDropdownId: () => string\n targetProps: Record<string, any>\n transitionProps?: Record<string, any>\n withinPortal: boolean\n portalProps?: Record<string, any>\n trapFocus: boolean\n closeOnEscape: boolean\n returnFocus: boolean\n keepMounted: boolean\n width: string | number | null\n zIndex: string | number\n floatingStrategy: FloatingStrategy\n getStyles: any\n}\nexport const [providePopoverContext, usePopoverContext] = createSafeContext<PopoverContextValue>(\n 'Popover component was not found in the tree',\n)\n",".dropdown {\n position: absolute;\n border: 1px solid var(--popover-border-color);\n padding: var(--mantine-spacing-sm) var(--mantine-spacing-md);\n box-shadow: var(--popover-shadow, none);\n border-radius: var(--popover-radius, var(--mantine-radius-default));\n\n &:where([data-fixed]) {\n position: fixed;\n }\n\n &:focus {\n outline: none;\n }\n\n @mixin where-light {\n --popover-border-color: var(--mantine-color-gray-2);\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n --popover-border-color: var(--mantine-color-dark-4);\n background-color: var(--mantine-color-dark-6);\n }\n}\n\n.arrow {\n background-color: inherit;\n border: 1px solid var(--popover-border-color);\n z-index: 1;\n}\n\n.overlay {\n position: fixed;\n inset: 0;\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n type Middleware,\n} from '@floating-ui/vue'\nimport {\n cloneVNode,\n computed,\n defineComponent,\n h,\n nextTick,\n onBeforeUnmount,\n ref,\n watch,\n type PropType,\n type VNode,\n} from 'vue'\nimport { mergeRefs, useClickOutside, useFocusReturn, useId } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getDefaultZIndex,\n getRadius,\n getShadow,\n rem,\n useDirection,\n useProps,\n useStyles,\n} from '../../core'\nimport {\n FloatingArrow,\n getArrowMergeDropdownStyles,\n getFloatingPosition,\n useContextMenuHandlers,\n type ArrowPosition,\n type FloatingAxesOffsets,\n type FloatingPosition,\n type FloatingStrategy,\n} from '../../utils/Floating'\nimport { FocusTrap } from '../FocusTrap'\nimport { Overlay } from '../Overlay'\nimport { OptionalPortal } from '../Portal'\nimport { Transition } from '../Transition'\nimport { providePopoverContext, usePopoverContext } from './Popover.context'\nimport classes from './Popover.module.css'\n\nexport interface PopoverProps {\n __staticSelector?: string\n position?: FloatingPosition\n offset?: number | FloatingAxesOffsets\n opened?: boolean\n defaultOpened?: boolean\n onChange?: (opened: boolean) => void\n onOpen?: () => void\n onClose?: () => void\n onDismiss?: () => void\n width?: string | number | 'target' | null\n withArrow?: boolean\n arrowSize?: number\n arrowOffset?: number\n arrowRadius?: number\n arrowPosition?: ArrowPosition\n withinPortal?: boolean\n portalProps?: Record<string, any>\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n trapFocus?: boolean\n withRoles?: boolean\n disabled?: boolean\n returnFocus?: boolean\n keepMounted?: boolean\n transitionProps?: Record<string, any>\n zIndex?: string | number\n floatingStrategy?: FloatingStrategy\n middlewares?: Record<string, any>\n id?: string\n targetProps?: Record<string, any>\n withOverlay?: boolean\n overlayProps?: Record<string, any>\n radius?: string | number\n shadow?: string\n classNames?: any\n styles?: any\n vars?: any\n unstyled?: boolean\n}\n\nconst defaults = {\n position: 'bottom',\n offset: 8,\n width: 'max-content',\n withArrow: false,\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n withinPortal: true,\n closeOnClickOutside: true,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n keepMounted: false,\n zIndex: getDefaultZIndex('popover'),\n floatingStrategy: 'absolute',\n transitionProps: { transition: 'fade', duration: 150 },\n} as const\nconst varsResolver = createVarsResolver<any>((_, props) => ({\n dropdown: {\n '--popover-radius': props.radius === undefined ? undefined : getRadius(props.radius),\n '--popover-shadow': getShadow(props.shadow),\n },\n}))\n\nfunction one(slots: any, name: string): VNode {\n const children = slots.default?.().filter((child: VNode) => typeof child.type !== 'symbol') ?? []\n if (children.length !== 1)\n throw new Error(\n `${name} component children should be a single element or component that accepts ref`,\n )\n return children[0]\n}\nfunction call(handler: any, event: Event) {\n if (Array.isArray(handler)) handler.forEach((fn) => fn?.(event))\n else handler?.(event)\n}\nfunction asElement(node: any): HTMLElement | null {\n const candidate = node?.$el ?? node\n if (typeof Element !== 'undefined' && candidate instanceof Element) {\n return candidate as HTMLElement\n }\n\n return typeof candidate?.getBoundingClientRect === 'function' ? candidate : null\n}\n\nexport const PopoverTarget = defineComponent({\n name: 'PopoverTarget',\n inheritAttrs: false,\n props: {\n refProp: { type: String, default: 'ref' },\n popupType: { type: String, default: 'dialog' },\n },\n setup(props, { attrs, slots }) {\n const ctx = usePopoverContext()\n return () => {\n const child = one(slots, 'Popover.Target')\n const childProps = child.props || {}\n const forwarded: any = {\n ...attrs,\n ...ctx.targetProps,\n [props.refProp]: mergeRefs(ctx.reference, (child as any).ref),\n }\n if (ctx.withRoles)\n Object.assign(forwarded, {\n 'aria-haspopup': props.popupType,\n 'aria-expanded': ctx.opened,\n 'aria-controls': ctx.opened ? ctx.getDropdownId() : undefined,\n id: ctx.getTargetId(),\n })\n if (!ctx.controlled)\n forwarded.onClick = (event: MouseEvent) => {\n ctx.onToggle()\n call((childProps as any).onClick, event)\n }\n return cloneVNode(child, forwarded, true)\n }\n },\n})\n\nexport const PopoverContextMenu = defineComponent({\n name: 'PopoverContextMenu',\n props: { disabled: Boolean, longPressDelay: { type: Number, default: 500 } },\n setup(props, { slots }) {\n const ctx = usePopoverContext()\n let childProps: Record<string, any> = {}\n const handlers = useContextMenuHandlers({\n get childProps() {\n return childProps\n },\n get disabled() {\n return props.disabled || ctx.disabled\n },\n get opened() {\n return ctx.opened\n },\n get longPressDelay() {\n return props.longPressDelay\n },\n setReference: ctx.reference,\n open: () => !ctx.opened && ctx.onToggle(),\n })\n return () => {\n const child = one(slots, 'Popover.ContextMenu')\n childProps = child.props || {}\n return cloneVNode(child, handlers, true)\n }\n },\n})\n\nexport const PopoverDropdown = defineComponent({\n name: 'PopoverDropdown',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = usePopoverContext()\n const { dir } = useDirection()\n const returnFocus = useFocusReturn({\n opened: () => ctx.opened,\n shouldReturnFocus: () => ctx.returnFocus,\n })\n return () =>\n ctx.disabled\n ? null\n : h(OptionalPortal, { withinPortal: ctx.withinPortal, ...ctx.portalProps }, () =>\n h(\n Transition,\n { mounted: ctx.opened, keepMounted: ctx.keepMounted, ...ctx.transitionProps },\n {\n default: (transitionStyle: any) =>\n h(\n FocusTrap,\n { active: ctx.trapFocus && ctx.opened, innerRef: ctx.floating },\n {\n default: () =>\n h(\n Box,\n {\n ...(ctx.withRoles\n ? {\n role: 'dialog',\n tabindex: -1,\n id: ctx.getDropdownId(),\n 'aria-labelledby': ctx.getTargetId(),\n }\n : {}),\n ...attrs,\n ...ctx.getStyles('dropdown', {\n className: attrs.class,\n style: attrs.style,\n }),\n 'data-position': ctx.placement,\n 'data-fixed': ctx.floatingStrategy === 'fixed' || undefined,\n onKeydownCapture: (event: KeyboardEvent) => {\n call((attrs as any).onKeydownCapture, event)\n if (event.key === 'Escape' && ctx.closeOnEscape) {\n ctx.onClose()\n ctx.onDismiss?.()\n returnFocus()\n }\n },\n style: [\n ctx.getStyles('dropdown').style,\n transitionStyle,\n ctx.arrowPosition === 'merge' && ctx.withArrow\n ? getArrowMergeDropdownStyles({\n position: ctx.placement,\n dir: dir.value,\n })\n : null,\n {\n zIndex: ctx.zIndex,\n top: `${ctx.y}px`,\n left: `${ctx.x}px`,\n width:\n ctx.width === 'target'\n ? ctx.targetWidth === undefined\n ? undefined\n : `${ctx.targetWidth}px`\n : rem(ctx.width as any),\n },\n attrs.style,\n ],\n },\n () => [\n slots.default?.(),\n h(FloatingArrow, {\n ref: ctx.arrowRef,\n visible: ctx.withArrow,\n position: ctx.placement,\n arrowSize: ctx.arrowSize,\n arrowOffset: ctx.arrowOffset,\n arrowRadius: ctx.arrowRadius,\n arrowPosition: ctx.arrowPosition,\n arrowX: ctx.arrowX,\n arrowY: ctx.arrowY,\n ...ctx.getStyles('arrow'),\n }),\n ],\n ),\n },\n ),\n },\n ),\n )\n },\n})\n\nconst PopoverBase = defineComponent({\n name: 'Popover',\n inheritAttrs: false,\n props: {\n position: { type: String as PropType<FloatingPosition>, default: undefined },\n offset: { type: [Number, Object], default: undefined },\n opened: { type: Boolean, default: undefined },\n defaultOpened: Boolean,\n onChange: Function as PropType<(value: boolean) => void>,\n onOpen: Function as PropType<() => void>,\n onClose: Function as PropType<() => void>,\n onDismiss: Function as PropType<() => void>,\n width: { type: [String, Number], default: undefined },\n withArrow: { type: Boolean, default: undefined },\n arrowSize: Number,\n arrowOffset: Number,\n arrowRadius: Number,\n arrowPosition: { type: String as PropType<ArrowPosition>, default: undefined },\n withinPortal: { type: Boolean, default: undefined },\n portalProps: Object,\n closeOnClickOutside: { type: Boolean, default: undefined },\n closeOnEscape: { type: Boolean, default: undefined },\n trapFocus: { type: Boolean, default: undefined },\n withRoles: { type: Boolean, default: undefined },\n disabled: Boolean,\n returnFocus: { type: Boolean, default: undefined },\n keepMounted: { type: Boolean, default: undefined },\n transitionProps: Object,\n zIndex: [String, Number],\n floatingStrategy: { type: String as PropType<FloatingStrategy>, default: undefined },\n middlewares: Object,\n id: String,\n targetProps: Object,\n withOverlay: Boolean,\n overlayProps: Object,\n radius: [String, Number],\n shadow: String,\n classNames: [Object, Function],\n styles: [Object, Function],\n vars: [Object, Function],\n unstyled: Boolean,\n __staticSelector: { type: String, default: 'Popover' },\n },\n setup(rawProps, { slots }) {\n const props = useProps('Popover', defaults, rawProps)\n const { dir } = useDirection()\n const id = useId(props.id)\n const internal = ref(props.defaultOpened)\n const isControlled = computed(() => rawProps.opened !== undefined)\n const opened = computed(() => (isControlled.value ? !!rawProps.opened : internal.value))\n const reference = ref<any>(null)\n const floating = ref<HTMLElement | null>(null)\n const arrowElement = ref<HTMLElement | null>(null)\n const targetWidth = ref<number | undefined>()\n let resizeObserver: ResizeObserver | undefined\n const updateTargetWidth = () => {\n const width = reference.value?.getBoundingClientRect?.().width\n targetWidth.value = typeof width === 'number' ? width : undefined\n }\n const placement = computed(() =>\n getFloatingPosition(dir.value, props.position as FloatingPosition),\n )\n const middleware = computed<Middleware[]>(() => {\n const result: Middleware[] = [\n offset(\n typeof props.offset === 'number'\n ? props.offset + (props.withArrow ? (props.arrowSize ?? 7) / 2 : 0)\n : (props.offset as any),\n ),\n hide(),\n ]\n if (props.middlewares?.flip !== false)\n result.push(flip(typeof props.middlewares?.flip === 'object' ? props.middlewares.flip : {}))\n if (props.middlewares?.shift !== false)\n result.push(\n shift((state) => {\n const shiftOptions =\n typeof props.middlewares?.shift === 'object' ? props.middlewares.shift : {}\n const isVerticalPlacement =\n state.placement.startsWith('top') || state.placement.startsWith('bottom')\n\n return {\n limiter: limitShift(),\n padding: 5,\n ...(props.width === 'target' && isVerticalPlacement ? { mainAxis: false } : null),\n ...shiftOptions,\n }\n }),\n )\n result.push(arrow({ element: arrowElement }))\n if (props.middlewares?.size || props.width === 'target')\n result.push(\n size({\n ...(typeof props.middlewares?.size === 'object' ? props.middlewares.size : {}),\n apply: ({ rects, availableWidth, availableHeight, elements, ...rest }) => {\n const userSize = props.middlewares?.size\n\n if (userSize) {\n if (typeof userSize === 'object' && userSize.apply) {\n userSize.apply({ rects, availableWidth, availableHeight, elements, ...rest })\n } else {\n Object.assign(elements.floating.style, {\n maxWidth: `${availableWidth}px`,\n maxHeight: `${availableHeight}px`,\n })\n }\n }\n\n if (props.width === 'target') {\n elements.floating.style.width = `${rects.reference.width}px`\n }\n },\n }),\n )\n return result\n })\n const floatingState = useFloating(reference, floating, {\n open: opened,\n placement,\n strategy: computed(() => props.floatingStrategy),\n middleware,\n whileElementsMounted: autoUpdate,\n })\n watch(opened, async (value) => {\n if (value) {\n updateTargetWidth()\n await nextTick()\n updateTargetWidth()\n floatingState.update()\n }\n })\n watch(reference, (node) => {\n resizeObserver?.disconnect()\n updateTargetWidth()\n\n if (\n typeof Element !== 'undefined' &&\n node instanceof Element &&\n typeof ResizeObserver !== 'undefined'\n ) {\n resizeObserver = new ResizeObserver(updateTargetWidth)\n resizeObserver.observe(node)\n }\n })\n onBeforeUnmount(() => resizeObserver?.disconnect())\n const setOpened = (value: boolean) => {\n if (props.disabled) return\n if (!isControlled.value) internal.value = value\n props.onChange?.(value)\n }\n const close = () => {\n if (!opened.value || props.disabled) return\n setOpened(false)\n props.onClose?.()\n }\n const toggle = () => {\n const next = !opened.value\n setOpened(next)\n if (next) props.onOpen?.()\n else props.onClose?.()\n }\n const targetNode = computed(() => reference.value?.$el ?? reference.value ?? null)\n const dropdownNode = computed(() => (floating.value as any)?.$el ?? floating.value ?? null)\n useClickOutside(\n () => {\n if (props.closeOnClickOutside) {\n close()\n props.onDismiss?.()\n }\n },\n undefined,\n () => [targetNode.value, dropdownNode.value],\n () => opened.value,\n )\n const getStyles = useStyles({\n name: props.__staticSelector ?? 'Popover',\n classes,\n props,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n providePopoverContext({\n get opened() {\n return opened.value\n },\n get controlled() {\n return isControlled.value\n },\n get disabled() {\n return props.disabled\n },\n get withRoles() {\n return props.withRoles ?? true\n },\n get withArrow() {\n return props.withArrow ?? false\n },\n get arrowSize() {\n return props.arrowSize ?? 7\n },\n get arrowOffset() {\n return props.arrowOffset ?? 5\n },\n get arrowRadius() {\n return props.arrowRadius ?? 0\n },\n get arrowPosition() {\n return props.arrowPosition ?? 'side'\n },\n get placement() {\n return floatingState.placement.value as FloatingPosition\n },\n get x() {\n return floatingState.x.value ?? 0\n },\n get y() {\n return floatingState.y.value ?? 0\n },\n get targetWidth() {\n return targetWidth.value\n },\n get arrowX() {\n return floatingState.middlewareData.value.arrow?.x\n },\n get arrowY() {\n return floatingState.middlewareData.value.arrow?.y\n },\n reference: (node) => {\n reference.value = asElement(node)\n },\n floating: (node) => {\n floating.value = asElement(node)\n },\n arrowRef: (node) => {\n arrowElement.value = asElement(node)\n },\n onToggle: toggle,\n onClose: close,\n get onDismiss() {\n return props.onDismiss\n },\n getTargetId: () => `${id.value}-target`,\n getDropdownId: () => `${id.value}-dropdown`,\n get targetProps() {\n return props.targetProps || {}\n },\n get transitionProps() {\n return props.transitionProps\n },\n get withinPortal() {\n return props.withinPortal ?? true\n },\n get portalProps() {\n return props.portalProps\n },\n get trapFocus() {\n return props.trapFocus ?? false\n },\n get closeOnEscape() {\n return props.closeOnEscape ?? true\n },\n get returnFocus() {\n return props.returnFocus ?? false\n },\n get keepMounted() {\n return props.keepMounted ?? false\n },\n get width() {\n return props.width ?? 'max-content'\n },\n get zIndex() {\n return props.zIndex ?? getDefaultZIndex('popover')\n },\n get floatingStrategy() {\n return props.floatingStrategy ?? 'absolute'\n },\n getStyles,\n })\n watch(\n () => rawProps.opened,\n (value, old) => {\n if (value === old || value === undefined) return\n if (value) props.onOpen?.()\n else props.onClose?.()\n },\n )\n return () => [\n slots.default?.(),\n props.withOverlay &&\n h(\n Transition,\n {\n mounted: opened.value,\n transition: 'fade',\n duration: props.transitionProps?.duration || 250,\n exitDuration: props.transitionProps?.exitDuration || 250,\n },\n {\n default: (transitionStyle: any) =>\n h(OptionalPortal, { withinPortal: props.withinPortal }, () =>\n h(Overlay, {\n ...props.overlayProps,\n ...getStyles('overlay', {\n className: props.overlayProps?.class,\n style: [transitionStyle, props.overlayProps?.style],\n }),\n }),\n ),\n },\n ),\n ]\n },\n})\n\nexport const Popover = Object.assign(PopoverBase, {\n classes,\n varsResolver,\n Target: PopoverTarget,\n Dropdown: PopoverDropdown,\n ContextMenu: PopoverContextMenu,\n})\nexport type PopoverStylesNames = 'dropdown' | 'arrow' | 'overlay'\nexport type PopoverCssVariables = '--popover-radius' | '--popover-shadow'\nexport interface PopoverTargetProps {\n refProp?: string\n popupType?: string\n [key: string]: any\n}\nexport interface PopoverDropdownProps {\n [key: string]: any\n}\nexport interface PopoverContextMenuProps {\n disabled?: boolean\n longPressDelay?: number\n [key: string]: any\n}\n",".tooltip {\n --tooltip-radius: var(--mantine-radius-default);\n\n position: absolute;\n padding: calc(var(--mantine-spacing-xs) / 2) var(--mantine-spacing-xs);\n pointer-events: none;\n font-size: var(--mantine-font-size-sm);\n white-space: nowrap;\n border-radius: var(--tooltip-radius);\n\n @mixin where-light {\n background-color: var(--tooltip-bg, var(--mantine-color-gray-9));\n color: var(--tooltip-color, var(--mantine-color-white));\n }\n\n @mixin where-dark {\n background-color: var(--tooltip-bg, var(--mantine-color-gray-2));\n color: var(--tooltip-color, var(--mantine-color-black));\n }\n\n &:where([data-multiline]) {\n white-space: normal;\n }\n\n &:where([data-fixed]) {\n position: fixed;\n }\n}\n\n.arrow {\n background-color: inherit;\n border: 0;\n z-index: 1;\n}\n","import { shift, useFloating } from '@floating-ui/vue'\nimport { cloneVNode, computed, defineComponent, h, ref, type PropType, type VNode } from 'vue'\nimport { mergeRefs } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getDefaultZIndex,\n getRadius,\n getThemeColor,\n useProps,\n useStyles,\n} from '../../../core'\nimport type { FloatingPosition } from '../../../utils/Floating'\nimport { OptionalPortal } from '../../Portal'\nimport classes from '../Tooltip.module.css'\n\nfunction one(slots: any): VNode {\n const children = slots.default?.().filter((child: VNode) => typeof child.type !== 'symbol') ?? []\n if (children.length !== 1)\n throw new Error(\n 'Tooltip.Floating component children should be a single element or component that accepts ref',\n )\n return children[0]\n}\nfunction asElement(node: any): HTMLElement | null {\n const candidate = node?.$el ?? node\n return typeof Element !== 'undefined' && candidate instanceof Element\n ? (candidate as HTMLElement)\n : null\n}\n// function call(handler: any, event: Event) {\n// if (Array.isArray(handler)) handler.forEach((fn) => fn?.(event))\n// else handler?.(event)\n// }\n\nconst defaults = {\n refProp: 'ref',\n withinPortal: true,\n offset: 10,\n position: 'right',\n zIndex: getDefaultZIndex('popover'),\n} as const\nconst varsResolver = createVarsResolver<any>((theme, props) => ({\n tooltip: {\n '--tooltip-radius': props.radius === undefined ? undefined : getRadius(props.radius),\n '--tooltip-bg': props.color ? getThemeColor(props.color, theme) : undefined,\n '--tooltip-color': props.color ? 'var(--mantine-color-white)' : undefined,\n },\n}))\n\nexport const TooltipFloating = defineComponent({\n name: 'TooltipFloating',\n inheritAttrs: false,\n props: {\n label: { required: true },\n refProp: String,\n withinPortal: { type: Boolean, default: undefined },\n offset: Number,\n position: { type: String as PropType<FloatingPosition>, default: undefined },\n zIndex: [String, Number],\n disabled: Boolean,\n defaultOpened: Boolean,\n multiline: Boolean,\n radius: [String, Number],\n color: String,\n portalProps: Object,\n classNames: [Object, Function],\n styles: [Object, Function],\n vars: [Object, Function],\n unstyled: Boolean,\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('TooltipFloating', defaults, rawProps)\n const opened = ref(props.defaultOpened)\n const boundary = ref<any>(null)\n const floating = ref<HTMLElement | null>(null)\n const virtual = ref<any>(null)\n const state = useFloating(virtual, floating, {\n placement: computed(() => props.position),\n middleware: [shift({ crossAxis: true, padding: 5, rootBoundary: 'document' })],\n })\n const getStyles = useStyles({\n name: 'TooltipFloating',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n const move = (event: MouseEvent) => {\n const valueOffset = props.offset ?? 10\n const horizontal = state.placement.value.includes('right')\n ? valueOffset\n : state.placement.value.includes('left')\n ? -valueOffset\n : 0\n const vertical = state.placement.value.includes('bottom')\n ? valueOffset\n : state.placement.value.includes('top')\n ? -valueOffset\n : 0\n virtual.value = {\n getBoundingClientRect: () => ({\n width: 0,\n height: 0,\n x: event.clientX,\n y: event.clientY,\n left: event.clientX + horizontal,\n top: event.clientY + vertical,\n right: event.clientX,\n bottom: event.clientY,\n }),\n }\n }\n return () => {\n const child = one(slots)\n // const childProps = child.props || {}\n return [\n h(OptionalPortal, { withinPortal: props.withinPortal, ...props.portalProps }, () =>\n h(\n Box,\n {\n ...attrs,\n ref: (node: any) => (floating.value = asElement(node)),\n role: 'tooltip',\n 'data-multiline': props.multiline || undefined,\n ...getStyles('tooltip', { className: attrs.class }),\n style: [\n getStyles('tooltip').style,\n attrs.style,\n {\n zIndex: props.zIndex,\n display: !props.disabled && opened.value ? 'block' : 'none',\n top: state.y.value == null ? '' : `${Math.round(state.y.value)}px`,\n left: state.x.value == null ? '' : `${Math.round(state.x.value)}px`,\n },\n ],\n },\n () => props.label as any,\n ),\n ),\n cloneVNode(\n child,\n {\n [props.refProp ?? 'ref']: mergeRefs(\n (node: any) => (boundary.value = asElement(node)),\n (child as any).ref,\n ),\n onMouseenter: (event: MouseEvent) => {\n move(event)\n opened.value = true\n },\n onMousemove: (event: MouseEvent) => {\n move(event)\n },\n onMouseleave: () => {\n opened.value = false\n },\n },\n true,\n ),\n ]\n }\n },\n})\nexport interface TooltipFloatingProps {\n label: any\n offset?: number\n position?: FloatingPosition\n defaultOpened?: boolean\n [key: string]: any\n}\n","import { defineComponent, provide, type InjectionKey } from 'vue'\n\nexport interface TooltipGroupContextValue {\n withinGroup: boolean\n openDelay: number\n closeDelay: number\n}\nexport const TooltipGroupKey: InjectionKey<TooltipGroupContextValue> = Symbol('TooltipGroup')\nexport const TooltipGroup = defineComponent({\n name: 'TooltipGroup',\n props: { openDelay: { type: Number, default: 0 }, closeDelay: { type: Number, default: 0 } },\n setup(props, { slots }) {\n provide(TooltipGroupKey, {\n withinGroup: true,\n get openDelay() {\n return props.openDelay\n },\n get closeDelay() {\n return props.closeDelay\n },\n })\n return () => slots.default?.()\n },\n})\nexport interface TooltipGroupProps {\n openDelay?: number\n closeDelay?: number\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n inline,\n offset,\n shift,\n useFloating,\n type Middleware,\n} from '@floating-ui/vue'\nimport { computed, inject, onBeforeUnmount, ref, watch } from 'vue'\nimport type { FloatingAxesOffsets, FloatingPosition, FloatingStrategy } from '../../utils/Floating'\nimport type { TooltipMiddlewares } from './Tooltip.types'\nimport { TooltipGroupKey } from './TooltipGroup/TooltipGroup'\n\nexport interface UseTooltipOptions {\n position: () => FloatingPosition\n opened: () => boolean | undefined\n defaultOpened: boolean\n openDelay?: () => number | undefined\n closeDelay?: () => number | undefined\n offset: () => number | FloatingAxesOffsets\n arrowOffset: () => number\n events: () => { hover: boolean; focus: boolean; touch: boolean }\n strategy: () => FloatingStrategy\n middlewares: () => TooltipMiddlewares | undefined\n onPositionChange?: (position: FloatingPosition) => void\n}\n\nexport function useTooltip(options: UseTooltipOptions) {\n const group = inject(TooltipGroupKey, { withinGroup: false, openDelay: 0, closeDelay: 0 })\n const internal = ref(options.defaultOpened)\n const opened = computed(() => options.opened() ?? internal.value)\n const reference = ref<any>(null)\n const floating = ref<HTMLElement | null>(null)\n const arrowRef = ref<HTMLElement | null>(null)\n const middleware = computed<Middleware[]>(() => {\n const config = options.middlewares()\n const result: Middleware[] = [offset(options.offset())]\n if (config?.shift !== false)\n result.push(\n shift(typeof config?.shift === 'object' ? { padding: 8, ...config.shift } : { padding: 8 }),\n )\n if (config?.flip !== false)\n result.push(flip(typeof config?.flip === 'object' ? config.flip : {}))\n result.push(arrow({ element: arrowRef, padding: options.arrowOffset() }))\n if (config?.inline || config?.inline === undefined)\n result.push(inline(typeof config?.inline === 'object' ? config.inline : {}))\n return result\n })\n const state = useFloating(reference, floating, {\n open: opened,\n placement: computed(() => options.position()),\n strategy: computed(() => options.strategy()),\n middleware,\n whileElementsMounted: autoUpdate,\n })\n let openTimer: ReturnType<typeof setTimeout> | undefined\n let closeTimer: ReturnType<typeof setTimeout> | undefined\n const clear = () => {\n clearTimeout(openTimer)\n clearTimeout(closeTimer)\n }\n const setOpened = (value: boolean, delay = 0) => {\n clear()\n const apply = () => {\n if (options.opened() === undefined) internal.value = value\n }\n if (delay > 0) {\n if (value) openTimer = setTimeout(apply, delay)\n else closeTimer = setTimeout(apply, delay)\n } else apply()\n }\n const open = () =>\n setOpened(true, group.withinGroup ? group.openDelay : (options.openDelay?.() ?? 0))\n const close = () =>\n setOpened(false, group.withinGroup ? group.closeDelay : (options.closeDelay?.() ?? 0))\n const previousPlacement = ref(state.placement.value)\n watch(state.placement, (value) => {\n if (value !== previousPlacement.value) {\n previousPlacement.value = value\n options.onPositionChange?.(value as FloatingPosition)\n }\n })\n onBeforeUnmount(clear)\n return {\n opened,\n reference,\n floating,\n arrowRef,\n x: state.x,\n y: state.y,\n placement: state.placement,\n arrowX: computed(() => state.middlewareData.value.arrow?.x),\n arrowY: computed(() => state.middlewareData.value.arrow?.y),\n open,\n close,\n setOpened,\n }\n}\n","import {\n cloneVNode,\n defineComponent,\n h,\n onBeforeUnmount,\n onMounted,\n type PropType,\n type VNode,\n} from 'vue'\nimport { mergeRefs } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getDefaultZIndex,\n getRadius,\n useDirection,\n useProps,\n useStyles,\n} from '../../core'\nimport {\n FloatingArrow,\n getArrowMergeDropdownStyles,\n getFloatingPosition,\n type ArrowPosition,\n type FloatingAxesOffsets,\n type FloatingPosition,\n type FloatingStrategy,\n} from '../../utils/Floating'\nimport { OptionalPortal } from '../Portal'\nimport { Transition } from '../Transition'\nimport { TooltipFloating } from './TooltipFloating/TooltipFloating'\nimport { TooltipGroup } from './TooltipGroup/TooltipGroup'\nimport type { TooltipBaseProps, TooltipMiddlewares, TooltipStylesNames } from './Tooltip.types'\nimport { useTooltip } from './use-tooltip'\nimport classes from './Tooltip.module.css'\n\nexport interface TooltipProps extends TooltipBaseProps {\n onPositionChange?: (position: FloatingPosition) => void\n openDelay?: number\n closeDelay?: number\n opened?: boolean\n defaultOpened?: boolean\n offset?: number | FloatingAxesOffsets\n withArrow?: boolean\n arrowSize?: number\n arrowOffset?: number\n arrowRadius?: number\n arrowPosition?: ArrowPosition\n transitionProps?: Record<string, any>\n events?: { hover: boolean; focus: boolean; touch: boolean }\n inline?: boolean\n keepMounted?: boolean\n floatingStrategy?: FloatingStrategy\n autoContrast?: boolean\n target?: any\n middlewares?: TooltipMiddlewares\n}\n\nconst defaults = {\n position: 'top',\n refProp: 'ref',\n withinPortal: true,\n arrowSize: 4,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n offset: 5,\n transitionProps: { duration: 100, transition: 'fade' },\n events: { hover: true, focus: false, touch: false },\n zIndex: getDefaultZIndex('popover'),\n middlewares: { flip: true, shift: true, inline: false },\n floatingStrategy: 'absolute',\n} as const\nconst varsResolver = createVarsResolver<any>((theme, props) => {\n const colors = theme.variantColorResolver({\n theme,\n color: props.color || theme.primaryColor,\n autoContrast: props.autoContrast,\n variant: props.variant || 'filled',\n })\n return {\n tooltip: {\n '--tooltip-radius': props.radius === undefined ? undefined : getRadius(props.radius),\n '--tooltip-bg': props.color ? colors.background : undefined,\n '--tooltip-color': props.color ? colors.color : undefined,\n },\n }\n})\nfunction one(slots: any): VNode | null {\n const children = slots.default?.().filter((child: VNode) => typeof child.type !== 'symbol') ?? []\n return children.length === 1 ? children[0] : null\n}\nfunction asElement(node: any): HTMLElement | null {\n const candidate = node?.$el ?? node\n return typeof Element !== 'undefined' && candidate instanceof Element\n ? (candidate as HTMLElement)\n : null\n}\nconst TooltipBase = defineComponent({\n name: 'Tooltip',\n inheritAttrs: false,\n props: {\n label: { required: true },\n position: { type: String as PropType<FloatingPosition>, default: undefined },\n refProp: String,\n withinPortal: { type: Boolean, default: undefined },\n radius: [String, Number],\n color: String,\n multiline: Boolean,\n zIndex: [String, Number],\n disabled: Boolean,\n portalProps: Object,\n middlewares: Object,\n onPositionChange: Function as PropType<(position: FloatingPosition) => void>,\n openDelay: Number,\n closeDelay: Number,\n opened: { type: Boolean, default: undefined },\n defaultOpened: Boolean,\n offset: {\n type: [Number, Object] as PropType<number | FloatingAxesOffsets>,\n default: undefined,\n },\n withArrow: Boolean,\n arrowSize: Number,\n arrowOffset: Number,\n arrowRadius: Number,\n arrowPosition: { type: String as PropType<ArrowPosition>, default: undefined },\n transitionProps: Object,\n events: Object as PropType<{ hover: boolean; focus: boolean; touch: boolean }>,\n inline: Boolean,\n keepMounted: Boolean,\n floatingStrategy: { type: String as PropType<FloatingStrategy>, default: undefined },\n autoContrast: Boolean,\n target: { type: [String, Object] as PropType<any>, default: undefined },\n classNames: [Object, Function],\n styles: [Object, Function],\n vars: [Object, Function],\n unstyled: Boolean,\n },\n setup(rawProps, { attrs, slots }) {\n const props = useProps('Tooltip', defaults, rawProps)\n const { dir } = useDirection()\n const tooltip = useTooltip({\n position: () => getFloatingPosition(dir.value, props.position ?? 'top'),\n opened: () => rawProps.opened,\n defaultOpened: props.defaultOpened,\n openDelay: () => props.openDelay,\n closeDelay: () => props.closeDelay,\n offset: () =>\n typeof props.offset === 'number'\n ? props.offset + (props.withArrow ? (props.arrowSize ?? 4) / 2 : 0)\n : (props.offset ?? 5),\n arrowOffset: () => props.arrowOffset ?? 5,\n events: () => props.events ?? { hover: true, focus: false, touch: false },\n strategy: () => props.floatingStrategy ?? 'absolute',\n middlewares: () => props.middlewares,\n onPositionChange: props.onPositionChange,\n })\n const getStyles = useStyles({\n name: 'Tooltip',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n const referenceHandlers = () => ({\n onMouseenter: () => {\n if ((props.events ?? defaults.events).hover) tooltip.open()\n },\n onMouseleave: () => {\n if ((props.events ?? defaults.events).hover) tooltip.close()\n },\n onFocus: () => {\n if ((props.events ?? defaults.events).focus) tooltip.open()\n },\n onBlur: () => {\n if ((props.events ?? defaults.events).focus) tooltip.close()\n },\n })\n let external: HTMLElement | null = null\n const externalHandlers = referenceHandlers()\n const resolveTarget = () =>\n typeof props.target === 'string'\n ? asElement(document.querySelector(props.target))\n : asElement(props.target?.value ?? props.target)\n const bindExternal = () => {\n external = resolveTarget()\n if (!external) return\n external.addEventListener('mouseenter', externalHandlers.onMouseenter as any)\n external.addEventListener('mouseleave', externalHandlers.onMouseleave as any)\n external.addEventListener('focus', externalHandlers.onFocus as any)\n external.addEventListener('blur', externalHandlers.onBlur as any)\n tooltip.reference.value = external\n }\n const unbindExternal = () => {\n if (!external) return\n external.removeEventListener('mouseenter', externalHandlers.onMouseenter as any)\n external.removeEventListener('mouseleave', externalHandlers.onMouseleave as any)\n external.removeEventListener('focus', externalHandlers.onFocus as any)\n external.removeEventListener('blur', externalHandlers.onBlur as any)\n external = null\n }\n onMounted(() => props.target && bindExternal())\n onBeforeUnmount(unbindExternal)\n\n return () => {\n const child = props.target ? null : one(slots)\n if (!props.target && !child)\n throw new Error(\n 'Tooltip component children should be a single element or component that accepts ref',\n )\n const arrowPosition = props.arrowPosition ?? 'side'\n const mergeStyles =\n arrowPosition === 'merge' && props.withArrow\n ? getArrowMergeDropdownStyles({\n position: tooltip.placement.value as FloatingPosition,\n dir: dir.value,\n })\n : undefined\n const floating = h(\n OptionalPortal,\n { withinPortal: props.withinPortal, ...props.portalProps },\n () =>\n h(\n Transition,\n {\n mounted: !props.disabled && tooltip.opened.value,\n keepMounted: props.keepMounted,\n ...props.transitionProps,\n },\n {\n default: (transitionStyle: any) =>\n h(\n Box,\n {\n ...attrs,\n ref: (node: any) => (tooltip.floating.value = asElement(node)),\n role: 'tooltip',\n 'data-multiline': props.multiline || undefined,\n 'data-fixed': props.floatingStrategy === 'fixed' || undefined,\n ...getStyles('tooltip', {\n className: attrs.class,\n style: [\n attrs.style,\n transitionStyle,\n mergeStyles,\n {\n zIndex: props.zIndex,\n top: `${tooltip.y.value ?? 0}px`,\n left: `${tooltip.x.value ?? 0}px`,\n },\n ],\n }),\n },\n () => [\n props.label as any,\n h(FloatingArrow, {\n ref: (node: any) => (tooltip.arrowRef.value = asElement(node)),\n visible: props.withArrow,\n position: tooltip.placement.value as FloatingPosition,\n arrowSize: props.arrowSize ?? 4,\n arrowOffset: props.arrowOffset ?? 5,\n arrowRadius: props.arrowRadius ?? 0,\n arrowPosition,\n arrowX: tooltip.arrowX.value,\n arrowY: tooltip.arrowY.value,\n ...getStyles('arrow'),\n }),\n ],\n ),\n },\n ),\n )\n if (!child) return floating\n return [\n floating,\n cloneVNode(\n child,\n {\n ...referenceHandlers(),\n [props.refProp ?? 'ref']: mergeRefs(\n (node: any) => (tooltip.reference.value = asElement(node)),\n (child as any).ref,\n ),\n },\n true,\n ),\n ]\n }\n },\n})\n\nexport const Tooltip = Object.assign(TooltipBase, {\n classes,\n varsResolver,\n Floating: TooltipFloating,\n Group: TooltipGroup,\n})\nexport type { TooltipStylesNames }\n","import { createSafeContext } from '../../core'\nexport interface HoverCardContextValue {\n openDropdown: () => void\n closeDropdown: () => void\n}\nexport const [provideHoverCardContext, useHoverCardContext] =\n createSafeContext<HoverCardContextValue>('HoverCard component was not found in the tree')\n","import { defineComponent, h } from 'vue'\nimport { PopoverDropdown } from '../../Popover'\nimport { useHoverCardContext } from '../HoverCard.context'\nfunction call(handler: any, event: Event) {\n if (Array.isArray(handler)) handler.forEach((fn) => fn?.(event))\n else handler?.(event)\n}\nexport const HoverCardDropdown = defineComponent({\n name: 'HoverCardDropdown',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useHoverCardContext()\n return () =>\n h(\n PopoverDropdown,\n {\n ...attrs,\n onMouseenter: (event: MouseEvent) => {\n call((attrs as any).onMouseenter ?? (attrs as any).onMouseEnter, event)\n ctx.openDropdown()\n },\n onMouseleave: (event: MouseEvent) => {\n call((attrs as any).onMouseleave ?? (attrs as any).onMouseLeave, event)\n ctx.closeDropdown()\n },\n },\n slots,\n )\n },\n})\nexport interface HoverCardDropdownProps {\n [key: string]: any\n}\n","import { defineComponent, provide, type InjectionKey } from 'vue'\nexport interface HoverCardGroupContextValue {\n withinGroup: boolean\n openDelay: number\n closeDelay: number\n}\nexport const HoverCardGroupKey: InjectionKey<HoverCardGroupContextValue> = Symbol('HoverCardGroup')\nexport const HoverCardGroup = defineComponent({\n name: 'HoverCardGroup',\n props: { openDelay: { type: Number, default: 0 }, closeDelay: { type: Number, default: 0 } },\n setup(props, { slots }) {\n provide(HoverCardGroupKey, {\n withinGroup: true,\n get openDelay() {\n return props.openDelay\n },\n get closeDelay() {\n return props.closeDelay\n },\n })\n return () => slots.default?.()\n },\n})\nexport interface HoverCardGroupProps {\n openDelay?: number\n closeDelay?: number\n}\n","import { cloneVNode, defineComponent, h, type VNode } from 'vue'\nimport { PopoverTarget } from '../../Popover'\nimport { useHoverCardContext } from '../HoverCard.context'\n\nfunction one(slots: any): VNode {\n const children = slots.default?.().filter((child: VNode) => typeof child.type !== 'symbol') ?? []\n if (children.length !== 1)\n throw new Error(\n 'HoverCard.Target component children should be a single element or component that accepts ref',\n )\n return children[0]\n}\nexport const HoverCardTarget = defineComponent({\n name: 'HoverCardTarget',\n inheritAttrs: false,\n props: { refProp: { type: String, default: 'ref' }, eventPropsWrapperName: String },\n setup(props, { attrs, slots }) {\n const ctx = useHoverCardContext()\n return () => {\n const child = one(slots)\n const events = { onMouseenter: ctx.openDropdown, onMouseleave: ctx.closeDropdown }\n const cloned = cloneVNode(\n child,\n props.eventPropsWrapperName\n ? {\n [props.eventPropsWrapperName]: {\n ...(child.props as any)?.[props.eventPropsWrapperName],\n ...events,\n },\n }\n : events,\n true,\n )\n return h(PopoverTarget, { ...attrs, refProp: props.refProp }, () => cloned)\n }\n },\n})\nexport interface HoverCardTargetProps {\n refProp?: string\n eventPropsWrapperName?: string\n [key: string]: any\n}\n","import { inject, onBeforeUnmount, ref } from 'vue'\nimport { HoverCardGroupKey } from './HoverCardGroup/HoverCardGroup'\n\nexport function useHoverCard(settings: {\n openDelay?: number\n closeDelay?: number\n defaultOpened?: boolean\n onOpen?: () => void\n onClose?: () => void\n}) {\n const group = inject(HoverCardGroupKey, { withinGroup: false, openDelay: 0, closeDelay: 0 })\n const opened = ref(!!settings.defaultOpened)\n let openTimer: ReturnType<typeof setTimeout> | undefined\n let closeTimer: ReturnType<typeof setTimeout> | undefined\n const clear = () => {\n clearTimeout(openTimer)\n clearTimeout(closeTimer)\n }\n const change = (value: boolean) => {\n if (opened.value === value) return\n opened.value = value\n if (value) settings.onOpen?.()\n else settings.onClose?.()\n }\n const openDropdown = () => {\n clear()\n const delay = group.withinGroup ? group.openDelay : (settings.openDelay ?? 0)\n if (delay) openTimer = setTimeout(() => change(true), delay)\n else change(true)\n }\n const closeDropdown = () => {\n clear()\n const delay = group.withinGroup ? group.closeDelay : (settings.closeDelay ?? 150)\n if (delay) closeTimer = setTimeout(() => change(false), delay)\n else change(false)\n }\n onBeforeUnmount(clear)\n return { opened, openDropdown, closeDropdown }\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport { Popover, type PopoverProps } from '../Popover'\nimport { provideHoverCardContext } from './HoverCard.context'\nimport { HoverCardDropdown } from './HoverCardDropdown/HoverCardDropdown'\nimport { HoverCardGroup } from './HoverCardGroup/HoverCardGroup'\nimport { HoverCardTarget } from './HoverCardTarget/HoverCardTarget'\nimport { useHoverCard } from './use-hover-card'\n\nexport interface HoverCardProps extends Omit<PopoverProps, 'opened' | 'onChange'> {\n initiallyOpened?: boolean\n onOpen?: () => void\n onClose?: () => void\n openDelay?: number\n closeDelay?: number\n}\nconst HoverCardBase = defineComponent({\n name: 'HoverCard',\n inheritAttrs: false,\n props: {\n initiallyOpened: Boolean,\n onOpen: Function as PropType<() => void>,\n onClose: Function as PropType<() => void>,\n openDelay: { type: Number, default: 0 },\n closeDelay: { type: Number, default: 150 },\n },\n setup(props, { attrs, slots }) {\n const state = useHoverCard({\n openDelay: props.openDelay,\n closeDelay: props.closeDelay,\n defaultOpened: props.initiallyOpened,\n onOpen: props.onOpen,\n onClose: props.onClose,\n })\n provideHoverCardContext({\n openDropdown: state.openDropdown,\n closeDropdown: state.closeDropdown,\n })\n return () =>\n h(Popover, { ...attrs, opened: state.opened.value, __staticSelector: 'HoverCard' }, slots)\n },\n})\nexport const HoverCard = Object.assign(HoverCardBase, {\n Target: HoverCardTarget,\n Dropdown: HoverCardDropdown,\n Group: HoverCardGroup,\n})\n","import { createSafeContext } from '../../core'\nexport interface MenuContextValue {\n opened: boolean\n hasSearch: boolean\n registerSearch: () => () => void\n setSearchExitClear: (callback: (() => void) | null) => void\n toggleDropdown: () => void\n openDropdown: () => void\n closeDropdown: () => void\n closeDropdownImmediately: () => void\n closeOnItemClick: boolean\n loop: boolean\n trigger: 'click' | 'hover' | 'click-hover'\n menuItemTabIndex: -1 | 0\n getStyles: any\n unstyled?: boolean\n alignItemsLabels: 'all' | 'with-indicators' | 'none'\n checkIcon?: any\n}\nexport const [provideMenuContext, useMenuContext] = createSafeContext<MenuContextValue>(\n 'Menu component was not found in the tree',\n)\n",".dropdown {\n padding: 4px;\n}\n\n.label {\n color: var(--mantine-color-dimmed);\n font-weight: var(--mantine-font-weight-medium);\n font-size: var(--mantine-font-size-xs);\n padding: calc(var(--mantine-spacing-xs) / 2) var(--mantine-spacing-sm);\n cursor: default;\n}\n\n.divider {\n margin-top: 4px;\n margin-bottom: 4px;\n border-top: 1px solid;\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n}\n\n.item {\n font-size: var(--mantine-font-size-sm);\n width: 100%;\n padding: calc(var(--mantine-spacing-xs) / 1.5) var(--mantine-spacing-sm);\n border-radius: var(--popover-radius, var(--mantine-radius-default));\n color: var(--menu-item-color, var(--mantine-color-text));\n display: flex;\n align-items: center;\n user-select: none;\n\n &:where([data-disabled], :disabled) {\n color: var(--mantine-color-disabled-color);\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &:where(:hover, :focus, [data-menu-active]) {\n &:where(:not(:disabled, [data-disabled])) {\n @mixin where-light {\n background-color: var(--menu-item-hover, var(--mantine-color-gray-1));\n }\n\n @mixin where-dark {\n background-color: var(--menu-item-hover, var(--mantine-color-dark-4));\n }\n }\n }\n\n &:where([data-sub-menu-item]) {\n padding-inline-end: 5px;\n }\n}\n\n.search {\n --menu-search-padding: var(--popover-padding, 4px);\n\n margin-inline: calc(var(--menu-search-padding) * -1);\n margin-top: calc(var(--menu-search-padding) * -1);\n width: calc(100% + var(--menu-search-padding) * 2);\n border-top-width: 0;\n border-inline-width: 0;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n margin-bottom: var(--menu-search-padding);\n\n &,\n &:focus {\n @mixin where-light {\n border-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n }\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-7);\n }\n}\n\n.itemLabel {\n flex: 1;\n}\n\n.itemIndicator {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-inline-end: 8px;\n}\n\n.itemSection {\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:where([data-position='left']) {\n margin-inline-end: var(--mantine-spacing-xs);\n }\n\n &:where([data-position='right']) {\n margin-inline-start: var(--mantine-spacing-xs);\n }\n}\n\n.chevron {\n transform: rotate(-90deg);\n\n @mixin where-rtl {\n transform: rotate(90deg);\n }\n}\n","import {\n cloneVNode,\n defineComponent,\n h,\n inject,\n nextTick,\n onUnmounted,\n provide,\n ref,\n type InjectionKey,\n type PropType,\n} from 'vue'\nimport { Box, useStyles } from '../../core'\nimport { useDelayedHover } from '../../utils/Floating'\nimport { AccordionChevron } from '../Accordion'\nimport { Input } from '../Input'\nimport {\n Popover,\n PopoverContextMenu,\n PopoverDropdown,\n PopoverTarget,\n type PopoverProps,\n} from '../Popover'\nimport { UnstyledButton } from '../UnstyledButton'\nimport { provideMenuContext, useMenuContext } from './Menu.context'\nimport classes from './Menu.module.css'\n\nfunction call(handler: any, event: Event) {\n if (Array.isArray(handler)) handler.forEach((fn) => fn?.(event))\n else handler?.(event)\n}\nfunction menuItems(root: Element | null) {\n return Array.from(\n root?.querySelectorAll<HTMLElement>('[data-menu-item]:not([data-disabled])') ?? [],\n ).filter((node) => node.closest('[data-menu-dropdown]') === root)\n}\nfunction clearActive(root: Element | null) {\n root\n ?.querySelectorAll<HTMLElement>('[data-menu-active]')\n .forEach(\n (node) =>\n node.closest('[data-menu-dropdown]') === root && node.removeAttribute('data-menu-active'),\n )\n}\nfunction setActive(item: HTMLElement | null, root: Element | null) {\n clearActive(root)\n if (item) {\n item.setAttribute('data-menu-active', 'true')\n item.scrollIntoView?.({ block: 'nearest' })\n }\n}\nfunction getActiveIndex(items: HTMLElement[]) {\n return items.findIndex((item) => item.hasAttribute('data-menu-active'))\n}\nfunction focusAt(root: Element | null, current: HTMLElement | null, delta: number, loop: boolean) {\n const items = menuItems(root)\n if (!items.length) return\n let index = current ? items.indexOf(current) + delta : delta > 0 ? 0 : items.length - 1\n if (loop) index = (index + items.length) % items.length\n else index = Math.max(0, Math.min(items.length - 1, index))\n items[index]?.focus()\n}\n\nexport interface MenuProps extends PopoverProps {\n closeOnItemClick?: boolean\n loop?: boolean\n trigger?: 'click' | 'hover' | 'click-hover'\n openDelay?: number\n closeDelay?: number\n menuItemTabIndex?: -1 | 0\n withInitialFocusPlaceholder?: boolean\n alignItemsLabels?: 'all' | 'with-indicators' | 'none'\n checkIcon?: any\n}\nconst MenuBase = defineComponent({\n name: 'Menu',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, default: undefined },\n defaultOpened: Boolean,\n onChange: Function as PropType<(opened: boolean) => void>,\n onOpen: Function as PropType<() => void>,\n onClose: Function as PropType<() => void>,\n closeOnItemClick: { type: Boolean, default: true },\n loop: { type: Boolean, default: true },\n trigger: { type: String as PropType<'click' | 'hover' | 'click-hover'>, default: 'click' },\n openDelay: { type: Number, default: 0 },\n closeDelay: { type: Number, default: 100 },\n menuItemTabIndex: { type: Number as PropType<-1 | 0>, default: -1 },\n withInitialFocusPlaceholder: { type: Boolean, default: true },\n alignItemsLabels: {\n type: String as PropType<'all' | 'with-indicators' | 'none'>,\n default: 'with-indicators',\n },\n checkIcon: { type: null as unknown as PropType<any>, default: undefined },\n classNames: [Object, Function],\n styles: [Object, Function],\n vars: [Object, Function],\n unstyled: Boolean,\n },\n setup(props, { attrs, slots }) {\n const internal = ref(props.defaultOpened)\n const searchCount = ref(0)\n const searchExitClear = ref<(() => void) | null>(null)\n const controlled = () => props.opened !== undefined\n const current = () => (controlled() ? !!props.opened : internal.value)\n const change = (value: boolean) => {\n if (!controlled()) internal.value = value\n props.onChange?.(value)\n if (value) props.onOpen?.()\n else {\n props.onClose?.()\n searchExitClear.value?.()\n }\n }\n const open = () => !current() && change(true)\n const close = () => current() && change(false)\n const toggle = () => (current() ? close() : open())\n const delayed = useDelayedHover({\n open,\n close,\n openDelay: props.openDelay,\n closeDelay: props.closeDelay,\n })\n const getStyles = useStyles({\n name: 'Menu',\n classes,\n props,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n })\n provideMenuContext({\n get opened() {\n return current()\n },\n get hasSearch() {\n return searchCount.value > 0\n },\n registerSearch: () => {\n searchCount.value += 1\n return () => {\n searchCount.value = Math.max(0, searchCount.value - 1)\n }\n },\n setSearchExitClear: (callback) => {\n searchExitClear.value = callback\n },\n toggleDropdown: toggle,\n closeDropdownImmediately: close,\n openDropdown: props.trigger === 'click' ? open : delayed.openDropdown,\n closeDropdown: props.trigger === 'click' ? close : delayed.closeDropdown,\n get closeOnItemClick() {\n return props.closeOnItemClick\n },\n get loop() {\n return props.loop\n },\n get trigger() {\n return props.trigger\n },\n get menuItemTabIndex() {\n return props.menuItemTabIndex\n },\n getStyles,\n get unstyled() {\n return props.unstyled\n },\n get alignItemsLabels() {\n return props.alignItemsLabels\n },\n get checkIcon() {\n return props.checkIcon\n },\n })\n return () =>\n h(\n Popover,\n {\n ...attrs,\n opened: current(),\n onChange: (value: boolean) => change(value),\n defaultOpened: props.defaultOpened,\n trapFocus: (attrs as any).keepMounted ? false : ((attrs as any).trapFocus ?? true),\n returnFocus: (attrs as any).returnFocus ?? true,\n __staticSelector: 'Menu',\n classNames: props.classNames,\n styles: props.styles,\n unstyled: props.unstyled,\n },\n slots,\n )\n },\n})\n\nexport const MenuTarget = defineComponent({\n name: 'MenuTarget',\n inheritAttrs: false,\n props: { refProp: { type: String, default: 'ref' } },\n setup(props, { attrs, slots }) {\n const ctx = useMenuContext()\n return () =>\n h(\n PopoverTarget,\n { ...attrs, refProp: props.refProp },\n {\n default: () => {\n const children = slots.default?.() ?? []\n if (children.length !== 1) return children\n const child = children[0]\n return cloneVNode(\n child,\n {\n onClick:\n ctx.trigger === 'click' || ctx.trigger === 'click-hover'\n ? () => ctx.toggleDropdown()\n : undefined,\n onMouseenter:\n ctx.trigger === 'hover' || ctx.trigger === 'click-hover'\n ? ctx.openDropdown\n : undefined,\n onMouseleave: ctx.trigger === 'hover' ? ctx.closeDropdown : undefined,\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n ctx.openDropdown()\n nextTick(() =>\n menuItems(document.querySelector('[data-menu-dropdown]'))[0]?.focus(),\n )\n }\n },\n },\n true,\n )\n },\n },\n )\n },\n})\n\nexport const MenuDropdown = defineComponent({\n name: 'MenuDropdown',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useMenuContext()\n let query = ''\n let queryTimer: ReturnType<typeof setTimeout> | undefined\n return () =>\n h(\n PopoverDropdown,\n {\n ...attrs,\n role: 'menu',\n 'data-menu-dropdown': '',\n ...ctx.getStyles('dropdown', { className: attrs.class, style: attrs.style }),\n onMouseenter: ctx.trigger !== 'click' ? ctx.openDropdown : undefined,\n onMouseleave: ctx.trigger !== 'click' ? ctx.closeDropdown : undefined,\n onKeydown: (event: KeyboardEvent) => {\n call((attrs as any).onKeydown, event)\n if (event.defaultPrevented || ctx.hasSearch) {\n return\n }\n const root = event.currentTarget as HTMLElement\n const active = document.activeElement as HTMLElement\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n focusAt(root, active, 1, ctx.loop)\n } else if (event.key === 'ArrowUp') {\n event.preventDefault()\n focusAt(root, active, -1, ctx.loop)\n } else if (event.key === 'Home') {\n event.preventDefault()\n menuItems(root)[0]?.focus()\n } else if (event.key === 'End') {\n event.preventDefault()\n menuItems(root).at(-1)?.focus()\n } else if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n ) {\n query += event.key.toLowerCase()\n clearTimeout(queryTimer)\n queryTimer = setTimeout(() => (query = ''), 500)\n const match = menuItems(root).find((item) =>\n item.textContent?.trim().toLowerCase().startsWith(query),\n )\n match?.focus()\n }\n },\n },\n slots,\n )\n },\n})\n\nexport const MenuItem = defineComponent({\n name: 'MenuItem',\n inheritAttrs: false,\n props: {\n component: { type: [String, Object, Function], default: 'button' },\n color: String,\n closeMenuOnClick: { type: Boolean, default: undefined },\n leftSection: { type: null as any, default: undefined },\n rightSection: { type: null as any, default: undefined },\n indicator: { type: null as any, default: undefined },\n disabled: Boolean,\n reserveIndicator: Boolean,\n },\n setup(props, { attrs, slots }) {\n const ctx = useMenuContext()\n return () => {\n const indicator = ctx.alignItemsLabels === 'all' || props.reserveIndicator\n return h(\n UnstyledButton,\n {\n ...attrs,\n component: props.component,\n type: props.component === 'button' ? 'button' : undefined,\n role: (attrs as any).role ?? 'menuitem',\n tabindex: ctx.menuItemTabIndex,\n disabled: props.disabled,\n 'data-menu-item': '',\n 'data-disabled': props.disabled || (attrs as any)['data-disabled'] || undefined,\n 'data-mantine-stop-propagation': '',\n unstyled: ctx.unstyled,\n ...ctx.getStyles('item', { className: attrs.class, style: attrs.style }),\n onMousedown: (event: MouseEvent) => event.preventDefault(),\n onClick: (event: MouseEvent) => {\n call((attrs as any).onClick, event)\n if (\n !props.disabled &&\n !(attrs as any)['data-disabled'] &&\n (props.closeMenuOnClick ?? ctx.closeOnItemClick)\n )\n ctx.closeDropdownImmediately()\n },\n },\n () => [\n indicator && h('span', ctx.getStyles('itemIndicator'), props.indicator as any),\n props.leftSection != null &&\n h(\n 'span',\n { ...ctx.getStyles('itemSection'), 'data-position': 'left' },\n props.leftSection as any,\n ),\n h('span', ctx.getStyles('itemLabel'), slots),\n props.rightSection != null &&\n h(\n 'span',\n { ...ctx.getStyles('itemSection'), 'data-position': 'right' },\n props.rightSection as any,\n ),\n ],\n )\n }\n },\n})\nexport const MenuLabel = defineComponent({\n name: 'MenuLabel',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useMenuContext()\n return () =>\n h(\n Box,\n { ...attrs, ...ctx.getStyles('label', { className: attrs.class, style: attrs.style }) },\n slots,\n )\n },\n})\nexport const MenuDivider = defineComponent({\n name: 'MenuDivider',\n inheritAttrs: false,\n setup(_, { attrs }) {\n const ctx = useMenuContext()\n return () =>\n h(Box, {\n ...attrs,\n role: 'separator',\n ...ctx.getStyles('divider', { className: attrs.class, style: attrs.style }),\n })\n },\n})\nexport const MenuSearch = defineComponent({\n name: 'MenuSearch',\n inheritAttrs: false,\n props: {\n clearSearchOnClose: { type: Boolean, default: true },\n },\n setup(props, { attrs }) {\n const ctx = useMenuContext()\n const unregister = ctx.registerSearch()\n ctx.setSearchExitClear(\n props.clearSearchOnClose\n ? () => {\n clearActive(document.querySelector('[data-menu-dropdown]'))\n ;(attrs as any).onChange?.({\n currentTarget: { value: '' },\n target: { value: '' },\n })\n }\n : null,\n )\n onUnmounted(() => {\n unregister()\n ctx.setSearchExitClear(null)\n })\n\n return () => {\n const searchStyles = ctx.getStyles('search', { className: attrs.class, style: attrs.style })\n const forwarded = { ...attrs } as Record<string, any>\n delete forwarded.class\n delete forwarded.style\n delete forwarded.classNames\n delete forwarded.styles\n delete forwarded.onKeydown\n delete forwarded.onKeyDown\n delete forwarded.onChange\n delete forwarded.onInput\n\n const inputClassNames = (attrs as any).classNames as Record<string, any> | undefined\n const inputStyles = (attrs as any).styles as Record<string, any> | undefined\n\n return h(Input, {\n ...forwarded,\n type: 'search',\n 'data-autofocus': '',\n 'data-mantine-stop-propagation': '',\n __staticSelector: 'Menu',\n classNames: {\n ...inputClassNames,\n input: [searchStyles.class, inputClassNames?.input].filter(Boolean),\n },\n styles: {\n ...inputStyles,\n input: {\n ...searchStyles.style,\n ...inputStyles?.input,\n },\n },\n onInput: (event: Event) => {\n call((attrs as any).onInput, event)\n call((attrs as any).onChange, event)\n clearActive((event.currentTarget as HTMLElement).closest('[data-menu-dropdown]'))\n },\n onChange: (event: Event) => {\n call((attrs as any).onChange, event)\n clearActive((event.currentTarget as HTMLElement).closest('[data-menu-dropdown]'))\n },\n onKeydown: (event: KeyboardEvent) => {\n call((attrs as any).onKeydown ?? (attrs as any).onKeyDown, event)\n\n if (event.defaultPrevented) {\n return\n }\n\n const root = (event.currentTarget as HTMLElement).closest('[data-menu-dropdown]')\n const items = menuItems(root)\n const current = getActiveIndex(items)\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n if (items.length > 0) {\n const next = current >= items.length - 1 ? (ctx.loop ? 0 : current) : current + 1\n setActive(items[next] ?? null, root)\n }\n } else if (event.key === 'ArrowUp') {\n event.preventDefault()\n if (items.length > 0) {\n const next =\n current <= 0\n ? current === -1\n ? items.length - 1\n : ctx.loop\n ? items.length - 1\n : 0\n : current - 1\n setActive(items[next] ?? null, root)\n }\n } else if (event.key === 'Home') {\n event.preventDefault()\n setActive(items[0] ?? null, root)\n } else if (event.key === 'End') {\n event.preventDefault()\n setActive(items.at(-1) ?? null, root)\n } else if (event.key === 'Enter') {\n if ((event as any).isComposing || (event as any).keyCode === 229) {\n return\n }\n\n const target = items[current]\n\n if (target) {\n event.preventDefault()\n\n if (target.hasAttribute('data-sub-menu-item')) {\n target.focus()\n target.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true }),\n )\n } else {\n target.click()\n }\n }\n }\n },\n })\n }\n },\n})\n\ninterface SelectContext {\n value: any\n setValue: (value: any) => void\n}\nconst CheckboxGroupKey: InjectionKey<SelectContext> = Symbol('MenuCheckboxGroup')\nconst RadioGroupKey: InjectionKey<SelectContext> = Symbol('MenuRadioGroup')\nfunction group(key: InjectionKey<SelectContext>, multiple: boolean) {\n return defineComponent({\n inheritAttrs: false,\n props: {\n modelValue: { type: null as unknown as PropType<any>, default: undefined },\n value: { type: null as unknown as PropType<any>, default: undefined },\n defaultValue: {\n type: null as unknown as PropType<any>,\n default: multiple ? () => [] : undefined,\n },\n onChange: Function as PropType<(value: any) => void>,\n },\n setup(props, { slots }) {\n const local = ref(props.defaultValue)\n const current = () => props.modelValue ?? props.value ?? local.value\n const setValue = (value: any) => {\n if (props.modelValue === undefined && props.value === undefined) local.value = value\n ;(props.onChange as any)?.(value)\n }\n provide(key, {\n get value() {\n return current()\n },\n setValue,\n })\n return () => slots.default?.()\n },\n })\n}\nexport const MenuCheckboxGroup = group(CheckboxGroupKey, true)\nexport const MenuRadioGroup = group(RadioGroupKey, false)\nexport const MenuCheckboxItem = defineComponent({\n name: 'MenuCheckboxItem',\n inheritAttrs: false,\n props: {\n value: String,\n checked: { type: Boolean, default: undefined },\n defaultChecked: Boolean,\n onChange: Function,\n checkIcon: { type: null as unknown as PropType<any>, default: undefined },\n closeMenuOnClick: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const group = inject(CheckboxGroupKey, null)\n const menu = useMenuContext()\n const local = ref(props.defaultChecked)\n return () => {\n const checked =\n group && props.value != null\n ? (group.value || []).includes(props.value)\n : (props.checked ?? local.value)\n const toggle = () => {\n const next = !checked\n if (group && props.value != null)\n group.setValue(\n next\n ? [...(group.value || []), props.value]\n : (group.value || []).filter((v: string) => v !== props.value),\n )\n else if (props.checked === undefined) local.value = next\n ;(props.onChange as any)?.(next)\n }\n return h(\n MenuItem,\n {\n ...attrs,\n role: 'menuitemcheckbox',\n 'aria-checked': checked,\n reserveIndicator: menu.alignItemsLabels !== 'none' || checked,\n indicator: checked ? (props.checkIcon ?? menu.checkIcon ?? '✓') : undefined,\n closeMenuOnClick: props.closeMenuOnClick,\n onClick: toggle,\n },\n slots,\n )\n }\n },\n})\nexport const MenuRadioItem = defineComponent({\n name: 'MenuRadioItem',\n inheritAttrs: false,\n props: {\n value: { type: String, required: true },\n checked: { type: Boolean, default: undefined },\n onChange: Function,\n closeMenuOnClick: { type: Boolean, default: false },\n },\n setup(props, { attrs, slots }) {\n const group = inject(RadioGroupKey, null)\n const menu = useMenuContext()\n return () => {\n const checked = group ? group.value === props.value : !!props.checked\n const select = () => {\n group?.setValue(props.value)\n ;(props.onChange as any)?.(props.value)\n }\n return h(\n MenuItem,\n {\n ...attrs,\n role: 'menuitemradio',\n 'aria-checked': checked,\n reserveIndicator: menu.alignItemsLabels !== 'none' || checked,\n indicator: checked ? (menu.checkIcon ?? '✓') : undefined,\n closeMenuOnClick: props.closeMenuOnClick,\n onClick: select,\n },\n slots,\n )\n }\n },\n})\nexport const MenuContextMenu = defineComponent({\n name: 'MenuContextMenu',\n inheritAttrs: false,\n props: { disabled: Boolean, longPressDelay: Number },\n setup(props, { attrs, slots }) {\n const ctx = useMenuContext()\n return () =>\n h(\n PopoverContextMenu,\n { ...attrs, disabled: props.disabled, longPressDelay: props.longPressDelay },\n {\n default: () => {\n const children = slots.default?.() ?? []\n return children.length === 1\n ? cloneVNode(children[0], { onClick: ctx.closeDropdownImmediately }, true)\n : children\n },\n },\n )\n },\n})\n\nconst MenuSubBase = defineComponent({\n name: 'MenuSub',\n inheritAttrs: false,\n props: {\n opened: { type: Boolean, default: undefined },\n defaultOpened: Boolean,\n onChange: Function,\n openDelay: { type: Number, default: 100 },\n closeDelay: { type: Number, default: 100 },\n position: { type: String, default: 'right-start' },\n offset: { type: [Number, Object], default: 0 },\n transitionProps: { type: Object, default: () => ({ duration: 0 }) },\n middlewares: {\n type: Object,\n default: () => ({ shift: { crossAxis: true } }),\n },\n },\n setup(props, { attrs, slots }) {\n return () =>\n h(\n MenuBase,\n {\n ...attrs,\n opened: props.opened,\n defaultOpened: props.defaultOpened,\n onChange: props.onChange as any,\n trigger: 'hover',\n openDelay: props.openDelay,\n closeDelay: props.closeDelay,\n position: props.position,\n offset: props.offset,\n transitionProps: props.transitionProps,\n middlewares: props.middlewares,\n closeOnItemClick: false,\n withinPortal: (attrs as any).withinPortal ?? false,\n },\n slots,\n )\n },\n})\nexport const MenuSubTarget = MenuTarget\nexport const MenuSubDropdown = MenuDropdown\nexport const MenuSubItem = defineComponent({\n name: 'MenuSubItem',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () =>\n h(\n MenuItem,\n {\n ...attrs,\n 'data-sub-menu-item': '',\n rightSection: h(AccordionChevron, { class: classes.chevron, size: 14 }),\n },\n slots,\n )\n },\n})\nexport const MenuSub = Object.assign(MenuSubBase, {\n Target: MenuSubTarget,\n Dropdown: MenuSubDropdown,\n Item: MenuSubItem,\n})\n\nexport const Menu = Object.assign(MenuBase, {\n classes,\n Item: MenuItem,\n Label: MenuLabel,\n Dropdown: MenuDropdown,\n Target: MenuTarget,\n Divider: MenuDivider,\n Search: MenuSearch,\n Sub: MenuSub,\n CheckboxItem: MenuCheckboxItem,\n CheckboxGroup: MenuCheckboxGroup,\n RadioItem: MenuRadioItem,\n RadioGroup: MenuRadioGroup,\n ContextMenu: MenuContextMenu,\n})\nexport type MenuStylesNames =\n | 'item'\n | 'itemLabel'\n | 'itemSection'\n | 'itemIndicator'\n | 'label'\n | 'divider'\n | 'chevron'\n | 'search'\n | 'dropdown'\n | 'arrow'\n | 'overlay'\nexport interface MenuItemProps {\n color?: string\n closeMenuOnClick?: boolean\n leftSection?: any\n rightSection?: any\n disabled?: boolean\n [key: string]: any\n}\nexport interface MenuLabelProps {\n [key: string]: any\n}\nexport interface MenuDividerProps {\n [key: string]: any\n}\nexport interface MenuDropdownProps {\n [key: string]: any\n}\nexport interface MenuTargetProps {\n refProp?: string\n [key: string]: any\n}\nexport interface MenuSearchProps {\n [key: string]: any\n}\nexport interface MenuCheckboxItemProps {\n value?: string\n checked?: boolean\n defaultChecked?: boolean\n onChange?: (checked: boolean) => void\n checkIcon?: any\n closeMenuOnClick?: boolean\n [key: string]: any\n}\nexport interface MenuCheckboxGroupProps {\n modelValue?: string[]\n value?: string[]\n defaultValue?: string[]\n onChange?: (value: string[]) => void\n}\nexport interface MenuRadioItemProps {\n value: string\n checked?: boolean\n onChange?: (value: string) => void\n closeMenuOnClick?: boolean\n [key: string]: any\n}\nexport interface MenuRadioGroupProps {\n modelValue?: string\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n}\nexport interface MenuContextMenuProps {\n disabled?: boolean\n longPressDelay?: number\n [key: string]: any\n}\nexport interface MenuSubProps {\n opened?: boolean\n defaultOpened?: boolean\n onChange?: (opened: boolean) => void\n openDelay?: number\n closeDelay?: number\n [key: string]: any\n}\nexport type MenuSubTargetProps = MenuTargetProps\nexport type MenuSubDropdownProps = MenuDropdownProps\nexport type MenuSubItemProps = MenuItemProps\n","import { createSafeContext } from '../../core'\nimport type { ComboboxOptionProps } from './Combobox'\nimport type { ComboboxStore } from './use-combobox/use-combobox'\nexport interface ComboboxContextValue {\n getStyles: any\n store: ComboboxStore\n onOptionSubmit?: (value: string, props: ComboboxOptionProps) => void\n size: string\n resetSelectionOnOptionHover?: boolean\n readOnly?: boolean\n floatingHeight?: 'viewport'\n}\nexport const [provideComboboxContext, useComboboxContext] = createSafeContext<ComboboxContextValue>(\n 'Combobox component was not found in tree',\n)\n",".dropdown {\n --combobox-padding: 4px;\n padding: var(--combobox-padding);\n\n &:has([data-mantine-scrollbar]) {\n .search {\n max-width: calc(100% + var(--combobox-padding));\n }\n }\n\n &[data-composed] {\n padding-inline-end: 0;\n }\n\n &[data-hidden] {\n display: none;\n }\n\n &[data-floating-height='viewport']:not([data-hidden]) {\n --combobox-floating-options-max-height: calc(\n var(--combobox-floating-max-height, 100vh) - var(--combobox-padding) * 2\n );\n max-height: var(--combobox-floating-max-height, none);\n overflow: hidden;\n }\n}\n\n/* Variables must be both on dropdown and options to support usage of Combobox.Options without Combobox.Dropdown */\n.dropdown,\n.options {\n --combobox-option-padding-xs: 4px 8px;\n --combobox-option-padding-sm: 6px 10px;\n --combobox-option-padding-md: 8px 12px;\n --combobox-option-padding-lg: 10px 16px;\n --combobox-option-padding-xl: 14px 20px;\n --combobox-option-padding: var(--combobox-option-padding-sm);\n}\n\n.option {\n padding: var(--combobox-option-padding);\n font-size: var(--combobox-option-fz, var(--mantine-font-size-sm));\n border-radius: var(--mantine-radius-default);\n background-color: transparent;\n color: inherit;\n cursor: pointer;\n overflow-wrap: break-word;\n\n &:where([data-combobox-selected]) {\n background-color: var(--mantine-primary-color-filled);\n color: var(--mantine-color-white);\n }\n\n &:where([data-combobox-disabled]) {\n cursor: not-allowed;\n opacity: 0.35;\n }\n\n @mixin hover {\n &:where(:not([data-combobox-selected], [data-combobox-disabled])) {\n @mixin where-light {\n background-color: var(--mantine-color-gray-0);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-7);\n }\n }\n }\n}\n\n.search {\n margin-inline: calc(var(--combobox-padding) * -1);\n margin-top: calc(var(--combobox-padding) * -1);\n width: calc(100% + var(--combobox-padding) * 2);\n border-top-width: 0;\n border-inline-width: 0;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n margin-bottom: var(--combobox-padding);\n position: relative;\n\n &,\n &:focus {\n @mixin where-light {\n border-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n }\n\n @mixin where-light {\n background-color: var(--mantine-color-white);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-7);\n }\n}\n\n.empty {\n font-size: var(--combobox-option-fz, var(--mantine-font-size-sm));\n text-align: center;\n padding: var(--combobox-option-padding);\n color: var(--mantine-color-dimmed);\n}\n\n.header,\n.footer {\n font-size: var(--combobox-option-fz, var(--mantine-font-size-sm));\n border: 0 solid transparent;\n margin-inline: calc(var(--combobox-padding) * -1);\n padding: var(--combobox-option-padding);\n\n @mixin where-light {\n border-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n border-color: var(--mantine-color-dark-4);\n }\n}\n\n.footer {\n border-top-width: 1px;\n margin-top: var(--combobox-padding);\n margin-bottom: calc(var(--combobox-padding) * -1);\n}\n\n.header {\n border-bottom-width: 1px;\n margin-bottom: var(--combobox-padding);\n margin-top: calc(var(--combobox-padding) * -1);\n}\n\n.group {\n &:has(.groupLabel:only-child) {\n display: none;\n }\n}\n\n.groupLabel {\n color: var(--mantine-color-dimmed);\n font-size: calc(var(--combobox-option-fz, var(--mantine-font-size-sm)) * 0.85);\n padding: var(--combobox-option-padding);\n font-weight: var(--mantine-font-weight-medium);\n position: relative;\n display: flex;\n align-items: center;\n\n &::after {\n content: '';\n flex: 1;\n inset-inline: 0;\n height: 1px;\n margin-inline-start: var(--mantine-spacing-xs);\n\n @mixin where-light {\n background-color: var(--mantine-color-gray-2);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-4);\n }\n }\n\n &:only-child {\n display: none;\n }\n}\n\n/* ------- Combobox.Chevron ------- */\n.chevron {\n --combobox-chevron-size-xs: 14px;\n --combobox-chevron-size-sm: 18px;\n --combobox-chevron-size-md: 20px;\n --combobox-chevron-size-lg: 24px;\n --combobox-chevron-size-xl: 28px;\n --combobox-chevron-size: var(--combobox-chevron-size-sm);\n\n @mixin where-light {\n --_combobox-chevron-color: var(--combobox-chevron-color, var(--mantine-color-gray-6));\n }\n\n @mixin where-dark {\n --_combobox-chevron-color: var(--combobox-chevron-color, var(--mantine-color-dark-3));\n }\n\n width: var(--combobox-chevron-size);\n height: var(--combobox-chevron-size);\n color: var(--_combobox-chevron-color);\n\n &:where([data-error]) {\n color: var(--combobox-chevron-color, var(--mantine-color-error));\n }\n}\n\n/* ------- OptionsDropdown ------- */\n.optionsDropdownOption {\n display: flex;\n align-items: center;\n gap: 8px;\n\n &:where([data-reverse]) {\n justify-content: space-between;\n }\n}\n\n.optionsDropdownCheckIcon {\n opacity: 0.4;\n width: 0.8em;\n min-width: 0.8em;\n height: 0.8em;\n\n :where([data-combobox-selected]) & {\n opacity: 1;\n }\n}\n\n.optionsDropdownCheckPlaceholder {\n width: 0.8em;\n min-width: 0.8em;\n height: 0.8em;\n}\n","import { computed, onBeforeUnmount, ref, toValue, type MaybeRefOrGetter, type Ref } from 'vue'\n\nexport type ComboboxDropdownEventSource = 'keyboard' | 'mouse' | 'unknown'\nexport interface UseComboboxOptions {\n defaultOpened?: boolean\n opened?: MaybeRefOrGetter<boolean | undefined>\n onOpenedChange?: (opened: boolean) => void\n onDropdownClose?: (source: ComboboxDropdownEventSource) => void\n onDropdownOpen?: (source: ComboboxDropdownEventSource) => void\n loop?: boolean\n scrollBehavior?: ScrollBehavior\n}\nexport interface ComboboxStore {\n readonly dropdownOpened: boolean\n openDropdown: (source?: ComboboxDropdownEventSource) => void\n closeDropdown: (source?: ComboboxDropdownEventSource) => void\n toggleDropdown: (source?: ComboboxDropdownEventSource) => void\n readonly selectedOptionIndex: number\n getSelectedOptionIndex: () => number\n selectOption: (index: number) => string | null\n selectActiveOption: () => string | null\n selectFirstOption: () => string | null\n selectNextOption: () => string | null\n selectPreviousOption: () => string | null\n resetSelectedOption: () => void\n clickSelectedOption: () => void\n updateSelectedOptionIndex: (\n target?: 'active' | 'selected' | number,\n options?: { scrollIntoView?: boolean },\n ) => void\n readonly listId: string | null\n setListId: (id: string) => void\n searchRef: Ref<HTMLInputElement | null>\n focusSearchInput: () => void\n targetRef: Ref<HTMLElement | null>\n focusTarget: () => void\n}\n\nexport function useCombobox(options: UseComboboxOptions = {}): ComboboxStore {\n const internalOpened = ref(!!options.defaultOpened)\n const opened = computed(() =>\n options.opened === undefined\n ? internalOpened.value\n : (toValue(options.opened) ?? internalOpened.value),\n )\n const listId = ref<string | null>(null)\n const selectedIndex = ref(-1)\n const searchRef = ref<HTMLInputElement | null>(null)\n const targetRef = ref<HTMLElement | null>(null)\n const timers = new Set<ReturnType<typeof setTimeout>>()\n const setOpened = (value: boolean) => {\n if (options.opened === undefined || toValue(options.opened) === undefined)\n internalOpened.value = value\n options.onOpenedChange?.(value)\n }\n const openDropdown = (source: ComboboxDropdownEventSource = 'unknown') => {\n if (!opened.value) {\n setOpened(true)\n options.onDropdownOpen?.(source)\n }\n }\n const closeDropdown = (source: ComboboxDropdownEventSource = 'unknown') => {\n if (opened.value) {\n setOpened(false)\n options.onDropdownClose?.(source)\n }\n }\n const root = (): Document | ShadowRoot | undefined =>\n (targetRef.value?.getRootNode?.() as Document | ShadowRoot | undefined) ??\n (typeof document !== 'undefined' ? document : undefined)\n const list = (): HTMLElement | null => {\n if (!listId.value) return null\n const currentRoot = root()\n return ((currentRoot as any)?.getElementById?.(listId.value) ??\n currentRoot?.querySelector<HTMLElement>(`#${listId.value}`)) as HTMLElement | null\n }\n const items = (): HTMLElement[] =>\n Array.from(list()?.querySelectorAll<HTMLElement>('[data-combobox-option]') ?? [])\n const clearSelected = () =>\n items().forEach((item) => {\n item.removeAttribute('data-combobox-selected')\n item.removeAttribute('aria-selected')\n })\n const selectOption = (index: number) => {\n const optionsList = items()\n if (!optionsList.length) return null\n let next = index >= optionsList.length ? 0 : index < 0 ? optionsList.length - 1 : index\n let attempts = 0\n while (\n optionsList[next]?.hasAttribute('data-combobox-disabled') &&\n attempts < optionsList.length\n ) {\n next =\n (next + (index < selectedIndex.value ? -1 : 1) + optionsList.length) % optionsList.length\n attempts += 1\n }\n if (!optionsList[next] || optionsList[next].hasAttribute('data-combobox-disabled')) return null\n selectedIndex.value = next\n clearSelected()\n optionsList[next].setAttribute('data-combobox-selected', 'true')\n optionsList[next].setAttribute('aria-selected', 'true')\n optionsList[next].scrollIntoView?.({\n block: 'nearest',\n behavior: options.scrollBehavior ?? 'instant',\n })\n return optionsList[next].id\n }\n const enabledIndices = () =>\n items()\n .map((item, index) => (!item.hasAttribute('data-combobox-disabled') ? index : -1))\n .filter((index) => index >= 0)\n const selectNextOption = () => {\n const enabled = enabledIndices()\n if (!enabled.length) return null\n const at = enabled.indexOf(selectedIndex.value)\n const next =\n at === -1\n ? enabled[0]\n : (enabled[at + 1] ?? (options.loop === false ? enabled.at(-1)! : enabled[0]))\n return selectOption(next)\n }\n const selectPreviousOption = () => {\n const enabled = enabledIndices()\n if (!enabled.length) return null\n const at = enabled.indexOf(selectedIndex.value)\n const next =\n at === -1\n ? enabled.at(-1)!\n : (enabled[at - 1] ?? (options.loop === false ? enabled[0] : enabled.at(-1)!))\n return selectOption(next)\n }\n const updateSelectedOptionIndex = (\n target: 'active' | 'selected' | number = 'selected',\n config?: { scrollIntoView?: boolean },\n ) => {\n if (typeof target === 'number') {\n selectedIndex.value = target\n if (config?.scrollIntoView)\n items()[target]?.scrollIntoView?.({\n block: 'nearest',\n behavior: options.scrollBehavior ?? 'instant',\n })\n return\n }\n const timer = setTimeout(() => {\n timers.delete(timer)\n const index = items().findIndex((item) => item.hasAttribute(`data-combobox-${target}`))\n selectedIndex.value = index\n if (config?.scrollIntoView)\n items()[index]?.scrollIntoView?.({\n block: 'nearest',\n behavior: options.scrollBehavior ?? 'instant',\n })\n })\n timers.add(timer)\n }\n const defer = (callback: () => void) => {\n const timer = setTimeout(() => {\n timers.delete(timer)\n callback()\n })\n timers.add(timer)\n }\n onBeforeUnmount(() => timers.forEach(clearTimeout))\n return {\n get dropdownOpened() {\n return opened.value\n },\n openDropdown,\n closeDropdown,\n toggleDropdown: (source = 'unknown') =>\n opened.value ? closeDropdown(source) : openDropdown(source),\n get selectedOptionIndex() {\n return selectedIndex.value\n },\n getSelectedOptionIndex: () => selectedIndex.value,\n selectOption,\n selectActiveOption: () => {\n const index = items().findIndex((item) => item.hasAttribute('data-combobox-active'))\n return selectOption(index < 0 ? 0 : index)\n },\n selectFirstOption: () => {\n const first = enabledIndices()[0]\n return first === undefined ? null : selectOption(first)\n },\n selectNextOption,\n selectPreviousOption,\n resetSelectedOption: () => {\n selectedIndex.value = -1\n clearSelected()\n },\n clickSelectedOption: () => items()[selectedIndex.value]?.click(),\n updateSelectedOptionIndex,\n get listId() {\n return listId.value\n },\n setListId: (id) => (listId.value = id),\n searchRef,\n focusSearchInput: () => defer(() => searchRef.value?.focus()),\n targetRef,\n focusTarget: () => defer(() => targetRef.value?.focus()),\n }\n}\n","import { ref } from 'vue'\nimport { useComboboxContext } from '../Combobox.context'\n\nexport function useComboboxTargetProps(input: {\n targetType?: 'input' | 'button'\n withAriaAttributes?: boolean\n withKeyboardNavigation?: boolean\n withExpandedAttribute?: boolean\n onKeydown?: any\n onClick?: any\n autoComplete?: string\n}) {\n const ctx = useComboboxContext()\n const selectedOptionId = ref<string | null>(null)\n const onKeydown = (event: KeyboardEvent) => {\n input.onKeydown?.(event)\n if (ctx.readOnly || input.withKeyboardNavigation === false || event.isComposing) return\n if (event.code === 'ArrowDown' || event.key === 'ArrowDown') {\n event.preventDefault()\n if (!ctx.store.dropdownOpened) {\n ctx.store.openDropdown('keyboard')\n selectedOptionId.value = ctx.store.selectActiveOption()\n ctx.store.updateSelectedOptionIndex('selected', { scrollIntoView: true })\n } else selectedOptionId.value = ctx.store.selectNextOption()\n }\n if (event.code === 'ArrowUp' || event.key === 'ArrowUp') {\n event.preventDefault()\n if (!ctx.store.dropdownOpened) {\n ctx.store.openDropdown('keyboard')\n selectedOptionId.value = ctx.store.selectActiveOption()\n ctx.store.updateSelectedOptionIndex('selected', { scrollIntoView: true })\n } else selectedOptionId.value = ctx.store.selectPreviousOption()\n }\n if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.key === 'Enter') {\n if ((event as any).keyCode === 229) return\n if (ctx.store.dropdownOpened && ctx.store.getSelectedOptionIndex() !== -1) {\n event.preventDefault()\n ctx.store.clickSelectedOption()\n } else if (input.targetType === 'button') {\n event.preventDefault()\n ctx.store.openDropdown('keyboard')\n }\n }\n if (event.key === 'Escape') ctx.store.closeDropdown('keyboard')\n if ((event.code === 'Space' || event.key === ' ') && input.targetType === 'button') {\n event.preventDefault()\n ctx.store.toggleDropdown('keyboard')\n }\n }\n const onClick = (event: MouseEvent) => {\n if (input.targetType === 'button') (event.currentTarget as HTMLElement).focus()\n input.onClick?.(event)\n }\n return {\n onKeydown,\n onClick,\n get role() {\n return input.withAriaAttributes !== false && input.withExpandedAttribute\n ? 'combobox'\n : undefined\n },\n get 'aria-haspopup'() {\n return input.withAriaAttributes !== false ? 'listbox' : undefined\n },\n get 'aria-expanded'() {\n return input.withAriaAttributes !== false && input.withExpandedAttribute\n ? !!(ctx.store.listId && ctx.store.dropdownOpened)\n : undefined\n },\n get 'aria-controls'() {\n return input.withAriaAttributes !== false && ctx.store.dropdownOpened && ctx.store.listId\n ? ctx.store.listId\n : undefined\n },\n get 'aria-activedescendant'() {\n return input.withAriaAttributes !== false && ctx.store.dropdownOpened\n ? selectedOptionId.value || undefined\n : undefined\n },\n get autoComplete() {\n return input.autoComplete\n },\n get 'data-expanded'() {\n return ctx.store.dropdownOpened || undefined\n },\n get 'data-mantine-stop-propagation'() {\n return ctx.store.dropdownOpened || undefined\n },\n }\n}\n","import { cloneVNode, defineComponent, h, onMounted, type PropType, type VNode } from 'vue'\nimport { mergeRefs, useId } from '@mantine-vue/hooks'\nimport {\n Box,\n createVarsResolver,\n getFontSize,\n getSize,\n getThemeColor,\n rem,\n useStyles,\n type Primitive,\n} from '../../core'\nimport { Input, InputClearButton } from '../Input'\nimport { Popover, PopoverDropdown, PopoverTarget, type PopoverProps } from '../Popover'\nimport { provideComboboxContext, useComboboxContext } from './Combobox.context'\nimport classes from './Combobox.module.css'\nimport { useCombobox, type ComboboxStore } from './use-combobox/use-combobox'\nimport { useComboboxTargetProps } from './use-combobox-target-props/use-combobox-target-props'\n\nexport interface ComboboxOptionProps {\n value: Primitive\n active?: boolean\n disabled?: boolean\n selected?: boolean\n [key: string]: any\n}\nexport interface ComboboxProps extends PopoverProps {\n store?: ComboboxStore\n onOptionSubmit?: (value: string, props: ComboboxOptionProps) => void\n size?: string\n dropdownPadding?: string | number\n resetSelectionOnOptionHover?: boolean\n readOnly?: boolean\n floatingHeight?: 'viewport'\n __staticSelector?: string\n}\nconst varsResolver = createVarsResolver<any>((_, props) => ({\n options: {\n '--combobox-option-fz': getFontSize(props.size),\n '--combobox-option-padding': getSize(props.size, 'combobox-option-padding'),\n },\n dropdown: {\n '--combobox-padding':\n props.dropdownPadding === undefined ? undefined : rem(props.dropdownPadding),\n '--combobox-option-fz': getFontSize(props.size),\n '--combobox-option-padding': getSize(props.size, 'combobox-option-padding'),\n },\n}))\nconst chevronVarsResolver = createVarsResolver<any>((theme, props) => ({\n chevron: {\n '--combobox-chevron-size': getSize(props.size, 'combobox-chevron-size'),\n '--combobox-chevron-color': props.color ? getThemeColor(props.color, theme) : undefined,\n },\n}))\nfunction childrenOne(slots: any, name: string): VNode {\n const children = slots.default?.().filter((child: VNode) => typeof child.type !== 'symbol') ?? []\n if (children.length !== 1)\n throw new Error(\n `${name} component children should be a single element or component that accepts ref`,\n )\n return children[0]\n}\n\nconst ComboboxBase = defineComponent({\n name: 'Combobox',\n inheritAttrs: false,\n props: {\n store: Object as PropType<ComboboxStore>,\n onOptionSubmit: Function as PropType<(value: string, props: ComboboxOptionProps) => void>,\n size: { type: String, default: 'sm' },\n dropdownPadding: [String, Number],\n resetSelectionOnOptionHover: Boolean,\n readOnly: Boolean,\n floatingHeight: String as PropType<'viewport'>,\n __staticSelector: { type: String, default: 'Combobox' },\n classNames: [Object, Function],\n styles: [Object, Function],\n vars: [Object, Function],\n unstyled: Boolean,\n },\n setup(props, { attrs, slots }) {\n const uncontrolled = useCombobox()\n const store = props.store || uncontrolled\n const getStyles = useStyles({\n name: props.__staticSelector,\n classes,\n props,\n classNames: props.classNames as any,\n styles: props.styles as any,\n vars: props.vars as any,\n unstyled: props.unstyled,\n varsResolver,\n })\n provideComboboxContext({\n getStyles,\n store,\n get onOptionSubmit() {\n return props.onOptionSubmit\n },\n get size() {\n return props.size\n },\n get resetSelectionOnOptionHover() {\n return props.resetSelectionOnOptionHover\n },\n get readOnly() {\n return props.readOnly\n },\n get floatingHeight() {\n return props.floatingHeight\n },\n })\n return () =>\n h(\n Popover,\n {\n keepMounted: true,\n withinPortal: true,\n width: 'target',\n transitionProps: { transition: 'fade', duration: 0 },\n ...attrs,\n opened: store.dropdownOpened,\n onChange: (opened: boolean) => {\n if (!opened) {\n ;(attrs as any).onClose?.()\n store.closeDropdown()\n }\n },\n withRoles: false,\n unstyled: props.unstyled,\n __staticSelector: props.__staticSelector,\n },\n slots,\n )\n },\n})\n\nfunction targetComponent(name: string, withPopover: boolean) {\n return defineComponent({\n name,\n inheritAttrs: false,\n props: {\n refProp: { type: String, default: 'ref' },\n withKeyboardNavigation: { type: Boolean, default: true },\n withAriaAttributes: { type: Boolean, default: true },\n withExpandedAttribute: Boolean,\n targetType: { type: String as PropType<'button' | 'input'>, default: 'input' },\n autoComplete: { type: String, default: 'off' },\n },\n setup(props, { attrs, slots }) {\n const ctx = useComboboxContext()\n const child = () => childrenOne(slots, name)\n const targetProps = useComboboxTargetProps({\n targetType: props.targetType,\n withAriaAttributes: props.withAriaAttributes,\n withKeyboardNavigation: props.withKeyboardNavigation,\n withExpandedAttribute: props.withExpandedAttribute,\n autoComplete: props.autoComplete,\n })\n return () => {\n const vnode = child()\n const cloned = cloneVNode(\n vnode,\n {\n ...attrs,\n ...targetProps,\n [props.refProp]: mergeRefs(\n (node: any) => {\n const root = node?.$el ?? node\n ctx.store.targetRef.value = root?.matches?.('input,button,[tabindex]')\n ? root\n : (root?.querySelector?.('input,button,[tabindex]') ?? root)\n },\n (vnode as any).ref,\n ),\n },\n true,\n )\n return withPopover ? h(PopoverTarget, { refProp: props.refProp }, () => cloned) : cloned\n }\n },\n })\n}\nexport const ComboboxTarget = targetComponent('ComboboxTarget', true)\nexport const ComboboxEventsTarget = targetComponent('ComboboxEventsTarget', false)\nexport const ComboboxDropdownTarget = defineComponent({\n name: 'ComboboxDropdownTarget',\n inheritAttrs: false,\n props: { refProp: { type: String, default: 'ref' } },\n setup(props, { attrs, slots }) {\n return () => h(PopoverTarget, { ...attrs, refProp: props.refProp }, slots)\n },\n})\n\nexport const ComboboxDropdown = defineComponent({\n name: 'ComboboxDropdown',\n inheritAttrs: false,\n props: { hidden: Boolean },\n setup(props, { attrs, slots }) {\n const ctx = useComboboxContext()\n return () =>\n h(\n PopoverDropdown,\n {\n ...attrs,\n role: 'presentation',\n 'data-hidden': props.hidden || undefined,\n 'data-floating-height': ctx.floatingHeight || undefined,\n ...ctx.getStyles('dropdown', { className: attrs.class, style: attrs.style }),\n },\n slots,\n )\n },\n})\nexport const ComboboxOptions = defineComponent({\n name: 'ComboboxOptions',\n inheritAttrs: false,\n props: { id: String, labelledBy: String },\n setup(props, { attrs, slots }) {\n const ctx = useComboboxContext()\n const id = useId(props.id)\n onMounted(() => ctx.store.setListId(id.value))\n return () =>\n h(\n Box,\n {\n ...attrs,\n id: id.value,\n role: 'listbox',\n 'aria-labelledby': props.labelledBy,\n ...ctx.getStyles('options', { className: attrs.class, style: attrs.style }),\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n ;(attrs as any).onMousedown?.(event)\n },\n },\n slots,\n )\n },\n})\nexport const ComboboxOption = defineComponent({\n name: 'ComboboxOption',\n inheritAttrs: false,\n props: {\n value: { type: [String, Number, Boolean] as PropType<Primitive>, required: true },\n active: Boolean,\n disabled: Boolean,\n selected: Boolean,\n id: String,\n },\n setup(props, { attrs, slots }) {\n const ctx = useComboboxContext()\n const id = useId(props.id)\n return () =>\n h(\n Box,\n {\n ...attrs,\n id: id.value,\n role: 'option',\n ...ctx.getStyles('option', { className: attrs.class, style: attrs.style }),\n 'data-combobox-option': '',\n 'data-combobox-active': props.active || undefined,\n 'data-combobox-disabled': props.disabled || undefined,\n 'data-combobox-selected': props.selected || undefined,\n 'aria-selected': props.selected || undefined,\n onClick: (event: MouseEvent) => {\n if (props.disabled) event.preventDefault()\n else {\n ctx.onOptionSubmit?.(String(props.value), { ...props, ...attrs })\n ;(attrs as any).onClick?.(event)\n }\n },\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n ;(attrs as any).onMousedown?.(event)\n },\n onMouseover: (event: MouseEvent) => {\n if (ctx.resetSelectionOnOptionHover) ctx.store.resetSelectedOption()\n ;(attrs as any).onMouseover?.(event)\n },\n },\n slots,\n )\n },\n})\n\nexport const ComboboxSearch = defineComponent({\n name: 'ComboboxSearch',\n inheritAttrs: false,\n props: {\n withAriaAttributes: { type: Boolean, default: true },\n withKeyboardNavigation: { type: Boolean, default: true },\n size: String,\n },\n setup(props, { attrs }) {\n const ctx = useComboboxContext()\n const targetProps = useComboboxTargetProps({\n targetType: 'input',\n withAriaAttributes: props.withAriaAttributes,\n withKeyboardNavigation: props.withKeyboardNavigation,\n withExpandedAttribute: false,\n autoComplete: 'off',\n onKeydown: (attrs as any).onKeydown,\n onClick: (attrs as any).onClick,\n })\n return () =>\n h(Input, {\n ...attrs,\n ...targetProps,\n ref: (node: any) => {\n const element = node?.$el?.querySelector?.('input') ?? node?.$el ?? node\n ctx.store.searchRef.value = element\n },\n size: props.size || ctx.size,\n class: [ctx.getStyles('search').class, attrs.class],\n style: [ctx.getStyles('search').style, attrs.style],\n __staticSelector: 'Combobox',\n })\n },\n})\nfunction section(name: string, selector: string) {\n return defineComponent({\n name,\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n const ctx = useComboboxContext()\n return () =>\n h(\n Box,\n { ...attrs, ...ctx.getStyles(selector, { className: attrs.class, style: attrs.style }) },\n slots,\n )\n },\n })\n}\nexport const ComboboxEmpty = section('ComboboxEmpty', 'empty')\nexport const ComboboxHeader = section('ComboboxHeader', 'header')\nexport const ComboboxFooter = section('ComboboxFooter', 'footer')\nexport const ComboboxGroup = defineComponent({\n name: 'ComboboxGroup',\n inheritAttrs: false,\n props: { label: { type: null as any, default: undefined }, id: String },\n setup(props, { attrs, slots }) {\n const ctx = useComboboxContext()\n const id = useId(props.id)\n return () =>\n h(\n Box,\n {\n ...attrs,\n role: 'group',\n 'aria-labelledby': props.label ? id.value : undefined,\n ...ctx.getStyles('group', { className: attrs.class, style: attrs.style }),\n },\n () => [\n props.label &&\n h('div', { id: id.value, ...ctx.getStyles('groupLabel') }, props.label as any),\n slots.default?.(),\n ],\n )\n },\n})\nexport const ComboboxChevron = defineComponent({\n name: 'ComboboxChevron',\n inheritAttrs: false,\n props: { size: String, error: { default: null }, color: String },\n setup(props, { attrs }) {\n const getStyles = useStyles({\n name: 'ComboboxChevron',\n classes,\n props,\n className: attrs.class,\n style: attrs.style as any,\n varsResolver: chevronVarsResolver,\n })\n return () =>\n h(\n Box,\n {\n ...attrs,\n component: 'svg',\n ...getStyles('chevron'),\n size: props.size,\n viewBox: '0 0 15 15',\n fill: 'none',\n xmlns: 'http://www.w3.org/2000/svg',\n mod: { 'combobox-chevron': true, error: Boolean(props.error) },\n },\n () => [\n h('path', {\n d: 'M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z',\n fill: 'currentColor',\n fillRule: 'evenodd',\n clipRule: 'evenodd',\n }),\n ],\n )\n },\n})\nexport const ComboboxClearButton = defineComponent({\n name: 'ComboboxClearButton',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => h(InputClearButton, { ...attrs, __staticSelector: 'Combobox' }, slots)\n },\n})\nexport const ComboboxHiddenInput = defineComponent({\n name: 'ComboboxHiddenInput',\n inheritAttrs: false,\n props: {\n value: {\n type: [String, Number, Boolean, Array] as PropType<Primitive | Primitive[] | null>,\n default: null,\n },\n valuesDivider: { type: String, default: ',' },\n },\n setup(props, { attrs }) {\n return () =>\n h('input', {\n ...attrs,\n type: 'hidden',\n value: Array.isArray(props.value)\n ? props.value.join(props.valuesDivider)\n : props.value != null\n ? String(props.value)\n : '',\n })\n },\n})\n\nexport const Combobox = Object.assign(ComboboxBase, {\n classes,\n varsResolver,\n Target: ComboboxTarget,\n EventsTarget: ComboboxEventsTarget,\n DropdownTarget: ComboboxDropdownTarget,\n Dropdown: ComboboxDropdown,\n Options: ComboboxOptions,\n Option: ComboboxOption,\n Search: ComboboxSearch,\n Empty: ComboboxEmpty,\n Header: ComboboxHeader,\n Footer: ComboboxFooter,\n Group: ComboboxGroup,\n Chevron: ComboboxChevron,\n ClearButton: ComboboxClearButton,\n HiddenInput: ComboboxHiddenInput,\n})\nexport type ComboboxStylesNames =\n | 'options'\n | 'dropdown'\n | 'option'\n | 'search'\n | 'empty'\n | 'footer'\n | 'header'\n | 'group'\n | 'groupLabel'\nexport interface ComboboxTargetProps {\n refProp?: string\n withKeyboardNavigation?: boolean\n withAriaAttributes?: boolean\n withExpandedAttribute?: boolean\n targetType?: 'button' | 'input'\n autoComplete?: string\n [key: string]: any\n}\nexport interface ComboboxDropdownProps {\n hidden?: boolean\n [key: string]: any\n}\nexport interface ComboboxOptionsProps {\n labelledBy?: string\n [key: string]: any\n}\nexport interface ComboboxSearchProps {\n withAriaAttributes?: boolean\n withKeyboardNavigation?: boolean\n [key: string]: any\n}\nexport type ComboboxEventsTargetProps = ComboboxTargetProps\nexport interface ComboboxDropdownTargetProps {\n refProp?: string\n [key: string]: any\n}\nexport interface ComboboxEmptyProps {\n [key: string]: any\n}\nexport interface ComboboxHeaderProps {\n [key: string]: any\n}\nexport interface ComboboxFooterProps {\n [key: string]: any\n}\nexport interface ComboboxGroupProps {\n label?: any\n [key: string]: any\n}\nexport interface ComboboxChevronProps {\n size?: string\n error?: any\n color?: string\n [key: string]: any\n}\nexport interface ComboboxClearButtonProps {\n [key: string]: any\n}\nexport interface ComboboxHiddenInputProps {\n value: Primitive | Primitive[] | null\n valuesDivider?: string\n [key: string]: any\n}\n","import { toValue, type MaybeRefOrGetter } from 'vue'\nimport { useCombobox, type ComboboxStore, type UseComboboxOptions } from './use-combobox'\n\nexport interface UseVirtualizedComboboxOptions extends UseComboboxOptions {\n totalOptionsCount: MaybeRefOrGetter<number>\n isOptionDisabled?: (index: number) => boolean\n getOptionId: (index: number) => string | null\n selectedOptionIndex: MaybeRefOrGetter<number>\n setSelectedOptionIndex: (index: number) => void\n activeOptionIndex?: MaybeRefOrGetter<number | undefined>\n onSelectedOptionSubmit: (index: number) => void\n}\nexport function useVirtualizedCombobox(options: UseVirtualizedComboboxOptions): ComboboxStore {\n const base = useCombobox(options)\n const count = () => toValue(options.totalOptionsCount)\n const selected = () => toValue(options.selectedOptionIndex)\n const disabled = options.isOptionDisabled ?? (() => false)\n const selectOption = (index: number) => {\n if (!count()) {\n options.setSelectedOptionIndex(-1)\n return null\n }\n const next = index >= count() ? 0 : index < 0 ? count() - 1 : index\n if (disabled(next)) return null\n options.setSelectedOptionIndex(next)\n return options.getOptionId(next)\n }\n const seek = (direction: 1 | -1) => {\n if (!count()) return null\n let index = selected()\n for (let attempts = 0; attempts < count(); attempts += 1) {\n index += direction\n if (index < 0) index = options.loop === false ? 0 : count() - 1\n if (index >= count()) index = options.loop === false ? count() - 1 : 0\n if (!disabled(index)) return selectOption(index)\n }\n return null\n }\n return {\n get dropdownOpened() {\n return base.dropdownOpened\n },\n openDropdown: base.openDropdown,\n closeDropdown: base.closeDropdown,\n toggleDropdown: base.toggleDropdown,\n get selectedOptionIndex() {\n return selected()\n },\n getSelectedOptionIndex: selected,\n selectOption,\n selectActiveOption: () => selectOption(toValue(options.activeOptionIndex) ?? 0),\n selectFirstOption: () => {\n for (let index = 0; index < count(); index += 1)\n if (!disabled(index)) return selectOption(index)\n return null\n },\n selectNextOption: () => seek(1),\n selectPreviousOption: () => seek(-1),\n resetSelectedOption: () => options.setSelectedOptionIndex(-1),\n clickSelectedOption: () => {\n const index = selected()\n if (index >= 0 && index < count() && !disabled(index)) options.onSelectedOptionSubmit(index)\n },\n updateSelectedOptionIndex: (target = 'selected') => {\n if (typeof target === 'number') options.setSelectedOptionIndex(target)\n else if (target === 'active' && toValue(options.activeOptionIndex) !== undefined)\n options.setSelectedOptionIndex(toValue(options.activeOptionIndex)!)\n },\n get listId() {\n return base.listId\n },\n setListId: base.setListId,\n searchRef: base.searchRef,\n focusSearchInput: base.focusSearchInput,\n targetRef: base.targetRef,\n focusTarget: base.focusTarget,\n }\n}\n","import type { Primitive } from '../../core'\nimport type {\n ComboboxData,\n ComboboxGenericData,\n ComboboxGenericItem,\n ComboboxItem,\n ComboboxItemGroup,\n ComboboxParsedItem,\n ComboboxParsedItemGroup,\n} from './Combobox.types'\n\nfunction parseItem<Value extends Primitive>(\n item: Value | ComboboxGenericItem<Value> | ComboboxItem<Value> | ComboboxItemGroup<any>,\n): ComboboxItem<Value> | ComboboxParsedItemGroup<Value> {\n if (typeof item === 'object' && item !== null && 'group' in item)\n return {\n group: item.group,\n items: item.items.map((entry: any) => parseItem(entry) as ComboboxItem<Value>),\n }\n if (typeof item === 'object' && item !== null && 'value' in item)\n return 'label' in item\n ? (item as ComboboxItem<Value>)\n : { value: item.value, label: String(item.value), disabled: item.disabled }\n return { value: item as Value, label: String(item) }\n}\nexport function getParsedComboboxData<Value extends Primitive = string>(\n data?: ComboboxData<Value> | ComboboxGenericData<Value>,\n): ComboboxParsedItem<Value>[] {\n return data ? data.map((item: any) => parseItem(item)) : []\n}\nexport function isOptionsGroup<Value extends Primitive>(\n item: ComboboxParsedItem<Value>,\n): item is ComboboxParsedItemGroup<Value> {\n return 'group' in item\n}\nexport function getOptionsLockup<Value extends Primitive = string>(\n options: ComboboxParsedItem<Value>[],\n): Record<PropertyKey, ComboboxItem<Value>> {\n const result: Record<PropertyKey, ComboboxItem<Value>> = {}\n options.forEach((item) =>\n isOptionsGroup(item)\n ? Object.assign(result, getOptionsLockup(item.items))\n : (result[String(item.value)] = item),\n )\n return result\n}\nexport function defaultOptionsFilter<Value extends Primitive>({\n options,\n search,\n limit,\n}: {\n options: ComboboxParsedItem<Value>[]\n search: string\n limit: number\n}): ComboboxParsedItem<Value>[] {\n const query = search.trim().toLowerCase()\n const result: ComboboxParsedItem<Value>[] = []\n for (const item of options) {\n if (result.length >= limit) break\n if (isOptionsGroup(item)) {\n const group = defaultOptionsFilter({\n options: item.items,\n search,\n limit: limit - result.length,\n }) as ComboboxItem<Value>[]\n if (group.length) result.push({ group: item.group, items: group })\n } else if (item.label.toLowerCase().includes(query)) result.push(item)\n }\n return result\n}\nexport function isEmptyComboboxData(data: ComboboxParsedItem<any>[]) {\n return data.every((item) => (isOptionsGroup(item) ? item.items.length === 0 : false))\n}\nexport function validateOptions(options: ComboboxParsedItem<any>[], values = new Set<Primitive>()) {\n for (const option of options) {\n if (isOptionsGroup(option)) validateOptions(option.items, values)\n else {\n if (option.value === undefined)\n throw new Error('[@mantine-vue/core] Each option must have value property')\n if (values.has(option.value))\n throw new Error(\n `[@mantine-vue/core] Duplicate options are not supported. Option with value \"${option.value}\" was provided more than once`,\n )\n values.add(option.value)\n }\n }\n}\nexport type PillReorderPosition = 'before' | 'after'\nexport function movePill<T>(\n value: T[],\n from: number,\n to: number,\n position: PillReorderPosition,\n): T[] {\n if (\n from === to ||\n (position === 'before' && to === from + 1) ||\n (position === 'after' && to === from - 1)\n )\n return value\n const result = value.slice()\n const [item] = result.splice(from, 1)\n let target = from < to ? to - 1 : to\n if (position === 'after') target += 1\n result.splice(target, 0, item)\n return result\n}\n","import { defineComponent, h, type PropType } from 'vue'\nimport type { Primitive } from '../../../core'\nimport { CheckIcon } from '../../Checkbox'\nimport { ScrollAreaAutosize } from '../../ScrollArea'\nimport { Combobox } from '../Combobox'\nimport { useComboboxContext } from '../Combobox.context'\nimport type {\n ComboboxLikeRenderOptionInput,\n ComboboxParsedItem,\n OptionsFilter,\n} from '../Combobox.types'\nimport {\n defaultOptionsFilter,\n isEmptyComboboxData,\n isOptionsGroup,\n validateOptions,\n} from '../data-utils'\nimport classes from '../Combobox.module.css'\n\nexport type OptionsData = ComboboxParsedItem<Primitive>[]\nexport interface OptionsDropdownProps {\n data: OptionsData\n filter?: OptionsFilter<Primitive>\n search?: string\n limit?: number\n withScrollArea?: boolean\n maxDropdownHeight?: number | string\n floatingHeight?: 'viewport'\n hidden?: boolean\n hiddenWhenEmpty?: boolean\n filterOptions?: boolean\n withCheckIcon?: boolean\n withAlignedLabels?: boolean\n value?: Primitive | Primitive[] | null\n checkIconPosition?: 'left' | 'right'\n nothingFoundMessage?: any\n unstyled?: boolean\n labelId?: string\n 'aria-label'?: string\n renderOption?: (input: ComboboxLikeRenderOptionInput<any>) => any\n scrollAreaProps?: Record<string, any>\n}\nconst checked = (value: Primitive | Primitive[] | null | undefined, option: Primitive) =>\n Array.isArray(value) ? value.includes(option) : value === option\nfunction renderItem(item: ComboboxParsedItem<Primitive>, props: OptionsDropdownProps): any {\n if (isOptionsGroup(item))\n return h(Combobox.Group, { label: item.group }, () =>\n item.items.map((child) => renderItem(child, props)),\n )\n const isChecked = checked(props.value, item.value)\n const check = props.withCheckIcon\n ? isChecked\n ? h(CheckIcon, { class: classes.optionsDropdownCheckIcon })\n : props.withAlignedLabels\n ? h('span', { class: classes.optionsDropdownCheckPlaceholder })\n : null\n : null\n const content = props.renderOption?.({ option: item, checked: isChecked }) ?? [\n props.checkIconPosition === 'left' && check,\n h('span', item.label),\n props.checkIconPosition !== 'left' && check,\n ]\n return h(\n Combobox.Option,\n {\n value: item.value,\n disabled: item.disabled,\n active: isChecked,\n class: !props.unstyled && classes.optionsDropdownOption,\n 'data-reverse': props.checkIconPosition === 'right' || undefined,\n 'data-checked': isChecked || undefined,\n 'aria-selected': isChecked,\n },\n () => content,\n )\n}\nexport const OptionsDropdown = defineComponent({\n name: 'OptionsDropdown',\n inheritAttrs: false,\n props: {\n data: { type: Array as PropType<OptionsData>, required: true },\n filter: Function as PropType<OptionsFilter<Primitive>>,\n search: String,\n limit: Number,\n withScrollArea: { type: Boolean, default: true },\n maxDropdownHeight: [Number, String],\n floatingHeight: String as PropType<'viewport'>,\n hidden: Boolean,\n hiddenWhenEmpty: Boolean,\n filterOptions: { type: Boolean, default: true },\n withCheckIcon: Boolean,\n withAlignedLabels: Boolean,\n value: { type: [String, Number, Boolean, Array] as PropType<any>, default: null },\n checkIconPosition: { type: String as PropType<'left' | 'right'>, default: 'left' },\n nothingFoundMessage: { type: null as unknown as PropType<any>, default: undefined },\n unstyled: Boolean,\n labelId: String,\n ariaLabel: String,\n renderOption: Function as PropType<any>,\n scrollAreaProps: Object,\n },\n setup(props) {\n const ctx = useComboboxContext()\n\n return () => {\n validateOptions(props.data)\n const data =\n typeof props.search === 'string'\n ? (props.filter || defaultOptionsFilter)({\n options: props.data,\n search: props.filterOptions ? props.search : '',\n limit: props.limit ?? Infinity,\n })\n : props.data\n const empty = isEmptyComboboxData(data)\n const options = data.map((item) => renderItem(item, props as any))\n const content = props.withScrollArea\n ? h(\n ScrollAreaAutosize,\n {\n mah:\n (props.floatingHeight ?? ctx.floatingHeight) === 'viewport'\n ? 'var(--combobox-floating-options-max-height)'\n : (props.maxDropdownHeight ?? 220),\n type: 'scroll',\n scrollbarSize: 'var(--combobox-padding)',\n offsetScrollbars: 'y',\n ...props.scrollAreaProps,\n },\n () => options,\n )\n : options\n return h(\n Combobox.Dropdown,\n { hidden: props.hidden || (props.hiddenWhenEmpty && empty), 'data-composed': '' },\n () =>\n h(Combobox.Options, { labelledBy: props.labelId, 'aria-label': props.ariaLabel }, () => [\n content,\n empty &&\n props.nothingFoundMessage != null &&\n h(Combobox.Empty, null, () => props.nothingFoundMessage),\n ]),\n )\n }\n },\n})\n","import { ref } from 'vue'\nimport { movePill, type PillReorderPosition } from '../data-utils'\nexport interface PillReorderProps {\n draggable: boolean\n tabIndex: number\n 'data-mantine-pill-index': number\n 'aria-keyshortcuts': string\n [key: string]: any\n}\nexport interface UsePillsReorderInput<T> {\n value: T[]\n onChange: (value: T[]) => void\n enabled?: boolean\n}\nexport function usePillsReorder<T>(input: UsePillsReorderInput<T>) {\n const container = ref<HTMLElement | null>(null)\n let dragged: number | null = null\n const getListProps = () =>\n input.enabled ? { ref: (node: any) => (container.value = node?.$el ?? node) } : {}\n const getPillProps = (index: number): PillReorderProps | undefined =>\n input.enabled\n ? {\n draggable: true,\n tabIndex: -1,\n 'data-mantine-pill-index': index,\n 'aria-keyshortcuts': 'Alt+ArrowLeft Alt+ArrowRight',\n onMousedown: (event: MouseEvent) => event.button === 0 && event.stopPropagation(),\n onDragstart: (event: DragEvent) => {\n dragged = index\n event.dataTransfer?.setData('text/plain', String(index))\n },\n onDragover: (event: DragEvent) => {\n if (dragged === null || dragged === index) return\n event.preventDefault()\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n ;(event.currentTarget as HTMLElement).setAttribute(\n 'data-drag-over',\n event.clientX - rect.left < rect.width / 2 ? 'before' : 'after',\n )\n },\n onDrop: (event: DragEvent) => {\n event.preventDefault()\n const target = event.currentTarget as HTMLElement\n const position = target.getAttribute('data-drag-over') as PillReorderPosition | null\n target.removeAttribute('data-drag-over')\n if (dragged !== null && position)\n input.onChange(movePill(input.value, dragged, index, position))\n dragged = null\n },\n onDragend: (event: DragEvent) => {\n ;(event.currentTarget as HTMLElement).removeAttribute('data-dragging')\n dragged = null\n },\n onKeydown: (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return\n const forward = event.key === 'ArrowRight'\n const target = index + (forward ? 1 : -1)\n if (event.altKey && target >= 0 && target < input.value.length) {\n event.preventDefault()\n input.onChange(movePill(input.value, index, target, forward ? 'after' : 'before'))\n } else\n container.value\n ?.querySelector<HTMLElement>(`[data-mantine-pill-index=\"${target}\"]`)\n ?.focus()\n },\n }\n : undefined\n const handleInputKeyDown = (event: KeyboardEvent) => {\n const inputElement = event.currentTarget as HTMLInputElement\n if (\n !input.enabled ||\n event.key !== 'ArrowLeft' ||\n (inputElement.value && inputElement.selectionStart !== 0)\n )\n return\n const pills = container.value?.querySelectorAll<HTMLElement>('[data-mantine-pill-index]')\n if (pills?.length) {\n event.preventDefault()\n pills[pills.length - 1].focus()\n }\n }\n return { getPillProps, getListProps, handleInputKeyDown }\n}\n","import { computed, defineComponent, h, nextTick, ref, watch, type PropType } from 'vue'\nimport type { Primitive } from '../../core'\nimport { useId } from '@mantine-vue/hooks'\nimport {\n Combobox,\n OptionsDropdown,\n getOptionsLockup,\n getParsedComboboxData,\n useCombobox,\n type ComboboxData,\n type ComboboxItem,\n type OptionsFilter,\n} from '../Combobox'\nimport { InputBase } from '../InputBase'\n\nexport interface SelectProps<Value extends Primitive = string> {\n modelValue?: Value | null\n value?: Value | null\n defaultValue?: Value | null\n onChange?: (value: Value | null, option: ComboboxItem<Value> | null) => void\n data?: ComboboxData<Value>\n searchable?: boolean\n searchValue?: string\n defaultSearchValue?: string\n onSearchChange?: (value: string) => void\n allowDeselect?: boolean\n clearable?: boolean\n onClear?: () => void\n withCheckIcon?: boolean\n withAlignedLabels?: boolean\n checkIconPosition?: 'left' | 'right'\n nothingFoundMessage?: any\n filter?: OptionsFilter<Value>\n limit?: number\n dropdownOpened?: boolean\n defaultDropdownOpened?: boolean\n onDropdownOpen?: () => void\n onDropdownClose?: () => void\n selectFirstOptionOnChange?: boolean\n selectFirstOptionOnDropdownOpen?: boolean\n onOptionSubmit?: (value: Value) => void\n withScrollArea?: boolean\n maxDropdownHeight?: number | string\n comboboxProps?: Record<string, any>\n hiddenInputProps?: Record<string, any>\n renderOption?: (input: any) => any\n scrollAreaProps?: Record<string, any>\n autoSelectOnBlur?: boolean\n openOnFocus?: boolean\n clearSectionMode?: 'both' | 'rightSection' | 'clear'\n chevronColor?: string\n [key: string]: any\n}\nexport type SelectStylesNames = string\n\nexport const Select = defineComponent({\n name: 'Select',\n inheritAttrs: false,\n props: {\n modelValue: { type: null as any, default: undefined },\n value: { type: null as any, default: undefined },\n defaultValue: { type: null as any, default: null },\n onChange: Function as PropType<(value: any, option: any) => void>,\n data: { type: Array as PropType<ComboboxData<any>>, default: () => [] },\n searchable: Boolean,\n searchValue: { type: String, default: undefined },\n defaultSearchValue: String,\n onSearchChange: Function as PropType<(value: string) => void>,\n allowDeselect: { type: Boolean, default: true },\n clearable: Boolean,\n onClear: Function as PropType<() => void>,\n withCheckIcon: { type: Boolean, default: true },\n withAlignedLabels: Boolean,\n checkIconPosition: { type: String as PropType<'left' | 'right'>, default: 'left' },\n nothingFoundMessage: { type: null as unknown as PropType<any>, default: undefined },\n filter: Function as PropType<any>,\n limit: Number,\n dropdownOpened: { type: Boolean, default: undefined },\n defaultDropdownOpened: Boolean,\n onDropdownOpen: Function as PropType<() => void>,\n onDropdownClose: Function as PropType<() => void>,\n selectFirstOptionOnChange: Boolean,\n selectFirstOptionOnDropdownOpen: Boolean,\n onOptionSubmit: Function as PropType<(value: any) => void>,\n withScrollArea: { type: Boolean, default: true },\n maxDropdownHeight: [Number, String],\n comboboxProps: Object,\n hiddenInputProps: Object,\n renderOption: Function as PropType<any>,\n scrollAreaProps: Object,\n autoSelectOnBlur: Boolean,\n openOnFocus: { type: Boolean, default: true },\n clearSectionMode: {\n type: String as PropType<'both' | 'rightSection' | 'clear'>,\n default: undefined,\n },\n chevronColor: { type: String, default: undefined },\n },\n emits: ['update:modelValue', 'update:searchValue'],\n setup(props, { attrs, emit }) {\n const parsed = computed(() => getParsedComboboxData(props.data))\n const lockup = computed(() => getOptionsLockup(parsed.value))\n const retained: Record<string, ComboboxItem<any>> = {}\n const internal = ref(props.defaultValue)\n const controlled = () => props.modelValue !== undefined || props.value !== undefined\n const current = () =>\n props.modelValue !== undefined\n ? props.modelValue\n : props.value !== undefined\n ? props.value\n : internal.value\n const selected = computed(() =>\n current() != null\n ? (lockup.value[String(current())] ?? retained[String(current())])\n : undefined,\n )\n const internalSearch = ref(props.defaultSearchValue ?? selected.value?.label ?? '')\n const searchControlled = () => props.searchValue !== undefined\n const search = () => props.searchValue ?? internalSearch.value\n const setSearch = (value: string) => {\n if (!searchControlled()) internalSearch.value = value\n props.onSearchChange?.(value)\n emit('update:searchValue', value)\n combobox.resetSelectedOption()\n }\n const changeValue = (value: any, option: ComboboxItem<any> | null) => {\n if (!controlled()) internal.value = value\n props.onChange?.(value, option)\n emit('update:modelValue', value)\n }\n const combobox = useCombobox({\n opened: () => props.dropdownOpened,\n defaultOpened: props.defaultDropdownOpened,\n onDropdownOpen: () => {\n props.onDropdownOpen?.()\n nextTick(() =>\n props.selectFirstOptionOnDropdownOpen\n ? combobox.selectFirstOption()\n : combobox.updateSelectedOptionIndex('active', { scrollIntoView: true }),\n )\n },\n onDropdownClose: () => {\n props.onDropdownClose?.()\n setTimeout(combobox.resetSelectedOption)\n },\n })\n watch(\n [() => current(), lockup],\n () => {\n const value = current()\n if (value != null && lockup.value[String(value)])\n retained[String(value)] = lockup.value[String(value)]\n if (!searchControlled())\n internalSearch.value =\n value == null\n ? ''\n : ((lockup.value[String(value)] ?? retained[String(value)])?.label ?? '')\n },\n { immediate: true },\n )\n watch(\n () => search(),\n () => {\n if (props.selectFirstOptionOnChange) nextTick(combobox.selectFirstOption)\n },\n )\n const id = useId((attrs as any).id)\n const clear = (event?: MouseEvent) => {\n event?.stopPropagation()\n changeValue(null, null)\n setSearch('')\n props.onClear?.()\n }\n return () => {\n const disabled = !!(attrs as any).disabled\n const readOnly = !!(attrs as any).readOnly\n const clearable = props.clearable && current() != null && !disabled && !readOnly\n const forwarded = { ...attrs }\n delete forwarded.id\n delete forwarded.name\n delete forwarded.form\n delete forwarded.rightSection\n delete forwarded.clearButtonProps\n delete forwarded.clearSectionMode\n delete forwarded.chevronColor\n return [\n h(\n Combobox,\n {\n store: combobox,\n __staticSelector: 'Select',\n readOnly,\n size: (attrs as any).size ?? 'sm',\n onOptionSubmit: (value: string) => {\n props.onOptionSubmit?.(lockup.value[value]?.value)\n const option =\n props.allowDeselect && String(current()) === String(value)\n ? null\n : lockup.value[value]\n const next = option?.value ?? null\n if (next !== current()) changeValue(next, option ?? null)\n if (!searchControlled()) internalSearch.value = option?.label ?? ''\n combobox.closeDropdown()\n },\n ...props.comboboxProps,\n },\n () => [\n h(\n Combobox.Target,\n {\n targetType: props.searchable ? 'input' : 'button',\n withExpandedAttribute: true,\n autoComplete: (attrs as any).autoComplete,\n },\n () =>\n h(InputBase, {\n ...forwarded,\n id: id.value,\n __defaultRightSection: h(Combobox.Chevron, {\n size: (attrs as any).size ?? 'sm',\n error: (attrs as any).error,\n color: props.chevronColor,\n unstyled: (attrs as any).unstyled,\n }),\n __clearSection: h(Combobox.ClearButton, {\n ...(attrs as any).clearButtonProps,\n onClick: clear,\n }),\n __clearable: clearable,\n __clearSectionMode: props.clearSectionMode,\n __staticSelector: 'Select',\n component: 'input',\n disabled,\n readOnly: readOnly || !props.searchable,\n pointer: !props.searchable,\n value: search(),\n rightSection: (attrs as any).rightSection,\n rightSectionPointerEvents: (attrs as any).rightSectionPointerEvents || 'none',\n onInput: (event: Event) => {\n setSearch((event.currentTarget as HTMLInputElement).value)\n combobox.openDropdown()\n },\n onFocus: (event: FocusEvent) => {\n if (props.openOnFocus && props.searchable) combobox.openDropdown()\n ;(attrs as any).onFocus?.(event)\n },\n onBlur: (event: FocusEvent) => {\n if (props.autoSelectOnBlur) combobox.clickSelectedOption()\n if (props.searchable) combobox.closeDropdown()\n setSearch(selected.value?.label ?? '')\n ;(attrs as any).onBlur?.(event)\n },\n onClick: (event: MouseEvent) => {\n if (props.searchable) combobox.openDropdown()\n else combobox.toggleDropdown()\n ;(attrs as any).onClick?.(event)\n },\n }),\n ),\n h(OptionsDropdown, {\n data: parsed.value as any,\n hidden: readOnly || disabled,\n filter: props.filter,\n search: search(),\n limit: props.limit,\n hiddenWhenEmpty: !props.nothingFoundMessage,\n withScrollArea: props.withScrollArea,\n maxDropdownHeight: props.maxDropdownHeight,\n filterOptions: !!props.searchable && selected.value?.label !== search(),\n value: current(),\n checkIconPosition: props.checkIconPosition,\n withCheckIcon: props.withCheckIcon,\n withAlignedLabels: props.withAlignedLabels,\n nothingFoundMessage: props.nothingFoundMessage,\n labelId: (attrs as any).label ? `${id.value}-label` : undefined,\n renderOption: props.renderOption,\n scrollAreaProps: props.scrollAreaProps,\n }),\n ],\n ),\n h(Combobox.HiddenInput, {\n value: current(),\n name: (attrs as any).name,\n form: (attrs as any).form,\n disabled,\n ...props.hiddenInputProps,\n }),\n ]\n }\n },\n})\nObject.assign(Select, { classes: { ...InputBase.classes, ...Combobox.classes } })\n","import { computed, defineComponent, h, nextTick, ref, watch, type PropType } from 'vue'\nimport { useId } from '@mantine-vue/hooks'\nimport {\n Combobox,\n OptionsDropdown,\n getOptionsLockup,\n getParsedComboboxData,\n useCombobox,\n type ComboboxGenericData,\n type OptionsFilter,\n} from '../Combobox'\nimport { InputBase } from '../InputBase'\n\nexport type RenderAutocompleteOption = (input: { option: any; checked?: boolean }) => any\nexport type AutocompleteStylesNames = string\nexport interface AutocompleteProps {\n modelValue?: string\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n data?: ComboboxGenericData\n dropdownOpened?: boolean\n defaultDropdownOpened?: boolean\n onDropdownOpen?: () => void\n onDropdownClose?: () => void\n selectFirstOptionOnChange?: boolean\n selectFirstOptionOnDropdownOpen?: boolean\n onOptionSubmit?: (value: string) => void\n filter?: OptionsFilter<any>\n limit?: number\n withScrollArea?: boolean\n maxDropdownHeight?: number | string\n comboboxProps?: Record<string, any>\n renderOption?: RenderAutocompleteOption\n scrollAreaProps?: Record<string, any>\n clearable?: boolean\n onClear?: () => void\n autoSelectOnBlur?: boolean\n openOnFocus?: boolean\n [key: string]: any\n}\nexport const Autocomplete = defineComponent({\n name: 'Autocomplete',\n inheritAttrs: false,\n props: {\n modelValue: { type: String, default: undefined },\n value: { type: String, default: undefined },\n defaultValue: { type: String, default: '' },\n onChange: Function as PropType<(value: string) => void>,\n data: { type: Array as PropType<ComboboxGenericData>, default: () => [] },\n dropdownOpened: { type: Boolean, default: undefined },\n defaultDropdownOpened: Boolean,\n onDropdownOpen: Function as PropType<() => void>,\n onDropdownClose: Function as PropType<() => void>,\n selectFirstOptionOnChange: Boolean,\n selectFirstOptionOnDropdownOpen: Boolean,\n onOptionSubmit: Function as PropType<(value: string) => void>,\n filter: Function as PropType<any>,\n limit: Number,\n withScrollArea: { type: Boolean, default: true },\n maxDropdownHeight: [Number, String],\n comboboxProps: Object,\n renderOption: Function as PropType<RenderAutocompleteOption>,\n scrollAreaProps: Object,\n clearable: Boolean,\n onClear: Function as PropType<() => void>,\n autoSelectOnBlur: Boolean,\n openOnFocus: { type: Boolean, default: true },\n },\n emits: {\n 'update:modelValue': (value: string) => typeof value === 'string',\n },\n setup(props, { attrs, emit }) {\n const internal = ref(props.defaultValue)\n const current = () => props.modelValue ?? props.value ?? internal.value\n const controlled = () => props.modelValue !== undefined || props.value !== undefined\n const change = (value: string) => {\n if (!controlled()) internal.value = value\n props.onChange?.(value)\n emit('update:modelValue', value)\n combobox.resetSelectedOption()\n }\n const parsed = computed(() => getParsedComboboxData(props.data))\n const lockup = computed(() => getOptionsLockup(parsed.value))\n const combobox = useCombobox({\n opened: () => props.dropdownOpened,\n defaultOpened: props.defaultDropdownOpened,\n onDropdownOpen: () => {\n props.onDropdownOpen?.()\n if (props.selectFirstOptionOnDropdownOpen) nextTick(combobox.selectFirstOption)\n },\n onDropdownClose: () => {\n props.onDropdownClose?.()\n setTimeout(combobox.resetSelectedOption)\n },\n })\n watch(\n () => current(),\n () => {\n if (props.selectFirstOptionOnChange) nextTick(combobox.selectFirstOption)\n },\n )\n const id = useId((attrs as any).id)\n const clear = (event?: MouseEvent) => {\n event?.stopPropagation()\n change('')\n props.onClear?.()\n }\n return () => {\n const disabled = !!(attrs as any).disabled\n const readOnly = !!(attrs as any).readOnly\n const showClear = props.clearable && !!current() && !disabled && !readOnly\n const rightSection = showClear\n ? h(Combobox.ClearButton, { ...(attrs as any).clearButtonProps, onClick: clear })\n : (attrs as any).rightSection\n const forwarded = { ...attrs }\n delete forwarded.id\n delete forwarded.rightSection\n delete forwarded.clearButtonProps\n return h(\n Combobox,\n {\n store: combobox,\n __staticSelector: 'Autocomplete',\n readOnly,\n size: (attrs as any).size ?? 'sm',\n onOptionSubmit: (value: string) => {\n props.onOptionSubmit?.(value)\n change(lockup.value[value]?.label ?? value)\n combobox.closeDropdown()\n },\n ...props.comboboxProps,\n },\n () => [\n h(\n Combobox.Target,\n { withExpandedAttribute: true, autoComplete: (attrs as any).autoComplete },\n () =>\n h(InputBase, {\n ...forwarded,\n id: id.value,\n __staticSelector: 'Autocomplete',\n component: 'input',\n disabled,\n readOnly,\n value: current(),\n rightSection,\n rightSectionPointerEvents: showClear ? 'all' : undefined,\n onInput: (event: Event) => {\n change((event.currentTarget as HTMLInputElement).value)\n combobox.openDropdown()\n if (props.selectFirstOptionOnChange) nextTick(combobox.selectFirstOption)\n },\n onFocus: (event: FocusEvent) => {\n if (props.openOnFocus) combobox.openDropdown()\n ;(attrs as any).onFocus?.(event)\n },\n onBlur: (event: FocusEvent) => {\n if (props.autoSelectOnBlur) combobox.clickSelectedOption()\n combobox.closeDropdown()\n ;(attrs as any).onBlur?.(event)\n },\n onClick: (event: MouseEvent) => {\n combobox.openDropdown()\n ;(attrs as any).onClick?.(event)\n },\n }),\n ),\n h(OptionsDropdown, {\n data: parsed.value as any,\n hidden: readOnly || disabled,\n filter: props.filter,\n search: current(),\n limit: props.limit,\n hiddenWhenEmpty: true,\n withScrollArea: props.withScrollArea,\n maxDropdownHeight: props.maxDropdownHeight,\n labelId: (attrs as any).label ? `${id.value}-label` : undefined,\n renderOption: props.renderOption,\n scrollAreaProps: props.scrollAreaProps,\n }),\n ],\n )\n }\n },\n})\nObject.assign(Autocomplete, { classes: { ...InputBase.classes, ...Combobox.classes } })\n","import { computed, defineComponent, h, nextTick, ref, watch, type PropType } from 'vue'\nimport type { Primitive } from '../../core'\nimport {\n Combobox,\n OptionsDropdown,\n getOptionsLockup,\n getParsedComboboxData,\n useCombobox,\n type ComboboxData,\n} from '../Combobox'\nimport { InputBase } from '../InputBase'\nimport { Pill } from '../Pill'\nimport { PillsInput } from '../PillsInput'\n\nexport interface MultiSelectProps<Value extends Primitive = string> {\n modelValue?: Value[]\n value?: Value[]\n defaultValue?: Value[]\n data?: ComboboxData<Value>\n onChange?: (value: Value[]) => void\n onRemove?: (value: Value) => void\n onClear?: () => void\n maxValues?: number\n onMaxValues?: () => void\n searchable?: boolean\n hidePickedOptions?: boolean\n searchValue?: string\n defaultSearchValue?: string\n onSearchChange?: (value: string) => void\n clearable?: boolean\n clearSearchOnChange?: boolean\n hiddenInputValuesDivider?: string\n [key: string]: any\n}\n\nfunction filterPicked(data: any[], values: Primitive[]): any[] {\n return data\n .map((item) => ('group' in item ? { ...item, items: filterPicked(item.items, values) } : item))\n .filter((item) => 'group' in item || !values.includes(item.value))\n}\n\nexport const MultiSelect = defineComponent({\n name: 'MultiSelect',\n inheritAttrs: false,\n props: {\n modelValue: Array as PropType<Primitive[]>,\n value: Array as PropType<Primitive[]>,\n defaultValue: { type: Array as PropType<Primitive[]>, default: () => [] },\n data: { type: Array as PropType<ComboboxData<any>>, default: () => [] },\n onChange: Function as PropType<(value: Primitive[]) => void>,\n onRemove: Function as PropType<(value: Primitive) => void>,\n onClear: Function as PropType<() => void>,\n onMaxValues: Function as PropType<() => void>,\n maxValues: { type: Number, default: Infinity },\n searchable: Boolean,\n hidePickedOptions: Boolean,\n searchValue: String,\n defaultSearchValue: String,\n onSearchChange: Function as PropType<(value: string) => void>,\n clearable: Boolean,\n clearSearchOnChange: { type: Boolean, default: true },\n hiddenInputValuesDivider: { type: String, default: ',' },\n nothingFoundMessage: { type: null as unknown as PropType<any>, default: undefined },\n withCheckIcon: { type: Boolean, default: true },\n withAlignedLabels: Boolean,\n checkIconPosition: { type: String as PropType<'left' | 'right'>, default: 'left' },\n filter: Function as PropType<any>,\n limit: Number,\n withScrollArea: { type: Boolean, default: true },\n maxDropdownHeight: [Number, String],\n dropdownOpened: { type: Boolean, default: undefined },\n defaultDropdownOpened: Boolean,\n onDropdownOpen: Function as PropType<() => void>,\n onDropdownClose: Function as PropType<() => void>,\n onOptionSubmit: Function as PropType<(value: Primitive) => void>,\n comboboxProps: Object,\n hiddenInputProps: Object,\n renderOption: Function as PropType<any>,\n renderPill: Function as PropType<any>,\n scrollAreaProps: Object,\n openOnFocus: { type: Boolean, default: true },\n selectFirstOptionOnDropdownOpen: Boolean,\n },\n emits: ['update:modelValue', 'update:searchValue'],\n setup(props, { attrs, emit }) {\n const parsed = computed(() => getParsedComboboxData(props.data))\n const lockup = computed(() => getOptionsLockup(parsed.value))\n const retained: Record<string, any> = {}\n const internal = ref<Primitive[]>([...props.defaultValue])\n const current = () => props.modelValue ?? props.value ?? internal.value\n const controlled = () => props.modelValue !== undefined || props.value !== undefined\n const searchInternal = ref(props.defaultSearchValue ?? '')\n const search = () => props.searchValue ?? searchInternal.value\n const setSearch = (value: string) => {\n if (props.searchValue === undefined) searchInternal.value = value\n props.onSearchChange?.(value)\n emit('update:searchValue', value)\n combobox.resetSelectedOption()\n }\n const setValue = (value: Primitive[]) => {\n if (!controlled()) internal.value = value\n props.onChange?.(value)\n emit('update:modelValue', value)\n }\n const combobox = useCombobox({\n opened: () => props.dropdownOpened,\n defaultOpened: props.defaultDropdownOpened,\n onDropdownOpen: () => {\n props.onDropdownOpen?.()\n if (props.selectFirstOptionOnDropdownOpen) nextTick(combobox.selectFirstOption)\n },\n onDropdownClose: () => {\n props.onDropdownClose?.()\n combobox.resetSelectedOption()\n },\n })\n watch(\n [() => current(), lockup],\n () =>\n current().forEach((item) => {\n if (lockup.value[String(item)]) retained[String(item)] = lockup.value[String(item)]\n }),\n { immediate: true },\n )\n const remove = (item: Primitive) => {\n setValue(current().filter((value) => value !== item))\n props.onRemove?.(item)\n }\n return () => {\n const disabled = !!(attrs as any).disabled\n const readOnly = !!(attrs as any).readOnly\n const values = current()\n const canClear = props.clearable && values.length > 0 && !disabled && !readOnly\n const rightSection = canClear\n ? h(Combobox.ClearButton, {\n ...(attrs as any).clearButtonProps,\n onClick: (event: MouseEvent) => {\n event.stopPropagation()\n setValue([])\n setSearch('')\n props.onClear?.()\n },\n })\n : ((attrs as any).rightSection ??\n h(Combobox.Chevron, { size: (attrs as any).size ?? 'sm', error: (attrs as any).error }))\n const options = props.hidePickedOptions\n ? filterPicked(parsed.value as any, values)\n : parsed.value\n const forwarded: any = { ...attrs }\n ;['name', 'form', 'rightSection', 'clearButtonProps', 'placeholder'].forEach(\n (key) => delete forwarded[key],\n )\n return [\n h(\n Combobox,\n {\n store: combobox,\n readOnly,\n size: (attrs as any).size ?? 'sm',\n __staticSelector: 'MultiSelect',\n ...props.comboboxProps,\n onOptionSubmit: (raw: string) => {\n const option = lockup.value[raw]\n if (!option) return\n props.onOptionSubmit?.(option.value)\n if (values.includes(option.value)) remove(option.value)\n else if (values.length >= props.maxValues) props.onMaxValues?.()\n else setValue([...values, option.value])\n if (props.clearSearchOnChange) setSearch('')\n },\n },\n () => [\n h(Combobox.DropdownTarget, null, () =>\n h(\n PillsInput,\n {\n ...forwarded,\n __staticSelector: 'MultiSelect',\n disabled,\n rightSection,\n rightSectionPointerEvents: canClear ? 'all' : 'none',\n onClick: () =>\n props.searchable ? combobox.openDropdown() : combobox.toggleDropdown(),\n },\n () =>\n h(Pill.Group, null, () => [\n ...values.map((item, index) => {\n const option = lockup.value[String(item)] ??\n retained[String(item)] ?? { value: item, label: String(item) }\n const onRemove = () => remove(item)\n return props.renderPill\n ? props.renderPill({ option, value: item, onRemove, disabled })\n : h(\n Pill,\n {\n key: `${String(item)}-${index}`,\n withRemoveButton: !readOnly && !option.disabled,\n disabled,\n onRemove,\n },\n () => option.label,\n )\n }),\n h(Combobox.EventsTarget, { withExpandedAttribute: true }, () =>\n h(PillsInput.Field, {\n value: search(),\n readonly: !props.searchable || readOnly,\n disabled,\n placeholder: values.length === 0 ? (attrs as any).placeholder : undefined,\n onInput: (event: Event) => {\n setSearch((event.target as HTMLInputElement).value)\n combobox.openDropdown()\n },\n onFocus: (event: FocusEvent) => {\n if (props.openOnFocus && props.searchable) combobox.openDropdown()\n ;(attrs as any).onFocus?.(event)\n },\n onBlur: (event: FocusEvent) => {\n combobox.closeDropdown()\n ;(attrs as any).onBlur?.(event)\n },\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === ' ' && !props.searchable) {\n event.preventDefault()\n combobox.toggleDropdown()\n }\n if (event.key === 'Backspace' && !search() && values.length && !readOnly)\n remove(values[values.length - 1])\n ;(attrs as any).onKeydown?.(event)\n },\n }),\n ),\n ]),\n ),\n ),\n h(OptionsDropdown, {\n data: options as any,\n hidden: disabled || readOnly,\n search: search(),\n filter: props.filter,\n limit: props.limit,\n filterOptions: props.searchable,\n hiddenWhenEmpty: props.nothingFoundMessage == null,\n nothingFoundMessage: props.nothingFoundMessage,\n value: values,\n withCheckIcon: props.withCheckIcon,\n withAlignedLabels: props.withAlignedLabels,\n checkIconPosition: props.checkIconPosition,\n withScrollArea: props.withScrollArea,\n maxDropdownHeight: props.maxDropdownHeight,\n renderOption: props.renderOption,\n scrollAreaProps: props.scrollAreaProps,\n }),\n ],\n ),\n h(Combobox.HiddenInput, {\n value: values,\n valuesDivider: props.hiddenInputValuesDivider,\n name: (attrs as any).name,\n form: (attrs as any).form,\n disabled,\n ...props.hiddenInputProps,\n }),\n ]\n }\n },\n})\nObject.assign(MultiSelect, { classes: { ...InputBase.classes, ...Combobox.classes } })\n","import { computed, defineComponent, h, nextTick, ref, type PropType } from 'vue'\nimport {\n Combobox,\n OptionsDropdown,\n getOptionsLockup,\n getParsedComboboxData,\n useCombobox,\n type ComboboxData,\n} from '../Combobox'\nimport { InputBase } from '../InputBase'\nimport { Pill } from '../Pill'\nimport { PillsInput } from '../PillsInput'\n\nexport interface TagsInputProps {\n modelValue?: string[]\n value?: string[]\n defaultValue?: string[]\n data?: ComboboxData<string>\n onChange?: (value: string[]) => void\n onRemove?: (value: string) => void\n onClear?: () => void\n maxTags?: number\n onMaxTags?: (value: string) => void\n allowDuplicates?: boolean\n onDuplicate?: (value: string) => void\n splitChars?: string[]\n acceptValueOnBlur?: boolean\n isDuplicate?: (value: string, values: string[]) => boolean\n [key: string]: any\n}\n\nexport function getSplittedTags({\n value,\n splitChars = [','],\n currentTags = [],\n allowDuplicates = false,\n maxTags = Infinity,\n isDuplicate,\n onDuplicate,\n}: any): string[] {\n const pattern = new RegExp(\n `[${splitChars.map((char: string) => char.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('')}]`,\n )\n const result = [...currentTags]\n value\n .split(pattern)\n .map((tag: string) => tag.trim())\n .filter(Boolean)\n .forEach((tag: string) => {\n const duplicate = isDuplicate\n ? isDuplicate(tag, result)\n : result.some((item) => item.toLowerCase() === tag.toLowerCase())\n if (duplicate) {\n onDuplicate?.(tag)\n if (!allowDuplicates) return\n }\n if (result.length < maxTags) result.push(tag)\n })\n return result\n}\n\nexport const TagsInput = defineComponent({\n name: 'TagsInput',\n inheritAttrs: false,\n props: {\n modelValue: Array as PropType<string[]>,\n value: Array as PropType<string[]>,\n defaultValue: { type: Array as PropType<string[]>, default: () => [] },\n data: { type: Array as PropType<ComboboxData<string>>, default: () => [] },\n onChange: Function as PropType<(value: string[]) => void>,\n onRemove: Function as PropType<(value: string) => void>,\n onClear: Function as PropType<() => void>,\n maxTags: { type: Number, default: Infinity },\n onMaxTags: Function as PropType<(value: string) => void>,\n allowDuplicates: Boolean,\n onDuplicate: Function as PropType<(value: string) => void>,\n splitChars: { type: Array as PropType<string[]>, default: () => [','] },\n acceptValueOnBlur: { type: Boolean, default: true },\n isDuplicate: Function as PropType<(value: string, values: string[]) => boolean>,\n searchValue: String,\n defaultSearchValue: String,\n onSearchChange: Function as PropType<(value: string) => void>,\n clearable: Boolean,\n hiddenInputValuesDivider: { type: String, default: ',' },\n hiddenInputProps: Object,\n nothingFoundMessage: { type: null as unknown as PropType<any>, default: undefined },\n filter: Function as PropType<any>,\n limit: Number,\n withScrollArea: { type: Boolean, default: true },\n maxDropdownHeight: [Number, String],\n dropdownOpened: { type: Boolean, default: undefined },\n defaultDropdownOpened: Boolean,\n onDropdownOpen: Function as PropType<() => void>,\n onDropdownClose: Function as PropType<() => void>,\n onOptionSubmit: Function as PropType<(value: string) => void>,\n comboboxProps: Object,\n renderOption: Function as PropType<any>,\n renderPill: Function as PropType<any>,\n scrollAreaProps: Object,\n openOnFocus: { type: Boolean, default: true },\n selectFirstOptionOnDropdownOpen: Boolean,\n },\n emits: ['update:modelValue', 'update:searchValue'],\n setup(props, { attrs, emit }) {\n const parsed = computed(() => getParsedComboboxData(props.data))\n const lockup = computed(() => getOptionsLockup(parsed.value))\n const internal = ref([...props.defaultValue])\n const values = () => props.modelValue ?? props.value ?? internal.value\n const controlled = () => props.modelValue !== undefined || props.value !== undefined\n const internalSearch = ref(props.defaultSearchValue ?? '')\n const search = () => props.searchValue ?? internalSearch.value\n const setSearch = (value: string) => {\n if (props.searchValue === undefined) internalSearch.value = value\n props.onSearchChange?.(value)\n emit('update:searchValue', value)\n combobox.resetSelectedOption()\n }\n const setValue = (value: string[]) => {\n if (!controlled()) internal.value = value\n props.onChange?.(value)\n emit('update:modelValue', value)\n }\n const combobox = useCombobox({\n opened: () => props.dropdownOpened,\n defaultOpened: props.defaultDropdownOpened,\n onDropdownOpen: () => {\n props.onDropdownOpen?.()\n if (props.selectFirstOptionOnDropdownOpen) nextTick(combobox.selectFirstOption)\n },\n onDropdownClose: () => {\n props.onDropdownClose?.()\n combobox.resetSelectedOption()\n },\n })\n const duplicate = (value: string) =>\n props.isDuplicate\n ? props.isDuplicate(value, values())\n : values().some((tag) => tag.toLowerCase() === value.toLowerCase())\n const submit = (raw: string) => {\n const value = raw.trim()\n if (!value) return\n if (duplicate(value)) {\n props.onDuplicate?.(value)\n if (!props.allowDuplicates) {\n setSearch('')\n return\n }\n }\n if (values().length >= props.maxTags) {\n props.onMaxTags?.(value)\n return\n }\n props.onOptionSubmit?.(value)\n setValue([...values(), value])\n setSearch('')\n }\n const removeAt = (index: number) => {\n const next = values().slice()\n const [removed] = next.splice(index, 1)\n setValue(next)\n props.onRemove?.(removed)\n }\n const split = (input: string) => {\n const next = getSplittedTags({\n value: input,\n splitChars: props.splitChars,\n currentTags: values(),\n allowDuplicates: props.allowDuplicates,\n maxTags: props.maxTags,\n isDuplicate: props.isDuplicate,\n onDuplicate: props.onDuplicate,\n })\n if (next.length === values().length && values().length >= props.maxTags)\n props.onMaxTags?.(input.trim())\n setValue(next)\n setSearch('')\n }\n return () => {\n const current = values()\n const disabled = !!(attrs as any).disabled\n const readOnly = !!(attrs as any).readOnly\n const canClear = props.clearable && current.length > 0 && !disabled && !readOnly\n const forwarded: any = { ...attrs }\n ;['name', 'form', 'rightSection', 'clearButtonProps', 'placeholder'].forEach(\n (key) => delete forwarded[key],\n )\n const rightSection = canClear\n ? h(Combobox.ClearButton, {\n ...(attrs as any).clearButtonProps,\n onClick: (event: MouseEvent) => {\n event.stopPropagation()\n setValue([])\n setSearch('')\n props.onClear?.()\n },\n })\n : (attrs as any).rightSection\n return [\n h(\n Combobox,\n {\n store: combobox,\n readOnly,\n size: (attrs as any).size ?? 'sm',\n __staticSelector: 'TagsInput',\n ...props.comboboxProps,\n onOptionSubmit: (raw: string) => submit(lockup.value[raw]?.label ?? raw),\n },\n () => [\n h(Combobox.Target, { targetType: 'input', withExpandedAttribute: true }, () =>\n h(\n PillsInput,\n {\n ...forwarded,\n __staticSelector: 'TagsInput',\n disabled,\n rightSection,\n rightSectionPointerEvents: canClear ? 'all' : undefined,\n },\n () =>\n h(Pill.Group, null, () => [\n ...current.map((item, index) => {\n const onRemove = () => removeAt(index)\n const option = lockup.value[item] ?? {\n value: item,\n label: item,\n disabled: false,\n }\n return props.renderPill\n ? props.renderPill({ option, value: item, onRemove, disabled })\n : h(\n Pill,\n {\n key: `${item}-${index}`,\n withRemoveButton: !readOnly,\n disabled,\n onRemove,\n },\n () => item,\n )\n }),\n h(PillsInput.Field, {\n value: search(),\n readonly: readOnly,\n disabled,\n placeholder: current.length === 0 ? (attrs as any).placeholder : undefined,\n onInput: (event: Event) => {\n const input = (event.target as HTMLInputElement).value\n if (props.splitChars.some((char) => input.includes(char))) split(input)\n else setSearch(input)\n combobox.openDropdown()\n },\n onPaste: (event: ClipboardEvent) => {\n if (!event.clipboardData) return\n event.preventDefault()\n split(`${search()}${event.clipboardData.getData('text/plain')}`)\n ;(attrs as any).onPaste?.(event)\n },\n onFocus: (event: FocusEvent) => {\n if (props.openOnFocus) combobox.openDropdown()\n ;(attrs as any).onFocus?.(event)\n },\n onBlur: (event: FocusEvent) => {\n if (props.acceptValueOnBlur) submit(search())\n combobox.closeDropdown()\n ;(attrs as any).onBlur?.(event)\n },\n onClick: () => combobox.openDropdown(),\n onKeydown: (event: KeyboardEvent) => {\n if (event.isComposing) return\n if (event.key === 'Enter' && search().trim()) {\n event.preventDefault()\n submit(search())\n } else if (props.splitChars.includes(event.key) && search().trim()) {\n event.preventDefault()\n split(search())\n } else if (\n event.key === 'Backspace' &&\n !search() &&\n current.length &&\n !readOnly\n )\n removeAt(current.length - 1)\n ;(attrs as any).onKeydown?.(event)\n },\n }),\n ]),\n ),\n ),\n h(OptionsDropdown, {\n data: parsed.value as any,\n hidden: disabled || readOnly,\n search: search(),\n filter: props.filter,\n limit: props.limit,\n hiddenWhenEmpty: props.nothingFoundMessage == null,\n nothingFoundMessage: props.nothingFoundMessage,\n withScrollArea: props.withScrollArea,\n maxDropdownHeight: props.maxDropdownHeight,\n renderOption: props.renderOption,\n scrollAreaProps: props.scrollAreaProps,\n }),\n ],\n ),\n h(Combobox.HiddenInput, {\n value: current,\n valuesDivider: props.hiddenInputValuesDivider,\n name: (attrs as any).name,\n form: (attrs as any).form,\n disabled,\n ...props.hiddenInputProps,\n }),\n ]\n }\n },\n})\nObject.assign(TagsInput, { classes: { ...InputBase.classes, ...Combobox.classes } })\n","import { defineComponent, h } from 'vue'\n\nexport const EyeDropperIcon = defineComponent({\n name: 'EyeDropperIcon',\n inheritAttrs: false,\n setup(_, { attrs }) {\n return () =>\n h(\n 'svg',\n {\n xmlns: 'http://www.w3.org/2000/svg',\n style: {\n width: 'var(--ci-eye-dropper-icon-size)',\n height: 'var(--ci-eye-dropper-icon-size)',\n ...(attrs.style as Record<string, any> | undefined),\n },\n viewBox: '0 0 24 24',\n strokeWidth: '1.5',\n stroke: 'currentColor',\n fill: 'none',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n ...attrs,\n },\n [\n h('path', { stroke: 'none', d: 'M0 0h24v24H0z', fill: 'none' }),\n h('path', { d: 'M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0' }),\n h('path', { d: 'M12 3l0 4' }),\n h('path', { d: 'M12 21l0 -3' }),\n h('path', { d: 'M3 12l4 0' }),\n h('path', { d: 'M21 12l-3 0' }),\n h('path', { d: 'M12 12l0 .01' }),\n ],\n )\n },\n})\n",".eyeDropperIcon {\n --ci-eye-dropper-icon-size-xs: 14px;\n --ci-eye-dropper-icon-size-sm: 16px;\n --ci-eye-dropper-icon-size-md: 18px;\n --ci-eye-dropper-icon-size-lg: 20px;\n --ci-eye-dropper-icon-size-xl: 22px;\n --ci-eye-dropper-icon-size: var(--ci-eye-dropper-icon-size-sm);\n}\n\n.eyeDropperButton {\n --ci-button-size-xs: 22px;\n --ci-button-size-sm: 26px;\n --ci-button-size-md: 28px;\n --ci-button-size-lg: 32px;\n --ci-button-size-xl: 40px;\n --ci-button-size: var(--ci-button-size-sm);\n\n width: var(--ci-button-size);\n height: var(--ci-button-size);\n min-width: var(--ci-button-size);\n min-height: var(--ci-button-size);\n}\n\n.colorPreview {\n --ci-preview-size-xs: 16px;\n --ci-preview-size-sm: 18px;\n --ci-preview-size-md: 22px;\n --ci-preview-size-lg: 28px;\n --ci-preview-size-xl: 36px;\n --ci-preview-size: var(--ci-preview-size-sm);\n}\n\n.dropdown {\n padding: 8px;\n}\n","import { computed, defineComponent, h, ref, watch, type PropType } from 'vue'\nimport {\n ColorPicker,\n convertHsvaTo,\n isColorValid,\n parseColor,\n type ColorFormat,\n} from '../ColorPicker'\nimport { ActionIcon } from '../ActionIcon'\nimport { ColorSwatch } from '../ColorSwatch'\nimport { InputBase } from '../InputBase'\nimport { Popover } from '../Popover'\nimport { EyeDropperIcon } from './EyeDropperIcon'\nimport classes from './ColorInput.module.css'\n\nexport interface ColorInputProps {\n modelValue?: string\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n onChangeEnd?: (value: string) => void\n format?: ColorFormat\n disallowInput?: boolean\n fixOnBlur?: boolean\n withPreview?: boolean\n withEyeDropper?: boolean\n popoverProps?: Record<string, any>\n closeOnColorSwatchClick?: boolean\n eyeDropperButtonProps?: Record<string, any>\n eyeDropperIcon?: any\n [key: string]: any\n}\n\nexport const ColorInput = defineComponent({\n name: 'ColorInput',\n inheritAttrs: false,\n props: {\n modelValue: String,\n value: String,\n defaultValue: { type: String, default: '' },\n onChange: Function as PropType<(value: string) => void>,\n onChangeEnd: Function as PropType<(value: string) => void>,\n format: { type: String as PropType<ColorFormat>, default: 'hex' },\n disallowInput: Boolean,\n fixOnBlur: { type: Boolean, default: true },\n withPreview: { type: Boolean, default: true },\n withEyeDropper: { type: Boolean, default: true },\n popoverProps: Object,\n closeOnColorSwatchClick: Boolean,\n eyeDropperButtonProps: Object,\n eyeDropperIcon: { type: null as unknown as PropType<any>, default: undefined },\n withPicker: { type: Boolean, default: true },\n swatches: Array as PropType<string[]>,\n swatchesPerRow: { type: Number, default: 7 },\n },\n emits: ['update:modelValue'],\n setup(props, { attrs, emit }) {\n const internal = ref(props.defaultValue)\n const current = () => props.modelValue ?? props.value ?? internal.value\n const controlled = () => props.modelValue !== undefined || props.value !== undefined\n const opened = ref(false)\n const lastValid = ref(isColorValid(current()) ? current() : '')\n const setValue = (value: string, end = false) => {\n if (!controlled()) internal.value = value\n props.onChange?.(value)\n emit('update:modelValue', value)\n if (isColorValid(value)) {\n lastValid.value = value\n if (end) props.onChangeEnd?.(convertHsvaTo(props.format, parseColor(value)))\n }\n }\n watch(\n () => props.format,\n () => {\n if (isColorValid(current())) setValue(convertHsvaTo(props.format, parseColor(current())))\n },\n )\n const pickerDisabled = computed(\n () => !!(attrs as any).readOnly || (!props.withPicker && !props.swatches?.length),\n )\n const useEyeDropper = async () => {\n const EyeDropper = typeof window !== 'undefined' ? (window as any).EyeDropper : undefined\n if (!EyeDropper) return\n try {\n const result = await new EyeDropper().open()\n if (result?.sRGBHex) setValue(convertHsvaTo(props.format, parseColor(result.sRGBHex)), true)\n } catch {}\n }\n return () => {\n const disabled = !!(attrs as any).disabled\n const readOnly = !!(attrs as any).readOnly\n const value = current()\n const forwarded: any = { ...attrs }\n delete forwarded.leftSection\n delete forwarded.rightSection\n const preview = props.withPreview\n ? h(ColorSwatch, {\n color: isColorValid(value) ? value : '#fff',\n size: 'var(--ci-preview-size, 18px)',\n class: classes.colorPreview,\n 'aria-hidden': true,\n })\n : undefined\n const eyeSupported = typeof window !== 'undefined' && 'EyeDropper' in window\n const eye =\n props.withEyeDropper && eyeSupported && !disabled && !readOnly\n ? h(\n ActionIcon,\n {\n ...props.eyeDropperButtonProps,\n type: 'button',\n __staticSelector: 'ColorInput',\n variant: 'subtle',\n color: 'gray',\n class: classes.eyeDropperButton,\n 'aria-label': 'Pick color from screen',\n onClick: useEyeDropper,\n },\n () =>\n props.eyeDropperIcon ??\n h(EyeDropperIcon, {\n class: classes.eyeDropperIcon,\n }),\n )\n : undefined\n return h(\n Popover,\n {\n position: 'bottom-start',\n offset: 5,\n opened: opened.value,\n onChange: (value: boolean) => (opened.value = value),\n withRoles: false,\n disabled: pickerDisabled.value,\n ...props.popoverProps,\n __staticSelector: 'ColorInput',\n },\n () => [\n h(Popover.Target, null, () =>\n h(InputBase, {\n ...forwarded,\n component: 'input',\n __staticSelector: 'ColorInput',\n autocomplete: 'off',\n spellcheck: false,\n disabled,\n readonly: props.disallowInput || readOnly,\n pointer: props.disallowInput,\n value,\n leftSection: (attrs as any).leftSection ?? preview,\n rightSection: (attrs as any).rightSection ?? eye,\n onInput: (event: Event) => setValue((event.target as HTMLInputElement).value, true),\n onFocus: (event: FocusEvent) => {\n opened.value = true\n ;(attrs as any).onFocus?.(event)\n },\n onClick: (event: MouseEvent) => {\n opened.value = true\n ;(attrs as any).onClick?.(event)\n },\n onBlur: (event: FocusEvent) => {\n if (props.fixOnBlur && value !== lastValid.value) setValue(lastValid.value)\n opened.value = false\n ;(attrs as any).onBlur?.(event)\n },\n }),\n ),\n h(\n Popover.Dropdown,\n { class: classes.dropdown, onMousedown: (event: MouseEvent) => event.preventDefault() },\n () =>\n h(ColorPicker, {\n value,\n format: props.format,\n swatches: props.swatches,\n swatchesPerRow: props.swatchesPerRow,\n withPicker: props.withPicker,\n focusable: false,\n size: (attrs as any).size,\n onChange: (color: string) => setValue(color),\n onChangeEnd: (color: string) => {\n setValue(color)\n props.onChangeEnd?.(color)\n },\n onColorSwatchClick: () => {\n if (props.closeOnColorSwatchClick) opened.value = false\n },\n }),\n ),\n ],\n )\n }\n },\n})\nObject.assign(ColorInput, { classes: { ...InputBase.classes, ...classes } })\n",".optionsWrapper {\n --ts-level-offset: 20px;\n --ts-line-width: rem(1px);\n --ts-line-color: var(--mantine-color-default-border);\n --ts-option-padding-y: 4px;\n --ts-option-padding-x: 8px;\n}\n\n.option {\n display: flex;\n align-items: center;\n gap: 6px;\n position: relative;\n padding: var(--ts-option-padding-y) var(--ts-option-padding-x);\n padding-inline-start: var(--ts-option-padding-x);\n}\n\n.expandIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n --_ts-expand-icon-size: calc(1.45 * var(--combobox-option-fz, var(--mantine-font-size-sm)));\n width: var(--_ts-expand-icon-size);\n min-width: var(--_ts-expand-icon-size);\n height: var(--_ts-expand-icon-size);\n border-radius: var(--mantine-radius-sm);\n cursor: pointer;\n color: var(--mantine-color-dimmed);\n transform: rotate(-90deg);\n\n :where([data-combobox-selected]) & {\n color: var(--mantine-color-white);\n }\n\n @mixin where-rtl {\n transform: rotate(90deg);\n }\n\n &:where([data-expanded]) {\n transform: rotate(0deg);\n }\n\n @mixin hover {\n @mixin where-light {\n background-color: var(--mantine-color-gray-1);\n }\n\n @mixin where-dark {\n background-color: var(--mantine-color-dark-5);\n }\n }\n}\n\n.checkIcon {\n opacity: 0.4;\n width: 0.8em;\n min-width: 0.8em;\n height: 0.8em;\n margin-inline-start: auto;\n\n :where([data-combobox-selected]) & {\n opacity: 1;\n }\n}\n\n.label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Tree lines */\n.guideLine {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n border-inline-start: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n}\n\n.branchVertical {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 0;\n border-inline-start: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n\n &:where([data-last]) {\n bottom: auto;\n height: 50%;\n }\n}\n\n.branchHorizontal {\n position: absolute;\n top: 50%;\n height: 0;\n border-top: var(--ts-line-width) solid var(--ts-line-color);\n pointer-events: none;\n}\n","import { computed, defineComponent, h, ref, type PropType, type VNodeChild } from 'vue'\nimport { AccordionChevron } from '../Accordion/AccordionChevron'\nimport { CheckboxIndicator } from '../Checkbox/CheckboxIndicator/CheckboxIndicator'\nimport { CheckIcon } from '../Checkbox/CheckIcon'\nimport { Combobox, useCombobox } from '../Combobox'\nimport { InputBase } from '../InputBase'\nimport { Pill } from '../Pill'\nimport { PillsInput } from '../PillsInput'\nimport type { TreeNodeData } from '../Tree'\nimport classes from './TreeSelect.module.css'\n\nconst LEVEL_OFFSET = 20\nconst BASE_PADDING = 8\nconst LINE_CONTENT_GAP = 5\nconst OPTION_GAP = 6\n\nexport type TreeSelectMode = 'single' | 'multiple' | 'checkbox'\nexport type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single'\n ? string | null\n : string[]\nexport type CheckedStrategy = 'all' | 'parent' | 'child'\n\nexport interface TreeSelectRenderNodePayload {\n node: TreeNodeData\n level: number\n expanded: boolean\n hasChildren: boolean\n selected: boolean\n checked: boolean\n indeterminate: boolean\n}\nexport interface TreeSelectChevronAriaLabels {\n expand?: string\n collapse?: string\n}\nexport interface TreeSelectProps<Mode extends TreeSelectMode = 'single'> {\n data: TreeNodeData[]\n mode?: Mode\n modelValue?: TreeSelectValue<Mode>\n value?: TreeSelectValue<Mode>\n defaultValue?: TreeSelectValue<Mode>\n onChange?: (value: TreeSelectValue<Mode>) => void\n checkStrictly?: boolean\n checkedStrategy?: CheckedStrategy\n defaultExpandedValues?: string[]\n defaultExpandAll?: boolean\n expandedValues?: string[]\n onExpandedChange?: (values: string[]) => void\n searchable?: boolean\n searchValue?: string\n defaultSearchValue?: string\n onSearchChange?: (value: string) => void\n [key: string]: any\n}\n\ninterface FlatNode {\n node: TreeNodeData\n level: number\n parent: string | null\n hasChildren: boolean\n expanded: boolean\n isLastChild: boolean\n lineGuides: boolean[]\n}\n\nfunction flattenTo(\n acc: FlatNode[],\n data: TreeNodeData[],\n expandedSet: Set<string>,\n parent: string | null,\n level: number,\n parentGuides: boolean[],\n): void {\n for (let i = 0; i < data.length; i++) {\n const node = data[i]\n const isLast = i === data.length - 1\n const hasLoadedChildren = Array.isArray(node.children)\n const hasAsyncChildren = !!node.hasChildren && !hasLoadedChildren\n const hasChildren = hasLoadedChildren || hasAsyncChildren\n const expanded = expandedSet.has(node.value)\n\n acc.push({\n node,\n level,\n parent,\n hasChildren,\n expanded,\n isLastChild: isLast,\n lineGuides: parentGuides,\n })\n\n if (expanded && hasLoadedChildren) {\n const childGuides = level >= 2 ? [...parentGuides, !isLast] : []\n flattenTo(acc, node.children!, expandedSet, node.value, level + 1, childGuides)\n }\n }\n}\n\nfunction flattenVisible(data: TreeNodeData[], expandedSet: Set<string>): FlatNode[] {\n const result: FlatNode[] = []\n flattenTo(result, data, expandedSet, null, 1, [])\n return result\n}\n\nfunction allValues(data: TreeNodeData[]): string[] {\n return data.flatMap((node) => [node.value, ...allValues(node.children ?? [])])\n}\n\nfunction leafValues(node: TreeNodeData): string[] {\n return node.children?.length ? node.children.flatMap(leafValues) : [node.value]\n}\n\nfunction filterData(\n data: TreeNodeData[],\n query: string,\n filter?: (query: string, node: TreeNodeData) => boolean,\n): TreeNodeData[] {\n const q = query.trim().toLowerCase()\n return data.flatMap((node) => {\n const children = filterData(node.children ?? [], query, filter)\n const match = filter ? filter(query, node) : String(node.label).toLowerCase().includes(q)\n return match || children.length ? [{ ...node, children }] : []\n })\n}\n\nfunction buildLookup(data: TreeNodeData[]): Record<string, TreeNodeData> {\n const map: Record<string, TreeNodeData> = {}\n function walk(nodes: TreeNodeData[]) {\n for (const node of nodes) {\n map[node.value] = node\n if (node.children) walk(node.children)\n }\n }\n walk(data)\n return map\n}\n\nfunction displayChecked(values: string[], data: TreeNodeData[], strategy: CheckedStrategy) {\n if (strategy === 'all') return values\n const nodes = buildLookup(data)\n return values.filter((value) =>\n strategy === 'child'\n ? !nodes[value]?.children?.length\n : !!nodes[value]?.children?.length ||\n !Object.values(nodes).some(\n (node) =>\n node.children?.some((child) => child.value === value) && values.includes(node.value),\n ),\n )\n}\n\nexport const TreeSelectOption = defineComponent({\n name: 'TreeSelectOption',\n inheritAttrs: false,\n props: {\n node: { type: Object as PropType<TreeNodeData>, required: true },\n level: { type: Number, required: true },\n hasChildren: { type: Boolean, default: false },\n expanded: { type: Boolean, default: false },\n selected: { type: Boolean, default: false },\n checked: { type: Boolean, default: false },\n indeterminate: { type: Boolean, default: false },\n showCheckbox: { type: Boolean, default: false },\n isLastChild: { type: Boolean, default: false },\n lineGuides: { type: Array as PropType<boolean[]>, default: () => [] },\n withLines: { type: Boolean, default: true },\n onToggleExpand: Function as PropType<(value: string) => void>,\n renderNode: Function as PropType<(payload: TreeSelectRenderNodePayload) => VNodeChild>,\n chevronAriaLabels: Object as PropType<TreeSelectChevronAriaLabels>,\n },\n setup(props, { attrs }) {\n return () => {\n const indentPx = (props.level - 1) * LEVEL_OFFSET\n\n const paddingInlineStart =\n BASE_PADDING +\n indentPx +\n (props.withLines && props.level > 1 ? LINE_CONTENT_GAP : 0) +\n (!props.hasChildren ? OPTION_GAP : 0)\n\n const isActive = props.selected || props.checked\n\n const ariaChecked = props.showCheckbox\n ? props.indeterminate && !props.checked\n ? 'mixed'\n : props.checked\n : undefined\n\n const payload: TreeSelectRenderNodePayload = {\n node: props.node,\n level: props.level,\n expanded: props.expanded,\n hasChildren: props.hasChildren,\n selected: props.selected,\n checked: props.checked,\n indeterminate: props.indeterminate,\n }\n\n // Line guide elements (match React's TreeSelectOption)\n const lineElements =\n props.withLines && props.level > 1\n ? [\n ...props.lineGuides.map((show, g) =>\n show\n ? h('span', {\n key: `g${g}`,\n class: classes.guideLine,\n style: {\n insetInlineStart: `${BASE_PADDING + (g + 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2}px`,\n },\n })\n : null,\n ),\n h('span', {\n class: classes.branchVertical,\n 'data-last': props.isLastChild || undefined,\n style: {\n insetInlineStart: `${BASE_PADDING + (props.level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2}px`,\n },\n }),\n h('span', {\n class: classes.branchHorizontal,\n style: {\n insetInlineStart: `${BASE_PADDING + (props.level - 1) * LEVEL_OFFSET - LEVEL_OFFSET / 2}px`,\n width: `${LEVEL_OFFSET / 2}px`,\n },\n }),\n ]\n : []\n\n const customContent = props.renderNode ? props.renderNode(payload) : null\n\n return h(\n Combobox.Option,\n {\n ...attrs,\n class: [classes.option, (attrs as any).class],\n value: props.node.value,\n disabled: props.node.nodeProps?.disabled,\n active: isActive,\n 'aria-selected': isActive,\n 'aria-level': props.level,\n 'aria-expanded': props.hasChildren ? props.expanded : undefined,\n 'aria-checked': ariaChecked,\n style: [{ paddingInlineStart: `${paddingInlineStart}px` }, (attrs as any).style],\n },\n () =>\n customContent\n ? [lineElements, customContent]\n : [\n ...lineElements,\n\n props.hasChildren\n ? h(\n 'span',\n {\n class: classes.expandIcon,\n 'data-expanded': props.expanded || undefined,\n role: 'button',\n tabindex: -1,\n 'aria-label': props.expanded\n ? (props.chevronAriaLabels?.collapse ?? 'Collapse')\n : (props.chevronAriaLabels?.expand ?? 'Expand'),\n onMousedown: (event: MouseEvent) => event.preventDefault(),\n onClick: (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n props.onToggleExpand?.(props.node.value)\n },\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n event.stopPropagation()\n props.onToggleExpand?.(props.node.value)\n }\n },\n },\n h(AccordionChevron, { size: '80%' }),\n )\n : null,\n props.showCheckbox\n ? h(CheckboxIndicator, {\n checked: props.checked || props.indeterminate,\n indeterminate: !props.checked && props.indeterminate,\n size: '18px',\n })\n : null,\n // Label\n h('span', { class: classes.label }, String(props.node.label)),\n // Check icon for selected (non-checkbox) state\n !props.showCheckbox && isActive ? h(CheckIcon, { class: classes.checkIcon }) : null,\n ],\n )\n }\n },\n})\n\nexport const TreeSelect = defineComponent({\n name: 'TreeSelect',\n inheritAttrs: false,\n props: {\n data: { type: Array as PropType<TreeNodeData[]>, required: true },\n mode: { type: String as PropType<TreeSelectMode>, default: 'single' },\n modelValue: { type: [String, Array] as PropType<any>, default: undefined },\n value: { type: [String, Array] as PropType<any>, default: undefined },\n defaultValue: { type: [String, Array] as PropType<any>, default: undefined },\n onChange: Function as PropType<(value: any) => void>,\n checkStrictly: Boolean,\n checkedStrategy: { type: String as PropType<CheckedStrategy>, default: 'child' },\n defaultExpandedValues: Array as PropType<string[]>,\n defaultExpandAll: Boolean,\n expandedValues: Array as PropType<string[]>,\n onExpandedChange: Function as PropType<(values: string[]) => void>,\n expandOnClick: Boolean,\n searchable: Boolean,\n searchValue: String,\n defaultSearchValue: String,\n onSearchChange: Function as PropType<(value: string) => void>,\n filter: Function as PropType<(query: string, node: TreeNodeData) => boolean>,\n nothingFoundMessage: { type: null as unknown as PropType<any>, default: undefined },\n allowDeselect: { type: Boolean, default: true },\n clearable: Boolean,\n maxValues: { type: Number, default: Infinity },\n maxDisplayedValues: Number,\n maxDisplayedValuesContent: {\n type: [String, Number, Function] as PropType<any>,\n default: undefined,\n },\n onRemove: Function as PropType<(value: string) => void>,\n onClear: Function as PropType<() => void>,\n renderNode: Function as PropType<any>,\n withLines: { type: Boolean, default: true },\n hiddenInputProps: Object,\n hiddenInputValuesDivider: { type: String, default: ',' },\n maxDropdownHeight: { type: [Number, String], default: 220 },\n scrollAreaProps: Object,\n dropdownOpened: { type: Boolean, default: undefined },\n defaultDropdownOpened: Boolean,\n onDropdownOpen: Function as PropType<() => void>,\n onDropdownClose: Function as PropType<() => void>,\n comboboxProps: Object,\n clearSearchOnChange: { type: Boolean, default: true },\n openOnFocus: { type: Boolean, default: true },\n chevronAriaLabels: Object as PropType<TreeSelectChevronAriaLabels>,\n },\n emits: ['update:modelValue', 'update:searchValue'],\n setup(props, { attrs, emit }) {\n const isMulti = () => props.mode !== 'single'\n\n const initial = props.defaultValue !== undefined ? props.defaultValue : isMulti() ? [] : null\n const internal = ref<any>(initial)\n const current = () => props.modelValue ?? props.value ?? internal.value\n const setValue = (value: any) => {\n if (props.modelValue === undefined && props.value === undefined) internal.value = value\n props.onChange?.(value)\n emit('update:modelValue', value)\n }\n\n const initialExpanded = props.defaultExpandAll\n ? allValues(props.data)\n : (props.defaultExpandedValues ?? [])\n const expandedInternal = ref<string[]>(initialExpanded)\n const expanded = () => props.expandedValues ?? expandedInternal.value\n const setExpanded = (values: string[]) => {\n if (props.expandedValues === undefined) expandedInternal.value = values\n props.onExpandedChange?.(values)\n }\n const toggleExpand = (value: string) =>\n setExpanded(\n expanded().includes(value)\n ? expanded().filter((item) => item !== value)\n : [...expanded(), value],\n )\n\n const nodes = computed(() => buildLookup(props.data))\n\n const initialLabel = !isMulti() && current() ? String(nodes.value[current()]?.label ?? '') : ''\n const internalSearch = ref(props.defaultSearchValue ?? initialLabel)\n const search = () => props.searchValue ?? internalSearch.value\n const setSearch = (value: string) => {\n if (props.searchValue === undefined) internalSearch.value = value\n props.onSearchChange?.(value)\n emit('update:searchValue', value)\n combobox.resetSelectedOption()\n }\n\n const combobox = useCombobox({\n opened: () => props.dropdownOpened,\n defaultOpened: props.defaultDropdownOpened,\n onDropdownOpen: props.onDropdownOpen,\n onDropdownClose: () => {\n props.onDropdownClose?.()\n combobox.resetSelectedOption()\n },\n })\n\n const filtered = computed(() => {\n if (!props.searchable || !search()) return props.data\n\n if (props.mode === 'single' && current()) {\n const node = nodes.value[current() as string]\n if (node && search() === String(node.label)) return props.data\n }\n return filterData(props.data, search(), props.filter)\n })\n\n const renderExpandedSet = computed(() => {\n if (props.searchable && search() && filtered.value !== props.data) {\n return new Set<string>(allValues(filtered.value))\n }\n return new Set<string>(expanded())\n })\n const flat = computed(() => flattenVisible(filtered.value, renderExpandedSet.value))\n\n const selectedArray = () => (Array.isArray(current()) ? (current() as string[]) : [])\n const remove = (value: string) => {\n setValue(selectedArray().filter((item) => item !== value))\n props.onRemove?.(value)\n }\n\n const submit = (value: string) => {\n const node = nodes.value[value]\n if (!node) return\n const hasChildren = !!(Array.isArray(node.children) && node.children.length > 0)\n\n if (props.mode === 'single') {\n // With expandOnClick: parent clicks only expand, not select\n if (props.expandOnClick && hasChildren) {\n toggleExpand(value)\n return\n }\n const next = props.allowDeselect && current() === value ? null : value\n setValue(next)\n if (props.clearSearchOnChange) {\n setSearch(next ? String(node.label) : '')\n }\n combobox.closeDropdown()\n return\n }\n\n if (props.mode === 'multiple') {\n // With expandOnClick: parent clicks only expand, not select\n if (props.expandOnClick && hasChildren) {\n toggleExpand(value)\n return\n }\n const vals = selectedArray()\n if (vals.includes(value)) {\n remove(value)\n } else if (vals.length < props.maxValues) {\n setValue([...vals, value])\n }\n return\n }\n\n // checkbox mode\n const vals = selectedArray()\n const affected = props.checkStrictly ? [value] : [value, ...allValues(node.children ?? [])]\n // Determine whether we are checking or unchecking by matching the visual\n // checked state shown to the user. With checkedStrategy:'child', vals\n // contains only leaf values, so the parent node value itself is never in\n // vals — using affected.every() would always return true (always \"checking\").\n const leaves = leafValues(node)\n const isCurrentlyChecked = props.checkStrictly\n ? vals.includes(value)\n : leaves.every((leaf) => vals.includes(leaf)) || vals.includes(value)\n const checking = !isCurrentlyChecked\n let next = checking\n ? [...new Set([...vals, ...affected])]\n : vals.filter((item) => !affected.includes(item))\n\n if (!props.checkStrictly) {\n // Propagate parent checked state based on children\n const allNodes = allValues(props.data)\n .map((v) => nodes.value[v])\n .filter(Boolean)\n for (const parentNode of allNodes.reverse()) {\n if (!parentNode.children?.length) continue\n const descendants = allValues(parentNode.children)\n if (descendants.every((item) => next.includes(item))) {\n next = [...new Set([...next, parentNode.value])]\n } else {\n next = next.filter((item) => item !== parentNode.value)\n }\n }\n }\n\n if (next.length <= props.maxValues || !checking) {\n setValue(displayChecked(next, props.data, props.checkedStrategy))\n }\n\n if (hasChildren && props.expandOnClick) {\n if (!expanded().includes(value)) {\n toggleExpand(value)\n }\n }\n }\n\n return () => {\n const disabled = !!(attrs as any).disabled\n const readOnly = !!(attrs as any).readOnly\n const multiValues = selectedArray()\n const hasValue = isMulti() ? multiValues.length > 0 : current() != null\n const canClear = props.clearable && hasValue && !disabled && !readOnly\n\n const clear = (event: MouseEvent) => {\n event.stopPropagation()\n setValue(isMulti() ? [] : null)\n setSearch('')\n props.onClear?.()\n }\n\n const rightSection = canClear\n ? h(Combobox.ClearButton, { ...(attrs as any).clearButtonProps, onClick: clear })\n : ((attrs as any).rightSection ??\n h(Combobox.Chevron, { size: (attrs as any).size ?? 'sm', error: (attrs as any).error }))\n\n const forwarded: any = { ...attrs }\n ;['name', 'form', 'rightSection', 'clearButtonProps', 'placeholder'].forEach(\n (key) => delete forwarded[key],\n )\n\n const field = (multi: boolean) =>\n h(PillsInput.Field, {\n value: search(),\n readonly: !props.searchable || readOnly,\n disabled,\n placeholder: !hasValue ? (attrs as any).placeholder : undefined,\n onInput: (event: Event) => {\n setSearch((event.target as HTMLInputElement).value)\n combobox.openDropdown()\n },\n onFocus: () => props.openOnFocus && props.searchable && combobox.openDropdown(),\n onClick: () => (props.searchable ? combobox.openDropdown() : combobox.toggleDropdown()),\n onBlur: () => combobox.closeDropdown(),\n onKeydown: (event: KeyboardEvent) => {\n if (\n event.key === 'Backspace' &&\n multi &&\n !search() &&\n multiValues.length &&\n !readOnly\n ) {\n remove(multiValues[multiValues.length - 1])\n }\n },\n })\n\n const input = isMulti()\n ? h(\n PillsInput,\n {\n ...forwarded,\n __staticSelector: 'TreeSelect',\n disabled,\n rightSection,\n rightSectionPointerEvents: canClear ? 'all' : 'none',\n },\n () =>\n h(Pill.Group, null, () => {\n const displayed =\n props.maxDisplayedValues == null\n ? multiValues\n : multiValues.slice(0, props.maxDisplayedValues)\n const overflow = multiValues.length - displayed.length\n return [\n ...displayed.map((value) =>\n h(\n Pill,\n {\n key: value,\n withRemoveButton: !readOnly && !nodes.value[value]?.nodeProps?.disabled,\n disabled,\n onRemove: () => remove(value),\n },\n () => String(nodes.value[value]?.label ?? value),\n ),\n ),\n overflow > 0\n ? h(Pill, { key: 'overflow' }, () =>\n typeof props.maxDisplayedValuesContent === 'function'\n ? props.maxDisplayedValuesContent(overflow)\n : (props.maxDisplayedValuesContent ?? `+${overflow} more`),\n )\n : null,\n field(true),\n ]\n }),\n )\n : h(InputBase, {\n ...forwarded,\n __staticSelector: 'TreeSelect',\n component: 'input',\n disabled,\n readonly: !props.searchable || readOnly,\n pointer: !props.searchable,\n value: search(),\n placeholder: (attrs as any).placeholder,\n rightSection,\n rightSectionPointerEvents: canClear ? 'all' : 'none',\n onInput: (event: Event) => {\n setSearch((event.target as HTMLInputElement).value)\n combobox.openDropdown()\n },\n onFocus: () => props.openOnFocus && props.searchable && combobox.openDropdown(),\n onClick: () => (props.searchable ? combobox.openDropdown() : combobox.toggleDropdown()),\n onBlur: () => {\n combobox.closeDropdown()\n setSearch(current() ? String(nodes.value[current()]?.label ?? '') : '')\n },\n })\n\n const treeOptions = flat.value.map((flatNode) => {\n const {\n node,\n level,\n hasChildren,\n expanded: nodeExpanded,\n isLastChild,\n lineGuides,\n } = flatNode\n const vals = selectedArray()\n const leaves = leafValues(node)\n\n const checked =\n props.mode === 'checkbox'\n ? props.checkStrictly\n ? vals.includes(node.value)\n : leaves.every((item) => vals.includes(item)) || vals.includes(node.value)\n : false\n\n const indeterminate =\n props.mode === 'checkbox' && !checked && leaves.some((item) => vals.includes(item))\n\n const selected =\n props.mode === 'single'\n ? current() === node.value\n : props.mode === 'multiple'\n ? vals.includes(node.value)\n : false\n\n return h(TreeSelectOption, {\n key: node.value,\n node,\n level,\n hasChildren,\n expanded: nodeExpanded,\n selected,\n checked,\n indeterminate,\n showCheckbox: props.mode === 'checkbox',\n isLastChild,\n lineGuides,\n withLines: props.withLines,\n onToggleExpand: toggleExpand,\n renderNode: props.renderNode,\n chevronAriaLabels: props.chevronAriaLabels,\n })\n })\n\n const optionsContent =\n flat.value.length > 0\n ? h(\n 'div',\n {\n ...props.scrollAreaProps,\n class: [classes.optionsWrapper, props.scrollAreaProps?.class],\n style: [\n {\n maxHeight:\n typeof props.maxDropdownHeight === 'number'\n ? `${props.maxDropdownHeight}px`\n : props.maxDropdownHeight,\n overflowY: 'auto',\n },\n props.scrollAreaProps?.style,\n ],\n },\n treeOptions,\n )\n : props.nothingFoundMessage != null\n ? h(Combobox.Empty, null, () => props.nothingFoundMessage)\n : null\n\n const control = h(\n Combobox,\n {\n store: combobox,\n readOnly,\n size: (attrs as any).size ?? 'sm',\n __staticSelector: 'TreeSelect',\n ...props.comboboxProps,\n onOptionSubmit: submit,\n },\n () => [\n h(Combobox.Target, { targetType: 'input', withExpandedAttribute: true }, () => input),\n h(Combobox.Dropdown, { hidden: disabled || readOnly }, () =>\n h(Combobox.Options, null, () => optionsContent),\n ),\n ],\n )\n\n return [\n control,\n h(Combobox.HiddenInput, {\n value: current(),\n valuesDivider: props.hiddenInputValuesDivider,\n name: (attrs as any).name,\n form: (attrs as any).form,\n disabled,\n ...props.hiddenInputProps,\n }),\n ]\n }\n },\n})\n\nObject.assign(TreeSelect, { classes: { ...InputBase.classes, ...Combobox.classes, ...classes } })\n","export * from './core/index'\nexport * from './components/index'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAgB,2BAA8B,cAAsB;CAClE,MAAM,MAAM,OAAO,YAAY;CAE/B,MAAM,uBAAuB;EAC3B,MAAM,MAAM,OAAO,KAAK,IAAI;EAE5B,IAAI,QAAQ,MACV,MAAM,IAAI,MAAM,YAAY;EAG9B,OAAO;CACT;CAEA,MAAM,sBAAsB,UAAa,QAAQ,KAAK,KAAK;CAE3D,OAAO;EAAC;EAAoB;EAAgB;CAAG;AACjD;AAEA,IAAa,oBAAoB;;;ACpBjC,SAAgB,mBACd,UAKA;CACA,OAAO;AACT;;;ACAA,SAAgB,gBACd,OACA,aACmB;CACnB,IAAI,OAAO,MAAM,iBAAiB,UAChC,OAAO,MAAM;CAGf,OAAO,gBAAgB,SAAS,MAAM,aAAa,OAAO,MAAM,aAAa;AAC/E;AASA,SAAS,WAAW,KAAsB;CAExC,OAAO,wCAAW,KAAK,GAAG;AAC5B;AAEA,SAAS,UAAU,OAAqB;CACtC,IAAI,YAAY,MAAM,QAAQ,KAAK,EAAE;CAErC,IAAI,UAAU,WAAW,GAAG;EAC1B,MAAM,eAAe,UAAU,MAAM,EAAE;EACvC,YAAY;GACV,aAAa;GACb,aAAa;GACb,aAAa;GACb,aAAa;GACb,aAAa;GACb,aAAa;EACf,EAAE,KAAK,EAAE;CACX;CAEA,IAAI,UAAU,WAAW,GAAG;EAC1B,MAAM,QAAQ,OAAO,SAAS,UAAU,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;EAC3D,OAAO;GACL,GAAG,OAAO,SAAS,UAAU,MAAM,GAAG,CAAC,GAAG,EAAE;GAC5C,GAAG,OAAO,SAAS,UAAU,MAAM,GAAG,CAAC,GAAG,EAAE;GAC5C,GAAG,OAAO,SAAS,UAAU,MAAM,GAAG,CAAC,GAAG,EAAE;GAC5C,GAAG;EACL;CACF;CAEA,MAAM,SAAS,OAAO,SAAS,WAAW,EAAE;CAK5C,OAAO;EAAE,GAJE,UAAU,KAAM;EAIf,GAHD,UAAU,IAAK;EAGX,GAFL,SAAS;EAED,GAAG;CAAE;AACzB;AAEA,SAAS,gBAAgB,OAAqB;CAC5C,MAAM,CAAC,GAAG,GAAG,GAAG,KAAK,MAClB,QAAQ,cAAc,EAAE,EACxB,MAAM,MAAM,EACZ,IAAI,MAAM;CAEb,OAAO;EAAE;EAAG;EAAG;EAAG,GAAG,MAAM,KAAA,IAAY,IAAI;CAAE;AAC/C;AAEA,SAAS,gBAAgB,YAA0B;CAIjD,MAAM,UAAU,WAAW,MAAM,kFAAS;CAC1C,IAAI,CAAC,SACH,OAAO;EAAE,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAE;CAGlC,MAAM,IAAI,OAAO,SAAS,QAAQ,IAAI,EAAE;CACxC,MAAM,IAAI,OAAO,SAAS,QAAQ,IAAI,EAAE,IAAI;CAC5C,MAAM,IAAI,OAAO,SAAS,QAAQ,IAAI,EAAE,IAAI;CAC5C,MAAM,IAAI,QAAQ,KAAK,OAAO,WAAW,QAAQ,EAAE,IAAI,KAAA;CAEvD,MAAM,UAAU,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK;CAC3C,MAAM,WAAW,IAAI;CACrB,MAAM,IAAI,UAAU,IAAI,KAAK,IAAK,WAAW,IAAK,CAAC;CACnD,MAAM,IAAI,IAAI,SAAS;CAEvB,IAAI;CACJ,IAAI;CACJ,IAAI;CAEJ,IAAI,YAAY,KAAK,WAAW,GAAG;EACjC,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,OAAO,IAAI,YAAY,KAAK,WAAW,GAAG;EACxC,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,OAAO,IAAI,YAAY,KAAK,WAAW,GAAG;EACxC,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,OAAO,IAAI,YAAY,KAAK,WAAW,GAAG;EACxC,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,OAAO,IAAI,YAAY,KAAK,WAAW,GAAG;EACxC,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,OAAO;EACL,IAAI;EACJ,IAAI;EACJ,IAAI;CACN;CAEA,OAAO;EACL,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG;EAC3B,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG;EAC3B,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG;EAC3B,GAAG,KAAK;CACV;AACF;AAEA,SAAgB,OAAO,OAAqB;CAC1C,IAAI,WAAW,KAAK,GAClB,OAAO,UAAU,KAAK;CAGxB,IAAI,MAAM,WAAW,KAAK,GACxB,OAAO,gBAAgB,KAAK;CAG9B,IAAI,MAAM,WAAW,KAAK,GACxB,OAAO,gBAAgB,KAAK;CAG9B,OAAO;EAAE,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAE;AAClC;AAEA,SAAgB,KAAK,OAAe,OAAe;CACjD,IAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,QAAQ,GACpD,OAAO;CAGT,IAAI,MAAM,WAAW,MAAM,GAEzB,OAAO,sBAAsB,MAAM,iBADZ,IAAI,SAAS,IAC6B;CAGnE,IAAI,MAAM,WAAW,OAAO,GAAG;EAC7B,IAAI,MAAM,SAAS,GAAG,GACpB,OAAO,MAAM,QAAQ,oBAAoB,KAAK,MAAM,EAAE;EAExD,OAAO,MAAM,QAAQ,KAAK,MAAM,MAAM,EAAE;CAC1C;CAEA,MAAM,EAAE,GAAG,GAAG,MAAM,OAAO,KAAK;CAChC,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM;AACzC;AAEA,IAAa,QAAQ;AAErB,SAAgB,OAAO,OAAe,YAAoB;CACxD,IAAI,MAAM,WAAW,MAAM,GACzB,OAAO,sBAAsB,MAAM,UAAU,aAAa,IAAI;CAGhE,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,OAAO,KAAK;CACnC,MAAM,IAAI,IAAI;CACd,MAAM,QAAQ,UAAkB,KAAK,MAAM,QAAQ,CAAC;CAEpD,OAAO,QAAQ,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE;AACvD;AAEA,SAAgB,QAAQ,OAAe,YAAoB;CACzD,IAAI,MAAM,WAAW,MAAM,GACzB,OAAO,sBAAsB,MAAM,UAAU,aAAa,IAAI;CAGhE,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,OAAO,KAAK;CACnC,MAAM,SAAS,UAAkB,KAAK,MAAM,SAAS,MAAM,SAAS,UAAU;CAE9E,OAAO,QAAQ,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE;AAC1D;AAEA,SAAS,aAAa,GAAW;CAC/B,OAAO,KAAK,SAAU,IAAI,UAAU,IAAI,QAAS,UAAU;AAC7D;AAEA,SAAS,sBAAsB,YAAoB;CACjD,MAAM,QAAQ,WAAW,MAAM,iBAAiB;CAChD,OAAO,QAAQ,OAAO,WAAW,MAAM,EAAE,IAAI;AAC/C;AAEA,SAAgB,UAAU,OAAuB;CAC/C,IAAI,MAAM,WAAW,QAAQ,GAC3B,QAAQ,sBAAsB,KAAK,KAAK,KAAK;CAG/C,MAAM,EAAE,GAAG,GAAG,MAAM,OAAO,KAAK;CAEhC,MAAM,KAAK,IAAI;CACf,MAAM,KAAK,IAAI;CACf,MAAM,KAAK,IAAI;CAEf,MAAM,UAAU,aAAa,EAAE;CAC/B,MAAM,UAAU,aAAa,EAAE;CAC/B,MAAM,UAAU,aAAa,EAAE;CAE/B,OAAO,QAAS,UAAU,QAAS,UAAU,QAAS;AACxD;AAEA,SAAgB,aAAa,OAAe,qBAAqB,MAAO;CACtE,IAAI,MAAM,WAAW,MAAM,GACzB,OAAO;CAGT,OAAO,UAAU,KAAK,IAAI;AAC5B;AAEA,SAAgB,YAAY,OAA8C;CACxE,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO;CAGT,OAAO,MAAM,EAAE,EAAE,KAAK,KAAK;AAC7B;AAeA,SAAgB,aAAa,OAA8C;CACzE,MAAM,SAAS,YACb,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,uBAAuB,MAAM,KAAK,GAAG,EAAE,EAAE,CACpF;CAEA,OAAO,eAAe,QAAQ,yBAAyB;EACrD,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OAAO;CACT,CAAC;CACD,OAAO,eAAe,QAAQ,QAAQ;EACpC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OAAO,MAAM;CACf,CAAC;CACD,OAAO,eAAe,QAAQ,SAAS;EACrC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OAAO,MAAM;CACf,CAAC;CACD,OAAO,eAAe,QAAQ,QAAQ;EACpC,YAAY;EACZ,UAAU;EACV,cAAc;EACd,OAAO,MAAM;CACf,CAAC;CAED,OAAO;AACT;AAEA,SAAgB,eAAe,OAAuC;CACpE,OAAO,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,2BAA2B;AAC5E;AAWA,SAAgB,gBAAgB,EAC9B,OACA,OACA,eAKwB;CACxB,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,MACR,yFAAyF,OAAO,OAClG;CAGF,IAAI,UAAU,UAAU;EACtB,MAAM,QAAQ,gBAAgB,SAAS,MAAM,QAAQ,MAAM;EAC3D,OAAO;GACL;GACA;GACA,OAAO,KAAA;GACP,cAAc;GACd,SAAS,aAAa,OAAO,MAAM,kBAAkB;GACrD,UAAU;EACZ;CACF;CAEA,IAAI,UAAU,UAEZ,OAAO;EACL;EACA,OAHY,gBAAgB,SAAS,MAAM,OAAO,KAAK,KAAK,MAAM,OAAO,KAAK;EAI9E,OAAO,KAAA;EACP,cAAc;EACd,SAAS,aACP,gBAAgB,SAAS,MAAM,OAAO,KAAK,KAAK,MAAM,OAAO,KAAK,IAClE,MAAM,kBACR;EACA,UAAU;CACZ;CAGF,IAAI,UAAU,WAAW,UAAU,SAAS;EAC1C,MAAM,QAAQ,UAAU,UAAU,MAAM,QAAQ,MAAM;EACtD,OAAO;GACL;GACA;GACA,OAAO,KAAA;GACP,cAAc;GACd,SAAS,aAAa,OAAO,MAAM,kBAAkB;GACrD,UAAU,mBAAmB;EAC/B;CACF;CAEA,MAAM,CAAC,QAAQ,SAAS,MAAM,MAAM,GAAG;CACvC,MAAM,aAAa,QAAS,OAAO,KAAK,IAA0B,KAAA;CAClE,MAAM,eAAe,UAAU,MAAM;CAErC,IAAI,cAAc;EAChB,MAAM,aACJ,eAAe,KAAA,IACX,MAAM,OAAO,QAAQ,cACrB,MAAM,OAAO,QAAQ,gBAAgB,OAAO,eAAe,OAAO;EAExE,OAAO;GACL,OAAO;GACP,OAAO;GACP,OAAO;GACP;GACA,SAAS,aAAa,YAAY,MAAM,kBAAkB;GAC1D,UAAU,QACN,mBAAmB,OAAO,GAAG,eAC7B,mBAAmB,OAAO;EAChC;CACF;CAEA,OAAO;EACL;EACA,OAAO;EACP;EACA,SAAS,aAAa,OAAO,MAAM,kBAAkB;EACrD,OAAO;EACP,UAAU,KAAA;CACZ;AACF;AAEA,SAAgB,cACd,OACA,OACA,cAAkC,SAClC;CACA,MAAM,SAAS,gBAAgB;EAAE,OAAO,SAAS,MAAM;EAAc;EAAO;CAAY,CAAC;CACzF,OAAO,OAAO,WAAW,OAAO,OAAO,SAAS,KAAM;AACxD;AAEA,SAAgB,YAAY,UAAuC,OAAqB;CACtF,MAAM,SAAS;EACb,MAAM,UAAU,QAAQ,MAAM,gBAAgB;EAC9C,IAAI,UAAU,MAAM,MAAM,gBAAgB;EAC1C,KAAK,UAAU,OAAO,MAAM,gBAAgB,OAAO;CACrD;CAEA,MAAM,YAAY,cAAc,OAAO,MAAM,KAAK;CAClD,MAAM,UAAU,cAAc,OAAO,IAAI,KAAK;CAE9C,OAAO,mBAAmB,OAAO,IAAI,OAAO,UAAU,OAAO,QAAQ;AACvE;AAEA,SAAgB,qBAAqB,cAAmC,OAAqB;CAC3F,OAAO,OAAO,iBAAiB,YAAY,eAAe,MAAM;AAClE;AAEA,SAAgB,iBAAiB,EAC/B,OACA,OACA,gBAKC;CAGD,IAAI,EAFkB,OAAO,iBAAiB,YAAY,eAAe,MAAM,eAG7E,OAAO;CAIT,OADe,gBAAgB;EAAE,OAAO,SAAS,MAAM;EAAc;CAAM,CACpE,EAAO,UAAU,+BAA+B;AACzD;AAEA,SAAgB,wBAAwB,OAAqB,aAA+B;CAC1F,OAAO,iBAAiB;EACtB,OAAO,MAAM,OAAO,MAAM,cAAc,gBAAgB,OAAO,WAAW;EAC1E;EACA,cAAc;CAChB,CAAC;AACH;AAEA,IAAa,gCAAuD,EAClE,OACA,OACA,SACA,UACA,mBACI;CACJ,MAAM,SAAS,gBAAgB;EAAE;EAAO;CAAM,CAAC;CAC/C,MAAM,gBAAgB,OAAO,iBAAiB,YAAY,eAAe,MAAM;CAE/E,IAAI,YAAY,QACd,OAAO;EAAE,YAAY;EAAe,OAAO;EAAe,OAAO;EAAW,QAAQ;CAAO;CAG7F,IAAI,YAAY,UAAU;EACxB,MAAM,YAAY,gBACd,OAAO,UACL,+BACA,+BACF;EAEJ,IAAI,OAAO,cAAc;GACvB,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO;IACL,YAAY,uBAAuB,MAAM;IACzC,OAAO,uBAAuB,MAAM;IACpC,OAAO;IACP,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;GAGF,OAAO;IACL,YAAY,uBAAuB,OAAO,MAAM,GAAG,OAAO,MAAM;IAChE,OAAO,uBAAuB,OAAO,MAAM,GAAG,OAAO,UAAU,IAAI,IAAI,OAAO,QAAQ,EAAE;IACxF,OAAO;IACP,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;EACF;EAEA,OAAO;GACL,YAAY;GACZ,OAAO,OAAO,OAAQ,EAAG;GACzB,OAAO;GACP,QAAQ,GAAG,IAAI,CAAC,EAAE;EACpB;CACF;CAEA,IAAI,YAAY,SAAS;EACvB,IAAI,OAAO,cAAc;GACvB,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO;IACL,YAAY,uBAAuB,MAAM;IACzC,OAAO,uBAAuB,MAAM;IACpC,OAAO,uBAAuB,MAAM;IACpC,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;GAGF,MAAM,cAAc,MAAM,OAAO,OAAO,OAAO,OAAO;GAEtD,OAAO;IACL,YAAY;IACZ,OAAO,OAAO,aAAa,EAAG;IAC9B,OAAO,uBAAuB,OAAO,MAAM;IAC3C,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;EACF;EAEA,OAAO;GACL,YAAY,KAAK,OAAQ,EAAG;GAC5B,OAAO,KAAK,OAAQ,GAAI;GACjB;GACP,QAAQ,GAAG,IAAI,CAAC,EAAE;EACpB;CACF;CAEA,IAAI,YAAY,WAAW;EACzB,IAAI,OAAO,cAAc;GACvB,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO;IACL,YAAY;IACZ,OAAO,uBAAuB,MAAM;IACpC,OAAO,uBAAuB,MAAM;IACpC,QAAQ,GAAG,IAAI,CAAC,EAAE,6BAA6B,MAAM;GACvD;GAGF,OAAO;IACL,YAAY;IACZ,OAAO,KAAK,MAAM,OAAO,OAAO,OAAO,OAAO,QAAQ,GAAI;IAC1D,OAAO,uBAAuB,OAAO,MAAM,GAAG,OAAO,MAAM;IAC3D,QAAQ,GAAG,IAAI,CAAC,EAAE,6BAA6B,OAAO,MAAM,GAAG,OAAO,MAAM;GAC9E;EACF;EAEA,OAAO;GACL,YAAY;GACZ,OAAO,KAAK,OAAQ,GAAI;GACjB;GACP,QAAQ,GAAG,IAAI,CAAC,EAAE,SAAS;EAC7B;CACF;CAEA,IAAI,YAAY,UAAU;EACxB,IAAI,OAAO,cAAc;GACvB,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO;IACL,YAAY;IACZ,OAAO,uBAAuB,MAAM;IACpC,OAAO,uBAAuB,MAAM;IACpC,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;GAGF,MAAM,cAAc,MAAM,OAAO,OAAO,OAAO,OAAO;GAEtD,OAAO;IACL,YAAY;IACZ,OAAO,KAAK,aAAa,GAAI;IAC7B,OAAO,uBAAuB,OAAO,MAAM,GAAG,KAAK,IAAI,OAAO,OAAO,CAAC,EAAE;IACxE,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;EACF;EAEA,OAAO;GACL,YAAY;GACZ,OAAO,KAAK,OAAQ,GAAI;GACjB;GACP,QAAQ,GAAG,IAAI,CAAC,EAAE;EACpB;CACF;CAEA,IAAI,YAAY,eAAe;EAC7B,IAAI,OAAO,cAAc;GACvB,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO;IACL,YAAY;IACZ,OAAO;IACP,OAAO,uBAAuB,MAAM;IACpC,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;GAGF,OAAO;IACL,YAAY;IACZ,OAAO;IACP,OAAO,uBAAuB,OAAO,MAAM,GAAG,KAAK,IAAI,OAAO,OAAO,CAAC,EAAE;IACxE,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;EACF;EAEA,OAAO;GACL,YAAY;GACZ,OAAO;GACA;GACP,QAAQ,GAAG,IAAI,CAAC,EAAE;EACpB;CACF;CAEA,IAAI,YAAY,SAAS;EACvB,IAAI,OAAO,cAAc;GACvB,IAAI,OAAO,UAAU,KAAA,GACnB,OAAO;IACL,YAAY;IACZ,OAAO,OAAO,MAAM,OAAO,GAAI;IAC/B,OAAO,uBAAuB,MAAM;IACpC,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;GAGF,OAAO;IACL,YAAY;IACZ,OAAO,OAAO,MAAM,OAAO,GAAI;IAC/B,OAAO,uBAAuB,OAAO,MAAM,GAAG,OAAO,MAAM;IAC3D,QAAQ,GAAG,IAAI,CAAC,EAAE;GACpB;EACF;EAEA,OAAO;GACL,YAAY;GACZ,OAAO,OAAO,MAAM,OAAO,GAAI;GACxB;GACP,QAAQ,GAAG,IAAI,CAAC,EAAE;EACpB;CACF;CAEA,IAAI,YAAY,YACd,OAAO;EACL,YAAY,YAAY,UAAU,KAAK;EACvC,OAAO,YAAY,UAAU,KAAK;EAClC,OAAO;EACP,QAAQ;CACV;CAGF,IAAI,YAAY,WACd,OAAO;EACL,YAAY;EACZ,OAAO;EACP,OAAO;EACP,QAAQ,GAAG,IAAI,CAAC,EAAE;CACpB;CAGF,OAAO,CAAC;AACV;;;AC9nBA,IAAa,iBAAqC;CAChD,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,KAAK;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;ACtKA,IAAM,sBACJ;AAEF,IAAa,gBAA8B;CACzC,OAAO;CACP,eAAe;CACf,WAAW;CACX,OAAO;CACP,OAAO;CACP,QAAQ;CACR,cAAc;EAAE,OAAO;EAAG,MAAM;CAAE;CAClC,cAAc;CACd,sBAAsB;CACtB,cAAc;CACd,oBAAoB;CACpB,YAAY;CACZ,qBACE;CACF,sBAAsB;CACtB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"}