@spear-ai/spectral 1.9.1 → 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 (236) 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 -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/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.js +34 -28
  201. package/dist/primitives/select.js +70 -138
  202. package/dist/primitives/slot.js +32 -31
  203. package/dist/primitives/textarea.js +10 -16
  204. package/dist/proxy-Dn10Pl_g.js +4920 -0
  205. package/dist/styles/main.css +2 -1
  206. package/dist/styles/spectral.css +1 -1
  207. package/dist/twUtils-VNWgstKL.js +1673 -0
  208. package/dist/use-animation-CBUDycyW.js +57 -0
  209. package/dist/utils/constants.js +4 -4
  210. package/dist/utils/formFieldUtils.js +136 -148
  211. package/dist/utils/sharedUtils.js +26 -7
  212. package/dist/utils/twUtils.js +2 -2919
  213. package/package.json +24 -28
  214. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  215. package/dist/clsx-OuTLNxxd.js +0 -16
  216. package/dist/index-0ioNhtNM.js +0 -10
  217. package/dist/index-6oYKCvIn.js +0 -677
  218. package/dist/index-BFOf48AQ.js +0 -69
  219. package/dist/index-BZPx6jYI.js +0 -8
  220. package/dist/index-BlHU_t18.js +0 -142
  221. package/dist/index-Bm1RbF6w.js +0 -1037
  222. package/dist/index-Bv2OIg5P.js +0 -225
  223. package/dist/index-CKEI0pDv.js +0 -56
  224. package/dist/index-CM_hWgfC.js +0 -32
  225. package/dist/index-C_YVr64u.js +0 -1538
  226. package/dist/index-Cl8VeY0o.js +0 -149
  227. package/dist/index-CwSyIPrv.js +0 -13
  228. package/dist/index-D29mdTf5.js +0 -34
  229. package/dist/index-DEYs15GP.js +0 -66
  230. package/dist/index-Dc0No4pV.js +0 -233
  231. package/dist/index-T6XEa11q.js +0 -822
  232. package/dist/index-pBCLb6Gr.js +0 -240
  233. package/dist/index-psiVrsnE.js +0 -27
  234. package/dist/index-rKs9bXHr.js +0 -6
  235. package/dist/proxy-CO_-Vget.js +0 -4975
  236. package/dist/use-animation-DhEPRwZ3.js +0 -62
@@ -1,99 +1,95 @@
1
1
  "use client";
2
2
  import "../styles/main.css";
