@pathscale/ui 1.2.5 → 1.2.7

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 (385) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +59 -59
  3. package/dist/components/_shared/index.js +2 -3
  4. package/dist/components/_shared/overlayPosition.js +5 -5
  5. package/dist/components/accordion/Accordion.css +158 -158
  6. package/dist/components/accordion/Accordion.js +44 -44
  7. package/dist/components/accordion/index.js +2 -9
  8. package/dist/components/alert/Alert.css +116 -116
  9. package/dist/components/alert/Alert.js +30 -30
  10. package/dist/components/alert/index.js +2 -8
  11. package/dist/components/auth-card/AuthCard.js +20 -20
  12. package/dist/components/auth-card/index.js +2 -3
  13. package/dist/components/auth-error-message/AuthErrorMessage.js +12 -12
  14. package/dist/components/auth-error-message/index.js +2 -3
  15. package/dist/components/auth-field-group/AuthFieldGroup.js +11 -11
  16. package/dist/components/auth-field-group/index.js +2 -3
  17. package/dist/components/auth-footer-links/AuthFooterLinks.js +20 -20
  18. package/dist/components/auth-footer-links/index.js +2 -3
  19. package/dist/components/auth-form/AuthForm.js +11 -11
  20. package/dist/components/auth-form/index.js +2 -3
  21. package/dist/components/auth-powered-by/AuthPoweredBy.js +15 -26
  22. package/dist/components/auth-powered-by/index.js +2 -3
  23. package/dist/components/auth-submit-button/AuthSubmitButton.js +10 -10
  24. package/dist/components/auth-submit-button/index.js +2 -3
  25. package/dist/components/auth-success-message/AuthSuccessMessage.js +9 -9
  26. package/dist/components/auth-success-message/index.js +2 -3
  27. package/dist/components/avatar/Avatar.css +124 -124
  28. package/dist/components/avatar/Avatar.js +27 -27
  29. package/dist/components/avatar/AvatarGroup.js +11 -11
  30. package/dist/components/avatar/index.js +2 -6
  31. package/dist/components/badge/Badge.css +164 -164
  32. package/dist/components/badge/Badge.js +19 -19
  33. package/dist/components/badge/index.js +6 -9
  34. package/dist/components/breadcrumbs/Breadcrumbs.css +63 -63
  35. package/dist/components/breadcrumbs/Breadcrumbs.js +25 -25
  36. package/dist/components/breadcrumbs/index.js +2 -5
  37. package/dist/components/button/Button.css +194 -194
  38. package/dist/components/button/Button.js +22 -22
  39. package/dist/components/button/index.js +2 -3
  40. package/dist/components/button-group/ButtonGroup.css +117 -117
  41. package/dist/components/button-group/ButtonGroup.js +14 -14
  42. package/dist/components/button-group/context.js +2 -2
  43. package/dist/components/button-group/index.js +2 -6
  44. package/dist/components/calendar/Calendar.css +258 -258
  45. package/dist/components/calendar/Calendar.js +85 -85
  46. package/dist/components/calendar/index.js +2 -3
  47. package/dist/components/card/Card.css +110 -110
  48. package/dist/components/card/Card.js +21 -21
  49. package/dist/components/card/index.js +2 -8
  50. package/dist/components/chatbubble/ChatBubble.css +164 -164
  51. package/dist/components/chatbubble/ChatBubble.js +19 -19
  52. package/dist/components/chatbubble/ChatBubbleAvatar.js +8 -8
  53. package/dist/components/chatbubble/ChatBubbleFooter.js +11 -11
  54. package/dist/components/chatbubble/ChatBubbleHeader.js +8 -8
  55. package/dist/components/chatbubble/ChatBubbleMessage.js +12 -12
  56. package/dist/components/chatbubble/ChatBubbleTime.js +11 -11
  57. package/dist/components/chatbubble/index.js +2 -3
  58. package/dist/components/checkbox/Checkbox.css +183 -183
  59. package/dist/components/checkbox/Checkbox.js +29 -29
  60. package/dist/components/checkbox/index.js +2 -3
  61. package/dist/components/checkbox-group/CheckboxGroup.css +10 -10
  62. package/dist/components/checkbox-group/CheckboxGroup.js +16 -16
  63. package/dist/components/checkbox-group/context.js +2 -2
  64. package/dist/components/checkbox-group/index.js +3 -4
  65. package/dist/components/chip/Chip.css +197 -197
  66. package/dist/components/chip/Chip.js +32 -32
  67. package/dist/components/chip/index.js +5 -7
  68. package/dist/components/close-button/CloseButton.css +81 -81
  69. package/dist/components/close-button/CloseButton.js +22 -22
  70. package/dist/components/close-button/index.js +2 -3
  71. package/dist/components/color-area/ColorArea.css +54 -54
  72. package/dist/components/color-area/ColorArea.js +13 -13
  73. package/dist/components/color-area/index.js +2 -2
  74. package/dist/components/color-field/ColorField.css +88 -88
  75. package/dist/components/color-field/ColorField.js +23 -23
  76. package/dist/components/color-field/index.js +2 -2
  77. package/dist/components/color-picker/ColorPicker.css +28 -28
  78. package/dist/components/color-picker/ColorPicker.js +44 -44
  79. package/dist/components/color-picker/index.js +2 -8
  80. package/dist/components/color-slider/ColorSlider.css +57 -57
  81. package/dist/components/color-slider/ColorSlider.js +21 -21
  82. package/dist/components/color-slider/index.js +2 -2
  83. package/dist/components/color-swatch/ColorSwatch.css +84 -84
  84. package/dist/components/color-swatch/ColorSwatch.js +14 -14
  85. package/dist/components/color-swatch/index.js +2 -2
  86. package/dist/components/color-swatch-picker/ColorSwatchPicker.css +12 -12
  87. package/dist/components/color-swatch-picker/ColorSwatchPicker.js +14 -14
  88. package/dist/components/color-swatch-picker/index.js +2 -5
  89. package/dist/components/color-wheel-flower/ColorWheelFlower.css +147 -147
  90. package/dist/components/color-wheel-flower/ColorWheelFlower.js +83 -83
  91. package/dist/components/color-wheel-flower/colorWheelFlowerContext.js +3 -3
  92. package/dist/components/color-wheel-flower/index.js +3 -6
  93. package/dist/components/combo-box/ComboBox.css +344 -344
  94. package/dist/components/combo-box/ComboBox.js +90 -90
  95. package/dist/components/combo-box/index.js +2 -10
  96. package/dist/components/date-field/DateField.css +215 -215
  97. package/dist/components/date-field/DateField.js +41 -41
  98. package/dist/components/date-field/index.js +2 -11
  99. package/dist/components/date-picker/DatePicker.css +143 -143
  100. package/dist/components/date-picker/DatePicker.js +40 -40
  101. package/dist/components/date-picker/index.js +2 -3
  102. package/dist/components/date-range-picker/DateRangePicker.css +149 -149
  103. package/dist/components/date-range-picker/DateRangePicker.js +55 -55
  104. package/dist/components/date-range-picker/index.js +2 -3
  105. package/dist/components/description/Description.css +10 -10
  106. package/dist/components/description/Description.js +9 -9
  107. package/dist/components/description/index.js +2 -5
  108. package/dist/components/disclosure/Disclosure.css +84 -84
  109. package/dist/components/disclosure/Disclosure.js +40 -40
  110. package/dist/components/disclosure/index.js +3 -9
  111. package/dist/components/disclosure-group/DisclosureGroup.css +9 -9
  112. package/dist/components/disclosure-group/DisclosureGroup.js +13 -13
  113. package/dist/components/disclosure-group/index.js +4 -6
  114. package/dist/components/disclosure-group/useDisclosureGroupNavigation.js +4 -4
  115. package/dist/components/drawer/Drawer.context.js +3 -3
  116. package/dist/components/drawer/Drawer.css +463 -463
  117. package/dist/components/drawer/Drawer.js +107 -107
  118. package/dist/components/drawer/index.js +2 -15
  119. package/dist/components/dropdown/Dropdown.css +211 -211
  120. package/dist/components/dropdown/Dropdown.js +66 -66
  121. package/dist/components/dropdown/index.js +2 -4
  122. package/dist/components/empty-state/EmptyState.css +39 -39
  123. package/dist/components/empty-state/EmptyState.js +25 -25
  124. package/dist/components/empty-state/index.js +2 -8
  125. package/dist/components/error-message/ErrorMessage.css +20 -20
  126. package/dist/components/error-message/ErrorMessage.js +12 -12
  127. package/dist/components/error-message/index.js +2 -5
  128. package/dist/components/field-error/FieldError.css +27 -27
  129. package/dist/components/field-error/FieldError.js +14 -14
  130. package/dist/components/field-error/index.js +2 -5
  131. package/dist/components/fieldset/Fieldset.css +30 -30
  132. package/dist/components/fieldset/Fieldset.js +21 -21
  133. package/dist/components/fieldset/index.js +2 -8
  134. package/dist/components/flex/Flex.css +5 -5
  135. package/dist/components/flex/Flex.js +14 -14
  136. package/dist/components/flex/index.js +2 -3
  137. package/dist/components/floating-dock/FloatingDock.css +208 -208
  138. package/dist/components/floating-dock/FloatingDock.js +76 -76
  139. package/dist/components/floating-dock/index.js +2 -3
  140. package/dist/components/footer/Footer.js +11 -11
  141. package/dist/components/footer/FooterTitle.js +9 -9
  142. package/dist/components/footer/footer.css +51 -51
  143. package/dist/components/footer/index.js +2 -3
  144. package/dist/components/form/FieldErrorMessage.js +8 -8
  145. package/dist/components/form/Form.css +5 -5
  146. package/dist/components/form/Form.js +21 -21
  147. package/dist/components/form/FormField.js +19 -19
  148. package/dist/components/form/FormSubmitButton.js +11 -11
  149. package/dist/components/form/index.js +5 -12
  150. package/dist/components/glass-panel/GlassPanel.css +359 -359
  151. package/dist/components/glass-panel/GlassPanel.js +29 -29
  152. package/dist/components/glass-panel/index.js +2 -3
  153. package/dist/components/glow-card/GlowCard.css +100 -100
  154. package/dist/components/glow-card/GlowCard.js +10 -10
  155. package/dist/components/glow-card/index.js +2 -3
  156. package/dist/components/grid/Grid.css +5 -5
  157. package/dist/components/grid/Grid.js +15 -15
  158. package/dist/components/grid/index.js +2 -3
  159. package/dist/components/header/Header.css +13 -13
  160. package/dist/components/header/Header.js +12 -12
  161. package/dist/components/header/index.js +2 -5
  162. package/dist/components/icon/Icon.css +10 -10
  163. package/dist/components/icon/Icon.js +8 -8
  164. package/dist/components/icon/index.js +2 -3
  165. package/dist/components/immersive-landing/ImmersiveLanding.css +565 -565
  166. package/dist/components/immersive-landing/ImmersiveLanding.js +44 -44
  167. package/dist/components/immersive-landing/ImmersiveLandingArrows.js +17 -17
  168. package/dist/components/immersive-landing/ImmersiveLandingContext.js +3 -3
  169. package/dist/components/immersive-landing/ImmersiveLandingNavigation.js +36 -36
  170. package/dist/components/immersive-landing/ImmersiveLandingPage.js +15 -15
  171. package/dist/components/immersive-landing/components/CookieConsent.js +71 -71
  172. package/dist/components/immersive-landing/components/FirefoxPWABanner.js +42 -42
  173. package/dist/components/immersive-landing/components/PWAInstallPrompt.js +40 -40
  174. package/dist/components/immersive-landing/index.js +7 -14
  175. package/dist/components/immersive-landing/useImmersiveLanding.js +7 -7
  176. package/dist/components/input/Input.css +155 -155
  177. package/dist/components/input/Input.js +48 -48
  178. package/dist/components/input/index.js +2 -2
  179. package/dist/components/input-group/InputGroup.css +172 -172
  180. package/dist/components/input-group/InputGroup.js +33 -33
  181. package/dist/components/input-group/index.js +2 -9
  182. package/dist/components/input-otp/InputOTP.css +170 -170
  183. package/dist/components/input-otp/InputOTP.js +48 -48
  184. package/dist/components/input-otp/index.js +2 -11
  185. package/dist/components/join/Join.js +14 -14
  186. package/dist/components/join/index.js +2 -3
  187. package/dist/components/kbd/Kbd.css +60 -60
  188. package/dist/components/kbd/Kbd.js +20 -20
  189. package/dist/components/kbd/index.js +2 -8
  190. package/dist/components/label/Label.css +30 -30
  191. package/dist/components/label/Label.js +9 -9
  192. package/dist/components/label/index.js +2 -5
  193. package/dist/components/language-switcher/LanguageSwitcher.css +56 -56
  194. package/dist/components/language-switcher/LanguageSwitcher.js +26 -26
  195. package/dist/components/language-switcher/createI18n.js +8 -8
  196. package/dist/components/language-switcher/index.js +3 -8
  197. package/dist/components/link/Link.css +131 -131
  198. package/dist/components/link/Link.js +22 -22
  199. package/dist/components/link/index.js +2 -5
  200. package/dist/components/list-box/ListBox.css +148 -148
  201. package/dist/components/list-box/ListBox.js +17 -17
  202. package/dist/components/list-box/ListBoxItem.js +32 -32
  203. package/dist/components/list-box/ListBoxSection.js +13 -13
  204. package/dist/components/list-box/context.js +2 -2
  205. package/dist/components/list-box/index.js +9 -15
  206. package/dist/components/live-chat/LiveChat.css +324 -324
  207. package/dist/components/live-chat/LiveChatBubble.js +27 -27
  208. package/dist/components/live-chat/LiveChatPanel.js +62 -62
  209. package/dist/components/live-chat/index.js +3 -5
  210. package/dist/components/menu/Menu.css +199 -199
  211. package/dist/components/menu/Menu.js +25 -30
  212. package/dist/components/menu/MenuItem.js +38 -38
  213. package/dist/components/menu/MenuSection.js +13 -13
  214. package/dist/components/menu/context.js +2 -2
  215. package/dist/components/menu/index.js +3 -12
  216. package/dist/components/meter/Meter.css +89 -89
  217. package/dist/components/meter/Meter.js +31 -31
  218. package/dist/components/meter/index.js +2 -8
  219. package/dist/components/modal/Modal.css +320 -320
  220. package/dist/components/modal/Modal.js +80 -80
  221. package/dist/components/modal/index.js +2 -13
  222. package/dist/components/navbar/Navbar.css +110 -110
  223. package/dist/components/navbar/Navbar.js +18 -18
  224. package/dist/components/navbar/NavbarRow.js +10 -10
  225. package/dist/components/navbar/NavbarSection.js +9 -9
  226. package/dist/components/navbar/NavbarStack.js +10 -10
  227. package/dist/components/navbar/index.js +2 -3
  228. package/dist/components/noise-background/NoiseBackground.css +66 -66
  229. package/dist/components/noise-background/NoiseBackground.js +35 -35
  230. package/dist/components/noise-background/index.js +2 -3
  231. package/dist/components/number-field/NumberField.css +198 -198
  232. package/dist/components/number-field/NumberField.js +42 -42
  233. package/dist/components/number-field/index.js +2 -9
  234. package/dist/components/pagination/Pagination.css +121 -121
  235. package/dist/components/pagination/Pagination.js +34 -34
  236. package/dist/components/pagination/index.js +2 -3
  237. package/dist/components/password-field/PasswordField.js +15 -15
  238. package/dist/components/password-field/index.js +2 -3
  239. package/dist/components/password-requirements/PasswordRequirements.js +24 -24
  240. package/dist/components/password-requirements/index.js +2 -3
  241. package/dist/components/password-rules/index.js +2 -4
  242. package/dist/components/popover/Popover.css +117 -117
  243. package/dist/components/popover/Popover.js +50 -50
  244. package/dist/components/popover/index.js +3 -9
  245. package/dist/components/progress-bar/ProgressBar.css +104 -104
  246. package/dist/components/progress-bar/ProgressBar.js +27 -27
  247. package/dist/components/progress-bar/index.js +2 -3
  248. package/dist/components/progress-circle/ProgressCircle.css +82 -82
  249. package/dist/components/progress-circle/ProgressCircle.js +32 -32
  250. package/dist/components/progress-circle/index.js +2 -3
  251. package/dist/components/radio/Radio.css +129 -129
  252. package/dist/components/radio/Radio.js +27 -27
  253. package/dist/components/radio/index.js +2 -3
  254. package/dist/components/radio-group/RadioGroup.css +58 -58
  255. package/dist/components/radio-group/RadioGroup.js +33 -33
  256. package/dist/components/radio-group/context.js +2 -2
  257. package/dist/components/radio-group/index.js +3 -4
  258. package/dist/components/range-calendar/RangeCalendar.css +51 -51
  259. package/dist/components/range-calendar/RangeCalendar.js +15 -15
  260. package/dist/components/range-calendar/index.js +2 -3
  261. package/dist/components/scroll-shadow/ScrollShadow.css +93 -93
  262. package/dist/components/scroll-shadow/ScrollShadow.js +19 -19
  263. package/dist/components/scroll-shadow/index.js +2 -3
  264. package/dist/components/scroll-shadow/useScrollShadow.js +3 -3
  265. package/dist/components/search-field/SearchField.css +183 -183
  266. package/dist/components/search-field/SearchField.js +38 -38
  267. package/dist/components/search-field/index.js +2 -9
  268. package/dist/components/select/Select.css +284 -284
  269. package/dist/components/select/Select.js +129 -129
  270. package/dist/components/select/index.js +2 -3
  271. package/dist/components/separator/Separator.css +35 -35
  272. package/dist/components/separator/Separator.js +11 -11
  273. package/dist/components/separator/index.js +2 -4
  274. package/dist/components/size-picker/SizePicker.js +17 -17
  275. package/dist/components/size-picker/index.js +3 -6
  276. package/dist/components/size-picker/sizeStore.js +3 -3
  277. package/dist/components/skeleton/Skeleton.css +95 -95
  278. package/dist/components/skeleton/Skeleton.js +8 -8
  279. package/dist/components/skeleton/index.js +2 -3
  280. package/dist/components/slider/Slider.css +122 -122
  281. package/dist/components/slider/Slider.js +26 -26
  282. package/dist/components/slider/index.js +2 -3
  283. package/dist/components/spinner/Spinner.css +131 -131
  284. package/dist/components/spinner/Spinner.js +19 -19
  285. package/dist/components/spinner/index.js +2 -5
  286. package/dist/components/surface/Surface.css +37 -37
  287. package/dist/components/surface/Surface.js +9 -9
  288. package/dist/components/surface/index.js +2 -4
  289. package/dist/components/table/ExpandToggle.js +14 -14
  290. package/dist/components/table/InlineConfirm.js +11 -11
  291. package/dist/components/table/MobileListView.js +24 -24
  292. package/dist/components/table/SortIcon.js +13 -13
  293. package/dist/components/table/Table.css +426 -426
  294. package/dist/components/table/Table.js +80 -80
  295. package/dist/components/table/VirtualSpacerRow.js +8 -8
  296. package/dist/components/table/index.js +8 -38
  297. package/dist/components/tabs/Tabs.css +203 -203
  298. package/dist/components/tabs/Tabs.js +59 -59
  299. package/dist/components/tabs/index.js +2 -4
  300. package/dist/components/tag/Tag.css +121 -121
  301. package/dist/components/tag/Tag.js +40 -40
  302. package/dist/components/tag/index.js +2 -6
  303. package/dist/components/tag-group/TagGroup.css +22 -22
  304. package/dist/components/tag-group/TagGroup.js +20 -20
  305. package/dist/components/tag-group/context.js +2 -2
  306. package/dist/components/tag-group/index.js +2 -6
  307. package/dist/components/text/Text.css +66 -66
  308. package/dist/components/text/Text.js +9 -9
  309. package/dist/components/text/index.js +2 -5
  310. package/dist/components/text-area/TextArea.css +95 -95
  311. package/dist/components/text-area/TextArea.js +10 -10
  312. package/dist/components/text-area/index.js +2 -5
  313. package/dist/components/text-field/TextField.css +33 -33
  314. package/dist/components/text-field/TextField.js +15 -15
  315. package/dist/components/text-field/index.js +2 -7
  316. package/dist/components/textarea/Textarea.js +11 -13
  317. package/dist/components/textarea/index.js +2 -6
  318. package/dist/components/theme-color-picker/ThemeColorPicker.js +49 -49
  319. package/dist/components/theme-color-picker/hueShift.js +3 -3
  320. package/dist/components/theme-color-picker/index.js +3 -7
  321. package/dist/components/time-field/TimeField.css +215 -215
  322. package/dist/components/time-field/TimeField.js +41 -41
  323. package/dist/components/time-field/index.js +2 -11
  324. package/dist/components/toast/Toast.css +344 -344
  325. package/dist/components/toast/Toast.js +98 -98
  326. package/dist/components/toast/index.js +2 -19
  327. package/dist/components/toggle/Toggle.css +237 -237
  328. package/dist/components/toggle/Toggle.js +31 -31
  329. package/dist/components/toggle/index.js +2 -3
  330. package/dist/components/toolbar/Toolbar.css +55 -55
  331. package/dist/components/toolbar/Toolbar.js +10 -10
  332. package/dist/components/toolbar/index.js +2 -5
  333. package/dist/components/tooltip/Tooltip.css +153 -153
  334. package/dist/components/tooltip/Tooltip.js +36 -36
  335. package/dist/components/tooltip/index.js +2 -7
  336. package/dist/components/utils.js +6 -7
  337. package/dist/components/video-preview/VideoPreview.js +15 -15
  338. package/dist/components/video-preview/index.js +2 -3
  339. package/dist/hooks/date/useCalendarNavigation.js +18 -18
  340. package/dist/hooks/date/useCalendarState.js +19 -19
  341. package/dist/hooks/date/useDateSelection.js +7 -7
  342. package/dist/hooks/date/usePickerOpenState.js +8 -8
  343. package/dist/hooks/date/useRangeSelection.js +16 -16
  344. package/dist/hooks/form/FormContext.js +3 -3
  345. package/dist/hooks/form/createForm.js +4 -4
  346. package/dist/hooks/form/index.js +5 -10
  347. package/dist/hooks/form/useFieldNew.js +10 -10
  348. package/dist/hooks/layout/index.js +2 -3
  349. package/dist/hooks/layout/useDesktop.js +4 -4
  350. package/dist/hooks/table/index.js +9 -18
  351. package/dist/hooks/table/useAnchoredOverlayPosition.js +4 -4
  352. package/dist/hooks/table/useTableExpansion.js +4 -4
  353. package/dist/hooks/table/useTableFiltering.js +8 -8
  354. package/dist/hooks/table/useTableModel.js +10 -10
  355. package/dist/hooks/table/useTablePagination.js +4 -4
  356. package/dist/hooks/table/useTableSelection.js +4 -4
  357. package/dist/hooks/table/useTableSorting.js +6 -6
  358. package/dist/index.css +74 -74
  359. package/dist/index.js +108 -398
  360. package/dist/lib/refs/index.js +2 -3
  361. package/dist/lib/refs/mergeRefs.js +2 -2
  362. package/dist/lib/style/index.js +2 -4
  363. package/dist/lib/tag/createIsButton.js +4 -4
  364. package/dist/lib/tag/createTagName.js +2 -2
  365. package/dist/lib/tag/index.js +3 -7
  366. package/dist/motion/engine.js +4 -4
  367. package/dist/motion/index.js +11 -39
  368. package/dist/motion/popmotion.js +2 -2
  369. package/dist/motion/presets.js +4 -4
  370. package/dist/motion/route.js +7 -7
  371. package/dist/motion/solid/AnimatedCollapse.js +27 -27
  372. package/dist/motion/solid/MotionDiv.js +13 -13
  373. package/dist/motion/solid/Presence.js +9 -9
  374. package/dist/motion/solid/index.js +4 -10
  375. package/dist/motion/system.js +9 -9
  376. package/dist/primitives/streaming/index.js +3 -5
  377. package/dist/primitives/streaming/useStreamingBuffer.js +2 -2
  378. package/dist/primitives/streaming/useStreamingSubscription.js +7 -7
  379. package/dist/primitives/virtualizer/index.js +2 -3
  380. package/dist/primitives/virtualizer/useVirtualRows.js +7 -7
  381. package/dist/purge-manifest.json +15599 -15825
  382. package/dist/styles/base/index.css +43 -43
  383. package/dist/styles/themes/dark.css +141 -141
  384. package/dist/styles/themes/light.css +143 -143
  385. package/package.json +41 -34
