@fluityy/designsystem 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as u } from "react/jsx-runtime";
2
- import { forwardRef as p, useState as v, useRef as L, useEffect as 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 C, createContext as N, useContext as y, useId as K, cloneElement as q, Children as oe, Fragment as le, useCallback as z, useMemo as se } from "react";
3
3
  import { cva as V } from "class-variance-authority";
4
4
  import { clsx as ie } from "clsx";
5
5
  import { twMerge as ce } from "tailwind-merge";
@@ -183,7 +183,7 @@ G.displayName = "Switch";
183
183
  const ye = p(
184
184
  ({ className: e, label: r, indeterminate: a = !1, disabled: n, id: o, ...l }, s) => {
185
185
  const c = L(null);
186
- N(() => {
186
+ C(() => {
187
187
  c.current && (c.current.indeterminate = a);
188
188
  }, [a]);
189
189
  const d = (f) => {
@@ -248,7 +248,7 @@ const ye = p(
248
248
  }
249
249
  );
250
250
  ye.displayName = "Checkbox";
251
- const U = C(null);
251
+ const U = N(null);
252
252
  function ur({
253
253
  value: e,
254
254
  defaultValue: r,
@@ -269,7 +269,7 @@ function ur({
269
269
  }
270
270
  );
271
271
  }
272
- const Ne = p(
272
+ const Ce = p(
273
273
  ({ className: e, value: r, label: a, disabled: n, ...o }, l) => {
274
274
  const s = y(U);
275
275
  if (!s) throw new Error("<Radio> precisa estar dentro de <RadioGroup>");
@@ -315,8 +315,8 @@ const Ne = p(
315
315
  );
316
316
  }
317
317
  );
318
- Ne.displayName = "Radio";
319
- const Ce = V(
318
+ Ce.displayName = "Radio";
319
+ const Ne = V(
320
320
  "w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none focus-visible:border-border-strong disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9",
321
321
  {
322
322
  variants: {
@@ -338,7 +338,7 @@ const Ce = V(
338
338
  "select",
339
339
  {
340
340
  ref: l,
341
- className: i(Ce({ size: r, invalid: a }), e),
341
+ className: i(Ne({ size: r, invalid: a }), e),
342
342
  ...o,
343
343
  children: n
344
344
  }
@@ -360,7 +360,7 @@ const Ce = V(
360
360
  ] })
361
361
  );
362
362
  Ve.displayName = "Select";
363
- const O = C(null);
363
+ const O = N(null);
364
364
  function j() {
365
365
  const e = y(O);
366
366
  if (!e) throw new Error("Componentes de Dropdown precisam estar dentro de <Dropdown>");
@@ -368,7 +368,7 @@ function j() {
368
368
  }
369
369
  function dr({ children: e }) {
370
370
  const [r, a] = v(!1), n = L(null);
371
- return N(() => {
371
+ return C(() => {
372
372
  if (!r) return;
373
373
  const o = (s) => {
374
374
  n.current && !n.current.contains(s.target) && a(!1);
@@ -663,7 +663,7 @@ function je() {
663
663
  }
664
664
  function Be(e, r = 1e3) {
665
665
  const [a, n] = v(0);
666
- return N(() => {
666
+ return C(() => {
667
667
  n(0);
668
668
  const o = performance.now(), l = (s) => {
669
669
  const c = Math.min((s - o) / r, 1), d = 1 - (1 - c) ** 4;
@@ -778,7 +778,7 @@ function Ke({
778
778
  );
779
779
  return [s, c];
780
780
  }
781
- const $ = C(null);
781
+ const $ = N(null);
782
782
  function B() {
783
783
  const e = y($);
784
784
  if (!e) throw new Error("Componentes de Tabs precisam estar dentro de <Tabs>");
@@ -801,7 +801,7 @@ function br({
801
801
  }
802
802
  function vr({ className: e, children: r, ...a }) {
803
803
  const { value: n } = B(), o = L(null), [l, s] = v({ left: 0, width: 0, ready: !1 });
804
- return N(() => {
804
+ return C(() => {
805
805
  const c = o.current;
806
806
  if (!c) return;
807
807
  const d = c.querySelector('[aria-selected="true"]');
@@ -856,7 +856,7 @@ function wr({ value: e, className: r, ...a }) {
856
856
  }
857
857
  );
858
858
  }
859
- const J = C(null), _ = C("");
859
+ const J = N(null), _ = N("");
860
860
  function Q() {
861
861
  const e = y(J);
862
862
  if (!e) throw new Error("Componentes de Accordion precisam estar dentro de <Accordion>");
@@ -882,10 +882,10 @@ function yr({
882
882
  }
883
883
  ) });
884
884
  }
885
- function Nr({ value: e, children: r, ...a }) {
885
+ function Cr({ value: e, children: r, ...a }) {
886
886
  return /* @__PURE__ */ t(_.Provider, { value: e, children: /* @__PURE__ */ t("div", { ...a, children: r }) });
887
887
  }
888
- function Cr({
888
+ function Nr({
889
889
  className: e,
890
890
  children: r,
891
891
  ...a
@@ -953,7 +953,7 @@ function kr({ content: e, side: r = "top", children: a, className: n }) {
953
953
  }
954
954
  );
955
955
  }
956
- const X = C(null);
956
+ const X = N(null);
957
957
  function Z() {
958
958
  const e = y(X);
959
959
  if (!e) throw new Error("Componentes de Popover precisam estar dentro de <Popover>");
@@ -961,7 +961,7 @@ function Z() {
961
961
  }
962
962
  function zr({ children: e }) {
963
963
  const [r, a] = v(!1), n = L(null);
964
- return N(() => {
964
+ return C(() => {
965
965
  if (!r) return;
966
966
  const o = (s) => {
967
967
  n.current && !n.current.contains(s.target) && a(!1);
@@ -1001,10 +1001,10 @@ function Tr({
1001
1001
  }
1002
1002
  function R({ children: e }) {
1003
1003
  const [r, a] = v(!1);
1004
- return N(() => a(!0), []), r ? ue(e, document.body) : null;
1004
+ return C(() => a(!0), []), r ? ue(e, document.body) : null;
1005
1005
  }
1006
1006
  function ee(e, r) {
1007
- N(() => {
1007
+ C(() => {
1008
1008
  if (!e) return;
1009
1009
  const a = (o) => o.key === "Escape" && r(), n = document.body.style.overflow;
1010
1010
  return document.body.style.overflow = "hidden", document.addEventListener("keydown", a), () => {
@@ -1012,7 +1012,7 @@ function ee(e, r) {
1012
1012
  };
1013
1013
  }, [e, r]);
1014
1014
  }
1015
- const re = C(null);
1015
+ const re = N(null);
1016
1016
  function Ge({ open: e, onOpenChange: r, children: a }) {
1017
1017
  const n = () => r == null ? void 0 : r(!1);
1018
1018
  return ee(e, n), e ? /* @__PURE__ */ t(R, { children: /* @__PURE__ */ t(re.Provider, { value: { close: n }, children: /* @__PURE__ */ u("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
@@ -1077,7 +1077,7 @@ function Dr({ className: e, ...r }) {
1077
1077
  function Ar({ className: e, ...r }) {
1078
1078
  return /* @__PURE__ */ t("div", { className: i("flex justify-end gap-2 p-6 pt-4", e), ...r });
1079
1079
  }
1080
- const te = C(null), Oe = {
1080
+ const te = N(null), Oe = {
1081
1081
  left: "left-0 top-0 h-full w-[420px] max-w-[96vw] border-r",
1082
1082
  right: "right-0 top-0 h-full w-[420px] max-w-[96vw] border-l",
1083
1083
  top: "top-0 left-0 w-full max-h-[90vh] border-b",
@@ -1154,7 +1154,7 @@ function Rr({ className: e, ...r }) {
1154
1154
  }
1155
1155
  );
1156
1156
  }
1157
- const ae = C(null), Ye = {
1157
+ const ae = N(null), Ye = {
1158
1158
  info: { wrapper: "bg-[var(--color-toast-info-bg)]", title: "text-fg", description: "text-fg-muted", action: "text-primary hover:text-primary/80" },
1159
1159
  success: { wrapper: "bg-[var(--color-toast-success-bg)]", title: "text-success-fg", description: "text-fg-muted", action: "text-success-fg hover:text-success-fg/80" },
1160
1160
  warning: { wrapper: "bg-[var(--color-toast-warning-bg)]", title: "text-fg", description: "text-fg-muted", action: "text-fg hover:text-fg/80" },
@@ -1175,7 +1175,7 @@ function Fr({ children: e }) {
1175
1175
  ] });
1176
1176
  }
1177
1177
  function $e({ item: e, onDismiss: r }) {
1178
- N(() => {
1178
+ C(() => {
1179
1179
  if (!e.duration) return;
1180
1180
  const n = setTimeout(r, e.duration);
1181
1181
  return () => clearTimeout(n);
@@ -1436,7 +1436,7 @@ function qr({
1436
1436
  ] })
1437
1437
  ] }) }) });
1438
1438
  }
1439
- const ne = C(null), F = "flui-color-mode", W = "flui-brand", H = "flui-radius";
1439
+ const ne = N(null), F = "flui-color-mode", W = "flui-brand", H = "flui-radius";
1440
1440
  function ar() {
1441
1441
  var e;
1442
1442
  return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-color-scheme: dark)").matches);
@@ -1462,7 +1462,7 @@ function Gr({
1462
1462
  ), [f, g] = v(
1463
1463
  () => I(H, n)
1464
1464
  ), [b, x] = v(ar);
1465
- N(() => {
1465
+ C(() => {
1466
1466
  var E;
1467
1467
  const m = (E = window.matchMedia) == null ? void 0 : E.call(window, "(prefers-color-scheme: dark)");
1468
1468
  if (!m) return;
@@ -1470,7 +1470,7 @@ function Gr({
1470
1470
  return m.addEventListener("change", T), () => m.removeEventListener("change", T);
1471
1471
  }, []);
1472
1472
  const h = l === "system" ? b ? "dark" : "light" : l;
1473
- N(() => {
1473
+ C(() => {
1474
1474
  const m = (o == null ? void 0 : o()) ?? document.documentElement;
1475
1475
  m.setAttribute("data-theme", h), c && c !== "default" ? m.setAttribute("data-brand", c) : m.removeAttribute("data-brand"), f && f !== "default" ? m.setAttribute("data-radius", f) : m.removeAttribute("data-radius");
1476
1476
  }, [h, c, f, o]);
@@ -1923,6 +1923,19 @@ const Or = [
1923
1923
  isColor: !0,
1924
1924
  reference: null
1925
1925
  },
1926
+ {
1927
+ name: "flui-color-neutral-875",
1928
+ cssVar: "--flui-color-neutral-875",
1929
+ path: [
1930
+ "color",
1931
+ "neutral",
1932
+ "875"
1933
+ ],
1934
+ group: "color",
1935
+ value: "#161920",
1936
+ isColor: !0,
1937
+ reference: null
1938
+ },
1926
1939
  {
1927
1940
  name: "flui-color-neutral-900",
1928
1941
  cssVar: "--flui-color-neutral-900",
@@ -2791,8 +2804,8 @@ const Or = [
2791
2804
  export {
2792
2805
  yr as Accordion,
2793
2806
  Vr as AccordionContent,
2794
- Nr as AccordionItem,
2795
- Cr as AccordionTrigger,
2807
+ Cr as AccordionItem,
2808
+ Nr as AccordionTrigger,
2796
2809
  He as Alert,
2797
2810
  Le as Avatar,
2798
2811
  Y as Badge,
@@ -2833,7 +2846,7 @@ export {
2833
2846
  Mr as PopoverTrigger,
2834
2847
  qr as ProfileSettingsModal,
2835
2848
  Ae as Progress,
2836
- Ne as Radio,
2849
+ Ce as Radio,
2837
2850
  ur as RadioGroup,
2838
2851
  Ve as Select,
2839
2852
  Wr as SettingRow,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/lib/utils/cn.ts","../src/lib/components/Button/Button.tsx","../src/lib/components/Input/Input.tsx","../src/lib/components/Card/Card.tsx","../src/lib/components/Switch/Switch.tsx","../src/lib/components/Checkbox/Checkbox.tsx","../src/lib/components/Radio/Radio.tsx","../src/lib/components/Select/Select.tsx","../src/lib/components/Dropdown/Dropdown.tsx","../src/lib/components/Badge/Badge.tsx","../src/lib/components/Avatar/Avatar.tsx","../src/lib/components/Spinner/Spinner.tsx","../src/lib/components/Progress/Progress.tsx","../src/lib/components/Divider/Divider.tsx","../src/lib/components/Breadcrumb/Breadcrumb.tsx","../src/lib/components/StatCard/StatCard.tsx","../src/lib/components/Alert/Alert.tsx","../src/lib/hooks/useControllableState.ts","../src/lib/components/Tabs/Tabs.tsx","../src/lib/components/Accordion/Accordion.tsx","../src/lib/components/Tooltip/Tooltip.tsx","../src/lib/components/Popover/Popover.tsx","../src/lib/utils/Portal.tsx","../src/lib/hooks/useDismissable.ts","../src/lib/components/Modal/Modal.tsx","../src/lib/components/Drawer/Drawer.tsx","../src/lib/components/Toast/Toast.tsx","../src/lib/components/Textarea/Textarea.tsx","../src/lib/components/CodeBlock/CodeBlock.tsx","../src/lib/components/ProfileSettingsModal/ProfileSettingsModal.tsx","../src/lib/theme/ThemeProvider.tsx","../src/lib/tokens/tokens.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Combina classes condicionais e resolve conflitos do Tailwind. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const buttonVariants = cva(\n // base: tudo derivado de tokens via utilitários mapeados no @theme\n \"inline-flex items-center justify-center gap-2 font-medium whitespace-nowrap cursor-pointer \" +\n \"transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary \" +\n \"focus-visible:ring-offset-2 ring-offset-bg disabled:opacity-50 \" +\n \"disabled:pointer-events-none disabled:cursor-not-allowed select-none\",\n {\n variants: {\n variant: {\n primary: \"bg-primary text-fg-on-brand hover:bg-primary-hover active:bg-primary-active\",\n secondary:\n \"bg-bg-muted text-fg hover:bg-border-default active:bg-border-strong\",\n outline:\n \"border border-border-strong bg-transparent text-fg hover:bg-bg-subtle\",\n ghost: \"bg-transparent text-fg hover:bg-bg-muted\",\n accent: \"bg-accent text-accent-fg hover:bg-accent-hover active:bg-accent-active\",\n danger: \"bg-danger text-fg-on-brand hover:bg-danger-hover\",\n \"danger-ghost\": \"bg-transparent text-danger hover:bg-danger/10\",\n },\n size: {\n sm: \"h-8 px-3 text-sm rounded-lg\",\n md: \"h-10 px-4 text-md rounded-lg\",\n lg: \"h-12 px-6 text-lg rounded-lg\",\n },\n fullWidth: { true: \"w-full\" },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, fullWidth, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size, fullWidth }), className)}\n {...props}\n />\n ),\n);\n\nButton.displayName = \"Button\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const inputVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none rounded-lg \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-3 text-sm\",\n lg: \"h-12 px-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {\n label?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, size, invalid, label, id, type, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const isPassword = type === \"password\";\n const resolvedType = isPassword ? (showPassword ? \"text\" : \"password\") : type;\n\n const inputId = id ?? (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\n\n const input = (\n <div className=\"relative flex w-full items-center\">\n <input\n ref={ref}\n id={inputId}\n type={resolvedType}\n className={cn(\n inputVariants({ size, invalid }),\n isPassword && \"pr-10\",\n className,\n )}\n {...props}\n />\n {isPassword && (\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? \"Ocultar senha\" : \"Mostrar senha\"}\n className=\"absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg\"\n >\n {showPassword ? (\n // olho fechado\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n ) : (\n // olho aberto\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )}\n </button>\n )}\n </div>\n );\n\n if (!label) return input;\n return (\n <div className=\"flex w-full flex-col gap-1.5\">\n <label htmlFor={inputId} className=\"text-xs font-medium text-fg\">\n {label}\n </label>\n {input}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Card = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"bg-bg border border-border-default rounded-lg shadow-sm\",\n className,\n )}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-1 p-6\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />\n));\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-fg-muted\", className)} {...props} />\n));\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst trackVariants = cva(\n \"relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors \" +\n \"outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 \" +\n \"ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: { sm: \"h-5 w-9\", md: \"h-6 w-11\" },\n checked: { true: \"bg-primary\", false: \"bg-border-strong\" },\n },\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nconst thumbVariants = cva(\n \"pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform\",\n {\n variants: {\n size: { sm: \"h-4 w-4\", md: \"h-5 w-5\" },\n checked: { true: \"\", false: \"translate-x-0\" },\n },\n compoundVariants: [\n { size: \"sm\", checked: true, class: \"translate-x-4\" },\n { size: \"md\", checked: true, class: \"translate-x-5\" },\n ],\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onChange\">,\n VariantProps<typeof trackVariants> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked, defaultChecked, onCheckedChange, disabled, ...props }, ref) => {\n const isControlled = checked !== undefined;\n const [internal, setInternal] = useState(defaultChecked ?? false);\n const value = isControlled ? checked : internal;\n\n const toggle = () => {\n const next = !value;\n if (!isControlled) setInternal(next);\n onCheckedChange?.(next);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n disabled={disabled}\n onClick={toggle}\n className={cn(trackVariants({ size, checked: value }), className)}\n {...props}\n >\n <span className={thumbVariants({ size, checked: value })} />\n </button>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n","import { forwardRef, useEffect, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"type\"> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, indeterminate = false, disabled, id, ...props }, ref) => {\n const innerRef = useRef<HTMLInputElement>(null);\n\n // expõe a ref interna e sincroniza o estado indeterminate (não é atributo HTML)\n useEffect(() => {\n if (innerRef.current) innerRef.current.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const setRefs = (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n };\n\n return (\n <label\n className={cn(\n \"relative inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={setRefs}\n id={id}\n type=\"checkbox\"\n disabled={disabled}\n className=\"peer sr-only\"\n {...props}\n />\n {/* a caixa visual. Os modificadores [&>...] miram os filhos a partir\n do estado do input irmão (peer), já que peer-* só alcança irmãos. */}\n <span\n className={cn(\n \"relative flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary peer-checked:bg-primary\",\n \"peer-indeterminate:border-primary peer-indeterminate:bg-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n // check visível só quando checked (e não indeterminate)\n \"peer-checked:[&>svg]:opacity-100 peer-indeterminate:[&>svg]:opacity-0\",\n // traço visível só quando indeterminate\n \"peer-indeterminate:[&>span]:opacity-100\",\n )}\n >\n <svg\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5 text-fg-on-brand opacity-0\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" />\n </svg>\n <span className=\"absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { createContext, forwardRef, useContext, useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface RadioGroupContextValue {\n name: string;\n value?: string;\n onChange: (value: string) => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nexport interface RadioGroupProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n}\n\nexport function RadioGroup({\n value,\n defaultValue,\n onValueChange,\n name,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n const autoName = useId();\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState(defaultValue);\n const current = isControlled ? value : internal;\n\n const onChange = (next: string) => {\n if (!isControlled) setInternal(next);\n onValueChange?.(next);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{ name: name ?? autoName, value: current, onChange }}\n >\n <div role=\"radiogroup\" className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onChange\"> {\n value: string;\n label?: React.ReactNode;\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ className, value, label, disabled, ...props }, ref) => {\n const ctx = useContext(RadioGroupContext);\n if (!ctx) throw new Error(\"<Radio> precisa estar dentro de <RadioGroup>\");\n const checked = ctx.value === value;\n\n return (\n <label\n className={cn(\n \"inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={ref}\n type=\"radio\"\n name={ctx.name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={() => ctx.onChange(value)}\n className=\"peer sr-only\"\n {...props}\n />\n <span\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n \"peer-checked:[&>span]:scale-100\",\n )}\n >\n <span className=\"h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst selectVariants = cva(\n \"w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9\",\n {\n variants: {\n size: {\n sm: \"h-8 pl-3 text-xs\",\n md: \"h-10 pl-3 text-sm\",\n lg: \"h-12 pl-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof selectVariants> {}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, size, invalid, children, ...props }, ref) => (\n <div className=\"relative inline-flex w-full items-center\">\n <select\n ref={ref}\n className={cn(selectVariants({ size, invalid }), className)}\n {...props}\n >\n {children}\n </select>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"pointer-events-none absolute right-3 h-4 w-4 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </div>\n ),\n);\n\nSelect.displayName = \"Select\";\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface DropdownContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\n\nfunction useDropdown() {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Componentes de Dropdown precisam estar dentro de <Dropdown>\");\n return ctx;\n}\n\nexport function Dropdown({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n // fecha ao clicar fora ou apertar Esc\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <DropdownContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block text-left\">\n {children}\n </div>\n </DropdownContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function DropdownTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = useDropdown();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n });\n}\n\nexport function DropdownContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = useDropdown();\n if (!open) return null;\n return (\n <div\n role=\"menu\"\n className={cn(\n \"absolute z-50 mt-1 min-w-44 rounded-md border border-border-default bg-bg p-1 shadow-md\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport interface DropdownItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n destructive?: boolean;\n}\n\nexport function DropdownItem({\n children,\n onSelect,\n destructive,\n className,\n ...props\n}: DropdownItemProps) {\n const { setOpen } = useDropdown();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n onClick={() => {\n onSelect?.();\n setOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors cursor-pointer\",\n \"hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed\",\n destructive ? \"text-danger\" : \"text-fg\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function DropdownSeparator() {\n return <div role=\"separator\" className=\"my-1 h-px bg-border-default\" />;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-[var(--flui-radius-badge)]\",\n {\n variants: {\n variant: {\n neutral: \"bg-bg-muted text-fg\",\n primary: \"bg-brand-500 text-fg-on-brand\",\n accent: \"bg-accent-subtle text-accent-fg\",\n \"accent-bold\": \"bg-accent text-accent-fg\",\n success: \"bg-accent text-accent-fg\",\n warning: \"bg-warning/35 text-fg\",\n danger: \"bg-danger/10 text-danger\",\n outline: \"border border-border-strong text-fg\",\n },\n size: {\n sm: \"px-2 py-0.5 text-xs\",\n md: \"px-2.5 py-0.5 text-sm\",\n },\n },\n defaultVariants: { variant: \"neutral\", size: \"sm\" },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n ),\n);\n\nBadge.displayName = \"Badge\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst sizeVariants = cva(\"relative inline-flex shrink-0 select-none\", {\n variants: {\n size: {\n xs: \"h-6 w-6 text-xs\",\n sm: \"h-8 w-8 text-sm\",\n md: \"h-10 w-10 text-md\",\n lg: \"h-12 w-12 text-lg\",\n xl: \"h-16 w-16 text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nconst statusColor: Record<string, string> = {\n online: \"bg-accent\",\n busy: \"bg-danger\",\n away: \"bg-warning\",\n offline: \"bg-border-strong\",\n};\n\n// Tamanho fixo do dot por tamanho de avatar para manter proporção legível\nconst dotSize: Record<string, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-3.5 w-3.5\",\n};\n\nfunction initials(name?: string) {\n if (!name) return \"\";\n return name\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((p) => p[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n}\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof sizeVariants> {\n src?: string;\n alt?: string;\n name?: string;\n status?: \"online\" | \"busy\" | \"away\" | \"offline\";\n}\n\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size = \"md\", src, alt, name, status, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n const showImg = src && !errored;\n\n return (\n <span ref={ref} className={cn(sizeVariants({ size }), className)} {...props}>\n {/* círculo com overflow-hidden isolado — não clipa o dot */}\n <span className=\"flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg\">\n {showImg ? (\n <img\n src={src}\n alt={alt ?? name ?? \"\"}\n className=\"h-full w-full object-cover\"\n onError={() => setErrored(true)}\n />\n ) : (\n <span aria-hidden>{initials(name)}</span>\n )}\n </span>\n\n {/* dot posicionado dentro do círculo, próximo à borda inferior direita */}\n {status && (\n <span\n aria-label={status}\n className={cn(\n \"absolute bottom-[8%] right-[8%] rounded-full ring-2 ring-bg\",\n statusColor[status],\n dotSize[size ?? \"md\"],\n )}\n />\n )}\n </span>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\"animate-spin text-primary\", {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nexport const Spinner = forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, label = \"Carregando\", ...props }, ref) => (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n role=\"status\"\n aria-label={label}\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"3\" className=\"opacity-20\" />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n ),\n);\n\nSpinner.displayName = \"Spinner\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 0–100. Omita (ou use indeterminate) para estado indeterminado. */\n value?: number;\n max?: number;\n indeterminate?: boolean;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, indeterminate, ...props }, ref) => {\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={indeterminate ? undefined : value}\n className={cn(\n \"relative h-1 w-full overflow-hidden rounded-full bg-bg-muted\",\n className,\n )}\n {...props}\n >\n {indeterminate ? (\n <div className=\"absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]\" />\n ) : (\n <div\n className=\"h-full rounded-full bg-primary transition-[width] duration-300\"\n style={{ width: `${pct}%` }}\n />\n )}\n </div>\n );\n },\n);\n\nProgress.displayName = \"Progress\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n /** rótulo central (apenas horizontal) */\n label?: React.ReactNode;\n}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ className, orientation = \"horizontal\", label, ...props }, ref) => {\n if (orientation === \"vertical\") {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"mx-2 h-full w-px self-stretch bg-border-default\", className)}\n {...props}\n />\n );\n }\n\n if (label) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"flex items-center gap-3 text-sm text-fg-muted\", className)}\n {...props}\n >\n <span className=\"h-px flex-1 bg-border-default\" />\n {label}\n <span className=\"h-px flex-1 bg-border-default\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"h-px w-full bg-border-default\", className)}\n {...props}\n />\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n","import { Children, Fragment, forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Breadcrumb = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => {\n const items = Children.toArray(children);\n return (\n <nav ref={ref} aria-label=\"breadcrumb\" className={className} {...props}>\n <ol className=\"flex flex-wrap items-center gap-1.5 text-sm\">\n {items.map((child, i) => (\n <Fragment key={i}>\n {child}\n {i < items.length - 1 && <BreadcrumbSeparator />}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n },\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport interface BreadcrumbItemProps\n extends React.LiHTMLAttributes<HTMLLIElement> {\n href?: string;\n current?: boolean;\n}\n\nexport function BreadcrumbItem({\n href,\n current,\n className,\n children,\n ...props\n}: BreadcrumbItemProps) {\n return (\n <li className={cn(\"inline-flex items-center\", className)} {...props}>\n {current || !href ? (\n <span\n aria-current={current ? \"page\" : undefined}\n className={cn(current ? \"font-medium text-fg\" : \"text-fg-muted\")}\n >\n {children}\n </span>\n ) : (\n <a\n href={href}\n className=\"text-fg-muted transition-colors hover:text-fg hover:underline\"\n >\n {children}\n </a>\n )}\n </li>\n );\n}\n\nexport function BreadcrumbSeparator() {\n return (\n <li aria-hidden className=\"text-fg-muted\">\n /\n </li>\n );\n}\n","import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Badge } from \"../Badge/Badge\";\n\nfunction useCountUp(target: number, duration = 1000) {\n const [current, setCurrent] = useState(0);\n\n useEffect(() => {\n setCurrent(0);\n const start = performance.now();\n const tick = (now: number) => {\n const t = Math.min((now - start) / duration, 1);\n const eased = 1 - (1 - t) ** 4; // quartic ease-out: rápido → lento\n setCurrent(target * eased);\n if (t < 1) requestAnimationFrame(tick);\n else setCurrent(target);\n };\n requestAnimationFrame(tick);\n }, [target, duration]);\n\n return current;\n}\n\nexport interface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value?: React.ReactNode;\n /** Valor numérico para animação tipo cassino. Usa `formatCount` para exibir. */\n countUp?: number;\n /** Formata o número animado. Default: toLocaleString('pt-BR'). */\n formatCount?: (n: number) => string;\n /** variação percentual; positivo = alta (success), negativo = baixa (danger) */\n delta?: number;\n helpText?: React.ReactNode;\n icon?: React.ReactNode;\n}\n\nexport const StatCard = forwardRef<HTMLDivElement, StatCardProps>(\n ({ className, label, value, countUp, formatCount, delta, helpText, icon, ...props }, ref) => {\n const animated = useCountUp(countUp ?? 0);\n const hasDelta = typeof delta === \"number\";\n const up = hasDelta && delta! >= 0;\n\n const displayValue =\n countUp !== undefined\n ? (formatCount ? formatCount(animated) : Math.round(animated).toLocaleString(\"pt-BR\"))\n : value;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-neutral-900 p-8 shadow-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-fg-muted\">{label}</span>\n {icon && <span className=\"text-fg-muted\">{icon}</span>}\n </div>\n <span className=\"text-3xl font-bold text-fg whitespace-nowrap tabular-nums\">\n {displayValue}\n </span>\n {hasDelta && (\n <Badge variant={up ? \"success\" : \"danger\"} size=\"sm\" className=\"self-start\">\n {up ? \"▲\" : \"▼\"} {Math.abs(delta!)}%\n </Badge>\n )}\n {helpText && <span className=\"text-xs text-fg-muted\">{helpText}</span>}\n </div>\n );\n },\n);\n\nStatCard.displayName = \"StatCard\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst alertVariants = cva(\"flex gap-3 rounded-lg p-4 text-sm\", {\n variants: {\n variant: {\n info: \"bg-primary/10 text-fg\",\n success: \"bg-success-subtle text-fg\",\n warning: \"bg-warning/10 text-fg\",\n danger: \"bg-danger/10 text-fg\",\n },\n },\n defaultVariants: { variant: \"info\" },\n});\n\nconst iconColor: Record<string, string> = {\n info: \"text-primary\",\n success: \"text-success-fg\",\n warning: \"text-warning\",\n danger: \"text-danger\",\n};\n\n// glifos simples por variante (sem dependência de lib de ícones)\nconst glyph: Record<string, string> = {\n info: \"ℹ\",\n success: \"✓\",\n warning: \"!\",\n danger: \"✕\",\n};\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof alertVariants> {\n title?: React.ReactNode;\n onClose?: () => void;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", title, onClose, children, ...props }, ref) => {\n const v = variant ?? \"info\";\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-xs font-bold\",\n iconColor[v],\n )}\n >\n {glyph[v]}\n </span>\n <div className=\"min-w-0 flex-1\">\n {title && <div className=\"font-semibold text-fg\">{title}</div>}\n {children && <div className=\"text-fg-muted\">{children}</div>}\n </div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n className=\"shrink-0 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n )}\n </div>\n );\n },\n);\n\nAlert.displayName = \"Alert\";\n","import { useCallback, useState } from \"react\";\n\n/**\n * Suporta componentes controlados e não-controlados com a mesma API.\n * Se `value` for fornecido, o componente é controlado; senão usa estado interno.\n */\nexport function useControllableState<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T;\n defaultValue: T;\n onChange?: (value: T) => void;\n}) {\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<T>(defaultValue);\n const current = isControlled ? (value as T) : internal;\n\n const setValue = useCallback(\n (next: T) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n return [current, setValue] as const;\n}\n","import { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { cn } from \"../../utils/cn\";\n\ninterface TabsContextValue {\n value: string;\n setValue: (value: string) => void;\n}\nconst TabsContext = createContext<TabsContextValue | null>(null);\nfunction useTabs() {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Componentes de Tabs precisam estar dentro de <Tabs>\");\n return ctx;\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n className,\n children,\n ...props\n}: TabsProps) {\n const [current, setValue] = useControllableState({\n value,\n defaultValue: defaultValue ?? \"\",\n onChange: onValueChange,\n });\n return (\n <TabsContext.Provider value={{ value: current, setValue }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n const { value } = useTabs();\n const listRef = useRef<HTMLDivElement>(null);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, ready: false });\n\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const active = list.querySelector('[aria-selected=\"true\"]') as HTMLElement | null;\n if (!active) return;\n setIndicator({ left: active.offsetLeft, width: active.offsetWidth, ready: true });\n }, [value]);\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n className={cn(\"relative flex items-center gap-1 border-b border-border-default\", className)}\n {...props}\n >\n {children}\n {indicator.ready && (\n <span\n aria-hidden\n className=\"pointer-events-none absolute bottom-[-1px] h-[2px] rounded-full bg-primary transition-all duration-250 ease-out\"\n style={{ left: indicator.left, width: indicator.width }}\n />\n )}\n </div>\n );\n}\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\nexport function TabsTrigger({ value, className, ...props }: TabsTriggerProps) {\n const ctx = useTabs();\n const active = ctx.value === value;\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => ctx.setValue(value)}\n className={cn(\n \"px-4 py-2 text-sm font-medium transition-colors outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg\",\n active ? \"text-fg\" : \"text-fg-muted hover:text-fg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function TabsContent({ value, className, ...props }: TabsContentProps) {\n const ctx = useTabs();\n if (ctx.value !== value) return null;\n return (\n <div\n role=\"tabpanel\"\n className={cn(\"pt-4 animate-[flui-slide-up_200ms_ease-out]\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useContext, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface AccordionContextValue {\n open: string[];\n toggle: (value: string) => void;\n}\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\nconst ItemContext = createContext<string>(\"\");\n\nfunction useAccordion() {\n const ctx = useContext(AccordionContext);\n if (!ctx) throw new Error(\"Componentes de Accordion precisam estar dentro de <Accordion>\");\n return ctx;\n}\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n}\n\nexport function Accordion({\n type = \"single\",\n defaultValue,\n className,\n children,\n ...props\n}: AccordionProps) {\n const init = defaultValue\n ? Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]\n : [];\n const [open, setOpen] = useState<string[]>(init);\n\n const toggle = (value: string) =>\n setOpen((prev) => {\n const has = prev.includes(value);\n if (type === \"single\") return has ? [] : [value];\n return has ? prev.filter((v) => v !== value) : [...prev, value];\n });\n\n return (\n <AccordionContext.Provider value={{ open, toggle }}>\n <div\n className={cn(\"border-y border-border-default divide-y divide-border-default\", className)}\n {...props}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function AccordionItem({ value, children, ...props }: AccordionItemProps) {\n return (\n <ItemContext.Provider value={value}>\n <div {...props}>{children}</div>\n </ItemContext.Provider>\n );\n}\n\nexport function AccordionTrigger({\n className,\n children,\n ...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => ctx.toggle(value)}\n className={cn(\n \"flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg\",\n className,\n )}\n {...props}\n >\n {children}\n <span className={cn(\"text-fg-muted transition-transform\", isOpen && \"rotate-180\")}>\n ▾\n </span>\n </button>\n );\n}\n\nexport function AccordionContent({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n if (!ctx.open.includes(value)) return null;\n return <div className={cn(\"pb-4 text-sm text-fg-muted\", className)} {...props} />;\n}\n","import { useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nconst sidePos: Record<string, string> = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n};\n\nexport interface TooltipProps {\n content: React.ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n children: React.ReactNode;\n className?: string;\n}\n\n/**\n * Tooltip leve baseado em hover/focus. O posicionamento é relativo ao gatilho\n * (sem detecção de colisão com a borda da tela — para isso, usar Floating UI).\n */\nexport function Tooltip({ content, side = \"top\", children, className }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const id = useId();\n\n return (\n <span\n className=\"relative inline-flex\"\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <span aria-describedby={open ? id : undefined}>{children}</span>\n {open && (\n <span\n role=\"tooltip\"\n id={id}\n className={cn(\n \"pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-fg px-2 py-1 text-xs text-bg shadow-md\",\n \"animate-[flui-fade-in_120ms_ease-out]\",\n sidePos[side],\n className,\n )}\n >\n {content}\n </span>\n )}\n </span>\n );\n}\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\nfunction usePopover() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error(\"Componentes de Popover precisam estar dentro de <Popover>\");\n return ctx;\n}\n\nexport function Popover({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && setOpen(false);\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <PopoverContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block\">\n {children}\n </div>\n </PopoverContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function PopoverTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = usePopover();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": open,\n });\n}\n\nexport function PopoverContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = usePopover();\n if (!open) return null;\n return (\n <div\n role=\"dialog\"\n className={cn(\n \"absolute z-50 mt-2 min-w-56 rounded-lg border border-border-default bg-bg p-4 shadow-lg\",\n \"animate-[flui-slide-up_140ms_ease-out]\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n/** Renderiza os filhos em document.body, evitando problemas de overflow/z-index. */\nexport function Portal({ children }: { children: React.ReactNode }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n if (!mounted) return null;\n return createPortal(children, document.body);\n}\n","import { useEffect } from \"react\";\n\n/** Trava o scroll do body e fecha no Escape enquanto `open` for true. */\nexport function useDismissable(open: boolean, onClose: () => void) {\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && onClose();\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.body.style.overflow = prevOverflow;\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open, onClose]);\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\nconst ModalContext = createContext<{ close: () => void } | null>(null);\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport function Modal({ open, onOpenChange, children }: ModalProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <ModalContext.Provider value={{ close }}>\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </ModalContext.Provider>\n </Portal>\n );\n}\n\nexport function ModalContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(ModalContext);\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-10 w-full max-w-lg rounded-xl border border-border-default bg-bg shadow-lg\",\n \"animate-[flui-slide-up_160ms_ease-out]\",\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function ModalHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1 p-6 pb-2\", className)} {...props} />;\n}\nexport function ModalTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function ModalDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn(\"text-sm text-fg-muted\", className)} {...props} />;\n}\nexport function ModalBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"px-6 py-2\", className)} {...props} />;\n}\nexport function ModalFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn(\"flex justify-end gap-2 p-6 pt-4\", className)} {...props} />\n );\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\ntype Side = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nconst DrawerContext = createContext<{ close: () => void; side: Side } | null>(null);\n\nconst sideClasses: Record<Side, string> = {\n left: \"left-0 top-0 h-full w-[420px] max-w-[96vw] border-r\",\n right: \"right-0 top-0 h-full w-[420px] max-w-[96vw] border-l\",\n top: \"top-0 left-0 w-full max-h-[90vh] border-b\",\n bottom: \"bottom-0 left-0 w-full max-h-[90vh] border-t\",\n};\n\nexport interface DrawerProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: Side;\n children: React.ReactNode;\n}\n\nexport function Drawer({ open, onOpenChange, side = \"right\", children }: DrawerProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <DrawerContext.Provider value={{ close, side }}>\n <div className=\"fixed inset-0 z-50\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </DrawerContext.Provider>\n </Portal>\n );\n}\n\nexport function DrawerContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(DrawerContext);\n const side = ctx?.side ?? \"right\";\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"absolute z-10 flex flex-col border-border-default bg-bg shadow-lg\",\n \"animate-[flui-fade-in_160ms_ease-out]\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex flex-col gap-1 border-b border-border-default p-6\", className)}\n {...props}\n />\n );\n}\nexport function DrawerTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function DrawerBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex-1 overflow-y-auto p-6\", className)} {...props} />;\n}\nexport function DrawerFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex justify-end gap-2 border-t border-border-default p-6\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { cn } from \"../../utils/cn\";\n\ntype ToastVariant = \"info\" | \"success\" | \"warning\" | \"danger\";\n\ninterface ToastAction {\n label: string;\n onClick: () => void;\n}\n\ninterface ToastOptions {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number; // ms; 0 = não fecha sozinho\n icon?: React.ReactNode;\n action?: ToastAction;\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\n leaving?: boolean;\n}\n\ninterface ToastContextValue {\n toast: (options: ToastOptions) => number;\n dismiss: (id: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nconst variantStyles: Record<ToastVariant, { wrapper: string; title: string; description: string; action: string }> = {\n info: { wrapper: \"bg-[var(--color-toast-info-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-primary hover:text-primary/80\" },\n success: { wrapper: \"bg-[var(--color-toast-success-bg)]\", title: \"text-success-fg\", description: \"text-fg-muted\", action: \"text-success-fg hover:text-success-fg/80\" },\n warning: { wrapper: \"bg-[var(--color-toast-warning-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-fg hover:text-fg/80\" },\n danger: { wrapper: \"bg-[var(--color-toast-danger-bg)]\", title: \"text-danger\", description: \"text-fg-muted\", action: \"text-danger hover:text-danger/80\" },\n};\n\nexport function ToastProvider({ children }: { children: React.ReactNode }) {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const idRef = useRef(0);\n\n const dismiss = useCallback((id: number) => {\n setToasts((prev) => prev.map((t) => t.id === id ? { ...t, leaving: true } : t));\n setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, 160);\n }, []);\n\n const toast = useCallback((options: ToastOptions) => {\n const id = ++idRef.current;\n setToasts((prev) => [...prev, { id, variant: \"info\", duration: 4000, ...options }]);\n return id;\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast, dismiss }}>\n {children}\n <Portal>\n <div className=\"pointer-events-none fixed bottom-4 right-8 z-[60] flex w-80 max-w-[90vw] flex-col gap-2\">\n {toasts.map((t) => (\n <ToastCard key={t.id} item={t} onDismiss={() => dismiss(t.id)} />\n ))}\n </div>\n </Portal>\n </ToastContext.Provider>\n );\n}\n\nfunction ToastCard({ item, onDismiss }: { item: ToastItem; onDismiss: () => void }) {\n useEffect(() => {\n if (!item.duration) return;\n const timer = setTimeout(onDismiss, item.duration);\n return () => clearTimeout(timer);\n }, [item.duration, onDismiss]);\n\n const styles = variantStyles[item.variant ?? \"info\"];\n\n return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto flex items-start gap-3 rounded-3xl p-4 shadow-sm\",\n item.leaving\n ? \"animate-[flui-slide-down_160ms_ease-in_forwards]\"\n : \"animate-[flui-slide-up_160ms_ease-out]\",\n styles.wrapper,\n )}\n >\n {item.icon && (\n <span className={cn(\"mt-0.5 shrink-0\", styles.title)}>{item.icon}</span>\n )}\n\n <div className=\"min-w-0 flex-1\">\n <div className={cn(\"text-sm font-semibold\", styles.title)}>{item.title}</div>\n {item.description && (\n <div className={cn(\"mt-0.5 text-sm\", styles.description)}>{item.description}</div>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center gap-1\">\n {item.action && (\n <button\n type=\"button\"\n onClick={() => { item.action!.onClick(); onDismiss(); }}\n className={cn(\"cursor-pointer rounded-sm px-1.5 py-0.5 text-xs font-semibold transition-colors\", styles.action)}\n >\n {item.action.label}\n </button>\n )}\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Fechar\"\n className={cn(\"cursor-pointer rounded-sm px-1 transition-colors opacity-60 hover:opacity-100\", styles.title)}\n >\n ✕\n </button>\n </div>\n </div>\n );\n}\n\nexport function useToast() {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast precisa estar dentro de <ToastProvider>\");\n return ctx;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const textareaVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none resize-y rounded-lg min-h-28 px-3 py-3 text-sm \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { invalid: false },\n },\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, invalid, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(textareaVariants({ invalid }), className)}\n {...props}\n />\n ),\n);\n\nTextarea.displayName = \"Textarea\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useToast } from \"../Toast/Toast\";\n\nexport interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Rótulo exibido no canto superior esquerdo (ex: \"tsx\", \"bash\"). */\n language?: string;\n /** Código a ser exibido. */\n code: string;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\n ({ code, language, className, ...props }, ref) => {\n const { toast } = useToast();\n\n function handleCopy() {\n navigator.clipboard.writeText(code).then(() => {\n toast({ title: \"Copiado!\", variant: \"success\", duration: 2000 });\n });\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"overflow-hidden rounded-lg bg-bg-subtle\", className)}\n {...props}\n >\n <div className=\"flex items-center justify-between bg-bg-muted px-4 py-2\">\n {language ? (\n <span className=\"font-mono text-xs text-fg-muted\">{language}</span>\n ) : (\n <span />\n )}\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copiar código\"\n className=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-bg hover:text-fg\"\n >\n <CopyIcon />\n Copiar\n </button>\n </div>\n <pre className=\"overflow-x-auto p-4 text-sm leading-relaxed\">\n <code className=\"font-mono text-fg\">{code}</code>\n </pre>\n </div>\n );\n },\n);\n\nCodeBlock.displayName = \"CodeBlock\";\n\nfunction CopyIcon() {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <rect x=\"6\" y=\"6\" width=\"8\" height=\"8\" rx=\"1.5\" />\n <path d=\"M4 10H3a1.5 1.5 0 0 1-1.5-1.5v-6A1.5 1.5 0 0 1 3 1h6A1.5 1.5 0 0 1 10.5 2.5V4\" />\n </svg>\n );\n}\n","import { useState } from \"react\";\nimport { Modal, ModalContent } from \"../Modal/Modal\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface ProfileSettingsUser {\n name: string;\n subtitle?: string;\n /** Texto de fallback se não houver avatar (ex: \"EM\") */\n initials?: string;\n /** URL da foto */\n avatar?: string;\n}\n\nexport interface ProfileSettingsNavItem {\n id: string;\n label: string;\n /** Qualquer ReactNode — passe um ícone Tabler ou SVG */\n icon?: React.ReactNode;\n}\n\nexport interface ProfileSettingsNavGroup {\n group: string;\n items: ProfileSettingsNavItem[];\n}\n\nexport interface ProfileSettingsModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n /** Seção ativa inicial */\n defaultSection?: string;\n /** Seção ativa controlada externamente */\n activeSection?: string;\n onSectionChange?: (id: string) => void;\n /** Título por seção. Fallback: label do item */\n sectionTitles?: Record<string, string>;\n /** Subtítulo por seção */\n sectionSubtitles?: Record<string, string>;\n /** Renderiza o conteúdo da seção ativa */\n renderSection?: (id: string) => React.ReactNode;\n /** Ação no rodapé do sidebar (ex: \"Get help\") */\n footerAction?: React.ReactNode;\n}\n\n// ─── Sidebar ──────────────────────────────────────────────────────────────────\n\nfunction Sidebar({\n user,\n nav,\n active,\n onSelect,\n footerAction,\n}: {\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n active: string;\n onSelect: (id: string) => void;\n footerAction?: React.ReactNode;\n}) {\n const itemClass = (isActive: boolean) =>\n \"flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm transition-colors \" +\n (isActive ? \"bg-bg-muted font-medium text-fg\" : \"text-fg hover:bg-bg-muted\");\n\n return (\n <aside className=\"flex w-52 shrink-0 flex-col gap-5 overflow-y-auto border-r border-border-default py-5 pl-4 pr-2\">\n {/* User info */}\n <div className=\"flex items-center gap-2.5 px-1\">\n {user.avatar ? (\n <img\n src={user.avatar}\n alt={user.name}\n className=\"h-8 w-8 shrink-0 rounded-full object-cover\"\n />\n ) : (\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary-subtle text-xs font-semibold text-primary\">\n {user.initials ?? user.name.slice(0, 2).toUpperCase()}\n </span>\n )}\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-fg\">{user.name}</p>\n {user.subtitle && (\n <p className=\"truncate text-xs text-fg-muted\">{user.subtitle}</p>\n )}\n </div>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"ml-auto h-3.5 w-3.5 shrink-0 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M5 7l3-3 3 3M5 9l3 3 3-3\" />\n </svg>\n </div>\n\n {/* Nav groups */}\n {nav.map(({ group, items }) => (\n <div key={group}>\n <p className=\"mb-1 px-1 text-xs font-semibold text-fg-muted\">{group}</p>\n <ul className=\"flex flex-col gap-0.5\">\n {items.map((item) => (\n <li key={item.id}>\n <button\n type=\"button\"\n onClick={() => onSelect(item.id)}\n className={itemClass(item.id === active)}\n >\n {item.icon && (\n <span className=\"shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]\">\n {item.icon}\n </span>\n )}\n {item.label}\n </button>\n </li>\n ))}\n </ul>\n </div>\n ))}\n\n {/* Footer slot */}\n {footerAction && <div className=\"mt-auto\">{footerAction}</div>}\n </aside>\n );\n}\n\n// ─── Settings primitives ─────────────────────────────────────────────────────\n\nimport { Switch } from \"../Switch/Switch\";\nimport { Button } from \"../Button/Button\";\n\nexport function SettingRow({\n title,\n description,\n checked,\n onCheckedChange,\n}: {\n title: string;\n description?: string;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}) {\n return (\n <div className=\"flex items-center justify-between gap-6 px-4 py-4\">\n <div>\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n <Switch checked={checked} onCheckedChange={onCheckedChange} className=\"shrink-0\" />\n </div>\n );\n}\n\nexport function SettingsCard({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"divide-y divide-border-default rounded-xl bg-bg\">\n {children}\n </div>\n );\n}\n\nexport function SettingsGroup({\n title,\n children,\n}: {\n title: string;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"flex flex-col gap-3\">\n <h3 className=\"text-base font-semibold text-fg\">{title}</h3>\n <SettingsCard>{children}</SettingsCard>\n </div>\n );\n}\n\nexport interface IntegrationRowProps {\n icon: React.ReactNode;\n title: string;\n description?: string;\n connected?: boolean;\n onConnect?: () => void;\n onDisconnect?: () => void;\n}\n\nexport function IntegrationRow({\n icon,\n title,\n description,\n connected = false,\n onConnect,\n onDisconnect,\n}: IntegrationRowProps) {\n return (\n <div className=\"flex items-center gap-4 rounded-xl bg-bg px-4 py-4\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-bg-muted\">\n <span className=\"[&>svg]:h-4 [&>svg]:w-4\">{icon}</span>\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n {connected ? (\n <Button variant=\"danger-ghost\" size=\"sm\" onClick={onDisconnect}>\n Desconectar\n </Button>\n ) : (\n <Button variant=\"secondary\" size=\"sm\" onClick={onConnect}>\n Conectar\n </Button>\n )}\n </div>\n );\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport function ProfileSettingsModal({\n open,\n onOpenChange,\n user,\n nav,\n defaultSection,\n activeSection: controlledSection,\n onSectionChange,\n sectionTitles = {},\n sectionSubtitles = {},\n renderSection,\n footerAction,\n}: ProfileSettingsModalProps) {\n const firstId = nav[0]?.items[0]?.id ?? \"\";\n const [internalSection, setInternalSection] = useState(\n defaultSection ?? firstId,\n );\n\n const active = controlledSection ?? internalSection;\n\n const handleSelect = (id: string) => {\n setInternalSection(id);\n onSectionChange?.(id);\n };\n\n // resolve title: explicit override → nav label → id\n const allItems = nav.flatMap((g) => g.items);\n const activeItem = allItems.find((i) => i.id === active);\n const title = sectionTitles[active] ?? activeItem?.label ?? active;\n const subtitle = sectionSubtitles[active];\n\n return (\n <Modal open={open} onOpenChange={onOpenChange}>\n <ModalContent className=\"max-w-[1300px] overflow-hidden p-0\">\n <div className=\"flex h-[820px]\">\n <Sidebar\n user={user}\n nav={nav}\n active={active}\n onSelect={handleSelect}\n footerAction={footerAction}\n />\n\n <div className=\"flex flex-1 flex-col overflow-hidden bg-bg-subtle\">\n <div className=\"relative px-[200px] pb-8 pt-8\">\n <h2 className=\"font-display text-2xl font-semibold tracking-tight text-fg\">\n {title}\n </h2>\n {subtitle && (\n <p className=\"mt-0.5 text-sm text-fg-muted\">{subtitle}</p>\n )}\n <div className=\"pointer-events-none absolute inset-x-0 -bottom-6 h-6 bg-gradient-to-b from-bg-subtle to-transparent\" />\n </div>\n\n <div className=\"flex-1 overflow-y-auto px-[200px] pb-8 pt-6\">\n {renderSection?.(active) ?? (\n <p className=\"text-sm text-fg-muted\">\n Conteúdo de <strong>{title}</strong>.\n </p>\n )}\n </div>\n </div>\n </div>\n </ModalContent>\n </Modal>\n );\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\n/** Modo de cor. \"system\" segue a preferência do SO. */\nexport type ColorMode = \"light\" | \"dark\" | \"system\";\n\n/**\n * Marca/tema. \"default\" usa o ramp base (:root). Os demais correspondem aos\n * blocos [data-brand=\"…\"] gerados pelo Style Dictionary a partir de\n * tokens/brands/*.json — daí o tipo aberto (string) para temas customizados.\n */\nexport type Brand = \"default\" | (string & {});\n\nexport type RadiusScale = \"sharp\" | \"default\" | \"soft\" | \"round\";\n\ninterface ThemeContextValue {\n /** Preferência escolhida (pode ser \"system\"). */\n mode: ColorMode;\n /** Modo efetivo já resolvido (\"light\" | \"dark\"). */\n resolvedMode: \"light\" | \"dark\";\n brand: Brand;\n radius: RadiusScale;\n setMode: (mode: ColorMode) => void;\n setBrand: (brand: Brand) => void;\n setRadius: (radius: RadiusScale) => void;\n /** Alterna entre claro e escuro (resolve \"system\" antes). */\n toggleMode: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nconst MODE_KEY = \"flui-color-mode\";\nconst BRAND_KEY = \"flui-brand\";\nconst RADIUS_KEY = \"flui-radius\";\n\nfunction prefersDark(): boolean {\n return (\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n );\n}\n\nfunction load<T extends string>(key: string, fallback: T): T {\n try {\n return (localStorage.getItem(key) as T) ?? fallback;\n } catch {\n return fallback;\n }\n}\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Modo inicial caso não haja preferência salva. Padrão: \"system\". */\n defaultMode?: ColorMode;\n /** Marca inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultBrand?: Brand;\n /** Escala de radius inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultRadius?: RadiusScale;\n /**\n * Onde aplicar os atributos data-theme / data-brand / data-radius.\n * Padrão: document.documentElement (escopo global do app).\n */\n target?: () => HTMLElement | null;\n}\n\nexport function ThemeProvider({\n children,\n defaultMode = \"system\",\n defaultBrand = \"default\",\n defaultRadius = \"default\",\n target,\n}: ThemeProviderProps) {\n const [mode, setModeState] = useState<ColorMode>(() =>\n load(MODE_KEY, defaultMode),\n );\n const [brand, setBrandState] = useState<Brand>(() =>\n load(BRAND_KEY, defaultBrand),\n );\n const [radius, setRadiusState] = useState<RadiusScale>(() =>\n load(RADIUS_KEY, defaultRadius),\n );\n const [systemDark, setSystemDark] = useState(prefersDark);\n\n // acompanha mudanças do SO quando o modo é \"system\"\n useEffect(() => {\n const mq = window.matchMedia?.(\"(prefers-color-scheme: dark)\");\n if (!mq) return;\n const onChange = (e: MediaQueryListEvent) => setSystemDark(e.matches);\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n const resolvedMode: \"light\" | \"dark\" =\n mode === \"system\" ? (systemDark ? \"dark\" : \"light\") : mode;\n\n // aplica os atributos no elemento alvo\n useEffect(() => {\n const el = target?.() ?? document.documentElement;\n el.setAttribute(\"data-theme\", resolvedMode);\n if (brand && brand !== \"default\") {\n el.setAttribute(\"data-brand\", brand);\n } else {\n el.removeAttribute(\"data-brand\");\n }\n if (radius && radius !== \"default\") {\n el.setAttribute(\"data-radius\", radius);\n } else {\n el.removeAttribute(\"data-radius\");\n }\n }, [resolvedMode, brand, radius, target]);\n\n const setMode = useCallback((m: ColorMode) => {\n setModeState(m);\n try {\n localStorage.setItem(MODE_KEY, m);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setBrand = useCallback((b: Brand) => {\n setBrandState(b);\n try {\n localStorage.setItem(BRAND_KEY, b);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setRadius = useCallback((r: RadiusScale) => {\n setRadiusState(r);\n try {\n localStorage.setItem(RADIUS_KEY, r);\n } catch {\n /* ignore */\n }\n }, []);\n\n const toggleMode = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode }),\n [mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme precisa estar dentro de <ThemeProvider>\");\n }\n return ctx;\n}\n","// AUTO-GERADO por Style Dictionary. Não editar à mão.\n// Fonte: tokens/*.json — rode `npm run tokens` para regenerar.\n\nexport interface TokenMeta {\n name: string;\n cssVar: string;\n path: string[];\n group: string;\n value: string;\n isColor: boolean;\n reference: string | null;\n}\n\nexport const tokens: TokenMeta[] = [\n {\n \"name\": \"flui-color-accent-scale-50\",\n \"cssVar\": \"--flui-color-accent-scale-50\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f9ffe0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-100\",\n \"cssVar\": \"--flui-color-accent-scale-100\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-200\",\n \"cssVar\": \"--flui-color-accent-scale-200\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8ff80\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-300\",\n \"cssVar\": \"--flui-color-accent-scale-300\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#dcff45\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-400\",\n \"cssVar\": \"--flui-color-accent-scale-400\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-500\",\n \"cssVar\": \"--flui-color-accent-scale-500\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-600\",\n \"cssVar\": \"--flui-color-accent-scale-600\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-700\",\n \"cssVar\": \"--flui-color-accent-scale-700\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#8ab000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-800\",\n \"cssVar\": \"--flui-color-accent-scale-800\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#638000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-900\",\n \"cssVar\": \"--flui-color-accent-scale-900\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-50\",\n \"cssVar\": \"--flui-color-brand-50\",\n \"path\": [\n \"color\",\n \"brand\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-100\",\n \"cssVar\": \"--flui-color-brand-100\",\n \"path\": [\n \"color\",\n \"brand\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#ccd5ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-200\",\n \"cssVar\": \"--flui-color-brand-200\",\n \"path\": [\n \"color\",\n \"brand\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#99abff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-300\",\n \"cssVar\": \"--flui-color-brand-300\",\n \"path\": [\n \"color\",\n \"brand\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#6680ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-400\",\n \"cssVar\": \"--flui-color-brand-400\",\n \"path\": [\n \"color\",\n \"brand\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#3355ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-500\",\n \"cssVar\": \"--flui-color-brand-500\",\n \"path\": [\n \"color\",\n \"brand\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-600\",\n \"cssVar\": \"--flui-color-brand-600\",\n \"path\": [\n \"color\",\n \"brand\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-700\",\n \"cssVar\": \"--flui-color-brand-700\",\n \"path\": [\n \"color\",\n \"brand\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-800\",\n \"cssVar\": \"--flui-color-brand-800\",\n \"path\": [\n \"color\",\n \"brand\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#001566\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-900\",\n \"cssVar\": \"--flui-color-brand-900\",\n \"path\": [\n \"color\",\n \"brand\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#000b42\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-0\",\n \"cssVar\": \"--flui-color-neutral-0\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"0\"\n ],\n \"group\": \"color\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-50\",\n \"cssVar\": \"--flui-color-neutral-50\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-100\",\n \"cssVar\": \"--flui-color-neutral-100\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-200\",\n \"cssVar\": \"--flui-color-neutral-200\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-300\",\n \"cssVar\": \"--flui-color-neutral-300\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-400\",\n \"cssVar\": \"--flui-color-neutral-400\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#9aa2b4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-500\",\n \"cssVar\": \"--flui-color-neutral-500\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-600\",\n \"cssVar\": \"--flui-color-neutral-600\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#4c5263\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-700\",\n \"cssVar\": \"--flui-color-neutral-700\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#363b49\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-750\",\n \"cssVar\": \"--flui-color-neutral-750\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"750\"\n ],\n \"group\": \"color\",\n \"value\": \"#2c303c\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-800\",\n \"cssVar\": \"--flui-color-neutral-800\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#22262f\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-850\",\n \"cssVar\": \"--flui-color-neutral-850\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"850\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a1d25\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-900\",\n \"cssVar\": \"--flui-color-neutral-900\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-950\",\n \"cssVar\": \"--flui-color-neutral-950\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"950\"\n ],\n \"group\": \"color\",\n \"value\": \"#0e1015\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-1000\",\n \"cssVar\": \"--flui-color-neutral-1000\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"1000\"\n ],\n \"group\": \"color\",\n \"value\": \"#050608\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-500\",\n \"cssVar\": \"--flui-color-success-500\",\n \"path\": [\n \"color\",\n \"success\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#1f9d55\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-600\",\n \"cssVar\": \"--flui-color-success-600\",\n \"path\": [\n \"color\",\n \"success\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#157f43\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-500\",\n \"cssVar\": \"--flui-color-warning-500\",\n \"path\": [\n \"color\",\n \"warning\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-600\",\n \"cssVar\": \"--flui-color-warning-600\",\n \"path\": [\n \"color\",\n \"warning\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#b6790a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-500\",\n \"cssVar\": \"--flui-color-danger-500\",\n \"path\": [\n \"color\",\n \"danger\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-600\",\n \"cssVar\": \"--flui-color-danger-600\",\n \"path\": [\n \"color\",\n \"danger\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-semantic-bg-base\",\n \"cssVar\": \"--flui-semantic-bg-base\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"base\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-bg-subtle\",\n \"cssVar\": \"--flui-semantic-bg-subtle\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-50\"\n },\n {\n \"name\": \"flui-semantic-bg-muted\",\n \"cssVar\": \"--flui-semantic-bg-muted\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-100\"\n },\n {\n \"name\": \"flui-semantic-fg-default\",\n \"cssVar\": \"--flui-semantic-fg-default\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-semantic-fg-muted\",\n \"cssVar\": \"--flui-semantic-fg-muted\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-500\"\n },\n {\n \"name\": \"flui-semantic-fg-on-brand\",\n \"cssVar\": \"--flui-semantic-fg-on-brand\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"onBrand\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-border-default\",\n \"cssVar\": \"--flui-semantic-border-default\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-200\"\n },\n {\n \"name\": \"flui-semantic-border-strong\",\n \"cssVar\": \"--flui-semantic-border-strong\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"strong\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-300\"\n },\n {\n \"name\": \"flui-semantic-primary-default\",\n \"cssVar\": \"--flui-semantic-primary-default\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-500\"\n },\n {\n \"name\": \"flui-semantic-primary-hover\",\n \"cssVar\": \"--flui-semantic-primary-hover\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-600\"\n },\n {\n \"name\": \"flui-semantic-primary-active\",\n \"cssVar\": \"--flui-semantic-primary-active\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-700\"\n },\n {\n \"name\": \"flui-semantic-primary-subtle\",\n \"cssVar\": \"--flui-semantic-primary-subtle\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-50\"\n },\n {\n \"name\": \"flui-semantic-accent-default\",\n \"cssVar\": \"--flui-semantic-accent-default\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-400\"\n },\n {\n \"name\": \"flui-semantic-accent-hover\",\n \"cssVar\": \"--flui-semantic-accent-hover\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-500\"\n },\n {\n \"name\": \"flui-semantic-accent-active\",\n \"cssVar\": \"--flui-semantic-accent-active\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-accent-subtle\",\n \"cssVar\": \"--flui-semantic-accent-subtle\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-accent-foreground\",\n \"cssVar\": \"--flui-semantic-accent-foreground\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-danger-default\",\n \"cssVar\": \"--flui-semantic-danger-default\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-500\"\n },\n {\n \"name\": \"flui-semantic-danger-hover\",\n \"cssVar\": \"--flui-semantic-danger-hover\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-600\"\n },\n {\n \"name\": \"flui-semantic-success-default\",\n \"cssVar\": \"--flui-semantic-success-default\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-success-subtle\",\n \"cssVar\": \"--flui-semantic-success-subtle\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-success-foreground\",\n \"cssVar\": \"--flui-semantic-success-foreground\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-warning-default\",\n \"cssVar\": \"--flui-semantic-warning-default\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-warning-500\"\n },\n {\n \"name\": \"flui-semantic-warning-on-warning\",\n \"cssVar\": \"--flui-semantic-warning-on-warning\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"onWarning\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-space-0\",\n \"cssVar\": \"--flui-space-0\",\n \"path\": [\n \"space\",\n \"0\"\n ],\n \"group\": \"space\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-1\",\n \"cssVar\": \"--flui-space-1\",\n \"path\": [\n \"space\",\n \"1\"\n ],\n \"group\": \"space\",\n \"value\": \"4px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-2\",\n \"cssVar\": \"--flui-space-2\",\n \"path\": [\n \"space\",\n \"2\"\n ],\n \"group\": \"space\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-3\",\n \"cssVar\": \"--flui-space-3\",\n \"path\": [\n \"space\",\n \"3\"\n ],\n \"group\": \"space\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-4\",\n \"cssVar\": \"--flui-space-4\",\n \"path\": [\n \"space\",\n \"4\"\n ],\n \"group\": \"space\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-5\",\n \"cssVar\": \"--flui-space-5\",\n \"path\": [\n \"space\",\n \"5\"\n ],\n \"group\": \"space\",\n \"value\": \"20px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-6\",\n \"cssVar\": \"--flui-space-6\",\n \"path\": [\n \"space\",\n \"6\"\n ],\n \"group\": \"space\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-8\",\n \"cssVar\": \"--flui-space-8\",\n \"path\": [\n \"space\",\n \"8\"\n ],\n \"group\": \"space\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-10\",\n \"cssVar\": \"--flui-space-10\",\n \"path\": [\n \"space\",\n \"10\"\n ],\n \"group\": \"space\",\n \"value\": \"40px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-12\",\n \"cssVar\": \"--flui-space-12\",\n \"path\": [\n \"space\",\n \"12\"\n ],\n \"group\": \"space\",\n \"value\": \"48px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-16\",\n \"cssVar\": \"--flui-space-16\",\n \"path\": [\n \"space\",\n \"16\"\n ],\n \"group\": \"space\",\n \"value\": \"64px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-none\",\n \"cssVar\": \"--flui-radius-none\",\n \"path\": [\n \"radius\",\n \"none\"\n ],\n \"group\": \"radius\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-sm\",\n \"cssVar\": \"--flui-radius-sm\",\n \"path\": [\n \"radius\",\n \"sm\"\n ],\n \"group\": \"radius\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-md\",\n \"cssVar\": \"--flui-radius-md\",\n \"path\": [\n \"radius\",\n \"md\"\n ],\n \"group\": \"radius\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-lg\",\n \"cssVar\": \"--flui-radius-lg\",\n \"path\": [\n \"radius\",\n \"lg\"\n ],\n \"group\": \"radius\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-xl\",\n \"cssVar\": \"--flui-radius-xl\",\n \"path\": [\n \"radius\",\n \"xl\"\n ],\n \"group\": \"radius\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-full\",\n \"cssVar\": \"--flui-radius-full\",\n \"path\": [\n \"radius\",\n \"full\"\n ],\n \"group\": \"radius\",\n \"value\": \"9999px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-sm\",\n \"cssVar\": \"--flui-shadow-sm\",\n \"path\": [\n \"shadow\",\n \"sm\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 1px 2px rgba(19, 21, 27, 0.06)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-md\",\n \"cssVar\": \"--flui-shadow-md\",\n \"path\": [\n \"shadow\",\n \"md\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 4px 12px rgba(19, 21, 27, 0.10)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-lg\",\n \"cssVar\": \"--flui-shadow-lg\",\n \"path\": [\n \"shadow\",\n \"lg\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 12px 32px rgba(19, 21, 27, 0.14)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-sans\",\n \"cssVar\": \"--flui-font-family-sans\",\n \"path\": [\n \"font\",\n \"family\",\n \"sans\"\n ],\n \"group\": \"font\",\n \"value\": \"Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-mono\",\n \"cssVar\": \"--flui-font-family-mono\",\n \"path\": [\n \"font\",\n \"family\",\n \"mono\"\n ],\n \"group\": \"font\",\n \"value\": \"ui-monospace, SFMono-Regular, Menlo, monospace\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-regular\",\n \"cssVar\": \"--flui-font-weight-regular\",\n \"path\": [\n \"font\",\n \"weight\",\n \"regular\"\n ],\n \"group\": \"font\",\n \"value\": \"400\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-medium\",\n \"cssVar\": \"--flui-font-weight-medium\",\n \"path\": [\n \"font\",\n \"weight\",\n \"medium\"\n ],\n \"group\": \"font\",\n \"value\": \"500\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-semibold\",\n \"cssVar\": \"--flui-font-weight-semibold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"semibold\"\n ],\n \"group\": \"font\",\n \"value\": \"600\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-bold\",\n \"cssVar\": \"--flui-font-weight-bold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"bold\"\n ],\n \"group\": \"font\",\n \"value\": \"700\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xs\",\n \"cssVar\": \"--flui-font-size-xs\",\n \"path\": [\n \"font\",\n \"size\",\n \"xs\"\n ],\n \"group\": \"font\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-sm\",\n \"cssVar\": \"--flui-font-size-sm\",\n \"path\": [\n \"font\",\n \"size\",\n \"sm\"\n ],\n \"group\": \"font\",\n \"value\": \"14px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-md\",\n \"cssVar\": \"--flui-font-size-md\",\n \"path\": [\n \"font\",\n \"size\",\n \"md\"\n ],\n \"group\": \"font\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-lg\",\n \"cssVar\": \"--flui-font-size-lg\",\n \"path\": [\n \"font\",\n \"size\",\n \"lg\"\n ],\n \"group\": \"font\",\n \"value\": \"18px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xl\",\n \"cssVar\": \"--flui-font-size-xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"xl\"\n ],\n \"group\": \"font\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-2xl\",\n \"cssVar\": \"--flui-font-size-2xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"2xl\"\n ],\n \"group\": \"font\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-tight\",\n \"cssVar\": \"--flui-font-line-height-tight\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"tight\"\n ],\n \"group\": \"font\",\n \"value\": \"1.2\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-normal\",\n \"cssVar\": \"--flui-font-line-height-normal\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"normal\"\n ],\n \"group\": \"font\",\n \"value\": \"1.5\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-relaxed\",\n \"cssVar\": \"--flui-font-line-height-relaxed\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"relaxed\"\n ],\n \"group\": \"font\",\n \"value\": \"1.75\",\n \"isColor\": false,\n \"reference\": null\n }\n];\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","Button","forwardRef","className","variant","size","fullWidth","props","ref","jsx","inputVariants","Input","invalid","label","id","type","showPassword","setShowPassword","useState","isPassword","resolvedType","inputId","input","jsxs","v","Card","CardHeader","CardTitle","CardDescription","CardContent","trackVariants","thumbVariants","Switch","checked","defaultChecked","onCheckedChange","disabled","isControlled","internal","setInternal","value","next","Checkbox","indeterminate","innerRef","useRef","useEffect","setRefs","node","RadioGroupContext","createContext","RadioGroup","defaultValue","onValueChange","name","children","autoName","useId","current","onChange","Radio","ctx","useContext","selectVariants","Select","DropdownContext","useDropdown","Dropdown","open","setOpen","onClick","e","onKey","DropdownTrigger","cloneElement","DropdownContent","align","DropdownItem","onSelect","destructive","DropdownSeparator","badgeVariants","Badge","sizeVariants","statusColor","dotSize","initials","p","_a","Avatar","src","alt","status","errored","setErrored","showImg","spinnerVariants","Spinner","Progress","max","pct","Divider","orientation","Breadcrumb","items","Children","child","i","Fragment","BreadcrumbSeparator","BreadcrumbItem","href","useCountUp","target","duration","setCurrent","start","tick","now","t","eased","StatCard","countUp","formatCount","delta","helpText","icon","animated","hasDelta","up","displayValue","alertVariants","iconColor","glyph","Alert","title","onClose","useControllableState","setValue","useCallback","TabsContext","useTabs","Tabs","TabsList","listRef","indicator","setIndicator","list","active","TabsTrigger","TabsContent","AccordionContext","ItemContext","useAccordion","Accordion","init","toggle","prev","has","AccordionItem","AccordionTrigger","isOpen","AccordionContent","sidePos","Tooltip","content","side","PopoverContext","usePopover","Popover","PopoverTrigger","PopoverContent","Portal","mounted","setMounted","createPortal","useDismissable","prevOverflow","ModalContext","Modal","onOpenChange","close","ModalContent","ModalHeader","ModalTitle","ModalDescription","ModalBody","ModalFooter","DrawerContext","sideClasses","Drawer","DrawerContent","DrawerHeader","DrawerTitle","DrawerBody","DrawerFooter","ToastContext","variantStyles","ToastProvider","toasts","setToasts","idRef","dismiss","toast","options","ToastCard","item","onDismiss","timer","styles","useToast","textareaVariants","Textarea","CodeBlock","code","language","handleCopy","CopyIcon","Sidebar","user","nav","footerAction","itemClass","isActive","group","SettingRow","description","SettingsCard","SettingsGroup","IntegrationRow","connected","onConnect","onDisconnect","ProfileSettingsModal","defaultSection","controlledSection","onSectionChange","sectionTitles","sectionSubtitles","renderSection","firstId","_b","internalSection","setInternalSection","handleSelect","activeItem","g","subtitle","ThemeContext","MODE_KEY","BRAND_KEY","RADIUS_KEY","prefersDark","load","key","fallback","ThemeProvider","defaultMode","defaultBrand","defaultRadius","mode","setModeState","brand","setBrandState","radius","setRadiusState","systemDark","setSystemDark","mq","resolvedMode","el","setMode","setBrand","b","setRadius","r","toggleMode","useMemo","useTheme","tokens"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/lib/utils/cn.ts","../src/lib/components/Button/Button.tsx","../src/lib/components/Input/Input.tsx","../src/lib/components/Card/Card.tsx","../src/lib/components/Switch/Switch.tsx","../src/lib/components/Checkbox/Checkbox.tsx","../src/lib/components/Radio/Radio.tsx","../src/lib/components/Select/Select.tsx","../src/lib/components/Dropdown/Dropdown.tsx","../src/lib/components/Badge/Badge.tsx","../src/lib/components/Avatar/Avatar.tsx","../src/lib/components/Spinner/Spinner.tsx","../src/lib/components/Progress/Progress.tsx","../src/lib/components/Divider/Divider.tsx","../src/lib/components/Breadcrumb/Breadcrumb.tsx","../src/lib/components/StatCard/StatCard.tsx","../src/lib/components/Alert/Alert.tsx","../src/lib/hooks/useControllableState.ts","../src/lib/components/Tabs/Tabs.tsx","../src/lib/components/Accordion/Accordion.tsx","../src/lib/components/Tooltip/Tooltip.tsx","../src/lib/components/Popover/Popover.tsx","../src/lib/utils/Portal.tsx","../src/lib/hooks/useDismissable.ts","../src/lib/components/Modal/Modal.tsx","../src/lib/components/Drawer/Drawer.tsx","../src/lib/components/Toast/Toast.tsx","../src/lib/components/Textarea/Textarea.tsx","../src/lib/components/CodeBlock/CodeBlock.tsx","../src/lib/components/ProfileSettingsModal/ProfileSettingsModal.tsx","../src/lib/theme/ThemeProvider.tsx","../src/lib/tokens/tokens.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/** Combina classes condicionais e resolve conflitos do Tailwind. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const buttonVariants = cva(\n // base: tudo derivado de tokens via utilitários mapeados no @theme\n \"inline-flex items-center justify-center gap-2 font-medium whitespace-nowrap cursor-pointer \" +\n \"transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary \" +\n \"focus-visible:ring-offset-2 ring-offset-bg disabled:opacity-50 \" +\n \"disabled:pointer-events-none disabled:cursor-not-allowed select-none\",\n {\n variants: {\n variant: {\n primary: \"bg-primary text-fg-on-brand hover:bg-primary-hover active:bg-primary-active\",\n secondary:\n \"bg-bg-muted text-fg hover:bg-border-default active:bg-border-strong\",\n outline:\n \"border border-border-strong bg-transparent text-fg hover:bg-bg-subtle\",\n ghost: \"bg-transparent text-fg hover:bg-bg-muted\",\n accent: \"bg-accent text-accent-fg hover:bg-accent-hover active:bg-accent-active\",\n danger: \"bg-danger text-fg-on-brand hover:bg-danger-hover\",\n \"danger-ghost\": \"bg-transparent text-danger hover:bg-danger/10\",\n },\n size: {\n sm: \"h-8 px-3 text-sm rounded-lg\",\n md: \"h-10 px-4 text-md rounded-lg\",\n lg: \"h-12 px-6 text-lg rounded-lg\",\n },\n fullWidth: { true: \"w-full\" },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, fullWidth, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size, fullWidth }), className)}\n {...props}\n />\n ),\n);\n\nButton.displayName = \"Button\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const inputVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none rounded-lg \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-3 text-sm\",\n lg: \"h-12 px-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {\n label?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, size, invalid, label, id, type, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false);\n const isPassword = type === \"password\";\n const resolvedType = isPassword ? (showPassword ? \"text\" : \"password\") : type;\n\n const inputId = id ?? (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\n\n const input = (\n <div className=\"relative flex w-full items-center\">\n <input\n ref={ref}\n id={inputId}\n type={resolvedType}\n className={cn(\n inputVariants({ size, invalid }),\n isPassword && \"pr-10\",\n className,\n )}\n {...props}\n />\n {isPassword && (\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? \"Ocultar senha\" : \"Mostrar senha\"}\n className=\"absolute right-3 cursor-pointer text-fg-muted transition-colors hover:text-fg\"\n >\n {showPassword ? (\n // olho fechado\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" />\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n ) : (\n // olho aberto\n <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )}\n </button>\n )}\n </div>\n );\n\n if (!label) return input;\n return (\n <div className=\"flex w-full flex-col gap-1.5\">\n <label htmlFor={inputId} className=\"text-xs font-medium text-fg\">\n {label}\n </label>\n {input}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Card = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"bg-bg border border-border-default rounded-lg shadow-sm\",\n className,\n )}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-1 p-6\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />\n));\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-fg-muted\", className)} {...props} />\n));\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst trackVariants = cva(\n \"relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors \" +\n \"outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 \" +\n \"ring-offset-bg disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: { sm: \"h-5 w-9\", md: \"h-6 w-11\" },\n checked: { true: \"bg-primary\", false: \"bg-border-strong\" },\n },\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nconst thumbVariants = cva(\n \"pointer-events-none absolute left-0.5 inline-block rounded-full bg-fg-on-brand shadow-sm transition-transform\",\n {\n variants: {\n size: { sm: \"h-4 w-4\", md: \"h-5 w-5\" },\n checked: { true: \"\", false: \"translate-x-0\" },\n },\n compoundVariants: [\n { size: \"sm\", checked: true, class: \"translate-x-4\" },\n { size: \"md\", checked: true, class: \"translate-x-5\" },\n ],\n defaultVariants: { size: \"md\", checked: false },\n },\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onChange\">,\n VariantProps<typeof trackVariants> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked, defaultChecked, onCheckedChange, disabled, ...props }, ref) => {\n const isControlled = checked !== undefined;\n const [internal, setInternal] = useState(defaultChecked ?? false);\n const value = isControlled ? checked : internal;\n\n const toggle = () => {\n const next = !value;\n if (!isControlled) setInternal(next);\n onCheckedChange?.(next);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n disabled={disabled}\n onClick={toggle}\n className={cn(trackVariants({ size, checked: value }), className)}\n {...props}\n >\n <span className={thumbVariants({ size, checked: value })} />\n </button>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n","import { forwardRef, useEffect, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"type\"> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, indeterminate = false, disabled, id, ...props }, ref) => {\n const innerRef = useRef<HTMLInputElement>(null);\n\n // expõe a ref interna e sincroniza o estado indeterminate (não é atributo HTML)\n useEffect(() => {\n if (innerRef.current) innerRef.current.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const setRefs = (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n };\n\n return (\n <label\n className={cn(\n \"relative inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={setRefs}\n id={id}\n type=\"checkbox\"\n disabled={disabled}\n className=\"peer sr-only\"\n {...props}\n />\n {/* a caixa visual. Os modificadores [&>...] miram os filhos a partir\n do estado do input irmão (peer), já que peer-* só alcança irmãos. */}\n <span\n className={cn(\n \"relative flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary peer-checked:bg-primary\",\n \"peer-indeterminate:border-primary peer-indeterminate:bg-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n // check visível só quando checked (e não indeterminate)\n \"peer-checked:[&>svg]:opacity-100 peer-indeterminate:[&>svg]:opacity-0\",\n // traço visível só quando indeterminate\n \"peer-indeterminate:[&>span]:opacity-100\",\n )}\n >\n <svg\n viewBox=\"0 0 16 16\"\n className=\"h-3.5 w-3.5 text-fg-on-brand opacity-0\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M3.5 8.5l3 3 6-6.5\" />\n </svg>\n <span className=\"absolute h-0.5 w-2.5 rounded-full bg-fg-on-brand opacity-0\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { createContext, forwardRef, useContext, useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface RadioGroupContextValue {\n name: string;\n value?: string;\n onChange: (value: string) => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nexport interface RadioGroupProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n}\n\nexport function RadioGroup({\n value,\n defaultValue,\n onValueChange,\n name,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n const autoName = useId();\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState(defaultValue);\n const current = isControlled ? value : internal;\n\n const onChange = (next: string) => {\n if (!isControlled) setInternal(next);\n onValueChange?.(next);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{ name: name ?? autoName, value: current, onChange }}\n >\n <div role=\"radiogroup\" className={cn(\"flex flex-col gap-2\", className)} {...props}>\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n}\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onChange\"> {\n value: string;\n label?: React.ReactNode;\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ className, value, label, disabled, ...props }, ref) => {\n const ctx = useContext(RadioGroupContext);\n if (!ctx) throw new Error(\"<Radio> precisa estar dentro de <RadioGroup>\");\n const checked = ctx.value === value;\n\n return (\n <label\n className={cn(\n \"inline-flex items-center gap-2 select-none\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <input\n ref={ref}\n type=\"radio\"\n name={ctx.name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={() => ctx.onChange(value)}\n className=\"peer sr-only\"\n {...props}\n />\n <span\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-border-strong bg-bg transition-colors\",\n \"peer-checked:border-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 ring-offset-bg\",\n \"peer-checked:[&>span]:scale-100\",\n )}\n >\n <span className=\"h-2.5 w-2.5 scale-0 rounded-full bg-primary transition-transform\" />\n </span>\n {label && <span className=\"text-sm text-fg\">{label}</span>}\n </label>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst selectVariants = cva(\n \"w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9\",\n {\n variants: {\n size: {\n sm: \"h-8 pl-3 text-xs\",\n md: \"h-10 pl-3 text-sm\",\n lg: \"h-12 pl-4 text-md\",\n },\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { size: \"md\", invalid: false },\n },\n);\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof selectVariants> {}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, size, invalid, children, ...props }, ref) => (\n <div className=\"relative inline-flex w-full items-center\">\n <select\n ref={ref}\n className={cn(selectVariants({ size, invalid }), className)}\n {...props}\n >\n {children}\n </select>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"pointer-events-none absolute right-3 h-4 w-4 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </div>\n ),\n);\n\nSelect.displayName = \"Select\";\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface DropdownContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null);\n\nfunction useDropdown() {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Componentes de Dropdown precisam estar dentro de <Dropdown>\");\n return ctx;\n}\n\nexport function Dropdown({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n // fecha ao clicar fora ou apertar Esc\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <DropdownContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block text-left\">\n {children}\n </div>\n </DropdownContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function DropdownTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = useDropdown();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n });\n}\n\nexport function DropdownContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = useDropdown();\n if (!open) return null;\n return (\n <div\n role=\"menu\"\n className={cn(\n \"absolute z-50 mt-1 min-w-44 rounded-md border border-border-default bg-bg p-1 shadow-md\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport interface DropdownItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n destructive?: boolean;\n}\n\nexport function DropdownItem({\n children,\n onSelect,\n destructive,\n className,\n ...props\n}: DropdownItemProps) {\n const { setOpen } = useDropdown();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n onClick={() => {\n onSelect?.();\n setOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors cursor-pointer\",\n \"hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed\",\n destructive ? \"text-danger\" : \"text-fg\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function DropdownSeparator() {\n return <div role=\"separator\" className=\"my-1 h-px bg-border-default\" />;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex items-center gap-1 font-medium whitespace-nowrap rounded-[var(--flui-radius-badge)]\",\n {\n variants: {\n variant: {\n neutral: \"bg-bg-muted text-fg\",\n primary: \"bg-brand-500 text-fg-on-brand\",\n accent: \"bg-accent-subtle text-accent-fg\",\n \"accent-bold\": \"bg-accent text-accent-fg\",\n success: \"bg-accent text-accent-fg\",\n warning: \"bg-warning/35 text-fg\",\n danger: \"bg-danger/10 text-danger\",\n outline: \"border border-border-strong text-fg\",\n },\n size: {\n sm: \"px-2 py-0.5 text-xs\",\n md: \"px-2.5 py-0.5 text-sm\",\n },\n },\n defaultVariants: { variant: \"neutral\", size: \"sm\" },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n ),\n);\n\nBadge.displayName = \"Badge\";\n","import { forwardRef, useState } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst sizeVariants = cva(\"relative inline-flex shrink-0 select-none\", {\n variants: {\n size: {\n xs: \"h-6 w-6 text-xs\",\n sm: \"h-8 w-8 text-sm\",\n md: \"h-10 w-10 text-md\",\n lg: \"h-12 w-12 text-lg\",\n xl: \"h-16 w-16 text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nconst statusColor: Record<string, string> = {\n online: \"bg-accent\",\n busy: \"bg-danger\",\n away: \"bg-warning\",\n offline: \"bg-border-strong\",\n};\n\n// Tamanho fixo do dot por tamanho de avatar para manter proporção legível\nconst dotSize: Record<string, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-3.5 w-3.5\",\n};\n\nfunction initials(name?: string) {\n if (!name) return \"\";\n return name\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((p) => p[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n}\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof sizeVariants> {\n src?: string;\n alt?: string;\n name?: string;\n status?: \"online\" | \"busy\" | \"away\" | \"offline\";\n}\n\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size = \"md\", src, alt, name, status, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n const showImg = src && !errored;\n\n return (\n <span ref={ref} className={cn(sizeVariants({ size }), className)} {...props}>\n {/* círculo com overflow-hidden isolado — não clipa o dot */}\n <span className=\"flex h-full w-full items-center justify-center overflow-hidden rounded-full bg-bg-muted font-medium text-fg\">\n {showImg ? (\n <img\n src={src}\n alt={alt ?? name ?? \"\"}\n className=\"h-full w-full object-cover\"\n onError={() => setErrored(true)}\n />\n ) : (\n <span aria-hidden>{initials(name)}</span>\n )}\n </span>\n\n {/* dot posicionado dentro do círculo, próximo à borda inferior direita */}\n {status && (\n <span\n aria-label={status}\n className={cn(\n \"absolute bottom-[8%] right-[8%] rounded-full ring-2 ring-bg\",\n statusColor[status],\n dotSize[size ?? \"md\"],\n )}\n />\n )}\n </span>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\"animate-spin text-primary\", {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nexport const Spinner = forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, label = \"Carregando\", ...props }, ref) => (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n role=\"status\"\n aria-label={label}\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"3\" className=\"opacity-20\" />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n ),\n);\n\nSpinner.displayName = \"Spinner\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 0–100. Omita (ou use indeterminate) para estado indeterminado. */\n value?: number;\n max?: number;\n indeterminate?: boolean;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, indeterminate, ...props }, ref) => {\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={indeterminate ? undefined : value}\n className={cn(\n \"relative h-1 w-full overflow-hidden rounded-full bg-bg-muted\",\n className,\n )}\n {...props}\n >\n {indeterminate ? (\n <div className=\"absolute inset-y-0 w-1/3 rounded-full bg-primary animate-[flui-indeterminate_1.2s_ease-in-out_infinite]\" />\n ) : (\n <div\n className=\"h-full rounded-full bg-primary transition-[width] duration-300\"\n style={{ width: `${pct}%` }}\n />\n )}\n </div>\n );\n },\n);\n\nProgress.displayName = \"Progress\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n /** rótulo central (apenas horizontal) */\n label?: React.ReactNode;\n}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ className, orientation = \"horizontal\", label, ...props }, ref) => {\n if (orientation === \"vertical\") {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"mx-2 h-full w-px self-stretch bg-border-default\", className)}\n {...props}\n />\n );\n }\n\n if (label) {\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"flex items-center gap-3 text-sm text-fg-muted\", className)}\n {...props}\n >\n <span className=\"h-px flex-1 bg-border-default\" />\n {label}\n <span className=\"h-px flex-1 bg-border-default\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"h-px w-full bg-border-default\", className)}\n {...props}\n />\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n","import { Children, Fragment, forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const Breadcrumb = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => {\n const items = Children.toArray(children);\n return (\n <nav ref={ref} aria-label=\"breadcrumb\" className={className} {...props}>\n <ol className=\"flex flex-wrap items-center gap-1.5 text-sm\">\n {items.map((child, i) => (\n <Fragment key={i}>\n {child}\n {i < items.length - 1 && <BreadcrumbSeparator />}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n },\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport interface BreadcrumbItemProps\n extends React.LiHTMLAttributes<HTMLLIElement> {\n href?: string;\n current?: boolean;\n}\n\nexport function BreadcrumbItem({\n href,\n current,\n className,\n children,\n ...props\n}: BreadcrumbItemProps) {\n return (\n <li className={cn(\"inline-flex items-center\", className)} {...props}>\n {current || !href ? (\n <span\n aria-current={current ? \"page\" : undefined}\n className={cn(current ? \"font-medium text-fg\" : \"text-fg-muted\")}\n >\n {children}\n </span>\n ) : (\n <a\n href={href}\n className=\"text-fg-muted transition-colors hover:text-fg hover:underline\"\n >\n {children}\n </a>\n )}\n </li>\n );\n}\n\nexport function BreadcrumbSeparator() {\n return (\n <li aria-hidden className=\"text-fg-muted\">\n /\n </li>\n );\n}\n","import { forwardRef, useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Badge } from \"../Badge/Badge\";\n\nfunction useCountUp(target: number, duration = 1000) {\n const [current, setCurrent] = useState(0);\n\n useEffect(() => {\n setCurrent(0);\n const start = performance.now();\n const tick = (now: number) => {\n const t = Math.min((now - start) / duration, 1);\n const eased = 1 - (1 - t) ** 4; // quartic ease-out: rápido → lento\n setCurrent(target * eased);\n if (t < 1) requestAnimationFrame(tick);\n else setCurrent(target);\n };\n requestAnimationFrame(tick);\n }, [target, duration]);\n\n return current;\n}\n\nexport interface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value?: React.ReactNode;\n /** Valor numérico para animação tipo cassino. Usa `formatCount` para exibir. */\n countUp?: number;\n /** Formata o número animado. Default: toLocaleString('pt-BR'). */\n formatCount?: (n: number) => string;\n /** variação percentual; positivo = alta (success), negativo = baixa (danger) */\n delta?: number;\n helpText?: React.ReactNode;\n icon?: React.ReactNode;\n}\n\nexport const StatCard = forwardRef<HTMLDivElement, StatCardProps>(\n ({ className, label, value, countUp, formatCount, delta, helpText, icon, ...props }, ref) => {\n const animated = useCountUp(countUp ?? 0);\n const hasDelta = typeof delta === \"number\";\n const up = hasDelta && delta! >= 0;\n\n const displayValue =\n countUp !== undefined\n ? (formatCount ? formatCount(animated) : Math.round(animated).toLocaleString(\"pt-BR\"))\n : value;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col gap-2 rounded-xl bg-bg-muted dark:bg-neutral-900 p-8 shadow-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-fg-muted\">{label}</span>\n {icon && <span className=\"text-fg-muted\">{icon}</span>}\n </div>\n <span className=\"text-3xl font-bold text-fg whitespace-nowrap tabular-nums\">\n {displayValue}\n </span>\n {hasDelta && (\n <Badge variant={up ? \"success\" : \"danger\"} size=\"sm\" className=\"self-start\">\n {up ? \"▲\" : \"▼\"} {Math.abs(delta!)}%\n </Badge>\n )}\n {helpText && <span className=\"text-xs text-fg-muted\">{helpText}</span>}\n </div>\n );\n },\n);\n\nStatCard.displayName = \"StatCard\";\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst alertVariants = cva(\"flex gap-3 rounded-lg p-4 text-sm\", {\n variants: {\n variant: {\n info: \"bg-primary/10 text-fg\",\n success: \"bg-success-subtle text-fg\",\n warning: \"bg-warning/10 text-fg\",\n danger: \"bg-danger/10 text-fg\",\n },\n },\n defaultVariants: { variant: \"info\" },\n});\n\nconst iconColor: Record<string, string> = {\n info: \"text-primary\",\n success: \"text-success-fg\",\n warning: \"text-warning\",\n danger: \"text-danger\",\n};\n\n// glifos simples por variante (sem dependência de lib de ícones)\nconst glyph: Record<string, string> = {\n info: \"ℹ\",\n success: \"✓\",\n warning: \"!\",\n danger: \"✕\",\n};\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof alertVariants> {\n title?: React.ReactNode;\n onClose?: () => void;\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", title, onClose, children, ...props }, ref) => {\n const v = variant ?? \"info\";\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n \"flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-xs font-bold\",\n iconColor[v],\n )}\n >\n {glyph[v]}\n </span>\n <div className=\"min-w-0 flex-1\">\n {title && <div className=\"font-semibold text-fg\">{title}</div>}\n {children && <div className=\"text-fg-muted\">{children}</div>}\n </div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Fechar\"\n className=\"shrink-0 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n )}\n </div>\n );\n },\n);\n\nAlert.displayName = \"Alert\";\n","import { useCallback, useState } from \"react\";\n\n/**\n * Suporta componentes controlados e não-controlados com a mesma API.\n * Se `value` for fornecido, o componente é controlado; senão usa estado interno.\n */\nexport function useControllableState<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T;\n defaultValue: T;\n onChange?: (value: T) => void;\n}) {\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<T>(defaultValue);\n const current = isControlled ? (value as T) : internal;\n\n const setValue = useCallback(\n (next: T) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n return [current, setValue] as const;\n}\n","import { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { cn } from \"../../utils/cn\";\n\ninterface TabsContextValue {\n value: string;\n setValue: (value: string) => void;\n}\nconst TabsContext = createContext<TabsContextValue | null>(null);\nfunction useTabs() {\n const ctx = useContext(TabsContext);\n if (!ctx) throw new Error(\"Componentes de Tabs precisam estar dentro de <Tabs>\");\n return ctx;\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({\n value,\n defaultValue,\n onValueChange,\n className,\n children,\n ...props\n}: TabsProps) {\n const [current, setValue] = useControllableState({\n value,\n defaultValue: defaultValue ?? \"\",\n onChange: onValueChange,\n });\n return (\n <TabsContext.Provider value={{ value: current, setValue }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n const { value } = useTabs();\n const listRef = useRef<HTMLDivElement>(null);\n const [indicator, setIndicator] = useState({ left: 0, width: 0, ready: false });\n\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const active = list.querySelector('[aria-selected=\"true\"]') as HTMLElement | null;\n if (!active) return;\n setIndicator({ left: active.offsetLeft, width: active.offsetWidth, ready: true });\n }, [value]);\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n className={cn(\"relative flex items-center gap-1 border-b border-border-default\", className)}\n {...props}\n >\n {children}\n {indicator.ready && (\n <span\n aria-hidden\n className=\"pointer-events-none absolute bottom-[-1px] h-[2px] rounded-full bg-primary transition-all duration-250 ease-out\"\n style={{ left: indicator.left, width: indicator.width }}\n />\n )}\n </div>\n );\n}\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\nexport function TabsTrigger({ value, className, ...props }: TabsTriggerProps) {\n const ctx = useTabs();\n const active = ctx.value === value;\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => ctx.setValue(value)}\n className={cn(\n \"px-4 py-2 text-sm font-medium transition-colors outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 ring-offset-bg\",\n active ? \"text-fg\" : \"text-fg-muted hover:text-fg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function TabsContent({ value, className, ...props }: TabsContentProps) {\n const ctx = useTabs();\n if (ctx.value !== value) return null;\n return (\n <div\n role=\"tabpanel\"\n className={cn(\"pt-4 animate-[flui-slide-up_200ms_ease-out]\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useContext, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface AccordionContextValue {\n open: string[];\n toggle: (value: string) => void;\n}\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\nconst ItemContext = createContext<string>(\"\");\n\nfunction useAccordion() {\n const ctx = useContext(AccordionContext);\n if (!ctx) throw new Error(\"Componentes de Accordion precisam estar dentro de <Accordion>\");\n return ctx;\n}\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n}\n\nexport function Accordion({\n type = \"single\",\n defaultValue,\n className,\n children,\n ...props\n}: AccordionProps) {\n const init = defaultValue\n ? Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]\n : [];\n const [open, setOpen] = useState<string[]>(init);\n\n const toggle = (value: string) =>\n setOpen((prev) => {\n const has = prev.includes(value);\n if (type === \"single\") return has ? [] : [value];\n return has ? prev.filter((v) => v !== value) : [...prev, value];\n });\n\n return (\n <AccordionContext.Provider value={{ open, toggle }}>\n <div\n className={cn(\"border-y border-border-default divide-y divide-border-default\", className)}\n {...props}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\nexport function AccordionItem({ value, children, ...props }: AccordionItemProps) {\n return (\n <ItemContext.Provider value={value}>\n <div {...props}>{children}</div>\n </ItemContext.Provider>\n );\n}\n\nexport function AccordionTrigger({\n className,\n children,\n ...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => ctx.toggle(value)}\n className={cn(\n \"flex w-full items-center justify-between gap-2 py-4 text-left text-sm font-medium text-fg outline-none cursor-pointer\",\n \"focus-visible:ring-2 focus-visible:ring-primary ring-offset-bg\",\n className,\n )}\n {...props}\n >\n {children}\n <span className={cn(\"text-fg-muted transition-transform\", isOpen && \"rotate-180\")}>\n ▾\n </span>\n </button>\n );\n}\n\nexport function AccordionContent({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useAccordion();\n const value = useContext(ItemContext);\n if (!ctx.open.includes(value)) return null;\n return <div className={cn(\"pb-4 text-sm text-fg-muted\", className)} {...props} />;\n}\n","import { useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nconst sidePos: Record<string, string> = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2\",\n};\n\nexport interface TooltipProps {\n content: React.ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n children: React.ReactNode;\n className?: string;\n}\n\n/**\n * Tooltip leve baseado em hover/focus. O posicionamento é relativo ao gatilho\n * (sem detecção de colisão com a borda da tela — para isso, usar Floating UI).\n */\nexport function Tooltip({ content, side = \"top\", children, className }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const id = useId();\n\n return (\n <span\n className=\"relative inline-flex\"\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n >\n <span aria-describedby={open ? id : undefined}>{children}</span>\n {open && (\n <span\n role=\"tooltip\"\n id={id}\n className={cn(\n \"pointer-events-none absolute z-50 whitespace-nowrap rounded-md bg-fg px-2 py-1 text-xs text-bg shadow-md\",\n \"animate-[flui-fade-in_120ms_ease-out]\",\n sidePos[side],\n className,\n )}\n >\n {content}\n </span>\n )}\n </span>\n );\n}\n","import {\n cloneElement,\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\nfunction usePopover() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error(\"Componentes de Popover precisam estar dentro de <Popover>\");\n return ctx;\n}\n\nexport function Popover({ children }: { children: React.ReactNode }) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n const onClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && setOpen(false);\n document.addEventListener(\"mousedown\", onClick);\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.removeEventListener(\"mousedown\", onClick);\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open]);\n\n return (\n <PopoverContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className=\"relative inline-block\">\n {children}\n </div>\n </PopoverContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function PopoverTrigger({ children }: { children: ReactElement<any> }) {\n const { open, setOpen } = usePopover();\n return cloneElement(children, {\n onClick: () => setOpen(!open),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": open,\n });\n}\n\nexport function PopoverContent({\n children,\n align = \"start\",\n className,\n}: {\n children: React.ReactNode;\n align?: \"start\" | \"end\";\n className?: string;\n}) {\n const { open } = usePopover();\n if (!open) return null;\n return (\n <div\n role=\"dialog\"\n className={cn(\n \"absolute z-50 mt-2 min-w-56 rounded-lg border border-border-default bg-bg p-4 shadow-lg\",\n \"animate-[flui-slide-up_140ms_ease-out]\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n/** Renderiza os filhos em document.body, evitando problemas de overflow/z-index. */\nexport function Portal({ children }: { children: React.ReactNode }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n if (!mounted) return null;\n return createPortal(children, document.body);\n}\n","import { useEffect } from \"react\";\n\n/** Trava o scroll do body e fecha no Escape enquanto `open` for true. */\nexport function useDismissable(open: boolean, onClose: () => void) {\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && onClose();\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n document.addEventListener(\"keydown\", onKey);\n return () => {\n document.body.style.overflow = prevOverflow;\n document.removeEventListener(\"keydown\", onKey);\n };\n }, [open, onClose]);\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\nconst ModalContext = createContext<{ close: () => void } | null>(null);\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport function Modal({ open, onOpenChange, children }: ModalProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <ModalContext.Provider value={{ close }}>\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </ModalContext.Provider>\n </Portal>\n );\n}\n\nexport function ModalContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(ModalContext);\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-10 w-full max-w-lg rounded-xl border border-border-default bg-bg shadow-lg\",\n \"animate-[flui-slide-up_160ms_ease-out]\",\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function ModalHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-1 p-6 pb-2\", className)} {...props} />;\n}\nexport function ModalTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function ModalDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return <p className={cn(\"text-sm text-fg-muted\", className)} {...props} />;\n}\nexport function ModalBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"px-6 py-2\", className)} {...props} />;\n}\nexport function ModalFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn(\"flex justify-end gap-2 p-6 pt-4\", className)} {...props} />\n );\n}\n","import { createContext, useContext } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { useDismissable } from \"../../hooks/useDismissable\";\nimport { cn } from \"../../utils/cn\";\n\ntype Side = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nconst DrawerContext = createContext<{ close: () => void; side: Side } | null>(null);\n\nconst sideClasses: Record<Side, string> = {\n left: \"left-0 top-0 h-full w-[420px] max-w-[96vw] border-r\",\n right: \"right-0 top-0 h-full w-[420px] max-w-[96vw] border-l\",\n top: \"top-0 left-0 w-full max-h-[90vh] border-b\",\n bottom: \"bottom-0 left-0 w-full max-h-[90vh] border-t\",\n};\n\nexport interface DrawerProps {\n open: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: Side;\n children: React.ReactNode;\n}\n\nexport function Drawer({ open, onOpenChange, side = \"right\", children }: DrawerProps) {\n const close = () => onOpenChange?.(false);\n useDismissable(open, close);\n if (!open) return null;\n\n return (\n <Portal>\n <DrawerContext.Provider value={{ close, side }}>\n <div className=\"fixed inset-0 z-50\">\n <div\n className=\"absolute inset-0 bg-black/60 backdrop-blur-sm animate-[flui-fade-in_120ms_ease-out]\"\n onClick={close}\n />\n {children}\n </div>\n </DrawerContext.Provider>\n </Portal>\n );\n}\n\nexport function DrawerContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const ctx = useContext(DrawerContext);\n const side = ctx?.side ?? \"right\";\n return (\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"absolute z-10 flex flex-col border-border-default bg-bg shadow-lg\",\n \"animate-[flui-fade-in_160ms_ease-out]\",\n sideClasses[side],\n className,\n )}\n {...props}\n >\n {children}\n <button\n type=\"button\"\n onClick={() => ctx?.close()}\n aria-label=\"Fechar\"\n className=\"absolute right-4 top-4 cursor-pointer rounded-sm px-1 text-fg-muted transition-colors hover:text-fg\"\n >\n ✕\n </button>\n </div>\n );\n}\n\nexport function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex flex-col gap-1 border-b border-border-default p-6\", className)}\n {...props}\n />\n );\n}\nexport function DrawerTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return <h2 className={cn(\"text-lg font-semibold text-fg\", className)} {...props} />;\n}\nexport function DrawerBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex-1 overflow-y-auto p-6\", className)} {...props} />;\n}\nexport function DrawerFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex justify-end gap-2 border-t border-border-default p-6\", className)}\n {...props}\n />\n );\n}\n","import { createContext, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { Portal } from \"../../utils/Portal\";\nimport { cn } from \"../../utils/cn\";\n\ntype ToastVariant = \"info\" | \"success\" | \"warning\" | \"danger\";\n\ninterface ToastAction {\n label: string;\n onClick: () => void;\n}\n\ninterface ToastOptions {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number; // ms; 0 = não fecha sozinho\n icon?: React.ReactNode;\n action?: ToastAction;\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\n leaving?: boolean;\n}\n\ninterface ToastContextValue {\n toast: (options: ToastOptions) => number;\n dismiss: (id: number) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nconst variantStyles: Record<ToastVariant, { wrapper: string; title: string; description: string; action: string }> = {\n info: { wrapper: \"bg-[var(--color-toast-info-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-primary hover:text-primary/80\" },\n success: { wrapper: \"bg-[var(--color-toast-success-bg)]\", title: \"text-success-fg\", description: \"text-fg-muted\", action: \"text-success-fg hover:text-success-fg/80\" },\n warning: { wrapper: \"bg-[var(--color-toast-warning-bg)]\", title: \"text-fg\", description: \"text-fg-muted\", action: \"text-fg hover:text-fg/80\" },\n danger: { wrapper: \"bg-[var(--color-toast-danger-bg)]\", title: \"text-danger\", description: \"text-fg-muted\", action: \"text-danger hover:text-danger/80\" },\n};\n\nexport function ToastProvider({ children }: { children: React.ReactNode }) {\n const [toasts, setToasts] = useState<ToastItem[]>([]);\n const idRef = useRef(0);\n\n const dismiss = useCallback((id: number) => {\n setToasts((prev) => prev.map((t) => t.id === id ? { ...t, leaving: true } : t));\n setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, 160);\n }, []);\n\n const toast = useCallback((options: ToastOptions) => {\n const id = ++idRef.current;\n setToasts((prev) => [...prev, { id, variant: \"info\", duration: 4000, ...options }]);\n return id;\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast, dismiss }}>\n {children}\n <Portal>\n <div className=\"pointer-events-none fixed bottom-4 right-8 z-[60] flex w-80 max-w-[90vw] flex-col gap-2\">\n {toasts.map((t) => (\n <ToastCard key={t.id} item={t} onDismiss={() => dismiss(t.id)} />\n ))}\n </div>\n </Portal>\n </ToastContext.Provider>\n );\n}\n\nfunction ToastCard({ item, onDismiss }: { item: ToastItem; onDismiss: () => void }) {\n useEffect(() => {\n if (!item.duration) return;\n const timer = setTimeout(onDismiss, item.duration);\n return () => clearTimeout(timer);\n }, [item.duration, onDismiss]);\n\n const styles = variantStyles[item.variant ?? \"info\"];\n\n return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto flex items-start gap-3 rounded-3xl p-4 shadow-sm\",\n item.leaving\n ? \"animate-[flui-slide-down_160ms_ease-in_forwards]\"\n : \"animate-[flui-slide-up_160ms_ease-out]\",\n styles.wrapper,\n )}\n >\n {item.icon && (\n <span className={cn(\"mt-0.5 shrink-0\", styles.title)}>{item.icon}</span>\n )}\n\n <div className=\"min-w-0 flex-1\">\n <div className={cn(\"text-sm font-semibold\", styles.title)}>{item.title}</div>\n {item.description && (\n <div className={cn(\"mt-0.5 text-sm\", styles.description)}>{item.description}</div>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center gap-1\">\n {item.action && (\n <button\n type=\"button\"\n onClick={() => { item.action!.onClick(); onDismiss(); }}\n className={cn(\"cursor-pointer rounded-sm px-1.5 py-0.5 text-xs font-semibold transition-colors\", styles.action)}\n >\n {item.action.label}\n </button>\n )}\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Fechar\"\n className={cn(\"cursor-pointer rounded-sm px-1 transition-colors opacity-60 hover:opacity-100\", styles.title)}\n >\n ✕\n </button>\n </div>\n </div>\n );\n}\n\nexport function useToast() {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast precisa estar dentro de <ToastProvider>\");\n return ctx;\n}\n","import { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const textareaVariants = cva(\n \"flex w-full bg-bg-muted text-fg placeholder:text-fg-muted border border-transparent \" +\n \"transition-colors outline-none resize-y rounded-lg min-h-28 px-3 py-3 text-sm \" +\n \"focus-visible:border-border-strong \" +\n \"disabled:opacity-50 disabled:pointer-events-none\",\n {\n variants: {\n invalid: {\n true: \"border-danger!\",\n false: \"\",\n },\n },\n defaultVariants: { invalid: false },\n },\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, invalid, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(textareaVariants({ invalid }), className)}\n {...props}\n />\n ),\n);\n\nTextarea.displayName = \"Textarea\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useToast } from \"../Toast/Toast\";\n\nexport interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Rótulo exibido no canto superior esquerdo (ex: \"tsx\", \"bash\"). */\n language?: string;\n /** Código a ser exibido. */\n code: string;\n}\n\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(\n ({ code, language, className, ...props }, ref) => {\n const { toast } = useToast();\n\n function handleCopy() {\n navigator.clipboard.writeText(code).then(() => {\n toast({ title: \"Copiado!\", variant: \"success\", duration: 2000 });\n });\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"overflow-hidden rounded-lg bg-bg-subtle\", className)}\n {...props}\n >\n <div className=\"flex items-center justify-between bg-bg-muted px-4 py-2\">\n {language ? (\n <span className=\"font-mono text-xs text-fg-muted\">{language}</span>\n ) : (\n <span />\n )}\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copiar código\"\n className=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-fg-muted transition-colors hover:bg-bg hover:text-fg\"\n >\n <CopyIcon />\n Copiar\n </button>\n </div>\n <pre className=\"overflow-x-auto p-4 text-sm leading-relaxed\">\n <code className=\"font-mono text-fg\">{code}</code>\n </pre>\n </div>\n );\n },\n);\n\nCodeBlock.displayName = \"CodeBlock\";\n\nfunction CopyIcon() {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <rect x=\"6\" y=\"6\" width=\"8\" height=\"8\" rx=\"1.5\" />\n <path d=\"M4 10H3a1.5 1.5 0 0 1-1.5-1.5v-6A1.5 1.5 0 0 1 3 1h6A1.5 1.5 0 0 1 10.5 2.5V4\" />\n </svg>\n );\n}\n","import { useState } from \"react\";\nimport { Modal, ModalContent } from \"../Modal/Modal\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface ProfileSettingsUser {\n name: string;\n subtitle?: string;\n /** Texto de fallback se não houver avatar (ex: \"EM\") */\n initials?: string;\n /** URL da foto */\n avatar?: string;\n}\n\nexport interface ProfileSettingsNavItem {\n id: string;\n label: string;\n /** Qualquer ReactNode — passe um ícone Tabler ou SVG */\n icon?: React.ReactNode;\n}\n\nexport interface ProfileSettingsNavGroup {\n group: string;\n items: ProfileSettingsNavItem[];\n}\n\nexport interface ProfileSettingsModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n /** Seção ativa inicial */\n defaultSection?: string;\n /** Seção ativa controlada externamente */\n activeSection?: string;\n onSectionChange?: (id: string) => void;\n /** Título por seção. Fallback: label do item */\n sectionTitles?: Record<string, string>;\n /** Subtítulo por seção */\n sectionSubtitles?: Record<string, string>;\n /** Renderiza o conteúdo da seção ativa */\n renderSection?: (id: string) => React.ReactNode;\n /** Ação no rodapé do sidebar (ex: \"Get help\") */\n footerAction?: React.ReactNode;\n}\n\n// ─── Sidebar ──────────────────────────────────────────────────────────────────\n\nfunction Sidebar({\n user,\n nav,\n active,\n onSelect,\n footerAction,\n}: {\n user: ProfileSettingsUser;\n nav: ProfileSettingsNavGroup[];\n active: string;\n onSelect: (id: string) => void;\n footerAction?: React.ReactNode;\n}) {\n const itemClass = (isActive: boolean) =>\n \"flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm transition-colors \" +\n (isActive ? \"bg-bg-muted font-medium text-fg\" : \"text-fg hover:bg-bg-muted\");\n\n return (\n <aside className=\"flex w-52 shrink-0 flex-col gap-5 overflow-y-auto border-r border-border-default py-5 pl-4 pr-2\">\n {/* User info */}\n <div className=\"flex items-center gap-2.5 px-1\">\n {user.avatar ? (\n <img\n src={user.avatar}\n alt={user.name}\n className=\"h-8 w-8 shrink-0 rounded-full object-cover\"\n />\n ) : (\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary-subtle text-xs font-semibold text-primary\">\n {user.initials ?? user.name.slice(0, 2).toUpperCase()}\n </span>\n )}\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-fg\">{user.name}</p>\n {user.subtitle && (\n <p className=\"truncate text-xs text-fg-muted\">{user.subtitle}</p>\n )}\n </div>\n <svg\n viewBox=\"0 0 16 16\"\n className=\"ml-auto h-3.5 w-3.5 shrink-0 text-fg-muted\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M5 7l3-3 3 3M5 9l3 3 3-3\" />\n </svg>\n </div>\n\n {/* Nav groups */}\n {nav.map(({ group, items }) => (\n <div key={group}>\n <p className=\"mb-1 px-1 text-xs font-semibold text-fg-muted\">{group}</p>\n <ul className=\"flex flex-col gap-0.5\">\n {items.map((item) => (\n <li key={item.id}>\n <button\n type=\"button\"\n onClick={() => onSelect(item.id)}\n className={itemClass(item.id === active)}\n >\n {item.icon && (\n <span className=\"shrink-0 text-fg [&>svg]:h-[15px] [&>svg]:w-[15px]\">\n {item.icon}\n </span>\n )}\n {item.label}\n </button>\n </li>\n ))}\n </ul>\n </div>\n ))}\n\n {/* Footer slot */}\n {footerAction && <div className=\"mt-auto\">{footerAction}</div>}\n </aside>\n );\n}\n\n// ─── Settings primitives ─────────────────────────────────────────────────────\n\nimport { Switch } from \"../Switch/Switch\";\nimport { Button } from \"../Button/Button\";\n\nexport function SettingRow({\n title,\n description,\n checked,\n onCheckedChange,\n}: {\n title: string;\n description?: string;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}) {\n return (\n <div className=\"flex items-center justify-between gap-6 px-4 py-4\">\n <div>\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n <Switch checked={checked} onCheckedChange={onCheckedChange} className=\"shrink-0\" />\n </div>\n );\n}\n\nexport function SettingsCard({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"divide-y divide-border-default rounded-xl bg-bg\">\n {children}\n </div>\n );\n}\n\nexport function SettingsGroup({\n title,\n children,\n}: {\n title: string;\n children: React.ReactNode;\n}) {\n return (\n <div className=\"flex flex-col gap-3\">\n <h3 className=\"text-base font-semibold text-fg\">{title}</h3>\n <SettingsCard>{children}</SettingsCard>\n </div>\n );\n}\n\nexport interface IntegrationRowProps {\n icon: React.ReactNode;\n title: string;\n description?: string;\n connected?: boolean;\n onConnect?: () => void;\n onDisconnect?: () => void;\n}\n\nexport function IntegrationRow({\n icon,\n title,\n description,\n connected = false,\n onConnect,\n onDisconnect,\n}: IntegrationRowProps) {\n return (\n <div className=\"flex items-center gap-4 rounded-xl bg-bg px-4 py-4\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-bg-muted\">\n <span className=\"[&>svg]:h-4 [&>svg]:w-4\">{icon}</span>\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-fg\">{title}</p>\n {description && <p className=\"mt-0.5 text-sm text-fg-muted\">{description}</p>}\n </div>\n {connected ? (\n <Button variant=\"danger-ghost\" size=\"sm\" onClick={onDisconnect}>\n Desconectar\n </Button>\n ) : (\n <Button variant=\"secondary\" size=\"sm\" onClick={onConnect}>\n Conectar\n </Button>\n )}\n </div>\n );\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport function ProfileSettingsModal({\n open,\n onOpenChange,\n user,\n nav,\n defaultSection,\n activeSection: controlledSection,\n onSectionChange,\n sectionTitles = {},\n sectionSubtitles = {},\n renderSection,\n footerAction,\n}: ProfileSettingsModalProps) {\n const firstId = nav[0]?.items[0]?.id ?? \"\";\n const [internalSection, setInternalSection] = useState(\n defaultSection ?? firstId,\n );\n\n const active = controlledSection ?? internalSection;\n\n const handleSelect = (id: string) => {\n setInternalSection(id);\n onSectionChange?.(id);\n };\n\n // resolve title: explicit override → nav label → id\n const allItems = nav.flatMap((g) => g.items);\n const activeItem = allItems.find((i) => i.id === active);\n const title = sectionTitles[active] ?? activeItem?.label ?? active;\n const subtitle = sectionSubtitles[active];\n\n return (\n <Modal open={open} onOpenChange={onOpenChange}>\n <ModalContent className=\"max-w-[1300px] overflow-hidden p-0\">\n <div className=\"flex h-[820px]\">\n <Sidebar\n user={user}\n nav={nav}\n active={active}\n onSelect={handleSelect}\n footerAction={footerAction}\n />\n\n <div className=\"flex flex-1 flex-col overflow-hidden bg-bg-subtle\">\n <div className=\"relative px-[200px] pb-8 pt-8\">\n <h2 className=\"font-display text-2xl font-semibold tracking-tight text-fg\">\n {title}\n </h2>\n {subtitle && (\n <p className=\"mt-0.5 text-sm text-fg-muted\">{subtitle}</p>\n )}\n <div className=\"pointer-events-none absolute inset-x-0 -bottom-6 h-6 bg-gradient-to-b from-bg-subtle to-transparent\" />\n </div>\n\n <div className=\"flex-1 overflow-y-auto px-[200px] pb-8 pt-6\">\n {renderSection?.(active) ?? (\n <p className=\"text-sm text-fg-muted\">\n Conteúdo de <strong>{title}</strong>.\n </p>\n )}\n </div>\n </div>\n </div>\n </ModalContent>\n </Modal>\n );\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\n/** Modo de cor. \"system\" segue a preferência do SO. */\nexport type ColorMode = \"light\" | \"dark\" | \"system\";\n\n/**\n * Marca/tema. \"default\" usa o ramp base (:root). Os demais correspondem aos\n * blocos [data-brand=\"…\"] gerados pelo Style Dictionary a partir de\n * tokens/brands/*.json — daí o tipo aberto (string) para temas customizados.\n */\nexport type Brand = \"default\" | (string & {});\n\nexport type RadiusScale = \"sharp\" | \"default\" | \"soft\" | \"round\";\n\ninterface ThemeContextValue {\n /** Preferência escolhida (pode ser \"system\"). */\n mode: ColorMode;\n /** Modo efetivo já resolvido (\"light\" | \"dark\"). */\n resolvedMode: \"light\" | \"dark\";\n brand: Brand;\n radius: RadiusScale;\n setMode: (mode: ColorMode) => void;\n setBrand: (brand: Brand) => void;\n setRadius: (radius: RadiusScale) => void;\n /** Alterna entre claro e escuro (resolve \"system\" antes). */\n toggleMode: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nconst MODE_KEY = \"flui-color-mode\";\nconst BRAND_KEY = \"flui-brand\";\nconst RADIUS_KEY = \"flui-radius\";\n\nfunction prefersDark(): boolean {\n return (\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n );\n}\n\nfunction load<T extends string>(key: string, fallback: T): T {\n try {\n return (localStorage.getItem(key) as T) ?? fallback;\n } catch {\n return fallback;\n }\n}\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Modo inicial caso não haja preferência salva. Padrão: \"system\". */\n defaultMode?: ColorMode;\n /** Marca inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultBrand?: Brand;\n /** Escala de radius inicial caso não haja preferência salva. Padrão: \"default\". */\n defaultRadius?: RadiusScale;\n /**\n * Onde aplicar os atributos data-theme / data-brand / data-radius.\n * Padrão: document.documentElement (escopo global do app).\n */\n target?: () => HTMLElement | null;\n}\n\nexport function ThemeProvider({\n children,\n defaultMode = \"system\",\n defaultBrand = \"default\",\n defaultRadius = \"default\",\n target,\n}: ThemeProviderProps) {\n const [mode, setModeState] = useState<ColorMode>(() =>\n load(MODE_KEY, defaultMode),\n );\n const [brand, setBrandState] = useState<Brand>(() =>\n load(BRAND_KEY, defaultBrand),\n );\n const [radius, setRadiusState] = useState<RadiusScale>(() =>\n load(RADIUS_KEY, defaultRadius),\n );\n const [systemDark, setSystemDark] = useState(prefersDark);\n\n // acompanha mudanças do SO quando o modo é \"system\"\n useEffect(() => {\n const mq = window.matchMedia?.(\"(prefers-color-scheme: dark)\");\n if (!mq) return;\n const onChange = (e: MediaQueryListEvent) => setSystemDark(e.matches);\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, []);\n\n const resolvedMode: \"light\" | \"dark\" =\n mode === \"system\" ? (systemDark ? \"dark\" : \"light\") : mode;\n\n // aplica os atributos no elemento alvo\n useEffect(() => {\n const el = target?.() ?? document.documentElement;\n el.setAttribute(\"data-theme\", resolvedMode);\n if (brand && brand !== \"default\") {\n el.setAttribute(\"data-brand\", brand);\n } else {\n el.removeAttribute(\"data-brand\");\n }\n if (radius && radius !== \"default\") {\n el.setAttribute(\"data-radius\", radius);\n } else {\n el.removeAttribute(\"data-radius\");\n }\n }, [resolvedMode, brand, radius, target]);\n\n const setMode = useCallback((m: ColorMode) => {\n setModeState(m);\n try {\n localStorage.setItem(MODE_KEY, m);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setBrand = useCallback((b: Brand) => {\n setBrandState(b);\n try {\n localStorage.setItem(BRAND_KEY, b);\n } catch {\n /* ignore */\n }\n }, []);\n\n const setRadius = useCallback((r: RadiusScale) => {\n setRadiusState(r);\n try {\n localStorage.setItem(RADIUS_KEY, r);\n } catch {\n /* ignore */\n }\n }, []);\n\n const toggleMode = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode }),\n [mode, resolvedMode, brand, radius, setMode, setBrand, setRadius, toggleMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme precisa estar dentro de <ThemeProvider>\");\n }\n return ctx;\n}\n","// AUTO-GERADO por Style Dictionary. Não editar à mão.\n// Fonte: tokens/*.json — rode `npm run tokens` para regenerar.\n\nexport interface TokenMeta {\n name: string;\n cssVar: string;\n path: string[];\n group: string;\n value: string;\n isColor: boolean;\n reference: string | null;\n}\n\nexport const tokens: TokenMeta[] = [\n {\n \"name\": \"flui-color-accent-scale-50\",\n \"cssVar\": \"--flui-color-accent-scale-50\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f9ffe0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-100\",\n \"cssVar\": \"--flui-color-accent-scale-100\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-200\",\n \"cssVar\": \"--flui-color-accent-scale-200\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8ff80\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-300\",\n \"cssVar\": \"--flui-color-accent-scale-300\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#dcff45\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-400\",\n \"cssVar\": \"--flui-color-accent-scale-400\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-500\",\n \"cssVar\": \"--flui-color-accent-scale-500\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-600\",\n \"cssVar\": \"--flui-color-accent-scale-600\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-700\",\n \"cssVar\": \"--flui-color-accent-scale-700\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#8ab000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-800\",\n \"cssVar\": \"--flui-color-accent-scale-800\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#638000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-900\",\n \"cssVar\": \"--flui-color-accent-scale-900\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-50\",\n \"cssVar\": \"--flui-color-brand-50\",\n \"path\": [\n \"color\",\n \"brand\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-100\",\n \"cssVar\": \"--flui-color-brand-100\",\n \"path\": [\n \"color\",\n \"brand\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#ccd5ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-200\",\n \"cssVar\": \"--flui-color-brand-200\",\n \"path\": [\n \"color\",\n \"brand\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#99abff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-300\",\n \"cssVar\": \"--flui-color-brand-300\",\n \"path\": [\n \"color\",\n \"brand\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#6680ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-400\",\n \"cssVar\": \"--flui-color-brand-400\",\n \"path\": [\n \"color\",\n \"brand\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#3355ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-500\",\n \"cssVar\": \"--flui-color-brand-500\",\n \"path\": [\n \"color\",\n \"brand\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-600\",\n \"cssVar\": \"--flui-color-brand-600\",\n \"path\": [\n \"color\",\n \"brand\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-700\",\n \"cssVar\": \"--flui-color-brand-700\",\n \"path\": [\n \"color\",\n \"brand\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-800\",\n \"cssVar\": \"--flui-color-brand-800\",\n \"path\": [\n \"color\",\n \"brand\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#001566\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-900\",\n \"cssVar\": \"--flui-color-brand-900\",\n \"path\": [\n \"color\",\n \"brand\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#000b42\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-0\",\n \"cssVar\": \"--flui-color-neutral-0\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"0\"\n ],\n \"group\": \"color\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-50\",\n \"cssVar\": \"--flui-color-neutral-50\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-100\",\n \"cssVar\": \"--flui-color-neutral-100\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-200\",\n \"cssVar\": \"--flui-color-neutral-200\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-300\",\n \"cssVar\": \"--flui-color-neutral-300\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-400\",\n \"cssVar\": \"--flui-color-neutral-400\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#9aa2b4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-500\",\n \"cssVar\": \"--flui-color-neutral-500\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-600\",\n \"cssVar\": \"--flui-color-neutral-600\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#4c5263\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-700\",\n \"cssVar\": \"--flui-color-neutral-700\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#363b49\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-750\",\n \"cssVar\": \"--flui-color-neutral-750\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"750\"\n ],\n \"group\": \"color\",\n \"value\": \"#2c303c\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-800\",\n \"cssVar\": \"--flui-color-neutral-800\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#22262f\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-850\",\n \"cssVar\": \"--flui-color-neutral-850\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"850\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a1d25\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-875\",\n \"cssVar\": \"--flui-color-neutral-875\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"875\"\n ],\n \"group\": \"color\",\n \"value\": \"#161920\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-900\",\n \"cssVar\": \"--flui-color-neutral-900\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-950\",\n \"cssVar\": \"--flui-color-neutral-950\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"950\"\n ],\n \"group\": \"color\",\n \"value\": \"#0e1015\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-1000\",\n \"cssVar\": \"--flui-color-neutral-1000\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"1000\"\n ],\n \"group\": \"color\",\n \"value\": \"#050608\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-500\",\n \"cssVar\": \"--flui-color-success-500\",\n \"path\": [\n \"color\",\n \"success\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#1f9d55\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-success-600\",\n \"cssVar\": \"--flui-color-success-600\",\n \"path\": [\n \"color\",\n \"success\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#157f43\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-500\",\n \"cssVar\": \"--flui-color-warning-500\",\n \"path\": [\n \"color\",\n \"warning\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-warning-600\",\n \"cssVar\": \"--flui-color-warning-600\",\n \"path\": [\n \"color\",\n \"warning\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#b6790a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-500\",\n \"cssVar\": \"--flui-color-danger-500\",\n \"path\": [\n \"color\",\n \"danger\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-danger-600\",\n \"cssVar\": \"--flui-color-danger-600\",\n \"path\": [\n \"color\",\n \"danger\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-semantic-bg-base\",\n \"cssVar\": \"--flui-semantic-bg-base\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"base\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-bg-subtle\",\n \"cssVar\": \"--flui-semantic-bg-subtle\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-50\"\n },\n {\n \"name\": \"flui-semantic-bg-muted\",\n \"cssVar\": \"--flui-semantic-bg-muted\",\n \"path\": [\n \"semantic\",\n \"bg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-100\"\n },\n {\n \"name\": \"flui-semantic-fg-default\",\n \"cssVar\": \"--flui-semantic-fg-default\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-semantic-fg-muted\",\n \"cssVar\": \"--flui-semantic-fg-muted\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"muted\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-500\"\n },\n {\n \"name\": \"flui-semantic-fg-on-brand\",\n \"cssVar\": \"--flui-semantic-fg-on-brand\",\n \"path\": [\n \"semantic\",\n \"fg\",\n \"onBrand\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-0\"\n },\n {\n \"name\": \"flui-semantic-border-default\",\n \"cssVar\": \"--flui-semantic-border-default\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-200\"\n },\n {\n \"name\": \"flui-semantic-border-strong\",\n \"cssVar\": \"--flui-semantic-border-strong\",\n \"path\": [\n \"semantic\",\n \"border\",\n \"strong\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-300\"\n },\n {\n \"name\": \"flui-semantic-primary-default\",\n \"cssVar\": \"--flui-semantic-primary-default\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-500\"\n },\n {\n \"name\": \"flui-semantic-primary-hover\",\n \"cssVar\": \"--flui-semantic-primary-hover\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-600\"\n },\n {\n \"name\": \"flui-semantic-primary-active\",\n \"cssVar\": \"--flui-semantic-primary-active\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-700\"\n },\n {\n \"name\": \"flui-semantic-primary-subtle\",\n \"cssVar\": \"--flui-semantic-primary-subtle\",\n \"path\": [\n \"semantic\",\n \"primary\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": \"--flui-color-brand-50\"\n },\n {\n \"name\": \"flui-semantic-accent-default\",\n \"cssVar\": \"--flui-semantic-accent-default\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-400\"\n },\n {\n \"name\": \"flui-semantic-accent-hover\",\n \"cssVar\": \"--flui-semantic-accent-hover\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-500\"\n },\n {\n \"name\": \"flui-semantic-accent-active\",\n \"cssVar\": \"--flui-semantic-accent-active\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"active\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-accent-subtle\",\n \"cssVar\": \"--flui-semantic-accent-subtle\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-accent-foreground\",\n \"cssVar\": \"--flui-semantic-accent-foreground\",\n \"path\": [\n \"semantic\",\n \"accent\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-danger-default\",\n \"cssVar\": \"--flui-semantic-danger-default\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#e02424\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-500\"\n },\n {\n \"name\": \"flui-semantic-danger-hover\",\n \"cssVar\": \"--flui-semantic-danger-hover\",\n \"path\": [\n \"semantic\",\n \"danger\",\n \"hover\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#bd1b1b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-danger-600\"\n },\n {\n \"name\": \"flui-semantic-success-default\",\n \"cssVar\": \"--flui-semantic-success-default\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-600\"\n },\n {\n \"name\": \"flui-semantic-success-subtle\",\n \"cssVar\": \"--flui-semantic-success-subtle\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"subtle\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-100\"\n },\n {\n \"name\": \"flui-semantic-success-foreground\",\n \"cssVar\": \"--flui-semantic-success-foreground\",\n \"path\": [\n \"semantic\",\n \"success\",\n \"foreground\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": \"--flui-color-accent-scale-900\"\n },\n {\n \"name\": \"flui-semantic-warning-default\",\n \"cssVar\": \"--flui-semantic-warning-default\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"default\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#d9920a\",\n \"isColor\": true,\n \"reference\": \"--flui-color-warning-500\"\n },\n {\n \"name\": \"flui-semantic-warning-on-warning\",\n \"cssVar\": \"--flui-semantic-warning-on-warning\",\n \"path\": [\n \"semantic\",\n \"warning\",\n \"onWarning\"\n ],\n \"group\": \"semantic\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": \"--flui-color-neutral-900\"\n },\n {\n \"name\": \"flui-space-0\",\n \"cssVar\": \"--flui-space-0\",\n \"path\": [\n \"space\",\n \"0\"\n ],\n \"group\": \"space\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-1\",\n \"cssVar\": \"--flui-space-1\",\n \"path\": [\n \"space\",\n \"1\"\n ],\n \"group\": \"space\",\n \"value\": \"4px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-2\",\n \"cssVar\": \"--flui-space-2\",\n \"path\": [\n \"space\",\n \"2\"\n ],\n \"group\": \"space\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-3\",\n \"cssVar\": \"--flui-space-3\",\n \"path\": [\n \"space\",\n \"3\"\n ],\n \"group\": \"space\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-4\",\n \"cssVar\": \"--flui-space-4\",\n \"path\": [\n \"space\",\n \"4\"\n ],\n \"group\": \"space\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-5\",\n \"cssVar\": \"--flui-space-5\",\n \"path\": [\n \"space\",\n \"5\"\n ],\n \"group\": \"space\",\n \"value\": \"20px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-6\",\n \"cssVar\": \"--flui-space-6\",\n \"path\": [\n \"space\",\n \"6\"\n ],\n \"group\": \"space\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-8\",\n \"cssVar\": \"--flui-space-8\",\n \"path\": [\n \"space\",\n \"8\"\n ],\n \"group\": \"space\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-10\",\n \"cssVar\": \"--flui-space-10\",\n \"path\": [\n \"space\",\n \"10\"\n ],\n \"group\": \"space\",\n \"value\": \"40px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-12\",\n \"cssVar\": \"--flui-space-12\",\n \"path\": [\n \"space\",\n \"12\"\n ],\n \"group\": \"space\",\n \"value\": \"48px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-space-16\",\n \"cssVar\": \"--flui-space-16\",\n \"path\": [\n \"space\",\n \"16\"\n ],\n \"group\": \"space\",\n \"value\": \"64px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-none\",\n \"cssVar\": \"--flui-radius-none\",\n \"path\": [\n \"radius\",\n \"none\"\n ],\n \"group\": \"radius\",\n \"value\": \"0\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-sm\",\n \"cssVar\": \"--flui-radius-sm\",\n \"path\": [\n \"radius\",\n \"sm\"\n ],\n \"group\": \"radius\",\n \"value\": \"8px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-md\",\n \"cssVar\": \"--flui-radius-md\",\n \"path\": [\n \"radius\",\n \"md\"\n ],\n \"group\": \"radius\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-lg\",\n \"cssVar\": \"--flui-radius-lg\",\n \"path\": [\n \"radius\",\n \"lg\"\n ],\n \"group\": \"radius\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-xl\",\n \"cssVar\": \"--flui-radius-xl\",\n \"path\": [\n \"radius\",\n \"xl\"\n ],\n \"group\": \"radius\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-radius-full\",\n \"cssVar\": \"--flui-radius-full\",\n \"path\": [\n \"radius\",\n \"full\"\n ],\n \"group\": \"radius\",\n \"value\": \"9999px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-sm\",\n \"cssVar\": \"--flui-shadow-sm\",\n \"path\": [\n \"shadow\",\n \"sm\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 1px 2px rgba(19, 21, 27, 0.06)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-md\",\n \"cssVar\": \"--flui-shadow-md\",\n \"path\": [\n \"shadow\",\n \"md\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 4px 12px rgba(19, 21, 27, 0.10)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-shadow-lg\",\n \"cssVar\": \"--flui-shadow-lg\",\n \"path\": [\n \"shadow\",\n \"lg\"\n ],\n \"group\": \"shadow\",\n \"value\": \"0 12px 32px rgba(19, 21, 27, 0.14)\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-sans\",\n \"cssVar\": \"--flui-font-family-sans\",\n \"path\": [\n \"font\",\n \"family\",\n \"sans\"\n ],\n \"group\": \"font\",\n \"value\": \"Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-family-mono\",\n \"cssVar\": \"--flui-font-family-mono\",\n \"path\": [\n \"font\",\n \"family\",\n \"mono\"\n ],\n \"group\": \"font\",\n \"value\": \"ui-monospace, SFMono-Regular, Menlo, monospace\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-regular\",\n \"cssVar\": \"--flui-font-weight-regular\",\n \"path\": [\n \"font\",\n \"weight\",\n \"regular\"\n ],\n \"group\": \"font\",\n \"value\": \"400\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-medium\",\n \"cssVar\": \"--flui-font-weight-medium\",\n \"path\": [\n \"font\",\n \"weight\",\n \"medium\"\n ],\n \"group\": \"font\",\n \"value\": \"500\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-semibold\",\n \"cssVar\": \"--flui-font-weight-semibold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"semibold\"\n ],\n \"group\": \"font\",\n \"value\": \"600\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-weight-bold\",\n \"cssVar\": \"--flui-font-weight-bold\",\n \"path\": [\n \"font\",\n \"weight\",\n \"bold\"\n ],\n \"group\": \"font\",\n \"value\": \"700\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xs\",\n \"cssVar\": \"--flui-font-size-xs\",\n \"path\": [\n \"font\",\n \"size\",\n \"xs\"\n ],\n \"group\": \"font\",\n \"value\": \"12px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-sm\",\n \"cssVar\": \"--flui-font-size-sm\",\n \"path\": [\n \"font\",\n \"size\",\n \"sm\"\n ],\n \"group\": \"font\",\n \"value\": \"14px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-md\",\n \"cssVar\": \"--flui-font-size-md\",\n \"path\": [\n \"font\",\n \"size\",\n \"md\"\n ],\n \"group\": \"font\",\n \"value\": \"16px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-lg\",\n \"cssVar\": \"--flui-font-size-lg\",\n \"path\": [\n \"font\",\n \"size\",\n \"lg\"\n ],\n \"group\": \"font\",\n \"value\": \"18px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-xl\",\n \"cssVar\": \"--flui-font-size-xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"xl\"\n ],\n \"group\": \"font\",\n \"value\": \"24px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-size-2xl\",\n \"cssVar\": \"--flui-font-size-2xl\",\n \"path\": [\n \"font\",\n \"size\",\n \"2xl\"\n ],\n \"group\": \"font\",\n \"value\": \"32px\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-tight\",\n \"cssVar\": \"--flui-font-line-height-tight\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"tight\"\n ],\n \"group\": \"font\",\n \"value\": \"1.2\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-normal\",\n \"cssVar\": \"--flui-font-line-height-normal\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"normal\"\n ],\n \"group\": \"font\",\n \"value\": \"1.5\",\n \"isColor\": false,\n \"reference\": null\n },\n {\n \"name\": \"flui-font-line-height-relaxed\",\n \"cssVar\": \"--flui-font-line-height-relaxed\",\n \"path\": [\n \"font\",\n \"lineHeight\",\n \"relaxed\"\n ],\n \"group\": \"font\",\n \"value\": \"1.75\",\n \"isColor\": false,\n \"reference\": null\n }\n];\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","Button","forwardRef","className","variant","size","fullWidth","props","ref","jsx","inputVariants","Input","invalid","label","id","type","showPassword","setShowPassword","useState","isPassword","resolvedType","inputId","input","jsxs","v","Card","CardHeader","CardTitle","CardDescription","CardContent","trackVariants","thumbVariants","Switch","checked","defaultChecked","onCheckedChange","disabled","isControlled","internal","setInternal","value","next","Checkbox","indeterminate","innerRef","useRef","useEffect","setRefs","node","RadioGroupContext","createContext","RadioGroup","defaultValue","onValueChange","name","children","autoName","useId","current","onChange","Radio","ctx","useContext","selectVariants","Select","DropdownContext","useDropdown","Dropdown","open","setOpen","onClick","e","onKey","DropdownTrigger","cloneElement","DropdownContent","align","DropdownItem","onSelect","destructive","DropdownSeparator","badgeVariants","Badge","sizeVariants","statusColor","dotSize","initials","p","_a","Avatar","src","alt","status","errored","setErrored","showImg","spinnerVariants","Spinner","Progress","max","pct","Divider","orientation","Breadcrumb","items","Children","child","i","Fragment","BreadcrumbSeparator","BreadcrumbItem","href","useCountUp","target","duration","setCurrent","start","tick","now","t","eased","StatCard","countUp","formatCount","delta","helpText","icon","animated","hasDelta","up","displayValue","alertVariants","iconColor","glyph","Alert","title","onClose","useControllableState","setValue","useCallback","TabsContext","useTabs","Tabs","TabsList","listRef","indicator","setIndicator","list","active","TabsTrigger","TabsContent","AccordionContext","ItemContext","useAccordion","Accordion","init","toggle","prev","has","AccordionItem","AccordionTrigger","isOpen","AccordionContent","sidePos","Tooltip","content","side","PopoverContext","usePopover","Popover","PopoverTrigger","PopoverContent","Portal","mounted","setMounted","createPortal","useDismissable","prevOverflow","ModalContext","Modal","onOpenChange","close","ModalContent","ModalHeader","ModalTitle","ModalDescription","ModalBody","ModalFooter","DrawerContext","sideClasses","Drawer","DrawerContent","DrawerHeader","DrawerTitle","DrawerBody","DrawerFooter","ToastContext","variantStyles","ToastProvider","toasts","setToasts","idRef","dismiss","toast","options","ToastCard","item","onDismiss","timer","styles","useToast","textareaVariants","Textarea","CodeBlock","code","language","handleCopy","CopyIcon","Sidebar","user","nav","footerAction","itemClass","isActive","group","SettingRow","description","SettingsCard","SettingsGroup","IntegrationRow","connected","onConnect","onDisconnect","ProfileSettingsModal","defaultSection","controlledSection","onSectionChange","sectionTitles","sectionSubtitles","renderSection","firstId","_b","internalSection","setInternalSection","handleSelect","activeItem","g","subtitle","ThemeContext","MODE_KEY","BRAND_KEY","RADIUS_KEY","prefersDark","load","key","fallback","ThemeProvider","defaultMode","defaultBrand","defaultRadius","mode","setModeState","brand","setBrandState","radius","setRadiusState","systemDark","setSystemDark","mq","resolvedMode","el","setMode","setBrand","b","setRadius","r","toggleMode","useMemo","useTheme","tokens"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -38,6 +38,7 @@
38
38
  --flui-color-neutral-750: #2c303c;
39
39
  --flui-color-neutral-800: #22262f;
40
40
  --flui-color-neutral-850: #1a1d25;
41
+ --flui-color-neutral-875: #161920;
41
42
  --flui-color-neutral-900: #13151b;
42
43
  --flui-color-neutral-950: #0e1015;
43
44
  --flui-color-neutral-1000: #050608;
@@ -116,7 +117,7 @@
116
117
  [data-theme="dark"] {
117
118
  --flui-semantic-bg-base: var(--flui-color-neutral-1000);
118
119
  --flui-semantic-bg-subtle: var(--flui-color-neutral-950);
119
- --flui-semantic-bg-muted: var(--flui-color-neutral-800);
120
+ --flui-semantic-bg-muted: var(--flui-color-neutral-875);
120
121
  --flui-semantic-fg-default: var(--flui-color-neutral-50);
121
122
  --flui-semantic-fg-muted: var(--flui-color-neutral-300);
122
123
  --flui-semantic-border-default: var(--flui-color-neutral-850);
@@ -217,6 +218,7 @@
217
218
  --color-neutral-500: var(--flui-color-neutral-500);
218
219
  --color-neutral-800: var(--flui-color-neutral-800);
219
220
  --color-neutral-850: var(--flui-color-neutral-850);
221
+ --color-neutral-875: var(--flui-color-neutral-875);
220
222
  --color-neutral-900: var(--flui-color-neutral-900);
221
223
  --color-neutral-950: var(--flui-color-neutral-950);
222
224
  --color-neutral-1000: var(--flui-color-neutral-1000);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluityy/designsystem",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Flui Design System — componentes React com Tailwind v4 e tokens semânticos",