3
- import { jsx as a, jsxs as L, Fragment as N } from "react/jsx-runtime";
4
- import { useControllableState as q } from "../hooks/useControllableState.js";
5
- import { Slot as v } from "../primitives/slot.js";
6
- import { createContext as K, useRef as M, useId as O, useEffect as V, useCallback as i, useContext as $ } from "react";
7
- const w = K(null), z = ({
8
- asChild: u,
9
- checked: d,
10
- children: h,
11
- className: l,
12
- defaultChecked: t = !1,
13
- disabled: n,
14
- form: b,
15
- id: C,
16
- name: y,
17
- onCheckedChange: x,
18
- onClick: f,
19
- onKeyDown: p,
20
- ref: E,
21
- required: S,
22
- value: g = "on",
23
- ...I
24
- }) => {
25
- const m = M(null), P = O(), R = C ?? `swt-${P}`, [r, c] = q({
26
- value: d,
27
- defaultValue: t,
28
- onChange: x
29
- });
30
- V(() => {
31
- const e = m.current?.form ?? null;
32
- if (!e) return;
33
- const o = () => c(t);
34
- return e.addEventListener("reset", o), () => e.removeEventListener("reset", o);
35
- }, [t, c]);
36
- const k = i((e) => {
37
- const o = m.current;
38
- if (!o) return;
39
- o.checked = e;
40
- const F = new Event("change", { bubbles: !0 });
41
- o.dispatchEvent(F);
42
- }, []), s = i(() => {
43
- if (n) return;
44
- const e = !r;
45
- c(e), queueMicrotask(() => k(e));
46
- }, [n, k, r, c]), T = i(
47
- (e) => {
48
- f?.(e), !e.defaultPrevented && s();
49
- },
50
- [f, s]
51
- ), j = i(
52
- (e) => {
53
- p?.(e), !e.defaultPrevented && (e.key === " " || e.key === "Enter") && (e.preventDefault(), s());
54
- },
55
- [p, s]
56
- ), D = u ? v : "button";
57
- return /* @__PURE__ */ a(w.Provider, { value: { checked: r, disabled: n }, children: /* @__PURE__ */ L(N, { children: [
58
- /* @__PURE__ */ a(D, { "aria-checked": r, className: l, "data-disabled": n ?? void 0, "data-state": r ? "checked" : "unchecked", disabled: n, id: R, onClick: T, onKeyDown: j, ref: E, role: "switch", type: "button", ...I, children: h }),
59
- /* @__PURE__ */ a(
60
- "input",
61
- {
62
- "aria-hidden": "true",
63
- checked: r,
64
- disabled: n,
65
- form: b,
66
- name: y,
67
- readOnly: !0,
68
- ref: m,
69
- required: S,
70
- tabIndex: -1,
71
- type: "checkbox",
72
- value: g,
73
- style: {
74
- height: 0,
75
- opacity: 0,
76
- pointerEvents: "none",
77
- position: "absolute",
78
- width: 0
79
- }
80
- }
81
- )
82
- ] }) });
3
+ import { Slot as e } from "../primitives/slot.js";
4
+ import { useControllableState as t } from "../hooks/useControllableState.js";
5
+ import { createContext as n, useCallback as r, useContext as i, useEffect as a, useId as o, useRef as s } from "react";
6
+ import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
7
+ //#region src/components/Switch/SwitchBase.tsx
8
+ var d = n(null), f = ({ asChild: n, checked: i, children: f, className: p, defaultChecked: m = !1, disabled: h, form: g, id: _, name: v, onCheckedChange: y, onClick: b, onKeyDown: x, ref: S, required: C, value: w = "on", ...T }) => {
9
+ let E = s(null), D = o(), O = _ ?? `swt-${D}`, [k, A] = t({
10
+ value: i,
11
+ defaultValue: m,
12
+ onChange: y
13
+ });
14
+ a(() => {
15
+ let e = E.current?.form ?? null;
16
+ if (!e) return;
17
+ let t = () => A(m);
18
+ return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
19
+ }, [m, A]);
20
+ let j = r((e) => {
21
+ let t = E.current;
22
+ if (!t) return;
23
+ t.checked = e;
24
+ let n = new Event("change", { bubbles: !0 });
25
+ t.dispatchEvent(n);
26
+ }, []), M = r(() => {
27
+ if (h) return;
28
+ let e = !k;
29
+ A(e), queueMicrotask(() => j(e));
30
+ }, [
31
+ h,
32
+ j,
33
+ k,
34
+ A
35
+ ]), N = r((e) => {
36
+ b?.(e), !e.defaultPrevented && M();
37
+ }, [b, M]), P = r((e) => {
38
+ x?.(e), !e.defaultPrevented && (e.key === " " || e.key === "Enter") && (e.preventDefault(), M());
39
+ }, [x, M]), F = n ? e : "button";
40
+ return /* @__PURE__ */ l(d.Provider, {
41
+ value: {
42
+ checked: k,
43
+ disabled: h
44
+ },
45
+ children: /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ l(F, {
46
+ "aria-checked": k,
47
+ className: p,
48
+ "data-disabled": h ?? void 0,
49
+ "data-state": k ? "checked" : "unchecked",
50
+ disabled: h,
51
+ id: O,
52
+ onClick: N,
53
+ onKeyDown: P,
54
+ ref: S,
55
+ role: "switch",
56
+ type: "button",
57
+ ...T,
58
+ children: f
59
+ }), /* @__PURE__ */ l("input", {
60
+ "aria-hidden": "true",
61
+ checked: k,
62
+ disabled: h,
63
+ form: g,
64
+ name: v,
65
+ readOnly: !0,
66
+ ref: E,
67
+ required: C,
68
+ tabIndex: -1,
69
+ type: "checkbox",
70
+ value: w,
71
+ style: {
72
+ height: 0,
73
+ opacity: 0,
74
+ pointerEvents: "none",
75
+ position: "absolute",
76
+ width: 0
77
+ }
78
+ })] })
79
+ });
83
80
  };
