@snksergio/design-system 0.39.1 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/chunks/{tooltip-DVxIC67b.mjs → tooltip-mMF4YHZg.mjs} +145 -34
- package/dist-lib/chunks/tooltip-mMF4YHZg.mjs.map +1 -0
- package/dist-lib/chunks/{tooltip-C3iqVX-X.cjs → tooltip-pvZ_X-Ub.cjs} +144 -33
- package/dist-lib/chunks/tooltip-pvZ_X-Ub.cjs.map +1 -0
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/index.mjs +2 -2
- package/dist-lib/shadcn.cjs +2 -1
- package/dist-lib/shadcn.cjs.map +1 -1
- package/dist-lib/shadcn.mjs +3 -2
- package/dist-lib/src/components/shadcn/input-otp.d.ts +83 -33
- package/dist-lib/src/components/shadcn/input-otp.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist-lib/chunks/tooltip-C3iqVX-X.cjs.map +0 -1
- package/dist-lib/chunks/tooltip-DVxIC67b.mjs.map +0 -1
|
@@ -759,43 +759,153 @@ const HoverCardContent = React.forwardRef(({ className, align = "center", sideOf
|
|
|
759
759
|
}
|
|
760
760
|
));
|
|
761
761
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
762
|
-
const
|
|
763
|
-
|
|
762
|
+
const DEFAULTS = {
|
|
763
|
+
variant: "connected",
|
|
764
|
+
size: "md",
|
|
765
|
+
state: "default"
|
|
766
|
+
};
|
|
767
|
+
const InputOTPStyleContext = React.createContext(DEFAULTS);
|
|
768
|
+
const slotVariants = cva(
|
|
769
|
+
[
|
|
770
|
+
"relative flex items-center justify-center",
|
|
771
|
+
// Mesma superfície do input.tsx — ver o cabeçalho.
|
|
772
|
+
"bg-bg-input dark:bg-bg-muted",
|
|
773
|
+
"text-fg-default tabular-nums",
|
|
774
|
+
"transition-[border-color,box-shadow,background-color] outline-none"
|
|
775
|
+
],
|
|
764
776
|
{
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
777
|
+
variants: {
|
|
778
|
+
// Quadrado: a altura vem do MESMO token do Input, e a largura acompanha
|
|
779
|
+
// pra o slot não virar retângulo. `size-form-*` = height e width juntos.
|
|
780
|
+
size: {
|
|
781
|
+
xxs: "size-form-xs text-body-sm",
|
|
782
|
+
xs: "size-form-sm text-body-sm",
|
|
783
|
+
sm: "size-form-md text-body-md",
|
|
784
|
+
md: "size-form-lg text-body-md"
|
|
785
|
+
},
|
|
786
|
+
variant: {
|
|
787
|
+
// Colados: cada slot desenha 3 lados; o 1º devolve a borda esquerda, e
|
|
788
|
+
// as pontas recebem radius. Sem isso a fileira mostra borda dupla entre
|
|
789
|
+
// slots vizinhos.
|
|
790
|
+
connected: "border-y border-r first:border-l",
|
|
791
|
+
outlined: "border",
|
|
792
|
+
filled: "border border-transparent",
|
|
793
|
+
// Sem fundo: a linha de baixo É o campo. `rounded-none` explícito
|
|
794
|
+
// porque o radius das pontas do `connected` viria do grupo.
|
|
795
|
+
underline: "border-0 border-b-2 rounded-none bg-transparent dark:bg-transparent"
|
|
796
|
+
},
|
|
797
|
+
// Cor de borda e anel de foco — os MESMOS pares do Input.
|
|
798
|
+
state: {
|
|
799
|
+
default: "border-border-input",
|
|
800
|
+
error: "border-border-danger-muted",
|
|
801
|
+
warning: "border-border-warning-muted",
|
|
802
|
+
success: "border-border-success-muted"
|
|
803
|
+
},
|
|
804
|
+
/** Slot que o cursor está ocupando. O Radix não dá `:focus` aqui: o input
|
|
805
|
+
* real é único e invisível, então o "foco" é estado do contexto do
|
|
806
|
+
* `input-otp`, não do DOM. Daí ser variante e não `focus-visible:`. */
|
|
807
|
+
active: { true: "z-10", false: "" }
|
|
808
|
+
},
|
|
809
|
+
compoundVariants: [
|
|
810
|
+
// Foco = borda verde + anel, igual ao `focus-visible` do Input. Em erro/
|
|
811
|
+
// aviso/sucesso a borda semântica MANDA (o usuário precisa continuar
|
|
812
|
+
// vendo que o campo está inválido enquanto digita), e só o anel muda.
|
|
813
|
+
{ active: true, state: "default", class: "border-border-brand shadow-sh-ring" },
|
|
814
|
+
{ active: true, state: "error", class: "shadow-sh-ring-danger" },
|
|
815
|
+
{ active: true, state: "warning", class: "shadow-sh-ring-warning" },
|
|
816
|
+
{ active: true, state: "success", class: "shadow-sh-ring-success" },
|
|
817
|
+
// Hover só onde há superfície pra reagir.
|
|
818
|
+
{ variant: "connected", class: "hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover" },
|
|
819
|
+
{ variant: "outlined", class: "hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover" },
|
|
820
|
+
{ variant: "filled", class: "bg-bg-muted dark:bg-bg-muted hover:bg-bg-muted-hover" }
|
|
821
|
+
],
|
|
822
|
+
defaultVariants: { size: "md", variant: "connected", state: "default", active: false }
|
|
772
823
|
}
|
|
773
|
-
)
|
|
824
|
+
);
|
|
825
|
+
const groupVariants = cva("flex items-center", {
|
|
826
|
+
variants: {
|
|
827
|
+
variant: {
|
|
828
|
+
// Colados: zero gap, e o radius das pontas é do GRUPO (o slot não sabe se
|
|
829
|
+
// é primeiro/último de um grupo quando há mais de um grupo na tela).
|
|
830
|
+
connected: "gap-0 [&>*:first-child]:rounded-l-radius-lg [&>*:last-child]:rounded-r-radius-lg",
|
|
831
|
+
outlined: "gap-gp-md [&>*]:rounded-radius-lg",
|
|
832
|
+
filled: "gap-gp-md [&>*]:rounded-radius-lg",
|
|
833
|
+
underline: "gap-gp-md"
|
|
834
|
+
},
|
|
835
|
+
// Radius acompanha o size, como no Input: os dois menores usam radius-md.
|
|
836
|
+
size: { xxs: "", xs: "", sm: "", md: "" }
|
|
837
|
+
},
|
|
838
|
+
compoundVariants: [
|
|
839
|
+
{ variant: "connected", size: "xxs", class: "[&>*:first-child]:rounded-l-radius-md [&>*:last-child]:rounded-r-radius-md" },
|
|
840
|
+
{ variant: "connected", size: "xs", class: "[&>*:first-child]:rounded-l-radius-md [&>*:last-child]:rounded-r-radius-md" },
|
|
841
|
+
{ variant: "outlined", size: "xxs", class: "[&>*]:rounded-radius-md" },
|
|
842
|
+
{ variant: "outlined", size: "xs", class: "[&>*]:rounded-radius-md" },
|
|
843
|
+
{ variant: "filled", size: "xxs", class: "[&>*]:rounded-radius-md" },
|
|
844
|
+
{ variant: "filled", size: "xs", class: "[&>*]:rounded-radius-md" }
|
|
845
|
+
],
|
|
846
|
+
defaultVariants: { variant: "connected", size: "md" }
|
|
847
|
+
});
|
|
848
|
+
const InputOTP = React.forwardRef(
|
|
849
|
+
({ className, containerClassName, variant, size, state, ...props }, ref) => {
|
|
850
|
+
const ctx = React.useMemo(
|
|
851
|
+
() => ({
|
|
852
|
+
variant: variant ?? DEFAULTS.variant,
|
|
853
|
+
size: size ?? DEFAULTS.size,
|
|
854
|
+
state: state ?? DEFAULTS.state
|
|
855
|
+
}),
|
|
856
|
+
[variant, size, state]
|
|
857
|
+
);
|
|
858
|
+
return /* @__PURE__ */ jsx(InputOTPStyleContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
859
|
+
OTPInput,
|
|
860
|
+
{
|
|
861
|
+
ref,
|
|
862
|
+
containerClassName: cn(
|
|
863
|
+
"flex items-center gap-gp-md has-[:disabled]:opacity-50",
|
|
864
|
+
containerClassName
|
|
865
|
+
),
|
|
866
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
867
|
+
...props
|
|
868
|
+
}
|
|
869
|
+
) });
|
|
870
|
+
}
|
|
871
|
+
);
|
|
774
872
|
InputOTP.displayName = "InputOTP";
|
|
775
|
-
const InputOTPGroup = React.forwardRef(({ className, ...props }, ref) =>
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
const inputOTPContext = React.useContext(OTPInputContext);
|
|
779
|
-
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
780
|
-
return /* @__PURE__ */ jsxs(
|
|
781
|
-
"div",
|
|
782
|
-
{
|
|
783
|
-
ref,
|
|
784
|
-
className: cn(
|
|
785
|
-
"relative flex size-form-lg items-center justify-center border-y border-r border-border-default text-body-md text-fg-default transition-all first:rounded-l-radius-md first:border-l last:rounded-r-radius-md",
|
|
786
|
-
isActive && "z-10 ring-4 ring-ring-brand",
|
|
787
|
-
className
|
|
788
|
-
),
|
|
789
|
-
...props,
|
|
790
|
-
children: [
|
|
791
|
-
char,
|
|
792
|
-
hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-fg-default duration-1000" }) })
|
|
793
|
-
]
|
|
794
|
-
}
|
|
795
|
-
);
|
|
873
|
+
const InputOTPGroup = React.forwardRef(({ className, ...props }, ref) => {
|
|
874
|
+
const { variant, size } = React.useContext(InputOTPStyleContext);
|
|
875
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn(groupVariants({ variant, size }), className), ...props });
|
|
796
876
|
});
|
|
877
|
+
InputOTPGroup.displayName = "InputOTPGroup";
|
|
878
|
+
const InputOTPSlot = React.forwardRef(
|
|
879
|
+
({ index, className, variant, size, state, ...props }, ref) => {
|
|
880
|
+
const ctx = React.useContext(InputOTPStyleContext);
|
|
881
|
+
const otp = React.useContext(OTPInputContext);
|
|
882
|
+
const { char, hasFakeCaret, isActive } = otp.slots[index];
|
|
883
|
+
return /* @__PURE__ */ jsxs(
|
|
884
|
+
"div",
|
|
885
|
+
{
|
|
886
|
+
ref,
|
|
887
|
+
"data-slot": "input-otp-slot",
|
|
888
|
+
"data-active": isActive ? "true" : void 0,
|
|
889
|
+
className: cn(
|
|
890
|
+
slotVariants({
|
|
891
|
+
variant: variant ?? ctx.variant,
|
|
892
|
+
size: size ?? ctx.size,
|
|
893
|
+
state: state ?? ctx.state,
|
|
894
|
+
active: isActive
|
|
895
|
+
}),
|
|
896
|
+
className
|
|
897
|
+
),
|
|
898
|
+
...props,
|
|
899
|
+
children: [
|
|
900
|
+
char,
|
|
901
|
+
hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-fg-default duration-1000" }) })
|
|
902
|
+
]
|
|
903
|
+
}
|
|
904
|
+
);
|
|
905
|
+
}
|
|
906
|
+
);
|
|
797
907
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
798
|
-
const InputOTPSeparator = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", className: "text-fg-muted", ...props, children: /* @__PURE__ */ jsx(Dot, {}) }));
|
|
908
|
+
const InputOTPSeparator = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", className: cn("text-fg-muted", className), ...props, children: children ?? /* @__PURE__ */ jsx(Dot, {}) }));
|
|
799
909
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
800
910
|
const labelVariants = cva(
|
|
801
911
|
"text-body-sm font-semibold tracking-[0.01em] text-fg-default dark:text-fg-muted leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
@@ -1396,7 +1506,8 @@ export {
|
|
|
1396
1506
|
TooltipTrigger as aN,
|
|
1397
1507
|
badgeVariants as aO,
|
|
1398
1508
|
navigationMenuTriggerStyle as aP,
|
|
1399
|
-
|
|
1509
|
+
slotVariants as aQ,
|
|
1510
|
+
toggleVariants as aR,
|
|
1400
1511
|
MenubarContent as aa,
|
|
1401
1512
|
MenubarGroup as ab,
|
|
1402
1513
|
MenubarItem as ac,
|
|
@@ -1449,4 +1560,4 @@ export {
|
|
|
1449
1560
|
CollapsibleContent as y,
|
|
1450
1561
|
CollapsibleTrigger as z
|
|
1451
1562
|
};
|
|
1452
|
-
//# sourceMappingURL=tooltip-
|
|
1563
|
+
//# sourceMappingURL=tooltip-mMF4YHZg.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-mMF4YHZg.mjs","sources":["../../src/components/shadcn/separator.tsx","../../src/components/shadcn/accordion.tsx","../../src/components/shadcn/alert.tsx","../../src/components/shadcn/badge.tsx","../../src/components/shadcn/breadcrumb.tsx","../../src/components/shadcn/card.tsx","../../src/components/shadcn/carousel.tsx","../../src/components/shadcn/collapsible.tsx","../../src/components/shadcn/context-menu.tsx","../../src/components/shadcn/drawer.tsx","../../src/components/shadcn/hover-card.tsx","../../src/components/shadcn/input-otp.tsx","../../src/components/shadcn/label.tsx","../../src/components/shadcn/menubar.tsx","../../src/components/shadcn/navigation-menu.tsx","../../src/components/shadcn/progress.tsx","../../src/components/shadcn/radio-group.tsx","../../src/components/shadcn/scroll-area.tsx","../../src/components/shadcn/slider.tsx","../../src/components/shadcn/tabs.tsx","../../src/components/shadcn/toggle.tsx","../../src/components/shadcn/toggle-group.tsx","../../src/components/shadcn/tooltip.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(\r\n (\r\n { className, orientation = \"horizontal\", decorative = true, ...props },\r\n ref\r\n ) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n \"shrink-0 bg-border-default\",\r\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n)\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName\r\n\r\nexport { Separator }\r\n","import * as React from \"react\"\r\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\r\nimport { ChevronDown } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Accordion = AccordionPrimitive.Root\r\n\r\nconst AccordionItem = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\r\n>(({ className, ...props }, ref) => (\r\n <AccordionPrimitive.Item\r\n ref={ref}\r\n className={cn(\"border-b border-border-subtle\", className)}\r\n {...props}\r\n />\r\n))\r\nAccordionItem.displayName = \"AccordionItem\"\r\n\r\nconst AccordionTrigger = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Header className=\"flex\">\r\n <AccordionPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"flex flex-1 items-center justify-between py-pad-2xl text-body-md font-medium text-fg-default transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronDown className=\"h-4 w-4 shrink-0 text-fg-muted transition-transform duration-200\" />\r\n </AccordionPrimitive.Trigger>\r\n </AccordionPrimitive.Header>\r\n))\r\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\r\n\r\nconst AccordionContent = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Content\r\n ref={ref}\r\n className=\"overflow-hidden text-body-md text-fg-muted transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\r\n {...props}\r\n >\r\n <div className={cn(\"pb-pad-2xl pt-0\", className)}>{children}</div>\r\n </AccordionPrimitive.Content>\r\n))\r\n\r\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\r\n\r\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\r\n","import * as React from \"react\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst alertVariants = cva(\r\n \"relative w-full rounded-radius-2xl border px-pad-2xl py-pad-xl text-body-md [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-fg-default\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-bg-surface text-fg-default border-border-subtle\",\r\n destructive:\r\n \"border-border-danger-muted/50 text-fg-danger [&>svg]:text-fg-danger\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n)\r\n\r\nconst Alert = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\r\n>(({ className, variant, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n role=\"alert\"\r\n className={cn(alertVariants({ variant }), className)}\r\n {...props}\r\n />\r\n))\r\nAlert.displayName = \"Alert\"\r\n\r\nconst AlertTitle = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLHeadingElement>\r\n>(({ className, ...props }, ref) => (\r\n <h5\r\n ref={ref}\r\n className={cn(\"text-body-md font-medium text-fg-default mb-sp-xs leading-none tracking-tight\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertTitle.displayName = \"AlertTitle\"\r\n\r\nconst AlertDescription = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLParagraphElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"text-body-md text-fg-muted [&_p]:leading-relaxed\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertDescription.displayName = \"AlertDescription\"\r\n\r\nexport { Alert, AlertTitle, AlertDescription }\r\n","import * as React from \"react\";\r\nimport { tv, type VariantProps } from \"@/utils/tv\";\r\n\r\n/**\r\n * Badge — pill/tag visual indicator alinhado com sandbox.\r\n *\r\n * Patterns suportados:\r\n * - Counter (.tbl-page-count): default shape (radius-sm 6px), soft primary\r\n * - Status chip (.chip): shape=\"pill\" (radius-full), soft + colored\r\n * - Inline tag: default shape, qualquer cor\r\n *\r\n * API:\r\n * color: primary | secondary | critical | success | warning | info\r\n * variant: solid | soft | outline | ghost\r\n * size: sm (20px) | md (24px, default) | lg (28px)\r\n * shape: default (radius 6px) | pill (radius full)\r\n */\r\nconst badgeVariants = tv({\r\n base: [\r\n \"inline-flex items-center justify-center\",\r\n \"border border-transparent\",\r\n \"font-semibold leading-none whitespace-nowrap\",\r\n \"transition-colors\",\r\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary\",\r\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\r\n ],\r\n\r\n variants: {\r\n color: {\r\n primary: \"\",\r\n secondary: \"\",\r\n critical: \"\",\r\n success: \"\",\r\n warning: \"\",\r\n info: \"\",\r\n },\r\n\r\n variant: {\r\n solid: \"\",\r\n soft: \"\",\r\n outline: \"bg-transparent\",\r\n ghost: \"bg-transparent border-transparent\",\r\n },\r\n\r\n size: {\r\n sm: \"h-comp-2xs px-pad-sm text-caption-xs gap-gp-2xs [&_svg]:size-3\", // 20px / 6 / 10\r\n md: \"h-comp-xs px-pad-md text-body-xs gap-gp-xs [&_svg]:size-3.5\", // 24px / 8 / 12 (default)\r\n lg: \"h-comp-sm px-pad-lg text-body-sm font-normal gap-gp-sm [&_svg]:size-4\", // 28px / 10 / 13\r\n },\r\n\r\n shape: {\r\n default: \"rounded-radius-sm\", // 6px — counter, value tags\r\n pill: \"rounded-radius-full\", // pill — status chips\r\n },\r\n },\r\n\r\n compoundVariants: [\r\n /* ── Primary (brand) ─────────────────────────────────────────────── */\r\n { color: \"primary\", variant: \"solid\", class: \"bg-bg-brand text-fg-on-brand\" },\r\n { color: \"primary\", variant: \"soft\", class: \"bg-bg-brand-subtle text-fg-brand\" },\r\n { color: \"primary\", variant: \"outline\", class: \"border-border-brand text-fg-brand\" },\r\n { color: \"primary\", variant: \"ghost\", class: \"text-fg-brand\" },\r\n\r\n /* ── Secondary (neutral) ─────────────────────────────────────────── */\r\n { color: \"secondary\", variant: \"solid\", class: \"bg-bg-emphasis text-fg-default\" },\r\n { color: \"secondary\", variant: \"soft\", class: \"bg-bg-muted text-fg-muted\" },\r\n { color: \"secondary\", variant: \"outline\", class: \"border-border-default text-fg-default\" },\r\n { color: \"secondary\", variant: \"ghost\", class: \"text-fg-muted\" },\r\n\r\n /* ── Critical (danger) ───────────────────────────────────────────── */\r\n { color: \"critical\", variant: \"solid\", class: \"bg-bg-danger text-fg-on-danger\" },\r\n { color: \"critical\", variant: \"soft\", class: \"bg-bg-danger-muted text-fg-danger\" },\r\n { color: \"critical\", variant: \"outline\", class: \"border-border-danger-muted text-fg-danger\" },\r\n { color: \"critical\", variant: \"ghost\", class: \"text-fg-danger\" },\r\n\r\n /* ── Success ─────────────────────────────────────────────────────── */\r\n { color: \"success\", variant: \"solid\", class: \"bg-bg-success text-fg-on-success\" },\r\n { color: \"success\", variant: \"soft\", class: \"bg-bg-success-muted text-fg-success\" },\r\n { color: \"success\", variant: \"outline\", class: \"border-border-success-muted text-fg-success\" },\r\n { color: \"success\", variant: \"ghost\", class: \"text-fg-success\" },\r\n\r\n /* ── Warning ─────────────────────────────────────────────────────── */\r\n { color: \"warning\", variant: \"solid\", class: \"bg-bg-warning text-fg-on-warning\" },\r\n { color: \"warning\", variant: \"soft\", class: \"bg-bg-warning-muted text-fg-warning\" },\r\n { color: \"warning\", variant: \"outline\", class: \"border-border-warning-muted text-fg-warning\" },\r\n { color: \"warning\", variant: \"ghost\", class: \"text-fg-warning\" },\r\n\r\n /* ── Info ────────────────────────────────────────────────────────── */\r\n { color: \"info\", variant: \"solid\", class: \"bg-bg-info text-fg-on-info\" },\r\n { color: \"info\", variant: \"soft\", class: \"bg-bg-info-muted text-fg-info\" },\r\n { color: \"info\", variant: \"outline\", class: \"border-border-info-muted text-fg-info\" },\r\n { color: \"info\", variant: \"ghost\", class: \"text-fg-info\" },\r\n ],\r\n\r\n defaultVariants: {\r\n color: \"secondary\",\r\n variant: \"soft\",\r\n size: \"md\",\r\n shape: \"default\",\r\n },\r\n});\r\n\r\nexport type BadgeVariantProps = VariantProps<typeof badgeVariants>;\r\n\r\nexport interface BadgeProps\r\n extends Omit<React.HTMLAttributes<HTMLSpanElement>, \"color\">,\r\n BadgeVariantProps {\r\n asChild?: boolean;\r\n}\r\n\r\nfunction Badge({ className, color, variant, size, shape, ...props }: BadgeProps) {\r\n return (\r\n <span\r\n className={badgeVariants({ color, variant, size, shape, className })}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Breadcrumb = React.forwardRef<\r\n HTMLElement,\r\n React.ComponentPropsWithoutRef<\"nav\"> & {\r\n separator?: React.ReactNode\r\n }\r\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\r\nBreadcrumb.displayName = \"Breadcrumb\"\r\n\r\nconst BreadcrumbList = React.forwardRef<\r\n HTMLOListElement,\r\n React.ComponentPropsWithoutRef<\"ol\">\r\n>(({ className, ...props }, ref) => (\r\n <ol\r\n ref={ref}\r\n className={cn(\r\n \"flex flex-wrap items-center gap-gp-sm break-words text-body-md text-fg-muted sm:gap-gp-lg\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbList.displayName = \"BreadcrumbList\"\r\n\r\nconst BreadcrumbItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentPropsWithoutRef<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li\r\n ref={ref}\r\n className={cn(\"inline-flex items-center gap-gp-sm\", className)}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\r\n\r\nconst BreadcrumbLink = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentPropsWithoutRef<\"a\"> & {\r\n asChild?: boolean\r\n }\r\n>(({ asChild, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n className={cn(\"transition-colors hover:text-fg-default\", className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\r\n\r\nconst BreadcrumbPage = React.forwardRef<\r\n HTMLSpanElement,\r\n React.ComponentPropsWithoutRef<\"span\">\r\n>(({ className, ...props }, ref) => (\r\n <span\r\n ref={ref}\r\n role=\"link\"\r\n aria-disabled=\"true\"\r\n aria-current=\"page\"\r\n className={cn(\"font-normal text-fg-default\", className)}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\r\n\r\nconst BreadcrumbSeparator = ({\r\n children,\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"li\">) => (\r\n <li\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5 text-fg-subtle\", className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRight />}\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\r\n\r\nconst BreadcrumbEllipsis = ({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"span\">) => (\r\n <span\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn(\"flex h-9 w-9 items-center justify-center text-fg-subtle\", className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n)\r\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\"\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis,\r\n}\r\n","import * as React from \"react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Card = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex flex-col gap-gp-4xl rounded-radius-base bg-bg-surface py-pad-4xl text-body-md text-fg-default shadow-sh-lg ring-1 ring-fg-default/5 dark:ring-fg-default/10\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nCard.displayName = \"Card\"\r\n\r\nconst CardHeader = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"grid auto-rows-min items-start gap-gp-sm px-pad-4xl\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nCardHeader.displayName = \"CardHeader\"\r\n\r\nconst CardTitle = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"text-title-md font-medium text-fg-default\", className)}\r\n {...props}\r\n />\r\n))\r\nCardTitle.displayName = \"CardTitle\"\r\n\r\nconst CardDescription = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"text-body-md text-fg-muted\", className)}\r\n {...props}\r\n />\r\n))\r\nCardDescription.displayName = \"CardDescription\"\r\n\r\nconst CardContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(\"px-pad-4xl\", className)} {...props} />\r\n))\r\nCardContent.displayName = \"CardContent\"\r\n\r\nconst CardFooter = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"flex items-center px-pad-4xl\", className)}\r\n {...props}\r\n />\r\n))\r\nCardFooter.displayName = \"CardFooter\"\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\r\n","import * as React from \"react\"\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from \"embla-carousel-react\"\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/Button\"\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: \"horizontal\" | \"vertical\"\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\")\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(\r\n (\r\n {\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) {\r\n return\r\n }\r\n\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n onSelect(api)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn(\"relative\", className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = \"Carousel\"\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex\",\r\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = \"CarouselContent\"\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n \"min-w-0 shrink-0 grow-0 basis-full\",\r\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = \"CarouselItem\"\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n color=\"secondary\"\r\n variant=\"outline\"\r\n size=\"icon-xs\"\r\n className={cn(\r\n \"absolute rounded-radius-full\",\r\n orientation === \"horizontal\"\r\n ? \"-left-12 top-1/2 -translate-y-1/2\"\r\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = \"CarouselPrevious\"\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n color=\"secondary\"\r\n variant=\"outline\"\r\n size=\"icon-xs\"\r\n className={cn(\r\n \"absolute rounded-radius-full\",\r\n orientation === \"horizontal\"\r\n ? \"-right-12 top-1/2 -translate-y-1/2\"\r\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = \"CarouselNext\"\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n}\r\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\r\n\r\nconst Collapsible = CollapsiblePrimitive.Root\r\n\r\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\r\n\r\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","import * as React from \"react\"\r\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst ContextMenu = ContextMenuPrimitive.Root\r\n\r\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\r\n\r\nconst ContextMenuGroup = ContextMenuPrimitive.Group\r\n\r\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\r\n\r\nconst ContextMenuSub = ContextMenuPrimitive.Sub\r\n\r\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\r\n\r\nconst ContextMenuSubTrigger = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, children, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubTrigger\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRight className=\"ml-auto h-4 w-4\" />\r\n </ContextMenuPrimitive.SubTrigger>\r\n))\r\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\r\n\r\nconst ContextMenuSubContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubContent\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-[8rem] overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\r\n\r\nconst ContextMenuContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Portal>\r\n <ContextMenuPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </ContextMenuPrimitive.Portal>\r\n))\r\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\r\n\r\nconst ContextMenuItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\r\n\r\nconst ContextMenuCheckboxItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n <ContextMenuPrimitive.CheckboxItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Check className=\"h-4 w-4\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.CheckboxItem>\r\n))\r\nContextMenuCheckboxItem.displayName =\r\n ContextMenuPrimitive.CheckboxItem.displayName\r\n\r\nconst ContextMenuRadioItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n <ContextMenuPrimitive.RadioItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Circle className=\"h-2 w-2 fill-current\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.RadioItem>\r\n))\r\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\r\n\r\nconst ContextMenuLabel = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Label\r\n ref={ref}\r\n className={cn(\r\n \"px-pad-lg py-pad-sm text-caption-sm font-semibold uppercase tracking-wider text-fg-subtle\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\r\n\r\nconst ContextMenuSeparator = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"mx-pad-xs my-pad-xs h-px bg-border-default\", className)}\r\n {...props}\r\n />\r\n))\r\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\r\n\r\nconst ContextMenuShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\r\n \"ml-auto text-caption-sm tracking-wider text-fg-subtle\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\r\n\r\nexport {\r\n ContextMenu,\r\n ContextMenuTrigger,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuCheckboxItem,\r\n ContextMenuRadioItem,\r\n ContextMenuLabel,\r\n ContextMenuSeparator,\r\n ContextMenuShortcut,\r\n ContextMenuGroup,\r\n ContextMenuPortal,\r\n ContextMenuSub,\r\n ContextMenuSubContent,\r\n ContextMenuSubTrigger,\r\n ContextMenuRadioGroup,\r\n}\r\n","import * as React from \"react\"\r\nimport { Drawer as DrawerPrimitive } from \"vaul\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Drawer = ({\r\n shouldScaleBackground = true,\r\n ...props\r\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\r\n <DrawerPrimitive.Root\r\n shouldScaleBackground={shouldScaleBackground}\r\n {...props}\r\n />\r\n)\r\nDrawer.displayName = \"Drawer\"\r\n\r\nconst DrawerTrigger = DrawerPrimitive.Trigger\r\n\r\nconst DrawerPortal = DrawerPrimitive.Portal\r\n\r\nconst DrawerClose = DrawerPrimitive.Close\r\n\r\nconst DrawerOverlay = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Overlay\r\n ref={ref}\r\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\r\n {...props}\r\n />\r\n))\r\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\r\n\r\nconst DrawerContent = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <DrawerPortal>\r\n <DrawerOverlay />\r\n <DrawerPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-border-default bg-bg-canvas\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-bg-muted\" />\r\n {children}\r\n </DrawerPrimitive.Content>\r\n </DrawerPortal>\r\n))\r\nDrawerContent.displayName = \"DrawerContent\"\r\n\r\nconst DrawerHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\r\n {...props}\r\n />\r\n)\r\nDrawerHeader.displayName = \"DrawerHeader\"\r\n\r\nconst DrawerFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\r\n {...props}\r\n />\r\n)\r\nDrawerFooter.displayName = \"DrawerFooter\"\r\n\r\nconst DrawerTitle = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Title\r\n ref={ref}\r\n className={cn(\r\n \"text-lg font-semibold leading-none tracking-tight\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\r\n\r\nconst DrawerDescription = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-fg-muted\", className)}\r\n {...props}\r\n />\r\n))\r\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\r\n\r\nexport {\r\n Drawer,\r\n DrawerPortal,\r\n DrawerOverlay,\r\n DrawerTrigger,\r\n DrawerClose,\r\n DrawerContent,\r\n DrawerHeader,\r\n DrawerFooter,\r\n DrawerTitle,\r\n DrawerDescription,\r\n}\r\n","import * as React from \"react\"\r\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\n/** Default snappy (openDelay 200 / closeDelay 100) — o default do Radix (700) é lento. */\r\nconst HoverCard = ({\r\n openDelay = 200,\r\n closeDelay = 100,\r\n ...props\r\n}: React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Root>) => (\r\n <HoverCardPrimitive.Root openDelay={openDelay} closeDelay={closeDelay} {...props} />\r\n)\r\n\r\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\r\n\r\nconst HoverCardContent = React.forwardRef<\r\n React.ElementRef<typeof HoverCardPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\r\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\r\n <HoverCardPrimitive.Content\r\n ref={ref}\r\n align={align}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 w-64 relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-card-base text-fg-default shadow-sh-lg outline-float outline-none before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\r\n\r\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\r\n","import * as React from \"react\";\r\nimport { OTPInput, OTPInputContext } from \"input-otp\";\r\nimport { cva } from \"class-variance-authority\";\r\nimport { Dot } from \"lucide-react\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\n/**\r\n * InputOTP — entrada de código (OTP/2FA), tokenizado iGreen.\r\n *\r\n * ## Irmão do `Input` de texto, por decisão (2026-08-18)\r\n *\r\n * O slot usa a MESMA superfície do `input.tsx`: `bg-bg-input dark:bg-bg-muted`,\r\n * `border-border-input`, e foco por **borda verde + `shadow-sh-ring`** — não por\r\n * `ring-4`. Os `size` e `state` são os mesmos 4 de cada, com os mesmos tokens\r\n * `form-*`, então um OTP e um campo de texto lado a lado têm altura idêntica.\r\n *\r\n * size xxs = 28px (form-xs) · xs = 32px (form-sm) · sm = 36px (form-md) · md = 40px (form-lg)\r\n * state default · error · warning · success (mesmos tokens do Input)\r\n *\r\n * Antes disto o slot era `size-form-lg` cravado, sem bg, com `border-border-default`\r\n * e `ring-4 ring-ring-brand` no ativo — um campo de formulário que não parecia\r\n * com nenhum outro campo de formulário do DS.\r\n *\r\n * ## Variantes visuais\r\n *\r\n * connected slots colados, radius só nas pontas (DEFAULT — o look histórico)\r\n * outlined slots separados, borda e radius completos em cada\r\n * filled como outlined, com fundo e borda transparente\r\n * underline só a borda de baixo, sem fundo nem radius\r\n *\r\n * ## Por que `size`/`variant`/`state` vão por CONTEXTO e não por prop de slot\r\n *\r\n * O consumidor declara uma vez no root e os N slots herdam:\r\n *\r\n * <InputOTP maxLength={6} size=\"sm\" variant=\"outlined\" state=\"error\">\r\n *\r\n * A alternativa — repetir a prop em cada `<InputOTPSlot>` — erra silenciosamente\r\n * quando um slot fica de fora (fica de tamanho diferente no meio da fileira). O\r\n * `InputOTPGroup` também lê o contexto, porque `gap` e radius das pontas mudam\r\n * com a variante e são propriedade do GRUPO, não do slot.\r\n *\r\n * ⚠️ Não copie a receita do shadcn-studio (`className` no grupo com\r\n * `*:data-[slot=input-otp-slot]:rounded-lg`): ela usa Tailwind literal e\r\n * vocabulário da bridge (`bg-muted`), que não emitem CSS nos canais npm e\r\n * submódulo (L-039). Aqui a mesma capacidade vem por variante tokenizada.\r\n *\r\n * Composição: InputOTP > InputOTPGroup > InputOTPSlot (+ InputOTPSeparator).\r\n */\r\n\r\nexport type InputOTPVariant = \"connected\" | \"outlined\" | \"filled\" | \"underline\";\r\nexport type InputOTPSize = \"xxs\" | \"xs\" | \"sm\" | \"md\";\r\nexport type InputOTPState = \"default\" | \"error\" | \"warning\" | \"success\";\r\n\r\n/* ── Contexto de estilo ──────────────────────────────────────────────── */\r\n\r\ntype InputOTPStyleCtx = {\r\n variant: InputOTPVariant;\r\n size: InputOTPSize;\r\n state: InputOTPState;\r\n};\r\n\r\nconst DEFAULTS: InputOTPStyleCtx = {\r\n variant: \"connected\",\r\n size: \"md\",\r\n state: \"default\",\r\n};\r\n\r\nconst InputOTPStyleContext = React.createContext<InputOTPStyleCtx>(DEFAULTS);\r\n\r\n/* ── Slot ────────────────────────────────────────────────────────────── */\r\n\r\nconst slotVariants = cva(\r\n [\r\n \"relative flex items-center justify-center\",\r\n // Mesma superfície do input.tsx — ver o cabeçalho.\r\n \"bg-bg-input dark:bg-bg-muted\",\r\n \"text-fg-default tabular-nums\",\r\n \"transition-[border-color,box-shadow,background-color] outline-none\",\r\n ],\r\n {\r\n variants: {\r\n // Quadrado: a altura vem do MESMO token do Input, e a largura acompanha\r\n // pra o slot não virar retângulo. `size-form-*` = height e width juntos.\r\n size: {\r\n xxs: \"size-form-xs text-body-sm\",\r\n xs: \"size-form-sm text-body-sm\",\r\n sm: \"size-form-md text-body-md\",\r\n md: \"size-form-lg text-body-md\",\r\n },\r\n variant: {\r\n // Colados: cada slot desenha 3 lados; o 1º devolve a borda esquerda, e\r\n // as pontas recebem radius. Sem isso a fileira mostra borda dupla entre\r\n // slots vizinhos.\r\n connected: \"border-y border-r first:border-l\",\r\n outlined: \"border\",\r\n filled: \"border border-transparent\",\r\n // Sem fundo: a linha de baixo É o campo. `rounded-none` explícito\r\n // porque o radius das pontas do `connected` viria do grupo.\r\n underline: \"border-0 border-b-2 rounded-none bg-transparent dark:bg-transparent\",\r\n },\r\n // Cor de borda e anel de foco — os MESMOS pares do Input.\r\n state: {\r\n default: \"border-border-input\",\r\n error: \"border-border-danger-muted\",\r\n warning: \"border-border-warning-muted\",\r\n success: \"border-border-success-muted\",\r\n },\r\n /** Slot que o cursor está ocupando. O Radix não dá `:focus` aqui: o input\r\n * real é único e invisível, então o \"foco\" é estado do contexto do\r\n * `input-otp`, não do DOM. Daí ser variante e não `focus-visible:`. */\r\n active: { true: \"z-10\", false: \"\" },\r\n },\r\n compoundVariants: [\r\n // Foco = borda verde + anel, igual ao `focus-visible` do Input. Em erro/\r\n // aviso/sucesso a borda semântica MANDA (o usuário precisa continuar\r\n // vendo que o campo está inválido enquanto digita), e só o anel muda.\r\n { active: true, state: \"default\", class: \"border-border-brand shadow-sh-ring\" },\r\n { active: true, state: \"error\", class: \"shadow-sh-ring-danger\" },\r\n { active: true, state: \"warning\", class: \"shadow-sh-ring-warning\" },\r\n { active: true, state: \"success\", class: \"shadow-sh-ring-success\" },\r\n // Hover só onde há superfície pra reagir.\r\n { variant: \"connected\", class: \"hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover\" },\r\n { variant: \"outlined\", class: \"hover:bg-bg-input-hover dark:hover:bg-bg-muted-hover\" },\r\n { variant: \"filled\", class: \"bg-bg-muted dark:bg-bg-muted hover:bg-bg-muted-hover\" },\r\n ],\r\n defaultVariants: { size: \"md\", variant: \"connected\", state: \"default\", active: false },\r\n },\r\n);\r\n\r\n/* ── Grupo ───────────────────────────────────────────────────────────── */\r\n\r\nconst groupVariants = cva(\"flex items-center\", {\r\n variants: {\r\n variant: {\r\n // Colados: zero gap, e o radius das pontas é do GRUPO (o slot não sabe se\r\n // é primeiro/último de um grupo quando há mais de um grupo na tela).\r\n connected: \"gap-0 [&>*:first-child]:rounded-l-radius-lg [&>*:last-child]:rounded-r-radius-lg\",\r\n outlined: \"gap-gp-md [&>*]:rounded-radius-lg\",\r\n filled: \"gap-gp-md [&>*]:rounded-radius-lg\",\r\n underline: \"gap-gp-md\",\r\n },\r\n // Radius acompanha o size, como no Input: os dois menores usam radius-md.\r\n size: { xxs: \"\", xs: \"\", sm: \"\", md: \"\" },\r\n },\r\n compoundVariants: [\r\n { variant: \"connected\", size: \"xxs\", class: \"[&>*:first-child]:rounded-l-radius-md [&>*:last-child]:rounded-r-radius-md\" },\r\n { variant: \"connected\", size: \"xs\", class: \"[&>*:first-child]:rounded-l-radius-md [&>*:last-child]:rounded-r-radius-md\" },\r\n { variant: \"outlined\", size: \"xxs\", class: \"[&>*]:rounded-radius-md\" },\r\n { variant: \"outlined\", size: \"xs\", class: \"[&>*]:rounded-radius-md\" },\r\n { variant: \"filled\", size: \"xxs\", class: \"[&>*]:rounded-radius-md\" },\r\n { variant: \"filled\", size: \"xs\", class: \"[&>*]:rounded-radius-md\" },\r\n ],\r\n defaultVariants: { variant: \"connected\", size: \"md\" },\r\n});\r\n\r\n/* ── Root ────────────────────────────────────────────────────────────── */\r\n\r\n/**\r\n * `Omit` que **distribui** sobre união. As props do `OTPInput` são uma união\r\n * discriminada (`render` XOR `children`), e `Omit<A | B, K>` colapsa a união num\r\n * objeto só — o discriminante se perde e o TS rejeita tanto `children` quanto\r\n * `render` (TS2322, \"Type 'InputOTPRenderFn' is not assignable to 'undefined'\").\r\n * Com `T extends any ? … : never` o Omit roda em cada membro e a união sobrevive.\r\n */\r\ntype DistributiveOmit<T, K extends keyof never> = T extends unknown ? Omit<T, K> : never;\r\n\r\n/**\r\n * Tipo, não `interface`: `interface extends` também colapsa a união acima.\r\n *\r\n * O `size` nativo do `<input>` (numérico) é omitido pra ceder o nome à nossa\r\n * variante — é a mesma decisão do `input.tsx`, que faz\r\n * `Omit<InputHTMLAttributes, \"size\">`. Sem isso: TS2430, e a mensagem não aponta\r\n * a causa.\r\n */\r\nexport type InputOTPProps = DistributiveOmit<\r\n React.ComponentPropsWithoutRef<typeof OTPInput>,\r\n \"size\"\r\n> & {\r\n /** Aparência dos slots. `connected` (default) = o look histórico do DS. */\r\n variant?: InputOTPVariant;\r\n /** Altura do slot, nos MESMOS tokens `form-*` do `Input`: 28/32/36/40px. */\r\n size?: InputOTPSize;\r\n /** Feedback de validação — mesmos pares de cor do `Input`. */\r\n state?: InputOTPState;\r\n};\r\n\r\nconst InputOTP = React.forwardRef<React.ElementRef<typeof OTPInput>, InputOTPProps>(\r\n ({ className, containerClassName, variant, size, state, ...props }, ref) => {\r\n const ctx = React.useMemo(\r\n () => ({\r\n variant: variant ?? DEFAULTS.variant,\r\n size: size ?? DEFAULTS.size,\r\n state: state ?? DEFAULTS.state,\r\n }),\r\n [variant, size, state],\r\n );\r\n\r\n return (\r\n <InputOTPStyleContext.Provider value={ctx}>\r\n {/* `children` NÃO é desestruturado de propósito: ele viaja dentro de\r\n `...props` pra preservar a união `render` XOR `children` do OTPInput.\r\n Extraí-lo e repassá-lo como children explícito reintroduz o TS2322. */}\r\n <OTPInput\r\n ref={ref}\r\n containerClassName={cn(\r\n \"flex items-center gap-gp-md has-[:disabled]:opacity-50\",\r\n containerClassName,\r\n )}\r\n className={cn(\"disabled:cursor-not-allowed\", className)}\r\n {...(props as React.ComponentPropsWithoutRef<typeof OTPInput>)}\r\n />\r\n </InputOTPStyleContext.Provider>\r\n );\r\n },\r\n);\r\nInputOTP.displayName = \"InputOTP\";\r\n\r\nconst InputOTPGroup = React.forwardRef<\r\n React.ElementRef<\"div\">,\r\n React.ComponentPropsWithoutRef<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n const { variant, size } = React.useContext(InputOTPStyleContext);\r\n return (\r\n <div ref={ref} className={cn(groupVariants({ variant, size }), className)} {...props} />\r\n );\r\n});\r\nInputOTPGroup.displayName = \"InputOTPGroup\";\r\n\r\nexport interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n index: number;\r\n /** Override pontual. Em geral declare no `<InputOTP>` e deixe herdar. */\r\n variant?: InputOTPVariant;\r\n size?: InputOTPSize;\r\n state?: InputOTPState;\r\n}\r\n\r\nconst InputOTPSlot = React.forwardRef<React.ElementRef<\"div\">, InputOTPSlotProps>(\r\n ({ index, className, variant, size, state, ...props }, ref) => {\r\n const ctx = React.useContext(InputOTPStyleContext);\r\n const otp = React.useContext(OTPInputContext);\r\n const { char, hasFakeCaret, isActive } = otp.slots[index];\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n data-slot=\"input-otp-slot\"\r\n data-active={isActive ? \"true\" : undefined}\r\n className={cn(\r\n slotVariants({\r\n variant: variant ?? ctx.variant,\r\n size: size ?? ctx.size,\r\n state: state ?? ctx.state,\r\n active: isActive,\r\n }),\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {char}\r\n {hasFakeCaret && (\r\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\r\n <div className=\"h-4 w-px animate-caret-blink bg-fg-default duration-1000\" />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n);\r\nInputOTPSlot.displayName = \"InputOTPSlot\";\r\n\r\nconst InputOTPSeparator = React.forwardRef<\r\n React.ElementRef<\"div\">,\r\n React.ComponentPropsWithoutRef<\"div\">\r\n>(({ className, children, ...props }, ref) => (\r\n <div ref={ref} role=\"separator\" className={cn(\"text-fg-muted\", className)} {...props}>\r\n {children ?? <Dot />}\r\n </div>\r\n));\r\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\r\n\r\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator, slotVariants };\r\n","import * as React from \"react\"\r\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\n/**\r\n * Label — alinhado com `.tbl-form-label` do design-and-table-v2.\r\n * Specs: 13px / 600 / fg-default / tracking 0.01em — boa prática WCAG\r\n * pra labels de form (contraste maior que helper text).\r\n *\r\n * Nota: usa `text-[13px]` literal (não preset `body-sm`) pra manter\r\n * `leading-none` previsível na inspeção — preset DS carrega lineHeight\r\n * 18px que pode conflitar com leading-none em alguns navegadores.\r\n */\r\nconst labelVariants = cva(\r\n \"text-body-sm font-semibold tracking-[0.01em] text-fg-default dark:text-fg-muted leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\r\n)\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef<typeof LabelPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\r\n VariantProps<typeof labelVariants>\r\n>(({ className, ...props }, ref) => (\r\n <LabelPrimitive.Root\r\n ref={ref}\r\n className={cn(labelVariants(), className)}\r\n {...props}\r\n />\r\n))\r\nLabel.displayName = LabelPrimitive.Root.displayName\r\n\r\nexport { Label }\r\n","import * as React from \"react\"\r\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nfunction MenubarMenu({\r\n ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\r\n return <MenubarPrimitive.Menu {...props} />\r\n}\r\n\r\nfunction MenubarGroup({\r\n ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\r\n return <MenubarPrimitive.Group {...props} />\r\n}\r\n\r\nfunction MenubarPortal({\r\n ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\r\n return <MenubarPrimitive.Portal {...props} />\r\n}\r\n\r\nfunction MenubarRadioGroup({\r\n ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\r\n return <MenubarPrimitive.RadioGroup {...props} />\r\n}\r\n\r\nfunction MenubarSub({\r\n ...props\r\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\r\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\r\n}\r\n\r\nconst Menubar = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <MenubarPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"flex h-10 items-center space-x-1 rounded-radius-lg border border-border-default bg-bg-surface p-pad-xs\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nMenubar.displayName = MenubarPrimitive.Root.displayName\r\n\r\nconst MenubarTrigger = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n <MenubarPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm font-semibold outline-none focus:bg-bg-muted focus:text-fg-default data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName\r\n\r\nconst MenubarSubTrigger = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, children, ...props }, ref) => (\r\n <MenubarPrimitive.SubTrigger\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRight className=\"ml-auto h-4 w-4\" />\r\n </MenubarPrimitive.SubTrigger>\r\n))\r\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName\r\n\r\nconst MenubarSubContent = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n <MenubarPrimitive.SubContent\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-[8rem] overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-menubar-content-transform-origin]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName\r\n\r\nconst MenubarContent = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\r\n>(\r\n (\r\n { className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props },\r\n ref\r\n ) => (\r\n <MenubarPrimitive.Portal>\r\n <MenubarPrimitive.Content\r\n ref={ref}\r\n align={align}\r\n alignOffset={alignOffset}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 min-w-[12rem] overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown p-pad-sm text-fg-muted shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-menubar-content-transform-origin]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </MenubarPrimitive.Portal>\r\n )\r\n)\r\nMenubarContent.displayName = MenubarPrimitive.Content.displayName\r\n\r\nconst MenubarItem = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <MenubarPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-radius-sm px-pad-lg py-pad-md text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nMenubarItem.displayName = MenubarPrimitive.Item.displayName\r\n\r\nconst MenubarCheckboxItem = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n <MenubarPrimitive.CheckboxItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <MenubarPrimitive.ItemIndicator>\r\n <Check className=\"h-4 w-4\" />\r\n </MenubarPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </MenubarPrimitive.CheckboxItem>\r\n))\r\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName\r\n\r\nconst MenubarRadioItem = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n <MenubarPrimitive.RadioItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-radius-sm py-pad-md pl-8 pr-2 text-body-sm text-fg-muted outline-none transition-colors focus:bg-bg-muted focus:text-fg-default [&_svg]:text-fg-muted focus:[&_svg]:text-fg-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <MenubarPrimitive.ItemIndicator>\r\n <Circle className=\"h-2 w-2 fill-current\" />\r\n </MenubarPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </MenubarPrimitive.RadioItem>\r\n))\r\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName\r\n\r\nconst MenubarLabel = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <MenubarPrimitive.Label\r\n ref={ref}\r\n className={cn(\r\n \"px-pad-lg py-pad-md text-sm font-semibold\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName\r\n\r\nconst MenubarSeparator = React.forwardRef<\r\n React.ElementRef<typeof MenubarPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <MenubarPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 my-1 h-px bg-bg-muted\", className)}\r\n {...props}\r\n />\r\n))\r\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName\r\n\r\nconst MenubarShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\r\n \"ml-auto text-caption-sm tracking-wider text-fg-subtle\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\nMenubarShortcut.displayname = \"MenubarShortcut\"\r\n\r\nexport {\r\n Menubar,\r\n MenubarMenu,\r\n MenubarTrigger,\r\n MenubarContent,\r\n MenubarItem,\r\n MenubarSeparator,\r\n MenubarLabel,\r\n MenubarCheckboxItem,\r\n MenubarRadioGroup,\r\n MenubarRadioItem,\r\n MenubarPortal,\r\n MenubarSubContent,\r\n MenubarSubTrigger,\r\n MenubarGroup,\r\n MenubarSub,\r\n MenubarShortcut,\r\n}\r\n","import * as React from \"react\"\r\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\r\nimport { cva } from \"class-variance-authority\"\r\nimport { ChevronDown } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst NavigationMenu = React.forwardRef<\r\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\r\n>(({ className, children, ...props }, ref) => (\r\n <NavigationMenuPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <NavigationMenuViewport />\r\n </NavigationMenuPrimitive.Root>\r\n))\r\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\r\n\r\nconst NavigationMenuList = React.forwardRef<\r\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <NavigationMenuPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n \"group flex flex-1 list-none items-center justify-center space-x-1\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\r\n\r\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\r\n\r\nconst navigationMenuTriggerStyle = cva(\r\n \"group inline-flex min-h-form-lg w-max items-center justify-center rounded-radius-md bg-transparent px-pad-lg py-pad-md text-body-sm font-semibold text-fg-muted transition-colors hover:bg-bg-muted hover:text-fg-default focus:bg-bg-muted focus:text-fg-default focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-bg-muted data-[state=open]:text-fg-default\"\r\n)\r\n\r\nconst NavigationMenuTrigger = React.forwardRef<\r\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <NavigationMenuPrimitive.Trigger\r\n ref={ref}\r\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\r\n {...props}\r\n >\r\n {children}{\" \"}\r\n <ChevronDown\r\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\r\n aria-hidden=\"true\"\r\n />\r\n </NavigationMenuPrimitive.Trigger>\r\n))\r\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\r\n\r\nconst NavigationMenuContent = React.forwardRef<\r\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <NavigationMenuPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto \",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\r\n\r\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\r\n\r\nconst NavigationMenuViewport = React.forwardRef<\r\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\r\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\r\n>(({ className, ...props }, ref) => (\r\n <div className={cn(\"absolute left-0 top-full flex justify-center\")}>\r\n <NavigationMenuPrimitive.Viewport\r\n className={cn(\r\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden relative rounded-[12px] border border-border-default bg-bg-dropdown text-fg-default shadow-sh-lg outline-float before:pointer-events-none before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n </div>\r\n))\r\nNavigationMenuViewport.displayName =\r\n NavigationMenuPrimitive.Viewport.displayName\r\n\r\nconst NavigationMenuIndicator = React.forwardRef<\r\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\r\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\r\n>(({ className, ...props }, ref) => (\r\n <NavigationMenuPrimitive.Indicator\r\n ref={ref}\r\n className={cn(\r\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-bg-surface border border-border-default shadow-sh-md\" />\r\n </NavigationMenuPrimitive.Indicator>\r\n))\r\nNavigationMenuIndicator.displayName =\r\n NavigationMenuPrimitive.Indicator.displayName\r\n\r\nexport {\r\n navigationMenuTriggerStyle,\r\n NavigationMenu,\r\n NavigationMenuList,\r\n NavigationMenuItem,\r\n NavigationMenuContent,\r\n NavigationMenuTrigger,\r\n NavigationMenuLink,\r\n NavigationMenuIndicator,\r\n NavigationMenuViewport,\r\n}\r\n","import * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Progress — barra de progresso linear.\n *\n * Specs:\n * - Track: h:12px (h-3), bg-emphasis (light, gray[100]) / bg-accent (dark, alpha 16%), radius-full\n * - Indicator: bg-bg-brand (verde brand)\n */\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-3 w-full items-center overflow-hidden rounded-radius-full\",\n \"bg-bg-emphasis dark:bg-bg-accent\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"size-full flex-1 bg-bg-brand transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * RadioGroup — alinhado com o pattern do Checkbox/Input do design-and-table-v2.\n *\n * Specs:\n * - 16x16, border 1.5px border-input, radius-full\n * - bg-input (light) / dark:bg-bg-muted\n * - hover: border-default\n * - checked: bg-brand + border-brand + inner dot white\n * - focus: shadow-sh-ring\n */\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid w-full gap-gp-xl\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"peer relative flex aspect-square size-4 shrink-0 cursor-pointer\",\n \"rounded-radius-full\",\n \"bg-bg-input dark:bg-bg-muted\",\n \"border-[1.5px] border-border-input\",\n \"transition-[background-color,border-color,box-shadow] outline-none\",\n \"hover:border-border-default\",\n \"focus-visible:shadow-sh-ring\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-bg-brand data-[state=checked]:border-border-brand\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex size-full items-center justify-center\">\n <span className=\"size-[6px] rounded-radius-full bg-fg-on-brand\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\"\r\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\n/**\r\n * ScrollArea — área rolável com scrollbar estilizada (Radix). Thumb usa\r\n * `bg-border-default` (token DS). Use pra listas/dropdowns longos com scroll\r\n * consistente entre navegadores.\r\n */\r\n\r\nconst ScrollArea = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\r\n>(({ className, children, ...props }, ref) => (\r\n <ScrollAreaPrimitive.Root\r\n ref={ref}\r\n className={cn(\"relative overflow-hidden\", className)}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\r\n {children}\r\n </ScrollAreaPrimitive.Viewport>\r\n <ScrollBar />\r\n <ScrollAreaPrimitive.Corner />\r\n </ScrollAreaPrimitive.Root>\r\n))\r\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\r\n\r\nconst ScrollBar = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\r\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\r\n <ScrollAreaPrimitive.ScrollAreaScrollbar\r\n ref={ref}\r\n orientation={orientation}\r\n className={cn(\r\n \"flex touch-none select-none transition-colors\",\r\n orientation === \"vertical\" &&\r\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\r\n orientation === \"horizontal\" &&\r\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border-default\" />\r\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\r\n))\r\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\r\n\r\nexport { ScrollArea, ScrollBar }\r\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Slider — alinhado com tokens v3.\n *\n * Specs:\n * - Track: h:8px (h-2), bg-emphasis (light, gray[100]) / bg-accent (dark, alpha 16%), radius-full\n * - Range: bg-brand (filled portion)\n * - Thumb: 24x16 (oval), white com shadow-sh-md\n * - hover/focus: shadow-sh-ring (brand glow)\n */\nconst THUMB_CLASS = cn(\n \"block h-4 w-6 shrink-0 rounded-radius-full bg-white\",\n \"shadow-sh-md\",\n \"transition-[box-shadow] select-none outline-none\",\n \"hover:shadow-sh-ring\",\n \"focus-visible:shadow-sh-ring\",\n \"disabled:pointer-events-none disabled:opacity-50\"\n);\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, defaultValue, value, ...props }, ref) => {\n const thumbCount = (value ?? defaultValue ?? [0]).length;\n\n return (\n <SliderPrimitive.Root\n ref={ref}\n defaultValue={defaultValue}\n value={value}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-radius-full bg-bg-emphasis dark:bg-bg-accent\">\n <SliderPrimitive.Range className=\"absolute h-full bg-bg-brand\" />\n </SliderPrimitive.Track>\n {Array.from({ length: thumbCount }, (_, i) => (\n <SliderPrimitive.Thumb key={i} className={THUMB_CLASS} />\n ))}\n </SliderPrimitive.Root>\n );\n})\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","import * as React from \"react\"\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\n/**\r\n * Tabs — 2 variantes (set via `variant` no <Tabs>, propagado por contexto):\r\n *\r\n * - \"segmented\" (default): pill group sobre bg-muted. Container h-form-lg (40px),\r\n * p-[3px], radius-lg; tab h-[34px] px-[14px] radius-md; ativo = bg-accent +\r\n * font-semibold + shadow-sm.\r\n * - \"line\": underline. List sem chrome, só border-b (border-subtle); tab sem bg,\r\n * border-b-2 transparente na base; ativo = border-border-brand + fg-default +\r\n * font-semibold (a borda de 2px sobrepõe a da list via -mb-px).\r\n */\r\ntype TabsVariant = \"segmented\" | \"line\"\r\nconst TabsVariantContext = React.createContext<TabsVariant>(\"segmented\")\r\n\r\nconst Tabs = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> & { variant?: TabsVariant }\r\n>(({ variant = \"segmented\", ...props }, ref) => (\r\n <TabsVariantContext.Provider value={variant}>\r\n <TabsPrimitive.Root ref={ref} {...props} />\r\n </TabsVariantContext.Provider>\r\n))\r\nTabs.displayName = \"Tabs\"\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => {\r\n const variant = React.useContext(TabsVariantContext)\r\n return (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n variant === \"line\"\r\n ? \"inline-flex w-fit items-center gap-gp-xl border-b border-border-subtle\"\r\n : \"inline-flex h-form-lg w-fit items-center bg-bg-muted p-[3px] gap-gp-2xs rounded-radius-lg\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nTabsList.displayName = TabsPrimitive.List.displayName\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => {\r\n const variant = React.useContext(TabsVariantContext)\r\n return (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center justify-center gap-gp-sm whitespace-nowrap text-body-sm font-medium text-fg-muted transition-colors\",\r\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-secondary\",\r\n \"hover:text-fg-default\",\r\n \"disabled:pointer-events-none disabled:opacity-50\",\r\n variant === \"line\"\r\n ? \"-mb-px h-[38px] px-[2px] pb-[8px] border-b-2 border-transparent data-[state=active]:border-border-brand data-[state=active]:text-fg-default data-[state=active]:font-semibold\"\r\n : \"h-[34px] px-[14px] rounded-radius-md data-[state=active]:bg-bg-accent data-[state=active]:text-fg-default data-[state=active]:font-semibold data-[state=active]:shadow-sh-sm\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"mt-sp-md flex-1 text-body-md outline-none\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsContent.displayName = TabsPrimitive.Content.displayName\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n","import * as React from \"react\"\r\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst toggleVariants = cva(\r\n \"inline-flex items-center justify-center gap-gp-xs rounded-radius-md border border-transparent text-body-sm font-semibold transition-colors hover:bg-bg-muted hover:text-fg-muted focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-ring-brand disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-bg-brand-subtle data-[state=on]:text-fg-brand [&_svg]:pointer-events-none [&_svg]:size-icon-sm [&_svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-transparent\",\r\n outline:\r\n \"border-border-default bg-transparent hover:bg-bg-muted hover:text-fg-default\",\r\n },\r\n size: {\r\n default: \"min-h-form-lg px-pad-lg min-w-form-lg\",\r\n sm: \"min-h-form-md px-pad-md min-w-form-md\",\r\n lg: \"min-h-form-xl px-pad-xl min-w-form-xl\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nconst Toggle = React.forwardRef<\r\n React.ElementRef<typeof TogglePrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\r\n VariantProps<typeof toggleVariants>\r\n>(({ className, variant, size, ...props }, ref) => (\r\n <TogglePrimitive.Root\r\n ref={ref}\r\n className={cn(toggleVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n))\r\n\r\nToggle.displayName = TogglePrimitive.Root.displayName\r\n\r\nexport { Toggle, toggleVariants }\r\n","import * as React from \"react\"\r\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\r\nimport { type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { toggleVariants } from \"@/components/shadcn/toggle\"\r\n\r\nconst ToggleGroupContext = React.createContext<\r\n VariantProps<typeof toggleVariants>\r\n>({\r\n size: \"default\",\r\n variant: \"default\",\r\n})\r\n\r\nconst ToggleGroup = React.forwardRef<\r\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\r\n VariantProps<typeof toggleVariants>\r\n>(({ className, variant, size, children, ...props }, ref) => (\r\n <ToggleGroupPrimitive.Root\r\n ref={ref}\r\n className={cn(\"flex items-center justify-center gap-gp-xs\", className)}\r\n {...props}\r\n >\r\n <ToggleGroupContext.Provider value={{ variant, size }}>\r\n {children}\r\n </ToggleGroupContext.Provider>\r\n </ToggleGroupPrimitive.Root>\r\n))\r\n\r\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\r\n\r\nconst ToggleGroupItem = React.forwardRef<\r\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\r\n VariantProps<typeof toggleVariants>\r\n>(({ className, children, variant, size, ...props }, ref) => {\r\n const context = React.useContext(ToggleGroupContext)\r\n\r\n return (\r\n <ToggleGroupPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n toggleVariants({\r\n variant: context.variant || variant,\r\n size: context.size || size,\r\n }),\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </ToggleGroupPrimitive.Item>\r\n )\r\n})\r\n\r\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\r\n\r\nexport { ToggleGroup, ToggleGroupItem }\r\n","import * as React from \"react\";\r\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\n/**\r\n * Tooltip — dica flutuante curta (Radix Tooltip) remapeada para tokens DS.\r\n *\r\n * Visual: bolha neutra de ênfase (`bg-bg-emphasis` — theme-aware, mais visível\r\n * que `muted` e diferente das superfícies brancas de Popover/Dropdown), texto\r\n * `caption-sm`, `rounded-radius-md`, `shadow-sh-md`. A seta reaproveita o mesmo\r\n * fundo via `fill-bg-emphasis`.\r\n *\r\n * O DS **não tem** superfície escura invertida (`surface-inverted`), então a\r\n * tooltip é uma bolha neutra clara (light) / clara-sobre-escuro (dark) — em vez\r\n * do bubble preto clássico. É a escolha token-nativa: nenhum token novo.\r\n *\r\n * `<Tooltip>` já embrulha um `<TooltipProvider>` internamente, então uma tooltip\r\n * avulsa funciona sem provider no topo da app. Provider aninhado é seguro no\r\n * Radix (o mais interno vence) — se quiser um `delayDuration` global, monte um\r\n * `<TooltipProvider>` você mesmo em volta de vários `<Tooltip>`.\r\n */\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider;\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger;\r\n\r\ntype TooltipProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>;\r\n\r\nconst Tooltip = ({ children, ...props }: TooltipProps) => (\r\n <TooltipProvider>\r\n <TooltipPrimitive.Root {...props}>{children}</TooltipPrimitive.Root>\r\n </TooltipProvider>\r\n);\r\nTooltip.displayName = \"Tooltip\";\r\n\r\ntype TooltipContentProps = React.ComponentPropsWithoutRef<\r\n typeof TooltipPrimitive.Content\r\n> & {\r\n /** Renderiza a seta apontando pro trigger. Default `true`. */\r\n showArrow?: boolean;\r\n};\r\n\r\nconst TooltipContent = React.forwardRef<\r\n React.ElementRef<typeof TooltipPrimitive.Content>,\r\n TooltipContentProps\r\n>(({ className, sideOffset = 6, showArrow = true, children, ...props }, ref) => (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 max-w-[16rem] select-none\",\r\n \"bg-bg-emphasis text-fg-default\",\r\n \"rounded-radius-md px-pad-lg py-pad-xs\",\r\n \"text-caption-sm\",\r\n \"shadow-sh-md\",\r\n \"origin-[--radix-tooltip-content-transform-origin]\",\r\n \"data-[state=delayed-open]:animate-in data-[state=instant-open]:animate-in data-[state=closed]:animate-out\",\r\n \"data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=instant-open]:fade-in-0\",\r\n \"data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95 data-[state=instant-open]:zoom-in-95\",\r\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\r\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showArrow && (\r\n <TooltipPrimitive.Arrow\r\n width={11}\r\n height={5}\r\n className=\"fill-bg-emphasis\"\r\n />\r\n )}\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Portal>\r\n));\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\r\n"],"names":["api","DrawerPrimitive"],"mappings":"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"}
|