@fluityy/designsystem 0.2.2 → 0.2.4

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/index.js CHANGED
@@ -1,15 +1,15 @@
1
- import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
- import { forwardRef as g, useState as b, useRef as T, useEffect as C, createContext as N, useContext as w, useId as H, cloneElement as K, Children as ae, Fragment as ne, useCallback as M, useMemo as oe } from "react";
1
+ import { jsx as t, jsxs as u } from "react/jsx-runtime";
2
+ import { forwardRef as p, useState as x, useRef as L, useEffect as N, createContext as C, useContext as y, useId as K, cloneElement as q, Children as oe, Fragment as le, useCallback as z, useMemo as se } from "react";
3
3
  import { cva as V } from "class-variance-authority";
4
- import { clsx as le } from "clsx";
5
- import { twMerge as se } from "tailwind-merge";
6
- import { createPortal as ie } from "react-dom";
4
+ import { clsx as ie } from "clsx";
5
+ import { twMerge as ce } from "tailwind-merge";
6
+ import { createPortal as ue } from "react-dom";
7
7
  function i(...e) {
8
- return se(le(e));
8
+ return ce(ie(e));
9
9
  }
10
- const ce = V(
10
+ const de = V(
11
11
  // base: tudo derivado de tokens via utilitários mapeados no @theme
12
- "inline-flex items-center justify-center gap-2 font-medium whitespace-nowrap transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg disabled:opacity-50 disabled:pointer-events-none select-none",
12
+ "inline-flex items-center justify-center gap-2 font-medium whitespace-nowrap cursor-pointer transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed select-none",
13
13
  {
14
14
  variants: {
15
15
  variant: {
@@ -18,7 +18,8 @@ const ce = V(
18
18
  outline: "border border-border-strong bg-transparent text-fg hover:bg-bg-subtle",
19
19
  ghost: "bg-transparent text-fg hover:bg-bg-muted",
20
20
  accent: "bg-accent text-accent-fg hover:bg-accent-hover active:bg-accent-active",
21
- danger: "bg-danger text-fg-on-brand hover:bg-danger-hover"
21
+ danger: "bg-danger text-fg-on-brand hover:bg-danger-hover",
22
+ "danger-ghost": "bg-transparent text-danger hover:bg-danger/10"
22
23
  },
23
24
  size: {
24
25
  sm: "h-8 px-3 text-sm rounded-lg",
@@ -32,17 +33,17 @@ const ce = V(
32
33
  size: "md"
33
34
  }
34
35
  }
35
- ), ue = g(
36
- ({ className: e, variant: r, size: a, fullWidth: n, ...o }, s) => /* @__PURE__ */ t(
36
+ ), S = p(
37
+ ({ className: e, variant: r, size: a, fullWidth: n, ...o }, l) => /* @__PURE__ */ t(
37
38
  "button",
38
39
  {
39
- ref: s,
40
- className: i(ce({ variant: r, size: a, fullWidth: n }), e),
40
+ ref: l,
41
+ className: i(de({ variant: r, size: a, fullWidth: n }), e),
41
42
  ...o
42
43
  }
43
44
  )
44
45
  );
45
- ue.displayName = "Button";
46
+ S.displayName = "Button";
46
47
  const fe = V(
47
48
  "flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent transition-colors outline-none rounded-lg focus-visible:border-border-strong disabled:opacity-50 disabled:pointer-events-none",
48
49
  {
@@ -59,41 +60,41 @@ const fe = V(
59
60
  },
60
61
  defaultVariants: { size: "md", invalid: !1 }
61
62
  }
62
- ), de = g(
63
- ({ className: e, size: r, invalid: a, label: n, id: o, type: s, ...l }, c) => {
64
- const [u, m] = b(!1), d = s === "password", p = d ? u ? "text" : "password" : s, h = o ?? (n ? n.toLowerCase().replace(/\s+/g, "-") : void 0), v = /* @__PURE__ */ f("div", { className: "relative flex w-full items-center", children: [
63
+ ), me = p(
64
+ ({ className: e, size: r, invalid: a, label: n, id: o, type: l, ...s }, c) => {
65
+ const [d, f] = x(!1), g = l === "password", b = g ? d ? "text" : "password" : l, v = o ?? (n ? n.toLowerCase().replace(/\s+/g, "-") : void 0), h = /* @__PURE__ */ u("div", { className: "relative flex w-full items-center", children: [
65
66
  /* @__PURE__ */ t(
66
67
  "input",
67
68
  {
68
69
  ref: c,
69
- id: h,
70
- type: p,
70
+ id: v,
71
+ type: b,
71
72
  className: i(
72
73
  fe({ size: r, invalid: a }),
73
- d && "pr-10",
74
+ g && "pr-10",
74
75
  e
75
76
  ),
76
- ...l
77
+ ...s
77
78
  }
78
79
  ),
79
- d && /* @__PURE__ */ t(
80
+ g && /* @__PURE__ */ t(
80
81
  "button",
81
82
  {
82
83
  type: "button",
83
84
  tabIndex: -1,
84
- onClick: () => m((y) => !y),
85
- "aria-label": u ? "Ocultar senha" : "Mostrar senha",
86
- className: "absolute right-3 text-fg-muted transition-colors hover:text-fg",
87
- children: u ? (
85
+ onClick: () => f((w) => !w),
86
+ "aria-label": d ? "Ocultar senha" : "Mostrar senha",
87
+ className: "absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg",
88
+ children: d ? (
88
89
  // olho fechado
89
- /* @__PURE__ */ f("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: [
90
+ /* @__PURE__ */ u("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: [
90
91
  /* @__PURE__ */ t("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94" }),
91
92
  /* @__PURE__ */ t("path", { d: "M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19" }),
92
93
  /* @__PURE__ */ t("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
93
94
  ] })
94
95
  ) : (
95
96
  // olho aberto
96
- /* @__PURE__ */ f("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: [
97
+ /* @__PURE__ */ u("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: [
97
98
  /* @__PURE__ */ t("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
98
99
  /* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "3" })
99
100
  ] })
@@ -101,14 +102,14 @@ const fe = V(
101
102
  }
102
103
  )
103
104
  ] });
104
- return n ? /* @__PURE__ */ f("div", { className: "flex w-full flex-col gap-1.5", children: [
105
- /* @__PURE__ */ t("label", { htmlFor: h, className: "text-xs font-medium text-fg", children: n }),
106
- v
107
- ] }) : v;
105
+ return n ? /* @__PURE__ */ u("div", { className: "flex w-full flex-col gap-1.5", children: [
106
+ /* @__PURE__ */ t("label", { htmlFor: v, className: "text-xs font-medium text-fg", children: n }),
107
+ h
108
+ ] }) : h;
108
109
  }
109
110
  );
110
- de.displayName = "Input";
111
- const me = g(
111
+ me.displayName = "Input";
112
+ const pe = p(
112
113
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
113
114
  "div",
114
115
  {
@@ -121,19 +122,19 @@ const me = g(
121
122
  }
122
123
  )
123
124
  );
124
- me.displayName = "Card";
125
- const pe = g(
125
+ pe.displayName = "Card";
126
+ const ge = p(
126
127
  ({ className: e, ...r }, a) => /* @__PURE__ */ t("div", { ref: a, className: i("flex flex-col gap-1 p-6", e), ...r })
127
128
  );
128
- pe.displayName = "CardHeader";
129
- const ge = g(({ className: e, ...r }, a) => /* @__PURE__ */ t("h3", { ref: a, className: i("text-lg font-semibold text-fg", e), ...r }));
130
- ge.displayName = "CardTitle";
131
- const be = g(({ className: e, ...r }, a) => /* @__PURE__ */ t("p", { ref: a, className: i("text-sm text-fg-muted", e), ...r }));
129
+ ge.displayName = "CardHeader";
130
+ const he = p(({ className: e, ...r }, a) => /* @__PURE__ */ t("h3", { ref: a, className: i("text-lg font-semibold text-fg", e), ...r }));
131
+ he.displayName = "CardTitle";
132
+ const be = p(({ className: e, ...r }, a) => /* @__PURE__ */ t("p", { ref: a, className: i("text-sm text-fg-muted", e), ...r }));
132
133
  be.displayName = "CardDescription";
133
- const he = g(
134
+ const xe = p(
134
135
  ({ className: e, ...r }, a) => /* @__PURE__ */ t("div", { ref: a, className: i("p-6 pt-0", e), ...r })
135
136
  );
136
- he.displayName = "CardContent";
137
+ xe.displayName = "CardContent";
137
138
  const ve = V(
138
139
  "relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50",
139
140
  {
@@ -143,7 +144,7 @@ const ve = V(
143
144
  },
144
145
  defaultVariants: { size: "md", checked: !1 }
145
146
  }
146
- ), xe = V(
147
+ ), we = V(
147
148
  "pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform",
148
149
  {
149
150
  variants: {
@@ -156,39 +157,39 @@ const ve = V(
156
157
  ],
157
158
  defaultVariants: { size: "md", checked: !1 }
158
159
  }
159
- ), we = g(
160
- ({ className: e, size: r, checked: a, defaultChecked: n, onCheckedChange: o, disabled: s, ...l }, c) => {
161
- const u = a !== void 0, [m, d] = b(n ?? !1), p = u ? a : m;
160
+ ), G = p(
161
+ ({ className: e, size: r, checked: a, defaultChecked: n, onCheckedChange: o, disabled: l, ...s }, c) => {
162
+ const d = a !== void 0, [f, g] = x(n ?? !1), b = d ? a : f;
162
163
  return /* @__PURE__ */ t(
163
164
  "button",
164
165
  {
165
166
  ref: c,
166
167
  type: "button",
167
168
  role: "switch",
168
- "aria-checked": p,
169
- disabled: s,
169
+ "aria-checked": b,
170
+ disabled: l,
170
171
  onClick: () => {
171
- const v = !p;
172
- u || d(v), o == null || o(v);
172
+ const h = !b;
173
+ d || g(h), o == null || o(h);
173
174
  },
174
- className: i(ve({ size: r, checked: p }), e),
175
- ...l,
176
- children: /* @__PURE__ */ t("span", { className: xe({ size: r, checked: p }) })
175
+ className: i(ve({ size: r, checked: b }), e),
176
+ ...s,
177
+ children: /* @__PURE__ */ t("span", { className: we({ size: r, checked: b }) })
177
178
  }
178
179
  );
179
180
  }
180
181
  );
181
- we.displayName = "Switch";
182
- const ye = g(
183
- ({ className: e, label: r, indeterminate: a = !1, disabled: n, id: o, ...s }, l) => {
184
- const c = T(null);
185
- C(() => {
182
+ G.displayName = "Switch";
183
+ const ye = p(
184
+ ({ className: e, label: r, indeterminate: a = !1, disabled: n, id: o, ...l }, s) => {
185
+ const c = L(null);
186
+ N(() => {
186
187
  c.current && (c.current.indeterminate = a);
187
188
  }, [a]);
188
- const u = (m) => {
189
- c.current = m, typeof l == "function" ? l(m) : l && (l.current = m);
189
+ const d = (f) => {
190
+ c.current = f, typeof s == "function" ? s(f) : s && (s.current = f);
190
191
  };
191
- return /* @__PURE__ */ f(
192
+ return /* @__PURE__ */ u(
192
193
  "label",
193
194
  {
194
195
  className: i(
@@ -200,15 +201,15 @@ const ye = g(
200
201
  /* @__PURE__ */ t(
201
202
  "input",
202
203
  {
203
- ref: u,
204
+ ref: d,
204
205
  id: o,
205
206
  type: "checkbox",
206
207
  disabled: n,
207
208
  className: "peer sr-only",
208
- ...s
209
+ ...l
209
210
  }
210
211
  ),
211
- /* @__PURE__ */ f(
212
+ /* @__PURE__ */ u(
212
213
  "span",
213
214
  {
214
215
  className: i(
@@ -247,33 +248,33 @@ const ye = g(
247
248
  }
248
249
  );
249
250
  ye.displayName = "Checkbox";
250
- const q = N(null);
251
- function or({
251
+ const U = C(null);
252
+ function ur({
252
253
  value: e,
253
254
  defaultValue: r,
254
255
  onValueChange: a,
255
256
  name: n,
256
257
  className: o,
257
- children: s,
258
- ...l
258
+ children: l,
259
+ ...s
259
260
  }) {
260
- const c = H(), u = e !== void 0, [m, d] = b(r), p = u ? e : m, h = (v) => {
261
- u || d(v), a == null || a(v);
261
+ const c = K(), d = e !== void 0, [f, g] = x(r), b = d ? e : f, v = (h) => {
262
+ d || g(h), a == null || a(h);
262
263
  };
263
264
  return /* @__PURE__ */ t(
264
- q.Provider,
265
+ U.Provider,
265
266
  {
266
- value: { name: n ?? c, value: p, onChange: h },
267
- children: /* @__PURE__ */ t("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...l, children: s })
267
+ value: { name: n ?? c, value: b, onChange: v },
268
+ children: /* @__PURE__ */ t("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...s, children: l })
268
269
  }
269
270
  );
270
271
  }
271
- const Ce = g(
272
- ({ className: e, value: r, label: a, disabled: n, ...o }, s) => {
273
- const l = w(q);
274
- if (!l) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
275
- const c = l.value === r;
276
- return /* @__PURE__ */ f(
272
+ const Ne = p(
273
+ ({ className: e, value: r, label: a, disabled: n, ...o }, l) => {
274
+ const s = y(U);
275
+ if (!s) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
276
+ const c = s.value === r;
277
+ return /* @__PURE__ */ u(
277
278
  "label",
278
279
  {
279
280
  className: i(
@@ -285,13 +286,13 @@ const Ce = g(
285
286
  /* @__PURE__ */ t(
286
287
  "input",
287
288
  {
288
- ref: s,
289
+ ref: l,
289
290
  type: "radio",
290
- name: l.name,
291
+ name: s.name,
291
292
  value: r,
292
293
  checked: c,
293
294
  disabled: n,
294
- onChange: () => l.onChange(r),
295
+ onChange: () => s.onChange(r),
295
296
  className: "peer sr-only",
296
297
  ...o
297
298
  }
@@ -314,8 +315,8 @@ const Ce = g(
314
315
  );
315
316
  }
316
317
  );
317
- Ce.displayName = "Radio";
318
- const Ne = V(
318
+ Ne.displayName = "Radio";
319
+ const Ce = V(
319
320
  "w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none focus-visible:border-border-strong disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9",
320
321
  {
321
322
  variants: {
@@ -331,13 +332,13 @@ const Ne = V(
331
332
  },
332
333
  defaultVariants: { size: "md", invalid: !1 }
333
334
  }
334
- ), Ve = g(
335
- ({ className: e, size: r, invalid: a, children: n, ...o }, s) => /* @__PURE__ */ f("div", { className: "relative inline-flex w-full items-center", children: [
335
+ ), Ve = p(
336
+ ({ className: e, size: r, invalid: a, children: n, ...o }, l) => /* @__PURE__ */ u("div", { className: "relative inline-flex w-full items-center", children: [
336
337
  /* @__PURE__ */ t(
337
338
  "select",
338
339
  {
339
- ref: s,
340
- className: i(Ne({ size: r, invalid: a }), e),
340
+ ref: l,
341
+ className: i(Ce({ size: r, invalid: a }), e),
341
342
  ...o,
342
343
  children: n
343
344
  }
@@ -359,40 +360,40 @@ const Ne = V(
359
360
  ] })
360
361
  );
361
362
  Ve.displayName = "Select";
362
- const G = N(null);
363
- function D() {
364
- const e = w(G);
363
+ const O = C(null);
364
+ function j() {
365
+ const e = y(O);
365
366
  if (!e) throw new Error("Componentes de Dropdown precisam estar dentro de <Dropdown>");
366
367
  return e;
367
368
  }
368
- function lr({ children: e }) {
369
- const [r, a] = b(!1), n = T(null);
370
- return C(() => {
369
+ function dr({ children: e }) {
370
+ const [r, a] = x(!1), n = L(null);
371
+ return N(() => {
371
372
  if (!r) return;
372
- const o = (l) => {
373
- n.current && !n.current.contains(l.target) && a(!1);
374
- }, s = (l) => {
375
- l.key === "Escape" && a(!1);
373
+ const o = (s) => {
374
+ n.current && !n.current.contains(s.target) && a(!1);
375
+ }, l = (s) => {
376
+ s.key === "Escape" && a(!1);
376
377
  };
377
- return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
378
- document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
378
+ return document.addEventListener("mousedown", o), document.addEventListener("keydown", l), () => {
379
+ document.removeEventListener("mousedown", o), document.removeEventListener("keydown", l);
379
380
  };
380
- }, [r]), /* @__PURE__ */ t(G.Provider, { value: { open: r, setOpen: a }, children: /* @__PURE__ */ t("div", { ref: n, className: "relative inline-block text-left", children: e }) });
381
+ }, [r]), /* @__PURE__ */ t(O.Provider, { value: { open: r, setOpen: a }, children: /* @__PURE__ */ t("div", { ref: n, className: "relative inline-block text-left", children: e }) });
381
382
  }
382
- function sr({ children: e }) {
383
- const { open: r, setOpen: a } = D();
384
- return K(e, {
383
+ function fr({ children: e }) {
384
+ const { open: r, setOpen: a } = j();
385
+ return q(e, {
385
386
  onClick: () => a(!r),
386
387
  "aria-haspopup": "menu",
387
388
  "aria-expanded": r
388
389
  });
389
390
  }
390
- function ir({
391
+ function mr({
391
392
  children: e,
392
393
  align: r = "start",
393
394
  className: a
394
395
  }) {
395
- const { open: n } = D();
396
+ const { open: n } = j();
396
397
  return n ? /* @__PURE__ */ t(
397
398
  "div",
398
399
  {
@@ -406,25 +407,25 @@ function ir({
406
407
  }
407
408
  ) : null;
408
409
  }
409
- function cr({
410
+ function pr({
410
411
  children: e,
411
412
  onSelect: r,
412
413
  destructive: a,
413
414
  className: n,
414
415
  ...o
415
416
  }) {
416
- const { setOpen: s } = D();
417
+ const { setOpen: l } = j();
417
418
  return /* @__PURE__ */ t(
418
419
  "button",
419
420
  {
420
421
  type: "button",
421
422
  role: "menuitem",
422
423
  onClick: () => {
423
- r == null || r(), s(!1);
424
+ r == null || r(), l(!1);
424
425
  },
425
426
  className: i(
426
- "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors",
427
- "hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none",
427
+ "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors cursor-pointer",
428
+ "hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed",
428
429
  a ? "text-danger" : "text-fg",
429
430
  n
430
431
  ),
@@ -433,11 +434,11 @@ function cr({
433
434
  }
434
435
  );
435
436
  }
436
- function ur() {
437
+ function gr() {
437
438
  return /* @__PURE__ */ t("div", { role: "separator", className: "my-1 h-px bg-border-default" });
438
439
  }
439
440
  const ke = V(
440
- "inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-full",
441
+ "inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-[var(--flui-radius-badge)]",
441
442
  {
442
443
  variants: {
443
444
  variant: {
@@ -457,7 +458,7 @@ const ke = V(
457
458
  },
458
459
  defaultVariants: { variant: "neutral", size: "sm" }
459
460
  }
460
- ), O = g(
461
+ ), Y = p(
461
462
  ({ className: e, variant: r, size: a, ...n }, o) => /* @__PURE__ */ t(
462
463
  "span",
463
464
  {
@@ -467,7 +468,7 @@ const ke = V(
467
468
  }
468
469
  )
469
470
  );
470
- O.displayName = "Badge";
471
+ Y.displayName = "Badge";
471
472
  const ze = V("relative inline-flex shrink-0 select-none", {
472
473
  variants: {
473
474
  size: {
@@ -497,26 +498,26 @@ function Ee(e) {
497
498
  return ((a = r[0]) == null ? void 0 : a.toUpperCase()) ?? "";
498
499
  }).join("") : "";
499
500
  }
500
- const Pe = g(
501
- ({ className: e, size: r = "md", src: a, alt: n, name: o, status: s, ...l }, c) => {
502
- const [u, m] = b(!1), d = a && !u;
503
- return /* @__PURE__ */ f("span", { ref: c, className: i(ze({ size: r }), e), ...l, children: [
504
- /* @__PURE__ */ t("span", { className: "flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg", children: d ? /* @__PURE__ */ t(
501
+ const Le = p(
502
+ ({ className: e, size: r = "md", src: a, alt: n, name: o, status: l, ...s }, c) => {
503
+ const [d, f] = x(!1), g = a && !d;
504
+ return /* @__PURE__ */ u("span", { ref: c, className: i(ze({ size: r }), e), ...s, children: [
505
+ /* @__PURE__ */ t("span", { className: "flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg", children: g ? /* @__PURE__ */ t(
505
506
  "img",
506
507
  {
507
508
  src: a,
508
509
  alt: n ?? o ?? "",
509
510
  className: "h-full w-full object-cover",
510
- onError: () => m(!0)
511
+ onError: () => f(!0)
511
512
  }
512
513
  ) : /* @__PURE__ */ t("span", { "aria-hidden": !0, children: Ee(o) }) }),
513
- s && /* @__PURE__ */ t(
514
+ l && /* @__PURE__ */ t(
514
515
  "span",
515
516
  {
516
- "aria-label": s,
517
+ "aria-label": l,
517
518
  className: i(
518
519
  "absolute bottom-[8%] right-[8%] rounded-full ring-2 ring-bg",
519
- Me[s],
520
+ Me[l],
520
521
  Te[r ?? "md"]
521
522
  )
522
523
  }
@@ -524,8 +525,8 @@ const Pe = g(
524
525
  ] });
525
526
  }
526
527
  );
527
- Pe.displayName = "Avatar";
528
- const Le = V("animate-spin text-primary", {
528
+ Le.displayName = "Avatar";
529
+ const Pe = V("animate-spin text-primary", {
529
530
  variants: {
530
531
  size: {
531
532
  sm: "h-4 w-4",
@@ -534,8 +535,8 @@ const Le = V("animate-spin text-primary", {
534
535
  }
535
536
  },
536
537
  defaultVariants: { size: "md" }
537
- }), De = g(
538
- ({ className: e, size: r, label: a = "Carregando", ...n }, o) => /* @__PURE__ */ f(
538
+ }), De = p(
539
+ ({ className: e, size: r, label: a = "Carregando", ...n }, o) => /* @__PURE__ */ u(
539
540
  "svg",
540
541
  {
541
542
  ref: o,
@@ -543,7 +544,7 @@ const Le = V("animate-spin text-primary", {
543
544
  fill: "none",
544
545
  role: "status",
545
546
  "aria-label": a,
546
- className: i(Le({ size: r }), e),
547
+ className: i(Pe({ size: r }), e),
547
548
  ...n,
548
549
  children: [
549
550
  /* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", className: "opacity-20" }),
@@ -561,19 +562,19 @@ const Le = V("animate-spin text-primary", {
561
562
  )
562
563
  );
563
564
  De.displayName = "Spinner";
564
- const Ae = g(
565
- ({ className: e, value: r = 0, max: a = 100, indeterminate: n, ...o }, s) => {
566
- const l = Math.min(100, Math.max(0, r / a * 100));
565
+ const Ae = p(
566
+ ({ className: e, value: r = 0, max: a = 100, indeterminate: n, ...o }, l) => {
567
+ const s = Math.min(100, Math.max(0, r / a * 100));
567
568
  return /* @__PURE__ */ t(
568
569
  "div",
569
570
  {
570
- ref: s,
571
+ ref: l,
571
572
  role: "progressbar",
572
573
  "aria-valuemin": 0,
573
574
  "aria-valuemax": a,
574
575
  "aria-valuenow": n ? void 0 : r,
575
576
  className: i(
576
- "relative h-2 w-full overflow-hidden rounded-full bg-bg-muted",
577
+ "relative h-1 w-full overflow-hidden rounded-full bg-bg-muted",
577
578
  e
578
579
  ),
579
580
  ...o,
@@ -581,7 +582,7 @@ const Ae = g(
581
582
  "div",
582
583
  {
583
584
  className: "h-full rounded-full bg-primary transition-[width] duration-300",
584
- style: { width: `${l}%` }
585
+ style: { width: `${s}%` }
585
586
  }
586
587
  )
587
588
  }
@@ -589,7 +590,7 @@ const Ae = g(
589
590
  }
590
591
  );
591
592
  Ae.displayName = "Progress";
592
- const Be = g(
593
+ const Ie = p(
593
594
  ({ className: e, orientation: r = "horizontal", label: a, ...n }, o) => r === "vertical" ? /* @__PURE__ */ t(
594
595
  "div",
595
596
  {
@@ -599,7 +600,7 @@ const Be = g(
599
600
  className: i("mx-2 h-full w-px self-stretch bg-border-default", e),
600
601
  ...n
601
602
  }
602
- ) : a ? /* @__PURE__ */ f(
603
+ ) : a ? /* @__PURE__ */ u(
603
604
  "div",
604
605
  {
605
606
  ref: o,
@@ -623,18 +624,18 @@ const Be = g(
623
624
  }
624
625
  )
625
626
  );
626
- Be.displayName = "Divider";
627
- const Ie = g(
627
+ Ie.displayName = "Divider";
628
+ const Se = p(
628
629
  ({ className: e, children: r, ...a }, n) => {
629
- const o = ae.toArray(r);
630
- return /* @__PURE__ */ t("nav", { ref: n, "aria-label": "breadcrumb", className: e, ...a, children: /* @__PURE__ */ t("ol", { className: "flex flex-wrap items-center gap-1.5 text-sm", children: o.map((s, l) => /* @__PURE__ */ f(ne, { children: [
631
- s,
632
- l < o.length - 1 && /* @__PURE__ */ t(je, {})
633
- ] }, l)) }) });
630
+ const o = oe.toArray(r);
631
+ return /* @__PURE__ */ t("nav", { ref: n, "aria-label": "breadcrumb", className: e, ...a, children: /* @__PURE__ */ t("ol", { className: "flex flex-wrap items-center gap-1.5 text-sm", children: o.map((l, s) => /* @__PURE__ */ u(le, { children: [
632
+ l,
633
+ s < o.length - 1 && /* @__PURE__ */ t(je, {})
634
+ ] }, s)) }) });
634
635
  }
635
636
  );
636
- Ie.displayName = "Breadcrumb";
637
- function fr({
637
+ Se.displayName = "Breadcrumb";
638
+ function hr({
638
639
  href: e,
639
640
  current: r,
640
641
  className: a,
@@ -660,48 +661,48 @@ function fr({
660
661
  function je() {
661
662
  return /* @__PURE__ */ t("li", { "aria-hidden": !0, className: "text-fg-muted", children: "/" });
662
663
  }
663
- function _e(e, r = 1e3) {
664
- const [a, n] = b(0);
665
- return C(() => {
664
+ function Be(e, r = 1e3) {
665
+ const [a, n] = x(0);
666
+ return N(() => {
666
667
  n(0);
667
- const o = performance.now(), s = (l) => {
668
- const c = Math.min((l - o) / r, 1), u = 1 - (1 - c) ** 4;
669
- n(e * u), c < 1 ? requestAnimationFrame(s) : n(e);
668
+ const o = performance.now(), l = (s) => {
669
+ const c = Math.min((s - o) / r, 1), d = 1 - (1 - c) ** 4;
670
+ n(e * d), c < 1 ? requestAnimationFrame(l) : n(e);
670
671
  };
671
- requestAnimationFrame(s);
672
+ requestAnimationFrame(l);
672
673
  }, [e, r]), a;
673
674
  }
674
- const Se = g(
675
- ({ className: e, label: r, value: a, countUp: n, formatCount: o, delta: s, helpText: l, icon: c, ...u }, m) => {
676
- const d = _e(n ?? 0), p = typeof s == "number", h = p && s >= 0, v = n !== void 0 ? o ? o(d) : Math.round(d).toLocaleString("pt-BR") : a;
677
- return /* @__PURE__ */ f(
675
+ const _e = p(
676
+ ({ className: e, label: r, value: a, countUp: n, formatCount: o, delta: l, helpText: s, icon: c, ...d }, f) => {
677
+ const g = Be(n ?? 0), b = typeof l == "number", v = b && l >= 0, h = n !== void 0 ? o ? o(g) : Math.round(g).toLocaleString("pt-BR") : a;
678
+ return /* @__PURE__ */ u(
678
679
  "div",
679
680
  {
680
- ref: m,
681
+ ref: f,
681
682
  className: i(
682
- "flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-bg-subtle p-8 shadow-sm",
683
+ "flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-neutral-900 p-8 shadow-sm",
683
684
  e
684
685
  ),
685
- ...u,
686
+ ...d,
686
687
  children: [
687
- /* @__PURE__ */ f("div", { className: "flex items-center justify-between", children: [
688
+ /* @__PURE__ */ u("div", { className: "flex items-center justify-between", children: [
688
689
  /* @__PURE__ */ t("span", { className: "text-sm text-fg-muted", children: r }),
689
690
  c && /* @__PURE__ */ t("span", { className: "text-fg-muted", children: c })
690
691
  ] }),
691
- /* @__PURE__ */ t("span", { className: "text-3xl font-bold text-fg whitespace-nowrap tabular-nums", children: v }),
692
- p && /* @__PURE__ */ f(O, { variant: h ? "success" : "danger", size: "sm", className: "self-start", children: [
693
- h ? "▲" : "▼",
692
+ /* @__PURE__ */ t("span", { className: "text-3xl font-bold text-fg whitespace-nowrap tabular-nums", children: h }),
693
+ b && /* @__PURE__ */ u(Y, { variant: v ? "success" : "danger", size: "sm", className: "self-start", children: [
694
+ v ? "▲" : "▼",
694
695
  " ",
695
- Math.abs(s),
696
+ Math.abs(l),
696
697
  "%"
697
698
  ] }),
698
- l && /* @__PURE__ */ t("span", { className: "text-xs text-fg-muted", children: l })
699
+ s && /* @__PURE__ */ t("span", { className: "text-xs text-fg-muted", children: s })
699
700
  ]
700
701
  }
701
702
  );
702
703
  }
703
704
  );
704
- Se.displayName = "StatCard";
705
+ _e.displayName = "StatCard";
705
706
  const Re = V("flex gap-3 rounded-lg p-4 text-sm", {
706
707
  variants: {
707
708
  variant: {
@@ -722,16 +723,16 @@ const Re = V("flex gap-3 rounded-lg p-4 text-sm", {
722
723
  success: "✓",
723
724
  warning: "!",
724
725
  danger: "✕"
725
- }, He = g(
726
- ({ className: e, variant: r = "info", title: a, onClose: n, children: o, ...s }, l) => {
726
+ }, He = p(
727
+ ({ className: e, variant: r = "info", title: a, onClose: n, children: o, ...l }, s) => {
727
728
  const c = r ?? "info";
728
- return /* @__PURE__ */ f(
729
+ return /* @__PURE__ */ u(
729
730
  "div",
730
731
  {
731
- ref: l,
732
+ ref: s,
732
733
  role: "alert",
733
734
  className: i(Re({ variant: r }), e),
734
- ...s,
735
+ ...l,
735
736
  children: [
736
737
  /* @__PURE__ */ t(
737
738
  "span",
@@ -744,7 +745,7 @@ const Re = V("flex gap-3 rounded-lg p-4 text-sm", {
744
745
  children: We[c]
745
746
  }
746
747
  ),
747
- /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
748
+ /* @__PURE__ */ u("div", { className: "min-w-0 flex-1", children: [
748
749
  a && /* @__PURE__ */ t("div", { className: "font-semibold text-fg", children: a }),
749
750
  o && /* @__PURE__ */ t("div", { className: "text-fg-muted", children: o })
750
751
  ] }),
@@ -754,7 +755,7 @@ const Re = V("flex gap-3 rounded-lg p-4 text-sm", {
754
755
  type: "button",
755
756
  onClick: n,
756
757
  "aria-label": "Fechar",
757
- className: "shrink-0 rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
758
+ className: "shrink-0 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
758
759
  children: "✕"
759
760
  }
760
761
  )
@@ -769,43 +770,43 @@ function Ke({
769
770
  defaultValue: r,
770
771
  onChange: a
771
772
  }) {
772
- const n = e !== void 0, [o, s] = b(r), l = n ? e : o, c = M(
773
- (u) => {
774
- n || s(u), a == null || a(u);
773
+ const n = e !== void 0, [o, l] = x(r), s = n ? e : o, c = z(
774
+ (d) => {
775
+ n || l(d), a == null || a(d);
775
776
  },
776
777
  [n, a]
777
778
  );
778
- return [l, c];
779
+ return [s, c];
779
780
  }
780
- const U = N(null);
781
- function A() {
782
- const e = w(U);
781
+ const $ = C(null);
782
+ function B() {
783
+ const e = y($);
783
784
  if (!e) throw new Error("Componentes de Tabs precisam estar dentro de <Tabs>");
784
785
  return e;
785
786
  }
786
- function dr({
787
+ function br({
787
788
  value: e,
788
789
  defaultValue: r,
789
790
  onValueChange: a,
790
791
  className: n,
791
792
  children: o,
792
- ...s
793
+ ...l
793
794
  }) {
794
- const [l, c] = Ke({
795
+ const [s, c] = Ke({
795
796
  value: e,
796
797
  defaultValue: r ?? "",
797
798
  onChange: a
798
799
  });
799
- return /* @__PURE__ */ t(U.Provider, { value: { value: l, setValue: c }, children: /* @__PURE__ */ t("div", { className: n, ...s, children: o }) });
800
+ return /* @__PURE__ */ t($.Provider, { value: { value: s, setValue: c }, children: /* @__PURE__ */ t("div", { className: n, ...l, children: o }) });
800
801
  }
801
- function mr({ className: e, children: r, ...a }) {
802
- const { value: n } = A(), o = T(null), [s, l] = b({ left: 0, width: 0, ready: !1 });
803
- return C(() => {
802
+ function xr({ className: e, children: r, ...a }) {
803
+ const { value: n } = B(), o = L(null), [l, s] = x({ left: 0, width: 0, ready: !1 });
804
+ return N(() => {
804
805
  const c = o.current;
805
806
  if (!c) return;
806
- const u = c.querySelector('[aria-selected="true"]');
807
- u && l({ left: u.offsetLeft, width: u.offsetWidth, ready: !0 });
808
- }, [n]), /* @__PURE__ */ f(
807
+ const d = c.querySelector('[aria-selected="true"]');
808
+ d && s({ left: d.offsetLeft, width: d.offsetWidth, ready: !0 });
809
+ }, [n]), /* @__PURE__ */ u(
809
810
  "div",
810
811
  {
811
812
  ref: o,
@@ -814,20 +815,20 @@ function mr({ className: e, children: r, ...a }) {
814
815
  ...a,
815
816
  children: [
816
817
  r,
817
- s.ready && /* @__PURE__ */ t(
818
+ l.ready && /* @__PURE__ */ t(
818
819
  "span",
819
820
  {
820
821
  "aria-hidden": !0,
821
822
  className: "pointer-events-none absolute bottom-[-1px] h-[2px] rounded-full bg-primary transition-all duration-250 ease-out",
822
- style: { left: s.left, width: s.width }
823
+ style: { left: l.left, width: l.width }
823
824
  }
824
825
  )
825
826
  ]
826
827
  }
827
828
  );
828
829
  }
829
- function pr({ value: e, className: r, ...a }) {
830
- const n = A(), o = n.value === e;
830
+ function vr({ value: e, className: r, ...a }) {
831
+ const n = B(), o = n.value === e;
831
832
  return /* @__PURE__ */ t(
832
833
  "button",
833
834
  {
@@ -836,7 +837,7 @@ function pr({ value: e, className: r, ...a }) {
836
837
  "aria-selected": o,
837
838
  onClick: () => n.setValue(e),
838
839
  className: i(
839
- "px-4 py-2 text-sm font-medium transition-colors outline-none",
840
+ "px-4 py-2 text-sm font-medium transition-colors outline-none cursor-pointer",
840
841
  "focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg",
841
842
  o ? "text-fg" : "text-fg-muted hover:text-fg",
842
843
  r
@@ -845,8 +846,8 @@ function pr({ value: e, className: r, ...a }) {
845
846
  }
846
847
  );
847
848
  }
848
- function gr({ value: e, className: r, ...a }) {
849
- return A().value !== e ? null : /* @__PURE__ */ t(
849
+ function wr({ value: e, className: r, ...a }) {
850
+ return B().value !== e ? null : /* @__PURE__ */ t(
850
851
  "div",
851
852
  {
852
853
  role: "tabpanel",
@@ -855,24 +856,24 @@ function gr({ value: e, className: r, ...a }) {
855
856
  }
856
857
  );
857
858
  }
858
- const Y = N(null), B = N("");
859
- function $() {
860
- const e = w(Y);
859
+ const J = C(null), _ = C("");
860
+ function Q() {
861
+ const e = y(J);
861
862
  if (!e) throw new Error("Componentes de Accordion precisam estar dentro de <Accordion>");
862
863
  return e;
863
864
  }
864
- function br({
865
+ function yr({
865
866
  type: e = "single",
866
867
  defaultValue: r,
867
868
  className: a,
868
869
  children: n,
869
870
  ...o
870
871
  }) {
871
- const s = r ? Array.isArray(r) ? r : [r] : [], [l, c] = b(s), u = (m) => c((d) => {
872
- const p = d.includes(m);
873
- return e === "single" ? p ? [] : [m] : p ? d.filter((h) => h !== m) : [...d, m];
872
+ const l = r ? Array.isArray(r) ? r : [r] : [], [s, c] = x(l), d = (f) => c((g) => {
873
+ const b = g.includes(f);
874
+ return e === "single" ? b ? [] : [f] : b ? g.filter((v) => v !== f) : [...g, f];
874
875
  });
875
- return /* @__PURE__ */ t(Y.Provider, { value: { open: l, toggle: u }, children: /* @__PURE__ */ t(
876
+ return /* @__PURE__ */ t(J.Provider, { value: { open: s, toggle: d }, children: /* @__PURE__ */ t(
876
877
  "div",
877
878
  {
878
879
  className: i("border-y border-border-default divide-y divide-border-default", a),
@@ -881,39 +882,39 @@ function br({
881
882
  }
882
883
  ) });
883
884
  }
884
- function hr({ value: e, children: r, ...a }) {
885
- return /* @__PURE__ */ t(B.Provider, { value: e, children: /* @__PURE__ */ t("div", { ...a, children: r }) });
885
+ function Nr({ value: e, children: r, ...a }) {
886
+ return /* @__PURE__ */ t(_.Provider, { value: e, children: /* @__PURE__ */ t("div", { ...a, children: r }) });
886
887
  }
887
- function vr({
888
+ function Cr({
888
889
  className: e,
889
890
  children: r,
890
891
  ...a
891
892
  }) {
892
- const n = $(), o = w(B), s = n.open.includes(o);
893
- return /* @__PURE__ */ f(
893
+ const n = Q(), o = y(_), l = n.open.includes(o);
894
+ return /* @__PURE__ */ u(
894
895
  "button",
895
896
  {
896
897
  type: "button",
897
- "aria-expanded": s,
898
+ "aria-expanded": l,
898
899
  onClick: () => n.toggle(o),
899
900
  className: i(
900
- "flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none",
901
+ "flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none cursor-pointer",
901
902
  "focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg",
902
903
  e
903
904
  ),
904
905
  ...a,
905
906
  children: [
906
907
  r,
907
- /* @__PURE__ */ t("span", { className: i("text-fg-muted transition-transform", s && "rotate-180"), children: "▾" })
908
+ /* @__PURE__ */ t("span", { className: i("text-fg-muted transition-transform", l && "rotate-180"), children: "▾" })
908
909
  ]
909
910
  }
910
911
  );
911
912
  }
912
- function xr({
913
+ function Vr({
913
914
  className: e,
914
915
  ...r
915
916
  }) {
916
- const a = $(), n = w(B);
917
+ const a = Q(), n = y(_);
917
918
  return a.open.includes(n) ? /* @__PURE__ */ t("div", { className: i("pb-4 text-sm text-fg-muted", e), ...r }) : null;
918
919
  }
919
920
  const qe = {
@@ -922,23 +923,23 @@ const qe = {
922
923
  left: "right-full top-1/2 -translate-y-1/2 mr-2",
923
924
  right: "left-full top-1/2 -translate-y-1/2 ml-2"
924
925
  };
925
- function wr({ content: e, side: r = "top", children: a, className: n }) {
926
- const [o, s] = b(!1), l = H();
927
- return /* @__PURE__ */ f(
926
+ function kr({ content: e, side: r = "top", children: a, className: n }) {
927
+ const [o, l] = x(!1), s = K();
928
+ return /* @__PURE__ */ u(
928
929
  "span",
929
930
  {
930
931
  className: "relative inline-flex",
931
- onMouseEnter: () => s(!0),
932
- onMouseLeave: () => s(!1),
933
- onFocus: () => s(!0),
934
- onBlur: () => s(!1),
932
+ onMouseEnter: () => l(!0),
933
+ onMouseLeave: () => l(!1),
934
+ onFocus: () => l(!0),
935
+ onBlur: () => l(!1),
935
936
  children: [
936
- /* @__PURE__ */ t("span", { "aria-describedby": o ? l : void 0, children: a }),
937
+ /* @__PURE__ */ t("span", { "aria-describedby": o ? s : void 0, children: a }),
937
938
  o && /* @__PURE__ */ t(
938
939
  "span",
939
940
  {
940
941
  role: "tooltip",
941
- id: l,
942
+ id: s,
942
943
  className: i(
943
944
  "pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-fg px-2 py-1 text-xs text-bg shadow-md",
944
945
  "animate-[flui-fade-in_120ms_ease-out]",
@@ -952,38 +953,38 @@ function wr({ content: e, side: r = "top", children: a, className: n }) {
952
953
  }
953
954
  );
954
955
  }
955
- const J = N(null);
956
- function Q() {
957
- const e = w(J);
956
+ const X = C(null);
957
+ function Z() {
958
+ const e = y(X);
958
959
  if (!e) throw new Error("Componentes de Popover precisam estar dentro de <Popover>");
959
960
  return e;
960
961
  }
961
- function yr({ children: e }) {
962
- const [r, a] = b(!1), n = T(null);
963
- return C(() => {
962
+ function zr({ children: e }) {
963
+ const [r, a] = x(!1), n = L(null);
964
+ return N(() => {
964
965
  if (!r) return;
965
- const o = (l) => {
966
- n.current && !n.current.contains(l.target) && a(!1);
967
- }, s = (l) => l.key === "Escape" && a(!1);
968
- return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
969
- document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
966
+ const o = (s) => {
967
+ n.current && !n.current.contains(s.target) && a(!1);
968
+ }, l = (s) => s.key === "Escape" && a(!1);
969
+ return document.addEventListener("mousedown", o), document.addEventListener("keydown", l), () => {
970
+ document.removeEventListener("mousedown", o), document.removeEventListener("keydown", l);
970
971
  };
971
- }, [r]), /* @__PURE__ */ t(J.Provider, { value: { open: r, setOpen: a }, children: /* @__PURE__ */ t("div", { ref: n, className: "relative inline-block", children: e }) });
972
+ }, [r]), /* @__PURE__ */ t(X.Provider, { value: { open: r, setOpen: a }, children: /* @__PURE__ */ t("div", { ref: n, className: "relative inline-block", children: e }) });
972
973
  }
973
- function Cr({ children: e }) {
974
- const { open: r, setOpen: a } = Q();
975
- return K(e, {
974
+ function Mr({ children: e }) {
975
+ const { open: r, setOpen: a } = Z();
976
+ return q(e, {
976
977
  onClick: () => a(!r),
977
978
  "aria-haspopup": "dialog",
978
979
  "aria-expanded": r
979
980
  });
980
981
  }
981
- function Nr({
982
+ function Tr({
982
983
  children: e,
983
984
  align: r = "start",
984
985
  className: a
985
986
  }) {
986
- const { open: n } = Q();
987
+ const { open: n } = Z();
987
988
  return n ? /* @__PURE__ */ t(
988
989
  "div",
989
990
  {
@@ -998,12 +999,12 @@ function Nr({
998
999
  }
999
1000
  ) : null;
1000
1001
  }
1001
- function I({ children: e }) {
1002
- const [r, a] = b(!1);
1003
- return C(() => a(!0), []), r ? ie(e, document.body) : null;
1002
+ function R({ children: e }) {
1003
+ const [r, a] = x(!1);
1004
+ return N(() => a(!0), []), r ? ue(e, document.body) : null;
1004
1005
  }
1005
- function X(e, r) {
1006
- C(() => {
1006
+ function ee(e, r) {
1007
+ N(() => {
1007
1008
  if (!e) return;
1008
1009
  const a = (o) => o.key === "Escape" && r(), n = document.body.style.overflow;
1009
1010
  return document.body.style.overflow = "hidden", document.addEventListener("keydown", a), () => {
@@ -1011,10 +1012,10 @@ function X(e, r) {
1011
1012
  };
1012
1013
  }, [e, r]);
1013
1014
  }
1014
- const Z = N(null);
1015
+ const re = C(null);
1015
1016
  function Ge({ open: e, onOpenChange: r, children: a }) {
1016
1017
  const n = () => r == null ? void 0 : r(!1);
1017
- return X(e, n), e ? /* @__PURE__ */ t(I, { children: /* @__PURE__ */ t(Z.Provider, { value: { close: n }, children: /* @__PURE__ */ f("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
1018
+ return ee(e, n), e ? /* @__PURE__ */ t(R, { children: /* @__PURE__ */ t(re.Provider, { value: { close: n }, children: /* @__PURE__ */ u("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
1018
1019
  /* @__PURE__ */ t(
1019
1020
  "div",
1020
1021
  {
@@ -1025,13 +1026,13 @@ function Ge({ open: e, onOpenChange: r, children: a }) {
1025
1026
  a
1026
1027
  ] }) }) }) : null;
1027
1028
  }
1028
- function Oe({
1029
+ function Ue({
1029
1030
  className: e,
1030
1031
  children: r,
1031
1032
  ...a
1032
1033
  }) {
1033
- const n = w(Z);
1034
- return /* @__PURE__ */ f(
1034
+ const n = y(re);
1035
+ return /* @__PURE__ */ u(
1035
1036
  "div",
1036
1037
  {
1037
1038
  role: "dialog",
@@ -1050,7 +1051,7 @@ function Oe({
1050
1051
  type: "button",
1051
1052
  onClick: () => n == null ? void 0 : n.close(),
1052
1053
  "aria-label": "Fechar",
1053
- className: "absolute right-4 top-4 rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
1054
+ className: "absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
1054
1055
  children: "✕"
1055
1056
  }
1056
1057
  )
@@ -1058,33 +1059,33 @@ function Oe({
1058
1059
  }
1059
1060
  );
1060
1061
  }
1061
- function Vr({ className: e, ...r }) {
1062
+ function Er({ className: e, ...r }) {
1062
1063
  return /* @__PURE__ */ t("div", { className: i("flex flex-col gap-1 p-6 pb-2", e), ...r });
1063
1064
  }
1064
- function kr({ className: e, ...r }) {
1065
+ function Lr({ className: e, ...r }) {
1065
1066
  return /* @__PURE__ */ t("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1066
1067
  }
1067
- function zr({
1068
+ function Pr({
1068
1069
  className: e,
1069
1070
  ...r
1070
1071
  }) {
1071
1072
  return /* @__PURE__ */ t("p", { className: i("text-sm text-fg-muted", e), ...r });
1072
1073
  }
1073
- function Mr({ className: e, ...r }) {
1074
+ function Dr({ className: e, ...r }) {
1074
1075
  return /* @__PURE__ */ t("div", { className: i("px-6 py-2", e), ...r });
1075
1076
  }
1076
- function Tr({ className: e, ...r }) {
1077
+ function Ar({ className: e, ...r }) {
1077
1078
  return /* @__PURE__ */ t("div", { className: i("flex justify-end gap-2 p-6 pt-4", e), ...r });
1078
1079
  }
1079
- const ee = N(null), Ue = {
1080
+ const te = C(null), Oe = {
1080
1081
  left: "left-0 top-0 h-full w-[420px] max-w-[96vw] border-r",
1081
1082
  right: "right-0 top-0 h-full w-[420px] max-w-[96vw] border-l",
1082
1083
  top: "top-0 left-0 w-full max-h-[90vh] border-b",
1083
1084
  bottom: "bottom-0 left-0 w-full max-h-[90vh] border-t"
1084
1085
  };
1085
- function Er({ open: e, onOpenChange: r, side: a = "right", children: n }) {
1086
+ function Ir({ open: e, onOpenChange: r, side: a = "right", children: n }) {
1086
1087
  const o = () => r == null ? void 0 : r(!1);
1087
- return X(e, o), e ? /* @__PURE__ */ t(I, { children: /* @__PURE__ */ t(ee.Provider, { value: { close: o, side: a }, children: /* @__PURE__ */ f("div", { className: "fixed inset-0 z-50", children: [
1088
+ return ee(e, o), e ? /* @__PURE__ */ t(R, { children: /* @__PURE__ */ t(te.Provider, { value: { close: o, side: a }, children: /* @__PURE__ */ u("div", { className: "fixed inset-0 z-50", children: [
1088
1089
  /* @__PURE__ */ t(
1089
1090
  "div",
1090
1091
  {
@@ -1095,13 +1096,13 @@ function Er({ open: e, onOpenChange: r, side: a = "right", children: n }) {
1095
1096
  n
1096
1097
  ] }) }) }) : null;
1097
1098
  }
1098
- function Pr({
1099
+ function Sr({
1099
1100
  className: e,
1100
1101
  children: r,
1101
1102
  ...a
1102
1103
  }) {
1103
- const n = w(ee), o = (n == null ? void 0 : n.side) ?? "right";
1104
- return /* @__PURE__ */ f(
1104
+ const n = y(te), o = (n == null ? void 0 : n.side) ?? "right";
1105
+ return /* @__PURE__ */ u(
1105
1106
  "div",
1106
1107
  {
1107
1108
  role: "dialog",
@@ -1109,7 +1110,7 @@ function Pr({
1109
1110
  className: i(
1110
1111
  "absolute z-10 flex flex-col border-border-default bg-bg shadow-lg",
1111
1112
  "animate-[flui-fade-in_160ms_ease-out]",
1112
- Ue[o],
1113
+ Oe[o],
1113
1114
  e
1114
1115
  ),
1115
1116
  ...a,
@@ -1121,7 +1122,7 @@ function Pr({
1121
1122
  type: "button",
1122
1123
  onClick: () => n == null ? void 0 : n.close(),
1123
1124
  "aria-label": "Fechar",
1124
- className: "absolute right-4 top-4 rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
1125
+ className: "absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
1125
1126
  children: "✕"
1126
1127
  }
1127
1128
  )
@@ -1129,7 +1130,7 @@ function Pr({
1129
1130
  }
1130
1131
  );
1131
1132
  }
1132
- function Lr({ className: e, ...r }) {
1133
+ function jr({ className: e, ...r }) {
1133
1134
  return /* @__PURE__ */ t(
1134
1135
  "div",
1135
1136
  {
@@ -1138,13 +1139,13 @@ function Lr({ className: e, ...r }) {
1138
1139
  }
1139
1140
  );
1140
1141
  }
1141
- function Dr({ className: e, ...r }) {
1142
+ function Br({ className: e, ...r }) {
1142
1143
  return /* @__PURE__ */ t("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1143
1144
  }
1144
- function Ar({ className: e, ...r }) {
1145
+ function _r({ className: e, ...r }) {
1145
1146
  return /* @__PURE__ */ t("div", { className: i("flex-1 overflow-y-auto p-6", e), ...r });
1146
1147
  }
1147
- function Br({ className: e, ...r }) {
1148
+ function Rr({ className: e, ...r }) {
1148
1149
  return /* @__PURE__ */ t(
1149
1150
  "div",
1150
1151
  {
@@ -1153,63 +1154,81 @@ function Br({ className: e, ...r }) {
1153
1154
  }
1154
1155
  );
1155
1156
  }
1156
- const re = N(null), P = {
1157
- info: { wrapper: "bg-brand-100 border-l-primary", title: "text-fg", description: "text-fg-muted" },
1158
- success: { wrapper: "bg-success-subtle border-l-success", title: "text-success-fg", description: "text-success-fg/70" },
1159
- warning: { wrapper: "bg-warning/15 border-l-warning", title: "text-fg", description: "text-fg-muted" },
1160
- danger: { wrapper: "bg-danger/10 border-l-danger", title: "text-danger", description: "text-danger/70" }
1157
+ const ae = C(null), Ye = {
1158
+ info: { wrapper: "bg-[var(--color-toast-info-bg)]", title: "text-fg", description: "text-fg-muted", action: "text-primary hover:text-primary/80" },
1159
+ success: { wrapper: "bg-[var(--color-toast-success-bg)]", title: "text-success-fg", description: "text-fg-muted", action: "text-success-fg hover:text-success-fg/80" },
1160
+ warning: { wrapper: "bg-[var(--color-toast-warning-bg)]", title: "text-fg", description: "text-fg-muted", action: "text-fg hover:text-fg/80" },
1161
+ danger: { wrapper: "bg-[var(--color-toast-danger-bg)]", title: "text-danger", description: "text-fg-muted", action: "text-danger hover:text-danger/80" }
1161
1162
  };
1162
- function Ir({ children: e }) {
1163
- const [r, a] = b([]), n = T(0), o = M((l) => {
1164
- a((c) => c.filter((u) => u.id !== l));
1165
- }, []), s = M((l) => {
1163
+ function Fr({ children: e }) {
1164
+ const [r, a] = x([]), n = L(0), o = z((s) => {
1165
+ a((c) => c.map((d) => d.id === s ? { ...d, leaving: !0 } : d)), setTimeout(() => {
1166
+ a((c) => c.filter((d) => d.id !== s));
1167
+ }, 160);
1168
+ }, []), l = z((s) => {
1166
1169
  const c = ++n.current;
1167
- return a((u) => [...u, { id: c, variant: "info", duration: 4e3, ...l }]), c;
1170
+ return a((d) => [...d, { id: c, variant: "info", duration: 4e3, ...s }]), c;
1168
1171
  }, []);
1169
- return /* @__PURE__ */ f(re.Provider, { value: { toast: s, dismiss: o }, children: [
1172
+ return /* @__PURE__ */ u(ae.Provider, { value: { toast: l, dismiss: o }, children: [
1170
1173
  e,
1171
- /* @__PURE__ */ t(I, { children: /* @__PURE__ */ t("div", { className: "pointer-events-none fixed bottom-4 right-4 z-[60] flex w-80 max-w-[90vw] flex-col gap-2", children: r.map((l) => /* @__PURE__ */ t(Ye, { item: l, onDismiss: () => o(l.id) }, l.id)) }) })
1174
+ /* @__PURE__ */ t(R, { children: /* @__PURE__ */ t("div", { className: "pointer-events-none fixed bottom-4 right-8 z-[60] flex w-80 max-w-[90vw] flex-col gap-2", children: r.map((s) => /* @__PURE__ */ t($e, { item: s, onDismiss: () => o(s.id) }, s.id)) }) })
1172
1175
  ] });
1173
1176
  }
1174
- function Ye({ item: e, onDismiss: r }) {
1175
- return C(() => {
1177
+ function $e({ item: e, onDismiss: r }) {
1178
+ N(() => {
1176
1179
  if (!e.duration) return;
1177
- const a = setTimeout(r, e.duration);
1178
- return () => clearTimeout(a);
1179
- }, [e.duration, r]), /* @__PURE__ */ f(
1180
+ const n = setTimeout(r, e.duration);
1181
+ return () => clearTimeout(n);
1182
+ }, [e.duration, r]);
1183
+ const a = Ye[e.variant ?? "info"];
1184
+ return /* @__PURE__ */ u(
1180
1185
  "div",
1181
1186
  {
1182
1187
  role: "status",
1183
1188
  className: i(
1184
- "pointer-events-auto flex items-start gap-3 rounded-lg border-l-4 p-4 shadow-md",
1185
- "animate-[flui-slide-up_160ms_ease-out]",
1186
- P[e.variant ?? "info"].wrapper
1189
+ "pointer-events-auto flex items-start gap-3 rounded-3xl p-4 shadow-sm",
1190
+ e.leaving ? "animate-[flui-slide-down_160ms_ease-in_forwards]" : "animate-[flui-slide-up_160ms_ease-out]",
1191
+ a.wrapper
1187
1192
  ),
1188
1193
  children: [
1189
- /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
1190
- /* @__PURE__ */ t("div", { className: i("text-sm font-semibold", P[e.variant ?? "info"].title), children: e.title }),
1191
- e.description && /* @__PURE__ */ t("div", { className: i("mt-0.5 text-sm", P[e.variant ?? "info"].description), children: e.description })
1194
+ e.icon && /* @__PURE__ */ t("span", { className: i("mt-0.5 shrink-0", a.title), children: e.icon }),
1195
+ /* @__PURE__ */ u("div", { className: "min-w-0 flex-1", children: [
1196
+ /* @__PURE__ */ t("div", { className: i("text-sm font-semibold", a.title), children: e.title }),
1197
+ e.description && /* @__PURE__ */ t("div", { className: i("mt-0.5 text-sm", a.description), children: e.description })
1192
1198
  ] }),
1193
- /* @__PURE__ */ t(
1194
- "button",
1195
- {
1196
- type: "button",
1197
- onClick: r,
1198
- "aria-label": "Fechar",
1199
- className: i("shrink-0 rounded-sm px-1 transition-colors opacity-60 hover:opacity-100", P[e.variant ?? "info"].title),
1200
- children: "✕"
1201
- }
1202
- )
1199
+ /* @__PURE__ */ u("div", { className: "flex shrink-0 items-center gap-1", children: [
1200
+ e.action && /* @__PURE__ */ t(
1201
+ "button",
1202
+ {
1203
+ type: "button",
1204
+ onClick: () => {
1205
+ e.action.onClick(), r();
1206
+ },
1207
+ className: i("cursor-pointer rounded-sm px-1.5 py-0.5 text-xs font-semibold transition-colors", a.action),
1208
+ children: e.action.label
1209
+ }
1210
+ ),
1211
+ /* @__PURE__ */ t(
1212
+ "button",
1213
+ {
1214
+ type: "button",
1215
+ onClick: r,
1216
+ "aria-label": "Fechar",
1217
+ className: i("cursor-pointer rounded-sm px-1 transition-colors opacity-60 hover:opacity-100", a.title),
1218
+ children: "✕"
1219
+ }
1220
+ )
1221
+ ] })
1203
1222
  ]
1204
1223
  }
1205
1224
  );
1206
1225
  }
1207
- function jr() {
1208
- const e = w(re);
1226
+ function Je() {
1227
+ const e = y(ae);
1209
1228
  if (!e) throw new Error("useToast precisa estar dentro de <ToastProvider>");
1210
1229
  return e;
1211
1230
  }
1212
- const $e = V(
1231
+ const Qe = V(
1213
1232
  "flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent transition-colors outline-none resize-y rounded-lg min-h-28 px-3 py-3 text-sm focus-visible:border-border-strong disabled:opacity-50 disabled:pointer-events-none",
1214
1233
  {
1215
1234
  variants: {
@@ -1220,27 +1239,71 @@ const $e = V(
1220
1239
  },
1221
1240
  defaultVariants: { invalid: !1 }
1222
1241
  }
1223
- ), Je = g(
1242
+ ), Xe = p(
1224
1243
  ({ className: e, invalid: r, ...a }, n) => /* @__PURE__ */ t(
1225
1244
  "textarea",
1226
1245
  {
1227
1246
  ref: n,
1228
- className: i($e({ invalid: r }), e),
1247
+ className: i(Qe({ invalid: r }), e),
1229
1248
  ...a
1230
1249
  }
1231
1250
  )
1232
1251
  );
1233
- Je.displayName = "Textarea";
1234
- function Qe({
1252
+ Xe.displayName = "Textarea";
1253
+ const Ze = p(
1254
+ ({ code: e, language: r, className: a, ...n }, o) => {
1255
+ const { toast: l } = Je();
1256
+ function s() {
1257
+ navigator.clipboard.writeText(e).then(() => {
1258
+ l({ title: "Copiado!", variant: "success", duration: 2e3 });
1259
+ });
1260
+ }
1261
+ return /* @__PURE__ */ u(
1262
+ "div",
1263
+ {
1264
+ ref: o,
1265
+ className: i("overflow-hidden rounded-lg bg-bg-subtle", a),
1266
+ ...n,
1267
+ children: [
1268
+ /* @__PURE__ */ u("div", { className: "flex items-center justify-between bg-bg-muted px-4 py-2", children: [
1269
+ r ? /* @__PURE__ */ t("span", { className: "font-mono text-xs text-fg-muted", children: r }) : /* @__PURE__ */ t("span", {}),
1270
+ /* @__PURE__ */ u(
1271
+ "button",
1272
+ {
1273
+ type: "button",
1274
+ onClick: s,
1275
+ "aria-label": "Copiar código",
1276
+ className: "inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-bg hover:text-fg",
1277
+ children: [
1278
+ /* @__PURE__ */ t(er, {}),
1279
+ "Copiar"
1280
+ ]
1281
+ }
1282
+ )
1283
+ ] }),
1284
+ /* @__PURE__ */ t("pre", { className: "overflow-x-auto p-4 text-sm leading-relaxed", children: /* @__PURE__ */ t("code", { className: "font-mono text-fg", children: e }) })
1285
+ ]
1286
+ }
1287
+ );
1288
+ }
1289
+ );
1290
+ Ze.displayName = "CodeBlock";
1291
+ function er() {
1292
+ return /* @__PURE__ */ u("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": !0, children: [
1293
+ /* @__PURE__ */ t("rect", { x: "6", y: "6", width: "8", height: "8", rx: "1.5" }),
1294
+ /* @__PURE__ */ t("path", { d: "M4 10H3a1.5 1.5 0 0 1-1.5-1.5v-6A1.5 1.5 0 0 1 3 1h6A1.5 1.5 0 0 1 10.5 2.5V4" })
1295
+ ] });
1296
+ }
1297
+ function rr({
1235
1298
  user: e,
1236
1299
  nav: r,
1237
1300
  active: a,
1238
1301
  onSelect: n,
1239
1302
  footerAction: o
1240
1303
  }) {
1241
- const s = (l) => "flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm transition-colors " + (l ? "bg-bg-muted font-medium text-fg" : "text-fg hover:bg-bg-muted");
1242
- return /* @__PURE__ */ f("aside", { className: "flex w-52 shrink-0 flex-col gap-5 overflow-y-auto border-r border-border-default py-5 pl-4 pr-2", children: [
1243
- /* @__PURE__ */ f("div", { className: "flex items-center gap-2.5 px-1", children: [
1304
+ const l = (s) => "flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm transition-colors " + (s ? "bg-bg-muted font-medium text-fg" : "text-fg hover:bg-bg-muted");
1305
+ return /* @__PURE__ */ u("aside", { className: "flex w-52 shrink-0 flex-col gap-5 overflow-y-auto border-r border-border-default py-5 pl-4 pr-2", children: [
1306
+ /* @__PURE__ */ u("div", { className: "flex items-center gap-2.5 px-1", children: [
1244
1307
  e.avatar ? /* @__PURE__ */ t(
1245
1308
  "img",
1246
1309
  {
@@ -1249,7 +1312,7 @@ function Qe({
1249
1312
  className: "h-8 w-8 shrink-0 rounded-full object-cover"
1250
1313
  }
1251
1314
  ) : /* @__PURE__ */ t("span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary-subtle text-xs font-semibold text-primary", children: e.initials ?? e.name.slice(0, 2).toUpperCase() }),
1252
- /* @__PURE__ */ f("div", { className: "min-w-0", children: [
1315
+ /* @__PURE__ */ u("div", { className: "min-w-0", children: [
1253
1316
  /* @__PURE__ */ t("p", { className: "truncate text-sm font-medium text-fg", children: e.name }),
1254
1317
  e.subtitle && /* @__PURE__ */ t("p", { className: "truncate text-xs text-fg-muted", children: e.subtitle })
1255
1318
  ] }),
@@ -1268,129 +1331,182 @@ function Qe({
1268
1331
  }
1269
1332
  )
1270
1333
  ] }),
1271
- r.map(({ group: l, items: c }) => /* @__PURE__ */ f("div", { children: [
1272
- /* @__PURE__ */ t("p", { className: "mb-1 px-1 text-xs font-semibold text-fg-muted", children: l }),
1273
- /* @__PURE__ */ t("ul", { className: "flex flex-col gap-0.5", children: c.map((u) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ f(
1334
+ r.map(({ group: s, items: c }) => /* @__PURE__ */ u("div", { children: [
1335
+ /* @__PURE__ */ t("p", { className: "mb-1 px-1 text-xs font-semibold text-fg-muted", children: s }),
1336
+ /* @__PURE__ */ t("ul", { className: "flex flex-col gap-0.5", children: c.map((d) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ u(
1274
1337
  "button",
1275
1338
  {
1276
1339
  type: "button",
1277
- onClick: () => n(u.id),
1278
- className: s(u.id === a),
1340
+ onClick: () => n(d.id),
1341
+ className: l(d.id === a),
1279
1342
  children: [
1280
- u.icon && /* @__PURE__ */ t("span", { className: "shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]", children: u.icon }),
1281
- u.label
1343
+ d.icon && /* @__PURE__ */ t("span", { className: "shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]", children: d.icon }),
1344
+ d.label
1282
1345
  ]
1283
1346
  }
1284
- ) }, u.id)) })
1285
- ] }, l)),
1347
+ ) }, d.id)) })
1348
+ ] }, s)),
1286
1349
  o && /* @__PURE__ */ t("div", { className: "mt-auto", children: o })
1287
1350
  ] });
1288
1351
  }
1289
- function _r({
1352
+ function Wr({
1353
+ title: e,
1354
+ description: r,
1355
+ checked: a,
1356
+ onCheckedChange: n
1357
+ }) {
1358
+ return /* @__PURE__ */ u("div", { className: "flex items-center justify-between gap-6 px-4 py-4", children: [
1359
+ /* @__PURE__ */ u("div", { children: [
1360
+ /* @__PURE__ */ t("p", { className: "text-sm font-medium text-fg", children: e }),
1361
+ r && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: r })
1362
+ ] }),
1363
+ /* @__PURE__ */ t(G, { checked: a, onCheckedChange: n, className: "shrink-0" })
1364
+ ] });
1365
+ }
1366
+ function tr({ children: e }) {
1367
+ return /* @__PURE__ */ t("div", { className: "divide-y divide-border-default rounded-xl bg-bg", children: e });
1368
+ }
1369
+ function Hr({
1370
+ title: e,
1371
+ children: r
1372
+ }) {
1373
+ return /* @__PURE__ */ u("div", { className: "flex flex-col gap-3", children: [
1374
+ /* @__PURE__ */ t("h3", { className: "text-base font-semibold text-fg", children: e }),
1375
+ /* @__PURE__ */ t(tr, { children: r })
1376
+ ] });
1377
+ }
1378
+ function Kr({
1379
+ icon: e,
1380
+ title: r,
1381
+ description: a,
1382
+ connected: n = !1,
1383
+ onConnect: o,
1384
+ onDisconnect: l
1385
+ }) {
1386
+ return /* @__PURE__ */ u("div", { className: "flex items-center gap-4 rounded-xl bg-bg px-4 py-4", children: [
1387
+ /* @__PURE__ */ t("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-bg-muted", children: /* @__PURE__ */ t("span", { className: "[&>svg]:h-4 [&>svg]:w-4", children: e }) }),
1388
+ /* @__PURE__ */ u("div", { className: "flex-1 min-w-0", children: [
1389
+ /* @__PURE__ */ t("p", { className: "text-sm font-medium text-fg", children: r }),
1390
+ a && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: a })
1391
+ ] }),
1392
+ n ? /* @__PURE__ */ t(S, { variant: "danger-ghost", size: "sm", onClick: l, children: "Desconectar" }) : /* @__PURE__ */ t(S, { variant: "secondary", size: "sm", onClick: o, children: "Conectar" })
1393
+ ] });
1394
+ }
1395
+ function qr({
1290
1396
  open: e,
1291
1397
  onOpenChange: r,
1292
1398
  user: a,
1293
1399
  nav: n,
1294
1400
  defaultSection: o,
1295
- activeSection: s,
1296
- onSectionChange: l,
1401
+ activeSection: l,
1402
+ onSectionChange: s,
1297
1403
  sectionTitles: c = {},
1298
- sectionSubtitles: u = {},
1299
- renderSection: m,
1300
- footerAction: d
1404
+ sectionSubtitles: d = {},
1405
+ renderSection: f,
1406
+ footerAction: g
1301
1407
  }) {
1302
- var _, S;
1303
- const p = ((S = (_ = n[0]) == null ? void 0 : _.items[0]) == null ? void 0 : S.id) ?? "", [h, v] = b(
1304
- o ?? p
1305
- ), y = s ?? h, x = (z) => {
1306
- v(z), l == null || l(z);
1307
- }, k = n.flatMap((z) => z.items).find((z) => z.id === y), E = c[y] ?? (k == null ? void 0 : k.label) ?? y, j = u[y];
1308
- return /* @__PURE__ */ t(Ge, { open: e, onOpenChange: r, children: /* @__PURE__ */ t(Oe, { className: "max-w-[1300px] overflow-hidden p-0", children: /* @__PURE__ */ f("div", { className: "flex h-[820px]", children: [
1408
+ var T, E;
1409
+ const b = ((E = (T = n[0]) == null ? void 0 : T.items[0]) == null ? void 0 : E.id) ?? "", [v, h] = x(
1410
+ o ?? b
1411
+ ), w = l ?? v, P = (k) => {
1412
+ h(k), s == null || s(k);
1413
+ }, M = n.flatMap((k) => k.items).find((k) => k.id === w), D = c[w] ?? (M == null ? void 0 : M.label) ?? w, m = d[w];
1414
+ return /* @__PURE__ */ t(Ge, { open: e, onOpenChange: r, children: /* @__PURE__ */ t(Ue, { className: "max-w-[1300px] overflow-hidden p-0", children: /* @__PURE__ */ u("div", { className: "flex h-[820px]", children: [
1309
1415
  /* @__PURE__ */ t(
1310
- Qe,
1416
+ rr,
1311
1417
  {
1312
1418
  user: a,
1313
1419
  nav: n,
1314
- active: y,
1315
- onSelect: x,
1316
- footerAction: d
1420
+ active: w,
1421
+ onSelect: P,
1422
+ footerAction: g
1317
1423
  }
1318
1424
  ),
1319
- /* @__PURE__ */ f("div", { className: "flex flex-1 flex-col overflow-hidden", children: [
1320
- /* @__PURE__ */ f("div", { className: "px-[200px] pb-5 pt-8", children: [
1321
- /* @__PURE__ */ t("h2", { className: "font-display text-2xl font-semibold tracking-tight text-fg", children: E }),
1322
- j && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: j })
1425
+ /* @__PURE__ */ u("div", { className: "flex flex-1 flex-col overflow-hidden bg-bg-subtle", children: [
1426
+ /* @__PURE__ */ u("div", { className: "relative px-[200px] pb-8 pt-8", children: [
1427
+ /* @__PURE__ */ t("h2", { className: "font-display text-2xl font-semibold tracking-tight text-fg", children: D }),
1428
+ m && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: m }),
1429
+ /* @__PURE__ */ t("div", { className: "pointer-events-none absolute inset-x-0 -bottom-6 h-6 bg-gradient-to-b from-bg-subtle to-transparent" })
1323
1430
  ] }),
1324
- /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto px-[200px] pb-8", children: (m == null ? void 0 : m(y)) ?? /* @__PURE__ */ f("p", { className: "text-sm text-fg-muted", children: [
1431
+ /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto px-[200px] pb-8 pt-6", children: (f == null ? void 0 : f(w)) ?? /* @__PURE__ */ u("p", { className: "text-sm text-fg-muted", children: [
1325
1432
  "Conteúdo de ",
1326
- /* @__PURE__ */ t("strong", { children: E }),
1433
+ /* @__PURE__ */ t("strong", { children: D }),
1327
1434
  "."
1328
1435
  ] }) })
1329
1436
  ] })
1330
1437
  ] }) }) });
1331
1438
  }
1332
- const te = N(null), R = "flui-color-mode", F = "flui-brand";
1333
- function Xe() {
1439
+ const ne = C(null), F = "flui-color-mode", W = "flui-brand", H = "flui-radius";
1440
+ function ar() {
1334
1441
  var e;
1335
1442
  return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-color-scheme: dark)").matches);
1336
1443
  }
1337
- function W(e, r) {
1444
+ function I(e, r) {
1338
1445
  try {
1339
1446
  return localStorage.getItem(e) ?? r;
1340
1447
  } catch {
1341
1448
  return r;
1342
1449
  }
1343
1450
  }
1344
- function Sr({
1451
+ function Gr({
1345
1452
  children: e,
1346
1453
  defaultMode: r = "system",
1347
1454
  defaultBrand: a = "default",
1348
- target: n
1455
+ defaultRadius: n = "default",
1456
+ target: o
1349
1457
  }) {
1350
- const [o, s] = b(
1351
- () => W(R, r)
1352
- ), [l, c] = b(
1353
- () => W(F, a)
1354
- ), [u, m] = b(Xe);
1355
- C(() => {
1356
- var k;
1357
- const x = (k = window.matchMedia) == null ? void 0 : k.call(window, "(prefers-color-scheme: dark)");
1358
- if (!x) return;
1359
- const L = (E) => m(E.matches);
1360
- return x.addEventListener("change", L), () => x.removeEventListener("change", L);
1458
+ const [l, s] = x(
1459
+ () => I(F, r)
1460
+ ), [c, d] = x(
1461
+ () => I(W, a)
1462
+ ), [f, g] = x(
1463
+ () => I(H, n)
1464
+ ), [b, v] = x(ar);
1465
+ N(() => {
1466
+ var E;
1467
+ const m = (E = window.matchMedia) == null ? void 0 : E.call(window, "(prefers-color-scheme: dark)");
1468
+ if (!m) return;
1469
+ const T = (k) => v(k.matches);
1470
+ return m.addEventListener("change", T), () => m.removeEventListener("change", T);
1361
1471
  }, []);
1362
- const d = o === "system" ? u ? "dark" : "light" : o;
1363
- C(() => {
1364
- const x = (n == null ? void 0 : n()) ?? document.documentElement;
1365
- x.setAttribute("data-theme", d), l && l !== "default" ? x.setAttribute("data-brand", l) : x.removeAttribute("data-brand");
1366
- }, [d, l, n]);
1367
- const p = M((x) => {
1368
- s(x);
1472
+ const h = l === "system" ? b ? "dark" : "light" : l;
1473
+ N(() => {
1474
+ const m = (o == null ? void 0 : o()) ?? document.documentElement;
1475
+ m.setAttribute("data-theme", h), c && c !== "default" ? m.setAttribute("data-brand", c) : m.removeAttribute("data-brand"), f && f !== "default" ? m.setAttribute("data-radius", f) : m.removeAttribute("data-radius");
1476
+ }, [h, c, f, o]);
1477
+ const w = z((m) => {
1478
+ s(m);
1479
+ try {
1480
+ localStorage.setItem(F, m);
1481
+ } catch {
1482
+ }
1483
+ }, []), P = z((m) => {
1484
+ d(m);
1369
1485
  try {
1370
- localStorage.setItem(R, x);
1486
+ localStorage.setItem(W, m);
1371
1487
  } catch {
1372
1488
  }
1373
- }, []), h = M((x) => {
1374
- c(x);
1489
+ }, []), A = z((m) => {
1490
+ g(m);
1375
1491
  try {
1376
- localStorage.setItem(F, x);
1492
+ localStorage.setItem(H, m);
1377
1493
  } catch {
1378
1494
  }
1379
- }, []), v = M(() => {
1380
- p(d === "dark" ? "light" : "dark");
1381
- }, [d, p]), y = oe(
1382
- () => ({ mode: o, resolvedMode: d, brand: l, setMode: p, setBrand: h, toggleMode: v }),
1383
- [o, d, l, p, h, v]
1495
+ }, []), M = z(() => {
1496
+ w(h === "dark" ? "light" : "dark");
1497
+ }, [h, w]), D = se(
1498
+ () => ({ mode: l, resolvedMode: h, brand: c, radius: f, setMode: w, setBrand: P, setRadius: A, toggleMode: M }),
1499
+ [l, h, c, f, w, P, A, M]
1384
1500
  );
1385
- return /* @__PURE__ */ t(te.Provider, { value: y, children: e });
1501
+ return /* @__PURE__ */ t(ne.Provider, { value: D, children: e });
1386
1502
  }
1387
- function Rr() {
1388
- const e = w(te);
1503
+ function Ur() {
1504
+ const e = y(ne);
1389
1505
  if (!e)
1390
1506
  throw new Error("useTheme precisa estar dentro de <ThemeProvider>");
1391
1507
  return e;
1392
1508
  }
1393
- const Fr = [
1509
+ const Or = [
1394
1510
  {
1395
1511
  name: "flui-color-accent-scale-50",
1396
1512
  cssVar: "--flui-color-accent-scale-50",
@@ -1794,6 +1910,32 @@ const Fr = [
1794
1910
  isColor: !0,
1795
1911
  reference: null
1796
1912
  },
1913
+ {
1914
+ name: "flui-color-neutral-950",
1915
+ cssVar: "--flui-color-neutral-950",
1916
+ path: [
1917
+ "color",
1918
+ "neutral",
1919
+ "950"
1920
+ ],
1921
+ group: "color",
1922
+ value: "#0e1015",
1923
+ isColor: !0,
1924
+ reference: null
1925
+ },
1926
+ {
1927
+ name: "flui-color-neutral-1000",
1928
+ cssVar: "--flui-color-neutral-1000",
1929
+ path: [
1930
+ "color",
1931
+ "neutral",
1932
+ "1000"
1933
+ ],
1934
+ group: "color",
1935
+ value: "#050608",
1936
+ isColor: !0,
1937
+ reference: null
1938
+ },
1797
1939
  {
1798
1940
  name: "flui-color-success-500",
1799
1941
  cssVar: "--flui-color-success-500",
@@ -2621,69 +2763,74 @@ const Fr = [
2621
2763
  }
2622
2764
  ];
2623
2765
  export {
2624
- br as Accordion,
2625
- xr as AccordionContent,
2626
- hr as AccordionItem,
2627
- vr as AccordionTrigger,
2766
+ yr as Accordion,
2767
+ Vr as AccordionContent,
2768
+ Nr as AccordionItem,
2769
+ Cr as AccordionTrigger,
2628
2770
  He as Alert,
2629
- Pe as Avatar,
2630
- O as Badge,
2631
- Ie as Breadcrumb,
2632
- fr as BreadcrumbItem,
2771
+ Le as Avatar,
2772
+ Y as Badge,
2773
+ Se as Breadcrumb,
2774
+ hr as BreadcrumbItem,
2633
2775
  je as BreadcrumbSeparator,
2634
- ue as Button,
2635
- me as Card,
2636
- he as CardContent,
2776
+ S as Button,
2777
+ pe as Card,
2778
+ xe as CardContent,
2637
2779
  be as CardDescription,
2638
- pe as CardHeader,
2639
- ge as CardTitle,
2780
+ ge as CardHeader,
2781
+ he as CardTitle,
2640
2782
  ye as Checkbox,
2641
- Be as Divider,
2642
- Er as Drawer,
2643
- Ar as DrawerBody,
2644
- Pr as DrawerContent,
2645
- Br as DrawerFooter,
2646
- Lr as DrawerHeader,
2647
- Dr as DrawerTitle,
2648
- lr as Dropdown,
2649
- ir as DropdownContent,
2650
- cr as DropdownItem,
2651
- ur as DropdownSeparator,
2652
- sr as DropdownTrigger,
2653
- de as Input,
2783
+ Ze as CodeBlock,
2784
+ Ie as Divider,
2785
+ Ir as Drawer,
2786
+ _r as DrawerBody,
2787
+ Sr as DrawerContent,
2788
+ Rr as DrawerFooter,
2789
+ jr as DrawerHeader,
2790
+ Br as DrawerTitle,
2791
+ dr as Dropdown,
2792
+ mr as DropdownContent,
2793
+ pr as DropdownItem,
2794
+ gr as DropdownSeparator,
2795
+ fr as DropdownTrigger,
2796
+ me as Input,
2797
+ Kr as IntegrationRow,
2654
2798
  Ge as Modal,
2655
- Mr as ModalBody,
2656
- Oe as ModalContent,
2657
- zr as ModalDescription,
2658
- Tr as ModalFooter,
2659
- Vr as ModalHeader,
2660
- kr as ModalTitle,
2661
- yr as Popover,
2662
- Nr as PopoverContent,
2663
- Cr as PopoverTrigger,
2664
- _r as ProfileSettingsModal,
2799
+ Dr as ModalBody,
2800
+ Ue as ModalContent,
2801
+ Pr as ModalDescription,
2802
+ Ar as ModalFooter,
2803
+ Er as ModalHeader,
2804
+ Lr as ModalTitle,
2805
+ zr as Popover,
2806
+ Tr as PopoverContent,
2807
+ Mr as PopoverTrigger,
2808
+ qr as ProfileSettingsModal,
2665
2809
  Ae as Progress,
2666
- Ce as Radio,
2667
- or as RadioGroup,
2810
+ Ne as Radio,
2811
+ ur as RadioGroup,
2668
2812
  Ve as Select,
2813
+ Wr as SettingRow,
2814
+ tr as SettingsCard,
2815
+ Hr as SettingsGroup,
2669
2816
  De as Spinner,
2670
- Se as StatCard,
2671
- we as Switch,
2672
- dr as Tabs,
2673
- gr as TabsContent,
2674
- mr as TabsList,
2675
- pr as TabsTrigger,
2676
- Je as Textarea,
2677
- Sr as ThemeProvider,
2678
- Ir as ToastProvider,
2679
- wr as Tooltip,
2817
+ _e as StatCard,
2818
+ G as Switch,
2819
+ br as Tabs,
2820
+ wr as TabsContent,
2821
+ xr as TabsList,
2822
+ vr as TabsTrigger,
2823
+ Xe as Textarea,
2824
+ Gr as ThemeProvider,
2825
+ Fr as ToastProvider,
2826
+ kr as Tooltip,
2680
2827
  ke as badgeVariants,
2681
- ce as buttonVariants,
2828
+ de as buttonVariants,
2682
2829
  i as cn,
2683
2830
  fe as inputVariants,
2684
- $e as textareaVariants,
2685
- Fr as tokens,
2686
- Rr as useTheme,
2687
- jr as useToast
2831
+ Qe as textareaVariants,
2832
+ Or as tokens,
2833
+ Ur as useTheme,
2834
+ Je as useToast
2688
2835
  };
2689
2836
  //# sourceMappingURL=index.js.map