84
- z.displayName = "Switch";
85
- const A = ({
86
- asChild: u,
87
- className: d,
88
- ref: h,
89
- ...l
90
- }) => {
91
- const t = $(w);
92
- if (!t) throw new Error("SwitchThumb must be used within Switch");
93
- return /* @__PURE__ */ a(u ? v : "span", { className: d, "data-disabled": t.disabled ?? void 0, "data-state": t.checked ? "checked" : "unchecked", ref: h, ...l });
94
- };
95
- A.displayName = "SwitchThumb";
96
- export {
97
- z as Switch,
98
- A as SwitchThumb
81
+ f.displayName = "Switch";
82
+ var p = ({ asChild: t, className: n, ref: r, ...a }) => {
83
+ let o = i(d);
84
+ if (!o) throw Error("SwitchThumb must be used within Switch");
85
+ return /* @__PURE__ */ l(t ? e : "span", {
86
+ className: n,
87
+ "data-disabled": o.disabled ?? void 0,
88
+ "data-state": o.checked ? "checked" : "unchecked",
89
+ ref: r,
90
+ ...a
91
+ });
99
92
  };
93
+ p.displayName = "SwitchThumb";
94
+ //#endregion
95
+ export { f as Switch, p as SwitchThumb };
@@ -0,0 +1,126 @@
1
+ import "./styles/main.css";
2
+ import { t as e } from "./twUtils-VNWgstKL.js";
3
+ import { Label as t } from "./Label.js";
4
+ import { Switch as n, SwitchThumb as r } from "./Switch/SwitchBase.js";
5
+ import { createElement as i, forwardRef as a } from "react";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
+ //#region node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/shared/src/utils.js
8
+ var c = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), l = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), u = (e) => {
9
+ let t = l(e);
10
+ return t.charAt(0).toUpperCase() + t.slice(1);
11
+ }, d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => {
12
+ for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
13
+ }, p = {
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ width: 24,
16
+ height: 24,
17
+ viewBox: "0 0 24 24",
18
+ fill: "none",
19
+ stroke: "currentColor",
20
+ strokeWidth: 2,
21
+ strokeLinecap: "round",
22
+ strokeLinejoin: "round"
23
+ }, m = a(({ color: e = "currentColor", size: t = 24, strokeWidth: n = 2, absoluteStrokeWidth: r, className: a = "", children: o, iconNode: s, ...c }, l) => i("svg", {
24
+ ref: l,
25
+ ...p,
26
+ width: t,
27
+ height: t,
28
+ stroke: e,
29
+ strokeWidth: r ? Number(n) * 24 / Number(t) : n,
30
+ className: d("lucide", a),
31
+ ...!o && !f(c) && { "aria-hidden": "true" },
32
+ ...c
33
+ }, [...s.map(([e, t]) => i(e, t)), ...Array.isArray(o) ? o : [o]])), h = (e, t) => {
34
+ let n = a(({ className: n, ...r }, a) => i(m, {
35
+ ref: a,
36
+ iconNode: t,
37
+ className: d(`lucide-${c(u(e))}`, `lucide-${e}`, n),
38
+ ...r
39
+ }));
40
+ return n.displayName = u(e), n;
41
+ }, g = h("check", [["path", {
42
+ d: "M20 6 9 17l-5-5",
43
+ key: "1gmf2c"
44
+ }]]), _ = h("x", [["path", {
45
+ d: "M18 6 6 18",
46
+ key: "1bl5f8"
47
+ }], ["path", {
48
+ d: "m6 6 12 12",
49
+ key: "d8bk6v"
50
+ }]]), v = "bg-switch-thumb--checked data-[state=checked]:bg-switch-thumb pointer-events-none block rounded-full ring-0 transition-transform motion-reduce:transition-none", y = ({ className: i, disabled: a, hideLabel: c = !1, id: l, labelPosition: u = "right", labelText: d, name: f, onChange: p, ref: m, required: h, value: y, variant: b, ...x }) => {
51
+ let S = b === "squared", C = b === "permanent-indicator";
52
+ return /* @__PURE__ */ s("div", {
53
+ className: "flex items-center",
54
+ "data-testid": "spectral-switch-container",
55
+ children: [
56
+ u === "left" && !c && /* @__PURE__ */ o(t, {
57
+ className: "mr-2",
58
+ "data-testid": "spectral-switch-label-left",
59
+ htmlFor: l,
60
+ children: d
61
+ }),
62
+ C ? /* @__PURE__ */ s("div", {
63
+ className: "h-7 text-sm font-medium relative inline-grid grid-cols-[1fr_1fr] items-center",
64
+ children: [
65
+ /* @__PURE__ */ o(n, {
66
+ "aria-required": h,
67
+ className: e("peer inset-0 w-14 focus-visible:ring-ring absolute inline-flex h-[inherit] items-center focus-visible:ring-offset-background data-[state=checked]:bg-switch-bg--checked data-[state=unchecked]:bg-switch-bg/50", "shadow-2xs cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none", "disabled:cursor-not-allowed disabled:opacity-50", i),
68
+ "data-testid": "spectral-switch",
69
+ disabled: a,
70
+ id: l,
71
+ name: f,
72
+ onCheckedChange: p,
73
+ ref: m,
74
+ required: h,
75
+ value: y,
76
+ ...x,
77
+ children: /* @__PURE__ */ o(r, { className: e(v, "size-6.5 shadow-xs relative z-10 duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] data-[state=checked]:translate-x-[26px] motion-reduce:duration-0 data-[state=checked]:rtl:-translate-x-[26px]") })
78
+ }),
79
+ /* @__PURE__ */ o("span", {
80
+ className: "ml-0.5 min-w-8 peer-data-[state=unchecked]:translate-x-6 peer-data-[state=unchecked]:rtl:-translate-x-6 motion-reduce:translate-x-0 pointer-events-none relative flex items-center justify-center text-center transition-transform duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] peer-data-[state=checked]:invisible motion-reduce:transition-none motion-reduce:duration-0",
81
+ children: /* @__PURE__ */ o(_, {
82
+ "aria-hidden": "true",
83
+ className: "size-4"
84
+ })
85
+ }),
86
+ /* @__PURE__ */ o("span", {
87
+ className: "min-w-8 motion-reduce:translate-x-0 pointer-events-none relative flex items-center justify-center text-center transition-transform duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] peer-data-[state=checked]:-translate-x-full peer-data-[state=checked]:text-background peer-data-[state=unchecked]:invisible motion-reduce:transition-none motion-reduce:duration-0 peer-data-[state=checked]:rtl:translate-x-full",
88
+ children: /* @__PURE__ */ o(g, {
89
+ "aria-hidden": "true",
90
+ className: "size-4"
91
+ })
92
+ })
93
+ ]
94
+ }) : /* @__PURE__ */ o(n, {
95
+ "aria-required": h,
96
+ className: e(S ? "peer h-6 w-10 rounded-sm focus-visible:ring-black inline-flex shrink-0 items-center border-2 border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-switch-bg--checked data-[state=unchecked]:bg-switch-bg [&_span]:rounded-[4px]" : "focus-visible:ring-ring peer h-6 w-10 shadow-2xs inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-switch-bg--checked data-[state=unchecked]:bg-switch-bg", i),
97
+ "data-testid": "spectral-switch",
98
+ disabled: a,
99
+ id: l,
100
+ name: f,
101
+ onCheckedChange: p,
102
+ ref: m,
103
+ required: h,
104
+ value: y,
105
+ ...x,
106
+ children: /* @__PURE__ */ o(r, { className: e(v, S ? "size-5 shadow-xs data-[state=checked]:translate-x-4 data-[state=checked]:rtl:-translate-x-4" : "h-5 w-5 shadow-lg data-[state=checked]:translate-x-4") })
107
+ }),
108
+ u === "right" && !c && /* @__PURE__ */ o(t, {
109
+ className: "ml-2",
110
+ "data-testid": "spectral-switch-label-right",
111
+ htmlFor: l,
112
+ id: `${l}-label`,
113
+ children: d
114
+ }),
115
+ c && /* @__PURE__ */ o(t, {
116
+ className: "sr-only",
117
+ "data-testid": "spectral-switch-label-hidden",
118
+ htmlFor: l,
119
+ children: d
120
+ })
121
+ ]
122
+ });
123
+ };
124
+ y.displayName = "Switch";
125
+ //#endregion
126
+ export { y as t };
package/dist/Switch.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { SwitchProps as SwitchBaseProps } from './SwitchBase';
2
1
  import { Ref } from 'react';
