@fluityy/designsystem 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as u } from "react/jsx-runtime";
2
- import { forwardRef as p, useState as x, useRef as L, useEffect as N, createContext as C, useContext as y, useId as K, cloneElement as q, Children as oe, Fragment as le, useCallback as z, useMemo as se } from "react";
2
+ import { forwardRef as p, useState as v, useRef as L, useEffect as N, createContext as C, useContext as y, useId as K, cloneElement as q, Children as oe, Fragment as le, useCallback as z, useMemo as se } from "react";
3
3
  import { cva as V } from "class-variance-authority";
4
4
  import { clsx as ie } from "clsx";
5
5
  import { twMerge as ce } from "tailwind-merge";
@@ -62,12 +62,12 @@ const fe = V(
62
62
  }
63
63
  ), me = p(
64
64
  ({ className: e, size: r, invalid: a, label: n, id: o, type: l, ...s }, c) => {
65
- const [d, f] = x(!1), g = l === "password", b = g ? d ? "text" : "password" : l, v = o ?? (n ? n.toLowerCase().replace(/\s+/g, "-") : void 0), h = /* @__PURE__ */ u("div", { className: "relative flex w-full items-center", children: [
65
+ const [d, f] = v(!1), g = l === "password", b = g ? d ? "text" : "password" : l, x = o ?? (n ? n.toLowerCase().replace(/\s+/g, "-") : void 0), h = /* @__PURE__ */ u("div", { className: "relative flex w-full items-center", children: [
66
66
  /* @__PURE__ */ t(
67
67
  "input",
68
68
  {
69
69
  ref: c,
70
- id: v,
70
+ id: x,
71
71
  type: b,
72
72
  className: i(
73
73
  fe({ size: r, invalid: a }),
@@ -103,7 +103,7 @@ const fe = V(
103
103
  )
104
104
  ] });
105
105
  return n ? /* @__PURE__ */ u("div", { className: "flex w-full flex-col gap-1.5", children: [
106
- /* @__PURE__ */ t("label", { htmlFor: v, className: "text-xs font-medium text-fg", children: n }),
106
+ /* @__PURE__ */ t("label", { htmlFor: x, className: "text-xs font-medium text-fg", children: n }),
107
107
  h
108
108
  ] }) : h;
109
109
  }
@@ -131,11 +131,11 @@ const he = p(({ className: e, ...r }, a) => /* @__PURE__ */ t("h3", { ref: a, cl
131
131
  he.displayName = "CardTitle";
132
132
  const be = p(({ className: e, ...r }, a) => /* @__PURE__ */ t("p", { ref: a, className: i("text-sm text-fg-muted", e), ...r }));
133
133
  be.displayName = "CardDescription";
134
- const xe = p(
134
+ const ve = p(
135
135
  ({ className: e, ...r }, a) => /* @__PURE__ */ t("div", { ref: a, className: i("p-6 pt-0", e), ...r })
136
136
  );
137
- xe.displayName = "CardContent";
138
- const ve = V(
137
+ ve.displayName = "CardContent";
138
+ const xe = V(
139
139
  "relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50",
140
140
  {
141
141
  variants: {
@@ -159,7 +159,7 @@ const ve = V(
159
159
  }
160
160
  ), G = p(
161
161
  ({ className: e, size: r, checked: a, defaultChecked: n, onCheckedChange: o, disabled: l, ...s }, c) => {
162
- const d = a !== void 0, [f, g] = x(n ?? !1), b = d ? a : f;
162
+ const d = a !== void 0, [f, g] = v(n ?? !1), b = d ? a : f;
163
163
  return /* @__PURE__ */ t(
164
164
  "button",
165
165
  {
@@ -172,7 +172,7 @@ const ve = V(
172
172
  const h = !b;
173
173
  d || g(h), o == null || o(h);
174
174
  },
175
- className: i(ve({ size: r, checked: b }), e),
175
+ className: i(xe({ size: r, checked: b }), e),
176
176
  ...s,
177
177
  children: /* @__PURE__ */ t("span", { className: we({ size: r, checked: b }) })
178
178
  }
@@ -258,13 +258,13 @@ function ur({
258
258
  children: l,
259
259
  ...s
260
260
  }) {
261
- const c = K(), d = e !== void 0, [f, g] = x(r), b = d ? e : f, v = (h) => {
261
+ const c = K(), d = e !== void 0, [f, g] = v(r), b = d ? e : f, x = (h) => {
262
262
  d || g(h), a == null || a(h);
263
263
  };
264
264
  return /* @__PURE__ */ t(
265
265
  U.Provider,
266
266
  {
267
- value: { name: n ?? c, value: b, onChange: v },
267
+ value: { name: n ?? c, value: b, onChange: x },
268
268
  children: /* @__PURE__ */ t("div", { role: "radiogroup", className: i("flex flex-col gap-2", o), ...s, children: l })
269
269
  }
270
270
  );
@@ -367,7 +367,7 @@ function j() {
367
367
  return e;
368
368
  }
369
369
  function dr({ children: e }) {
370
- const [r, a] = x(!1), n = L(null);
370
+ const [r, a] = v(!1), n = L(null);
371
371
  return N(() => {
372
372
  if (!r) return;
373
373
  const o = (s) => {
@@ -500,7 +500,7 @@ function Ee(e) {
500
500
  }
501
501
  const Le = p(
502
502
  ({ className: e, size: r = "md", src: a, alt: n, name: o, status: l, ...s }, c) => {
503
- const [d, f] = x(!1), g = a && !d;
503
+ const [d, f] = v(!1), g = a && !d;
504
504
  return /* @__PURE__ */ u("span", { ref: c, className: i(ze({ size: r }), e), ...s, children: [
505
505
  /* @__PURE__ */ t("span", { className: "flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg", children: g ? /* @__PURE__ */ t(
506
506
  "img",
@@ -662,7 +662,7 @@ function je() {
662
662
  return /* @__PURE__ */ t("li", { "aria-hidden": !0, className: "text-fg-muted", children: "/" });
663
663
  }
664
664
  function Be(e, r = 1e3) {
665
- const [a, n] = x(0);
665
+ const [a, n] = v(0);
666
666
  return N(() => {
667
667
  n(0);
668
668
  const o = performance.now(), l = (s) => {
@@ -674,7 +674,7 @@ function Be(e, r = 1e3) {
674
674
  }
675
675
  const _e = p(
676
676
  ({ className: e, label: r, value: a, countUp: n, formatCount: o, delta: l, helpText: s, icon: c, ...d }, f) => {
677
- const g = Be(n ?? 0), b = typeof l == "number", v = b && l >= 0, h = n !== void 0 ? o ? o(g) : Math.round(g).toLocaleString("pt-BR") : a;
677
+ const g = Be(n ?? 0), b = typeof l == "number", x = b && l >= 0, h = n !== void 0 ? o ? o(g) : Math.round(g).toLocaleString("pt-BR") : a;
678
678
  return /* @__PURE__ */ u(
679
679
  "div",
680
680
  {
@@ -690,8 +690,8 @@ const _e = p(
690
690
  c && /* @__PURE__ */ t("span", { className: "text-fg-muted", children: c })
691
691
  ] }),
692
692
  /* @__PURE__ */ t("span", { className: "text-3xl font-bold text-fg whitespace-nowrap tabular-nums", children: h }),
693
- b && /* @__PURE__ */ u(Y, { variant: v ? "success" : "danger", size: "sm", className: "self-start", children: [
694
- v ? "▲" : "▼",
693
+ b && /* @__PURE__ */ u(Y, { variant: x ? "success" : "danger", size: "sm", className: "self-start", children: [
694
+ x ? "▲" : "▼",
695
695
  " ",
696
696
  Math.abs(l),
697
697
  "%"
@@ -770,7 +770,7 @@ function Ke({
770
770
  defaultValue: r,
771
771
  onChange: a
772
772
  }) {
773
- const n = e !== void 0, [o, l] = x(r), s = n ? e : o, c = z(
773
+ const n = e !== void 0, [o, l] = v(r), s = n ? e : o, c = z(
774
774
  (d) => {
775
775
  n || l(d), a == null || a(d);
776
776
  },
@@ -799,8 +799,8 @@ function br({
799
799
  });
800
800
  return /* @__PURE__ */ t($.Provider, { value: { value: s, setValue: c }, children: /* @__PURE__ */ t("div", { className: n, ...l, children: o }) });
801
801
  }
802
- function xr({ className: e, children: r, ...a }) {
803
- const { value: n } = B(), o = L(null), [l, s] = x({ left: 0, width: 0, ready: !1 });
802
+ function vr({ className: e, children: r, ...a }) {
803
+ const { value: n } = B(), o = L(null), [l, s] = v({ left: 0, width: 0, ready: !1 });
804
804
  return N(() => {
805
805
  const c = o.current;
806
806
  if (!c) return;
@@ -827,7 +827,7 @@ function xr({ className: e, children: r, ...a }) {
827
827
  }
828
828
  );
829
829
  }
830
- function vr({ value: e, className: r, ...a }) {
830
+ function xr({ value: e, className: r, ...a }) {
831
831
  const n = B(), o = n.value === e;
832
832
  return /* @__PURE__ */ t(
833
833
  "button",
@@ -869,9 +869,9 @@ function yr({
869
869
  children: n,
870
870
  ...o
871
871
  }) {
872
- const l = r ? Array.isArray(r) ? r : [r] : [], [s, c] = x(l), d = (f) => c((g) => {
872
+ const l = r ? Array.isArray(r) ? r : [r] : [], [s, c] = v(l), d = (f) => c((g) => {
873
873
  const b = g.includes(f);
874
- return e === "single" ? b ? [] : [f] : b ? g.filter((v) => v !== f) : [...g, f];
874
+ return e === "single" ? b ? [] : [f] : b ? g.filter((x) => x !== f) : [...g, f];
875
875
  });
876
876
  return /* @__PURE__ */ t(J.Provider, { value: { open: s, toggle: d }, children: /* @__PURE__ */ t(
877
877
  "div",
@@ -924,7 +924,7 @@ const qe = {
924
924
  right: "left-full top-1/2 -translate-y-1/2 ml-2"
925
925
  };
926
926
  function kr({ content: e, side: r = "top", children: a, className: n }) {
927
- const [o, l] = x(!1), s = K();
927
+ const [o, l] = v(!1), s = K();
928
928
  return /* @__PURE__ */ u(
929
929
  "span",
930
930
  {
@@ -960,7 +960,7 @@ function Z() {
960
960
  return e;
961
961
  }
962
962
  function zr({ children: e }) {
963
- const [r, a] = x(!1), n = L(null);
963
+ const [r, a] = v(!1), n = L(null);
964
964
  return N(() => {
965
965
  if (!r) return;
966
966
  const o = (s) => {
@@ -1000,7 +1000,7 @@ function Tr({
1000
1000
  ) : null;
1001
1001
  }
1002
1002
  function R({ children: e }) {
1003
- const [r, a] = x(!1);
1003
+ const [r, a] = v(!1);
1004
1004
  return N(() => a(!0), []), r ? ue(e, document.body) : null;
1005
1005
  }
1006
1006
  function ee(e, r) {
@@ -1161,7 +1161,7 @@ const ae = C(null), Ye = {
1161
1161
  danger: { wrapper: "bg-[var(--color-toast-danger-bg)]", title: "text-danger", description: "text-fg-muted", action: "text-danger hover:text-danger/80" }
1162
1162
  };
1163
1163
  function Fr({ children: e }) {
1164
- const [r, a] = x([]), n = L(0), o = z((s) => {
1164
+ const [r, a] = v([]), n = L(0), o = z((s) => {
1165
1165
  a((c) => c.map((d) => d.id === s ? { ...d, leaving: !0 } : d)), setTimeout(() => {
1166
1166
  a((c) => c.filter((d) => d.id !== s));
1167
1167
  }, 160);
@@ -1406,9 +1406,9 @@ function qr({
1406
1406
  footerAction: g
1407
1407
  }) {
1408
1408
  var T, E;
1409
- const b = ((E = (T = n[0]) == null ? void 0 : T.items[0]) == null ? void 0 : E.id) ?? "", [v, h] = x(
1409
+ const b = ((E = (T = n[0]) == null ? void 0 : T.items[0]) == null ? void 0 : E.id) ?? "", [x, h] = v(
1410
1410
  o ?? b
1411
- ), w = l ?? v, P = (k) => {
1411
+ ), w = l ?? x, P = (k) => {
1412
1412
  h(k), s == null || s(k);
1413
1413
  }, M = n.flatMap((k) => k.items).find((k) => k.id === w), D = c[w] ?? (M == null ? void 0 : M.label) ?? w, m = d[w];
1414
1414
  return /* @__PURE__ */ t(Ge, { open: e, onOpenChange: r, children: /* @__PURE__ */ t(Ue, { className: "max-w-[1300px] overflow-hidden p-0", children: /* @__PURE__ */ u("div", { className: "flex h-[820px]", children: [
@@ -1455,18 +1455,18 @@ function Gr({
1455
1455
  defaultRadius: n = "default",
1456
1456
  target: o
1457
1457
  }) {
1458
- const [l, s] = x(
1458
+ const [l, s] = v(
1459
1459
  () => I(F, r)
1460
- ), [c, d] = x(
1460
+ ), [c, d] = v(
1461
1461
  () => I(W, a)
1462
- ), [f, g] = x(
1462
+ ), [f, g] = v(
1463
1463
  () => I(H, n)
1464
- ), [b, v] = x(ar);
1464
+ ), [b, x] = v(ar);
1465
1465
  N(() => {
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;
1469
- const T = (k) => v(k.matches);
1469
+ const T = (k) => x(k.matches);
1470
1470
  return m.addEventListener("change", T), () => m.removeEventListener("change", T);
1471
1471
  }, []);
1472
1472
  const h = l === "system" ? b ? "dark" : "light" : l;
@@ -1884,6 +1884,19 @@ const Or = [
1884
1884
  isColor: !0,
1885
1885
  reference: null
1886
1886
  },
1887
+ {
1888
+ name: "flui-color-neutral-750",
1889
+ cssVar: "--flui-color-neutral-750",
1890
+ path: [
1891
+ "color",
1892
+ "neutral",
1893
+ "750"
1894
+ ],
1895
+ group: "color",
1896
+ value: "#2c303c",
1897
+ isColor: !0,
1898
+ reference: null
1899
+ },
1887
1900
  {
1888
1901
  name: "flui-color-neutral-800",
1889
1902
  cssVar: "--flui-color-neutral-800",
@@ -1897,6 +1910,19 @@ const Or = [
1897
1910
  isColor: !0,
1898
1911
  reference: null
1899
1912
  },
1913
+ {
1914
+ name: "flui-color-neutral-850",
1915
+ cssVar: "--flui-color-neutral-850",
1916
+ path: [
1917
+ "color",
1918
+ "neutral",
1919
+ "850"
1920
+ ],
1921
+ group: "color",
1922
+ value: "#1a1d25",
1923
+ isColor: !0,
1924
+ reference: null
1925
+ },
1900
1926
  {
1901
1927
  name: "flui-color-neutral-900",
1902
1928
  cssVar: "--flui-color-neutral-900",
@@ -2775,7 +2801,7 @@ export {
2775
2801
  je as BreadcrumbSeparator,
2776
2802
  S as Button,
2777
2803
  pe as Card,
2778
- xe as CardContent,
2804
+ ve as CardContent,
2779
2805
  be as CardDescription,
2780
2806
  ge as CardHeader,
2781
2807
  he as CardTitle,
@@ -2818,8 +2844,8 @@ export {
2818
2844
  G as Switch,
2819
2845
  br as Tabs,
2820
2846
  wr as TabsContent,
2821
- xr as TabsList,
2822
- vr as TabsTrigger,
2847
+ vr as TabsList,
2848
+ xr as TabsTrigger,
2823
2849
  Xe as Textarea,
2824
2850
  Gr as ThemeProvider,
2825
2851
  Fr as ToastProvider,
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-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-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-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,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
@@ -35,7 +35,9 @@
35
35
  --flui-color-neutral-500: #6b7385;
36
36
  --flui-color-neutral-600: #4c5263;
37
37
  --flui-color-neutral-700: #363b49;
38
+ --flui-color-neutral-750: #2c303c;
38
39
  --flui-color-neutral-800: #22262f;
40
+ --flui-color-neutral-850: #1a1d25;
39
41
  --flui-color-neutral-900: #13151b;
40
42
  --flui-color-neutral-950: #0e1015;
41
43
  --flui-color-neutral-1000: #050608;
@@ -117,8 +119,8 @@
117
119
  --flui-semantic-bg-muted: var(--flui-color-neutral-800);
118
120
  --flui-semantic-fg-default: var(--flui-color-neutral-50);
119
121
  --flui-semantic-fg-muted: var(--flui-color-neutral-300);
120
- --flui-semantic-border-default: var(--flui-color-neutral-700);
121
- --flui-semantic-border-strong: var(--flui-color-neutral-600);
122
+ --flui-semantic-border-default: var(--flui-color-neutral-850);
123
+ --flui-semantic-border-strong: var(--flui-color-neutral-750);
122
124
  --flui-semantic-primary-subtle: var(--flui-color-brand-800);
123
125
  --flui-semantic-warning-on-warning: var(--flui-color-neutral-950);
124
126
  }
@@ -214,6 +216,7 @@
214
216
  --color-neutral-100: var(--flui-color-neutral-100);
215
217
  --color-neutral-500: var(--flui-color-neutral-500);
216
218
  --color-neutral-800: var(--flui-color-neutral-800);
219
+ --color-neutral-850: var(--flui-color-neutral-850);
217
220
  --color-neutral-900: var(--flui-color-neutral-900);
218
221
  --color-neutral-950: var(--flui-color-neutral-950);
219
222
  --color-neutral-1000: var(--flui-color-neutral-1000);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluityy/designsystem",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Flui Design System — componentes React com Tailwind v4 e tokens semânticos",