ixia-ui-react 1.8.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/README.md +24 -1
  2. package/dist/accordion/index.d.ts +41 -0
  3. package/dist/accordion/index.js +142 -0
  4. package/dist/accordion/index.js.map +1 -0
  5. package/dist/alert/index.d.ts +22 -0
  6. package/dist/alert/index.js +1 -0
  7. package/dist/alert-Dcu9R8CY.js +73 -0
  8. package/dist/alert-Dcu9R8CY.js.map +1 -0
  9. package/dist/alert-dialog/index.d.ts +39 -0
  10. package/dist/alert-dialog/index.js +134 -0
  11. package/dist/alert-dialog/index.js.map +1 -0
  12. package/dist/autocomplete/index.d.ts +2 -0
  13. package/dist/autocomplete/index.js +1 -0
  14. package/dist/autocomplete-BfpWVO1l.js +169 -0
  15. package/dist/autocomplete-BfpWVO1l.js.map +1 -0
  16. package/dist/avatar/index.d.ts +2 -0
  17. package/dist/avatar/index.js +1 -0
  18. package/dist/avatar-Bp4gZh21.js +93 -0
  19. package/dist/avatar-Bp4gZh21.js.map +1 -0
  20. package/dist/badge/index.d.ts +2 -0
  21. package/dist/badge/index.js +1 -0
  22. package/dist/badge-Cl-9WTW-.js +160 -0
  23. package/dist/badge-Cl-9WTW-.js.map +1 -0
  24. package/dist/bento-box/index.d.ts +30 -0
  25. package/dist/bento-box/index.js +103 -0
  26. package/dist/bento-box/index.js.map +1 -0
  27. package/dist/breadcrumb/index.d.ts +18 -0
  28. package/dist/breadcrumb/index.js +58 -0
  29. package/dist/breadcrumb/index.js.map +1 -0
  30. package/dist/button/index.d.ts +3 -0
  31. package/dist/button/index.js +1 -0
  32. package/dist/button-BpUC-R1J.js +307 -0
  33. package/dist/button-BpUC-R1J.js.map +1 -0
  34. package/dist/button-group/index.d.ts +2 -0
  35. package/dist/button-group/index.js +1 -0
  36. package/dist/button-group-7azbqlcO.js +269 -0
  37. package/dist/button-group-7azbqlcO.js.map +1 -0
  38. package/dist/button.types-BFKrBCGd.d.ts +10 -0
  39. package/dist/calendar/index.d.ts +63 -0
  40. package/dist/calendar/index.js +292 -0
  41. package/dist/calendar/index.js.map +1 -0
  42. package/dist/chart/index.d.ts +87 -0
  43. package/dist/chart/index.js +262 -0
  44. package/dist/chart/index.js.map +1 -0
  45. package/dist/checkbox/index.d.ts +2 -0
  46. package/dist/checkbox/index.js +1 -0
  47. package/dist/checkbox-BuUZ1Lly.js +54 -0
  48. package/dist/checkbox-BuUZ1Lly.js.map +1 -0
  49. package/dist/checkbox-group/index.d.ts +6 -0
  50. package/dist/checkbox-group/index.js +17 -0
  51. package/dist/checkbox-group/index.js.map +1 -0
  52. package/dist/cn-BDi0DfT5.js +29 -0
  53. package/dist/cn-BDi0DfT5.js.map +1 -0
  54. package/dist/code-block/index.d.ts +50 -0
  55. package/dist/code-block/index.js +208 -0
  56. package/dist/code-block/index.js.map +1 -0
  57. package/dist/collapsible/index.d.ts +2 -0
  58. package/dist/collapsible/index.js +1 -0
  59. package/dist/collapsible-BVqrh0Q0.js +44 -0
  60. package/dist/collapsible-BVqrh0Q0.js.map +1 -0
  61. package/dist/color-channel-slider/index.d.ts +2 -0
  62. package/dist/color-channel-slider/index.js +1 -0
  63. package/dist/color-channel-slider-h8mUPJ35.js +70 -0
  64. package/dist/color-channel-slider-h8mUPJ35.js.map +1 -0
  65. package/dist/color-picker/index.d.ts +137 -0
  66. package/dist/color-picker/index.js +621 -0
  67. package/dist/color-picker/index.js.map +1 -0
  68. package/dist/combobox/index.d.ts +64 -0
  69. package/dist/combobox/index.js +289 -0
  70. package/dist/combobox/index.js.map +1 -0
  71. package/dist/context-menu/index.d.ts +49 -0
  72. package/dist/context-menu/index.js +166 -0
  73. package/dist/context-menu/index.js.map +1 -0
  74. package/dist/dialog/index.d.ts +36 -0
  75. package/dist/dialog/index.js +119 -0
  76. package/dist/dialog/index.js.map +1 -0
  77. package/dist/drawer/index.d.ts +31 -0
  78. package/dist/drawer/index.js +95 -0
  79. package/dist/drawer/index.js.map +1 -0
  80. package/dist/dropzone/index.d.ts +70 -0
  81. package/dist/dropzone/index.js +479 -0
  82. package/dist/dropzone/index.js.map +1 -0
  83. package/dist/field/index.d.ts +2 -0
  84. package/dist/field/index.js +1 -0
  85. package/dist/field-DTL7eA5y.js +254 -0
  86. package/dist/field-DTL7eA5y.js.map +1 -0
  87. package/dist/form/index.d.ts +220 -0
  88. package/dist/form/index.js +3 -0
  89. package/dist/form-BxMg796f.js +192 -0
  90. package/dist/form-BxMg796f.js.map +1 -0
  91. package/dist/has-single-element-child-DLGI0Dh2.js +12 -0
  92. package/dist/has-single-element-child-DLGI0Dh2.js.map +1 -0
  93. package/dist/hooks/index.d.ts +26 -0
  94. package/dist/hooks/index.js +1 -0
  95. package/dist/hooks-DUm-q_ig.js +68 -0
  96. package/dist/hooks-DUm-q_ig.js.map +1 -0
  97. package/dist/icon/index.d.ts +2 -0
  98. package/dist/icon/index.js +1 -0
  99. package/dist/icon-D3JWfCa2.js +85 -0
  100. package/dist/icon-D3JWfCa2.js.map +1 -0
  101. package/dist/icon-container/index.d.ts +10 -0
  102. package/dist/icon-container/index.js +64 -0
  103. package/dist/icon-container/index.js.map +1 -0
  104. package/dist/index-0ZQzIKoE.d.ts +11 -0
  105. package/dist/index-B3MK1QYh.d.ts +11 -0
  106. package/dist/index-BJVMIPq4.d.ts +54 -0
  107. package/dist/index-BsV-u_jc.d.ts +4 -0
  108. package/dist/index-BygR7cUT.d.ts +22 -0
  109. package/dist/index-BzTOLSgZ.d.ts +9 -0
  110. package/dist/index-C15xiG9O.d.ts +14 -0
  111. package/dist/index-C2zco6-C.d.ts +15 -0
  112. package/dist/index-CIDOd4Z8.d.ts +56 -0
  113. package/dist/index-CQti9gFb.d.ts +49 -0
  114. package/dist/index-CiE-Rqit.d.ts +70 -0
  115. package/dist/index-D1kkOg9k.d.ts +14 -0
  116. package/dist/index-DLfdAked.d.ts +34 -0
  117. package/dist/index-DMaW_XF1.d.ts +24 -0
  118. package/dist/index-Db_QGr6S.d.ts +5 -0
  119. package/dist/index-DdFxZ3Xr.d.ts +22 -0
  120. package/dist/index-DfNHJF0t.d.ts +33 -0
  121. package/dist/index-DyQYoAUf.d.ts +29 -0
  122. package/dist/index-N2CBSUDu.d.ts +14 -0
  123. package/dist/index-PuhTRMce.d.ts +11 -0
  124. package/dist/index-Wb_tILYa.d.ts +24 -0
  125. package/dist/index-bVyqfhJS.d.ts +4 -0
  126. package/dist/index-x4f8gnaI.d.ts +15 -0
  127. package/dist/input/index.d.ts +3 -0
  128. package/dist/input/index.js +1 -0
  129. package/dist/input-Laj6dwtK.js +179 -0
  130. package/dist/input-Laj6dwtK.js.map +1 -0
  131. package/dist/input-group/index.d.ts +2 -0
  132. package/dist/input-group/index.js +1 -0
  133. package/dist/input-group-CgdazGrY.js +111 -0
  134. package/dist/input-group-CgdazGrY.js.map +1 -0
  135. package/dist/input-otp/index.d.ts +13 -0
  136. package/dist/input-otp/index.js +44 -0
  137. package/dist/input-otp/index.js.map +1 -0
  138. package/dist/input.types-816rEVWU.d.ts +20 -0
  139. package/dist/input.types-D0gyoaQv.js +48 -0
  140. package/dist/input.types-D0gyoaQv.js.map +1 -0
  141. package/dist/kbd/index.d.ts +9 -0
  142. package/dist/kbd/index.js +25 -0
  143. package/dist/kbd/index.js.map +1 -0
  144. package/dist/label/index.d.ts +8 -0
  145. package/dist/label/index.js +1 -0
  146. package/dist/label-BgpayDvN.js +27 -0
  147. package/dist/label-BgpayDvN.js.map +1 -0
  148. package/dist/layer-tree/index.d.ts +728 -0
  149. package/dist/layer-tree/index.js +685 -0
  150. package/dist/layer-tree/index.js.map +1 -0
  151. package/dist/map/google/index.d.ts +143 -0
  152. package/dist/map/google/index.js +445 -0
  153. package/dist/map/google/index.js.map +1 -0
  154. package/dist/map/index.d.ts +94 -0
  155. package/dist/map/index.js +208 -0
  156. package/dist/map/index.js.map +1 -0
  157. package/dist/map.context-Dw1D7E8m.js +11 -0
  158. package/dist/map.context-Dw1D7E8m.js.map +1 -0
  159. package/dist/menu/index.d.ts +2 -0
  160. package/dist/menu/index.js +1 -0
  161. package/dist/menu-sf13cnGp.js +173 -0
  162. package/dist/menu-sf13cnGp.js.map +1 -0
  163. package/dist/menu-tone-DWBEHoX2.js +22 -0
  164. package/dist/menu-tone-DWBEHoX2.js.map +1 -0
  165. package/dist/meter/index.d.ts +2 -0
  166. package/dist/meter/index.js +1 -0
  167. package/dist/meter-HD5taq57.js +116 -0
  168. package/dist/meter-HD5taq57.js.map +1 -0
  169. package/dist/nav-bar/index.d.ts +25 -0
  170. package/dist/nav-bar/index.js +133 -0
  171. package/dist/nav-bar/index.js.map +1 -0
  172. package/dist/navigation-menu/index.d.ts +43 -0
  173. package/dist/navigation-menu/index.js +176 -0
  174. package/dist/navigation-menu/index.js.map +1 -0
  175. package/dist/number-field/index.d.ts +14 -0
  176. package/dist/number-field/index.js +116 -0
  177. package/dist/number-field/index.js.map +1 -0
  178. package/dist/popover/index.d.ts +2 -0
  179. package/dist/popover/index.js +1 -0
  180. package/dist/popover-B1s4xXrX.js +114 -0
  181. package/dist/popover-B1s4xXrX.js.map +1 -0
  182. package/dist/preview-card/index.d.ts +13 -0
  183. package/dist/preview-card/index.js +35 -0
  184. package/dist/preview-card/index.js.map +1 -0
  185. package/dist/profile/index.d.ts +21 -0
  186. package/dist/profile/index.js +52 -0
  187. package/dist/profile/index.js.map +1 -0
  188. package/dist/progress/index.d.ts +23 -0
  189. package/dist/progress/index.js +97 -0
  190. package/dist/progress/index.js.map +1 -0
  191. package/dist/radar-ping/index.d.ts +11 -0
  192. package/dist/radar-ping/index.js +49 -0
  193. package/dist/radar-ping/index.js.map +1 -0
  194. package/dist/radio-group/index.d.ts +2 -0
  195. package/dist/radio-group/index.js +1 -0
  196. package/dist/radio-group-Dj43u35Z.js +47 -0
  197. package/dist/radio-group-Dj43u35Z.js.map +1 -0
  198. package/dist/resizeable/index.d.ts +11 -0
  199. package/dist/resizeable/index.js +31 -0
  200. package/dist/resizeable/index.js.map +1 -0
  201. package/dist/scroll-area/index.d.ts +11 -0
  202. package/dist/scroll-area/index.js +51 -0
  203. package/dist/scroll-area/index.js.map +1 -0
  204. package/dist/select/index.d.ts +2 -0
  205. package/dist/select/index.js +1 -0
  206. package/dist/select-DncJXYim.js +159 -0
  207. package/dist/select-DncJXYim.js.map +1 -0
  208. package/dist/separator/index.d.ts +2 -0
  209. package/dist/separator/index.js +1 -0
  210. package/dist/separator-DgIQp1cB.js +97 -0
  211. package/dist/separator-DgIQp1cB.js.map +1 -0
  212. package/dist/sidebar/index.d.ts +80 -0
  213. package/dist/sidebar/index.js +334 -0
  214. package/dist/sidebar/index.js.map +1 -0
  215. package/dist/site-header/index.d.ts +22 -0
  216. package/dist/site-header/index.js +55 -0
  217. package/dist/site-header/index.js.map +1 -0
  218. package/dist/skeleton/index.d.ts +4 -0
  219. package/dist/skeleton/index.js +1 -0
  220. package/dist/skeleton-DSG3FWby.js +13 -0
  221. package/dist/skeleton-DSG3FWby.js.map +1 -0
  222. package/dist/slider/index.d.ts +2 -0
  223. package/dist/slider/index.js +1 -0
  224. package/dist/slider-D_XlV4OW.js +114 -0
  225. package/dist/slider-D_XlV4OW.js.map +1 -0
  226. package/dist/slider-group/index.d.ts +46 -0
  227. package/dist/slider-group/index.js +198 -0
  228. package/dist/slider-group/index.js.map +1 -0
  229. package/dist/styles.css +4 -1
  230. package/dist/switch/index.d.ts +2 -0
  231. package/dist/switch/index.js +1 -0
  232. package/dist/switch-DXHixGHe.js +23 -0
  233. package/dist/switch-DXHixGHe.js.map +1 -0
  234. package/dist/table/index.d.ts +920 -0
  235. package/dist/table/index.js +1544 -0
  236. package/dist/table/index.js.map +1 -0
  237. package/dist/tabs/index.d.ts +2 -0
  238. package/dist/tabs/index.js +1 -0
  239. package/dist/tabs-DTC7coap.js +270 -0
  240. package/dist/tabs-DTC7coap.js.map +1 -0
  241. package/dist/text-area/index.d.ts +2 -0
  242. package/dist/text-area/index.js +1 -0
  243. package/dist/text-area-H6HjKnv_.js +50 -0
  244. package/dist/text-area-H6HjKnv_.js.map +1 -0
  245. package/dist/toast/index.d.ts +65 -0
  246. package/dist/toast/index.js +216 -0
  247. package/dist/toast/index.js.map +1 -0
  248. package/dist/toggle/index.d.ts +2 -0
  249. package/dist/toggle/index.js +1 -0
  250. package/dist/toggle-ZT9thVmz.js +73 -0
  251. package/dist/toggle-ZT9thVmz.js.map +1 -0
  252. package/dist/toggle-group/index.d.ts +10 -0
  253. package/dist/toggle-group/index.js +63 -0
  254. package/dist/toggle-group/index.js.map +1 -0
  255. package/dist/toggle-group-context-CBNZEf1I.js +6 -0
  256. package/dist/toggle-group-context-CBNZEf1I.js.map +1 -0
  257. package/dist/tooltip/index.d.ts +18 -0
  258. package/dist/tooltip/index.js +1 -0
  259. package/dist/tooltip-B6z3tDbW.js +41 -0
  260. package/dist/tooltip-B6z3tDbW.js.map +1 -0
  261. package/dist/trim-text-children-CQRFg2fL.js +33 -0
  262. package/dist/trim-text-children-CQRFg2fL.js.map +1 -0
  263. package/dist/utils/index.d.ts +4 -0
  264. package/dist/utils/index.js +3 -0
  265. package/dist/utils-BI2x7nW5.js +5 -0
  266. package/dist/utils-BI2x7nW5.js.map +1 -0
  267. package/package.json +100 -31
  268. package/dist/index.d.ts +0 -8000
  269. package/dist/index.js +0 -17274
  270. package/dist/index.js.map +0 -1
