@spear-ai/spectral 1.9.1 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/README.md +6 -5
  2. package/dist/.js +113 -239
  3. package/dist/Accordion-CDXdSAST.js +363 -0
  4. package/dist/Accordion.js +3 -498
  5. package/dist/Alert/AlertBase.js +69 -152
  6. package/dist/Alert.js +58 -106
  7. package/dist/AnimatePresence-D-9jXfgI.js +178 -0
  8. package/dist/App.js +6 -6
  9. package/dist/Avatar.js +83 -65
  10. package/dist/Badge.d.ts +1 -3
  11. package/dist/Badge.js +21 -25
  12. package/dist/Button.js +102 -178
  13. package/dist/ButtonGroup/ButtonGroupButton.js +38 -40
  14. package/dist/ButtonGroup.js +55 -59
  15. package/dist/ButtonIcon.js +58 -134
  16. package/dist/Calendar-s4lyijkn.js +3109 -0
  17. package/dist/Checkbox/CheckboxBase.js +94 -126
  18. package/dist/Checkbox.d.ts +1 -1
  19. package/dist/Checkbox.js +40 -105
  20. package/dist/Combobox/ComboboxBase.js +2 -79
  21. package/dist/Combobox.js +106 -172
  22. package/dist/ComboboxBase-D8Nf4xC-.js +491 -0
  23. package/dist/ControlGroup/ControlGroupSelect.d.ts +1 -1
  24. package/dist/ControlGroup/ControlGroupSelect.js +85 -101
  25. package/dist/ControlGroup.js +45 -48
  26. package/dist/DataCard/Card.js +37 -12
  27. package/dist/DataCard.d.ts +1 -1
  28. package/dist/DataCard.js +36 -16
  29. package/dist/DateTimePicker/Calendar.js +2 -2967
  30. package/dist/DateTimePicker/DateTimeDisplayInput.d.ts +1 -1
  31. package/dist/DateTimePicker/DateTimeDisplayInput.js +379 -275
  32. package/dist/DateTimePicker/DateTimeInput.d.ts +1 -1
  33. package/dist/DateTimePicker/DateTimeInput.js +133 -141
  34. package/dist/DateTimePicker/DateTimeUtils.js +2 -2193
  35. package/dist/DateTimePicker/TimePeriodSelect.d.ts +1 -1
  36. package/dist/DateTimePicker/TimePeriodSelect.js +45 -20
  37. package/dist/DateTimePicker/TimePicker.d.ts +1 -1
  38. package/dist/DateTimePicker/TimePicker.js +76 -60
  39. package/dist/DateTimePicker.d.ts +2 -2
  40. package/dist/DateTimePicker.js +87 -205
  41. package/dist/DateTimeUtils-DVvG6H-p.js +2098 -0
  42. package/dist/Dialog.js +74 -74
  43. package/dist/Drawer.js +67 -37
  44. package/dist/HoverCard-CYDsIiVK.js +201 -0
  45. package/dist/HoverCard.d.ts +1 -1
  46. package/dist/HoverCard.js +2 -218
  47. package/dist/Icons/AnalyzeIcon.js +50 -57
  48. package/dist/Icons/AnnotationsIcon.js +20 -15
  49. package/dist/Icons/ApprovedIcon.js +26 -18
  50. package/dist/Icons/ArrowDownIcon.js +20 -6
  51. package/dist/Icons/ArrowUpIcon.js +20 -6
  52. package/dist/Icons/BoxToolIcon.js +17 -12
  53. package/dist/Icons/CalendarIcon.js +43 -20
  54. package/dist/Icons/CheckCircleIcon.js +26 -10
  55. package/dist/Icons/CheckSquareIcon.js +26 -10
  56. package/dist/Icons/CheckmarkIcon.js +22 -9
  57. package/dist/Icons/ChevronDownIcon.js +22 -9
  58. package/dist/Icons/ChevronUpIcon.js +22 -9
  59. package/dist/Icons/ClockIcon.js +26 -18
  60. package/dist/Icons/CloseCircleIcon.js +26 -10
  61. package/dist/Icons/CloseIcon.js +18 -9
  62. package/dist/Icons/DashboardIcon.js +36 -10
  63. package/dist/Icons/DatabaseIcon.js +36 -19
  64. package/dist/Icons/DeleteIcon.js +36 -19
  65. package/dist/Icons/DurationIcon.js +57 -22
  66. package/dist/Icons/EditIcon.js +26 -27
  67. package/dist/Icons/EmailIcon.js +26 -10
  68. package/dist/Icons/EraserIcon.js +41 -25
  69. package/dist/Icons/ErrorIcon.js +27 -11
  70. package/dist/Icons/EyeClosedIcon.js +29 -13
  71. package/dist/Icons/EyeClosedIcon2.js +27 -11
  72. package/dist/Icons/EyeOpenIcon.js +22 -9
  73. package/dist/Icons/FileDownloadIcon.js +43 -20
  74. package/dist/Icons/GoToFirstIcon.js +26 -9
  75. package/dist/Icons/GoToLastIcon.js +26 -9
  76. package/dist/Icons/HarmonicCursorsIcon.js +23 -9
  77. package/dist/Icons/IconBase.d.ts +3 -3
  78. package/dist/Icons/IconBase.js +49 -66
  79. package/dist/Icons/InfoIcon.js +36 -10
  80. package/dist/Icons/KeyboardIcon.js +26 -27
  81. package/dist/Icons/LabelIcon.js +19 -14
  82. package/dist/Icons/LassoIcon.js +36 -28
  83. package/dist/Icons/LineToolIcon.js +48 -39
  84. package/dist/Icons/LiveViewIcon.js +50 -12
  85. package/dist/Icons/LoaderIcon.js +67 -27
  86. package/dist/Icons/LocationIcon.js +26 -27
  87. package/dist/Icons/LogoutIcon.js +20 -15
  88. package/dist/Icons/MeasureIcon.js +78 -25
  89. package/dist/Icons/MessagesIcon.js +33 -18
  90. package/dist/Icons/MetadataIcon.js +20 -15
  91. package/dist/Icons/MinusIcon.d.ts +1 -1
  92. package/dist/Icons/MinusIcon.js +18 -6
  93. package/dist/Icons/OntologyIcon.js +87 -71
  94. package/dist/Icons/PanelIconClose.js +28 -10
  95. package/dist/Icons/PanelIconOpen.js +28 -10
  96. package/dist/Icons/PlayIcon.js +20 -6
  97. package/dist/Icons/PlusIcon.js +20 -14
  98. package/dist/Icons/PolygonIcon.js +50 -39
  99. package/dist/Icons/ProgressCheckIcon.d.ts +5 -0
  100. package/dist/Icons/ProgressCheckIcon.js +58 -0
  101. package/dist/Icons/ResetIcon.js +17 -12
  102. package/dist/Icons/ReviewedIcon.js +36 -19
  103. package/dist/Icons/ScissorsIcon.js +22 -17
  104. package/dist/Icons/SearchIcon.js +26 -9
  105. package/dist/Icons/SettingsIcon.js +26 -27
  106. package/dist/Icons/SortAscendingIcon.js +50 -12
  107. package/dist/Icons/SortAtoZIcon.js +50 -12
  108. package/dist/Icons/SortDescendingIcon.js +50 -12
  109. package/dist/Icons/SortZtoAIcon.js +50 -12
  110. package/dist/Icons/StackIcon.js +26 -9
  111. package/dist/Icons/StarIcon.js +20 -6
  112. package/dist/Icons/TrashIcon.js +17 -12
  113. package/dist/Icons/UndoIcon.js +20 -15
  114. package/dist/Icons/User2Icon.js +26 -10
  115. package/dist/Icons/UserIcon.js +19 -14
  116. package/dist/Icons/WarningIcon.js +19 -14
  117. package/dist/Icons/ZoomAllIcon.js +71 -15
  118. package/dist/Icons/ZoomXIcon.js +36 -10
  119. package/dist/Icons/ZoomYIcon.js +36 -10
  120. package/dist/Icons/index.d.ts +1 -0
  121. package/dist/Icons.js +68 -136
  122. package/dist/IconsAnimated/PanelLeftCloseIcon.js +66 -36
  123. package/dist/IconsAnimated/PanelLeftOpenIcon.js +66 -36
  124. package/dist/IconsAnimated.js +3 -6
  125. package/dist/Input/InputUtils.js +51 -52
  126. package/dist/Input.js +132 -185
  127. package/dist/InputNumeric.d.ts +14 -0
  128. package/dist/InputNumeric.js +137 -0
  129. package/dist/InputOTP-cVn5Bzyp.js +461 -0
  130. package/dist/InputOTP.js +2 -382
  131. package/dist/Kbd.d.ts +1 -1
  132. package/dist/Kbd.js +182 -86
  133. package/dist/Label.js +12 -14
  134. package/dist/MultiSelect/MultiSelectBase.js +331 -403
  135. package/dist/MultiSelect.d.ts +1 -1
  136. package/dist/MultiSelect.js +23 -23
  137. package/dist/Popover.js +28 -32
  138. package/dist/RadioButton.d.ts +17 -0
  139. package/dist/RadioButton.js +33 -0
  140. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +3 -1
  141. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +49 -46
  142. package/dist/RadioButtonGroup.d.ts +1 -1
  143. package/dist/RadioButtonGroup.js +11 -8
  144. package/dist/RadioGroup-w_q6RGEK.js +447 -0
  145. package/dist/RadioGroup.js +2 -505
  146. package/dist/Select.js +163 -186
  147. package/dist/Separator.js +16 -19
  148. package/dist/Skeleton.js +10 -6
  149. package/dist/Slider-BzzZT3Zm.js +490 -0
  150. package/dist/Slider.js +2 -562
  151. package/dist/SpectralProvider.js +8 -5
  152. package/dist/Switch/SwitchBase.js +91 -95
  153. package/dist/Switch-CVzRJ-0n.js +126 -0
  154. package/dist/Switch.d.ts +1 -1
  155. package/dist/Switch.js +2 -134
  156. package/dist/Tabs/TabsBase.js +242 -250
  157. package/dist/Tabs/tabsUtils.js +65 -73
  158. package/dist/Tabs.d.ts +1 -1
  159. package/dist/Tabs.js +73 -103
  160. package/dist/Textarea/TextareaUtils.js +35 -46
  161. package/dist/Textarea.js +83 -160
  162. package/dist/Toast-9zqXxKKO.js +711 -0
  163. package/dist/Toast.js +2 -885
  164. package/dist/Toggle/ToggleBase.js +46 -56
  165. package/dist/Toggle.d.ts +1 -1
  166. package/dist/Toggle.js +52 -62
  167. package/dist/ToggleGroup/ToggleGroupBase.js +128 -104
  168. package/dist/ToggleGroup.d.ts +1 -1
  169. package/dist/ToggleGroup.js +52 -63
  170. package/dist/Tooltip-D1K8kY1y.js +389 -0
  171. package/dist/Tooltip.js +2 -365
  172. package/dist/Tray.js +174 -217
  173. package/dist/chunk-h9knIhTc.js +20 -0
  174. package/dist/clsx-jM1GlMvB.js +16 -0
  175. package/dist/dist-3Af8168y.js +913 -0
  176. package/dist/dist-7HRQ5IKN.js +249 -0
  177. package/dist/dist-B2k1iWFp.js +129 -0
  178. package/dist/dist-B4FgboI8.js +122 -0
  179. package/dist/dist-B4g6zpUF.js +33 -0
  180. package/dist/dist-B9tup-4O.js +216 -0
  181. package/dist/dist-BK1K0g9W.js +29 -0
  182. package/dist/dist-Bfjk-jx9.js +28 -0
  183. package/dist/dist-Bft31cJh.js +65 -0
  184. package/dist/dist-BtdmHAzK.js +190 -0
  185. package/dist/dist-C0Hifjgh.js +1287 -0
  186. package/dist/dist-CGzgmYB9.js +68 -0
  187. package/dist/dist-ClmepHp4.js +10 -0
  188. package/dist/dist-D8Wb_MX9.js +6 -0
  189. package/dist/dist-Dtvmk11N.js +12 -0
  190. package/dist/dist-fW81qjVl.js +677 -0
  191. package/dist/dist-s1uWaZYZ.js +11 -0
  192. package/dist/es2015-YHaMV-St.js +701 -0
  193. package/dist/hooks/useAccordionAutoScroll.js +66 -67
  194. package/dist/hooks/useControllableState.js +14 -13
  195. package/dist/hooks/useConvertToOklch.d.ts +3 -0
  196. package/dist/hooks/useConvertToOklch.d.ts.map +1 -0
  197. package/dist/hooks/useConvertToOklch.js +51 -0
  198. package/dist/hooks/useTheme.js +21 -17
  199. package/dist/index.d.ts +3 -1
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/main.js +18954 -27224
  202. package/dist/primitives/button.js +39 -41
  203. package/dist/primitives/input-group.js +57 -73
  204. package/dist/primitives/input.js +11 -20
  205. package/dist/primitives/popover.js +34 -28
  206. package/dist/primitives/select.js +70 -138
  207. package/dist/primitives/slot.js +32 -31
  208. package/dist/primitives/textarea.js +10 -16
  209. package/dist/proxy-Dn10Pl_g.js +4920 -0
  210. package/dist/styles/main.css +2 -1
  211. package/dist/styles/spectral.css +1 -1
  212. package/dist/twUtils-VNWgstKL.js +1673 -0
  213. package/dist/use-animation-CBUDycyW.js +57 -0
  214. package/dist/utils/constants.js +4 -4
  215. package/dist/utils/formFieldUtils.js +136 -148
  216. package/dist/utils/sharedUtils.js +26 -7
  217. package/dist/utils/twUtils.js +2 -2919
  218. package/package.json +24 -28
  219. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  220. package/dist/clsx-OuTLNxxd.js +0 -16
  221. package/dist/index-0ioNhtNM.js +0 -10
  222. package/dist/index-6oYKCvIn.js +0 -677
  223. package/dist/index-BFOf48AQ.js +0 -69
  224. package/dist/index-BZPx6jYI.js +0 -8
  225. package/dist/index-BlHU_t18.js +0 -142
  226. package/dist/index-Bm1RbF6w.js +0 -1037
  227. package/dist/index-Bv2OIg5P.js +0 -225
  228. package/dist/index-CKEI0pDv.js +0 -56
  229. package/dist/index-CM_hWgfC.js +0 -32
  230. package/dist/index-C_YVr64u.js +0 -1538
  231. package/dist/index-Cl8VeY0o.js +0 -149
  232. package/dist/index-CwSyIPrv.js +0 -13
  233. package/dist/index-D29mdTf5.js +0 -34
  234. package/dist/index-DEYs15GP.js +0 -66
  235. package/dist/index-Dc0No4pV.js +0 -233
  236. package/dist/index-T6XEa11q.js +0 -822
  237. package/dist/index-pBCLb6Gr.js +0 -240
  238. package/dist/index-psiVrsnE.js +0 -27
  239. package/dist/index-rKs9bXHr.js +0 -6
  240. package/dist/proxy-CO_-Vget.js +0 -4975
  241. package/dist/use-animation-DhEPRwZ3.js +0 -62
