@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.
- package/dist/Accordion.d.ts +7 -7
- package/dist/Accordion.js +53 -51
- package/dist/Alert/AlertBase.js +6 -6
- package/dist/Alert.js +1 -1
- package/dist/Avatar.d.ts +2 -2
- package/dist/Avatar.js +46 -46
- package/dist/Badge.js +3 -3
- package/dist/Button.js +19 -12
- package/dist/ButtonGroup/ButtonGroupButton.d.ts +1 -1
- package/dist/ButtonGroup/ButtonGroupButton.js +10 -10
- package/dist/ButtonGroup.d.ts +8 -5
- package/dist/ButtonGroup.js +22 -14
- package/dist/ButtonIcon.d.ts +1 -1
- package/dist/ButtonIcon.js +5 -5
- package/dist/Card.d.ts +1 -1
- package/dist/Card.js +10 -10
- package/dist/Checkbox/CheckboxBase.d.ts +6 -6
- package/dist/Checkbox/CheckboxBase.js +65 -63
- package/dist/Checkbox.js +16 -14
- package/dist/Dialog/DialogBase.d.ts +37 -25
- package/dist/Dialog/DialogBase.js +130 -104
- package/dist/Dialog.d.ts +8 -8
- package/dist/Dialog.js +46 -36
- package/dist/Drawer.js +17 -17
- package/dist/HoverCard.d.ts +4 -4
- package/dist/HoverCard.js +34 -33
- package/dist/Input.js +58 -58
- package/dist/InputOTP.d.ts +1 -1
- package/dist/InputOTP.js +113 -112
- package/dist/MultiSelect/MultiSelectBase.d.ts +16 -16
- package/dist/MultiSelect/MultiSelectBase.js +236 -177
- package/dist/MultiSelect/MutiSelect.d.ts +6 -4
- package/dist/MultiSelect/MutiSelect.js +13 -12
- package/dist/Popover.js +2 -1
- package/dist/RadioButtonGroup/RadioButtonGroupBase.js +18 -17
- package/dist/RadioGroup.js +5 -3
- package/dist/Select.js +70 -51
- package/dist/Slider.js +8 -4
- package/dist/Switch/SwitchBase.d.ts +6 -6
- package/dist/Switch/SwitchBase.js +39 -38
- package/dist/Switch.js +17 -16
- package/dist/Tabs/TabsBase.js +40 -25
- package/dist/Tabs.js +18 -21
- package/dist/Textarea.d.ts +1 -0
- package/dist/Textarea.js +33 -33
- package/dist/Toggle.js +4 -4
- package/dist/ToggleGroup/ToggleGroupBase.d.ts +7 -7
- package/dist/ToggleGroup/ToggleGroupBase.js +64 -64
- package/dist/ToggleGroup.js +19 -17
- package/dist/Tooltip/TooltipBase.d.ts +8 -8
- package/dist/Tooltip/TooltipBase.js +76 -74
- package/dist/Tooltip.d.ts +1 -1
- package/dist/Tooltip.js +12 -11
- package/dist/Tray.d.ts +1 -1
- package/dist/Tray.js +4910 -117
- package/dist/primitives/input.js +4 -4
- package/dist/primitives/select.d.ts +11 -11
- package/dist/primitives/select.d.ts.map +1 -1
- package/dist/primitives/select.js +28 -21
- package/dist/styles/main.css +1 -1
- package/dist/utils/{refs.d.ts → createForwardRef.d.ts} +1 -1
- package/dist/utils/createForwardRef.d.ts.map +1 -0
- package/dist/utils/formFieldUtils.d.ts +22 -18
- package/dist/utils/formFieldUtils.d.ts.map +1 -1
- package/dist/utils/formFieldUtils.js +46 -46
- package/package.json +9 -3
- package/dist/analyzer/list.yml.webp +0 -0
- package/dist/analyzer/network.webp +0 -0
- package/dist/analyzer/sunburst.webp +0 -0
- package/dist/analyzer/visual.webp +0 -0
- package/dist/auth-background.json +0 -90
- package/dist/favicon-invert.svg +0 -5
- package/dist/favicon.svg +0 -5
- package/dist/features/AuthCard/AuthCard.d.ts +0 -3
- package/dist/features/AuthCard/AuthCard.d.ts.map +0 -1
- package/dist/features/AuthCard/AuthToggle.d.ts +0 -9
- package/dist/features/AuthCard/AuthToggle.d.ts.map +0 -1
- package/dist/features/AuthCard/AuthToggle.js +0 -20
- package/dist/features/AuthCard/ForgotPasswordEmailForm.d.ts +0 -11
- package/dist/features/AuthCard/ForgotPasswordEmailForm.d.ts.map +0 -1
- package/dist/features/AuthCard/ForgotPasswordEmailForm.js +0 -86
- package/dist/features/AuthCard/ForgotPasswordResetForm.d.ts +0 -11
- package/dist/features/AuthCard/ForgotPasswordResetForm.d.ts.map +0 -1
- package/dist/features/AuthCard/ForgotPasswordResetForm.js +0 -21
- package/dist/features/AuthCard/OTPInput.d.ts +0 -12
- package/dist/features/AuthCard/OTPInput.d.ts.map +0 -1
- package/dist/features/AuthCard/OTPInput.js +0 -12
- package/dist/features/AuthCard/PasswordInput.d.ts +0 -13
- package/dist/features/AuthCard/PasswordInput.d.ts.map +0 -1
- package/dist/features/AuthCard/PasswordInput.js +0 -93
- package/dist/features/AuthCard/SignInForm.d.ts +0 -9
- package/dist/features/AuthCard/SignInForm.d.ts.map +0 -1
- package/dist/features/AuthCard/SignInForm.js +0 -86
- package/dist/features/AuthCard/SignUpForm.d.ts +0 -8
- package/dist/features/AuthCard/SignUpForm.d.ts.map +0 -1
- package/dist/features/AuthCard/SignUpForm.js +0 -100
- package/dist/features/AuthCard.js +0 -202
- package/dist/features/ClearDialog/ClearDialog.d.ts +0 -2
- package/dist/features/ClearDialog/ClearDialog.d.ts.map +0 -1
- package/dist/features/ClearDialog.js +0 -31
- package/dist/features/LabelingToolbar/LabelingToolbar.d.ts +0 -8
- package/dist/features/LabelingToolbar/LabelingToolbar.d.ts.map +0 -1
- package/dist/features/LabelingToolbar.js +0 -13
- package/dist/features/LabelingTools/LabelingTools.d.ts +0 -2
- package/dist/features/LabelingTools/LabelingTools.d.ts.map +0 -1
- package/dist/features/LabelingTools.js +0 -134
- package/dist/features/SensorMetadata/SensorMetadata.d.ts +0 -2
- package/dist/features/SensorMetadata/SensorMetadata.d.ts.map +0 -1
- package/dist/features/SensorMetadata.js +0 -117
- package/dist/features/SettingsPopover/SettingsPopover.d.ts +0 -2
- package/dist/features/SettingsPopover/SettingsPopover.d.ts.map +0 -1
- package/dist/features/SettingsPopover.js +0 -204
- package/dist/index-BIpuW_o8.js +0 -146
- package/dist/linear-cursor-small.png +0 -0
- package/dist/loader-circle-CdRVlFhN.js +0 -11
- package/dist/logo/wordmark-dark-side-by-side.svg +0 -6
- package/dist/logo/wordmark-light-side-by-side.svg +0 -6
- package/dist/message-alert-matte-glass-gradient.webp +0 -0
- package/dist/proxy-C9AqCss6.js +0 -4670
- package/dist/speech-bubble-fluid-glass-gradient.webp +0 -0
- package/dist/themes/grayscale-theme.webp +0 -0
- package/dist/themes/green-black-theme.webp +0 -0
- package/dist/themes/reverse-grayscale-theme.webp +0 -0
- package/dist/themes/viridis-theme.webp +0 -0
- package/dist/utils/refs.d.ts.map +0 -1
- package/dist/x-Dl66o_vF.js +0 -14
- /package/dist/utils/{refs.js → createForwardRef.js} +0 -0
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import "../styles/main.css";
|
|
3
|
-
import { jsx as
|
|
3
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
4
4
|
import { Slot as x } from "../primitives/slot.js";
|
|
5
5
|
import { cn as c } from "../utils/twUtils.js";
|
|
6
6
|
import { createContext as h, useContext as w } from "react";
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
if (!
|
|
7
|
+
const u = h(null), R = ({ value: t, onValueChange: n, children: i, className: o, isKeptActive: r = !1, expanded: e = !1 }) => /* @__PURE__ */ a(u.Provider, { value: { value: t, onValueChange: n, isKeptActive: r, expanded: e }, children: /* @__PURE__ */ a("div", { role: "radiogroup", "data-testid": "spectral-radio-button-group", "data-expanded": e, className: c("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", o), children: i }) }), _ = ({ value: t, children: n, className: i, disabled: o = !1, asChild: r = !1, onSelect: e }) => {
|
|
8
|
+
const s = w(u);
|
|
9
|
+
if (!s)
|
|
10
10
|
throw new Error("RadioButtonGroupItem must be used within a RadioButtonGroup");
|
|
11
|
-
const { value:
|
|
12
|
-
o || (d && d(
|
|
13
|
-
},
|
|
11
|
+
const { value: g, onValueChange: d, isKeptActive: b, expanded: f } = s, l = g === t, p = () => {
|
|
12
|
+
o || (d && d(t), e && e(t));
|
|
13
|
+
}, v = r ? x : "button", m = {
|
|
14
14
|
role: "radio",
|
|
15
15
|
"aria-checked": l,
|
|
16
16
|
"data-state": l ? "on" : "off",
|
|
17
|
+
"data-testid": "spectral-radio-button-group-item",
|
|
17
18
|
disabled: o,
|
|
18
|
-
onClick:
|
|
19
|
+
onClick: p,
|
|
19
20
|
className: c(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
`bg-toggle-bg inline-flex items-center justify-center gap-2 border text-sm font-medium disabled:pointer-events-none disabled:opacity-50
|
|
22
|
+
disabled:cursor-not-allowed hover:cursor-pointer text-toggle-text hover:bg-toggle-bg--hover hover:text-toggle-text--hover transition-[colors]
|
|
23
|
+
[&_svg]:pointer-events-none [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] focus:outline-none
|
|
24
|
+
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
|
|
25
|
+
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
|
|
26
|
+
active:border-toggle-border--active`,
|
|
27
|
+
f && "w-full",
|
|
28
|
+
b && "data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active data-[state=on]:border-toggle-border--active",
|
|
28
29
|
i
|
|
29
30
|
)
|
|
30
31
|
};
|
|
31
|
-
return /* @__PURE__ */
|
|
32
|
+
return /* @__PURE__ */ a(v, { ...!r && { type: "button" }, ...m, children: n });
|
|
32
33
|
};
|
|
33
34
|
export {
|
|
34
35
|
R as RadioButtonGroupBase,
|
package/dist/RadioGroup.js
CHANGED
|
@@ -414,10 +414,11 @@ const le = Re({
|
|
|
414
414
|
$e,
|
|
415
415
|
{
|
|
416
416
|
className: F("flex text-text-primary w-full", r === "vertical" ? "flex-col gap-4" : "flex-row gap-5", i === "unstyled" && "gap-2.5 w-fit", e),
|
|
417
|
-
|
|
417
|
+
"data-testid": "spectral-radio-group",
|
|
418
|
+
disabled: f.groupDisabled,
|
|
418
419
|
onValueChange: o,
|
|
420
|
+
ref: b,
|
|
419
421
|
value: s,
|
|
420
|
-
disabled: f.groupDisabled,
|
|
421
422
|
...v
|
|
422
423
|
}
|
|
423
424
|
) });
|
|
@@ -428,6 +429,7 @@ const B = he(
|
|
|
428
429
|
de,
|
|
429
430
|
{
|
|
430
431
|
ref: s,
|
|
432
|
+
"data-testid": "spectral-radio-group-item",
|
|
431
433
|
className: F(
|
|
432
434
|
"relative aspect-square h-4.5 w-4.5 rounded-full border-2 border-border-subtle bg-radio-bg ring-black transition-colors cursor-pointer",
|
|
433
435
|
"hover:border-radio-border--hover focus-visible:ring-1 focus-visible:ring-offset-2",
|
|
@@ -458,7 +460,7 @@ const Je = G(({ className: e, children: t, value: o, description: r, disabled: a
|
|
|
458
460
|
] });
|
|
459
461
|
});
|
|
460
462
|
Je.displayName = "RadioGroup.Item";
|
|
461
|
-
const Qe = G(({ className: e, ...t }, o) => /* @__PURE__ */ n(_, { ref: o, className: F("block text-md font-medium", e), ...t }));
|
|
463
|
+
const Qe = G(({ className: e, ...t }, o) => /* @__PURE__ */ n(_, { ref: o, "data-testid": "spectral-radio-group-label", className: F("block text-md font-medium", e), ...t }));
|
|
462
464
|
Qe.displayName = "RadioGroup.Label";
|
|
463
465
|
export {
|
|
464
466
|
Xe as RadioGroup,
|
package/dist/Select.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import "./styles/main.css";
|
|
3
|
-
import { jsxs as r, jsx as e, Fragment as
|
|
3
|
+
import { jsxs as r, jsx as e, Fragment as v } from "react/jsx-runtime";
|
|
4
4
|
import "./Icons/AnalyzeIcon.js";
|
|
5
5
|
import "./Icons/AnnotationsIcon.js";
|
|
6
6
|
import "./Icons/ApprovedIcon.js";
|
|
7
7
|
import "./Icons/CalendarIcon.js";
|
|
8
8
|
import "./Icons/CheckCircleIcon.js";
|
|
9
9
|
import "./Icons/CheckSquareIcon.js";
|
|
10
|
-
import { CheckmarkIcon as
|
|
11
|
-
import { ChevronDownIcon as
|
|
10
|
+
import { CheckmarkIcon as Q } from "./Icons/CheckmarkIcon.js";
|
|
11
|
+
import { ChevronDownIcon as n } from "./Icons/ChevronDownIcon.js";
|
|
12
12
|
import "./Icons/ChevronUpIcon.js";
|
|
13
13
|
import "./Icons/ClockIcon.js";
|
|
14
14
|
import "./Icons/CloseCircleIcon.js";
|
|
@@ -32,7 +32,7 @@ import "./Icons/LassoIcon.js";
|
|
|
32
32
|
import "./Icons/LineToolIcon.js";
|
|
33
33
|
import "./Icons/LineToolIcon2.js";
|
|
34
34
|
import "./Icons/LiveViewIcon.js";
|
|
35
|
-
import { LoaderIcon as
|
|
35
|
+
import { LoaderIcon as W } from "./Icons/LoaderIcon.js";
|
|
36
36
|
import "./Icons/LocationIcon.js";
|
|
37
37
|
import "./Icons/LogoutIcon.js";
|
|
38
38
|
import "./Icons/MessagesIcon.js";
|
|
@@ -58,69 +58,88 @@ import "./Icons/WarningIcon.js";
|
|
|
58
58
|
import "./Icons/ZoomAllIcon.js";
|
|
59
59
|
import "./Icons/ZoomXIcon.js";
|
|
60
60
|
import "./Icons/ZoomYIcon.js";
|
|
61
|
-
import { Label as
|
|
62
|
-
import { R as
|
|
63
|
-
import { useFormFieldId as
|
|
61
|
+
import { Label as C } from "./Label.js";
|
|
62
|
+
import { R as X, T as Y, f as Z, e as _, C as $, c as ee, V as te, S as re, d as I, G as ae, I as ie, b as oe, a as se } from "./index-CevVJ05e.js";
|
|
63
|
+
import { useFormFieldId as le, useFormFieldState as de, getAriaProps as me, getErrorMessageId as ne, groupOptions as pe, getFormFieldCSSProperties as ce, getStateClasses as ue, getTriggerClasses as he, ErrorMessage as ge, LoadingState as fe, EmptyState as be, getOptionClasses as xe } from "./utils/formFieldUtils.js";
|
|
64
64
|
import { cn as o } from "./utils/twUtils.js";
|
|
65
|
-
import { forwardRef as
|
|
66
|
-
const
|
|
65
|
+
import { forwardRef as ye, useState as Ne } from "react";
|
|
66
|
+
const Se = ye(
|
|
67
67
|
({
|
|
68
68
|
align: w = "start",
|
|
69
69
|
alignOffset: z = 0,
|
|
70
70
|
className: F,
|
|
71
|
-
collisionPadding:
|
|
72
|
-
defaultValue:
|
|
73
|
-
emptyMessage:
|
|
74
|
-
errorMessage:
|
|
71
|
+
collisionPadding: O = 10,
|
|
72
|
+
defaultValue: j,
|
|
73
|
+
emptyMessage: k = "No options found",
|
|
74
|
+
errorMessage: p,
|
|
75
75
|
id: L,
|
|
76
76
|
label: s,
|
|
77
|
-
labelClassName:
|
|
77
|
+
labelClassName: c,
|
|
78
78
|
loadingMessage: T = "Loading…",
|
|
79
|
-
name:
|
|
79
|
+
name: u,
|
|
80
80
|
onChange: V,
|
|
81
|
-
options:
|
|
81
|
+
options: h = [],
|
|
82
82
|
placeholder: D = "Select an option",
|
|
83
83
|
position: E = "popper",
|
|
84
84
|
side: P = "bottom",
|
|
85
85
|
sideOffset: R = 4,
|
|
86
|
-
state:
|
|
87
|
-
value:
|
|
86
|
+
state: a = "default",
|
|
87
|
+
value: g,
|
|
88
88
|
"aria-label": q,
|
|
89
89
|
"aria-describedby": B,
|
|
90
|
-
...
|
|
90
|
+
...l
|
|
91
91
|
}, G) => {
|
|
92
|
-
const
|
|
93
|
-
if (
|
|
94
|
-
return /* @__PURE__ */ e(
|
|
95
|
-
if (
|
|
96
|
-
return /* @__PURE__ */ e(
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
return /* @__PURE__ */ r(
|
|
100
|
-
/* @__PURE__ */ e(
|
|
101
|
-
/* @__PURE__ */ e(
|
|
92
|
+
const [f, M] = Ne(!1), i = le(L, u), b = ne(i), { isDisabled: d, isLoading: x, isInvalid: A } = de(l.disabled, a), H = me(a, b, B), { groups: y, ungrouped: N } = pe(h), U = () => {
|
|
93
|
+
if (x)
|
|
94
|
+
return /* @__PURE__ */ e(fe, { message: T });
|
|
95
|
+
if (h.length === 0)
|
|
96
|
+
return /* @__PURE__ */ e(be, { message: k });
|
|
97
|
+
const S = (t) => {
|
|
98
|
+
const m = g === t.value;
|
|
99
|
+
return /* @__PURE__ */ r(ie, { className: o(xe(!!t.disabled, !1, m), "relative flex w-full cursor-pointer items-center"), disabled: t.disabled, value: t.value, children: [
|
|
100
|
+
/* @__PURE__ */ e(oe, { className: "block truncate", children: t.label }),
|
|
101
|
+
/* @__PURE__ */ e(se, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "absolute right-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ e(Q, { size: 16 }) }) })
|
|
102
102
|
] }, t.value);
|
|
103
103
|
};
|
|
104
|
-
return /* @__PURE__ */ r(
|
|
105
|
-
N.length > 0 && /* @__PURE__ */ r(
|
|
106
|
-
N.map(
|
|
107
|
-
Object.keys(y).length > 0 && /* @__PURE__ */ e(
|
|
104
|
+
return /* @__PURE__ */ r(v, { children: [
|
|
105
|
+
N.length > 0 && /* @__PURE__ */ r(v, { children: [
|
|
106
|
+
N.map(S),
|
|
107
|
+
Object.keys(y).length > 0 && /* @__PURE__ */ e(I, { className: "-mx-1 my-1 h-px bg-border-secondary" })
|
|
108
108
|
] }),
|
|
109
|
-
Object.entries(y).map(([t,
|
|
110
|
-
|
|
111
|
-
/* @__PURE__ */ e(
|
|
112
|
-
|
|
109
|
+
Object.entries(y).map(([t, m], J) => /* @__PURE__ */ r(ae, { children: [
|
|
110
|
+
J > 0 && /* @__PURE__ */ e(I, { className: "-mx-1 my-1 h-px bg-border-secondary" }),
|
|
111
|
+
/* @__PURE__ */ e(C, { htmlFor: i, className: o("px-2 py-1.5 text-base font-semibold text-text-primary", c), children: t }),
|
|
112
|
+
m.map((K) => S(K))
|
|
113
113
|
] }, t))
|
|
114
114
|
] });
|
|
115
115
|
};
|
|
116
|
-
return /* @__PURE__ */ r("div", { className: "w-full", "data-testid": "select-
|
|
117
|
-
s && /* @__PURE__ */ e(
|
|
118
|
-
/* @__PURE__ */ r(
|
|
119
|
-
/* @__PURE__ */ e(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
return /* @__PURE__ */ r("div", { className: "w-full", "data-testid": "spectral-select-wrapper", children: [
|
|
117
|
+
s && /* @__PURE__ */ e(C, { "data-testid": "spectral-select-label", htmlFor: i, className: o("block mb-4 text-text-primary", c, d && "text-text-secondary"), children: s }),
|
|
118
|
+
/* @__PURE__ */ r(X, { "data-testid": "spectral-select", defaultValue: j, disabled: d, name: u, onOpenChange: M, onValueChange: V, open: f, required: l.required, value: g, children: [
|
|
119
|
+
/* @__PURE__ */ e(
|
|
120
|
+
Y,
|
|
121
|
+
{
|
|
122
|
+
"aria-controls": i,
|
|
123
|
+
"aria-expanded": f,
|
|
124
|
+
"aria-label": q || s,
|
|
125
|
+
asChild: !0,
|
|
126
|
+
className: o(he(!1, a), ue(a), F),
|
|
127
|
+
"data-slot": "select-trigger",
|
|
128
|
+
"data-state": a,
|
|
129
|
+
"data-testid": "spectral-select-trigger",
|
|
130
|
+
id: i,
|
|
131
|
+
ref: G,
|
|
132
|
+
role: "combobox",
|
|
133
|
+
style: ce(),
|
|
134
|
+
...H,
|
|
135
|
+
...l,
|
|
136
|
+
children: /* @__PURE__ */ r("button", { type: "button", disabled: d, children: [
|
|
137
|
+
/* @__PURE__ */ e(Z, { placeholder: D, className: "block truncate" }),
|
|
138
|
+
/* @__PURE__ */ e(_, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "flex items-center", children: x ? /* @__PURE__ */ e(W, { size: 20 }) : /* @__PURE__ */ e(n, { className: "transition-transform duration-200 data-[state=open]:rotate-180", size: 20 }) }) })
|
|
139
|
+
] })
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
/* @__PURE__ */ e($, { align: w, alignOffset: z, "data-slot": "select-content", "data-testid": "spectral-select-content", asChild: !0, collisionPadding: O, position: E, side: P, sideOffset: R, children: /* @__PURE__ */ r(
|
|
124
143
|
"div",
|
|
125
144
|
{
|
|
126
145
|
className: o(
|
|
@@ -140,18 +159,18 @@ const xe = be(
|
|
|
140
159
|
width: "var(--radix-select-trigger-width)"
|
|
141
160
|
},
|
|
142
161
|
children: [
|
|
143
|
-
/* @__PURE__ */ e(
|
|
144
|
-
/* @__PURE__ */ e(
|
|
145
|
-
/* @__PURE__ */ e(
|
|
162
|
+
/* @__PURE__ */ e(ee, { className: "flex cursor-default items-center justify-center py-1", children: /* @__PURE__ */ e(n, { className: "rotate-180", size: 18 }) }),
|
|
163
|
+
/* @__PURE__ */ e(te, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "p-1 max-h-96", style: { position: "relative", overflow: "hidden auto" }, children: U() }) }),
|
|
164
|
+
/* @__PURE__ */ e(re, { className: "flex cursor-default items-center justify-center py-1", children: /* @__PURE__ */ e(n, { size: 18 }) })
|
|
146
165
|
]
|
|
147
166
|
}
|
|
148
167
|
) })
|
|
149
168
|
] }),
|
|
150
|
-
|
|
169
|
+
A && p && /* @__PURE__ */ e(ge, { "data-testid": "spectral-select-error-message", id: b, message: p })
|
|
151
170
|
] });
|
|
152
171
|
}
|
|
153
172
|
);
|
|
154
|
-
|
|
173
|
+
Se.displayName = "Select";
|
|
155
174
|
export {
|
|
156
|
-
|
|
175
|
+
Se as Select
|
|
157
176
|
};
|
package/dist/Slider.js
CHANGED
|
@@ -6,8 +6,8 @@ import { useMemo as de } from "react";
|
|
|
6
6
|
import { c as X } from "./index-rKs9bXHr.js";
|
|
7
7
|
import { u as ue, c as fe, b as _, P as B, a as C } from "./index-BhufZRa2.js";
|
|
8
8
|
import { c as me, u as he } from "./index-UEFPWH8U.js";
|
|
9
|
-
import { u as
|
|
10
|
-
import { u as
|
|
9
|
+
import { u as pe } from "./index-BZPx6jYI.js";
|
|
10
|
+
import { u as Se } from "./index-y6Br5T4h.js";
|
|
11
11
|
import { cn as H } from "./utils/twUtils.js";
|
|
12
12
|
var G = ["PageUp", "PageDown"], W = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], q = {
|
|
13
13
|
"from-left": ["Home", "PageDown", "ArrowDown", "ArrowLeft"],
|
|
@@ -305,7 +305,7 @@ var U = "SliderThumb", ie = c.forwardRef(
|
|
|
305
305
|
}
|
|
306
306
|
), Re = c.forwardRef(
|
|
307
307
|
(e, t) => {
|
|
308
|
-
const { __scopeSlider: o, index: n, name: i, ...l } = e, a = T(U, o), s = ee(U, o), [u, b] = c.useState(null), h = C(t, (D) => b(D)), r = u ? a.form || !!u.closest("form") : !0, d =
|
|
308
|
+
const { __scopeSlider: o, index: n, name: i, ...l } = e, a = T(U, o), s = ee(U, o), [u, b] = c.useState(null), h = C(t, (D) => b(D)), r = u ? a.form || !!u.closest("form") : !0, d = Se(u), p = a.values[n], R = p === void 0 ? 0 : se(p, a.min, a.max), S = De(n, a.values.length), g = d?.[s.size], f = g ? _e(g, R, s.direction) : 0;
|
|
309
309
|
return c.useEffect(() => {
|
|
310
310
|
if (u)
|
|
311
311
|
return a.thumbs.add(u), () => {
|
|
@@ -357,7 +357,7 @@ var U = "SliderThumb", ie = c.forwardRef(
|
|
|
357
357
|
ie.displayName = U;
|
|
358
358
|
var Pe = "RadioBubbleInput", ae = c.forwardRef(
|
|
359
359
|
({ __scopeSlider: e, value: t, ...o }, n) => {
|
|
360
|
-
const i = c.useRef(null), l = C(i, n), a =
|
|
360
|
+
const i = c.useRef(null), l = C(i, n), a = pe(t);
|
|
361
361
|
return c.useEffect(() => {
|
|
362
362
|
const s = i.current;
|
|
363
363
|
if (!s) return;
|
|
@@ -428,7 +428,11 @@ const Ye = ({ className: e, defaultValue: t, disabled: o, max: n = 100, min: i =
|
|
|
428
428
|
return /* @__PURE__ */ j(
|
|
429
429
|
Ie,
|
|
430
430
|
{
|
|
431
|
+
"aria-valuemin": i,
|
|
432
|
+
"aria-valuemax": n,
|
|
433
|
+
"aria-valuenow": p[0],
|
|
431
434
|
"data-slot": "slider",
|
|
435
|
+
"data-testid": "spectral-slider",
|
|
432
436
|
defaultValue: t,
|
|
433
437
|
value: r,
|
|
434
438
|
min: i,
|
|
@@ -4,20 +4,20 @@ type BaseButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'
|
|
|
4
4
|
export type SwitchProps = BaseButtonProps & AsChildProp & {
|
|
5
5
|
checked?: boolean;
|
|
6
6
|
defaultChecked?: boolean;
|
|
7
|
-
|
|
7
|
+
form?: string;
|
|
8
8
|
name?: string;
|
|
9
|
-
|
|
9
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
10
10
|
required?: boolean;
|
|
11
|
-
|
|
11
|
+
value?: string;
|
|
12
12
|
};
|
|
13
13
|
export declare const Switch: import('react').ForwardRefExoticComponent<BaseButtonProps & AsChildProp & {
|
|
14
14
|
checked?: boolean;
|
|
15
15
|
defaultChecked?: boolean;
|
|
16
|
-
|
|
16
|
+
form?: string;
|
|
17
17
|
name?: string;
|
|
18
|
-
|
|
18
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
19
19
|
required?: boolean;
|
|
20
|
-
|
|
20
|
+
value?: string;
|
|
21
21
|
} & import('react').RefAttributes<HTMLButtonElement>>;
|
|
22
22
|
export type SwitchThumbProps = HTMLAttributes<HTMLSpanElement> & AsChildProp;
|
|
23
23
|
export declare const SwitchThumb: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & AsChildProp & import('react').RefAttributes<HTMLSpanElement>>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import "../styles/main.css";
|
|
3
|
-
import { jsx as
|
|
3
|
+
import { jsx as p, jsxs as K } from "react/jsx-runtime";
|
|
4
4
|
import { useControllableState as M } from "../hooks/useControllableState.js";
|
|
5
5
|
import { Slot as g } from "../primitives/slot.js";
|
|
6
6
|
import { cn as x } from "../utils/twUtils.js";
|
|
7
7
|
import { createContext as O, forwardRef as y, useRef as V, useId as $, useEffect as k, useCallback as d, useContext as z } from "react";
|
|
8
|
-
const C = O(null), A = y(({ asChild: u, className: l, checked:
|
|
8
|
+
const C = O(null), A = y(({ asChild: u, className: l, checked: h, defaultChecked: r = !1, onCheckedChange: o, name: f, value: m = "on", required: E, form: S, disabled: n, id: R, onClick: b, onKeyDown: v, children: I, ...N }, P) => {
|
|
9
9
|
const c = V(null), T = $(), j = R ?? `swt-${T}`, [t, s] = M({
|
|
10
|
-
value:
|
|
11
|
-
defaultValue:
|
|
10
|
+
value: h,
|
|
11
|
+
defaultValue: r,
|
|
12
12
|
onChange: o
|
|
13
13
|
});
|
|
14
14
|
k(() => {
|
|
@@ -16,42 +16,33 @@ const C = O(null), A = y(({ asChild: u, className: l, checked: f, defaultChecked
|
|
|
16
16
|
}, [t]), k(() => {
|
|
17
17
|
const e = c.current?.form ?? null;
|
|
18
18
|
if (!e) return;
|
|
19
|
-
const a = () => s(
|
|
19
|
+
const a = () => s(r);
|
|
20
20
|
return e.addEventListener("reset", a), () => e.removeEventListener("reset", a);
|
|
21
|
-
}, [
|
|
22
|
-
const
|
|
21
|
+
}, [r, s]);
|
|
22
|
+
const w = d(() => {
|
|
23
23
|
const e = c.current;
|
|
24
24
|
if (!e) return;
|
|
25
25
|
e.checked = t;
|
|
26
26
|
const a = new Event("change", { bubbles: !0 });
|
|
27
27
|
e.dispatchEvent(a);
|
|
28
28
|
}, [t]), i = d(() => {
|
|
29
|
-
|
|
30
|
-
}, [
|
|
29
|
+
n || (s(!t), queueMicrotask(() => w()));
|
|
30
|
+
}, [n, w, t, s]), D = d(
|
|
31
31
|
(e) => {
|
|
32
32
|
b?.(e), !e.defaultPrevented && i();
|
|
33
33
|
},
|
|
34
34
|
[b, i]
|
|
35
35
|
), L = d(
|
|
36
36
|
(e) => {
|
|
37
|
-
|
|
37
|
+
v?.(e), !e.defaultPrevented && (e.key === " " || e.key === "Enter") && (e.preventDefault(), i());
|
|
38
38
|
},
|
|
39
|
-
[
|
|
39
|
+
[v, i]
|
|
40
40
|
), q = u ? g : "button", F = P;
|
|
41
|
-
return /* @__PURE__ */
|
|
41
|
+
return /* @__PURE__ */ p(C.Provider, { value: { checked: t, disabled: n }, children: /* @__PURE__ */ K(
|
|
42
42
|
q,
|
|
43
43
|
{
|
|
44
|
-
id: j,
|
|
45
|
-
ref: F,
|
|
46
|
-
type: "button",
|
|
47
|
-
role: "switch",
|
|
48
44
|
"aria-checked": t,
|
|
49
|
-
"aria-disabled":
|
|
50
|
-
"data-state": t ? "checked" : "unchecked",
|
|
51
|
-
"data-disabled": r || void 0,
|
|
52
|
-
onClick: D,
|
|
53
|
-
onKeyDown: L,
|
|
54
|
-
disabled: r,
|
|
45
|
+
"aria-disabled": n || void 0,
|
|
55
46
|
className: x(
|
|
56
47
|
"peer border-input inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border",
|
|
57
48
|
"bg-input focus-visible:ring-ring transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
|
|
@@ -59,22 +50,31 @@ const C = O(null), A = y(({ asChild: u, className: l, checked: f, defaultChecked
|
|
|
59
50
|
"data-[state=checked]:bg-primary",
|
|
60
51
|
l
|
|
61
52
|
),
|
|
53
|
+
"data-disabled": n || void 0,
|
|
54
|
+
"data-state": t ? "checked" : "unchecked",
|
|
55
|
+
disabled: n,
|
|
56
|
+
id: j,
|
|
57
|
+
onClick: D,
|
|
58
|
+
onKeyDown: L,
|
|
59
|
+
ref: F,
|
|
60
|
+
role: "switch",
|
|
61
|
+
type: "button",
|
|
62
62
|
...N,
|
|
63
63
|
children: [
|
|
64
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ p(
|
|
65
65
|
"input",
|
|
66
66
|
{
|
|
67
|
-
|
|
68
|
-
type: "checkbox",
|
|
69
|
-
name: m,
|
|
70
|
-
value: p,
|
|
71
|
-
required: E,
|
|
72
|
-
disabled: r,
|
|
73
|
-
form: S,
|
|
67
|
+
"aria-hidden": "true",
|
|
74
68
|
checked: t,
|
|
69
|
+
disabled: n,
|
|
70
|
+
form: S,
|
|
71
|
+
name: f,
|
|
75
72
|
readOnly: !0,
|
|
73
|
+
ref: c,
|
|
74
|
+
required: E,
|
|
76
75
|
tabIndex: -1,
|
|
77
|
-
|
|
76
|
+
type: "checkbox",
|
|
77
|
+
value: m,
|
|
78
78
|
style: {
|
|
79
79
|
position: "absolute",
|
|
80
80
|
opacity: 0,
|
|
@@ -90,17 +90,18 @@ const C = O(null), A = y(({ asChild: u, className: l, checked: f, defaultChecked
|
|
|
90
90
|
) });
|
|
91
91
|
});
|
|
92
92
|
A.displayName = "Switch";
|
|
93
|
-
const B = y(({ asChild: u, className: l, ...
|
|
93
|
+
const B = y(({ asChild: u, className: l, ...h }, r) => {
|
|
94
94
|
const o = z(C);
|
|
95
95
|
if (!o) throw new Error("SwitchThumb must be used within Switch");
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
const f = u ? g : "span", m = r;
|
|
97
|
+
return /* @__PURE__ */ p(
|
|
98
|
+
f,
|
|
98
99
|
{
|
|
99
|
-
ref: n,
|
|
100
|
-
"data-state": o.checked ? "checked" : "unchecked",
|
|
101
|
-
"data-disabled": o.disabled || void 0,
|
|
102
100
|
className: x("bg-background pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform", "translate-x-0 data-[state=checked]:translate-x-5", l),
|
|
103
|
-
|
|
101
|
+
"data-disabled": o.disabled || void 0,
|
|
102
|
+
"data-state": o.checked ? "checked" : "unchecked",
|
|
103
|
+
ref: m,
|
|
104
|
+
...h
|
|
104
105
|
}
|
|
105
106
|
);
|
|
106
107
|
});
|
package/dist/Switch.js
CHANGED
|
@@ -3,39 +3,40 @@ import "./styles/main.css";
|
|
|
3
3
|
import { jsxs as w, jsx as t } from "react/jsx-runtime";
|
|
4
4
|
import { Switch as p, SwitchThumb as k } from "./Switch/SwitchBase.js";
|
|
5
5
|
import { Label as r } from "./Label.js";
|
|
6
|
-
import { cn as
|
|
6
|
+
import { cn as o } from "./utils/twUtils.js";
|
|
7
7
|
import { forwardRef as x } from "react";
|
|
8
|
-
const v = x(({ className:
|
|
9
|
-
const
|
|
10
|
-
return /* @__PURE__ */ w("div", { className: "flex items-center", "data-testid": "switch-container", children: [
|
|
11
|
-
i === "left" && !a && /* @__PURE__ */ t(r, { htmlFor: e, className: "mr-2", "data-testid": "switch-label-left", children: s }),
|
|
8
|
+
const v = x(({ className: l, disabled: d, id: e, labelPosition: i = "right", labelText: s, name: h, onChange: b, required: n, value: m, hideLabel: a = !1, variant: u, ...f }, g) => {
|
|
9
|
+
const c = u === "squared";
|
|
10
|
+
return /* @__PURE__ */ w("div", { className: "flex items-center", "data-testid": "spectral-switch-container", children: [
|
|
11
|
+
i === "left" && !a && /* @__PURE__ */ t(r, { htmlFor: e, className: "mr-2", "data-testid": "spectral-switch-label-left", children: s }),
|
|
12
12
|
/* @__PURE__ */ t(
|
|
13
13
|
p,
|
|
14
14
|
{
|
|
15
|
-
"
|
|
16
|
-
className:
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
"aria-required": n,
|
|
16
|
+
className: o(
|
|
17
|
+
c ? "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",
|
|
18
|
+
l
|
|
19
19
|
),
|
|
20
|
+
"data-testid": "spectral-switch-root",
|
|
20
21
|
disabled: d,
|
|
21
22
|
id: e,
|
|
22
|
-
name:
|
|
23
|
-
onCheckedChange:
|
|
23
|
+
name: h,
|
|
24
|
+
onCheckedChange: b,
|
|
25
|
+
ref: g,
|
|
26
|
+
required: n,
|
|
24
27
|
value: m,
|
|
25
|
-
required: b,
|
|
26
28
|
...f,
|
|
27
|
-
ref: g,
|
|
28
29
|
children: /* @__PURE__ */ t(
|
|
29
30
|
k,
|
|
30
31
|
{
|
|
31
|
-
className:
|
|
32
|
-
|
|
32
|
+
className: o(
|
|
33
|
+
c ? "bg-switch-thumb pointer-events-none block size-5 rounded-full shadow-xs ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0 data-[state=checked]:rtl:-translate-x-4" : "bg-switch-thumb pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
33
34
|
)
|
|
34
35
|
}
|
|
35
36
|
)
|
|
36
37
|
}
|
|
37
38
|
),
|
|
38
|
-
i === "right" && !a && /* @__PURE__ */ t(r, { htmlFor: e, id: `${e}-label`, className: "ml-2", "data-testid": "switch-label-right", children: s }),
|
|
39
|
+
i === "right" && !a && /* @__PURE__ */ t(r, { htmlFor: e, id: `${e}-label`, className: "ml-2", "data-testid": "spectral-switch-label-right", children: s }),
|
|
39
40
|
a && /* @__PURE__ */ t(r, { htmlFor: e, className: "sr-only", children: s })
|
|
40
41
|
] });
|
|
41
42
|
});
|