@arcadeai/design-system 0.6.2 → 0.6.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.
@@ -2,7 +2,7 @@ import { Slot } from '@radix-ui/react-slot';
2
2
  import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
3
3
  import type * as LabelPrimitive from '@radix-ui/react-label';
4
4
  import * as React from 'react';
5
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
5
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues extends FieldValues | undefined = undefined>(props: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
6
6
  declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
7
7
  declare const useFormField: () => {
8
8
  invalid: boolean;
@@ -1,79 +1,92 @@
1
- import { jsx as m } from "react/jsx-runtime";
2
- import { S as W } from "../../../index-CB1Wkg0G.js";
3
- import * as y from "react";
4
- import i from "react";
5
- import { Label as G } from "./label.js";
6
- import { c as p } from "../../../utils-Dy2WjYNJ.js";
7
- var j = (e) => e.type === "checkbox", K = (e) => e instanceof Date, O = (e) => e == null;
8
- const q = (e) => typeof e == "object";
9
- var b = (e) => !O(e) && !Array.isArray(e) && q(e) && !K(e), z = (e) => b(e) && e.target ? j(e.target) ? e.target.checked : e.target.value : e, J = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, Q = (e, o) => e.has(J(o)), X = (e) => {
10
- const o = e.constructor && e.constructor.prototype;
11
- return b(o) && o.hasOwnProperty("isPrototypeOf");
12
- }, Y = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
13
- function L(e) {
14
- let o;
15
- const t = Array.isArray(e), s = typeof FileList < "u" ? e instanceof FileList : !1;
1
+ import { jsx as y } from "react/jsx-runtime";
2
+ import { S as N } from "../../../index-CB1Wkg0G.js";
3
+ import * as p from "react";
4
+ import a from "react";
5
+ import { Label as U } from "./label.js";
6
+ import { c as h } from "../../../utils-Dy2WjYNJ.js";
7
+ var $ = (e) => e.type === "checkbox", T = (e) => e instanceof Date, E = (e) => e == null;
8
+ const W = (e) => typeof e == "object";
9
+ var _ = (e) => !E(e) && !Array.isArray(e) && W(e) && !T(e), H = (e) => _(e) && e.target ? $(e.target) ? e.target.checked : e.target.value : e, G = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, K = (e, r) => e.has(G(r)), q = (e) => {
10
+ const r = e.constructor && e.constructor.prototype;
11
+ return _(r) && r.hasOwnProperty("isPrototypeOf");
12
+ }, z = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
13
+ function I(e) {
14
+ let r;
15
+ const t = Array.isArray(e), o = typeof FileList < "u" ? e instanceof FileList : !1;
16
16
  if (e instanceof Date)
17
- o = new Date(e);
17
+ r = new Date(e);
18
18
  else if (e instanceof Set)
19
- o = new Set(e);
20
- else if (!(Y && (e instanceof Blob || s)) && (t || b(e)))
21
- if (o = t ? [] : {}, !t && !X(e))
22
- o = e;
19
+ r = new Set(e);
20
+ else if (!(z && (e instanceof Blob || o)) && (t || _(e)))
21
+ if (r = t ? [] : {}, !t && !q(e))
22
+ r = e;
23
23
  else
24
- for (const r in e)
25
- e.hasOwnProperty(r) && (o[r] = L(e[r]));
24
+ for (const s in e)
25
+ e.hasOwnProperty(s) && (r[s] = I(e[s]));
26
26
  else
27
27
  return e;
28
- return o;
28
+ return r;
29
29
  }
30
- var M = (e) => /^\w*$/.test(e), V = (e) => e === void 0, Z = (e) => Array.isArray(e) ? e.filter(Boolean) : [], B = (e) => Z(e.replace(/["|']|\]/g, "").split(/\.|\[/)), c = (e, o, t) => {
31
- if (!o || !b(e))
30
+ var w = (e) => Array.isArray(e) ? e.filter(Boolean) : [], S = (e) => e === void 0, c = (e, r, t) => {
31
+ if (!r || !_(e))
32
32
  return t;
33
- const s = (M(o) ? [o] : B(o)).reduce((r, n) => O(r) ? r : r[n], e);
34
- return V(s) || s === e ? V(e[o]) ? t : e[o] : s;
35
- }, C = (e) => typeof e == "boolean", P = (e, o, t) => {
36
- let s = -1;
37
- const r = M(o) ? [o] : B(o), n = r.length, l = n - 1;
38
- for (; ++s < n; ) {
39
- const u = r[s];
40
- let a = t;
41
- if (s !== l) {
42
- const f = e[u];
43
- a = b(f) || Array.isArray(f) ? f : isNaN(+r[s + 1]) ? {} : [];
33
+ const o = w(r.split(/[,[\].]+?/)).reduce((s, n) => E(s) ? s : s[n], e);
34
+ return S(o) || o === e ? S(e[r]) ? t : e[r] : o;
35
+ }, C = (e) => typeof e == "boolean", J = (e) => /^\w*$/.test(e), Q = (e) => w(e.replace(/["|']|\]/g, "").split(/\.|\[/)), A = (e, r, t) => {
36
+ let o = -1;
37
+ const s = J(r) ? [r] : Q(r), n = s.length, u = n - 1;
38
+ for (; ++o < n; ) {
39
+ const l = s[o];
40
+ let i = t;
41
+ if (o !== u) {
42
+ const d = e[l];
43
+ i = _(d) || Array.isArray(d) ? d : isNaN(+s[o + 1]) ? {} : [];
44
44
  }
45
- if (u === "__proto__" || u === "constructor" || u === "prototype")
45
+ if (l === "__proto__" || l === "constructor" || l === "prototype")
46
46
  return;
47
- e[u] = a, e = e[u];
47
+ e[l] = i, e = e[l];
48
48
  }
49
+ return e;
49
50
  };
50
- const k = {
51
+ const O = {
51
52
  BLUR: "blur",
52
53
  CHANGE: "change"
53
- }, D = {
54
+ }, P = {
54
55
  all: "all"
55
- }, S = i.createContext(null);
56
- S.displayName = "HookFormContext";
57
- const v = () => i.useContext(S), ee = (e) => {
58
- const { children: o, ...t } = e;
59
- return i.createElement(S.Provider, { value: t }, o);
56
+ }, j = a.createContext(null), v = () => a.useContext(j), X = (e) => {
57
+ const { children: r, ...t } = e;
58
+ return a.createElement(j.Provider, { value: t }, r);
60
59
  };
61
- var te = (e, o, t, s = !0) => {
62
- const r = {
63
- defaultValues: o._defaultValues
60
+ var Y = (e, r, t, o = !0) => {
61
+ const s = {
62
+ defaultValues: r._defaultValues
64
63
  };
65
64
  for (const n in e)
66
- Object.defineProperty(r, n, {
65
+ Object.defineProperty(s, n, {
67
66
  get: () => {
68
- const l = n;
69
- return o._proxyFormState[l] !== D.all && (o._proxyFormState[l] = !s || D.all), t && (t[l] = !0), e[l];
67
+ const u = n;
68
+ return r._proxyFormState[u] !== P.all && (r._proxyFormState[u] = !o || P.all), t && (t[u] = !0), e[u];
70
69
  }
71
70
  });
72
- return r;
73
- };
74
- const R = typeof window < "u" ? y.useLayoutEffect : y.useEffect;
75
- function U(e) {
76
- const o = v(), { control: t = o.control, disabled: s, name: r, exact: n } = e || {}, [l, u] = i.useState(t._formState), a = i.useRef({
71
+ return s;
72
+ }, Z = (e) => _(e) && !Object.keys(e).length, ee = (e, r, t, o) => {
73
+ t(e);
74
+ const { name: s, ...n } = e;
75
+ return Z(n) || Object.keys(n).length >= Object.keys(r).length || Object.keys(n).find((u) => r[u] === !0);
76
+ }, te = (e) => Array.isArray(e) ? e : [e], k = (e, r, t) => !e || !r || e === r || te(e).some((o) => o && (t ? o === r : o.startsWith(r) || r.startsWith(o)));
77
+ function D(e) {
78
+ const r = a.useRef(e);
79
+ r.current = e, a.useEffect(() => {
80
+ const t = !e.disabled && r.current.subject && r.current.subject.subscribe({
81
+ next: r.current.next
82
+ });
83
+ return () => {
84
+ t && t.unsubscribe();
85
+ };
86
+ }, [e.disabled]);
87
+ }
88
+ function R(e) {
89
+ const r = v(), { control: t = r.control, disabled: o, name: s, exact: n } = e || {}, [u, l] = a.useState(t._formState), i = a.useRef(!0), d = a.useRef({
77
90
  isDirty: !1,
78
91
  isLoading: !1,
79
92
  dirtyFields: !1,
@@ -82,216 +95,218 @@ function U(e) {
82
95
  isValidating: !1,
83
96
  isValid: !1,
84
97
  errors: !1
85
- });
86
- return R(() => t._subscribe({
87
- name: r,
88
- formState: a.current,
89
- exact: n,
90
- callback: (f) => {
91
- !s && u({
92
- ...t._formState,
93
- ...f
94
- });
95
- }
96
- }), [r, s, n]), i.useEffect(() => {
97
- a.current.isValid && t._setValid(!0);
98
- }, [t]), i.useMemo(() => te(l, t, a.current, !1), [l, t]);
98
+ }), m = a.useRef(s);
99
+ return m.current = s, D({
100
+ disabled: o,
101
+ next: (b) => i.current && k(m.current, b.name, n) && ee(b, d.current, t._updateFormState) && l({
102
+ ...t._formState,
103
+ ...b
104
+ }),
105
+ subject: t._subjects.state
106
+ }), a.useEffect(() => (i.current = !0, d.current.isValid && t._updateValid(!0), () => {
107
+ i.current = !1;
108
+ }), [t]), a.useMemo(() => Y(u, t, d.current, !1), [u, t]);
99
109
  }
100
- var re = (e) => typeof e == "string", oe = (e, o, t, s, r) => re(e) ? c(t, e, r) : Array.isArray(e) ? e.map((n) => c(t, n)) : t;
101
- function se(e) {
102
- const o = v(), { control: t = o.control, name: s, defaultValue: r, disabled: n, exact: l } = e || {}, u = i.useRef(r), [a, f] = i.useState(t._getWatch(s, u.current));
103
- return R(() => t._subscribe({
104
- name: s,
105
- formState: {
106
- values: !0
107
- },
108
- exact: l,
109
- callback: (F) => !n && f(oe(s, t._names, F.values || t._formValues, !1, u.current))
110
- }), [s, t, n, l]), i.useEffect(() => t._removeUnmounted()), a;
110
+ var re = (e) => typeof e == "string", se = (e, r, t, o, s) => re(e) ? c(t, e, s) : Array.isArray(e) ? e.map((n) => c(t, n)) : t;
111
+ function oe(e) {
112
+ const r = v(), { control: t = r.control, name: o, defaultValue: s, disabled: n, exact: u } = e || {}, l = a.useRef(o);
113
+ l.current = o, D({
114
+ disabled: n,
115
+ subject: t._subjects.values,
116
+ next: (m) => {
117
+ k(l.current, m.name, u) && d(I(se(l.current, t._names, m.values || t._formValues, !1, s)));
118
+ }
119
+ });
120
+ const [i, d] = a.useState(t._getWatch(o, s));
121
+ return a.useEffect(() => t._removeUnmounted()), i;
111
122
  }
112
123
  function ne(e) {
113
- const o = v(), { name: t, disabled: s, control: r = o.control, shouldUnregister: n } = e, l = Q(r._names.array, t), u = se({
114
- control: r,
124
+ const r = v(), { name: t, disabled: o, control: s = r.control, shouldUnregister: n } = e, u = K(s._names.array, t), l = oe({
125
+ control: s,
115
126
  name: t,
116
- defaultValue: c(r._formValues, t, c(r._defaultValues, t, e.defaultValue)),
127
+ defaultValue: c(s._formValues, t, c(s._defaultValues, t, e.defaultValue)),
117
128
  exact: !0
118
- }), a = U({
119
- control: r,
129
+ }), i = R({
130
+ control: s,
120
131
  name: t,
121
132
  exact: !0
122
- }), f = i.useRef(e), F = i.useRef(r.register(t, {
133
+ }), d = a.useRef(s.register(t, {
123
134
  ...e.rules,
124
- value: u,
135
+ value: l,
125
136
  ...C(e.disabled) ? { disabled: e.disabled } : {}
126
- })), I = i.useMemo(() => Object.defineProperties({}, {
137
+ })), m = a.useMemo(() => Object.defineProperties({}, {
127
138
  invalid: {
128
139
  enumerable: !0,
129
- get: () => !!c(a.errors, t)
140
+ get: () => !!c(i.errors, t)
130
141
  },
131
142
  isDirty: {
132
143
  enumerable: !0,
133
- get: () => !!c(a.dirtyFields, t)
144
+ get: () => !!c(i.dirtyFields, t)
134
145
  },
135
146
  isTouched: {
136
147
  enumerable: !0,
137
- get: () => !!c(a.touchedFields, t)
148
+ get: () => !!c(i.touchedFields, t)
138
149
  },
139
150
  isValidating: {
140
151
  enumerable: !0,
141
- get: () => !!c(a.validatingFields, t)
152
+ get: () => !!c(i.validatingFields, t)
142
153
  },
143
154
  error: {
144
155
  enumerable: !0,
145
- get: () => c(a.errors, t)
156
+ get: () => c(i.errors, t)
146
157
  }
147
- }), [a, t]), A = i.useCallback((d) => F.current.onChange({
148
- target: {
149
- value: z(d),
150
- name: t
151
- },
152
- type: k.CHANGE
153
- }), [t]), w = i.useCallback(() => F.current.onBlur({
154
- target: {
155
- value: c(r._formValues, t),
156
- name: t
157
- },
158
- type: k.BLUR
159
- }), [t, r._formValues]), E = i.useCallback((d) => {
160
- const _ = c(r._fields, t);
161
- _ && d && (_._f.ref = {
162
- focus: () => d.focus && d.focus(),
163
- select: () => d.select && d.select(),
164
- setCustomValidity: (g) => d.setCustomValidity(g),
165
- reportValidity: () => d.reportValidity()
166
- });
167
- }, [r._fields, t]), N = i.useMemo(() => ({
158
+ }), [i, t]), b = a.useMemo(() => ({
168
159
  name: t,
169
- value: u,
170
- ...C(s) || a.disabled ? { disabled: a.disabled || s } : {},
171
- onChange: A,
172
- onBlur: w,
173
- ref: E
174
- }), [t, s, a.disabled, A, w, E, u]);
175
- return i.useEffect(() => {
176
- const d = r._options.shouldUnregister || n;
177
- r.register(t, {
178
- ...f.current.rules,
179
- ...C(f.current.disabled) ? { disabled: f.current.disabled } : {}
180
- });
181
- const _ = (g, H) => {
182
- const h = c(r._fields, g);
183
- h && h._f && (h._f.mount = H);
160
+ value: l,
161
+ ...C(o) || i.disabled ? { disabled: i.disabled || o } : {},
162
+ onChange: (f) => d.current.onChange({
163
+ target: {
164
+ value: H(f),
165
+ name: t
166
+ },
167
+ type: O.CHANGE
168
+ }),
169
+ onBlur: () => d.current.onBlur({
170
+ target: {
171
+ value: c(s._formValues, t),
172
+ name: t
173
+ },
174
+ type: O.BLUR
175
+ }),
176
+ ref: (f) => {
177
+ const F = c(s._fields, t);
178
+ F && f && (F._f.ref = {
179
+ focus: () => f.focus(),
180
+ select: () => f.select(),
181
+ setCustomValidity: (g) => f.setCustomValidity(g),
182
+ reportValidity: () => f.reportValidity()
183
+ });
184
+ }
185
+ }), [
186
+ t,
187
+ s._formValues,
188
+ o,
189
+ i.disabled,
190
+ l,
191
+ s._fields
192
+ ]);
193
+ return a.useEffect(() => {
194
+ const f = s._options.shouldUnregister || n, F = (g, B) => {
195
+ const V = c(s._fields, g);
196
+ V && V._f && (V._f.mount = B);
184
197
  };
185
- if (_(t, !0), d) {
186
- const g = L(c(r._options.defaultValues, t));
187
- P(r._defaultValues, t, g), V(c(r._formValues, t)) && P(r._formValues, t, g);
198
+ if (F(t, !0), f) {
199
+ const g = I(c(s._options.defaultValues, t));
200
+ A(s._defaultValues, t, g), S(c(s._formValues, t)) && A(s._formValues, t, g);
188
201
  }
189
- return !l && r.register(t), () => {
190
- (l ? d && !r._state.action : d) ? r.unregister(t) : _(t, !1);
202
+ return () => {
203
+ (u ? f && !s._state.action : f) ? s.unregister(t) : F(t, !1);
191
204
  };
192
- }, [t, r, l, n]), i.useEffect(() => {
193
- r._setDisabledField({
194
- disabled: s,
195
- name: t
205
+ }, [t, s, u, n]), a.useEffect(() => {
206
+ C(o) && c(s._fields, t) && s._updateDisabledField({
207
+ disabled: o,
208
+ fields: s._fields,
209
+ name: t,
210
+ value: c(s._fields, t)._f.value
196
211
  });
197
- }, [s, t, r]), i.useMemo(() => ({
198
- field: N,
199
- formState: a,
200
- fieldState: I
201
- }), [N, a, I]);
212
+ }, [o, t, s]), a.useMemo(() => ({
213
+ field: b,
214
+ formState: i,
215
+ fieldState: m
216
+ }), [b, i, m]);
202
217
  }
203
- const ae = (e) => e.render(ne(e)), fe = ee, $ = y.createContext(
218
+ const ie = (e) => e.render(ne(e)), fe = X, M = p.createContext(
204
219
  {}
205
220
  ), me = ({
206
221
  ...e
207
- }) => /* @__PURE__ */ m($.Provider, { value: { name: e.name }, children: /* @__PURE__ */ m(ae, { ...e }) }), x = () => {
208
- const e = y.useContext($), o = y.useContext(T), { getFieldState: t } = v(), s = U({ name: e.name }), r = t(e.name, s);
222
+ }) => /* @__PURE__ */ y(M.Provider, { value: { name: e.name }, children: /* @__PURE__ */ y(ie, { ...e }) }), x = () => {
223
+ const e = p.useContext(M), r = p.useContext(L), { getFieldState: t } = v(), o = R({ name: e.name }), s = t(e.name, o);
209
224
  if (!e)
210
225
  throw new Error("useFormField should be used within <FormField>");
211
- const { id: n } = o;
226
+ const { id: n } = r;
212
227
  return {
213
228
  id: n,
214
229
  name: e.name,
215
230
  formItemId: `${n}-form-item`,
216
231
  formDescriptionId: `${n}-form-item-description`,
217
232
  formMessageId: `${n}-form-item-message`,
218
- ...r
233
+ ...s
219
234
  };
220
- }, T = y.createContext(
235
+ }, L = p.createContext(
221
236
  {}
222
237
  );
223
- function ye({ className: e, ...o }) {
224
- const t = y.useId();
225
- return /* @__PURE__ */ m(T.Provider, { value: { id: t }, children: /* @__PURE__ */ m(
238
+ function ye({ className: e, ...r }) {
239
+ const t = p.useId();
240
+ return /* @__PURE__ */ y(L.Provider, { value: { id: t }, children: /* @__PURE__ */ y(
226
241
  "div",
227
242
  {
228
- className: p("grid gap-2", e),
243
+ className: h("grid gap-2", e),
229
244
  "data-slot": "form-item",
230
- ...o
245
+ ...r
231
246
  }
232
247
  ) });
233
248
  }
234
- function ge({
249
+ function be({
235
250
  className: e,
236
- ...o
251
+ ...r
237
252
  }) {
238
- const { error: t, formItemId: s } = x();
239
- return /* @__PURE__ */ m(
240
- G,
253
+ const { error: t, formItemId: o } = x();
254
+ return /* @__PURE__ */ y(
255
+ U,
241
256
  {
242
- className: p("data-[error=true]:text-destructive", e),
257
+ className: h("data-[error=true]:text-destructive", e),
243
258
  "data-error": !!t,
244
259
  "data-slot": "form-label",
245
- htmlFor: s,
246
- ...o
260
+ htmlFor: o,
261
+ ...r
247
262
  }
248
263
  );
249
264
  }
250
- function _e({ ...e }) {
251
- const { error: o, formItemId: t, formDescriptionId: s, formMessageId: r } = x();
252
- return /* @__PURE__ */ m(
253
- W,
265
+ function ge({ ...e }) {
266
+ const { error: r, formItemId: t, formDescriptionId: o, formMessageId: s } = x();
267
+ return /* @__PURE__ */ y(
268
+ N,
254
269
  {
255
- "aria-describedby": o ? `${s} ${r}` : `${s}`,
256
- "aria-invalid": !!o,
270
+ "aria-describedby": r ? `${o} ${s}` : `${o}`,
271
+ "aria-invalid": !!r,
257
272
  "data-slot": "form-control",
258
273
  id: t,
259
274
  ...e
260
275
  }
261
276
  );
262
277
  }
263
- function be({ className: e, ...o }) {
278
+ function _e({ className: e, ...r }) {
264
279
  const { formDescriptionId: t } = x();
265
- return /* @__PURE__ */ m(
280
+ return /* @__PURE__ */ y(
266
281
  "p",
267
282
  {
268
- className: p("text-muted-foreground text-sm", e),
283
+ className: h("text-muted-foreground text-sm", e),
269
284
  "data-slot": "form-description",
270
285
  id: t,
271
- ...o
286
+ ...r
272
287
  }
273
288
  );
274
289
  }
275
- function Fe({ className: e, ...o }) {
276
- const { error: t, formMessageId: s } = x(), r = t ? String((t == null ? void 0 : t.message) ?? "") : o.children;
277
- return r ? /* @__PURE__ */ m(
290
+ function Fe({ className: e, ...r }) {
291
+ const { error: t, formMessageId: o } = x(), s = t ? String((t == null ? void 0 : t.message) ?? "") : r.children;
292
+ return s ? /* @__PURE__ */ y(
278
293
  "p",
279
294
  {
280
- className: p("text-destructive text-sm", e),
295
+ className: h("text-destructive text-sm", e),
281
296
  "data-slot": "form-message",
282
- id: s,
283
- ...o,
284
- children: r
297
+ id: o,
298
+ ...r,
299
+ children: s
285
300
  }
286
301
  ) : null;
287
302
  }
288
303
  export {
289
304
  fe as Form,
290
- _e as FormControl,
291
- be as FormDescription,
305
+ ge as FormControl,
306
+ _e as FormDescription,
292
307
  me as FormField,
293
308
  ye as FormItem,
294
- ge as FormLabel,
309
+ be as FormLabel,
295
310
  Fe as FormMessage,
296
311
  x as useFormField
297
312
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arcadeai/design-system",
3
3
  "private": false,
4
- "version": "0.6.2",
4
+ "version": "0.6.3",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",
7
7
  "types": "dist/main.d.ts",
@@ -50,75 +50,75 @@
50
50
  ]
51
51
  },
52
52
  "peerDependencies": {
53
- "lucide-react": "^0.522.0",
54
- "react": "^19.1.0",
55
- "react-dom": "^19.1.0",
56
- "react-hook-form": "^7.54.0",
57
- "@hookform/resolvers": "^5.0.1",
58
- "tailwindcss": "^4.1.10"
53
+ "lucide-react": "0.522.0",
54
+ "react": "19.1.0",
55
+ "react-dom": "19.1.0",
56
+ "react-hook-form": "7.54.0",
57
+ "@hookform/resolvers": "5.0.1",
58
+ "tailwindcss": "4.1.10"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@biomejs/biome": "2.0.5",
62
- "@commitlint/cli": "^19.8.1",
63
- "@commitlint/config-conventional": "^19.8.1",
64
- "@semantic-release/changelog": "^6.0.3",
65
- "@semantic-release/git": "^10.0.1",
66
- "@storybook/addon-a11y": "^9.0.12",
67
- "@storybook/addon-docs": "^9.0.12",
68
- "@storybook/addon-themes": "^9.0.12",
69
- "@storybook/addon-vitest": "^9.0.13",
70
- "@storybook/react-vite": "^9.0.12",
71
- "@types/node": "^24.0.3",
72
- "@types/react": "^19.1.8",
73
- "@types/react-dom": "^19.1.6",
74
- "@vitejs/plugin-react-swc": "^3.10.2",
75
- "@vitest/browser": "^3.2.4",
76
- "@vitest/coverage-v8": "^3.2.4",
77
- "chromatic": "^13.0.1",
78
- "glob": "^11.0.3",
79
- "globals": "^16.2.0",
80
- "husky": "^9.1.7",
81
- "lint-staged": "^16.1.2",
82
- "playwright": "^1.53.1",
83
- "semantic-release": "^24.2.5",
84
- "storybook": "^9.0.12",
85
- "storybook-addon-test-codegen": "^2.0.1",
86
- "tw-animate-css": "^1.3.4",
62
+ "@commitlint/cli": "19.8.1",
63
+ "@commitlint/config-conventional": "19.8.1",
64
+ "@semantic-release/changelog": "6.0.3",
65
+ "@semantic-release/git": "10.0.1",
66
+ "@storybook/addon-a11y": "9.0.12",
67
+ "@storybook/addon-docs": "9.0.12",
68
+ "@storybook/addon-themes": "9.0.12",
69
+ "@storybook/addon-vitest": "9.0.13",
70
+ "@storybook/react-vite": "9.0.12",
71
+ "@types/node": "24.0.3",
72
+ "@types/react": "19.1.8",
73
+ "@types/react-dom": "19.1.6",
74
+ "@vitejs/plugin-react-swc": "3.10.2",
75
+ "@vitest/browser": "3.2.4",
76
+ "@vitest/coverage-v8": "3.2.4",
77
+ "chromatic": "13.0.1",
78
+ "glob": "11.0.3",
79
+ "globals": "16.2.0",
80
+ "husky": "9.1.7",
81
+ "lint-staged": "16.1.2",
82
+ "playwright": "1.53.1",
83
+ "semantic-release": "24.2.5",
84
+ "storybook": "9.0.12",
85
+ "storybook-addon-test-codegen": "2.0.1",
86
+ "tw-animate-css": "1.3.4",
87
87
  "typescript": "~5.8.3",
88
88
  "ultracite": "5.0.19",
89
- "vite": "^6.3.5",
90
- "vite-plugin-dts": "^4.5.4",
91
- "vitest": "^3.2.4"
89
+ "vite": "6.3.5",
90
+ "vite-plugin-dts": "4.5.4",
91
+ "vitest": "3.2.4"
92
92
  },
93
93
  "dependencies": {
94
- "@radix-ui/react-accordion": "^1.2.11",
95
- "@radix-ui/react-avatar": "^1.1.10",
96
- "@radix-ui/react-collapsible": "^1.1.11",
97
- "@radix-ui/react-dialog": "^1.1.14",
98
- "@radix-ui/react-dropdown-menu": "^2.1.15",
99
- "@radix-ui/react-hover-card": "^1.1.14",
100
- "@radix-ui/react-label": "^2.1.7",
101
- "@radix-ui/react-popover": "^1.1.14",
102
- "@radix-ui/react-progress": "^1.1.7",
103
- "@radix-ui/react-scroll-area": "^1.2.9",
104
- "@radix-ui/react-select": "^2.2.5",
105
- "@radix-ui/react-separator": "^1.1.7",
106
- "@radix-ui/react-slider": "^1.3.5",
107
- "@radix-ui/react-slot": "^1.2.3",
108
- "@radix-ui/react-switch": "^1.2.5",
109
- "@radix-ui/react-tabs": "^1.1.12",
110
- "@radix-ui/react-toggle": "^1.1.9",
111
- "@radix-ui/react-tooltip": "^1.2.7",
112
- "@tailwindcss/vite": "^4.1.10",
113
- "class-variance-authority": "^0.7.1",
114
- "clsx": "^2.1.1",
115
- "cmdk": "^1.1.1",
116
- "next-themes": "^0.4.6",
117
- "react-resizable-panels": "^3.0.3",
118
- "recharts": "^3.0.0",
119
- "sonner": "^2.0.5",
120
- "tailwind-merge": "^3.3.1",
121
- "zod": "^3.25.67"
94
+ "@radix-ui/react-accordion": "1.2.11",
95
+ "@radix-ui/react-avatar": "1.1.10",
96
+ "@radix-ui/react-collapsible": "1.1.11",
97
+ "@radix-ui/react-dialog": "1.1.14",
98
+ "@radix-ui/react-dropdown-menu": "2.1.15",
99
+ "@radix-ui/react-hover-card": "1.1.14",
100
+ "@radix-ui/react-label": "2.1.7",
101
+ "@radix-ui/react-popover": "1.1.14",
102
+ "@radix-ui/react-progress": "1.1.7",
103
+ "@radix-ui/react-scroll-area": "1.2.9",
104
+ "@radix-ui/react-select": "2.2.5",
105
+ "@radix-ui/react-separator": "1.1.7",
106
+ "@radix-ui/react-slider": "1.3.5",
107
+ "@radix-ui/react-slot": "1.2.3",
108
+ "@radix-ui/react-switch": "1.2.5",
109
+ "@radix-ui/react-tabs": "1.1.12",
110
+ "@radix-ui/react-toggle": "1.1.9",
111
+ "@radix-ui/react-tooltip": "1.2.7",
112
+ "@tailwindcss/vite": "4.1.10",
113
+ "class-variance-authority": "0.7.1",
114
+ "clsx": "2.1.1",
115
+ "cmdk": "1.1.1",
116
+ "next-themes": "0.4.6",
117
+ "react-resizable-panels": "3.0.3",
118
+ "recharts": "3.0.0",
119
+ "sonner": "2.0.5",
120
+ "tailwind-merge": "3.3.1",
121
+ "zod": "3.25.67"
122
122
  },
123
123
  "engines": {
124
124
  "node": ">=22.11.0"