2
+ import { SwitchProps as SwitchBaseProps } from './SwitchBase';
3
3
  export type SwitchProps = Omit<SwitchBaseProps, 'onCheckedChange'> & {
4
4
  hideLabel?: boolean;
5
5
  id: string;
package/dist/Switch.js CHANGED
@@ -1,134 +1,2 @@
1
- "use client";
2
- import "./styles/main.css";
3
- import { jsxs as w, jsx as s } from "react/jsx-runtime";
4
- import { Switch as k, SwitchThumb as x } from "./Switch/SwitchBase.js";
5
- import { Label as m } from "./Label.js";
6
- import { cn as u } from "./utils/twUtils.js";
7
- import { forwardRef as N, createElement as b } from "react";
8
- const A = (t) => t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), _ = (t) => t.replace(
9
- /^([A-Z])|[\s-_]+(\w)/g,
10
- (e, r, a) => a ? a.toUpperCase() : r.toLowerCase()
11
- ), v = (t) => {
12
- const e = _(t);
13
- return e.charAt(0).toUpperCase() + e.slice(1);
14
- }, y = (...t) => t.filter((e, r, a) => !!e && e.trim() !== "" && a.indexOf(e) === r).join(" ").trim(), $ = (t) => {
15
- for (const e in t)
16
- if (e.startsWith("aria-") || e === "role" || e === "title")
17
- return !0;
18
- };
19
- var j = {
20
- xmlns: "http://www.w3.org/2000/svg",
21
- width: 24,
22
- height: 24,
23
- viewBox: "0 0 24 24",
24
- fill: "none",
25
- stroke: "currentColor",
26
- strokeWidth: 2,
27
- strokeLinecap: "round",
28
- strokeLinejoin: "round"
29
- };
30
- const S = N(
31
- ({
32
- color: t = "currentColor",
33
- size: e = 24,
34
- strokeWidth: r = 2,
35
- absoluteStrokeWidth: a,
36
- className: n = "",
37
- children: i,
38
- iconNode: d,
39
- ...o
40
- }, l) => b(
41
- "svg",
42
- {
43
- ref: l,
44
- ...j,
45
- width: e,
46
- height: e,
47
- stroke: t,
48
- strokeWidth: a ? Number(r) * 24 / Number(e) : r,
49
- className: y("lucide", n),
50
- ...!i && !$(o) && { "aria-hidden": "true" },
51
- ...o
52
- },
53
- [
54
- ...d.map(([c, h]) => b(c, h)),
55
- ...Array.isArray(i) ? i : [i]
56
- ]
57
- )
58
- );
59
- const z = (t, e) => {
60
- const r = N(
61
- ({ className: a, ...n }, i) => b(S, {
62
- ref: i,
63
- iconNode: e,
64
- className: y(
65
- `lucide-${A(v(t))}`,
66
- `lucide-${t}`,
67
- a
68
- ),
69
- ...n
70
- })
71
- );
72
- return r.displayName = v(t), r;
73
- };
74
- const I = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]], L = z("check", I);
75
- const B = [
76
- ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
77
- ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
78
- ], F = z("x", B), C = "bg-switch-thumb--checked data-[state=checked]:bg-switch-thumb pointer-events-none block rounded-full ring-0 transition-transform motion-reduce:transition-none", P = ({ className: t, disabled: e, hideLabel: r = !1, id: a, labelPosition: n = "right", labelText: i, name: d, onChange: o, ref: l, required: c, value: h, variant: f, ...p }) => {
79
- const g = f === "squared";
80
- return /* @__PURE__ */ w("div", { className: "flex items-center", "data-testid": "spectral-switch-container", children: [
81
- n === "left" && !r && /* @__PURE__ */ s(m, { className: "mr-2", "data-testid": "spectral-switch-label-left", htmlFor: a, children: i }),
82
- f === "permanent-indicator" ? /* @__PURE__ */ w("div", { className: "relative inline-grid h-7 grid-cols-[1fr_1fr] items-center text-sm font-medium", children: [
83
- /* @__PURE__ */ s(
84
- k,
85
- {
86
- "aria-required": c,
87
- className: u(
88
- "peer data-[state=checked]:bg-switch-bg--checked data-[state=unchecked]:bg-switch-bg/50 focus-visible:ring-ring focus-visible:ring-offset-background absolute inset-0 inline-flex h-[inherit] w-14 items-center",
89
- "cursor-pointer rounded-full border-2 border-transparent shadow-2xs transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
90
- "disabled:cursor-not-allowed disabled:opacity-50",
91
- t
92
- ),
93
- "data-testid": "spectral-switch",
94
- disabled: e,
95
- id: a,
96
- name: d,
97
- onCheckedChange: o,
98
- ref: l,
99
- required: c,
100
- value: h,
101
- ...p,
102
- children: /* @__PURE__ */ s(x, { className: u(C, "relative z-10 size-6.5 shadow-xs duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] data-[state=checked]:translate-x-[26px] motion-reduce:duration-0 data-[state=checked]:rtl:-translate-x-[26px]") })
103
- }
104
- ),
105
- /* @__PURE__ */ s("span", { className: "pointer-events-none relative ml-0.5 flex min-w-8 items-center justify-center text-center transition-transform duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] peer-data-[state=checked]:invisible peer-data-[state=unchecked]:translate-x-6 motion-reduce:translate-x-0 motion-reduce:transition-none motion-reduce:duration-0 peer-data-[state=unchecked]:rtl:-translate-x-6", children: /* @__PURE__ */ s(F, { "aria-hidden": "true", className: "size-4" }) }),
106
- /* @__PURE__ */ s("span", { className: "peer-data-[state=checked]:text-background pointer-events-none relative flex min-w-8 items-center justify-center text-center transition-transform duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] peer-data-[state=checked]:-translate-x-full peer-data-[state=unchecked]:invisible motion-reduce:translate-x-0 motion-reduce:transition-none motion-reduce:duration-0 peer-data-[state=checked]:rtl:translate-x-full", children: /* @__PURE__ */ s(L, { "aria-hidden": "true", className: "size-4" }) })
107
- ] }) : /* @__PURE__ */ s(
108
- k,
109
- {
110
- "aria-required": c,
111
- className: u(
112
- g ? "peer data-[state=checked]:bg-switch-bg--checked data-[state=unchecked]:bg-switch-bg inline-flex h-6 w-10 shrink-0 items-center rounded-sm border-2 border-transparent transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-black disabled:cursor-not-allowed disabled:opacity-50 [&_span]:rounded-[4px]" : "focus-visible:ring-ring focus-visible:ring-offset-background peer data-[state=checked]:bg-switch-bg--checked data-[state=unchecked]:bg-switch-bg inline-flex h-6 w-10 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-2xs transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
113
- t
114
- ),
115
- "data-testid": "spectral-switch",
116
- disabled: e,
117
- id: a,
118
- name: d,
119
- onCheckedChange: o,
120
- ref: l,
121
- required: c,
122
- value: h,
123
- ...p,
124
- children: /* @__PURE__ */ s(x, { className: u(C, g ? "size-5 shadow-xs data-[state=checked]:translate-x-4 data-[state=checked]:rtl:-translate-x-4" : "h-5 w-5 shadow-lg data-[state=checked]:translate-x-4") })
125
- }
126
- ),
127
- n === "right" && !r && /* @__PURE__ */ s(m, { className: "ml-2", "data-testid": "spectral-switch-label-right", htmlFor: a, id: `${a}-label`, children: i }),
128
- r && /* @__PURE__ */ s(m, { className: "sr-only", "data-testid": "spectral-switch-label-hidden", htmlFor: a, children: i })
129
- ] });
130
- };
131
- P.displayName = "Switch";
132
- export {
133
- P as Switch
134
- };
1
+ import { t as e } from "./Switch-CVzRJ-0n.js";
2
+ export { e as Switch };