@fluityy/designsystem 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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 d } from "react/jsx-runtime";
2
+ import { forwardRef as g, useState as b, useRef as T, useEffect as N, createContext as C, useContext as w, useId as K, cloneElement as q, Children as oe, Fragment as le, useCallback as M, 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
+ ), L = g(
36
37
  ({ className: e, variant: r, size: a, fullWidth: n, ...o }, s) => /* @__PURE__ */ t(
37
38
  "button",
38
39
  {
39
40
  ref: s,
40
- className: i(ce({ variant: r, size: a, fullWidth: n }), e),
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
+ L.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,9 +60,9 @@ const fe = V(
59
60
  },
60
61
  defaultVariants: { size: "md", invalid: !1 }
61
62
  }
62
- ), de = g(
63
+ ), me = g(
63
64
  ({ 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: [
65
+ const [u, m] = b(!1), f = s === "password", p = f ? u ? "text" : "password" : s, h = o ?? (n ? n.toLowerCase().replace(/\s+/g, "-") : void 0), v = /* @__PURE__ */ d("div", { className: "relative flex w-full items-center", children: [
65
66
  /* @__PURE__ */ t(
66
67
  "input",
67
68
  {
@@ -70,30 +71,30 @@ const fe = V(
70
71
  type: p,
71
72
  className: i(
72
73
  fe({ size: r, invalid: a }),
73
- d && "pr-10",
74
+ f && "pr-10",
74
75
  e
75
76
  ),
76
77
  ...l
77
78
  }
78
79
  ),
79
- d && /* @__PURE__ */ t(
80
+ f && /* @__PURE__ */ t(
80
81
  "button",
81
82
  {
82
83
  type: "button",
83
84
  tabIndex: -1,
84
85
  onClick: () => m((y) => !y),
85
86
  "aria-label": u ? "Ocultar senha" : "Mostrar senha",
86
- className: "absolute right-3 text-fg-muted transition-colors hover:text-fg",
87
+ className: "absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg",
87
88
  children: u ? (
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__ */ d("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__ */ d("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
+ return n ? /* @__PURE__ */ d("div", { className: "flex w-full flex-col gap-1.5", children: [
105
106
  /* @__PURE__ */ t("label", { htmlFor: h, className: "text-xs font-medium text-fg", children: n }),
106
107
  v
107
108
  ] }) : v;
108
109
  }
109
110
  );
110
- de.displayName = "Input";
111
- const me = g(
111
+ me.displayName = "Input";
112
+ const pe = g(
112
113
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
113
114
  "div",
114
115
  {
@@ -121,20 +122,20 @@ const me = g(
121
122
  }
122
123
  )
123
124
  );
124
- me.displayName = "Card";
125
- const pe = g(
125
+ pe.displayName = "Card";
126
+ const ge = g(
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 }));
132
- be.displayName = "CardDescription";
133
- const he = g(
129
+ ge.displayName = "CardHeader";
130
+ const be = g(({ className: e, ...r }, a) => /* @__PURE__ */ t("h3", { ref: a, className: i("text-lg font-semibold text-fg", e), ...r }));
131
+ be.displayName = "CardTitle";
132
+ const he = g(({ className: e, ...r }, a) => /* @__PURE__ */ t("p", { ref: a, className: i("text-sm text-fg-muted", e), ...r }));
133
+ he.displayName = "CardDescription";
134
+ const ve = g(
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
- const ve = V(
137
+ ve.displayName = "CardContent";
138
+ const xe = 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
  {
140
141
  variants: {
@@ -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,9 +157,9 @@ const ve = V(
156
157
  ],
157
158
  defaultVariants: { size: "md", checked: !1 }
158
159
  }
159
- ), we = g(
160
+ ), G = g(
160
161
  ({ 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;
162
+ const u = a !== void 0, [m, f] = b(n ?? !1), p = u ? a : m;
162
163
  return /* @__PURE__ */ t(
163
164
  "button",
164
165
  {
@@ -169,26 +170,26 @@ const ve = V(
169
170
  disabled: s,
170
171
  onClick: () => {
171
172
  const v = !p;
172
- u || d(v), o == null || o(v);
173
+ u || f(v), o == null || o(v);
173
174
  },
174
- className: i(ve({ size: r, checked: p }), e),
175
+ className: i(xe({ size: r, checked: p }), e),
175
176
  ...l,
176
- children: /* @__PURE__ */ t("span", { className: xe({ size: r, checked: p }) })
177
+ children: /* @__PURE__ */ t("span", { className: we({ size: r, checked: p }) })
177
178
  }
178
179
  );
179
180
  }
180
181
  );
181
- we.displayName = "Switch";
182
+ G.displayName = "Switch";
182
183
  const ye = g(
183
184
  ({ className: e, label: r, indeterminate: a = !1, disabled: n, id: o, ...s }, l) => {
184
185
  const c = T(null);
185
- C(() => {
186
+ N(() => {
186
187
  c.current && (c.current.indeterminate = a);
187
188
  }, [a]);
188
189
  const u = (m) => {
189
190
  c.current = m, typeof l == "function" ? l(m) : l && (l.current = m);
190
191
  };
191
- return /* @__PURE__ */ f(
192
+ return /* @__PURE__ */ d(
192
193
  "label",
193
194
  {
194
195
  className: i(
@@ -208,7 +209,7 @@ const ye = g(
208
209
  ...s
209
210
  }
210
211
  ),
211
- /* @__PURE__ */ f(
212
+ /* @__PURE__ */ d(
212
213
  "span",
213
214
  {
214
215
  className: i(
@@ -247,8 +248,8 @@ const ye = g(
247
248
  }
248
249
  );
249
250
  ye.displayName = "Checkbox";
250
- const q = N(null);
251
- function or({
251
+ const O = C(null);
252
+ function lr({
252
253
  value: e,
253
254
  defaultValue: r,
254
255
  onValueChange: a,
@@ -257,23 +258,23 @@ function or({
257
258
  children: s,
258
259
  ...l
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(), u = e !== void 0, [m, f] = b(r), p = u ? e : m, h = (v) => {
262
+ u || f(v), a == null || a(v);
262
263
  };
263
264
  return /* @__PURE__ */ t(
264
- q.Provider,
265
+ O.Provider,
265
266
  {
266
267
  value: { name: n ?? c, value: p, onChange: h },
267
268
  children: /* @__PURE__ */ t("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...l, children: s })
268
269
  }
269
270
  );
270
271
  }
271
- const Ce = g(
272
+ const Ne = g(
272
273
  ({ className: e, value: r, label: a, disabled: n, ...o }, s) => {
273
- const l = w(q);
274
+ const l = w(O);
274
275
  if (!l) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
275
276
  const c = l.value === r;
276
- return /* @__PURE__ */ f(
277
+ return /* @__PURE__ */ d(
277
278
  "label",
278
279
  {
279
280
  className: i(
@@ -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: {
@@ -332,12 +333,12 @@ const Ne = V(
332
333
  defaultVariants: { size: "md", invalid: !1 }
333
334
  }
334
335
  ), 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: [
336
+ ({ className: e, size: r, invalid: a, children: n, ...o }, s) => /* @__PURE__ */ d("div", { className: "relative inline-flex w-full items-center", children: [
336
337
  /* @__PURE__ */ t(
337
338
  "select",
338
339
  {
339
340
  ref: s,
340
- className: i(Ne({ size: r, invalid: a }), e),
341
+ className: i(Ce({ size: r, invalid: a }), e),
341
342
  ...o,
342
343
  children: n
343
344
  }
@@ -359,15 +360,15 @@ 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 U = C(null);
364
+ function j() {
365
+ const e = w(U);
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
+ function sr({ children: e }) {
369
370
  const [r, a] = b(!1), n = T(null);
370
- return C(() => {
371
+ return N(() => {
371
372
  if (!r) return;
372
373
  const o = (l) => {
373
374
  n.current && !n.current.contains(l.target) && a(!1);
@@ -377,22 +378,22 @@ function lr({ children: e }) {
377
378
  return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
378
379
  document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
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(U.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 ir({ 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 cr({
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,14 +407,14 @@ function ir({
406
407
  }
407
408
  ) : null;
408
409
  }
409
- function cr({
410
+ function ur({
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: s } = j();
417
418
  return /* @__PURE__ */ t(
418
419
  "button",
419
420
  {
@@ -423,8 +424,8 @@ function cr({
423
424
  r == null || r(), s(!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,7 +434,7 @@ function cr({
433
434
  }
434
435
  );
435
436
  }
436
- function ur() {
437
+ function dr() {
437
438
  return /* @__PURE__ */ t("div", { role: "separator", className: "my-1 h-px bg-border-default" });
438
439
  }
439
440
  const ke = V(
@@ -457,7 +458,7 @@ const ke = V(
457
458
  },
458
459
  defaultVariants: { variant: "neutral", size: "sm" }
459
460
  }
460
- ), O = g(
461
+ ), Y = g(
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: {
@@ -499,9 +500,9 @@ function Ee(e) {
499
500
  }
500
501
  const Pe = g(
501
502
  ({ 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(
503
+ const [u, m] = b(!1), f = a && !u;
504
+ return /* @__PURE__ */ d("span", { ref: c, className: i(ze({ size: r }), e), ...l, 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: f ? /* @__PURE__ */ t(
505
506
  "img",
506
507
  {
507
508
  src: a,
@@ -525,7 +526,7 @@ const Pe = g(
525
526
  }
526
527
  );
527
528
  Pe.displayName = "Avatar";
528
- const Le = V("animate-spin text-primary", {
529
+ const De = 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
+ }), Le = g(
539
+ ({ className: e, size: r, label: a = "Carregando", ...n }, o) => /* @__PURE__ */ d(
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(De({ 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" }),
@@ -560,8 +561,8 @@ const Le = V("animate-spin text-primary", {
560
561
  }
561
562
  )
562
563
  );
563
- De.displayName = "Spinner";
564
- const Ae = g(
564
+ Le.displayName = "Spinner";
565
+ const je = g(
565
566
  ({ className: e, value: r = 0, max: a = 100, indeterminate: n, ...o }, s) => {
566
567
  const l = Math.min(100, Math.max(0, r / a * 100));
567
568
  return /* @__PURE__ */ t(
@@ -573,7 +574,7 @@ const Ae = g(
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,
@@ -588,8 +589,8 @@ const Ae = g(
588
589
  );
589
590
  }
590
591
  );
591
- Ae.displayName = "Progress";
592
- const Be = g(
592
+ je.displayName = "Progress";
593
+ const Ie = g(
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__ */ d(
603
604
  "div",
604
605
  {
605
606
  ref: o,
@@ -623,17 +624,17 @@ const Be = g(
623
624
  }
624
625
  )
625
626
  );
626
- Be.displayName = "Divider";
627
- const Ie = g(
627
+ Ie.displayName = "Divider";
628
+ const Se = g(
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: [
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((s, l) => /* @__PURE__ */ d(le, { children: [
631
632
  s,
632
- l < o.length - 1 && /* @__PURE__ */ t(je, {})
633
+ l < o.length - 1 && /* @__PURE__ */ t(Ae, {})
633
634
  ] }, l)) }) });
634
635
  }
635
636
  );
636
- Ie.displayName = "Breadcrumb";
637
+ Se.displayName = "Breadcrumb";
637
638
  function fr({
638
639
  href: e,
639
640
  current: r,
@@ -657,12 +658,12 @@ function fr({
657
658
  }
658
659
  ) });
659
660
  }
660
- function je() {
661
+ function Ae() {
661
662
  return /* @__PURE__ */ t("li", { "aria-hidden": !0, className: "text-fg-muted", children: "/" });
662
663
  }
663
- function _e(e, r = 1e3) {
664
+ function Be(e, r = 1e3) {
664
665
  const [a, n] = b(0);
665
- return C(() => {
666
+ return N(() => {
666
667
  n(0);
667
668
  const o = performance.now(), s = (l) => {
668
669
  const c = Math.min((l - o) / r, 1), u = 1 - (1 - c) ** 4;
@@ -671,10 +672,10 @@ function _e(e, r = 1e3) {
671
672
  requestAnimationFrame(s);
672
673
  }, [e, r]), a;
673
674
  }
674
- const Se = g(
675
+ const _e = g(
675
676
  ({ 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(
677
+ const f = Be(n ?? 0), p = typeof s == "number", h = p && s >= 0, v = n !== void 0 ? o ? o(f) : Math.round(f).toLocaleString("pt-BR") : a;
678
+ return /* @__PURE__ */ d(
678
679
  "div",
679
680
  {
680
681
  ref: m,
@@ -684,12 +685,12 @@ const Se = g(
684
685
  ),
685
686
  ...u,
686
687
  children: [
687
- /* @__PURE__ */ f("div", { className: "flex items-center justify-between", children: [
688
+ /* @__PURE__ */ d("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
692
  /* @__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
+ p && /* @__PURE__ */ d(Y, { variant: h ? "success" : "danger", size: "sm", className: "self-start", children: [
693
694
  h ? "▲" : "▼",
694
695
  " ",
695
696
  Math.abs(s),
@@ -701,7 +702,7 @@ const Se = g(
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: {
@@ -725,7 +726,7 @@ const Re = V("flex gap-3 rounded-lg p-4 text-sm", {
725
726
  }, He = g(
726
727
  ({ className: e, variant: r = "info", title: a, onClose: n, children: o, ...s }, l) => {
727
728
  const c = r ?? "info";
728
- return /* @__PURE__ */ f(
729
+ return /* @__PURE__ */ d(
729
730
  "div",
730
731
  {
731
732
  ref: l,
@@ -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__ */ d("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
  )
@@ -777,13 +778,13 @@ function Ke({
777
778
  );
778
779
  return [l, c];
779
780
  }
780
- const U = N(null);
781
- function A() {
782
- const e = w(U);
781
+ const $ = C(null);
782
+ function I() {
783
+ const e = w($);
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 mr({
787
788
  value: e,
788
789
  defaultValue: r,
789
790
  onValueChange: a,
@@ -796,16 +797,16 @@ function dr({
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: l, setValue: c }, children: /* @__PURE__ */ t("div", { className: n, ...s, 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 pr({ className: e, children: r, ...a }) {
803
+ const { value: n } = I(), o = T(null), [s, l] = b({ left: 0, width: 0, ready: !1 });
804
+ return N(() => {
804
805
  const c = o.current;
805
806
  if (!c) return;
806
807
  const u = c.querySelector('[aria-selected="true"]');
807
808
  u && l({ left: u.offsetLeft, width: u.offsetWidth, ready: !0 });
808
- }, [n]), /* @__PURE__ */ f(
809
+ }, [n]), /* @__PURE__ */ d(
809
810
  "div",
810
811
  {
811
812
  ref: o,
@@ -826,8 +827,8 @@ function mr({ className: e, children: r, ...a }) {
826
827
  }
827
828
  );
828
829
  }
829
- function pr({ value: e, className: r, ...a }) {
830
- const n = A(), o = n.value === e;
830
+ function gr({ value: e, className: r, ...a }) {
831
+ const n = I(), 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 br({ value: e, className: r, ...a }) {
850
+ return I().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), S = C("");
860
+ function Q() {
861
+ const e = w(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 hr({
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 s = r ? Array.isArray(r) ? r : [r] : [], [l, c] = b(s), u = (m) => c((f) => {
873
+ const p = f.includes(m);
874
+ return e === "single" ? p ? [] : [m] : p ? f.filter((h) => h !== m) : [...f, m];
874
875
  });
875
- return /* @__PURE__ */ t(Y.Provider, { value: { open: l, toggle: u }, children: /* @__PURE__ */ t(
876
+ return /* @__PURE__ */ t(J.Provider, { value: { open: l, toggle: u }, children: /* @__PURE__ */ t(
876
877
  "div",
877
878
  {
878
879
  className: i("border-y border-border-default divide-y divide-border-default", a),
@@ -881,23 +882,23 @@ 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 vr({ value: e, children: r, ...a }) {
886
+ return /* @__PURE__ */ t(S.Provider, { value: e, children: /* @__PURE__ */ t("div", { ...a, children: r }) });
886
887
  }
887
- function vr({
888
+ function xr({
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 = w(S), s = n.open.includes(o);
894
+ return /* @__PURE__ */ d(
894
895
  "button",
895
896
  {
896
897
  type: "button",
897
898
  "aria-expanded": s,
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
  ),
@@ -909,11 +910,11 @@ function vr({
909
910
  }
910
911
  );
911
912
  }
912
- function xr({
913
+ function wr({
913
914
  className: e,
914
915
  ...r
915
916
  }) {
916
- const a = $(), n = w(B);
917
+ const a = Q(), n = w(S);
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,9 +923,9 @@ 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 yr({ content: e, side: r = "top", children: a, className: n }) {
927
+ const [o, s] = b(!1), l = K();
928
+ return /* @__PURE__ */ d(
928
929
  "span",
929
930
  {
930
931
  className: "relative inline-flex",
@@ -952,15 +953,15 @@ 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 = w(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
+ function Nr({ children: e }) {
962
963
  const [r, a] = b(!1), n = T(null);
963
- return C(() => {
964
+ return N(() => {
964
965
  if (!r) return;
965
966
  const o = (l) => {
966
967
  n.current && !n.current.contains(l.target) && a(!1);
@@ -968,22 +969,22 @@ function yr({ children: e }) {
968
969
  return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
969
970
  document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
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
974
  function Cr({ children: e }) {
974
- const { open: r, setOpen: a } = Q();
975
- return K(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 Vr({
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
+ function A({ children: e }) {
1002
1003
  const [r, a] = b(!1);
1003
- return C(() => a(!0), []), r ? ie(e, document.body) : null;
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(A, { children: /* @__PURE__ */ t(re.Provider, { value: { close: n }, children: /* @__PURE__ */ d("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
1018
1019
  /* @__PURE__ */ t(
1019
1020
  "div",
1020
1021
  {
@@ -1030,8 +1031,8 @@ function Oe({
1030
1031
  children: r,
1031
1032
  ...a
1032
1033
  }) {
1033
- const n = w(Z);
1034
- return /* @__PURE__ */ f(
1034
+ const n = w(re);
1035
+ return /* @__PURE__ */ d(
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 kr({ 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 zr({ 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 Mr({
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 Tr({ 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 Er({ 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), Ue = {
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 Pr({ 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(A, { children: /* @__PURE__ */ t(te.Provider, { value: { close: o, side: a }, children: /* @__PURE__ */ d("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 Dr({
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 = w(te), o = (n == null ? void 0 : n.side) ?? "right";
1105
+ return /* @__PURE__ */ d(
1105
1106
  "div",
1106
1107
  {
1107
1108
  role: "dialog",
@@ -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
  )
@@ -1138,13 +1139,13 @@ function Lr({ className: e, ...r }) {
1138
1139
  }
1139
1140
  );
1140
1141
  }
1141
- function Dr({ className: e, ...r }) {
1142
+ function jr({ 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 Ir({ 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 Sr({ className: e, ...r }) {
1148
1149
  return /* @__PURE__ */ t(
1149
1150
  "div",
1150
1151
  {
@@ -1153,30 +1154,30 @@ function Br({ className: e, ...r }) {
1153
1154
  }
1154
1155
  );
1155
1156
  }
1156
- const re = N(null), P = {
1157
+ const ae = C(null), P = {
1157
1158
  info: { wrapper: "bg-brand-100 border-l-primary", title: "text-fg", description: "text-fg-muted" },
1158
1159
  success: { wrapper: "bg-success-subtle border-l-success", title: "text-success-fg", description: "text-success-fg/70" },
1159
1160
  warning: { wrapper: "bg-warning/15 border-l-warning", title: "text-fg", description: "text-fg-muted" },
1160
1161
  danger: { wrapper: "bg-danger/10 border-l-danger", title: "text-danger", description: "text-danger/70" }
1161
1162
  };
1162
- function Ir({ children: e }) {
1163
+ function Ar({ children: e }) {
1163
1164
  const [r, a] = b([]), n = T(0), o = M((l) => {
1164
1165
  a((c) => c.filter((u) => u.id !== l));
1165
1166
  }, []), s = M((l) => {
1166
1167
  const c = ++n.current;
1167
1168
  return a((u) => [...u, { id: c, variant: "info", duration: 4e3, ...l }]), c;
1168
1169
  }, []);
1169
- return /* @__PURE__ */ f(re.Provider, { value: { toast: s, dismiss: o }, children: [
1170
+ return /* @__PURE__ */ d(ae.Provider, { value: { toast: s, dismiss: o }, children: [
1170
1171
  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)) }) })
1172
+ /* @__PURE__ */ t(A, { 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)) }) })
1172
1173
  ] });
1173
1174
  }
1174
1175
  function Ye({ item: e, onDismiss: r }) {
1175
- return C(() => {
1176
+ return N(() => {
1176
1177
  if (!e.duration) return;
1177
1178
  const a = setTimeout(r, e.duration);
1178
1179
  return () => clearTimeout(a);
1179
- }, [e.duration, r]), /* @__PURE__ */ f(
1180
+ }, [e.duration, r]), /* @__PURE__ */ d(
1180
1181
  "div",
1181
1182
  {
1182
1183
  role: "status",
@@ -1186,7 +1187,7 @@ function Ye({ item: e, onDismiss: r }) {
1186
1187
  P[e.variant ?? "info"].wrapper
1187
1188
  ),
1188
1189
  children: [
1189
- /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
1190
+ /* @__PURE__ */ d("div", { className: "min-w-0 flex-1", children: [
1190
1191
  /* @__PURE__ */ t("div", { className: i("text-sm font-semibold", P[e.variant ?? "info"].title), children: e.title }),
1191
1192
  e.description && /* @__PURE__ */ t("div", { className: i("mt-0.5 text-sm", P[e.variant ?? "info"].description), children: e.description })
1192
1193
  ] }),
@@ -1196,7 +1197,7 @@ function Ye({ item: e, onDismiss: r }) {
1196
1197
  type: "button",
1197
1198
  onClick: r,
1198
1199
  "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
+ className: i("shrink-0 cursor-pointer rounded-sm px-1 transition-colors opacity-60 hover:opacity-100", P[e.variant ?? "info"].title),
1200
1201
  children: "✕"
1201
1202
  }
1202
1203
  )
@@ -1204,8 +1205,8 @@ function Ye({ item: e, onDismiss: r }) {
1204
1205
  }
1205
1206
  );
1206
1207
  }
1207
- function jr() {
1208
- const e = w(re);
1208
+ function Br() {
1209
+ const e = w(ae);
1209
1210
  if (!e) throw new Error("useToast precisa estar dentro de <ToastProvider>");
1210
1211
  return e;
1211
1212
  }
@@ -1239,8 +1240,8 @@ function Qe({
1239
1240
  footerAction: o
1240
1241
  }) {
1241
1242
  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: [
1243
+ return /* @__PURE__ */ d("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: [
1244
+ /* @__PURE__ */ d("div", { className: "flex items-center gap-2.5 px-1", children: [
1244
1245
  e.avatar ? /* @__PURE__ */ t(
1245
1246
  "img",
1246
1247
  {
@@ -1249,7 +1250,7 @@ function Qe({
1249
1250
  className: "h-8 w-8 shrink-0 rounded-full object-cover"
1250
1251
  }
1251
1252
  ) : /* @__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: [
1253
+ /* @__PURE__ */ d("div", { className: "min-w-0", children: [
1253
1254
  /* @__PURE__ */ t("p", { className: "truncate text-sm font-medium text-fg", children: e.name }),
1254
1255
  e.subtitle && /* @__PURE__ */ t("p", { className: "truncate text-xs text-fg-muted", children: e.subtitle })
1255
1256
  ] }),
@@ -1268,9 +1269,9 @@ function Qe({
1268
1269
  }
1269
1270
  )
1270
1271
  ] }),
1271
- r.map(({ group: l, items: c }) => /* @__PURE__ */ f("div", { children: [
1272
+ r.map(({ group: l, items: c }) => /* @__PURE__ */ d("div", { children: [
1272
1273
  /* @__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(
1274
+ /* @__PURE__ */ t("ul", { className: "flex flex-col gap-0.5", children: c.map((u) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ d(
1274
1275
  "button",
1275
1276
  {
1276
1277
  type: "button",
@@ -1287,6 +1288,49 @@ function Qe({
1287
1288
  ] });
1288
1289
  }
1289
1290
  function _r({
1291
+ title: e,
1292
+ description: r,
1293
+ checked: a,
1294
+ onCheckedChange: n
1295
+ }) {
1296
+ return /* @__PURE__ */ d("div", { className: "flex items-center justify-between gap-6 px-4 py-4", children: [
1297
+ /* @__PURE__ */ d("div", { children: [
1298
+ /* @__PURE__ */ t("p", { className: "text-sm font-medium text-fg", children: e }),
1299
+ r && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: r })
1300
+ ] }),
1301
+ /* @__PURE__ */ t(G, { checked: a, onCheckedChange: n, className: "shrink-0" })
1302
+ ] });
1303
+ }
1304
+ function Xe({ children: e }) {
1305
+ return /* @__PURE__ */ t("div", { className: "divide-y divide-border-default rounded-xl bg-bg", children: e });
1306
+ }
1307
+ function Rr({
1308
+ title: e,
1309
+ children: r
1310
+ }) {
1311
+ return /* @__PURE__ */ d("div", { className: "flex flex-col gap-3", children: [
1312
+ /* @__PURE__ */ t("h3", { className: "text-base font-semibold text-fg", children: e }),
1313
+ /* @__PURE__ */ t(Xe, { children: r })
1314
+ ] });
1315
+ }
1316
+ function Fr({
1317
+ icon: e,
1318
+ title: r,
1319
+ description: a,
1320
+ connected: n = !1,
1321
+ onConnect: o,
1322
+ onDisconnect: s
1323
+ }) {
1324
+ return /* @__PURE__ */ d("div", { className: "flex items-center gap-4 rounded-xl bg-bg px-4 py-4", children: [
1325
+ /* @__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 }) }),
1326
+ /* @__PURE__ */ d("div", { className: "flex-1 min-w-0", children: [
1327
+ /* @__PURE__ */ t("p", { className: "text-sm font-medium text-fg", children: r }),
1328
+ a && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: a })
1329
+ ] }),
1330
+ n ? /* @__PURE__ */ t(L, { variant: "danger-ghost", size: "sm", onClick: s, children: "Desconectar" }) : /* @__PURE__ */ t(L, { variant: "secondary", size: "sm", onClick: o, children: "Conectar" })
1331
+ ] });
1332
+ }
1333
+ function Wr({
1290
1334
  open: e,
1291
1335
  onOpenChange: r,
1292
1336
  user: a,
@@ -1297,15 +1341,15 @@ function _r({
1297
1341
  sectionTitles: c = {},
1298
1342
  sectionSubtitles: u = {},
1299
1343
  renderSection: m,
1300
- footerAction: d
1344
+ footerAction: f
1301
1345
  }) {
1302
- var _, S;
1303
- const p = ((S = (_ = n[0]) == null ? void 0 : _.items[0]) == null ? void 0 : S.id) ?? "", [h, v] = b(
1346
+ var _, R;
1347
+ const p = ((R = (_ = n[0]) == null ? void 0 : _.items[0]) == null ? void 0 : R.id) ?? "", [h, v] = b(
1304
1348
  o ?? p
1305
1349
  ), y = s ?? h, x = (z) => {
1306
1350
  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: [
1351
+ }, k = n.flatMap((z) => z.items).find((z) => z.id === y), E = c[y] ?? (k == null ? void 0 : k.label) ?? y, B = u[y];
1352
+ return /* @__PURE__ */ t(Ge, { open: e, onOpenChange: r, children: /* @__PURE__ */ t(Oe, { className: "max-w-[1300px] overflow-hidden p-0", children: /* @__PURE__ */ d("div", { className: "flex h-[820px]", children: [
1309
1353
  /* @__PURE__ */ t(
1310
1354
  Qe,
1311
1355
  {
@@ -1313,15 +1357,16 @@ function _r({
1313
1357
  nav: n,
1314
1358
  active: y,
1315
1359
  onSelect: x,
1316
- footerAction: d
1360
+ footerAction: f
1317
1361
  }
1318
1362
  ),
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: [
1363
+ /* @__PURE__ */ d("div", { className: "flex flex-1 flex-col overflow-hidden bg-bg-subtle", children: [
1364
+ /* @__PURE__ */ d("div", { className: "relative px-[200px] pb-8 pt-8", children: [
1321
1365
  /* @__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 })
1366
+ B && /* @__PURE__ */ t("p", { className: "mt-0.5 text-sm text-fg-muted", children: B }),
1367
+ /* @__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
1368
  ] }),
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: [
1369
+ /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto px-[200px] pb-8 pt-6", children: (m == null ? void 0 : m(y)) ?? /* @__PURE__ */ d("p", { className: "text-sm text-fg-muted", children: [
1325
1370
  "Conteúdo de ",
1326
1371
  /* @__PURE__ */ t("strong", { children: E }),
1327
1372
  "."
@@ -1329,68 +1374,68 @@ function _r({
1329
1374
  ] })
1330
1375
  ] }) }) });
1331
1376
  }
1332
- const te = N(null), R = "flui-color-mode", F = "flui-brand";
1333
- function Xe() {
1377
+ const ne = C(null), F = "flui-color-mode", W = "flui-brand";
1378
+ function Ze() {
1334
1379
  var e;
1335
1380
  return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-color-scheme: dark)").matches);
1336
1381
  }
1337
- function W(e, r) {
1382
+ function H(e, r) {
1338
1383
  try {
1339
1384
  return localStorage.getItem(e) ?? r;
1340
1385
  } catch {
1341
1386
  return r;
1342
1387
  }
1343
1388
  }
1344
- function Sr({
1389
+ function Hr({
1345
1390
  children: e,
1346
1391
  defaultMode: r = "system",
1347
1392
  defaultBrand: a = "default",
1348
1393
  target: n
1349
1394
  }) {
1350
1395
  const [o, s] = b(
1351
- () => W(R, r)
1396
+ () => H(F, r)
1352
1397
  ), [l, c] = b(
1353
- () => W(F, a)
1354
- ), [u, m] = b(Xe);
1355
- C(() => {
1398
+ () => H(W, a)
1399
+ ), [u, m] = b(Ze);
1400
+ N(() => {
1356
1401
  var k;
1357
1402
  const x = (k = window.matchMedia) == null ? void 0 : k.call(window, "(prefers-color-scheme: dark)");
1358
1403
  if (!x) return;
1359
- const L = (E) => m(E.matches);
1360
- return x.addEventListener("change", L), () => x.removeEventListener("change", L);
1404
+ const D = (E) => m(E.matches);
1405
+ return x.addEventListener("change", D), () => x.removeEventListener("change", D);
1361
1406
  }, []);
1362
- const d = o === "system" ? u ? "dark" : "light" : o;
1363
- C(() => {
1407
+ const f = o === "system" ? u ? "dark" : "light" : o;
1408
+ N(() => {
1364
1409
  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]);
1410
+ x.setAttribute("data-theme", f), l && l !== "default" ? x.setAttribute("data-brand", l) : x.removeAttribute("data-brand");
1411
+ }, [f, l, n]);
1367
1412
  const p = M((x) => {
1368
1413
  s(x);
1369
1414
  try {
1370
- localStorage.setItem(R, x);
1415
+ localStorage.setItem(F, x);
1371
1416
  } catch {
1372
1417
  }
1373
1418
  }, []), h = M((x) => {
1374
1419
  c(x);
1375
1420
  try {
1376
- localStorage.setItem(F, x);
1421
+ localStorage.setItem(W, x);
1377
1422
  } catch {
1378
1423
  }
1379
1424
  }, []), 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]
1425
+ p(f === "dark" ? "light" : "dark");
1426
+ }, [f, p]), y = se(
1427
+ () => ({ mode: o, resolvedMode: f, brand: l, setMode: p, setBrand: h, toggleMode: v }),
1428
+ [o, f, l, p, h, v]
1384
1429
  );
1385
- return /* @__PURE__ */ t(te.Provider, { value: y, children: e });
1430
+ return /* @__PURE__ */ t(ne.Provider, { value: y, children: e });
1386
1431
  }
1387
- function Rr() {
1388
- const e = w(te);
1432
+ function Kr() {
1433
+ const e = w(ne);
1389
1434
  if (!e)
1390
1435
  throw new Error("useTheme precisa estar dentro de <ThemeProvider>");
1391
1436
  return e;
1392
1437
  }
1393
- const Fr = [
1438
+ const qr = [
1394
1439
  {
1395
1440
  name: "flui-color-accent-scale-50",
1396
1441
  cssVar: "--flui-color-accent-scale-50",
@@ -2621,69 +2666,73 @@ const Fr = [
2621
2666
  }
2622
2667
  ];
2623
2668
  export {
2624
- br as Accordion,
2625
- xr as AccordionContent,
2626
- hr as AccordionItem,
2627
- vr as AccordionTrigger,
2669
+ hr as Accordion,
2670
+ wr as AccordionContent,
2671
+ vr as AccordionItem,
2672
+ xr as AccordionTrigger,
2628
2673
  He as Alert,
2629
2674
  Pe as Avatar,
2630
- O as Badge,
2631
- Ie as Breadcrumb,
2675
+ Y as Badge,
2676
+ Se as Breadcrumb,
2632
2677
  fr as BreadcrumbItem,
2633
- je as BreadcrumbSeparator,
2634
- ue as Button,
2635
- me as Card,
2636
- he as CardContent,
2637
- be as CardDescription,
2638
- pe as CardHeader,
2639
- ge as CardTitle,
2678
+ Ae as BreadcrumbSeparator,
2679
+ L as Button,
2680
+ pe as Card,
2681
+ ve as CardContent,
2682
+ he as CardDescription,
2683
+ ge as CardHeader,
2684
+ be as CardTitle,
2640
2685
  ye as Checkbox,
2641
- Be as Divider,
2642
- Er as Drawer,
2643
- Ar as DrawerBody,
2644
- Pr as DrawerContent,
2645
- Br as DrawerFooter,
2686
+ Ie as Divider,
2687
+ Pr as Drawer,
2688
+ Ir as DrawerBody,
2689
+ Dr as DrawerContent,
2690
+ Sr as DrawerFooter,
2646
2691
  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,
2692
+ jr as DrawerTitle,
2693
+ sr as Dropdown,
2694
+ cr as DropdownContent,
2695
+ ur as DropdownItem,
2696
+ dr as DropdownSeparator,
2697
+ ir as DropdownTrigger,
2698
+ me as Input,
2699
+ Fr as IntegrationRow,
2654
2700
  Ge as Modal,
2655
- Mr as ModalBody,
2701
+ Tr as ModalBody,
2656
2702
  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,
2703
+ Mr as ModalDescription,
2704
+ Er as ModalFooter,
2705
+ kr as ModalHeader,
2706
+ zr as ModalTitle,
2707
+ Nr as Popover,
2708
+ Vr as PopoverContent,
2663
2709
  Cr as PopoverTrigger,
2664
- _r as ProfileSettingsModal,
2665
- Ae as Progress,
2666
- Ce as Radio,
2667
- or as RadioGroup,
2710
+ Wr as ProfileSettingsModal,
2711
+ je as Progress,
2712
+ Ne as Radio,
2713
+ lr as RadioGroup,
2668
2714
  Ve as Select,
2669
- 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,
2715
+ _r as SettingRow,
2716
+ Xe as SettingsCard,
2717
+ Rr as SettingsGroup,
2718
+ Le as Spinner,
2719
+ _e as StatCard,
2720
+ G as Switch,
2721
+ mr as Tabs,
2722
+ br as TabsContent,
2723
+ pr as TabsList,
2724
+ gr as TabsTrigger,
2676
2725
  Je as Textarea,
2677
- Sr as ThemeProvider,
2678
- Ir as ToastProvider,
2679
- wr as Tooltip,
2726
+ Hr as ThemeProvider,
2727
+ Ar as ToastProvider,
2728
+ yr as Tooltip,
2680
2729
  ke as badgeVariants,
2681
- ce as buttonVariants,
2730
+ de as buttonVariants,
2682
2731
  i as cn,
2683
2732
  fe as inputVariants,
2684
2733
  $e as textareaVariants,
2685
- Fr as tokens,
2686
- Rr as useTheme,
2687
- jr as useToast
2734
+ qr as tokens,
2735
+ Kr as useTheme,
2736
+ Br as useToast
2688
2737
  };
2689
2738
  //# sourceMappingURL=index.js.map