@spear-ai/spectral 1.6.17 → 1.8.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 (149) hide show
  1. package/dist/.js +201 -200
  2. package/dist/Accordion.d.ts +13 -15
  3. package/dist/Accordion.js +184 -179
  4. package/dist/Alert/AlertBase.d.ts +7 -7
  5. package/dist/Alert/AlertBase.js +21 -21
  6. package/dist/Alert.d.ts +2 -2
  7. package/dist/Alert.js +31 -31
  8. package/dist/Avatar.d.ts +2 -2
  9. package/dist/Avatar.js +30 -22
  10. package/dist/Badge.d.ts +1 -1
  11. package/dist/Badge.js +3 -2
  12. package/dist/Button.d.ts +3 -3
  13. package/dist/Button.js +108 -46
  14. package/dist/ButtonGroup/ButtonGroupButton.d.ts +1 -1
  15. package/dist/ButtonGroup/ButtonGroupButton.js +5 -5
  16. package/dist/ButtonGroup.d.ts +5 -5
  17. package/dist/ButtonGroup.js +21 -21
  18. package/dist/ButtonIcon.d.ts +2 -2
  19. package/dist/ButtonIcon.js +30 -31
  20. package/dist/Checkbox/CheckboxBase.d.ts +2 -2
  21. package/dist/Checkbox/CheckboxBase.js +50 -57
  22. package/dist/Checkbox.js +15 -19
  23. package/dist/DataCard/Card.d.ts +1 -1
  24. package/dist/DataCard/Card.js +1 -1
  25. package/dist/DataCard.js +1 -1
  26. package/dist/DateTimePicker/Calendar.d.ts +4 -4
  27. package/dist/DateTimePicker/Calendar.js +3 -3
  28. package/dist/DateTimePicker/DateTimeDisplayInput.js +126 -136
  29. package/dist/DateTimePicker/DateTimeInput.js +4 -4
  30. package/dist/DateTimePicker/DateTimeUtils.d.ts +31 -31
  31. package/dist/DateTimePicker/DateTimeUtils.js +139 -197
  32. package/dist/DateTimePicker/TimePicker.d.ts +4 -4
  33. package/dist/DateTimePicker/TimePicker.js +3 -3
  34. package/dist/DateTimePicker.d.ts +5 -5
  35. package/dist/DateTimePicker.js +90 -70
  36. package/dist/Dialog.d.ts +13 -13
  37. package/dist/Dialog.js +57 -84
  38. package/dist/Drawer.d.ts +2 -2
  39. package/dist/Drawer.js +8 -8
  40. package/dist/HoverCard.d.ts +6 -5
  41. package/dist/HoverCard.js +64 -64
  42. package/dist/Icons/PolygonIcon.d.ts +5 -0
  43. package/dist/Icons/PolygonIcon.js +40 -0
  44. package/dist/Icons/index.d.ts +1 -1
  45. package/dist/Icons.js +34 -34
  46. package/dist/IconsAnimated/PanelLeftCloseIcon.js +2 -2
  47. package/dist/IconsAnimated/PanelLeftOpenIcon.js +2 -2
  48. package/dist/Input/InputUtils.d.ts +2 -2
  49. package/dist/Input/InputUtils.js +4 -4
  50. package/dist/Input.d.ts +1 -1
  51. package/dist/Input.js +19 -19
  52. package/dist/InputOTP.d.ts +10 -10
  53. package/dist/InputOTP.js +114 -114
  54. package/dist/Kbd.d.ts +8 -5
  55. package/dist/Kbd.js +85 -20
  56. package/dist/Label.d.ts +4 -2
  57. package/dist/Label.js +3 -3
  58. package/dist/MultiSelect/MultiSelectBase.d.ts +1 -1
  59. package/dist/MultiSelect/MultiSelectBase.js +278 -202
  60. package/dist/MultiSelect.d.ts +6 -6
  61. package/dist/MultiSelect.js +9 -9
  62. package/dist/Popover.js +22 -237
  63. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +11 -11
  64. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +28 -28
  65. package/dist/RadioButtonGroup.d.ts +1 -1
  66. package/dist/RadioGroup.d.ts +15 -15
  67. package/dist/RadioGroup.js +253 -236
  68. package/dist/Select.d.ts +3 -1
  69. package/dist/Select.js +91 -88
  70. package/dist/Separator.js +4 -4
  71. package/dist/Skeleton.d.ts +1 -2
  72. package/dist/Skeleton.js +2 -4
  73. package/dist/Slider.d.ts +6 -6
  74. package/dist/Slider.js +78 -78
  75. package/dist/Switch/SwitchBase.d.ts +4 -4
  76. package/dist/Switch/SwitchBase.js +75 -111
  77. package/dist/Switch.d.ts +4 -4
  78. package/dist/Switch.js +122 -33
  79. package/dist/Tabs/TabsBase.js +39 -38
  80. package/dist/Tabs/tabsUtils.js +7 -7
  81. package/dist/Tabs.d.ts +0 -4
  82. package/dist/Tabs.js +62 -66
  83. package/dist/Textarea/TextareaUtils.d.ts +7 -7
  84. package/dist/Textarea/TextareaUtils.js +13 -13
  85. package/dist/Textarea.js +28 -18
  86. package/dist/Toast.d.ts +43 -0
  87. package/dist/Toast.js +883 -0
  88. package/dist/Toggle/ToggleBase.d.ts +4 -4
  89. package/dist/Toggle/ToggleBase.js +32 -33
  90. package/dist/Toggle.d.ts +1 -1
  91. package/dist/Toggle.js +7 -12
  92. package/dist/ToggleGroup/ToggleGroupBase.d.ts +5 -5
  93. package/dist/ToggleGroup/ToggleGroupBase.js +30 -30
  94. package/dist/ToggleGroup.d.ts +1 -1
  95. package/dist/ToggleGroup.js +27 -30
  96. package/dist/Tooltip.d.ts +1 -1
  97. package/dist/Tooltip.js +97 -97
  98. package/dist/Tray.d.ts +9 -9
  99. package/dist/Tray.js +71 -70
  100. package/dist/hooks/useAccordionAutoScroll.d.ts.map +1 -1
  101. package/dist/hooks/useAccordionAutoScroll.js +42 -39
  102. package/dist/hooks/useControllableState.d.ts +2 -2
  103. package/dist/hooks/useControllableState.d.ts.map +1 -1
  104. package/dist/hooks/useControllableState.js +2 -2
  105. package/dist/index-C12FUuIW.js +13 -0
  106. package/dist/{index-yU8jOTzS.js → index-CpovUAO-.js} +1 -1
  107. package/dist/{index-BdS7Ix8W.js → index-CqbPiOid.js} +1 -1
  108. package/dist/{index-B3UpsZ2x.js → index-CrjD9cAD.js} +1 -1
  109. package/dist/index-DEYs15GP.js +66 -0
  110. package/dist/index-DdFoGvON.js +146 -0
  111. package/dist/index-Q3N6lgwg.js +225 -0
  112. package/dist/index.d.ts +3 -3
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/primitives/button.d.ts +1 -1
  115. package/dist/primitives/button.js +4 -4
  116. package/dist/primitives/input.d.ts.map +1 -1
  117. package/dist/primitives/input.js +8 -5
  118. package/dist/primitives/select.d.ts +12 -13
  119. package/dist/primitives/select.d.ts.map +1 -1
  120. package/dist/primitives/select.js +59 -88
  121. package/dist/primitives/slot.d.ts +5 -5
  122. package/dist/primitives/slot.d.ts.map +1 -1
  123. package/dist/primitives/slot.js +24 -33
  124. package/dist/primitives/textarea.d.ts.map +1 -1
  125. package/dist/primitives/textarea.js +4 -3
  126. package/dist/{proxy-Cukf-VVj.js → proxy-CgaCj1WQ.js} +7 -3
  127. package/dist/styles/base-colors.css +30 -30
  128. package/dist/styles/horizon/base-colors.css +30 -30
  129. package/dist/styles/horizon/colors.css +43 -13
  130. package/dist/styles/horizon/utilities.css +26 -3
  131. package/dist/styles/main.css +1 -1
  132. package/dist/styles/spectral.css +2 -2
  133. package/dist/styles/theme.css +99 -46
  134. package/dist/{use-animation-zNd5Nq85.js → use-animation-CR-SdV2l.js} +1 -1
  135. package/dist/utils/formFieldUtils.d.ts +2 -2
  136. package/dist/utils/formFieldUtils.d.ts.map +1 -1
  137. package/dist/utils/formFieldUtils.js +14 -11
  138. package/dist/utils/sharedUtils.d.ts +3 -3
  139. package/dist/utils/sharedUtils.d.ts.map +1 -1
  140. package/dist/utils/sharedUtils.js +1 -4
  141. package/dist/utils/twUtils.d.ts +1 -1
  142. package/dist/utils/twUtils.d.ts.map +1 -1
  143. package/dist/utils/twUtils.js +1 -4
  144. package/package.json +6 -1
  145. package/dist/Icons/LineToolIcon2.d.ts +0 -5
  146. package/dist/Icons/LineToolIcon2.js +0 -49
  147. package/dist/createLucideIcon-D4r5Phnh.js +0 -70
  148. package/dist/index-CeP1E2kK.js +0 -209
  149. package/dist/index-Dy-Hzr7y.js +0 -13
