@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
@@ -1,24 +1,24 @@
1
1
  "use client";
2
2
  import { useCallback as i } from "react";
3
- const T = (t, n, s) => {
4
- const a = t.target.value;
5
- a.length <= n && s?.(a);
6
- }, V = (t, n, s, a) => {
7
- const r = t.clipboardData.getData("text"), c = n || "", o = t.currentTarget, l = o.selectionStart || 0, u = o.selectionEnd || 0, e = c.substring(0, l), d = c.substring(u);
8
- if ((e + r + d).length > s) {
3
+ const T = (t, a, s) => {
4
+ const n = t.target.value;
5
+ n.length <= a && s?.(n);
6
+ }, V = (t, a, s, n) => {
7
+ const r = t.clipboardData.getData("text"), c = s || "", o = t.currentTarget, l = o.selectionStart || 0, u = o.selectionEnd || 0, e = c.substring(0, l), d = c.substring(u);
8
+ if ((e + r + d).length > a) {
9
9
  t.preventDefault();
10
- const g = u - l, h = s - c.length + g, p = r.substring(0, Math.max(0, h)), f = e + p + d;
11
- a?.(f), setTimeout(() => {
10
+ const g = u - l, h = a - c.length + g, p = r.substring(0, Math.max(0, h)), f = e + p + d;
11
+ n?.(f), setTimeout(() => {
12
12
  const b = l + p.length;
13
13
  o.setSelectionRange(b, b);
14
14
  }, 0);
15
15
  }
16
- }, P = ({ maxLength: t, value: n, onChange: s, onFocus: a, onBlur: r }) => {
16
+ }, P = ({ maxLength: t, value: a, onChange: s, onFocus: n, onBlur: r }) => {
17
17
  const c = i(
18
18
  (e) => {
19
- a?.(e);
19
+ n?.(e);
20
20
  },
21
- [a]
21
+ [n]
22
22
  ), o = i(
23
23
  (e) => {
24
24
  r?.(e);
@@ -31,9 +31,9 @@ const T = (t, n, s) => {
31
31
  [t, s]
32
32
  ), u = i(
33
33
  (e) => {
34
- V(e, n, t, s);
34
+ V(e, t, a, s);
35
35
  },
36
- [n, t, s]
36
+ [a, t, s]
37
37
  );
38
38
  return {
39
39
  handleFocus: c,
package/dist/Textarea.js CHANGED
@@ -35,7 +35,6 @@ import "./Icons/KeyboardIcon.js";
35
35
  import "./Icons/LabelIcon.js";
36
36
  import "./Icons/LassoIcon.js";
37
37
  import "./Icons/LineToolIcon.js";
38
- import "./Icons/LineToolIcon2.js";
39
38
  import "./Icons/LiveViewIcon.js";
40
39
  import { LoaderIcon as B } from "./Icons/LoaderIcon.js";
41
40
  import "./Icons/LocationIcon.js";
@@ -49,6 +48,7 @@ import "./Icons/PanelIconClose.js";
49
48
  import "./Icons/PanelIconOpen.js";
50
49
  import "./Icons/PlayIcon.js";
51
50
  import "./Icons/PlusIcon.js";
51
+ import "./Icons/PolygonIcon.js";
52
52
  import "./Icons/ResetIcon.js";
53
53
  import "./Icons/ReviewedIcon.js";
54
54
  import "./Icons/ScissorsIcon.js";
@@ -69,13 +69,13 @@ import "./Icons/ZoomAllIcon.js";
69
69
  import "./Icons/ZoomXIcon.js";
70
70
  import "./Icons/ZoomYIcon.js";
71
71
  import { Label as D } from "./Label.js";
72
- import { useFormFieldId as M, useFormFieldState as O, getAriaProps as _, getTextareaClasses as $, ErrorMessage as G, getErrorMessageId as V } from "./utils/formFieldUtils.js";
72
+ import { useFormFieldId as M, useFormFieldState as O, getAriaProps as _, getTextareaClasses as G, ErrorMessage as V, getErrorMessageId as H } from "./utils/formFieldUtils.js";
73
73
  import { cn as C } from "./utils/twUtils.js";
74
- import { useRef as H } from "react";
75
- const J = "absolute right-4 top-4", K = (t) => t || "off", Q = (t, i) => {
74
+ import { useRef as J } from "react";
75
+ const K = "absolute right-4 top-4", Q = (t) => t || "off", U = (t, i) => {
76
76
  const a = "absolute bottom-2 right-3 text-xs pointer-events-none z-10 tabular-nums", m = t >= i ? "text-danger-400" : "text-text-secondary";
77
77
  return C(a, m);
78
- }, U = ({
78
+ }, W = ({
79
79
  ref: t,
80
80
  autoComplete: i,
81
81
  className: a,
@@ -95,14 +95,14 @@ const J = "absolute right-4 top-4", K = (t) => t || "off", Q = (t, i) => {
95
95
  value: s = "",
96
96
  ...h
97
97
  }) => {
98
- const p = M(b, u), g = V(p), y = H(null), P = t || y, { handleFocus: T, handleBlur: A, handleChange: E, handlePaste: L } = z({
98
+ const p = M(b, u), g = H(p), y = J(null), P = t ?? y, { handleFocus: T, handleBlur: A, handleChange: E, handlePaste: L } = z({
99
99
  maxLength: e,
100
100
  value: s,
101
- onChange: F || (() => {
101
+ onChange: F ?? (() => {
102
102
  }),
103
103
  onFocus: S,
104
104
  onBlur: I
105
- }), { isDisabled: f, isLoading: R } = O(m, r), j = _(r, g, x, h["aria-describedby"]), l = s?.length || 0, k = $(r, a), w = () => ({
105
+ }), { isDisabled: f, isLoading: R } = O(m, r), j = _(r, g, x, h["aria-describedby"]), l = s?.length || 0, k = G(r, a), w = () => ({
106
106
  "--textarea-min-height": "6rem",
107
107
  "--textarea-max-height": "12rem",
108
108
  "--textarea-border-radius": "0.5rem"
@@ -114,7 +114,7 @@ const J = "absolute right-4 top-4", K = (t) => t || "off", Q = (t, i) => {
114
114
  "textarea",
115
115
  {
116
116
  "aria-multiline": "true",
117
- autoComplete: K(i),
117
+ autoComplete: Q(i),
118
118
  className: k,
119
119
  "data-state": r,
120
120
  "data-testid": "spectral-textarea",
@@ -135,17 +135,27 @@ const J = "absolute right-4 top-4", K = (t) => t || "off", Q = (t, i) => {
135
135
  ...h
136
136
  }
137
137
  ),
138
- R && /* @__PURE__ */ o("div", { className: J, "data-testid": "spectral-textarea-loading-icon", children: /* @__PURE__ */ o(B, { size: 24 }) }),
139
- /* @__PURE__ */ n("div", { "aria-label": `${l} of ${e} characters used`, "aria-live": "polite", className: Q(l, e), "data-testid": "spectral-textarea-counter", role: "status", children: [
140
- l,
141
- "/",
142
- e
143
- ] })
138
+ R && /* @__PURE__ */ o("div", { className: K, "data-testid": "spectral-textarea-loading-icon", children: /* @__PURE__ */ o(B, { size: 24 }) }),
139
+ /* @__PURE__ */ n(
140
+ "div",
141
+ {
142
+ "aria-label": l + " of " + e + " characters used",
143
+ "aria-live": "polite",
144
+ className: U(l, e),
145
+ "data-testid": "spectral-textarea-counter",
146
+ role: "status",
147
+ children: [
148
+ l,
149
+ "/",
150
+ e
151
+ ]
152
+ }
153
+ )
144
154
  ] }),
145
- r === "error" && c && /* @__PURE__ */ o(G, { dataTestId: "spectral-textarea-error-message", id: g, message: c })
155
+ r === "error" && c && /* @__PURE__ */ o(V, { dataTestId: "spectral-textarea-error-message", id: g, message: c })
146
156
  ] });
147
157
  };
148
- U.displayName = "Textarea";
158
+ W.displayName = "Textarea";
149
159
  export {
150
- U as Textarea
160
+ W as Textarea
151
161
  };
@@ -0,0 +1,43 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { ReactNode } from 'react';
3
+ import { ToasterProps as SonnerToasterProps } from 'sonner';
4
+ type ToastVariant = 'default' | 'success' | 'error' | 'info' | 'warning';
5
+ type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
6
+ export interface ToastProps extends VariantProps<typeof toastVariants> {
7
+ className?: string;
8
+ containerAriaLabel?: string;
9
+ dataTestId?: string;
10
+ message?: string | ReactNode;
11
+ duration?: number;
12
+ icon?: ReactNode;
13
+ id?: string | number;
14
+ onAutoClose?: () => void;
15
+ position?: ToastPosition;
16
+ variant?: ToastVariant;
17
+ }
18
+ export interface ToasterProps extends Omit<SonnerToasterProps, 'toastOptions'> {
19
+ gap?: number;
20
+ offset?: number | string;
21
+ position?: ToastPosition;
22
+ visibleToasts?: number;
23
+ }
24
+ declare const toastVariants: (props?: ({
25
+ variant?: "default" | "success" | "warning" | "info" | "error" | null | undefined;
26
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
27
+ export declare const Toast: {
28
+ ({ className, containerAriaLabel, dataTestId, icon, message, variant }: ToastProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ } & {
31
+ Provider: {
32
+ ({ gap, offset, position, visibleToasts, ...props }: ToasterProps): import("react/jsx-runtime").JSX.Element;
33
+ displayName: string;
34
+ };
35
+ };
36
+ export declare const toast: (({ className, containerAriaLabel, dataTestId, duration, icon, message, onAutoClose, position, variant }: ToastProps) => string | number) & {
37
+ success: (options: Omit<ToastProps, "variant">) => string | number;
38
+ error: (options: Omit<ToastProps, "variant">) => string | number;
39
+ info: (options: Omit<ToastProps, "variant">) => string | number;
40
+ warning: (options: Omit<ToastProps, "variant">) => string | number;
41
+ };
42
+ export {};
43
+ //# sourceMappingURL=Toast.d.ts.map