@@ -0,0 +1,114 @@
1
+ import { t as cn } from "./cn-BDi0DfT5.js";
2
+ import { n as TooltipTrigger, r as TooltipContent, t as Tooltip } from "./tooltip-B6z3tDbW.js";
3
+ import { cva } from "class-variance-authority";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import React from "react";
6
+ import { Slider } from "@base-ui/react";
7
+ // src/components/slider/slider-thumb.tsx
8
+ function SliderThumb({ className, ref, hide, ...props }) {
9
+ const [isHovering, setIsHovering] = React.useState(false), [isDragging, setIsDragging] = React.useState(false), thumbRef = React.useRef(null), setRefs = React.useCallback((node) => {
10
+ thumbRef.current = node;
11
+ if (typeof ref === "function") ref(node);
12
+ else if (ref) ref.current = node;
13
+ }, [ref]);
14
+ React.useEffect(() => {
15
+ if (!thumbRef.current) return;
16
+ const node = thumbRef.current, update = () => setIsDragging(node.hasAttribute("data-dragging")), observer = new MutationObserver(update);
17
+ update();
18
+ observer.observe(node, {
19
+ attributeFilter: ["data-dragging"],
20
+ attributes: true
21
+ });
22
+ return () => observer.disconnect();
23
+ }, []);
24
+ return /* @__PURE__ */ jsxs(Tooltip, {
25
+ open: isHovering || isDragging,
26
+ disabled: hide,
27
+ children: [/* @__PURE__ */ jsx(TooltipTrigger, {
28
+ delay: 0,
29
+ children: /* @__PURE__ */ jsx(Slider.Thumb, {
30
+ "data-slot": "slider-thumb",
31
+ className: cn("absolute aspect-square rounded-full bg-surface transition-[width,height,opacity] outline-none data-dragging:cursor-grabbing data-dragging:shadow-sm hover:[&:not([data-dragging])]:cursor-pointer", className),
32
+ onPointerEnter: () => setIsHovering(true),
33
+ onPointerLeave: () => setIsHovering(false),
34
+ ref: setRefs,
35
+ ...props
36
+ })
37
+ }), /* @__PURE__ */ jsx(TooltipContent, {
38
+ sideOffset: 10,
39
+ children: /* @__PURE__ */ jsx(Slider.Value, {})
40
+ })]
41
+ });
42
+ }
43
+ // src/components/slider/slider.types.ts
44
+ const sliderVariants = cva("flex h-lg w-full items-center", {
45
+ defaultVariants: {
46
+ size: "medium",
47
+ tone: "brand"
48
+ },
49
+ variants: {
50
+ size: {
51
+ large: "[&_[data-slot='slider-thumb']]:size-md [&_[data-slot='slider-thumb']]:border-3 [&_[data-slot='slider-thumb'][data-dragging]]:size-lg [&_[data-slot='slider-track'][data-orientation='horizontal']]:h-xs [&_[data-slot='slider-track'][data-orientation='vertical']]:w-xs",
52
+ medium: "[&_[data-slot='slider-thumb']]:size-sm [&_[data-slot='slider-thumb']]:border-2 [&_[data-slot='slider-thumb'][data-dragging]]:size-md [&_[data-slot='slider-track'][data-orientation='horizontal']]:h-2xs [&_[data-slot='slider-track'][data-orientation='vertical']]:w-2xs",
53
+ small: "[&_[data-slot='slider-thumb']]:size-xs [&_[data-slot='slider-thumb']]:border [&_[data-slot='slider-thumb'][data-dragging]]:size-sm [&_[data-slot='slider-track'][data-orientation='horizontal']]:h-3xs [&_[data-slot='slider-track'][data-orientation='vertical']]:w-3xs"
54
+ },
55
+ tone: {
56
+ accent: "[&_[data-slot='slider-thumb']]:border-accent-default [&_[data-slot=slider-indicator]]:bg-accent-default [&_[data-slot=slider-track]]:bg-accent-container-high",
57
+ brand: "[&_[data-slot='slider-thumb']]:border-brand-default [&_[data-slot=slider-indicator]]:bg-brand-default [&_[data-slot=slider-track]]:bg-brand-container-high",
58
+ error: "[&_[data-slot='slider-thumb']]:border-error-default [&_[data-slot=slider-indicator]]:bg-error-default [&_[data-slot=slider-track]]:bg-error-container-high",
59
+ info: "[&_[data-slot='slider-thumb']]:border-info-default [&_[data-slot=slider-indicator]]:bg-info-default [&_[data-slot=slider-track]]:bg-info-container-high",
60
+ neutral: "[&_[data-slot='slider-thumb']]:border-neutral-default [&_[data-slot=slider-indicator]]:bg-neutral-default [&_[data-slot=slider-track]]:bg-neutral-container-high",
61
+ success: "[&_[data-slot='slider-thumb']]:border-success-default [&_[data-slot=slider-indicator]]:bg-success-default [&_[data-slot=slider-track]]:bg-success-container-high",
62
+ warning: "[&_[data-slot='slider-thumb']]:border-warning-default [&_[data-slot=slider-indicator]]:bg-warning-default [&_[data-slot=slider-track]]:bg-warning-container-high"
63
+ }
64
+ }
65
+ });
66
+ // src/components/slider/slider.tsx
67
+ const MIN_DEFAULT = 0;
68
+ const MAX_DEFAULT = 100;
69
+ const STEP_DEFAULT = 1;
70
+ function resolveThumbValues(value, defaultValue, min) {
71
+ if (typeof value === "number") return [value];
72
+ if (Array.isArray(value)) return [...value];
73
+ if (typeof defaultValue === "number") return [defaultValue];
74
+ if (Array.isArray(defaultValue)) return [...defaultValue];
75
+ return [min];
76
+ }
77
+ function Slider$2({ size, tone, defaultValue, min = MIN_DEFAULT, max = MAX_DEFAULT, step = STEP_DEFAULT, showIndicator = true, showTooltip = true, showThumbOnHover = true, value, onValueChange, className, "aria-label": ariaLabel = "Slider", ref, ...props }) {
78
+ const thumbValues = resolveThumbValues(value, defaultValue, min);
79
+ return /* @__PURE__ */ jsx(Slider.Root, {
80
+ className: cn(sliderVariants({
81
+ size,
82
+ tone
83
+ }), className),
84
+ defaultValue,
85
+ "data-slot": "slider-root",
86
+ max,
87
+ min,
88
+ onValueChange,
89
+ ref,
90
+ step,
91
+ value,
92
+ ...props,
93
+ children: /* @__PURE__ */ jsx(Slider.Control, {
94
+ className: "shrink-0 hover:cursor-pointer data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full",
95
+ children: /* @__PURE__ */ jsxs(Slider.Track, {
96
+ "data-slot": "slider-track",
97
+ className: cn("relative size-full rounded-full", !showThumbOnHover && "**:data-[slot='slider-thumb']:opacity-0 hover:**:data-[slot='slider-thumb']:opacity-100 active:**:data-[slot='slider-thumb']:opacity-100 data-dragging:**:data-[slot='slider-thumb']:opacity-100"),
98
+ children: [/* @__PURE__ */ jsx(Slider.Indicator, {
99
+ "data-slot": "slider-indicator",
100
+ className: cn("rounded-full", !showIndicator && "opacity-0")
101
+ }), [...thumbValues.keys()].map((index) => /* @__PURE__ */ jsx(SliderThumb, {
102
+ "aria-label": ariaLabel,
103
+ index,
104
+ hide: !showTooltip
105
+ }, index))]
106
+ })
107
+ })
108
+ });
109
+ }
110
+ // src/components/slider/index.ts
111
+ const Slider$1 = Object.assign(Slider$2, { Thumb: SliderThumb });
112
+ export { SliderThumb as n, Slider$1 as t };
113
+
114
+ //# sourceMappingURL=slider-D_XlV4OW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-D_XlV4OW.js","names":["BaseSlider","Slider","BaseSlider","Slider","SliderRoot"],"sources":["../src/components/slider/slider-thumb.tsx","../src/components/slider/slider.types.ts","../src/components/slider/slider.tsx","../src/components/slider/index.ts"],"sourcesContent":["import { Slider as BaseSlider } from '@base-ui/react'\nimport React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip'\nimport type { SliderThumbProps } from './slider.types'\n\nexport function SliderThumb({ className, ref, hide, ...props }: SliderThumbProps) {\n const [isHovering, setIsHovering] = React.useState(false),\n [isDragging, setIsDragging] = React.useState(false),\n thumbRef = React.useRef<HTMLDivElement>(null),\n setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n thumbRef.current = node\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ;(ref as { current: HTMLDivElement | null }).current = node\n }\n },\n [ref],\n )\n React.useEffect(() => {\n if (!thumbRef.current) {\n return undefined\n }\n const node = thumbRef.current,\n update = () => setIsDragging(node.hasAttribute('data-dragging')),\n observer = new MutationObserver(update)\n update()\n observer.observe(node, { attributeFilter: ['data-dragging'], attributes: true })\n return () => observer.disconnect()\n }, [])\n\n return (\n <Tooltip open={isHovering || isDragging} disabled={hide}>\n <TooltipTrigger delay={0}>\n <BaseSlider.Thumb\n data-slot=\"slider-thumb\"\n className={cn(\n 'absolute aspect-square rounded-full bg-surface transition-[width,height,opacity] outline-none data-dragging:cursor-grabbing data-dragging:shadow-sm hover:[&:not([data-dragging])]:cursor-pointer',\n className,\n )}\n onPointerEnter={() => setIsHovering(true)}\n onPointerLeave={() => setIsHovering(false)}\n ref={setRefs}\n {...props}\n />\n </TooltipTrigger>\n <TooltipContent sideOffset={10}>\n <BaseSlider.Value />\n </TooltipContent>\n </Tooltip>\n )\n}\n","import type { Slider as BaseSlider } from '@base-ui/react'\nimport { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\nimport type { ComponentProps } from 'react'\n\nconst sliderVariants = cva('flex h-lg w-full items-center', {\n defaultVariants: {\n size: 'medium',\n tone: 'brand',\n },\n variants: {\n size: {\n large:\n \"[&_[data-slot='slider-thumb']]:size-md [&_[data-slot='slider-thumb']]:border-3 [&_[data-slot='slider-thumb'][data-dragging]]:size-lg [&_[data-slot='slider-track'][data-orientation='horizontal']]:h-xs [&_[data-slot='slider-track'][data-orientation='vertical']]:w-xs\",\n medium:\n \"[&_[data-slot='slider-thumb']]:size-sm [&_[data-slot='slider-thumb']]:border-2 [&_[data-slot='slider-thumb'][data-dragging]]:size-md [&_[data-slot='slider-track'][data-orientation='horizontal']]:h-2xs [&_[data-slot='slider-track'][data-orientation='vertical']]:w-2xs\",\n small:\n \"[&_[data-slot='slider-thumb']]:size-xs [&_[data-slot='slider-thumb']]:border [&_[data-slot='slider-thumb'][data-dragging]]:size-sm [&_[data-slot='slider-track'][data-orientation='horizontal']]:h-3xs [&_[data-slot='slider-track'][data-orientation='vertical']]:w-3xs\",\n },\n tone: {\n accent:\n \"[&_[data-slot='slider-thumb']]:border-accent-default [&_[data-slot=slider-indicator]]:bg-accent-default [&_[data-slot=slider-track]]:bg-accent-container-high\",\n brand:\n \"[&_[data-slot='slider-thumb']]:border-brand-default [&_[data-slot=slider-indicator]]:bg-brand-default [&_[data-slot=slider-track]]:bg-brand-container-high\",\n error:\n \"[&_[data-slot='slider-thumb']]:border-error-default [&_[data-slot=slider-indicator]]:bg-error-default [&_[data-slot=slider-track]]:bg-error-container-high\",\n info: \"[&_[data-slot='slider-thumb']]:border-info-default [&_[data-slot=slider-indicator]]:bg-info-default [&_[data-slot=slider-track]]:bg-info-container-high\",\n neutral:\n \"[&_[data-slot='slider-thumb']]:border-neutral-default [&_[data-slot=slider-indicator]]:bg-neutral-default [&_[data-slot=slider-track]]:bg-neutral-container-high\",\n success:\n \"[&_[data-slot='slider-thumb']]:border-success-default [&_[data-slot=slider-indicator]]:bg-success-default [&_[data-slot=slider-track]]:bg-success-container-high\",\n warning:\n \"[&_[data-slot='slider-thumb']]:border-warning-default [&_[data-slot=slider-indicator]]:bg-warning-default [&_[data-slot=slider-track]]:bg-warning-container-high\",\n },\n },\n})\n\ntype SliderProps = ComponentProps<typeof BaseSlider.Root> &\n VariantProps<typeof sliderVariants> & {\n showIndicator?: boolean\n showThumbOnHover?: boolean\n showTooltip?: boolean\n }\ntype SliderThumbProps = ComponentProps<typeof BaseSlider.Thumb> & {\n hide?: boolean\n}\n\nexport type { SliderProps, SliderThumbProps }\nexport { sliderVariants }\n","import { Slider as BaseSlider } from '@base-ui/react'\n\nimport { cn } from '@/utils/cn'\n\nimport { SliderThumb } from './slider-thumb'\nimport { sliderVariants } from './slider.types'\nimport type { SliderProps } from './slider.types'\n\nconst MIN_DEFAULT = 0,\n MAX_DEFAULT = 100,\n STEP_DEFAULT = 1\n\nfunction resolveThumbValues(\n value: SliderProps['value'],\n defaultValue: SliderProps['defaultValue'],\n min: number,\n): number[] {\n if (typeof value === 'number') {\n return [value]\n }\n if (Array.isArray(value)) {\n return [...value]\n }\n if (typeof defaultValue === 'number') {\n return [defaultValue]\n }\n if (Array.isArray(defaultValue)) {\n return [...defaultValue]\n }\n return [min]\n}\n\nexport function Slider({\n size,\n tone,\n defaultValue,\n min = MIN_DEFAULT,\n max = MAX_DEFAULT,\n step = STEP_DEFAULT,\n showIndicator = true,\n showTooltip = true,\n showThumbOnHover = true,\n value,\n onValueChange,\n className,\n 'aria-label': ariaLabel = 'Slider',\n ref,\n ...props\n}: SliderProps) {\n const thumbValues = resolveThumbValues(value, defaultValue, min)\n\n return (\n <BaseSlider.Root\n className={cn(sliderVariants({ size, tone }), className)}\n defaultValue={defaultValue}\n data-slot=\"slider-root\"\n max={max}\n min={min}\n onValueChange={onValueChange}\n ref={ref}\n step={step}\n value={value}\n {...props}\n >\n <BaseSlider.Control className=\"shrink-0 hover:cursor-pointer data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\">\n <BaseSlider.Track\n data-slot=\"slider-track\"\n className={cn(\n 'relative size-full rounded-full',\n !showThumbOnHover &&\n \"**:data-[slot='slider-thumb']:opacity-0 hover:**:data-[slot='slider-thumb']:opacity-100 active:**:data-[slot='slider-thumb']:opacity-100 data-dragging:**:data-[slot='slider-thumb']:opacity-100\",\n )}\n >\n <BaseSlider.Indicator\n data-slot=\"slider-indicator\"\n className={cn('rounded-full', !showIndicator && 'opacity-0')}\n />\n {[...thumbValues.keys()].map((index) => (\n <SliderThumb aria-label={ariaLabel} index={index} key={index} hide={!showTooltip} />\n ))}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n )\n}\n","import { Slider as SliderRoot } from './slider'\nimport { SliderThumb } from './slider-thumb'\n\nconst Slider = Object.assign(SliderRoot, {\n Thumb: SliderThumb,\n})\n\nexport type { SliderProps, SliderThumbProps } from './slider.types'\nexport { SliderThumb } from './slider-thumb'\n\nexport { Slider }\n"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { t as Input } from "../index-BsV-u_jc.js";
2
+ import { r as SliderProps } from "../index-BygR7cUT.js";
3
+ import React$1 from "react";
4
+ type SliderGroupProps = Omit<React.ComponentProps<'div'>, 'defaultValue' | 'onChange'> & {
5
+ defaultValue?: number | number[];
6
+ value?: number | number[];
7
+ onValueChange?: (value: number[]) => void;
8
+ };
9
+ interface SliderGroupConfig {
10
+ min: number;
11
+ max: number;
12
+ step: number;
13
+ defaultValue?: number | readonly number[];
14
+ }
15
+ interface SliderGroupContextValue {
16
+ value: number[] | undefined;
17
+ setValue: (value: number[]) => void;
18
+ min: number;
19
+ max: number;
20
+ step: number;
21
+ registerConfig: (config: SliderGroupConfig) => void;
22
+ }
23
+ type SliderGroupSliderProps = SliderProps;
24
+ type SliderDescriptionProps = React.ComponentProps<'p'>;
25
+ type SliderIconProps = React.ComponentProps<'div'>;
26
+ type SliderInputProps = Omit<React.ComponentProps<typeof Input>, 'value' | 'onChange' | 'type'>;
27
+ type SliderLabelProps = React.ComponentProps<'span'>;
28
+ type SliderValueProps = React.ComponentProps<'span'>;
29
+ export declare function SliderDescription({ className, ref, ...props }: SliderDescriptionProps): import("react").JSX.Element;
30
+ declare function SliderGroup$1({ className, ref, defaultValue, value: valueProp, onValueChange, ...props }: SliderGroupProps): React$1.JSX.Element;
31
+ export declare function SliderGroupSlider({ min, max, step, defaultValue, value, onValueChange, ...props }: SliderGroupSliderProps): React$1.JSX.Element;
32
+ export declare function SliderIcon({ className, ref, ...props }: SliderIconProps): import("react").JSX.Element;
33
+ export declare function SliderInput({ className, ref, ...props }: SliderInputProps): import("react").JSX.Element | undefined;
34
+ export declare function SliderLabel({ className, ref, ...props }: SliderLabelProps): import("react").JSX.Element;
35
+ export declare function SliderValue({ className, children, ref, ...props }: SliderValueProps): import("react").JSX.Element | undefined;
36
+ declare const SliderGroupContext: import("react").Context<SliderGroupContextValue | undefined>, useSliderGroupContext: () => SliderGroupContextValue | undefined, getPrimaryValue: (value: number[] | undefined, min: number) => number, withPrimaryValue: (value: number[] | undefined, next: number) => number[], areNumberArraysEqual: (first?: number[], second?: number[]) => boolean, useStableNumberArray: (next: number[] | undefined) => number[] | undefined;
37
+ declare const SliderGroup: typeof SliderGroup$1 & {
38
+ Description: typeof SliderDescription;
39
+ Icon: typeof SliderIcon;
40
+ Input: typeof SliderInput;
41
+ Label: typeof SliderLabel;
42
+ Slider: typeof SliderGroupSlider;
43
+ Value: typeof SliderValue;
44
+ };
45
+ export { type SliderDescriptionProps, SliderGroup, type SliderGroupProps, type SliderGroupSliderProps, type SliderIconProps, type SliderInputProps, type SliderLabelProps, type SliderValueProps, useSliderGroupContext };
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,198 @@
1
+ import { t as cn } from "../cn-BDi0DfT5.js";
2
+ import { t as Input } from "../input-Laj6dwtK.js";
3
+ import { t as Slider } from "../slider-D_XlV4OW.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import React, { createContext, useContext, useState } from "react";
6
+ // src/components/slider-group/slider-description.tsx
7
+ function SliderDescription({ className, ref, ...props }) {
8
+ return /* @__PURE__ */ jsx("p", {
9
+ "data-slot": "slider-description",
10
+ className: cn("style-text-prose--1 text-on-surface-variant", className),
11
+ ref,
12
+ ...props
13
+ });
14
+ }
15
+ // src/components/slider-group/slider-group-context.ts
16
+ const FIRST_THUMB_INDEX = 0;
17
+ const SliderGroupContext = createContext(void 0);
18
+ const useSliderGroupContext = () => useContext(SliderGroupContext);
19
+ const getPrimaryValue = (value, min) => value?.[FIRST_THUMB_INDEX] ?? min;
20
+ const withPrimaryValue = (value, next) => {
21
+ const result = [...value ?? []];
22
+ result[FIRST_THUMB_INDEX] = next;
23
+ return result;
24
+ };
25
+ const areNumberArraysEqual = (first, second) => first === second || first !== void 0 && second !== void 0 && first.length === second.length && first.every((item, index) => item === second[index]);
26
+ const useStableNumberArray = (next) => {
27
+ const [stable, setStable] = useState(next);
28
+ if (!areNumberArraysEqual(stable, next)) {
29
+ setStable(next);
30
+ return next;
31
+ }
32
+ return stable;
33
+ };
34
+ // src/components/slider-group/slider-group.tsx
35
+ const MIN_DEFAULT$1 = 0;
36
+ const MAX_DEFAULT$1 = 100;
37
+ const STEP_DEFAULT$1 = 1;
38
+ function toArray(value) {
39
+ if (value === void 0) return;
40
+ if (typeof value === "number") return [value];
41
+ return [...value];
42
+ }
43
+ function getControlledValue(isControlled, valueProp, internalValue) {
44
+ if (isControlled) return toArray(valueProp);
45
+ return internalValue;
46
+ }
47
+ function mergeConfig(prev, incoming) {
48
+ if (prev.min === incoming.min && prev.max === incoming.max && prev.step === incoming.step) return prev;
49
+ return {
50
+ max: incoming.max,
51
+ min: incoming.min,
52
+ step: incoming.step
53
+ };
54
+ }
55
+ function SliderGroup$1({ className, ref, defaultValue, value: valueProp, onValueChange, ...props }) {
56
+ const isControlled = valueProp !== void 0, [internalValue, setInternalValue] = React.useState(() => toArray(defaultValue)), [config, setConfig] = React.useState({
57
+ max: MAX_DEFAULT$1,
58
+ min: MIN_DEFAULT$1,
59
+ step: STEP_DEFAULT$1
60
+ }), value = useStableNumberArray(getControlledValue(isControlled, valueProp, internalValue)), setValue = (next) => {
61
+ if (!isControlled) setInternalValue(next);
62
+ onValueChange?.(next);
63
+ }, registerConfig = (incoming) => {
64
+ setConfig((prev) => mergeConfig(prev, incoming));
65
+ if (incoming.defaultValue !== void 0) setInternalValue((prev) => prev ?? toArray(incoming.defaultValue));
66
+ }, context = {
67
+ max: config.max,
68
+ min: config.min,
69
+ registerConfig,
70
+ setValue,
71
+ step: config.step,
72
+ value
73
+ };
74
+ return /* @__PURE__ */ jsx(SliderGroupContext.Provider, {
75
+ value: context,
76
+ children: /* @__PURE__ */ jsx("div", {
77
+ "data-slot": "slider-group",
78
+ className: cn("flex w-full flex-wrap items-center gap-x-sm", "**:data-[slot=slider-label]:basis-full", "**:data-[slot=slider-root]:flex-1", "**:data-[slot=slider-description]:basis-full", className),
79
+ ref,
80
+ ...props
81
+ })
82
+ });
83
+ }
84
+ // src/components/slider-group/slider-group-slider.tsx
85
+ const MIN_DEFAULT = 0;
86
+ const MAX_DEFAULT = 100;
87
+ const STEP_DEFAULT = 1;
88
+ function toSingleNumber(input) {
89
+ if (typeof input === "number") return input;
90
+ }
91
+ function toNumberArray(next) {
92
+ if (typeof next === "number") return [next];
93
+ return [...next];
94
+ }
95
+ function resolveInitialValue(defaultValue, value, min) {
96
+ if (Array.isArray(defaultValue)) return [...defaultValue];
97
+ return [toSingleNumber(value) ?? toSingleNumber(defaultValue) ?? min];
98
+ }
99
+ function getGroupValue(group, fallback) {
100
+ if (!group) return;
101
+ return group.value ?? fallback;
102
+ }
103
+ function SliderGroupSlider({ min = MIN_DEFAULT, max = MAX_DEFAULT, step = STEP_DEFAULT, defaultValue, value, onValueChange, ...props }) {
104
+ const group = useSliderGroupContext(), groupValue = useStableNumberArray(getGroupValue(group, resolveInitialValue(defaultValue, value, min))), handleValueChange = (...args) => {
105
+ const [next] = args;
106
+ group?.setValue(toNumberArray(next));
107
+ onValueChange?.(...args);
108
+ };
109
+ React.useEffect(() => {
110
+ group?.registerConfig({
111
+ defaultValue,
112
+ max,
113
+ min,
114
+ step
115
+ });
116
+ }, [
117
+ group,
118
+ min,
119
+ max,
120
+ step,
121
+ defaultValue
122
+ ]);
123
+ return /* @__PURE__ */ jsx(Slider, {
124
+ min,
125
+ max,
126
+ step,
127
+ value: groupValue,
128
+ onValueChange: handleValueChange,
129
+ ...props
130
+ });
131
+ }
132
+ // src/components/slider-group/slider-icon.tsx
133
+ function SliderIcon({ className, ref, ...props }) {
134
+ return /* @__PURE__ */ jsx("div", {
135
+ "data-slot": "slider-icon",
136
+ className: cn("[&>svg]:size-sm [&>svg]:shrink-0", className),
137
+ ref,
138
+ ...props
139
+ });
140
+ }
141
+ // src/components/slider-group/slider-input.tsx
142
+ function clamp(value, min, max) {
143
+ return Math.min(max, Math.max(min, value));
144
+ }
145
+ function SliderInput({ className, ref, ...props }) {
146
+ const group = useSliderGroupContext(), handleChange = (event) => {
147
+ const raw = event.target.value, parsed = Number(raw);
148
+ if (raw === "" || Number.isNaN(parsed) || !group) return;
149
+ group.setValue(withPrimaryValue(group.value, clamp(parsed, group.min, group.max)));
150
+ };
151
+ if (!group) return;
152
+ return /* @__PURE__ */ jsx(Input, {
153
+ "aria-label": "Value",
154
+ "data-slot": "slider-input",
155
+ className: cn("w-[4rem]", className),
156
+ ref,
157
+ ...props,
158
+ type: "number",
159
+ min: group.min,
160
+ max: group.max,
161
+ step: group.step,
162
+ value: getPrimaryValue(group.value, group.min),
163
+ onChange: handleChange
164
+ });
165
+ }
166
+ // src/components/slider-group/slider-label.tsx
167
+ function SliderLabel({ className, ref, ...props }) {
168
+ return /* @__PURE__ */ jsx("span", {
169
+ "data-slot": "slider-label",
170
+ className: cn("style-text-default-0", className),
171
+ ref,
172
+ ...props
173
+ });
174
+ }
175
+ // src/components/slider-group/slider-value.tsx
176
+ function SliderValue({ className, children, ref, ...props }) {
177
+ const group = useSliderGroupContext();
178
+ if (!group) return;
179
+ return /* @__PURE__ */ jsxs("span", {
180
+ "data-slot": "slider-value",
181
+ className: cn("min-w-lg text-right style-text-default--1 text-on-surface-variant", className),
182
+ ref,
183
+ ...props,
184
+ children: [children, getPrimaryValue(group.value, group.min)]
185
+ });
186
+ }
187
+ // src/components/slider-group/index.ts
188
+ const SliderGroup = Object.assign(SliderGroup$1, {
189
+ Description: SliderDescription,
190
+ Icon: SliderIcon,
191
+ Input: SliderInput,
192
+ Label: SliderLabel,
193
+ Slider: SliderGroupSlider,
194
+ Value: SliderValue
195
+ });
196
+ export { SliderDescription, SliderGroup, SliderGroupSlider, SliderIcon, SliderInput, SliderLabel, SliderValue, useSliderGroupContext };
197
+
198
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["MIN_DEFAULT","MAX_DEFAULT","STEP_DEFAULT","SliderGroup","SliderGroupRoot"],"sources":["../../src/components/slider-group/slider-description.tsx","../../src/components/slider-group/slider-group-context.ts","../../src/components/slider-group/slider-group.tsx","../../src/components/slider-group/slider-group-slider.tsx","../../src/components/slider-group/slider-icon.tsx","../../src/components/slider-group/slider-input.tsx","../../src/components/slider-group/slider-label.tsx","../../src/components/slider-group/slider-value.tsx","../../src/components/slider-group/index.ts"],"sourcesContent":["import { cn } from '@/utils/cn'\n\nimport type { SliderDescriptionProps } from './slider-group.types'\n\nexport function SliderDescription({ className, ref, ...props }: SliderDescriptionProps) {\n return (\n <p\n data-slot=\"slider-description\"\n className={cn('style-text-prose--1 text-on-surface-variant', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { createContext, useContext, useState } from 'react'\n\nimport type { SliderGroupContextValue } from './slider-group.types'\n\nconst FIRST_THUMB_INDEX = 0,\n SliderGroupContext = createContext<SliderGroupContextValue | undefined>(undefined),\n useSliderGroupContext = () => useContext(SliderGroupContext),\n getPrimaryValue = (value: number[] | undefined, min: number): number =>\n value?.[FIRST_THUMB_INDEX] ?? min,\n withPrimaryValue = (value: number[] | undefined, next: number): number[] => {\n const result = [...(value ?? [])]\n result[FIRST_THUMB_INDEX] = next\n return result\n },\n areNumberArraysEqual = (first?: number[], second?: number[]) =>\n first === second ||\n (first !== undefined &&\n second !== undefined &&\n first.length === second.length &&\n first.every((item, index) => item === second[index])),\n // Keeps a referentially-stable array while its contents are unchanged, so a new\n // Literal each render can't masquerade as a value change (which loops Base UI's controlled Slider).\n useStableNumberArray = (next: number[] | undefined) => {\n const [stable, setStable] = useState(next)\n if (!areNumberArraysEqual(stable, next)) {\n setStable(next)\n return next\n }\n return stable\n }\n\nexport {\n SliderGroupContext,\n useSliderGroupContext,\n getPrimaryValue,\n withPrimaryValue,\n areNumberArraysEqual,\n useStableNumberArray,\n}\n","import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport { SliderGroupContext, useStableNumberArray } from './slider-group-context'\nimport type { SliderGroupProps, SliderGroupConfig } from './slider-group.types'\n\nconst MIN_DEFAULT = 0,\n MAX_DEFAULT = 100,\n STEP_DEFAULT = 1\n\nfunction toArray(value: number | readonly number[] | undefined): number[] | undefined {\n if (value === undefined) {\n return undefined\n }\n if (typeof value === 'number') {\n return [value]\n }\n return [...value]\n}\n\nfunction getControlledValue(\n isControlled: boolean,\n valueProp: SliderGroupProps['value'],\n internalValue: number[] | undefined,\n): number[] | undefined {\n if (isControlled) {\n return toArray(valueProp)\n }\n return internalValue\n}\n\nfunction mergeConfig(\n prev: { min: number; max: number; step: number },\n incoming: SliderGroupConfig,\n) {\n if (prev.min === incoming.min && prev.max === incoming.max && prev.step === incoming.step) {\n return prev\n }\n return { max: incoming.max, min: incoming.min, step: incoming.step }\n}\n\nexport function SliderGroup({\n className,\n ref,\n defaultValue,\n value: valueProp,\n onValueChange,\n ...props\n}: SliderGroupProps) {\n const isControlled = valueProp !== undefined,\n [internalValue, setInternalValue] = React.useState<number[] | undefined>(() =>\n toArray(defaultValue),\n ),\n [config, setConfig] = React.useState({\n max: MAX_DEFAULT,\n min: MIN_DEFAULT,\n step: STEP_DEFAULT,\n }),\n value = useStableNumberArray(getControlledValue(isControlled, valueProp, internalValue)),\n setValue = (next: number[]) => {\n if (!isControlled) {\n setInternalValue(next)\n }\n onValueChange?.(next)\n },\n registerConfig = (incoming: SliderGroupConfig) => {\n setConfig((prev) => mergeConfig(prev, incoming))\n if (incoming.defaultValue !== undefined) {\n setInternalValue((prev) => prev ?? toArray(incoming.defaultValue))\n }\n },\n context = {\n max: config.max,\n min: config.min,\n registerConfig,\n setValue,\n step: config.step,\n value,\n }\n\n return (\n <SliderGroupContext.Provider value={context}>\n <div\n data-slot=\"slider-group\"\n className={cn(\n 'flex w-full flex-wrap items-center gap-x-sm',\n '**:data-[slot=slider-label]:basis-full',\n '**:data-[slot=slider-root]:flex-1',\n '**:data-[slot=slider-description]:basis-full',\n className,\n )}\n ref={ref}\n {...props}\n />\n </SliderGroupContext.Provider>\n )\n}\n","import React from 'react'\n\nimport { Slider } from '../slider'\nimport { useSliderGroupContext, useStableNumberArray } from './slider-group-context'\nimport type { SliderGroupContextValue, SliderGroupSliderProps } from './slider-group.types'\n\nconst MIN_DEFAULT = 0,\n MAX_DEFAULT = 100,\n STEP_DEFAULT = 1\n\nfunction toSingleNumber(input: number | readonly number[] | undefined): number | undefined {\n if (typeof input === 'number') {\n return input\n }\n return undefined\n}\n\nfunction toNumberArray(next: number | readonly number[]): number[] {\n if (typeof next === 'number') {\n return [next]\n }\n return [...next]\n}\n\nfunction resolveInitialValue(\n defaultValue: SliderGroupSliderProps['defaultValue'],\n value: SliderGroupSliderProps['value'],\n min: number,\n): number[] {\n if (Array.isArray(defaultValue)) {\n return [...defaultValue]\n }\n return [toSingleNumber(value) ?? toSingleNumber(defaultValue) ?? min]\n}\n\nfunction getGroupValue(\n group: SliderGroupContextValue | undefined,\n fallback: number[],\n): number[] | undefined {\n if (!group) {\n return undefined\n }\n return group.value ?? fallback\n}\n\n// The group-bound Slider: it reads/writes the shared value from SliderGroup and\n// Publishes its min/max/step so siblings (SliderInput, SliderValue) stay in sync.\nexport function SliderGroupSlider({\n min = MIN_DEFAULT,\n max = MAX_DEFAULT,\n step = STEP_DEFAULT,\n defaultValue,\n value,\n onValueChange,\n ...props\n}: SliderGroupSliderProps) {\n const group = useSliderGroupContext(),\n groupValue = useStableNumberArray(\n getGroupValue(group, resolveInitialValue(defaultValue, value, min)),\n ),\n handleValueChange = (\n ...args: Parameters<NonNullable<SliderGroupSliderProps['onValueChange']>>\n ) => {\n const [next] = args\n group?.setValue(toNumberArray(next))\n onValueChange?.(...args)\n }\n\n React.useEffect(() => {\n group?.registerConfig({ defaultValue, max, min, step })\n }, [group, min, max, step, defaultValue])\n\n return (\n <Slider\n min={min}\n max={max}\n step={step}\n value={groupValue}\n onValueChange={handleValueChange}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { SliderIconProps } from './slider-group.types'\n\nexport function SliderIcon({ className, ref, ...props }: SliderIconProps) {\n return (\n <div\n data-slot=\"slider-icon\"\n className={cn('[&>svg]:size-sm [&>svg]:shrink-0', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Input } from '../input'\nimport { getPrimaryValue, useSliderGroupContext, withPrimaryValue } from './slider-group-context'\nimport type { SliderInputProps } from './slider-group.types'\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value))\n}\n\nexport function SliderInput({ className, ref, ...props }: SliderInputProps) {\n const group = useSliderGroupContext(),\n handleChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const raw = event.target.value,\n parsed = Number(raw)\n if (raw === '' || Number.isNaN(parsed) || !group) {\n return\n }\n group.setValue(withPrimaryValue(group.value, clamp(parsed, group.min, group.max)))\n }\n\n if (!group) {\n return undefined\n }\n\n return (\n <Input\n aria-label=\"Value\"\n data-slot=\"slider-input\"\n className={cn('w-[4rem]', className)}\n ref={ref}\n {...props}\n type=\"number\"\n min={group.min}\n max={group.max}\n step={group.step}\n value={getPrimaryValue(group.value, group.min)}\n onChange={handleChange}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { SliderLabelProps } from './slider-group.types'\n\nexport function SliderLabel({ className, ref, ...props }: SliderLabelProps) {\n return (\n <span\n data-slot=\"slider-label\"\n className={cn('style-text-default-0', className)}\n ref={ref}\n {...props}\n />\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { getPrimaryValue, useSliderGroupContext } from './slider-group-context'\nimport type { SliderValueProps } from './slider-group.types'\n\nexport function SliderValue({ className, children, ref, ...props }: SliderValueProps) {\n const group = useSliderGroupContext()\n if (!group) {\n return undefined\n }\n\n return (\n <span\n data-slot=\"slider-value\"\n className={cn('min-w-lg text-right style-text-default--1 text-on-surface-variant', className)}\n ref={ref}\n {...props}\n >\n {children}\n {getPrimaryValue(group.value, group.min)}\n </span>\n )\n}\n","import { SliderDescription } from './slider-description'\nimport { SliderGroup as SliderGroupRoot } from './slider-group'\nimport { SliderGroupSlider } from './slider-group-slider'\nimport { SliderIcon } from './slider-icon'\nimport { SliderInput } from './slider-input'\nimport { SliderLabel } from './slider-label'\nimport { SliderValue } from './slider-value'\n\nconst SliderGroup = Object.assign(SliderGroupRoot, {\n Description: SliderDescription,\n Icon: SliderIcon,\n Input: SliderInput,\n Label: SliderLabel,\n Slider: SliderGroupSlider,\n Value: SliderValue,\n})\n\nexport { SliderGroupSlider } from './slider-group-slider'\nexport { SliderInput } from './slider-input'\nexport { SliderValue } from './slider-value'\nexport { SliderLabel } from './slider-label'\nexport { SliderDescription } from './slider-description'\nexport { SliderIcon } from './slider-icon'\nexport { useSliderGroupContext } from './slider-group-context'\nexport type {\n SliderGroupProps,\n SliderGroupSliderProps,\n SliderInputProps,\n SliderValueProps,\n SliderLabelProps,\n SliderDescriptionProps,\n SliderIconProps,\n} from './slider-group.types'\n\nexport { SliderGroup }\n"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -2,7 +2,6 @@
2
2
  @import url('https://utopia.fyi/type/calculator?c=360,12,1.2,1240,16,1.25,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12');
3
3
  @import 'tailwindcss';
4
4
  @import 'tw-animate-css';
5
- @import '@daypicker/react/style.css';
6
5
  @source ".";
7
6
 
8
7
  @layer components {
@@ -681,6 +680,10 @@
681
680
  height: 100%;
682
681
  }
683
682
  }
