@spear-ai/spectral 1.4.2 → 1.4.3

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 (127) hide show
  1. package/dist/Accordion.d.ts +7 -7
  2. package/dist/Accordion.js +53 -51
  3. package/dist/Alert/AlertBase.js +6 -6
  4. package/dist/Alert.js +1 -1
  5. package/dist/Avatar.d.ts +2 -2
  6. package/dist/Avatar.js +46 -46
  7. package/dist/Badge.js +3 -3
  8. package/dist/Button.js +19 -12
  9. package/dist/ButtonGroup/ButtonGroupButton.d.ts +1 -1
  10. package/dist/ButtonGroup/ButtonGroupButton.js +10 -10
  11. package/dist/ButtonGroup.d.ts +8 -5
  12. package/dist/ButtonGroup.js +22 -14
  13. package/dist/ButtonIcon.d.ts +1 -1
  14. package/dist/ButtonIcon.js +5 -5
  15. package/dist/Card.d.ts +1 -1
  16. package/dist/Card.js +10 -10
  17. package/dist/Checkbox/CheckboxBase.d.ts +6 -6
  18. package/dist/Checkbox/CheckboxBase.js +65 -63
  19. package/dist/Checkbox.js +16 -14
  20. package/dist/Dialog/DialogBase.d.ts +37 -25
  21. package/dist/Dialog/DialogBase.js +130 -104
  22. package/dist/Dialog.d.ts +8 -8
  23. package/dist/Dialog.js +46 -36
  24. package/dist/Drawer.js +17 -17
  25. package/dist/HoverCard.d.ts +4 -4
  26. package/dist/HoverCard.js +34 -33
  27. package/dist/Input.js +58 -58
  28. package/dist/InputOTP.d.ts +1 -1
  29. package/dist/InputOTP.js +113 -112
  30. package/dist/MultiSelect/MultiSelectBase.d.ts +16 -16
  31. package/dist/MultiSelect/MultiSelectBase.js +236 -177
  32. package/dist/MultiSelect/MutiSelect.d.ts +6 -4
  33. package/dist/MultiSelect/MutiSelect.js +13 -12
  34. package/dist/Popover.js +2 -1
  35. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +18 -17
  36. package/dist/RadioGroup.js +5 -3
  37. package/dist/Select.js +70 -51
  38. package/dist/Slider.js +8 -4
  39. package/dist/Switch/SwitchBase.d.ts +6 -6
  40. package/dist/Switch/SwitchBase.js +39 -38
  41. package/dist/Switch.js +17 -16
  42. package/dist/Tabs/TabsBase.js +40 -25
  43. package/dist/Tabs.js +18 -21
  44. package/dist/Textarea.d.ts +1 -0
  45. package/dist/Textarea.js +33 -33
  46. package/dist/Toggle.js +4 -4
  47. package/dist/ToggleGroup/ToggleGroupBase.d.ts +7 -7
  48. package/dist/ToggleGroup/ToggleGroupBase.js +64 -64
  49. package/dist/ToggleGroup.js +19 -17
  50. package/dist/Tooltip/TooltipBase.d.ts +8 -8
  51. package/dist/Tooltip/TooltipBase.js +76 -74
  52. package/dist/Tooltip.d.ts +1 -1
  53. package/dist/Tooltip.js +12 -11
  54. package/dist/Tray.d.ts +1 -1
  55. package/dist/Tray.js +4910 -117
  56. package/dist/primitives/input.js +4 -4
  57. package/dist/primitives/select.d.ts +11 -11
  58. package/dist/primitives/select.d.ts.map +1 -1
  59. package/dist/primitives/select.js +28 -21
  60. package/dist/styles/main.css +1 -1
  61. package/dist/utils/{refs.d.ts → createForwardRef.d.ts} +1 -1
  62. package/dist/utils/createForwardRef.d.ts.map +1 -0
  63. package/dist/utils/formFieldUtils.d.ts +22 -18
  64. package/dist/utils/formFieldUtils.d.ts.map +1 -1
  65. package/dist/utils/formFieldUtils.js +46 -46
  66. package/package.json +9 -3
  67. package/dist/analyzer/list.yml.webp +0 -0
  68. package/dist/analyzer/network.webp +0 -0
  69. package/dist/analyzer/sunburst.webp +0 -0
  70. package/dist/analyzer/visual.webp +0 -0
  71. package/dist/auth-background.json +0 -90
  72. package/dist/favicon-invert.svg +0 -5
  73. package/dist/favicon.svg +0 -5
  74. package/dist/features/AuthCard/AuthCard.d.ts +0 -3
  75. package/dist/features/AuthCard/AuthCard.d.ts.map +0 -1
  76. package/dist/features/AuthCard/AuthToggle.d.ts +0 -9
  77. package/dist/features/AuthCard/AuthToggle.d.ts.map +0 -1
  78. package/dist/features/AuthCard/AuthToggle.js +0 -20
  79. package/dist/features/AuthCard/ForgotPasswordEmailForm.d.ts +0 -11
  80. package/dist/features/AuthCard/ForgotPasswordEmailForm.d.ts.map +0 -1
  81. package/dist/features/AuthCard/ForgotPasswordEmailForm.js +0 -86
  82. package/dist/features/AuthCard/ForgotPasswordResetForm.d.ts +0 -11
  83. package/dist/features/AuthCard/ForgotPasswordResetForm.d.ts.map +0 -1
  84. package/dist/features/AuthCard/ForgotPasswordResetForm.js +0 -21
  85. package/dist/features/AuthCard/OTPInput.d.ts +0 -12
  86. package/dist/features/AuthCard/OTPInput.d.ts.map +0 -1
  87. package/dist/features/AuthCard/OTPInput.js +0 -12
  88. package/dist/features/AuthCard/PasswordInput.d.ts +0 -13
  89. package/dist/features/AuthCard/PasswordInput.d.ts.map +0 -1
  90. package/dist/features/AuthCard/PasswordInput.js +0 -93
  91. package/dist/features/AuthCard/SignInForm.d.ts +0 -9
  92. package/dist/features/AuthCard/SignInForm.d.ts.map +0 -1
  93. package/dist/features/AuthCard/SignInForm.js +0 -86
  94. package/dist/features/AuthCard/SignUpForm.d.ts +0 -8
  95. package/dist/features/AuthCard/SignUpForm.d.ts.map +0 -1
  96. package/dist/features/AuthCard/SignUpForm.js +0 -100
  97. package/dist/features/AuthCard.js +0 -202
  98. package/dist/features/ClearDialog/ClearDialog.d.ts +0 -2
  99. package/dist/features/ClearDialog/ClearDialog.d.ts.map +0 -1
  100. package/dist/features/ClearDialog.js +0 -31
  101. package/dist/features/LabelingToolbar/LabelingToolbar.d.ts +0 -8
  102. package/dist/features/LabelingToolbar/LabelingToolbar.d.ts.map +0 -1
  103. package/dist/features/LabelingToolbar.js +0 -13
  104. package/dist/features/LabelingTools/LabelingTools.d.ts +0 -2
  105. package/dist/features/LabelingTools/LabelingTools.d.ts.map +0 -1
  106. package/dist/features/LabelingTools.js +0 -134
  107. package/dist/features/SensorMetadata/SensorMetadata.d.ts +0 -2
  108. package/dist/features/SensorMetadata/SensorMetadata.d.ts.map +0 -1
  109. package/dist/features/SensorMetadata.js +0 -117
  110. package/dist/features/SettingsPopover/SettingsPopover.d.ts +0 -2
  111. package/dist/features/SettingsPopover/SettingsPopover.d.ts.map +0 -1
  112. package/dist/features/SettingsPopover.js +0 -204
  113. package/dist/index-BIpuW_o8.js +0 -146
  114. package/dist/linear-cursor-small.png +0 -0
  115. package/dist/loader-circle-CdRVlFhN.js +0 -11
  116. package/dist/logo/wordmark-dark-side-by-side.svg +0 -6
  117. package/dist/logo/wordmark-light-side-by-side.svg +0 -6
  118. package/dist/message-alert-matte-glass-gradient.webp +0 -0
  119. package/dist/proxy-C9AqCss6.js +0 -4670
  120. package/dist/speech-bubble-fluid-glass-gradient.webp +0 -0
  121. package/dist/themes/grayscale-theme.webp +0 -0
  122. package/dist/themes/green-black-theme.webp +0 -0
  123. package/dist/themes/reverse-grayscale-theme.webp +0 -0
  124. package/dist/themes/viridis-theme.webp +0 -0
  125. package/dist/utils/refs.d.ts.map +0 -1
  126. package/dist/x-Dl66o_vF.js +0 -14
  127. /package/dist/utils/{refs.js → createForwardRef.js} +0 -0
