@hai3/uikit 0.1.0-alpha.1 → 0.1.0-alpha.10

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/base/avatar.tsx","../src/base/button.tsx","../src/base/badge.tsx","../src/base/input.tsx","../src/base/textarea.tsx","../src/base/switch.tsx","../src/base/skeleton.tsx","../src/base/spinner.tsx","../src/base/slider.tsx","../src/base/progress.tsx","../src/base/tooltip.tsx","../src/base/card.tsx","../src/base/header.tsx","../src/base/navigation-menu.tsx","../src/base/sheet.tsx","../src/base/dialog.tsx","../src/base/select.tsx","../src/base/dropdown-menu.tsx","../src/composite/buttons/IconButton.tsx","../src/composite/buttons/DropdownButton.tsx","../src/composite/navigation/Sidebar.tsx","../src/composite/navigation/SidebarHeader.tsx","../src/composite/user/UserInfo.tsx","../src/composite/chat/MessageBubble.tsx","../src/composite/chat/ChatInput.tsx","../src/composite/chat/ThreadList.tsx","../src/icons/MenuIcon.tsx","../src/icons/CloseIcon.tsx","../src/styles/applyTheme.ts"],"names":["React","React2","jsx","cva","Slot","React3","React4","React5","React6","Icon","React7","React8","React9","React10","React12","React13","jsxs","DialogPrimitive","React14","X","React15","ChevronDown","Check","ButtonVariant","ButtonSize","React19","React20","trim","MessageType"],"mappings":"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","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\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\"\nimport { ButtonVariant, ButtonSize } from \"@hai3/uikit-contracts\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n [ButtonVariant.Default]:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n [ButtonVariant.Destructive]:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n [ButtonVariant.Outline]:\n \"border border-input bg-background shadow-sm hover:bg-accent data-[state=open]:bg-accent\",\n [ButtonVariant.Secondary]:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n [ButtonVariant.Ghost]: \"hover:bg-accent data-[state=open]:bg-accent\",\n [ButtonVariant.Link]: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n [ButtonSize.Default]: \"h-9 px-4 py-2\",\n [ButtonSize.Sm]: \"h-8 rounded-md px-3 text-xs\",\n [ButtonSize.Lg]: \"h-10 rounded-md px-8\",\n [ButtonSize.Icon]: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: ButtonVariant.Default,\n size: ButtonSize.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","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 badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean\n}\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: BadgeProps) {\n const Comp = asChild ? Slot : \"span\"\n\n return (\n <Comp\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n\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-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors 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-1 focus-visible:ring-ring 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 * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Enable auto-resize behavior (adjusts height based on content)\n */\n autoResize?: boolean;\n /**\n * Minimum height in pixels when auto-resize is enabled (default: 50)\n */\n minHeight?: number;\n /**\n * Maximum height in pixels when auto-resize is enabled (default: 350)\n */\n maxHeight?: number;\n /**\n * Size variant (affects min-height)\n * - sm: min-h-11 (44px / 2.75rem)\n * - default: min-h-[60px] (3.75rem)\n * - lg: min-h-20 (80px / 5rem)\n */\n size?: 'sm' | 'default' | 'lg';\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, autoResize = false, minHeight = 50, maxHeight = 350, size = 'default', onChange, ...props }, ref) => {\n const internalRef = React.useRef<HTMLTextAreaElement>(null);\n \n // Merge external ref with internal ref\n React.useImperativeHandle(ref, () => internalRef.current as HTMLTextAreaElement);\n\n // Map size to min-height classes\n const sizeClasses = {\n sm: 'min-h-11 h-11', // 44px / 2.75rem - exact height\n default: 'min-h-[60px]', // 60px / 3.75rem\n lg: 'min-h-20', // 80px / 5rem\n };\n\n // Padding varies by size - sm uses py-3 (12px) for proper centering in 44px height\n const paddingClasses = {\n sm: 'py-3', // 12px top + 12px bottom + 20px line-height = 44px\n default: 'py-2', // 8px top + 8px bottom (default)\n lg: 'py-2', // 8px top + 8px bottom (default)\n };\n\n const handleResize = React.useCallback(() => {\n // Don't auto-resize for 'sm' size - it has a fixed height\n if (autoResize && size !== 'sm' && internalRef.current) {\n const textarea = internalRef.current;\n // Reset height to get accurate scrollHeight\n textarea.style.height = 'auto';\n // Calculate the actual content height\n const scrollHeight = textarea.scrollHeight;\n // Set height with constraints\n textarea.style.height = `${Math.min(Math.max(scrollHeight, minHeight), maxHeight)}px`;\n }\n }, [autoResize, size, minHeight, maxHeight]);\n\n // Auto-resize on mount and value changes\n React.useEffect(() => {\n handleResize();\n }, [handleResize, props.value]);\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n handleResize();\n onChange?.(e);\n },\n [onChange, handleResize]\n );\n\n return (\n <textarea\n className={cn(\n \"flex w-full rounded-md border border-input bg-transparent px-3 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n sizeClasses[size],\n paddingClasses[size],\n className\n )}\n ref={internalRef}\n onChange={handleChange}\n {...props}\n />\n )\n }\n)\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\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-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm 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-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform\",\n \"data-[state=checked]:ltr:translate-x-4 data-[state=checked]:rtl:-translate-x-4\",\n \"data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","import { cn } from \"../lib/utils\"\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, skeleton inherits text color instead of using bg-muted\n * Useful for buttons, menu items, and colored text\n */\n inheritColor?: boolean;\n}\n\nfunction Skeleton({\n className,\n inheritColor = false,\n ...props\n}: SkeletonProps) {\n return (\n <div\n className={cn(\n \"animate-pulse rounded-md\",\n inheritColor ? \"bg-current opacity-20\" : \"bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","import * as React from \"react\"\nimport { Loader2 } from \"lucide-react\"\nimport { trim } from \"lodash\"\n\nimport { cn } from \"../lib/utils\"\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ComponentType<{ className?: string }>\n size?: string\n}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, icon: Icon = Loader2, size = \"size-4\", ...props }, ref) => {\n // Extract text-* color classes for the icon, keep other classes for wrapper\n const textColorClasses = className?.match(/\\btext-\\S+/g)?.join(' ') || '';\n const wrapperClasses = trim(className?.replace(/\\btext-\\S+/g, '') || '');\n \n return (\n <div\n ref={ref}\n className={cn(\"inline-flex items-center justify-center\", wrapperClasses)}\n {...props}\n >\n <Icon className={cn(\"animate-spin\", size, textColorClasses)} />\n </div>\n )\n }\n)\nSpinner.displayName = \"Spinner\"\n\nexport { Spinner }\n","\"use client\"\n\nimport * 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))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nconst SliderTrack = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Track>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Track>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Track\n ref={ref}\n className={cn(\n \"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\",\n className\n )}\n {...props}\n />\n))\nSliderTrack.displayName = SliderPrimitive.Track.displayName\n\nconst SliderRange = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Range>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Range>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Range\n ref={ref}\n className={cn(\"absolute h-full bg-primary\", className)}\n {...props}\n />\n))\nSliderRange.displayName = SliderPrimitive.Range.displayName\n\nconst SliderThumb = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Thumb>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Thumb>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Thumb\n ref={ref}\n className={cn(\n \"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n))\nSliderThumb.displayName = SliderPrimitive.Thumb.displayName\n\nexport { Slider, SliderTrack, SliderRange, SliderThumb }\n\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-primary/20\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"../lib/utils\"\n\nconst TooltipProvider = ({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => (\n <TooltipPrimitive.Provider\n delayDuration={delayDuration}\n {...props}\n />\n)\nTooltipProvider.displayName = TooltipPrimitive.Provider.displayName\n\nconst Tooltip = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) => (\n <TooltipProvider>\n <TooltipPrimitive.Root {...props} />\n </TooltipProvider>\n)\nTooltip.displayName = TooltipPrimitive.Root.displayName\n\nconst TooltipTrigger = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>\n>(({ ...props }, ref) => (\n <TooltipPrimitive.Trigger ref={ref} {...props} />\n))\nTooltipTrigger.displayName = TooltipPrimitive.Trigger.displayName\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 ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n\n","import * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import React from 'react';\nimport { cn } from '../lib/utils';\n\n/**\n * Header Props\n */\nexport interface HeaderProps {\n children?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Header Component\n * Base layout primitive for app header\n * HAI3 custom component (not from shadcn)\n * Accepts children for flexible content (user info, actions, etc.)\n */\nexport const Header = React.forwardRef<HTMLElement, HeaderProps>(\n ({ children, className }, ref) => {\n return (\n <header\n ref={ref}\n className={cn(\n 'flex items-center justify-end px-6 py-4 bg-background border-b border-border h-16 w-full',\n className\n )}\n >\n <div className=\"flex items-center gap-4\">{children}</div>\n </header>\n );\n }\n);\n\nHeader.displayName = 'Header';\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"group flex flex-1 list-none items-center justify-center space-x-1\",\n className\n )}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\"\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto \",\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute left-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","import * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg 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%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","import * 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 // HAI3 customization: bg-background and hover states for consistency with Button Outline\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm ring-offset-background hover:bg-accent hover:text-bg-accent-foreground data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring 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(\"px-2 py-1.5 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-2 pr-8 text-sm outline-none focus:bg-accent focus:text-bg-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-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 <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","import * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\nimport { TextDirection } from \"@hai3/uikit-contracts\"\n\nimport { cn } from \"../lib/utils\"\n\nconst DropdownMenu: React.FC<\n Omit<React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root>, 'dir'> & {\n dir?: TextDirection;\n }\n> = ({ dir, ...props }) => (\n <DropdownMenuPrimitive.Root \n {...props} \n dir={dir as 'ltr' | 'rtl' | undefined} \n />\n);\nDropdownMenu.displayName = \"DropdownMenu\";\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto rtl:rotate-180\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> & {\n container?: HTMLElement | null;\n }\n>(({ className, container, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal container={container ?? undefined}>\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> & {\n container?: HTMLElement | null;\n }\n>(({ className, sideOffset = 4, container, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal container={container ?? undefined}>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"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-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent 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 <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import React from 'react';\nimport { Button, type ButtonProps } from '../../base/button';\nimport { cn } from '../../lib/utils';\nimport { ButtonVariant, ButtonSize, IconButtonSize } from '@hai3/uikit-contracts';\n\n/**\n * IconButton component for HAI3 UI-Core\n * Provides a consistent icon-only button across all screens\n * Composes UI Kit Button with icon size variant\n */\n\nexport interface IconButtonProps extends Omit<ButtonProps, 'size' | 'asChild'> {\n size?: IconButtonSize;\n 'aria-label': string; // Required for accessibility\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ variant = ButtonVariant.Ghost, size = IconButtonSize.Default, className, ...props }, ref) => {\n // Apply custom sizes for icon buttons\n const sizeStyles: Record<IconButtonSize, string> = {\n [IconButtonSize.Small]: 'h-8 w-8',\n [IconButtonSize.Default]: 'h-9 w-9',\n [IconButtonSize.Large]: 'h-11 w-11',\n };\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={ButtonSize.Icon}\n className={cn(sizeStyles[size], className)}\n {...props}\n />\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n\n// Re-export ButtonVariant for convenience\nexport { ButtonVariant };\n","import React from 'react';\nimport { ChevronDown } from 'lucide-react';\nimport { Button } from '../../base/button';\nimport { ButtonVariant } from '@hai3/uikit-contracts';\nimport { cn } from '../../lib/utils';\n\n/**\n * DropdownButton Component\n * Button with integrated dropdown chevron icon\n * Used for dropdown triggers in ThemeSelector, ScreensetSelector, etc.\n * Forwards all props to Button for DropdownMenuTrigger compatibility\n */\nexport interface DropdownButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n children: React.ReactNode;\n variant?: ButtonVariant;\n className?: string;\n}\n\nexport const DropdownButton = React.forwardRef<\n HTMLButtonElement,\n DropdownButtonProps\n>(({ children, variant = ButtonVariant.Outline, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={variant}\n className={cn('min-w-40 justify-between rtl:flex-row-reverse', className)}\n {...props}\n >\n <span>{children}</span>\n <ChevronDown className=\"h-4 w-4\" />\n </Button>\n );\n});\n\nDropdownButton.displayName = 'DropdownButton';\n","/**\n * Sidebar Component - Tailored from shadcn/ui sidebar\n * HAI3 customization: Simplified for desktop-only collapsible navigation\n * Removed: mobile support, keyboard shortcuts, cookie persistence\n */\n\nimport * 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 Sidebar = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"aside\"> & {\n collapsed?: boolean\n }\n>(({ collapsed = false, className, children, ...props }, ref) => {\n return (\n <aside\n ref={ref}\n data-state={collapsed ? \"collapsed\" : \"expanded\"}\n data-collapsible={collapsed ? \"icon\" : \"\"}\n className={cn(\n \"group flex flex-col border-r border-mainMenu-border transition-[width] duration-200 ease-linear\",\n \"bg-mainMenu text-mainMenu-foreground\",\n collapsed ? \"w-14\" : \"w-64\",\n className\n )}\n {...props}\n >\n {children}\n </aside>\n )\n})\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n // HAI3 customization: gap and padding use rem-based spacing for theme scaling\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2\",\n className\n )}\n {...props}\n />\n))\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n // HAI3 customization: gap-1 (0.25rem) scales with theme root font size\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n // HAI3 customization: All sizing uses rem-based Tailwind classes for theme responsiveness\n \"peer/menu-button flex w-full items-center gap-2 rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>span:last-child]:overflow-hidden [&>svg]:size-5 [&>svg]:shrink-0 text-mainMenu-foreground hover:bg-mainMenu-hover data-[active=true]:bg-mainMenu-selected data-[active=true]:text-white data-[active=true]:font-medium\",\n {\n variants: {\n variant: {\n default: \"\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--border))] hover:bg-mainMenu-hover\",\n },\n size: {\n // HAI3 customization: All heights use rem-based Tailwind classes (h-10=2.5rem, h-7=1.75rem, h-12=3rem)\n default: \"h-10 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n title={tooltip}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuIcon = React.forwardRef<\n HTMLSpanElement,\n React.ComponentProps<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n // HAI3 customization: size-5 (1.25rem) scales with theme root font size\n // Force SVG children to fill container and inherit the rem-based size\n className={cn(\"size-5 min-w-[1.5rem] flex-shrink-0 [&>svg]:w-full [&>svg]:h-full\", className)}\n {...props}\n />\n))\nSidebarMenuIcon.displayName = \"SidebarMenuIcon\"\n\nconst SidebarMenuLabel = React.forwardRef<\n HTMLSpanElement,\n React.ComponentProps<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(className)}\n {...props}\n />\n))\nSidebarMenuLabel.displayName = \"SidebarMenuLabel\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarMenuLabel,\n SidebarMenuIcon,\n}\n","/**\n * Sidebar Header Component\n * Pure presentational component for sidebar logo/branding area\n * Used with Sidebar component for consistent header styling\n */\n\nimport * as React from \"react\"\nimport { cn } from \"../../lib/utils\"\nimport { SidebarMenuButton, SidebarMenuIcon, SidebarMenuLabel } from \"./Sidebar\"\n\nexport interface SidebarHeaderProps extends React.ComponentProps<\"div\"> {\n /**\n * Logo icon element (should be properly sized SVG)\n */\n logo?: React.ReactNode\n /**\n * Logo text/branding element (shown when expanded)\n */\n logoText?: React.ReactNode\n /**\n * Whether the sidebar is collapsed\n */\n collapsed?: boolean\n /**\n * Click handler for the header area\n */\n onClick?: () => void\n}\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, SidebarHeaderProps>(\n ({ logo, logoText, collapsed = false, onClick, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col h-16\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center flex-1 px-2\">\n <SidebarMenuButton onClick={onClick} tooltip={collapsed ? \"Expand menu\" : \"Collapse menu\"}>\n {logo && <SidebarMenuIcon>{logo}</SidebarMenuIcon>}\n {logoText && (\n <SidebarMenuLabel className=\"[&>svg]:h-5 [&>svg]:w-auto\">\n {logoText}\n </SidebarMenuLabel>\n )}\n </SidebarMenuButton>\n </div>\n <div className=\"border-b border-mainMenu-border mx-4\" />\n </div>\n )\n }\n)\n\nSidebarHeader.displayName = \"SidebarHeader\"\n\nexport { SidebarHeader }\n","import React from 'react';\nimport { trim, toUpper } from 'lodash';\nimport { cn } from '../../lib/utils';\nimport { Avatar, AvatarImage, AvatarFallback } from '../../base/avatar';\nimport { Skeleton } from '../../base/skeleton';\n\n/**\n * User Info Props\n * Matches UI Core contract in uikitContracts.ts\n */\nexport interface UserInfoProps {\n displayName?: string;\n email?: string;\n avatarUrl?: string;\n className?: string;\n loading?: boolean;\n}\n\n/**\n * UserInfo Component\n * Composite component combining shadcn Avatar + text\n * Displays user avatar with fallback initials and name/email\n */\nexport const UserInfo = React.forwardRef<HTMLDivElement, UserInfoProps>(\n ({ displayName, email, avatarUrl, className, loading }, ref) => {\n const getInitials = (): string => {\n if (!displayName) return toUpper(email?.[0] || '') || '?';\n const parts = trim(displayName).split(/\\s+/);\n if (parts.length >= 2) {\n return toUpper(`${parts[0][0]}${parts[parts.length - 1][0]}`);\n }\n return toUpper(displayName.slice(0, 2));\n };\n\n const initials = getInitials();\n const displayText = displayName || email || 'User';\n \n if (loading) {\n return (\n <div ref={ref} className={cn('flex items-center gap-2 text-sm', className)}>\n <Skeleton className=\"h-8 w-8 rounded-full\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n );\n }\n \n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-2 text-sm text-muted-foreground',\n className\n )}\n >\n <Avatar className=\"h-8 w-8\">\n {avatarUrl && <AvatarImage src={avatarUrl} alt={displayText} />}\n <AvatarFallback>{initials}</AvatarFallback>\n </Avatar>\n <span>{displayText}</span>\n </div>\n );\n }\n);\n\nUserInfo.displayName = 'UserInfo';\n","/**\n * MessageBubble - Chat message display component\n * Pure presentational component for displaying chat messages\n */\n\nimport { User, Bot } from 'lucide-react';\nimport { Avatar, AvatarFallback } from '../../base/avatar';\n\nexport enum MessageType {\n User = 'user',\n Assistant = 'assistant',\n}\n\nexport interface MessageBubbleProps {\n type: MessageType;\n content: string;\n timestamp?: Date;\n className?: string;\n onCopy?: () => void;\n onEdit?: () => void;\n onDelete?: () => void;\n}\n\nexport const MessageBubble = ({\n type,\n content,\n className = '',\n onCopy,\n onEdit,\n onDelete,\n}: MessageBubbleProps) => {\n const isUser = type === MessageType.User;\n\n return (\n <div className={`flex gap-4 group ${className}`}>\n {/* Avatar */}\n <Avatar className=\"h-8 w-8 flex-shrink-0\">\n <AvatarFallback\n className={isUser ? 'bg-blue-500 text-white' : 'bg-green-500 text-white'}\n >\n {isUser ? <User size={16} /> : <Bot size={16} />}\n </AvatarFallback>\n </Avatar>\n\n {/* Message content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"prose prose-sm max-w-none\">\n <div className=\"leading-relaxed whitespace-pre-wrap\">{content}</div>\n </div>\n\n {/* Message actions */}\n {(onCopy || onEdit || onDelete) && (\n <div className=\"flex items-center gap-1 mt-2 opacity-0 group-hover:opacity-100 transition-opacity\">\n {onCopy && (\n <button\n onClick={onCopy}\n className=\"p-1.5 hover:bg-muted rounded-lg transition-colors text-muted-foreground hover:text-foreground\"\n title=\"Copy message\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n </button>\n )}\n {onEdit && (\n <button\n onClick={onEdit}\n className=\"p-1.5 hover:bg-muted rounded-lg transition-colors text-muted-foreground hover:text-foreground\"\n title=\"Edit message\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n </svg>\n </button>\n )}\n {onDelete && (\n <button\n onClick={onDelete}\n className=\"p-1.5 hover:bg-destructive/10 rounded-lg transition-colors text-muted-foreground hover:text-destructive\"\n title=\"Delete message\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n </svg>\n </button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n","/**\n * ChatInput - Message input component\n * Pure presentational component for chat message input\n */\n\nimport { trim } from 'lodash';\nimport { Send, Paperclip } from 'lucide-react';\nimport { Button } from '../../base/button';\nimport { ButtonVariant, ButtonSize } from '@hai3/uikit-contracts';\n\nexport interface ChatInputProps {\n value: string;\n onChange: (value: string) => void;\n onSend: () => void;\n onAttachFile?: () => void;\n placeholder?: string;\n disabled?: boolean;\n maxRows?: number;\n className?: string;\n}\n\nexport const ChatInput = ({\n value,\n onChange,\n onSend,\n onAttachFile,\n placeholder = 'Type a message...',\n disabled = false,\n maxRows = 14,\n className = '',\n}: ChatInputProps) => {\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n if (!disabled && trim(value)) {\n onSend();\n }\n }\n };\n\n const rows = Math.min(\n Math.max(value.split('\\n').length, 1),\n maxRows\n );\n\n return (\n <div className={`flex items-end gap-2 ${className}`}>\n {/* Attach file button */}\n {onAttachFile && (\n <Button\n variant={ButtonVariant.Ghost}\n size={ButtonSize.Icon}\n onClick={onAttachFile}\n disabled={disabled}\n className=\"flex-shrink-0\"\n aria-label=\"Attach file\"\n >\n <Paperclip size={20} />\n </Button>\n )}\n\n {/* Text input */}\n <textarea\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n rows={rows}\n className=\"flex-1 resize-none rounded-lg border border-input bg-background px-3 py-2 text-sm 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\"\n />\n\n {/* Send button */}\n <Button\n onClick={onSend}\n disabled={disabled || !trim(value)}\n className=\"flex-shrink-0\"\n aria-label=\"Send message\"\n >\n <Send size={20} />\n </Button>\n </div>\n );\n};\n","/**\n * ThreadList - Chat thread list component\n * Pure presentational component for displaying chat threads\n */\n\nimport { Plus, Search } from 'lucide-react';\nimport { Button } from '../../base/button';\nimport { ButtonVariant, ButtonSize } from '@hai3/uikit-contracts';\nimport { Skeleton } from '../../base/skeleton';\n\nexport interface ChatThread {\n id: string;\n title: string;\n preview: string;\n timestamp: Date;\n isTemporary?: boolean;\n}\n\nexport interface ThreadListProps {\n threads: ChatThread[];\n selectedThreadId?: string;\n onThreadSelect: (threadId: string) => void;\n onNewThread: () => void;\n onDeleteThread?: (threadId: string) => void;\n searchQuery?: string;\n onSearchChange?: (query: string) => void;\n loading?: boolean;\n className?: string;\n}\n\nexport const ThreadList = ({\n threads,\n selectedThreadId,\n onThreadSelect,\n onNewThread,\n onDeleteThread,\n searchQuery = '',\n onSearchChange,\n loading = false,\n className = '',\n}: ThreadListProps) => {\n if (loading) {\n return (\n <div className={`flex flex-col h-full ${className}`}>\n <div className=\"p-4 border-b\">\n <Skeleton className=\"h-8 w-full mb-3\" />\n <Skeleton className=\"h-10 w-full\" />\n </div>\n <div className=\"flex-1 overflow-y-auto p-2\">\n {[1, 2, 3, 4, 5].map((i) => (\n <Skeleton key={i} className=\"h-16 w-full mb-2\" />\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div className={`flex flex-col h-full ${className}`}>\n {/* Header */}\n <div className=\"p-4 border-b\">\n <div className=\"flex items-center justify-between mb-3\">\n <h2 className=\"text-lg font-semibold\">Recent Chats</h2>\n <Button\n variant={ButtonVariant.Ghost}\n size={ButtonSize.Icon}\n onClick={onNewThread}\n aria-label=\"New chat\"\n >\n <Plus size={16} />\n </Button>\n </div>\n\n {/* Search */}\n {onSearchChange && (\n <div className=\"relative\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 transform -translate-y-1/2 text-muted-foreground\"\n />\n <input\n type=\"text\"\n placeholder=\"Search chats...\"\n value={searchQuery}\n onChange={(e) => onSearchChange(e.target.value)}\n className=\"w-full pl-9 pr-3 py-2 border border-input rounded-lg text-sm bg-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n />\n </div>\n )}\n </div>\n\n {/* Thread list */}\n <div className=\"flex-1 overflow-y-auto\">\n {threads.length === 0 ? (\n <div className=\"p-4 text-center text-muted-foreground text-sm\">\n No chats yet. Start a new conversation!\n </div>\n ) : (\n threads.map((thread) => (\n <div\n key={thread.id}\n onClick={() => onThreadSelect(thread.id)}\n className={`p-3 border-b cursor-pointer transition-colors hover:bg-muted/50 ${\n selectedThreadId === thread.id ? 'bg-muted' : ''\n }`}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex-1 min-w-0\">\n <h3 className=\"font-medium text-sm truncate mb-1\">\n {thread.title}\n {thread.isTemporary && (\n <span className=\"ml-2 text-xs text-muted-foreground\">(Temporary)</span>\n )}\n </h3>\n <p className=\"text-xs text-muted-foreground truncate\">\n {thread.preview}\n </p>\n </div>\n {onDeleteThread && (\n <button\n onClick={(e) => {\n e.stopPropagation();\n onDeleteThread(thread.id);\n }}\n className=\"p-1 opacity-0 group-hover:opacity-100 hover:bg-destructive/10 rounded transition-opacity text-muted-foreground hover:text-destructive\"\n aria-label=\"Delete thread\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\n\n/**\n * Menu Icon ID\n * Well-known constant defined where it belongs\n */\nexport const MENU_ICON_ID = 'menu' as const;\n\n/**\n * Menu Icon (Hamburger)\n * Core icon for header menu toggle\n * Tree-shakeable - imported and registered by app\n */\nexport const MenuIcon: React.FC<{ className?: string }> = ({ className = '' }) => {\n return (\n <svg\n className={className}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n );\n};\n","import React from 'react';\n\n/**\n * Close Icon ID\n * Well-known constant defined where it belongs\n */\nexport const CLOSE_ICON_ID = 'close' as const;\n\n/**\n * Close Icon (X)\n * Core icon for closing dialogs/popups\n * Tree-shakeable - imported and registered by app\n */\nexport const CloseIcon: React.FC<{ className?: string }> = ({ className = '' }) => {\n return (\n <svg\n className={className}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n );\n};\n","/**\n * Theme application utility\n * Generates CSS variables from theme objects dynamically\n * Single source of truth: theme objects in TypeScript\n * Maps to shadcn CSS variable naming convention\n */\n\nimport type { Theme } from './themeTypes';\n\n/**\n * Normalize color value for CSS variable\n * - HSL format (hsl(221 83% 53%)) → strip hsl() wrapper for shadcn\n * - Special values (transparent) → used as-is\n */\nconst hslToVar = (color: string): string => {\n // Handle special cases\n if (color === 'transparent') {\n return 'transparent';\n }\n\n // HSL format - strip wrapper for shadcn compatibility\n if (color.startsWith('hsl(')) {\n return color.replace('hsl(', '').replace(')', '');\n }\n\n // Return as-is (shouldn't happen with HSL-only system)\n return color;\n};\n\n/**\n * Apply theme to document by injecting CSS variables\n * Theme objects are the single source of truth\n * @param theme - Theme object to apply\n * @param themeName - Optional theme name for data attribute\n */\nexport const applyTheme = (theme: Theme, themeName?: string): void => {\n const root = document.documentElement;\n\n // Set theme attribute for CSS selectors\n if (themeName) {\n root.setAttribute('data-theme', themeName);\n }\n\n // Apply shadcn color variables\n root.style.setProperty('--background', hslToVar(theme.colors.background));\n root.style.setProperty('--foreground', hslToVar(theme.colors.foreground));\n root.style.setProperty('--card', hslToVar(theme.colors.background));\n root.style.setProperty('--card-foreground', hslToVar(theme.colors.foreground));\n root.style.setProperty('--popover', hslToVar(theme.colors.background));\n root.style.setProperty('--popover-foreground', hslToVar(theme.colors.foreground));\n root.style.setProperty('--primary', hslToVar(theme.colors.primary));\n root.style.setProperty('--primary-foreground', hslToVar(theme.colors.background));\n root.style.setProperty('--secondary', hslToVar(theme.colors.secondary));\n root.style.setProperty('--secondary-foreground', hslToVar(theme.colors.foreground));\n root.style.setProperty('--muted', hslToVar(theme.colors.muted));\n root.style.setProperty('--muted-foreground', hslToVar(theme.colors.foreground));\n root.style.setProperty('--accent', hslToVar(theme.colors.accent));\n root.style.setProperty('--accent-foreground', hslToVar(theme.colors.background));\n root.style.setProperty('--destructive', hslToVar(theme.colors.error));\n root.style.setProperty('--destructive-foreground', hslToVar(theme.colors.foreground));\n root.style.setProperty('--border', hslToVar(theme.colors.border));\n root.style.setProperty('--input', hslToVar(theme.colors.border));\n root.style.setProperty('--ring', hslToVar(theme.colors.primary));\n\n // Apply state colors\n root.style.setProperty('--error', hslToVar(theme.colors.error));\n root.style.setProperty('--warning', hslToVar(theme.colors.warning));\n root.style.setProperty('--success', hslToVar(theme.colors.success));\n root.style.setProperty('--info', hslToVar(theme.colors.info));\n\n // Apply left menu colors\n root.style.setProperty('--left-menu', hslToVar(theme.colors.mainMenu.DEFAULT));\n root.style.setProperty('--left-menu-foreground', hslToVar(theme.colors.mainMenu.foreground));\n root.style.setProperty('--left-menu-hover', hslToVar(theme.colors.mainMenu.hover));\n root.style.setProperty('--left-menu-selected', hslToVar(theme.colors.mainMenu.selected));\n root.style.setProperty('--left-menu-border', hslToVar(theme.colors.mainMenu.border));\n\n // Apply spacing\n Object.entries(theme.spacing).forEach(([key, value]) => {\n root.style.setProperty(`--spacing-${key}`, value);\n });\n\n // Apply border radius\n Object.entries(theme.borderRadius).forEach(([key, value]) => {\n root.style.setProperty(`--radius-${key}`, value);\n });\n\n // Apply shadows\n Object.entries(theme.shadows).forEach(([key, value]) => {\n root.style.setProperty(`--shadow-${key}`, value);\n });\n\n // Apply transitions\n Object.entries(theme.transitions).forEach(([key, value]) => {\n root.style.setProperty(`--transition-${key}`, value);\n });\n\n // For -large themes: scale base font size\n if (themeName?.endsWith('-large')) {\n root.style.fontSize = '125%';\n } else {\n root.style.fontSize = '';\n }\n};\n"]}
@@ -1,114 +0,0 @@
1
- /**
2
- * Theme type definitions for HAI3
3
- */
4
-
5
- export interface Theme {
6
- name: string;
7
- colors: {
8
- primary: string;
9
- secondary: string;
10
- accent: string;
11
- background: string;
12
- foreground: string;
13
- muted: string;
14
- border: string;
15
- error: string;
16
- warning: string;
17
- success: string;
18
- info: string;
19
- mainMenu: {
20
- DEFAULT: string;
21
- foreground: string;
22
- hover: string;
23
- selected: string;
24
- border: string;
25
- };
26
- chat: {
27
- leftMenu: {
28
- DEFAULT: string;
29
- foreground: string;
30
- hover: string;
31
- selected: string;
32
- border: string;
33
- };
34
- message: {
35
- user: {
36
- background: string;
37
- foreground: string;
38
- };
39
- assistant: {
40
- background: string;
41
- foreground: string;
42
- };
43
- };
44
- input: {
45
- background: string;
46
- foreground: string;
47
- border: string;
48
- };
49
- codeBlock: {
50
- background: string;
51
- foreground: string;
52
- border: string;
53
- headerBackground: string;
54
- };
55
- };
56
- };
57
- spacing: {
58
- xs: string;
59
- sm: string;
60
- md: string;
61
- lg: string;
62
- xl: string;
63
- '2xl': string;
64
- '3xl': string;
65
- };
66
- typography: {
67
- fontFamily: {
68
- sans: string[];
69
- mono: string[];
70
- };
71
- fontSize: {
72
- xs: string;
73
- sm: string;
74
- base: string;
75
- lg: string;
76
- xl: string;
77
- '2xl': string;
78
- '3xl': string;
79
- '4xl': string;
80
- '5xl': string;
81
- };
82
- fontWeight: {
83
- normal: string;
84
- medium: string;
85
- semibold: string;
86
- bold: string;
87
- };
88
- lineHeight: {
89
- tight: string;
90
- normal: string;
91
- relaxed: string;
92
- };
93
- };
94
- borderRadius: {
95
- none: string;
96
- sm: string;
97
- md: string;
98
- lg: string;
99
- xl: string;
100
- full: string;
101
- };
102
- shadows: {
103
- sm: string;
104
- md: string;
105
- lg: string;
106
- xl: string;
107
- };
108
- transitions: {
109
- fast: string;
110
- base: string;
111
- slow: string;
112
- slower: string;
113
- };
114
- }