@fluityy/designsystem 0.2.5 → 0.2.6
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 +42 -29
- package/dist/index.js.map +1 -1
- package/dist/styles.css +3 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t, jsxs as u } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as p, useState as v, useRef as L, useEffect as
|
|
2
|
+
import { forwardRef as p, useState as v, useRef as L, useEffect as C, createContext as N, useContext as y, useId as K, cloneElement as q, Children as oe, Fragment as le, useCallback as z, useMemo as se } from "react";
|
|
3
3
|
import { cva as V } from "class-variance-authority";
|
|
4
4
|
import { clsx as ie } from "clsx";
|
|
5
5
|
import { twMerge as ce } from "tailwind-merge";
|
|
@@ -183,7 +183,7 @@ G.displayName = "Switch";
|
|
|
183
183
|
const ye = p(
|
|
184
184
|
({ className: e, label: r, indeterminate: a = !1, disabled: n, id: o, ...l }, s) => {
|
|
185
185
|
const c = L(null);
|
|
186
|
-
|
|
186
|
+
C(() => {
|
|
187
187
|
c.current && (c.current.indeterminate = a);
|
|
188
188
|
}, [a]);
|
|
189
189
|
const d = (f) => {
|
|
@@ -248,7 +248,7 @@ const ye = p(
|
|
|
248
248
|
}
|
|
249
249
|
);
|
|
250
250
|
ye.displayName = "Checkbox";
|
|
251
|
-
const U =
|
|
251
|
+
const U = N(null);
|
|
252
252
|
function ur({
|
|
253
253
|
value: e,
|
|
254
254
|
defaultValue: r,
|
|
@@ -269,7 +269,7 @@ function ur({
|
|
|
269
269
|
}
|
|
270
270
|
);
|
|
271
271
|
}
|
|
272
|
-
const
|
|
272
|
+
const Ce = p(
|
|
273
273
|
({ className: e, value: r, label: a, disabled: n, ...o }, l) => {
|
|
274
274
|
const s = y(U);
|
|
275
275
|
if (!s) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
|
|
@@ -315,8 +315,8 @@ const Ne = p(
|
|
|
315
315
|
);
|
|
316
316
|
}
|
|
317
317
|
);
|
|
318
|
-
|
|
319
|
-
const
|
|
318
|
+
Ce.displayName = "Radio";
|
|
319
|
+
const Ne = V(
|
|
320
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",
|
|
321
321
|
{
|
|
322
322
|
variants: {
|
|
@@ -338,7 +338,7 @@ const Ce = V(
|
|
|
338
338
|
"select",
|
|
339
339
|
{
|
|
340
340
|
ref: l,
|
|
341
|
-
className: i(
|
|
341
|
+
className: i(Ne({ size: r, invalid: a }), e),
|
|
342
342
|
...o,
|
|
343
343
|
children: n
|
|
344
344
|
}
|
|
@@ -360,7 +360,7 @@ const Ce = V(
|
|
|
360
360
|
] })
|
|
361
361
|
);
|
|
362
362
|
Ve.displayName = "Select";
|
|
363
|
-
const O =
|
|
363
|
+
const O = N(null);
|
|
364
364
|
function j() {
|
|
365
365
|
const e = y(O);
|
|
366
366
|
if (!e) throw new Error("Componentes de Dropdown precisam estar dentro de <Dropdown>");
|
|
@@ -368,7 +368,7 @@ function j() {
|
|
|
368
368
|
}
|
|
369
369
|
function dr({ children: e }) {
|
|
370
370
|
const [r, a] = v(!1), n = L(null);
|
|
371
|
-
return
|
|
371
|
+
return C(() => {
|
|
372
372
|
if (!r) return;
|
|
373
373
|
const o = (s) => {
|
|
374
374
|
n.current && !n.current.contains(s.target) && a(!1);
|
|
@@ -663,7 +663,7 @@ function je() {
|
|
|
663
663
|
}
|
|
664
664
|
function Be(e, r = 1e3) {
|
|
665
665
|
const [a, n] = v(0);
|
|
666
|
-
return
|
|
666
|
+
return C(() => {
|
|
667
667
|
n(0);
|
|
668
668
|
const o = performance.now(), l = (s) => {
|
|
669
669
|
const c = Math.min((s - o) / r, 1), d = 1 - (1 - c) ** 4;
|
|
@@ -778,7 +778,7 @@ function Ke({
|
|
|
778
778
|
);
|
|
779
779
|
return [s, c];
|
|
780
780
|
}
|
|
781
|
-
const $ =
|
|
781
|
+
const $ = N(null);
|
|
782
782
|
function B() {
|
|
783
783
|
const e = y($);
|
|
784
784
|
if (!e) throw new Error("Componentes de Tabs precisam estar dentro de <Tabs>");
|
|
@@ -801,7 +801,7 @@ function br({
|
|
|
801
801
|
}
|
|
802
802
|
function vr({ className: e, children: r, ...a }) {
|
|
803
803
|
const { value: n } = B(), o = L(null), [l, s] = v({ left: 0, width: 0, ready: !1 });
|
|
804
|
-
return
|
|
804
|
+
return C(() => {
|
|
805
805
|
const c = o.current;
|
|
806
806
|
if (!c) return;
|
|
807
807
|
const d = c.querySelector('[aria-selected="true"]');
|
|
@@ -856,7 +856,7 @@ function wr({ value: e, className: r, ...a }) {
|
|
|
856
856
|
}
|
|
857
857
|
);
|
|
858
858
|
}
|
|
859
|
-
const J =
|
|
859
|
+
const J = N(null), _ = N("");
|
|
860
860
|
function Q() {
|
|
861
861
|
const e = y(J);
|
|
862
862
|
if (!e) throw new Error("Componentes de Accordion precisam estar dentro de <Accordion>");
|
|
@@ -882,10 +882,10 @@ function yr({
|
|
|
882
882
|
}
|
|
883
883
|
) });
|
|
884
884
|
}
|
|
885
|
-
function
|
|
885
|
+
function Cr({ value: e, children: r, ...a }) {
|
|
886
886
|
return /* @__PURE__ */ t(_.Provider, { value: e, children: /* @__PURE__ */ t("div", { ...a, children: r }) });
|
|
887
887
|
}
|
|
888
|
-
function
|
|
888
|
+
function Nr({
|
|
889
889
|
className: e,
|
|
890
890
|
children: r,
|
|
891
891
|
...a
|
|
@@ -953,7 +953,7 @@ function kr({ content: e, side: r = "top", children: a, className: n }) {
|
|
|
953
953
|
}
|
|
954
954
|
);
|
|
955
955
|
}
|
|
956
|
-
const X =
|
|
956
|
+
const X = N(null);
|
|
957
957
|
function Z() {
|
|
958
958
|
const e = y(X);
|
|
959
959
|
if (!e) throw new Error("Componentes de Popover precisam estar dentro de <Popover>");
|
|
@@ -961,7 +961,7 @@ function Z() {
|
|
|
961
961
|
}
|
|
962
962
|
function zr({ children: e }) {
|
|
963
963
|
const [r, a] = v(!1), n = L(null);
|
|
964
|
-
return
|
|
964
|
+
return C(() => {
|
|
965
965
|
if (!r) return;
|
|
966
966
|
const o = (s) => {
|
|
967
967
|
n.current && !n.current.contains(s.target) && a(!1);
|
|
@@ -1001,10 +1001,10 @@ function Tr({
|
|
|
1001
1001
|
}
|
|
1002
1002
|
function R({ children: e }) {
|
|
1003
1003
|
const [r, a] = v(!1);
|
|
1004
|
-
return
|
|
1004
|
+
return C(() => a(!0), []), r ? ue(e, document.body) : null;
|
|
1005
1005
|
}
|
|
1006
1006
|
function ee(e, r) {
|
|
1007
|
-
|
|
1007
|
+
C(() => {
|
|
1008
1008
|
if (!e) return;
|
|
1009
1009
|
const a = (o) => o.key === "Escape" && r(), n = document.body.style.overflow;
|
|
1010
1010
|
return document.body.style.overflow = "hidden", document.addEventListener("keydown", a), () => {
|
|
@@ -1012,7 +1012,7 @@ function ee(e, r) {
|
|
|
1012
1012
|
};
|
|
1013
1013
|
}, [e, r]);
|
|
1014
1014
|
}
|
|
1015
|
-
const re =
|
|
1015
|
+
const re = N(null);
|
|
1016
1016
|
function Ge({ open: e, onOpenChange: r, children: a }) {
|
|
1017
1017
|
const n = () => r == null ? void 0 : r(!1);
|
|
1018
1018
|
return ee(e, n), e ? /* @__PURE__ */ t(R, { children: /* @__PURE__ */ t(re.Provider, { value: { close: n }, children: /* @__PURE__ */ u("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
|
|
@@ -1077,7 +1077,7 @@ function Dr({ className: e, ...r }) {
|
|
|
1077
1077
|
function Ar({ className: e, ...r }) {
|
|
1078
1078
|
return /* @__PURE__ */ t("div", { className: i("flex justify-end gap-2 p-6 pt-4", e), ...r });
|
|
1079
1079
|
}
|
|
1080
|
-
const te =
|
|
1080
|
+
const te = N(null), Oe = {
|
|
1081
1081
|
left: "left-0 top-0 h-full w-[420px] max-w-[96vw] border-r",
|
|
1082
1082
|
right: "right-0 top-0 h-full w-[420px] max-w-[96vw] border-l",
|
|
1083
1083
|
top: "top-0 left-0 w-full max-h-[90vh] border-b",
|
|
@@ -1154,7 +1154,7 @@ function Rr({ className: e, ...r }) {
|
|
|
1154
1154
|
}
|
|
1155
1155
|
);
|
|
1156
1156
|
}
|
|
1157
|
-
const ae =
|
|
1157
|
+
const ae = N(null), Ye = {
|
|
1158
1158
|
info: { wrapper: "bg-[var(--color-toast-info-bg)]", title: "text-fg", description: "text-fg-muted", action: "text-primary hover:text-primary/80" },
|
|
1159
1159
|
success: { wrapper: "bg-[var(--color-toast-success-bg)]", title: "text-success-fg", description: "text-fg-muted", action: "text-success-fg hover:text-success-fg/80" },
|
|
1160
1160
|
warning: { wrapper: "bg-[var(--color-toast-warning-bg)]", title: "text-fg", description: "text-fg-muted", action: "text-fg hover:text-fg/80" },
|
|
@@ -1175,7 +1175,7 @@ function Fr({ children: e }) {
|
|
|
1175
1175
|
] });
|
|
1176
1176
|
}
|
|
1177
1177
|
function $e({ item: e, onDismiss: r }) {
|
|
1178
|
-
|
|
1178
|
+
C(() => {
|
|
1179
1179
|
if (!e.duration) return;
|
|
1180
1180
|
const n = setTimeout(r, e.duration);
|
|
1181
1181
|
return () => clearTimeout(n);
|
|
@@ -1436,7 +1436,7 @@ function qr({
|
|
|
1436
1436
|
] })
|
|
1437
1437
|
] }) }) });
|
|
1438
1438
|
}
|
|
1439
|
-
const ne =
|
|
1439
|
+
const ne = N(null), F = "flui-color-mode", W = "flui-brand", H = "flui-radius";
|
|
1440
1440
|
function ar() {
|
|
1441
1441
|
var e;
|
|
1442
1442
|
return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-color-scheme: dark)").matches);
|
|
@@ -1462,7 +1462,7 @@ function Gr({
|
|
|
1462
1462
|
), [f, g] = v(
|
|
1463
1463
|
() => I(H, n)
|
|
1464
1464
|
), [b, x] = v(ar);
|
|
1465
|
-
|
|
1465
|
+
C(() => {
|
|
1466
1466
|
var E;
|
|
1467
1467
|
const m = (E = window.matchMedia) == null ? void 0 : E.call(window, "(prefers-color-scheme: dark)");
|
|
1468
1468
|
if (!m) return;
|
|
@@ -1470,7 +1470,7 @@ function Gr({
|
|
|
1470
1470
|
return m.addEventListener("change", T), () => m.removeEventListener("change", T);
|
|
1471
1471
|
}, []);
|
|
1472
1472
|
const h = l === "system" ? b ? "dark" : "light" : l;
|
|
1473
|
-
|
|
1473
|
+
C(() => {
|
|
1474
1474
|
const m = (o == null ? void 0 : o()) ?? document.documentElement;
|
|
1475
1475
|
m.setAttribute("data-theme", h), c && c !== "default" ? m.setAttribute("data-brand", c) : m.removeAttribute("data-brand"), f && f !== "default" ? m.setAttribute("data-radius", f) : m.removeAttribute("data-radius");
|
|
1476
1476
|
}, [h, c, f, o]);
|
|
@@ -1923,6 +1923,19 @@ const Or = [
|
|
|
1923
1923
|
isColor: !0,
|
|
1924
1924
|
reference: null
|
|
1925
1925
|
},
|
|
1926
|
+
{
|
|
1927
|
+
name: "flui-color-neutral-875",
|
|
1928
|
+
cssVar: "--flui-color-neutral-875",
|
|
1929
|
+
path: [
|
|
1930
|
+
"color",
|
|
1931
|
+
"neutral",
|
|
1932
|
+
"875"
|
|
1933
|
+
],
|
|
1934
|
+
group: "color",
|
|
1935
|
+
value: "#161920",
|
|
1936
|
+
isColor: !0,
|
|
1937
|
+
reference: null
|
|
1938
|
+
},
|
|
1926
1939
|
{
|
|
1927
1940
|
name: "flui-color-neutral-900",
|
|
1928
1941
|
cssVar: "--flui-color-neutral-900",
|
|
@@ -2791,8 +2804,8 @@ const Or = [
|
|
|
2791
2804
|
export {
|
|
2792
2805
|
yr as Accordion,
|
|
2793
2806
|
Vr as AccordionContent,
|
|
2794
|
-
|
|
2795
|
-
|
|
2807
|
+
Cr as AccordionItem,
|
|
2808
|
+
Nr as AccordionTrigger,
|
|
2796
2809
|
He as Alert,
|
|
2797
2810
|
Le as Avatar,
|
|
2798
2811
|
Y as Badge,
|
|
@@ -2833,7 +2846,7 @@ export {
|
|
|
2833
2846
|
Mr as PopoverTrigger,
|
|
2834
2847
|
qr as ProfileSettingsModal,
|
|
2835
2848
|
Ae as Progress,
|
|
2836
|
-
|
|
2849
|
+
Ce as Radio,
|
|
2837
2850
|
ur as RadioGroup,
|
|
2838
2851
|
Ve as Select,
|
|
2839
2852
|
Wr as SettingRow,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/lib/utils/cn.ts","../src/lib/components/Button/Button.tsx","../src/lib/components/Input/Input.tsx","../src/lib/components/Card/Card.tsx","../src/lib/components/Switch/Switch.tsx","../src/lib/components/Checkbox/Checkbox.tsx","../src/lib/components/Radio/Radio.tsx","../src/lib/components/Select/Select.tsx","../src/lib/components/Dropdown/Dropdown.tsx","../src/lib/components/Badge/Badge.tsx","../src/lib/components/Avatar/Avatar.tsx","../src/lib/components/Spinner/Spinner.tsx","../src/lib/components/Progress/Progress.tsx","../src/lib/components/Divider/Divider.tsx","../src/lib/components/Breadcrumb/Breadcrumb.tsx","../src/lib/components/StatCard/StatCard.tsx","../src/lib/components/Alert/Alert.tsx","../src/lib/hooks/useControllableState.ts","../src/lib/components/Tabs/Tabs.tsx","../src/lib/components/Accordion/Accordion.tsx","../src/lib/components/Tooltip/Tooltip.tsx","../src/lib/components/Popover/Popover.tsx","../src/lib/utils/Portal.tsx","../src/lib/hooks/useDismissable.ts","../src/lib/components/Modal/Modal.tsx","../src/lib/components/Drawer/Drawer.tsx","../src/lib/components/Toast/Toast.tsx","../src/lib/components/Textarea/Textarea.tsx","../src/lib/components/CodeBlock/CodeBlock.tsx","../src/lib/components/ProfileSettingsModal/ProfileSettingsModal.tsx","../src/lib/theme/ThemeProvider.tsx","../src/lib/tokens/tokens.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Combina classes condicionais e resolve conflitos do Tailwind. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const buttonVariants = cva(\n // base: tudo derivado de tokens via utilitários mapeados no @theme\n \"inline-flex items-center justify-center gap-2 font-medium whitespace-nowrap cursor-pointer \" +\n \"transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary \" +\n \"focus-visible:ring-offset-2 ring-offset-bg disabled:opacity-50 \" +\n \"disabled:pointer-events-none disabled:cursor-not-allowed select-none\",\n {\n variants: {\n variant: {\n primary: \"bg-primary text-fg-on-brand hover:bg-primary-hover active:bg-primary-active\",\n secondary:\n \"bg-bg-muted text-fg hover:bg-border-default active:bg-border-strong\",\n outline:\n \"border border-border-strong bg-transparent text-fg hover:bg-bg-subtle\",\n ghost: \"bg-transparent text-fg hover:bg-bg-muted\",\n accent: \"bg-accent text-accent-fg hover:bg-accent-hover active:bg-accent-active\",\n danger: \"bg-danger text-fg-on-brand hover:bg-danger-hover\",\n \"danger-ghost\": \"bg-transparent text-danger hover:bg-danger/10\",\n },\n size: {\n sm: \"h-8 px-3 text-sm rounded-lg\",\n md: \"h-10 px-4 text-md rounded-lg\",\n lg: \"h-12 px-6 text-lg rounded-lg\",\n },\n fullWidth: { true: \"w-full\" },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, fullWidth, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size, fullWidth }), className)}\n {...props}\n />\n ),\n);\n\nButton.displayName = \"Button\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const inputVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none rounded-lg \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-3 text-sm\",\n lg: \"h-12 px-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {\n label?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, size, invalid, label, id, type, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const isPassword = type === \"password\";\n const resolvedType = isPassword ? (showPassword ? \"text\" : \"password\") : type;\n\n const inputId = id ?? (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\n\n const input = (\n <div className=\"relative flex w-full items-center\">\n <input\n ref={ref}\n id={inputId}\n type={resolvedType}\n className={cn(\n inputVariants({ size, invalid }),\n isPassword && \"pr-10\",\n className,\n )}\n {...props}\n />\n {isPassword && (\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? \"Ocultar senha\" : \"Mostrar senha\"}\n className=\"absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg\"\n >\n {showPassword ? (\n // olho fechado\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <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\" />\n <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\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n ) : (\n // olho aberto\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )}\n </button>\n )}\n </div>\n );\n\n if (!label) return input;\n return (\n <div className=\"flex w-full flex-col gap-1.5\">\n <label htmlFor={inputId} className=\"text-xs font-medium text-fg\">\n {label}\n </label>\n {input}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Card = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"bg-bg border border-border-default rounded-lg shadow-sm\",\n className,\n )}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-1 p-6\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />\n));\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-fg-muted\", className)} {...props} />\n));\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst trackVariants = cva(\n \"relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors \" +\n \"outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 \" +\n \"ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: { sm: \"h-5 w-9\", md: \"h-6 w-11\" },\n checked: { true: \"bg-primary\", false: \"bg-border-strong\" },\n },\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nconst thumbVariants = cva(\n \"pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform\",\n {\n variants: {\n size: { sm: \"h-4 w-4\", md: \"h-5 w-5\" },\n checked: { true: \"\", false: \"translate-x-0\" },\n },\n compoundVariants: [\n { size: \"sm\", checked: true, class: \"translate-x-4\" },\n { size: \"md\", checked: true, class: \"translate-x-5\" },\n ],\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onChange\">,\n VariantProps<typeof trackVariants> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked, defaultChecked, onCheckedChange, disabled, ...props }, ref) => {\n const isControlled = checked !== undefined;\n const [internal, setInternal] = useState(defaultChecked ?? false);\n const value = isControlled ? checked : internal;\n\n const toggle = () => {\n const next = !value;\n if (!isControlled) setInternal(next);\n onCheckedChange?.(next);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n disabled={disabled}\n onClick={toggle}\n className={cn(trackVariants({ size, checked: value }), className)}\n {...props}\n >\n <span className={thumbVariants({ size, checked: value })} />\n </button>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n","import { forwardRef, useEffect, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"type\"> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, indeterminate = false, disabled, id, ...props }, ref) => {\n const innerRef = useRef<HTMLInputElement>(null);\n\n // expõe a ref interna e sincroniza o estado indeterminate (não é atributo HTML)\n useEffect(() => {\n if (innerRef.current) innerRef.current.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const setRefs = (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n };\n\n return (\n <label\n className={cn(\n \"relative inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={setRefs}\n id={id}\n type=\"checkbox\"\n disabled={disabled}\n className=\"peer sr-only\"\n {...props}\n />\n {/* a caixa visual. Os modificadores [&>...] miram os filhos a partir\n do estado do input irmão (peer), já que peer-* só alcança irmãos. */}\n <span\n className={cn(\n \"relative flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary peer-checked:bg-primary\",\n \"peer-indeterminate:border-primary peer-indeterminate:bg-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n // check visível só quando checked (e não indeterminate)\n \"peer-checked:[&>svg]:opacity-100 peer-indeterminate:[&>svg]:opacity-0\",\n // traço visível só quando indeterminate\n \"peer-indeterminate:[&>span]:opacity-100\",\n )}\n >\n <svg\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5 text-fg-on-brand opacity-0\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" />\n </svg>\n <span className=\"absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { createContext, forwardRef, useContext, useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface RadioGroupContextValue {\n name: string;\n value?: string;\n onChange: (value: string) => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nexport interface RadioGroupProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n}\n\nexport function RadioGroup({\n value,\n defaultValue,\n onValueChange,\n name,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n const autoName = useId();\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState(defaultValue);\n const current = isControlled ? value : internal;\n\n const onChange = (next: string) => {\n if (!isControlled) setInternal(next);\n onValueChange?.(next);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{ name: name ?? autoName, value: current, onChange }}\n >\n <div role=\"radiogroup\" className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onChange\"> {\n value: string;\n label?: React.ReactNode;\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ className, value, label, disabled, ...props }, ref) => {\n const ctx = useContext(RadioGroupContext);\n if (!ctx) throw new Error(\"<Radio> precisa estar dentro de <RadioGroup>\");\n const checked = ctx.value === value;\n\n return (\n <label\n className={cn(\n \"inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={ref}\n type=\"radio\"\n name={ctx.name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={() => ctx.onChange(value)}\n className=\"peer sr-only\"\n {...props}\n />\n <span\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n \"peer-checked:[&>span]:scale-100\",\n )}\n >\n <span className=\"h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst selectVariants = cva(\n \"w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9\",\n {\n variants: {\n size: {\n sm: \"h-8 pl-3 text-xs\",\n md: \"h-10 pl-3 text-sm\",\n lg: \"h-12 pl-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof selectVariants> {}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, size, invalid, children, ...props }, ref) => (\n <div className=\"relative inline-flex w-full items-center\">\n <select\n ref={ref}\n className={cn(selectVariants({ size, invalid }), className)}\n {...props}\n >\n {children}\n </select>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"pointer-events-none absolute right-3 h-4 w-4 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </div>\n ),\n);\n\nSelect.displayName = \"Select\";\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface DropdownContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\n\nfunction useDropdown() {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Componentes de Dropdown precisam estar dentro de <Dropdown>\");\n return ctx;\n}\n\nexport function Dropdown({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n // fecha ao clicar fora ou apertar Esc\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <DropdownContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block text-left\">\n {children}\n </div>\n </DropdownContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function DropdownTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = useDropdown();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n });\n}\n\nexport function DropdownContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = useDropdown();\n if (!open) return null;\n return (\n <div\n role=\"menu\"\n className={cn(\n \"absolute z-50 mt-1 min-w-44 rounded-md border border-border-default bg-bg p-1 shadow-md\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport interface DropdownItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n destructive?: boolean;\n}\n\nexport function DropdownItem({\n children,\n onSelect,\n destructive,\n className,\n ...props\n}: DropdownItemProps) {\n const { setOpen } = useDropdown();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n onClick={() => {\n onSelect?.();\n setOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors cursor-pointer\",\n \"hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed\",\n destructive ? \"text-danger\" : \"text-fg\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function DropdownSeparator() {\n return <div role=\"separator\" className=\"my-1 h-px bg-border-default\" />;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-[var(--flui-radius-badge)]\",\n {\n variants: {\n variant: {\n neutral: \"bg-bg-muted text-fg\",\n primary: \"bg-brand-500 text-fg-on-brand\",\n accent: \"bg-accent-subtle text-accent-fg\",\n \"accent-bold\": \"bg-accent text-accent-fg\",\n success: \"bg-accent text-accent-fg\",\n warning: \"bg-warning/35 text-fg\",\n danger: \"bg-danger/10 text-danger\",\n outline: \"border border-border-strong text-fg\",\n },\n size: {\n sm: \"px-2 py-0.5 text-xs\",\n md: \"px-2.5 py-0.5 text-sm\",\n },\n },\n defaultVariants: { variant: \"neutral\", size: \"sm\" },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n ),\n);\n\nBadge.displayName = \"Badge\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst sizeVariants = cva(\"relative inline-flex shrink-0 select-none\", {\n variants: {\n size: {\n xs: \"h-6 w-6 text-xs\",\n sm: \"h-8 w-8 text-sm\",\n md: \"h-10 w-10 text-md\",\n lg: \"h-12 w-12 text-lg\",\n xl: \"h-16 w-16 text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nconst statusColor: Record<string, string> = {\n online: \"bg-accent\",\n busy: \"bg-danger\",\n away: \"bg-warning\",\n offline: \"bg-border-strong\",\n};\n\n// Tamanho fixo do dot por tamanho de avatar para manter proporção legível\nconst dotSize: Record<string, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-3.5 w-3.5\",\n};\n\nfunction initials(name?: string) {\n if (!name) return \"\";\n return name\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((p) => p[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n}\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof sizeVariants> {\n src?: string;\n alt?: string;\n name?: string;\n status?: \"online\" | \"busy\" | \"away\" | \"offline\";\n}\n\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size = \"md\", src, alt, name, status, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n const showImg = src && !errored;\n\n return (\n <span ref={ref} className={cn(sizeVariants({ size }), className)} {...props}>\n {/* círculo com overflow-hidden isolado — não clipa o dot */}\n <span className=\"flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg\">\n {showImg ? (\n <img\n src={src}\n alt={alt ?? name ?? \"\"}\n className=\"h-full w-full object-cover\"\n onError={() => setErrored(true)}\n />\n ) : (\n <span aria-hidden>{initials(name)}</span>\n )}\n </span>\n\n {/* dot posicionado dentro do círculo, próximo à borda inferior direita */}\n {status && (\n <span\n aria-label={status}\n className={cn(\n \"absolute bottom-[8%] right-[8%] rounded-full ring-2 ring-bg\",\n statusColor[status],\n dotSize[size ?? \"md\"],\n )}\n />\n )}\n </span>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\"animate-spin text-primary\", {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nexport const Spinner = forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, label = \"Carregando\", ...props }, ref) => (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n role=\"status\"\n aria-label={label}\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"3\" className=\"opacity-20\" />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n ),\n);\n\nSpinner.displayName = \"Spinner\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 0–100. Omita (ou use indeterminate) para estado indeterminado. */\n value?: number;\n max?: number;\n indeterminate?: boolean;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, indeterminate, ...props }, ref) => {\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={indeterminate ? undefined : value}\n className={cn(\n \"relative h-1 w-full overflow-hidden rounded-full bg-bg-muted\",\n className,\n )}\n {...props}\n >\n {indeterminate ? (\n <div className=\"absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]\" />\n ) : (\n <div\n className=\"h-full rounded-full bg-primary transition-[width] duration-300\"\n style={{ width: `${pct}%` }}\n />\n )}\n </div>\n );\n },\n);\n\nProgress.displayName = \"Progress\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n /** rótulo central (apenas horizontal) */\n label?: React.ReactNode;\n}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ className, orientation = \"horizontal\", label, ...props }, ref) => {\n if (orientation === \"vertical\") {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"mx-2 h-full w-px self-stretch bg-border-default\", className)}\n {...props}\n />\n );\n }\n\n if (label) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"flex items-center gap-3 text-sm text-fg-muted\", className)}\n {...props}\n >\n <span className=\"h-px flex-1 bg-border-default\" />\n {label}\n <span className=\"h-px flex-1 bg-border-default\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"h-px w-full bg-border-default\", className)}\n {...props}\n />\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n","import { Children, Fragment, forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Breadcrumb = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => {\n const items = Children.toArray(children);\n return (\n <nav ref={ref} aria-label=\"breadcrumb\" className={className} {...props}>\n <ol className=\"flex flex-wrap items-center gap-1.5 text-sm\">\n {items.map((child, i) => (\n <Fragment key={i}>\n {child}\n {i < items.length - 1 && <BreadcrumbSeparator />}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n },\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport interface BreadcrumbItemProps\n extends React.LiHTMLAttributes<HTMLLIElement> {\n href?: string;\n current?: boolean;\n}\n\nexport function BreadcrumbItem({\n href,\n current,\n className,\n children,\n ...props\n}: BreadcrumbItemProps) {\n return (\n <li className={cn(\"inline-flex items-center\", className)} {...props}>\n {current || !href ? (\n <span\n aria-current={current ? \"page\" : undefined}\n className={cn(current ? \"font-medium text-fg\" : \"text-fg-muted\")}\n >\n {children}\n </span>\n ) : (\n <a\n href={href}\n className=\"text-fg-muted transition-colors hover:text-fg hover:underline\"\n >\n {children}\n </a>\n )}\n </li>\n );\n}\n\nexport function BreadcrumbSeparator() {\n return (\n <li aria-hidden className=\"text-fg-muted\">\n /\n </li>\n );\n}\n","import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Badge } from \"../Badge/Badge\";\n\nfunction useCountUp(target: number, duration = 1000) {\n const [current, setCurrent] = useState(0);\n\n useEffect(() => {\n setCurrent(0);\n const start = performance.now();\n const tick = (now: number) => {\n const t = Math.min((now - start) / duration, 1);\n const eased = 1 - (1 - t) ** 4; // quartic ease-out: rápido → lento\n setCurrent(target * eased);\n if (t < 1) requestAnimationFrame(tick);\n else setCurrent(target);\n };\n requestAnimationFrame(tick);\n }, [target, duration]);\n\n return current;\n}\n\nexport interface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value?: React.ReactNode;\n /** Valor numérico para animação tipo cassino. Usa `formatCount` para exibir. */\n countUp?: number;\n /** Formata o número animado. Default: toLocaleString('pt-BR'). */\n formatCount?: (n: number) => string;\n /** variação percentual; positivo = alta (success), negativo = baixa (danger) */\n delta?: number;\n helpText?: React.ReactNode;\n icon?: React.ReactNode;\n}\n\nexport const StatCard = forwardRef<HTMLDivElement, StatCardProps>(\n ({ className, label, value, countUp, formatCount, delta, helpText, icon, ...props }, ref) => {\n const animated = useCountUp(countUp ?? 0);\n const hasDelta = typeof delta === \"number\";\n const up = hasDelta && delta! >= 0;\n\n const displayValue =\n countUp !== undefined\n ? (formatCount ? formatCount(animated) : Math.round(animated).toLocaleString(\"pt-BR\"))\n : value;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-neutral-900 p-8 shadow-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-fg-muted\">{label}</span>\n {icon && <span className=\"text-fg-muted\">{icon}</span>}\n </div>\n <span className=\"text-3xl font-bold text-fg whitespace-nowrap tabular-nums\">\n {displayValue}\n </span>\n {hasDelta && (\n <Badge variant={up ? \"success\" : \"danger\"} size=\"sm\" className=\"self-start\">\n {up ? \"▲\" : \"▼\"} {Math.abs(delta!)}%\n </Badge>\n )}\n {helpText && <span className=\"text-xs text-fg-muted\">{helpText}</span>}\n </div>\n );\n },\n);\n\nStatCard.displayName = \"StatCard\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst alertVariants = cva(\"flex gap-3 rounded-lg p-4 text-sm\", {\n variants: {\n variant: {\n info: \"bg-primary/10 text-fg\",\n success: \"bg-success-subtle text-fg\",\n warning: \"bg-warning/10 text-fg\",\n danger: \"bg-danger/10 text-fg\",\n },\n },\n defaultVariants: { variant: \"info\" },\n});\n\nconst iconColor: Record<string, string> = {\n info: \"text-primary\",\n success: \"text-success-fg\",\n warning: \"text-warning\",\n danger: \"text-danger\",\n};\n\n// glifos simples por variante (sem dependência de lib de ícones)\nconst glyph: Record<string, string> = {\n info: \"ℹ\",\n success: \"✓\",\n warning: \"!\",\n danger: \"✕\",\n};\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof alertVariants> {\n title?: React.ReactNode;\n onClose?: () => void;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", title, onClose, children, ...props }, ref) => {\n const v = variant ?? \"info\";\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-xs font-bold\",\n iconColor[v],\n )}\n >\n {glyph[v]}\n </span>\n <div className=\"min-w-0 flex-1\">\n {title && <div className=\"font-semibold text-fg\">{title}</div>}\n {children && <div className=\"text-fg-muted\">{children}</div>}\n </div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n className=\"shrink-0 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n )}\n </div>\n );\n },\n);\n\nAlert.displayName = \"Alert\";\n","import { useCallback, useState } from \"react\";\n\n/**\n * Suporta componentes controlados e não-controlados com a mesma API.\n * Se `value` for fornecido, o componente é controlado; senão usa estado interno.\n */\nexport function useControllableState<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T;\n defaultValue: T;\n onChange?: (value: T) => void;\n}) {\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<T>(defaultValue);\n const current = isControlled ? (value as T) : internal;\n\n const setValue = useCallback(\n (next: T) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n return [current, setValue] as const;\n}\n","import { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { cn } from \"../../utils/cn\";\n\ninterface TabsContextValue {\n value: string;\n setValue: (value: string) => void;\n}\nconst TabsContext = createContext<TabsContextValue | null>(null);\nfunction useTabs() {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Componentes de Tabs precisam estar dentro de <Tabs>\");\n return ctx;\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n className,\n children,\n ...props\n}: TabsProps) {\n const [current, setValue] = useControllableState({\n value,\n defaultValue: defaultValue ?? \"\",\n onChange: onValueChange,\n });\n return (\n <TabsContext.Provider value={{ value: current, setValue }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n const { value } = useTabs();\n const listRef = useRef<HTMLDivElement>(null);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, ready: false });\n\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const active = list.querySelector('[aria-selected=\"true\"]') as HTMLElement | null;\n if (!active) return;\n setIndicator({ left: active.offsetLeft, width: active.offsetWidth, ready: true });\n }, [value]);\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n className={cn(\"relative flex items-center gap-1 border-b border-border-default\", className)}\n {...props}\n >\n {children}\n {indicator.ready && (\n <span\n aria-hidden\n className=\"pointer-events-none absolute bottom-[-1px] h-[2px] rounded-full bg-primary transition-all duration-250 ease-out\"\n style={{ left: indicator.left, width: indicator.width }}\n />\n )}\n </div>\n );\n}\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\nexport function TabsTrigger({ value, className, ...props }: TabsTriggerProps) {\n const ctx = useTabs();\n const active = ctx.value === value;\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => ctx.setValue(value)}\n className={cn(\n \"px-4 py-2 text-sm font-medium transition-colors outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg\",\n active ? \"text-fg\" : \"text-fg-muted hover:text-fg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function TabsContent({ value, className, ...props }: TabsContentProps) {\n const ctx = useTabs();\n if (ctx.value !== value) return null;\n return (\n <div\n role=\"tabpanel\"\n className={cn(\"pt-4 animate-[flui-slide-up_200ms_ease-out]\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useContext, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface AccordionContextValue {\n open: string[];\n toggle: (value: string) => void;\n}\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\nconst ItemContext = createContext<string>(\"\");\n\nfunction useAccordion() {\n const ctx = useContext(AccordionContext);\n if (!ctx) throw new Error(\"Componentes de Accordion precisam estar dentro de <Accordion>\");\n return ctx;\n}\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n}\n\nexport function Accordion({\n type = \"single\",\n defaultValue,\n className,\n children,\n ...props\n}: AccordionProps) {\n const init = defaultValue\n ? Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]\n : [];\n const [open, setOpen] = useState<string[]>(init);\n\n const toggle = (value: string) =>\n setOpen((prev) => {\n const has = prev.includes(value);\n if (type === \"single\") return has ? [] : [value];\n return has ? prev.filter((v) => v !== value) : [...prev, value];\n });\n\n return (\n <AccordionContext.Provider value={{ open, toggle }}>\n <div\n className={cn(\"border-y border-border-default divide-y divide-border-default\", className)}\n {...props}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function AccordionItem({ value, children, ...props }: AccordionItemProps) {\n return (\n <ItemContext.Provider value={value}>\n <div {...props}>{children}</div>\n </ItemContext.Provider>\n );\n}\n\nexport function AccordionTrigger({\n className,\n children,\n ...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => ctx.toggle(value)}\n className={cn(\n \"flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg\",\n className,\n )}\n {...props}\n >\n {children}\n <span className={cn(\"text-fg-muted transition-transform\", isOpen && \"rotate-180\")}>\n ▾\n </span>\n </button>\n );\n}\n\nexport function AccordionContent({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n if (!ctx.open.includes(value)) return null;\n return <div className={cn(\"pb-4 text-sm text-fg-muted\", className)} {...props} />;\n}\n","import { useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nconst sidePos: Record<string, string> = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n};\n\nexport interface TooltipProps {\n content: React.ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n children: React.ReactNode;\n className?: string;\n}\n\n/**\n * Tooltip leve baseado em hover/focus. O posicionamento é relativo ao gatilho\n * (sem detecção de colisão com a borda da tela — para isso, usar Floating UI).\n */\nexport function Tooltip({ content, side = \"top\", children, className }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const id = useId();\n\n return (\n <span\n className=\"relative inline-flex\"\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <span aria-describedby={open ? id : undefined}>{children}</span>\n {open && (\n <span\n role=\"tooltip\"\n id={id}\n className={cn(\n \"pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-fg px-2 py-1 text-xs text-bg shadow-md\",\n \"animate-[flui-fade-in_120ms_ease-out]\",\n sidePos[side],\n className,\n )}\n >\n {content}\n </span>\n )}\n </span>\n );\n}\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\nfunction usePopover() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error(\"Componentes de Popover precisam estar dentro de <Popover>\");\n return ctx;\n}\n\nexport function Popover({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && setOpen(false);\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <PopoverContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block\">\n {children}\n </div>\n </PopoverContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function PopoverTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = usePopover();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": open,\n });\n}\n\nexport function PopoverContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = usePopover();\n if (!open) return null;\n return (\n <div\n role=\"dialog\"\n className={cn(\n \"absolute z-50 mt-2 min-w-56 rounded-lg border border-border-default bg-bg p-4 shadow-lg\",\n \"animate-[flui-slide-up_140ms_ease-out]\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n/** Renderiza os filhos em document.body, evitando problemas de overflow/z-index. */\nexport function Portal({ children }: { children: React.ReactNode }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n if (!mounted) return null;\n return createPortal(children, document.body);\n}\n","import { useEffect } from \"react\";\n\n/** Trava o scroll do body e fecha no Escape enquanto `open` for true. */\nexport function useDismissable(open: boolean, onClose: () => void) {\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && onClose();\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.body.style.overflow = prevOverflow;\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open, onClose]);\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\nconst ModalContext = createContext<{ close: () => void } | null>(null);\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport function Modal({ open, onOpenChange, children }: ModalProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <ModalContext.Provider value={{ close }}>\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </ModalContext.Provider>\n </Portal>\n );\n}\n\nexport function ModalContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(ModalContext);\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-10 w-full max-w-lg rounded-xl border border-border-default bg-bg shadow-lg\",\n \"animate-[flui-slide-up_160ms_ease-out]\",\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function ModalHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1 p-6 pb-2\", className)} {...props} />;\n}\nexport function ModalTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function ModalDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn(\"text-sm text-fg-muted\", className)} {...props} />;\n}\nexport function ModalBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"px-6 py-2\", className)} {...props} />;\n}\nexport function ModalFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn(\"flex justify-end gap-2 p-6 pt-4\", className)} {...props} />\n );\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\ntype Side = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nconst DrawerContext = createContext<{ close: () => void; side: Side } | null>(null);\n\nconst sideClasses: Record<Side, string> = {\n left: \"left-0 top-0 h-full w-[420px] max-w-[96vw] border-r\",\n right: \"right-0 top-0 h-full w-[420px] max-w-[96vw] border-l\",\n top: \"top-0 left-0 w-full max-h-[90vh] border-b\",\n bottom: \"bottom-0 left-0 w-full max-h-[90vh] border-t\",\n};\n\nexport interface DrawerProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: Side;\n children: React.ReactNode;\n}\n\nexport function Drawer({ open, onOpenChange, side = \"right\", children }: DrawerProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <DrawerContext.Provider value={{ close, side }}>\n <div className=\"fixed inset-0 z-50\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </DrawerContext.Provider>\n </Portal>\n );\n}\n\nexport function DrawerContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(DrawerContext);\n const side = ctx?.side ?? \"right\";\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"absolute z-10 flex flex-col border-border-default bg-bg shadow-lg\",\n \"animate-[flui-fade-in_160ms_ease-out]\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex flex-col gap-1 border-b border-border-default p-6\", className)}\n {...props}\n />\n );\n}\nexport function DrawerTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function DrawerBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex-1 overflow-y-auto p-6\", className)} {...props} />;\n}\nexport function DrawerFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex justify-end gap-2 border-t border-border-default p-6\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { cn } from \"../../utils/cn\";\n\ntype ToastVariant = \"info\" | \"success\" | \"warning\" | \"danger\";\n\ninterface ToastAction {\n label: string;\n onClick: () => void;\n}\n\ninterface ToastOptions {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number; // ms; 0 = não fecha sozinho\n icon?: React.ReactNode;\n action?: ToastAction;\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\n leaving?: boolean;\n}\n\ninterface ToastContextValue {\n toast: (options: ToastOptions) => number;\n dismiss: (id: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nconst variantStyles: Record<ToastVariant, { wrapper: string; title: string; description: string; action: string }> = {\n info: { wrapper: \"bg-[var(--color-toast-info-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-primary hover:text-primary/80\" },\n success: { wrapper: \"bg-[var(--color-toast-success-bg)]\", title: \"text-success-fg\", description: \"text-fg-muted\", action: \"text-success-fg hover:text-success-fg/80\" },\n warning: { wrapper: \"bg-[var(--color-toast-warning-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-fg hover:text-fg/80\" },\n danger: { wrapper: \"bg-[var(--color-toast-danger-bg)]\", title: \"text-danger\", description: \"text-fg-muted\", action: \"text-danger hover:text-danger/80\" },\n};\n\nexport function ToastProvider({ children }: { children: React.ReactNode }) {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const idRef = useRef(0);\n\n const dismiss = useCallback((id: number) => {\n setToasts((prev) => prev.map((t) => t.id === id ? { ...t, leaving: true } : t));\n setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, 160);\n }, []);\n\n const toast = useCallback((options: ToastOptions) => {\n const id = ++idRef.current;\n setToasts((prev) => [...prev, { id, variant: \"info\", duration: 4000, ...options }]);\n return id;\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast, dismiss }}>\n {children}\n <Portal>\n <div className=\"pointer-events-none fixed bottom-4 right-8 z-[60] flex w-80 max-w-[90vw] flex-col gap-2\">\n {toasts.map((t) => (\n <ToastCard key={t.id} item={t} onDismiss={() => dismiss(t.id)} />\n ))}\n </div>\n </Portal>\n </ToastContext.Provider>\n );\n}\n\nfunction ToastCard({ item, onDismiss }: { item: ToastItem; onDismiss: () => void }) {\n useEffect(() => {\n if (!item.duration) return;\n const timer = setTimeout(onDismiss, item.duration);\n return () => clearTimeout(timer);\n }, [item.duration, onDismiss]);\n\n const styles = variantStyles[item.variant ?? \"info\"];\n\n return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto flex items-start gap-3 rounded-3xl p-4 shadow-sm\",\n item.leaving\n ? \"animate-[flui-slide-down_160ms_ease-in_forwards]\"\n : \"animate-[flui-slide-up_160ms_ease-out]\",\n styles.wrapper,\n )}\n >\n {item.icon && (\n <span className={cn(\"mt-0.5 shrink-0\", styles.title)}>{item.icon}</span>\n )}\n\n <div className=\"min-w-0 flex-1\">\n <div className={cn(\"text-sm font-semibold\", styles.title)}>{item.title}</div>\n {item.description && (\n <div className={cn(\"mt-0.5 text-sm\", styles.description)}>{item.description}</div>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center gap-1\">\n {item.action && (\n <button\n type=\"button\"\n onClick={() => { item.action!.onClick(); onDismiss(); }}\n className={cn(\"cursor-pointer rounded-sm px-1.5 py-0.5 text-xs font-semibold transition-colors\", styles.action)}\n >\n {item.action.label}\n </button>\n )}\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Fechar\"\n className={cn(\"cursor-pointer rounded-sm px-1 transition-colors opacity-60 hover:opacity-100\", styles.title)}\n >\n ✕\n </button>\n </div>\n </div>\n );\n}\n\nexport function useToast() {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast precisa estar dentro de <ToastProvider>\");\n return ctx;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const textareaVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none resize-y rounded-lg min-h-28 px-3 py-3 text-sm \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { invalid: false },\n },\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, invalid, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(textareaVariants({ invalid }), className)}\n {...props}\n />\n ),\n);\n\nTextarea.displayName = \"Textarea\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useToast } from \"../Toast/Toast\";\n\nexport interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Rótulo exibido no canto superior esquerdo (ex: \"tsx\", \"bash\"). */\n language?: string;\n /** Código a ser exibido. */\n code: string;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\n ({ code, language, className, ...props }, ref) => {\n const { toast } = useToast();\n\n function handleCopy() {\n navigator.clipboard.writeText(code).then(() => {\n toast({ title: \"Copiado!\", variant: \"success\", duration: 2000 });\n });\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"overflow-hidden rounded-lg bg-bg-subtle\", className)}\n {...props}\n >\n <div className=\"flex items-center justify-between bg-bg-muted px-4 py-2\">\n {language ? (\n <span className=\"font-mono text-xs text-fg-muted\">{language}</span>\n ) : (\n <span />\n )}\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copiar código\"\n className=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-bg hover:text-fg\"\n >\n <CopyIcon />\n Copiar\n </button>\n </div>\n <pre className=\"overflow-x-auto p-4 text-sm leading-relaxed\">\n <code className=\"font-mono text-fg\">{code}</code>\n </pre>\n </div>\n );\n },\n);\n\nCodeBlock.displayName = \"CodeBlock\";\n\nfunction CopyIcon() {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <rect x=\"6\" y=\"6\" width=\"8\" height=\"8\" rx=\"1.5\" />\n <path d=\"M4 10H3a1.5 1.5 0 0 1-1.5-1.5v-6A1.5 1.5 0 0 1 3 1h6A1.5 1.5 0 0 1 10.5 2.5V4\" />\n </svg>\n );\n}\n","import { useState } from \"react\";\nimport { Modal, ModalContent } from \"../Modal/Modal\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface ProfileSettingsUser {\n name: string;\n subtitle?: string;\n /** Texto de fallback se não houver avatar (ex: \"EM\") */\n initials?: string;\n /** URL da foto */\n avatar?: string;\n}\n\nexport interface ProfileSettingsNavItem {\n id: string;\n label: string;\n /** Qualquer ReactNode — passe um ícone Tabler ou SVG */\n icon?: React.ReactNode;\n}\n\nexport interface ProfileSettingsNavGroup {\n group: string;\n items: ProfileSettingsNavItem[];\n}\n\nexport interface ProfileSettingsModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n /** Seção ativa inicial */\n defaultSection?: string;\n /** Seção ativa controlada externamente */\n activeSection?: string;\n onSectionChange?: (id: string) => void;\n /** Título por seção. Fallback: label do item */\n sectionTitles?: Record<string, string>;\n /** Subtítulo por seção */\n sectionSubtitles?: Record<string, string>;\n /** Renderiza o conteúdo da seção ativa */\n renderSection?: (id: string) => React.ReactNode;\n /** Ação no rodapé do sidebar (ex: \"Get help\") */\n footerAction?: React.ReactNode;\n}\n\n// ─── Sidebar ──────────────────────────────────────────────────────────────────\n\nfunction Sidebar({\n user,\n nav,\n active,\n onSelect,\n footerAction,\n}: {\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n active: string;\n onSelect: (id: string) => void;\n footerAction?: React.ReactNode;\n}) {\n const itemClass = (isActive: boolean) =>\n \"flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm transition-colors \" +\n (isActive ? \"bg-bg-muted font-medium text-fg\" : \"text-fg hover:bg-bg-muted\");\n\n return (\n <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\">\n {/* User info */}\n <div className=\"flex items-center gap-2.5 px-1\">\n {user.avatar ? (\n <img\n src={user.avatar}\n alt={user.name}\n className=\"h-8 w-8 shrink-0 rounded-full object-cover\"\n />\n ) : (\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary-subtle text-xs font-semibold text-primary\">\n {user.initials ?? user.name.slice(0, 2).toUpperCase()}\n </span>\n )}\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-fg\">{user.name}</p>\n {user.subtitle && (\n <p className=\"truncate text-xs text-fg-muted\">{user.subtitle}</p>\n )}\n </div>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"ml-auto h-3.5 w-3.5 shrink-0 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M5 7l3-3 3 3M5 9l3 3 3-3\" />\n </svg>\n </div>\n\n {/* Nav groups */}\n {nav.map(({ group, items }) => (\n <div key={group}>\n <p className=\"mb-1 px-1 text-xs font-semibold text-fg-muted\">{group}</p>\n <ul className=\"flex flex-col gap-0.5\">\n {items.map((item) => (\n <li key={item.id}>\n <button\n type=\"button\"\n onClick={() => onSelect(item.id)}\n className={itemClass(item.id === active)}\n >\n {item.icon && (\n <span className=\"shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]\">\n {item.icon}\n </span>\n )}\n {item.label}\n </button>\n </li>\n ))}\n </ul>\n </div>\n ))}\n\n {/* Footer slot */}\n {footerAction && <div className=\"mt-auto\">{footerAction}</div>}\n </aside>\n );\n}\n\n// ─── Settings primitives ─────────────────────────────────────────────────────\n\nimport { Switch } from \"../Switch/Switch\";\nimport { Button } from \"../Button/Button\";\n\nexport function SettingRow({\n title,\n description,\n checked,\n onCheckedChange,\n}: {\n title: string;\n description?: string;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}) {\n return (\n <div className=\"flex items-center justify-between gap-6 px-4 py-4\">\n <div>\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n <Switch checked={checked} onCheckedChange={onCheckedChange} className=\"shrink-0\" />\n </div>\n );\n}\n\nexport function SettingsCard({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"divide-y divide-border-default rounded-xl bg-bg\">\n {children}\n </div>\n );\n}\n\nexport function SettingsGroup({\n title,\n children,\n}: {\n title: string;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"flex flex-col gap-3\">\n <h3 className=\"text-base font-semibold text-fg\">{title}</h3>\n <SettingsCard>{children}</SettingsCard>\n </div>\n );\n}\n\nexport interface IntegrationRowProps {\n icon: React.ReactNode;\n title: string;\n description?: string;\n connected?: boolean;\n onConnect?: () => void;\n onDisconnect?: () => void;\n}\n\nexport function IntegrationRow({\n icon,\n title,\n description,\n connected = false,\n onConnect,\n onDisconnect,\n}: IntegrationRowProps) {\n return (\n <div className=\"flex items-center gap-4 rounded-xl bg-bg px-4 py-4\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-bg-muted\">\n <span className=\"[&>svg]:h-4 [&>svg]:w-4\">{icon}</span>\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n {connected ? (\n <Button variant=\"danger-ghost\" size=\"sm\" onClick={onDisconnect}>\n Desconectar\n </Button>\n ) : (\n <Button variant=\"secondary\" size=\"sm\" onClick={onConnect}>\n Conectar\n </Button>\n )}\n </div>\n );\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport function ProfileSettingsModal({\n open,\n onOpenChange,\n user,\n nav,\n defaultSection,\n activeSection: controlledSection,\n onSectionChange,\n sectionTitles = {},\n sectionSubtitles = {},\n renderSection,\n footerAction,\n}: ProfileSettingsModalProps) {\n const firstId = nav[0]?.items[0]?.id ?? \"\";\n const [internalSection, setInternalSection] = useState(\n defaultSection ?? firstId,\n );\n\n const active = controlledSection ?? internalSection;\n\n const handleSelect = (id: string) => {\n setInternalSection(id);\n onSectionChange?.(id);\n };\n\n // resolve title: explicit override → nav label → id\n const allItems = nav.flatMap((g) => g.items);\n const activeItem = allItems.find((i) => i.id === active);\n const title = sectionTitles[active] ?? activeItem?.label ?? active;\n const subtitle = sectionSubtitles[active];\n\n return (\n <Modal open={open} onOpenChange={onOpenChange}>\n <ModalContent className=\"max-w-[1300px] overflow-hidden p-0\">\n <div className=\"flex h-[820px]\">\n <Sidebar\n user={user}\n nav={nav}\n active={active}\n onSelect={handleSelect}\n footerAction={footerAction}\n />\n\n <div className=\"flex flex-1 flex-col overflow-hidden bg-bg-subtle\">\n <div className=\"relative px-[200px] pb-8 pt-8\">\n <h2 className=\"font-display text-2xl font-semibold tracking-tight text-fg\">\n {title}\n </h2>\n {subtitle && (\n <p className=\"mt-0.5 text-sm text-fg-muted\">{subtitle}</p>\n )}\n <div className=\"pointer-events-none absolute inset-x-0 -bottom-6 h-6 bg-gradient-to-b from-bg-subtle to-transparent\" />\n </div>\n\n <div className=\"flex-1 overflow-y-auto px-[200px] pb-8 pt-6\">\n {renderSection?.(active) ?? (\n <p className=\"text-sm text-fg-muted\">\n Conteúdo de <strong>{title}</strong>.\n </p>\n )}\n </div>\n </div>\n </div>\n </ModalContent>\n </Modal>\n );\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\n/** Modo de cor. \"system\" segue a preferência do SO. */\nexport type ColorMode = \"light\" | \"dark\" | \"system\";\n\n/**\n * Marca/tema. \"default\" usa o ramp base (:root). Os demais correspondem aos\n * blocos [data-brand=\"…\"] gerados pelo Style Dictionary a partir de\n * tokens/brands/*.json — daí o tipo aberto (string) para temas customizados.\n */\nexport type Brand = \"default\" | (string & {});\n\nexport type RadiusScale = \"sharp\" | \"default\" | \"soft\" | \"round\";\n\ninterface ThemeContextValue {\n /** Preferência escolhida (pode ser \"system\"). */\n mode: ColorMode;\n /** Modo efetivo já resolvido (\"light\" | \"dark\"). */\n resolvedMode: \"light\" | \"dark\";\n brand: Brand;\n radius: RadiusScale;\n setMode: (mode: ColorMode) => void;\n setBrand: (brand: Brand) => void;\n setRadius: (radius: RadiusScale) => void;\n /** Alterna entre claro e escuro (resolve \"system\" antes). */\n toggleMode: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nconst MODE_KEY = \"flui-color-mode\";\nconst BRAND_KEY = \"flui-brand\";\nconst RADIUS_KEY = \"flui-radius\";\n\nfunction prefersDark(): boolean {\n return (\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n );\n}\n\nfunction load<T extends string>(key: string, fallback: T): T {\n try {\n return (localStorage.getItem(key) as T) ?? fallback;\n } catch {\n return fallback;\n }\n}\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Modo inicial caso não haja preferência salva. Padrão: \"system\". */\n defaultMode?: ColorMode;\n /** Marca inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultBrand?: Brand;\n /** Escala de radius inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultRadius?: RadiusScale;\n /**\n * Onde aplicar os atributos data-theme / data-brand / data-radius.\n * Padrão: document.documentElement (escopo global do app).\n */\n target?: () => HTMLElement | null;\n}\n\nexport function ThemeProvider({\n children,\n defaultMode = \"system\",\n defaultBrand = \"default\",\n defaultRadius = \"default\",\n target,\n}: ThemeProviderProps) {\n const [mode, setModeState] = useState<ColorMode>(() =>\n load(MODE_KEY, defaultMode),\n );\n const [brand, setBrandState] = useState<Brand>(() =>\n load(BRAND_KEY, defaultBrand),\n );\n const [radius, setRadiusState] = useState<RadiusScale>(() =>\n load(RADIUS_KEY, defaultRadius),\n );\n const [systemDark, setSystemDark] = useState(prefersDark);\n\n // acompanha mudanças do SO quando o modo é \"system\"\n useEffect(() => {\n const mq = window.matchMedia?.(\"(prefers-color-scheme: dark)\");\n if (!mq) return;\n const onChange = (e: MediaQueryListEvent) => setSystemDark(e.matches);\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n const resolvedMode: \"light\" | \"dark\" =\n mode === \"system\" ? (systemDark ? \"dark\" : \"light\") : mode;\n\n // aplica os atributos no elemento alvo\n useEffect(() => {\n const el = target?.() ?? document.documentElement;\n el.setAttribute(\"data-theme\", resolvedMode);\n if (brand && brand !== \"default\") {\n el.setAttribute(\"data-brand\", brand);\n } else {\n el.removeAttribute(\"data-brand\");\n }\n if (radius && radius !== \"default\") {\n el.setAttribute(\"data-radius\", radius);\n } else {\n el.removeAttribute(\"data-radius\");\n }\n }, [resolvedMode, brand, radius, target]);\n\n const setMode = useCallback((m: ColorMode) => {\n setModeState(m);\n try {\n localStorage.setItem(MODE_KEY, m);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setBrand = useCallback((b: Brand) => {\n setBrandState(b);\n try {\n localStorage.setItem(BRAND_KEY, b);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setRadius = useCallback((r: RadiusScale) => {\n setRadiusState(r);\n try {\n localStorage.setItem(RADIUS_KEY, r);\n } catch {\n /* ignore */\n }\n }, []);\n\n const toggleMode = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode }),\n [mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme precisa estar dentro de <ThemeProvider>\");\n }\n return ctx;\n}\n","// AUTO-GERADO por Style Dictionary. Não editar à mão.\n// Fonte: tokens/*.json — rode `npm run tokens` para regenerar.\n\nexport interface TokenMeta {\n name: string;\n cssVar: string;\n path: string[];\n group: string;\n value: string;\n isColor: boolean;\n reference: string | null;\n}\n\nexport const tokens: TokenMeta[] = [\n {\n \"name\": \"flui-color-accent-scale-50\",\n \"cssVar\": \"--flui-color-accent-scale-50\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f9ffe0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-100\",\n \"cssVar\": \"--flui-color-accent-scale-100\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-200\",\n \"cssVar\": \"--flui-color-accent-scale-200\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8ff80\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-300\",\n \"cssVar\": \"--flui-color-accent-scale-300\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#dcff45\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-400\",\n \"cssVar\": \"--flui-color-accent-scale-400\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-500\",\n \"cssVar\": \"--flui-color-accent-scale-500\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-600\",\n \"cssVar\": \"--flui-color-accent-scale-600\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-700\",\n \"cssVar\": \"--flui-color-accent-scale-700\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#8ab000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-800\",\n \"cssVar\": \"--flui-color-accent-scale-800\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#638000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-900\",\n \"cssVar\": \"--flui-color-accent-scale-900\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-50\",\n \"cssVar\": \"--flui-color-brand-50\",\n \"path\": [\n \"color\",\n \"brand\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-100\",\n \"cssVar\": \"--flui-color-brand-100\",\n \"path\": [\n \"color\",\n \"brand\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#ccd5ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-200\",\n \"cssVar\": \"--flui-color-brand-200\",\n \"path\": [\n \"color\",\n \"brand\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#99abff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-300\",\n \"cssVar\": \"--flui-color-brand-300\",\n \"path\": [\n \"color\",\n \"brand\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#6680ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-400\",\n \"cssVar\": \"--flui-color-brand-400\",\n \"path\": [\n \"color\",\n \"brand\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#3355ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-500\",\n \"cssVar\": \"--flui-color-brand-500\",\n \"path\": [\n \"color\",\n \"brand\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-600\",\n \"cssVar\": \"--flui-color-brand-600\",\n \"path\": [\n \"color\",\n \"brand\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-700\",\n \"cssVar\": \"--flui-color-brand-700\",\n \"path\": [\n \"color\",\n \"brand\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-800\",\n \"cssVar\": \"--flui-color-brand-800\",\n \"path\": [\n \"color\",\n \"brand\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#001566\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-900\",\n \"cssVar\": \"--flui-color-brand-900\",\n \"path\": [\n \"color\",\n \"brand\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#000b42\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-0\",\n \"cssVar\": \"--flui-color-neutral-0\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"0\"\n ],\n \"group\": \"color\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-50\",\n \"cssVar\": \"--flui-color-neutral-50\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-100\",\n \"cssVar\": \"--flui-color-neutral-100\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-200\",\n \"cssVar\": \"--flui-color-neutral-200\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-300\",\n \"cssVar\": \"--flui-color-neutral-300\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-400\",\n \"cssVar\": \"--flui-color-neutral-400\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#9aa2b4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-500\",\n \"cssVar\": \"--flui-color-neutral-500\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-600\",\n \"cssVar\": \"--flui-color-neutral-600\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#4c5263\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-700\",\n \"cssVar\": \"--flui-color-neutral-700\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#363b49\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-750\",\n \"cssVar\": \"--flui-color-neutral-750\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"750\"\n ],\n \"group\": \"color\",\n \"value\": \"#2c303c\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-800\",\n \"cssVar\": \"--flui-color-neutral-800\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#22262f\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-850\",\n \"cssVar\": \"--flui-color-neutral-850\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"850\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a1d25\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-900\",\n \"cssVar\": \"--flui-color-neutral-900\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-950\",\n \"cssVar\": \"--flui-color-neutral-950\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"950\"\n ],\n \"group\": \"color\",\n \"value\": \"#0e1015\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-1000\",\n \"cssVar\": \"--flui-color-neutral-1000\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"1000\"\n ],\n \"group\": \"color\",\n \"value\": \"#050608\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-500\",\n \"cssVar\": \"--flui-color-success-500\",\n \"path\": [\n \"color\",\n \"success\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#1f9d55\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-600\",\n \"cssVar\": \"--flui-color-success-600\",\n \"path\": [\n \"color\",\n \"success\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#157f43\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-500\",\n \"cssVar\": \"--flui-color-warning-500\",\n \"path\": [\n \"color\",\n \"warning\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-600\",\n \"cssVar\": \"--flui-color-warning-600\",\n \"path\": [\n \"color\",\n \"warning\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#b6790a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-500\",\n \"cssVar\": \"--flui-color-danger-500\",\n \"path\": [\n \"color\",\n \"danger\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-600\",\n \"cssVar\": \"--flui-color-danger-600\",\n \"path\": [\n \"color\",\n \"danger\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-semantic-bg-base\",\n \"cssVar\": \"--flui-semantic-bg-base\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"base\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-bg-subtle\",\n \"cssVar\": \"--flui-semantic-bg-subtle\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-50\"\n },\n {\n \"name\": \"flui-semantic-bg-muted\",\n \"cssVar\": \"--flui-semantic-bg-muted\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-100\"\n },\n {\n \"name\": \"flui-semantic-fg-default\",\n \"cssVar\": \"--flui-semantic-fg-default\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-semantic-fg-muted\",\n \"cssVar\": \"--flui-semantic-fg-muted\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-500\"\n },\n {\n \"name\": \"flui-semantic-fg-on-brand\",\n \"cssVar\": \"--flui-semantic-fg-on-brand\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"onBrand\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-border-default\",\n \"cssVar\": \"--flui-semantic-border-default\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-200\"\n },\n {\n \"name\": \"flui-semantic-border-strong\",\n \"cssVar\": \"--flui-semantic-border-strong\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"strong\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-300\"\n },\n {\n \"name\": \"flui-semantic-primary-default\",\n \"cssVar\": \"--flui-semantic-primary-default\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-500\"\n },\n {\n \"name\": \"flui-semantic-primary-hover\",\n \"cssVar\": \"--flui-semantic-primary-hover\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-600\"\n },\n {\n \"name\": \"flui-semantic-primary-active\",\n \"cssVar\": \"--flui-semantic-primary-active\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-700\"\n },\n {\n \"name\": \"flui-semantic-primary-subtle\",\n \"cssVar\": \"--flui-semantic-primary-subtle\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-50\"\n },\n {\n \"name\": \"flui-semantic-accent-default\",\n \"cssVar\": \"--flui-semantic-accent-default\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-400\"\n },\n {\n \"name\": \"flui-semantic-accent-hover\",\n \"cssVar\": \"--flui-semantic-accent-hover\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-500\"\n },\n {\n \"name\": \"flui-semantic-accent-active\",\n \"cssVar\": \"--flui-semantic-accent-active\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-accent-subtle\",\n \"cssVar\": \"--flui-semantic-accent-subtle\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-accent-foreground\",\n \"cssVar\": \"--flui-semantic-accent-foreground\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-danger-default\",\n \"cssVar\": \"--flui-semantic-danger-default\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-500\"\n },\n {\n \"name\": \"flui-semantic-danger-hover\",\n \"cssVar\": \"--flui-semantic-danger-hover\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-600\"\n },\n {\n \"name\": \"flui-semantic-success-default\",\n \"cssVar\": \"--flui-semantic-success-default\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-success-subtle\",\n \"cssVar\": \"--flui-semantic-success-subtle\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-success-foreground\",\n \"cssVar\": \"--flui-semantic-success-foreground\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-warning-default\",\n \"cssVar\": \"--flui-semantic-warning-default\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-warning-500\"\n },\n {\n \"name\": \"flui-semantic-warning-on-warning\",\n \"cssVar\": \"--flui-semantic-warning-on-warning\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"onWarning\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-space-0\",\n \"cssVar\": \"--flui-space-0\",\n \"path\": [\n \"space\",\n \"0\"\n ],\n \"group\": \"space\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-1\",\n \"cssVar\": \"--flui-space-1\",\n \"path\": [\n \"space\",\n \"1\"\n ],\n \"group\": \"space\",\n \"value\": \"4px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-2\",\n \"cssVar\": \"--flui-space-2\",\n \"path\": [\n \"space\",\n \"2\"\n ],\n \"group\": \"space\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-3\",\n \"cssVar\": \"--flui-space-3\",\n \"path\": [\n \"space\",\n \"3\"\n ],\n \"group\": \"space\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-4\",\n \"cssVar\": \"--flui-space-4\",\n \"path\": [\n \"space\",\n \"4\"\n ],\n \"group\": \"space\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-5\",\n \"cssVar\": \"--flui-space-5\",\n \"path\": [\n \"space\",\n \"5\"\n ],\n \"group\": \"space\",\n \"value\": \"20px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-6\",\n \"cssVar\": \"--flui-space-6\",\n \"path\": [\n \"space\",\n \"6\"\n ],\n \"group\": \"space\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-8\",\n \"cssVar\": \"--flui-space-8\",\n \"path\": [\n \"space\",\n \"8\"\n ],\n \"group\": \"space\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-10\",\n \"cssVar\": \"--flui-space-10\",\n \"path\": [\n \"space\",\n \"10\"\n ],\n \"group\": \"space\",\n \"value\": \"40px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-12\",\n \"cssVar\": \"--flui-space-12\",\n \"path\": [\n \"space\",\n \"12\"\n ],\n \"group\": \"space\",\n \"value\": \"48px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-16\",\n \"cssVar\": \"--flui-space-16\",\n \"path\": [\n \"space\",\n \"16\"\n ],\n \"group\": \"space\",\n \"value\": \"64px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-none\",\n \"cssVar\": \"--flui-radius-none\",\n \"path\": [\n \"radius\",\n \"none\"\n ],\n \"group\": \"radius\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-sm\",\n \"cssVar\": \"--flui-radius-sm\",\n \"path\": [\n \"radius\",\n \"sm\"\n ],\n \"group\": \"radius\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-md\",\n \"cssVar\": \"--flui-radius-md\",\n \"path\": [\n \"radius\",\n \"md\"\n ],\n \"group\": \"radius\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-lg\",\n \"cssVar\": \"--flui-radius-lg\",\n \"path\": [\n \"radius\",\n \"lg\"\n ],\n \"group\": \"radius\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-xl\",\n \"cssVar\": \"--flui-radius-xl\",\n \"path\": [\n \"radius\",\n \"xl\"\n ],\n \"group\": \"radius\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-full\",\n \"cssVar\": \"--flui-radius-full\",\n \"path\": [\n \"radius\",\n \"full\"\n ],\n \"group\": \"radius\",\n \"value\": \"9999px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-sm\",\n \"cssVar\": \"--flui-shadow-sm\",\n \"path\": [\n \"shadow\",\n \"sm\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 1px 2px rgba(19, 21, 27, 0.06)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-md\",\n \"cssVar\": \"--flui-shadow-md\",\n \"path\": [\n \"shadow\",\n \"md\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 4px 12px rgba(19, 21, 27, 0.10)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-lg\",\n \"cssVar\": \"--flui-shadow-lg\",\n \"path\": [\n \"shadow\",\n \"lg\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 12px 32px rgba(19, 21, 27, 0.14)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-sans\",\n \"cssVar\": \"--flui-font-family-sans\",\n \"path\": [\n \"font\",\n \"family\",\n \"sans\"\n ],\n \"group\": \"font\",\n \"value\": \"Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-mono\",\n \"cssVar\": \"--flui-font-family-mono\",\n \"path\": [\n \"font\",\n \"family\",\n \"mono\"\n ],\n \"group\": \"font\",\n \"value\": \"ui-monospace, SFMono-Regular, Menlo, monospace\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-regular\",\n \"cssVar\": \"--flui-font-weight-regular\",\n \"path\": [\n \"font\",\n \"weight\",\n \"regular\"\n ],\n \"group\": \"font\",\n \"value\": \"400\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-medium\",\n \"cssVar\": \"--flui-font-weight-medium\",\n \"path\": [\n \"font\",\n \"weight\",\n \"medium\"\n ],\n \"group\": \"font\",\n \"value\": \"500\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-semibold\",\n \"cssVar\": \"--flui-font-weight-semibold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"semibold\"\n ],\n \"group\": \"font\",\n \"value\": \"600\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-bold\",\n \"cssVar\": \"--flui-font-weight-bold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"bold\"\n ],\n \"group\": \"font\",\n \"value\": \"700\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xs\",\n \"cssVar\": \"--flui-font-size-xs\",\n \"path\": [\n \"font\",\n \"size\",\n \"xs\"\n ],\n \"group\": \"font\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-sm\",\n \"cssVar\": \"--flui-font-size-sm\",\n \"path\": [\n \"font\",\n \"size\",\n \"sm\"\n ],\n \"group\": \"font\",\n \"value\": \"14px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-md\",\n \"cssVar\": \"--flui-font-size-md\",\n \"path\": [\n \"font\",\n \"size\",\n \"md\"\n ],\n \"group\": \"font\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-lg\",\n \"cssVar\": \"--flui-font-size-lg\",\n \"path\": [\n \"font\",\n \"size\",\n \"lg\"\n ],\n \"group\": \"font\",\n \"value\": \"18px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xl\",\n \"cssVar\": \"--flui-font-size-xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"xl\"\n ],\n \"group\": \"font\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-2xl\",\n \"cssVar\": \"--flui-font-size-2xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"2xl\"\n ],\n \"group\": \"font\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-tight\",\n \"cssVar\": \"--flui-font-line-height-tight\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"tight\"\n ],\n \"group\": \"font\",\n \"value\": \"1.2\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-normal\",\n \"cssVar\": \"--flui-font-line-height-normal\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"normal\"\n ],\n \"group\": \"font\",\n \"value\": \"1.5\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-relaxed\",\n \"cssVar\": \"--flui-font-line-height-relaxed\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"relaxed\"\n ],\n \"group\": \"font\",\n \"value\": \"1.75\",\n \"isColor\": false,\n \"reference\": null\n }\n];\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","Button","forwardRef","className","variant","size","fullWidth","props","ref","jsx","inputVariants","Input","invalid","label","id","type","showPassword","setShowPassword","useState","isPassword","resolvedType","inputId","input","jsxs","v","Card","CardHeader","CardTitle","CardDescription","CardContent","trackVariants","thumbVariants","Switch","checked","defaultChecked","onCheckedChange","disabled","isControlled","internal","setInternal","value","next","Checkbox","indeterminate","innerRef","useRef","useEffect","setRefs","node","RadioGroupContext","createContext","RadioGroup","defaultValue","onValueChange","name","children","autoName","useId","current","onChange","Radio","ctx","useContext","selectVariants","Select","DropdownContext","useDropdown","Dropdown","open","setOpen","onClick","e","onKey","DropdownTrigger","cloneElement","DropdownContent","align","DropdownItem","onSelect","destructive","DropdownSeparator","badgeVariants","Badge","sizeVariants","statusColor","dotSize","initials","p","_a","Avatar","src","alt","status","errored","setErrored","showImg","spinnerVariants","Spinner","Progress","max","pct","Divider","orientation","Breadcrumb","items","Children","child","i","Fragment","BreadcrumbSeparator","BreadcrumbItem","href","useCountUp","target","duration","setCurrent","start","tick","now","t","eased","StatCard","countUp","formatCount","delta","helpText","icon","animated","hasDelta","up","displayValue","alertVariants","iconColor","glyph","Alert","title","onClose","useControllableState","setValue","useCallback","TabsContext","useTabs","Tabs","TabsList","listRef","indicator","setIndicator","list","active","TabsTrigger","TabsContent","AccordionContext","ItemContext","useAccordion","Accordion","init","toggle","prev","has","AccordionItem","AccordionTrigger","isOpen","AccordionContent","sidePos","Tooltip","content","side","PopoverContext","usePopover","Popover","PopoverTrigger","PopoverContent","Portal","mounted","setMounted","createPortal","useDismissable","prevOverflow","ModalContext","Modal","onOpenChange","close","ModalContent","ModalHeader","ModalTitle","ModalDescription","ModalBody","ModalFooter","DrawerContext","sideClasses","Drawer","DrawerContent","DrawerHeader","DrawerTitle","DrawerBody","DrawerFooter","ToastContext","variantStyles","ToastProvider","toasts","setToasts","idRef","dismiss","toast","options","ToastCard","item","onDismiss","timer","styles","useToast","textareaVariants","Textarea","CodeBlock","code","language","handleCopy","CopyIcon","Sidebar","user","nav","footerAction","itemClass","isActive","group","SettingRow","description","SettingsCard","SettingsGroup","IntegrationRow","connected","onConnect","onDisconnect","ProfileSettingsModal","defaultSection","controlledSection","onSectionChange","sectionTitles","sectionSubtitles","renderSection","firstId","_b","internalSection","setInternalSection","handleSelect","activeItem","g","subtitle","ThemeContext","MODE_KEY","BRAND_KEY","RADIUS_KEY","prefersDark","load","key","fallback","ThemeProvider","defaultMode","defaultBrand","defaultRadius","mode","setModeState","brand","setBrandState","radius","setRadiusState","systemDark","setSystemDark","mq","resolvedMode","el","setMode","setBrand","b","setRadius","r","toggleMode","useMemo","useTheme","tokens"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/lib/utils/cn.ts","../src/lib/components/Button/Button.tsx","../src/lib/components/Input/Input.tsx","../src/lib/components/Card/Card.tsx","../src/lib/components/Switch/Switch.tsx","../src/lib/components/Checkbox/Checkbox.tsx","../src/lib/components/Radio/Radio.tsx","../src/lib/components/Select/Select.tsx","../src/lib/components/Dropdown/Dropdown.tsx","../src/lib/components/Badge/Badge.tsx","../src/lib/components/Avatar/Avatar.tsx","../src/lib/components/Spinner/Spinner.tsx","../src/lib/components/Progress/Progress.tsx","../src/lib/components/Divider/Divider.tsx","../src/lib/components/Breadcrumb/Breadcrumb.tsx","../src/lib/components/StatCard/StatCard.tsx","../src/lib/components/Alert/Alert.tsx","../src/lib/hooks/useControllableState.ts","../src/lib/components/Tabs/Tabs.tsx","../src/lib/components/Accordion/Accordion.tsx","../src/lib/components/Tooltip/Tooltip.tsx","../src/lib/components/Popover/Popover.tsx","../src/lib/utils/Portal.tsx","../src/lib/hooks/useDismissable.ts","../src/lib/components/Modal/Modal.tsx","../src/lib/components/Drawer/Drawer.tsx","../src/lib/components/Toast/Toast.tsx","../src/lib/components/Textarea/Textarea.tsx","../src/lib/components/CodeBlock/CodeBlock.tsx","../src/lib/components/ProfileSettingsModal/ProfileSettingsModal.tsx","../src/lib/theme/ThemeProvider.tsx","../src/lib/tokens/tokens.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Combina classes condicionais e resolve conflitos do Tailwind. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const buttonVariants = cva(\n // base: tudo derivado de tokens via utilitários mapeados no @theme\n \"inline-flex items-center justify-center gap-2 font-medium whitespace-nowrap cursor-pointer \" +\n \"transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary \" +\n \"focus-visible:ring-offset-2 ring-offset-bg disabled:opacity-50 \" +\n \"disabled:pointer-events-none disabled:cursor-not-allowed select-none\",\n {\n variants: {\n variant: {\n primary: \"bg-primary text-fg-on-brand hover:bg-primary-hover active:bg-primary-active\",\n secondary:\n \"bg-bg-muted text-fg hover:bg-border-default active:bg-border-strong\",\n outline:\n \"border border-border-strong bg-transparent text-fg hover:bg-bg-subtle\",\n ghost: \"bg-transparent text-fg hover:bg-bg-muted\",\n accent: \"bg-accent text-accent-fg hover:bg-accent-hover active:bg-accent-active\",\n danger: \"bg-danger text-fg-on-brand hover:bg-danger-hover\",\n \"danger-ghost\": \"bg-transparent text-danger hover:bg-danger/10\",\n },\n size: {\n sm: \"h-8 px-3 text-sm rounded-lg\",\n md: \"h-10 px-4 text-md rounded-lg\",\n lg: \"h-12 px-6 text-lg rounded-lg\",\n },\n fullWidth: { true: \"w-full\" },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, fullWidth, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size, fullWidth }), className)}\n {...props}\n />\n ),\n);\n\nButton.displayName = \"Button\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const inputVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none rounded-lg \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-3 text-sm\",\n lg: \"h-12 px-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {\n label?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, size, invalid, label, id, type, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const isPassword = type === \"password\";\n const resolvedType = isPassword ? (showPassword ? \"text\" : \"password\") : type;\n\n const inputId = id ?? (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\n\n const input = (\n <div className=\"relative flex w-full items-center\">\n <input\n ref={ref}\n id={inputId}\n type={resolvedType}\n className={cn(\n inputVariants({ size, invalid }),\n isPassword && \"pr-10\",\n className,\n )}\n {...props}\n />\n {isPassword && (\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? \"Ocultar senha\" : \"Mostrar senha\"}\n className=\"absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg\"\n >\n {showPassword ? (\n // olho fechado\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <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\" />\n <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\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n ) : (\n // olho aberto\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )}\n </button>\n )}\n </div>\n );\n\n if (!label) return input;\n return (\n <div className=\"flex w-full flex-col gap-1.5\">\n <label htmlFor={inputId} className=\"text-xs font-medium text-fg\">\n {label}\n </label>\n {input}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Card = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"bg-bg border border-border-default rounded-lg shadow-sm\",\n className,\n )}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-1 p-6\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />\n));\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-fg-muted\", className)} {...props} />\n));\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst trackVariants = cva(\n \"relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors \" +\n \"outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 \" +\n \"ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: { sm: \"h-5 w-9\", md: \"h-6 w-11\" },\n checked: { true: \"bg-primary\", false: \"bg-border-strong\" },\n },\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nconst thumbVariants = cva(\n \"pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform\",\n {\n variants: {\n size: { sm: \"h-4 w-4\", md: \"h-5 w-5\" },\n checked: { true: \"\", false: \"translate-x-0\" },\n },\n compoundVariants: [\n { size: \"sm\", checked: true, class: \"translate-x-4\" },\n { size: \"md\", checked: true, class: \"translate-x-5\" },\n ],\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onChange\">,\n VariantProps<typeof trackVariants> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked, defaultChecked, onCheckedChange, disabled, ...props }, ref) => {\n const isControlled = checked !== undefined;\n const [internal, setInternal] = useState(defaultChecked ?? false);\n const value = isControlled ? checked : internal;\n\n const toggle = () => {\n const next = !value;\n if (!isControlled) setInternal(next);\n onCheckedChange?.(next);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n disabled={disabled}\n onClick={toggle}\n className={cn(trackVariants({ size, checked: value }), className)}\n {...props}\n >\n <span className={thumbVariants({ size, checked: value })} />\n </button>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n","import { forwardRef, useEffect, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"type\"> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, indeterminate = false, disabled, id, ...props }, ref) => {\n const innerRef = useRef<HTMLInputElement>(null);\n\n // expõe a ref interna e sincroniza o estado indeterminate (não é atributo HTML)\n useEffect(() => {\n if (innerRef.current) innerRef.current.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const setRefs = (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n };\n\n return (\n <label\n className={cn(\n \"relative inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={setRefs}\n id={id}\n type=\"checkbox\"\n disabled={disabled}\n className=\"peer sr-only\"\n {...props}\n />\n {/* a caixa visual. Os modificadores [&>...] miram os filhos a partir\n do estado do input irmão (peer), já que peer-* só alcança irmãos. */}\n <span\n className={cn(\n \"relative flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary peer-checked:bg-primary\",\n \"peer-indeterminate:border-primary peer-indeterminate:bg-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n // check visível só quando checked (e não indeterminate)\n \"peer-checked:[&>svg]:opacity-100 peer-indeterminate:[&>svg]:opacity-0\",\n // traço visível só quando indeterminate\n \"peer-indeterminate:[&>span]:opacity-100\",\n )}\n >\n <svg\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5 text-fg-on-brand opacity-0\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" />\n </svg>\n <span className=\"absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { createContext, forwardRef, useContext, useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface RadioGroupContextValue {\n name: string;\n value?: string;\n onChange: (value: string) => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nexport interface RadioGroupProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n}\n\nexport function RadioGroup({\n value,\n defaultValue,\n onValueChange,\n name,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n const autoName = useId();\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState(defaultValue);\n const current = isControlled ? value : internal;\n\n const onChange = (next: string) => {\n if (!isControlled) setInternal(next);\n onValueChange?.(next);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{ name: name ?? autoName, value: current, onChange }}\n >\n <div role=\"radiogroup\" className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onChange\"> {\n value: string;\n label?: React.ReactNode;\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ className, value, label, disabled, ...props }, ref) => {\n const ctx = useContext(RadioGroupContext);\n if (!ctx) throw new Error(\"<Radio> precisa estar dentro de <RadioGroup>\");\n const checked = ctx.value === value;\n\n return (\n <label\n className={cn(\n \"inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={ref}\n type=\"radio\"\n name={ctx.name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={() => ctx.onChange(value)}\n className=\"peer sr-only\"\n {...props}\n />\n <span\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n \"peer-checked:[&>span]:scale-100\",\n )}\n >\n <span className=\"h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst selectVariants = cva(\n \"w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9\",\n {\n variants: {\n size: {\n sm: \"h-8 pl-3 text-xs\",\n md: \"h-10 pl-3 text-sm\",\n lg: \"h-12 pl-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof selectVariants> {}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, size, invalid, children, ...props }, ref) => (\n <div className=\"relative inline-flex w-full items-center\">\n <select\n ref={ref}\n className={cn(selectVariants({ size, invalid }), className)}\n {...props}\n >\n {children}\n </select>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"pointer-events-none absolute right-3 h-4 w-4 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </div>\n ),\n);\n\nSelect.displayName = \"Select\";\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface DropdownContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\n\nfunction useDropdown() {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Componentes de Dropdown precisam estar dentro de <Dropdown>\");\n return ctx;\n}\n\nexport function Dropdown({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n // fecha ao clicar fora ou apertar Esc\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <DropdownContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block text-left\">\n {children}\n </div>\n </DropdownContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function DropdownTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = useDropdown();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n });\n}\n\nexport function DropdownContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = useDropdown();\n if (!open) return null;\n return (\n <div\n role=\"menu\"\n className={cn(\n \"absolute z-50 mt-1 min-w-44 rounded-md border border-border-default bg-bg p-1 shadow-md\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport interface DropdownItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n destructive?: boolean;\n}\n\nexport function DropdownItem({\n children,\n onSelect,\n destructive,\n className,\n ...props\n}: DropdownItemProps) {\n const { setOpen } = useDropdown();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n onClick={() => {\n onSelect?.();\n setOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors cursor-pointer\",\n \"hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed\",\n destructive ? \"text-danger\" : \"text-fg\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function DropdownSeparator() {\n return <div role=\"separator\" className=\"my-1 h-px bg-border-default\" />;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-[var(--flui-radius-badge)]\",\n {\n variants: {\n variant: {\n neutral: \"bg-bg-muted text-fg\",\n primary: \"bg-brand-500 text-fg-on-brand\",\n accent: \"bg-accent-subtle text-accent-fg\",\n \"accent-bold\": \"bg-accent text-accent-fg\",\n success: \"bg-accent text-accent-fg\",\n warning: \"bg-warning/35 text-fg\",\n danger: \"bg-danger/10 text-danger\",\n outline: \"border border-border-strong text-fg\",\n },\n size: {\n sm: \"px-2 py-0.5 text-xs\",\n md: \"px-2.5 py-0.5 text-sm\",\n },\n },\n defaultVariants: { variant: \"neutral\", size: \"sm\" },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n ),\n);\n\nBadge.displayName = \"Badge\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst sizeVariants = cva(\"relative inline-flex shrink-0 select-none\", {\n variants: {\n size: {\n xs: \"h-6 w-6 text-xs\",\n sm: \"h-8 w-8 text-sm\",\n md: \"h-10 w-10 text-md\",\n lg: \"h-12 w-12 text-lg\",\n xl: \"h-16 w-16 text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nconst statusColor: Record<string, string> = {\n online: \"bg-accent\",\n busy: \"bg-danger\",\n away: \"bg-warning\",\n offline: \"bg-border-strong\",\n};\n\n// Tamanho fixo do dot por tamanho de avatar para manter proporção legível\nconst dotSize: Record<string, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-3.5 w-3.5\",\n};\n\nfunction initials(name?: string) {\n if (!name) return \"\";\n return name\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((p) => p[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n}\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof sizeVariants> {\n src?: string;\n alt?: string;\n name?: string;\n status?: \"online\" | \"busy\" | \"away\" | \"offline\";\n}\n\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size = \"md\", src, alt, name, status, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n const showImg = src && !errored;\n\n return (\n <span ref={ref} className={cn(sizeVariants({ size }), className)} {...props}>\n {/* círculo com overflow-hidden isolado — não clipa o dot */}\n <span className=\"flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg\">\n {showImg ? (\n <img\n src={src}\n alt={alt ?? name ?? \"\"}\n className=\"h-full w-full object-cover\"\n onError={() => setErrored(true)}\n />\n ) : (\n <span aria-hidden>{initials(name)}</span>\n )}\n </span>\n\n {/* dot posicionado dentro do círculo, próximo à borda inferior direita */}\n {status && (\n <span\n aria-label={status}\n className={cn(\n \"absolute bottom-[8%] right-[8%] rounded-full ring-2 ring-bg\",\n statusColor[status],\n dotSize[size ?? \"md\"],\n )}\n />\n )}\n </span>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\"animate-spin text-primary\", {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nexport const Spinner = forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, label = \"Carregando\", ...props }, ref) => (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n role=\"status\"\n aria-label={label}\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"3\" className=\"opacity-20\" />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n ),\n);\n\nSpinner.displayName = \"Spinner\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 0–100. Omita (ou use indeterminate) para estado indeterminado. */\n value?: number;\n max?: number;\n indeterminate?: boolean;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, indeterminate, ...props }, ref) => {\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={indeterminate ? undefined : value}\n className={cn(\n \"relative h-1 w-full overflow-hidden rounded-full bg-bg-muted\",\n className,\n )}\n {...props}\n >\n {indeterminate ? (\n <div className=\"absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]\" />\n ) : (\n <div\n className=\"h-full rounded-full bg-primary transition-[width] duration-300\"\n style={{ width: `${pct}%` }}\n />\n )}\n </div>\n );\n },\n);\n\nProgress.displayName = \"Progress\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n /** rótulo central (apenas horizontal) */\n label?: React.ReactNode;\n}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ className, orientation = \"horizontal\", label, ...props }, ref) => {\n if (orientation === \"vertical\") {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"mx-2 h-full w-px self-stretch bg-border-default\", className)}\n {...props}\n />\n );\n }\n\n if (label) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"flex items-center gap-3 text-sm text-fg-muted\", className)}\n {...props}\n >\n <span className=\"h-px flex-1 bg-border-default\" />\n {label}\n <span className=\"h-px flex-1 bg-border-default\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"h-px w-full bg-border-default\", className)}\n {...props}\n />\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n","import { Children, Fragment, forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Breadcrumb = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => {\n const items = Children.toArray(children);\n return (\n <nav ref={ref} aria-label=\"breadcrumb\" className={className} {...props}>\n <ol className=\"flex flex-wrap items-center gap-1.5 text-sm\">\n {items.map((child, i) => (\n <Fragment key={i}>\n {child}\n {i < items.length - 1 && <BreadcrumbSeparator />}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n },\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport interface BreadcrumbItemProps\n extends React.LiHTMLAttributes<HTMLLIElement> {\n href?: string;\n current?: boolean;\n}\n\nexport function BreadcrumbItem({\n href,\n current,\n className,\n children,\n ...props\n}: BreadcrumbItemProps) {\n return (\n <li className={cn(\"inline-flex items-center\", className)} {...props}>\n {current || !href ? (\n <span\n aria-current={current ? \"page\" : undefined}\n className={cn(current ? \"font-medium text-fg\" : \"text-fg-muted\")}\n >\n {children}\n </span>\n ) : (\n <a\n href={href}\n className=\"text-fg-muted transition-colors hover:text-fg hover:underline\"\n >\n {children}\n </a>\n )}\n </li>\n );\n}\n\nexport function BreadcrumbSeparator() {\n return (\n <li aria-hidden className=\"text-fg-muted\">\n /\n </li>\n );\n}\n","import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Badge } from \"../Badge/Badge\";\n\nfunction useCountUp(target: number, duration = 1000) {\n const [current, setCurrent] = useState(0);\n\n useEffect(() => {\n setCurrent(0);\n const start = performance.now();\n const tick = (now: number) => {\n const t = Math.min((now - start) / duration, 1);\n const eased = 1 - (1 - t) ** 4; // quartic ease-out: rápido → lento\n setCurrent(target * eased);\n if (t < 1) requestAnimationFrame(tick);\n else setCurrent(target);\n };\n requestAnimationFrame(tick);\n }, [target, duration]);\n\n return current;\n}\n\nexport interface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value?: React.ReactNode;\n /** Valor numérico para animação tipo cassino. Usa `formatCount` para exibir. */\n countUp?: number;\n /** Formata o número animado. Default: toLocaleString('pt-BR'). */\n formatCount?: (n: number) => string;\n /** variação percentual; positivo = alta (success), negativo = baixa (danger) */\n delta?: number;\n helpText?: React.ReactNode;\n icon?: React.ReactNode;\n}\n\nexport const StatCard = forwardRef<HTMLDivElement, StatCardProps>(\n ({ className, label, value, countUp, formatCount, delta, helpText, icon, ...props }, ref) => {\n const animated = useCountUp(countUp ?? 0);\n const hasDelta = typeof delta === \"number\";\n const up = hasDelta && delta! >= 0;\n\n const displayValue =\n countUp !== undefined\n ? (formatCount ? formatCount(animated) : Math.round(animated).toLocaleString(\"pt-BR\"))\n : value;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-neutral-900 p-8 shadow-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-fg-muted\">{label}</span>\n {icon && <span className=\"text-fg-muted\">{icon}</span>}\n </div>\n <span className=\"text-3xl font-bold text-fg whitespace-nowrap tabular-nums\">\n {displayValue}\n </span>\n {hasDelta && (\n <Badge variant={up ? \"success\" : \"danger\"} size=\"sm\" className=\"self-start\">\n {up ? \"▲\" : \"▼\"} {Math.abs(delta!)}%\n </Badge>\n )}\n {helpText && <span className=\"text-xs text-fg-muted\">{helpText}</span>}\n </div>\n );\n },\n);\n\nStatCard.displayName = \"StatCard\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst alertVariants = cva(\"flex gap-3 rounded-lg p-4 text-sm\", {\n variants: {\n variant: {\n info: \"bg-primary/10 text-fg\",\n success: \"bg-success-subtle text-fg\",\n warning: \"bg-warning/10 text-fg\",\n danger: \"bg-danger/10 text-fg\",\n },\n },\n defaultVariants: { variant: \"info\" },\n});\n\nconst iconColor: Record<string, string> = {\n info: \"text-primary\",\n success: \"text-success-fg\",\n warning: \"text-warning\",\n danger: \"text-danger\",\n};\n\n// glifos simples por variante (sem dependência de lib de ícones)\nconst glyph: Record<string, string> = {\n info: \"ℹ\",\n success: \"✓\",\n warning: \"!\",\n danger: \"✕\",\n};\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof alertVariants> {\n title?: React.ReactNode;\n onClose?: () => void;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", title, onClose, children, ...props }, ref) => {\n const v = variant ?? \"info\";\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-xs font-bold\",\n iconColor[v],\n )}\n >\n {glyph[v]}\n </span>\n <div className=\"min-w-0 flex-1\">\n {title && <div className=\"font-semibold text-fg\">{title}</div>}\n {children && <div className=\"text-fg-muted\">{children}</div>}\n </div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n className=\"shrink-0 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n )}\n </div>\n );\n },\n);\n\nAlert.displayName = \"Alert\";\n","import { useCallback, useState } from \"react\";\n\n/**\n * Suporta componentes controlados e não-controlados com a mesma API.\n * Se `value` for fornecido, o componente é controlado; senão usa estado interno.\n */\nexport function useControllableState<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T;\n defaultValue: T;\n onChange?: (value: T) => void;\n}) {\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<T>(defaultValue);\n const current = isControlled ? (value as T) : internal;\n\n const setValue = useCallback(\n (next: T) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n return [current, setValue] as const;\n}\n","import { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { cn } from \"../../utils/cn\";\n\ninterface TabsContextValue {\n value: string;\n setValue: (value: string) => void;\n}\nconst TabsContext = createContext<TabsContextValue | null>(null);\nfunction useTabs() {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Componentes de Tabs precisam estar dentro de <Tabs>\");\n return ctx;\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n className,\n children,\n ...props\n}: TabsProps) {\n const [current, setValue] = useControllableState({\n value,\n defaultValue: defaultValue ?? \"\",\n onChange: onValueChange,\n });\n return (\n <TabsContext.Provider value={{ value: current, setValue }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n const { value } = useTabs();\n const listRef = useRef<HTMLDivElement>(null);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, ready: false });\n\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const active = list.querySelector('[aria-selected=\"true\"]') as HTMLElement | null;\n if (!active) return;\n setIndicator({ left: active.offsetLeft, width: active.offsetWidth, ready: true });\n }, [value]);\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n className={cn(\"relative flex items-center gap-1 border-b border-border-default\", className)}\n {...props}\n >\n {children}\n {indicator.ready && (\n <span\n aria-hidden\n className=\"pointer-events-none absolute bottom-[-1px] h-[2px] rounded-full bg-primary transition-all duration-250 ease-out\"\n style={{ left: indicator.left, width: indicator.width }}\n />\n )}\n </div>\n );\n}\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\nexport function TabsTrigger({ value, className, ...props }: TabsTriggerProps) {\n const ctx = useTabs();\n const active = ctx.value === value;\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => ctx.setValue(value)}\n className={cn(\n \"px-4 py-2 text-sm font-medium transition-colors outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg\",\n active ? \"text-fg\" : \"text-fg-muted hover:text-fg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function TabsContent({ value, className, ...props }: TabsContentProps) {\n const ctx = useTabs();\n if (ctx.value !== value) return null;\n return (\n <div\n role=\"tabpanel\"\n className={cn(\"pt-4 animate-[flui-slide-up_200ms_ease-out]\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useContext, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface AccordionContextValue {\n open: string[];\n toggle: (value: string) => void;\n}\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\nconst ItemContext = createContext<string>(\"\");\n\nfunction useAccordion() {\n const ctx = useContext(AccordionContext);\n if (!ctx) throw new Error(\"Componentes de Accordion precisam estar dentro de <Accordion>\");\n return ctx;\n}\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n}\n\nexport function Accordion({\n type = \"single\",\n defaultValue,\n className,\n children,\n ...props\n}: AccordionProps) {\n const init = defaultValue\n ? Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]\n : [];\n const [open, setOpen] = useState<string[]>(init);\n\n const toggle = (value: string) =>\n setOpen((prev) => {\n const has = prev.includes(value);\n if (type === \"single\") return has ? [] : [value];\n return has ? prev.filter((v) => v !== value) : [...prev, value];\n });\n\n return (\n <AccordionContext.Provider value={{ open, toggle }}>\n <div\n className={cn(\"border-y border-border-default divide-y divide-border-default\", className)}\n {...props}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function AccordionItem({ value, children, ...props }: AccordionItemProps) {\n return (\n <ItemContext.Provider value={value}>\n <div {...props}>{children}</div>\n </ItemContext.Provider>\n );\n}\n\nexport function AccordionTrigger({\n className,\n children,\n ...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => ctx.toggle(value)}\n className={cn(\n \"flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg\",\n className,\n )}\n {...props}\n >\n {children}\n <span className={cn(\"text-fg-muted transition-transform\", isOpen && \"rotate-180\")}>\n ▾\n </span>\n </button>\n );\n}\n\nexport function AccordionContent({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n if (!ctx.open.includes(value)) return null;\n return <div className={cn(\"pb-4 text-sm text-fg-muted\", className)} {...props} />;\n}\n","import { useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nconst sidePos: Record<string, string> = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n};\n\nexport interface TooltipProps {\n content: React.ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n children: React.ReactNode;\n className?: string;\n}\n\n/**\n * Tooltip leve baseado em hover/focus. O posicionamento é relativo ao gatilho\n * (sem detecção de colisão com a borda da tela — para isso, usar Floating UI).\n */\nexport function Tooltip({ content, side = \"top\", children, className }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const id = useId();\n\n return (\n <span\n className=\"relative inline-flex\"\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <span aria-describedby={open ? id : undefined}>{children}</span>\n {open && (\n <span\n role=\"tooltip\"\n id={id}\n className={cn(\n \"pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-fg px-2 py-1 text-xs text-bg shadow-md\",\n \"animate-[flui-fade-in_120ms_ease-out]\",\n sidePos[side],\n className,\n )}\n >\n {content}\n </span>\n )}\n </span>\n );\n}\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\nfunction usePopover() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error(\"Componentes de Popover precisam estar dentro de <Popover>\");\n return ctx;\n}\n\nexport function Popover({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && setOpen(false);\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <PopoverContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block\">\n {children}\n </div>\n </PopoverContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function PopoverTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = usePopover();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": open,\n });\n}\n\nexport function PopoverContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = usePopover();\n if (!open) return null;\n return (\n <div\n role=\"dialog\"\n className={cn(\n \"absolute z-50 mt-2 min-w-56 rounded-lg border border-border-default bg-bg p-4 shadow-lg\",\n \"animate-[flui-slide-up_140ms_ease-out]\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n/** Renderiza os filhos em document.body, evitando problemas de overflow/z-index. */\nexport function Portal({ children }: { children: React.ReactNode }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n if (!mounted) return null;\n return createPortal(children, document.body);\n}\n","import { useEffect } from \"react\";\n\n/** Trava o scroll do body e fecha no Escape enquanto `open` for true. */\nexport function useDismissable(open: boolean, onClose: () => void) {\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && onClose();\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.body.style.overflow = prevOverflow;\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open, onClose]);\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\nconst ModalContext = createContext<{ close: () => void } | null>(null);\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport function Modal({ open, onOpenChange, children }: ModalProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <ModalContext.Provider value={{ close }}>\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </ModalContext.Provider>\n </Portal>\n );\n}\n\nexport function ModalContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(ModalContext);\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-10 w-full max-w-lg rounded-xl border border-border-default bg-bg shadow-lg\",\n \"animate-[flui-slide-up_160ms_ease-out]\",\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function ModalHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1 p-6 pb-2\", className)} {...props} />;\n}\nexport function ModalTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function ModalDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn(\"text-sm text-fg-muted\", className)} {...props} />;\n}\nexport function ModalBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"px-6 py-2\", className)} {...props} />;\n}\nexport function ModalFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn(\"flex justify-end gap-2 p-6 pt-4\", className)} {...props} />\n );\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\ntype Side = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nconst DrawerContext = createContext<{ close: () => void; side: Side } | null>(null);\n\nconst sideClasses: Record<Side, string> = {\n left: \"left-0 top-0 h-full w-[420px] max-w-[96vw] border-r\",\n right: \"right-0 top-0 h-full w-[420px] max-w-[96vw] border-l\",\n top: \"top-0 left-0 w-full max-h-[90vh] border-b\",\n bottom: \"bottom-0 left-0 w-full max-h-[90vh] border-t\",\n};\n\nexport interface DrawerProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: Side;\n children: React.ReactNode;\n}\n\nexport function Drawer({ open, onOpenChange, side = \"right\", children }: DrawerProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <DrawerContext.Provider value={{ close, side }}>\n <div className=\"fixed inset-0 z-50\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </DrawerContext.Provider>\n </Portal>\n );\n}\n\nexport function DrawerContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(DrawerContext);\n const side = ctx?.side ?? \"right\";\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"absolute z-10 flex flex-col border-border-default bg-bg shadow-lg\",\n \"animate-[flui-fade-in_160ms_ease-out]\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex flex-col gap-1 border-b border-border-default p-6\", className)}\n {...props}\n />\n );\n}\nexport function DrawerTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function DrawerBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex-1 overflow-y-auto p-6\", className)} {...props} />;\n}\nexport function DrawerFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex justify-end gap-2 border-t border-border-default p-6\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { cn } from \"../../utils/cn\";\n\ntype ToastVariant = \"info\" | \"success\" | \"warning\" | \"danger\";\n\ninterface ToastAction {\n label: string;\n onClick: () => void;\n}\n\ninterface ToastOptions {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number; // ms; 0 = não fecha sozinho\n icon?: React.ReactNode;\n action?: ToastAction;\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\n leaving?: boolean;\n}\n\ninterface ToastContextValue {\n toast: (options: ToastOptions) => number;\n dismiss: (id: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nconst variantStyles: Record<ToastVariant, { wrapper: string; title: string; description: string; action: string }> = {\n info: { wrapper: \"bg-[var(--color-toast-info-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-primary hover:text-primary/80\" },\n success: { wrapper: \"bg-[var(--color-toast-success-bg)]\", title: \"text-success-fg\", description: \"text-fg-muted\", action: \"text-success-fg hover:text-success-fg/80\" },\n warning: { wrapper: \"bg-[var(--color-toast-warning-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-fg hover:text-fg/80\" },\n danger: { wrapper: \"bg-[var(--color-toast-danger-bg)]\", title: \"text-danger\", description: \"text-fg-muted\", action: \"text-danger hover:text-danger/80\" },\n};\n\nexport function ToastProvider({ children }: { children: React.ReactNode }) {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const idRef = useRef(0);\n\n const dismiss = useCallback((id: number) => {\n setToasts((prev) => prev.map((t) => t.id === id ? { ...t, leaving: true } : t));\n setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, 160);\n }, []);\n\n const toast = useCallback((options: ToastOptions) => {\n const id = ++idRef.current;\n setToasts((prev) => [...prev, { id, variant: \"info\", duration: 4000, ...options }]);\n return id;\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast, dismiss }}>\n {children}\n <Portal>\n <div className=\"pointer-events-none fixed bottom-4 right-8 z-[60] flex w-80 max-w-[90vw] flex-col gap-2\">\n {toasts.map((t) => (\n <ToastCard key={t.id} item={t} onDismiss={() => dismiss(t.id)} />\n ))}\n </div>\n </Portal>\n </ToastContext.Provider>\n );\n}\n\nfunction ToastCard({ item, onDismiss }: { item: ToastItem; onDismiss: () => void }) {\n useEffect(() => {\n if (!item.duration) return;\n const timer = setTimeout(onDismiss, item.duration);\n return () => clearTimeout(timer);\n }, [item.duration, onDismiss]);\n\n const styles = variantStyles[item.variant ?? \"info\"];\n\n return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto flex items-start gap-3 rounded-3xl p-4 shadow-sm\",\n item.leaving\n ? \"animate-[flui-slide-down_160ms_ease-in_forwards]\"\n : \"animate-[flui-slide-up_160ms_ease-out]\",\n styles.wrapper,\n )}\n >\n {item.icon && (\n <span className={cn(\"mt-0.5 shrink-0\", styles.title)}>{item.icon}</span>\n )}\n\n <div className=\"min-w-0 flex-1\">\n <div className={cn(\"text-sm font-semibold\", styles.title)}>{item.title}</div>\n {item.description && (\n <div className={cn(\"mt-0.5 text-sm\", styles.description)}>{item.description}</div>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center gap-1\">\n {item.action && (\n <button\n type=\"button\"\n onClick={() => { item.action!.onClick(); onDismiss(); }}\n className={cn(\"cursor-pointer rounded-sm px-1.5 py-0.5 text-xs font-semibold transition-colors\", styles.action)}\n >\n {item.action.label}\n </button>\n )}\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Fechar\"\n className={cn(\"cursor-pointer rounded-sm px-1 transition-colors opacity-60 hover:opacity-100\", styles.title)}\n >\n ✕\n </button>\n </div>\n </div>\n );\n}\n\nexport function useToast() {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast precisa estar dentro de <ToastProvider>\");\n return ctx;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const textareaVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none resize-y rounded-lg min-h-28 px-3 py-3 text-sm \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { invalid: false },\n },\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, invalid, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(textareaVariants({ invalid }), className)}\n {...props}\n />\n ),\n);\n\nTextarea.displayName = \"Textarea\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useToast } from \"../Toast/Toast\";\n\nexport interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Rótulo exibido no canto superior esquerdo (ex: \"tsx\", \"bash\"). */\n language?: string;\n /** Código a ser exibido. */\n code: string;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\n ({ code, language, className, ...props }, ref) => {\n const { toast } = useToast();\n\n function handleCopy() {\n navigator.clipboard.writeText(code).then(() => {\n toast({ title: \"Copiado!\", variant: \"success\", duration: 2000 });\n });\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"overflow-hidden rounded-lg bg-bg-subtle\", className)}\n {...props}\n >\n <div className=\"flex items-center justify-between bg-bg-muted px-4 py-2\">\n {language ? (\n <span className=\"font-mono text-xs text-fg-muted\">{language}</span>\n ) : (\n <span />\n )}\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copiar código\"\n className=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-bg hover:text-fg\"\n >\n <CopyIcon />\n Copiar\n </button>\n </div>\n <pre className=\"overflow-x-auto p-4 text-sm leading-relaxed\">\n <code className=\"font-mono text-fg\">{code}</code>\n </pre>\n </div>\n );\n },\n);\n\nCodeBlock.displayName = \"CodeBlock\";\n\nfunction CopyIcon() {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <rect x=\"6\" y=\"6\" width=\"8\" height=\"8\" rx=\"1.5\" />\n <path d=\"M4 10H3a1.5 1.5 0 0 1-1.5-1.5v-6A1.5 1.5 0 0 1 3 1h6A1.5 1.5 0 0 1 10.5 2.5V4\" />\n </svg>\n );\n}\n","import { useState } from \"react\";\nimport { Modal, ModalContent } from \"../Modal/Modal\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface ProfileSettingsUser {\n name: string;\n subtitle?: string;\n /** Texto de fallback se não houver avatar (ex: \"EM\") */\n initials?: string;\n /** URL da foto */\n avatar?: string;\n}\n\nexport interface ProfileSettingsNavItem {\n id: string;\n label: string;\n /** Qualquer ReactNode — passe um ícone Tabler ou SVG */\n icon?: React.ReactNode;\n}\n\nexport interface ProfileSettingsNavGroup {\n group: string;\n items: ProfileSettingsNavItem[];\n}\n\nexport interface ProfileSettingsModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n /** Seção ativa inicial */\n defaultSection?: string;\n /** Seção ativa controlada externamente */\n activeSection?: string;\n onSectionChange?: (id: string) => void;\n /** Título por seção. Fallback: label do item */\n sectionTitles?: Record<string, string>;\n /** Subtítulo por seção */\n sectionSubtitles?: Record<string, string>;\n /** Renderiza o conteúdo da seção ativa */\n renderSection?: (id: string) => React.ReactNode;\n /** Ação no rodapé do sidebar (ex: \"Get help\") */\n footerAction?: React.ReactNode;\n}\n\n// ─── Sidebar ──────────────────────────────────────────────────────────────────\n\nfunction Sidebar({\n user,\n nav,\n active,\n onSelect,\n footerAction,\n}: {\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n active: string;\n onSelect: (id: string) => void;\n footerAction?: React.ReactNode;\n}) {\n const itemClass = (isActive: boolean) =>\n \"flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm transition-colors \" +\n (isActive ? \"bg-bg-muted font-medium text-fg\" : \"text-fg hover:bg-bg-muted\");\n\n return (\n <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\">\n {/* User info */}\n <div className=\"flex items-center gap-2.5 px-1\">\n {user.avatar ? (\n <img\n src={user.avatar}\n alt={user.name}\n className=\"h-8 w-8 shrink-0 rounded-full object-cover\"\n />\n ) : (\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary-subtle text-xs font-semibold text-primary\">\n {user.initials ?? user.name.slice(0, 2).toUpperCase()}\n </span>\n )}\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-fg\">{user.name}</p>\n {user.subtitle && (\n <p className=\"truncate text-xs text-fg-muted\">{user.subtitle}</p>\n )}\n </div>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"ml-auto h-3.5 w-3.5 shrink-0 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M5 7l3-3 3 3M5 9l3 3 3-3\" />\n </svg>\n </div>\n\n {/* Nav groups */}\n {nav.map(({ group, items }) => (\n <div key={group}>\n <p className=\"mb-1 px-1 text-xs font-semibold text-fg-muted\">{group}</p>\n <ul className=\"flex flex-col gap-0.5\">\n {items.map((item) => (\n <li key={item.id}>\n <button\n type=\"button\"\n onClick={() => onSelect(item.id)}\n className={itemClass(item.id === active)}\n >\n {item.icon && (\n <span className=\"shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]\">\n {item.icon}\n </span>\n )}\n {item.label}\n </button>\n </li>\n ))}\n </ul>\n </div>\n ))}\n\n {/* Footer slot */}\n {footerAction && <div className=\"mt-auto\">{footerAction}</div>}\n </aside>\n );\n}\n\n// ─── Settings primitives ─────────────────────────────────────────────────────\n\nimport { Switch } from \"../Switch/Switch\";\nimport { Button } from \"../Button/Button\";\n\nexport function SettingRow({\n title,\n description,\n checked,\n onCheckedChange,\n}: {\n title: string;\n description?: string;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}) {\n return (\n <div className=\"flex items-center justify-between gap-6 px-4 py-4\">\n <div>\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n <Switch checked={checked} onCheckedChange={onCheckedChange} className=\"shrink-0\" />\n </div>\n );\n}\n\nexport function SettingsCard({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"divide-y divide-border-default rounded-xl bg-bg\">\n {children}\n </div>\n );\n}\n\nexport function SettingsGroup({\n title,\n children,\n}: {\n title: string;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"flex flex-col gap-3\">\n <h3 className=\"text-base font-semibold text-fg\">{title}</h3>\n <SettingsCard>{children}</SettingsCard>\n </div>\n );\n}\n\nexport interface IntegrationRowProps {\n icon: React.ReactNode;\n title: string;\n description?: string;\n connected?: boolean;\n onConnect?: () => void;\n onDisconnect?: () => void;\n}\n\nexport function IntegrationRow({\n icon,\n title,\n description,\n connected = false,\n onConnect,\n onDisconnect,\n}: IntegrationRowProps) {\n return (\n <div className=\"flex items-center gap-4 rounded-xl bg-bg px-4 py-4\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-bg-muted\">\n <span className=\"[&>svg]:h-4 [&>svg]:w-4\">{icon}</span>\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n {connected ? (\n <Button variant=\"danger-ghost\" size=\"sm\" onClick={onDisconnect}>\n Desconectar\n </Button>\n ) : (\n <Button variant=\"secondary\" size=\"sm\" onClick={onConnect}>\n Conectar\n </Button>\n )}\n </div>\n );\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport function ProfileSettingsModal({\n open,\n onOpenChange,\n user,\n nav,\n defaultSection,\n activeSection: controlledSection,\n onSectionChange,\n sectionTitles = {},\n sectionSubtitles = {},\n renderSection,\n footerAction,\n}: ProfileSettingsModalProps) {\n const firstId = nav[0]?.items[0]?.id ?? \"\";\n const [internalSection, setInternalSection] = useState(\n defaultSection ?? firstId,\n );\n\n const active = controlledSection ?? internalSection;\n\n const handleSelect = (id: string) => {\n setInternalSection(id);\n onSectionChange?.(id);\n };\n\n // resolve title: explicit override → nav label → id\n const allItems = nav.flatMap((g) => g.items);\n const activeItem = allItems.find((i) => i.id === active);\n const title = sectionTitles[active] ?? activeItem?.label ?? active;\n const subtitle = sectionSubtitles[active];\n\n return (\n <Modal open={open} onOpenChange={onOpenChange}>\n <ModalContent className=\"max-w-[1300px] overflow-hidden p-0\">\n <div className=\"flex h-[820px]\">\n <Sidebar\n user={user}\n nav={nav}\n active={active}\n onSelect={handleSelect}\n footerAction={footerAction}\n />\n\n <div className=\"flex flex-1 flex-col overflow-hidden bg-bg-subtle\">\n <div className=\"relative px-[200px] pb-8 pt-8\">\n <h2 className=\"font-display text-2xl font-semibold tracking-tight text-fg\">\n {title}\n </h2>\n {subtitle && (\n <p className=\"mt-0.5 text-sm text-fg-muted\">{subtitle}</p>\n )}\n <div className=\"pointer-events-none absolute inset-x-0 -bottom-6 h-6 bg-gradient-to-b from-bg-subtle to-transparent\" />\n </div>\n\n <div className=\"flex-1 overflow-y-auto px-[200px] pb-8 pt-6\">\n {renderSection?.(active) ?? (\n <p className=\"text-sm text-fg-muted\">\n Conteúdo de <strong>{title}</strong>.\n </p>\n )}\n </div>\n </div>\n </div>\n </ModalContent>\n </Modal>\n );\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\n/** Modo de cor. \"system\" segue a preferência do SO. */\nexport type ColorMode = \"light\" | \"dark\" | \"system\";\n\n/**\n * Marca/tema. \"default\" usa o ramp base (:root). Os demais correspondem aos\n * blocos [data-brand=\"…\"] gerados pelo Style Dictionary a partir de\n * tokens/brands/*.json — daí o tipo aberto (string) para temas customizados.\n */\nexport type Brand = \"default\" | (string & {});\n\nexport type RadiusScale = \"sharp\" | \"default\" | \"soft\" | \"round\";\n\ninterface ThemeContextValue {\n /** Preferência escolhida (pode ser \"system\"). */\n mode: ColorMode;\n /** Modo efetivo já resolvido (\"light\" | \"dark\"). */\n resolvedMode: \"light\" | \"dark\";\n brand: Brand;\n radius: RadiusScale;\n setMode: (mode: ColorMode) => void;\n setBrand: (brand: Brand) => void;\n setRadius: (radius: RadiusScale) => void;\n /** Alterna entre claro e escuro (resolve \"system\" antes). */\n toggleMode: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nconst MODE_KEY = \"flui-color-mode\";\nconst BRAND_KEY = \"flui-brand\";\nconst RADIUS_KEY = \"flui-radius\";\n\nfunction prefersDark(): boolean {\n return (\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n );\n}\n\nfunction load<T extends string>(key: string, fallback: T): T {\n try {\n return (localStorage.getItem(key) as T) ?? fallback;\n } catch {\n return fallback;\n }\n}\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Modo inicial caso não haja preferência salva. Padrão: \"system\". */\n defaultMode?: ColorMode;\n /** Marca inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultBrand?: Brand;\n /** Escala de radius inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultRadius?: RadiusScale;\n /**\n * Onde aplicar os atributos data-theme / data-brand / data-radius.\n * Padrão: document.documentElement (escopo global do app).\n */\n target?: () => HTMLElement | null;\n}\n\nexport function ThemeProvider({\n children,\n defaultMode = \"system\",\n defaultBrand = \"default\",\n defaultRadius = \"default\",\n target,\n}: ThemeProviderProps) {\n const [mode, setModeState] = useState<ColorMode>(() =>\n load(MODE_KEY, defaultMode),\n );\n const [brand, setBrandState] = useState<Brand>(() =>\n load(BRAND_KEY, defaultBrand),\n );\n const [radius, setRadiusState] = useState<RadiusScale>(() =>\n load(RADIUS_KEY, defaultRadius),\n );\n const [systemDark, setSystemDark] = useState(prefersDark);\n\n // acompanha mudanças do SO quando o modo é \"system\"\n useEffect(() => {\n const mq = window.matchMedia?.(\"(prefers-color-scheme: dark)\");\n if (!mq) return;\n const onChange = (e: MediaQueryListEvent) => setSystemDark(e.matches);\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n const resolvedMode: \"light\" | \"dark\" =\n mode === \"system\" ? (systemDark ? \"dark\" : \"light\") : mode;\n\n // aplica os atributos no elemento alvo\n useEffect(() => {\n const el = target?.() ?? document.documentElement;\n el.setAttribute(\"data-theme\", resolvedMode);\n if (brand && brand !== \"default\") {\n el.setAttribute(\"data-brand\", brand);\n } else {\n el.removeAttribute(\"data-brand\");\n }\n if (radius && radius !== \"default\") {\n el.setAttribute(\"data-radius\", radius);\n } else {\n el.removeAttribute(\"data-radius\");\n }\n }, [resolvedMode, brand, radius, target]);\n\n const setMode = useCallback((m: ColorMode) => {\n setModeState(m);\n try {\n localStorage.setItem(MODE_KEY, m);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setBrand = useCallback((b: Brand) => {\n setBrandState(b);\n try {\n localStorage.setItem(BRAND_KEY, b);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setRadius = useCallback((r: RadiusScale) => {\n setRadiusState(r);\n try {\n localStorage.setItem(RADIUS_KEY, r);\n } catch {\n /* ignore */\n }\n }, []);\n\n const toggleMode = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode }),\n [mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme precisa estar dentro de <ThemeProvider>\");\n }\n return ctx;\n}\n","// AUTO-GERADO por Style Dictionary. Não editar à mão.\n// Fonte: tokens/*.json — rode `npm run tokens` para regenerar.\n\nexport interface TokenMeta {\n name: string;\n cssVar: string;\n path: string[];\n group: string;\n value: string;\n isColor: boolean;\n reference: string | null;\n}\n\nexport const tokens: TokenMeta[] = [\n {\n \"name\": \"flui-color-accent-scale-50\",\n \"cssVar\": \"--flui-color-accent-scale-50\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f9ffe0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-100\",\n \"cssVar\": \"--flui-color-accent-scale-100\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-200\",\n \"cssVar\": \"--flui-color-accent-scale-200\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8ff80\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-300\",\n \"cssVar\": \"--flui-color-accent-scale-300\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#dcff45\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-400\",\n \"cssVar\": \"--flui-color-accent-scale-400\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-500\",\n \"cssVar\": \"--flui-color-accent-scale-500\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-600\",\n \"cssVar\": \"--flui-color-accent-scale-600\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-700\",\n \"cssVar\": \"--flui-color-accent-scale-700\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#8ab000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-800\",\n \"cssVar\": \"--flui-color-accent-scale-800\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#638000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-900\",\n \"cssVar\": \"--flui-color-accent-scale-900\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-50\",\n \"cssVar\": \"--flui-color-brand-50\",\n \"path\": [\n \"color\",\n \"brand\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-100\",\n \"cssVar\": \"--flui-color-brand-100\",\n \"path\": [\n \"color\",\n \"brand\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#ccd5ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-200\",\n \"cssVar\": \"--flui-color-brand-200\",\n \"path\": [\n \"color\",\n \"brand\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#99abff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-300\",\n \"cssVar\": \"--flui-color-brand-300\",\n \"path\": [\n \"color\",\n \"brand\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#6680ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-400\",\n \"cssVar\": \"--flui-color-brand-400\",\n \"path\": [\n \"color\",\n \"brand\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#3355ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-500\",\n \"cssVar\": \"--flui-color-brand-500\",\n \"path\": [\n \"color\",\n \"brand\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-600\",\n \"cssVar\": \"--flui-color-brand-600\",\n \"path\": [\n \"color\",\n \"brand\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-700\",\n \"cssVar\": \"--flui-color-brand-700\",\n \"path\": [\n \"color\",\n \"brand\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-800\",\n \"cssVar\": \"--flui-color-brand-800\",\n \"path\": [\n \"color\",\n \"brand\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#001566\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-900\",\n \"cssVar\": \"--flui-color-brand-900\",\n \"path\": [\n \"color\",\n \"brand\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#000b42\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-0\",\n \"cssVar\": \"--flui-color-neutral-0\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"0\"\n ],\n \"group\": \"color\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-50\",\n \"cssVar\": \"--flui-color-neutral-50\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-100\",\n \"cssVar\": \"--flui-color-neutral-100\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-200\",\n \"cssVar\": \"--flui-color-neutral-200\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-300\",\n \"cssVar\": \"--flui-color-neutral-300\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-400\",\n \"cssVar\": \"--flui-color-neutral-400\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#9aa2b4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-500\",\n \"cssVar\": \"--flui-color-neutral-500\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-600\",\n \"cssVar\": \"--flui-color-neutral-600\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#4c5263\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-700\",\n \"cssVar\": \"--flui-color-neutral-700\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#363b49\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-750\",\n \"cssVar\": \"--flui-color-neutral-750\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"750\"\n ],\n \"group\": \"color\",\n \"value\": \"#2c303c\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-800\",\n \"cssVar\": \"--flui-color-neutral-800\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#22262f\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-850\",\n \"cssVar\": \"--flui-color-neutral-850\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"850\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a1d25\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-875\",\n \"cssVar\": \"--flui-color-neutral-875\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"875\"\n ],\n \"group\": \"color\",\n \"value\": \"#161920\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-900\",\n \"cssVar\": \"--flui-color-neutral-900\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-950\",\n \"cssVar\": \"--flui-color-neutral-950\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"950\"\n ],\n \"group\": \"color\",\n \"value\": \"#0e1015\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-1000\",\n \"cssVar\": \"--flui-color-neutral-1000\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"1000\"\n ],\n \"group\": \"color\",\n \"value\": \"#050608\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-500\",\n \"cssVar\": \"--flui-color-success-500\",\n \"path\": [\n \"color\",\n \"success\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#1f9d55\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-600\",\n \"cssVar\": \"--flui-color-success-600\",\n \"path\": [\n \"color\",\n \"success\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#157f43\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-500\",\n \"cssVar\": \"--flui-color-warning-500\",\n \"path\": [\n \"color\",\n \"warning\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-600\",\n \"cssVar\": \"--flui-color-warning-600\",\n \"path\": [\n \"color\",\n \"warning\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#b6790a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-500\",\n \"cssVar\": \"--flui-color-danger-500\",\n \"path\": [\n \"color\",\n \"danger\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-600\",\n \"cssVar\": \"--flui-color-danger-600\",\n \"path\": [\n \"color\",\n \"danger\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-semantic-bg-base\",\n \"cssVar\": \"--flui-semantic-bg-base\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"base\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-bg-subtle\",\n \"cssVar\": \"--flui-semantic-bg-subtle\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-50\"\n },\n {\n \"name\": \"flui-semantic-bg-muted\",\n \"cssVar\": \"--flui-semantic-bg-muted\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-100\"\n },\n {\n \"name\": \"flui-semantic-fg-default\",\n \"cssVar\": \"--flui-semantic-fg-default\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-semantic-fg-muted\",\n \"cssVar\": \"--flui-semantic-fg-muted\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-500\"\n },\n {\n \"name\": \"flui-semantic-fg-on-brand\",\n \"cssVar\": \"--flui-semantic-fg-on-brand\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"onBrand\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-border-default\",\n \"cssVar\": \"--flui-semantic-border-default\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-200\"\n },\n {\n \"name\": \"flui-semantic-border-strong\",\n \"cssVar\": \"--flui-semantic-border-strong\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"strong\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-300\"\n },\n {\n \"name\": \"flui-semantic-primary-default\",\n \"cssVar\": \"--flui-semantic-primary-default\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-500\"\n },\n {\n \"name\": \"flui-semantic-primary-hover\",\n \"cssVar\": \"--flui-semantic-primary-hover\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-600\"\n },\n {\n \"name\": \"flui-semantic-primary-active\",\n \"cssVar\": \"--flui-semantic-primary-active\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-700\"\n },\n {\n \"name\": \"flui-semantic-primary-subtle\",\n \"cssVar\": \"--flui-semantic-primary-subtle\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-50\"\n },\n {\n \"name\": \"flui-semantic-accent-default\",\n \"cssVar\": \"--flui-semantic-accent-default\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-400\"\n },\n {\n \"name\": \"flui-semantic-accent-hover\",\n \"cssVar\": \"--flui-semantic-accent-hover\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-500\"\n },\n {\n \"name\": \"flui-semantic-accent-active\",\n \"cssVar\": \"--flui-semantic-accent-active\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-accent-subtle\",\n \"cssVar\": \"--flui-semantic-accent-subtle\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-accent-foreground\",\n \"cssVar\": \"--flui-semantic-accent-foreground\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-danger-default\",\n \"cssVar\": \"--flui-semantic-danger-default\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-500\"\n },\n {\n \"name\": \"flui-semantic-danger-hover\",\n \"cssVar\": \"--flui-semantic-danger-hover\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-600\"\n },\n {\n \"name\": \"flui-semantic-success-default\",\n \"cssVar\": \"--flui-semantic-success-default\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-success-subtle\",\n \"cssVar\": \"--flui-semantic-success-subtle\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-success-foreground\",\n \"cssVar\": \"--flui-semantic-success-foreground\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-warning-default\",\n \"cssVar\": \"--flui-semantic-warning-default\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-warning-500\"\n },\n {\n \"name\": \"flui-semantic-warning-on-warning\",\n \"cssVar\": \"--flui-semantic-warning-on-warning\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"onWarning\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-space-0\",\n \"cssVar\": \"--flui-space-0\",\n \"path\": [\n \"space\",\n \"0\"\n ],\n \"group\": \"space\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-1\",\n \"cssVar\": \"--flui-space-1\",\n \"path\": [\n \"space\",\n \"1\"\n ],\n \"group\": \"space\",\n \"value\": \"4px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-2\",\n \"cssVar\": \"--flui-space-2\",\n \"path\": [\n \"space\",\n \"2\"\n ],\n \"group\": \"space\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-3\",\n \"cssVar\": \"--flui-space-3\",\n \"path\": [\n \"space\",\n \"3\"\n ],\n \"group\": \"space\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-4\",\n \"cssVar\": \"--flui-space-4\",\n \"path\": [\n \"space\",\n \"4\"\n ],\n \"group\": \"space\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-5\",\n \"cssVar\": \"--flui-space-5\",\n \"path\": [\n \"space\",\n \"5\"\n ],\n \"group\": \"space\",\n \"value\": \"20px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-6\",\n \"cssVar\": \"--flui-space-6\",\n \"path\": [\n \"space\",\n \"6\"\n ],\n \"group\": \"space\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-8\",\n \"cssVar\": \"--flui-space-8\",\n \"path\": [\n \"space\",\n \"8\"\n ],\n \"group\": \"space\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-10\",\n \"cssVar\": \"--flui-space-10\",\n \"path\": [\n \"space\",\n \"10\"\n ],\n \"group\": \"space\",\n \"value\": \"40px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-12\",\n \"cssVar\": \"--flui-space-12\",\n \"path\": [\n \"space\",\n \"12\"\n ],\n \"group\": \"space\",\n \"value\": \"48px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-16\",\n \"cssVar\": \"--flui-space-16\",\n \"path\": [\n \"space\",\n \"16\"\n ],\n \"group\": \"space\",\n \"value\": \"64px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-none\",\n \"cssVar\": \"--flui-radius-none\",\n \"path\": [\n \"radius\",\n \"none\"\n ],\n \"group\": \"radius\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-sm\",\n \"cssVar\": \"--flui-radius-sm\",\n \"path\": [\n \"radius\",\n \"sm\"\n ],\n \"group\": \"radius\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-md\",\n \"cssVar\": \"--flui-radius-md\",\n \"path\": [\n \"radius\",\n \"md\"\n ],\n \"group\": \"radius\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-lg\",\n \"cssVar\": \"--flui-radius-lg\",\n \"path\": [\n \"radius\",\n \"lg\"\n ],\n \"group\": \"radius\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-xl\",\n \"cssVar\": \"--flui-radius-xl\",\n \"path\": [\n \"radius\",\n \"xl\"\n ],\n \"group\": \"radius\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-full\",\n \"cssVar\": \"--flui-radius-full\",\n \"path\": [\n \"radius\",\n \"full\"\n ],\n \"group\": \"radius\",\n \"value\": \"9999px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-sm\",\n \"cssVar\": \"--flui-shadow-sm\",\n \"path\": [\n \"shadow\",\n \"sm\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 1px 2px rgba(19, 21, 27, 0.06)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-md\",\n \"cssVar\": \"--flui-shadow-md\",\n \"path\": [\n \"shadow\",\n \"md\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 4px 12px rgba(19, 21, 27, 0.10)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-lg\",\n \"cssVar\": \"--flui-shadow-lg\",\n \"path\": [\n \"shadow\",\n \"lg\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 12px 32px rgba(19, 21, 27, 0.14)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-sans\",\n \"cssVar\": \"--flui-font-family-sans\",\n \"path\": [\n \"font\",\n \"family\",\n \"sans\"\n ],\n \"group\": \"font\",\n \"value\": \"Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-mono\",\n \"cssVar\": \"--flui-font-family-mono\",\n \"path\": [\n \"font\",\n \"family\",\n \"mono\"\n ],\n \"group\": \"font\",\n \"value\": \"ui-monospace, SFMono-Regular, Menlo, monospace\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-regular\",\n \"cssVar\": \"--flui-font-weight-regular\",\n \"path\": [\n \"font\",\n \"weight\",\n \"regular\"\n ],\n \"group\": \"font\",\n \"value\": \"400\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-medium\",\n \"cssVar\": \"--flui-font-weight-medium\",\n \"path\": [\n \"font\",\n \"weight\",\n \"medium\"\n ],\n \"group\": \"font\",\n \"value\": \"500\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-semibold\",\n \"cssVar\": \"--flui-font-weight-semibold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"semibold\"\n ],\n \"group\": \"font\",\n \"value\": \"600\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-bold\",\n \"cssVar\": \"--flui-font-weight-bold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"bold\"\n ],\n \"group\": \"font\",\n \"value\": \"700\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xs\",\n \"cssVar\": \"--flui-font-size-xs\",\n \"path\": [\n \"font\",\n \"size\",\n \"xs\"\n ],\n \"group\": \"font\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-sm\",\n \"cssVar\": \"--flui-font-size-sm\",\n \"path\": [\n \"font\",\n \"size\",\n \"sm\"\n ],\n \"group\": \"font\",\n \"value\": \"14px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-md\",\n \"cssVar\": \"--flui-font-size-md\",\n \"path\": [\n \"font\",\n \"size\",\n \"md\"\n ],\n \"group\": \"font\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-lg\",\n \"cssVar\": \"--flui-font-size-lg\",\n \"path\": [\n \"font\",\n \"size\",\n \"lg\"\n ],\n \"group\": \"font\",\n \"value\": \"18px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xl\",\n \"cssVar\": \"--flui-font-size-xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"xl\"\n ],\n \"group\": \"font\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-2xl\",\n \"cssVar\": \"--flui-font-size-2xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"2xl\"\n ],\n \"group\": \"font\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-tight\",\n \"cssVar\": \"--flui-font-line-height-tight\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"tight\"\n ],\n \"group\": \"font\",\n \"value\": \"1.2\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-normal\",\n \"cssVar\": \"--flui-font-line-height-normal\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"normal\"\n ],\n \"group\": \"font\",\n \"value\": \"1.5\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-relaxed\",\n \"cssVar\": \"--flui-font-line-height-relaxed\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"relaxed\"\n ],\n \"group\": \"font\",\n \"value\": \"1.75\",\n \"isColor\": false,\n \"reference\": null\n }\n];\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","Button","forwardRef","className","variant","size","fullWidth","props","ref","jsx","inputVariants","Input","invalid","label","id","type","showPassword","setShowPassword","useState","isPassword","resolvedType","inputId","input","jsxs","v","Card","CardHeader","CardTitle","CardDescription","CardContent","trackVariants","thumbVariants","Switch","checked","defaultChecked","onCheckedChange","disabled","isControlled","internal","setInternal","value","next","Checkbox","indeterminate","innerRef","useRef","useEffect","setRefs","node","RadioGroupContext","createContext","RadioGroup","defaultValue","onValueChange","name","children","autoName","useId","current","onChange","Radio","ctx","useContext","selectVariants","Select","DropdownContext","useDropdown","Dropdown","open","setOpen","onClick","e","onKey","DropdownTrigger","cloneElement","DropdownContent","align","DropdownItem","onSelect","destructive","DropdownSeparator","badgeVariants","Badge","sizeVariants","statusColor","dotSize","initials","p","_a","Avatar","src","alt","status","errored","setErrored","showImg","spinnerVariants","Spinner","Progress","max","pct","Divider","orientation","Breadcrumb","items","Children","child","i","Fragment","BreadcrumbSeparator","BreadcrumbItem","href","useCountUp","target","duration","setCurrent","start","tick","now","t","eased","StatCard","countUp","formatCount","delta","helpText","icon","animated","hasDelta","up","displayValue","alertVariants","iconColor","glyph","Alert","title","onClose","useControllableState","setValue","useCallback","TabsContext","useTabs","Tabs","TabsList","listRef","indicator","setIndicator","list","active","TabsTrigger","TabsContent","AccordionContext","ItemContext","useAccordion","Accordion","init","toggle","prev","has","AccordionItem","AccordionTrigger","isOpen","AccordionContent","sidePos","Tooltip","content","side","PopoverContext","usePopover","Popover","PopoverTrigger","PopoverContent","Portal","mounted","setMounted","createPortal","useDismissable","prevOverflow","ModalContext","Modal","onOpenChange","close","ModalContent","ModalHeader","ModalTitle","ModalDescription","ModalBody","ModalFooter","DrawerContext","sideClasses","Drawer","DrawerContent","DrawerHeader","DrawerTitle","DrawerBody","DrawerFooter","ToastContext","variantStyles","ToastProvider","toasts","setToasts","idRef","dismiss","toast","options","ToastCard","item","onDismiss","timer","styles","useToast","textareaVariants","Textarea","CodeBlock","code","language","handleCopy","CopyIcon","Sidebar","user","nav","footerAction","itemClass","isActive","group","SettingRow","description","SettingsCard","SettingsGroup","IntegrationRow","connected","onConnect","onDisconnect","ProfileSettingsModal","defaultSection","controlledSection","onSectionChange","sectionTitles","sectionSubtitles","renderSection","firstId","_b","internalSection","setInternalSection","handleSelect","activeItem","g","subtitle","ThemeContext","MODE_KEY","BRAND_KEY","RADIUS_KEY","prefersDark","load","key","fallback","ThemeProvider","defaultMode","defaultBrand","defaultRadius","mode","setModeState","brand","setBrandState","radius","setRadiusState","systemDark","setSystemDark","mq","resolvedMode","el","setMode","setBrand","b","setRadius","r","toggleMode","useMemo","useTheme","tokens"],"mappings":";;;;;;AAIO,SAASA,KAAMC,GAAsB;AAC1C,SAAOC,GAAQC,GAAKF,CAAM,CAAC;AAC7B;ACFO,MAAMG,KAAiBC;AAAA;AAAA,EAE5B;AAAA,EAIA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WACE;AAAA,QACF,SACE;AAAA,QACF,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAAA;AAAA,MAElB,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,WAAW,EAAE,MAAM,SAAA;AAAA,IAAS;AAAA,IAE9B,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAMaC,IAASC;AAAA,EACpB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAClD,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWb,EAAGI,GAAe,EAAE,SAAAK,GAAS,MAAAC,GAAM,WAAAC,EAAA,CAAW,GAAGH,CAAS;AAAA,MACpE,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AAEAN,EAAO,cAAc;AC/Cd,MAAMS,KAAgBV;AAAA,EAC3B;AAAA,EAIA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB,EAAE,MAAM,MAAM,SAAS,GAAA;AAAA,EAAM;AAElD,GAQaW,KAAQT;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,MAAAE,GAAM,SAAAO,GAAS,OAAAC,GAAO,IAAAC,GAAI,MAAAC,GAAM,GAAGR,EAAA,GAASC,MAAQ;AAChE,UAAM,CAACQ,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChDC,IAAaJ,MAAS,YACtBK,IAAeD,IAAcH,IAAe,SAAS,aAAcD,GAEnEM,IAAUP,MAAOD,IAAQA,EAAM,cAAc,QAAQ,QAAQ,GAAG,IAAI,SAEpES,IACJ,gBAAAC,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,MAAA,gBAAAd;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAD;AAAA,UACA,IAAIa;AAAA,UACJ,MAAMD;AAAA,UACN,WAAWzB;AAAA,YACTe,GAAc,EAAE,MAAAL,GAAM,SAAAO,GAAS;AAAA,YAC/BO,KAAc;AAAA,YACdhB;AAAA,UAAA;AAAA,UAED,GAAGI;AAAA,QAAA;AAAA,MAAA;AAAA,MAELY,KACC,gBAAAV;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,UAAU;AAAA,UACV,SAAS,MAAMQ,EAAgB,CAACO,MAAM,CAACA,CAAC;AAAA,UACxC,cAAYR,IAAe,kBAAkB;AAAA,UAC7C,WAAU;AAAA,UAET,UAAAA;AAAA;AAAA,8BAEE,OAAA,EAAI,SAAQ,aAAY,WAAU,WAAU,MAAK,QAAO,QAAO,gBAAe,aAAa,MAAM,eAAc,SAAQ,gBAAe,SAAQ,eAAW,IACxJ,UAAA;AAAA,cAAA,gBAAAP,EAAC,QAAA,EAAK,GAAE,kFAAA,CAAkF;AAAA,cAC1F,gBAAAA,EAAC,QAAA,EAAK,GAAE,yEAAA,CAAyE;AAAA,cACjF,gBAAAA,EAAC,UAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,KAAA,CAAK;AAAA,YAAA,EAAA,CACtC;AAAA;AAAA;AAAA,8BAGC,OAAA,EAAI,SAAQ,aAAY,WAAU,WAAU,MAAK,QAAO,QAAO,gBAAe,aAAa,MAAM,eAAc,SAAQ,gBAAe,SAAQ,eAAW,IACxJ,UAAA;AAAA,cAAA,gBAAAA,EAAC,QAAA,EAAK,GAAE,+CAAA,CAA+C;AAAA,gCACtD,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,IAAA,CAAI;AAAA,YAAA,EAAA,CAChC;AAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,GAEJ;AAGF,WAAKI,IAEH,gBAAAU,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,MAAA,gBAAAd,EAAC,SAAA,EAAM,SAASY,GAAS,WAAU,+BAChC,UAAAR,GACH;AAAA,MACCS;AAAA,IAAA,GACH,IAPiBA;AAAA,EASrB;AACF;AAEAX,GAAM,cAAc;ACxFb,MAAMc,KAAOvB;AAAA,EAClB,CAAC,EAAE,WAAAC,GAAW,GAAGI,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWb;AAAA,QACT;AAAA,QACAQ;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AACAkB,GAAK,cAAc;AAEZ,MAAMC,KAAaxB;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGI,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAA,EAAI,KAAAD,GAAU,WAAWb,EAAG,2BAA2BQ,CAAS,GAAI,GAAGI,EAAA,CAAO;AAEnF;AACAmB,GAAW,cAAc;AAElB,MAAMC,KAAYzB,EAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGI,KAASC,wBACzB,MAAA,EAAG,KAAAA,GAAU,WAAWb,EAAG,iCAAiCQ,CAAS,GAAI,GAAGI,GAAO,CACrF;AACDoB,GAAU,cAAc;AAEjB,MAAMC,KAAkB1B,EAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGI,KAASC,wBACzB,KAAA,EAAE,KAAAA,GAAU,WAAWb,EAAG,yBAAyBQ,CAAS,GAAI,GAAGI,GAAO,CAC5E;AACDqB,GAAgB,cAAc;AAEvB,MAAMC,KAAc3B;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,GAAGI,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAA,EAAI,KAAAD,GAAU,WAAWb,EAAG,YAAYQ,CAAS,GAAI,GAAGI,EAAA,CAAO;AAEpE;AACAsB,GAAY,cAAc;ACzC1B,MAAMC,KAAgB9B;AAAA,EACpB;AAAA,EAGA;AAAA,IACE,UAAU;AAAA,MACR,MAAM,EAAE,IAAI,WAAW,IAAI,WAAA;AAAA,MAC3B,SAAS,EAAE,MAAM,cAAc,OAAO,mBAAA;AAAA,IAAmB;AAAA,IAE3D,iBAAiB,EAAE,MAAM,MAAM,SAAS,GAAA;AAAA,EAAM;AAElD,GAEM+B,KAAgB/B;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM,EAAE,IAAI,WAAW,IAAI,UAAA;AAAA,MAC3B,SAAS,EAAE,MAAM,IAAI,OAAO,gBAAA;AAAA,IAAgB;AAAA,IAE9C,kBAAkB;AAAA,MAChB,EAAE,MAAM,MAAM,SAAS,IAAM,OAAO,gBAAA;AAAA,MACpC,EAAE,MAAM,MAAM,SAAS,IAAM,OAAO,gBAAA;AAAA,IAAgB;AAAA,IAEtD,iBAAiB,EAAE,MAAM,MAAM,SAAS,GAAA;AAAA,EAAM;AAElD,GAUagC,IAAS9B;AAAA,EACpB,CAAC,EAAE,WAAAC,GAAW,MAAAE,GAAM,SAAA4B,GAAS,gBAAAC,GAAgB,iBAAAC,GAAiB,UAAAC,GAAU,GAAG7B,EAAA,GAASC,MAAQ;AAC1F,UAAM6B,IAAeJ,MAAY,QAC3B,CAACK,GAAUC,CAAW,IAAIrB,EAASgB,KAAkB,EAAK,GAC1DM,IAAQH,IAAeJ,IAAUK;AAQvC,WACE,gBAAA7B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,MAAK;AAAA,QACL,MAAK;AAAA,QACL,gBAAcgC;AAAA,QACd,UAAAJ;AAAA,QACA,SAbW,MAAM;AACnB,gBAAMK,IAAO,CAACD;AACd,UAAKH,KAAcE,EAAYE,CAAI,GACnCN,KAAA,QAAAA,EAAkBM;AAAA,QACpB;AAAA,QAUI,WAAW9C,EAAGmC,GAAc,EAAE,MAAAzB,GAAM,SAASmC,EAAA,CAAO,GAAGrC,CAAS;AAAA,QAC/D,GAAGI;AAAA,QAEJ,UAAA,gBAAAE,EAAC,UAAK,WAAWsB,GAAc,EAAE,MAAA1B,GAAM,SAASmC,EAAA,CAAO,EAAA,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,EAGhE;AACF;AAEAR,EAAO,cAAc;AC5Dd,MAAMU,KAAWxC;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,OAAAU,GAAO,eAAA8B,IAAgB,IAAO,UAAAP,GAAU,IAAAtB,GAAI,GAAGP,EAAA,GAASC,MAAQ;AAC5E,UAAMoC,IAAWC,EAAyB,IAAI;AAG9C,IAAAC,EAAU,MAAM;AACd,MAAIF,EAAS,YAASA,EAAS,QAAQ,gBAAgBD;AAAA,IACzD,GAAG,CAACA,CAAa,CAAC;AAElB,UAAMI,IAAU,CAACC,MAAkC;AACjD,MAAAJ,EAAS,UAAUI,GACf,OAAOxC,KAAQ,aAAYA,EAAIwC,CAAI,IAC9BxC,QAAS,UAAUwC;AAAA,IAC9B;AAEA,WACE,gBAAAzB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW5B;AAAA,UACT;AAAA,UACAyC,IAAW,kCAAkC;AAAA,UAC7CjC;AAAA,QAAA;AAAA,QAGF,UAAA;AAAA,UAAA,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKsC;AAAA,cACL,IAAAjC;AAAA,cACA,MAAK;AAAA,cACL,UAAAsB;AAAA,cACA,WAAU;AAAA,cACT,GAAG7B;AAAA,YAAA;AAAA,UAAA;AAAA,UAIN,gBAAAgB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW5B;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA;AAAA,gBAEA;AAAA;AAAA,gBAEA;AAAA,cAAA;AAAA,cAGF,UAAA;AAAA,gBAAA,gBAAAc;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,QAAO;AAAA,oBACP,aAAY;AAAA,oBACZ,eAAc;AAAA,oBACd,gBAAe;AAAA,oBACf,eAAW;AAAA,oBAEX,UAAA,gBAAAA,EAAC,QAAA,EAAK,GAAE,qBAAA,CAAqB;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAE/B,gBAAAA,EAAC,QAAA,EAAK,WAAU,6DAAA,CAA6D;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAE9EI,KAAS,gBAAAJ,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAI,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGzD;AACF;AAEA6B,GAAS,cAAc;ACjEvB,MAAMO,IAAoBC,EAA6C,IAAI;AAUpE,SAASC,GAAW;AAAA,EACzB,OAAAX;AAAA,EACA,cAAAY;AAAA,EACA,eAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAnD;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAoB;AAClB,QAAMiD,IAAWC,EAAA,GACXpB,IAAeG,MAAU,QACzB,CAACF,GAAUC,CAAW,IAAIrB,EAASkC,CAAY,GAC/CM,IAAUrB,IAAeG,IAAQF,GAEjCqB,IAAW,CAAClB,MAAiB;AACjC,IAAKJ,KAAcE,EAAYE,CAAI,GACnCY,KAAA,QAAAA,EAAgBZ;AAAA,EAClB;AAEA,SACE,gBAAAhC;AAAA,IAACwC,EAAkB;AAAA,IAAlB;AAAA,MACC,OAAO,EAAE,MAAMK,KAAQE,GAAU,OAAOE,GAAS,UAAAC,EAAA;AAAA,MAEjD,UAAA,gBAAAlD,EAAC,OAAA,EAAI,MAAK,cAAa,WAAWd,EAAG,uBAAuBQ,CAAS,GAAI,GAAGI,GACzE,UAAAgD,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;AAQO,MAAMK,KAAQ1D;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,OAAAqC,GAAO,OAAA3B,GAAO,UAAAuB,GAAU,GAAG7B,EAAA,GAASC,MAAQ;AACxD,UAAMqD,IAAMC,EAAWb,CAAiB;AACxC,QAAI,CAACY,EAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,UAAM5B,IAAU4B,EAAI,UAAUrB;AAE9B,WACE,gBAAAjB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW5B;AAAA,UACT;AAAA,UACAyC,IAAW,kCAAkC;AAAA,UAC7CjC;AAAA,QAAA;AAAA,QAGF,UAAA;AAAA,UAAA,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAAD;AAAA,cACA,MAAK;AAAA,cACL,MAAMqD,EAAI;AAAA,cACV,OAAArB;AAAA,cACA,SAAAP;AAAA,cACA,UAAAG;AAAA,cACA,UAAU,MAAMyB,EAAI,SAASrB,CAAK;AAAA,cAClC,WAAU;AAAA,cACT,GAAGjC;AAAA,YAAA;AAAA,UAAA;AAAA,UAEN,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWd;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cAAA;AAAA,cAGF,UAAA,gBAAAc,EAAC,QAAA,EAAK,WAAU,mEAAA,CAAmE;AAAA,YAAA;AAAA,UAAA;AAAA,UAEpFI,KAAS,gBAAAJ,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAI,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGzD;AACF;AAEA+C,GAAM,cAAc;AC5FpB,MAAMG,KAAiB/D;AAAA,EACrB;AAAA,EAGA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB,EAAE,MAAM,MAAM,SAAS,GAAA;AAAA,EAAM;AAElD,GAMagE,KAAS9D;AAAA,EACpB,CAAC,EAAE,WAAAC,GAAW,MAAAE,GAAM,SAAAO,GAAS,UAAA2C,GAAU,GAAGhD,EAAA,GAASC,MACjD,gBAAAe,EAAC,OAAA,EAAI,WAAU,4CACb,UAAA;AAAA,IAAA,gBAAAd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,WAAWb,EAAGoE,GAAe,EAAE,MAAA1D,GAAM,SAAAO,EAAA,CAAS,GAAGT,CAAS;AAAA,QACzD,GAAGI;AAAA,QAEH,UAAAgD;AAAA,MAAA;AAAA,IAAA;AAAA,IAEH,gBAAA9C;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,MAAK;AAAA,QACL,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,eAAW;AAAA,QAEX,UAAA,gBAAAA,EAAC,QAAA,EAAK,GAAE,eAAA,CAAe;AAAA,MAAA;AAAA,IAAA;AAAA,EACzB,EAAA,CACF;AAEJ;AAEAuD,GAAO,cAAc;ACtCrB,MAAMC,IAAkBf,EAA2C,IAAI;AAEvE,SAASgB,IAAc;AACrB,QAAML,IAAMC,EAAWG,CAAe;AACtC,MAAI,CAACJ,EAAK,OAAM,IAAI,MAAM,6DAA6D;AACvF,SAAOA;AACT;AAEO,SAASM,GAAS,EAAE,UAAAZ,KAA2C;AACpE,QAAM,CAACa,GAAMC,CAAO,IAAInD,EAAS,EAAK,GAChCV,IAAMqC,EAAuB,IAAI;AAGvC,SAAAC,EAAU,MAAM;AACd,QAAI,CAACsB,EAAM;AACX,UAAME,IAAU,CAACC,MAAkB;AACjC,MAAI/D,EAAI,WAAW,CAACA,EAAI,QAAQ,SAAS+D,EAAE,MAAc,KAAGF,EAAQ,EAAK;AAAA,IAC3E,GACMG,IAAQ,CAACD,MAAqB;AAClC,MAAIA,EAAE,QAAQ,YAAUF,EAAQ,EAAK;AAAA,IACvC;AACA,oBAAS,iBAAiB,aAAaC,CAAO,GAC9C,SAAS,iBAAiB,WAAWE,CAAK,GACnC,MAAM;AACX,eAAS,oBAAoB,aAAaF,CAAO,GACjD,SAAS,oBAAoB,WAAWE,CAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAACJ,CAAI,CAAC,GAGP,gBAAA3D,EAACwD,EAAgB,UAAhB,EAAyB,OAAO,EAAE,MAAAG,GAAM,SAAAC,EAAA,GACvC,4BAAC,OAAA,EAAI,KAAA7D,GAAU,WAAU,mCACtB,UAAA+C,GACH,GACF;AAEJ;AAGO,SAASkB,GAAgB,EAAE,UAAAlB,KAA6C;AAC7E,QAAM,EAAE,MAAAa,GAAM,SAAAC,EAAA,IAAYH,EAAA;AAC1B,SAAOQ,EAAanB,GAAU;AAAA,IAC5B,SAAS,MAAMc,EAAQ,CAACD,CAAI;AAAA,IAC5B,iBAAiB;AAAA,IACjB,iBAAiBA;AAAA,EAAA,CAClB;AACH;AAEO,SAASO,GAAgB;AAAA,EAC9B,UAAApB;AAAA,EACA,OAAAqB,IAAQ;AAAA,EACR,WAAAzE;AACF,GAIG;AACD,QAAM,EAAE,MAAAiE,EAAA,IAASF,EAAA;AACjB,SAAKE,IAEH,gBAAA3D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWd;AAAA,QACT;AAAA,QACAiF,MAAU,QAAQ,YAAY;AAAA,QAC9BzE;AAAA,MAAA;AAAA,MAGD,UAAAoD;AAAA,IAAA;AAAA,EAAA,IAVa;AAapB;AAQO,SAASsB,GAAa;AAAA,EAC3B,UAAAtB;AAAA,EACA,UAAAuB;AAAA,EACA,aAAAC;AAAA,EACA,WAAA5E;AAAA,EACA,GAAGI;AACL,GAAsB;AACpB,QAAM,EAAE,SAAA8D,EAAA,IAAYH,EAAA;AACpB,SACE,gBAAAzD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAS,MAAM;AACb,QAAAqE,KAAA,QAAAA,KACAT,EAAQ,EAAK;AAAA,MACf;AAAA,MACA,WAAW1E;AAAA,QACT;AAAA,QACA;AAAA,QACAoF,IAAc,gBAAgB;AAAA,QAC9B5E;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAAgD;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASyB,KAAoB;AAClC,SAAO,gBAAAvE,EAAC,OAAA,EAAI,MAAK,aAAY,WAAU,+BAA8B;AACvE;AC1HO,MAAMwE,KAAgBjF;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAe;AAAA,QACf,SAAe;AAAA,QACf,QAAe;AAAA,QACf,eAAe;AAAA,QACf,SAAe;AAAA,QACf,SAAe;AAAA,QACf,QAAe;AAAA,QACf,SAAe;AAAA,MAAA;AAAA,MAEjB,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB,EAAE,SAAS,WAAW,MAAM,KAAA;AAAA,EAAK;AAEtD,GAMakF,IAAQhF;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,GAAGE,EAAA,GAASC,MACvC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWb,EAAGsF,GAAc,EAAE,SAAA7E,GAAS,MAAAC,EAAA,CAAM,GAAGF,CAAS;AAAA,MACxD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA2E,EAAM,cAAc;ACrCpB,MAAMC,KAAenF,EAAI,6CAA6C;AAAA,EACpE,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB,EAAE,MAAM,KAAA;AAC3B,CAAC,GAEKoF,KAAsC;AAAA,EAC1C,QAAS;AAAA,EACT,MAAS;AAAA,EACT,MAAS;AAAA,EACT,SAAS;AACX,GAGMC,KAAkC;AAAA,EACtC,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,SAASC,GAAShC,GAAe;AAC/B,SAAKA,IACEA,EACJ,OACA,MAAM,KAAK,EACX,MAAM,GAAG,CAAC,EACV,IAAI,CAACiC,MAAA;;AAAM,aAAAC,IAAAD,EAAE,CAAC,MAAH,gBAAAC,EAAM,kBAAiB;AAAA,GAAE,EACpC,KAAK,EAAE,IANQ;AAOpB;AAWO,MAAMC,KAASvF;AAAA,EACpB,CAAC,EAAE,WAAAC,GAAW,MAAAE,IAAO,MAAM,KAAAqF,GAAK,KAAAC,GAAK,MAAArC,GAAM,QAAAsC,GAAQ,GAAGrF,EAAA,GAASC,MAAQ;AACrE,UAAM,CAACqF,GAASC,CAAU,IAAI5E,EAAS,EAAK,GACtC6E,IAAUL,KAAO,CAACG;AAExB,WACE,gBAAAtE,EAAC,QAAA,EAAK,KAAAf,GAAU,WAAWb,EAAGwF,GAAa,EAAE,MAAA9E,EAAA,CAAM,GAAGF,CAAS,GAAI,GAAGI,GAEpE,UAAA;AAAA,MAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,+GACb,UAAAsF,IACC,gBAAAtF;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAiF;AAAA,UACA,KAAKC,KAAOrC,KAAQ;AAAA,UACpB,WAAU;AAAA,UACV,SAAS,MAAMwC,EAAW,EAAI;AAAA,QAAA;AAAA,MAAA,sBAG/B,QAAA,EAAK,eAAW,IAAE,UAAAR,GAAShC,CAAI,GAAE,GAEtC;AAAA,MAGCsC,KACC,gBAAAnF;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,cAAYmF;AAAA,UACZ,WAAWjG;AAAA,YACT;AAAA,YACAyF,GAAYQ,CAAM;AAAA,YAClBP,GAAQhF,KAAQ,IAAI;AAAA,UAAA;AAAA,QACtB;AAAA,MAAA;AAAA,IACF,GAEJ;AAAA,EAEJ;AACF;AAEAoF,GAAO,cAAc;ACrFrB,MAAMO,KAAkBhG,EAAI,6BAA6B;AAAA,EACvD,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB,EAAE,MAAM,KAAA;AAC3B,CAAC,GAQYiG,KAAU/F;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,MAAAE,GAAM,OAAAQ,IAAQ,cAAc,GAAGN,EAAA,GAASC,MACpD,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,MAAK;AAAA,MACL,cAAYK;AAAA,MACZ,WAAWlB,EAAGqG,GAAgB,EAAE,MAAA3F,EAAA,CAAM,GAAGF,CAAS;AAAA,MACjD,GAAGI;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAE,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,QAAO,gBAAe,aAAY,KAAI,WAAU,cAAa;AAAA,QAC5F,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAwF,GAAQ,cAAc;ACjCf,MAAMC,KAAWhG;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,OAAAqC,IAAQ,GAAG,KAAA2D,IAAM,KAAK,eAAAxD,GAAe,GAAGpC,EAAA,GAASC,MAAQ;AACrE,UAAM4F,IAAM,KAAK,IAAI,KAAK,KAAK,IAAI,GAAI5D,IAAQ2D,IAAO,GAAG,CAAC;AAE1D,WACE,gBAAA1F;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAD;AAAA,QACA,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe2F;AAAA,QACf,iBAAexD,IAAgB,SAAYH;AAAA,QAC3C,WAAW7C;AAAA,UACT;AAAA,UACAQ;AAAA,QAAA;AAAA,QAED,GAAGI;AAAA,QAEH,UAAAoC,IACC,gBAAAlC,EAAC,OAAA,EAAI,WAAU,2GAA0G,IAEzH,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,OAAO,GAAG2F,CAAG,IAAA;AAAA,UAAI;AAAA,QAAA;AAAA,MAC5B;AAAA,IAAA;AAAA,EAIR;AACF;AAEAF,GAAS,cAAc;AC/BhB,MAAMG,KAAUnG;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,aAAAmG,IAAc,cAAc,OAAAzF,GAAO,GAAGN,EAAA,GAASC,MACvD8F,MAAgB,aAEhB,gBAAA7F;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,oBAAiB;AAAA,MACjB,WAAWb,EAAG,mDAAmDQ,CAAS;AAAA,MACzE,GAAGI;AAAA,IAAA;AAAA,EAAA,IAKNM,IAEA,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAf;AAAA,MACA,MAAK;AAAA,MACL,WAAWb,EAAG,iDAAiDQ,CAAS;AAAA,MACvE,GAAGI;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,gCAAA,CAAgC;AAAA,QAC/CI;AAAA,QACD,gBAAAJ,EAAC,QAAA,EAAK,WAAU,gCAAA,CAAgC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAMpD,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,oBAAiB;AAAA,MACjB,WAAWb,EAAG,iCAAiCQ,CAAS;AAAA,MACvD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAIZ;AAEA8F,GAAQ,cAAc;AC/Cf,MAAME,KAAarG;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,UAAAoD,GAAU,GAAGhD,EAAA,GAASC,MAAQ;AAC1C,UAAMgG,IAAQC,GAAS,QAAQlD,CAAQ;AACvC,6BACG,OAAA,EAAI,KAAA/C,GAAU,cAAW,cAAa,WAAAL,GAAuB,GAAGI,GAC/D,UAAA,gBAAAE,EAAC,MAAA,EAAG,WAAU,+CACX,UAAA+F,EAAM,IAAI,CAACE,GAAOC,wBAChBC,IAAA,EACE,UAAA;AAAA,MAAAF;AAAA,MACAC,IAAIH,EAAM,SAAS,uBAAMK,IAAA,CAAA,CAAoB;AAAA,IAAA,EAAA,GAFjCF,CAGf,CACD,EAAA,CACH,GACF;AAAA,EAEJ;AACF;AACAJ,GAAW,cAAc;AAQlB,SAASO,GAAe;AAAA,EAC7B,MAAAC;AAAA,EACA,SAAArD;AAAA,EACA,WAAAvD;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAwB;AACtB,SACE,gBAAAE,EAAC,MAAA,EAAG,WAAWd,EAAG,4BAA4BQ,CAAS,GAAI,GAAGI,GAC3D,UAAAmD,KAAW,CAACqD,IACX,gBAAAtG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,gBAAciD,IAAU,SAAS;AAAA,MACjC,WAAW/D,EAAG+D,IAAU,wBAAwB,eAAe;AAAA,MAE9D,UAAAH;AAAA,IAAA;AAAA,EAAA,IAGH,gBAAA9C;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAsG;AAAA,MACA,WAAU;AAAA,MAET,UAAAxD;AAAA,IAAA;AAAA,EAAA,GAGP;AAEJ;AAEO,SAASsD,KAAsB;AACpC,2BACG,MAAA,EAAG,eAAW,IAAC,WAAU,iBAAgB,UAAA,KAE1C;AAEJ;AC1DA,SAASG,GAAWC,GAAgBC,IAAW,KAAM;AACnD,QAAM,CAACxD,GAASyD,CAAU,IAAIjG,EAAS,CAAC;AAExC,SAAA4B,EAAU,MAAM;AACd,IAAAqE,EAAW,CAAC;AACZ,UAAMC,IAAQ,YAAY,IAAA,GACpBC,IAAO,CAACC,MAAgB;AAC5B,YAAMC,IAAI,KAAK,KAAKD,IAAMF,KAASF,GAAU,CAAC,GACxCM,IAAQ,KAAK,IAAID,MAAM;AAC7B,MAAAJ,EAAWF,IAASO,CAAK,GACrBD,IAAI,IAAG,sBAAsBF,CAAI,MACrBJ,CAAM;AAAA,IACxB;AACA,0BAAsBI,CAAI;AAAA,EAC5B,GAAG,CAACJ,GAAQC,CAAQ,CAAC,GAEdxD;AACT;AAeO,MAAM+D,KAAWvH;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,OAAAU,GAAO,OAAA2B,GAAO,SAAAkF,GAAS,aAAAC,GAAa,OAAAC,GAAO,UAAAC,GAAU,MAAAC,GAAM,GAAGvH,EAAA,GAASC,MAAQ;AAC3F,UAAMuH,IAAWf,GAAWU,KAAW,CAAC,GAClCM,IAAW,OAAOJ,KAAU,UAC5BK,IAAKD,KAAYJ,KAAU,GAE3BM,IACJR,MAAY,SACPC,IAAcA,EAAYI,CAAQ,IAAI,KAAK,MAAMA,CAAQ,EAAE,eAAe,OAAO,IAClFvF;AAEN,WACE,gBAAAjB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAf;AAAA,QACA,WAAWb;AAAA,UACT;AAAA,UACAQ;AAAA,QAAA;AAAA,QAED,GAAGI;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,YAAA,gBAAAd,EAAC,QAAA,EAAK,WAAU,yBAAyB,UAAAI,GAAM;AAAA,YAC9CiH,KAAQ,gBAAArH,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAqH,EAAA,CAAK;AAAA,UAAA,GACjD;AAAA,UACA,gBAAArH,EAAC,QAAA,EAAK,WAAU,6DACb,UAAAyH,GACH;AAAA,UACCF,KACC,gBAAAzG,EAAC2D,GAAA,EAAM,SAAS+C,IAAK,YAAY,UAAU,MAAK,MAAK,WAAU,cAC5D,UAAA;AAAA,YAAAA,IAAK,MAAM;AAAA,YAAI;AAAA,YAAE,KAAK,IAAIL,CAAM;AAAA,YAAE;AAAA,UAAA,GACrC;AAAA,UAEDC,KAAY,gBAAApH,EAAC,QAAA,EAAK,WAAU,yBAAyB,UAAAoH,EAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGrE;AACF;AAEAJ,GAAS,cAAc;ACtEvB,MAAMU,KAAgBnI,EAAI,qCAAqC;AAAA,EAC7D,UAAU;AAAA,IACR,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,iBAAiB,EAAE,SAAS,OAAA;AAC9B,CAAC,GAEKoI,KAAoC;AAAA,EACxC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GAGMC,KAAgC;AAAA,EACpC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV,GASaC,KAAQpI;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,SAAAC,IAAU,QAAQ,OAAAmI,GAAO,SAAAC,GAAS,UAAAjF,GAAU,GAAGhD,EAAA,GAASC,MAAQ;AAC5E,UAAMgB,IAAIpB,KAAW;AACrB,WACE,gBAAAmB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAf;AAAA,QACA,MAAK;AAAA,QACL,WAAWb,EAAGwI,GAAc,EAAE,SAAA/H,EAAA,CAAS,GAAGD,CAAS;AAAA,QAClD,GAAGI;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAW;AAAA,cACX,WAAWd;AAAA,gBACT;AAAA,gBACAyI,GAAU5G,CAAC;AAAA,cAAA;AAAA,cAGZ,aAAMA,CAAC;AAAA,YAAA;AAAA,UAAA;AAAA,UAEV,gBAAAD,EAAC,OAAA,EAAI,WAAU,kBACZ,UAAA;AAAA,YAAAgH,KAAS,gBAAA9H,EAAC,OAAA,EAAI,WAAU,yBAAyB,UAAA8H,GAAM;AAAA,YACvDhF,KAAY,gBAAA9C,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAA8C,EAAA,CAAS;AAAA,UAAA,GACxD;AAAA,UACCiF,KACC,gBAAA/H;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS+H;AAAA,cACT,cAAW;AAAA,cACX,WAAU;AAAA,cACX,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAF,GAAM,cAAc;ACtEb,SAASG,GAAwB;AAAA,EACtC,OAAAjG;AAAA,EACA,cAAAY;AAAA,EACA,UAAAO;AACF,GAIG;AACD,QAAMtB,IAAeG,MAAU,QACzB,CAACF,GAAUC,CAAW,IAAIrB,EAAYkC,CAAY,GAClDM,IAAUrB,IAAgBG,IAAcF,GAExCoG,IAAWC;AAAA,IACf,CAAClG,MAAY;AACX,MAAKJ,KAAcE,EAAYE,CAAI,GACnCkB,KAAA,QAAAA,EAAWlB;AAAA,IACb;AAAA,IACA,CAACJ,GAAcsB,CAAQ;AAAA,EAAA;AAGzB,SAAO,CAACD,GAASgF,CAAQ;AAC3B;ACpBA,MAAME,IAAc1F,EAAuC,IAAI;AAC/D,SAAS2F,IAAU;AACjB,QAAMhF,IAAMC,EAAW8E,CAAW;AAClC,MAAI,CAAC/E,EAAK,OAAM,IAAI,MAAM,qDAAqD;AAC/E,SAAOA;AACT;AAQO,SAASiF,GAAK;AAAA,EACnB,OAAAtG;AAAA,EACA,cAAAY;AAAA,EACA,eAAAC;AAAA,EACA,WAAAlD;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAc;AACZ,QAAM,CAACmD,GAASgF,CAAQ,IAAID,GAAqB;AAAA,IAC/C,OAAAjG;AAAA,IACA,cAAcY,KAAgB;AAAA,IAC9B,UAAUC;AAAA,EAAA,CACX;AACD,2BACGuF,EAAY,UAAZ,EAAqB,OAAO,EAAE,OAAOlF,GAAS,UAAAgF,EAAA,GAC7C,4BAAC,OAAA,EAAI,WAAAvI,GAAuB,GAAGI,GAC5B,UAAAgD,GACH,GACF;AAEJ;AAEO,SAASwF,GAAS,EAAE,WAAA5I,GAAW,UAAAoD,GAAU,GAAGhD,KAA+C;AAChG,QAAM,EAAE,OAAAiC,EAAA,IAAUqG,EAAA,GACZG,IAAUnG,EAAuB,IAAI,GACrC,CAACoG,GAAWC,CAAY,IAAIhI,EAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAA,CAAO;AAE9E,SAAA4B,EAAU,MAAM;AACd,UAAMqG,IAAOH,EAAQ;AACrB,QAAI,CAACG,EAAM;AACX,UAAMC,IAASD,EAAK,cAAc,wBAAwB;AAC1D,IAAKC,KACLF,EAAa,EAAE,MAAME,EAAO,YAAY,OAAOA,EAAO,aAAa,OAAO,IAAM;AAAA,EAClF,GAAG,CAAC5G,CAAK,CAAC,GAGR,gBAAAjB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKyH;AAAA,MACL,MAAK;AAAA,MACL,WAAWrJ,EAAG,mEAAmEQ,CAAS;AAAA,MACzF,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAgD;AAAA,QACA0F,EAAU,SACT,gBAAAxI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,WAAU;AAAA,YACV,OAAO,EAAE,MAAMwI,EAAU,MAAM,OAAOA,EAAU,MAAA;AAAA,UAAM;AAAA,QAAA;AAAA,MACxD;AAAA,IAAA;AAAA,EAAA;AAIR;AAKO,SAASI,GAAY,EAAE,OAAA7G,GAAO,WAAArC,GAAW,GAAGI,KAA2B;AAC5E,QAAMsD,IAAMgF,EAAA,GACNO,IAASvF,EAAI,UAAUrB;AAC7B,SACE,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,MAAK;AAAA,MACL,iBAAe2I;AAAA,MACf,SAAS,MAAMvF,EAAI,SAASrB,CAAK;AAAA,MACjC,WAAW7C;AAAA,QACT;AAAA,QACA;AAAA,QACAyJ,IAAS,YAAY;AAAA,QACrBjJ;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AAKO,SAAS+I,GAAY,EAAE,OAAA9G,GAAO,WAAArC,GAAW,GAAGI,KAA2B;AAE5E,SADYsI,EAAA,EACJ,UAAUrG,IAAc,OAE9B,gBAAA/B;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWd,EAAG,+CAA+CQ,CAAS;AAAA,MACrE,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;ACxGA,MAAMgJ,IAAmBrG,EAA4C,IAAI,GACnEsG,IAActG,EAAsB,EAAE;AAE5C,SAASuG,IAAe;AACtB,QAAM5F,IAAMC,EAAWyF,CAAgB;AACvC,MAAI,CAAC1F,EAAK,OAAM,IAAI,MAAM,+DAA+D;AACzF,SAAOA;AACT;AAOO,SAAS6F,GAAU;AAAA,EACxB,MAAA3I,IAAO;AAAA,EACP,cAAAqC;AAAA,EACA,WAAAjD;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAmB;AACjB,QAAMoJ,IAAOvG,IACT,MAAM,QAAQA,CAAY,IACxBA,IACA,CAACA,CAAY,IACf,CAAA,GACE,CAACgB,GAAMC,CAAO,IAAInD,EAAmByI,CAAI,GAEzCC,IAAS,CAACpH,MACd6B,EAAQ,CAACwF,MAAS;AAChB,UAAMC,IAAMD,EAAK,SAASrH,CAAK;AAC/B,WAAIzB,MAAS,WAAiB+I,IAAM,CAAA,IAAK,CAACtH,CAAK,IACxCsH,IAAMD,EAAK,OAAO,CAACrI,MAAMA,MAAMgB,CAAK,IAAI,CAAC,GAAGqH,GAAMrH,CAAK;AAAA,EAChE,CAAC;AAEH,SACE,gBAAA/B,EAAC8I,EAAiB,UAAjB,EAA0B,OAAO,EAAE,MAAAnF,GAAM,QAAAwF,KACxC,UAAA,gBAAAnJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWd,EAAG,iEAAiEQ,CAAS;AAAA,MACvF,GAAGI;AAAA,MAEH,UAAAgD;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAKO,SAASwG,GAAc,EAAE,OAAAvH,GAAO,UAAAe,GAAU,GAAGhD,KAA6B;AAC/E,SACE,gBAAAE,EAAC+I,EAAY,UAAZ,EAAqB,OAAAhH,GACpB,4BAAC,OAAA,EAAK,GAAGjC,GAAQ,UAAAgD,EAAA,CAAS,EAAA,CAC5B;AAEJ;AAEO,SAASyG,GAAiB;AAAA,EAC/B,WAAA7J;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAkD;AAChD,QAAMsD,IAAM4F,EAAA,GACNjH,IAAQsB,EAAW0F,CAAW,GAC9BS,IAASpG,EAAI,KAAK,SAASrB,CAAK;AACtC,SACE,gBAAAjB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,iBAAe0I;AAAA,MACf,SAAS,MAAMpG,EAAI,OAAOrB,CAAK;AAAA,MAC/B,WAAW7C;AAAA,QACT;AAAA,QACA;AAAA,QACAQ;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAgD;AAAA,QACD,gBAAA9C,EAAC,UAAK,WAAWd,EAAG,sCAAsCsK,KAAU,YAAY,GAAG,UAAA,IAAA,CAEnF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASC,GAAiB;AAAA,EAC/B,WAAA/J;AAAA,EACA,GAAGI;AACL,GAAyC;AACvC,QAAMsD,IAAM4F,EAAA,GACNjH,IAAQsB,EAAW0F,CAAW;AACpC,SAAK3F,EAAI,KAAK,SAASrB,CAAK,IACrB,gBAAA/B,EAAC,SAAI,WAAWd,EAAG,8BAA8BQ,CAAS,GAAI,GAAGI,GAAO,IADzC;AAExC;AClGA,MAAM4J,KAAkC;AAAA,EACtC,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AACT;AAaO,SAASC,GAAQ,EAAE,SAAAC,GAAS,MAAAC,IAAO,OAAO,UAAA/G,GAAU,WAAApD,KAA2B;AACpF,QAAM,CAACiE,GAAMC,CAAO,IAAInD,EAAS,EAAK,GAChCJ,IAAK2C,EAAA;AAEX,SACE,gBAAAlC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,cAAc,MAAM8C,EAAQ,EAAI;AAAA,MAChC,cAAc,MAAMA,EAAQ,EAAK;AAAA,MACjC,SAAS,MAAMA,EAAQ,EAAI;AAAA,MAC3B,QAAQ,MAAMA,EAAQ,EAAK;AAAA,MAE3B,UAAA;AAAA,QAAA,gBAAA5D,EAAC,QAAA,EAAK,oBAAkB2D,IAAOtD,IAAK,QAAY,UAAAyC,GAAS;AAAA,QACxDa,KACC,gBAAA3D;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,IAAAK;AAAA,YACA,WAAWnB;AAAA,cACT;AAAA,cACA;AAAA,cACAwK,GAAQG,CAAI;AAAA,cACZnK;AAAA,YAAA;AAAA,YAGD,UAAAkK;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;ACnCA,MAAME,IAAiBrH,EAA0C,IAAI;AACrE,SAASsH,IAAa;AACpB,QAAM3G,IAAMC,EAAWyG,CAAc;AACrC,MAAI,CAAC1G,EAAK,OAAM,IAAI,MAAM,2DAA2D;AACrF,SAAOA;AACT;AAEO,SAAS4G,GAAQ,EAAE,UAAAlH,KAA2C;AACnE,QAAM,CAACa,GAAMC,CAAO,IAAInD,EAAS,EAAK,GAChCV,IAAMqC,EAAuB,IAAI;AAEvC,SAAAC,EAAU,MAAM;AACd,QAAI,CAACsB,EAAM;AACX,UAAME,IAAU,CAACC,MAAkB;AACjC,MAAI/D,EAAI,WAAW,CAACA,EAAI,QAAQ,SAAS+D,EAAE,MAAc,KAAGF,EAAQ,EAAK;AAAA,IAC3E,GACMG,IAAQ,CAACD,MAAqBA,EAAE,QAAQ,YAAYF,EAAQ,EAAK;AACvE,oBAAS,iBAAiB,aAAaC,CAAO,GAC9C,SAAS,iBAAiB,WAAWE,CAAK,GACnC,MAAM;AACX,eAAS,oBAAoB,aAAaF,CAAO,GACjD,SAAS,oBAAoB,WAAWE,CAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAACJ,CAAI,CAAC,GAGP,gBAAA3D,EAAC8J,EAAe,UAAf,EAAwB,OAAO,EAAE,MAAAnG,GAAM,SAAAC,EAAA,GACtC,4BAAC,OAAA,EAAI,KAAA7D,GAAU,WAAU,yBACtB,UAAA+C,GACH,GACF;AAEJ;AAGO,SAASmH,GAAe,EAAE,UAAAnH,KAA6C;AAC5E,QAAM,EAAE,MAAAa,GAAM,SAAAC,EAAA,IAAYmG,EAAA;AAC1B,SAAO9F,EAAanB,GAAU;AAAA,IAC5B,SAAS,MAAMc,EAAQ,CAACD,CAAI;AAAA,IAC5B,iBAAiB;AAAA,IACjB,iBAAiBA;AAAA,EAAA,CAClB;AACH;AAEO,SAASuG,GAAe;AAAA,EAC7B,UAAApH;AAAA,EACA,OAAAqB,IAAQ;AAAA,EACR,WAAAzE;AACF,GAIG;AACD,QAAM,EAAE,MAAAiE,EAAA,IAASoG,EAAA;AACjB,SAAKpG,IAEH,gBAAA3D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWd;AAAA,QACT;AAAA,QACA;AAAA,QACAiF,MAAU,QAAQ,YAAY;AAAA,QAC9BzE;AAAA,MAAA;AAAA,MAGD,UAAAoD;AAAA,IAAA;AAAA,EAAA,IAXa;AAcpB;AC/EO,SAASqH,EAAO,EAAE,UAAArH,KAA2C;AAClE,QAAM,CAACsH,GAASC,CAAU,IAAI5J,EAAS,EAAK;AAE5C,SADA4B,EAAU,MAAMgI,EAAW,EAAI,GAAG,CAAA,CAAE,GAC/BD,IACEE,GAAaxH,GAAU,SAAS,IAAI,IADtB;AAEvB;ACNO,SAASyH,GAAe5G,GAAeoE,GAAqB;AACjE,EAAA1F,EAAU,MAAM;AACd,QAAI,CAACsB,EAAM;AACX,UAAMI,IAAQ,CAACD,MAAqBA,EAAE,QAAQ,YAAYiE,EAAA,GACpDyC,IAAe,SAAS,KAAK,MAAM;AACzC,oBAAS,KAAK,MAAM,WAAW,UAC/B,SAAS,iBAAiB,WAAWzG,CAAK,GACnC,MAAM;AACX,eAAS,KAAK,MAAM,WAAWyG,GAC/B,SAAS,oBAAoB,WAAWzG,CAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAACJ,GAAMoE,CAAO,CAAC;AACpB;ACVA,MAAM0C,KAAehI,EAA4C,IAAI;AAQ9D,SAASiI,GAAM,EAAE,MAAA/G,GAAM,cAAAgH,GAAc,UAAA7H,KAAwB;AAClE,QAAM8H,IAAQ,MAAMD,KAAA,gBAAAA,EAAe;AAEnC,SADAJ,GAAe5G,GAAMiH,CAAK,GACrBjH,IAGH,gBAAA3D,EAACmK,GAAA,EACC,UAAA,gBAAAnK,EAACyK,GAAa,UAAb,EAAsB,OAAO,EAAE,OAAAG,EAAA,GAC9B,UAAA,gBAAA9J,EAAC,OAAA,EAAI,WAAU,2DACb,UAAA;AAAA,IAAA,gBAAAd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS4K;AAAA,MAAA;AAAA,IAAA;AAAA,IAEV9H;AAAA,EAAA,EAAA,CACH,GACF,GACF,IAbgB;AAepB;AAEO,SAAS+H,GAAa;AAAA,EAC3B,WAAAnL;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAyC;AACvC,QAAMsD,IAAMC,EAAWoH,EAAY;AACnC,SACE,gBAAA3J;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW5B;AAAA,QACT;AAAA,QACA;AAAA,QACAQ;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAgD;AAAA,QACD,gBAAA9C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAMoD,KAAA,gBAAAA,EAAK;AAAA,YACpB,cAAW;AAAA,YACX,WAAU;AAAA,YACX,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAAS0H,GAAY,EAAE,WAAApL,GAAW,GAAGI,KAA+C;AACzF,SAAO,gBAAAE,EAAC,SAAI,WAAWd,EAAG,gCAAgCQ,CAAS,GAAI,GAAGI,GAAO;AACnF;AACO,SAASiL,GAAW,EAAE,WAAArL,GAAW,GAAGI,KAAmD;AAC5F,SAAO,gBAAAE,EAAC,QAAG,WAAWd,EAAG,iCAAiCQ,CAAS,GAAI,GAAGI,GAAO;AACnF;AACO,SAASkL,GAAiB;AAAA,EAC/B,WAAAtL;AAAA,EACA,GAAGI;AACL,GAA+C;AAC7C,SAAO,gBAAAE,EAAC,OAAE,WAAWd,EAAG,yBAAyBQ,CAAS,GAAI,GAAGI,GAAO;AAC1E;AACO,SAASmL,GAAU,EAAE,WAAAvL,GAAW,GAAGI,KAA+C;AACvF,SAAO,gBAAAE,EAAC,SAAI,WAAWd,EAAG,aAAaQ,CAAS,GAAI,GAAGI,GAAO;AAChE;AACO,SAASoL,GAAY,EAAE,WAAAxL,GAAW,GAAGI,KAA+C;AACzF,SACE,gBAAAE,EAAC,SAAI,WAAWd,EAAG,mCAAmCQ,CAAS,GAAI,GAAGI,GAAO;AAEjF;AC3EA,MAAMqL,KAAgB1I,EAAwD,IAAI,GAE5E2I,KAAoC;AAAA,EACxC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AACV;AASO,SAASC,GAAO,EAAE,MAAA1H,GAAM,cAAAgH,GAAc,MAAAd,IAAO,SAAS,UAAA/G,KAAyB;AACpF,QAAM8H,IAAQ,MAAMD,KAAA,gBAAAA,EAAe;AAEnC,SADAJ,GAAe5G,GAAMiH,CAAK,GACrBjH,IAGH,gBAAA3D,EAACmK,GAAA,EACC,UAAA,gBAAAnK,EAACmL,GAAc,UAAd,EAAuB,OAAO,EAAE,OAAAP,GAAO,MAAAf,EAAA,GACtC,UAAA,gBAAA/I,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,IAAA,gBAAAd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS4K;AAAA,MAAA;AAAA,IAAA;AAAA,IAEV9H;AAAA,EAAA,EAAA,CACH,GACF,GACF,IAbgB;AAepB;AAEO,SAASwI,GAAc;AAAA,EAC5B,WAAA5L;AAAA,EACA,UAAAoD;AAAA,EACA,GAAGhD;AACL,GAAyC;AACvC,QAAMsD,IAAMC,EAAW8H,EAAa,GAC9BtB,KAAOzG,KAAA,gBAAAA,EAAK,SAAQ;AAC1B,SACE,gBAAAtC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW5B;AAAA,QACT;AAAA,QACA;AAAA,QACAkM,GAAYvB,CAAI;AAAA,QAChBnK;AAAA,MAAA;AAAA,MAED,GAAGI;AAAA,MAEH,UAAA;AAAA,QAAAgD;AAAA,QACD,gBAAA9C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAMoD,KAAA,gBAAAA,EAAK;AAAA,YACpB,cAAW;AAAA,YACX,WAAU;AAAA,YACX,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASmI,GAAa,EAAE,WAAA7L,GAAW,GAAGI,KAA+C;AAC1F,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWd,EAAG,0DAA0DQ,CAAS;AAAA,MAChF,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AACO,SAAS0L,GAAY,EAAE,WAAA9L,GAAW,GAAGI,KAAmD;AAC7F,SAAO,gBAAAE,EAAC,QAAG,WAAWd,EAAG,iCAAiCQ,CAAS,GAAI,GAAGI,GAAO;AACnF;AACO,SAAS2L,GAAW,EAAE,WAAA/L,GAAW,GAAGI,KAA+C;AACxF,SAAO,gBAAAE,EAAC,SAAI,WAAWd,EAAG,8BAA8BQ,CAAS,GAAI,GAAGI,GAAO;AACjF;AACO,SAAS4L,GAAa,EAAE,WAAAhM,GAAW,GAAGI,KAA+C;AAC1F,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWd,EAAG,6DAA6DQ,CAAS;AAAA,MACnF,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AClEA,MAAM6L,KAAelJ,EAAwC,IAAI,GAE3DmJ,KAA+G;AAAA,EACnH,MAAS,EAAE,SAAS,mCAAsC,OAAO,WAAmB,aAAa,iBAAsB,QAAQ,qCAAA;AAAA,EAC/H,SAAS,EAAE,SAAS,sCAAsC,OAAO,mBAAmB,aAAa,iBAAsB,QAAQ,2CAAA;AAAA,EAC/H,SAAS,EAAE,SAAS,sCAAsC,OAAO,WAAmB,aAAa,iBAAsB,QAAQ,2BAAA;AAAA,EAC/H,QAAS,EAAE,SAAS,qCAAsC,OAAO,eAAmB,aAAa,iBAAsB,QAAQ,mCAAA;AACjI;AAEO,SAASC,GAAc,EAAE,UAAA/I,KAA2C;AACzE,QAAM,CAACgJ,GAAQC,CAAS,IAAItL,EAAsB,CAAA,CAAE,GAC9CuL,IAAQ5J,EAAO,CAAC,GAEhB6J,IAAU/D,EAAY,CAAC7H,MAAe;AAC1C,IAAA0L,EAAU,CAAC3C,MAASA,EAAK,IAAI,CAACtC,MAAMA,EAAE,OAAOzG,IAAK,EAAE,GAAGyG,GAAG,SAAS,GAAA,IAASA,CAAC,CAAC,GAC9E,WAAW,MAAM;AACf,MAAAiF,EAAU,CAAC3C,MAASA,EAAK,OAAO,CAACtC,MAAMA,EAAE,OAAOzG,CAAE,CAAC;AAAA,IACrD,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAEC6L,IAAQhE,EAAY,CAACiE,MAA0B;AACnD,UAAM9L,IAAK,EAAE2L,EAAM;AACnB,WAAAD,EAAU,CAAC3C,MAAS,CAAC,GAAGA,GAAM,EAAE,IAAA/I,GAAI,SAAS,QAAQ,UAAU,KAAM,GAAG8L,EAAA,CAAS,CAAC,GAC3E9L;AAAA,EACT,GAAG,CAAA,CAAE;AAEL,SACE,gBAAAS,EAAC6K,GAAa,UAAb,EAAsB,OAAO,EAAE,OAAAO,GAAO,SAAAD,KACpC,UAAA;AAAA,IAAAnJ;AAAA,IACD,gBAAA9C,EAACmK,GAAA,EACC,UAAA,gBAAAnK,EAAC,OAAA,EAAI,WAAU,2FACZ,UAAA8L,EAAO,IAAI,CAAChF,MACX,gBAAA9G,EAACoM,IAAA,EAAqB,MAAMtF,GAAG,WAAW,MAAMmF,EAAQnF,EAAE,EAAE,KAA5CA,EAAE,EAA6C,CAChE,EAAA,CACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAASsF,GAAU,EAAE,MAAAC,GAAM,WAAAC,KAAyD;AAClF,EAAAjK,EAAU,MAAM;AACd,QAAI,CAACgK,EAAK,SAAU;AACpB,UAAME,IAAQ,WAAWD,GAAWD,EAAK,QAAQ;AACjD,WAAO,MAAM,aAAaE,CAAK;AAAA,EACjC,GAAG,CAACF,EAAK,UAAUC,CAAS,CAAC;AAE7B,QAAME,IAASZ,GAAcS,EAAK,WAAW,MAAM;AAEnD,SACE,gBAAAvL;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAW5B;AAAA,QACT;AAAA,QACAmN,EAAK,UACD,qDACA;AAAA,QACJG,EAAO;AAAA,MAAA;AAAA,MAGR,UAAA;AAAA,QAAAH,EAAK,QACJ,gBAAArM,EAAC,QAAA,EAAK,WAAWd,EAAG,mBAAmBsN,EAAO,KAAK,GAAI,UAAAH,EAAK,KAAA,CAAK;AAAA,QAGnE,gBAAAvL,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,UAAA,gBAAAd,EAAC,OAAA,EAAI,WAAWd,EAAG,yBAAyBsN,EAAO,KAAK,GAAI,YAAK,MAAA,CAAM;AAAA,UACtEH,EAAK,eACJ,gBAAArM,EAAC,OAAA,EAAI,WAAWd,EAAG,kBAAkBsN,EAAO,WAAW,GAAI,UAAAH,EAAK,YAAA,CAAY;AAAA,QAAA,GAEhF;AAAA,QAEA,gBAAAvL,EAAC,OAAA,EAAI,WAAU,oCACZ,UAAA;AAAA,UAAAuL,EAAK,UACJ,gBAAArM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS,MAAM;AAAE,gBAAAqM,EAAK,OAAQ,QAAA,GAAWC,EAAA;AAAA,cAAa;AAAA,cACtD,WAAWpN,EAAG,mFAAmFsN,EAAO,MAAM;AAAA,cAE7G,YAAK,OAAO;AAAA,YAAA;AAAA,UAAA;AAAA,UAGjB,gBAAAxM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAASsM;AAAA,cACT,cAAW;AAAA,cACX,WAAWpN,EAAG,iFAAiFsN,EAAO,KAAK;AAAA,cAC5G,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASC,KAAW;AACzB,QAAMrJ,IAAMC,EAAWsI,EAAY;AACnC,MAAI,CAACvI,EAAK,OAAM,IAAI,MAAM,kDAAkD;AAC5E,SAAOA;AACT;AC5HO,MAAMsJ,KAAmBnN;AAAA,EAC9B;AAAA,EAIA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB,EAAE,SAAS,GAAA;AAAA,EAAM;AAEtC,GAMaoN,KAAWlN;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,SAAAS,GAAS,GAAGL,EAAA,GAASC,MACjC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWb,EAAGwN,GAAiB,EAAE,SAAAvM,EAAA,CAAS,GAAGT,CAAS;AAAA,MACrD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA6M,GAAS,cAAc;ACvBhB,MAAMC,KAAYnN;AAAA,EACvB,CAAC,EAAE,MAAAoN,GAAM,UAAAC,GAAU,WAAApN,GAAW,GAAGI,EAAA,GAASC,MAAQ;AAChD,UAAM,EAAE,OAAAmM,EAAA,IAAUO,GAAA;AAElB,aAASM,IAAa;AACpB,gBAAU,UAAU,UAAUF,CAAI,EAAE,KAAK,MAAM;AAC7C,QAAAX,EAAM,EAAE,OAAO,YAAY,SAAS,WAAW,UAAU,KAAM;AAAA,MACjE,CAAC;AAAA,IACH;AAEA,WACE,gBAAApL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAf;AAAA,QACA,WAAWb,EAAG,2CAA2CQ,CAAS;AAAA,QACjE,GAAGI;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAU,2DACZ,UAAA;AAAA,YAAAgM,sBACE,QAAA,EAAK,WAAU,mCAAmC,UAAAA,GAAS,sBAE3D,QAAA,CAAA,CAAK;AAAA,YAER,gBAAAhM;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAASiM;AAAA,gBACT,cAAW;AAAA,gBACX,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,gBAAA/M,EAACgN,IAAA,EAAS;AAAA,kBAAE;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAEd,GACF;AAAA,UACA,gBAAAhN,EAAC,SAAI,WAAU,+CACb,4BAAC,QAAA,EAAK,WAAU,qBAAqB,UAAA6M,EAAA,CAAK,EAAA,CAC5C;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAD,GAAU,cAAc;AAExB,SAASI,KAAW;AAClB,2BACG,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,eAAW,IAC1J,UAAA;AAAA,IAAA,gBAAAhN,EAAC,QAAA,EAAK,GAAE,KAAI,GAAE,KAAI,OAAM,KAAI,QAAO,KAAI,IAAG,MAAA,CAAM;AAAA,IAChD,gBAAAA,EAAC,QAAA,EAAK,GAAE,gFAAA,CAAgF;AAAA,EAAA,GAC1F;AAEJ;ACZA,SAASiN,GAAQ;AAAA,EACf,MAAAC;AAAA,EACA,KAAAC;AAAA,EACA,QAAAxE;AAAA,EACA,UAAAtE;AAAA,EACA,cAAA+I;AACF,GAMG;AACD,QAAMC,IAAY,CAACC,MACjB,gGACCA,IAAW,oCAAoC;AAElD,SACE,gBAAAxM,EAAC,SAAA,EAAM,WAAU,mGAEf,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,kCACZ,UAAA;AAAA,MAAAoM,EAAK,SACJ,gBAAAlN;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKkN,EAAK;AAAA,UACV,KAAKA,EAAK;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA,IAGZ,gBAAAlN,EAAC,QAAA,EAAK,WAAU,uHACb,UAAAkN,EAAK,YAAYA,EAAK,KAAK,MAAM,GAAG,CAAC,EAAE,eAC1C;AAAA,MAEF,gBAAApM,EAAC,OAAA,EAAI,WAAU,WACb,UAAA;AAAA,QAAA,gBAAAd,EAAC,KAAA,EAAE,WAAU,wCAAwC,UAAAkN,EAAK,MAAK;AAAA,QAC9DA,EAAK,YACJ,gBAAAlN,EAAC,OAAE,WAAU,kCAAkC,YAAK,SAAA,CAAS;AAAA,MAAA,GAEjE;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,WAAU;AAAA,UACV,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,eAAW;AAAA,UAEX,UAAA,gBAAAA,EAAC,QAAA,EAAK,GAAE,2BAAA,CAA2B;AAAA,QAAA;AAAA,MAAA;AAAA,IACrC,GACF;AAAA,IAGCmN,EAAI,IAAI,CAAC,EAAE,OAAAI,GAAO,OAAAxH,EAAA,wBAChB,OAAA,EACC,UAAA;AAAA,MAAA,gBAAA/F,EAAC,KAAA,EAAE,WAAU,iDAAiD,UAAAuN,GAAM;AAAA,MACpE,gBAAAvN,EAAC,QAAG,WAAU,yBACX,YAAM,IAAI,CAACqM,MACV,gBAAArM,EAAC,MAAA,EACC,UAAA,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAMuD,EAASgI,EAAK,EAAE;AAAA,UAC/B,WAAWgB,EAAUhB,EAAK,OAAO1D,CAAM;AAAA,UAEtC,UAAA;AAAA,YAAA0D,EAAK,QACJ,gBAAArM,EAAC,QAAA,EAAK,WAAU,sDACb,YAAK,MACR;AAAA,YAEDqM,EAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,KAXDA,EAAK,EAad,CACD,EAAA,CACH;AAAA,IAAA,EAAA,GAnBQkB,CAoBV,CACD;AAAA,IAGAH,KAAgB,gBAAApN,EAAC,OAAA,EAAI,WAAU,WAAW,UAAAoN,EAAA,CAAa;AAAA,EAAA,GAC1D;AAEJ;AAOO,SAASI,GAAW;AAAA,EACzB,OAAA1F;AAAA,EACA,aAAA2F;AAAA,EACA,SAAAjM;AAAA,EACA,iBAAAE;AACF,GAKG;AACD,SACE,gBAAAZ,EAAC,OAAA,EAAI,WAAU,qDACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EACC,UAAA;AAAA,MAAA,gBAAAd,EAAC,KAAA,EAAE,WAAU,+BAA+B,UAAA8H,GAAM;AAAA,MACjD2F,KAAe,gBAAAzN,EAAC,KAAA,EAAE,WAAU,gCAAgC,UAAAyN,EAAA,CAAY;AAAA,IAAA,GAC3E;AAAA,IACA,gBAAAzN,EAACuB,GAAA,EAAO,SAAAC,GAAkB,iBAAAE,GAAkC,WAAU,WAAA,CAAW;AAAA,EAAA,GACnF;AAEJ;AAEO,SAASgM,GAAa,EAAE,UAAA5K,KAA2C;AACxE,SACE,gBAAA9C,EAAC,OAAA,EAAI,WAAU,mDACZ,UAAA8C,EAAA,CACH;AAEJ;AAEO,SAAS6K,GAAc;AAAA,EAC5B,OAAA7F;AAAA,EACA,UAAAhF;AACF,GAGG;AACD,SACE,gBAAAhC,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAA,gBAAAd,EAAC,MAAA,EAAG,WAAU,mCAAmC,UAAA8H,GAAM;AAAA,IACvD,gBAAA9H,EAAC0N,MAAc,UAAA5K,EAAA,CAAS;AAAA,EAAA,GAC1B;AAEJ;AAWO,SAAS8K,GAAe;AAAA,EAC7B,MAAAvG;AAAA,EACA,OAAAS;AAAA,EACA,aAAA2F;AAAA,EACA,WAAAI,IAAY;AAAA,EACZ,WAAAC;AAAA,EACA,cAAAC;AACF,GAAwB;AACtB,SACE,gBAAAjN,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,IAAA,gBAAAd,EAAC,OAAA,EAAI,WAAU,4EACb,UAAA,gBAAAA,EAAC,UAAK,WAAU,2BAA2B,aAAK,EAAA,CAClD;AAAA,IACA,gBAAAc,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,gBAAAd,EAAC,KAAA,EAAE,WAAU,+BAA+B,UAAA8H,GAAM;AAAA,MACjD2F,KAAe,gBAAAzN,EAAC,KAAA,EAAE,WAAU,gCAAgC,UAAAyN,EAAA,CAAY;AAAA,IAAA,GAC3E;AAAA,IACCI,IACC,gBAAA7N,EAACR,GAAA,EAAO,SAAQ,gBAAe,MAAK,MAAK,SAASuO,GAAc,yBAEhE,IAEA,gBAAA/N,EAACR,KAAO,SAAQ,aAAY,MAAK,MAAK,SAASsO,GAAW,UAAA,WAAA,CAE1D;AAAA,EAAA,GAEJ;AAEJ;AAIO,SAASE,GAAqB;AAAA,EACnC,MAAArK;AAAA,EACA,cAAAgH;AAAA,EACA,MAAAuC;AAAA,EACA,KAAAC;AAAA,EACA,gBAAAc;AAAA,EACA,eAAeC;AAAA,EACf,iBAAAC;AAAA,EACA,eAAAC,IAAgB,CAAA;AAAA,EAChB,kBAAAC,IAAmB,CAAA;AAAA,EACnB,eAAAC;AAAA,EACA,cAAAlB;AACF,GAA8B;;AAC5B,QAAMmB,MAAUC,KAAAzJ,IAAAoI,EAAI,CAAC,MAAL,gBAAApI,EAAQ,MAAM,OAAd,gBAAAyJ,EAAkB,OAAM,IAClC,CAACC,GAAiBC,CAAkB,IAAIjO;AAAA,IAC5CwN,KAAkBM;AAAA,EAAA,GAGd5F,IAASuF,KAAqBO,GAE9BE,IAAe,CAACtO,MAAe;AACnC,IAAAqO,EAAmBrO,CAAE,GACrB8N,KAAA,QAAAA,EAAkB9N;AAAA,EACpB,GAIMuO,IADWzB,EAAI,QAAQ,CAAC0B,MAAMA,EAAE,KAAK,EACf,KAAK,CAAC3I,MAAMA,EAAE,OAAOyC,CAAM,GACjDb,IAAQsG,EAAczF,CAAM,MAAKiG,KAAA,gBAAAA,EAAY,UAASjG,GACtDmG,IAAWT,EAAiB1F,CAAM;AAExC,SACE,gBAAA3I,EAAC0K,IAAA,EAAM,MAAA/G,GAAY,cAAAgH,GACjB,UAAA,gBAAA3K,EAAC6K,IAAA,EAAa,WAAU,sCACtB,UAAA,gBAAA/J,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,IAAA,gBAAAd;AAAA,MAACiN;AAAA,MAAA;AAAA,QACC,MAAAC;AAAA,QACA,KAAAC;AAAA,QACA,QAAAxE;AAAA,QACA,UAAUgG;AAAA,QACV,cAAAvB;AAAA,MAAA;AAAA,IAAA;AAAA,IAGF,gBAAAtM,EAAC,OAAA,EAAI,WAAU,qDACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,QAAA,gBAAAd,EAAC,MAAA,EAAG,WAAU,8DACX,UAAA8H,GACH;AAAA,QACCgH,KACC,gBAAA9O,EAAC,KAAA,EAAE,WAAU,gCAAgC,UAAA8O,GAAS;AAAA,QAExD,gBAAA9O,EAAC,OAAA,EAAI,WAAU,sGAAA,CAAsG;AAAA,MAAA,GACvH;AAAA,MAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+CACZ,WAAAsO,KAAA,gBAAAA,EAAgB3F,OACf,gBAAA7H,EAAC,KAAA,EAAE,WAAU,yBAAwB,UAAA;AAAA,QAAA;AAAA,QACvB,gBAAAd,EAAC,YAAQ,UAAA8H,EAAA,CAAM;AAAA,QAAS;AAAA,MAAA,EAAA,CACtC,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;AC7PA,MAAMiH,KAAetM,EAAwC,IAAI,GAE3DuM,IAAW,mBACXC,IAAY,cACZC,IAAa;AAEnB,SAASC,KAAuB;;AAC9B,SACE,OAAO,SAAW,SAClBpK,IAAA,OAAO,eAAP,gBAAAA,EAAA,aAAoB,gCAAgC;AAExD;AAEA,SAASqK,EAAuBC,GAAaC,GAAgB;AAC3D,MAAI;AACF,WAAQ,aAAa,QAAQD,CAAG,KAAWC;AAAA,EAC7C,QAAQ;AACN,WAAOA;AAAA,EACT;AACF;AAiBO,SAASC,GAAc;AAAA,EAC5B,UAAAzM;AAAA,EACA,aAAA0M,IAAc;AAAA,EACd,cAAAC,IAAe;AAAA,EACf,eAAAC,IAAgB;AAAA,EAChB,QAAAlJ;AACF,GAAuB;AACrB,QAAM,CAACmJ,GAAMC,CAAY,IAAInP;AAAA,IAAoB,MAC/C2O,EAAKJ,GAAUQ,CAAW;AAAA,EAAA,GAEtB,CAACK,GAAOC,CAAa,IAAIrP;AAAA,IAAgB,MAC7C2O,EAAKH,GAAWQ,CAAY;AAAA,EAAA,GAExB,CAACM,GAAQC,CAAc,IAAIvP;AAAA,IAAsB,MACrD2O,EAAKF,GAAYQ,CAAa;AAAA,EAAA,GAE1B,CAACO,GAAYC,CAAa,IAAIzP,EAAS0O,EAAW;AAGxD,EAAA9M,EAAU,MAAM;;AACd,UAAM8N,KAAKpL,IAAA,OAAO,eAAP,gBAAAA,EAAA,aAAoB;AAC/B,QAAI,CAACoL,EAAI;AACT,UAAMjN,IAAW,CAACY,MAA2BoM,EAAcpM,EAAE,OAAO;AACpE,WAAAqM,EAAG,iBAAiB,UAAUjN,CAAQ,GAC/B,MAAMiN,EAAG,oBAAoB,UAAUjN,CAAQ;AAAA,EACxD,GAAG,CAAA,CAAE;AAEL,QAAMkN,IACJT,MAAS,WAAYM,IAAa,SAAS,UAAWN;AAGxD,EAAAtN,EAAU,MAAM;AACd,UAAMgO,KAAK7J,KAAA,gBAAAA,QAAc,SAAS;AAClC,IAAA6J,EAAG,aAAa,cAAcD,CAAY,GACtCP,KAASA,MAAU,YACrBQ,EAAG,aAAa,cAAcR,CAAK,IAEnCQ,EAAG,gBAAgB,YAAY,GAE7BN,KAAUA,MAAW,YACvBM,EAAG,aAAa,eAAeN,CAAM,IAErCM,EAAG,gBAAgB,aAAa;AAAA,EAEpC,GAAG,CAACD,GAAcP,GAAOE,GAAQvJ,CAAM,CAAC;AAExC,QAAM8J,IAAUpI,EAAY,CAAC,MAAiB;AAC5C,IAAA0H,EAAa,CAAC;AACd,QAAI;AACF,mBAAa,QAAQZ,GAAU,CAAC;AAAA,IAClC,QAAQ;AAAA,IAER;AAAA,EACF,GAAG,CAAA,CAAE,GAECuB,IAAWrI,EAAY,CAACsI,MAAa;AACzC,IAAAV,EAAcU,CAAC;AACf,QAAI;AACF,mBAAa,QAAQvB,GAAWuB,CAAC;AAAA,IACnC,QAAQ;AAAA,IAER;AAAA,EACF,GAAG,CAAA,CAAE,GAECC,IAAYvI,EAAY,CAACwI,MAAmB;AAChD,IAAAV,EAAeU,CAAC;AAChB,QAAI;AACF,mBAAa,QAAQxB,GAAYwB,CAAC;AAAA,IACpC,QAAQ;AAAA,IAER;AAAA,EACF,GAAG,CAAA,CAAE,GAECC,IAAazI,EAAY,MAAM;AACnC,IAAAoI,EAAQF,MAAiB,SAAS,UAAU,MAAM;AAAA,EACpD,GAAG,CAACA,GAAcE,CAAO,CAAC,GAEpBvO,IAAQ6O;AAAA,IACZ,OAAO,EAAE,MAAAjB,GAAM,cAAAS,GAAc,OAAAP,GAAO,QAAAE,GAAQ,SAAAO,GAAS,UAAAC,GAAU,WAAAE,GAAW,YAAAE;IAC1E,CAAChB,GAAMS,GAAcP,GAAOE,GAAQO,GAASC,GAAUE,GAAWE,CAAU;AAAA,EAAA;AAG9E,SACE,gBAAA3Q,EAAC+O,GAAa,UAAb,EAAsB,OAAAhN,GAAe,UAAAe,EAAA,CAAS;AAEnD;AAEO,SAAS+N,KAAW;AACzB,QAAMzN,IAAMC,EAAW0L,EAAY;AACnC,MAAI,CAAC3L;AACH,UAAM,IAAI,MAAM,kDAAkD;AAEpE,SAAOA;AACT;ACvJO,MAAM0N,KAAsB;AAAA,EACjC;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAAA,EAEf;AAAA,IACE,MAAQ;AAAA,IACR,QAAU;AAAA,IACV,MAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,OAAS;AAAA,IACT,OAAS;AAAA,IACT,SAAW;AAAA,IACX,WAAa;AAAA,EAAA;AAEjB;"}
|
package/dist/styles.css
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
--flui-color-neutral-750: #2c303c;
|
|
39
39
|
--flui-color-neutral-800: #22262f;
|
|
40
40
|
--flui-color-neutral-850: #1a1d25;
|
|
41
|
+
--flui-color-neutral-875: #161920;
|
|
41
42
|
--flui-color-neutral-900: #13151b;
|
|
42
43
|
--flui-color-neutral-950: #0e1015;
|
|
43
44
|
--flui-color-neutral-1000: #050608;
|
|
@@ -116,7 +117,7 @@
|
|
|
116
117
|
[data-theme="dark"] {
|
|
117
118
|
--flui-semantic-bg-base: var(--flui-color-neutral-1000);
|
|
118
119
|
--flui-semantic-bg-subtle: var(--flui-color-neutral-950);
|
|
119
|
-
--flui-semantic-bg-muted: var(--flui-color-neutral-
|
|
120
|
+
--flui-semantic-bg-muted: var(--flui-color-neutral-875);
|
|
120
121
|
--flui-semantic-fg-default: var(--flui-color-neutral-50);
|
|
121
122
|
--flui-semantic-fg-muted: var(--flui-color-neutral-300);
|
|
122
123
|
--flui-semantic-border-default: var(--flui-color-neutral-850);
|
|
@@ -217,6 +218,7 @@
|
|
|
217
218
|
--color-neutral-500: var(--flui-color-neutral-500);
|
|
218
219
|
--color-neutral-800: var(--flui-color-neutral-800);
|
|
219
220
|
--color-neutral-850: var(--flui-color-neutral-850);
|
|
221
|
+
--color-neutral-875: var(--flui-color-neutral-875);
|
|
220
222
|
--color-neutral-900: var(--flui-color-neutral-900);
|
|
221
223
|
--color-neutral-950: var(--flui-color-neutral-950);
|
|
222
224
|
--color-neutral-1000: var(--flui-color-neutral-1000);
|