@@ -3,23 +3,23 @@ import { jsx as u } from "react/jsx-runtime";
3
3
  import { MultiSelectBase as c } from "./MultiSelect/MultiSelectBase.js";
4
4
  import "react";
5
5
  const n = ({
6
- ref: l,
7
- emptyText: t = "No matches found.",
8
- loading: s = !1,
9
- onValueChange: d,
10
- options: i,
6
+ emptyText: l = "No matches found.",
7
+ loading: t = !1,
8
+ onValueChange: s,
9
+ options: d,
10
+ ref: i,
11
11
  state: o,
12
12
  value: b = [],
13
13
  ...a
14
14
  }) => {
15
- const m = i.map((e) => ({
15
+ const m = d.map((e) => ({
16
16
  disabled: e.disabled ?? !1,
17
17
  group: e.group,
18
18
  label: e.label,
19
19
  value: e.value
20
- })), r = s ? "loading" : o;
21
- return /* @__PURE__ */ u(c, { disabled: a.disabled, "data-disabled": a.disabled, emptyMessage: t, onChange: d ?? (() => {
22
- }), options: m, ref: l, state: r, value: b, ...a });
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 });
23
23
  };
24
24
  n.displayName = "MultiSelect";
25
25
  export {
package/dist/Popover.js CHANGED
@@ -1,248 +1,33 @@
1
- "use client";
2
1
  import "./styles/main.css";
3
- import { jsx as s } from "react/jsx-runtime";
4
- import * as p from "react";
5
- import { e as L, c as z, u as x, P as O, b as P, a as G } from "./index-OnYbwQjk.js";
6
- import { P as H, D as K } from "./index-u1k2AYWy.js";
7
- import { h as j, R as U, u as V, F as W } from "./Combination-CK_g12Qb.js";
8
- import { u as Z } from "./index-Dy-Hzr7y.js";
9
- import { c as _, R as q, A as b, C as B, a as J } from "./index-B3FZpM60.js";
10
- import { P as w } from "./index-D6HcSXrq.js";
11
- import { cn as Q } from "./utils/twUtils.js";
12
- var C = "Popover", [E] = z(C, [
13
- _
14
- ]), g = _(), [X, l] = E(C), F = (e) => {
15
- const {
16
- __scopePopover: n,
17
- children: r,
18
- open: a,
19
- defaultOpen: o,
20
- onOpenChange: t,
21
- modal: c = !1
22
- } = e, i = g(n), f = p.useRef(null), [v, h] = p.useState(!1), [m, u] = L({
23
- prop: a,
24
- defaultProp: o ?? !1,
25
- onChange: t,
26
- caller: C
27
- });
28
- return /* @__PURE__ */ s(q, { ...i, children: /* @__PURE__ */ s(
29
- X,
30
- {
31
- scope: n,
32
- contentId: Z(),
33
- triggerRef: f,
34
- open: m,
35
- onOpenChange: u,
36
- onOpenToggle: p.useCallback(() => u((R) => !R), [u]),
37
- hasCustomAnchor: v,
38
- onCustomAnchorAdd: p.useCallback(() => h(!0), []),
39
- onCustomAnchorRemove: p.useCallback(() => h(!1), []),
40
- modal: c,
41
- children: r
42
- }
43
- ) });
44
- };
45
- F.displayName = C;
46
- var N = "PopoverAnchor", y = p.forwardRef(
47
- (e, n) => {
48
- const { __scopePopover: r, ...a } = e, o = l(N, r), t = g(r), { onCustomAnchorAdd: c, onCustomAnchorRemove: i } = o;
49
- return p.useEffect(() => (c(), () => i()), [c, i]), /* @__PURE__ */ s(b, { ...t, ...a, ref: n });
50
- }
51
- );
52
- y.displayName = N;
53
- var S = "PopoverTrigger", D = p.forwardRef(
54
- (e, n) => {
55
- const { __scopePopover: r, ...a } = e, o = l(S, r), t = g(r), c = x(n, o.triggerRef), i = /* @__PURE__ */ s(
56
- O.button,
57
- {
58
- type: "button",
59
- "aria-haspopup": "dialog",
60
- "aria-expanded": o.open,
61
- "aria-controls": o.contentId,
62
- "data-state": $(o.open),
63
- ...a,
64
- ref: c,
65
- onClick: P(e.onClick, o.onOpenToggle)
66
- }
67
- );
68
- return o.hasCustomAnchor ? i : /* @__PURE__ */ s(b, { asChild: !0, ...t, children: i });
69
- }
70
- );
71
- D.displayName = S;
72
- var A = "PopoverPortal", [Y, ee] = E(A, {
73
- forceMount: void 0
74
- }), M = (e) => {
75
- const { __scopePopover: n, forceMount: r, children: a, container: o } = e, t = l(A, n);
76
- return /* @__PURE__ */ s(Y, { scope: n, forceMount: r, children: /* @__PURE__ */ s(w, { present: r || t.open, children: /* @__PURE__ */ s(H, { asChild: !0, container: o, children: a }) }) });
77
- };
78
- M.displayName = A;
79
- var d = "PopoverContent", T = p.forwardRef(
80
- (e, n) => {
81
- const r = ee(d, e.__scopePopover), { forceMount: a = r.forceMount, ...o } = e, t = l(d, e.__scopePopover);
82
- return /* @__PURE__ */ s(w, { present: a || t.open, children: t.modal ? /* @__PURE__ */ s(te, { ...o, ref: n }) : /* @__PURE__ */ s(re, { ...o, ref: n }) });
83
- }
84
- );
85
- T.displayName = d;
86
- var oe = G("PopoverContent.RemoveScroll"), te = p.forwardRef(
87
- (e, n) => {
88
- const r = l(d, e.__scopePopover), a = p.useRef(null), o = x(n, a), t = p.useRef(!1);
89
- return p.useEffect(() => {
90
- const c = a.current;
91
- if (c) return j(c);
92
- }, []), /* @__PURE__ */ s(U, { as: oe, allowPinchZoom: !0, children: /* @__PURE__ */ s(
93
- k,
94
- {
95
- ...e,
96
- ref: o,
97
- trapFocus: r.open,
98
- disableOutsidePointerEvents: !0,
99
- onCloseAutoFocus: P(e.onCloseAutoFocus, (c) => {
100
- c.preventDefault(), t.current || r.triggerRef.current?.focus();
101
- }),
102
- onPointerDownOutside: P(
103
- e.onPointerDownOutside,
104
- (c) => {
105
- const i = c.detail.originalEvent, f = i.button === 0 && i.ctrlKey === !0, v = i.button === 2 || f;
106
- t.current = v;
107
- },
108
- { checkForDefaultPrevented: !1 }
109
- ),
110
- onFocusOutside: P(
111
- e.onFocusOutside,
112
- (c) => c.preventDefault(),
113
- { checkForDefaultPrevented: !1 }
114
- )
115
- }
116
- ) });
117
- }
118
- ), re = p.forwardRef(
119
- (e, n) => {
120
- const r = l(d, e.__scopePopover), a = p.useRef(!1), o = p.useRef(!1);
121
- return /* @__PURE__ */ s(
122
- k,
123
- {
124
- ...e,
125
- ref: n,
126
- trapFocus: !1,
127
- disableOutsidePointerEvents: !1,
128
- onCloseAutoFocus: (t) => {
129
- e.onCloseAutoFocus?.(t), t.defaultPrevented || (a.current || r.triggerRef.current?.focus(), t.preventDefault()), a.current = !1, o.current = !1;
130
- },
131
- onInteractOutside: (t) => {
132
- e.onInteractOutside?.(t), t.defaultPrevented || (a.current = !0, t.detail.originalEvent.type === "pointerdown" && (o.current = !0));
133
- const c = t.target;
134
- r.triggerRef.current?.contains(c) && t.preventDefault(), t.detail.originalEvent.type === "focusin" && o.current && t.preventDefault();
135
- }
136
- }
137
- );
138
- }
139
- ), k = p.forwardRef(
140
- (e, n) => {
141
- const {
142
- __scopePopover: r,
143
- trapFocus: a,
144
- onOpenAutoFocus: o,
145
- onCloseAutoFocus: t,
146
- disableOutsidePointerEvents: c,
147
- onEscapeKeyDown: i,
148
- onPointerDownOutside: f,
149
- onFocusOutside: v,
150
- onInteractOutside: h,
151
- ...m
152
- } = e, u = l(d, r), R = g(r);
153
- return V(), /* @__PURE__ */ s(
154
- W,
155
- {
156
- asChild: !0,
157
- loop: !0,
158
- trapped: a,
159
- onMountAutoFocus: o,
160
- onUnmountAutoFocus: t,
161
- children: /* @__PURE__ */ s(
162
- K,
163
- {
164
- asChild: !0,
165
- disableOutsidePointerEvents: c,
166
- onInteractOutside: h,
167
- onEscapeKeyDown: i,
168
- onPointerDownOutside: f,
169
- onFocusOutside: v,
170
- onDismiss: () => u.onOpenChange(!1),
171
- children: /* @__PURE__ */ s(
172
- B,
173
- {
174
- "data-state": $(u.open),
175
- role: "dialog",
176
- id: u.contentId,
177
- ...R,
178
- ...m,
179
- ref: n,
180
- style: {
181
- ...m.style,
182
- "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
183
- "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
184
- "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
185
- "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
186
- "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
187
- }
188
- }
189
- )
190
- }
191
- )
192
- }
193
- );
194
- }
195
- ), I = "PopoverClose", ne = p.forwardRef(
196
- (e, n) => {
197
- const { __scopePopover: r, ...a } = e, o = l(I, r);
198
- return /* @__PURE__ */ s(
199
- O.button,
200
- {
201
- type: "button",
202
- ...a,
203
- ref: n,
204
- onClick: P(e.onClick, () => o.onOpenChange(!1))
205
- }
206
- );
207
- }
208
- );
209
- ne.displayName = I;
210
- var ae = "PopoverArrow", se = p.forwardRef(
211
- (e, n) => {
212
- const { __scopePopover: r, ...a } = e, o = g(r);
213
- return /* @__PURE__ */ s(J, { ...o, ...a, ref: n });
214
- }
215
- );
216
- se.displayName = ae;
217
- function $(e) {
218
- return e ? "open" : "closed";
219
- }
220
- var ce = F, pe = y, ie = D, le = M, ue = T;
221
- const Re = ({ ...e }) => /* @__PURE__ */ s(ce, { "data-slot": "popover", "data-testid": "spectral-popover", ...e }), Ae = ({ ...e }) => /* @__PURE__ */ s(ie, { "data-slot": "popover-trigger", "data-testid": "spectral-popover-trigger", ...e }), xe = ({ align: e = "center", className: n, side: r = "bottom", sideOffset: a = 4, width: o = "w-fit", ...t }) => /* @__PURE__ */ s(le, { children: /* @__PURE__ */ s(
222
- ue,
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { R as s, P as p, C as d, T as m, A as f } from "./index-Q3N6lgwg.js";
4
+ import { cn as l } from "./utils/twUtils.js";
5
+ import "react";
6
+ const u = ({ ...o }) => /* @__PURE__ */ t(s, { "data-slot": "popover", "data-testid": "spectral-popover", ...o }), x = ({ ...o }) => /* @__PURE__ */ t(m, { "data-slot": "popover-trigger", "data-testid": "spectral-popover-trigger", ...o }), b = ({ align: o = "center", className: a, side: r = "bottom", sideOffset: n = 4, width: e = "w-fit", ...i }) => /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t(
7
+ d,
223
8
  {
224
- align: e,
9
+ align: o,
225
10
  "data-slot": "popover-content",
226
11
  "data-testid": "spectral-popover-content",
227
12
  side: r,
228
- sideOffset: a,
229
- className: Q(
230
- "bg-popover-bg text-popover-text data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
231
- "data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2",
232
- "data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 h-fit",
233
- "max-h-[var(--radix-popover-content-max-height)] origin-[--radix-popover-content-transform-origin] rounded-lg border-none p-4",
234
- "w-[var(--popover-width)] shadow-md outline-none",
235
- n
13
+ sideOffset: n,
14
+ className: l(
15
+ "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",
16
+ "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",
17
+ "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",
18
+ "max-h-(--radix-popover-content-max-height) origin-[--radix-popover-content-transform-origin] rounded-lg border-none p-4",
19
+ "w-(--popover-width) overflow-x-hidden overflow-y-auto shadow-md outline-none",
20
+ a
236
21
  ),
237
22
  style: {
238
- "--popover-width": typeof o == "number" ? `${o}px` : o === "w-fit" ? "320px" : o
23
+ "--popover-width": typeof e == "number" ? `${e}px` : e === "w-fit" ? "320px" : e
239
24
  },
240
- ...t
25
+ ...i
241
26
  }
242
- ) }), Oe = ({ ...e }) => /* @__PURE__ */ s(pe, { "data-slot": "popover-anchor", ...e });
27
+ ) }), P = ({ ...o }) => /* @__PURE__ */ t(f, { "data-slot": "popover-anchor", ...o });
243
28
  export {
244
- Re as Popover,
245
- Oe as PopoverAnchor,
246
- xe as PopoverContent,
247
- Ae as PopoverTrigger
29
+ u as Popover,
30
+ P as PopoverAnchor,
31
+ b as PopoverContent,
32
+ x as PopoverTrigger
248
33
  };
@@ -1,22 +1,22 @@
1
1
  import { AsChildProp } from '../primitives/slot';
2
2
  import { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
3
- export type RadioButtonGroupProps = {
4
- value?: string;
5
- onValueChange?: (value: string) => void;
3
+ export interface RadioButtonGroupProps {
4
+ asChild?: boolean;
6
5
  children: ReactNode;
7
6
  className?: string;
8
- isKeptActive?: boolean;
9
7
  expanded?: boolean;
10
- asChild?: boolean;
11
- };
12
- export type RadioButtonGroupItemProps = AsChildProp & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onSelect' | 'type'> & {
13
- value: string;
8
+ isKeptActive?: boolean;
9
+ onValueChange?: (value: string) => void;
10
+ value?: string;
11
+ }
12
+ export interface RadioButtonGroupItemProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onSelect' | 'type'> {
14
13
  children: ReactNode;
15
14
  onSelect?: (value: string) => void;
16
- };
17
- export declare const RadioButtonGroupBase: ({ value, onValueChange, children, className, isKeptActive, expanded }: RadioButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
15
+ value: string;
16
+ }
17
+ export declare const RadioButtonGroupBase: ({ children, className, expanded, isKeptActive, onValueChange, value }: RadioButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export declare const RadioButtonGroupItem: {
19
- ({ ref, value, children, className, disabled, asChild, onSelect, onClick, ...rest }: RadioButtonGroupItemProps & {
19
+ ({ asChild, children, className, disabled, onClick, onSelect, ref, value, ...rest }: RadioButtonGroupItemProps & {
20
20
  ref?: Ref<HTMLButtonElement>;
21
21
  }): import("react/jsx-runtime").JSX.Element;
22
22
  displayName: string;
@@ -1,33 +1,27 @@
1
1
  "use client";
2
2
  import "../styles/main.css";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
- import { Slot as w } from "../primitives/slot.js";
4
+ import { Slot as B } from "../primitives/slot.js";
5
5
  import { cn as b } from "../utils/twUtils.js";
6
- import { createContext as B, useContext as y } from "react";
7
- const p = B(null), I = ({ value: e, onValueChange: t, children: o, className: a, isKeptActive: r = !1, expanded: i = !1 }) => /* @__PURE__ */ n(p.Provider, { value: { value: e, onValueChange: t, isKeptActive: r, expanded: i }, children: /* @__PURE__ */ n("div", { role: "radiogroup", "data-testid": "spectral-radio-button-group", "data-expanded": i, 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", a), children: o }) }), C = ({
8
- ref: e,
9
- value: t,
10
- children: o,
11
- className: a,
12
- disabled: r = !1,
13
- asChild: i = !1,
14
- onSelect: s,
15
- onClick: d,
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
16
  ...v
17
17
  }) => {
18
- const l = y(p);
18
+ const l = G(p);
19
19
  if (!l)
20
20
  throw new Error("RadioButtonGroupItem must be used within a RadioButtonGroup");
21
- const { value: m, onValueChange: u, isKeptActive: h, expanded: x } = l, c = m === t, g = {
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 = {
22
24
  ...v,
23
- role: "radio",
24
- "aria-checked": c,
25
- "data-state": c ? "on" : "off",
26
- "data-testid": "spectral-radio-button-group-item",
27
- disabled: r,
28
- onClick: (f) => {
29
- d && d(f), !f.defaultPrevented && (r || (u && u(t), s && s(t)));
30
- },
31
25
  className: b(
32
26
  `bg-toggle-bg inline-flex items-center justify-center gap-2 border text-sm font-medium disabled:pointer-events-none disabled:opacity-50
33
27
  disabled:cursor-not-allowed hover:cursor-pointer text-toggle-text hover:bg-toggle-bg--hover hover:text-toggle-text--hover transition-[colors]
@@ -35,15 +29,21 @@ const p = B(null), I = ({ value: e, onValueChange: t, children: o, className: a,
35
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
36
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
37
31
  active:border-toggle-border--active`,
38
- x && "w-full",
39
- h && "data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active data-[state=on]:border-toggle-border--active",
40
- a
41
- )
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
42
  };
43
- return i ? /* @__PURE__ */ n(w, { ref: e, ...g, children: o }) : /* @__PURE__ */ n("button", { ref: e, ...g, type: "button", children: o });
43
+ return a ? /* @__PURE__ */ n(B, { ref: d, ...c, children: t }) : /* @__PURE__ */ n("button", { ref: d, ...c, type: "button", children: t });
44
44
  };
45
- C.displayName = "RadioButtonGroupItem";
45
+ R.displayName = "RadioButtonGroupItem";
46
46
  export {
47
47
  I as RadioButtonGroupBase,
48
- C as RadioButtonGroupItem
48
+ R as RadioButtonGroupItem
49
49
  };
@@ -4,7 +4,7 @@ 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;
6
6
  export declare const RadioButtonGroupItem: {
7
- ({ ref, value, children, className, disabled, asChild, onSelect, onClick, ...rest }: RadioButtonGroupItemPropsBase & {
7
+ ({ asChild, children, className, disabled, onClick, onSelect, ref, value, ...rest }: RadioButtonGroupItemPropsBase & {
8
8
  ref?: import('react').Ref<HTMLButtonElement>;
9
9
  }): import("react/jsx-runtime").JSX.Element;
10
10
  displayName: string;
@@ -1,39 +1,39 @@
1
1
  import { Label } from '../Label/Label';
2
- import { ComponentPropsWithoutRef, ComponentRef, ReactElement, ReactNode, Ref } from 'react';
2
+ import { ComponentProps, ComponentRef, ReactElement, ReactNode, Ref } from 'react';
3
3
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
4
- type RadioGroupVariant = 'default' | 'tiles' | 'unstyled';
5
- export type RadioGroupProps = Omit<ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>, 'onChange' | 'disabled'> & {
6
- onValueChange: (selected: string) => void;
7
- selected?: string;
8
- name: string;
9
- required?: boolean;
10
- orientation?: 'horizontal' | 'vertical';
11
- variant?: RadioGroupVariant;
4
+ type RadioGroupVariant = 'default' | 'unstyled';
5
+ export interface RadioGroupProps extends Omit<ComponentProps<typeof RadioGroupPrimitive.Root>, 'onChange' | 'disabled'> {
12
6
  className?: string;
13
7
  disabled?: boolean | string[];
14
8
  itemClassName?: string;
15
- };
16
- export interface RadioGroupItemProps extends ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
9
+ name: string;
10
+ onValueChange: (selected: string) => void;
11
+ orientation?: 'horizontal' | 'vertical';
12
+ required?: boolean;
13
+ selected?: string;
14
+ variant?: RadioGroupVariant;
15
+ }
16
+ export interface RadioGroupItemProps extends ComponentProps<typeof RadioGroupPrimitive.Item> {
17
17
  className?: string;
18
18
  children?: ReactNode;
19
+ description?: string | ReactNode;
19
20
  id?: string;
20
21
  value: string;
21
- description?: string | ReactNode;
22
22
  }
23
23
  declare const RadioGroup: {
24
- ({ ref, className, itemClassName, onValueChange, orientation, disabled, selected, variant, ...props }: RadioGroupProps & {
24
+ ({ className, disabled, itemClassName, onValueChange, orientation, ref, selected, variant, ...props }: RadioGroupProps & {
25
25
  ref?: Ref<ComponentRef<typeof RadioGroupPrimitive.Root>>;
26
26
  }): ReactElement;
27
27
  displayName: string;
28
28
  };
29
29
  declare const RadioGroupItem: {
30
- ({ ref, className, children, value, description, disabled, ...props }: RadioGroupItemProps & {
30
+ ({ children, className, disabled, ref, value, ...props }: RadioGroupItemProps & {
31
31
  ref?: Ref<ComponentRef<typeof RadioGroupPrimitive.Item>>;
32
32
  }): ReactElement;
33
33
  displayName: string;
34
34
  };
35
35
  declare const RadioGroupLabel: {
36
- ({ ref, className, ...props }: ComponentPropsWithoutRef<typeof Label> & {
36
+ ({ ref, className, ...props }: ComponentProps<typeof Label> & {
37
37
  ref?: Ref<ComponentRef<typeof Label>>;
38
38
  }): ReactElement;
39
39
  displayName: string;