@@ -1,5 +1,5 @@
1
- import { MultiSelectBaseProps } from './MultiSelectBase';
2
1
  import { Ref } from 'react';
2
+ import { MultiSelectBaseProps } from './MultiSelectBase';
3
3
  export interface MultiSelectProps extends Omit<MultiSelectBaseProps, 'onChange' | 'options' | 'value'> {
4
4
  emptyText?: string;
5
5
  loading?: boolean;
@@ -1,27 +1,27 @@
1
1
  import "./styles/main.css";
2
- import { jsx as u } from "react/jsx-runtime";
3
- import { MultiSelectBase as c } from "./MultiSelect/MultiSelectBase.js";
2
+ import { MultiSelectBase as e } from "./MultiSelect/MultiSelectBase.js";
4
3
  import "react";
5
- const n = ({
6
- emptyText: l = "No matches found.",
7
- loading: t = !1,
8
- onValueChange: s,
9
- options: d,
10
- ref: i,
11
- state: o,
12
- value: b = [],
13
- ...a
14
- }) => {
15
- const m = d.map((e) => ({
16
- disabled: e.disabled ?? !1,
17
- group: e.group,
18
- label: e.label,
19
- value: e.value
20
- })), r = t ? "loading" : o;
21
- return /* @__PURE__ */ u(c, { "data-disabled": a.disabled, disabled: a.disabled, emptyMessage: l, onChange: s ?? (() => {
22
- }), options: m, ref: i, state: r, value: b, ...a });
4
+ import { jsx as t } from "react/jsx-runtime";
5
+ //#region src/components/MultiSelect/MultiSelect.tsx
6
+ var n = ({ emptyText: n = "No matches found.", loading: r = !1, onValueChange: i, options: a, ref: o, state: s, value: c = [], ...l }) => {
7
+ let u = a.map((e) => ({
8
+ disabled: e.disabled ?? !1,
9
+ group: e.group,
10
+ label: e.label,
11
+ value: e.value
12
+ })), d = r ? "loading" : s;
13
+ return /* @__PURE__ */ t(e, {
14
+ "data-disabled": l.disabled,
15
+ disabled: l.disabled,
16
+ emptyMessage: n,
17
+ onChange: i ?? (() => {}),
18
+ options: u,
19
+ ref: o,
20
+ state: d,
21
+ value: c,
22
+ ...l
23
+ });
23
24
  };
24
25
  n.displayName = "MultiSelect";
25
- export {
26
- n as MultiSelect
27
- };
26
+ //#endregion
27
+ export { n as MultiSelect };
package/dist/Popover.js CHANGED
@@ -1,34 +1,30 @@
1
1
  import "./styles/main.css";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import { R as p, P as d, C as m, T as f, A as l } from "./index-Bv2OIg5P.js";
4
- import { cn as c } from "./utils/twUtils.js";
2
+ import { t as e } from "./twUtils-VNWgstKL.js";
3
+ import { a as t, i as n, n as r, r as i, t as a } from "./dist-BtdmHAzK.js";
5
4
  import "react";
6
- const x = ({ ...o }) => /* @__PURE__ */ t(p, { "data-slot": "popover", "data-testid": "spectral-popover", ...o }), b = ({ ...o }) => /* @__PURE__ */ t(f, { "data-slot": "popover-trigger", "data-testid": "spectral-popover-trigger", ...o }), P = ({ align: o = "center", className: a, collisionPadding: r = 8, side: n = "bottom", sideOffset: i = 4, width: e = "w-fit", ...s }) => /* @__PURE__ */ t(d, { children: /* @__PURE__ */ t(
7
- m,
8
- {
9
- align: o,
10
- collisionPadding: r,
11
- "data-slot": "popover-content",
12
- "data-testid": "spectral-popover-content",
13
- side: n,
14
- sideOffset: i,
15
- className: c(
16
- "bg-popover-bg text-popover-text motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0",
17
- "motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:zoom-in-95 motion-safe:data-[side=bottom]:slide-in-from-top-2",
18
- "motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 z-50 h-fit",
19
- "max-h-(--radix-popover-content-available-height) origin-[--radix-popover-content-transform-origin] rounded-lg border-none p-4",
20
- "w-(--popover-width) overflow-x-hidden overflow-y-auto shadow-md outline-none",
21
- a
22
- ),
23
- style: {
24
- "--popover-width": typeof e == "number" ? `${e}px` : e === "w-fit" ? "320px" : e
25
- },
26
- ...s
27
- }
28
- ) }), w = ({ ...o }) => /* @__PURE__ */ t(l, { "data-slot": "popover-anchor", ...o });
29
- export {
30
- x as Popover,
31
- w as PopoverAnchor,
32
- P as PopoverContent,
33
- b as PopoverTrigger
34
- };
5
+ import { jsx as o } from "react/jsx-runtime";
6
+ //#region src/components/Popover/Popover.tsx
7
+ var s = ({ ...e }) => /* @__PURE__ */ o(n, {
8
+ "data-slot": "popover",
9
+ "data-testid": "spectral-popover",
10
+ ...e
11
+ }), c = ({ ...e }) => /* @__PURE__ */ o(t, {
12
+ "data-slot": "popover-trigger",
13
+ "data-testid": "spectral-popover-trigger",
14
+ ...e
15
+ }), l = ({ align: t = "center", className: n, collisionPadding: a = 8, side: s = "bottom", sideOffset: c = 4, width: l = "w-fit", ...u }) => /* @__PURE__ */ o(i, { children: /* @__PURE__ */ o(r, {
16
+ align: t,
17
+ collisionPadding: a,
18
+ "data-slot": "popover-content",
19
+ "data-testid": "spectral-popover-content",
20
+ side: s,
21
+ sideOffset: c,
22
+ className: e("bg-popover-bg text-popover-text motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:animate-in", "motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95", "z-50 h-fit motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2", "rounded-lg p-4 max-h-(--radix-popover-content-available-height) origin-[--radix-popover-content-transform-origin] border-none", "shadow-md w-(--popover-width) overflow-x-hidden overflow-y-auto outline-none", n),
23
+ style: { "--popover-width": typeof l == "number" ? `${l}px` : l === "w-fit" ? "320px" : l },
24
+ ...u
25
+ }) }), u = ({ ...e }) => /* @__PURE__ */ o(a, {
26
+ "data-slot": "popover-anchor",
27
+ ...e
28
+ });
29
+ //#endregion
30
+ export { s as Popover, u as PopoverAnchor, l as PopoverContent, c as PopoverTrigger };
@@ -0,0 +1,17 @@
1
+ import { AsChildProp } from './primitives/slot';
2
+ import { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
3
+ export interface RadioButtonProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onSelect' | 'type'> {
4
+ checked?: boolean;
5
+ children: ReactNode;
6
+ expanded?: boolean;
7
+ isKeptActive?: boolean;
8
+ onCheckedChange?: (checked: boolean) => void;
9
+ onSelect?: (checked: boolean) => void;
10
+ }
11
+ export declare const RadioButton: {
12
+ ({ asChild, checked, children, className, disabled, expanded, isKeptActive, onCheckedChange, onClick, onSelect, ref, ...rest }: RadioButtonProps & {
13
+ ref?: Ref<HTMLButtonElement>;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ displayName: string;
16
+ };
17
+ //# sourceMappingURL=RadioButton.d.ts.map
@@ -0,0 +1,33 @@
1
+ import "./styles/main.css";
2
+ import { t as e } from "./twUtils-VNWgstKL.js";
3
+ import { Slot as t } from "./primitives/slot.js";
4
+ import "react";
5
+ import { jsx as n } from "react/jsx-runtime";
6
+ //#region src/components/RadioButton/RadioButton.tsx
7
+ var r = ({ asChild: r = !1, checked: i = !1, children: a, className: o, disabled: s = !1, expanded: c = !1, isKeptActive: l = !1, onCheckedChange: u, onClick: d, onSelect: f, ref: p, ...m }) => {
8
+ let h = (e) => {
9
+ d?.(e), !(e.defaultPrevented || s) && (u?.(!0), f?.(!0));
10
+ }, g = {
11
+ ...m,
12
+ className: e("gap-2 rounded-md text-sm font-medium focus-visible:border-ring focus-visible:ring-ring/50 h-9 px-3 min-w-9 [&_svg:not([class*='size-']):not([width]):not([height])]:size-4 inline-flex items-center justify-center border border-toggle-border bg-toggle-bg text-toggle-text shadow-none transition-colors outline-none hover:cursor-pointer hover:border-toggle-border--hover hover:bg-toggle-bg--hover hover:text-toggle-text--hover focus:z-10 focus:outline-none focus-visible:z-10 focus-visible:ring-[3px] active:border-toggle-border--active active:bg-toggle-bg--active active:text-toggle-text--active disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", c && "w-full", l && "data-[state=on]:border-toggle-border--active data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active", o),
13
+ disabled: s,
14
+ onClick: h,
15
+ role: "radio",
16
+ "aria-checked": i,
17
+ "data-state": i ? "on" : "off",
18
+ "data-testid": "spectral-radio-button"
19
+ };
20
+ return r ? /* @__PURE__ */ n(t, {
21
+ ref: p,
22
+ ...g,
23
+ children: a
24
+ }) : /* @__PURE__ */ n("button", {
25
+ ref: p,
26
+ ...g,
27
+ type: "button",
28
+ children: a
29
+ });
30
+ };
31
+ r.displayName = "RadioButton";
32
+ //#endregion
33
+ export { r as RadioButton };
@@ -1,6 +1,8 @@
1
1
  import { AsChildProp } from '../primitives/slot';
2
2
  import { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
3
3
  export interface RadioButtonGroupProps {
4
+ 'aria-label'?: string;
5
+ 'aria-labelledby'?: string;
4
6
  asChild?: boolean;
5
7
  children: ReactNode;
6
8
  className?: string;
@@ -14,7 +16,7 @@ export interface RadioButtonGroupItemProps extends AsChildProp, Omit<ButtonHTMLA
14
16
  onSelect?: (value: string) => void;
15
17
  value: string;
16
18
  }
17
- export declare const RadioButtonGroupBase: ({ children, className, expanded, isKeptActive, onValueChange, value }: RadioButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const RadioButtonGroupBase: ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, children, className, expanded, isKeptActive, onValueChange, value }: RadioButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
18
20
  export declare const RadioButtonGroupItem: {
19
21
  ({ asChild, children, className, disabled, onClick, onSelect, ref, value, ...rest }: RadioButtonGroupItemProps & {
20
22
  ref?: Ref<HTMLButtonElement>;
@@ -1,49 +1,52 @@
1
1
  "use client";
2
2
  import "../styles/main.css";
3
- import { jsx as n } from "react/jsx-runtime";
4
- import { Slot as B } from "../primitives/slot.js";
5
- import { cn as b } from "../utils/twUtils.js";
6
- import { createContext as y, useContext as G } from "react";
7
- const p = y(null), I = ({ children: a, className: t, expanded: e = !1, isKeptActive: o = !1, onValueChange: r, value: i }) => /* @__PURE__ */ n(p.Provider, { value: { value: i, onValueChange: r, isKeptActive: o, expanded: e }, children: /* @__PURE__ */ n("div", { className: b("flex h-fit w-fit items-center rounded-md [&_button:first-of-type]:rounded-l-md [&_button:last-of-type]:rounded-r-md", "data-[expanded=true]:w-full", t), "data-expanded": e, "data-testid": "spectral-radio-button-group", role: "radiogroup", children: a }) }), R = ({
8
- asChild: a = !1,
9
- children: t,
10
- className: e,
11
- disabled: o = !1,
12
- onClick: r,
13
- onSelect: i,
14
- ref: d,
15
- value: s,
16
- ...v
17
- }) => {
18
- const l = G(p);
19
- if (!l)
20
- throw new Error("RadioButtonGroupItem must be used within a RadioButtonGroup");
21
- const { value: m, onValueChange: u, isKeptActive: x, expanded: h } = l, g = m === s, w = (f) => {
22
- r && r(f), !f.defaultPrevented && (o || (u && u(s), i && i(s)));
23
- }, c = {
24
- ...v,
25
- className: b(
26
- `bg-toggle-bg inline-flex items-center justify-center gap-2 border text-sm font-medium disabled:pointer-events-none disabled:opacity-50
27
- disabled:cursor-not-allowed hover:cursor-pointer text-toggle-text hover:bg-toggle-bg--hover hover:text-toggle-text--hover transition-[colors]
28
- [&_svg]:pointer-events-none [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus:outline-none
29
- outline-none border-toggle-border hover:border-toggle-border--hover h-9 px-3 min-w-9 [&_svg:not([class*='size-']):not([width]):not([height])]:size-4
30
- rounded-none shadow-none focus:z-10 focus-visible:z-10 [&:not(:first-child)]:border-l-0 active:bg-toggle-bg--active active:text-toggle-text--active
31
- active:border-toggle-border--active`,
32
- h && "w-full",
33
- x && "data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active data-[state=on]:border-toggle-border--active",
34
- e
35
- ),
36
- disabled: o,
37
- onClick: w,
38
- role: "radio",
39
- "aria-checked": g,
40
- "data-state": g ? "on" : "off",
41
- "data-testid": "spectral-radio-button-group-item"
42
- };
43
- return a ? /* @__PURE__ */ n(B, { ref: d, ...c, children: t }) : /* @__PURE__ */ n("button", { ref: d, ...c, type: "button", children: t });
44
- };
45
- R.displayName = "RadioButtonGroupItem";
46
- export {
47
- I as RadioButtonGroupBase,
48
- R as RadioButtonGroupItem
3
+ import { t as e } from "../twUtils-VNWgstKL.js";
4
+ import { Slot as t } from "../primitives/slot.js";
5
+ import { createContext as n, useContext as r } from "react";
6
+ import { jsx as i } from "react/jsx-runtime";
7
+ //#region src/components/RadioButtonGroup/RadioButtonGroupBase.tsx
8
+ var a = n(null), o = ({ "aria-label": t, "aria-labelledby": n, children: r, className: o, expanded: s = !1, isKeptActive: c = !1, onValueChange: l, value: u }) => /* @__PURE__ */ i(a.Provider, {
9
+ value: {
10
+ value: u,
11
+ onValueChange: l,
12
+ isKeptActive: c,
13
+ expanded: s
14
+ },
15
+ children: /* @__PURE__ */ i("div", {
16
+ "aria-label": t,
17
+ "aria-labelledby": n,
18
+ className: e("rounded-md [&_button:first-of-type]:rounded-l-md [&_button:last-of-type]:rounded-r-md flex h-fit w-fit items-center", "data-[expanded=true]:w-full", o),
19
+ "data-expanded": s,
20
+ "data-testid": "spectral-radio-button-group",
21
+ role: "radiogroup",
22
+ children: r
23
+ })
24
+ }), s = ({ asChild: n = !1, children: o, className: s, disabled: c = !1, onClick: l, onSelect: u, ref: d, value: f, ...p }) => {
25
+ let m = r(a);
26
+ if (!m) throw Error("RadioButtonGroupItem must be used within a RadioButtonGroup");
27
+ let { value: h, onValueChange: g, isKeptActive: _, expanded: v } = m, y = h === f, b = (e) => {
28
+ l && l(e), !e.defaultPrevented && (c || (g && g(f), u && u(f)));
29
+ }, x = {
30
+ ...p,
31
+ className: e("gap-2 text-sm font-medium focus-visible:border-ring focus-visible:ring-ring/50 h-9 px-3 min-w-9 [&_svg:not([class*='size-']):not([width]):not([height])]:size-4 inline-flex items-center justify-center rounded-none border border-toggle-border bg-toggle-bg text-toggle-text shadow-none transition-[colors] outline-none hover:cursor-pointer hover:border-toggle-border--hover hover:bg-toggle-bg--hover hover:text-toggle-text--hover focus:z-10 focus:outline-none focus-visible:z-10 focus-visible:ring-[3px] active:border-toggle-border--active active:bg-toggle-bg--active active:text-toggle-text--active disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&:not(:first-child)]:border-l-0", v && "w-full", _ && "data-[state=on]:border-toggle-border--active data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active", s),
32
+ disabled: c,
33
+ onClick: b,
34
+ role: "radio",
35
+ "aria-checked": y,
36
+ "data-state": y ? "on" : "off",
37
+ "data-testid": "spectral-radio-button-group-item"
38
+ };
39
+ return n ? /* @__PURE__ */ i(t, {
40
+ ref: d,
41
+ ...x,
42
+ children: o
43
+ }) : /* @__PURE__ */ i("button", {
44
+ ref: d,
45
+ ...x,
46
+ type: "button",
47
+ children: o
48
+ });
49
49
  };
50
+ s.displayName = "RadioButtonGroupItem";
51
+ //#endregion
52
+ export { o as RadioButtonGroupBase, s as RadioButtonGroupItem };
@@ -1,5 +1,5 @@
1
- import { RadioButtonGroupBase, RadioButtonGroupItemProps as RadioButtonGroupItemPropsBase } from './RadioButtonGroupBase';
2
1
  import { ComponentProps } from 'react';
2
+ import { RadioButtonGroupBase, RadioButtonGroupItemProps as RadioButtonGroupItemPropsBase } from './RadioButtonGroupBase';
3
3
  export type RadioButtonGroupProps = ComponentProps<typeof RadioButtonGroupBase>;
4
4
  export type RadioButtonGroupItemProps = RadioButtonGroupItemPropsBase;
5
5
  export declare const RadioButtonGroup: ({ className, children, ...props }: RadioButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,13 @@
1
1
  import "./styles/main.css";
2
- import { jsx as e } from "react/jsx-runtime";
3
- import { RadioButtonGroupItem as n, RadioButtonGroupBase as u } from "./RadioButtonGroup/RadioButtonGroupBase.js";
4
- import { cn as m } from "./utils/twUtils.js";
2
+ import { t as e } from "./twUtils-VNWgstKL.js";
3
+ import { RadioButtonGroupBase as t, RadioButtonGroupItem as n } from "./RadioButtonGroup/RadioButtonGroupBase.js";
5
4
  import "react";
6
- const s = ({ className: t, children: o, ...r }) => /* @__PURE__ */ e(u, { className: m("flex h-fit w-fit items-center rounded-md whitespace-nowrap [&_button:first-of-type]:rounded-l-md [&_button:last-of-type]:rounded-r-md", t), ...r, children: o }), f = n;
7
- export {
8
- s as RadioButtonGroup,
9
- f as RadioButtonGroupItem
10
- };
5
+ import { jsx as r } from "react/jsx-runtime";
6
+ //#region src/components/RadioButtonGroup/RadioButtonGroup.tsx
7
+ var i = ({ className: n, children: i, ...a }) => /* @__PURE__ */ r(t, {
8
+ className: e("rounded-md [&_button:first-of-type]:rounded-l-md [&_button:last-of-type]:rounded-r-md flex h-fit w-fit items-center whitespace-nowrap", n),
9
+ ...a,
10
+ children: i
11
+ }), a = n;
12
+ //#endregion
13
+ export { i as RadioButtonGroup, a as RadioButtonGroupItem };