@fluityy/designsystem 0.2.1 → 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 a, jsxs as f } from "react/jsx-runtime";
2
- import { forwardRef as p, useState as b, useRef as T, useEffect as y, createContext as C, useContext as w, useId as H, cloneElement as K, Children as ae, Fragment as ne, useCallback as M, useMemo as oe } from "react";
3
- import { cva as N } 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";
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
+ import { cva as V } from "class-variance-authority";
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 = N(
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 = N(
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,18 +33,18 @@ const ce = N(
32
33
  size: "md"
33
34
  }
34
35
  }
35
- ), ue = p(
36
- ({ className: e, variant: r, size: t, fullWidth: n, ...o }, s) => /* @__PURE__ */ a(
36
+ ), L = g(
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: t, 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
- const fe = N(
46
+ L.displayName = "Button";
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
  {
49
50
  variants: {
@@ -59,29 +60,60 @@ const fe = N(
59
60
  },
60
61
  defaultVariants: { size: "md", invalid: !1 }
61
62
  }
62
- ), de = p(
63
- ({ className: e, size: r, invalid: t, label: n, id: o, ...s }, l) => {
64
- const c = o ?? (n ? n.toLowerCase().replace(/\s+/g, "-") : void 0), u = /* @__PURE__ */ a(
65
- "input",
66
- {
67
- ref: l,
68
- id: c,
69
- className: i(fe({ size: r, invalid: t }), e),
70
- ...s
71
- }
72
- );
73
- return n ? /* @__PURE__ */ f("div", { className: "flex w-full flex-col gap-1.5", children: [
74
- /* @__PURE__ */ a("label", { htmlFor: c, className: "text-xs font-medium text-fg", children: n }),
75
- u
76
- ] }) : u;
63
+ ), me = g(
64
+ ({ className: e, size: r, invalid: a, label: n, id: o, type: s, ...l }, c) => {
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: [
66
+ /* @__PURE__ */ t(
67
+ "input",
68
+ {
69
+ ref: c,
70
+ id: h,
71
+ type: p,
72
+ className: i(
73
+ fe({ size: r, invalid: a }),
74
+ f && "pr-10",
75
+ e
76
+ ),
77
+ ...l
78
+ }
79
+ ),
80
+ f && /* @__PURE__ */ t(
81
+ "button",
82
+ {
83
+ type: "button",
84
+ tabIndex: -1,
85
+ onClick: () => m((y) => !y),
86
+ "aria-label": u ? "Ocultar senha" : "Mostrar senha",
87
+ className: "absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg",
88
+ children: u ? (
89
+ // olho fechado
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: [
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" }),
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" }),
93
+ /* @__PURE__ */ t("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
94
+ ] })
95
+ ) : (
96
+ // olho aberto
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: [
98
+ /* @__PURE__ */ t("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
99
+ /* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "3" })
100
+ ] })
101
+ )
102
+ }
103
+ )
104
+ ] });
105
+ return n ? /* @__PURE__ */ d("div", { className: "flex w-full flex-col gap-1.5", children: [
106
+ /* @__PURE__ */ t("label", { htmlFor: h, className: "text-xs font-medium text-fg", children: n }),
107
+ v
108
+ ] }) : v;
77
109
  }
78
110
  );
79
- de.displayName = "Input";
80
- const me = p(
81
- ({ className: e, ...r }, t) => /* @__PURE__ */ a(
111
+ me.displayName = "Input";
112
+ const pe = g(
113
+ ({ className: e, ...r }, a) => /* @__PURE__ */ t(
82
114
  "div",
83
115
  {
84
- ref: t,
116
+ ref: a,
85
117
  className: i(
86
118
  "bg-bg border border-border-default rounded-lg shadow-sm",
87
119
  e
@@ -90,20 +122,20 @@ const me = p(
90
122
  }
91
123
  )
92
124
  );
93
- me.displayName = "Card";
94
- const pe = p(
95
- ({ className: e, ...r }, t) => /* @__PURE__ */ a("div", { ref: t, className: i("flex flex-col gap-1 p-6", e), ...r })
125
+ pe.displayName = "Card";
126
+ const ge = g(
127
+ ({ className: e, ...r }, a) => /* @__PURE__ */ t("div", { ref: a, className: i("flex flex-col gap-1 p-6", e), ...r })
96
128
  );
97
- pe.displayName = "CardHeader";
98
- const ge = p(({ className: e, ...r }, t) => /* @__PURE__ */ a("h3", { ref: t, className: i("text-lg font-semibold text-fg", e), ...r }));
99
- ge.displayName = "CardTitle";
100
- const be = p(({ className: e, ...r }, t) => /* @__PURE__ */ a("p", { ref: t, className: i("text-sm text-fg-muted", e), ...r }));
101
- be.displayName = "CardDescription";
102
- const he = p(
103
- ({ className: e, ...r }, t) => /* @__PURE__ */ a("div", { ref: t, className: i("p-6 pt-0", e), ...r })
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(
135
+ ({ className: e, ...r }, a) => /* @__PURE__ */ t("div", { ref: a, className: i("p-6 pt-0", e), ...r })
104
136
  );
105
- he.displayName = "CardContent";
106
- const ve = N(
137
+ ve.displayName = "CardContent";
138
+ const xe = V(
107
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",
108
140
  {
109
141
  variants: {
@@ -112,7 +144,7 @@ const ve = N(
112
144
  },
113
145
  defaultVariants: { size: "md", checked: !1 }
114
146
  }
115
- ), xe = N(
147
+ ), we = V(
116
148
  "pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform",
117
149
  {
118
150
  variants: {
@@ -125,39 +157,39 @@ const ve = N(
125
157
  ],
126
158
  defaultVariants: { size: "md", checked: !1 }
127
159
  }
128
- ), we = p(
129
- ({ className: e, size: r, checked: t, defaultChecked: n, onCheckedChange: o, disabled: s, ...l }, c) => {
130
- const u = t !== void 0, [d, m] = b(n ?? !1), g = u ? t : d;
131
- return /* @__PURE__ */ a(
160
+ ), G = g(
161
+ ({ className: e, size: r, checked: a, defaultChecked: n, onCheckedChange: o, disabled: s, ...l }, c) => {
162
+ const u = a !== void 0, [m, f] = b(n ?? !1), p = u ? a : m;
163
+ return /* @__PURE__ */ t(
132
164
  "button",
133
165
  {
134
166
  ref: c,
135
167
  type: "button",
136
168
  role: "switch",
137
- "aria-checked": g,
169
+ "aria-checked": p,
138
170
  disabled: s,
139
171
  onClick: () => {
140
- const x = !g;
141
- u || m(x), o == null || o(x);
172
+ const v = !p;
173
+ u || f(v), o == null || o(v);
142
174
  },
143
- className: i(ve({ size: r, checked: g }), e),
175
+ className: i(xe({ size: r, checked: p }), e),
144
176
  ...l,
145
- children: /* @__PURE__ */ a("span", { className: xe({ size: r, checked: g }) })
177
+ children: /* @__PURE__ */ t("span", { className: we({ size: r, checked: p }) })
146
178
  }
147
179
  );
148
180
  }
149
181
  );
150
- we.displayName = "Switch";
151
- const ye = p(
152
- ({ className: e, label: r, indeterminate: t = !1, disabled: n, id: o, ...s }, l) => {
182
+ G.displayName = "Switch";
183
+ const ye = g(
184
+ ({ className: e, label: r, indeterminate: a = !1, disabled: n, id: o, ...s }, l) => {
153
185
  const c = T(null);
154
- y(() => {
155
- c.current && (c.current.indeterminate = t);
156
- }, [t]);
157
- const u = (d) => {
158
- c.current = d, typeof l == "function" ? l(d) : l && (l.current = d);
186
+ N(() => {
187
+ c.current && (c.current.indeterminate = a);
188
+ }, [a]);
189
+ const u = (m) => {
190
+ c.current = m, typeof l == "function" ? l(m) : l && (l.current = m);
159
191
  };
160
- return /* @__PURE__ */ f(
192
+ return /* @__PURE__ */ d(
161
193
  "label",
162
194
  {
163
195
  className: i(
@@ -166,7 +198,7 @@ const ye = p(
166
198
  e
167
199
  ),
168
200
  children: [
169
- /* @__PURE__ */ a(
201
+ /* @__PURE__ */ t(
170
202
  "input",
171
203
  {
172
204
  ref: u,
@@ -177,7 +209,7 @@ const ye = p(
177
209
  ...s
178
210
  }
179
211
  ),
180
- /* @__PURE__ */ f(
212
+ /* @__PURE__ */ d(
181
213
  "span",
182
214
  {
183
215
  className: i(
@@ -191,7 +223,7 @@ const ye = p(
191
223
  "peer-indeterminate:[&>span]:opacity-100"
192
224
  ),
193
225
  children: [
194
- /* @__PURE__ */ a(
226
+ /* @__PURE__ */ t(
195
227
  "svg",
196
228
  {
197
229
  viewBox: "0 0 16 16",
@@ -202,47 +234,47 @@ const ye = p(
202
234
  strokeLinecap: "round",
203
235
  strokeLinejoin: "round",
204
236
  "aria-hidden": !0,
205
- children: /* @__PURE__ */ a("path", { d: "M3.5 8.5l3 3 6-6.5" })
237
+ children: /* @__PURE__ */ t("path", { d: "M3.5 8.5l3 3 6-6.5" })
206
238
  }
207
239
  ),
208
- /* @__PURE__ */ a("span", { className: "absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0" })
240
+ /* @__PURE__ */ t("span", { className: "absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0" })
209
241
  ]
210
242
  }
211
243
  ),
212
- r && /* @__PURE__ */ a("span", { className: "text-sm text-fg", children: r })
244
+ r && /* @__PURE__ */ t("span", { className: "text-sm text-fg", children: r })
213
245
  ]
214
246
  }
215
247
  );
216
248
  }
217
249
  );
218
250
  ye.displayName = "Checkbox";
219
- const q = C(null);
220
- function or({
251
+ const O = C(null);
252
+ function lr({
221
253
  value: e,
222
254
  defaultValue: r,
223
- onValueChange: t,
255
+ onValueChange: a,
224
256
  name: n,
225
257
  className: o,
226
258
  children: s,
227
259
  ...l
228
260
  }) {
229
- const c = H(), u = e !== void 0, [d, m] = b(r), g = u ? e : d, v = (x) => {
230
- u || m(x), t == null || t(x);
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);
231
263
  };
232
- return /* @__PURE__ */ a(
233
- q.Provider,
264
+ return /* @__PURE__ */ t(
265
+ O.Provider,
234
266
  {
235
- value: { name: n ?? c, value: g, onChange: v },
236
- children: /* @__PURE__ */ a("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...l, children: s })
267
+ value: { name: n ?? c, value: p, onChange: h },
268
+ children: /* @__PURE__ */ t("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...l, children: s })
237
269
  }
238
270
  );
239
271
  }
240
- const Ce = p(
241
- ({ className: e, value: r, label: t, disabled: n, ...o }, s) => {
242
- const l = w(q);
272
+ const Ne = g(
273
+ ({ className: e, value: r, label: a, disabled: n, ...o }, s) => {
274
+ const l = w(O);
243
275
  if (!l) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
244
276
  const c = l.value === r;
245
- return /* @__PURE__ */ f(
277
+ return /* @__PURE__ */ d(
246
278
  "label",
247
279
  {
248
280
  className: i(
@@ -251,7 +283,7 @@ const Ce = p(
251
283
  e
252
284
  ),
253
285
  children: [
254
- /* @__PURE__ */ a(
286
+ /* @__PURE__ */ t(
255
287
  "input",
256
288
  {
257
289
  ref: s,
@@ -265,7 +297,7 @@ const Ce = p(
265
297
  ...o
266
298
  }
267
299
  ),
268
- /* @__PURE__ */ a(
300
+ /* @__PURE__ */ t(
269
301
  "span",
270
302
  {
271
303
  className: i(
@@ -274,17 +306,17 @@ const Ce = p(
274
306
  "peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg",
275
307
  "peer-checked:[&>span]:scale-100"
276
308
  ),
277
- children: /* @__PURE__ */ a("span", { className: "h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform" })
309
+ children: /* @__PURE__ */ t("span", { className: "h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform" })
278
310
  }
279
311
  ),
280
- t && /* @__PURE__ */ a("span", { className: "text-sm text-fg", children: t })
312
+ a && /* @__PURE__ */ t("span", { className: "text-sm text-fg", children: a })
281
313
  ]
282
314
  }
283
315
  );
284
316
  }
285
317
  );
286
- Ce.displayName = "Radio";
287
- const Ne = N(
318
+ Ne.displayName = "Radio";
319
+ const Ce = V(
288
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",
289
321
  {
290
322
  variants: {
@@ -300,18 +332,18 @@ const Ne = N(
300
332
  },
301
333
  defaultVariants: { size: "md", invalid: !1 }
302
334
  }
303
- ), Ve = p(
304
- ({ className: e, size: r, invalid: t, children: n, ...o }, s) => /* @__PURE__ */ f("div", { className: "relative inline-flex w-full items-center", children: [
305
- /* @__PURE__ */ a(
335
+ ), Ve = g(
336
+ ({ className: e, size: r, invalid: a, children: n, ...o }, s) => /* @__PURE__ */ d("div", { className: "relative inline-flex w-full items-center", children: [
337
+ /* @__PURE__ */ t(
306
338
  "select",
307
339
  {
308
340
  ref: s,
309
- className: i(Ne({ size: r, invalid: t }), e),
341
+ className: i(Ce({ size: r, invalid: a }), e),
310
342
  ...o,
311
343
  children: n
312
344
  }
313
345
  ),
314
- /* @__PURE__ */ a(
346
+ /* @__PURE__ */ t(
315
347
  "svg",
316
348
  {
317
349
  viewBox: "0 0 16 16",
@@ -322,68 +354,68 @@ const Ne = N(
322
354
  strokeLinecap: "round",
323
355
  strokeLinejoin: "round",
324
356
  "aria-hidden": !0,
325
- children: /* @__PURE__ */ a("path", { d: "M4 6l4 4 4-4" })
357
+ children: /* @__PURE__ */ t("path", { d: "M4 6l4 4 4-4" })
326
358
  }
327
359
  )
328
360
  ] })
329
361
  );
330
362
  Ve.displayName = "Select";
331
- const G = C(null);
332
- function L() {
333
- const e = w(G);
363
+ const U = C(null);
364
+ function j() {
365
+ const e = w(U);
334
366
  if (!e) throw new Error("Componentes de Dropdown precisam estar dentro de <Dropdown>");
335
367
  return e;
336
368
  }
337
- function lr({ children: e }) {
338
- const [r, t] = b(!1), n = T(null);
339
- return y(() => {
369
+ function sr({ children: e }) {
370
+ const [r, a] = b(!1), n = T(null);
371
+ return N(() => {
340
372
  if (!r) return;
341
373
  const o = (l) => {
342
- n.current && !n.current.contains(l.target) && t(!1);
374
+ n.current && !n.current.contains(l.target) && a(!1);
343
375
  }, s = (l) => {
344
- l.key === "Escape" && t(!1);
376
+ l.key === "Escape" && a(!1);
345
377
  };
346
378
  return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
347
379
  document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
348
380
  };
349
- }, [r]), /* @__PURE__ */ a(G.Provider, { value: { open: r, setOpen: t }, children: /* @__PURE__ */ a("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 }) });
350
382
  }
351
- function sr({ children: e }) {
352
- const { open: r, setOpen: t } = L();
353
- return K(e, {
354
- onClick: () => t(!r),
383
+ function ir({ children: e }) {
384
+ const { open: r, setOpen: a } = j();
385
+ return q(e, {
386
+ onClick: () => a(!r),
355
387
  "aria-haspopup": "menu",
356
388
  "aria-expanded": r
357
389
  });
358
390
  }
359
- function ir({
391
+ function cr({
360
392
  children: e,
361
393
  align: r = "start",
362
- className: t
394
+ className: a
363
395
  }) {
364
- const { open: n } = L();
365
- return n ? /* @__PURE__ */ a(
396
+ const { open: n } = j();
397
+ return n ? /* @__PURE__ */ t(
366
398
  "div",
367
399
  {
368
400
  role: "menu",
369
401
  className: i(
370
402
  "absolute z-50 mt-1 min-w-44 rounded-md border border-border-default bg-bg p-1 shadow-md",
371
403
  r === "end" ? "right-0" : "left-0",
372
- t
404
+ a
373
405
  ),
374
406
  children: e
375
407
  }
376
408
  ) : null;
377
409
  }
378
- function cr({
410
+ function ur({
379
411
  children: e,
380
412
  onSelect: r,
381
- destructive: t,
413
+ destructive: a,
382
414
  className: n,
383
415
  ...o
384
416
  }) {
385
- const { setOpen: s } = L();
386
- return /* @__PURE__ */ a(
417
+ const { setOpen: s } = j();
418
+ return /* @__PURE__ */ t(
387
419
  "button",
388
420
  {
389
421
  type: "button",
@@ -392,9 +424,9 @@ function cr({
392
424
  r == null || r(), s(!1);
393
425
  },
394
426
  className: i(
395
- "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors",
396
- "hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none",
397
- t ? "text-danger" : "text-fg",
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",
429
+ a ? "text-danger" : "text-fg",
398
430
  n
399
431
  ),
400
432
  ...o,
@@ -402,10 +434,10 @@ function cr({
402
434
  }
403
435
  );
404
436
  }
405
- function ur() {
406
- return /* @__PURE__ */ a("div", { role: "separator", className: "my-1 h-px bg-border-default" });
437
+ function dr() {
438
+ return /* @__PURE__ */ t("div", { role: "separator", className: "my-1 h-px bg-border-default" });
407
439
  }
408
- const ke = N(
440
+ const ke = V(
409
441
  "inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-full",
410
442
  {
411
443
  variants: {
@@ -426,18 +458,18 @@ const ke = N(
426
458
  },
427
459
  defaultVariants: { variant: "neutral", size: "sm" }
428
460
  }
429
- ), U = p(
430
- ({ className: e, variant: r, size: t, ...n }, o) => /* @__PURE__ */ a(
461
+ ), Y = g(
462
+ ({ className: e, variant: r, size: a, ...n }, o) => /* @__PURE__ */ t(
431
463
  "span",
432
464
  {
433
465
  ref: o,
434
- className: i(ke({ variant: r, size: t }), e),
466
+ className: i(ke({ variant: r, size: a }), e),
435
467
  ...n
436
468
  }
437
469
  )
438
470
  );
439
- U.displayName = "Badge";
440
- const ze = N("relative inline-flex shrink-0 select-none", {
471
+ Y.displayName = "Badge";
472
+ const ze = V("relative inline-flex shrink-0 select-none", {
441
473
  variants: {
442
474
  size: {
443
475
  xs: "h-6 w-6 text-xs",
@@ -462,24 +494,24 @@ const ze = N("relative inline-flex shrink-0 select-none", {
462
494
  };
463
495
  function Ee(e) {
464
496
  return e ? e.trim().split(/\s+/).slice(0, 2).map((r) => {
465
- var t;
466
- return ((t = r[0]) == null ? void 0 : t.toUpperCase()) ?? "";
497
+ var a;
498
+ return ((a = r[0]) == null ? void 0 : a.toUpperCase()) ?? "";
467
499
  }).join("") : "";
468
500
  }
469
- const De = p(
470
- ({ className: e, size: r = "md", src: t, alt: n, name: o, status: s, ...l }, c) => {
471
- const [u, d] = b(!1), m = t && !u;
472
- return /* @__PURE__ */ f("span", { ref: c, className: i(ze({ size: r }), e), ...l, children: [
473
- /* @__PURE__ */ a("span", { className: "flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg", children: m ? /* @__PURE__ */ a(
501
+ const Pe = g(
502
+ ({ className: e, size: r = "md", src: a, alt: n, name: o, status: s, ...l }, c) => {
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(
474
506
  "img",
475
507
  {
476
- src: t,
508
+ src: a,
477
509
  alt: n ?? o ?? "",
478
510
  className: "h-full w-full object-cover",
479
- onError: () => d(!0)
511
+ onError: () => m(!0)
480
512
  }
481
- ) : /* @__PURE__ */ a("span", { "aria-hidden": !0, children: Ee(o) }) }),
482
- s && /* @__PURE__ */ a(
513
+ ) : /* @__PURE__ */ t("span", { "aria-hidden": !0, children: Ee(o) }) }),
514
+ s && /* @__PURE__ */ t(
483
515
  "span",
484
516
  {
485
517
  "aria-label": s,
@@ -493,8 +525,8 @@ const De = p(
493
525
  ] });
494
526
  }
495
527
  );
496
- De.displayName = "Avatar";
497
- const Pe = N("animate-spin text-primary", {
528
+ Pe.displayName = "Avatar";
529
+ const De = V("animate-spin text-primary", {
498
530
  variants: {
499
531
  size: {
500
532
  sm: "h-4 w-4",
@@ -503,20 +535,20 @@ const Pe = N("animate-spin text-primary", {
503
535
  }
504
536
  },
505
537
  defaultVariants: { size: "md" }
506
- }), Le = p(
507
- ({ className: e, size: r, label: t = "Carregando", ...n }, o) => /* @__PURE__ */ f(
538
+ }), Le = g(
539
+ ({ className: e, size: r, label: a = "Carregando", ...n }, o) => /* @__PURE__ */ d(
508
540
  "svg",
509
541
  {
510
542
  ref: o,
511
543
  viewBox: "0 0 24 24",
512
544
  fill: "none",
513
545
  role: "status",
514
- "aria-label": t,
515
- className: i(Pe({ size: r }), e),
546
+ "aria-label": a,
547
+ className: i(De({ size: r }), e),
516
548
  ...n,
517
549
  children: [
518
- /* @__PURE__ */ a("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", className: "opacity-20" }),
519
- /* @__PURE__ */ a(
550
+ /* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", className: "opacity-20" }),
551
+ /* @__PURE__ */ t(
520
552
  "path",
521
553
  {
522
554
  d: "M12 2a10 10 0 0 1 10 10",
@@ -530,23 +562,23 @@ const Pe = N("animate-spin text-primary", {
530
562
  )
531
563
  );
532
564
  Le.displayName = "Spinner";
533
- const Ie = p(
534
- ({ className: e, value: r = 0, max: t = 100, indeterminate: n, ...o }, s) => {
535
- const l = Math.min(100, Math.max(0, r / t * 100));
536
- return /* @__PURE__ */ a(
565
+ const je = g(
566
+ ({ className: e, value: r = 0, max: a = 100, indeterminate: n, ...o }, s) => {
567
+ const l = Math.min(100, Math.max(0, r / a * 100));
568
+ return /* @__PURE__ */ t(
537
569
  "div",
538
570
  {
539
571
  ref: s,
540
572
  role: "progressbar",
541
573
  "aria-valuemin": 0,
542
- "aria-valuemax": t,
574
+ "aria-valuemax": a,
543
575
  "aria-valuenow": n ? void 0 : r,
544
576
  className: i(
545
- "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",
546
578
  e
547
579
  ),
548
580
  ...o,
549
- children: n ? /* @__PURE__ */ a("div", { className: "absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]" }) : /* @__PURE__ */ a(
581
+ children: n ? /* @__PURE__ */ t("div", { className: "absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]" }) : /* @__PURE__ */ t(
550
582
  "div",
551
583
  {
552
584
  className: "h-full rounded-full bg-primary transition-[width] duration-300",
@@ -557,9 +589,9 @@ const Ie = p(
557
589
  );
558
590
  }
559
591
  );
560
- Ie.displayName = "Progress";
561
- const _e = p(
562
- ({ className: e, orientation: r = "horizontal", label: t, ...n }, o) => r === "vertical" ? /* @__PURE__ */ a(
592
+ je.displayName = "Progress";
593
+ const Ie = g(
594
+ ({ className: e, orientation: r = "horizontal", label: a, ...n }, o) => r === "vertical" ? /* @__PURE__ */ t(
563
595
  "div",
564
596
  {
565
597
  ref: o,
@@ -568,7 +600,7 @@ const _e = p(
568
600
  className: i("mx-2 h-full w-px self-stretch bg-border-default", e),
569
601
  ...n
570
602
  }
571
- ) : t ? /* @__PURE__ */ f(
603
+ ) : a ? /* @__PURE__ */ d(
572
604
  "div",
573
605
  {
574
606
  ref: o,
@@ -576,12 +608,12 @@ const _e = p(
576
608
  className: i("flex items-center gap-3 text-sm text-fg-muted", e),
577
609
  ...n,
578
610
  children: [
579
- /* @__PURE__ */ a("span", { className: "h-px flex-1 bg-border-default" }),
580
- t,
581
- /* @__PURE__ */ a("span", { className: "h-px flex-1 bg-border-default" })
611
+ /* @__PURE__ */ t("span", { className: "h-px flex-1 bg-border-default" }),
612
+ a,
613
+ /* @__PURE__ */ t("span", { className: "h-px flex-1 bg-border-default" })
582
614
  ]
583
615
  }
584
- ) : /* @__PURE__ */ a(
616
+ ) : /* @__PURE__ */ t(
585
617
  "div",
586
618
  {
587
619
  ref: o,
@@ -592,32 +624,32 @@ const _e = p(
592
624
  }
593
625
  )
594
626
  );
595
- _e.displayName = "Divider";
596
- const Ae = p(
597
- ({ className: e, children: r, ...t }, n) => {
598
- const o = ae.toArray(r);
599
- return /* @__PURE__ */ a("nav", { ref: n, "aria-label": "breadcrumb", className: e, ...t, children: /* @__PURE__ */ a("ol", { className: "flex flex-wrap items-center gap-1.5 text-sm", children: o.map((s, l) => /* @__PURE__ */ f(ne, { children: [
627
+ Ie.displayName = "Divider";
628
+ const Se = g(
629
+ ({ className: e, children: r, ...a }, n) => {
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: [
600
632
  s,
601
- l < o.length - 1 && /* @__PURE__ */ a(Be, {})
633
+ l < o.length - 1 && /* @__PURE__ */ t(Ae, {})
602
634
  ] }, l)) }) });
603
635
  }
604
636
  );
605
- Ae.displayName = "Breadcrumb";
637
+ Se.displayName = "Breadcrumb";
606
638
  function fr({
607
639
  href: e,
608
640
  current: r,
609
- className: t,
641
+ className: a,
610
642
  children: n,
611
643
  ...o
612
644
  }) {
613
- return /* @__PURE__ */ a("li", { className: i("inline-flex items-center", t), ...o, children: r || !e ? /* @__PURE__ */ a(
645
+ return /* @__PURE__ */ t("li", { className: i("inline-flex items-center", a), ...o, children: r || !e ? /* @__PURE__ */ t(
614
646
  "span",
615
647
  {
616
648
  "aria-current": r ? "page" : void 0,
617
649
  className: i(r ? "font-medium text-fg" : "text-fg-muted"),
618
650
  children: n
619
651
  }
620
- ) : /* @__PURE__ */ a(
652
+ ) : /* @__PURE__ */ t(
621
653
  "a",
622
654
  {
623
655
  href: e,
@@ -626,52 +658,52 @@ function fr({
626
658
  }
627
659
  ) });
628
660
  }
629
- function Be() {
630
- return /* @__PURE__ */ a("li", { "aria-hidden": !0, className: "text-fg-muted", children: "/" });
661
+ function Ae() {
662
+ return /* @__PURE__ */ t("li", { "aria-hidden": !0, className: "text-fg-muted", children: "/" });
631
663
  }
632
- function je(e, r = 1e3) {
633
- const [t, n] = b(0);
634
- return y(() => {
664
+ function Be(e, r = 1e3) {
665
+ const [a, n] = b(0);
666
+ return N(() => {
635
667
  n(0);
636
668
  const o = performance.now(), s = (l) => {
637
669
  const c = Math.min((l - o) / r, 1), u = 1 - (1 - c) ** 4;
638
670
  n(e * u), c < 1 ? requestAnimationFrame(s) : n(e);
639
671
  };
640
672
  requestAnimationFrame(s);
641
- }, [e, r]), t;
673
+ }, [e, r]), a;
642
674
  }
643
- const Se = p(
644
- ({ className: e, label: r, value: t, countUp: n, formatCount: o, delta: s, helpText: l, icon: c, ...u }, d) => {
645
- const m = je(n ?? 0), g = typeof s == "number", v = g && s >= 0, x = n !== void 0 ? o ? o(m) : Math.round(m).toLocaleString("pt-BR") : t;
646
- return /* @__PURE__ */ f(
675
+ const _e = g(
676
+ ({ className: e, label: r, value: a, countUp: n, formatCount: o, delta: s, helpText: l, icon: c, ...u }, m) => {
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(
647
679
  "div",
648
680
  {
649
- ref: d,
681
+ ref: m,
650
682
  className: i(
651
683
  "flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-bg-subtle p-8 shadow-sm",
652
684
  e
653
685
  ),
654
686
  ...u,
655
687
  children: [
656
- /* @__PURE__ */ f("div", { className: "flex items-center justify-between", children: [
657
- /* @__PURE__ */ a("span", { className: "text-sm text-fg-muted", children: r }),
658
- c && /* @__PURE__ */ a("span", { className: "text-fg-muted", children: c })
688
+ /* @__PURE__ */ d("div", { className: "flex items-center justify-between", children: [
689
+ /* @__PURE__ */ t("span", { className: "text-sm text-fg-muted", children: r }),
690
+ c && /* @__PURE__ */ t("span", { className: "text-fg-muted", children: c })
659
691
  ] }),
660
- /* @__PURE__ */ a("span", { className: "text-3xl font-bold text-fg whitespace-nowrap tabular-nums", children: x }),
661
- g && /* @__PURE__ */ f(U, { variant: v ? "success" : "danger", size: "sm", className: "self-start", children: [
662
- v ? "▲" : "▼",
692
+ /* @__PURE__ */ t("span", { className: "text-3xl font-bold text-fg whitespace-nowrap tabular-nums", children: v }),
693
+ p && /* @__PURE__ */ d(Y, { variant: h ? "success" : "danger", size: "sm", className: "self-start", children: [
694
+ h ? "▲" : "▼",
663
695
  " ",
664
696
  Math.abs(s),
665
697
  "%"
666
698
  ] }),
667
- l && /* @__PURE__ */ a("span", { className: "text-xs text-fg-muted", children: l })
699
+ l && /* @__PURE__ */ t("span", { className: "text-xs text-fg-muted", children: l })
668
700
  ]
669
701
  }
670
702
  );
671
703
  }
672
704
  );
673
- Se.displayName = "StatCard";
674
- const Re = N("flex gap-3 rounded-lg p-4 text-sm", {
705
+ _e.displayName = "StatCard";
706
+ const Re = V("flex gap-3 rounded-lg p-4 text-sm", {
675
707
  variants: {
676
708
  variant: {
677
709
  info: "bg-primary/10 text-fg",
@@ -691,10 +723,10 @@ const Re = N("flex gap-3 rounded-lg p-4 text-sm", {
691
723
  success: "✓",
692
724
  warning: "!",
693
725
  danger: "✕"
694
- }, He = p(
695
- ({ className: e, variant: r = "info", title: t, onClose: n, children: o, ...s }, l) => {
726
+ }, He = g(
727
+ ({ className: e, variant: r = "info", title: a, onClose: n, children: o, ...s }, l) => {
696
728
  const c = r ?? "info";
697
- return /* @__PURE__ */ f(
729
+ return /* @__PURE__ */ d(
698
730
  "div",
699
731
  {
700
732
  ref: l,
@@ -702,7 +734,7 @@ const Re = N("flex gap-3 rounded-lg p-4 text-sm", {
702
734
  className: i(Re({ variant: r }), e),
703
735
  ...s,
704
736
  children: [
705
- /* @__PURE__ */ a(
737
+ /* @__PURE__ */ t(
706
738
  "span",
707
739
  {
708
740
  "aria-hidden": !0,
@@ -713,17 +745,17 @@ const Re = N("flex gap-3 rounded-lg p-4 text-sm", {
713
745
  children: We[c]
714
746
  }
715
747
  ),
716
- /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
717
- t && /* @__PURE__ */ a("div", { className: "font-semibold text-fg", children: t }),
718
- o && /* @__PURE__ */ a("div", { className: "text-fg-muted", children: o })
748
+ /* @__PURE__ */ d("div", { className: "min-w-0 flex-1", children: [
749
+ a && /* @__PURE__ */ t("div", { className: "font-semibold text-fg", children: a }),
750
+ o && /* @__PURE__ */ t("div", { className: "text-fg-muted", children: o })
719
751
  ] }),
720
- n && /* @__PURE__ */ a(
752
+ n && /* @__PURE__ */ t(
721
753
  "button",
722
754
  {
723
755
  type: "button",
724
756
  onClick: n,
725
757
  "aria-label": "Fechar",
726
- 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",
727
759
  children: "✕"
728
760
  }
729
761
  )
@@ -736,26 +768,26 @@ He.displayName = "Alert";
736
768
  function Ke({
737
769
  value: e,
738
770
  defaultValue: r,
739
- onChange: t
771
+ onChange: a
740
772
  }) {
741
773
  const n = e !== void 0, [o, s] = b(r), l = n ? e : o, c = M(
742
774
  (u) => {
743
- n || s(u), t == null || t(u);
775
+ n || s(u), a == null || a(u);
744
776
  },
745
- [n, t]
777
+ [n, a]
746
778
  );
747
779
  return [l, c];
748
780
  }
749
- const O = C(null);
781
+ const $ = C(null);
750
782
  function I() {
751
- const e = w(O);
783
+ const e = w($);
752
784
  if (!e) throw new Error("Componentes de Tabs precisam estar dentro de <Tabs>");
753
785
  return e;
754
786
  }
755
- function dr({
787
+ function mr({
756
788
  value: e,
757
789
  defaultValue: r,
758
- onValueChange: t,
790
+ onValueChange: a,
759
791
  className: n,
760
792
  children: o,
761
793
  ...s
@@ -763,27 +795,27 @@ function dr({
763
795
  const [l, c] = Ke({
764
796
  value: e,
765
797
  defaultValue: r ?? "",
766
- onChange: t
798
+ onChange: a
767
799
  });
768
- return /* @__PURE__ */ a(O.Provider, { value: { value: l, setValue: c }, children: /* @__PURE__ */ a("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 }) });
769
801
  }
770
- function mr({ className: e, children: r, ...t }) {
802
+ function pr({ className: e, children: r, ...a }) {
771
803
  const { value: n } = I(), o = T(null), [s, l] = b({ left: 0, width: 0, ready: !1 });
772
- return y(() => {
804
+ return N(() => {
773
805
  const c = o.current;
774
806
  if (!c) return;
775
807
  const u = c.querySelector('[aria-selected="true"]');
776
808
  u && l({ left: u.offsetLeft, width: u.offsetWidth, ready: !0 });
777
- }, [n]), /* @__PURE__ */ f(
809
+ }, [n]), /* @__PURE__ */ d(
778
810
  "div",
779
811
  {
780
812
  ref: o,
781
813
  role: "tablist",
782
814
  className: i("relative flex items-center gap-1 border-b border-border-default", e),
783
- ...t,
815
+ ...a,
784
816
  children: [
785
817
  r,
786
- s.ready && /* @__PURE__ */ a(
818
+ s.ready && /* @__PURE__ */ t(
787
819
  "span",
788
820
  {
789
821
  "aria-hidden": !0,
@@ -795,9 +827,9 @@ function mr({ className: e, children: r, ...t }) {
795
827
  }
796
828
  );
797
829
  }
798
- function pr({ value: e, className: r, ...t }) {
830
+ function gr({ value: e, className: r, ...a }) {
799
831
  const n = I(), o = n.value === e;
800
- return /* @__PURE__ */ a(
832
+ return /* @__PURE__ */ t(
801
833
  "button",
802
834
  {
803
835
  type: "button",
@@ -805,85 +837,85 @@ function pr({ value: e, className: r, ...t }) {
805
837
  "aria-selected": o,
806
838
  onClick: () => n.setValue(e),
807
839
  className: i(
808
- "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",
809
841
  "focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg",
810
842
  o ? "text-fg" : "text-fg-muted hover:text-fg",
811
843
  r
812
844
  ),
813
- ...t
845
+ ...a
814
846
  }
815
847
  );
816
848
  }
817
- function gr({ value: e, className: r, ...t }) {
818
- return I().value !== e ? null : /* @__PURE__ */ a(
849
+ function br({ value: e, className: r, ...a }) {
850
+ return I().value !== e ? null : /* @__PURE__ */ t(
819
851
  "div",
820
852
  {
821
853
  role: "tabpanel",
822
854
  className: i("pt-4 animate-[flui-slide-up_200ms_ease-out]", r),
823
- ...t
855
+ ...a
824
856
  }
825
857
  );
826
858
  }
827
- const Y = C(null), _ = C("");
828
- function $() {
829
- const e = w(Y);
859
+ const J = C(null), S = C("");
860
+ function Q() {
861
+ const e = w(J);
830
862
  if (!e) throw new Error("Componentes de Accordion precisam estar dentro de <Accordion>");
831
863
  return e;
832
864
  }
833
- function br({
865
+ function hr({
834
866
  type: e = "single",
835
867
  defaultValue: r,
836
- className: t,
868
+ className: a,
837
869
  children: n,
838
870
  ...o
839
871
  }) {
840
- const s = r ? Array.isArray(r) ? r : [r] : [], [l, c] = b(s), u = (d) => c((m) => {
841
- const g = m.includes(d);
842
- return e === "single" ? g ? [] : [d] : g ? m.filter((v) => v !== d) : [...m, d];
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];
843
875
  });
844
- return /* @__PURE__ */ a(Y.Provider, { value: { open: l, toggle: u }, children: /* @__PURE__ */ a(
876
+ return /* @__PURE__ */ t(J.Provider, { value: { open: l, toggle: u }, children: /* @__PURE__ */ t(
845
877
  "div",
846
878
  {
847
- className: i("border-y border-border-default divide-y divide-border-default", t),
879
+ className: i("border-y border-border-default divide-y divide-border-default", a),
848
880
  ...o,
849
881
  children: n
850
882
  }
851
883
  ) });
852
884
  }
853
- function hr({ value: e, children: r, ...t }) {
854
- return /* @__PURE__ */ a(_.Provider, { value: e, children: /* @__PURE__ */ a("div", { ...t, 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 }) });
855
887
  }
856
- function vr({
888
+ function xr({
857
889
  className: e,
858
890
  children: r,
859
- ...t
891
+ ...a
860
892
  }) {
861
- const n = $(), o = w(_), s = n.open.includes(o);
862
- return /* @__PURE__ */ f(
893
+ const n = Q(), o = w(S), s = n.open.includes(o);
894
+ return /* @__PURE__ */ d(
863
895
  "button",
864
896
  {
865
897
  type: "button",
866
898
  "aria-expanded": s,
867
899
  onClick: () => n.toggle(o),
868
900
  className: i(
869
- "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",
870
902
  "focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg",
871
903
  e
872
904
  ),
873
- ...t,
905
+ ...a,
874
906
  children: [
875
907
  r,
876
- /* @__PURE__ */ a("span", { className: i("text-fg-muted transition-transform", s && "rotate-180"), children: "▾" })
908
+ /* @__PURE__ */ t("span", { className: i("text-fg-muted transition-transform", s && "rotate-180"), children: "▾" })
877
909
  ]
878
910
  }
879
911
  );
880
912
  }
881
- function xr({
913
+ function wr({
882
914
  className: e,
883
915
  ...r
884
916
  }) {
885
- const t = $(), n = w(_);
886
- return t.open.includes(n) ? /* @__PURE__ */ a("div", { className: i("pb-4 text-sm text-fg-muted", e), ...r }) : null;
917
+ const a = Q(), n = w(S);
918
+ return a.open.includes(n) ? /* @__PURE__ */ t("div", { className: i("pb-4 text-sm text-fg-muted", e), ...r }) : null;
887
919
  }
888
920
  const qe = {
889
921
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
@@ -891,9 +923,9 @@ const qe = {
891
923
  left: "right-full top-1/2 -translate-y-1/2 mr-2",
892
924
  right: "left-full top-1/2 -translate-y-1/2 ml-2"
893
925
  };
894
- function wr({ content: e, side: r = "top", children: t, className: n }) {
895
- const [o, s] = b(!1), l = H();
896
- 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(
897
929
  "span",
898
930
  {
899
931
  className: "relative inline-flex",
@@ -902,8 +934,8 @@ function wr({ content: e, side: r = "top", children: t, className: n }) {
902
934
  onFocus: () => s(!0),
903
935
  onBlur: () => s(!1),
904
936
  children: [
905
- /* @__PURE__ */ a("span", { "aria-describedby": o ? l : void 0, children: t }),
906
- o && /* @__PURE__ */ a(
937
+ /* @__PURE__ */ t("span", { "aria-describedby": o ? l : void 0, children: a }),
938
+ o && /* @__PURE__ */ t(
907
939
  "span",
908
940
  {
909
941
  role: "tooltip",
@@ -921,39 +953,39 @@ function wr({ content: e, side: r = "top", children: t, className: n }) {
921
953
  }
922
954
  );
923
955
  }
924
- const J = C(null);
925
- function Q() {
926
- const e = w(J);
956
+ const X = C(null);
957
+ function Z() {
958
+ const e = w(X);
927
959
  if (!e) throw new Error("Componentes de Popover precisam estar dentro de <Popover>");
928
960
  return e;
929
961
  }
930
- function yr({ children: e }) {
931
- const [r, t] = b(!1), n = T(null);
932
- return y(() => {
962
+ function Nr({ children: e }) {
963
+ const [r, a] = b(!1), n = T(null);
964
+ return N(() => {
933
965
  if (!r) return;
934
966
  const o = (l) => {
935
- n.current && !n.current.contains(l.target) && t(!1);
936
- }, s = (l) => l.key === "Escape" && t(!1);
967
+ n.current && !n.current.contains(l.target) && a(!1);
968
+ }, s = (l) => l.key === "Escape" && a(!1);
937
969
  return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
938
970
  document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
939
971
  };
940
- }, [r]), /* @__PURE__ */ a(J.Provider, { value: { open: r, setOpen: t }, children: /* @__PURE__ */ a("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 }) });
941
973
  }
942
974
  function Cr({ children: e }) {
943
- const { open: r, setOpen: t } = Q();
944
- return K(e, {
945
- onClick: () => t(!r),
975
+ const { open: r, setOpen: a } = Z();
976
+ return q(e, {
977
+ onClick: () => a(!r),
946
978
  "aria-haspopup": "dialog",
947
979
  "aria-expanded": r
948
980
  });
949
981
  }
950
- function Nr({
982
+ function Vr({
951
983
  children: e,
952
984
  align: r = "start",
953
- className: t
985
+ className: a
954
986
  }) {
955
- const { open: n } = Q();
956
- return n ? /* @__PURE__ */ a(
987
+ const { open: n } = Z();
988
+ return n ? /* @__PURE__ */ t(
957
989
  "div",
958
990
  {
959
991
  role: "dialog",
@@ -961,46 +993,46 @@ function Nr({
961
993
  "absolute z-50 mt-2 min-w-56 rounded-lg border border-border-default bg-bg p-4 shadow-lg",
962
994
  "animate-[flui-slide-up_140ms_ease-out]",
963
995
  r === "end" ? "right-0" : "left-0",
964
- t
996
+ a
965
997
  ),
966
998
  children: e
967
999
  }
968
1000
  ) : null;
969
1001
  }
970
1002
  function A({ children: e }) {
971
- const [r, t] = b(!1);
972
- return y(() => t(!0), []), r ? ie(e, document.body) : null;
1003
+ const [r, a] = b(!1);
1004
+ return N(() => a(!0), []), r ? ue(e, document.body) : null;
973
1005
  }
974
- function X(e, r) {
975
- y(() => {
1006
+ function ee(e, r) {
1007
+ N(() => {
976
1008
  if (!e) return;
977
- const t = (o) => o.key === "Escape" && r(), n = document.body.style.overflow;
978
- return document.body.style.overflow = "hidden", document.addEventListener("keydown", t), () => {
979
- document.body.style.overflow = n, document.removeEventListener("keydown", t);
1009
+ const a = (o) => o.key === "Escape" && r(), n = document.body.style.overflow;
1010
+ return document.body.style.overflow = "hidden", document.addEventListener("keydown", a), () => {
1011
+ document.body.style.overflow = n, document.removeEventListener("keydown", a);
980
1012
  };
981
1013
  }, [e, r]);
982
1014
  }
983
- const Z = C(null);
984
- function Ge({ open: e, onOpenChange: r, children: t }) {
1015
+ const re = C(null);
1016
+ function Ge({ open: e, onOpenChange: r, children: a }) {
985
1017
  const n = () => r == null ? void 0 : r(!1);
986
- return X(e, n), e ? /* @__PURE__ */ a(A, { children: /* @__PURE__ */ a(Z.Provider, { value: { close: n }, children: /* @__PURE__ */ f("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
987
- /* @__PURE__ */ a(
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: [
1019
+ /* @__PURE__ */ t(
988
1020
  "div",
989
1021
  {
990
1022
  className: "absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]",
991
1023
  onClick: n
992
1024
  }
993
1025
  ),
994
- t
1026
+ a
995
1027
  ] }) }) }) : null;
996
1028
  }
997
- function Ue({
1029
+ function Oe({
998
1030
  className: e,
999
1031
  children: r,
1000
- ...t
1032
+ ...a
1001
1033
  }) {
1002
- const n = w(Z);
1003
- return /* @__PURE__ */ f(
1034
+ const n = w(re);
1035
+ return /* @__PURE__ */ d(
1004
1036
  "div",
1005
1037
  {
1006
1038
  role: "dialog",
@@ -1010,16 +1042,16 @@ function Ue({
1010
1042
  "animate-[flui-slide-up_160ms_ease-out]",
1011
1043
  e
1012
1044
  ),
1013
- ...t,
1045
+ ...a,
1014
1046
  children: [
1015
1047
  r,
1016
- /* @__PURE__ */ a(
1048
+ /* @__PURE__ */ t(
1017
1049
  "button",
1018
1050
  {
1019
1051
  type: "button",
1020
1052
  onClick: () => n == null ? void 0 : n.close(),
1021
1053
  "aria-label": "Fechar",
1022
- 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",
1023
1055
  children: "✕"
1024
1056
  }
1025
1057
  )
@@ -1027,34 +1059,34 @@ function Ue({
1027
1059
  }
1028
1060
  );
1029
1061
  }
1030
- function Vr({ className: e, ...r }) {
1031
- return /* @__PURE__ */ a("div", { className: i("flex flex-col gap-1 p-6 pb-2", e), ...r });
1032
- }
1033
1062
  function kr({ className: e, ...r }) {
1034
- return /* @__PURE__ */ a("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1063
+ return /* @__PURE__ */ t("div", { className: i("flex flex-col gap-1 p-6 pb-2", e), ...r });
1035
1064
  }
1036
- function zr({
1065
+ function zr({ className: e, ...r }) {
1066
+ return /* @__PURE__ */ t("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1067
+ }
1068
+ function Mr({
1037
1069
  className: e,
1038
1070
  ...r
1039
1071
  }) {
1040
- return /* @__PURE__ */ a("p", { className: i("text-sm text-fg-muted", e), ...r });
1041
- }
1042
- function Mr({ className: e, ...r }) {
1043
- return /* @__PURE__ */ a("div", { className: i("px-6 py-2", e), ...r });
1072
+ return /* @__PURE__ */ t("p", { className: i("text-sm text-fg-muted", e), ...r });
1044
1073
  }
1045
1074
  function Tr({ className: e, ...r }) {
1046
- return /* @__PURE__ */ a("div", { className: i("flex justify-end gap-2 p-6 pt-4", e), ...r });
1075
+ return /* @__PURE__ */ t("div", { className: i("px-6 py-2", e), ...r });
1076
+ }
1077
+ function Er({ className: e, ...r }) {
1078
+ return /* @__PURE__ */ t("div", { className: i("flex justify-end gap-2 p-6 pt-4", e), ...r });
1047
1079
  }
1048
- const ee = C(null), Oe = {
1080
+ const te = C(null), Ue = {
1049
1081
  left: "left-0 top-0 h-full w-[420px] max-w-[96vw] border-r",
1050
1082
  right: "right-0 top-0 h-full w-[420px] max-w-[96vw] border-l",
1051
1083
  top: "top-0 left-0 w-full max-h-[90vh] border-b",
1052
1084
  bottom: "bottom-0 left-0 w-full max-h-[90vh] border-t"
1053
1085
  };
1054
- function Er({ open: e, onOpenChange: r, side: t = "right", children: n }) {
1086
+ function Pr({ open: e, onOpenChange: r, side: a = "right", children: n }) {
1055
1087
  const o = () => r == null ? void 0 : r(!1);
1056
- return X(e, o), e ? /* @__PURE__ */ a(A, { children: /* @__PURE__ */ a(ee.Provider, { value: { close: o, side: t }, children: /* @__PURE__ */ f("div", { className: "fixed inset-0 z-50", children: [
1057
- /* @__PURE__ */ a(
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: [
1089
+ /* @__PURE__ */ t(
1058
1090
  "div",
1059
1091
  {
1060
1092
  className: "absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]",
@@ -1067,10 +1099,10 @@ function Er({ open: e, onOpenChange: r, side: t = "right", children: n }) {
1067
1099
  function Dr({
1068
1100
  className: e,
1069
1101
  children: r,
1070
- ...t
1102
+ ...a
1071
1103
  }) {
1072
- const n = w(ee), o = (n == null ? void 0 : n.side) ?? "right";
1073
- return /* @__PURE__ */ f(
1104
+ const n = w(te), o = (n == null ? void 0 : n.side) ?? "right";
1105
+ return /* @__PURE__ */ d(
1074
1106
  "div",
1075
1107
  {
1076
1108
  role: "dialog",
@@ -1078,19 +1110,19 @@ function Dr({
1078
1110
  className: i(
1079
1111
  "absolute z-10 flex flex-col border-border-default bg-bg shadow-lg",
1080
1112
  "animate-[flui-fade-in_160ms_ease-out]",
1081
- Oe[o],
1113
+ Ue[o],
1082
1114
  e
1083
1115
  ),
1084
- ...t,
1116
+ ...a,
1085
1117
  children: [
1086
1118
  r,
1087
- /* @__PURE__ */ a(
1119
+ /* @__PURE__ */ t(
1088
1120
  "button",
1089
1121
  {
1090
1122
  type: "button",
1091
1123
  onClick: () => n == null ? void 0 : n.close(),
1092
1124
  "aria-label": "Fechar",
1093
- 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",
1094
1126
  children: "✕"
1095
1127
  }
1096
1128
  )
@@ -1098,8 +1130,8 @@ function Dr({
1098
1130
  }
1099
1131
  );
1100
1132
  }
1101
- function Pr({ className: e, ...r }) {
1102
- return /* @__PURE__ */ a(
1133
+ function Lr({ className: e, ...r }) {
1134
+ return /* @__PURE__ */ t(
1103
1135
  "div",
1104
1136
  {
1105
1137
  className: i("flex flex-col gap-1 border-b border-border-default p-6", e),
@@ -1107,14 +1139,14 @@ function Pr({ className: e, ...r }) {
1107
1139
  }
1108
1140
  );
1109
1141
  }
1110
- function Lr({ className: e, ...r }) {
1111
- return /* @__PURE__ */ a("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1142
+ function jr({ className: e, ...r }) {
1143
+ return /* @__PURE__ */ t("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1112
1144
  }
1113
1145
  function Ir({ className: e, ...r }) {
1114
- return /* @__PURE__ */ a("div", { className: i("flex-1 overflow-y-auto p-6", e), ...r });
1146
+ return /* @__PURE__ */ t("div", { className: i("flex-1 overflow-y-auto p-6", e), ...r });
1115
1147
  }
1116
- function _r({ className: e, ...r }) {
1117
- return /* @__PURE__ */ a(
1148
+ function Sr({ className: e, ...r }) {
1149
+ return /* @__PURE__ */ t(
1118
1150
  "div",
1119
1151
  {
1120
1152
  className: i("flex justify-end gap-2 border-t border-border-default p-6", e),
@@ -1122,50 +1154,50 @@ function _r({ className: e, ...r }) {
1122
1154
  }
1123
1155
  );
1124
1156
  }
1125
- const re = C(null), D = {
1157
+ const ae = C(null), P = {
1126
1158
  info: { wrapper: "bg-brand-100 border-l-primary", title: "text-fg", description: "text-fg-muted" },
1127
1159
  success: { wrapper: "bg-success-subtle border-l-success", title: "text-success-fg", description: "text-success-fg/70" },
1128
1160
  warning: { wrapper: "bg-warning/15 border-l-warning", title: "text-fg", description: "text-fg-muted" },
1129
1161
  danger: { wrapper: "bg-danger/10 border-l-danger", title: "text-danger", description: "text-danger/70" }
1130
1162
  };
1131
1163
  function Ar({ children: e }) {
1132
- const [r, t] = b([]), n = T(0), o = M((l) => {
1133
- t((c) => c.filter((u) => u.id !== l));
1164
+ const [r, a] = b([]), n = T(0), o = M((l) => {
1165
+ a((c) => c.filter((u) => u.id !== l));
1134
1166
  }, []), s = M((l) => {
1135
1167
  const c = ++n.current;
1136
- return t((u) => [...u, { id: c, variant: "info", duration: 4e3, ...l }]), c;
1168
+ return a((u) => [...u, { id: c, variant: "info", duration: 4e3, ...l }]), c;
1137
1169
  }, []);
1138
- return /* @__PURE__ */ f(re.Provider, { value: { toast: s, dismiss: o }, children: [
1170
+ return /* @__PURE__ */ d(ae.Provider, { value: { toast: s, dismiss: o }, children: [
1139
1171
  e,
1140
- /* @__PURE__ */ a(A, { children: /* @__PURE__ */ a("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__ */ a(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)) }) })
1141
1173
  ] });
1142
1174
  }
1143
1175
  function Ye({ item: e, onDismiss: r }) {
1144
- return y(() => {
1176
+ return N(() => {
1145
1177
  if (!e.duration) return;
1146
- const t = setTimeout(r, e.duration);
1147
- return () => clearTimeout(t);
1148
- }, [e.duration, r]), /* @__PURE__ */ f(
1178
+ const a = setTimeout(r, e.duration);
1179
+ return () => clearTimeout(a);
1180
+ }, [e.duration, r]), /* @__PURE__ */ d(
1149
1181
  "div",
1150
1182
  {
1151
1183
  role: "status",
1152
1184
  className: i(
1153
1185
  "pointer-events-auto flex items-start gap-3 rounded-lg border-l-4 p-4 shadow-md",
1154
1186
  "animate-[flui-slide-up_160ms_ease-out]",
1155
- D[e.variant ?? "info"].wrapper
1187
+ P[e.variant ?? "info"].wrapper
1156
1188
  ),
1157
1189
  children: [
1158
- /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
1159
- /* @__PURE__ */ a("div", { className: i("text-sm font-semibold", D[e.variant ?? "info"].title), children: e.title }),
1160
- e.description && /* @__PURE__ */ a("div", { className: i("mt-0.5 text-sm", D[e.variant ?? "info"].description), children: e.description })
1190
+ /* @__PURE__ */ d("div", { className: "min-w-0 flex-1", children: [
1191
+ /* @__PURE__ */ t("div", { className: i("text-sm font-semibold", P[e.variant ?? "info"].title), children: e.title }),
1192
+ e.description && /* @__PURE__ */ t("div", { className: i("mt-0.5 text-sm", P[e.variant ?? "info"].description), children: e.description })
1161
1193
  ] }),
1162
- /* @__PURE__ */ a(
1194
+ /* @__PURE__ */ t(
1163
1195
  "button",
1164
1196
  {
1165
1197
  type: "button",
1166
1198
  onClick: r,
1167
1199
  "aria-label": "Fechar",
1168
- className: i("shrink-0 rounded-sm px-1 transition-colors opacity-60 hover:opacity-100", D[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),
1169
1201
  children: "✕"
1170
1202
  }
1171
1203
  )
@@ -1174,11 +1206,11 @@ function Ye({ item: e, onDismiss: r }) {
1174
1206
  );
1175
1207
  }
1176
1208
  function Br() {
1177
- const e = w(re);
1209
+ const e = w(ae);
1178
1210
  if (!e) throw new Error("useToast precisa estar dentro de <ToastProvider>");
1179
1211
  return e;
1180
1212
  }
1181
- const $e = N(
1213
+ const $e = V(
1182
1214
  "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",
1183
1215
  {
1184
1216
  variants: {
@@ -1189,13 +1221,13 @@ const $e = N(
1189
1221
  },
1190
1222
  defaultVariants: { invalid: !1 }
1191
1223
  }
1192
- ), Je = p(
1193
- ({ className: e, invalid: r, ...t }, n) => /* @__PURE__ */ a(
1224
+ ), Je = g(
1225
+ ({ className: e, invalid: r, ...a }, n) => /* @__PURE__ */ t(
1194
1226
  "textarea",
1195
1227
  {
1196
1228
  ref: n,
1197
1229
  className: i($e({ invalid: r }), e),
1198
- ...t
1230
+ ...a
1199
1231
  }
1200
1232
  )
1201
1233
  );
@@ -1203,26 +1235,26 @@ Je.displayName = "Textarea";
1203
1235
  function Qe({
1204
1236
  user: e,
1205
1237
  nav: r,
1206
- active: t,
1238
+ active: a,
1207
1239
  onSelect: n,
1208
1240
  footerAction: o
1209
1241
  }) {
1210
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");
1211
- 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: [
1212
- /* @__PURE__ */ f("div", { className: "flex items-center gap-2.5 px-1", children: [
1213
- e.avatar ? /* @__PURE__ */ a(
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: [
1245
+ e.avatar ? /* @__PURE__ */ t(
1214
1246
  "img",
1215
1247
  {
1216
1248
  src: e.avatar,
1217
1249
  alt: e.name,
1218
1250
  className: "h-8 w-8 shrink-0 rounded-full object-cover"
1219
1251
  }
1220
- ) : /* @__PURE__ */ a("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() }),
1221
- /* @__PURE__ */ f("div", { className: "min-w-0", children: [
1222
- /* @__PURE__ */ a("p", { className: "truncate text-sm font-medium text-fg", children: e.name }),
1223
- e.subtitle && /* @__PURE__ */ a("p", { className: "truncate text-xs text-fg-muted", children: e.subtitle })
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() }),
1253
+ /* @__PURE__ */ d("div", { className: "min-w-0", children: [
1254
+ /* @__PURE__ */ t("p", { className: "truncate text-sm font-medium text-fg", children: e.name }),
1255
+ e.subtitle && /* @__PURE__ */ t("p", { className: "truncate text-xs text-fg-muted", children: e.subtitle })
1224
1256
  ] }),
1225
- /* @__PURE__ */ a(
1257
+ /* @__PURE__ */ t(
1226
1258
  "svg",
1227
1259
  {
1228
1260
  viewBox: "0 0 16 16",
@@ -1233,133 +1265,177 @@ function Qe({
1233
1265
  strokeLinecap: "round",
1234
1266
  strokeLinejoin: "round",
1235
1267
  "aria-hidden": !0,
1236
- children: /* @__PURE__ */ a("path", { d: "M5 7l3-3 3 3M5 9l3 3 3-3" })
1268
+ children: /* @__PURE__ */ t("path", { d: "M5 7l3-3 3 3M5 9l3 3 3-3" })
1237
1269
  }
1238
1270
  )
1239
1271
  ] }),
1240
- r.map(({ group: l, items: c }) => /* @__PURE__ */ f("div", { children: [
1241
- /* @__PURE__ */ a("p", { className: "mb-1 px-1 text-xs font-semibold text-fg-muted", children: l }),
1242
- /* @__PURE__ */ a("ul", { className: "flex flex-col gap-0.5", children: c.map((u) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ f(
1272
+ r.map(({ group: l, items: c }) => /* @__PURE__ */ d("div", { children: [
1273
+ /* @__PURE__ */ t("p", { className: "mb-1 px-1 text-xs font-semibold text-fg-muted", children: l }),
1274
+ /* @__PURE__ */ t("ul", { className: "flex flex-col gap-0.5", children: c.map((u) => /* @__PURE__ */ t("li", { children: /* @__PURE__ */ d(
1243
1275
  "button",
1244
1276
  {
1245
1277
  type: "button",
1246
1278
  onClick: () => n(u.id),
1247
- className: s(u.id === t),
1279
+ className: s(u.id === a),
1248
1280
  children: [
1249
- u.icon && /* @__PURE__ */ a("span", { className: "shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]", children: u.icon }),
1281
+ u.icon && /* @__PURE__ */ t("span", { className: "shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]", children: u.icon }),
1250
1282
  u.label
1251
1283
  ]
1252
1284
  }
1253
1285
  ) }, u.id)) })
1254
1286
  ] }, l)),
1255
- o && /* @__PURE__ */ a("div", { className: "mt-auto", children: o })
1287
+ o && /* @__PURE__ */ t("div", { className: "mt-auto", children: o })
1288
+ ] });
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" })
1256
1331
  ] });
1257
1332
  }
1258
- function jr({
1333
+ function Wr({
1259
1334
  open: e,
1260
1335
  onOpenChange: r,
1261
- user: t,
1336
+ user: a,
1262
1337
  nav: n,
1263
1338
  defaultSection: o,
1264
1339
  activeSection: s,
1265
1340
  onSectionChange: l,
1266
1341
  sectionTitles: c = {},
1267
1342
  sectionSubtitles: u = {},
1268
- renderSection: d,
1269
- footerAction: m
1343
+ renderSection: m,
1344
+ footerAction: f
1270
1345
  }) {
1271
- var j, S;
1272
- const g = ((S = (j = n[0]) == null ? void 0 : j.items[0]) == null ? void 0 : S.id) ?? "", [v, x] = b(
1273
- o ?? g
1274
- ), V = s ?? v, h = (z) => {
1275
- x(z), l == null || l(z);
1276
- }, k = n.flatMap((z) => z.items).find((z) => z.id === V), E = c[V] ?? (k == null ? void 0 : k.label) ?? V, B = u[V];
1277
- return /* @__PURE__ */ a(Ge, { open: e, onOpenChange: r, children: /* @__PURE__ */ a(Ue, { className: "max-w-[1300px] overflow-hidden p-0", children: /* @__PURE__ */ f("div", { className: "flex h-[820px]", children: [
1278
- /* @__PURE__ */ a(
1346
+ var _, R;
1347
+ const p = ((R = (_ = n[0]) == null ? void 0 : _.items[0]) == null ? void 0 : R.id) ?? "", [h, v] = b(
1348
+ o ?? p
1349
+ ), y = s ?? h, x = (z) => {
1350
+ v(z), l == null || l(z);
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: [
1353
+ /* @__PURE__ */ t(
1279
1354
  Qe,
1280
1355
  {
1281
- user: t,
1356
+ user: a,
1282
1357
  nav: n,
1283
- active: V,
1284
- onSelect: h,
1285
- footerAction: m
1358
+ active: y,
1359
+ onSelect: x,
1360
+ footerAction: f
1286
1361
  }
1287
1362
  ),
1288
- /* @__PURE__ */ f("div", { className: "flex flex-1 flex-col overflow-hidden", children: [
1289
- /* @__PURE__ */ f("div", { className: "px-[200px] pb-5 pt-8", children: [
1290
- /* @__PURE__ */ a("h2", { className: "font-display text-2xl font-semibold tracking-tight text-fg", children: E }),
1291
- B && /* @__PURE__ */ a("p", { className: "mt-0.5 text-sm text-fg-muted", children: B })
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: [
1365
+ /* @__PURE__ */ t("h2", { className: "font-display text-2xl font-semibold tracking-tight text-fg", children: E }),
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" })
1292
1368
  ] }),
1293
- /* @__PURE__ */ a("div", { className: "flex-1 overflow-y-auto px-[200px] pb-8", children: (d == null ? void 0 : d(V)) ?? /* @__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: [
1294
1370
  "Conteúdo de ",
1295
- /* @__PURE__ */ a("strong", { children: E }),
1371
+ /* @__PURE__ */ t("strong", { children: E }),
1296
1372
  "."
1297
1373
  ] }) })
1298
1374
  ] })
1299
1375
  ] }) }) });
1300
1376
  }
1301
- const te = C(null), R = "flui-color-mode", F = "flui-brand";
1302
- function Xe() {
1377
+ const ne = C(null), F = "flui-color-mode", W = "flui-brand";
1378
+ function Ze() {
1303
1379
  var e;
1304
1380
  return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-color-scheme: dark)").matches);
1305
1381
  }
1306
- function W(e, r) {
1382
+ function H(e, r) {
1307
1383
  try {
1308
1384
  return localStorage.getItem(e) ?? r;
1309
1385
  } catch {
1310
1386
  return r;
1311
1387
  }
1312
1388
  }
1313
- function Sr({
1389
+ function Hr({
1314
1390
  children: e,
1315
1391
  defaultMode: r = "system",
1316
- defaultBrand: t = "default",
1392
+ defaultBrand: a = "default",
1317
1393
  target: n
1318
1394
  }) {
1319
1395
  const [o, s] = b(
1320
- () => W(R, r)
1396
+ () => H(F, r)
1321
1397
  ), [l, c] = b(
1322
- () => W(F, t)
1323
- ), [u, d] = b(Xe);
1324
- y(() => {
1398
+ () => H(W, a)
1399
+ ), [u, m] = b(Ze);
1400
+ N(() => {
1325
1401
  var k;
1326
- const h = (k = window.matchMedia) == null ? void 0 : k.call(window, "(prefers-color-scheme: dark)");
1327
- if (!h) return;
1328
- const P = (E) => d(E.matches);
1329
- return h.addEventListener("change", P), () => h.removeEventListener("change", P);
1402
+ const x = (k = window.matchMedia) == null ? void 0 : k.call(window, "(prefers-color-scheme: dark)");
1403
+ if (!x) return;
1404
+ const D = (E) => m(E.matches);
1405
+ return x.addEventListener("change", D), () => x.removeEventListener("change", D);
1330
1406
  }, []);
1331
- const m = o === "system" ? u ? "dark" : "light" : o;
1332
- y(() => {
1333
- const h = (n == null ? void 0 : n()) ?? document.documentElement;
1334
- h.setAttribute("data-theme", m), l && l !== "default" ? h.setAttribute("data-brand", l) : h.removeAttribute("data-brand");
1335
- }, [m, l, n]);
1336
- const g = M((h) => {
1337
- s(h);
1407
+ const f = o === "system" ? u ? "dark" : "light" : o;
1408
+ N(() => {
1409
+ const x = (n == null ? void 0 : n()) ?? document.documentElement;
1410
+ x.setAttribute("data-theme", f), l && l !== "default" ? x.setAttribute("data-brand", l) : x.removeAttribute("data-brand");
1411
+ }, [f, l, n]);
1412
+ const p = M((x) => {
1413
+ s(x);
1338
1414
  try {
1339
- localStorage.setItem(R, h);
1415
+ localStorage.setItem(F, x);
1340
1416
  } catch {
1341
1417
  }
1342
- }, []), v = M((h) => {
1343
- c(h);
1418
+ }, []), h = M((x) => {
1419
+ c(x);
1344
1420
  try {
1345
- localStorage.setItem(F, h);
1421
+ localStorage.setItem(W, x);
1346
1422
  } catch {
1347
1423
  }
1348
- }, []), x = M(() => {
1349
- g(m === "dark" ? "light" : "dark");
1350
- }, [m, g]), V = oe(
1351
- () => ({ mode: o, resolvedMode: m, brand: l, setMode: g, setBrand: v, toggleMode: x }),
1352
- [o, m, l, g, v, x]
1424
+ }, []), v = M(() => {
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]
1353
1429
  );
1354
- return /* @__PURE__ */ a(te.Provider, { value: V, children: e });
1430
+ return /* @__PURE__ */ t(ne.Provider, { value: y, children: e });
1355
1431
  }
1356
- function Rr() {
1357
- const e = w(te);
1432
+ function Kr() {
1433
+ const e = w(ne);
1358
1434
  if (!e)
1359
1435
  throw new Error("useTheme precisa estar dentro de <ThemeProvider>");
1360
1436
  return e;
1361
1437
  }
1362
- const Fr = [
1438
+ const qr = [
1363
1439
  {
1364
1440
  name: "flui-color-accent-scale-50",
1365
1441
  cssVar: "--flui-color-accent-scale-50",
@@ -2590,69 +2666,73 @@ const Fr = [
2590
2666
  }
2591
2667
  ];
2592
2668
  export {
2593
- br as Accordion,
2594
- xr as AccordionContent,
2595
- hr as AccordionItem,
2596
- vr as AccordionTrigger,
2669
+ hr as Accordion,
2670
+ wr as AccordionContent,
2671
+ vr as AccordionItem,
2672
+ xr as AccordionTrigger,
2597
2673
  He as Alert,
2598
- De as Avatar,
2599
- U as Badge,
2600
- Ae as Breadcrumb,
2674
+ Pe as Avatar,
2675
+ Y as Badge,
2676
+ Se as Breadcrumb,
2601
2677
  fr as BreadcrumbItem,
2602
- Be as BreadcrumbSeparator,
2603
- ue as Button,
2604
- me as Card,
2605
- he as CardContent,
2606
- be as CardDescription,
2607
- pe as CardHeader,
2608
- 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,
2609
2685
  ye as Checkbox,
2610
- _e as Divider,
2611
- Er as Drawer,
2686
+ Ie as Divider,
2687
+ Pr as Drawer,
2612
2688
  Ir as DrawerBody,
2613
2689
  Dr as DrawerContent,
2614
- _r as DrawerFooter,
2615
- Pr as DrawerHeader,
2616
- Lr as DrawerTitle,
2617
- lr as Dropdown,
2618
- ir as DropdownContent,
2619
- cr as DropdownItem,
2620
- ur as DropdownSeparator,
2621
- sr as DropdownTrigger,
2622
- de as Input,
2690
+ Sr as DrawerFooter,
2691
+ Lr as DrawerHeader,
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,
2623
2700
  Ge as Modal,
2624
- Mr as ModalBody,
2625
- Ue as ModalContent,
2626
- zr as ModalDescription,
2627
- Tr as ModalFooter,
2628
- Vr as ModalHeader,
2629
- kr as ModalTitle,
2630
- yr as Popover,
2631
- Nr as PopoverContent,
2701
+ Tr as ModalBody,
2702
+ Oe as ModalContent,
2703
+ Mr as ModalDescription,
2704
+ Er as ModalFooter,
2705
+ kr as ModalHeader,
2706
+ zr as ModalTitle,
2707
+ Nr as Popover,
2708
+ Vr as PopoverContent,
2632
2709
  Cr as PopoverTrigger,
2633
- jr as ProfileSettingsModal,
2634
- Ie as Progress,
2635
- Ce as Radio,
2636
- or as RadioGroup,
2710
+ Wr as ProfileSettingsModal,
2711
+ je as Progress,
2712
+ Ne as Radio,
2713
+ lr as RadioGroup,
2637
2714
  Ve as Select,
2715
+ _r as SettingRow,
2716
+ Xe as SettingsCard,
2717
+ Rr as SettingsGroup,
2638
2718
  Le as Spinner,
2639
- Se as StatCard,
2640
- we as Switch,
2641
- dr as Tabs,
2642
- gr as TabsContent,
2643
- mr as TabsList,
2644
- pr as TabsTrigger,
2719
+ _e as StatCard,
2720
+ G as Switch,
2721
+ mr as Tabs,
2722
+ br as TabsContent,
2723
+ pr as TabsList,
2724
+ gr as TabsTrigger,
2645
2725
  Je as Textarea,
2646
- Sr as ThemeProvider,
2726
+ Hr as ThemeProvider,
2647
2727
  Ar as ToastProvider,
2648
- wr as Tooltip,
2728
+ yr as Tooltip,
2649
2729
  ke as badgeVariants,
2650
- ce as buttonVariants,
2730
+ de as buttonVariants,
2651
2731
  i as cn,
2652
2732
  fe as inputVariants,
2653
2733
  $e as textareaVariants,
2654
- Fr as tokens,
2655
- Rr as useTheme,
2734
+ qr as tokens,
2735
+ Kr as useTheme,
2656
2736
  Br as useToast
2657
2737
  };
2658
2738
  //# sourceMappingURL=index.js.map