683
+ /* Centres text on cap-height/baseline instead of rounded font metrics, which drift at fluid sizes and zoom levels. */
684
+ @utility text-box-trim {
685
+ text-box: trim-both cap alphabetic;
686
+ }
684
687
  @utility shadow-* {
685
688
  box-shadow: --value(--shadow-*) var(--ixia-shadow);
686
689
  }
@@ -0,0 +1,2 @@
1
+ import { n as SwitchProps, t as Switch } from "../index-Db_QGr6S.js";
2
+ export { Switch, type SwitchProps };
@@ -0,0 +1 @@
1
+ export { t as Switch } from "../switch-DXHixGHe.js";
@@ -0,0 +1,23 @@
1
+ import { t as cn } from "./cn-BDi0DfT5.js";
2
+ import { t as Label } from "./label-BgpayDvN.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Switch } from "@base-ui/react/switch";
5
+ // src/components/switch/switch.tsx
6
+ function Switch$1({ children, className, ref, ...props }) {
7
+ return /* @__PURE__ */ jsxs(Label, {
8
+ className: "flex items-center gap-xs",
9
+ children: [/* @__PURE__ */ jsx(Switch.Root, {
10
+ className: cn("group relative flex h-lg w-2xl items-center rounded-full bg-surface-low bg-size-[6.5rem_100%] outline-2 outline-transparent transition-colors ease-[cubic-bezier(0.26,0.75,0.38,0.45)] before:absolute before:rounded-full hover:cursor-pointer hover:not-disabled:outline-accent-border-strong disabled:pointer-events-none disabled:opacity-50 data-checked:bg-accent-default data-disabled:pointer-events-none data-disabled:opacity-50", className),
11
+ ref,
12
+ ...props,
13
+ children: /* @__PURE__ */ jsx(Switch.Thumb, { className: "size-md translate-x-[calc(0%+3px)] rounded-full shadow-2xs transition-transform duration-500 ease-[cubic-bezier(0.68,-0.55,0.27,1.55)] data-checked:translate-x-[calc(100%--7px)] data-checked:bg-accent-on-default data-unchecked:bg-white" })
14
+ }), children != void 0 && /* @__PURE__ */ jsx("span", {
15
+ "data-slot": "switch-label",
16
+ className: "leading-none text-box-trim",
17
+ children
18
+ })]
19
+ });
20
+ }
21
+ export { Switch$1 as t };
22
+
23
+ //# sourceMappingURL=switch-DXHixGHe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-DXHixGHe.js","names":["Switch","BaseSwitch"],"sources":["../src/components/switch/switch.tsx"],"sourcesContent":["import { Switch as BaseSwitch } from '@base-ui/react/switch'\n\nimport { cn } from '@/utils/cn'\n\nimport { Label } from '../label'\nimport type { SwitchProps } from './switch.types'\n\nexport function Switch({ children, className, ref, ...props }: SwitchProps) {\n return (\n <Label className=\"flex items-center gap-xs\">\n <BaseSwitch.Root\n className={cn(\n 'group relative flex h-lg w-2xl items-center rounded-full bg-surface-low bg-size-[6.5rem_100%] outline-2 outline-transparent transition-colors ease-[cubic-bezier(0.26,0.75,0.38,0.45)] before:absolute before:rounded-full hover:cursor-pointer hover:not-disabled:outline-accent-border-strong disabled:pointer-events-none disabled:opacity-50 data-checked:bg-accent-default data-disabled:pointer-events-none data-disabled:opacity-50',\n className,\n )}\n ref={ref}\n {...props}\n >\n <BaseSwitch.Thumb className=\"size-md translate-x-[calc(0%+3px)] rounded-full shadow-2xs transition-transform duration-500 ease-[cubic-bezier(0.68,-0.55,0.27,1.55)] data-checked:translate-x-[calc(100%--7px)] data-checked:bg-accent-on-default data-unchecked:bg-white\" />\n </BaseSwitch.Root>\n {children != undefined && (\n <span data-slot=\"switch-label\" className=\"leading-none text-box-trim\">\n {children}\n </span>\n )}\n </Label>\n )\n}\n"],"mappings":";;;;;AAOA,SAAgBA,SAAO,EAAE,UAAU,WAAW,KAAK,GAAG,SAAsB;CAC1E,OACE,qBAAC,OAAD;EAAO,WAAU;EAAjB,UAAA,CACE,oBAACC,OAAW,MAAZ;GACE,WAAW,GACT,8aACA,SACF;GACK;GACL,GAAI;GAEJ,UAAA,oBAACA,OAAW,OAAZ,EAAkB,WAAU,8OAA+O,CAAA;EAC5P,CAAA,GAChB,YAAY,KAAA,KACX,oBAAC,QAAD;GAAM,aAAU;GAAe,WAAU;GACtC;EACG,CAAA,CAEH;;AAEX"}