@spear-ai/spectral 1.11.3 → 1.12.1

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 (123) hide show
  1. package/README.md +4 -0
  2. package/dist/.js +124 -121
  3. package/dist/{Accordion-CDXdSAST.js → Accordion-Cyrb2byI.js} +1 -1
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Alert/AlertBase.js +1 -1
  6. package/dist/Alert.js +3 -3
  7. package/dist/{AnimatePresence-D-9jXfgI.js → AnimatePresence-D9FLxIGV.js} +1 -1
  8. package/dist/Avatar.js +46 -48
  9. package/dist/Badge.js +1 -1
  10. package/dist/Button.js +1 -1
  11. package/dist/ButtonGroup/ButtonGroupButton.js +1 -1
  12. package/dist/ButtonGroup.js +1 -1
  13. package/dist/ButtonIcon.js +1 -1
  14. package/dist/{Calendar-s4lyijkn.js → Calendar-2UVWeLYp.js} +4 -4
  15. package/dist/Checkbox/CheckboxBase.js +1 -1
  16. package/dist/Checkbox.d.ts +10 -3
  17. package/dist/Checkbox.js +55 -35
  18. package/dist/{es2015-YHaMV-St.js → Combination-9q50p_Vu.js} +251 -254
  19. package/dist/Combobox/ComboboxBase.js +492 -3
  20. package/dist/Combobox-Ch5Rxk5v.js +6360 -0
  21. package/dist/Combobox.d.ts +5 -3
  22. package/dist/Combobox.js +3 -143
  23. package/dist/ControlGroup/ControlGroupSelect.d.ts +5 -2
  24. package/dist/ControlGroup/ControlGroupSelect.js +32 -29
  25. package/dist/ControlGroup.d.ts +3 -2
  26. package/dist/ControlGroup.js +41 -33
  27. package/dist/DataCard/Card.js +1 -1
  28. package/dist/DataCard.js +1 -1
  29. package/dist/DateTimePicker/Calendar.js +1 -1
  30. package/dist/DateTimePicker/DateTimeDisplayInput.js +84 -83
  31. package/dist/DateTimePicker/DateTimeInput.js +2 -2
  32. package/dist/DateTimePicker/DateTimeUtils.js +1 -1
  33. package/dist/DateTimePicker/TimePeriodSelect.js +32 -35
  34. package/dist/DateTimePicker/TimePicker.js +2 -2
  35. package/dist/DateTimePicker.d.ts +1 -1
  36. package/dist/DateTimePicker.js +55 -52
  37. package/dist/{DateTimeUtils-DVvG6H-p.js → DateTimeUtils-DrR2JWoU.js} +1 -1
  38. package/dist/Dialog.js +3 -3
  39. package/dist/Drawer.js +1 -1
  40. package/dist/DropdownMenu.d.ts +61 -0
  41. package/dist/DropdownMenu.js +869 -0
  42. package/dist/{HoverCard-CYDsIiVK.js → HoverCard-BGpW6LnA.js} +3 -3
  43. package/dist/HoverCard.js +1 -1
  44. package/dist/Icons/AdjustmentsIcon.d.ts +5 -0
  45. package/dist/Icons/AdjustmentsIcon.js +78 -0
  46. package/dist/Icons/MenuDotsIcon.d.ts +5 -0
  47. package/dist/Icons/MenuDotsIcon.js +36 -0
  48. package/dist/Icons/MenuIcon.d.ts +5 -0
  49. package/dist/Icons/MenuIcon.js +36 -0
  50. package/dist/Icons/index.d.ts +3 -0
  51. package/dist/Icons.js +81 -78
  52. package/dist/IconsAnimated/PanelLeftCloseIcon.js +3 -3
  53. package/dist/IconsAnimated/PanelLeftOpenIcon.js +3 -3
  54. package/dist/Input.js +1 -1
  55. package/dist/InputNumeric.js +1 -1
  56. package/dist/{InputOTP-cVn5Bzyp.js → InputOTP-BkSw_KIB.js} +12 -10
  57. package/dist/InputOTP.js +1 -1
  58. package/dist/Kbd.js +1 -1
  59. package/dist/Label.js +1 -1
  60. package/dist/MultiSelect/MultiSelectBase.d.ts +6 -4
  61. package/dist/MultiSelect/MultiSelectBase.js +222 -201
  62. package/dist/MultiSelect.d.ts +2 -1
  63. package/dist/MultiSelect.js +14 -12
  64. package/dist/Popover.js +2 -2
  65. package/dist/RadioButton.js +1 -1
  66. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +1 -1
  67. package/dist/RadioButtonGroup.js +1 -1
  68. package/dist/RadioGroup-CfjhpW5o.js +328 -0
  69. package/dist/RadioGroup.d.ts +7 -0
  70. package/dist/RadioGroup.js +1 -1
  71. package/dist/Select.d.ts +5 -2
  72. package/dist/Select.js +97 -85
  73. package/dist/Separator.js +1 -1
  74. package/dist/Skeleton.js +1 -1
  75. package/dist/{Slider-BzzZT3Zm.js → Slider-mODhqkCs.js} +4 -4
  76. package/dist/Slider.js +1 -1
  77. package/dist/Switch-Wj_zov--.js +144 -0
  78. package/dist/Switch.d.ts +12 -3
  79. package/dist/Switch.js +1 -1
  80. package/dist/Tabs/TabsBase.js +4 -4
  81. package/dist/Tabs.js +1 -1
  82. package/dist/Textarea.d.ts +3 -2
  83. package/dist/Textarea.js +50 -45
  84. package/dist/{Toast-9zqXxKKO.js → Toast-CJvzLlMD.js} +1 -1
  85. package/dist/Toast.js +1 -1
  86. package/dist/Toggle.js +1 -1
  87. package/dist/ToggleGroup.js +1 -1
  88. package/dist/{Tooltip-D1K8kY1y.js → Tooltip-DH_BzFye.js} +5 -5
  89. package/dist/Tooltip.js +1 -1
  90. package/dist/Tray.js +5 -5
  91. package/dist/{chunk-h9knIhTc.js → chunk-C4rFPcKS.js} +1 -1
  92. package/dist/dist-BMu6Dgh_.js +149 -0
  93. package/dist/{dist-fW81qjVl.js → dist-C9fJjxxB.js} +41 -41
  94. package/dist/{dist-C0Hifjgh.js → dist-Cv8I-d2q.js} +2 -2
  95. package/dist/{dist-B9tup-4O.js → dist-D6QANKSj.js} +5 -5
  96. package/dist/{dist-3Af8168y.js → dist-Tbzy5UFA.js} +1 -1
  97. package/dist/{dist-B2k1iWFp.js → dist-jQ7HawWM.js} +1 -1
  98. package/dist/{dist-BtdmHAzK.js → dist-nYKAWiy4.js} +6 -6
  99. package/dist/main.js +1 -1
  100. package/dist/primitives/button.js +1 -1
  101. package/dist/primitives/input-group.js +1 -1
  102. package/dist/primitives/input.js +1 -1
  103. package/dist/primitives/popover.js +2 -2
  104. package/dist/primitives/select.js +40 -40
  105. package/dist/primitives/textarea.js +1 -1
  106. package/dist/{proxy-Dn10Pl_g.js → proxy-CCB7C4Pu.js} +10 -10
  107. package/dist/styles/spectral.css +1 -1
  108. package/dist/{twUtils-VNWgstKL.js → twUtils-D_qzdiwM.js} +1 -1
  109. package/dist/{use-animation-CBUDycyW.js → use-animation-C-qL83hj.js} +1 -1
  110. package/dist/utils/formFieldUtils.d.ts +15 -1
  111. package/dist/utils/formFieldUtils.d.ts.map +1 -1
  112. package/dist/utils/formFieldUtils.js +35 -19
  113. package/dist/utils/twUtils.js +1 -1
  114. package/package.json +27 -22
  115. package/dist/ComboboxBase-qX-mQhT6.js +0 -491
  116. package/dist/RadioGroup-w_q6RGEK.js +0 -447
  117. package/dist/Switch-CVzRJ-0n.js +0 -126
  118. /package/dist/{dist-Bfjk-jx9.js → dist-ChNh3U3S.js} +0 -0
  119. /package/dist/{dist-B4FgboI8.js → dist-Cujfuel1.js} +0 -0
  120. /package/dist/{dist-D8Wb_MX9.js → dist-DDjUcieO.js} +0 -0
  121. /package/dist/{dist-s1uWaZYZ.js → dist-DFT13f_s.js} +0 -0
  122. /package/dist/{dist-ClmepHp4.js → dist-DIt8FP2G.js} +0 -0
  123. /package/dist/{dist-BK1K0g9W.js → dist-K0_i37VL.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { KeyboardEvent, ReactNode } from 'react';
1
+ import { CSSProperties, KeyboardEvent, ReactNode } from 'react';
2
2
  export type FormFieldState = 'default' | 'error' | 'warning' | 'disabled' | 'loading' | 'success';
3
3
  export interface BaseFormFieldProps {
4
4
  disabled?: boolean;
@@ -22,6 +22,19 @@ export interface BaseOption {
22
22
  value: string;
23
23
  }
24
24
  export type DropdownWidth = 'trigger' | 'content' | (string & {});
25
+ export type DropdownWidthMode = 'trigger' | 'content' | 'custom';
26
+ interface DropdownWidthStyleConfig {
27
+ dropdownWidth: DropdownWidth;
28
+ triggerStyleWidth?: string;
29
+ triggerWidth: string;
30
+ viewportMaxWidth?: string;
31
+ }
32
+ export declare const getDropdownWidthStyles: ({ dropdownWidth, triggerStyleWidth, triggerWidth, viewportMaxWidth, }: DropdownWidthStyleConfig) => {
33
+ dropdownOverflowStyle: CSSProperties;
34
+ dropdownWidthMode: DropdownWidthMode;
35
+ dropdownWidthStyle: CSSProperties;
36
+ resolvedDropdownWidth: string;
37
+ };
25
38
  export declare const getStateClasses: (state: FormFieldState) => string;
26
39
  export declare const getTriggerClasses: (isOpen: boolean | undefined, state: FormFieldState, className?: string) => string;
27
40
  export declare const getDropdownClasses: (isOpen: boolean, position?: "top" | "bottom") => string;
@@ -79,4 +92,5 @@ export declare const WarningMessage: ({ className, id, dataTestId, message }: {
79
92
  }) => import("react/jsx-runtime").JSX.Element | null;
80
93
  export declare const getOptionClasses: (isDisabled: boolean | undefined, isFocused: boolean, isSelected: boolean) => string;
81
94
  export declare const scrollIntoView: (element: HTMLElement | null) => void;
95
+ export {};
82
96
  //# sourceMappingURL=formFieldUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formFieldUtils.d.ts","sourceRoot":"","sources":["../../src/utils/formFieldUtils.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formFieldUtils.d.ts","sourceRoot":"","sources":["../../src/utils/formFieldUtils.tsx"],"names":[],"mappings":"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"}
@@ -1,37 +1,53 @@
1
1
  "use client";
2
- import { t as e } from "../twUtils-VNWgstKL.js";
2
+ import { t as e } from "../twUtils-D_qzdiwM.js";
3
3
  import { useCallback as t, useEffect as n, useId as r, useRef as i, useState as a } from "react";
4
4
  import { jsx as o } from "react/jsx-runtime";
5
5
  //#region src/utils/formFieldUtils.tsx
6
- var s = (e) => ({
6
+ var s = ({ dropdownWidth: e, triggerStyleWidth: t, triggerWidth: n, viewportMaxWidth: r = "calc(100vw - 2rem)" }) => {
7
+ let i = e === "trigger" ? "trigger" : e === "content" ? "content" : "custom", a = e === "trigger" ? n : e === "content" ? "max-content" : e, o = {
8
+ maxWidth: r,
9
+ overflowX: "auto",
10
+ overflowY: "auto"
11
+ };
12
+ return {
13
+ dropdownOverflowStyle: o,
14
+ dropdownWidthMode: i,
15
+ dropdownWidthStyle: e === "trigger" ? { width: t ?? n } : {
16
+ width: a,
17
+ ...e === "content" ? { minWidth: "max-content" } : {},
18
+ ...o
19
+ },
20
+ resolvedDropdownWidth: a
21
+ };
22
+ }, c = (e) => ({
7
23
  success: "border-success-400 hover:border-success-500 focus-visible:border-success-400 focus-visible:outline-success-400",
8
24
  error: "border-danger-400 hover:border-danger-500 focus-visible:border-danger-400 focus-visible:outline-danger-400",
9
25
  warning: "border-warning-400 hover:border-warning-400 focus-visible:border-warning-400 focus-visible:outline-warning-400",
10
26
  loading: "cursor-wait border-input-border--disabled pointer-events-none",
11
27
  disabled: "cursor-not-allowed opacity-50 border-input-border--disabled text-input-text--disabled",
12
28
  default: ""
13
- })[e], c = (t = !1, n, r) => e("h-12 rounded-lg px-4 text-base flex w-full items-center justify-between border-2 border-input-border bg-input-bg", "text-input-text transition duration-200 hover:border-input-border--hover focus:border-input-border--focus focus:outline-none", "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-input-border--focus", "disabled:cursor-not-allowed disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:opacity-50", t && "border-input-border--focus outline outline-2 outline-offset-2 outline-input-border--focus", s(n), r), l = (t, n = "bottom") => {
29
+ })[e], l = (t = !1, n, r) => e("h-12 rounded-lg px-4 text-base flex w-full items-center justify-between border-2 border-input-border bg-input-bg", "text-input-text transition duration-200 hover:border-input-border--hover focus:border-input-border--focus focus:outline-none", "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-input-border--focus", "disabled:cursor-not-allowed disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:opacity-50", t && "border-input-border--focus outline outline-2 outline-offset-2 outline-input-border--focus", c(n), r), u = (t, n = "bottom") => {
14
30
  let r = n === "bottom" ? "top-full mt-1 origin-top" : "bottom-full mb-1 origin-bottom", i = n === "bottom" ? t ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 -translate-y-1 pointer-events-none" : t ? "scale-100 opacity-100 translate-y-0" : "scale-95 opacity-0 translate-y-1 pointer-events-none";
15
- return e("left-0 right-0 absolute z-50", u(), "transition-[opacity,transform] duration-150 motion-reduce:transform-none motion-reduce:transition-none", "will-change-[opacity,transform]", r, i);
16
- }, u = () => "rounded-lg border border-input-border bg-input-bg shadow-md", d = (t, n) => e("peer h-12 rounded-md ps-3 pe-12 text-base flex w-full border-2 border-input-border bg-input-bg transition duration-200", "placeholder:text-input-text-placeholder hover:border-input-border--hover focus:border-input-border--focus focus:outline-none", "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-input-border--focus", "disabled:pointer-events-none disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:text-input-text--disabled", s(t), n), f = (t, n) => e("peer h-24 rounded-md p-3 text-base flex w-full resize-none border-2 border-input-border bg-input-bg transition duration-200", "placeholder:text-input-text-placeholder hover:border-input-border--hover focus:border-input-border--focus focus:outline-none", "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-input-border--focus", "disabled:pointer-events-none disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:text-input-text--disabled", s(t), n), p = (e, t) => {
31
+ return e("left-0 right-0 absolute z-50", d(), "transition-[opacity,transform] duration-150 motion-reduce:transform-none motion-reduce:transition-none", "will-change-[opacity,transform]", r, i);
32
+ }, d = () => "rounded-lg border border-input-border bg-input-bg shadow-md", f = (t, n) => e("peer h-12 rounded-md ps-3 pe-12 text-base flex w-full border-2 border-input-border bg-input-bg transition duration-200", "placeholder:text-input-text-placeholder hover:border-input-border--hover focus:border-input-border--focus focus:outline-none", "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-input-border--focus", "disabled:pointer-events-none disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:text-input-text--disabled", c(t), n), p = (t, n) => e("peer h-24 rounded-md p-3 text-base flex w-full resize-none border-2 border-input-border bg-input-bg transition duration-200", "placeholder:text-input-text-placeholder hover:border-input-border--hover focus:border-input-border--focus focus:outline-none", "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-input-border--focus", "disabled:pointer-events-none disabled:border-input-border--disabled disabled:bg-input-bg--disabled disabled:text-input-text--disabled", c(t), n), m = (e, t) => {
17
33
  let n = r();
18
34
  if (e) return e;
19
35
  let i = t?.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9\-_.:]/g, "");
20
36
  return i ? `${i}-${n}` : n;
21
- }, m = (e) => `${e}-error`, h = (t, n, r, i) => ({
37
+ }, h = (e) => `${e}-error`, g = (t, n, r, i) => ({
22
38
  "aria-invalid": t === "error",
23
39
  "aria-required": r,
24
40
  "aria-describedby": e((t === "error" || t === "warning") && i, n) || void 0
25
- }), g = (e = {}) => ({
41
+ }), _ = (e = {}) => ({
26
42
  "--field-border-radius": "0.5rem",
27
43
  "--field-height": "3rem",
28
44
  "--field-padding": "1rem",
29
45
  ...e
30
- }), _ = (e, t = "default") => ({
46
+ }), v = (e, t = "default") => ({
31
47
  isDisabled: e ?? t === "disabled",
32
48
  isLoading: t === "loading",
33
49
  isInvalid: t === "error"
34
- }), v = (e) => {
50
+ }), y = (e) => {
35
51
  let t = i(null);
36
52
  return n(() => {
37
53
  let n = (n) => {
@@ -39,7 +55,7 @@ var s = (e) => ({
39
55
  };
40
56
  return document.addEventListener("mousedown", n), () => document.removeEventListener("mousedown", n);
41
57
  }, [e]), t;
42
- }, y = (e, r = !1, i, o, s, c) => {
58
+ }, b = (e, r = !1, i, o, s, c) => {
43
59
  let [l, u] = a(-1);
44
60
  n(() => {
45
61
  if (e) if (r) u(0);
@@ -103,7 +119,7 @@ var s = (e) => ({
103
119
  ]),
104
120
  isOpen: e
105
121
  };
106
- }, b = (e) => {
122
+ }, x = (e) => {
107
123
  let t = {}, n = [];
108
124
  return e.forEach((e) => {
109
125
  e.group ? (t[e.group] || (t[e.group] = []), t[e.group].push(e)) : n.push(e);
@@ -112,17 +128,17 @@ var s = (e) => ({
112
128
  ungrouped: n,
113
129
  hasGroups: Object.keys(t).length > 0
114
130
  };
115
- }, x = ({ className: t, message: n = "Loading…" }) => /* @__PURE__ */ o("div", {
131
+ }, S = ({ className: t, message: n = "Loading…" }) => /* @__PURE__ */ o("div", {
116
132
  "aria-live": "polite",
117
133
  className: e("gap-2 py-6 text-base text-input-text-secondary flex items-center justify-center", t),
118
134
  role: "status",
119
135
  children: n
120
- }), S = ({ className: t, message: n = "No options found" }) => /* @__PURE__ */ o("div", {
136
+ }), C = ({ className: t, message: n = "No options found" }) => /* @__PURE__ */ o("div", {
121
137
  className: e("py-6 text-base text-center text-text-secondary", t),
122
138
  role: "status",
123
139
  children: n
124
- }), C = (e) => e ? typeof e == "string" ? e : Array.isArray(e) ? e.join(", ") : typeof e == "object" ? e.message ? e.message : e.error ? e.error : e.details ? e.details : JSON.stringify(e) : String(e) : null, w = ({ className: t, id: n, dataTestId: r, message: i }) => {
125
- let a = C(i);
140
+ }), w = (e) => e ? typeof e == "string" ? e : Array.isArray(e) ? e.join(", ") : typeof e == "object" ? e.message ? e.message : e.error ? e.error : e.details ? e.details : JSON.stringify(e) : String(e) : null, T = ({ className: t, id: n, dataTestId: r, message: i }) => {
141
+ let a = w(i);
126
142
  return a ? /* @__PURE__ */ o("p", {
127
143
  "aria-atomic": "true",
128
144
  "aria-live": "assertive",
@@ -132,8 +148,8 @@ var s = (e) => ({
132
148
  role: "alert",
133
149
  children: a
134
150
  }) : null;
135
- }, T = ({ className: t, id: n, dataTestId: r, message: i }) => {
136
- let a = C(i);
151
+ }, E = ({ className: t, id: n, dataTestId: r, message: i }) => {
152
+ let a = w(i);
137
153
  return a ? /* @__PURE__ */ o("p", {
138
154
  "aria-atomic": "true",
139
155
  "aria-live": "polite",
@@ -143,11 +159,11 @@ var s = (e) => ({
143
159
  role: "status",
144
160
  children: a
145
161
  }) : null;
146
- }, E = (t = !1, n, r) => e("rounded-sm py-1.5 pl-2 pr-8 text-base relative flex w-full cursor-pointer items-center outline-none select-none hover:bg-input-bg--hover", n && "bg-input-bg--hover", r && "bg-input-bg--selected text-input-text", t && "pointer-events-none text-input-text--disabled"), D = (e) => {
162
+ }, D = (t = !1, n, r) => e("rounded-sm py-1.5 pl-2 pr-8 text-base relative flex w-full cursor-pointer items-center outline-none select-none hover:bg-input-bg--hover", n && "bg-input-bg--hover", r && "bg-input-bg--selected text-input-text", t && "pointer-events-none text-input-text--disabled"), O = (e) => {
147
163
  e && e.scrollIntoView({
148
164
  block: "nearest",
149
165
  behavior: "smooth"
150
166
  });
151
167
  };
152
168
  //#endregion
153
- export { S as EmptyState, w as ErrorMessage, x as LoadingState, T as WarningMessage, h as getAriaProps, l as getDropdownClasses, u as getDropdownSurfaceClasses, m as getErrorMessageId, g as getFormFieldCSSProperties, d as getInputClasses, E as getOptionClasses, s as getStateClasses, f as getTextareaClasses, c as getTriggerClasses, b as groupOptions, D as scrollIntoView, v as useClickOutside, p as useFormFieldId, _ as useFormFieldState, y as useKeyboardNavigation };
169
+ export { C as EmptyState, T as ErrorMessage, S as LoadingState, E as WarningMessage, g as getAriaProps, u as getDropdownClasses, d as getDropdownSurfaceClasses, s as getDropdownWidthStyles, h as getErrorMessageId, _ as getFormFieldCSSProperties, f as getInputClasses, D as getOptionClasses, c as getStateClasses, p as getTextareaClasses, l as getTriggerClasses, x as groupOptions, O as scrollIntoView, y as useClickOutside, m as useFormFieldId, v as useFormFieldState, b as useKeyboardNavigation };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../twUtils-VNWgstKL.js";
1
+ import { t as e } from "../twUtils-D_qzdiwM.js";
2
2
  export { e as cn };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spear-ai/spectral",
3
- "version": "1.11.3",
3
+ "version": "1.12.1",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {
@@ -50,8 +50,10 @@
50
50
  }
51
51
  },
52
52
  "dependencies": {
53
+ "@base-ui/react": "^1.4.1",
53
54
  "@radix-ui/react-accordion": "^1.2.12",
54
55
  "@radix-ui/react-dialog": "^1.1.15",
56
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
55
57
  "@radix-ui/react-hover-card": "^1.1.15",
56
58
  "@radix-ui/react-popover": "^1.1.15",
57
59
  "@radix-ui/react-radio-group": "^1.3.8",
@@ -68,7 +70,7 @@
68
70
  "motion": "^12.38.0",
69
71
  "react-day-picker": "^9.14.0",
70
72
  "react-remove-scroll": "^2.7.2",
71
- "react-router": "^7.13.2",
73
+ "react-router": "^7.14.2",
72
74
  "react-use-measure": "^2.1.7",
73
75
  "sonner": "^2.0.7",
74
76
  "tailwind-merge": "^3.5.0",
@@ -78,45 +80,45 @@
78
80
  "zod": "^4.3.6"
79
81
  },
80
82
  "devDependencies": {
81
- "@changesets/cli": "^2.30.0",
83
+ "@changesets/cli": "^2.31.0",
82
84
  "@chromatic-com/storybook": "^4.1.3",
83
85
  "@github-ui/storybook-addon-performance-panel": "^1.1.4",
84
- "@sentry/react": "^10.41.0",
86
+ "@sentry/react": "^10.50.0",
85
87
  "@sentry/vite-plugin": "^4.9.1",
86
- "@storybook/addon-docs": "^10.3.4",
87
- "@storybook/addon-themes": "^10.3.4",
88
- "@storybook/addon-vitest": "^10.3.4",
89
- "@storybook/builder-vite": "^10.3.4",
90
- "@storybook/react-vite": "^10.3.4",
91
- "@tailwindcss/vite": "^4.2.2",
88
+ "@storybook/addon-docs": "^10.3.5",
89
+ "@storybook/addon-themes": "^10.3.5",
90
+ "@storybook/addon-vitest": "^10.3.5",
91
+ "@storybook/builder-vite": "^10.3.5",
92
+ "@storybook/react-vite": "^10.3.5",
93
+ "@tailwindcss/vite": "^4.2.4",
92
94
  "@testing-library/jest-dom": "^6.9.1",
93
95
  "@testing-library/react": "^16.3.2",
94
96
  "@testing-library/user-event": "^14.6.1",
95
- "@types/node": "^24.12.0",
97
+ "@types/node": "^24.12.2",
96
98
  "@types/react": "^19.2.14",
97
99
  "@types/react-dom": "^19.2.3",
98
100
  "@vitejs/plugin-react": "^6.0.1",
99
- "@vitest/browser": "^4.1.2",
100
- "@vitest/browser-playwright": "^4.1.2",
101
- "@vitest/coverage-v8": "^4.1.2",
102
- "@vitest/ui": "^4.1.2",
101
+ "@vitest/browser": "^4.1.5",
102
+ "@vitest/browser-playwright": "^4.1.5",
103
+ "@vitest/coverage-v8": "^4.1.5",
104
+ "@vitest/ui": "^4.1.5",
103
105
  "eslint-plugin-jsx-a11y": "^6.10.2",
104
106
  "glob": "^13.0.6",
105
107
  "http-server": "^14.1.1",
106
- "oxlint": "^1.58.0",
108
+ "oxfmt": "^0.43.0",
109
+ "oxlint": "^1.61.0",
107
110
  "oxlint-tsgolint": "^0.11.5",
108
111
  "playwright": "^1.58.2",
109
- "oxfmt": "^0.43.0",
110
- "storybook": "^10.2.14",
112
+ "storybook": "^10.3.5",
111
113
  "stylelint": "^16.26.1",
112
114
  "stylelint-config-standard": "^39.0.1",
113
- "tailwindcss": "^4.2.2",
115
+ "tailwindcss": "^4.2.4",
114
116
  "typescript": "^5.9.3",
115
- "vite": "^8.0.5",
117
+ "vite": "^8.0.10",
116
118
  "vite-bundle-visualizer": "^1.2.1",
117
119
  "vite-plugin-dts": "^4.5.4",
118
- "vitest": "^4.1.2",
119
- "vitest-browser-react": "^2.1.0"
120
+ "vitest": "^4.1.5",
121
+ "vitest-browser-react": "^2.2.0"
120
122
  },
121
123
  "peerDependencies": {
122
124
  "react": "^18.0.0 || ^19.0.0",
@@ -151,10 +153,13 @@
151
153
  "changeset": "changeset",
152
154
  "changeset:version": "changeset version",
153
155
  "changeset:publish": "changeset publish",
156
+ "changelog:generate": "node scripts/generate-storybook-changelog.js",
157
+ "release:version": "pnpm run changeset:version && pnpm run changelog:generate",
154
158
  "clean": "rm -rf $(find dist -maxdepth 1 ! -name \"node_modules\") && rm pnpm-lock.yaml",
155
159
  "clean:build-artifacts": "find .storybook -name '*.js' -not -name '*.config.js' -delete && find .storybook -name '*.d.ts' -delete && find . -name '*.d.ts' -path './vite.config.d.ts' -delete && rm -rf storybook-static",
156
160
  "icons:update": "node scripts/update-icons-index.js",
157
161
  "test": "vitest run",
162
+ "test:form-fields": "vitest run src/components/Select/Select.test.tsx src/components/Combobox/Combobox.test.tsx src/components/MultiSelect/MultiSelect.test.tsx src/components/Textarea/Textarea.test.tsx src/components/DateTimePicker/DateTimePicker.test.tsx src/components/InputOTP/InputOTP.test.tsx src/components/Checkbox/Checkbox.test.tsx src/components/Switch/Switch.test.tsx src/components/RadioGroup/RadioGroup.test.tsx src/components/ControlGroup/ControlGroupSelect.test.tsx",
158
163
  "test:watch": "vitest",
159
164
  "test:ui": "vitest --ui",
160
165
  "test:coverage": "vitest run --coverage"