@fluityy/designsystem 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +66 -0
  2. package/dist/components/Accordion/Accordion.d.ts +11 -0
  3. package/dist/components/Alert/Alert.d.ts +10 -0
  4. package/dist/components/Avatar/Avatar.d.ts +12 -0
  5. package/dist/components/Badge/Badge.d.ts +8 -0
  6. package/dist/components/Breadcrumb/Breadcrumb.d.ts +7 -0
  7. package/dist/components/Button/Button.d.ts +9 -0
  8. package/dist/components/Card/Card.d.ts +5 -0
  9. package/dist/components/Checkbox/Checkbox.d.ts +5 -0
  10. package/dist/components/Divider/Divider.d.ts +6 -0
  11. package/dist/components/Drawer/Drawer.d.ts +14 -0
  12. package/dist/components/Dropdown/Dropdown.d.ts +18 -0
  13. package/dist/components/Input/Input.d.ts +9 -0
  14. package/dist/components/Modal/Modal.d.ts +12 -0
  15. package/dist/components/Popover/Popover.d.ts +12 -0
  16. package/dist/components/Progress/Progress.d.ts +7 -0
  17. package/dist/components/Radio/Radio.d.ts +12 -0
  18. package/dist/components/Select/Select.d.ts +9 -0
  19. package/dist/components/Spinner/Spinner.d.ts +9 -0
  20. package/dist/components/StatCard/StatCard.d.ts +13 -0
  21. package/dist/components/Switch/Switch.d.ts +12 -0
  22. package/dist/components/Tabs/Tabs.d.ts +15 -0
  23. package/dist/components/Textarea/Textarea.d.ts +7 -0
  24. package/dist/components/Toast/Toast.d.ts +16 -0
  25. package/dist/components/Tooltip/Tooltip.d.ts +11 -0
  26. package/dist/components/index.d.ts +25 -0
  27. package/dist/hooks/useControllableState.d.ts +9 -0
  28. package/dist/hooks/useDismissable.d.ts +2 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.js +2559 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/styles.css +264 -0
  33. package/dist/theme/ThemeProvider.d.ts +34 -0
  34. package/dist/tokens/tokens.d.ts +10 -0
  35. package/dist/utils/Portal.d.ts +4 -0
  36. package/dist/utils/cn.d.ts +3 -0
  37. package/package.json +60 -0
