@adsgency_npm/adsgency-ads-ui 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AdsAccordion/index.tsx","../src/i18n/AdsI18nProvider.tsx","../src/i18n/defaultMessages.ts","../src/lib/cn.ts","../src/primitives/accordion.tsx","../src/components/AdsAlert/index.tsx","../src/primitives/alert.tsx","../src/components/AdsBadge/index.tsx","../src/primitives/badge.tsx","../src/components/AdsAlertDialog/index.tsx","../src/components/AdsButton/index.tsx","../src/primitives/button.tsx","../src/components/AdsBreadcrumb/index.tsx","../src/primitives/breadcrumb.tsx","../src/components/AdsCheckbox/index.tsx","../src/primitives/checkbox.tsx","../src/components/AdsField/index.tsx","../src/primitives/field.tsx","../src/primitives/label.tsx","../src/primitives/separator.tsx","../src/components/AdsButtonGroup/index.tsx","../src/primitives/input.tsx","../src/primitives/button-group.tsx","../src/components/AdsSeparator/index.tsx","../src/components/AdsSkeleton/index.tsx","../src/primitives/skeleton.tsx","../src/components/AdsInput/index.tsx","../src/components/AdsInputGroup/index.tsx","../src/primitives/textarea.tsx","../src/components/AdsInputOTP/index.tsx","../src/primitives/input-otp.tsx","../src/components/AdsPagination/index.tsx","../src/primitives/pagination.tsx","../src/components/AdsPopover/index.tsx","../src/primitives/popover.tsx","../src/components/AdsProgress/index.tsx","../src/primitives/progress.tsx","../src/components/AdsRadioGroup/index.tsx","../src/primitives/radio-group.tsx","../src/primitives/select.tsx","../src/components/AdsSelect/index.tsx","../src/components/AdsSlider/index.tsx","../src/primitives/slider.tsx","../src/components/AdsSwitch/index.tsx","../src/primitives/switch.tsx","../src/components/AdsTabs/index.tsx","../src/primitives/tabs.tsx","../src/components/AdsToggle/index.tsx","../src/primitives/toggle.tsx","../src/components/AdsToggleGroup/index.tsx","../src/primitives/toggle-group.tsx","../src/components/AdsTextarea/index.tsx","../src/components/AdsTooltip/index.tsx","../src/primitives/tooltip.tsx","../src/components/AdsToast/index.tsx","../src/components/AdsDialog/index.tsx","../src/components/AdsEmpty/index.tsx","../src/components/AdsTable/index.tsx","../src/primitives/table.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { useAdsI18n } from \"../../i18n\";\nimport { cn } from \"../../lib/cn\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"../../primitives/accordion\";\n\nexport type AdsAccordionMode = \"single\" | \"multiple\";\n\nexport type AdsAccordionItem = {\n content: React.ReactNode;\n disabled?: boolean;\n title: React.ReactNode;\n value: string;\n};\n\nexport interface AdsAccordionProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"defaultValue\" | \"dir\" | \"onChange\"> {\n defaultValue?: string | string[];\n dir?: \"ltr\" | \"rtl\";\n getToggleLabel?: (item: AdsAccordionItem, isOpen: boolean) => string;\n items: AdsAccordionItem[];\n mode?: AdsAccordionMode;\n onValueChange?: (value: string | string[]) => void;\n value?: string | string[];\n}\n\nfunction toValueSet(value: string | string[] | undefined): Set<string> {\n if (!value || value === \"\") {\n return new Set();\n }\n\n return new Set(Array.isArray(value) ? value : [value]);\n}\n\nfunction toExternalValue(value: Set<string>, mode: AdsAccordionMode) {\n if (mode === \"single\") {\n return Array.from(value)[0] ?? \"\";\n }\n\n return Array.from(value);\n}\n\nfunction toPrimitiveValue(\n value: string | string[] | undefined,\n mode: AdsAccordionMode,\n) {\n if (mode === \"single\") {\n return Array.isArray(value) ? value[0] ?? \"\" : value ?? \"\";\n }\n\n if (!value) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}\n\nexport const AdsAccordion = React.forwardRef<HTMLDivElement, AdsAccordionProps>(\n (\n {\n className,\n defaultValue,\n getToggleLabel,\n items,\n mode = \"single\",\n onValueChange,\n value,\n ...props\n },\n ref,\n ) => {\n const { messages } = useAdsI18n();\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = React.useState<string | string[]>(() =>\n mode === \"single\" ? toPrimitiveValue(defaultValue, \"single\") : toPrimitiveValue(defaultValue, \"multiple\"),\n );\n const resolvedValue = isControlled ? toPrimitiveValue(value, mode) : internalValue;\n const openValues = toValueSet(\n Array.isArray(resolvedValue) ? resolvedValue : resolvedValue || undefined,\n );\n\n const handleValueChange = (nextValue: string | string[]) => {\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n\n onValueChange?.(toExternalValue(toValueSet(nextValue), mode));\n };\n\n const content = items.map((item, index) => {\n const isOpen = openValues.has(item.value);\n const isLastItem = index === items.length - 1;\n const toggleLabel =\n getToggleLabel?.(item, isOpen) ??\n (isOpen ? messages.accordion.collapse : messages.accordion.expand);\n\n return (\n <AccordionItem\n className={cn(\"w-full border-border\", (!isLastItem || isOpen) && \"border-b\")}\n disabled={item.disabled}\n key={item.value}\n value={item.value}\n >\n <AccordionTrigger\n className={cn(\n \"group flex h-[52px] w-full items-center py-lg text-left text-sm font-medium leading-5 text-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background hover:no-underline [&>svg]:ml-md [&>svg]:text-foreground\",\n item.disabled\n ? \"cursor-not-allowed opacity-50\"\n : \"cursor-pointer hover:text-foreground\",\n )}\n >\n <span className=\"min-w-0 flex-1 pr-md\">\n <span className=\"break-words group-hover:underline\">{item.title}</span>\n </span>\n <span className=\"sr-only\">{toggleLabel}</span>\n </AccordionTrigger>\n <AccordionContent className=\"grid overflow-hidden transition-[grid-template-rows,opacity] duration-200 ease-out data-[state=closed]:grid-rows-[0fr] data-[state=closed]:opacity-0 data-[state=open]:grid-rows-[1fr] data-[state=open]:opacity-100\">\n <div className=\"min-h-0 overflow-hidden\">\n <div className=\"flex w-full flex-col gap-lg pb-lg text-sm font-normal leading-5 text-foreground\">\n {item.content}\n </div>\n </div>\n </AccordionContent>\n </AccordionItem>\n );\n });\n\n if (mode === \"single\") {\n return (\n <Accordion\n className={cn(\"flex w-full max-w-[503px] flex-col\", className)}\n collapsible\n onValueChange={handleValueChange}\n ref={ref}\n type=\"single\"\n value={typeof resolvedValue === \"string\" ? resolvedValue : \"\"}\n {...props}\n >\n {content}\n </Accordion>\n );\n }\n\n return (\n <Accordion\n className={cn(\"flex w-full max-w-[503px] flex-col\", className)}\n onValueChange={handleValueChange}\n ref={ref}\n type=\"multiple\"\n value={Array.isArray(resolvedValue) ? resolvedValue : []}\n {...props}\n >\n {content}\n </Accordion>\n );\n },\n);\nAdsAccordion.displayName = \"AdsAccordion\";\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { adsDefaultMessages } from \"./defaultMessages\";\nimport type { AdsLocale, AdsMessages, AdsMessagesOverride } from \"./types\";\n\ntype AdsI18nContextValue = {\n locale: AdsLocale;\n messages: AdsMessages;\n};\n\nconst AdsI18nContext = React.createContext<AdsI18nContextValue>({\n locale: \"en\",\n messages: adsDefaultMessages.en,\n});\n\nfunction mergeMessages(\n locale: AdsLocale,\n messages?: AdsMessagesOverride,\n): AdsMessages {\n const baseMessages = adsDefaultMessages[locale];\n\n return {\n accordion: {\n ...baseMessages.accordion,\n ...messages?.accordion,\n },\n button: {\n ...baseMessages.button,\n ...messages?.button,\n },\n dialog: {\n ...baseMessages.dialog,\n ...messages?.dialog,\n },\n input: {\n ...baseMessages.input,\n ...messages?.input,\n },\n toast: {\n ...baseMessages.toast,\n ...messages?.toast,\n },\n pagination: {\n ...baseMessages.pagination,\n ...messages?.pagination,\n },\n };\n}\n\nexport function AdsI18nProvider({\n children,\n locale = \"en\",\n messages,\n}: {\n children: React.ReactNode;\n locale?: AdsLocale;\n messages?: AdsMessagesOverride;\n}) {\n const value = React.useMemo(\n () => ({\n locale,\n messages: mergeMessages(locale, messages),\n }),\n [locale, messages],\n );\n\n return (\n <AdsI18nContext.Provider value={value}>{children}</AdsI18nContext.Provider>\n );\n}\n\nexport function useAdsI18n() {\n return React.useContext(AdsI18nContext);\n}\n","import type { AdsMessages } from \"./types\";\n\nexport const adsDefaultMessages: Record<\"en\" | \"zh\", AdsMessages> = {\n en: {\n accordion: {\n expand: \"Expand section\",\n collapse: \"Collapse section\",\n },\n button: {\n loading: \"Loading\",\n },\n dialog: {\n close: \"Close dialog\",\n },\n input: {\n chooseFile: \"Choose File\",\n noFileChosen: \"No file chosen\",\n optional: \"Optional\",\n },\n toast: {\n notifications: \"Notifications\",\n },\n pagination: {\n previous: \"Previous\",\n next: \"Next\",\n morePages: \"More pages\",\n },\n },\n zh: {\n accordion: {\n expand: \"展开内容\",\n collapse: \"收起内容\",\n },\n button: {\n loading: \"加载中\",\n },\n dialog: {\n close: \"关闭弹窗\",\n },\n input: {\n chooseFile: \"选择文件\",\n noFileChosen: \"未选择文件\",\n optional: \"可选\",\n },\n toast: {\n notifications: \"通知\",\n },\n pagination: {\n previous: \"上一页\",\n next: \"下一页\",\n morePages: \"更多页码\",\n },\n },\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n))\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { CircleAlert, CircleCheck, Info, TriangleAlert } from \"lucide-react\";\n\nimport {\n Alert as BaseAlert,\n AlertDescription as BaseAlertDescription,\n AlertTitle as BaseAlertTitle,\n} from \"../../primitives/alert\";\nimport { cn } from \"../../lib/cn\";\n\nconst adsAlertVariants = cva(\n \"relative flex w-full rounded-radius-lg border border-border bg-card px-4 py-3 [&>[data-slot=alert-icon]]:!text-[inherit]\",\n {\n variants: {\n variant: {\n default: \"text-foreground\",\n destructive: \"text-destructive\",\n success: \"text-success\",\n warning: \"text-warning\",\n info: \"text-info\",\n },\n hasSupportingContent: {\n true: \"items-start gap-3\",\n false: \"items-center gap-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n hasSupportingContent: true,\n },\n },\n);\n\nconst descriptionVariants = cva(\n \"min-w-0 text-sm leading-5 text-current [&_p]:leading-5\",\n {\n variants: {\n variant: {\n default: \"font-light\",\n destructive: \"font-normal\",\n success: \"font-normal\",\n warning: \"font-normal\",\n info: \"font-normal\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\ntype AdsAlertProps = Omit<\n React.ComponentProps<typeof BaseAlert>,\n \"variant\" | \"className\"\n> &\n VariantProps<typeof adsAlertVariants> & {\n className?: string;\n };\n\nconst defaultVariantIcons = {\n default: CircleCheck,\n destructive: CircleAlert,\n success: CircleCheck,\n warning: TriangleAlert,\n info: Info,\n} as const;\n\nfunction isComponentElement<P>(\n child: React.ReactNode,\n component: React.ComponentType<P>,\n): child is React.ReactElement<P> {\n return React.isValidElement(child) && child.type === component;\n}\n\nfunction cloneWithClassName(\n child: React.ReactElement,\n className: string,\n dataSlot: string,\n extraProps?: {\n style?: React.CSSProperties;\n },\n) {\n const element = child as React.ReactElement<{\n className?: string;\n \"data-slot\"?: string;\n style?: React.CSSProperties;\n }>;\n\n return React.cloneElement(element, {\n className: cn(className, element.props.className),\n \"data-slot\": dataSlot,\n style: {\n ...element.props.style,\n ...extraProps?.style,\n },\n });\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AdsAlertProps>(\n ({ children, className, variant, ...props }, ref) => {\n const items = React.Children.toArray(children);\n\n let title: React.ReactElement | null = null;\n let description: React.ReactElement | null = null;\n let icon: React.ReactElement<{ className?: string }> | null = null;\n const extras: React.ReactNode[] = [];\n let hasSeenBodyContent = false;\n\n for (const child of items) {\n if (!title && isComponentElement(child, AlertTitle)) {\n title = child;\n hasSeenBodyContent = true;\n continue;\n }\n\n if (!description && isComponentElement(child, AlertDescription)) {\n description = child;\n hasSeenBodyContent = true;\n continue;\n }\n\n if (\n !icon &&\n !hasSeenBodyContent &&\n React.isValidElement<{ className?: string }>(child)\n ) {\n icon = child;\n continue;\n }\n\n extras.push(child);\n }\n\n const hasSupportingContent = Boolean(description || extras.length > 0);\n const resolvedIcon = cloneWithClassName(\n icon ??\n React.createElement(defaultVariantIcons[variant ?? \"default\"], {\n \"aria-hidden\": true,\n }),\n \"size-4 shrink-0\",\n \"alert-icon\",\n {\n style: { color: \"inherit\" },\n },\n );\n\n const resolvedTitle = title\n ? cloneWithClassName(\n title as React.ReactElement<{ className?: string }>,\n \"min-w-0 text-sm font-medium leading-5 tracking-normal text-current\",\n \"alert-title\",\n )\n : null;\n\n const supportingContent =\n description || extras.length > 0 ? (\n <div className=\"flex min-w-0 w-full flex-col gap-1\" data-slot=\"alert-supporting\">\n {description\n ? cloneWithClassName(\n description as React.ReactElement<{ className?: string }>,\n descriptionVariants({ variant }),\n \"alert-description\",\n )\n : null}\n {extras.length > 0 ? (\n <div\n className={cn(\n \"min-w-0 text-sm leading-5 text-current\",\n \"w-full\",\n \"[&_ol]:list-decimal [&_ol]:pl-[21px] [&_ol]:space-y-0\",\n \"[&_ul]:list-disc [&_ul]:pl-[21px] [&_ul]:space-y-0\",\n )}\n data-slot=\"alert-extra\"\n >\n {extras}\n </div>\n ) : null}\n </div>\n ) : null;\n\n return (\n <BaseAlert\n ref={ref}\n className={cn(\n adsAlertVariants({ variant, hasSupportingContent }),\n className,\n )}\n role=\"alert\"\n {...props}\n >\n {hasSupportingContent ? (\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\" data-slot=\"alert-body\">\n <div className=\"flex min-w-0 items-center gap-3\" data-slot=\"alert-heading-row\">\n {resolvedIcon}\n {resolvedTitle}\n </div>\n {supportingContent ? (\n <div className=\"flex min-w-0 gap-3\" data-slot=\"alert-content-row\">\n <div aria-hidden className=\"size-4 shrink-0\" />\n {supportingContent}\n </div>\n ) : null}\n </div>\n ) : (\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\" data-slot=\"alert-body\">\n <div className=\"flex min-w-0 items-center gap-3\" data-slot=\"alert-heading-row\">\n {resolvedIcon}\n {resolvedTitle ?? children}\n </div>\n </div>\n )}\n </BaseAlert>\n );\n },\n);\nAlert.displayName = \"AdsAlert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <BaseAlertTitle ref={ref} className={cn(className)} {...props} />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <BaseAlertDescription ref={ref} className={cn(className)} {...props} />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Badge as PrimitiveBadge,\n type BadgeProps as PrimitiveBadgeProps,\n} from \"../../primitives/badge\";\n\nconst adsBadgeVariants = cva(\n [\n \"h-5 min-h-5\",\n \"border text-xs font-medium leading-4 tracking-normal\",\n \"shadow-none\",\n \"focus:ring-offset-background\",\n ],\n {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground hover:bg-primary\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary\",\n destructive:\n \"border-transparent bg-destructive text-primary-foreground hover:bg-destructive\",\n outline: \"border-border bg-transparent text-foreground hover:bg-transparent\",\n },\n format: {\n label: \"!rounded-radius-lg px-[10px] py-[2px]\",\n icon: \"!rounded-radius-lg gap-1 px-[10px] py-[2px]\",\n number: \"!rounded-full px-[10px] py-[2px]\",\n },\n },\n compoundVariants: [\n {\n format: \"number\",\n variant: \"outline\",\n className: \"px-1 font-mono\",\n },\n ],\n defaultVariants: {\n format: \"label\",\n variant: \"default\",\n },\n },\n);\n\nexport interface AdsBadgeProps\n extends Omit<PrimitiveBadgeProps, \"variant\">,\n VariantProps<typeof adsBadgeVariants> {\n icon?: React.ReactNode;\n}\n\nfunction renderIcon(icon: React.ReactNode) {\n if (!icon) {\n return null;\n }\n\n if (React.isValidElement<{ className?: string }>(icon)) {\n return React.cloneElement(icon, {\n className: cn(\"h-3 w-3 shrink-0\", icon.props.className),\n });\n }\n\n return <span className=\"inline-flex h-3 w-3 shrink-0 items-center justify-center\">{icon}</span>;\n}\n\nfunction AdsBadge({ children, className, format, icon, variant, ...props }: AdsBadgeProps) {\n const resolvedFormat = format ?? (icon ? \"icon\" : \"label\");\n\n return (\n <PrimitiveBadge\n className={cn(adsBadgeVariants({ format: resolvedFormat, variant }), className)}\n variant={variant}\n {...props}\n >\n {renderIcon(icon)}\n {children}\n </PrimitiveBadge>\n );\n}\n\nexport { AdsBadge };\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../../lib/cn\";\n\nexport type AlertDialogProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Root\n>;\nexport type AlertDialogTriggerProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Trigger\n>;\nexport type AlertDialogPortalProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Portal\n>;\nexport type AlertDialogOverlayProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Overlay\n>;\nexport type AlertDialogActionProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Action\n>;\nexport type AlertDialogCancelProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Cancel\n>;\nexport type AlertDialogTitleProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Title\n>;\nexport type AlertDialogDescriptionProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Description\n>;\n\nexport type AlertDialogContentProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Content\n>;\n\nexport type AlertDialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;\nexport type AlertDialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst overlayClassName =\n \"fixed inset-0 z-50 bg-black/80 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\";\n\nconst contentClassName =\n \"fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-[512px] -translate-x-1/2 -translate-y-1/2 gap-lg rounded-radius-lg border border-border bg-card p-xl text-foreground shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.1),0px_10px_15px_-3px_rgba(0,0,0,0.1)] duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\";\n\nconst actionClassName =\n \"inline-flex h-9 items-center justify-center rounded-radius-md border-0 bg-brand-gradient px-lg py-sm text-sm font-medium leading-5 tracking-normal text-primary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-opacity hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card disabled:pointer-events-none disabled:opacity-[0.65]\";\n\nconst cancelClassName =\n \"inline-flex h-9 items-center justify-center rounded-radius-md border border-border bg-card px-lg py-sm text-sm font-medium leading-5 tracking-normal text-secondary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card disabled:pointer-events-none disabled:opacity-[0.65]\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n AlertDialogOverlayProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(overlayClassName, className)}\n ref={ref}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = \"AlertDialogOverlay\";\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n AlertDialogContentProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n className={cn(contentClassName, className)}\n ref={ref}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = \"AlertDialogContent\";\n\nconst AlertDialogHeader = React.forwardRef<HTMLDivElement, AlertDialogHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\"flex flex-col gap-sm text-left\", className)}\n ref={ref}\n {...props}\n />\n ),\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = React.forwardRef<HTMLDivElement, AlertDialogFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n \"flex flex-col-reverse gap-sm sm:flex-row sm:justify-end\",\n className,\n )}\n ref={ref}\n {...props}\n />\n ),\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n AlertDialogTitleProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n className={cn(\"text-lg font-semibold leading-7 text-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAlertDialogTitle.displayName = \"AlertDialogTitle\";\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n AlertDialogDescriptionProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n className={cn(\"text-sm font-normal leading-5 text-muted-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAlertDialogDescription.displayName = \"AlertDialogDescription\";\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n AlertDialogActionProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n className={cn(actionClassName, className)}\n ref={ref}\n {...props}\n />\n));\nAlertDialogAction.displayName = \"AlertDialogAction\";\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n AlertDialogCancelProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n className={cn(cancelClassName, className)}\n ref={ref}\n {...props}\n />\n));\nAlertDialogCancel.displayName = \"AlertDialogCancel\";\n\nconst AdsAlertDialog = AlertDialog;\nconst AdsAlertDialogTrigger = AlertDialogTrigger;\nconst AdsAlertDialogPortal = AlertDialogPortal;\nconst AdsAlertDialogOverlay = AlertDialogOverlay;\nconst AdsAlertDialogContent = AlertDialogContent;\nconst AdsAlertDialogHeader = AlertDialogHeader;\nconst AdsAlertDialogFooter = AlertDialogFooter;\nconst AdsAlertDialogTitle = AlertDialogTitle;\nconst AdsAlertDialogDescription = AlertDialogDescription;\nconst AdsAlertDialogAction = AlertDialogAction;\nconst AdsAlertDialogCancel = AlertDialogCancel;\n\nexport type AdsAlertDialogProps = AlertDialogProps;\nexport type AdsAlertDialogTriggerProps = AlertDialogTriggerProps;\nexport type AdsAlertDialogPortalProps = AlertDialogPortalProps;\nexport type AdsAlertDialogOverlayProps = AlertDialogOverlayProps;\nexport type AdsAlertDialogContentProps = AlertDialogContentProps;\nexport type AdsAlertDialogHeaderProps = AlertDialogHeaderProps;\nexport type AdsAlertDialogFooterProps = AlertDialogFooterProps;\nexport type AdsAlertDialogTitleProps = AlertDialogTitleProps;\nexport type AdsAlertDialogDescriptionProps = AlertDialogDescriptionProps;\nexport type AdsAlertDialogActionProps = AlertDialogActionProps;\nexport type AdsAlertDialogCancelProps = AlertDialogCancelProps;\n\nexport {\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n AdsAlertDialog,\n AdsAlertDialogTrigger,\n AdsAlertDialogPortal,\n AdsAlertDialogOverlay,\n AdsAlertDialogContent,\n AdsAlertDialogHeader,\n AdsAlertDialogFooter,\n AdsAlertDialogTitle,\n AdsAlertDialogDescription,\n AdsAlertDialogAction,\n AdsAlertDialogCancel,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { useAdsI18n } from \"../../i18n\";\nimport { cn } from \"../../lib/cn\";\nimport { Button, type ButtonProps } from \"../../primitives/button\";\nimport type { AdsIntent, AdsSize } from \"../shared/types\";\n\nconst intentClassName: Record<AdsIntent, string> = {\n brand:\n \"border-0 bg-brand-gradient text-primary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] hover:opacity-90\",\n primary:\n \"border-0 bg-primary text-primary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] hover:bg-brand-primary-hover\",\n secondary:\n \"border border-border bg-card text-secondary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] hover:bg-accent\",\n tertiary:\n \"border-0 bg-card text-foreground shadow-none hover:bg-accent hover:shadow-[0px_1px_2px_rgba(0,0,0,0.1)]\",\n ghost:\n \"border-0 bg-card text-foreground shadow-none hover:bg-accent hover:shadow-[0px_1px_2px_rgba(0,0,0,0.1)]\",\n danger:\n \"border-0 bg-destructive text-primary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] hover:bg-destructive/90\",\n destructive:\n \"border-0 bg-destructive text-primary-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] hover:bg-destructive/90\",\n link: \"border-0 bg-transparent text-primary shadow-none underline-offset-2 hover:bg-transparent hover:text-primary hover:underline\",\n};\n\nconst sizeClassName: Record<AdsSize, string> = {\n sm: \"!h-8 px-md py-sm\",\n md: \"!h-9 px-lg py-sm\",\n lg: \"!h-10 px-xl py-[10px]\",\n};\n\nconst focusClassName: Record<AdsIntent, string> = {\n brand:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n primary:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n secondary:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n tertiary:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n ghost:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n danger:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n destructive:\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n link: \"focus-visible:border focus-visible:border-ring focus-visible:ring-0 focus-visible:ring-offset-0\",\n};\n\nexport interface AdsButtonProps\n extends Omit<ButtonProps, \"size\" | \"variant\" | \"disabled\"> {\n icon?: React.ReactNode;\n intent?: AdsIntent;\n leadingIcon?: React.ReactNode;\n size?: AdsSize;\n loading?: boolean;\n loadingLabel?: string;\n disabled?: boolean;\n}\n\nfunction renderLeadingIcon(icon: React.ReactNode) {\n if (!icon) {\n return null;\n }\n\n if (React.isValidElement<{ className?: string }>(icon)) {\n const sizedIcon = React.cloneElement(icon, {\n className: cn(\"!h-4 !w-4 h-4 w-4\", icon.props.className),\n });\n\n return (\n <span className=\"inline-flex h-4 w-4 items-center justify-center [&>svg]:!h-4 [&>svg]:!w-4\">\n {sizedIcon}\n </span>\n );\n }\n\n return <span className=\"inline-flex h-4 w-4 items-center justify-center\">{icon}</span>;\n}\n\nfunction AdsButtonLoadingIcon() {\n return (\n <svg\n aria-hidden\n className=\"!h-4 !w-4 h-4 w-4 animate-spin\"\n data-testid=\"ads-button-loading-icon\"\n fill=\"none\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth=\"1.6\"\n transform=\"translate(1.675 1.675)\"\n >\n <path d=\"M8.1667 0.6667V3.1667\" />\n <path d=\"M8.1667 13.1667V15.6667\" />\n <path d=\"M15.6667 8.1667H13.1667\" />\n <path d=\"M3.1667 8.1667H0.6667\" />\n <path d=\"M13.4696 2.8631L11.7018 4.6309\" />\n <path d=\"M4.6317 11.7018L2.8639 13.4696\" />\n <path d=\"M13.4696 13.4696L11.7018 11.7018\" />\n <path d=\"M4.6317 4.6309L2.8639 2.8631\" />\n </g>\n </svg>\n );\n}\n\nexport const AdsButton = React.forwardRef<HTMLButtonElement, AdsButtonProps>(\n (\n {\n children,\n className,\n disabled = false,\n icon,\n intent = \"brand\",\n leadingIcon,\n loading = false,\n loadingLabel,\n size = \"md\",\n type = \"button\",\n ...props\n },\n ref,\n ) => {\n const { messages } = useAdsI18n();\n const isDisabled = disabled || loading;\n const resolvedIcon = icon ?? leadingIcon;\n const resolvedLoadingLabel = loadingLabel ?? messages.button.loading;\n const hasTextContent = React.Children.count(children) > 0;\n const isIconOnly = Boolean(resolvedIcon) && !hasTextContent;\n\n return (\n <Button\n aria-busy={loading || undefined}\n className={cn(\n \"min-w-0 rounded-radius-md text-sm font-medium leading-5 tracking-normal\",\n \"active:translate-y-px\",\n \"active:not-aria-[haspopup]:translate-y-px\",\n \"focus-visible:outline-none\",\n \"disabled:pointer-events-none\",\n intentClassName[intent],\n focusClassName[intent],\n sizeClassName[size],\n isIconOnly &&\n (size === \"sm\"\n ? \"!w-8 px-0\"\n : size === \"lg\"\n ? \"!w-10 px-0\"\n : \"!w-9 px-0\"),\n loading ? \"disabled:opacity-100\" : \"disabled:opacity-[0.65]\",\n className,\n )}\n disabled={isDisabled}\n ref={ref}\n type={type}\n variant=\"ghost\"\n {...props}\n >\n <span className=\"inline-flex items-center justify-center gap-1\">\n <span className=\"inline-flex items-center justify-center gap-sm\">\n {renderLeadingIcon(resolvedIcon)}\n {hasTextContent ? <span>{children}</span> : null}\n </span>\n {loading ? (\n <>\n <AdsButtonLoadingIcon />\n <span className=\"sr-only\">{resolvedLoadingLabel}</span>\n </>\n ) : null}\n </span>\n </Button>\n );\n },\n);\nAdsButton.displayName = \"AdsButton\";\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronRight, MoreHorizontal, Slash } from \"lucide-react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Breadcrumb as PrimitiveBreadcrumb,\n BreadcrumbEllipsis as PrimitiveBreadcrumbEllipsis,\n BreadcrumbItem as PrimitiveBreadcrumbItem,\n BreadcrumbLink as PrimitiveBreadcrumbLink,\n BreadcrumbList as PrimitiveBreadcrumbList,\n BreadcrumbPage as PrimitiveBreadcrumbPage,\n BreadcrumbSeparator as PrimitiveBreadcrumbSeparator,\n} from \"../../primitives/breadcrumb\";\n\nexport type AdsBreadcrumbSeparatorIcon = \"chevron\" | \"slash\";\n\nexport type AdsBreadcrumbProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveBreadcrumb\n>;\n\nexport const AdsBreadcrumb = React.forwardRef<\n React.ElementRef<typeof PrimitiveBreadcrumb>,\n AdsBreadcrumbProps\n>(({ className, ...props }, ref) => (\n <PrimitiveBreadcrumb className={cn(\"w-full\", className)} ref={ref} {...props} />\n));\nAdsBreadcrumb.displayName = \"AdsBreadcrumb\";\n\nexport type AdsBreadcrumbListProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveBreadcrumbList\n>;\n\nexport const AdsBreadcrumbList = React.forwardRef<\n React.ElementRef<typeof PrimitiveBreadcrumbList>,\n AdsBreadcrumbListProps\n>(({ className, ...props }, ref) => (\n <PrimitiveBreadcrumbList\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm leading-5 text-muted-foreground\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsBreadcrumbList.displayName = \"AdsBreadcrumbList\";\n\nexport type AdsBreadcrumbItemProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveBreadcrumbItem\n>;\n\nexport const AdsBreadcrumbItem = React.forwardRef<\n React.ElementRef<typeof PrimitiveBreadcrumbItem>,\n AdsBreadcrumbItemProps\n>(({ className, ...props }, ref) => (\n <PrimitiveBreadcrumbItem\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsBreadcrumbItem.displayName = \"AdsBreadcrumbItem\";\n\nexport type AdsBreadcrumbLinkProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveBreadcrumbLink\n>;\n\nexport const AdsBreadcrumbLink = React.forwardRef<\n React.ElementRef<typeof PrimitiveBreadcrumbLink>,\n AdsBreadcrumbLinkProps\n>(({ className, ...props }, ref) => (\n <PrimitiveBreadcrumbLink\n className={cn(\n \"text-sm font-normal leading-5 text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsBreadcrumbLink.displayName = \"AdsBreadcrumbLink\";\n\nexport type AdsBreadcrumbPageProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveBreadcrumbPage\n>;\n\nexport const AdsBreadcrumbPage = React.forwardRef<\n React.ElementRef<typeof PrimitiveBreadcrumbPage>,\n AdsBreadcrumbPageProps\n>(({ className, ...props }, ref) => (\n <PrimitiveBreadcrumbPage\n className={cn(\"text-sm font-normal leading-5 text-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsBreadcrumbPage.displayName = \"AdsBreadcrumbPage\";\n\nexport interface AdsBreadcrumbSeparatorProps\n extends React.ComponentPropsWithoutRef<typeof PrimitiveBreadcrumbSeparator> {\n icon?: AdsBreadcrumbSeparatorIcon;\n}\n\nconst separatorIcons: Record<AdsBreadcrumbSeparatorIcon, React.ReactNode> = {\n chevron: <ChevronRight className=\"size-3.5\" />,\n slash: <Slash className=\"size-3.5\" />,\n};\n\nexport const AdsBreadcrumbSeparator = ({\n children,\n className,\n icon = \"chevron\",\n ...props\n}: AdsBreadcrumbSeparatorProps) => (\n <PrimitiveBreadcrumbSeparator\n className={cn(\"text-muted-foreground [&_svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? separatorIcons[icon]}\n </PrimitiveBreadcrumbSeparator>\n);\nAdsBreadcrumbSeparator.displayName = \"AdsBreadcrumbSeparator\";\n\nexport type AdsBreadcrumbEllipsisProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveBreadcrumbEllipsis\n>;\n\nexport const AdsBreadcrumbEllipsis = ({\n className,\n children,\n ...props\n}: AdsBreadcrumbEllipsisProps) => (\n <PrimitiveBreadcrumbEllipsis\n className={cn(\"size-3.5 text-muted-foreground\", className)}\n {...props}\n >\n {children ?? <MoreHorizontal className=\"size-3.5\" />}\n </PrimitiveBreadcrumbEllipsis>\n);\nAdsBreadcrumbEllipsis.displayName = \"AdsBreadcrumbEllipsis\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../lib/cn\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\">\n>(({ className, ...props }, ref) => (\n <nav\n aria-label=\"breadcrumb\"\n className={cn(\"w-full\", className)}\n ref={ref}\n {...props}\n />\n));\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n ref={ref}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\ntype BreadcrumbLinkProps = React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n};\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n ({ asChild = false, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return <Comp className={cn(\"transition-colors\", className)} ref={ref} {...props} />;\n },\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={cn(\"font-normal text-foreground\", className)}\n ref={ref}\n role=\"link\"\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentPropsWithoutRef<\"li\">) => (\n <li\n aria-hidden=\"true\"\n className={cn(\"[&_svg]:size-3.5\", className)}\n role=\"presentation\"\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<\"span\">) => (\n <span\n aria-hidden=\"true\"\n className={cn(\"flex size-3.5 items-center justify-center\", className)}\n role=\"presentation\"\n {...props}\n >\n <MoreHorizontal className=\"size-3.5\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Checkbox as PrimitiveCheckbox } from \"../../primitives/checkbox\";\nimport { AdsFieldCheckboxRow } from \"../AdsField\";\n\ntype PrimitiveCheckboxProps = React.ComponentPropsWithoutRef<typeof PrimitiveCheckbox>;\n\nconst checkboxBaseClassName =\n \"h-4 w-4 rounded-[4px] border-border bg-card text-primary shadow-[0px_1px_2px_rgba(0,0,0,0.1)] focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\";\n\nexport const Checkbox = React.forwardRef<\n React.ElementRef<typeof PrimitiveCheckbox>,\n PrimitiveCheckboxProps\n>(({ className, ...props }, ref) => (\n <PrimitiveCheckbox className={cn(checkboxBaseClassName, className)} ref={ref} {...props} />\n));\nCheckbox.displayName = \"Checkbox\";\n\nexport interface AdsCheckboxProps extends PrimitiveCheckboxProps {\n checkboxClassName?: string;\n description?: React.ReactNode;\n label?: React.ReactNode;\n wrapperClassName?: string;\n}\n\nexport const AdsCheckbox = React.forwardRef<\n React.ElementRef<typeof PrimitiveCheckbox>,\n AdsCheckboxProps\n>(({ checkboxClassName, className, description, id, label, wrapperClassName, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n\n if (!label) {\n return (\n <Checkbox\n className={cn(className, checkboxClassName)}\n id={inputId}\n ref={ref}\n {...props}\n />\n );\n }\n\n return (\n <label className={cn(\"block w-full cursor-pointer\", wrapperClassName)} htmlFor={inputId}>\n <AdsFieldCheckboxRow\n control={\n <Checkbox\n className={cn(className, checkboxClassName)}\n id={inputId}\n ref={ref}\n {...props}\n />\n }\n description={description}\n label={label}\n />\n </label>\n );\n});\nAdsCheckbox.displayName = \"AdsCheckbox\";\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"grid place-content-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Field as PrimitiveField,\n FieldDescription as PrimitiveFieldDescription,\n FieldError as PrimitiveFieldError,\n FieldGroup as PrimitiveFieldGroup,\n FieldLabel as PrimitiveFieldLabel,\n FieldLegend as PrimitiveFieldLegend,\n FieldSeparator as PrimitiveFieldSeparator,\n FieldSet as PrimitiveFieldSet,\n FieldTitle as PrimitiveFieldTitle,\n} from \"../../primitives/field\";\n\nexport type AdsFieldDescriptionPlacement = \"above\" | \"below\";\n\ntype UseAdsFieldDescriptionParams = {\n describedBy?: string;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n id?: string;\n};\n\nexport type AdsFieldDescriptionState = {\n describedBy?: string;\n errorId?: string;\n helperId?: string;\n inputId: string;\n};\n\nexport function useAdsFieldDescription({\n describedBy,\n errorText,\n helperText,\n id,\n}: UseAdsFieldDescriptionParams): AdsFieldDescriptionState {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const helperId = helperText ? `${inputId}-helper` : undefined;\n const errorId = errorText ? `${inputId}-error` : undefined;\n const descriptionIds = [describedBy, helperId, errorId].filter(Boolean).join(\" \");\n\n return {\n describedBy: descriptionIds || undefined,\n errorId,\n helperId,\n inputId,\n };\n}\n\nexport const AdsField = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldGroup>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldGroup\n className={cn(\"w-full gap-7\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsField.displayName = \"AdsField\";\n\ntype AdsFieldHeaderProps = React.ComponentPropsWithoutRef<\"div\"> & {\n description?: React.ReactNode;\n title: React.ReactNode;\n};\n\nexport const AdsFieldHeader = React.forwardRef<HTMLDivElement, AdsFieldHeaderProps>(\n ({ className, description, title, ...props }, ref) => (\n <div className={cn(\"flex w-full flex-col gap-3\", className)} ref={ref} {...props}>\n <PrimitiveFieldTitle className=\"w-full text-base font-medium leading-6 text-foreground\">\n {title}\n </PrimitiveFieldTitle>\n {description ? (\n <PrimitiveFieldDescription className=\"w-full text-sm leading-5 text-muted-foreground\">\n {description}\n </PrimitiveFieldDescription>\n ) : null}\n </div>\n ),\n);\nAdsFieldHeader.displayName = \"AdsFieldHeader\";\n\nexport const AdsFieldItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveField>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <PrimitiveField\n className={cn(\"w-full gap-3\", className)}\n orientation={orientation}\n ref={ref}\n {...props}\n />\n));\nAdsFieldItem.displayName = \"AdsFieldItem\";\n\nexport const AdsFieldLabel = React.forwardRef<\n React.ElementRef<typeof PrimitiveFieldLabel>,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldLabel>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldLabel\n className={cn(\"w-full text-sm font-medium leading-5 text-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldLabel.displayName = \"AdsFieldLabel\";\n\nexport const AdsFieldLegend = React.forwardRef<\n React.ElementRef<typeof PrimitiveFieldLegend>,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldLegend>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldLegend\n className={cn(\"mb-3 text-base font-medium leading-6 text-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldLegend.displayName = \"AdsFieldLegend\";\n\nexport const AdsFieldDescription = React.forwardRef<\n React.ElementRef<typeof PrimitiveFieldDescription>,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldDescription>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldDescription\n className={cn(\"text-sm leading-5 text-muted-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldDescription.displayName = \"AdsFieldDescription\";\n\nexport const AdsFieldError = React.forwardRef<\n React.ElementRef<typeof PrimitiveFieldError>,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldError>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldError\n className={cn(\"text-sm leading-5 text-destructive\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldError.displayName = \"AdsFieldError\";\n\nexport const AdsFieldSeparator = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldSeparator>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldSeparator\n className={cn(\"py-2 text-muted-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldSeparator.displayName = \"AdsFieldSeparator\";\n\nexport const AdsFieldGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldGroup>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldGroup\n className={cn(\"w-full gap-6\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldGroup.displayName = \"AdsFieldGroup\";\n\nexport const AdsFieldSet = React.forwardRef<\n HTMLFieldSetElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveFieldSet>\n>(({ className, ...props }, ref) => (\n <PrimitiveFieldSet className={cn(\"w-full gap-6\", className)} ref={ref} {...props} />\n));\nAdsFieldSet.displayName = \"AdsFieldSet\";\n\ntype AdsFieldCheckboxRowProps = React.ComponentPropsWithoutRef<\"div\"> & {\n control: React.ReactNode;\n description?: React.ReactNode;\n label: React.ReactNode;\n};\n\nexport const AdsFieldCheckboxRow = React.forwardRef<HTMLDivElement, AdsFieldCheckboxRowProps>(\n ({ className, control, description, label, ...props }, ref) => (\n <div\n className={cn(\"flex w-full items-start gap-3\", description ? \"min-h-5\" : \"items-center\", className)}\n ref={ref}\n {...props}\n >\n <div className=\"shrink-0 pt-px\">{control}</div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n <div className=\"text-sm leading-5 text-foreground\">{label}</div>\n {description ? (\n <AdsFieldDescription className=\"text-sm leading-5\">{description}</AdsFieldDescription>\n ) : null}\n </div>\n </div>\n ),\n);\nAdsFieldCheckboxRow.displayName = \"AdsFieldCheckboxRow\";\n\ntype AdsFieldChoiceCardProps = React.ComponentPropsWithoutRef<\"label\"> & {\n checked?: boolean;\n control?: React.ReactNode;\n description?: React.ReactNode;\n title: React.ReactNode;\n};\n\nexport const AdsFieldChoiceCard = React.forwardRef<HTMLLabelElement, AdsFieldChoiceCardProps>(\n ({ checked, className, control, description, title, ...props }, ref) => (\n <label\n className={cn(\n \"flex w-full items-start gap-3 rounded-radius-md border border-border bg-card p-md shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-colors\",\n checked ? \"border-primary bg-primary/5\" : undefined,\n className,\n )}\n ref={ref}\n {...props}\n >\n {control ? <div className=\"shrink-0 pt-px\">{control}</div> : null}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n <div className=\"text-sm font-medium leading-5 text-foreground\">{title}</div>\n {description ? (\n <AdsFieldDescription className=\"text-sm leading-5\">{description}</AdsFieldDescription>\n ) : null}\n </div>\n </label>\n ),\n);\nAdsFieldChoiceCard.displayName = \"AdsFieldChoiceCard\";\n\nexport const AdsFieldActions = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n className={cn(\"flex w-full flex-wrap items-center gap-3\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsFieldActions.displayName = \"AdsFieldActions\";\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/primitives/label\"\nimport { Separator } from \"@/primitives/separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field data-[invalid=true]:text-destructive flex w-full gap-3\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start\",\n ],\n responsive: [\n \"@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors) {\n return null\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return errors[0].message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","\"use client\";\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"../../lib/cn\"\nimport { Input } from \"../../primitives/input\";\nimport {\n ButtonGroupSeparator as PrimitiveButtonGroupSeparator,\n buttonGroupVariants,\n} from \"../../primitives/button-group\";\nimport { AdsButton, type AdsButtonProps } from \"../AdsButton\";\nimport type { AdsSize } from \"../shared/types\";\n\nconst buttonGroupPressClassName =\n \"[&_button]:transition-[background-color,box-shadow,filter] [&_button]:active:translate-y-0 [&_button]:active:brightness-95\";\n\nconst segmentSizeClassName: Record<AdsSize, string> = {\n sm: \"h-8 px-md text-sm\",\n md: \"h-9 px-lg text-sm\",\n lg: \"h-10 px-xl text-base\",\n};\n\ntype AdsButtonGroupSurface = \"default\" | \"secondary\" | \"pill\";\ntype AdsButtonGroupTextTone = \"default\" | \"muted\" | \"secondary\" | \"field\";\ntype PrimitiveInputProps = React.ComponentPropsWithoutRef<typeof Input>;\n\nexport interface AdsButtonGroupProps\n extends Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\"> {\n attached?: boolean;\n children: React.ReactNode;\n gap?: \"none\" | \"sm\" | \"md\";\n orientation?: \"horizontal\" | \"vertical\";\n size?: AdsSize;\n surface?: AdsButtonGroupSurface;\n variant?: \"connected\" | \"default\";\n}\n\nexport interface AdsButtonGroupTextProps\n extends React.ComponentPropsWithoutRef<\"div\"> {\n align?: \"start\" | \"center\" | \"between\";\n asChild?: boolean;\n shape?: \"default\" | \"pill\";\n size?: AdsSize;\n tone?: AdsButtonGroupTextTone;\n}\n\nexport interface AdsButtonGroupInputProps\n extends Omit<PrimitiveInputProps, \"aria-invalid\" | \"prefix\" | \"size\"> {\n size?: AdsSize;\n}\n\nfunction isAdsButtonElement(\n child: React.ReactNode,\n): child is React.ReactElement<AdsButtonProps, typeof AdsButton> {\n return React.isValidElement(child) && child.type === AdsButton;\n}\n\nfunction enhanceChildren(\n children: React.ReactNode,\n attached: boolean,\n size: AdsSize | undefined,\n surface: AdsButtonGroupSurface,\n) {\n return React.Children.map(children, (child) => {\n if (!isAdsButtonElement(child)) {\n return child;\n }\n\n return React.cloneElement(child, {\n className: cn(\n attached &&\n \"rounded-none shadow-none\",\n attached &&\n surface === \"secondary\" &&\n \"bg-secondary hover:bg-secondary/90\",\n child.props.className,\n ),\n size: child.props.size ?? size,\n });\n });\n}\n\nconst AdsButtonGroup = React.forwardRef<\n HTMLDivElement,\n AdsButtonGroupProps\n>(\n (\n {\n attached = true,\n children,\n className,\n gap,\n orientation = \"horizontal\",\n size,\n surface = \"default\",\n variant = \"default\",\n ...props\n },\n ref,\n ) => {\n const isVertical = orientation === \"vertical\";\n const resolvedAttached = attached || variant === \"connected\";\n const resolvedGapClassName =\n gap === \"none\"\n ? \"gap-0\"\n : gap === \"sm\"\n ? \"gap-sm\"\n : gap === \"md\"\n ? \"gap-md\"\n : resolvedAttached && isVertical\n ? \"gap-0\"\n : \"gap-2\";\n const attachedClassName = cn(\n buttonGroupVariants({ orientation }),\n surface === \"pill\" ? \"rounded-full\" : \"rounded-radius-md\",\n );\n\n return (\n <div\n aria-orientation={orientation}\n className={cn(\n \"inline-flex w-fit items-stretch\",\n isVertical ? \"flex-col\" : \"flex-row\",\n resolvedGapClassName,\n resolvedAttached && attachedClassName,\n buttonGroupPressClassName,\n className,\n )}\n data-attached={resolvedAttached ? \"true\" : \"false\"}\n data-orientation={orientation}\n data-surface={surface}\n data-slot=\"button-group\"\n data-variant={variant}\n role=\"group\"\n ref={ref}\n {...props}\n >\n {enhanceChildren(children, resolvedAttached, size, surface)}\n </div>\n )\n});\n\nAdsButtonGroup.displayName = \"AdsButtonGroup\"\n\nconst textToneClassName: Record<AdsButtonGroupTextTone, string> = {\n default: \"bg-transparent text-foreground\",\n muted: \"bg-transparent text-muted-foreground\",\n secondary: \"bg-secondary text-secondary-foreground\",\n field: \"bg-transparent text-muted-foreground\",\n};\n\nconst textAlignClassName: Record<NonNullable<AdsButtonGroupTextProps[\"align\"]>, string> = {\n start: \"justify-start\",\n center: \"justify-center\",\n between: \"justify-between\",\n};\n\nconst inputSizeClassName: Record<AdsSize, string> = {\n sm: \"h-8 text-sm leading-5\",\n md: \"h-9 text-sm leading-5\",\n lg: \"h-10 text-base leading-6\",\n};\n\nconst AdsButtonGroupText = React.forwardRef<HTMLDivElement, AdsButtonGroupTextProps>(\n (\n {\n align = \"start\",\n asChild = false,\n className,\n shape = \"default\",\n size = \"md\",\n tone = \"default\",\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n className={cn(\n \"inline-flex min-w-0 items-center gap-sm border border-border font-medium leading-5 shadow-[0px_1px_2px_rgba(0,0,0,0.08)] outline-none\",\n segmentSizeClassName[size],\n textToneClassName[tone],\n textAlignClassName[align],\n shape === \"pill\" ? \"rounded-full\" : \"rounded-radius-md\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n data-slot=\"button-group-text\"\n ref={ref}\n {...props}\n />\n );\n },\n);\n\nAdsButtonGroupText.displayName = \"AdsButtonGroupText\";\n\nconst AdsButtonGroupInput = React.forwardRef<\n HTMLInputElement,\n AdsButtonGroupInputProps\n>(({ className, size = \"md\", type = \"text\", ...props }, ref) => (\n <Input\n className={cn(\n \"min-w-0 rounded-none bg-card px-md py-0 text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-0 focus-visible:ring-offset-0 focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50\",\n inputSizeClassName[size],\n className,\n )}\n ref={ref}\n type={type}\n {...props}\n />\n));\n\nAdsButtonGroupInput.displayName = \"AdsButtonGroupInput\";\n\nconst AdsButtonGroupSeparator = PrimitiveButtonGroupSeparator;\n\nexport { AdsButtonGroup, AdsButtonGroupInput, AdsButtonGroupSeparator, AdsButtonGroupText };\nexport type AdsButtonGroupSeparatorProps = React.ComponentProps<\n typeof PrimitiveButtonGroupSeparator\n>;\nexport { buttonGroupVariants };\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/primitives/separator\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-muted shadow-xs flex items-center gap-2 rounded-md border px-4 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"pointer-events-none relative !m-0 shrink-0 self-stretch overflow-visible bg-transparent\",\n \"data-[orientation=vertical]:h-auto data-[orientation=vertical]:w-0\",\n \"data-[orientation=horizontal]:h-0 data-[orientation=horizontal]:w-full\",\n \"data-[orientation=vertical]:before:absolute data-[orientation=vertical]:before:inset-y-0 data-[orientation=vertical]:before:left-0 data-[orientation=vertical]:before:w-px data-[orientation=vertical]:before:bg-border\",\n \"data-[orientation=horizontal]:before:absolute data-[orientation=horizontal]:before:inset-x-0 data-[orientation=horizontal]:before:top-0 data-[orientation=horizontal]:before:h-px data-[orientation=horizontal]:before:bg-border\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Separator as PrimitiveSeparator } from \"../../primitives/separator\";\n\nexport interface AdsSeparatorProps\n extends React.ComponentPropsWithoutRef<typeof PrimitiveSeparator> {\n tone?: \"default\" | \"muted\";\n}\n\nconst toneClassName: Record<NonNullable<AdsSeparatorProps[\"tone\"]>, string> = {\n default: \"bg-border\",\n muted: \"bg-border-muted\",\n};\n\nexport const AdsSeparator = React.forwardRef<\n React.ElementRef<typeof PrimitiveSeparator>,\n AdsSeparatorProps\n>(({ className, orientation = \"horizontal\", tone = \"default\", ...props }, ref) => (\n <PrimitiveSeparator\n className={cn(\n \"shrink-0\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n toneClassName[tone],\n className,\n )}\n orientation={orientation}\n ref={ref}\n {...props}\n />\n));\nAdsSeparator.displayName = \"AdsSeparator\";\n\nexport const Separator = AdsSeparator;\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Skeleton as PrimitiveSkeleton,\n type SkeletonProps as PrimitiveSkeletonProps,\n} from \"../../primitives/skeleton\";\n\nexport interface AdsSkeletonProps extends PrimitiveSkeletonProps {\n shape?: \"default\" | \"line\" | \"circle\";\n tone?: \"default\" | \"muted\";\n}\n\nconst shapeClassName: Record<NonNullable<AdsSkeletonProps[\"shape\"]>, string> = {\n default: \"rounded-radius-md\",\n line: \"h-4 w-full rounded-full\",\n circle: \"rounded-full\",\n};\n\nconst toneClassName: Record<NonNullable<AdsSkeletonProps[\"tone\"]>, string> = {\n default: \"bg-secondary\",\n muted: \"bg-accent\",\n};\n\nexport const AdsSkeleton = React.forwardRef<HTMLDivElement, AdsSkeletonProps>(\n ({ className, shape = \"default\", tone = \"default\", ...props }, ref) => (\n <PrimitiveSkeleton\n className={cn(shapeClassName[shape], toneClassName[tone], className)}\n ref={ref}\n {...props}\n />\n ),\n);\nAdsSkeleton.displayName = \"AdsSkeleton\";\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n animated?: boolean;\n}\n\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ animated = true, className, ...props }, ref) => (\n <div\n className={cn(\n \"shrink-0 bg-accent\",\n animated ? \"animate-pulse\" : undefined,\n className,\n )}\n ref={ref}\n {...props}\n />\n ),\n);\nSkeleton.displayName = \"Skeleton\";\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { useAdsI18n } from \"../../i18n\";\nimport { cn } from \"../../lib/cn\";\nimport { Input } from \"../../primitives/input\";\nimport {\n AdsFieldDescription,\n type AdsFieldDescriptionPlacement,\n AdsFieldError,\n AdsFieldItem,\n AdsFieldLabel,\n useAdsFieldDescription,\n} from \"../AdsField\";\nimport type { AdsSize } from \"../shared/types\";\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Input>;\n\nconst inputBaseClassName =\n \"flex w-full rounded-md border border-border bg-card px-3 py-2 ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\";\n\nconst inputSizeClasses: Record<AdsSize, string> = {\n sm: \"h-8 text-sm leading-5\",\n md: \"h-9 text-base leading-6\",\n lg: \"h-10 text-base leading-6\",\n};\n\ntype AdsInputChromeProps = {\n descriptionPlacement?: AdsFieldDescriptionPlacement;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport interface AdsInputProps\n extends Omit<InputProps, \"aria-invalid\" | \"size\" | \"prefix\">,\n AdsInputChromeProps {\n action?: React.ReactNode;\n emptyFileLabel?: string;\n fileTriggerLabel?: string;\n prefix?: React.ReactNode;\n size?: AdsSize;\n suffix?: React.ReactNode;\n}\n\nfunction getInputSurfaceClassName({\n className,\n errorText,\n hasPrefix,\n hasSuffix,\n size,\n}: {\n className: string | undefined;\n errorText: React.ReactNode;\n hasPrefix: boolean;\n hasSuffix: boolean;\n size: AdsSize;\n}) {\n return cn(\n inputBaseClassName,\n inputSizeClasses[size],\n errorText\n ? \"border-destructive focus-visible:border-destructive\"\n : \"focus-visible:border-border-focus\",\n \"focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)]\",\n hasPrefix ? \"pl-2xl\" : undefined,\n hasSuffix ? \"pr-2xl\" : undefined,\n className,\n );\n}\n\nexport const AdsInput = React.forwardRef<HTMLInputElement, AdsInputProps>(\n (\n {\n action,\n className,\n descriptionPlacement = \"below\",\n emptyFileLabel,\n errorText,\n fileTriggerLabel,\n helperText,\n id,\n label,\n onChange,\n prefix,\n type = \"text\",\n size = \"md\",\n suffix,\n ...props\n },\n ref,\n ) => {\n const { messages } = useAdsI18n();\n const [selectedFiles, setSelectedFiles] = React.useState<string[]>([]);\n const description = useAdsFieldDescription({\n describedBy: props[\"aria-describedby\"],\n errorText,\n helperText,\n id,\n });\n const inputSurfaceClassName = getInputSurfaceClassName({\n className,\n errorText,\n hasPrefix: Boolean(prefix),\n hasSuffix: Boolean(suffix),\n size,\n });\n const isFileInput = type === \"file\";\n const resolvedFileTriggerLabel = fileTriggerLabel ?? messages.input.chooseFile;\n const resolvedEmptyFileLabel = emptyFileLabel ?? messages.input.noFileChosen;\n\n const handleChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFileInput) {\n setSelectedFiles(Array.from(event.target.files ?? [], (file) => file.name));\n }\n onChange?.(event);\n },\n [isFileInput, onChange],\n );\n\n const fileNameText =\n selectedFiles.length > 0 ? selectedFiles.join(\", \") : resolvedEmptyFileLabel;\n\n const helperNode = helperText ? (\n <AdsFieldDescription id={description.helperId}>{helperText}</AdsFieldDescription>\n ) : null;\n const errorNode = errorText ? (\n <AdsFieldError id={description.errorId}>{errorText}</AdsFieldError>\n ) : null;\n\n const inputNode = isFileInput ? (\n <div className=\"relative flex w-full min-w-0 flex-1 items-center\">\n <Input\n aria-describedby={description.describedBy}\n aria-invalid={errorText ? true : undefined}\n className={cn(\n inputSurfaceClassName,\n \"absolute inset-0 z-10 cursor-pointer opacity-0 file:hidden\",\n props.disabled ? \"cursor-not-allowed\" : undefined,\n )}\n id={description.inputId}\n onChange={handleChange}\n ref={ref}\n type=\"file\"\n {...props}\n />\n <div\n aria-hidden=\"true\"\n className={cn(\n inputSurfaceClassName,\n \"items-center text-sm leading-5\",\n props.disabled ? \"cursor-not-allowed opacity-50\" : undefined,\n )}\n >\n <span className=\"shrink-0 pr-sm text-sm font-medium leading-5 text-foreground\">\n {resolvedFileTriggerLabel}\n </span>\n <span\n className={cn(\n \"min-w-0 flex-1 truncate text-sm leading-5\",\n selectedFiles.length > 0 ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {fileNameText}\n </span>\n </div>\n </div>\n ) : (\n <div className=\"relative flex w-full min-w-0 flex-1 items-center\">\n {prefix ? (\n <span className=\"pointer-events-none absolute left-md inline-flex text-icon-muted\">\n {prefix}\n </span>\n ) : null}\n <Input\n aria-describedby={description.describedBy}\n aria-invalid={errorText ? true : undefined}\n className={inputSurfaceClassName}\n id={description.inputId}\n onChange={handleChange}\n ref={ref}\n type={type}\n {...props}\n />\n {suffix ? (\n <span className=\"absolute right-md inline-flex items-center text-icon-muted\">\n {suffix}\n </span>\n ) : null}\n </div>\n );\n\n return (\n <AdsFieldItem>\n {label ? <AdsFieldLabel htmlFor={description.inputId}>{label}</AdsFieldLabel> : null}\n {descriptionPlacement === \"above\" ? helperNode : null}\n <div className=\"flex w-full items-center gap-sm\">\n {inputNode}\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n {descriptionPlacement === \"below\" ? helperNode : null}\n {errorNode}\n </AdsFieldItem>\n );\n },\n);\nAdsInput.displayName = \"AdsInput\";\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Input } from \"../../primitives/input\";\nimport { Textarea } from \"../../primitives/textarea\";\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Input>;\ntype TextareaProps = React.ComponentPropsWithoutRef<typeof Textarea>;\n\ntype AdsInputGroupChromeProps = {\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n label?: React.ReactNode;\n};\n\ntype AdsInputGroupDescription = {\n describedBy?: string;\n errorId?: string;\n helperId?: string;\n};\n\nfunction useAdsInputGroupDescription(\n describedBy: string | undefined,\n helperText: React.ReactNode,\n errorText: React.ReactNode,\n idBase: string,\n): AdsInputGroupDescription {\n const helperId = helperText ? `${idBase}-helper` : undefined;\n const errorId = errorText ? `${idBase}-error` : undefined;\n const descriptionIds = [describedBy, helperId, errorId].filter(Boolean).join(\" \");\n\n return {\n describedBy: descriptionIds || undefined,\n errorId,\n helperId,\n };\n}\n\nfunction AdsInputGroupChrome({\n children,\n errorId,\n errorText,\n helperId,\n helperText,\n label,\n}: AdsInputGroupChromeProps &\n AdsInputGroupDescription & {\n children: React.ReactNode;\n }) {\n return (\n <div className=\"flex w-full flex-col gap-md\">\n {label ? <div className=\"text-sm font-medium leading-5 text-foreground\">{label}</div> : null}\n {children}\n {helperText ? (\n <p className=\"text-sm leading-5 text-muted-foreground\" id={helperId}>\n {helperText}\n </p>\n ) : null}\n {errorText ? (\n <p className=\"text-sm leading-5 text-destructive\" id={errorId}>\n {errorText}\n </p>\n ) : null}\n </div>\n );\n}\n\nconst addonBaseClassName =\n \"flex shrink-0 items-center self-stretch bg-secondary px-lg text-sm leading-5 text-foreground\";\n\nconst inputGroupControlBaseClassName =\n \"w-full min-w-0 rounded-none border-0 bg-transparent px-0 py-0 text-sm leading-5 text-foreground shadow-none placeholder:text-muted-foreground focus-visible:border-transparent focus-visible:outline-none focus-visible:ring-0 disabled:cursor-not-allowed disabled:opacity-50 read-only:text-muted-foreground\";\n\nexport interface AdsInputGroupProps extends AdsInputGroupChromeProps {\n children: React.ReactNode;\n className?: string;\n controlWrapperClassName?: string;\n footer?: React.ReactNode;\n header?: React.ReactNode;\n id?: string;\n leadingAddon?: React.ReactNode;\n leadingAddonClassName?: string;\n surfaceClassName?: string;\n trailingAddon?: React.ReactNode;\n trailingAddonClassName?: string;\n}\n\nexport function AdsInputGroup({\n children,\n className,\n controlWrapperClassName,\n errorText,\n footer,\n header,\n helperText,\n id,\n label,\n leadingAddon,\n leadingAddonClassName,\n surfaceClassName,\n trailingAddon,\n trailingAddonClassName,\n}: AdsInputGroupProps) {\n const generatedId = React.useId();\n const description = useAdsInputGroupDescription(\n undefined,\n helperText,\n errorText,\n id ?? generatedId,\n );\n\n return (\n <AdsInputGroupChrome\n errorText={errorText}\n helperText={helperText}\n label={label}\n {...description}\n >\n <div className={cn(\"w-full\", className)}>\n <div\n className={cn(\n \"overflow-hidden rounded-radius-md border border-border bg-card shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-colors\",\n errorText\n ? \"border-destructive focus-within:border-destructive\"\n : \"focus-within:border-border-focus\",\n \"focus-within:ring-[3px] focus-within:ring-[rgba(161,161,161,0.5)]\",\n surfaceClassName,\n )}\n >\n {header ? (\n <div className=\"border-b border-border px-md py-md text-sm text-foreground\">\n {header}\n </div>\n ) : null}\n\n <div className=\"flex min-h-11 w-full items-stretch\">\n {leadingAddon ? (\n <div\n className={cn(\n addonBaseClassName,\n \"border-r border-border\",\n leadingAddonClassName,\n )}\n >\n {leadingAddon}\n </div>\n ) : null}\n\n <div\n className={cn(\n \"flex min-w-0 flex-1 items-center gap-sm px-md py-[10px]\",\n controlWrapperClassName,\n )}\n >\n {children}\n </div>\n\n {trailingAddon ? (\n <div\n className={cn(\n addonBaseClassName,\n \"justify-end border-l border-border\",\n trailingAddonClassName,\n )}\n >\n {trailingAddon}\n </div>\n ) : null}\n </div>\n\n {footer ? (\n <div className=\"border-t border-border px-md py-sm text-sm text-muted-foreground\">\n {footer}\n </div>\n ) : null}\n </div>\n </div>\n </AdsInputGroupChrome>\n );\n}\n\nexport type AdsInputGroupInputProps = Omit<\n InputProps,\n \"aria-invalid\" | \"aria-describedby\"\n>;\n\nexport const AdsInputGroupInput = React.forwardRef<\n HTMLInputElement,\n AdsInputGroupInputProps\n>(({ className, ...props }, ref) => (\n <Input\n className={cn(\n inputGroupControlBaseClassName,\n \"h-5 text-sm leading-5\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsInputGroupInput.displayName = \"AdsInputGroupInput\";\n\nexport type AdsInputGroupTextareaProps = Omit<\n TextareaProps,\n \"aria-invalid\" | \"aria-describedby\"\n>;\n\nexport const AdsInputGroupTextarea = React.forwardRef<\n HTMLTextAreaElement,\n AdsInputGroupTextareaProps\n>(({ className, ...props }, ref) => (\n <Textarea\n className={cn(\n inputGroupControlBaseClassName,\n \"min-h-[64px] resize-none text-sm leading-5\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsInputGroupTextarea.displayName = \"AdsInputGroupTextarea\";\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"../../primitives/input-otp\";\n\ntype FieldDescription = {\n describedBy?: string;\n errorId?: string;\n helperId?: string;\n inputId: string;\n};\n\nfunction useFieldDescription(\n id: string | undefined,\n describedBy: string | undefined,\n helperText: React.ReactNode,\n errorText: React.ReactNode,\n): FieldDescription {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const helperId = helperText ? `${inputId}-helper` : undefined;\n const errorId = errorText ? `${inputId}-error` : undefined;\n const descriptionIds = [describedBy, helperId, errorId].filter(Boolean).join(\" \");\n\n return {\n describedBy: descriptionIds || undefined,\n errorId,\n helperId,\n inputId,\n };\n}\n\nfunction AdsInputOTPChrome({\n children,\n errorId,\n errorText,\n helperId,\n helperText,\n inputId,\n label,\n}: {\n children: React.ReactNode;\n errorId?: string;\n errorText?: React.ReactNode;\n helperId?: string;\n helperText?: React.ReactNode;\n inputId: string;\n label?: React.ReactNode;\n}) {\n return (\n <div className=\"flex w-full flex-col gap-md\">\n {label ? (\n <label className=\"text-sm font-medium leading-5 text-foreground\" htmlFor={inputId}>\n {label}\n </label>\n ) : null}\n {children}\n {helperText ? (\n <p className=\"text-sm leading-5 text-muted-foreground\" id={helperId}>\n {helperText}\n </p>\n ) : null}\n {errorText ? (\n <p className=\"text-sm leading-5 text-destructive\" id={errorId}>\n {errorText}\n </p>\n ) : null}\n </div>\n );\n}\n\nfunction buildSeparator(node: React.ReactNode, key: string | number) {\n if (node === undefined) {\n return <AdsInputOTPSeparator key={key} />;\n }\n\n if (React.isValidElement(node)) {\n return React.cloneElement(node, { key });\n }\n\n return <span key={key}>{node}</span>;\n}\n\nfunction buildOtpChildren(groups: number[], separator?: React.ReactNode) {\n const defaultGroup = groups.length > 0 ? groups : [6];\n const items: React.ReactNode[] = [];\n let index = 0;\n\n defaultGroup.forEach((size, indexOfGroup) => {\n items.push(\n <AdsInputOTPGroup key={`group-${indexOfGroup}`}>\n {Array.from({ length: size }, (_, slotOffset) => (\n <AdsInputOTPSlot\n index={index + slotOffset}\n key={`slot-${index + slotOffset}`}\n />\n ))}\n </AdsInputOTPGroup>,\n );\n\n index += size;\n\n if (indexOfGroup < defaultGroup.length - 1) {\n items.push(buildSeparator(separator, `sep-${indexOfGroup}`));\n }\n });\n\n return items;\n}\n\ntype AdsInputOTPProps = Omit<\n React.ComponentPropsWithoutRef<typeof InputOTP>,\n \"children\" | \"maxLength\" | \"render\"\n> & {\n action?: React.ReactNode;\n groups?: number[];\n helperText?: React.ReactNode;\n errorText?: React.ReactNode;\n label?: React.ReactNode;\n separator?: React.ReactNode;\n children?: React.ReactNode;\n};\n\nconst AdsInputOTP = React.forwardRef<\n React.ElementRef<typeof InputOTP>,\n AdsInputOTPProps\n>(({ action, errorText, groups, helperText, label, separator, children, id, ...props }, ref) => {\n const totalSlots =\n groups && groups.length > 0 ? groups.reduce((sum, value) => sum + value, 0) : 6;\n const description = useFieldDescription(id, props[\"aria-describedby\"], helperText, errorText);\n const otpChildren = children ?? buildOtpChildren(groups ?? [], separator);\n\n return (\n <AdsInputOTPChrome\n errorText={errorText}\n errorId={description.errorId}\n helperText={helperText}\n helperId={description.helperId}\n inputId={description.inputId}\n label={label}\n >\n <div className=\"flex w-full items-center gap-sm\">\n <InputOTP\n aria-describedby={description.describedBy}\n aria-invalid={errorText ? true : undefined}\n id={description.inputId}\n maxLength={totalSlots}\n ref={ref}\n {...props}\n >\n {otpChildren}\n </InputOTP>\n {action ? <span className=\"shrink-0\">{action}</span> : null}\n </div>\n </AdsInputOTPChrome>\n );\n});\nAdsInputOTP.displayName = \"AdsInputOTP\";\n\nconst AdsInputOTPGroup = React.forwardRef<\n React.ElementRef<typeof InputOTPGroup>,\n React.ComponentPropsWithoutRef<typeof InputOTPGroup>\n>(({ className, ...props }, ref) => (\n <InputOTPGroup className={className} ref={ref} {...props} />\n));\nAdsInputOTPGroup.displayName = \"AdsInputOTPGroup\";\n\nconst AdsInputOTPSeparator = React.forwardRef<\n React.ElementRef<typeof InputOTPSeparator>,\n React.ComponentPropsWithoutRef<typeof InputOTPSeparator>\n>(({ className, ...props }, ref) => (\n <InputOTPSeparator\n className={\n className ?? \"h-px w-6 shrink-0 bg-border text-transparent [&_svg]:hidden\"\n }\n ref={ref}\n {...props}\n />\n));\nAdsInputOTPSeparator.displayName = \"AdsInputOTPSeparator\";\n\nconst AdsInputOTPSlot = React.forwardRef<\n React.ElementRef<typeof InputOTPSlot>,\n React.ComponentPropsWithoutRef<typeof InputOTPSlot>\n>(({ className, ...props }, ref) => (\n <InputOTPSlot\n className={[\n \"border-border bg-card text-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)]\",\n \"first:border-r-0 first:rounded-l-radius-md last:border-r last:rounded-r-radius-md\",\n \"data-[active=true]:border-border-focus data-[active=true]:shadow-[0px_0px_0px_3px_rgba(161,161,161,0.5)]\",\n \"h-9 w-9 text-sm leading-5\",\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n ref={ref}\n {...props}\n />\n));\nAdsInputOTPSlot.displayName = \"AdsInputOTPSlot\";\n\nexport {\n AdsInputOTP,\n AdsInputOTPGroup,\n AdsInputOTPSeparator,\n AdsInputOTPSlot,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n};\nexport type { AdsInputOTPProps };\n","\"use client\"\n\nimport * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md\",\n isActive && \"z-10 ring-2 ring-ring ring-offset-background\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n))\nInputOTPSeparator.displayName = \"InputOTPSeparator\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { useAdsI18n } from \"../../i18n\";\nimport { cn } from \"../../lib/cn\";\nimport {\n Pagination as PrimitivePagination,\n PaginationContent as PrimitivePaginationContent,\n PaginationItem as PrimitivePaginationItem,\n} from \"../../primitives/pagination\";\n\nconst paginationLinkBaseClassName =\n \"inline-flex h-9 min-w-9 items-center justify-center rounded-radius-md border text-sm font-medium leading-5 tracking-normal transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\";\n\nconst paginationLinkInactiveClassName =\n \"border-transparent bg-transparent px-[10px] text-foreground shadow-none hover:bg-accent hover:shadow-[0px_1px_2px_rgba(0,0,0,0.1)]\";\n\nconst paginationLinkActiveClassName =\n \"border-border bg-card px-[10px] text-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)]\";\n\nexport type AdsPaginationProps = React.ComponentPropsWithoutRef<typeof PrimitivePagination>;\n\nexport type AdsPaginationContentProps = React.ComponentPropsWithoutRef<\n typeof PrimitivePaginationContent\n>;\n\nexport type AdsPaginationItemProps = React.ComponentPropsWithoutRef<\n typeof PrimitivePaginationItem\n>;\n\nexport interface AdsPaginationLinkProps extends React.ComponentPropsWithoutRef<\"a\"> {\n isActive?: boolean;\n}\n\nexport interface AdsPaginationPreviousProps\n extends Omit<AdsPaginationLinkProps, \"children\"> {\n children?: React.ReactNode;\n}\n\nexport interface AdsPaginationNextProps extends Omit<AdsPaginationLinkProps, \"children\"> {\n children?: React.ReactNode;\n}\n\nexport interface AdsPaginationEllipsisProps\n extends React.ComponentPropsWithoutRef<\"span\"> {\n label?: string;\n}\n\nfunction AdsPagination({ className, ...props }: AdsPaginationProps) {\n return (\n <PrimitivePagination\n className={cn(\"mx-0 w-auto justify-start\", className)}\n {...props}\n />\n );\n}\nAdsPagination.displayName = \"AdsPagination\";\n\nconst AdsPaginationContent = React.forwardRef<\n HTMLUListElement,\n AdsPaginationContentProps\n>(({ className, ...props }, ref) => (\n <PrimitivePaginationContent ref={ref} className={cn(\"gap-1\", className)} {...props} />\n));\nAdsPaginationContent.displayName = \"AdsPaginationContent\";\n\nconst AdsPaginationItem = React.forwardRef<HTMLLIElement, AdsPaginationItemProps>(\n ({ className, ...props }, ref) => (\n <PrimitivePaginationItem ref={ref} className={className} {...props} />\n ),\n);\nAdsPaginationItem.displayName = \"AdsPaginationItem\";\n\nconst AdsPaginationLink = React.forwardRef<HTMLAnchorElement, AdsPaginationLinkProps>(\n ({ className, isActive = false, ...props }, ref) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n paginationLinkBaseClassName,\n isActive ? paginationLinkActiveClassName : paginationLinkInactiveClassName,\n className,\n )}\n ref={ref}\n {...props}\n />\n ),\n);\nAdsPaginationLink.displayName = \"AdsPaginationLink\";\n\nconst AdsPaginationPrevious = React.forwardRef<\n HTMLAnchorElement,\n AdsPaginationPreviousProps\n>(({ \"aria-label\": ariaLabel, children, className, ...props }, ref) => {\n const { messages } = useAdsI18n();\n const label = children ?? messages.pagination.previous;\n\n return (\n <AdsPaginationLink\n aria-label={ariaLabel ?? messages.pagination.previous}\n className={cn(\"gap-1 px-md py-sm\", className)}\n ref={ref}\n {...props}\n >\n <ChevronLeft aria-hidden className=\"h-4 w-4\" />\n <span>{label}</span>\n </AdsPaginationLink>\n );\n});\nAdsPaginationPrevious.displayName = \"AdsPaginationPrevious\";\n\nconst AdsPaginationNext = React.forwardRef<HTMLAnchorElement, AdsPaginationNextProps>(\n ({ \"aria-label\": ariaLabel, children, className, ...props }, ref) => {\n const { messages } = useAdsI18n();\n const label = children ?? messages.pagination.next;\n\n return (\n <AdsPaginationLink\n aria-label={ariaLabel ?? messages.pagination.next}\n className={cn(\"gap-1 px-md py-sm\", className)}\n ref={ref}\n {...props}\n >\n <span>{label}</span>\n <ChevronRight aria-hidden className=\"h-4 w-4\" />\n </AdsPaginationLink>\n );\n },\n);\nAdsPaginationNext.displayName = \"AdsPaginationNext\";\n\nfunction AdsPaginationEllipsis({\n className,\n label,\n ...props\n}: AdsPaginationEllipsisProps) {\n const { messages } = useAdsI18n();\n const resolvedLabel = label ?? messages.pagination.morePages;\n\n return (\n <span\n aria-hidden\n className={cn(\n \"inline-flex h-9 w-9 items-center justify-center rounded-radius-md border border-transparent text-foreground\",\n className,\n )}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </span>\n );\n}\nAdsPaginationEllipsis.displayName = \"AdsPaginationEllipsis\";\n\nexport {\n AdsPagination,\n AdsPaginationContent,\n AdsPaginationEllipsis,\n AdsPaginationItem,\n AdsPaginationLink,\n AdsPaginationNext,\n AdsPaginationPrevious,\n};\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ButtonProps, buttonVariants } from \"@/primitives/button\"\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n)\nPagination.displayName = \"Pagination\"\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n))\nPaginationContent.displayName = \"PaginationContent\"\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n))\nPaginationItem.displayName = \"PaginationItem\"\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">\n\nconst PaginationLink = ({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n)\nPaginationLink.displayName = \"PaginationLink\"\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 pl-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = \"PaginationPrevious\"\n\nconst PaginationNext = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 pr-2.5\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = \"PaginationNext\"\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Popover as BasePopover,\n PopoverContent as BasePopoverContent,\n PopoverTrigger as BasePopoverTrigger,\n} from \"../../primitives/popover\";\n\nexport type AdsPopoverProps = React.ComponentPropsWithoutRef<typeof BasePopover>;\nexport type AdsPopoverTriggerProps = React.ComponentPropsWithoutRef<\n typeof BasePopoverTrigger\n>;\n\nexport interface AdsPopoverContentProps\n extends React.ComponentPropsWithoutRef<typeof BasePopoverContent> {\n inset?: boolean;\n}\n\nexport type AdsPopoverHeaderProps = React.HTMLAttributes<HTMLDivElement>;\nexport type AdsPopoverBodyProps = React.HTMLAttributes<HTMLDivElement>;\nexport type AdsPopoverTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\nexport type AdsPopoverDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nconst popoverContentClassName =\n \"z-50 w-[320px] rounded-radius-lg border border-border bg-popover p-lg text-popover-foreground shadow-[0px_2px_4px_-2px_rgba(0,0,0,0.1),0px_4px_6px_-1px_rgba(0,0,0,0.1)] outline-none 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-popover-content-transform-origin]\";\n\nconst AdsPopover = BasePopover;\nconst AdsPopoverTrigger = BasePopoverTrigger;\n\nconst AdsPopoverContent = React.forwardRef<\n React.ElementRef<typeof BasePopoverContent>,\n AdsPopoverContentProps\n>(({ align = \"center\", className, inset = false, sideOffset = 8, ...props }, ref) => (\n <BasePopoverContent\n align={align}\n className={cn(\n popoverContentClassName,\n inset ? \"p-0\" : undefined,\n className,\n )}\n ref={ref}\n sideOffset={sideOffset}\n {...props}\n />\n));\nAdsPopoverContent.displayName = \"AdsPopoverContent\";\n\nconst AdsPopoverHeader = React.forwardRef<HTMLDivElement, AdsPopoverHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\"flex flex-col gap-sm\", className)}\n ref={ref}\n {...props}\n />\n ),\n);\nAdsPopoverHeader.displayName = \"AdsPopoverHeader\";\n\nconst AdsPopoverBody = React.forwardRef<HTMLDivElement, AdsPopoverBodyProps>(\n ({ className, ...props }, ref) => (\n <div className={cn(\"mt-md flex flex-col gap-md\", className)} ref={ref} {...props} />\n ),\n);\nAdsPopoverBody.displayName = \"AdsPopoverBody\";\n\nconst AdsPopoverTitle = React.forwardRef<HTMLHeadingElement, AdsPopoverTitleProps>(\n ({ className, ...props }, ref) => (\n <h4\n className={cn(\"text-base font-medium leading-6 text-foreground\", className)}\n ref={ref}\n {...props}\n />\n ),\n);\nAdsPopoverTitle.displayName = \"AdsPopoverTitle\";\n\nconst AdsPopoverDescription = React.forwardRef<\n HTMLParagraphElement,\n AdsPopoverDescriptionProps\n>(({ className, ...props }, ref) => (\n <p\n className={cn(\"text-sm leading-5 text-muted-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nAdsPopoverDescription.displayName = \"AdsPopoverDescription\";\n\nexport {\n AdsPopover,\n AdsPopoverBody,\n AdsPopoverContent,\n AdsPopoverDescription,\n AdsPopoverHeader,\n AdsPopoverTitle,\n AdsPopoverTrigger,\n};\n","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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-popover-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n AdsFieldDescription,\n type AdsFieldDescriptionPlacement,\n AdsFieldError,\n AdsFieldItem,\n AdsFieldLabel,\n useAdsFieldDescription,\n} from \"../AdsField\";\nimport { Progress as PrimitiveProgress, type ProgressProps as PrimitiveProgressProps } from \"../../primitives/progress\";\n\nconst progressBaseClassName =\n \"h-2 rounded-radius-full bg-[color:color-mix(in_srgb,var(--primary)_20%,transparent)]\";\n\nconst progressIndicatorVariantClassName = {\n ai: \"bg-brand-gradient\",\n default: \"bg-primary\",\n} as const;\n\nexport type AdsProgressVariant = keyof typeof progressIndicatorVariantClassName;\n\nexport interface AdsProgressProps extends PrimitiveProgressProps {\n descriptionPlacement?: AdsFieldDescriptionPlacement;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n id?: string;\n indicatorClassName?: string;\n label?: React.ReactNode;\n trackClassName?: string;\n variant?: AdsProgressVariant;\n}\n\nexport const Progress = React.forwardRef<\n React.ElementRef<typeof PrimitiveProgress>,\n PrimitiveProgressProps\n>(({ className, indicatorClassName, ...props }, ref) => (\n <PrimitiveProgress\n className={cn(progressBaseClassName, className)}\n indicatorClassName={cn(progressIndicatorVariantClassName.default, indicatorClassName)}\n ref={ref}\n {...props}\n />\n));\nProgress.displayName = \"Progress\";\n\nexport const AdsProgress = React.forwardRef<\n React.ElementRef<typeof PrimitiveProgress>,\n AdsProgressProps\n>(\n (\n {\n className,\n descriptionPlacement = \"above\",\n errorText,\n helperText,\n id,\n indicatorClassName,\n label,\n trackClassName,\n variant = \"default\",\n ...props\n },\n ref,\n ) => {\n const description = useAdsFieldDescription({\n errorText,\n helperText,\n id,\n });\n const labelId = label ? `${description.inputId}-label` : undefined;\n\n const helperNode = helperText ? (\n <AdsFieldDescription id={description.helperId}>{helperText}</AdsFieldDescription>\n ) : null;\n const errorNode = errorText ? (\n <AdsFieldError id={description.errorId}>{errorText}</AdsFieldError>\n ) : null;\n\n return (\n <AdsFieldItem>\n {label ? <AdsFieldLabel id={labelId}>{label}</AdsFieldLabel> : null}\n {descriptionPlacement === \"above\" ? helperNode : null}\n <PrimitiveProgress\n aria-describedby={description.describedBy}\n aria-invalid={errorText ? true : undefined}\n aria-labelledby={labelId}\n className={cn(progressBaseClassName, trackClassName, className)}\n id={description.inputId}\n indicatorClassName={cn(\n progressIndicatorVariantClassName[variant],\n indicatorClassName,\n )}\n ref={ref}\n {...props}\n />\n {descriptionPlacement === \"below\" ? helperNode : null}\n {errorNode}\n </AdsFieldItem>\n );\n },\n);\nAdsProgress.displayName = \"AdsProgress\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"../lib/cn\";\n\nexport interface ProgressProps\n extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {\n indicatorClassName?: string;\n}\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, indicatorClassName, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n className={cn(\"relative h-4 w-full overflow-hidden rounded-full bg-secondary\", className)}\n ref={ref}\n value={value}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className={cn(\"h-full w-full flex-1 bg-primary transition-all\", indicatorClassName)}\n style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n RadioGroup as PrimitiveRadioGroup,\n RadioGroupItem as PrimitiveRadioGroupItem,\n} from \"../../primitives/radio-group\";\nimport {\n AdsFieldDescription,\n type AdsFieldDescriptionPlacement,\n AdsFieldError,\n AdsFieldItem,\n AdsFieldLabel,\n useAdsFieldDescription,\n} from \"../AdsField\";\n\nconst radioGroupBaseClassName = \"gap-3\";\nconst radioItemBaseClassName =\n \"h-4 w-4 border-border bg-card text-primary shadow-[0px_1px_2px_rgba(0,0,0,0.1)] focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0\";\n\nexport const RadioGroup = React.forwardRef<\n React.ElementRef<typeof PrimitiveRadioGroup>,\n React.ComponentPropsWithoutRef<typeof PrimitiveRadioGroup>\n>(({ className, ...props }, ref) => (\n <PrimitiveRadioGroup className={cn(radioGroupBaseClassName, className)} ref={ref} {...props} />\n));\nRadioGroup.displayName = \"RadioGroup\";\n\nexport const RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof PrimitiveRadioGroupItem>,\n React.ComponentPropsWithoutRef<typeof PrimitiveRadioGroupItem>\n>(({ className, ...props }, ref) => (\n <PrimitiveRadioGroupItem\n className={cn(radioItemBaseClassName, className)}\n ref={ref}\n {...props}\n />\n));\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport interface AdsRadioGroupProps\n extends React.ComponentPropsWithoutRef<typeof PrimitiveRadioGroup> {\n descriptionPlacement?: AdsFieldDescriptionPlacement;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n id?: string;\n label?: React.ReactNode;\n}\n\nexport const AdsRadioGroup = React.forwardRef<\n React.ElementRef<typeof PrimitiveRadioGroup>,\n AdsRadioGroupProps\n>(\n (\n {\n children,\n className,\n descriptionPlacement = \"below\",\n errorText,\n helperText,\n id,\n label,\n ...props\n },\n ref,\n ) => {\n const description = useAdsFieldDescription({\n errorText,\n helperText,\n id,\n });\n\n const helperNode = helperText ? (\n <AdsFieldDescription id={description.helperId}>{helperText}</AdsFieldDescription>\n ) : null;\n const errorNode = errorText ? (\n <AdsFieldError id={description.errorId}>{errorText}</AdsFieldError>\n ) : null;\n\n return (\n <AdsFieldItem>\n {label ? <AdsFieldLabel>{label}</AdsFieldLabel> : null}\n {descriptionPlacement === \"above\" ? helperNode : null}\n <RadioGroup\n aria-describedby={description.describedBy}\n className={className}\n ref={ref}\n {...props}\n >\n {children}\n </RadioGroup>\n {descriptionPlacement === \"below\" ? helperNode : null}\n {errorNode}\n </AdsFieldItem>\n );\n },\n);\nAdsRadioGroup.displayName = \"AdsRadioGroup\";\n\ntype AdsRadioGroupOptionProps = Omit<\n React.ComponentPropsWithoutRef<typeof PrimitiveRadioGroupItem>,\n \"children\"\n> & {\n description?: React.ReactNode;\n label: React.ReactNode;\n};\n\nexport const AdsRadioGroupOption = React.forwardRef<\n React.ElementRef<typeof PrimitiveRadioGroupItem>,\n AdsRadioGroupOptionProps\n>(({ className, description, id, label, value, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n\n return (\n <label className=\"flex w-full cursor-pointer items-start gap-2\" htmlFor={inputId}>\n <RadioGroupItem\n className={cn(className)}\n id={inputId}\n ref={ref}\n value={value}\n {...props}\n />\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n <div className=\"text-sm leading-5 text-foreground\">{label}</div>\n {description ? (\n <AdsFieldDescription className=\"text-sm leading-5\">{description}</AdsFieldDescription>\n ) : null}\n </div>\n </label>\n );\n});\nAdsRadioGroupOption.displayName = \"AdsRadioGroupOption\";\n\ntype AdsRadioGroupCardOptionProps = Omit<\n React.ComponentPropsWithoutRef<typeof PrimitiveRadioGroupItem>,\n \"children\"\n> & {\n description?: React.ReactNode;\n label: React.ReactNode;\n};\n\nexport const AdsRadioGroupCardOption = React.forwardRef<\n React.ElementRef<typeof PrimitiveRadioGroupItem>,\n AdsRadioGroupCardOptionProps\n>(({ className, description, disabled, id, label, value, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const titleId = `${inputId}-label`;\n const descriptionId = description ? `${inputId}-description` : undefined;\n\n return (\n <div className=\"relative\">\n <RadioGroupItem\n aria-describedby={descriptionId}\n aria-labelledby={titleId}\n className=\"peer absolute inset-0 h-full w-full rounded-radius-md opacity-0 focus-visible:outline-none focus-visible:ring-0\"\n disabled={disabled}\n id={inputId}\n ref={ref}\n value={value}\n {...props}\n />\n <div\n className={cn(\n \"flex min-h-[72px] w-full items-center gap-3 rounded-radius-md border border-border bg-card p-md shadow-[0px_1px_2px_rgba(0,0,0,0.1)] transition-colors [&_[data-indicator]]:border-border [&_[data-indicator-span]]:opacity-0 peer-data-[state=checked]:border-primary peer-data-[state=checked]:bg-accent peer-data-[state=checked]:[&_[data-indicator]]:border-primary peer-data-[state=checked]:[&_[data-indicator-span]]:opacity-100 peer-focus-visible:ring-[3px] peer-focus-visible:ring-[rgba(161,161,161,0.5)] peer-focus-visible:ring-offset-0\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n <div className=\"text-sm font-medium leading-5 text-foreground\" id={titleId}>\n {label}\n </div>\n {description ? (\n <AdsFieldDescription className=\"text-xs leading-4\" id={descriptionId}>\n {description}\n </AdsFieldDescription>\n ) : null}\n </div>\n <div className=\"flex h-full shrink-0 items-start justify-center pt-px\">\n <div\n className=\"grid h-4 w-4 place-content-center rounded-full border bg-card shadow-[0px_1px_2px_rgba(0,0,0,0.1)]\"\n data-indicator\n >\n <span\n className=\"h-2 w-2 rounded-full bg-primary transition-opacity\"\n data-indicator-span\n />\n </div>\n </div>\n </div>\n </div>\n );\n});\nAdsRadioGroupCardOption.displayName = \"AdsRadioGroupCardOption\";\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\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 gap-2\", 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 \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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-select-content-transform-origin]\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n} from \"../../primitives/select\";\nimport {\n AdsFieldDescription,\n type AdsFieldDescriptionPlacement,\n AdsFieldError,\n AdsFieldItem,\n AdsFieldLabel,\n useAdsFieldDescription,\n} from \"../AdsField\";\n\ntype SelectRootProps = React.ComponentPropsWithoutRef<typeof Select>;\n\nconst selectTriggerBaseClassName =\n \"h-9 rounded-radius-md border border-border bg-card px-md py-2 text-sm leading-5 text-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] focus:border-border-focus focus:ring-[3px] focus:ring-[rgba(161,161,161,0.5)] focus:ring-offset-0 data-[placeholder]:text-muted-foreground\";\n\nconst selectContentBaseClassName =\n \"rounded-radius-md border-border bg-popover text-popover-foreground shadow-[0px_8px_24px_rgba(0,0,0,0.22)]\";\n\nexport interface AdsSelectProps extends SelectRootProps {\n contentClassName?: string;\n descriptionPlacement?: AdsFieldDescriptionPlacement;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n id?: string;\n label?: React.ReactNode;\n placeholder?: React.ReactNode;\n triggerClassName?: string;\n}\n\nexport function AdsSelect({\n children,\n contentClassName,\n descriptionPlacement = \"below\",\n errorText,\n helperText,\n id,\n label,\n placeholder,\n triggerClassName,\n ...props\n}: AdsSelectProps) {\n const description = useAdsFieldDescription({\n describedBy: undefined,\n errorText,\n helperText,\n id,\n });\n\n const helperNode = helperText ? (\n <AdsFieldDescription id={description.helperId}>{helperText}</AdsFieldDescription>\n ) : null;\n const errorNode = errorText ? (\n <AdsFieldError id={description.errorId}>{errorText}</AdsFieldError>\n ) : null;\n\n return (\n <AdsFieldItem>\n {label ? <AdsFieldLabel htmlFor={description.inputId}>{label}</AdsFieldLabel> : null}\n {descriptionPlacement === \"above\" ? helperNode : null}\n <Select {...props}>\n <SelectTrigger\n aria-describedby={description.describedBy}\n aria-invalid={errorText ? true : undefined}\n className={cn(selectTriggerBaseClassName, triggerClassName)}\n id={description.inputId}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent className={cn(selectContentBaseClassName, contentClassName)}>\n {children}\n </SelectContent>\n </Select>\n {descriptionPlacement === \"below\" ? helperNode : null}\n {errorNode}\n </AdsFieldItem>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Slider as PrimitiveSlider } from \"../../primitives/slider\";\nimport {\n AdsFieldDescription,\n type AdsFieldDescriptionPlacement,\n AdsFieldError,\n AdsFieldItem,\n AdsFieldLabel,\n useAdsFieldDescription,\n} from \"../AdsField\";\n\nconst sliderBaseClassName = \"py-1\";\n\nexport const Slider = React.forwardRef<\n React.ElementRef<typeof PrimitiveSlider>,\n React.ComponentPropsWithoutRef<typeof PrimitiveSlider>\n>(({ className, ...props }, ref) => (\n <PrimitiveSlider className={cn(sliderBaseClassName, className)} ref={ref} {...props} />\n));\nSlider.displayName = \"Slider\";\n\nexport interface AdsSliderProps extends React.ComponentPropsWithoutRef<typeof PrimitiveSlider> {\n descriptionPlacement?: AdsFieldDescriptionPlacement;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n id?: string;\n label?: React.ReactNode;\n}\n\nexport const AdsSlider = React.forwardRef<\n React.ElementRef<typeof PrimitiveSlider>,\n AdsSliderProps\n>(\n (\n {\n className,\n descriptionPlacement = \"above\",\n errorText,\n helperText,\n id,\n label,\n ...props\n },\n ref,\n ) => {\n const description = useAdsFieldDescription({\n errorText,\n helperText,\n id,\n });\n\n const helperNode = helperText ? (\n <AdsFieldDescription id={description.helperId}>{helperText}</AdsFieldDescription>\n ) : null;\n const errorNode = errorText ? (\n <AdsFieldError id={description.errorId}>{errorText}</AdsFieldError>\n ) : null;\n\n return (\n <AdsFieldItem>\n {label ? <AdsFieldLabel>{label}</AdsFieldLabel> : null}\n {descriptionPlacement === \"above\" ? helperNode : null}\n <Slider\n aria-describedby={description.describedBy}\n className={className}\n ref={ref}\n {...props}\n />\n {descriptionPlacement === \"below\" ? helperNode : null}\n {errorNode}\n </AdsFieldItem>\n );\n },\n);\nAdsSlider.displayName = \"AdsSlider\";\n","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\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-1.5 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n {Array.from({\n length: Array.isArray(props.value)\n ? props.value.length\n : Array.isArray(props.defaultValue)\n ? props.defaultValue.length\n : 1,\n }).map((_, index) => (\n <SliderPrimitive.Thumb\n className=\"block h-5 w-5 rounded-full border border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\"\n key={index}\n />\n ))}\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Switch as PrimitiveSwitch } from \"../../primitives/switch\";\nimport { AdsFieldDescription } from \"../AdsField\";\n\nconst switchBaseClassName =\n \"h-6 w-11 border border-transparent bg-muted shadow-[0px_1px_2px_rgba(0,0,0,0.1)] focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted\";\n\nexport const Switch = React.forwardRef<\n React.ElementRef<typeof PrimitiveSwitch>,\n React.ComponentPropsWithoutRef<typeof PrimitiveSwitch>\n>(({ className, ...props }, ref) => (\n <PrimitiveSwitch className={cn(switchBaseClassName, className)} ref={ref} {...props} />\n));\nSwitch.displayName = \"Switch\";\n\nexport interface AdsSwitchProps extends React.ComponentPropsWithoutRef<typeof PrimitiveSwitch> {\n description?: React.ReactNode;\n label?: React.ReactNode;\n switchClassName?: string;\n wrapperClassName?: string;\n}\n\nexport const AdsSwitch = React.forwardRef<\n React.ElementRef<typeof PrimitiveSwitch>,\n AdsSwitchProps\n>(({ className, description, id, label, switchClassName, wrapperClassName, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n\n if (!label) {\n return (\n <Switch\n className={cn(className, switchClassName)}\n id={inputId}\n ref={ref}\n {...props}\n />\n );\n }\n\n return (\n <label className={cn(\"block w-full cursor-pointer\", wrapperClassName)} htmlFor={inputId}>\n <div className=\"flex w-full items-start gap-3\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5 pt-0.5\">\n <div className=\"text-sm font-medium leading-5 text-foreground\">{label}</div>\n {description ? (\n <AdsFieldDescription className=\"text-sm leading-5\">\n {description}\n </AdsFieldDescription>\n ) : null}\n </div>\n <div className=\"shrink-0\">\n <Switch\n className={cn(className, switchClassName)}\n id={inputId}\n ref={ref}\n {...props}\n />\n </div>\n </div>\n </label>\n );\n});\nAdsSwitch.displayName = \"AdsSwitch\";\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-[18px] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-[0px_1px_2px_rgba(0,0,0,0.1)] ring-0 transition-transform data-[state=checked]:translate-x-[20px] data-[state=unchecked]:translate-x-[2px]\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Tabs as PrimitiveTabs,\n TabsContent as PrimitiveTabsContent,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n} from \"../../primitives/tabs\";\n\nexport type AdsTabsProps = React.ComponentPropsWithoutRef<typeof PrimitiveTabs>;\nexport type AdsTabsListProps = React.ComponentPropsWithoutRef<typeof PrimitiveTabsList>;\nexport type AdsTabsTriggerProps = React.ComponentPropsWithoutRef<typeof PrimitiveTabsTrigger>;\nexport type AdsTabsContentProps = React.ComponentPropsWithoutRef<typeof PrimitiveTabsContent>;\n\nconst AdsTabs = PrimitiveTabs;\n\nconst AdsTabsList = React.forwardRef<\n React.ElementRef<typeof PrimitiveTabsList>,\n AdsTabsListProps\n>(({ className, ...props }, ref) => (\n <PrimitiveTabsList\n className={cn(\n \"inline-flex items-center gap-0 rounded-radius-lg bg-muted p-[2px]\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsTabsList.displayName = \"AdsTabsList\";\n\nconst AdsTabsTrigger = React.forwardRef<\n React.ElementRef<typeof PrimitiveTabsTrigger>,\n AdsTabsTriggerProps\n>(({ className, ...props }, ref) => (\n <PrimitiveTabsTrigger\n className={cn(\n \"inline-flex h-8 items-center justify-center rounded-radius-md px-md py-xs text-sm font-medium leading-5 text-foreground transition-[background-color,border-color,box-shadow] focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 data-[state=active]:border data-[state=active]:border-border data-[state=active]:bg-card data-[state=active]:shadow-[0px_1px_1.5px_rgba(0,0,0,0.1)]\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsTabsTrigger.displayName = \"AdsTabsTrigger\";\n\nconst AdsTabsContent = React.forwardRef<\n React.ElementRef<typeof PrimitiveTabsContent>,\n AdsTabsContentProps\n>(({ className, ...props }, ref) => (\n <PrimitiveTabsContent\n className={cn(\n \"mt-2 rounded-[12px] border border-border bg-card shadow-[0px_1px_1.5px_rgba(0,0,0,0.1)] focus-visible:ring-0\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nAdsTabsContent.displayName = \"AdsTabsContent\";\n\nexport {\n AdsTabs,\n AdsTabsList,\n AdsTabsTrigger,\n AdsTabsContent,\n};\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n className={cn(\"inline-flex items-center\", className)}\n ref={ref}\n {...props}\n />\n))\n\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n))\n\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n className={cn(\"focus-visible:outline-none\", className)}\n ref={ref}\n {...props}\n />\n))\n\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Toggle as PrimitiveToggle } from \"../../primitives/toggle\";\nimport type { AdsSize } from \"../shared/types\";\n\nconst sizeClassName: Record<AdsSize, string> = {\n sm: \"!h-8 px-[6px] text-sm\",\n md: \"!h-9 px-md text-sm\",\n lg: \"!h-10 px-[10px] text-sm\",\n};\n\nconst iconOnlySizeClassName: Record<AdsSize, string> = {\n sm: \"!w-8\",\n md: \"!w-9\",\n lg: \"!w-10\",\n};\n\nconst variantClassName = {\n default:\n \"border border-transparent bg-transparent text-foreground shadow-none hover:bg-muted/70 data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]\",\n outline:\n \"border border-border bg-transparent text-foreground shadow-none hover:bg-muted/70 data-[state=on]:border-transparent data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]\",\n} as const;\n\nexport interface AdsToggleProps\n extends React.ComponentPropsWithoutRef<typeof PrimitiveToggle> {\n size?: AdsSize;\n variant?: keyof typeof variantClassName;\n}\n\nexport const AdsToggle = React.forwardRef<\n React.ElementRef<typeof PrimitiveToggle>,\n AdsToggleProps\n>(({ children, className, size = \"md\", variant = \"default\", ...props }, ref) => {\n const childCount = React.Children.count(children);\n const isIconOnly = childCount === 1 && React.isValidElement(children);\n\n return (\n <PrimitiveToggle\n className={cn(\n \"inline-flex shrink-0 items-center justify-center gap-2 rounded-radius-md font-medium leading-5 text-foreground focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 disabled:opacity-50\",\n sizeClassName[size],\n variantClassName[variant],\n isIconOnly && iconOnlySizeClassName[size],\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </PrimitiveToggle>\n );\n});\n\nAdsToggle.displayName = \"AdsToggle\";\n","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>\n>(({ className, ...props }, ref) => (\n <TogglePrimitive.Root\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-[background-color,box-shadow,color] focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n ref={ref}\n {...props}\n />\n))\n\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n ToggleGroup as PrimitiveToggleGroup,\n ToggleGroupItem as PrimitiveToggleGroupItem,\n} from \"../../primitives/toggle-group\";\nimport type { AdsSize } from \"../shared/types\";\n\ntype AdsToggleGroupVariant = \"default\" | \"outline\";\ntype AdsToggleGroupOrientation = \"horizontal\" | \"vertical\";\n\nconst sizeClassName: Record<AdsSize, string> = {\n sm: \"h-8 min-w-7 px-[6px] text-sm\",\n md: \"h-9 min-w-[34px] px-md text-sm\",\n lg: \"h-10 min-w-9 px-[10px] text-sm\",\n};\n\nconst variantClassName: Record<AdsToggleGroupVariant, string> = {\n default:\n \"border-transparent bg-transparent text-foreground hover:bg-muted/70 data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]\",\n outline:\n \"border border-border bg-transparent text-foreground hover:bg-muted/70 data-[state=on]:border-transparent data-[state=on]:bg-muted data-[state=on]:shadow-[0px_1px_1px_rgba(0,0,0,0.1)]\",\n};\n\nconst AdsToggleGroupContext = React.createContext<{\n orientation: AdsToggleGroupOrientation;\n size: AdsSize;\n variant: AdsToggleGroupVariant;\n} | null>(null);\n\ntype PrimitiveToggleGroupProps = React.ComponentPropsWithoutRef<\n typeof PrimitiveToggleGroup\n>;\n\nexport type AdsToggleGroupProps = PrimitiveToggleGroupProps & {\n children?: React.ReactNode;\n size?: AdsSize;\n variant?: AdsToggleGroupVariant;\n};\n\nexport interface AdsToggleGroupItemProps\n extends React.ComponentPropsWithoutRef<typeof PrimitiveToggleGroupItem> {\n size?: AdsSize;\n variant?: AdsToggleGroupVariant;\n}\n\nexport const AdsToggleGroup = React.forwardRef<\n React.ElementRef<typeof PrimitiveToggleGroup>,\n AdsToggleGroupProps\n>(\n (\n {\n children,\n className,\n orientation = \"horizontal\",\n size = \"md\",\n variant = \"default\",\n ...props\n },\n ref,\n ) => (\n <AdsToggleGroupContext.Provider value={{ orientation, size, variant }}>\n <PrimitiveToggleGroup\n className={cn(\n \"inline-flex items-start justify-start\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row\",\n className,\n )}\n orientation={orientation}\n ref={ref}\n {...props}\n >\n {children}\n </PrimitiveToggleGroup>\n </AdsToggleGroupContext.Provider>\n ),\n);\n\nAdsToggleGroup.displayName = \"AdsToggleGroup\";\n\nexport const AdsToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof PrimitiveToggleGroupItem>,\n AdsToggleGroupItemProps\n>(({ className, size, variant, ...props }, ref) => {\n const context = React.useContext(AdsToggleGroupContext);\n const resolvedOrientation = context?.orientation ?? \"horizontal\";\n const resolvedSize = size ?? context?.size ?? \"md\";\n const resolvedVariant = variant ?? context?.variant ?? \"default\";\n\n return (\n <PrimitiveToggleGroupItem\n className={cn(\n \"inline-flex shrink-0 items-center justify-center font-medium leading-5 text-foreground focus-visible:relative focus-visible:z-10 focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] focus-visible:ring-offset-0 disabled:opacity-50\",\n sizeClassName[resolvedSize],\n variantClassName[resolvedVariant],\n resolvedOrientation === \"horizontal\"\n ? \"first:rounded-l-radius-md first:rounded-r-none last:rounded-l-none last:rounded-r-radius-md not-first:not-last:rounded-none\"\n : \"first:rounded-t-radius-md first:rounded-b-none last:rounded-t-none last:rounded-b-radius-md not-first:not-last:rounded-none\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\n\nAdsToggleGroupItem.displayName = \"AdsToggleGroupItem\";\n","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n className={cn(\"inline-flex items-center justify-start\", className)}\n ref={ref}\n {...props}\n />\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <ToggleGroupPrimitive.Item\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-[background-color,box-shadow,color] focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n ref={ref}\n {...props}\n />\n))\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Textarea } from \"../../primitives/textarea\";\nimport {\n AdsFieldDescription,\n type AdsFieldDescriptionPlacement,\n AdsFieldError,\n AdsFieldItem,\n AdsFieldLabel,\n useAdsFieldDescription,\n} from \"../AdsField\";\n\ntype TextareaProps = React.ComponentPropsWithoutRef<typeof Textarea>;\n\nconst textareaBaseClassName =\n \"w-full rounded-radius-md border border-border bg-card px-md py-md text-base leading-6 text-foreground shadow-[0px_1px_2px_rgba(0,0,0,0.1)] placeholder:text-muted-foreground focus-visible:border-border-focus focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-[rgba(161,161,161,0.5)] disabled:cursor-not-allowed disabled:opacity-50\";\n\nexport interface AdsTextareaProps\n extends Omit<TextareaProps, \"aria-invalid\" | \"size\"> {\n action?: React.ReactNode;\n descriptionPlacement?: AdsFieldDescriptionPlacement;\n errorText?: React.ReactNode;\n helperText?: React.ReactNode;\n label?: React.ReactNode;\n resizable?: boolean;\n}\n\nexport const AdsTextarea = React.forwardRef<HTMLTextAreaElement, AdsTextareaProps>(\n (\n {\n action,\n className,\n descriptionPlacement = \"below\",\n errorText,\n helperText,\n id,\n label,\n resizable = true,\n rows = 3,\n ...props\n },\n ref,\n ) => {\n const description = useAdsFieldDescription({\n describedBy: props[\"aria-describedby\"],\n errorText,\n helperText,\n id,\n });\n\n const helperNode = helperText ? (\n <AdsFieldDescription id={description.helperId}>{helperText}</AdsFieldDescription>\n ) : null;\n const errorNode = errorText ? (\n <AdsFieldError id={description.errorId}>{errorText}</AdsFieldError>\n ) : null;\n\n return (\n <AdsFieldItem>\n {label ? <AdsFieldLabel htmlFor={description.inputId}>{label}</AdsFieldLabel> : null}\n {descriptionPlacement === \"above\" ? helperNode : null}\n <Textarea\n aria-describedby={description.describedBy}\n aria-invalid={errorText ? true : undefined}\n className={cn(\n textareaBaseClassName,\n \"min-h-[80px]\",\n resizable ? \"resize-y\" : \"resize-none\",\n className,\n )}\n id={description.inputId}\n ref={ref}\n rows={rows}\n {...props}\n />\n {action ? <div className=\"w-full [&>*]:w-full\">{action}</div> : null}\n {descriptionPlacement === \"below\" ? helperNode : null}\n {errorNode}\n </AdsFieldItem>\n );\n },\n);\nAdsTextarea.displayName = \"AdsTextarea\";\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Tooltip as BaseTooltip,\n TooltipArrow as BaseTooltipArrow,\n TooltipContent as BaseTooltipContent,\n TooltipProvider as BaseTooltipProvider,\n TooltipTrigger as BaseTooltipTrigger,\n} from \"../../primitives/tooltip\";\n\nexport type AdsTooltipProviderProps = React.ComponentPropsWithoutRef<\n typeof BaseTooltipProvider\n>;\nexport type AdsTooltipProps = React.ComponentPropsWithoutRef<typeof BaseTooltip>;\nexport type AdsTooltipTriggerProps = React.ComponentPropsWithoutRef<\n typeof BaseTooltipTrigger\n>;\nexport type AdsTooltipArrowProps = React.ComponentPropsWithoutRef<\n typeof BaseTooltipArrow\n>;\nexport type AdsTooltipContentProps = React.ComponentPropsWithoutRef<\n typeof BaseTooltipContent\n>;\n\nconst tooltipContentClassName =\n \"z-50 rounded-[6px] border-0 bg-[#844fff] px-3 py-2 text-sm font-normal leading-5 text-[#fdfdfd] shadow-[0px_8px_24px_rgba(0,0,0,0.22)]\";\n\nconst AdsTooltipProvider = BaseTooltipProvider;\nconst AdsTooltip = BaseTooltip;\nconst AdsTooltipTrigger = BaseTooltipTrigger;\n\nconst AdsTooltipContent = React.forwardRef<\n React.ElementRef<typeof BaseTooltipContent>,\n AdsTooltipContentProps\n>(({ align = \"center\", className, sideOffset = 10, ...props }, ref) => (\n <BaseTooltipContent\n align={align}\n className={cn(tooltipContentClassName, className)}\n ref={ref}\n sideOffset={sideOffset}\n {...props}\n />\n));\nAdsTooltipContent.displayName = \"AdsTooltipContent\";\n\nconst AdsTooltipArrow = React.forwardRef<\n React.ElementRef<typeof BaseTooltipArrow>,\n AdsTooltipArrowProps\n>(({ className, height = 5, width = 10, ...props }, ref) => (\n <BaseTooltipArrow\n className={cn(\"fill-[#844fff]\", className)}\n height={height}\n ref={ref}\n width={width}\n {...props}\n />\n));\nAdsTooltipArrow.displayName = \"AdsTooltipArrow\";\n\nexport {\n AdsTooltip,\n AdsTooltipArrow,\n AdsTooltipContent,\n AdsTooltipProvider,\n AdsTooltipTrigger,\n};\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\nconst TooltipArrow = TooltipPrimitive.Arrow;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-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-tooltip-content-transform-origin]\",\n className,\n )}\n ref={ref}\n sideOffset={sideOffset}\n {...props}\n />\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport {\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n CircleCheck,\n Info,\n LoaderCircle,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\";\nimport { Toaster, toast, type ExternalToast, type ToasterProps } from \"sonner\";\n\nimport { useAdsI18n } from \"../../i18n\";\nimport { cn } from \"../../lib/cn\";\nimport { AdsButton } from \"../AdsButton\";\n\nexport type AdsToastIntent =\n | \"default\"\n | \"success\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"loading\";\n\nexport type AdsToastAction = {\n label: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nexport interface AdsToastProps\n extends Omit<React.ComponentPropsWithoutRef<\"div\">, \"title\"> {\n action?: AdsToastAction;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n intent?: AdsToastIntent;\n title: React.ReactNode;\n}\n\nexport interface AdsToastOptions\n extends Omit<\n ExternalToast,\n \"action\" | \"cancel\" | \"className\" | \"classNames\" | \"description\" | \"icon\" | \"unstyled\"\n > {\n action?: AdsToastAction;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n testId?: string;\n}\n\ntype AdsToastPromiseStage = {\n action?: AdsToastAction;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n title: React.ReactNode;\n};\n\nexport interface AdsToastPromiseOptions<ToastData>\n extends Omit<\n ExternalToast,\n \"action\" | \"cancel\" | \"className\" | \"classNames\" | \"description\" | \"icon\" | \"unstyled\"\n > {\n error: AdsToastPromiseStage | ((error: unknown) => AdsToastPromiseStage);\n loading: AdsToastPromiseStage;\n success:\n | AdsToastPromiseStage\n | ((data: ToastData) => AdsToastPromiseStage);\n}\n\nconst adsToastIconMap: Record<\n Exclude<AdsToastIntent, \"default\">,\n React.ComponentType<{ className?: string }>\n> = {\n success: CircleCheck,\n info: Info,\n warning: TriangleAlert,\n error: OctagonX,\n loading: LoaderCircle,\n};\n\nfunction resolveToastIcon(intent: AdsToastIntent, icon?: React.ReactNode) {\n if (icon) {\n return icon;\n }\n\n if (intent === \"default\") {\n return null;\n }\n\n const Icon = adsToastIconMap[intent];\n\n return (\n <Icon\n aria-hidden\n className={cn(\"h-4 w-4 shrink-0 text-foreground\", intent === \"loading\" && \"animate-spin\")}\n data-testid=\"ads-toast-icon\"\n />\n );\n}\n\nexport const AdsToast = React.forwardRef<HTMLDivElement, AdsToastProps>(\n (\n {\n action,\n className,\n description,\n icon,\n intent = \"default\",\n title,\n ...props\n },\n ref,\n ) => {\n const resolvedIcon = resolveToastIcon(intent, icon);\n\n return (\n <div\n className={cn(\n \"flex min-w-[356px] max-w-[356px] items-center rounded-radius-lg border border-border bg-popover p-4 text-foreground\",\n \"shadow-[0px_10px_15px_-3px_rgba(0,0,0,0.1),0px_4px_6px_-4px_rgba(0,0,0,0.1)]\",\n resolvedIcon ? \"gap-1.5\" : action ? \"gap-6\" : \"gap-0\",\n className,\n )}\n data-testid=\"ads-toast\"\n ref={ref}\n {...props}\n >\n {resolvedIcon}\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <p className=\"text-sm font-medium leading-5 text-foreground\">{title}</p>\n {description ? (\n <p className=\"text-xs font-normal leading-4 text-muted-foreground\">\n {description}\n </p>\n ) : null}\n </div>\n {action ? (\n <AdsButton\n className=\"shrink-0 rounded-radius-lg\"\n intent=\"primary\"\n onClick={action.onClick}\n size=\"sm\"\n >\n {action.label}\n </AdsButton>\n ) : null}\n </div>\n );\n },\n);\nAdsToast.displayName = \"AdsToast\";\n\nexport interface AdsToasterProps\n extends Omit<ToasterProps, \"containerAriaLabel\" | \"icons\" | \"toastOptions\"> {\n containerAriaLabel?: string;\n}\n\nexport function AdsToaster({\n containerAriaLabel,\n duration = 4000,\n expand = false,\n gap = 16,\n position = \"bottom-right\",\n visibleToasts = 6,\n ...props\n}: AdsToasterProps) {\n const { messages } = useAdsI18n();\n\n return (\n <Toaster\n closeButton={false}\n containerAriaLabel={containerAriaLabel ?? messages.toast.notifications}\n duration={duration}\n expand={expand}\n gap={gap}\n position={position}\n toastOptions={{\n unstyled: true,\n }}\n visibleToasts={visibleToasts}\n {...props}\n />\n );\n}\n\nfunction toStageNode(\n intent: AdsToastIntent,\n title: React.ReactNode,\n options?: Pick<AdsToastOptions, \"action\" | \"description\" | \"icon\">,\n) {\n return (\n <AdsToast\n action={options?.action}\n description={options?.description}\n icon={options?.icon}\n intent={intent}\n title={title}\n />\n );\n}\n\nfunction showAdsToast(\n intent: AdsToastIntent,\n title: React.ReactNode,\n options?: AdsToastOptions,\n) {\n const { action, description, icon, ...toastOptions } = options ?? {};\n\n return toast.custom(\n (id) => (\n <AdsToast\n action={\n action\n ? {\n ...action,\n onClick: (event) => {\n action.onClick?.(event);\n toast.dismiss(id);\n },\n }\n : undefined\n }\n description={description}\n icon={icon}\n intent={intent}\n title={title}\n />\n ),\n {\n ...toastOptions,\n unstyled: true,\n },\n );\n}\n\nfunction resolvePromiseStage<ToastData>(\n stage:\n | AdsToastPromiseStage\n | ((value: ToastData) => AdsToastPromiseStage),\n value: ToastData,\n) {\n return typeof stage === \"function\" ? stage(value) : stage;\n}\n\ntype AdsToastManager = ((\n title: React.ReactNode,\n options?: AdsToastOptions,\n) => string | number) & {\n dismiss: (id?: number | string) => string | number;\n error: (title: React.ReactNode, options?: AdsToastOptions) => string | number;\n info: (title: React.ReactNode, options?: AdsToastOptions) => string | number;\n loading: (title: React.ReactNode, options?: AdsToastOptions) => string | number;\n promise: <ToastData>(\n promise: Promise<ToastData> | (() => Promise<ToastData>),\n options: AdsToastPromiseOptions<ToastData>,\n ) => ReturnType<typeof toast.promise<ToastData>>;\n success: (title: React.ReactNode, options?: AdsToastOptions) => string | number;\n warning: (title: React.ReactNode, options?: AdsToastOptions) => string | number;\n};\n\nexport const AdsToastManager: AdsToastManager = Object.assign(\n (title: React.ReactNode, options?: AdsToastOptions) =>\n showAdsToast(\"default\", title, options),\n {\n success: (title: React.ReactNode, options?: AdsToastOptions) =>\n showAdsToast(\"success\", title, options),\n info: (title: React.ReactNode, options?: AdsToastOptions) =>\n showAdsToast(\"info\", title, options),\n warning: (title: React.ReactNode, options?: AdsToastOptions) =>\n showAdsToast(\"warning\", title, options),\n error: (title: React.ReactNode, options?: AdsToastOptions) =>\n showAdsToast(\"error\", title, options),\n loading: (title: React.ReactNode, options?: AdsToastOptions) =>\n showAdsToast(\"loading\", title, options),\n dismiss: (id?: number | string) => toast.dismiss(id),\n promise: <ToastData,>(\n promise: Promise<ToastData> | (() => Promise<ToastData>),\n options: AdsToastPromiseOptions<ToastData>,\n ) => {\n const { error, loading, success, ...toastOptions } = options;\n\n return toast.promise(promise, {\n ...toastOptions,\n unstyled: true,\n loading: toStageNode(\"loading\", loading.title, loading),\n success: (value) => {\n const stage = resolvePromiseStage(success, value);\n\n return toStageNode(\"success\", stage.title, stage);\n },\n error: (reason) => {\n const stage = resolvePromiseStage(error, reason);\n\n return toStageNode(\"error\", stage.title, stage);\n },\n });\n },\n },\n);\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\nimport { useAdsI18n } from \"../../i18n\";\nimport { cn } from \"../../lib/cn\";\n\nexport type DialogProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;\nexport type DialogTriggerProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;\nexport type DialogPortalProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>;\nexport type DialogOverlayProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;\nexport type DialogCloseProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>;\n\nexport interface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n closeLabel?: string;\n hideCloseButton?: boolean;\n}\n\nexport type DialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;\nexport type DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\nexport type DialogTitleProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;\nexport type DialogDescriptionProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;\n\nconst overlayClassName =\n \"fixed inset-0 z-50 bg-black/80 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\";\n\nconst contentClassName =\n \"fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-[423px] -translate-x-1/2 -translate-y-1/2 gap-lg rounded-radius-md border border-border bg-card p-xl text-foreground shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.1),0px_10px_15px_-3px_rgba(0,0,0,0.1)] duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\";\n\nconst closeButtonClassName =\n \"absolute right-xl top-xl inline-flex h-6 w-6 items-center justify-center rounded-sm text-foreground/80 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card disabled:pointer-events-none\";\n\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n DialogOverlayProps\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n className={cn(overlayClassName, className)}\n ref={ref}\n {...props}\n />\n));\nDialogOverlay.displayName = \"DialogOverlay\";\n\nconst DialogClose = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Close>,\n DialogCloseProps\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Close\n className={cn(\n \"inline-flex items-center justify-center rounded-radius-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card disabled:pointer-events-none\",\n className,\n )}\n ref={ref}\n {...props}\n />\n));\nDialogClose.displayName = \"DialogClose\";\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ children, className, closeLabel, hideCloseButton = false, ...props }, ref) => {\n const { messages } = useAdsI18n();\n const resolvedCloseLabel = closeLabel ?? messages.dialog.close;\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n className={cn(contentClassName, className)}\n ref={ref}\n {...props}\n >\n {children}\n {!hideCloseButton ? (\n <DialogPrimitive.Close\n aria-label={resolvedCloseLabel}\n className={closeButtonClassName}\n >\n <X aria-hidden className=\"h-4 w-4\" />\n <span className=\"sr-only\">{resolvedCloseLabel}</span>\n </DialogPrimitive.Close>\n ) : null}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n});\nDialogContent.displayName = \"DialogContent\";\n\nconst DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\"flex flex-col gap-sm pr-8 text-left\", className)}\n ref={ref}\n {...props}\n />\n ),\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = React.forwardRef<HTMLDivElement, DialogFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n \"flex flex-col-reverse gap-sm sm:flex-row sm:justify-end\",\n className,\n )}\n ref={ref}\n {...props}\n />\n ),\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n DialogTitleProps\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n className={cn(\"text-lg font-semibold leading-7 text-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n DialogDescriptionProps\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n className={cn(\"text-sm leading-5 text-muted-foreground\", className)}\n ref={ref}\n {...props}\n />\n));\nDialogDescription.displayName = \"DialogDescription\";\n\nconst AdsDialog = Dialog;\nconst AdsDialogTrigger = DialogTrigger;\nconst AdsDialogPortal = DialogPortal;\nconst AdsDialogOverlay = DialogOverlay;\nconst AdsDialogClose = DialogClose;\nconst AdsDialogContent = DialogContent;\nconst AdsDialogHeader = DialogHeader;\nconst AdsDialogFooter = DialogFooter;\nconst AdsDialogTitle = DialogTitle;\nconst AdsDialogDescription = DialogDescription;\n\nexport type AdsDialogProps = DialogProps;\nexport type AdsDialogTriggerProps = DialogTriggerProps;\nexport type AdsDialogPortalProps = DialogPortalProps;\nexport type AdsDialogOverlayProps = DialogOverlayProps;\nexport type AdsDialogCloseProps = DialogCloseProps;\nexport type AdsDialogContentProps = DialogContentProps;\nexport type AdsDialogHeaderProps = DialogHeaderProps;\nexport type AdsDialogFooterProps = DialogFooterProps;\nexport type AdsDialogTitleProps = DialogTitleProps;\nexport type AdsDialogDescriptionProps = DialogDescriptionProps;\n\nexport {\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n AdsDialog,\n AdsDialogTrigger,\n AdsDialogPortal,\n AdsDialogOverlay,\n AdsDialogClose,\n AdsDialogContent,\n AdsDialogHeader,\n AdsDialogFooter,\n AdsDialogTitle,\n AdsDialogDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/cn\";\n\nconst adsEmptyVariants = cva(\n \"flex w-full flex-col items-center justify-center gap-6 p-12 text-center\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"rounded-radius-lg border border-dashed border-border\",\n background: \"rounded-radius-lg bg-popover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface AdsEmptyProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof adsEmptyVariants> {}\n\nfunction AdsEmpty({ className, variant, ...props }: AdsEmptyProps) {\n return (\n <div\n data-slot=\"ads-empty\"\n className={cn(adsEmptyVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"ads-empty-header\"\n className={cn(\"flex w-full max-w-[384px] flex-col items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyMedia({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"ads-empty-media\"\n data-testid=\"ads-empty-media\"\n className={cn(\n \"flex size-10 items-center justify-center rounded-radius-lg bg-muted text-muted-foreground [&_svg]:size-6 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <div\n data-slot=\"ads-empty-title\"\n className={cn(\"text-lg font-medium leading-7 text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"ads-empty-description\"\n className={cn(\"max-w-[384px] text-sm leading-5 text-muted-foreground text-center\", className)}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"ads-empty-content\"\n className={cn(\"flex w-full max-w-[384px] flex-col items-center gap-4\", className)}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyActions({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"ads-empty-actions\"\n className={cn(\"flex flex-wrap items-center justify-center gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction AdsEmptyFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"ads-empty-footer\"\n className={cn(\"text-sm font-medium leading-5 text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n AdsEmpty,\n AdsEmptyActions,\n AdsEmptyContent,\n AdsEmptyDescription,\n AdsEmptyFooter,\n AdsEmptyHeader,\n AdsEmptyMedia,\n AdsEmptyTitle,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport {\n Table as PrimitiveTable,\n TableBody as PrimitiveTableBody,\n TableCaption as PrimitiveTableCaption,\n TableCell as PrimitiveTableCell,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TableHeader as PrimitiveTableHeader,\n TableRow as PrimitiveTableRow,\n} from \"../../primitives/table\";\n\ntype PrimitiveTableProps = React.ComponentPropsWithoutRef<typeof PrimitiveTable>;\n\nconst AdsTable = React.forwardRef<HTMLTableElement, PrimitiveTableProps>(\n ({ className, ...props }, ref) => (\n <div className=\"w-full overflow-hidden rounded-radius-md border border-border bg-card\">\n <PrimitiveTable\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm text-foreground\", className)}\n {...props}\n />\n </div>\n ),\n);\nAdsTable.displayName = \"AdsTable\";\n\nconst AdsTableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableHeader>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableHeader\n ref={ref}\n className={cn(\"[&_tr]:border-border\", className)}\n {...props}\n />\n));\nAdsTableHeader.displayName = \"AdsTableHeader\";\n\nconst AdsTableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableBody>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableBody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nAdsTableBody.displayName = \"AdsTableBody\";\n\nconst AdsTableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableFooter>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableFooter\n ref={ref}\n className={cn(\"border-border bg-card text-foreground\", className)}\n {...props}\n />\n));\nAdsTableFooter.displayName = \"AdsTableFooter\";\n\nconst AdsTableRow = React.forwardRef<\n HTMLTableRowElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableRow>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableRow\n ref={ref}\n className={cn(\n \"border-border hover:bg-transparent data-[state=selected]:bg-accent/30\",\n className,\n )}\n {...props}\n />\n));\nAdsTableRow.displayName = \"AdsTableRow\";\n\nconst AdsTableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableHead>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableHead\n ref={ref}\n className={cn(\n \"h-10 px-2 align-middle text-sm font-medium leading-5 text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nAdsTableHead.displayName = \"AdsTableHead\";\n\nconst AdsTableCell = React.forwardRef<\n HTMLTableCellElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableCell>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableCell\n ref={ref}\n className={cn(\n \"p-2 align-middle text-sm font-normal leading-5 text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nAdsTableCell.displayName = \"AdsTableCell\";\n\nconst AdsTableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.ComponentPropsWithoutRef<typeof PrimitiveTableCaption>\n>(({ className, ...props }, ref) => (\n <PrimitiveTableCaption\n ref={ref}\n className={cn(\"text-sm leading-5 text-muted-foreground\", className)}\n {...props}\n />\n));\nAdsTableCaption.displayName = \"AdsTableCaption\";\n\nexport {\n AdsTable,\n AdsTableBody,\n AdsTableCaption,\n AdsTableCell,\n AdsTableFooter,\n AdsTableHead,\n AdsTableHeader,\n AdsTableRow,\n};\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n"],"mappings":"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","names":["React","React","jsx","jsx","jsxs","React","cva","React","jsx","jsx","jsxs","cva","Alert","AlertTitle","AlertDescription","React","cva","cva","jsx","cva","jsx","jsxs","cva","React","jsx","jsxs","React","React","cva","jsx","cva","jsx","jsxs","React","ChevronRight","MoreHorizontal","React","Slot","jsx","jsxs","Slot","jsx","ChevronRight","MoreHorizontal","React","React","jsx","React","useMemo","cva","React","cva","jsx","cva","React","jsx","jsx","jsxs","cva","jsx","jsxs","useMemo","jsx","jsxs","jsx","Checkbox","React","Slot","React","jsx","Slot","cva","jsx","cva","jsx","jsx","Slot","React","jsx","React","React","jsx","jsx","toneClassName","React","jsx","jsxs","React","React","jsx","jsx","jsxs","React","React","jsx","jsxs","jsx","jsxs","React","ChevronLeft","ChevronRight","MoreHorizontal","React","ChevronRight","MoreHorizontal","jsx","jsxs","ChevronRight","MoreHorizontal","jsx","jsxs","ChevronLeft","ChevronRight","MoreHorizontal","React","React","jsx","jsx","React","React","jsx","jsx","jsxs","Progress","React","React","jsx","jsx","jsxs","RadioGroup","RadioGroupItem","React","Check","ChevronDown","jsx","jsxs","ChevronDown","Check","jsx","jsxs","contentClassName","React","React","jsx","jsxs","jsx","jsxs","Slider","React","React","jsx","jsx","jsxs","Switch","React","React","jsx","jsx","React","React","jsx","jsx","sizeClassName","React","React","jsx","jsx","sizeClassName","variantClassName","React","jsx","jsxs","React","React","jsx","jsx","React","CircleCheck","Info","TriangleAlert","jsx","jsxs","CircleCheck","Info","TriangleAlert","Icon","React","jsx","jsxs","overlayClassName","contentClassName","cva","jsx","cva","React","React","jsx","jsx"]}