@@ -1,122 +1,122 @@
1
- @layer components {
2
- .slider {
3
- display: grid;
4
- width: 100%;
5
- gap: 0.25rem;
6
- grid-template-areas:
7
- "label output"
8
- "track track";
9
- grid-template-columns: 1fr auto;
10
-
11
- --slider-thumb-w: 1.5rem;
12
- --slider-thumb-h: 1rem;
13
- --slider-h: 1.25rem;
14
- /* Inset padding = (track height - thumb height) / 2 */
15
- --slider-pad: calc((var(--slider-h) - var(--slider-thumb-h)) / 2);
16
- --slider-track-bg: var(--color-default);
17
- --slider-fill-bg: var(--color-accent);
18
- --slider-thumb-bg: var(--color-accent-foreground, white);
19
- }
20
-
21
- .slider__label {
22
- grid-area: label;
23
- width: fit-content;
24
- font-size: 0.875rem;
25
- font-weight: 500;
26
- }
27
-
28
- .slider__output {
29
- grid-area: output;
30
- font-size: 0.875rem;
31
- font-weight: 500;
32
- font-variant-numeric: tabular-nums;
33
- }
34
-
35
- .slider__track {
36
- grid-area: track;
37
- position: relative;
38
- height: var(--slider-h);
39
- border-radius: 9999px;
40
- background-color: var(--slider-track-bg);
41
- cursor: pointer;
42
- }
43
-
44
- .slider__fill {
45
- position: absolute;
46
- left: 0;
47
- top: 0;
48
- height: 100%;
49
- border-radius: 9999px;
50
- pointer-events: none;
51
- background-color: var(--slider-fill-bg);
52
- }
53
-
54
- .slider__thumb {
55
- position: absolute;
56
- top: 50%;
57
- z-index: 1;
58
- border-radius: 9999px;
59
- background-color: var(--slider-thumb-bg);
60
- cursor: grab;
61
- width: var(--slider-thumb-w);
62
- height: var(--slider-thumb-h);
63
- transform: translate(-50%, -50%);
64
- box-shadow:
65
- 0 0 5px 0 oklch(0% 0 0 / 0.02),
66
- 0 2px 10px 0 oklch(0% 0 0 / 0.06),
67
- 0 0 1px 0 oklch(0% 0 0 / 0.3);
68
- transition:
69
- transform 250ms ease,
70
- box-shadow 150ms ease;
71
- }
72
-
73
- .slider__thumb[data-dragging="true"] {
74
- cursor: grabbing;
75
- transform: translate(-50%, -50%) scale(0.9);
76
- }
77
-
78
- .slider__thumb[data-focus-visible="true"] {
79
- box-shadow:
80
- 0 0 0 3px color-mix(in oklab, var(--color-accent) 22%, transparent),
81
- 0 0 5px 0 oklch(0% 0 0 / 0.02),
82
- 0 2px 10px 0 oklch(0% 0 0 / 0.06);
83
- }
84
-
85
- .slider__thumb[data-disabled="true"] {
86
- cursor: default;
87
- }
88
-
89
- .slider[data-disabled="true"] {
90
- cursor: not-allowed;
91
- opacity: 0.55;
92
- }
93
-
94
- .slider[data-disabled="true"] .slider__label {
95
- opacity: 1;
96
- }
97
-
98
- .slider[data-disabled="true"] .slider__track {
99
- cursor: not-allowed;
100
- }
101
-
102
- .slider--sm {
103
- --slider-thumb-w: 1.125rem;
104
- --slider-thumb-h: 0.625rem;
105
- --slider-h: 1rem;
106
- }
107
-
108
- .slider--sm .slider__label,
109
- .slider--sm .slider__output {
110
- font-size: 0.75rem;
111
- }
112
-
113
- .slider--md {
114
- /* Default size */
115
- }
116
-
117
- .slider--lg {
118
- --slider-thumb-w: 1.75rem;
119
- --slider-thumb-h: 1.25rem;
120
- --slider-h: 1.5rem;
121
- }
122
- }
1
+ @layer components {
2
+ .slider {
3
+ display: grid;
4
+ width: 100%;
5
+ gap: 0.25rem;
6
+ grid-template-areas:
7
+ "label output"
8
+ "track track";
9
+ grid-template-columns: 1fr auto;
10
+
11
+ --slider-thumb-w: 1.5rem;
12
+ --slider-thumb-h: 1rem;
13
+ --slider-h: 1.25rem;
14
+ /* Inset padding = (track height - thumb height) / 2 */
15
+ --slider-pad: calc((var(--slider-h) - var(--slider-thumb-h)) / 2);
16
+ --slider-track-bg: var(--color-default);
17
+ --slider-fill-bg: var(--color-accent);
18
+ --slider-thumb-bg: var(--color-accent-foreground, white);
19
+ }
20
+
21
+ .slider__label {
22
+ grid-area: label;
23
+ width: fit-content;
24
+ font-size: 0.875rem;
25
+ font-weight: 500;
26
+ }
27
+
28
+ .slider__output {
29
+ grid-area: output;
30
+ font-size: 0.875rem;
31
+ font-weight: 500;
32
+ font-variant-numeric: tabular-nums;
33
+ }
34
+
35
+ .slider__track {
36
+ grid-area: track;
37
+ position: relative;
38
+ height: var(--slider-h);
39
+ border-radius: 9999px;
40
+ background-color: var(--slider-track-bg);
41
+ cursor: pointer;
42
+ }
43
+
44
+ .slider__fill {
45
+ position: absolute;
46
+ left: 0;
47
+ top: 0;
48
+ height: 100%;
49
+ border-radius: 9999px;
50
+ pointer-events: none;
51
+ background-color: var(--slider-fill-bg);
52
+ }
53
+
54
+ .slider__thumb {
55
+ position: absolute;
56
+ top: 50%;
57
+ z-index: 1;
58
+ border-radius: 9999px;
59
+ background-color: var(--slider-thumb-bg);
60
+ cursor: grab;
61
+ width: var(--slider-thumb-w);
62
+ height: var(--slider-thumb-h);
63
+ transform: translate(-50%, -50%);
64
+ box-shadow:
65
+ 0 0 5px 0 oklch(0% 0 0 / 0.02),
66
+ 0 2px 10px 0 oklch(0% 0 0 / 0.06),
67
+ 0 0 1px 0 oklch(0% 0 0 / 0.3);
68
+ transition:
69
+ transform 250ms ease,
70
+ box-shadow 150ms ease;
71
+ }
72
+
73
+ .slider__thumb[data-dragging="true"] {
74
+ cursor: grabbing;
75
+ transform: translate(-50%, -50%) scale(0.9);
76
+ }
77
+
78
+ .slider__thumb[data-focus-visible="true"] {
79
+ box-shadow:
80
+ 0 0 0 3px color-mix(in oklab, var(--color-accent) 22%, transparent),
81
+ 0 0 5px 0 oklch(0% 0 0 / 0.02),
82
+ 0 2px 10px 0 oklch(0% 0 0 / 0.06);
83
+ }
84
+
85
+ .slider__thumb[data-disabled="true"] {
86
+ cursor: default;
87
+ }
88
+
89
+ .slider[data-disabled="true"] {
90
+ cursor: not-allowed;
91
+ opacity: 0.55;
92
+ }
93
+
94
+ .slider[data-disabled="true"] .slider__label {
95
+ opacity: 1;
96
+ }
97
+
98
+ .slider[data-disabled="true"] .slider__track {
99
+ cursor: not-allowed;
100
+ }
101
+
102
+ .slider--sm {
103
+ --slider-thumb-w: 1.125rem;
104
+ --slider-thumb-h: 0.625rem;
105
+ --slider-h: 1rem;
106
+ }
107
+
108
+ .slider--sm .slider__label,
109
+ .slider--sm .slider__output {
110
+ font-size: 0.75rem;
111
+ }
112
+
113
+ .slider--md {
114
+ /* Default size */
115
+ }
116
+
117
+ .slider--lg {
118
+ --slider-thumb-w: 1.75rem;
119
+ --slider-thumb-h: 1.25rem;
120
+ --slider-h: 1.5rem;
121
+ }
122
+ }
@@ -1,9 +1,9 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
1
+ import { createComponent, insert, mergeProps, setAttribute, spread, template, use } from "solid-js/web";
2
2
  import "./Slider.css";