package/dist/index.js ADDED
@@ -0,0 +1,2559 @@
1
+ import { jsx as n, jsxs as f } from "react/jsx-runtime";
2
+ import { forwardRef as d, useState as b, useRef as k, useEffect as y, createContext as C, useContext as v, useId as B, cloneElement as I, Children as Z, Fragment as ee, useCallback as V, useMemo as re } from "react";
3
+ import { cva as N } from "class-variance-authority";
4
+ import { clsx as te } from "clsx";
5
+ import { twMerge as ae } from "tailwind-merge";
6
+ import { createPortal as ne } from "react-dom";
7
+ function i(...e) {
8
+ return ae(te(e));
9
+ }
10
+ const oe = N(
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",
13
+ {
14
+ variants: {
15
+ variant: {
16
+ primary: "bg-primary text-fg-on-brand hover:bg-primary-hover active:bg-primary-active",
17
+ secondary: "bg-bg-muted text-fg hover:bg-border-default active:bg-border-strong",
18
+ outline: "border border-border-strong bg-transparent text-fg hover:bg-bg-subtle",
19
+ ghost: "bg-transparent text-fg hover:bg-bg-muted",
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"
22
+ },
23
+ size: {
24
+ sm: "h-8 px-3 text-sm rounded-lg",
25
+ md: "h-10 px-4 text-md rounded-lg",
26
+ lg: "h-12 px-6 text-lg rounded-lg"
27
+ },
28
+ fullWidth: { true: "w-full" }
29
+ },
30
+ defaultVariants: {
31
+ variant: "primary",
32
+ size: "md"
33
+ }
34
+ }
35
+ ), le = d(
36
+ ({ className: e, variant: r, size: t, fullWidth: a, ...o }, s) => /* @__PURE__ */ n(
37
+ "button",
38
+ {
39
+ ref: s,
40
+ className: i(oe({ variant: r, size: t, fullWidth: a }), e),
41
+ ...o
42
+ }
43
+ )
44
+ );
45
+ le.displayName = "Button";
46
+ const se = N(
47
+ "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
+ variants: {
50
+ size: {
51
+ sm: "h-8 px-3 text-xs",
52
+ md: "h-10 px-3 text-sm",
53
+ lg: "h-12 px-4 text-md"
54
+ },
55
+ invalid: {
56
+ true: "border-danger!",
57
+ false: ""
58
+ }
59
+ },
60
+ defaultVariants: { size: "md", invalid: !1 }
61
+ }
62
+ ), ie = d(
63
+ ({ className: e, size: r, invalid: t, label: a, id: o, ...s }, l) => {
64
+ const c = o ?? (a ? a.toLowerCase().replace(/\s+/g, "-") : void 0), u = /* @__PURE__ */ n(
65
+ "input",
66
+ {
67
+ ref: l,
68
+ id: c,
69
+ className: i(se({ size: r, invalid: t }), e),
70
+ ...s
71
+ }
72
+ );
73
+ return a ? /* @__PURE__ */ f("div", { className: "flex w-full flex-col gap-1.5", children: [
74
+ /* @__PURE__ */ n("label", { htmlFor: c, className: "text-xs font-medium text-fg", children: a }),
75
+ u
76
+ ] }) : u;
77
+ }
78
+ );
79
+ ie.displayName = "Input";
80
+ const ce = d(
81
+ ({ className: e, ...r }, t) => /* @__PURE__ */ n(
82
+ "div",
83
+ {
84
+ ref: t,
85
+ className: i(
86
+ "bg-bg border border-border-default rounded-lg shadow-sm",
87
+ e
88
+ ),
89
+ ...r
90
+ }
91
+ )
92
+ );
93
+ ce.displayName = "Card";
94
+ const ue = d(
95
+ ({ className: e, ...r }, t) => /* @__PURE__ */ n("div", { ref: t, className: i("flex flex-col gap-1 p-6", e), ...r })
96
+ );
97
+ ue.displayName = "CardHeader";
98
+ const fe = d(({ className: e, ...r }, t) => /* @__PURE__ */ n("h3", { ref: t, className: i("text-lg font-semibold text-fg", e), ...r }));
99
+ fe.displayName = "CardTitle";
100
+ const de = d(({ className: e, ...r }, t) => /* @__PURE__ */ n("p", { ref: t, className: i("text-sm text-fg-muted", e), ...r }));
101
+ de.displayName = "CardDescription";
102
+ const me = d(
103
+ ({ className: e, ...r }, t) => /* @__PURE__ */ n("div", { ref: t, className: i("p-6 pt-0", e), ...r })
104
+ );
105
+ me.displayName = "CardContent";
106
+ const pe = N(
107
+ "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
+ {
109
+ variants: {
110
+ size: { sm: "h-5 w-9", md: "h-6 w-11" },
111
+ checked: { true: "bg-primary", false: "bg-border-strong" }
112
+ },
113
+ defaultVariants: { size: "md", checked: !1 }
114
+ }
115
+ ), ge = N(
116
+ "pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform",
117
+ {
118
+ variants: {
119
+ size: { sm: "h-4 w-4", md: "h-5 w-5" },
120
+ checked: { true: "", false: "translate-x-0" }
121
+ },
122
+ compoundVariants: [
123
+ { size: "sm", checked: !0, class: "translate-x-4" },
124
+ { size: "md", checked: !0, class: "translate-x-5" }
125
+ ],
126
+ defaultVariants: { size: "md", checked: !1 }
127
+ }
128
+ ), be = d(
129
+ ({ className: e, size: r, checked: t, defaultChecked: a, onCheckedChange: o, disabled: s, ...l }, c) => {
130
+ const u = t !== void 0, [p, m] = b(a ?? !1), g = u ? t : p;
131
+ return /* @__PURE__ */ n(
132
+ "button",
133
+ {
134
+ ref: c,
135
+ type: "button",
136
+ role: "switch",
137
+ "aria-checked": g,
138
+ disabled: s,
139
+ onClick: () => {
140
+ const w = !g;
141
+ u || m(w), o == null || o(w);
142
+ },
143
+ className: i(pe({ size: r, checked: g }), e),
144
+ ...l,
145
+ children: /* @__PURE__ */ n("span", { className: ge({ size: r, checked: g }) })
146
+ }
147
+ );
148
+ }
149
+ );
150
+ be.displayName = "Switch";
151
+ const he = d(
152
+ ({ className: e, label: r, indeterminate: t = !1, disabled: a, id: o, ...s }, l) => {
153
+ const c = k(null);
154
+ y(() => {
155
+ c.current && (c.current.indeterminate = t);
156
+ }, [t]);
157
+ const u = (p) => {
158
+ c.current = p, typeof l == "function" ? l(p) : l && (l.current = p);
159
+ };
160
+ return /* @__PURE__ */ f(
161
+ "label",
162
+ {
163
+ className: i(
164
+ "relative inline-flex items-center gap-2 select-none",
165
+ a ? "cursor-not-allowed opacity-50" : "cursor-pointer",
166
+ e
167
+ ),
168
+ children: [
169
+ /* @__PURE__ */ n(
170
+ "input",
171
+ {
172
+ ref: u,
173
+ id: o,
174
+ type: "checkbox",
175
+ disabled: a,
176
+ className: "peer sr-only",
177
+ ...s
178
+ }
179
+ ),
180
+ /* @__PURE__ */ f(
181
+ "span",
182
+ {
183
+ className: i(
184
+ "relative flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border border-border-strong bg-bg transition-colors",
185
+ "peer-checked:border-primary peer-checked:bg-primary",
186
+ "peer-indeterminate:border-primary peer-indeterminate:bg-primary",
187
+ "peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg",
188
+ // check visível só quando checked (e não indeterminate)
189
+ "peer-checked:[&>svg]:opacity-100 peer-indeterminate:[&>svg]:opacity-0",
190
+ // traço visível só quando indeterminate
191
+ "peer-indeterminate:[&>span]:opacity-100"
192
+ ),
193
+ children: [
194
+ /* @__PURE__ */ n(
195
+ "svg",
196
+ {
197
+ viewBox: "0 0 16 16",
198
+ className: "h-3.5 w-3.5 text-fg-on-brand opacity-0",
199
+ fill: "none",
200
+ stroke: "currentColor",
201
+ strokeWidth: "2.5",
202
+ strokeLinecap: "round",
203
+ strokeLinejoin: "round",
204
+ "aria-hidden": !0,
205
+ children: /* @__PURE__ */ n("path", { d: "M3.5 8.5l3 3 6-6.5" })
206
+ }
207
+ ),
208
+ /* @__PURE__ */ n("span", { className: "absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0" })
209
+ ]
210
+ }
211
+ ),
212
+ r && /* @__PURE__ */ n("span", { className: "text-sm text-fg", children: r })
213
+ ]
214
+ }
215
+ );
216
+ }
217
+ );
218
+ he.displayName = "Checkbox";
219
+ const j = C(null);
220
+ function Xe({
221
+ value: e,
222
+ defaultValue: r,
223
+ onValueChange: t,
224
+ name: a,
225
+ className: o,
226
+ children: s,
227
+ ...l
228
+ }) {
229
+ const c = B(), u = e !== void 0, [p, m] = b(r), g = u ? e : p, x = (w) => {
230
+ u || m(w), t == null || t(w);
231
+ };
232
+ return /* @__PURE__ */ n(
233
+ j.Provider,
234
+ {
235
+ value: { name: a ?? c, value: g, onChange: x },
236
+ children: /* @__PURE__ */ n("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...l, children: s })
237
+ }
238
+ );
239
+ }
240
+ const ve = d(
241
+ ({ className: e, value: r, label: t, disabled: a, ...o }, s) => {
242
+ const l = v(j);
243
+ if (!l) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
244
+ const c = l.value === r;
245
+ return /* @__PURE__ */ f(
246
+ "label",
247
+ {
248
+ className: i(
249
+ "inline-flex items-center gap-2 select-none",
250
+ a ? "cursor-not-allowed opacity-50" : "cursor-pointer",
251
+ e
252
+ ),
253
+ children: [
254
+ /* @__PURE__ */ n(
255
+ "input",
256
+ {
257
+ ref: s,
258
+ type: "radio",
259
+ name: l.name,
260
+ value: r,
261
+ checked: c,
262
+ disabled: a,
263
+ onChange: () => l.onChange(r),
264
+ className: "peer sr-only",
265
+ ...o
266
+ }
267
+ ),
268
+ /* @__PURE__ */ n(
269
+ "span",
270
+ {
271
+ className: i(
272
+ "flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-border-strong bg-bg transition-colors",
273
+ "peer-checked:border-primary",
274
+ "peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg",
275
+ "peer-checked:[&>span]:scale-100"
276
+ ),
277
+ children: /* @__PURE__ */ n("span", { className: "h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform" })
278
+ }
279
+ ),
280
+ t && /* @__PURE__ */ n("span", { className: "text-sm text-fg", children: t })
281
+ ]
282
+ }
283
+ );
284
+ }
285
+ );
286
+ ve.displayName = "Radio";
287
+ const xe = N(
288
+ "w-full appearance-none bg-bg text-fg border transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1 ring-offset-bg disabled:opacity-50 disabled:pointer-events-none rounded-md pr-9",
289
+ {
290
+ variants: {
291
+ size: {
292
+ sm: "h-8 pl-3 text-sm",
293
+ md: "h-10 pl-3 text-md",
294
+ lg: "h-12 pl-4 text-lg"
295
+ },
296
+ invalid: {
297
+ true: "border-danger focus-visible:ring-danger",
298
+ false: "border-border-strong"
299
+ }
300
+ },
301
+ defaultVariants: { size: "md", invalid: !1 }
302
+ }
303
+ ), we = d(
304
+ ({ className: e, size: r, invalid: t, children: a, ...o }, s) => /* @__PURE__ */ f("div", { className: "relative inline-flex w-full items-center", children: [
305
+ /* @__PURE__ */ n(
306
+ "select",
307
+ {
308
+ ref: s,
309
+ className: i(xe({ size: r, invalid: t }), e),
310
+ ...o,
311
+ children: a
312
+ }
313
+ ),
314
+ /* @__PURE__ */ n(
315
+ "svg",
316
+ {
317
+ viewBox: "0 0 16 16",
318
+ className: "pointer-events-none absolute right-3 h-4 w-4 text-fg-muted",
319
+ fill: "none",
320
+ stroke: "currentColor",
321
+ strokeWidth: "1.75",
322
+ strokeLinecap: "round",
323
+ strokeLinejoin: "round",
324
+ "aria-hidden": !0,
325
+ children: /* @__PURE__ */ n("path", { d: "M4 6l4 4 4-4" })
326
+ }
327
+ )
328
+ ] })
329
+ );
330
+ we.displayName = "Select";
331
+ const R = C(null);
332
+ function T() {
333
+ const e = v(R);
334
+ if (!e) throw new Error("Componentes de Dropdown precisam estar dentro de <Dropdown>");
335
+ return e;
336
+ }
337
+ function Ze({ children: e }) {
338
+ const [r, t] = b(!1), a = k(null);
339
+ return y(() => {
340
+ if (!r) return;
341
+ const o = (l) => {
342
+ a.current && !a.current.contains(l.target) && t(!1);
343
+ }, s = (l) => {
344
+ l.key === "Escape" && t(!1);
345
+ };
346
+ return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
347
+ document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
348
+ };
349
+ }, [r]), /* @__PURE__ */ n(R.Provider, { value: { open: r, setOpen: t }, children: /* @__PURE__ */ n("div", { ref: a, className: "relative inline-block text-left", children: e }) });
350
+ }
351
+ function er({ children: e }) {
352
+ const { open: r, setOpen: t } = T();
353
+ return I(e, {
354
+ onClick: () => t(!r),
355
+ "aria-haspopup": "menu",
356
+ "aria-expanded": r
357
+ });
358
+ }
359
+ function rr({
360
+ children: e,
361
+ align: r = "start",
362
+ className: t
363
+ }) {
364
+ const { open: a } = T();
365
+ return a ? /* @__PURE__ */ n(
366
+ "div",
367
+ {
368
+ role: "menu",
369
+ className: i(
370
+ "absolute z-50 mt-1 min-w-44 rounded-md border border-border-default bg-bg p-1 shadow-md",
371
+ r === "end" ? "right-0" : "left-0",
372
+ t
373
+ ),
374
+ children: e
375
+ }
376
+ ) : null;
377
+ }
378
+ function tr({
379
+ children: e,
380
+ onSelect: r,
381
+ destructive: t,
382
+ className: a,
383
+ ...o
384
+ }) {
385
+ const { setOpen: s } = T();
386
+ return /* @__PURE__ */ n(
387
+ "button",
388
+ {
389
+ type: "button",
390
+ role: "menuitem",
391
+ onClick: () => {
392
+ r == null || r(), s(!1);
393
+ },
394
+ 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",
398
+ a
399
+ ),
400
+ ...o,
401
+ children: e
402
+ }
403
+ );
404
+ }
405
+ function ar() {
406
+ return /* @__PURE__ */ n("div", { role: "separator", className: "my-1 h-px bg-border-default" });
407
+ }
408
+ const ye = N(
409
+ "inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-full",
410
+ {
411
+ variants: {
412
+ variant: {
413
+ neutral: "bg-bg-muted text-fg",
414
+ primary: "bg-brand-500 text-fg-on-brand",
415
+ accent: "bg-accent-subtle text-accent-fg",
416
+ "accent-bold": "bg-accent text-accent-fg",
417
+ success: "bg-accent text-accent-fg",
418
+ warning: "bg-warning/35 text-fg",
419
+ danger: "bg-danger/10 text-danger",
420
+ outline: "border border-border-strong text-fg"
421
+ },
422
+ size: {
423
+ sm: "px-2 py-0.5 text-xs",
424
+ md: "px-2.5 py-0.5 text-sm"
425
+ }
426
+ },
427
+ defaultVariants: { variant: "neutral", size: "sm" }
428
+ }
429
+ ), F = d(
430
+ ({ className: e, variant: r, size: t, ...a }, o) => /* @__PURE__ */ n(
431
+ "span",
432
+ {
433
+ ref: o,
434
+ className: i(ye({ variant: r, size: t }), e),
435
+ ...a
436
+ }
437
+ )
438
+ );
439
+ F.displayName = "Badge";
440
+ const Ce = N("relative inline-flex shrink-0 select-none", {
441
+ variants: {
442
+ size: {
443
+ xs: "h-6 w-6 text-xs",
444
+ sm: "h-8 w-8 text-sm",
445
+ md: "h-10 w-10 text-md",
446
+ lg: "h-12 w-12 text-lg",
447
+ xl: "h-16 w-16 text-xl"
448
+ }
449
+ },
450
+ defaultVariants: { size: "md" }
451
+ }), Ne = {
452
+ online: "bg-accent",
453
+ busy: "bg-danger",
454
+ away: "bg-warning",
455
+ offline: "bg-border-strong"
456
+ }, Ve = {
457
+ xs: "h-1.5 w-1.5",
458
+ sm: "h-2 w-2",
459
+ md: "h-2.5 w-2.5",
460
+ lg: "h-3 w-3",
461
+ xl: "h-3.5 w-3.5"
462
+ };
463
+ function ke(e) {
464
+ return e ? e.trim().split(/\s+/).slice(0, 2).map((r) => {
465
+ var t;
466
+ return ((t = r[0]) == null ? void 0 : t.toUpperCase()) ?? "";
467
+ }).join("") : "";
468
+ }
469
+ const ze = d(
470
+ ({ className: e, size: r = "md", src: t, alt: a, name: o, status: s, ...l }, c) => {
471
+ const [u, p] = b(!1), m = t && !u;
472
+ return /* @__PURE__ */ f("span", { ref: c, className: i(Ce({ size: r }), e), ...l, children: [
473
+ /* @__PURE__ */ n("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__ */ n(
474
+ "img",
475
+ {
476
+ src: t,
477
+ alt: a ?? o ?? "",
478
+ className: "h-full w-full object-cover",
479
+ onError: () => p(!0)
480
+ }
481
+ ) : /* @__PURE__ */ n("span", { "aria-hidden": !0, children: ke(o) }) }),
482
+ s && /* @__PURE__ */ n(
483
+ "span",
484
+ {
485
+ "aria-label": s,
486
+ className: i(
487
+ "absolute bottom-[8%] right-[8%] rounded-full ring-2 ring-bg",
488
+ Ne[s],
489
+ Ve[r ?? "md"]
490
+ )
491
+ }
492
+ )
493
+ ] });
494
+ }
495
+ );
496
+ ze.displayName = "Avatar";
497
+ const Te = N("animate-spin text-primary", {
498
+ variants: {
499
+ size: {
500
+ sm: "h-4 w-4",
501
+ md: "h-6 w-6",
502
+ lg: "h-8 w-8"
503
+ }
504
+ },
505
+ defaultVariants: { size: "md" }
506
+ }), Ee = d(
507
+ ({ className: e, size: r, label: t = "Carregando", ...a }, o) => /* @__PURE__ */ f(
508
+ "svg",
509
+ {
510
+ ref: o,
511
+ viewBox: "0 0 24 24",
512
+ fill: "none",
513
+ role: "status",
514
+ "aria-label": t,
515
+ className: i(Te({ size: r }), e),
516
+ ...a,
517
+ children: [
518
+ /* @__PURE__ */ n("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", className: "opacity-20" }),
519
+ /* @__PURE__ */ n(
520
+ "path",
521
+ {
522
+ d: "M12 2a10 10 0 0 1 10 10",
523
+ stroke: "currentColor",
524
+ strokeWidth: "3",
525
+ strokeLinecap: "round"
526
+ }
527
+ )
528
+ ]
529
+ }
530
+ )
531
+ );
532
+ Ee.displayName = "Spinner";
533
+ const Me = d(
534
+ ({ className: e, value: r = 0, max: t = 100, indeterminate: a, ...o }, s) => {
535
+ const l = Math.min(100, Math.max(0, r / t * 100));
536
+ return /* @__PURE__ */ n(
537
+ "div",
538
+ {
539
+ ref: s,
540
+ role: "progressbar",
541
+ "aria-valuemin": 0,
542
+ "aria-valuemax": t,
543
+ "aria-valuenow": a ? void 0 : r,
544
+ className: i(
545
+ "relative h-2 w-full overflow-hidden rounded-full bg-bg-muted",
546
+ e
547
+ ),
548
+ ...o,
549
+ children: a ? /* @__PURE__ */ n("div", { className: "absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]" }) : /* @__PURE__ */ n(
550
+ "div",
551
+ {
552
+ className: "h-full rounded-full bg-primary transition-[width] duration-300",
553
+ style: { width: `${l}%` }
554
+ }
555
+ )
556
+ }
557
+ );
558
+ }
559
+ );
560
+ Me.displayName = "Progress";
561
+ const De = d(
562
+ ({ className: e, orientation: r = "horizontal", label: t, ...a }, o) => r === "vertical" ? /* @__PURE__ */ n(
563
+ "div",
564
+ {
565
+ ref: o,
566
+ role: "separator",
567
+ "aria-orientation": "vertical",
568
+ className: i("mx-2 h-full w-px self-stretch bg-border-default", e),
569
+ ...a
570
+ }
571
+ ) : t ? /* @__PURE__ */ f(
572
+ "div",
573
+ {
574
+ ref: o,
575
+ role: "separator",
576
+ className: i("flex items-center gap-3 text-sm text-fg-muted", e),
577
+ ...a,
578
+ children: [
579
+ /* @__PURE__ */ n("span", { className: "h-px flex-1 bg-border-default" }),
580
+ t,
581
+ /* @__PURE__ */ n("span", { className: "h-px flex-1 bg-border-default" })
582
+ ]
583
+ }
584
+ ) : /* @__PURE__ */ n(
585
+ "div",
586
+ {
587
+ ref: o,
588
+ role: "separator",
589
+ "aria-orientation": "horizontal",
590
+ className: i("h-px w-full bg-border-default", e),
591
+ ...a
592
+ }
593
+ )
594
+ );
595
+ De.displayName = "Divider";
596
+ const Pe = d(
597
+ ({ className: e, children: r, ...t }, a) => {
598
+ const o = Z.toArray(r);
599
+ return /* @__PURE__ */ n("nav", { ref: a, "aria-label": "breadcrumb", className: e, ...t, children: /* @__PURE__ */ n("ol", { className: "flex flex-wrap items-center gap-1.5 text-sm", children: o.map((s, l) => /* @__PURE__ */ f(ee, { children: [
600
+ s,
601
+ l < o.length - 1 && /* @__PURE__ */ n(Le, {})
602
+ ] }, l)) }) });
603
+ }
604
+ );
605
+ Pe.displayName = "Breadcrumb";
606
+ function nr({
607
+ href: e,
608
+ current: r,
609
+ className: t,
610
+ children: a,
611
+ ...o
612
+ }) {
613
+ return /* @__PURE__ */ n("li", { className: i("inline-flex items-center", t), ...o, children: r || !e ? /* @__PURE__ */ n(
614
+ "span",
615
+ {
616
+ "aria-current": r ? "page" : void 0,
617
+ className: i(r ? "font-medium text-fg" : "text-fg-muted"),
618
+ children: a
619
+ }
620
+ ) : /* @__PURE__ */ n(
621
+ "a",
622
+ {
623
+ href: e,
624
+ className: "text-fg-muted transition-colors hover:text-fg hover:underline",
625
+ children: a
626
+ }
627
+ ) });
628
+ }
629
+ function Le() {
630
+ return /* @__PURE__ */ n("li", { "aria-hidden": !0, className: "text-fg-muted", children: "/" });
631
+ }
632
+ function Ae(e, r = 1e3) {
633
+ const [t, a] = b(0);
634
+ return y(() => {
635
+ a(0);
636
+ const o = performance.now(), s = (l) => {
637
+ const c = Math.min((l - o) / r, 1), u = 1 - (1 - c) ** 4;
638
+ a(e * u), c < 1 ? requestAnimationFrame(s) : a(e);
639
+ };
640
+ requestAnimationFrame(s);
641
+ }, [e, r]), t;
642
+ }
643
+ const _e = d(
644
+ ({ className: e, label: r, value: t, countUp: a, formatCount: o, delta: s, helpText: l, icon: c, ...u }, p) => {
645
+ const m = Ae(a ?? 0), g = typeof s == "number", x = g && s >= 0, w = a !== void 0 ? o ? o(m) : Math.round(m).toLocaleString("pt-BR") : t;
646
+ return /* @__PURE__ */ f(
647
+ "div",
648
+ {
649
+ ref: p,
650
+ className: i(
651
+ "flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-bg-subtle p-8 shadow-sm",
652
+ e
653
+ ),
654
+ ...u,
655
+ children: [
656
+ /* @__PURE__ */ f("div", { className: "flex items-center justify-between", children: [
657
+ /* @__PURE__ */ n("span", { className: "text-sm text-fg-muted", children: r }),
658
+ c && /* @__PURE__ */ n("span", { className: "text-fg-muted", children: c })
659
+ ] }),
660
+ /* @__PURE__ */ n("span", { className: "text-3xl font-bold text-fg whitespace-nowrap tabular-nums", children: w }),
661
+ g && /* @__PURE__ */ f(F, { variant: x ? "success" : "danger", size: "sm", className: "self-start", children: [
662
+ x ? "▲" : "▼",
663
+ " ",
664
+ Math.abs(s),
665
+ "%"
666
+ ] }),
667
+ l && /* @__PURE__ */ n("span", { className: "text-xs text-fg-muted", children: l })
668
+ ]
669
+ }
670
+ );
671
+ }
672
+ );
673
+ _e.displayName = "StatCard";
674
+ const Se = N("flex gap-3 rounded-lg p-4 text-sm", {
675
+ variants: {
676
+ variant: {
677
+ info: "bg-primary/10 text-fg",
678
+ success: "bg-success-subtle text-fg",
679
+ warning: "bg-warning/10 text-fg",
680
+ danger: "bg-danger/10 text-fg"
681
+ }
682
+ },
683
+ defaultVariants: { variant: "info" }
684
+ }), Be = {
685
+ info: "text-primary",
686
+ success: "text-success-fg",
687
+ warning: "text-warning",
688
+ danger: "text-danger"
689
+ }, Ie = {
690
+ info: "ℹ",
691
+ success: "✓",
692
+ warning: "!",
693
+ danger: "✕"
694
+ }, je = d(
695
+ ({ className: e, variant: r = "info", title: t, onClose: a, children: o, ...s }, l) => {
696
+ const c = r ?? "info";
697
+ return /* @__PURE__ */ f(
698
+ "div",
699
+ {
700
+ ref: l,
701
+ role: "alert",
702
+ className: i(Se({ variant: r }), e),
703
+ ...s,
704
+ children: [
705
+ /* @__PURE__ */ n(
706
+ "span",
707
+ {
708
+ "aria-hidden": !0,
709
+ className: i(
710
+ "flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-xs font-bold",
711
+ Be[c]
712
+ ),
713
+ children: Ie[c]
714
+ }
715
+ ),
716
+ /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
717
+ t && /* @__PURE__ */ n("div", { className: "font-semibold text-fg", children: t }),
718
+ o && /* @__PURE__ */ n("div", { className: "text-fg-muted", children: o })
719
+ ] }),
720
+ a && /* @__PURE__ */ n(
721
+ "button",
722
+ {
723
+ type: "button",
724
+ onClick: a,
725
+ "aria-label": "Fechar",
726
+ className: "shrink-0 rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
727
+ children: "✕"
728
+ }
729
+ )
730
+ ]
731
+ }
732
+ );
733
+ }
734
+ );
735
+ je.displayName = "Alert";
736
+ function Re({
737
+ value: e,
738
+ defaultValue: r,
739
+ onChange: t
740
+ }) {
741
+ const a = e !== void 0, [o, s] = b(r), l = a ? e : o, c = V(
742
+ (u) => {
743
+ a || s(u), t == null || t(u);
744
+ },
745
+ [a, t]
746
+ );
747
+ return [l, c];
748
+ }
749
+ const H = C(null);
750
+ function E() {
751
+ const e = v(H);
752
+ if (!e) throw new Error("Componentes de Tabs precisam estar dentro de <Tabs>");
753
+ return e;
754
+ }
755
+ function or({
756
+ value: e,
757
+ defaultValue: r,
758
+ onValueChange: t,
759
+ className: a,
760
+ children: o,
761
+ ...s
762
+ }) {
763
+ const [l, c] = Re({
764
+ value: e,
765
+ defaultValue: r ?? "",
766
+ onChange: t
767
+ });
768
+ return /* @__PURE__ */ n(H.Provider, { value: { value: l, setValue: c }, children: /* @__PURE__ */ n("div", { className: a, ...s, children: o }) });
769
+ }
770
+ function lr({ className: e, children: r, ...t }) {
771
+ const { value: a } = E(), o = k(null), [s, l] = b({ left: 0, width: 0, ready: !1 });
772
+ return y(() => {
773
+ const c = o.current;
774
+ if (!c) return;
775
+ const u = c.querySelector('[aria-selected="true"]');
776
+ u && l({ left: u.offsetLeft, width: u.offsetWidth, ready: !0 });
777
+ }, [a]), /* @__PURE__ */ f(
778
+ "div",
779
+ {
780
+ ref: o,
781
+ role: "tablist",
782
+ className: i("relative flex items-center gap-1 border-b border-border-default", e),
783
+ ...t,
784
+ children: [
785
+ r,
786
+ s.ready && /* @__PURE__ */ n(
787
+ "span",
788
+ {
789
+ "aria-hidden": !0,
790
+ className: "pointer-events-none absolute bottom-[-1px] h-[2px] rounded-full bg-primary transition-all duration-250 ease-out",
791
+ style: { left: s.left, width: s.width }
792
+ }
793
+ )
794
+ ]
795
+ }
796
+ );
797
+ }
798
+ function sr({ value: e, className: r, ...t }) {
799
+ const a = E(), o = a.value === e;
800
+ return /* @__PURE__ */ n(
801
+ "button",
802
+ {
803
+ type: "button",
804
+ role: "tab",
805
+ "aria-selected": o,
806
+ onClick: () => a.setValue(e),
807
+ className: i(
808
+ "px-4 py-2 text-sm font-medium transition-colors outline-none",
809
+ "focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg",
810
+ o ? "text-fg" : "text-fg-muted hover:text-fg",
811
+ r
812
+ ),
813
+ ...t
814
+ }
815
+ );
816
+ }
817
+ function ir({ value: e, className: r, ...t }) {
818
+ return E().value !== e ? null : /* @__PURE__ */ n(
819
+ "div",
820
+ {
821
+ role: "tabpanel",
822
+ className: i("pt-4 animate-[flui-slide-up_200ms_ease-out]", r),
823
+ ...t
824
+ }
825
+ );
826
+ }
827
+ const W = C(null), M = C("");
828
+ function K() {
829
+ const e = v(W);
830
+ if (!e) throw new Error("Componentes de Accordion precisam estar dentro de <Accordion>");
831
+ return e;
832
+ }
833
+ function cr({
834
+ type: e = "single",
835
+ defaultValue: r,
836
+ className: t,
837
+ children: a,
838
+ ...o
839
+ }) {
840
+ const s = r ? Array.isArray(r) ? r : [r] : [], [l, c] = b(s), u = (p) => c((m) => {
841
+ const g = m.includes(p);
842
+ return e === "single" ? g ? [] : [p] : g ? m.filter((x) => x !== p) : [...m, p];
843
+ });
844
+ return /* @__PURE__ */ n(W.Provider, { value: { open: l, toggle: u }, children: /* @__PURE__ */ n(
845
+ "div",
846
+ {
847
+ className: i("border-y border-border-default divide-y divide-border-default", t),
848
+ ...o,
849
+ children: a
850
+ }
851
+ ) });
852
+ }
853
+ function ur({ value: e, children: r, ...t }) {
854
+ return /* @__PURE__ */ n(M.Provider, { value: e, children: /* @__PURE__ */ n("div", { ...t, children: r }) });
855
+ }
856
+ function fr({
857
+ className: e,
858
+ children: r,
859
+ ...t
860
+ }) {
861
+ const a = K(), o = v(M), s = a.open.includes(o);
862
+ return /* @__PURE__ */ f(
863
+ "button",
864
+ {
865
+ type: "button",
866
+ "aria-expanded": s,
867
+ onClick: () => a.toggle(o),
868
+ className: i(
869
+ "flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none",
870
+ "focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg",
871
+ e
872
+ ),
873
+ ...t,
874
+ children: [
875
+ r,
876
+ /* @__PURE__ */ n("span", { className: i("text-fg-muted transition-transform", s && "rotate-180"), children: "▾" })
877
+ ]
878
+ }
879
+ );
880
+ }
881
+ function dr({
882
+ className: e,
883
+ ...r
884
+ }) {
885
+ const t = K(), a = v(M);
886
+ return t.open.includes(a) ? /* @__PURE__ */ n("div", { className: i("pb-4 text-sm text-fg-muted", e), ...r }) : null;
887
+ }
888
+ const Fe = {
889
+ top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
890
+ bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
891
+ left: "right-full top-1/2 -translate-y-1/2 mr-2",
892
+ right: "left-full top-1/2 -translate-y-1/2 ml-2"
893
+ };
894
+ function mr({ content: e, side: r = "top", children: t, className: a }) {
895
+ const [o, s] = b(!1), l = B();
896
+ return /* @__PURE__ */ f(
897
+ "span",
898
+ {
899
+ className: "relative inline-flex",
900
+ onMouseEnter: () => s(!0),
901
+ onMouseLeave: () => s(!1),
902
+ onFocus: () => s(!0),
903
+ onBlur: () => s(!1),
904
+ children: [
905
+ /* @__PURE__ */ n("span", { "aria-describedby": o ? l : void 0, children: t }),
906
+ o && /* @__PURE__ */ n(
907
+ "span",
908
+ {
909
+ role: "tooltip",
910
+ id: l,
911
+ className: i(
912
+ "pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-fg px-2 py-1 text-xs text-bg shadow-md",
913
+ "animate-[flui-fade-in_120ms_ease-out]",
914
+ Fe[r],
915
+ a
916
+ ),
917
+ children: e
918
+ }
919
+ )
920
+ ]
921
+ }
922
+ );
923
+ }
924
+ const q = C(null);
925
+ function G() {
926
+ const e = v(q);
927
+ if (!e) throw new Error("Componentes de Popover precisam estar dentro de <Popover>");
928
+ return e;
929
+ }
930
+ function pr({ children: e }) {
931
+ const [r, t] = b(!1), a = k(null);
932
+ return y(() => {
933
+ if (!r) return;
934
+ const o = (l) => {
935
+ a.current && !a.current.contains(l.target) && t(!1);
936
+ }, s = (l) => l.key === "Escape" && t(!1);
937
+ return document.addEventListener("mousedown", o), document.addEventListener("keydown", s), () => {
938
+ document.removeEventListener("mousedown", o), document.removeEventListener("keydown", s);
939
+ };
940
+ }, [r]), /* @__PURE__ */ n(q.Provider, { value: { open: r, setOpen: t }, children: /* @__PURE__ */ n("div", { ref: a, className: "relative inline-block", children: e }) });
941
+ }
942
+ function gr({ children: e }) {
943
+ const { open: r, setOpen: t } = G();
944
+ return I(e, {
945
+ onClick: () => t(!r),
946
+ "aria-haspopup": "dialog",
947
+ "aria-expanded": r
948
+ });
949
+ }
950
+ function br({
951
+ children: e,
952
+ align: r = "start",
953
+ className: t
954
+ }) {
955
+ const { open: a } = G();
956
+ return a ? /* @__PURE__ */ n(
957
+ "div",
958
+ {
959
+ role: "dialog",
960
+ className: i(
961
+ "absolute z-50 mt-2 min-w-56 rounded-lg border border-border-default bg-bg p-4 shadow-lg",
962
+ "animate-[flui-slide-up_140ms_ease-out]",
963
+ r === "end" ? "right-0" : "left-0",
964
+ t
965
+ ),
966
+ children: e
967
+ }
968
+ ) : null;
969
+ }
970
+ function D({ children: e }) {
971
+ const [r, t] = b(!1);
972
+ return y(() => t(!0), []), r ? ne(e, document.body) : null;
973
+ }
974
+ function O(e, r) {
975
+ y(() => {
976
+ if (!e) return;
977
+ const t = (o) => o.key === "Escape" && r(), a = document.body.style.overflow;
978
+ return document.body.style.overflow = "hidden", document.addEventListener("keydown", t), () => {
979
+ document.body.style.overflow = a, document.removeEventListener("keydown", t);
980
+ };
981
+ }, [e, r]);
982
+ }
983
+ const U = C(null);
984
+ function hr({ open: e, onOpenChange: r, children: t }) {
985
+ const a = () => r == null ? void 0 : r(!1);
986
+ return O(e, a), e ? /* @__PURE__ */ n(D, { children: /* @__PURE__ */ n(U.Provider, { value: { close: a }, children: /* @__PURE__ */ f("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
987
+ /* @__PURE__ */ n(
988
+ "div",
989
+ {
990
+ className: "absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]",
991
+ onClick: a
992
+ }
993
+ ),
994
+ t
995
+ ] }) }) }) : null;
996
+ }
997
+ function vr({
998
+ className: e,
999
+ children: r,
1000
+ ...t
1001
+ }) {
1002
+ const a = v(U);
1003
+ return /* @__PURE__ */ f(
1004
+ "div",
1005
+ {
1006
+ role: "dialog",
1007
+ "aria-modal": "true",
1008
+ className: i(
1009
+ "relative z-10 w-full max-w-lg rounded-xl border border-border-default bg-bg shadow-lg",
1010
+ "animate-[flui-slide-up_160ms_ease-out]",
1011
+ e
1012
+ ),
1013
+ ...t,
1014
+ children: [
1015
+ r,
1016
+ /* @__PURE__ */ n(
1017
+ "button",
1018
+ {
1019
+ type: "button",
1020
+ onClick: () => a == null ? void 0 : a.close(),
1021
+ "aria-label": "Fechar",
1022
+ className: "absolute right-4 top-4 rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
1023
+ children: "✕"
1024
+ }
1025
+ )
1026
+ ]
1027
+ }
1028
+ );
1029
+ }
1030
+ function xr({ className: e, ...r }) {
1031
+ return /* @__PURE__ */ n("div", { className: i("flex flex-col gap-1 p-6 pb-2", e), ...r });
1032
+ }
1033
+ function wr({ className: e, ...r }) {
1034
+ return /* @__PURE__ */ n("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1035
+ }
1036
+ function yr({
1037
+ className: e,
1038
+ ...r
1039
+ }) {
1040
+ return /* @__PURE__ */ n("p", { className: i("text-sm text-fg-muted", e), ...r });
1041
+ }
1042
+ function Cr({ className: e, ...r }) {
1043
+ return /* @__PURE__ */ n("div", { className: i("px-6 py-2", e), ...r });
1044
+ }
1045
+ function Nr({ className: e, ...r }) {
1046
+ return /* @__PURE__ */ n("div", { className: i("flex justify-end gap-2 p-6 pt-4", e), ...r });
1047
+ }
1048
+ const Y = C(null), He = {
1049
+ left: "left-0 top-0 h-full w-[420px] max-w-[96vw] border-r",
1050
+ right: "right-0 top-0 h-full w-[420px] max-w-[96vw] border-l",
1051
+ top: "top-0 left-0 w-full max-h-[90vh] border-b",
1052
+ bottom: "bottom-0 left-0 w-full max-h-[90vh] border-t"
1053
+ };
1054
+ function Vr({ open: e, onOpenChange: r, side: t = "right", children: a }) {
1055
+ const o = () => r == null ? void 0 : r(!1);
1056
+ return O(e, o), e ? /* @__PURE__ */ n(D, { children: /* @__PURE__ */ n(Y.Provider, { value: { close: o, side: t }, children: /* @__PURE__ */ f("div", { className: "fixed inset-0 z-50", children: [
1057
+ /* @__PURE__ */ n(
1058
+ "div",
1059
+ {
1060
+ className: "absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]",
1061
+ onClick: o
1062
+ }
1063
+ ),
1064
+ a
1065
+ ] }) }) }) : null;
1066
+ }
1067
+ function kr({
1068
+ className: e,
1069
+ children: r,
1070
+ ...t
1071
+ }) {
1072
+ const a = v(Y), o = (a == null ? void 0 : a.side) ?? "right";
1073
+ return /* @__PURE__ */ f(
1074
+ "div",
1075
+ {
1076
+ role: "dialog",
1077
+ "aria-modal": "true",
1078
+ className: i(
1079
+ "absolute z-10 flex flex-col border-border-default bg-bg shadow-lg",
1080
+ "animate-[flui-fade-in_160ms_ease-out]",
1081
+ He[o],
1082
+ e
1083
+ ),
1084
+ ...t,
1085
+ children: [
1086
+ r,
1087
+ /* @__PURE__ */ n(
1088
+ "button",
1089
+ {
1090
+ type: "button",
1091
+ onClick: () => a == null ? void 0 : a.close(),
1092
+ "aria-label": "Fechar",
1093
+ className: "absolute right-4 top-4 rounded-sm px-1 text-fg-muted transition-colors hover:text-fg",
1094
+ children: "✕"
1095
+ }
1096
+ )
1097
+ ]
1098
+ }
1099
+ );
1100
+ }
1101
+ function zr({ className: e, ...r }) {
1102
+ return /* @__PURE__ */ n(
1103
+ "div",
1104
+ {
1105
+ className: i("flex flex-col gap-1 border-b border-border-default p-6", e),
1106
+ ...r
1107
+ }
1108
+ );
1109
+ }
1110
+ function Tr({ className: e, ...r }) {
1111
+ return /* @__PURE__ */ n("h2", { className: i("text-lg font-semibold text-fg", e), ...r });
1112
+ }
1113
+ function Er({ className: e, ...r }) {
1114
+ return /* @__PURE__ */ n("div", { className: i("flex-1 overflow-y-auto p-6", e), ...r });
1115
+ }
1116
+ function Mr({ className: e, ...r }) {
1117
+ return /* @__PURE__ */ n(
1118
+ "div",
1119
+ {
1120
+ className: i("flex justify-end gap-2 border-t border-border-default p-6", e),
1121
+ ...r
1122
+ }
1123
+ );
1124
+ }
1125
+ const $ = C(null), z = {
1126
+ info: { wrapper: "bg-brand-100 border-l-primary", title: "text-fg", description: "text-fg-muted" },
1127
+ success: { wrapper: "bg-success-subtle border-l-success", title: "text-success-fg", description: "text-success-fg/70" },
1128
+ warning: { wrapper: "bg-warning/15 border-l-warning", title: "text-fg", description: "text-fg-muted" },
1129
+ danger: { wrapper: "bg-danger/10 border-l-danger", title: "text-danger", description: "text-danger/70" }
1130
+ };
1131
+ function Dr({ children: e }) {
1132
+ const [r, t] = b([]), a = k(0), o = V((l) => {
1133
+ t((c) => c.filter((u) => u.id !== l));
1134
+ }, []), s = V((l) => {
1135
+ const c = ++a.current;
1136
+ return t((u) => [...u, { id: c, variant: "info", duration: 4e3, ...l }]), c;
1137
+ }, []);
1138
+ return /* @__PURE__ */ f($.Provider, { value: { toast: s, dismiss: o }, children: [
1139
+ e,
1140
+ /* @__PURE__ */ n(D, { children: /* @__PURE__ */ n("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__ */ n(We, { item: l, onDismiss: () => o(l.id) }, l.id)) }) })
1141
+ ] });
1142
+ }
1143
+ function We({ item: e, onDismiss: r }) {
1144
+ return y(() => {
1145
+ if (!e.duration) return;
1146
+ const t = setTimeout(r, e.duration);
1147
+ return () => clearTimeout(t);
1148
+ }, [e.duration, r]), /* @__PURE__ */ f(
1149
+ "div",
1150
+ {
1151
+ role: "status",
1152
+ className: i(
1153
+ "pointer-events-auto flex items-start gap-3 rounded-lg border-l-4 p-4 shadow-md",
1154
+ "animate-[flui-slide-up_160ms_ease-out]",
1155
+ z[e.variant ?? "info"].wrapper
1156
+ ),
1157
+ children: [
1158
+ /* @__PURE__ */ f("div", { className: "min-w-0 flex-1", children: [
1159
+ /* @__PURE__ */ n("div", { className: i("text-sm font-semibold", z[e.variant ?? "info"].title), children: e.title }),
1160
+ e.description && /* @__PURE__ */ n("div", { className: i("mt-0.5 text-sm", z[e.variant ?? "info"].description), children: e.description })
1161
+ ] }),
1162
+ /* @__PURE__ */ n(
1163
+ "button",
1164
+ {
1165
+ type: "button",
1166
+ onClick: r,
1167
+ "aria-label": "Fechar",
1168
+ className: i("shrink-0 rounded-sm px-1 transition-colors opacity-60 hover:opacity-100", z[e.variant ?? "info"].title),
1169
+ children: "✕"
1170
+ }
1171
+ )
1172
+ ]
1173
+ }
1174
+ );
1175
+ }
1176
+ function Pr() {
1177
+ const e = v($);
1178
+ if (!e) throw new Error("useToast precisa estar dentro de <ToastProvider>");
1179
+ return e;
1180
+ }
1181
+ const Ke = N(
1182
+ "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
+ {
1184
+ variants: {
1185
+ invalid: {
1186
+ true: "border-danger!",
1187
+ false: ""
1188
+ }
1189
+ },
1190
+ defaultVariants: { invalid: !1 }
1191
+ }
1192
+ ), qe = d(
1193
+ ({ className: e, invalid: r, ...t }, a) => /* @__PURE__ */ n(
1194
+ "textarea",
1195
+ {
1196
+ ref: a,
1197
+ className: i(Ke({ invalid: r }), e),
1198
+ ...t
1199
+ }
1200
+ )
1201
+ );
1202
+ qe.displayName = "Textarea";
1203
+ const J = C(null), A = "flui-color-mode", _ = "flui-brand";
1204
+ function Ge() {
1205
+ var e;
1206
+ return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-color-scheme: dark)").matches);
1207
+ }
1208
+ function S(e, r) {
1209
+ try {
1210
+ return localStorage.getItem(e) ?? r;
1211
+ } catch {
1212
+ return r;
1213
+ }
1214
+ }
1215
+ function Lr({
1216
+ children: e,
1217
+ defaultMode: r = "system",
1218
+ defaultBrand: t = "default",
1219
+ target: a
1220
+ }) {
1221
+ const [o, s] = b(
1222
+ () => S(A, r)
1223
+ ), [l, c] = b(
1224
+ () => S(_, t)
1225
+ ), [u, p] = b(Ge);
1226
+ y(() => {
1227
+ var L;
1228
+ const h = (L = window.matchMedia) == null ? void 0 : L.call(window, "(prefers-color-scheme: dark)");
1229
+ if (!h) return;
1230
+ const P = (X) => p(X.matches);
1231
+ return h.addEventListener("change", P), () => h.removeEventListener("change", P);
1232
+ }, []);
1233
+ const m = o === "system" ? u ? "dark" : "light" : o;
1234
+ y(() => {
1235
+ const h = (a == null ? void 0 : a()) ?? document.documentElement;
1236
+ h.setAttribute("data-theme", m), l && l !== "default" ? h.setAttribute("data-brand", l) : h.removeAttribute("data-brand");
1237
+ }, [m, l, a]);
1238
+ const g = V((h) => {
1239
+ s(h);
1240
+ try {
1241
+ localStorage.setItem(A, h);
1242
+ } catch {
1243
+ }
1244
+ }, []), x = V((h) => {
1245
+ c(h);
1246
+ try {
1247
+ localStorage.setItem(_, h);
1248
+ } catch {
1249
+ }
1250
+ }, []), w = V(() => {
1251
+ g(m === "dark" ? "light" : "dark");
1252
+ }, [m, g]), Q = re(
1253
+ () => ({ mode: o, resolvedMode: m, brand: l, setMode: g, setBrand: x, toggleMode: w }),
1254
+ [o, m, l, g, x, w]
1255
+ );
1256
+ return /* @__PURE__ */ n(J.Provider, { value: Q, children: e });
1257
+ }
1258
+ function Ar() {
1259
+ const e = v(J);
1260
+ if (!e)
1261
+ throw new Error("useTheme precisa estar dentro de <ThemeProvider>");
1262
+ return e;
1263
+ }
1264
+ const _r = [
1265
+ {
1266
+ name: "flui-color-accent-scale-50",
1267
+ cssVar: "--flui-color-accent-scale-50",
1268
+ path: [
1269
+ "color",
1270
+ "accent-scale",
1271
+ "50"
1272
+ ],
1273
+ group: "color",
1274
+ value: "#f9ffe0",
1275
+ isColor: !0,
1276
+ reference: null
1277
+ },
1278
+ {
1279
+ name: "flui-color-accent-scale-100",
1280
+ cssVar: "--flui-color-accent-scale-100",
1281
+ path: [
1282
+ "color",
1283
+ "accent-scale",
1284
+ "100"
1285
+ ],
1286
+ group: "color",
1287
+ value: "#f3ffb8",
1288
+ isColor: !0,
1289
+ reference: null
1290
+ },
1291
+ {
1292
+ name: "flui-color-accent-scale-200",
1293
+ cssVar: "--flui-color-accent-scale-200",
1294
+ path: [
1295
+ "color",
1296
+ "accent-scale",
1297
+ "200"
1298
+ ],
1299
+ group: "color",
1300
+ value: "#e8ff80",
1301
+ isColor: !0,
1302
+ reference: null
1303
+ },
1304
+ {
1305
+ name: "flui-color-accent-scale-300",
1306
+ cssVar: "--flui-color-accent-scale-300",
1307
+ path: [
1308
+ "color",
1309
+ "accent-scale",
1310
+ "300"
1311
+ ],
1312
+ group: "color",
1313
+ value: "#dcff45",
1314
+ isColor: !0,
1315
+ reference: null
1316
+ },
1317
+ {
1318
+ name: "flui-color-accent-scale-400",
1319
+ cssVar: "--flui-color-accent-scale-400",
1320
+ path: [
1321
+ "color",
1322
+ "accent-scale",
1323
+ "400"
1324
+ ],
1325
+ group: "color",
1326
+ value: "#d7ff15",
1327
+ isColor: !0,
1328
+ reference: null
1329
+ },
1330
+ {
1331
+ name: "flui-color-accent-scale-500",
1332
+ cssVar: "--flui-color-accent-scale-500",
1333
+ path: [
1334
+ "color",
1335
+ "accent-scale",
1336
+ "500"
1337
+ ],
1338
+ group: "color",
1339
+ value: "#c4eb00",
1340
+ isColor: !0,
1341
+ reference: null
1342
+ },
1343
+ {
1344
+ name: "flui-color-accent-scale-600",
1345
+ cssVar: "--flui-color-accent-scale-600",
1346
+ path: [
1347
+ "color",
1348
+ "accent-scale",
1349
+ "600"
1350
+ ],
1351
+ group: "color",
1352
+ value: "#afd100",
1353
+ isColor: !0,
1354
+ reference: null
1355
+ },
1356
+ {
1357
+ name: "flui-color-accent-scale-700",
1358
+ cssVar: "--flui-color-accent-scale-700",
1359
+ path: [
1360
+ "color",
1361
+ "accent-scale",
1362
+ "700"
1363
+ ],
1364
+ group: "color",
1365
+ value: "#8ab000",
1366
+ isColor: !0,
1367
+ reference: null
1368
+ },
1369
+ {
1370
+ name: "flui-color-accent-scale-800",
1371
+ cssVar: "--flui-color-accent-scale-800",
1372
+ path: [
1373
+ "color",
1374
+ "accent-scale",
1375
+ "800"
1376
+ ],
1377
+ group: "color",
1378
+ value: "#638000",
1379
+ isColor: !0,
1380
+ reference: null
1381
+ },
1382
+ {
1383
+ name: "flui-color-accent-scale-900",
1384
+ cssVar: "--flui-color-accent-scale-900",
1385
+ path: [
1386
+ "color",
1387
+ "accent-scale",
1388
+ "900"
1389
+ ],
1390
+ group: "color",
1391
+ value: "#1a2200",
1392
+ isColor: !0,
1393
+ reference: null
1394
+ },
1395
+ {
1396
+ name: "flui-color-brand-50",
1397
+ cssVar: "--flui-color-brand-50",
1398
+ path: [
1399
+ "color",
1400
+ "brand",
1401
+ "50"
1402
+ ],
1403
+ group: "color",
1404
+ value: "#e8eeff",
1405
+ isColor: !0,
1406
+ reference: null
1407
+ },
1408
+ {
1409
+ name: "flui-color-brand-100",
1410
+ cssVar: "--flui-color-brand-100",
1411
+ path: [
1412
+ "color",
1413
+ "brand",
1414
+ "100"
1415
+ ],
1416
+ group: "color",
1417
+ value: "#ccd5ff",
1418
+ isColor: !0,
1419
+ reference: null
1420
+ },
1421
+ {
1422
+ name: "flui-color-brand-200",
1423
+ cssVar: "--flui-color-brand-200",
1424
+ path: [
1425
+ "color",
1426
+ "brand",
1427
+ "200"
1428
+ ],
1429
+ group: "color",
1430
+ value: "#99abff",
1431
+ isColor: !0,
1432
+ reference: null
1433
+ },
1434
+ {
1435
+ name: "flui-color-brand-300",
1436
+ cssVar: "--flui-color-brand-300",
1437
+ path: [
1438
+ "color",
1439
+ "brand",
1440
+ "300"
1441
+ ],
1442
+ group: "color",
1443
+ value: "#6680ff",
1444
+ isColor: !0,
1445
+ reference: null
1446
+ },
1447
+ {
1448
+ name: "flui-color-brand-400",
1449
+ cssVar: "--flui-color-brand-400",
1450
+ path: [
1451
+ "color",
1452
+ "brand",
1453
+ "400"
1454
+ ],
1455
+ group: "color",
1456
+ value: "#3355ff",
1457
+ isColor: !0,
1458
+ reference: null
1459
+ },
1460
+ {
1461
+ name: "flui-color-brand-500",
1462
+ cssVar: "--flui-color-brand-500",
1463
+ path: [
1464
+ "color",
1465
+ "brand",
1466
+ "500"
1467
+ ],
1468
+ group: "color",
1469
+ value: "#0033d6",
1470
+ isColor: !0,
1471
+ reference: null
1472
+ },
1473
+ {
1474
+ name: "flui-color-brand-600",
1475
+ cssVar: "--flui-color-brand-600",
1476
+ path: [
1477
+ "color",
1478
+ "brand",
1479
+ "600"
1480
+ ],
1481
+ group: "color",
1482
+ value: "#0029b0",
1483
+ isColor: !0,
1484
+ reference: null
1485
+ },
1486
+ {
1487
+ name: "flui-color-brand-700",
1488
+ cssVar: "--flui-color-brand-700",
1489
+ path: [
1490
+ "color",
1491
+ "brand",
1492
+ "700"
1493
+ ],
1494
+ group: "color",
1495
+ value: "#001f8a",
1496
+ isColor: !0,
1497
+ reference: null
1498
+ },
1499
+ {
1500
+ name: "flui-color-brand-800",
1501
+ cssVar: "--flui-color-brand-800",
1502
+ path: [
1503
+ "color",
1504
+ "brand",
1505
+ "800"
1506
+ ],
1507
+ group: "color",
1508
+ value: "#001566",
1509
+ isColor: !0,
1510
+ reference: null
1511
+ },
1512
+ {
1513
+ name: "flui-color-brand-900",
1514
+ cssVar: "--flui-color-brand-900",
1515
+ path: [
1516
+ "color",
1517
+ "brand",
1518
+ "900"
1519
+ ],
1520
+ group: "color",
1521
+ value: "#000b42",
1522
+ isColor: !0,
1523
+ reference: null
1524
+ },
1525
+ {
1526
+ name: "flui-color-neutral-0",
1527
+ cssVar: "--flui-color-neutral-0",
1528
+ path: [
1529
+ "color",
1530
+ "neutral",
1531
+ "0"
1532
+ ],
1533
+ group: "color",
1534
+ value: "#ffffff",
1535
+ isColor: !0,
1536
+ reference: null
1537
+ },
1538
+ {
1539
+ name: "flui-color-neutral-50",
1540
+ cssVar: "--flui-color-neutral-50",
1541
+ path: [
1542
+ "color",
1543
+ "neutral",
1544
+ "50"
1545
+ ],
1546
+ group: "color",
1547
+ value: "#f7f8fa",
1548
+ isColor: !0,
1549
+ reference: null
1550
+ },
1551
+ {
1552
+ name: "flui-color-neutral-100",
1553
+ cssVar: "--flui-color-neutral-100",
1554
+ path: [
1555
+ "color",
1556
+ "neutral",
1557
+ "100"
1558
+ ],
1559
+ group: "color",
1560
+ value: "#f3f4f7",
1561
+ isColor: !0,
1562
+ reference: null
1563
+ },
1564
+ {
1565
+ name: "flui-color-neutral-200",
1566
+ cssVar: "--flui-color-neutral-200",
1567
+ path: [
1568
+ "color",
1569
+ "neutral",
1570
+ "200"
1571
+ ],
1572
+ group: "color",
1573
+ value: "#dde1e9",
1574
+ isColor: !0,
1575
+ reference: null
1576
+ },
1577
+ {
1578
+ name: "flui-color-neutral-300",
1579
+ cssVar: "--flui-color-neutral-300",
1580
+ path: [
1581
+ "color",
1582
+ "neutral",
1583
+ "300"
1584
+ ],
1585
+ group: "color",
1586
+ value: "#c2c8d4",
1587
+ isColor: !0,
1588
+ reference: null
1589
+ },
1590
+ {
1591
+ name: "flui-color-neutral-400",
1592
+ cssVar: "--flui-color-neutral-400",
1593
+ path: [
1594
+ "color",
1595
+ "neutral",
1596
+ "400"
1597
+ ],
1598
+ group: "color",
1599
+ value: "#9aa2b4",
1600
+ isColor: !0,
1601
+ reference: null
1602
+ },
1603
+ {
1604
+ name: "flui-color-neutral-500",
1605
+ cssVar: "--flui-color-neutral-500",
1606
+ path: [
1607
+ "color",
1608
+ "neutral",
1609
+ "500"
1610
+ ],
1611
+ group: "color",
1612
+ value: "#6b7385",
1613
+ isColor: !0,
1614
+ reference: null
1615
+ },
1616
+ {
1617
+ name: "flui-color-neutral-600",
1618
+ cssVar: "--flui-color-neutral-600",
1619
+ path: [
1620
+ "color",
1621
+ "neutral",
1622
+ "600"
1623
+ ],
1624
+ group: "color",
1625
+ value: "#4c5263",
1626
+ isColor: !0,
1627
+ reference: null
1628
+ },
1629
+ {
1630
+ name: "flui-color-neutral-700",
1631
+ cssVar: "--flui-color-neutral-700",
1632
+ path: [
1633
+ "color",
1634
+ "neutral",
1635
+ "700"
1636
+ ],
1637
+ group: "color",
1638
+ value: "#363b49",
1639
+ isColor: !0,
1640
+ reference: null
1641
+ },
1642
+ {
1643
+ name: "flui-color-neutral-800",
1644
+ cssVar: "--flui-color-neutral-800",
1645
+ path: [
1646
+ "color",
1647
+ "neutral",
1648
+ "800"
1649
+ ],
1650
+ group: "color",
1651
+ value: "#22262f",
1652
+ isColor: !0,
1653
+ reference: null
1654
+ },
1655
+ {
1656
+ name: "flui-color-neutral-900",
1657
+ cssVar: "--flui-color-neutral-900",
1658
+ path: [
1659
+ "color",
1660
+ "neutral",
1661
+ "900"
1662
+ ],
1663
+ group: "color",
1664
+ value: "#13151b",
1665
+ isColor: !0,
1666
+ reference: null
1667
+ },
1668
+ {
1669
+ name: "flui-color-success-500",
1670
+ cssVar: "--flui-color-success-500",
1671
+ path: [
1672
+ "color",
1673
+ "success",
1674
+ "500"
1675
+ ],
1676
+ group: "color",
1677
+ value: "#1f9d55",
1678
+ isColor: !0,
1679
+ reference: null
1680
+ },
1681
+ {
1682
+ name: "flui-color-success-600",
1683
+ cssVar: "--flui-color-success-600",
1684
+ path: [
1685
+ "color",
1686
+ "success",
1687
+ "600"
1688
+ ],
1689
+ group: "color",
1690
+ value: "#157f43",
1691
+ isColor: !0,
1692
+ reference: null
1693
+ },
1694
+ {
1695
+ name: "flui-color-warning-500",
1696
+ cssVar: "--flui-color-warning-500",
1697
+ path: [
1698
+ "color",
1699
+ "warning",
1700
+ "500"
1701
+ ],
1702
+ group: "color",
1703
+ value: "#d9920a",
1704
+ isColor: !0,
1705
+ reference: null
1706
+ },
1707
+ {
1708
+ name: "flui-color-warning-600",
1709
+ cssVar: "--flui-color-warning-600",
1710
+ path: [
1711
+ "color",
1712
+ "warning",
1713
+ "600"
1714
+ ],
1715
+ group: "color",
1716
+ value: "#b6790a",
1717
+ isColor: !0,
1718
+ reference: null
1719
+ },
1720
+ {
1721
+ name: "flui-color-danger-500",
1722
+ cssVar: "--flui-color-danger-500",
1723
+ path: [
1724
+ "color",
1725
+ "danger",
1726
+ "500"
1727
+ ],
1728
+ group: "color",
1729
+ value: "#e02424",
1730
+ isColor: !0,
1731
+ reference: null
1732
+ },
1733
+ {
1734
+ name: "flui-color-danger-600",
1735
+ cssVar: "--flui-color-danger-600",
1736
+ path: [
1737
+ "color",
1738
+ "danger",
1739
+ "600"
1740
+ ],
1741
+ group: "color",
1742
+ value: "#bd1b1b",
1743
+ isColor: !0,
1744
+ reference: null
1745
+ },
1746
+ {
1747
+ name: "flui-semantic-bg-base",
1748
+ cssVar: "--flui-semantic-bg-base",
1749
+ path: [
1750
+ "semantic",
1751
+ "bg",
1752
+ "base"
1753
+ ],
1754
+ group: "semantic",
1755
+ value: "#ffffff",
1756
+ isColor: !0,
1757
+ reference: "--flui-color-neutral-0"
1758
+ },
1759
+ {
1760
+ name: "flui-semantic-bg-subtle",
1761
+ cssVar: "--flui-semantic-bg-subtle",
1762
+ path: [
1763
+ "semantic",
1764
+ "bg",
1765
+ "subtle"
1766
+ ],
1767
+ group: "semantic",
1768
+ value: "#f7f8fa",
1769
+ isColor: !0,
1770
+ reference: "--flui-color-neutral-50"
1771
+ },
1772
+ {
1773
+ name: "flui-semantic-bg-muted",
1774
+ cssVar: "--flui-semantic-bg-muted",
1775
+ path: [
1776
+ "semantic",
1777
+ "bg",
1778
+ "muted"
1779
+ ],
1780
+ group: "semantic",
1781
+ value: "#f3f4f7",
1782
+ isColor: !0,
1783
+ reference: "--flui-color-neutral-100"
1784
+ },
1785
+ {
1786
+ name: "flui-semantic-fg-default",
1787
+ cssVar: "--flui-semantic-fg-default",
1788
+ path: [
1789
+ "semantic",
1790
+ "fg",
1791
+ "default"
1792
+ ],
1793
+ group: "semantic",
1794
+ value: "#13151b",
1795
+ isColor: !0,
1796
+ reference: "--flui-color-neutral-900"
1797
+ },
1798
+ {
1799
+ name: "flui-semantic-fg-muted",
1800
+ cssVar: "--flui-semantic-fg-muted",
1801
+ path: [
1802
+ "semantic",
1803
+ "fg",
1804
+ "muted"
1805
+ ],
1806
+ group: "semantic",
1807
+ value: "#6b7385",
1808
+ isColor: !0,
1809
+ reference: "--flui-color-neutral-500"
1810
+ },
1811
+ {
1812
+ name: "flui-semantic-fg-on-brand",
1813
+ cssVar: "--flui-semantic-fg-on-brand",
1814
+ path: [
1815
+ "semantic",
1816
+ "fg",
1817
+ "onBrand"
1818
+ ],
1819
+ group: "semantic",
1820
+ value: "#ffffff",
1821
+ isColor: !0,
1822
+ reference: "--flui-color-neutral-0"
1823
+ },
1824
+ {
1825
+ name: "flui-semantic-border-default",
1826
+ cssVar: "--flui-semantic-border-default",
1827
+ path: [
1828
+ "semantic",
1829
+ "border",
1830
+ "default"
1831
+ ],
1832
+ group: "semantic",
1833
+ value: "#dde1e9",
1834
+ isColor: !0,
1835
+ reference: "--flui-color-neutral-200"
1836
+ },
1837
+ {
1838
+ name: "flui-semantic-border-strong",
1839
+ cssVar: "--flui-semantic-border-strong",
1840
+ path: [
1841
+ "semantic",
1842
+ "border",
1843
+ "strong"
1844
+ ],
1845
+ group: "semantic",
1846
+ value: "#c2c8d4",
1847
+ isColor: !0,
1848
+ reference: "--flui-color-neutral-300"
1849
+ },
1850
+ {
1851
+ name: "flui-semantic-primary-default",
1852
+ cssVar: "--flui-semantic-primary-default",
1853
+ path: [
1854
+ "semantic",
1855
+ "primary",
1856
+ "default"
1857
+ ],
1858
+ group: "semantic",
1859
+ value: "#0033d6",
1860
+ isColor: !0,
1861
+ reference: "--flui-color-brand-500"
1862
+ },
1863
+ {
1864
+ name: "flui-semantic-primary-hover",
1865
+ cssVar: "--flui-semantic-primary-hover",
1866
+ path: [
1867
+ "semantic",
1868
+ "primary",
1869
+ "hover"
1870
+ ],
1871
+ group: "semantic",
1872
+ value: "#0029b0",
1873
+ isColor: !0,
1874
+ reference: "--flui-color-brand-600"
1875
+ },
1876
+ {
1877
+ name: "flui-semantic-primary-active",
1878
+ cssVar: "--flui-semantic-primary-active",
1879
+ path: [
1880
+ "semantic",
1881
+ "primary",
1882
+ "active"
1883
+ ],
1884
+ group: "semantic",
1885
+ value: "#001f8a",
1886
+ isColor: !0,
1887
+ reference: "--flui-color-brand-700"
1888
+ },
1889
+ {
1890
+ name: "flui-semantic-primary-subtle",
1891
+ cssVar: "--flui-semantic-primary-subtle",
1892
+ path: [
1893
+ "semantic",
1894
+ "primary",
1895
+ "subtle"
1896
+ ],
1897
+ group: "semantic",
1898
+ value: "#e8eeff",
1899
+ isColor: !0,
1900
+ reference: "--flui-color-brand-50"
1901
+ },
1902
+ {
1903
+ name: "flui-semantic-accent-default",
1904
+ cssVar: "--flui-semantic-accent-default",
1905
+ path: [
1906
+ "semantic",
1907
+ "accent",
1908
+ "default"
1909
+ ],
1910
+ group: "semantic",
1911
+ value: "#d7ff15",
1912
+ isColor: !0,
1913
+ reference: "--flui-color-accent-scale-400"
1914
+ },
1915
+ {
1916
+ name: "flui-semantic-accent-hover",
1917
+ cssVar: "--flui-semantic-accent-hover",
1918
+ path: [
1919
+ "semantic",
1920
+ "accent",
1921
+ "hover"
1922
+ ],
1923
+ group: "semantic",
1924
+ value: "#c4eb00",
1925
+ isColor: !0,
1926
+ reference: "--flui-color-accent-scale-500"
1927
+ },
1928
+ {
1929
+ name: "flui-semantic-accent-active",
1930
+ cssVar: "--flui-semantic-accent-active",
1931
+ path: [
1932
+ "semantic",
1933
+ "accent",
1934
+ "active"
1935
+ ],
1936
+ group: "semantic",
1937
+ value: "#afd100",
1938
+ isColor: !0,
1939
+ reference: "--flui-color-accent-scale-600"
1940
+ },
1941
+ {
1942
+ name: "flui-semantic-accent-subtle",
1943
+ cssVar: "--flui-semantic-accent-subtle",
1944
+ path: [
1945
+ "semantic",
1946
+ "accent",
1947
+ "subtle"
1948
+ ],
1949
+ group: "semantic",
1950
+ value: "#f3ffb8",
1951
+ isColor: !0,
1952
+ reference: "--flui-color-accent-scale-100"
1953
+ },
1954
+ {
1955
+ name: "flui-semantic-accent-foreground",
1956
+ cssVar: "--flui-semantic-accent-foreground",
1957
+ path: [
1958
+ "semantic",
1959
+ "accent",
1960
+ "foreground"
1961
+ ],
1962
+ group: "semantic",
1963
+ value: "#1a2200",
1964
+ isColor: !0,
1965
+ reference: "--flui-color-accent-scale-900"
1966
+ },
1967
+ {
1968
+ name: "flui-semantic-danger-default",
1969
+ cssVar: "--flui-semantic-danger-default",
1970
+ path: [
1971
+ "semantic",
1972
+ "danger",
1973
+ "default"
1974
+ ],
1975
+ group: "semantic",
1976
+ value: "#e02424",
1977
+ isColor: !0,
1978
+ reference: "--flui-color-danger-500"
1979
+ },
1980
+ {
1981
+ name: "flui-semantic-danger-hover",
1982
+ cssVar: "--flui-semantic-danger-hover",
1983
+ path: [
1984
+ "semantic",
1985
+ "danger",
1986
+ "hover"
1987
+ ],
1988
+ group: "semantic",
1989
+ value: "#bd1b1b",
1990
+ isColor: !0,
1991
+ reference: "--flui-color-danger-600"
1992
+ },
1993
+ {
1994
+ name: "flui-semantic-success-default",
1995
+ cssVar: "--flui-semantic-success-default",
1996
+ path: [
1997
+ "semantic",
1998
+ "success",
1999
+ "default"
2000
+ ],
2001
+ group: "semantic",
2002
+ value: "#afd100",
2003
+ isColor: !0,
2004
+ reference: "--flui-color-accent-scale-600"
2005
+ },
2006
+ {
2007
+ name: "flui-semantic-success-subtle",
2008
+ cssVar: "--flui-semantic-success-subtle",
2009
+ path: [
2010
+ "semantic",
2011
+ "success",
2012
+ "subtle"
2013
+ ],
2014
+ group: "semantic",
2015
+ value: "#f3ffb8",
2016
+ isColor: !0,
2017
+ reference: "--flui-color-accent-scale-100"
2018
+ },
2019
+ {
2020
+ name: "flui-semantic-success-foreground",
2021
+ cssVar: "--flui-semantic-success-foreground",
2022
+ path: [
2023
+ "semantic",
2024
+ "success",
2025
+ "foreground"
2026
+ ],
2027
+ group: "semantic",
2028
+ value: "#1a2200",
2029
+ isColor: !0,
2030
+ reference: "--flui-color-accent-scale-900"
2031
+ },
2032
+ {
2033
+ name: "flui-semantic-warning-default",
2034
+ cssVar: "--flui-semantic-warning-default",
2035
+ path: [
2036
+ "semantic",
2037
+ "warning",
2038
+ "default"
2039
+ ],
2040
+ group: "semantic",
2041
+ value: "#d9920a",
2042
+ isColor: !0,
2043
+ reference: "--flui-color-warning-500"
2044
+ },
2045
+ {
2046
+ name: "flui-semantic-warning-on-warning",
2047
+ cssVar: "--flui-semantic-warning-on-warning",
2048
+ path: [
2049
+ "semantic",
2050
+ "warning",
2051
+ "onWarning"
2052
+ ],
2053
+ group: "semantic",
2054
+ value: "#13151b",
2055
+ isColor: !0,
2056
+ reference: "--flui-color-neutral-900"
2057
+ },
2058
+ {
2059
+ name: "flui-space-0",
2060
+ cssVar: "--flui-space-0",
2061
+ path: [
2062
+ "space",
2063
+ "0"
2064
+ ],
2065
+ group: "space",
2066
+ value: "0",
2067
+ isColor: !1,
2068
+ reference: null
2069
+ },
2070
+ {
2071
+ name: "flui-space-1",
2072
+ cssVar: "--flui-space-1",
2073
+ path: [
2074
+ "space",
2075
+ "1"
2076
+ ],
2077
+ group: "space",
2078
+ value: "4px",
2079
+ isColor: !1,
2080
+ reference: null
2081
+ },
2082
+ {
2083
+ name: "flui-space-2",
2084
+ cssVar: "--flui-space-2",
2085
+ path: [
2086
+ "space",
2087
+ "2"
2088
+ ],
2089
+ group: "space",
2090
+ value: "8px",
2091
+ isColor: !1,
2092
+ reference: null
2093
+ },
2094
+ {
2095
+ name: "flui-space-3",
2096
+ cssVar: "--flui-space-3",
2097
+ path: [
2098
+ "space",
2099
+ "3"
2100
+ ],
2101
+ group: "space",
2102
+ value: "12px",
2103
+ isColor: !1,
2104
+ reference: null
2105
+ },
2106
+ {
2107
+ name: "flui-space-4",
2108
+ cssVar: "--flui-space-4",
2109
+ path: [
2110
+ "space",
2111
+ "4"
2112
+ ],
2113
+ group: "space",
2114
+ value: "16px",
2115
+ isColor: !1,
2116
+ reference: null
2117
+ },
2118
+ {
2119
+ name: "flui-space-5",
2120
+ cssVar: "--flui-space-5",
2121
+ path: [
2122
+ "space",
2123
+ "5"
2124
+ ],
2125
+ group: "space",
2126
+ value: "20px",
2127
+ isColor: !1,
2128
+ reference: null
2129
+ },
2130
+ {
2131
+ name: "flui-space-6",
2132
+ cssVar: "--flui-space-6",
2133
+ path: [
2134
+ "space",
2135
+ "6"
2136
+ ],
2137
+ group: "space",
2138
+ value: "24px",
2139
+ isColor: !1,
2140
+ reference: null
2141
+ },
2142
+ {
2143
+ name: "flui-space-8",
2144
+ cssVar: "--flui-space-8",
2145
+ path: [
2146
+ "space",
2147
+ "8"
2148
+ ],
2149
+ group: "space",
2150
+ value: "32px",
2151
+ isColor: !1,
2152
+ reference: null
2153
+ },
2154
+ {
2155
+ name: "flui-space-10",
2156
+ cssVar: "--flui-space-10",
2157
+ path: [
2158
+ "space",
2159
+ "10"
2160
+ ],
2161
+ group: "space",
2162
+ value: "40px",
2163
+ isColor: !1,
2164
+ reference: null
2165
+ },
2166
+ {
2167
+ name: "flui-space-12",
2168
+ cssVar: "--flui-space-12",
2169
+ path: [
2170
+ "space",
2171
+ "12"
2172
+ ],
2173
+ group: "space",
2174
+ value: "48px",
2175
+ isColor: !1,
2176
+ reference: null
2177
+ },
2178
+ {
2179
+ name: "flui-space-16",
2180
+ cssVar: "--flui-space-16",
2181
+ path: [
2182
+ "space",
2183
+ "16"
2184
+ ],
2185
+ group: "space",
2186
+ value: "64px",
2187
+ isColor: !1,
2188
+ reference: null
2189
+ },
2190
+ {
2191
+ name: "flui-radius-none",
2192
+ cssVar: "--flui-radius-none",
2193
+ path: [
2194
+ "radius",
2195
+ "none"
2196
+ ],
2197
+ group: "radius",
2198
+ value: "0",
2199
+ isColor: !1,
2200
+ reference: null
2201
+ },
2202
+ {
2203
+ name: "flui-radius-sm",
2204
+ cssVar: "--flui-radius-sm",
2205
+ path: [
2206
+ "radius",
2207
+ "sm"
2208
+ ],
2209
+ group: "radius",
2210
+ value: "8px",
2211
+ isColor: !1,
2212
+ reference: null
2213
+ },
2214
+ {
2215
+ name: "flui-radius-md",
2216
+ cssVar: "--flui-radius-md",
2217
+ path: [
2218
+ "radius",
2219
+ "md"
2220
+ ],
2221
+ group: "radius",
2222
+ value: "12px",
2223
+ isColor: !1,
2224
+ reference: null
2225
+ },
2226
+ {
2227
+ name: "flui-radius-lg",
2228
+ cssVar: "--flui-radius-lg",
2229
+ path: [
2230
+ "radius",
2231
+ "lg"
2232
+ ],
2233
+ group: "radius",
2234
+ value: "16px",
2235
+ isColor: !1,
2236
+ reference: null
2237
+ },
2238
+ {
2239
+ name: "flui-radius-xl",
2240
+ cssVar: "--flui-radius-xl",
2241
+ path: [
2242
+ "radius",
2243
+ "xl"
2244
+ ],
2245
+ group: "radius",
2246
+ value: "24px",
2247
+ isColor: !1,
2248
+ reference: null
2249
+ },
2250
+ {
2251
+ name: "flui-radius-full",
2252
+ cssVar: "--flui-radius-full",
2253
+ path: [
2254
+ "radius",
2255
+ "full"
2256
+ ],
2257
+ group: "radius",
2258
+ value: "9999px",
2259
+ isColor: !1,
2260
+ reference: null
2261
+ },
2262
+ {
2263
+ name: "flui-shadow-sm",
2264
+ cssVar: "--flui-shadow-sm",
2265
+ path: [
2266
+ "shadow",
2267
+ "sm"
2268
+ ],
2269
+ group: "shadow",
2270
+ value: "0 1px 2px rgba(19, 21, 27, 0.06)",
2271
+ isColor: !1,
2272
+ reference: null
2273
+ },
2274
+ {
2275
+ name: "flui-shadow-md",
2276
+ cssVar: "--flui-shadow-md",
2277
+ path: [
2278
+ "shadow",
2279
+ "md"
2280
+ ],
2281
+ group: "shadow",
2282
+ value: "0 4px 12px rgba(19, 21, 27, 0.10)",
2283
+ isColor: !1,
2284
+ reference: null
2285
+ },
2286
+ {
2287
+ name: "flui-shadow-lg",
2288
+ cssVar: "--flui-shadow-lg",
2289
+ path: [
2290
+ "shadow",
2291
+ "lg"
2292
+ ],
2293
+ group: "shadow",
2294
+ value: "0 12px 32px rgba(19, 21, 27, 0.14)",
2295
+ isColor: !1,
2296
+ reference: null
2297
+ },
2298
+ {
2299
+ name: "flui-font-family-sans",
2300
+ cssVar: "--flui-font-family-sans",
2301
+ path: [
2302
+ "font",
2303
+ "family",
2304
+ "sans"
2305
+ ],
2306
+ group: "font",
2307
+ value: "Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif",
2308
+ isColor: !1,
2309
+ reference: null
2310
+ },
2311
+ {
2312
+ name: "flui-font-family-mono",
2313
+ cssVar: "--flui-font-family-mono",
2314
+ path: [
2315
+ "font",
2316
+ "family",
2317
+ "mono"
2318
+ ],
2319
+ group: "font",
2320
+ value: "ui-monospace, SFMono-Regular, Menlo, monospace",
2321
+ isColor: !1,
2322
+ reference: null
2323
+ },
2324
+ {
2325
+ name: "flui-font-weight-regular",
2326
+ cssVar: "--flui-font-weight-regular",
2327
+ path: [
2328
+ "font",
2329
+ "weight",
2330
+ "regular"
2331
+ ],
2332
+ group: "font",
2333
+ value: "400",
2334
+ isColor: !1,
2335
+ reference: null
2336
+ },
2337
+ {
2338
+ name: "flui-font-weight-medium",
2339
+ cssVar: "--flui-font-weight-medium",
2340
+ path: [
2341
+ "font",
2342
+ "weight",
2343
+ "medium"
2344
+ ],
2345
+ group: "font",
2346
+ value: "500",
2347
+ isColor: !1,
2348
+ reference: null
2349
+ },
2350
+ {
2351
+ name: "flui-font-weight-semibold",
2352
+ cssVar: "--flui-font-weight-semibold",
2353
+ path: [
2354
+ "font",
2355
+ "weight",
2356
+ "semibold"
2357
+ ],
2358
+ group: "font",
2359
+ value: "600",
2360
+ isColor: !1,
2361
+ reference: null
2362
+ },
2363
+ {
2364
+ name: "flui-font-weight-bold",
2365
+ cssVar: "--flui-font-weight-bold",
2366
+ path: [
2367
+ "font",
2368
+ "weight",
2369
+ "bold"
2370
+ ],
2371
+ group: "font",
2372
+ value: "700",
2373
+ isColor: !1,
2374
+ reference: null
2375
+ },
2376
+ {
2377
+ name: "flui-font-size-xs",
2378
+ cssVar: "--flui-font-size-xs",
2379
+ path: [
2380
+ "font",
2381
+ "size",
2382
+ "xs"
2383
+ ],
2384
+ group: "font",
2385
+ value: "12px",
2386
+ isColor: !1,
2387
+ reference: null
2388
+ },
2389
+ {
2390
+ name: "flui-font-size-sm",
2391
+ cssVar: "--flui-font-size-sm",
2392
+ path: [
2393
+ "font",
2394
+ "size",
2395
+ "sm"
2396
+ ],
2397
+ group: "font",
2398
+ value: "14px",
2399
+ isColor: !1,
2400
+ reference: null
2401
+ },
2402
+ {
2403
+ name: "flui-font-size-md",
2404
+ cssVar: "--flui-font-size-md",
2405
+ path: [
2406
+ "font",
2407
+ "size",
2408
+ "md"
2409
+ ],
2410
+ group: "font",
2411
+ value: "16px",
2412
+ isColor: !1,
2413
+ reference: null
2414
+ },
2415
+ {
2416
+ name: "flui-font-size-lg",
2417
+ cssVar: "--flui-font-size-lg",
2418
+ path: [
2419
+ "font",
2420
+ "size",
2421
+ "lg"
2422
+ ],
2423
+ group: "font",
2424
+ value: "18px",
2425
+ isColor: !1,
2426
+ reference: null
2427
+ },
2428
+ {
2429
+ name: "flui-font-size-xl",
2430
+ cssVar: "--flui-font-size-xl",
2431
+ path: [
2432
+ "font",
2433
+ "size",
2434
+ "xl"
2435
+ ],
2436
+ group: "font",
2437
+ value: "24px",
2438
+ isColor: !1,
2439
+ reference: null
2440
+ },
2441
+ {
2442
+ name: "flui-font-size-2xl",
2443
+ cssVar: "--flui-font-size-2xl",
2444
+ path: [
2445
+ "font",
2446
+ "size",
2447
+ "2xl"
2448
+ ],
2449
+ group: "font",
2450
+ value: "32px",
2451
+ isColor: !1,
2452
+ reference: null
2453
+ },
2454
+ {
2455
+ name: "flui-font-line-height-tight",
2456
+ cssVar: "--flui-font-line-height-tight",
2457
+ path: [
2458
+ "font",
2459
+ "lineHeight",
2460
+ "tight"
2461
+ ],
2462
+ group: "font",
2463
+ value: "1.2",
2464
+ isColor: !1,
2465
+ reference: null
2466
+ },
2467
+ {
2468
+ name: "flui-font-line-height-normal",
2469
+ cssVar: "--flui-font-line-height-normal",
2470
+ path: [
2471
+ "font",
2472
+ "lineHeight",
2473
+ "normal"
2474
+ ],
2475
+ group: "font",
2476
+ value: "1.5",
2477
+ isColor: !1,
2478
+ reference: null
2479
+ },
2480
+ {
2481
+ name: "flui-font-line-height-relaxed",
2482
+ cssVar: "--flui-font-line-height-relaxed",
2483
+ path: [
2484
+ "font",
2485
+ "lineHeight",
2486
+ "relaxed"
2487
+ ],
2488
+ group: "font",
2489
+ value: "1.75",
2490
+ isColor: !1,
2491
+ reference: null
2492
+ }
2493
+ ];
2494
+ export {
2495
+ cr as Accordion,
2496
+ dr as AccordionContent,
2497
+ ur as AccordionItem,
2498
+ fr as AccordionTrigger,
2499
+ je as Alert,
2500
+ ze as Avatar,
2501
+ F as Badge,
2502
+ Pe as Breadcrumb,
2503
+ nr as BreadcrumbItem,
2504
+ Le as BreadcrumbSeparator,
2505
+ le as Button,
2506
+ ce as Card,
2507
+ me as CardContent,
2508
+ de as CardDescription,
2509
+ ue as CardHeader,
2510
+ fe as CardTitle,
2511
+ he as Checkbox,
2512
+ De as Divider,
2513
+ Vr as Drawer,
2514
+ Er as DrawerBody,
2515
+ kr as DrawerContent,
2516
+ Mr as DrawerFooter,
2517
+ zr as DrawerHeader,
2518
+ Tr as DrawerTitle,
2519
+ Ze as Dropdown,
2520
+ rr as DropdownContent,
2521
+ tr as DropdownItem,
2522
+ ar as DropdownSeparator,
2523
+ er as DropdownTrigger,
2524
+ ie as Input,
2525
+ hr as Modal,
2526
+ Cr as ModalBody,
2527
+ vr as ModalContent,
2528
+ yr as ModalDescription,
2529
+ Nr as ModalFooter,
2530
+ xr as ModalHeader,
2531
+ wr as ModalTitle,
2532
+ pr as Popover,
2533
+ br as PopoverContent,
2534
+ gr as PopoverTrigger,
2535
+ Me as Progress,
2536
+ ve as Radio,
2537
+ Xe as RadioGroup,
2538
+ we as Select,
2539
+ Ee as Spinner,
2540
+ _e as StatCard,
2541
+ be as Switch,
2542
+ or as Tabs,
2543
+ ir as TabsContent,
2544
+ lr as TabsList,
2545
+ sr as TabsTrigger,
2546
+ qe as Textarea,
2547
+ Lr as ThemeProvider,
2548
+ Dr as ToastProvider,
2549
+ mr as Tooltip,
2550
+ ye as badgeVariants,
2551
+ oe as buttonVariants,
2552
+ i as cn,
2553
+ se as inputVariants,
2554
+ Ke as textareaVariants,
2555
+ _r as tokens,
2556
+ Ar as useTheme,
2557
+ Pr as useToast
2558
+ };
2559
+ //# sourceMappingURL=index.js.map