@fluityy/designsystem 0.2.0 → 0.2.1

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
@@ -285,17 +285,17 @@ const Ce = p(
285
285
  );
286
286
  Ce.displayName = "Radio";
287
287
  const Ne = N(
288
- "w-full appearance-none bg-bg text-fg border transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1 ring-offset-bg disabled:opacity-50 disabled:pointer-events-none rounded-md pr-9",
288
+ "w-full appearance-none bg-bg-muted text-fg border border-transparent transition-colors outline-none focus-visible:border-border-strong disabled:opacity-50 disabled:pointer-events-none rounded-lg pr-9",
289
289
  {
290
290
  variants: {
291
291
  size: {
292
- sm: "h-8 pl-3 text-sm",
293
- md: "h-10 pl-3 text-md",
294
- lg: "h-12 pl-4 text-lg"
292
+ sm: "h-8 pl-3 text-xs",
293
+ md: "h-10 pl-3 text-sm",
294
+ lg: "h-12 pl-4 text-md"
295
295
  },
296
296
  invalid: {
297
- true: "border-danger focus-visible:ring-danger",
298
- false: "border-border-strong"
297
+ true: "border-danger!",
298
+ false: ""
299
299
  }
300
300
  },
301
301
  defaultVariants: { size: "md", invalid: !1 }
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/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 \" +\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 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 },\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 } 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, ...props }, ref) => {\n const inputId = id ?? (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\n const input = (\n <input\n ref={ref}\n id={inputId}\n className={cn(inputVariants({ size, invalid }), className)}\n {...props}\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 text-fg border transition-colors outline-none \" +\n \"focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1 ring-offset-bg \" +\n \"disabled:opacity-50 disabled:pointer-events-none rounded-md pr-9\",\n {\n variants: {\n size: {\n sm: \"h-8 pl-3 text-sm\",\n md: \"h-10 pl-3 text-md\",\n lg: \"h-12 pl-4 text-lg\",\n },\n invalid: {\n true: \"border-danger focus-visible:ring-danger\",\n false: \"border-border-strong\",\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\",\n \"hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none\",\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-full\",\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-2 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-bg-subtle 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 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\",\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\",\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 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 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 ToastOptions {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number; // ms; 0 = não fecha sozinho\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\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 }> = {\n info: { wrapper: \"bg-brand-100 border-l-primary\", title: \"text-fg\", description: \"text-fg-muted\" },\n success: { wrapper: \"bg-success-subtle border-l-success\", title: \"text-success-fg\", description: \"text-success-fg/70\" },\n warning: { wrapper: \"bg-warning/15 border-l-warning\", title: \"text-fg\", description: \"text-fg-muted\" },\n danger: { wrapper: \"bg-danger/10 border-l-danger\", title: \"text-danger\", description: \"text-danger/70\" },\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.filter((t) => t.id !== id));\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-4 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 return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto flex items-start gap-3 rounded-lg border-l-4 p-4 shadow-md\",\n \"animate-[flui-slide-up_160ms_ease-out]\",\n variantStyles[item.variant ?? \"info\"].wrapper,\n )}\n >\n <div className=\"min-w-0 flex-1\">\n <div className={cn(\"text-sm font-semibold\", variantStyles[item.variant ?? \"info\"].title)}>{item.title}</div>\n {item.description && (\n <div className={cn(\"mt-0.5 text-sm\", variantStyles[item.variant ?? \"info\"].description)}>{item.description}</div>\n )}\n </div>\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Fechar\"\n className={cn(\"shrink-0 rounded-sm px-1 transition-colors opacity-60 hover:opacity-100\", variantStyles[item.variant ?? \"info\"].title)}\n >\n ✕\n </button>\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 { 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// ─── 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\">\n <div className=\"px-[200px] pb-5 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>\n\n <div className=\"flex-1 overflow-y-auto px-[200px] pb-8\">\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\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 setMode: (mode: ColorMode) => void;\n setBrand: (brand: Brand) => 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\";\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 /**\n * Onde aplicar os atributos data-theme / data-brand.\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 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 [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 }, [resolvedMode, brand, 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 toggleMode = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ mode, resolvedMode, brand, setMode, setBrand, toggleMode }),\n [mode, resolvedMode, brand, setMode, setBrand, toggleMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme precisa estar dentro de <ThemeProvider>\");\n }\n return ctx;\n}\n","// AUTO-GERADO por Style Dictionary. Não editar à mão.\n// Fonte: tokens/*.json — rode `npm run tokens` para regenerar.\n\nexport interface TokenMeta {\n name: string;\n cssVar: string;\n path: string[];\n group: string;\n value: string;\n isColor: boolean;\n reference: string | null;\n}\n\nexport const tokens: TokenMeta[] = [\n {\n \"name\": \"flui-color-accent-scale-50\",\n \"cssVar\": \"--flui-color-accent-scale-50\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f9ffe0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-100\",\n \"cssVar\": \"--flui-color-accent-scale-100\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-200\",\n \"cssVar\": \"--flui-color-accent-scale-200\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8ff80\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-300\",\n \"cssVar\": \"--flui-color-accent-scale-300\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#dcff45\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-400\",\n \"cssVar\": \"--flui-color-accent-scale-400\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-500\",\n \"cssVar\": \"--flui-color-accent-scale-500\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-600\",\n \"cssVar\": \"--flui-color-accent-scale-600\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-700\",\n \"cssVar\": \"--flui-color-accent-scale-700\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#8ab000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-800\",\n \"cssVar\": \"--flui-color-accent-scale-800\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#638000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-900\",\n \"cssVar\": \"--flui-color-accent-scale-900\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-50\",\n \"cssVar\": \"--flui-color-brand-50\",\n \"path\": [\n \"color\",\n \"brand\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-100\",\n \"cssVar\": \"--flui-color-brand-100\",\n \"path\": [\n \"color\",\n \"brand\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#ccd5ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-200\",\n \"cssVar\": \"--flui-color-brand-200\",\n \"path\": [\n \"color\",\n \"brand\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#99abff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-300\",\n \"cssVar\": \"--flui-color-brand-300\",\n \"path\": [\n \"color\",\n \"brand\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#6680ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-400\",\n \"cssVar\": \"--flui-color-brand-400\",\n \"path\": [\n \"color\",\n \"brand\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#3355ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-500\",\n \"cssVar\": \"--flui-color-brand-500\",\n \"path\": [\n \"color\",\n \"brand\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-600\",\n \"cssVar\": \"--flui-color-brand-600\",\n \"path\": [\n \"color\",\n \"brand\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-700\",\n \"cssVar\": \"--flui-color-brand-700\",\n \"path\": [\n \"color\",\n \"brand\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-800\",\n \"cssVar\": \"--flui-color-brand-800\",\n \"path\": [\n \"color\",\n \"brand\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#001566\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-900\",\n \"cssVar\": \"--flui-color-brand-900\",\n \"path\": [\n \"color\",\n \"brand\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#000b42\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-0\",\n \"cssVar\": \"--flui-color-neutral-0\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"0\"\n ],\n \"group\": \"color\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-50\",\n \"cssVar\": \"--flui-color-neutral-50\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-100\",\n \"cssVar\": \"--flui-color-neutral-100\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-200\",\n \"cssVar\": \"--flui-color-neutral-200\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-300\",\n \"cssVar\": \"--flui-color-neutral-300\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-400\",\n \"cssVar\": \"--flui-color-neutral-400\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#9aa2b4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-500\",\n \"cssVar\": \"--flui-color-neutral-500\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-600\",\n \"cssVar\": \"--flui-color-neutral-600\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#4c5263\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-700\",\n \"cssVar\": \"--flui-color-neutral-700\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#363b49\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-800\",\n \"cssVar\": \"--flui-color-neutral-800\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#22262f\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-900\",\n \"cssVar\": \"--flui-color-neutral-900\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-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","inputId","input","jsxs","Card","CardHeader","CardTitle","CardDescription","CardContent","trackVariants","thumbVariants","Switch","checked","defaultChecked","onCheckedChange","disabled","isControlled","internal","setInternal","useState","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","v","useControllableState","setValue","useCallback","TabsContext","useTabs","Tabs","TabsList","listRef","indicator","setIndicator","list","active","TabsTrigger","TabsContent","AccordionContext","ItemContext","useAccordion","Accordion","type","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","useToast","textareaVariants","Textarea","Sidebar","user","nav","footerAction","itemClass","isActive","group","ProfileSettingsModal","defaultSection","controlledSection","onSectionChange","sectionTitles","sectionSubtitles","renderSection","firstId","_b","internalSection","setInternalSection","handleSelect","activeItem","g","subtitle","ThemeContext","MODE_KEY","BRAND_KEY","prefersDark","load","key","fallback","ThemeProvider","defaultMode","defaultBrand","mode","setModeState","brand","setBrandState","systemDark","setSystemDark","mq","resolvedMode","el","setMode","m","setBrand","b","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/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 \" +\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 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 },\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 } 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, ...props }, ref) => {\n const inputId = id ?? (label ? label.toLowerCase().replace(/\\s+/g, \"-\") : undefined);\n const input = (\n <input\n ref={ref}\n id={inputId}\n className={cn(inputVariants({ size, invalid }), className)}\n {...props}\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\",\n \"hover:bg-bg-muted focus-visible:bg-bg-muted disabled:opacity-50 disabled:pointer-events-none\",\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-full\",\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-2 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-bg-subtle 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 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\",\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\",\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 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 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 ToastOptions {\n title: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number; // ms; 0 = não fecha sozinho\n}\n\ninterface ToastItem extends ToastOptions {\n id: number;\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 }> = {\n info: { wrapper: \"bg-brand-100 border-l-primary\", title: \"text-fg\", description: \"text-fg-muted\" },\n success: { wrapper: \"bg-success-subtle border-l-success\", title: \"text-success-fg\", description: \"text-success-fg/70\" },\n warning: { wrapper: \"bg-warning/15 border-l-warning\", title: \"text-fg\", description: \"text-fg-muted\" },\n danger: { wrapper: \"bg-danger/10 border-l-danger\", title: \"text-danger\", description: \"text-danger/70\" },\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.filter((t) => t.id !== id));\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-4 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 return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto flex items-start gap-3 rounded-lg border-l-4 p-4 shadow-md\",\n \"animate-[flui-slide-up_160ms_ease-out]\",\n variantStyles[item.variant ?? \"info\"].wrapper,\n )}\n >\n <div className=\"min-w-0 flex-1\">\n <div className={cn(\"text-sm font-semibold\", variantStyles[item.variant ?? \"info\"].title)}>{item.title}</div>\n {item.description && (\n <div className={cn(\"mt-0.5 text-sm\", variantStyles[item.variant ?? \"info\"].description)}>{item.description}</div>\n )}\n </div>\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Fechar\"\n className={cn(\"shrink-0 rounded-sm px-1 transition-colors opacity-60 hover:opacity-100\", variantStyles[item.variant ?? \"info\"].title)}\n >\n ✕\n </button>\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 { 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// ─── 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\">\n <div className=\"px-[200px] pb-5 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>\n\n <div className=\"flex-1 overflow-y-auto px-[200px] pb-8\">\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\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 setMode: (mode: ColorMode) => void;\n setBrand: (brand: Brand) => 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\";\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 /**\n * Onde aplicar os atributos data-theme / data-brand.\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 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 [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 }, [resolvedMode, brand, 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 toggleMode = useCallback(() => {\n setMode(resolvedMode === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedMode, setMode]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ mode, resolvedMode, brand, setMode, setBrand, toggleMode }),\n [mode, resolvedMode, brand, setMode, setBrand, toggleMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme precisa estar dentro de <ThemeProvider>\");\n }\n return ctx;\n}\n","// AUTO-GERADO por Style Dictionary. Não editar à mão.\n// Fonte: tokens/*.json — rode `npm run tokens` para regenerar.\n\nexport interface TokenMeta {\n name: string;\n cssVar: string;\n path: string[];\n group: string;\n value: string;\n isColor: boolean;\n reference: string | null;\n}\n\nexport const tokens: TokenMeta[] = [\n {\n \"name\": \"flui-color-accent-scale-50\",\n \"cssVar\": \"--flui-color-accent-scale-50\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f9ffe0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-100\",\n \"cssVar\": \"--flui-color-accent-scale-100\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3ffb8\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-200\",\n \"cssVar\": \"--flui-color-accent-scale-200\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8ff80\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-300\",\n \"cssVar\": \"--flui-color-accent-scale-300\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#dcff45\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-400\",\n \"cssVar\": \"--flui-color-accent-scale-400\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#d7ff15\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-500\",\n \"cssVar\": \"--flui-color-accent-scale-500\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#c4eb00\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-600\",\n \"cssVar\": \"--flui-color-accent-scale-600\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#afd100\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-700\",\n \"cssVar\": \"--flui-color-accent-scale-700\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#8ab000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-800\",\n \"cssVar\": \"--flui-color-accent-scale-800\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#638000\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-accent-scale-900\",\n \"cssVar\": \"--flui-color-accent-scale-900\",\n \"path\": [\n \"color\",\n \"accent-scale\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#1a2200\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-50\",\n \"cssVar\": \"--flui-color-brand-50\",\n \"path\": [\n \"color\",\n \"brand\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#e8eeff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-100\",\n \"cssVar\": \"--flui-color-brand-100\",\n \"path\": [\n \"color\",\n \"brand\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#ccd5ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-200\",\n \"cssVar\": \"--flui-color-brand-200\",\n \"path\": [\n \"color\",\n \"brand\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#99abff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-300\",\n \"cssVar\": \"--flui-color-brand-300\",\n \"path\": [\n \"color\",\n \"brand\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#6680ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-400\",\n \"cssVar\": \"--flui-color-brand-400\",\n \"path\": [\n \"color\",\n \"brand\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#3355ff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-500\",\n \"cssVar\": \"--flui-color-brand-500\",\n \"path\": [\n \"color\",\n \"brand\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#0033d6\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-600\",\n \"cssVar\": \"--flui-color-brand-600\",\n \"path\": [\n \"color\",\n \"brand\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#0029b0\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-700\",\n \"cssVar\": \"--flui-color-brand-700\",\n \"path\": [\n \"color\",\n \"brand\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#001f8a\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-800\",\n \"cssVar\": \"--flui-color-brand-800\",\n \"path\": [\n \"color\",\n \"brand\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#001566\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-brand-900\",\n \"cssVar\": \"--flui-color-brand-900\",\n \"path\": [\n \"color\",\n \"brand\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#000b42\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-0\",\n \"cssVar\": \"--flui-color-neutral-0\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"0\"\n ],\n \"group\": \"color\",\n \"value\": \"#ffffff\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-50\",\n \"cssVar\": \"--flui-color-neutral-50\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"50\"\n ],\n \"group\": \"color\",\n \"value\": \"#f7f8fa\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-100\",\n \"cssVar\": \"--flui-color-neutral-100\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"100\"\n ],\n \"group\": \"color\",\n \"value\": \"#f3f4f7\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-200\",\n \"cssVar\": \"--flui-color-neutral-200\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"200\"\n ],\n \"group\": \"color\",\n \"value\": \"#dde1e9\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-300\",\n \"cssVar\": \"--flui-color-neutral-300\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"300\"\n ],\n \"group\": \"color\",\n \"value\": \"#c2c8d4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-400\",\n \"cssVar\": \"--flui-color-neutral-400\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"400\"\n ],\n \"group\": \"color\",\n \"value\": \"#9aa2b4\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-500\",\n \"cssVar\": \"--flui-color-neutral-500\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"500\"\n ],\n \"group\": \"color\",\n \"value\": \"#6b7385\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-600\",\n \"cssVar\": \"--flui-color-neutral-600\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"600\"\n ],\n \"group\": \"color\",\n \"value\": \"#4c5263\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-700\",\n \"cssVar\": \"--flui-color-neutral-700\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"700\"\n ],\n \"group\": \"color\",\n \"value\": \"#363b49\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-800\",\n \"cssVar\": \"--flui-color-neutral-800\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"800\"\n ],\n \"group\": \"color\",\n \"value\": \"#22262f\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-neutral-900\",\n \"cssVar\": \"--flui-color-neutral-900\",\n \"path\": [\n \"color\",\n \"neutral\",\n \"900\"\n ],\n \"group\": \"color\",\n \"value\": \"#13151b\",\n \"isColor\": true,\n \"reference\": null\n },\n {\n \"name\": \"flui-color-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","inputId","input","jsxs","Card","CardHeader","CardTitle","CardDescription","CardContent","trackVariants","thumbVariants","Switch","checked","defaultChecked","onCheckedChange","disabled","isControlled","internal","setInternal","useState","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","v","useControllableState","setValue","useCallback","TabsContext","useTabs","Tabs","TabsList","listRef","indicator","setIndicator","list","active","TabsTrigger","TabsContent","AccordionContext","ItemContext","useAccordion","Accordion","type","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","useToast","textareaVariants","Textarea","Sidebar","user","nav","footerAction","itemClass","isActive","group","ProfileSettingsModal","defaultSection","controlledSection","onSectionChange","sectionTitles","sectionSubtitles","renderSection","firstId","_b","internalSection","setInternalSection","handleSelect","activeItem","g","subtitle","ThemeContext","MODE_KEY","BRAND_KEY","prefersDark","load","key","fallback","ThemeProvider","defaultMode","defaultBrand","mode","setModeState","brand","setBrandState","systemDark","setSystemDark","mq","resolvedMode","el","setMode","m","setBrand","b","toggleMode","useMemo","useTheme","tokens"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluityy/designsystem",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Flui Design System — componentes React com Tailwind v4 e tokens semânticos",