@spear-ai/spectral 1.9.0 → 1.10.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 (237) hide show
  1. package/README.md +6 -5
  2. package/dist/.js +112 -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 -274
  32. package/dist/DateTimePicker/DateTimeInput.d.ts +5 -3
  33. package/dist/DateTimePicker/DateTimeInput.js +133 -88
  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 -23
  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/InputOTP-XUWW9xcI.js +461 -0
  128. package/dist/InputOTP.js +2 -382
  129. package/dist/Kbd.d.ts +1 -1
  130. package/dist/Kbd.js +182 -86
  131. package/dist/Label.js +12 -14
  132. package/dist/MultiSelect/MultiSelectBase.js +331 -403
  133. package/dist/MultiSelect.d.ts +1 -1
  134. package/dist/MultiSelect.js +23 -23
  135. package/dist/Popover.js +28 -32
  136. package/dist/RadioButton.d.ts +17 -0
  137. package/dist/RadioButton.js +33 -0
  138. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +3 -1
  139. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +49 -46
  140. package/dist/RadioButtonGroup.d.ts +1 -1
  141. package/dist/RadioButtonGroup.js +11 -8
  142. package/dist/RadioGroup-w_q6RGEK.js +447 -0
  143. package/dist/RadioGroup.js +2 -505
  144. package/dist/Select.js +163 -186
  145. package/dist/Separator.js +16 -19
  146. package/dist/Skeleton.js +10 -6
  147. package/dist/Slider-BzzZT3Zm.js +490 -0
  148. package/dist/Slider.js +2 -562
  149. package/dist/SpectralProvider.js +8 -5
  150. package/dist/Switch/SwitchBase.js +91 -95
  151. package/dist/Switch-CVzRJ-0n.js +126 -0
  152. package/dist/Switch.d.ts +1 -1
  153. package/dist/Switch.js +2 -134
  154. package/dist/Tabs/TabsBase.js +242 -250
  155. package/dist/Tabs/tabsUtils.js +65 -73
  156. package/dist/Tabs.d.ts +1 -1
  157. package/dist/Tabs.js +73 -103
  158. package/dist/Textarea/TextareaUtils.js +35 -46
  159. package/dist/Textarea.js +83 -160
  160. package/dist/Toast-9zqXxKKO.js +711 -0
  161. package/dist/Toast.js +2 -885
  162. package/dist/Toggle/ToggleBase.js +46 -56
  163. package/dist/Toggle.d.ts +1 -1
  164. package/dist/Toggle.js +52 -62
  165. package/dist/ToggleGroup/ToggleGroupBase.js +128 -104
  166. package/dist/ToggleGroup.d.ts +1 -1
  167. package/dist/ToggleGroup.js +52 -63
  168. package/dist/Tooltip-D1K8kY1y.js +389 -0
  169. package/dist/Tooltip.js +2 -365
  170. package/dist/Tray.js +174 -217
  171. package/dist/chunk-h9knIhTc.js +20 -0
  172. package/dist/clsx-jM1GlMvB.js +16 -0
  173. package/dist/dist-3Af8168y.js +913 -0
  174. package/dist/dist-7HRQ5IKN.js +249 -0
  175. package/dist/dist-B2k1iWFp.js +129 -0
  176. package/dist/dist-B4FgboI8.js +122 -0
  177. package/dist/dist-B4g6zpUF.js +33 -0
  178. package/dist/dist-B9tup-4O.js +216 -0
  179. package/dist/dist-BK1K0g9W.js +29 -0
  180. package/dist/dist-Bfjk-jx9.js +28 -0
  181. package/dist/dist-Bft31cJh.js +65 -0
  182. package/dist/dist-BtdmHAzK.js +190 -0
  183. package/dist/dist-C0Hifjgh.js +1287 -0
  184. package/dist/dist-CGzgmYB9.js +68 -0
  185. package/dist/dist-ClmepHp4.js +10 -0
  186. package/dist/dist-D8Wb_MX9.js +6 -0
  187. package/dist/dist-Dtvmk11N.js +12 -0
  188. package/dist/dist-fW81qjVl.js +677 -0
  189. package/dist/dist-s1uWaZYZ.js +11 -0
  190. package/dist/es2015-YHaMV-St.js +701 -0
  191. package/dist/hooks/useAccordionAutoScroll.js +66 -67
  192. package/dist/hooks/useControllableState.js +14 -13
  193. package/dist/hooks/useTheme.js +21 -17
  194. package/dist/index.d.ts +2 -1
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/main.js +18954 -27224
  197. package/dist/primitives/button.js +39 -41
  198. package/dist/primitives/input-group.js +57 -73
  199. package/dist/primitives/input.js +11 -20
  200. package/dist/primitives/popover.d.ts.map +1 -1
  201. package/dist/primitives/popover.js +34 -25
  202. package/dist/primitives/select.js +70 -138
  203. package/dist/primitives/slot.js +32 -31
  204. package/dist/primitives/textarea.js +10 -16
  205. package/dist/proxy-Dn10Pl_g.js +4920 -0
  206. package/dist/styles/main.css +2 -1
  207. package/dist/styles/spectral.css +1 -1
  208. package/dist/twUtils-VNWgstKL.js +1673 -0
  209. package/dist/use-animation-CBUDycyW.js +57 -0
  210. package/dist/utils/constants.js +4 -4
  211. package/dist/utils/formFieldUtils.js +136 -148
  212. package/dist/utils/sharedUtils.js +26 -7
  213. package/dist/utils/twUtils.js +2 -2919
  214. package/package.json +24 -28
  215. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  216. package/dist/clsx-OuTLNxxd.js +0 -16
  217. package/dist/index-0ioNhtNM.js +0 -10
  218. package/dist/index-6oYKCvIn.js +0 -677
  219. package/dist/index-BFOf48AQ.js +0 -69
  220. package/dist/index-BZPx6jYI.js +0 -8
  221. package/dist/index-BlHU_t18.js +0 -142
  222. package/dist/index-Bm1RbF6w.js +0 -1037
  223. package/dist/index-Bv2OIg5P.js +0 -225
  224. package/dist/index-CKEI0pDv.js +0 -56
  225. package/dist/index-CM_hWgfC.js +0 -32
  226. package/dist/index-C_YVr64u.js +0 -1538
  227. package/dist/index-Cl8VeY0o.js +0 -149
  228. package/dist/index-CwSyIPrv.js +0 -13
  229. package/dist/index-D29mdTf5.js +0 -34
  230. package/dist/index-DEYs15GP.js +0 -66
  231. package/dist/index-Dc0No4pV.js +0 -233
  232. package/dist/index-T6XEa11q.js +0 -822
  233. package/dist/index-pBCLb6Gr.js +0 -240
  234. package/dist/index-psiVrsnE.js +0 -27
  235. package/dist/index-rKs9bXHr.js +0 -6
  236. package/dist/proxy-CO_-Vget.js +0 -4975
  237. 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 };