@@ -1,47 +1,49 @@
1
1
  "use client";
2
2
  import "./styles/main.css";
3
- import { jsx as d } from "react/jsx-runtime";
4
- import { ToggleGroupItemBase as p, ToggleGroupBase as f } from "./ToggleGroup/ToggleGroupBase.js";
5
- import { toggleVariants as m } from "./Toggle.js";
6
- import { cn as l } from "./utils/twUtils.js";
3
+ import { jsx as u } from "react/jsx-runtime";
4
+ import { ToggleGroupItemBase as p, ToggleGroupBase as m } from "./ToggleGroup/ToggleGroupBase.js";
5
+ import { toggleVariants as f } from "./Toggle.js";
6
+ import { cn as g } from "./utils/twUtils.js";
7
7
  import { createContext as c, forwardRef as v, useContext as b } from "react";
8
- const g = c({
8
+ const n = c({
9
9
  size: "default",
10
10
  variant: "default",
11
11
  layout: "default"
12
- }), w = ({ className: n, variant: e, size: o, layout: a, children: u, ...r }) => /* @__PURE__ */ d(
13
- f,
12
+ }), w = ({ className: d, variant: e, size: o, layout: a, children: l, ...r }) => /* @__PURE__ */ u(
13
+ m,
14
14
  {
15
15
  "data-slot": "toggle-group",
16
+ "data-testid": "spectral-toggle-group",
16
17
  "data-variant": e,
17
18
  "data-size": o,
18
19
  "data-layout": a,
19
- className: l(
20
+ className: g(
20
21
  "group/toggle-group [&[data-variant='outline']]:bg-toggle-group-bg flex h-fit w-fit [&[data-layout='expanded']]:w-full items-center rounded-md [&_button:first-of-type]:rounded-l-md [&_button:last-of-type]:rounded-r-md [&[data-variant='outline']]:gap-0.25",
21
- n
22
+ d
22
23
  ),
23
24
  ...r,
24
- children: /* @__PURE__ */ d(g.Provider, { value: { variant: e, size: o, layout: a }, children: u })
25
+ children: /* @__PURE__ */ u(n.Provider, { value: { variant: e, size: o, layout: a }, children: l })
25
26
  }
26
- ), h = v(({ className: n, children: e, variant: o, size: a, value: u, layout: r, ...i }, s) => {
27
- const t = b(g);
28
- return /* @__PURE__ */ d(
27
+ ), h = v(({ className: d, children: e, variant: o, size: a, value: l, layout: r, ...i }, s) => {
28
+ const t = b(n);
29
+ return /* @__PURE__ */ u(
29
30
  p,
30
31
  {
31
32
  ref: s,
32
33
  "data-slot": "toggle-group-item",
34
+ "data-testid": "spectral-toggle-group-item",
33
35
  "data-variant": t.variant || o,
34
36
  "data-size": t.size || a,
35
37
  "data-layout": t.layout || r,
36
- value: u,
37
- className: l(
38
- m({
38
+ value: l,
39
+ className: g(
40
+ f({
39
41
  variant: t.variant || o,
40
42
  size: t.size || a,
41
43
  layout: t.layout || r
42
44
  }),
43
45
  "group data-[variant=outline]:border-togglegroup-border rounded-none shadow-none focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0",
44
- n
46
+ d
45
47
  ),
46
48
  ...i,
47
49
  children: e
@@ -4,8 +4,8 @@ type Align = 'start' | 'center' | 'end';
4
4
  export type TooltipProviderProps = {
5
5
  children: ReactNode;
6
6
  delayDuration?: number;
7
- skipDelayDuration?: number;
8
7
  disableHoverableContent?: boolean;
8
+ skipDelayDuration?: number;
9
9
  };
10
10
  export declare const TooltipProviderBase: import('react').ForwardRefExoticComponent<TooltipProviderProps & import('react').RefAttributes<HTMLElement>>;
11
11
  export type TooltipRootProps = {
@@ -20,7 +20,7 @@ export type TooltipRootProps = {
20
20
  side?: Side;
21
21
  sideOffset?: number;
22
22
  };
23
- export declare const TooltipRootBase: ({ children, open: openProp, defaultOpen, onOpenChange, side, align, sideOffset, alignOffset, avoidCollisions, delayDuration }: TooltipRootProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const TooltipRootBase: ({ align, alignOffset, avoidCollisions, children, defaultOpen, delayDuration, onOpenChange, open: openProp, side, sideOffset }: TooltipRootProps) => import("react/jsx-runtime").JSX.Element;
24
24
  export type TooltipTriggerProps = ComponentPropsWithoutRef<'button'> & {
25
25
  asChild?: boolean;
26
26
  };
@@ -28,24 +28,24 @@ export declare const TooltipTriggerBase: import('react').ForwardRefExoticCompone
28
28
  asChild?: boolean;
29
29
  } & import('react').RefAttributes<HTMLElement>>;
30
30
  export type TooltipContentProps = ComponentPropsWithoutRef<'div'> & {
31
- forceMount?: boolean;
32
- container?: Element | DocumentFragment | null | undefined;
33
31
  arrowPadding?: number;
32
+ container?: Element | DocumentFragment | null | undefined;
33
+ forceMount?: boolean;
34
34
  variant?: 'default' | 'outline';
35
35
  };
36
36
  export declare const TooltipContentBase: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
37
- forceMount?: boolean;
38
- container?: Element | DocumentFragment | null | undefined;
39
37
  arrowPadding?: number;
38
+ container?: Element | DocumentFragment | null | undefined;
39
+ forceMount?: boolean;
40
40
  variant?: "default" | "outline";
41
41
  } & import('react').RefAttributes<HTMLDivElement>>;
42
42
  export type TooltipArrowProps = ComponentPropsWithoutRef<'div'> & {
43
- width?: number;
44
43
  height?: number;
44
+ width?: number;
45
45
  };
46
46
  export declare const TooltipArrowBase: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
47
- width?: number;
48
47
  height?: number;
48
+ width?: number;
49
49
  } & import('react').RefAttributes<HTMLDivElement>>;
50
50
  export {};
51
51
  //# sourceMappingURL=TooltipBase.d.ts.map
@@ -1,54 +1,54 @@
1
1
  "use client";
2
2
  import "../styles/main.css";
3
3
  import { jsx as D } from "react/jsx-runtime";
4
- import { createForwardedRef as N } from "../utils/refs.js";
4
+ import { createForwardedRef as N } from "../utils/createForwardRef.js";
5
5
  import { cn as z } from "../utils/twUtils.js";
6
6
  import { createContext as X, forwardRef as L, useMemo as Y, useRef as E, useEffect as k, useCallback as g, useState as I, useContext as M, useId as A } from "react";
7
7
  import { createPortal as S } from "react-dom";
8
- const F = X(null), V = L(function({ children: a, delayDuration: u = 700, skipDelayDuration: l = 300, disableHoverableContent: d = !1 }) {
9
- const c = Y(() => ({ delayDuration: u, skipDelayDuration: l, disableHoverableContent: d }), [u, l, d]);
8
+ const F = X(null), V = L(function({ children: a, delayDuration: d = 700, disableHoverableContent: l = !1, skipDelayDuration: p = 300 }) {
9
+ const c = Y(() => ({ delayDuration: d, skipDelayDuration: p, disableHoverableContent: l }), [d, p, l]);
10
10
  return /* @__PURE__ */ D(F.Provider, { value: c, children: a });
11
- }), K = X(null), Z = ({ children: h, open: a, defaultOpen: u, onOpenChange: l, side: d = "top", align: c = "center", sideOffset: f = 0, alignOffset: y = 0, avoidCollisions: p = !0, delayDuration: t }) => {
11
+ }), K = X(null), Z = ({ align: u = "center", alignOffset: a = 0, avoidCollisions: d = !0, children: l, defaultOpen: p, delayDuration: c, onOpenChange: f, open: v, side: h = "top", sideOffset: t = 0 }) => {
12
12
  const r = M(F) ?? {
13
13
  delayDuration: 700,
14
14
  skipDelayDuration: 300,
15
15
  disableHoverableContent: !1
16
- }, m = {
16
+ }, w = {
17
17
  ...r,
18
- delayDuration: t ?? r.delayDuration
19
- }, [e, o] = I(!!u), i = typeof a == "boolean", w = i ? a : e, v = g(
18
+ delayDuration: c ?? r.delayDuration
19
+ }, [e, o] = I(!!p), i = typeof v == "boolean", m = i ? v : e, y = g(
20
20
  (x) => {
21
- i || o(x), l?.(x);
21
+ i || o(x), f?.(x);
22
22
  },
23
- [i, l]
23
+ [i, f]
24
24
  ), T = E(null), b = A(), C = Y(
25
25
  () => ({
26
- open: w,
27
- setOpen: v,
28
- triggerRef: T,
26
+ arrowPadding: 4,
29
27
  contentId: b,
30
- options: { side: d, align: c, sideOffset: f, alignOffset: y, avoidCollisions: p },
31
- provider: m,
32
- arrowPadding: 4
28
+ open: m,
29
+ options: { side: h, align: u, sideOffset: t, alignOffset: a, avoidCollisions: d },
30
+ provider: w,
31
+ setOpen: y,
32
+ triggerRef: T
33
33
  }),
34
- [w, v, d, c, f, y, p, m]
34
+ [m, y, h, u, t, a, d, w]
35
35
  );
36
- return /* @__PURE__ */ D(K.Provider, { value: C, children: h });
37
- }, _ = L(function({ asChild: a, onPointerEnter: u, onPointerLeave: l, onFocus: d, onBlur: c, onKeyDown: f, ...y }, p) {
38
- const t = H(), { provider: r } = t, m = N(t.triggerRef, p), e = E(null), o = E(null), i = E(0), w = () => {
36
+ return /* @__PURE__ */ D(K.Provider, { value: C, children: l });
37
+ }, _ = L(function({ asChild: a, onPointerEnter: d, onPointerLeave: l, onFocus: p, onBlur: c, onKeyDown: f, ...v }, h) {
38
+ const t = H(), { provider: r } = t, w = N(t.triggerRef, h), e = E(null), o = E(null), i = E(0), m = () => {
39
39
  e.current && window.clearTimeout(e.current), o.current && window.clearTimeout(o.current), e.current = null, o.current = null;
40
40
  };
41
- k(() => () => w(), []);
42
- const v = g(() => {
41
+ k(() => () => m(), []);
42
+ const y = g(() => {
43
43
  const O = Date.now() - i.current < r.skipDelayDuration ? 0 : r.delayDuration;
44
44
  e.current = window.setTimeout(() => t.setOpen(!0), O);
45
45
  }, [r.skipDelayDuration, r.delayDuration, t.setOpen]), T = g(() => {
46
- w(), t.setOpen(!1), i.current = Date.now();
46
+ m(), t.setOpen(!1), i.current = Date.now();
47
47
  }, [t.setOpen]), b = g(
48
48
  (s) => {
49
- u?.(s), (s.pointerType === "mouse" || s.pointerType === "pen") && v();
49
+ d?.(s), (s.pointerType === "mouse" || s.pointerType === "pen") && y();
50
50
  },
51
- [u, v]
51
+ [d, y]
52
52
  ), C = g(
53
53
  (s) => {
54
54
  l?.(s), (s.pointerType === "mouse" || s.pointerType === "pen") && (o.current = window.setTimeout(() => t.setOpen(!1), 0));
@@ -56,9 +56,9 @@ const F = X(null), V = L(function({ children: a, delayDuration: u = 700, skipDel
56
56
  [l, t.setOpen]
57
57
  ), x = g(
58
58
  (s) => {
59
- d?.(s), v();
59
+ p?.(s), y();
60
60
  },
61
- [d, v]
61
+ [p, y]
62
62
  ), B = g(
63
63
  (s) => {
64
64
  c?.(s), T();
@@ -70,18 +70,18 @@ const F = X(null), V = L(function({ children: a, delayDuration: u = 700, skipDel
70
70
  },
71
71
  [f, T]
72
72
  );
73
- return /* @__PURE__ */ D(a ? "span" : "button", { ...y, ref: m, "aria-describedby": t.open ? t.contentId : void 0, onPointerEnter: b, onPointerLeave: C, onFocus: x, onBlur: B, onKeyDown: P });
74
- }), tt = L(function({ className: a, style: u, forceMount: l, container: d, onPointerEnter: c, onPointerLeave: f, children: y, arrowPadding: p = 4, variant: t = "default", ...r }, m) {
75
- const e = H(), [o, i] = I(null), [w, v] = I(null), T = g(
73
+ return /* @__PURE__ */ D(a ? "span" : "button", { "aria-describedby": t.open ? t.contentId : void 0, onBlur: B, onFocus: x, onKeyDown: P, onPointerEnter: b, onPointerLeave: C, ref: w, ...v });
74
+ }), tt = L(function({ arrowPadding: a = 4, children: d, className: l, container: p, forceMount: c, onPointerEnter: f, onPointerLeave: v, style: h, variant: t = "default", ...r }, w) {
75
+ const e = H(), [o, i] = I(null), [m, y] = I(null), T = g(
76
76
  (n) => {
77
- i(n), typeof m == "function" ? m(n) : m && "current" in m && (m.current = n);
77
+ i(n), typeof w == "function" ? w(n) : w && "current" in w && (w.current = n);
78
78
  },
79
- [m]
79
+ [w]
80
80
  ), b = g(() => {
81
81
  if (!e.triggerRef.current || !o) return;
82
- const n = j(e.triggerRef.current, o, { ...e.options, arrowPadding: p });
83
- v(n);
84
- }, [o, e.triggerRef, e.options, p]);
82
+ const n = j(e.triggerRef.current, o, { ...e.options, arrowPadding: a });
83
+ y(n);
84
+ }, [o, e.triggerRef, e.options, a]);
85
85
  k(() => {
86
86
  if (!e.open) return;
87
87
  b();
@@ -98,82 +98,84 @@ const F = X(null), V = L(function({ children: a, delayDuration: u = 700, skipDel
98
98
  }, [e.open, e.setOpen]);
99
99
  const C = g(
100
100
  (n) => {
101
- c?.(n), e.provider.disableHoverableContent || e.setOpen(!0);
101
+ f?.(n), e.provider.disableHoverableContent || e.setOpen(!0);
102
102
  },
103
- [c, e.provider.disableHoverableContent, e.setOpen]
103
+ [f, e.provider.disableHoverableContent, e.setOpen]
104
104
  ), x = g(
105
105
  (n) => {
106
- f?.(n), e.provider.disableHoverableContent || e.setOpen(!1);
106
+ v?.(n), e.provider.disableHoverableContent || e.setOpen(!1);
107
107
  },
108
- [f, e.provider.disableHoverableContent, e.setOpen]
109
- ), B = e.open || l ? /* @__PURE__ */ D(
108
+ [v, e.provider.disableHoverableContent, e.setOpen]
109
+ ), B = e.open || c ? /* @__PURE__ */ D(
110
110
  "div",
111
111
  {
112
- ...r,
113
- ref: T,
114
- id: e.contentId,
115
- role: "tooltip",
112
+ className: l,
116
113
  "data-state": e.open ? "open" : "closed",
114
+ "data-testid": "spectral-tooltip-content",
117
115
  "data-variant": t,
118
- className: a,
116
+ id: e.contentId,
117
+ onPointerEnter: C,
118
+ onPointerLeave: x,
119
+ ref: T,
120
+ role: "tooltip",
119
121
  style: {
120
122
  position: "fixed",
121
- left: w?.x ?? -9999,
122
- top: w?.y ?? -9999,
123
- transformOrigin: w ? $(w.placing) : void 0,
124
- ...u
123
+ left: m?.x ?? -9999,
124
+ top: m?.y ?? -9999,
125
+ transformOrigin: m ? $(m.placing) : void 0,
126
+ ...h
125
127
  },
126
- onPointerEnter: C,
127
- onPointerLeave: x,
128
- children: y
128
+ ...r,
129
+ children: d
129
130
  }
130
- ) : null, P = typeof document < "u" ? d ?? document.body : null;
131
+ ) : null, P = typeof document < "u" ? p ?? document.body : null;
131
132
  return P ? S(B, P) : null;
132
- }), et = L(function({ width: a = 16, height: u = 16, className: l, style: d, ...c }, f) {
133
- const y = H();
133
+ }), et = L(function({ width: a = 16, height: d = 16, className: l, style: p, ...c }, f) {
134
+ const v = H();
134
135
  return /* @__PURE__ */ D(
135
136
  "div",
136
137
  {
137
- ...c,
138
- ref: f,
139
138
  "aria-hidden": !0,
140
139
  className: z("pointer-events-none", l),
140
+ "data-arrow": !0,
141
+ "data-testid": "spectral-tooltip-arrow",
142
+ "data-side": v.options.side,
143
+ ref: f,
141
144
  style: {
142
145
  width: a,
143
- height: u,
144
- ...d
146
+ height: d,
147
+ ...p
145
148
  },
146
- "data-arrow": !0,
147
- "data-side": y.options.side
149
+ ...c
148
150
  }
149
151
  );
150
152
  });
151
153
  function H() {
152
- const h = M(K);
153
- if (!h) throw new Error("Tooltip components must be used within <Tooltip>");
154
- return h;
154
+ const u = M(K);
155
+ if (!u) throw new Error("Tooltip components must be used within <Tooltip>");
156
+ return u;
155
157
  }
156
158
  const U = {
157
- top: "bottom center",
158
159
  bottom: "top center",
159
160
  left: "center right",
160
- right: "center left"
161
+ right: "center left",
162
+ top: "bottom center"
161
163
  };
162
- function $(h) {
163
- return U[h];
164
+ function $(u) {
165
+ return U[u];
164
166
  }
165
- function R(h, a, u) {
166
- return Math.max(a, Math.min(u, h));
167
+ function R(u, a, d) {
168
+ return Math.max(a, Math.min(d, u));
167
169
  }
168
- function j(h, a, u) {
169
- const { side: l, align: d, sideOffset: c, alignOffset: f, avoidCollisions: y, arrowPadding: p } = u, t = h.getBoundingClientRect(), r = a.getBoundingClientRect(), m = window.innerWidth, e = window.innerHeight;
170
+ function j(u, a, d) {
171
+ const { side: l, align: p, sideOffset: c, alignOffset: f, avoidCollisions: v, arrowPadding: h } = d, t = u.getBoundingClientRect(), r = a.getBoundingClientRect(), w = window.innerWidth, e = window.innerHeight;
170
172
  let o = 0, i = 0;
171
- const w = t.left + t.width / 2 - r.width / 2, v = t.left, T = t.right - r.width, b = t.top + t.height / 2 - r.height / 2, C = t.top, x = t.bottom - r.height, B = d === "start" ? v : d === "end" ? T : w, P = d === "start" ? C : d === "end" ? x : b;
173
+ const m = t.left + t.width / 2 - r.width / 2, y = t.left, T = t.right - r.width, b = t.top + t.height / 2 - r.height / 2, C = t.top, x = t.bottom - r.height, B = p === "start" ? y : p === "end" ? T : m, P = p === "start" ? C : p === "end" ? x : b;
172
174
  l === "top" ? (o = B + f, i = t.top - r.height - c) : l === "bottom" ? (o = B + f, i = t.bottom + c) : l === "left" ? (o = t.left - r.width - c, i = P + f) : (o = t.right + c, i = P + f);
173
175
  let n = l;
174
- y && (l === "top" && i < 0 ? (n = "bottom", i = t.bottom + c) : l === "bottom" && i + r.height > e ? (n = "top", i = t.top - r.height - c) : l === "left" && o < 0 ? (n = "right", o = t.right + c) : l === "right" && o + r.width > m && (n = "left", o = t.left - r.width - c));
176
+ v && (l === "top" && i < 0 ? (n = "bottom", i = t.bottom + c) : l === "bottom" && i + r.height > e ? (n = "top", i = t.top - r.height - c) : l === "left" && o < 0 ? (n = "right", o = t.right + c) : l === "right" && o + r.width > w && (n = "left", o = t.left - r.width - c));
175
177
  let s = t.left + t.width / 2, O = t.top + t.height / 2;
176
- return n === "top" && (O = i + r.height, s = R(t.left + t.width / 2, o + p, o + r.width - p)), n === "bottom" && (O = i, s = R(t.left + t.width / 2, o + p, o + r.width - p)), n === "left" && (s = o + r.width, O = R(t.top + t.height / 2, i + p, i + r.height - p)), n === "right" && (s = o, O = R(t.top + t.height / 2, i + p, i + r.height - p)), a.style.setProperty("--arrow-x", `${s - o}px`), a.style.setProperty("--arrow-y", `${O - i}px`), a.dataset.side = n, { x: o, y: i, placing: n, arrowX: s, arrowY: O };
178
+ return n === "top" && (O = i + r.height, s = R(t.left + t.width / 2, o + h, o + r.width - h)), n === "bottom" && (O = i, s = R(t.left + t.width / 2, o + h, o + r.width - h)), n === "left" && (s = o + r.width, O = R(t.top + t.height / 2, i + h, i + r.height - h)), n === "right" && (s = o, O = R(t.top + t.height / 2, i + h, i + r.height - h)), a.style.setProperty("--arrow-x", `${s - o}px`), a.style.setProperty("--arrow-y", `${O - i}px`), a.dataset.side = n, { x: o, y: i, placing: n, arrowX: s, arrowY: O };
177
179
  }
178
180
  export {
179
181
  et as TooltipArrowBase,
package/dist/Tooltip.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
3
  export declare const TooltipProvider: ({ delayDuration, ...props }: ComponentProps<typeof TooltipPrimitive.Provider>) => import("react/jsx-runtime").JSX.Element;
4
4
  export declare const Tooltip: ({ ...props }: ComponentProps<typeof TooltipPrimitive.Root>) => import("react/jsx-runtime").JSX.Element;
5
5
  export declare const TooltipTrigger: ({ ...props }: ComponentProps<typeof TooltipPrimitive.Trigger>) => import("react/jsx-runtime").JSX.Element;
6
- export declare const TooltipContent: ({ className, children, sideOffset, showArrow, ...props }: ComponentProps<typeof TooltipPrimitive.Content> & {
6
+ export declare const TooltipContent: ({ children, className, showArrow, sideOffset, ...props }: ComponentProps<typeof TooltipPrimitive.Content> & {
7
7
  showArrow?: boolean;
8
8
  }) => import("react/jsx-runtime").JSX.Element;
9
9
  //# sourceMappingURL=Tooltip.d.ts.map
package/dist/Tooltip.js CHANGED
@@ -319,29 +319,30 @@ function be(e) {
319
319
  return t.pop(), o.length === 1 && t.length === 1 && o[0].x === t[0].x && o[0].y === t[0].y ? o : o.concat(t);
320
320
  }
321
321
  var we = z, Pe = $, Ee = B, Re = U, _e = V, Oe = X;
322
- const De = ({ delayDuration: e = 0, ...o }) => /* @__PURE__ */ u(we, { "data-slot": "tooltip-provider", delayDuration: e, ...o }), Ge = ({ ...e }) => /* @__PURE__ */ u(De, { children: /* @__PURE__ */ u(Pe, { "data-slot": "tooltip", ...e }) }), je = ({ ...e }) => /* @__PURE__ */ u(Ee, { "data-slot": "tooltip-trigger", ...e }), Fe = ({
323
- className: e,
324
- children: o,
325
- sideOffset: t = 0,
326
- showArrow: r = !1,
322
+ const De = ({ delayDuration: e = 0, ...o }) => /* @__PURE__ */ u(we, { "data-slot": "tooltip-provider", delayDuration: e, ...o }), Ge = ({ ...e }) => /* @__PURE__ */ u(De, { children: /* @__PURE__ */ u(Pe, { "data-slot": "tooltip", "data-testid": "spectral-tooltip", ...e }) }), je = ({ ...e }) => /* @__PURE__ */ u(Ee, { "data-slot": "tooltip-trigger", "data-testid": "spectral-tooltip-trigger", ...e }), Fe = ({
323
+ children: e,
324
+ className: o,
325
+ showArrow: t = !1,
326
+ sideOffset: r = 0,
327
327
  ...n
328
- }) => /* @__PURE__ */ u(Re, { children: /* @__PURE__ */ H(
328
+ }) => /* @__PURE__ */ u(Re, { "data-slot": "tooltip-portal", "data-testid": "spectral-tooltip-portal", children: /* @__PURE__ */ H(
329
329
  _e,
330
330
  {
331
- "data-slot": "tooltip-content",
332
- sideOffset: t,
333
331
  className: ie(
334
332
  "bg-tooltip-bg text-text-primary pointer-events-auto z-50 w-fit rounded-md px-3 py-1.5 text-xs shadow-lg will-change-transform outline-none select-none",
335
333
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
336
334
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
337
335
  "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
338
336
  "data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
339
- e
337
+ o
340
338
  ),
339
+ "data-slot": "tooltip-content",
340
+ "data-testid": "spectral-tooltip-content",
341
+ sideOffset: r,
341
342
  ...n,
342
343
  children: [
343
- o,
344
- r && /* @__PURE__ */ u(Oe, { className: "bg-tooltip-arrow fill-tooltip-arrow z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
344
+ e,
345
+ t && /* @__PURE__ */ u(Oe, { className: "bg-tooltip-arrow fill-tooltip-arrow z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
345
346
  ]
346
347
  }
347
348
  ) });
package/dist/Tray.d.ts CHANGED
@@ -2,7 +2,7 @@ import { VariantProps } from 'class-variance-authority';
2
2
  import { ComponentPropsWithoutRef, ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
3
3
  import { Drawer as TrayBase } from 'vaul';
4
4
  declare const TrayContentVariants: (props?: ({
5
- size?: "sm" | "lg" | "md" | "full" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | "full" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export type TrayBaseProps = ComponentPropsWithoutRef<typeof TrayBase.Root> & {
8
8
  size?: 'sm' | 'md' | 'lg' | 'full';