3
- import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
4
- import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
5
- import * as __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__ from "./Slider.classes.js";
6
- var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div><div><div></div><div>");
3
+ import { Show, createSignal, createUniqueId, splitProps } from "solid-js";
4
+ import { twMerge } from "tailwind-merge";
5
+ import { CLASSES } from "./Slider.classes.js";
6
+ var _tmpl$ = /*#__PURE__*/ template("<span>"), _tmpl$2 = /*#__PURE__*/ template("<div><div><div></div><div>");
7
7
  function clamp(val, min, max) {
8
8
  return Math.min(Math.max(val, min), max);
9
9
  }
@@ -13,7 +13,7 @@ function snapToStep(val, min, max, step) {
13
13
  }
14
14
  const Slider = (props)=>{
15
15
  let trackRef;
16
- const [local] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
16
+ const [local] = splitProps(props, [
17
17
  "label",
18
18
  "value",
19
19
  "onChange",
@@ -33,9 +33,9 @@ const Slider = (props)=>{
33
33
  const step = ()=>local.step ?? 1;
34
34
  const size = ()=>local.size ?? "md";
35
35
  const isDisabled = ()=>Boolean(local.disabled);
36
- const labelId = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createUniqueId)();
37
- const [dragging, setDragging] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
38
- const [focusVisible, setFocusVisible] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
36
+ const labelId = createUniqueId();
37
+ const [dragging, setDragging] = createSignal(false);
38
+ const [focusVisible, setFocusVisible] = createSignal(false);
39
39
  const fraction = ()=>{
40
40
  const range = max() - min();
41
41
  if (range <= 0) return 0;
@@ -109,8 +109,8 @@ const Slider = (props)=>{
109
109
  const handleBlur = ()=>setFocusVisible(false);
110
110
  return (()=>{
111
111
  var _el$ = _tmpl$2(), _el$4 = _el$.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling;
112
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
113
- class: (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)(__WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.base, __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.size[size()], local.class, local.className)
112
+ spread(_el$, mergeProps(()=>({
113
+ class: twMerge(CLASSES.base, CLASSES.size[size()], local.class, local.className)
114
114
  }), {
115
115
  get ["data-theme"] () {
116
116
  return local.dataTheme;
@@ -123,7 +123,7 @@ const Slider = (props)=>{
123
123
  return local.style;
124
124
  }
125
125
  }), false, true);
126
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
126
+ insert(_el$, createComponent(Show, {
127
127
  get when () {
128
128
  return local.label;
129
129
  },
@@ -131,41 +131,41 @@ const Slider = (props)=>{
131
131
  return [
132
132
  (()=>{
133
133
  var _el$2 = _tmpl$();
134
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$2, "id", labelId);
135
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
136
- class: __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.label
134
+ setAttribute(_el$2, "id", labelId);
135
+ spread(_el$2, mergeProps(()=>({
136
+ class: CLASSES.label
137
137
  }), {
138
138
  "data-slot": "label"
139
139
  }), false, true);
140
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, ()=>local.label);
140
+ insert(_el$2, ()=>local.label);
141
141
  return _el$2;
142
142
  })(),
143
143
  (()=>{
144
144
  var _el$3 = _tmpl$();
145
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$3, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
146
- class: __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.output
145
+ spread(_el$3, mergeProps(()=>({
146
+ class: CLASSES.output
147
147
  }), {
148
148
  "data-slot": "slider-output",
149
149
  "aria-live": "polite"
150
150
  }), false, true);
151
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, formattedValue);
151
+ insert(_el$3, formattedValue);
152
152
  return _el$3;
153
153
  })()
154
154
  ];
155
155
  }
156
156
  }), _el$4);
157
157
  var _ref$ = trackRef;
158
- "function" == typeof _ref$ ? (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)(_ref$, _el$4) : trackRef = _el$4;
159
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$4, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
160
- class: __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.track
158
+ "function" == typeof _ref$ ? use(_ref$, _el$4) : trackRef = _el$4;
159
+ spread(_el$4, mergeProps(()=>({
160
+ class: CLASSES.track
161
161
  }), {
162
162
  "data-slot": "slider-track",
163
163
  onPointerDown: handlePointerDown,
164
164
  onPointerMove: handlePointerMove,
165
165
  onPointerUp: handlePointerUp
166
166
  }), false, true);
167
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$5, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
168
- class: __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.fill
167
+ spread(_el$5, mergeProps(()=>({
168
+ class: CLASSES.fill
169
169
  }), {
170
170
  "data-slot": "slider-fill",
171
171
  get style () {
@@ -174,8 +174,8 @@ const Slider = (props)=>{
174
174
  };
175
175
  }
176
176
  }), false, false);
177
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$6, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>({
178
- class: __WEBPACK_EXTERNAL_MODULE__Slider_classes_js_33bccb6b__.CLASSES.thumb
177
+ spread(_el$6, mergeProps(()=>({
178
+ class: CLASSES.thumb
179
179
  }), {
180
180
  "data-slot": "slider-thumb",
181
181
  get ["data-dragging"] () {
@@ -1,3 +1,2 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE__Slider_js_a9067410__ from "./Slider.js";
2
- var __webpack_exports__default = __WEBPACK_EXTERNAL_MODULE__Slider_js_a9067410__["default"];
3
- export { __webpack_exports__default as default };
1
+ import external_Slider_js_default from "./Slider.js";
2
+ export { external_Slider_js_default as default };
@@ -1,131 +1,131 @@
1
- @layer components {
2
- /* -------------------------------------------------------------------------------------------------
3
- * Base
4
- * -----------------------------------------------------------------------------------------------*/
5
- .spinner {
6
- pointer-events: none;
7
- position: relative;
8
- display: inline-flex;
9
- align-items: center;
10
- justify-content: center;
11
- width: 1.5rem;
12
- height: 1.5rem;
13
- }
14
-
15
- .spinner [data-slot="spinner-icon"] {
16
- width: 100%;
17
- height: 100%;
18
- animation: spinner-rotate 0.8s linear infinite;
19
- }
20
-
21
- @keyframes spinner-rotate {
22
- 100% {
23
- transform: rotate(360deg);
24
- }
25
- }
26
-
27
- /* -------------------------------------------------------------------------------------------------
28
- * Size variants
29
- * -----------------------------------------------------------------------------------------------*/
30
- .spinner--xs {
31
- width: 1rem;
32
- height: 1rem;
33
- }
34
-
35
- .spinner--sm {
36
- width: 1.25rem;
37
- height: 1.25rem;
38
- }
39
-
40
- /* md is default */
41
-
42
- .spinner--lg {
43
- width: 2rem;
44
- height: 2rem;
45
- }
46
-
47
- .spinner--xl {
48
- width: 2.5rem;
49
- height: 2.5rem;
50
- }
51
-
52
- /* -------------------------------------------------------------------------------------------------
53
- * Color variants
54
- * -----------------------------------------------------------------------------------------------*/
55
- .spinner--current {
56
- color: currentColor;
57
- }
58
-
59
- .spinner--accent {
60
- color: var(--color-accent);
61
- }
62
-
63
- .spinner--success {
64
- color: var(--color-success);
65
- }
66
-
67
- .spinner--warning {
68
- color: var(--color-warning);
69
- }
70
-
71
- .spinner--danger {
72
- color: var(--color-error);
73
- }
74
-
75
- /* -------------------------------------------------------------------------------------------------
76
- * CSS mask-image variants (legacy, non-spinner)
77
- * These use background-color + mask-image for animated SVG patterns
78
- * -----------------------------------------------------------------------------------------------*/
79
- .spinner--dots,
80
- .spinner--ring,
81
- .spinner--ball,
82
- .spinner--bars,
83
- .spinner--infinity {
84
- background-color: currentColor;
85
- mask-size: 100%;
86
- mask-repeat: no-repeat;
87
- mask-position: center;
88
- }
89
-
90
- .spinner--dots [data-slot="spinner-icon"],
91
- .spinner--ring [data-slot="spinner-icon"],
92
- .spinner--ball [data-slot="spinner-icon"],
93
- .spinner--bars [data-slot="spinner-icon"],
94
- .spinner--infinity [data-slot="spinner-icon"] {
95
- display: none;
96
- }
97
-
98
- .spinner--dots {
99
- mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E");
100
- }
101
-
102
- .spinner--ring {
103
- mask-image: url("data:image/svg+xml,%3Csvg width='44' height='44' viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg' stroke='white'%3E%3Cg fill='none' fill-rule='evenodd' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='0s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='0s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='-0.9s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='-0.9s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");
104
- }
105
-
106
- .spinner--ball {
107
- mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='12' cy='5' rx='4' ry='4'%3E%3Canimate attributeName='cy' values='5;20;20.5;20;5' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='rx' values='4;4;4.8;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='ry' values='4;4;3;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3C/ellipse%3E%3C/svg%3E");
108
- }
109
-
110
- .spinner--bars {
111
- mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E");
112
- }
113
-
114
- .spinner--infinity {
115
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Cpath fill='none' stroke='black' stroke-width='10' stroke-dasharray='205.271 51.318' d='M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z' stroke-linecap='round' style='transform:scale(0.8);transform-origin:50px 50px'%3E%3Canimate attributeName='stroke-dashoffset' repeatCount='indefinite' dur='2s' keyTimes='0;1' values='0;256.589'/%3E%3C/path%3E%3C/svg%3E");
116
- }
117
-
118
- /* -------------------------------------------------------------------------------------------------
119
- * Reduced motion
120
- * -----------------------------------------------------------------------------------------------*/
121
- @media (prefers-reduced-motion: reduce) {
122
- .spinner [data-slot="spinner-icon"],
123
- .spinner--dots,
124
- .spinner--ring,
125
- .spinner--ball,
126
- .spinner--bars,
127
- .spinner--infinity {
128
- animation: none;
129
- }
130
- }
131
- }
1
+ @layer components {
2
+ /* -------------------------------------------------------------------------------------------------
3
+ * Base
4
+ * -----------------------------------------------------------------------------------------------*/
5
+ .spinner {
6
+ pointer-events: none;
7
+ position: relative;
8
+ display: inline-flex;
9
+ align-items: center;
10
+ justify-content: center;
11
+ width: 1.5rem;
12
+ height: 1.5rem;
13
+ }
14
+
15
+ .spinner [data-slot="spinner-icon"] {
16
+ width: 100%;
17
+ height: 100%;
18
+ animation: spinner-rotate 0.8s linear infinite;
19
+ }
20
+
21
+ @keyframes spinner-rotate {
22
+ 100% {
23
+ transform: rotate(360deg);
24
+ }
25
+ }
26
+
27
+ /* -------------------------------------------------------------------------------------------------
28
+ * Size variants
29
+ * -----------------------------------------------------------------------------------------------*/
30
+ .spinner--xs {
31
+ width: 1rem;
32
+ height: 1rem;
33
+ }
34
+
35
+ .spinner--sm {
36
+ width: 1.25rem;
37
+ height: 1.25rem;
38
+ }
39
+
40
+ /* md is default */
41
+
42
+ .spinner--lg {
43
+ width: 2rem;
44
+ height: 2rem;
45
+ }
46
+
47
+ .spinner--xl {
48
+ width: 2.5rem;
49
+ height: 2.5rem;
50
+ }
51
+
52
+ /* -------------------------------------------------------------------------------------------------
53
+ * Color variants
54
+ * -----------------------------------------------------------------------------------------------*/
55
+ .spinner--current {
56
+ color: currentColor;
57
+ }
58
+
59
+ .spinner--accent {
60
+ color: var(--color-accent);
61
+ }
62
+
63
+ .spinner--success {
64
+ color: var(--color-success);
65
+ }
66
+
67
+ .spinner--warning {
68
+ color: var(--color-warning);
69
+ }
70
+
71
+ .spinner--danger {
72
+ color: var(--color-error);
73
+ }
74
+
75
+ /* -------------------------------------------------------------------------------------------------
76
+ * CSS mask-image variants (legacy, non-spinner)
77
+ * These use background-color + mask-image for animated SVG patterns
78
+ * -----------------------------------------------------------------------------------------------*/
79
+ .spinner--dots,
80
+ .spinner--ring,
81
+ .spinner--ball,
82
+ .spinner--bars,
83
+ .spinner--infinity {
84
+ background-color: currentColor;
85
+ mask-size: 100%;
86
+ mask-repeat: no-repeat;
87
+ mask-position: center;
88
+ }
89
+
90
+ .spinner--dots [data-slot="spinner-icon"],
91
+ .spinner--ring [data-slot="spinner-icon"],
92
+ .spinner--ball [data-slot="spinner-icon"],
93
+ .spinner--bars [data-slot="spinner-icon"],
94
+ .spinner--infinity [data-slot="spinner-icon"] {
95
+ display: none;
96
+ }
97
+
98
+ .spinner--dots {
99
+ mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E");
100
+ }
101
+
102
+ .spinner--ring {
103
+ mask-image: url("data:image/svg+xml,%3Csvg width='44' height='44' viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg' stroke='white'%3E%3Cg fill='none' fill-rule='evenodd' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='0s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='0s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='-0.9s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='-0.9s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");
104
+ }
105
+
106
+ .spinner--ball {
107
+ mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='12' cy='5' rx='4' ry='4'%3E%3Canimate attributeName='cy' values='5;20;20.5;20;5' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='rx' values='4;4;4.8;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='ry' values='4;4;3;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3C/ellipse%3E%3C/svg%3E");
108
+ }
109
+
110
+ .spinner--bars {
111
+ mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E");
112
+ }
113
+
114
+ .spinner--infinity {
115
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Cpath fill='none' stroke='black' stroke-width='10' stroke-dasharray='205.271 51.318' d='M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z' stroke-linecap='round' style='transform:scale(0.8);transform-origin:50px 50px'%3E%3Canimate attributeName='stroke-dashoffset' repeatCount='indefinite' dur='2s' keyTimes='0;1' values='0;256.589'/%3E%3C/path%3E%3C/svg%3E");
116
+ }
117
+
118
+ /* -------------------------------------------------------------------------------------------------
119
+ * Reduced motion
120
+ * -----------------------------------------------------------------------------------------------*/
121
+ @media (prefers-reduced-motion: reduce) {
122
+ .spinner [data-slot="spinner-icon"],
123
+ .spinner--dots,
124
+ .spinner--ring,
125
+ .spinner--ball,
126
+ .spinner--bars,
127
+ .spinner--infinity {
128
+ animation: none;
129
+ }
130
+ }
131
+ }