@alquimia-ai/ui 1.9.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/atoms/index.d.mts +1 -1
- package/dist/components/atoms/index.d.ts +1 -1
- package/dist/components/atoms/index.js +1848 -1428
- package/dist/components/atoms/index.js.map +1 -1
- package/dist/components/atoms/index.mjs +1453 -1409
- package/dist/components/atoms/index.mjs.map +1 -1
- package/dist/components/hooks/index.d.mts +1 -0
- package/dist/components/hooks/index.d.ts +1 -0
- package/dist/components/hooks/index.js +572 -211
- package/dist/components/hooks/index.js.map +1 -1
- package/dist/components/hooks/index.mjs +505 -193
- package/dist/components/hooks/index.mjs.map +1 -1
- package/dist/components/molecules/documents/index.d.mts +1 -0
- package/dist/components/molecules/documents/index.d.ts +1 -0
- package/dist/components/molecules/documents/index.js +2366 -1884
- package/dist/components/molecules/documents/index.js.map +1 -1
- package/dist/components/molecules/documents/index.mjs +2207 -1764
- package/dist/components/molecules/documents/index.mjs.map +1 -1
- package/dist/components/molecules/index.js +2261 -2095
- package/dist/components/molecules/index.js.map +1 -1
- package/dist/components/molecules/index.mjs +2084 -2075
- package/dist/components/molecules/index.mjs.map +1 -1
- package/dist/components/molecules/viewers/index.js +1303 -1185
- package/dist/components/molecules/viewers/index.js.map +1 -1
- package/dist/components/molecules/viewers/index.mjs +1254 -1167
- package/dist/components/molecules/viewers/index.mjs.map +1 -1
- package/dist/components/organisms/index.d.mts +1 -0
- package/dist/components/organisms/index.d.ts +1 -0
- package/dist/components/organisms/index.js +3074 -2609
- package/dist/components/organisms/index.js.map +1 -1
- package/dist/components/organisms/index.mjs +2999 -2586
- package/dist/components/organisms/index.mjs.map +1 -1
- package/dist/components/templates/index.d.mts +25 -3
- package/dist/components/templates/index.d.ts +25 -3
- package/dist/components/templates/index.js +1490 -1300
- package/dist/components/templates/index.js.map +1 -1
- package/dist/components/templates/index.mjs +1413 -1281
- package/dist/components/templates/index.mjs.map +1 -1
- package/dist/index.d.mts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3951 -2977
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3368 -2950
- package/dist/index.mjs.map +1 -1
- package/dist/lib/index.js +106 -54
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +42 -43
- package/dist/lib/index.mjs.map +1 -1
- package/dist/providers/index.d.mts +17 -0
- package/dist/providers/index.d.ts +17 -0
- package/dist/providers/index.js +177 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +101 -0
- package/dist/providers/index.mjs.map +1 -0
- package/dist/styles.css +68 -0
- package/dist/styles.css.map +1 -0
- package/dist/styles.d.mts +2 -0
- package/dist/styles.d.ts +2 -0
- package/dist/tailwind.config.js +4 -10
- package/dist/types/index.d.mts +5 -5
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.js +52 -19
- package/dist/types/index.js.map +1 -1
- package/dist/types/index.mjs +6 -8
- package/dist/types/index.mjs.map +1 -1
- package/package.json +8 -7
- package/dist/components/index.d.mts +0 -23
- package/dist/components/index.d.ts +0 -23
- package/dist/components/index.js +0 -1734
- package/dist/components/index.js.map +0 -1
- package/dist/components/index.mjs +0 -1702
- package/dist/components/index.mjs.map +0 -1
- package/dist/components/templates/cards/index.d.mts +0 -26
- package/dist/components/templates/cards/index.d.ts +0 -26
- package/dist/components/templates/cards/index.js +0 -1536
- package/dist/components/templates/cards/index.js.map +0 -1
- package/dist/components/templates/cards/index.mjs +0 -1504
- package/dist/components/templates/cards/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/molecules/page-container.tsx","../../../src/lib/utils.ts","../../../src/components/molecules/alert-dialog.tsx","../../../src/components/atoms/ui/button.tsx","../../../src/components/molecules/assistant-button.tsx","../../../src/components/atoms/ui/textarea.tsx","../../../src/components/atoms/ui/input.tsx","../../../src/components/atoms/ui/select.tsx","../../../src/components/atoms/ui/avatar.tsx","../../../src/components/atoms/ui/scroll-area.tsx","../../../src/components/atoms/ui/rich-text.tsx","../../../src/components/atoms/ui/skeleton.tsx","../../../src/components/atoms/ui/card.tsx","../../../src/components/atoms/ui/drawer.tsx","../../../src/components/atoms/ui/typography/index.tsx","../../../src/components/atoms/ui/badge.tsx","../../../src/components/atoms/ui/alert.tsx","../../../src/components/atoms/ui/label.tsx","../../../src/components/atoms/ui/checkbox.tsx","../../../src/components/atoms/ui/toggle.tsx","../../../src/components/atoms/ui/slider.tsx","../../../src/components/atoms/ui/switch.tsx","../../../src/components/atoms/ui/tabs.tsx","../../../src/components/atoms/ui/aspect-ratio.tsx","../../../src/components/atoms/ui/table.tsx","../../../src/components/atoms/ui/breadcrumb.tsx","../../../src/components/atoms/ui/popover.tsx","../../../src/components/atoms/ui/command.tsx","../../../src/components/atoms/ui/dialog.tsx","../../../src/components/atoms/ui/toast.tsx","../../../src/components/atoms/ui/loader.tsx","../../../src/components/atoms/ui/separator.tsx","../../../src/components/hooks/use-toast.ts","../../../src/components/atoms/ui/toaster.tsx","../../../src/components/atoms/ui/think-indicator.tsx","../../../src/components/molecules/carousel.tsx","../../../src/components/molecules/navigation-menu.tsx","../../../src/components/molecules/sidebar.tsx","../../../src/components/molecules/sonner.tsx","../../../src/components/molecules/rating-stars.tsx","../../../src/components/molecules/rating-thumbs.tsx","../../../src/components/molecules/rating-comment.tsx","../../../src/components/molecules/call-out.tsx","../../../src/components/hooks/use-text-streaming.ts"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../lib/utils\";\n\ninterface PageContainerProps extends React.HTMLAttributes<HTMLDivElement> {}\nconst PageContainer = forwardRef<HTMLDivElement, PageContainerProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(className, \"alq--page-container\")}\n {...props}\n />\n );\n }\n);\nPageContainer.displayName = \"PageContainer\";\nexport { PageContainer };\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\nexport function parseTextToSpeech(content: string) {\n return content.replace(/[^\\p{L}\\p{N}\\s.,:]/gu, '');\n}\n\n\nexport function blobToBase64(blob: Blob): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n};\n\nexport const truncateString = (str: string, maxLength: number): string => {\n if (str.length <= maxLength) {\n return str;\n }\n return str.slice(0, maxLength) + \"...\";\n};\n\nexport function getCookies(name: string) {\n if (typeof document === 'undefined') return undefined;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop()?.split(\";\").shift();\n}\n\nexport function hasToolResult(data: any) {\n return data?.tool_output?.result && Object.keys(data.tool_output.result).length > 0;\n}\n\nexport function getErrorMessage(error_code?: string) {\n switch (error_code) {\n case \"STREAM_ERROR\":\n return \"Connection lost. Please try again.\";\n case \"REQUEST_ERROR\":\n return \"There was a problem with your request. Please try again.\";\n case \"401\":\n case \"403\":\n return \"You are not authorized. Please try again.\";\n case \"404\":\n return \"Resource not found.\";\n case \"500\":\n return \"Server error. Please try again later.\";\n default:\n return \"We have an internal error, please try again later.\";\n }\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../../lib/utils\";\nimport { buttonVariants } from \"../atoms/ui/button\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.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));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.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 </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\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);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\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);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\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 { useState, useEffect } from \"react\";\nimport { LucideIcon } from \"lucide-react\";\nimport { Button } from \"../atoms\";\nimport { cn } from \"../../lib/utils\";\n\ninterface Suggestion {\n label: string;\n icon: LucideIcon;\n action: () => void;\n}\n\ninterface AssistantSuggestionsProps {\n suggestions: Suggestion[];\n className?: string;\n showSuggestions: boolean;\n}\n\nconst AssistantSuggestions = React.forwardRef<\n HTMLDivElement,\n AssistantSuggestionsProps\n>(({ suggestions, showSuggestions, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"absolute bottom-[calc(100%+0.5rem)] right-0 pb-2 mb-4 alq--assistant-suggestions-container\",\n \"transition-all duration-300\",\n showSuggestions\n ? \"opacity-100 translate-y-0\"\n : \"opacity-0 translate-y-4\",\n className\n )}\n >\n <div className=\"rounded-lg p-2 pr-0 w-64\">\n {suggestions.map((suggestion, index) => (\n <button\n key={index}\n onClick={() => suggestion.action?.()}\n style={{\n transitionDelay: showSuggestions ? `${index * 50}ms` : \"0ms\",\n }}\n className={cn(\n \"bg-background flex items-center gap-2 border p-2 pr-4 my-2 rounded-full ml-auto\",\n \"text-primary hover:bg-secondary\",\n \"transition-all duration-100\",\n \"origin-bottom w-fit\",\n \"alq--assistant-suggestion\",\n showSuggestions\n ? \"opacity-100 translate-y-0\"\n : \"opacity-0 translate-y-4\"\n )}\n >\n <suggestion.icon className=\"w-5 h-5 text-primary\" />\n <span className=\"text-xs whitespace-nowrap font-normal\">\n {suggestion.label}\n </span>\n </button>\n ))}\n </div>\n </div>\n );\n});\n\nAssistantSuggestions.displayName = \"Suggestions\";\n\ninterface AssistantButtonProps {\n icon: LucideIcon;\n clickAction: () => void;\n className?: string;\n suggestions?: Suggestion[];\n}\n\nexport const AssistantButton = React.forwardRef<\n HTMLDivElement,\n AssistantButtonProps\n>(\n (\n {\n icon: Icon,\n clickAction,\n className,\n suggestions = [],\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = useState(false);\n const [showSuggestions, setShowSuggestions] = useState(false);\n\n const handleMouseEnter = () => {\n setIsVisible(true);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setShowSuggestions(true);\n });\n });\n };\n\n const handleMouseLeave = () => {\n setShowSuggestions(false);\n setTimeout(() => setIsVisible(false), 300);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n \"fixed bottom-8 right-4 z-50\",\n \"alq--assistant-button-container\",\n className\n )}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className=\"relative group\">\n {isVisible && suggestions.length > 0 && (\n <AssistantSuggestions\n suggestions={suggestions}\n showSuggestions={showSuggestions}\n />\n )}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={cn(\n \"fixed hover:bg-opacity-70 transition-all duration-300\",\n \"bottom-4 h-12 w-12 right-4 z-50 rounded-full p-2\",\n \"shadow-md\",\n \"hover:shadow-lg\",\n showSuggestions ? \"scale-110\" : \"hover:scale-105\",\n \"alq--assistant-button\"\n )}\n onClick={clickAction}\n >\n <Icon\n style={{ width: \"22px\", height: \"22px\" }}\n className=\"text-primary\"\n />\n </Button>\n </div>\n </div>\n );\n }\n);\n\nAssistantButton.displayName = \"AssistantButton\";\n","import * as React from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\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-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 className,\n \"alq--textarea\"\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import { forwardRef } from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\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-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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 className,\n \"alq--input\"\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\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 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 \"alq--select\"\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-96 min-w-[8rem] overflow-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\",\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\"\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","\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"../../../lib/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import * as React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { cn } from \"../../../lib/utils\";\n\ninterface RichTextProps extends React.HTMLAttributes<HTMLDivElement> {\n content: string;\n className?: string;\n}\n\nfunction RichText({ content, className }: RichTextProps) {\n return (\n <ReactMarkdown className={cn(className)} remarkPlugins={[remarkGfm]}>\n {content}\n </ReactMarkdown>\n );\n}\n\nexport { RichText };\n","import { cn } from \"../../../lib/utils\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted text-muted-foreground\", className, \"alq--skeleton\")}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\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-lg\",\n \" border\",\n \"bg-card\",\n \"text-card-foreground\",\n \"shadow-raised\",\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 HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"alq--typography-heading4\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\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 {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-border bg-background text-foreground alq--drawer-content\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className, \"alq--drawer-header\")}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className, \"alq--drawer-footer\")}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n \"alq--drawer-title\"\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className, \"alq--drawer-description\")}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","import { cn } from \"../../../../lib/utils\";\nimport { forwardRef } from \"react\";\n\nexport interface TypographyProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\";\n typeStyle:\n | \"display\"\n | \"heading1\"\n | \"heading2\"\n | \"heading3\"\n | \"heading4\"\n | \"small\"\n | \"tiny\";\n}\n\nconst Typography = forwardRef<HTMLDivElement, TypographyProps>(\n ({ as: Component = \"p\", typeStyle, ...props }, ref) => {\n return (\n <Component\n {...props}\n className={cn(props.className, `alq--typography-${typeStyle}`)}\n ref={ref}\n />\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography };\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, \"alq--badge\")} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\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 * 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, \"alq--label\")}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\nimport * 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 \"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 \"alq--checkbox\"\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-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\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3\",\n sm: \"h-9 px-2.5\",\n lg: \"h-11 px-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }), \"alq--toggle\")}\n {...props}\n />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\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-44 touch-none select-none items-center\",\n className,\n \"alq--slider\"\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-44 grow overflow-hidden rounded-full bg-primary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-secondary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-gray 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 </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","\"use client\";\n\nimport * 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-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 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 \"alq--switch\"\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-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","\"use client\";\n\nimport * 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 ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground\",\n className,\n \"alq--tabs\"\n )}\n {...props}\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 ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:border-b-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-b-2 data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\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 ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\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 text-foreground bg-background\", className, \"alq--table\")}\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 border-border bg-muted\", className, \"alq--table-header\")} {...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 [&_tr]:border-b border-border\", className, \"alq--table-body\")}\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 border-border bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n \"alq--table-footer\"\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","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\ninterface BreadcrumbItemProps {\n label: string;\n href?: string;\n current?: boolean;\n}\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\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 ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\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</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\n\nimport * 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\",\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\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Dialog, DialogContent } from \"./dialog\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\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 { 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 \"alq--dialog-content\"\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 text-foreground\",\n className,\n \"alq--dialog-header\"\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 text-foreground\",\n className,\n \"alq--dialog-title\"\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 DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n destructive:\n \"destructive group border-destructive bg-destructive text-destructive-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n );\n});\nToast.displayName = ToastPrimitives.Root.displayName;\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold\", className)}\n {...props}\n />\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-sm opacity-90\", className)}\n {...props}\n />\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n","// Loader.tsx\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../../lib/utils\";\nimport { Loader2 } from \"lucide-react\";\n\nconst loaderVariants = cva(\n \"flex justify-center items-center w-full\",\n {\n variants: {\n size: {\n small: \"h-6 w-6\",\n medium: \"h-8 w-8\",\n large: \"h-12 w-12\",\n xl: \"h-24 w-24\",\n },\n colorVariant: {\n default: \"text-primary\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n destructive: \"text-destructive\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n colorVariant: \"default\",\n },\n }\n);\n\ninterface LoaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof loaderVariants> {}\n\nconst Loader = React.forwardRef<HTMLDivElement, LoaderProps>(\n (\n { className, size, colorVariant, ...props },\n ref\n ) => (\n <div\n ref={ref}\n className={cn(loaderVariants({ size, colorVariant }), \"flex justify-center items-center h-full w-full\", className)}\n {...props}\n >\n <Loader2 className=\"animate-spin\" />\n </div>\n )\n);\n\nLoader.displayName = \"Loader\";\n\nexport { Loader };","\"use client\"\n\nimport * 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>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\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 \"alq--separator\"\n )}\n {...props}\n />\n))\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type {\n ToastActionElement,\n ToastProps,\n} from \"../../components/atoms/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useToast } from \"../../hooks/use-toast\";\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from \"./toast\";\n\nfunction Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }: any) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n\nexport { Toaster };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { Loader } from \"..\";\nimport { cn } from \"../../../lib/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nconst thinkIndicatorVariants = cva(\n \"flex items-center gap-3\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n },\n size: {\n default: \"gap-3\",\n sm: \"gap-2\",\n lg: \"gap-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ThinkIndicatorProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof thinkIndicatorVariants> {\n thoughts?: string[];\n interval?: number;\n loader?: React.ReactNode;\n}\n\nexport const ThinkIndicator = React.forwardRef<HTMLDivElement, ThinkIndicatorProps>(\n ({ \n className, \n variant,\n size,\n thoughts = [\n \"Analyzing your request...\",\n \"Processing information...\",\n \"Formulating response...\",\n ],\n interval = 5000, \n loader,\n ...props \n }, ref) => {\n const [currentThoughtIndex, setCurrentThoughtIndex] = useState<number>(0);\n const [isAnimating, setIsAnimating] = useState<boolean>(false);\n\n useEffect(() => {\n const timer = setInterval(() => {\n setIsAnimating(true);\n setTimeout(() => {\n setCurrentThoughtIndex((prev) => {\n return prev < thoughts.length - 1 ? prev + 1 : prev;\n });\n setIsAnimating(false);\n }, 300);\n }, interval);\n\n if (currentThoughtIndex === thoughts.length - 1) {\n clearInterval(timer);\n }\n\n return () => clearInterval(timer);\n }, [thoughts, interval, currentThoughtIndex]);\n\n return (\n <div\n ref={ref}\n className={cn(thinkIndicatorVariants({ variant, size }), className, \"alq--think-indicator\")}\n {...props}\n >\n {loader || (\n <Loader \n className={cn(\n size === \"sm\" ? \"h-3 w-3\" : size === \"lg\" ? \"h-5 w-5\" : \"h-4 w-4\"\n )} \n />\n )}\n <div\n className={cn(\n \"alq--think-indicator-text\",\n \"transition-all duration-300\",\n isAnimating ? \"opacity-0 -translate-y-2\" : \"opacity-100 translate-y-0\"\n )}\n >\n {thoughts[currentThoughtIndex]}\n </div>\n </div>\n );\n }\n);\n\nThinkIndicator.displayName = \"ThinkIndicator\";\n\nexport { thinkIndicatorVariants };","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/atoms/ui/button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n }\n);\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n );\n});\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-left-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-right-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\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-10 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-[active]:bg-accent/50 data-[state=open]:bg-accent/50\"\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-200 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-lg 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 { LucideIcon } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ScrollArea, Button } from \"../atoms\";\n\nconst sidebarVariants = cva(\n \"flex flex-col border-r\",\n {\n variants: {\n size: {\n sm: \"w-48\",\n default: \"w-64\",\n lg: \"w-72\"\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n);\n\nexport interface SidebarItem {\n name: string;\n icon?: LucideIcon;\n disabled?: boolean;\n isLink?: boolean;\n link?: string;\n}\n\ntype SidebarBaseProps = {\n items: SidebarItem[];\n selectedSection?: SidebarItem;\n onSelect?: (item: SidebarItem) => void;\n footerContent?: React.ReactNode;\n selectedVariant?: \"default\" | \"secondary\" | \"ghost\" | \"link\";\n defaultVariant?: \"default\" | \"secondary\" | \"ghost\" | \"link\";\n buttonClassName?: string;\n}\n\nexport interface SidebarProps \n extends SidebarBaseProps,\n Omit<React.HTMLAttributes<HTMLDivElement>, keyof SidebarBaseProps>,\n VariantProps<typeof sidebarVariants> {}\n\nexport const SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"p-4\", className)}\n {...props}\n >\n {children}\n </div>\n));\nSidebarFooter.displayName = \"SidebarFooter\";\n\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n ({ \n className, \n items, \n selectedSection, \n onSelect, \n footerContent,\n size = \"default\",\n selectedVariant = \"secondary\",\n defaultVariant = \"ghost\",\n buttonClassName,\n ...props \n }, ref) => {\n return (\n <div className={cn(className, \"alq--navigation-sidebar h-full\")} ref={ref} {...props}>\n <aside className={cn(sidebarVariants({ size }), \"h-full\")}>\n <ScrollArea className=\"flex-grow justify-between\">\n <div className=\"flex flex-col gap-2 p-4\">\n {items.map((item) => (\n <Button\n key={item.name}\n variant={selectedSection?.name === item.name ? selectedVariant : defaultVariant}\n className={cn(\"justify-start\", buttonClassName)}\n disabled={item.disabled}\n onClick={() => {\n if (onSelect) {\n onSelect(item);\n }\n }}\n >\n {item.icon && <item.icon className=\"mr-2 h-4 w-4\" />}\n {item.name}\n </Button>\n ))}\n </div>\n </ScrollArea>\n {footerContent && (\n <SidebarFooter>\n {footerContent}\n </SidebarFooter>\n )}\n </aside>\n </div>\n );\n }\n);","\"use client\";\nimport * as React from \"react\";\nimport { useTheme } from \"next-themes\";\nimport { Toaster as Sonner } from \"sonner\";\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n );\n};\nexport { Toaster as SonnerToaster };\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\nimport { Star } from \"lucide-react\"\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../atoms\";\n\nconst TooltipProvider = TooltipPrimitive.Provider\nconst Tooltip = TooltipPrimitive.Root\nconst TooltipTrigger = TooltipPrimitive.Trigger\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.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 shadow-lg 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))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\ninterface StarColors {\n fill: string\n stroke: string\n}\n\ninterface RatingStarsProps {\n currentRating: number\n isLoading: boolean\n onRate: (rating: number) => void\n className?: string\n}\n\nconst StarRating = React.forwardRef<\n HTMLDivElement,\n { rating: number; onRate: (r: number) => void }\n>(({ rating, onRate }, ref) => (\n <div ref={ref} className=\"flex\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Button\n key={star}\n onClick={() => onRate(star)}\n variant=\"link\"\n className=\"p-1 transition-colors [&_svg]:size-5 h-5\"\n aria-label={`Rate ${star} star${star !== 1 ? \"s\" : \"\"}`}\n >\n <Star\n className={cn(\n \"w-5 h-5\",\n star <= rating ? \"alq-rating-star-active fill-current stroke-current\" : \"alq-rating-star-inactive\",\n )}\n />\n </Button>\n ))}\n </div>\n));\nStarRating.displayName = \"StarRating\"\n\nexport const RatingStars = React.forwardRef<\n HTMLButtonElement,\n RatingStarsProps\n>(({\n currentRating = 0,\n onRate,\n className,\n isLoading\n}, ref) => {\n const [open, setOpen] = React.useState(false)\n const [animate, setAnimate] = React.useState(false)\n\n const handleRate = (rating: number) => {\n onRate(rating)\n setOpen(false)\n }\n\n React.useEffect(() => {\n if (currentRating > 0) {\n setAnimate(true)\n const timer = setTimeout(() => setAnimate(false), 150)\n return () => clearTimeout(timer)\n }\n }, [currentRating])\n\n const hasRated = currentRating > 0\n\n return (\n <TooltipProvider>\n <Tooltip open={open} onOpenChange={setOpen}>\n <TooltipTrigger asChild>\n <Button\n ref={ref}\n variant=\"link\"\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium [&_svg]:size-5 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 disabled={isLoading}\n onClick={() => setOpen(!open)}\n >\n <Star \n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && \"animate-ping\",\n isLoading && \"animate-pulse\",\n hasRated ? \"alq-rating-star-active fill-current stroke-current\" : \"alq-rating-star-inactive\",\n )}\n />\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"top\" align=\"center\" className=\"p-0\">\n <div className=\"p-2 bg-background\">\n <StarRating \n rating={currentRating} \n onRate={handleRate}\n />\n </div>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )\n})\nRatingStars.displayName = \"RatingStars\"\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { ThumbsUp, ThumbsDown } from \"lucide-react\"\nimport { Button } from \"../atoms\";\nimport { cn } from \"../../lib/utils\";\n\ninterface RatingThumbsProps {\n currentRating: string\n isLoading: boolean\n onRate: (rating: \"thumbsUp\" | \"thumbsDown\" | \"\") => void\n direction?: \"row\" | \"column\"\n className?: string\n}\n\nexport const RatingThumbs = React.forwardRef<HTMLDivElement, RatingThumbsProps>(\n (\n {\n currentRating,\n onRate,\n direction = \"row\",\n className,\n isLoading\n },\n ref\n ) => {\n const [animate, setAnimate] = React.useState(false);\n\n React.useEffect(() => {\n if (currentRating) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"inline-flex\",\n direction === \"column\" ? \"flex-col\" : \"flex-row\",\n \"space-x-1 gap-4\",\n className\n )}\n >\n <Button\n variant=\"link\"\n onClick={() => onRate(currentRating === \"thumbsUp\" ? \"\" : \"thumbsUp\")}\n className={cn(\n \"p-1 transition-colors disabled:opacity-50 [&_svg]:size-5\",\n `hover:alq-rating-thumbsup/10`\n )}\n aria-label=\"Thumbs up\"\n disabled={isLoading}\n >\n <ThumbsUp\n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && currentRating === \"thumbsUp\" && \"animate-ping\",\n isLoading && \"animate-pulse\",\n currentRating === \"thumbsUp\" ? \"alq-rating-thumbsup fill-current stroke-current\" : \"alq-rating-thumbs-inactive fill-transparent\"\n )}\n />\n </Button>\n <Button\n variant=\"link\"\n onClick={() => onRate(currentRating === \"thumbsDown\" ? \"\" : \"thumbsDown\")}\n className={cn(\n \"p-1 transition-colors disabled:opacity-50 mt-0.5 [&_svg]:size-5\",\n `hover:bg-alq-rating-thumbsdown/10`\n )}\n aria-label=\"Thumbs down\"\n disabled={isLoading}\n >\n <ThumbsDown\n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && currentRating === \"thumbsDown\" && \"animate-ping\",\n isLoading && \"animate-pulse\",\n currentRating === \"thumbsDown\" ? \"alq-rating-thumbsdown fill-current stroke-current\" : \"alq-rating-thumbs-inactive fill-transparent\"\n )}\n />\n </Button>\n </div>\n );\n }\n);\n\nRatingThumbs.displayName = \"RatingThumbs\"","\"use client\"\n\nimport * as React from \"react\"\nimport { Book } from \"lucide-react\"\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"../atoms\"\nimport {\n Dialog,\n DialogTrigger,\n DialogContent,\n DialogOverlay,\n DialogTitle,\n} from \"../atoms/ui/dialog\";\n\ninterface RatingCommentProps {\n currentRating: string\n onRate: (comment: string) => void\n className?: string\n isLoading?: boolean\n}\n\nexport const RatingComment = React.forwardRef<HTMLButtonElement, RatingCommentProps>(\n ({ currentRating, onRate, className, isLoading }, ref) => {\n const [open, setOpen] = React.useState(false)\n const [comment, setComment] = React.useState(\"\")\n const [animate, setAnimate] = React.useState(false);\n\n const handleRate = () => {\n onRate(comment)\n setOpen(false)\n }\n\n React.useEffect(() => {\n if (currentRating) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n\n React.useEffect(() => {\n setComment(\"\")\n }, [open])\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button\n ref={ref}\n variant=\"link\"\n size={\"lg\"}\n className={cn(\n \"inline-flex p-2 items-center justify-center rounded-md text-sm font-medium transition-colors [&_svg]:size-5 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring bg-transparent hover:none disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n disabled={isLoading}\n >\n <Book\n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && \"animate-ping\",\n isLoading && \"animate-pulse\",\n `${comment ? \"alq-rating-comment\" : \"stroke-gray-400\"}`\n )}\n />\n </Button>\n </DialogTrigger>\n <DialogOverlay className=\"fixed inset-0 bg-black bg-opacity-50\" />\n <DialogContent aria-describedby={undefined}>\n <DialogTitle className=\"text-lg font-medium\">\n Deja un comentario\n </DialogTitle>\n <textarea\n className=\"mt-4 w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-primary\"\n rows={4}\n value={comment}\n onChange={(e) => setComment(e.target.value)}\n />\n <div className=\"mt-4 flex justify-end\">\n <Button\n onClick={handleRate}\n disabled={!comment}\n >\n Enviar\n </Button>\n </div>\n </DialogContent>\n </Dialog>\n );\n }\n)\n\nRatingComment.displayName = \"RatingComment\"\n","import * as React from \"react\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button, RichText } from \"../atoms\";\nimport { Message } from \"ai\";\nimport { useTextStreaming } from \"../hooks/use-text-streaming\";\n\nexport interface CallOutMessage {\n id: string;\n role: \"user\" | \"assistant\";\n content: string;\n timestamp: Date;\n}\n\ninterface CallOutActionProps {\n label: string;\n icon: React.ReactNode;\n onClick: (message?: Message) => Promise<void>;\n custom?: boolean;\n component?: (props: { message?: Message }) => React.ReactNode;\n}\n\nexport interface CallOutProps extends React.HTMLAttributes<HTMLDivElement> {\n message?: Message;\n}\n\nconst CallOut = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CallOutProps\n>(({ className, children, role, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"alq--callout-box\", className)}\n data-role={role}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nconst CallOutDate = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"alq--callout-date\",\n \"text-sm text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nconst CallOutActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n actions: CallOutActionProps[];\n role: \"user\" | \"assistant\";\n message?: Message;\n }\n>(({ className, actions, role, message, ...props }, ref) => {\n const [isLoading, setIsLoading] = React.useState(false);\n const [isClicked, setIsClicked] = React.useState(false);\n\n if (role === \"user\") {\n return null;\n }\n\n return (\n <div ref={ref} className={cn(\"alq--callout-actions\", className)} {...props}>\n {actions.map((action) => (\n action.custom ? (\n <React.Fragment key={action.label}>\n {action.component?.({ message })}\n </React.Fragment>\n ) : (\n <button\n key={action.label}\n className={cn(\n \"alq--callout-action\",\n {\n \"alq--callout-animate-action\": isLoading,\n },\n {\n \"alq--callout-clicked-action\": isClicked,\n }\n )}\n type=\"button\"\n title={action.label}\n onClick={() => {\n setIsLoading(true);\n action.onClick(message).then(() => {\n setIsLoading(false);\n setIsClicked(true);\n });\n }}\n >\n <span\n className={cn(\"alq-action-icon-wrapper\", {\n \"alq--callout-animate-action\": isLoading,\n })}\n >\n {action.icon}\n </span>\n <label>{action.label}</label>\n </button>\n )\n ))}\n </div>\n );\n});\n\nconst CallOutResponse = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n role: Message[\"role\"];\n additionalInfo?: string;\n toggleAdditionalInfo?: boolean;\n isStreaming?: boolean;\n handleIsTextStreaming?: (isStreaming: boolean) => void;\n }\n>(\n (\n {\n className,\n children,\n role,\n additionalInfo,\n toggleAdditionalInfo,\n isStreaming,\n handleIsTextStreaming,\n ...props\n },\n ref\n ) => {\n const [isAdditionalInfoOpen, setIsAdditionalInfoOpen] =\n React.useState(false);\n const content = String(children || \"\");\n const shouldStream = role === \"assistant\" && isStreaming;\n const displayedContent = useTextStreaming(\n content,\n shouldStream ?? false,\n handleIsTextStreaming\n );\n\n const showAsToggle = additionalInfo && toggleAdditionalInfo;\n const showInline = additionalInfo && !toggleAdditionalInfo;\n\n return (\n <div\n ref={ref}\n data-role={role}\n className={cn(\n \"alq--callout-response\",\n \"max-w-none\",\n \"text-foreground\",\n className\n )}\n {...props}\n >\n <RichText content={displayedContent} />\n {showInline && (\n <div\n className={cn(\n \"alq--callout-response-additional-info\",\n \"mt-2 text-sm text-muted-foreground whitespace-pre-line\",\n \"border-t border-border pt-2\"\n )}\n >\n {additionalInfo}\n </div>\n )}\n {showAsToggle && (\n <div\n className={cn(\n \"alq--callout-response-additional-info\",\n \"mt-2 border-t border-border pt-2\"\n )}\n >\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-auto py-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-muted-foreground -ml-1\"\n onClick={() => setIsAdditionalInfoOpen((prev) => !prev)}\n aria-expanded={isAdditionalInfoOpen}\n >\n {isAdditionalInfoOpen ? (\n <ChevronUp className=\"h-4 w-4 mr-1.5 shrink-0 transition-transform\" />\n ) : (\n <ChevronDown className=\"h-4 w-4 mr-1.5 shrink-0 transition-transform\" />\n )}\n {isAdditionalInfoOpen ? \"Hide details\" : \"Show details\"}\n </Button>\n <div\n className={cn(\n \"grid transition-[grid-template-rows] duration-200 ease-out\",\n isAdditionalInfoOpen ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\"\n )}\n >\n <div className=\"overflow-hidden\">\n <div className=\"text-sm text-muted-foreground pt-1 whitespace-pre-line\">\n {additionalInfo}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }\n);\n\nCallOut.displayName = \"CallOut\";\nCallOutDate.displayName = \"CallOutDate\";\nCallOutActions.displayName = \"CallOutActions\";\nCallOutResponse.displayName = \"CallOutResponse\";\nexport { CallOut, CallOutDate, CallOutResponse, CallOutActions };\n","import { useState, useEffect, useRef, useCallback } from \"react\";\n\nconst CHAR_DELAY = 15;\nconst PUNCTUATION_DELAY = 300;\n\nexport function useTextStreaming(\n content: string,\n shouldStream: boolean,\n handleIsTextStreaming?: (isStreaming: boolean) => void\n) {\n const [displayedText, setDisplayedText] = useState(\"\");\n const contentRef = useRef(content);\n const indexRef = useRef(0);\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n const hasStartedStreaming = useRef<boolean>(false);\n\n useEffect(() => {\n contentRef.current = content;\n if (hasStartedStreaming.current && !timerRef.current && indexRef.current < contentRef.current.length) {\n typeNext();\n }\n }, [content]);\n\n const typeNext = useCallback(() => {\n if (indexRef.current < contentRef.current.length) {\n const nextChar = contentRef.current.charAt(indexRef.current);\n setDisplayedText((prev) => prev + nextChar);\n indexRef.current++;\n\n const delay = /[.!?;:]/.test(nextChar) ? PUNCTUATION_DELAY : CHAR_DELAY;\n \n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n typeNext();\n }, delay);\n } else {\n handleIsTextStreaming?.(false);\n }\n }, []);\n\n useEffect(() => {\n if (!shouldStream && !hasStartedStreaming.current) {\n setDisplayedText(contentRef.current);\n indexRef.current = contentRef.current.length;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n handleIsTextStreaming?.(false);\n } else {\n if (indexRef.current < contentRef.current.length && !timerRef.current) {\n handleIsTextStreaming?.(true);\n hasStartedStreaming.current = true;\n typeNext();\n }\n }\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [shouldStream, typeNext]);\n\n return displayedText;\n}\n\n"],"mappings":"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","names":["React","jsx","jsx","React","useState","React","jsx","forwardRef","jsx","forwardRef","React","jsx","jsxs","jsxs","jsx","React","jsx","React","jsx","jsxs","jsx","jsx","React","jsx","React","jsx","jsxs","forwardRef","jsx","cva","jsx","cva","React","cva","jsx","cva","React","cva","jsx","cva","Label","React","Check","jsx","Check","React","cva","jsx","cva","React","jsx","jsxs","React","jsx","React","jsx","jsx","React","jsx","React","Slot","jsx","jsxs","Slot","React","jsx","jsx","React","React","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsxs","jsx","React","cva","X","jsx","jsx","cva","X","React","cva","jsx","cva","React","jsx","Separator","React","jsx","jsxs","React","useState","useEffect","cva","jsx","jsxs","useState","useEffect","jsx","jsxs","Icon","useState","React","jsx","jsxs","api","React","cva","ChevronDown","jsx","jsxs","cva","ChevronDown","React","cva","jsx","jsxs","cva","jsx","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","React","ChevronDown","ChevronUp","useState","useEffect","useCallback","jsx","jsxs","ChevronUp","ChevronDown"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/sdk-frontend/sdk-frontend/packages/ui/dist/components/molecules/index.mjs","../../../src/components/molecules/page-container.tsx","../../../src/lib/utils.ts","../../../src/components/molecules/alert-dialog.tsx","../../../src/components/atoms/ui/button.tsx","../../../src/components/molecules/assistant-button.tsx","../../../src/components/atoms/ui/textarea.tsx","../../../src/components/atoms/ui/input.tsx","../../../src/components/atoms/ui/select.tsx","../../../src/components/atoms/ui/avatar.tsx","../../../src/components/atoms/ui/scroll-area.tsx","../../../src/components/atoms/ui/rich-text.tsx","../../../src/components/atoms/ui/skeleton.tsx","../../../src/components/atoms/ui/card.tsx","../../../src/components/atoms/ui/drawer.tsx","../../../src/components/atoms/ui/typography/index.tsx","../../../src/components/atoms/ui/badge.tsx","../../../src/components/atoms/ui/alert.tsx","../../../src/components/atoms/ui/label.tsx","../../../src/components/atoms/ui/checkbox.tsx","../../../src/components/atoms/ui/toggle.tsx","../../../src/components/atoms/ui/slider.tsx","../../../src/components/atoms/ui/switch.tsx","../../../src/components/atoms/ui/tabs.tsx","../../../src/components/atoms/ui/aspect-ratio.tsx","../../../src/components/atoms/ui/table.tsx","../../../src/components/atoms/ui/breadcrumb.tsx","../../../src/components/atoms/ui/popover.tsx","../../../src/components/atoms/ui/command.tsx","../../../src/components/atoms/ui/dialog.tsx","../../../src/components/atoms/ui/toast.tsx","../../../src/components/atoms/ui/loader.tsx","../../../src/components/atoms/ui/separator.tsx","../../../src/components/hooks/use-toast.ts","../../../src/components/atoms/ui/toaster.tsx","../../../src/components/atoms/ui/think-indicator.tsx","../../../src/components/molecules/carousel.tsx","../../../src/components/molecules/navigation-menu.tsx","../../../src/components/molecules/sidebar.tsx","../../../src/components/molecules/sonner.tsx","../../../src/providers/theme-context.ts","../../../src/components/molecules/rating-stars.tsx","../../../src/components/molecules/rating-thumbs.tsx","../../../src/components/molecules/rating-comment.tsx","../../../src/components/molecules/call-out.tsx","../../../src/components/hooks/use-text-streaming.ts"],"names":["forwardRef","clsx","twMerge","cn","inputs","jsx","PageContainer","ref","className","props","displayName","React","AlertDialogPrimitive","Slot","cva","buttonVariants","variants","variant","default","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","asChild","Comp","jsxs","AlertDialog","Root","AlertDialogTrigger","Trigger","AlertDialogPortal","Portal","AlertDialogOverlay","React2","Overlay","AlertDialogContent","children","Content","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","Title","AlertDialogDescription","Description","AlertDialogAction","Action","AlertDialogCancel","Cancel","useState","Textarea","React3","Input","type","SelectPrimitive","Check","ChevronDown","ChevronUp","SelectTrigger","React4","Icon","SelectScrollUpButton","ScrollUpButton","SelectScrollDownButton","ScrollDownButton","SelectContent","position","Viewport","SelectLabel","Label","SelectItem","Item","ItemIndicator","ItemText","SelectSeparator","Separator","AvatarPrimitive","Avatar","React5","AvatarImage","Image","AvatarFallback","Fallback","ScrollAreaPrimitive","ScrollArea","React6","ScrollBar","Corner","orientation","ScrollAreaScrollbar","ScrollAreaThumb","ReactMarkdown","remarkGfm","RichText","content","remarkPlugins","Card","React7","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","Drawer","DrawerPrimitive","shouldScaleBackground","DrawerTrigger","DrawerPortal","DrawerClose","Close","DrawerOverlay","React8","DrawerContent","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription","Typography","Component","as","typeStyle","badgeVariants","alertVariants","Alert","React9","role","AlertTitle","AlertDescription","LabelPrimitive","labelVariants","React10","CheckboxPrimitive","Checkbox","React11","Indicator","TogglePrimitive","toggleVariants","Toggle","React12","SliderPrimitive","Slider","React13","Track","Range","Thumb","SwitchPrimitives","Switch","React14","TabsPrimitive","TabsList","React15","List","TabsTrigger","TabsContent","AspectRatioPrimitive","Table","React16","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","ChevronRight","MoreHorizontal","Breadcrumb","React17","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbPage","BreadcrumbSeparator","BreadcrumbEllipsis","PopoverPrimitive","PopoverContent","React18","align","sideOffset","Command","CommandPrimitive","Search","DialogPrimitive","X","Dialog","DialogTrigger","DialogPortal","DialogOverlay","React19","DialogContent","DialogHeader","DialogFooter","DialogTitle","DialogDescription","React20","CommandInput","CommandList","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","CommandItem","CommandShortcut","ToastPrimitives","ToastViewport","React21","toastVariants","Toast","ToastAction","ToastClose","ToastTitle","ToastDescription","Loader2","loaderVariants","small","medium","large","xl","colorVariant","primary","Loader","React22","SeparatorPrimitive","React23","decorative","useEffect","thinkIndicatorVariants","ThinkIndicator","React25","thoughts","interval","loader","currentThoughtIndex","setCurrentThoughtIndex","isAnimating","setIsAnimating","timer","setInterval","setTimeout","prev","length","clearInterval","AssistantSuggestions","React26","suggestions","showSuggestions","map","suggestion","index","onClick","action","style","transitionDelay","label","AssistantButton","clickAction","isVisible","setIsVisible","setShowSuggestions","handleMouseEnter","requestAnimationFrame","handleMouseLeave","onMouseEnter","onMouseLeave","width","height","useEmblaCarousel","ArrowLeft","ArrowRight","CarouselContext","React27","createContext","useCarousel","context","useContext","Error","Carousel","opts","setApi","plugins","axis","carouselRef","api","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","useCallback","scrollPrev","scrollNext","handleKeyDown","event","key","preventDefault","on","off","Provider","value","onKeyDownCapture","CarouselContent","CarouselItem","CarouselPrevious","disabled","CarouselNext","NavigationMenuPrimitive","NavigationMenu","React28","NavigationMenuViewport","NavigationMenuList","NavigationMenuItem","navigationMenuTriggerStyle","NavigationMenuTrigger","NavigationMenuContent","NavigationMenuLink","Link","NavigationMenuIndicator","sidebarVariants","SidebarFooter","React29","Sidebar","items","selectedSection","footerContent","selectedVariant","defaultVariant","buttonClassName","item","name","Toaster","Sonner","ThemeContext","theme","setTheme","useAlquimiaTheme","toastOptions","classNames","toast","description","actionButton","cancelButton","TooltipPrimitive","Star","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","React30","StarRating","rating","onRate","star","RatingStars","currentRating","isLoading","open","setOpen","animate","setAnimate","handleRate","clearTimeout","hasRated","onOpenChange","side","ThumbsUp","ThumbsDown","RatingThumbs","React31","direction","Book","RatingComment","React32","comment","setComment","rows","onChange","e","target","useRef","CHAR_DELAY","PUNCTUATION_DELAY","useTextStreaming","shouldStream","handleIsTextStreaming","displayedText","setDisplayedText","contentRef","indexRef","timerRef","hasStartedStreaming","current","typeNext","nextChar","charAt","delay","test","CallOut","React33","CallOutDate","CallOutActions","actions","message","setIsLoading","isClicked","setIsClicked","custom","Fragment","component","title","then","CallOutResponse","additionalInfo","toggleAdditionalInfo","isStreaming","isAdditionalInfoOpen","setIsAdditionalInfoOpen","String","displayedContent","showAsToggle","showInline","SonnerToaster"],"mappings":"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","sourcesContent":["// src/components/molecules/page-container.tsx\nimport { forwardRef } from \"react\";\n\n// src/lib/utils.ts\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\n// src/components/molecules/page-container.tsx\nimport { jsx } from \"react/jsx-runtime\";\nvar PageContainer = forwardRef(\n ({ className, ...props }, ref) => {\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref,\n className: cn(className, \"alq--page-container\"),\n ...props\n }\n );\n }\n);\nPageContainer.displayName = \"PageContainer\";\n\n// src/components/molecules/alert-dialog.tsx\nimport * as React2 from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\n// src/components/atoms/ui/button.tsx\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar 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: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"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);\nvar Button = React.forwardRef(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return /* @__PURE__ */ jsx2(\n Comp,\n {\n className: cn(buttonVariants({ variant, size, className })),\n ref,\n ...props\n }\n );\n }\n);\nButton.displayName = \"Button\";\n\n// src/components/molecules/alert-dialog.tsx\nimport { jsx as jsx3, jsxs } from \"react/jsx-runtime\";\nvar AlertDialog = AlertDialogPrimitive.Root;\nvar AlertDialogTrigger = AlertDialogPrimitive.Trigger;\nvar AlertDialogPortal = AlertDialogPrimitive.Portal;\nvar AlertDialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(\n AlertDialogPrimitive.Overlay,\n {\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\n }\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\nvar AlertDialogContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [\n /* @__PURE__ */ jsx3(AlertDialogOverlay, {}),\n /* @__PURE__ */ jsx3(\n AlertDialogPrimitive.Content,\n {\n 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 )\n] }));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\nvar AlertDialogHeader = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsx3(\n \"div\",\n {\n className: cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n ),\n ...props\n }\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\nvar AlertDialogFooter = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsx3(\n \"div\",\n {\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);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\nvar AlertDialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(\n AlertDialogPrimitive.Title,\n {\n ref,\n className: cn(\"text-lg font-semibold\", className),\n ...props\n }\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\nvar AlertDialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(\n AlertDialogPrimitive.Description,\n {\n ref,\n className: cn(\"text-sm text-muted-foreground\", className),\n ...props\n }\n));\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;\nvar AlertDialogAction = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(\n AlertDialogPrimitive.Action,\n {\n ref,\n className: cn(buttonVariants(), className),\n ...props\n }\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\nvar AlertDialogCancel = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(\n AlertDialogPrimitive.Cancel,\n {\n ref,\n className: cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n ),\n ...props\n }\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\n// src/components/molecules/assistant-button.tsx\nimport * as React26 from \"react\";\nimport { useState as useState3 } from \"react\";\n\n// src/components/atoms/ui/textarea.tsx\nimport * as React3 from \"react\";\nimport { jsx as jsx4 } from \"react/jsx-runtime\";\nvar Textarea = React3.forwardRef(\n ({ className, ...props }, ref) => {\n return /* @__PURE__ */ jsx4(\n \"textarea\",\n {\n className: cn(\n \"flex min-h-[80px] w-full rounded-md 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 className,\n \"alq--textarea\"\n ),\n ref,\n ...props\n }\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\n// src/components/atoms/ui/input.tsx\nimport { forwardRef as forwardRef5 } from \"react\";\nimport { jsx as jsx5 } from \"react/jsx-runtime\";\nvar Input = forwardRef5(\n ({ className, type, ...props }, ref) => {\n return /* @__PURE__ */ jsx5(\n \"input\",\n {\n type,\n className: cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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 className,\n \"alq--input\"\n ),\n ref,\n ...props\n }\n );\n }\n);\nInput.displayName = \"Input\";\n\n// src/components/atoms/ui/select.tsx\nimport * as React4 from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { jsx as jsx6, jsxs as jsxs2 } from \"react/jsx-runtime\";\nvar SelectTrigger = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(\n SelectPrimitive.Trigger,\n {\n 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 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 \"alq--select\"\n ),\n ...props,\n children: [\n children,\n /* @__PURE__ */ jsx6(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx6(ChevronDown, { className: \"h-4 w-4 opacity-50\" }) })\n ]\n }\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\nvar SelectScrollUpButton = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(\n SelectPrimitive.ScrollUpButton,\n {\n ref,\n className: cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n ),\n ...props,\n children: /* @__PURE__ */ jsx6(ChevronUp, { className: \"h-4 w-4\" })\n }\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\nvar SelectScrollDownButton = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(\n SelectPrimitive.ScrollDownButton,\n {\n ref,\n className: cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n ),\n ...props,\n children: /* @__PURE__ */ jsx6(ChevronDown, { className: \"h-4 w-4\" })\n }\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\nvar SelectContent = React4.forwardRef(({ className, children, position = \"popper\", ...props }, ref) => /* @__PURE__ */ jsx6(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(\n SelectPrimitive.Content,\n {\n ref,\n className: cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-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\",\n position === \"popper\" && \"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,\n ...props,\n children: [\n /* @__PURE__ */ jsx6(SelectScrollUpButton, {}),\n /* @__PURE__ */ jsx6(\n SelectPrimitive.Viewport,\n {\n className: cn(\n \"p-1\",\n position === \"popper\" && \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n ),\n children\n }\n ),\n /* @__PURE__ */ jsx6(SelectScrollDownButton, {})\n ]\n }\n) }));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\nvar SelectLabel = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(\n SelectPrimitive.Label,\n {\n 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;\nvar SelectItem = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(\n SelectPrimitive.Item,\n {\n 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 children: [\n /* @__PURE__ */ jsx6(\"span\", { className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\", children: /* @__PURE__ */ jsx6(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx6(Check, { className: \"h-4 w-4\" }) }) }),\n /* @__PURE__ */ jsx6(SelectPrimitive.ItemText, { children })\n ]\n }\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\nvar SelectSeparator = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(\n SelectPrimitive.Separator,\n {\n ref,\n className: cn(\"-mx-1 my-1 h-px bg-muted\", className),\n ...props\n }\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\n// src/components/atoms/ui/avatar.tsx\nimport * as React5 from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { jsx as jsx7 } from \"react/jsx-runtime\";\nvar Avatar = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(\n AvatarPrimitive.Root,\n {\n 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;\nvar AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(\n AvatarPrimitive.Image,\n {\n ref,\n className: cn(\"aspect-square h-full w-full\", className),\n ...props\n }\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\nvar AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(\n AvatarPrimitive.Fallback,\n {\n 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\n// src/components/atoms/ui/scroll-area.tsx\nimport * as React6 from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport { jsx as jsx8, jsxs as jsxs3 } from \"react/jsx-runtime\";\nvar ScrollArea = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs3(\n ScrollAreaPrimitive.Root,\n {\n ref,\n className: cn(\"relative overflow-hidden\", className),\n ...props,\n children: [\n /* @__PURE__ */ jsx8(ScrollAreaPrimitive.Viewport, { className: \"h-full w-full rounded-[inherit]\", children }),\n /* @__PURE__ */ jsx8(ScrollBar, {}),\n /* @__PURE__ */ jsx8(ScrollAreaPrimitive.Corner, {})\n ]\n }\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\nvar ScrollBar = React6.forwardRef(({ className, orientation = \"vertical\", ...props }, ref) => /* @__PURE__ */ jsx8(\n ScrollAreaPrimitive.ScrollAreaScrollbar,\n {\n ref,\n orientation,\n className: cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n ),\n ...props,\n children: /* @__PURE__ */ jsx8(ScrollAreaPrimitive.ScrollAreaThumb, { className: \"relative flex-1 rounded-full bg-border\" })\n }\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\n// src/components/atoms/ui/rich-text.tsx\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { jsx as jsx9 } from \"react/jsx-runtime\";\nfunction RichText({ content, className }) {\n return /* @__PURE__ */ jsx9(ReactMarkdown, { className: cn(className), remarkPlugins: [remarkGfm], children: content });\n}\n\n// src/components/atoms/ui/skeleton.tsx\nimport { jsx as jsx10 } from \"react/jsx-runtime\";\n\n// src/components/atoms/ui/card.tsx\nimport * as React7 from \"react\";\nimport { jsx as jsx11 } from \"react/jsx-runtime\";\nvar Card = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(\n \"div\",\n {\n ref,\n className: cn(\n \"rounded-lg\",\n \" border\",\n \"bg-card\",\n \"text-card-foreground\",\n \"shadow-raised\",\n className\n ),\n ...props\n }\n));\nCard.displayName = \"Card\";\nvar CardHeader = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(\n \"div\",\n {\n ref,\n className: cn(\"flex flex-col space-y-1.5 p-6\", className),\n ...props\n }\n));\nCardHeader.displayName = \"CardHeader\";\nvar CardTitle = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(\n \"h3\",\n {\n ref,\n className: cn(\"alq--typography-heading4\", className),\n ...props\n }\n));\nCardTitle.displayName = \"CardTitle\";\nvar CardDescription = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(\n \"p\",\n {\n ref,\n className: cn(\"text-sm text-muted-foreground\", className),\n ...props\n }\n));\nCardDescription.displayName = \"CardDescription\";\nvar CardContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(\"div\", { ref, className: cn(\"p-6 pt-0\", className), ...props }));\nCardContent.displayName = \"CardContent\";\nvar CardFooter = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(\n \"div\",\n {\n ref,\n className: cn(\"flex items-center p-6 pt-0\", className),\n ...props\n }\n));\nCardFooter.displayName = \"CardFooter\";\n\n// src/components/atoms/ui/drawer.tsx\nimport * as React8 from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { jsx as jsx12, jsxs as jsxs4 } from \"react/jsx-runtime\";\nvar Drawer = ({\n shouldScaleBackground = true,\n ...props\n}) => /* @__PURE__ */ jsx12(\n DrawerPrimitive.Root,\n {\n shouldScaleBackground,\n ...props\n }\n);\nDrawer.displayName = \"Drawer\";\nvar DrawerTrigger = DrawerPrimitive.Trigger;\nvar DrawerPortal = DrawerPrimitive.Portal;\nvar DrawerClose = DrawerPrimitive.Close;\nvar DrawerOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(\n DrawerPrimitive.Overlay,\n {\n ref,\n className: cn(\"fixed inset-0 z-50 bg-black/80\", className),\n ...props\n }\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\nvar DrawerContent = React8.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(DrawerPortal, { children: [\n /* @__PURE__ */ jsx12(DrawerOverlay, {}),\n /* @__PURE__ */ jsxs4(\n DrawerPrimitive.Content,\n {\n ref,\n className: cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-border bg-background text-foreground alq--drawer-content\",\n className\n ),\n ...props,\n children: [\n /* @__PURE__ */ jsx12(\"div\", { className: \"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" }),\n children\n ]\n }\n )\n] }));\nDrawerContent.displayName = \"DrawerContent\";\nvar DrawerHeader = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsx12(\n \"div\",\n {\n className: cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className, \"alq--drawer-header\"),\n ...props\n }\n);\nDrawerHeader.displayName = \"DrawerHeader\";\nvar DrawerFooter = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsx12(\n \"div\",\n {\n className: cn(\"mt-auto flex flex-col gap-2 p-4\", className, \"alq--drawer-footer\"),\n ...props\n }\n);\nDrawerFooter.displayName = \"DrawerFooter\";\nvar DrawerTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(\n DrawerPrimitive.Title,\n {\n ref,\n className: cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n \"alq--drawer-title\"\n ),\n ...props\n }\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\nvar DrawerDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(\n DrawerPrimitive.Description,\n {\n ref,\n className: cn(\"text-sm text-muted-foreground\", className, \"alq--drawer-description\"),\n ...props\n }\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\n// src/components/atoms/ui/typography/index.tsx\nimport { forwardRef as forwardRef11 } from \"react\";\nimport { jsx as jsx13 } from \"react/jsx-runtime\";\nvar Typography = forwardRef11(\n ({ as: Component = \"p\", typeStyle, ...props }, ref) => {\n return /* @__PURE__ */ jsx13(\n Component,\n {\n ...props,\n className: cn(props.className, `alq--typography-${typeStyle}`),\n ref\n }\n );\n }\n);\nTypography.displayName = \"Typography\";\n\n// src/components/atoms/ui/badge.tsx\nimport { cva as cva2 } from \"class-variance-authority\";\nimport { jsx as jsx14 } from \"react/jsx-runtime\";\nvar badgeVariants = cva2(\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: \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"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\n// src/components/atoms/ui/alert.tsx\nimport * as React9 from \"react\";\nimport { cva as cva3 } from \"class-variance-authority\";\nimport { jsx as jsx15 } from \"react/jsx-runtime\";\nvar alertVariants = cva3(\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: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n }\n);\nvar Alert = React9.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx15(\n \"div\",\n {\n ref,\n role: \"alert\",\n className: cn(alertVariants({ variant }), className),\n ...props\n }\n));\nAlert.displayName = \"Alert\";\nvar AlertTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(\n \"h5\",\n {\n ref,\n className: cn(\"mb-1 font-medium leading-none tracking-tight\", className),\n ...props\n }\n));\nAlertTitle.displayName = \"AlertTitle\";\nvar AlertDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(\n \"div\",\n {\n ref,\n className: cn(\"text-sm [&_p]:leading-relaxed\", className),\n ...props\n }\n));\nAlertDescription.displayName = \"AlertDescription\";\n\n// src/components/atoms/ui/label.tsx\nimport * as React10 from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva as cva4 } from \"class-variance-authority\";\nimport { jsx as jsx16 } from \"react/jsx-runtime\";\nvar labelVariants = cva4(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n);\nvar Label2 = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(\n LabelPrimitive.Root,\n {\n ref,\n className: cn(labelVariants(), className, \"alq--label\"),\n ...props\n }\n));\nLabel2.displayName = LabelPrimitive.Root.displayName;\n\n// src/components/atoms/ui/checkbox.tsx\nimport * as React11 from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check as Check2 } from \"lucide-react\";\nimport { jsx as jsx17 } from \"react/jsx-runtime\";\nvar Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(\n CheckboxPrimitive.Root,\n {\n ref,\n className: cn(\n \"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 \"alq--checkbox\"\n ),\n ...props,\n children: /* @__PURE__ */ jsx17(\n CheckboxPrimitive.Indicator,\n {\n className: cn(\"flex items-center justify-center text-current\"),\n children: /* @__PURE__ */ jsx17(Check2, { className: \"h-4 w-4\" })\n }\n )\n }\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\n// src/components/atoms/ui/toggle.tsx\nimport * as React12 from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva as cva5 } from \"class-variance-authority\";\nimport { jsx as jsx18 } from \"react/jsx-runtime\";\nvar toggleVariants = cva5(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\"\n },\n size: {\n default: \"h-10 px-3\",\n sm: \"h-9 px-2.5\",\n lg: \"h-11 px-5\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n }\n);\nvar Toggle = React12.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx18(\n TogglePrimitive.Root,\n {\n ref,\n className: cn(toggleVariants({ variant, size, className }), \"alq--toggle\"),\n ...props\n }\n));\nToggle.displayName = TogglePrimitive.Root.displayName;\n\n// src/components/atoms/ui/slider.tsx\nimport * as React13 from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { jsx as jsx19, jsxs as jsxs5 } from \"react/jsx-runtime\";\nvar Slider = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs5(\n SliderPrimitive.Root,\n {\n ref,\n className: cn(\n \"relative flex w-44 touch-none select-none items-center\",\n className,\n \"alq--slider\"\n ),\n ...props,\n children: [\n /* @__PURE__ */ jsx19(SliderPrimitive.Track, { className: \"relative h-2 w-44 grow overflow-hidden rounded-full bg-primary\", children: /* @__PURE__ */ jsx19(SliderPrimitive.Range, { className: \"absolute h-full bg-secondary\" }) }),\n /* @__PURE__ */ jsx19(SliderPrimitive.Thumb, { className: \"block h-5 w-5 rounded-full border-2 border-gray 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 ]\n }\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\n// src/components/atoms/ui/switch.tsx\nimport * as React14 from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { jsx as jsx20 } from \"react/jsx-runtime\";\nvar Switch = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(\n SwitchPrimitives.Root,\n {\n className: cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 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 \"alq--switch\"\n ),\n ...props,\n ref,\n children: /* @__PURE__ */ jsx20(\n SwitchPrimitives.Thumb,\n {\n className: cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )\n }\n )\n }\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\n// src/components/atoms/ui/tabs.tsx\nimport * as React15 from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { jsx as jsx21 } from \"react/jsx-runtime\";\nvar TabsList = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(\n TabsPrimitive.List,\n {\n ref,\n className: cn(\n \"inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground\",\n className,\n \"alq--tabs\"\n ),\n ...props\n }\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\nvar TabsTrigger = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(\n TabsPrimitive.Trigger,\n {\n ref,\n className: cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:border-b-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-b-2 data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n ),\n ...props\n }\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\nvar TabsContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(\n TabsPrimitive.Content,\n {\n ref,\n className: cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n ),\n ...props\n }\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\n// src/components/atoms/ui/aspect-ratio.tsx\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\n// src/components/atoms/ui/table.tsx\nimport * as React16 from \"react\";\nimport { jsx as jsx22 } from \"react/jsx-runtime\";\nvar Table = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\"div\", { className: \"relative w-full overflow-auto\", children: /* @__PURE__ */ jsx22(\n \"table\",\n {\n ref,\n className: cn(\"w-full caption-bottom text-sm text-foreground bg-background\", className, \"alq--table\"),\n ...props\n }\n) }));\nTable.displayName = \"Table\";\nvar TableHeader = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\"thead\", { ref, className: cn(\"[&_tr]:border-b border-border bg-muted\", className, \"alq--table-header\"), ...props }));\nTableHeader.displayName = \"TableHeader\";\nvar TableBody = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\n \"tbody\",\n {\n ref,\n className: cn(\"[&_tr:last-child]:border-0 [&_tr]:border-b border-border\", className, \"alq--table-body\"),\n ...props\n }\n));\nTableBody.displayName = \"TableBody\";\nvar TableFooter = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\n \"tfoot\",\n {\n ref,\n className: cn(\n \"border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n \"alq--table-footer\"\n ),\n ...props\n }\n));\nTableFooter.displayName = \"TableFooter\";\nvar TableRow = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\n \"tr\",\n {\n 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\";\nvar TableHead = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\n \"th\",\n {\n 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\";\nvar TableCell = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\n \"td\",\n {\n ref,\n className: cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className),\n ...props\n }\n));\nTableCell.displayName = \"TableCell\";\nvar TableCaption = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(\n \"caption\",\n {\n ref,\n className: cn(\"mt-4 text-sm text-muted-foreground\", className),\n ...props\n }\n));\nTableCaption.displayName = \"TableCaption\";\n\n// src/components/atoms/ui/breadcrumb.tsx\nimport * as React17 from \"react\";\nimport { Slot as Slot2 } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { jsx as jsx23, jsxs as jsxs6 } from \"react/jsx-runtime\";\nvar Breadcrumb = React17.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx23(\"nav\", { ref, \"aria-label\": \"breadcrumb\", ...props }));\nBreadcrumb.displayName = \"Breadcrumb\";\nvar BreadcrumbList = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(\n \"ol\",\n {\n ref,\n className: cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n ),\n ...props\n }\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\nvar BreadcrumbItem = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(\n \"li\",\n {\n ref,\n className: cn(\"inline-flex items-center gap-1.5\", className),\n ...props\n }\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nvar BreadcrumbLink = React17.forwardRef(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot2 : \"a\";\n return /* @__PURE__ */ jsx23(\n Comp,\n {\n ref,\n className: cn(\"transition-colors hover:text-foreground\", className),\n ...props\n }\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\nvar BreadcrumbPage = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(\n \"span\",\n {\n ref,\n role: \"link\",\n \"aria-disabled\": \"true\",\n \"aria-current\": \"page\",\n className: cn(\"font-normal text-foreground\", className),\n ...props\n }\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\nvar BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}) => /* @__PURE__ */ jsx23(\n \"li\",\n {\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n className: cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className),\n ...props,\n children: children ?? /* @__PURE__ */ jsx23(ChevronRight, {})\n }\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\nvar BreadcrumbEllipsis = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsxs6(\n \"span\",\n {\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n className: cn(\"flex h-9 w-9 items-center justify-center\", className),\n ...props,\n children: [\n /* @__PURE__ */ jsx23(MoreHorizontal, { className: \"h-4 w-4\" }),\n /* @__PURE__ */ jsx23(\"span\", { className: \"sr-only\", children: \"More\" })\n ]\n }\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\n// src/components/atoms/ui/popover.tsx\nimport * as React18 from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { jsx as jsx24 } from \"react/jsx-runtime\";\nvar PopoverContent = React18.forwardRef(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx24(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx24(\n PopoverPrimitive.Content,\n {\n ref,\n align,\n 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\",\n className\n ),\n ...props\n }\n) }));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\n// src/components/atoms/ui/command.tsx\nimport * as React20 from \"react\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\n// src/components/atoms/ui/dialog.tsx\nimport * as React19 from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport { jsx as jsx25, jsxs as jsxs7 } from \"react/jsx-runtime\";\nvar Dialog = DialogPrimitive.Root;\nvar DialogTrigger = DialogPrimitive.Trigger;\nvar DialogPortal = DialogPrimitive.Portal;\nvar DialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(\n DialogPrimitive.Overlay,\n {\n 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;\nvar DialogContent = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(DialogPortal, { children: [\n /* @__PURE__ */ jsx25(DialogOverlay, {}),\n /* @__PURE__ */ jsxs7(\n DialogPrimitive.Content,\n {\n 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 \"alq--dialog-content\"\n ),\n ...props,\n children: [\n children,\n /* @__PURE__ */ jsxs7(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\", children: [\n /* @__PURE__ */ jsx25(X, { className: \"h-4 w-4\" }),\n /* @__PURE__ */ jsx25(\"span\", { className: \"sr-only\", children: \"Close\" })\n ] })\n ]\n }\n )\n] }));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\nvar DialogHeader = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsx25(\n \"div\",\n {\n className: cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left text-foreground\",\n className,\n \"alq--dialog-header\"\n ),\n ...props\n }\n);\nDialogHeader.displayName = \"DialogHeader\";\nvar DialogFooter = ({\n className,\n ...props\n}) => /* @__PURE__ */ jsx25(\n \"div\",\n {\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\";\nvar DialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(\n DialogPrimitive.Title,\n {\n ref,\n className: cn(\n \"text-lg font-semibold leading-none tracking-tight text-foreground\",\n className,\n \"alq--dialog-title\"\n ),\n ...props\n }\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\nvar DialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(\n DialogPrimitive.Description,\n {\n ref,\n className: cn(\"text-sm text-muted-foreground\", className),\n ...props\n }\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\n// src/components/atoms/ui/command.tsx\nimport { jsx as jsx26, jsxs as jsxs8 } from \"react/jsx-runtime\";\nvar Command = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(\n CommandPrimitive,\n {\n ref,\n className: cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n ),\n ...props\n }\n));\nCommand.displayName = CommandPrimitive.displayName;\nvar CommandInput = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs8(\"div\", { className: \"flex items-center border-b px-3\", \"cmdk-input-wrapper\": \"\", children: [\n /* @__PURE__ */ jsx26(Search, { className: \"mr-2 h-4 w-4 shrink-0 opacity-50\" }),\n /* @__PURE__ */ jsx26(\n CommandPrimitive.Input,\n {\n ref,\n className: cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n ),\n ...props\n }\n )\n] }));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\nvar CommandList = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(\n CommandPrimitive.List,\n {\n ref,\n className: cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className),\n ...props\n }\n));\nCommandList.displayName = CommandPrimitive.List.displayName;\nvar CommandEmpty = React20.forwardRef((props, ref) => /* @__PURE__ */ jsx26(\n CommandPrimitive.Empty,\n {\n ref,\n className: \"py-6 text-center text-sm\",\n ...props\n }\n));\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\nvar CommandGroup = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(\n CommandPrimitive.Group,\n {\n ref,\n className: cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n ),\n ...props\n }\n));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\nvar CommandSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(\n CommandPrimitive.Separator,\n {\n ref,\n className: cn(\"-mx-1 h-px bg-border\", className),\n ...props\n }\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\nvar CommandItem = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(\n CommandPrimitive.Item,\n {\n ref,\n className: cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n ),\n ...props\n }\n));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\nvar CommandShortcut = ({\n className,\n ...props\n}) => {\n return /* @__PURE__ */ jsx26(\n \"span\",\n {\n className: cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n ),\n ...props\n }\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\n// src/components/atoms/ui/toast.tsx\nimport * as React21 from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva as cva6 } from \"class-variance-authority\";\nimport { X as X2 } from \"lucide-react\";\nimport { jsx as jsx27 } from \"react/jsx-runtime\";\nvar ToastViewport = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(\n ToastPrimitives.Viewport,\n {\n ref,\n className: cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className\n ),\n ...props\n }\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\nvar toastVariants = cva6(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n destructive: \"destructive group border-destructive bg-destructive text-destructive-foreground\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n }\n);\nvar Toast = React21.forwardRef(({ className, variant, ...props }, ref) => {\n return /* @__PURE__ */ jsx27(\n ToastPrimitives.Root,\n {\n ref,\n className: cn(toastVariants({ variant }), className),\n ...props\n }\n );\n});\nToast.displayName = ToastPrimitives.Root.displayName;\nvar ToastAction = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(\n ToastPrimitives.Action,\n {\n ref,\n className: cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n ),\n ...props\n }\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\nvar ToastClose = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(\n ToastPrimitives.Close,\n {\n ref,\n className: cn(\n \"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n className\n ),\n \"toast-close\": \"\",\n ...props,\n children: /* @__PURE__ */ jsx27(X2, { className: \"h-4 w-4\" })\n }\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\nvar ToastTitle = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(\n ToastPrimitives.Title,\n {\n ref,\n className: cn(\"text-sm font-semibold\", className),\n ...props\n }\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\nvar ToastDescription = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(\n ToastPrimitives.Description,\n {\n ref,\n className: cn(\"text-sm opacity-90\", className),\n ...props\n }\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\n// src/components/atoms/ui/loader.tsx\nimport * as React22 from \"react\";\nimport { cva as cva7 } from \"class-variance-authority\";\nimport { Loader2 } from \"lucide-react\";\nimport { jsx as jsx28 } from \"react/jsx-runtime\";\nvar loaderVariants = cva7(\n \"flex justify-center items-center w-full\",\n {\n variants: {\n size: {\n small: \"h-6 w-6\",\n medium: \"h-8 w-8\",\n large: \"h-12 w-12\",\n xl: \"h-24 w-24\"\n },\n colorVariant: {\n default: \"text-primary\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n destructive: \"text-destructive\"\n }\n },\n defaultVariants: {\n size: \"medium\",\n colorVariant: \"default\"\n }\n }\n);\nvar Loader = React22.forwardRef(\n ({ className, size, colorVariant, ...props }, ref) => /* @__PURE__ */ jsx28(\n \"div\",\n {\n ref,\n className: cn(loaderVariants({ size, colorVariant }), \"flex justify-center items-center h-full w-full\", className),\n ...props,\n children: /* @__PURE__ */ jsx28(Loader2, { className: \"animate-spin\" })\n }\n )\n);\nLoader.displayName = \"Loader\";\n\n// src/components/atoms/ui/separator.tsx\nimport * as React23 from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { jsx as jsx29 } from \"react/jsx-runtime\";\nvar Separator2 = React23.forwardRef(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx29(\n SeparatorPrimitive.Root,\n {\n ref,\n decorative,\n orientation,\n className: cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className,\n \"alq--separator\"\n ),\n ...props\n }\n));\nSeparator2.displayName = SeparatorPrimitive.Root.displayName;\n\n// src/components/hooks/use-toast.ts\nimport * as React24 from \"react\";\n\n// src/components/atoms/ui/toaster.tsx\nimport { jsx as jsx30, jsxs as jsxs9 } from \"react/jsx-runtime\";\n\n// src/components/atoms/ui/think-indicator.tsx\nimport * as React25 from \"react\";\nimport { useState as useState2, useEffect as useEffect2 } from \"react\";\nimport { cva as cva8 } from \"class-variance-authority\";\nimport { jsx as jsx31, jsxs as jsxs10 } from \"react/jsx-runtime\";\nvar thinkIndicatorVariants = cva8(\n \"flex items-center gap-3\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n primary: \"text-primary\",\n secondary: \"text-secondary\"\n },\n size: {\n default: \"gap-3\",\n sm: \"gap-2\",\n lg: \"gap-4\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n }\n);\nvar ThinkIndicator = React25.forwardRef(\n ({\n className,\n variant,\n size,\n thoughts = [\n \"Analyzing your request...\",\n \"Processing information...\",\n \"Formulating response...\"\n ],\n interval = 5e3,\n loader,\n ...props\n }, ref) => {\n const [currentThoughtIndex, setCurrentThoughtIndex] = useState2(0);\n const [isAnimating, setIsAnimating] = useState2(false);\n useEffect2(() => {\n const timer = setInterval(() => {\n setIsAnimating(true);\n setTimeout(() => {\n setCurrentThoughtIndex((prev) => {\n return prev < thoughts.length - 1 ? prev + 1 : prev;\n });\n setIsAnimating(false);\n }, 300);\n }, interval);\n if (currentThoughtIndex === thoughts.length - 1) {\n clearInterval(timer);\n }\n return () => clearInterval(timer);\n }, [thoughts, interval, currentThoughtIndex]);\n return /* @__PURE__ */ jsxs10(\n \"div\",\n {\n ref,\n className: cn(thinkIndicatorVariants({ variant, size }), className, \"alq--think-indicator\"),\n ...props,\n children: [\n loader || /* @__PURE__ */ jsx31(\n Loader,\n {\n className: cn(\n size === \"sm\" ? \"h-3 w-3\" : size === \"lg\" ? \"h-5 w-5\" : \"h-4 w-4\"\n )\n }\n ),\n /* @__PURE__ */ jsx31(\n \"div\",\n {\n className: cn(\n \"alq--think-indicator-text\",\n \"transition-all duration-300\",\n isAnimating ? \"opacity-0 -translate-y-2\" : \"opacity-100 translate-y-0\"\n ),\n children: thoughts[currentThoughtIndex]\n }\n )\n ]\n }\n );\n }\n);\nThinkIndicator.displayName = \"ThinkIndicator\";\n\n// src/components/molecules/assistant-button.tsx\nimport { jsx as jsx32, jsxs as jsxs11 } from \"react/jsx-runtime\";\nvar AssistantSuggestions = React26.forwardRef(({ suggestions, showSuggestions, className }, ref) => {\n return /* @__PURE__ */ jsx32(\n \"div\",\n {\n ref,\n className: cn(\n \"absolute bottom-[calc(100%+0.5rem)] right-0 pb-2 mb-4 alq--assistant-suggestions-container\",\n \"transition-all duration-300\",\n showSuggestions ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-4\",\n className\n ),\n children: /* @__PURE__ */ jsx32(\"div\", { className: \"rounded-lg p-2 pr-0 w-64\", children: suggestions.map((suggestion, index) => /* @__PURE__ */ jsxs11(\n \"button\",\n {\n onClick: () => suggestion.action?.(),\n style: {\n transitionDelay: showSuggestions ? `${index * 50}ms` : \"0ms\"\n },\n className: cn(\n \"bg-background flex items-center gap-2 border p-2 pr-4 my-2 rounded-full ml-auto\",\n \"text-primary hover:bg-secondary\",\n \"transition-all duration-100\",\n \"origin-bottom w-fit\",\n \"alq--assistant-suggestion\",\n showSuggestions ? \"opacity-100 translate-y-0\" : \"opacity-0 translate-y-4\"\n ),\n children: [\n /* @__PURE__ */ jsx32(suggestion.icon, { className: \"w-5 h-5 text-primary\" }),\n /* @__PURE__ */ jsx32(\"span\", { className: \"text-xs whitespace-nowrap font-normal\", children: suggestion.label })\n ]\n },\n index\n )) })\n }\n );\n});\nAssistantSuggestions.displayName = \"Suggestions\";\nvar AssistantButton = React26.forwardRef(\n ({\n icon: Icon2,\n clickAction,\n className,\n suggestions = []\n }, ref) => {\n const [isVisible, setIsVisible] = useState3(false);\n const [showSuggestions, setShowSuggestions] = useState3(false);\n const handleMouseEnter = () => {\n setIsVisible(true);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setShowSuggestions(true);\n });\n });\n };\n const handleMouseLeave = () => {\n setShowSuggestions(false);\n setTimeout(() => setIsVisible(false), 300);\n };\n return /* @__PURE__ */ jsx32(\n \"div\",\n {\n ref,\n className: cn(\n \"fixed bottom-8 right-4 z-50\",\n \"alq--assistant-button-container\",\n className\n ),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n children: /* @__PURE__ */ jsxs11(\"div\", { className: \"relative group\", children: [\n isVisible && suggestions.length > 0 && /* @__PURE__ */ jsx32(\n AssistantSuggestions,\n {\n suggestions,\n showSuggestions\n }\n ),\n /* @__PURE__ */ jsx32(\n Button,\n {\n variant: \"outline\",\n size: \"sm\",\n className: cn(\n \"fixed hover:bg-opacity-70 transition-all duration-300\",\n \"bottom-4 h-12 w-12 right-4 z-50 rounded-full p-2\",\n \"shadow-md\",\n \"hover:shadow-lg\",\n showSuggestions ? \"scale-110\" : \"hover:scale-105\",\n \"alq--assistant-button\"\n ),\n onClick: clickAction,\n children: /* @__PURE__ */ jsx32(\n Icon2,\n {\n style: { width: \"22px\", height: \"22px\" },\n className: \"text-primary\"\n }\n )\n }\n )\n ] })\n }\n );\n }\n);\nAssistantButton.displayName = \"AssistantButton\";\n\n// src/components/molecules/carousel.tsx\nimport * as React27 from \"react\";\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { jsx as jsx33, jsxs as jsxs12 } from \"react/jsx-runtime\";\nvar CarouselContext = React27.createContext(null);\nfunction useCarousel() {\n const context = React27.useContext(CarouselContext);\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n return context;\n}\nvar Carousel = React27.forwardRef(\n ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\"\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React27.useState(false);\n const [canScrollNext, setCanScrollNext] = React27.useState(false);\n const onSelect = React27.useCallback((api2) => {\n if (!api2) {\n return;\n }\n setCanScrollPrev(api2.canScrollPrev());\n setCanScrollNext(api2.canScrollNext());\n }, []);\n const scrollPrev = React27.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n const scrollNext = React27.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n const handleKeyDown = React27.useCallback(\n (event) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n React27.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n React27.useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n return /* @__PURE__ */ jsx33(\n CarouselContext.Provider,\n {\n value: {\n carouselRef,\n api,\n opts,\n orientation: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext\n },\n children: /* @__PURE__ */ jsx33(\n \"div\",\n {\n ref,\n onKeyDownCapture: handleKeyDown,\n className: cn(\"relative\", className),\n role: \"region\",\n \"aria-roledescription\": \"carousel\",\n ...props,\n children\n }\n )\n }\n );\n }\n);\nCarousel.displayName = \"Carousel\";\nvar CarouselContent = React27.forwardRef(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n return /* @__PURE__ */ jsx33(\"div\", { ref: carouselRef, className: \"overflow-hidden\", children: /* @__PURE__ */ jsx33(\n \"div\",\n {\n ref,\n className: cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n ),\n ...props\n }\n ) });\n});\nCarouselContent.displayName = \"CarouselContent\";\nvar CarouselItem = React27.forwardRef(({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n return /* @__PURE__ */ jsx33(\n \"div\",\n {\n ref,\n role: \"group\",\n \"aria-roledescription\": \"slide\",\n className: cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n ),\n ...props\n }\n );\n});\nCarouselItem.displayName = \"CarouselItem\";\nvar CarouselPrevious = React27.forwardRef(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n return /* @__PURE__ */ jsxs12(\n Button,\n {\n ref,\n variant,\n size,\n className: cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\" ? \"-left-12 top-1/2 -translate-y-1/2\" : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n ),\n disabled: !canScrollPrev,\n onClick: scrollPrev,\n ...props,\n children: [\n /* @__PURE__ */ jsx33(ArrowLeft, { className: \"h-4 w-4\" }),\n /* @__PURE__ */ jsx33(\"span\", { className: \"sr-only\", children: \"Previous slide\" })\n ]\n }\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\nvar CarouselNext = React27.forwardRef(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n return /* @__PURE__ */ jsxs12(\n Button,\n {\n ref,\n variant,\n size,\n className: cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\" ? \"-right-12 top-1/2 -translate-y-1/2\" : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n ),\n disabled: !canScrollNext,\n onClick: scrollNext,\n ...props,\n children: [\n /* @__PURE__ */ jsx33(ArrowRight, { className: \"h-4 w-4\" }),\n /* @__PURE__ */ jsx33(\"span\", { className: \"sr-only\", children: \"Next slide\" })\n ]\n }\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n\n// src/components/molecules/navigation-menu.tsx\nimport * as React28 from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva as cva9 } from \"class-variance-authority\";\nimport { ChevronDown as ChevronDown2 } from \"lucide-react\";\nimport { jsx as jsx34, jsxs as jsxs13 } from \"react/jsx-runtime\";\nvar NavigationMenu = React28.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(\n NavigationMenuPrimitive.Root,\n {\n ref,\n className: cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n ),\n ...props,\n children: [\n children,\n /* @__PURE__ */ jsx34(NavigationMenuViewport, {})\n ]\n }\n));\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;\nvar NavigationMenuList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(\n NavigationMenuPrimitive.List,\n {\n 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;\nvar NavigationMenuItem = NavigationMenuPrimitive.Item;\nvar navigationMenuTriggerStyle = cva9(\n \"group inline-flex h-10 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-[active]:bg-accent/50 data-[state=open]:bg-accent/50\"\n);\nvar NavigationMenuTrigger = React28.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(\n NavigationMenuPrimitive.Trigger,\n {\n ref,\n className: cn(navigationMenuTriggerStyle(), \"group\", className),\n ...props,\n children: [\n children,\n \" \",\n /* @__PURE__ */ jsx34(\n ChevronDown2,\n {\n className: \"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\",\n \"aria-hidden\": \"true\"\n }\n )\n ]\n }\n));\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\nvar NavigationMenuContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(\n NavigationMenuPrimitive.Content,\n {\n 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;\nvar NavigationMenuLink = NavigationMenuPrimitive.Link;\nvar NavigationMenuViewport = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(\"div\", { className: cn(\"absolute left-0 top-full flex justify-center\"), children: /* @__PURE__ */ jsx34(\n NavigationMenuPrimitive.Viewport,\n {\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-lg 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,\n ...props\n }\n) }));\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;\nvar NavigationMenuIndicator = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(\n NavigationMenuPrimitive.Indicator,\n {\n 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 children: /* @__PURE__ */ jsx34(\"div\", { className: \"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" })\n }\n));\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;\n\n// src/components/molecules/sidebar.tsx\nimport * as React29 from \"react\";\nimport { cva as cva10 } from \"class-variance-authority\";\nimport { jsx as jsx35, jsxs as jsxs14 } from \"react/jsx-runtime\";\nvar sidebarVariants = cva10(\n \"flex flex-col border-r\",\n {\n variants: {\n size: {\n sm: \"w-48\",\n default: \"w-64\",\n lg: \"w-72\"\n }\n },\n defaultVariants: {\n size: \"default\"\n }\n }\n);\nvar SidebarFooter = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx35(\n \"div\",\n {\n ref,\n className: cn(\"p-4\", className),\n ...props,\n children\n }\n));\nSidebarFooter.displayName = \"SidebarFooter\";\nvar Sidebar = React29.forwardRef(\n ({\n className,\n items,\n selectedSection,\n onSelect,\n footerContent,\n size = \"default\",\n selectedVariant = \"secondary\",\n defaultVariant = \"ghost\",\n buttonClassName,\n ...props\n }, ref) => {\n return /* @__PURE__ */ jsx35(\"div\", { className: cn(className, \"alq--navigation-sidebar h-full\"), ref, ...props, children: /* @__PURE__ */ jsxs14(\"aside\", { className: cn(sidebarVariants({ size }), \"h-full\"), children: [\n /* @__PURE__ */ jsx35(ScrollArea, { className: \"flex-grow justify-between\", children: /* @__PURE__ */ jsx35(\"div\", { className: \"flex flex-col gap-2 p-4\", children: items.map((item) => /* @__PURE__ */ jsxs14(\n Button,\n {\n variant: selectedSection?.name === item.name ? selectedVariant : defaultVariant,\n className: cn(\"justify-start\", buttonClassName),\n disabled: item.disabled,\n onClick: () => {\n if (onSelect) {\n onSelect(item);\n }\n },\n children: [\n item.icon && /* @__PURE__ */ jsx35(item.icon, { className: \"mr-2 h-4 w-4\" }),\n item.name\n ]\n },\n item.name\n )) }) }),\n footerContent && /* @__PURE__ */ jsx35(SidebarFooter, { children: footerContent })\n ] }) });\n }\n);\n\n// src/components/molecules/sonner.tsx\nimport { Toaster as Sonner } from \"sonner\";\n\n// src/providers/theme-context.ts\nimport { createContext as createContext2, useContext as useContext2 } from \"react\";\nvar ThemeContext = createContext2({\n theme: \"system\",\n setTheme: () => {\n }\n});\nfunction useAlquimiaTheme() {\n return useContext2(ThemeContext);\n}\n\n// src/components/molecules/sonner.tsx\nimport { jsx as jsx36 } from \"react/jsx-runtime\";\nvar Toaster = ({ ...props }) => {\n const { theme = \"system\" } = useAlquimiaTheme();\n return /* @__PURE__ */ jsx36(\n Sonner,\n {\n theme,\n className: \"toaster group\",\n toastOptions: {\n classNames: {\n toast: \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton: \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton: \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\"\n }\n },\n ...props\n }\n );\n};\n\n// src/components/molecules/rating-stars.tsx\nimport * as React30 from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { Star } from \"lucide-react\";\nimport { jsx as jsx37, jsxs as jsxs15 } from \"react/jsx-runtime\";\nvar TooltipProvider = TooltipPrimitive.Provider;\nvar Tooltip = TooltipPrimitive.Root;\nvar TooltipTrigger = TooltipPrimitive.Trigger;\nvar TooltipContent = React30.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx37(\n TooltipPrimitive.Content,\n {\n ref,\n sideOffset,\n className: cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-lg 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));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\nvar StarRating = React30.forwardRef(({ rating, onRate }, ref) => /* @__PURE__ */ jsx37(\"div\", { ref, className: \"flex\", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx37(\n Button,\n {\n onClick: () => onRate(star),\n variant: \"link\",\n className: \"p-1 transition-colors [&_svg]:size-5 h-5\",\n \"aria-label\": `Rate ${star} star${star !== 1 ? \"s\" : \"\"}`,\n children: /* @__PURE__ */ jsx37(\n Star,\n {\n className: cn(\n \"w-5 h-5\",\n star <= rating ? \"alq-rating-star-active fill-current stroke-current\" : \"alq-rating-star-inactive\"\n )\n }\n )\n },\n star\n)) }));\nStarRating.displayName = \"StarRating\";\nvar RatingStars = React30.forwardRef(({\n currentRating = 0,\n onRate,\n className,\n isLoading\n}, ref) => {\n const [open, setOpen] = React30.useState(false);\n const [animate, setAnimate] = React30.useState(false);\n const handleRate = (rating) => {\n onRate(rating);\n setOpen(false);\n };\n React30.useEffect(() => {\n if (currentRating > 0) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n const hasRated = currentRating > 0;\n return /* @__PURE__ */ jsx37(TooltipProvider, { children: /* @__PURE__ */ jsxs15(Tooltip, { open, onOpenChange: setOpen, children: [\n /* @__PURE__ */ jsx37(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx37(\n Button,\n {\n ref,\n variant: \"link\",\n className: cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium [&_svg]:size-5 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 disabled: isLoading,\n onClick: () => setOpen(!open),\n children: /* @__PURE__ */ jsx37(\n Star,\n {\n className: cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && \"animate-ping\",\n isLoading && \"animate-pulse\",\n hasRated ? \"alq-rating-star-active fill-current stroke-current\" : \"alq-rating-star-inactive\"\n )\n }\n )\n }\n ) }),\n /* @__PURE__ */ jsx37(TooltipContent, { side: \"top\", align: \"center\", className: \"p-0\", children: /* @__PURE__ */ jsx37(\"div\", { className: \"p-2 bg-background\", children: /* @__PURE__ */ jsx37(\n StarRating,\n {\n rating: currentRating,\n onRate: handleRate\n }\n ) }) })\n ] }) });\n});\nRatingStars.displayName = \"RatingStars\";\n\n// src/components/molecules/rating-thumbs.tsx\nimport * as React31 from \"react\";\nimport { ThumbsUp, ThumbsDown } from \"lucide-react\";\nimport { jsx as jsx38, jsxs as jsxs16 } from \"react/jsx-runtime\";\nvar RatingThumbs = React31.forwardRef(\n ({\n currentRating,\n onRate,\n direction = \"row\",\n className,\n isLoading\n }, ref) => {\n const [animate, setAnimate] = React31.useState(false);\n React31.useEffect(() => {\n if (currentRating) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n return /* @__PURE__ */ jsxs16(\n \"div\",\n {\n ref,\n className: cn(\n \"inline-flex\",\n direction === \"column\" ? \"flex-col\" : \"flex-row\",\n \"space-x-1 gap-4\",\n className\n ),\n children: [\n /* @__PURE__ */ jsx38(\n Button,\n {\n variant: \"link\",\n onClick: () => onRate(currentRating === \"thumbsUp\" ? \"\" : \"thumbsUp\"),\n className: cn(\n \"p-1 transition-colors disabled:opacity-50 [&_svg]:size-5\",\n `hover:alq-rating-thumbsup/10`\n ),\n \"aria-label\": \"Thumbs up\",\n disabled: isLoading,\n children: /* @__PURE__ */ jsx38(\n ThumbsUp,\n {\n className: cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && currentRating === \"thumbsUp\" && \"animate-ping\",\n isLoading && \"animate-pulse\",\n currentRating === \"thumbsUp\" ? \"alq-rating-thumbsup fill-current stroke-current\" : \"alq-rating-thumbs-inactive fill-transparent\"\n )\n }\n )\n }\n ),\n /* @__PURE__ */ jsx38(\n Button,\n {\n variant: \"link\",\n onClick: () => onRate(currentRating === \"thumbsDown\" ? \"\" : \"thumbsDown\"),\n className: cn(\n \"p-1 transition-colors disabled:opacity-50 mt-0.5 [&_svg]:size-5\",\n `hover:bg-alq-rating-thumbsdown/10`\n ),\n \"aria-label\": \"Thumbs down\",\n disabled: isLoading,\n children: /* @__PURE__ */ jsx38(\n ThumbsDown,\n {\n className: cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && currentRating === \"thumbsDown\" && \"animate-ping\",\n isLoading && \"animate-pulse\",\n currentRating === \"thumbsDown\" ? \"alq-rating-thumbsdown fill-current stroke-current\" : \"alq-rating-thumbs-inactive fill-transparent\"\n )\n }\n )\n }\n )\n ]\n }\n );\n }\n);\nRatingThumbs.displayName = \"RatingThumbs\";\n\n// src/components/molecules/rating-comment.tsx\nimport * as React32 from \"react\";\nimport { Book } from \"lucide-react\";\nimport { jsx as jsx39, jsxs as jsxs17 } from \"react/jsx-runtime\";\nvar RatingComment = React32.forwardRef(\n ({ currentRating, onRate, className, isLoading }, ref) => {\n const [open, setOpen] = React32.useState(false);\n const [comment, setComment] = React32.useState(\"\");\n const [animate, setAnimate] = React32.useState(false);\n const handleRate = () => {\n onRate(comment);\n setOpen(false);\n };\n React32.useEffect(() => {\n if (currentRating) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n React32.useEffect(() => {\n setComment(\"\");\n }, [open]);\n return /* @__PURE__ */ jsxs17(Dialog, { open, onOpenChange: setOpen, children: [\n /* @__PURE__ */ jsx39(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx39(\n Button,\n {\n ref,\n variant: \"link\",\n size: \"lg\",\n className: cn(\n \"inline-flex p-2 items-center justify-center rounded-md text-sm font-medium transition-colors [&_svg]:size-5 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring bg-transparent hover:none disabled:pointer-events-none disabled:opacity-50\",\n className\n ),\n disabled: isLoading,\n children: /* @__PURE__ */ jsx39(\n Book,\n {\n className: cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && \"animate-ping\",\n isLoading && \"animate-pulse\",\n `${comment ? \"alq-rating-comment\" : \"stroke-gray-400\"}`\n )\n }\n )\n }\n ) }),\n /* @__PURE__ */ jsx39(DialogOverlay, { className: \"fixed inset-0 bg-black bg-opacity-50\" }),\n /* @__PURE__ */ jsxs17(DialogContent, { \"aria-describedby\": void 0, children: [\n /* @__PURE__ */ jsx39(DialogTitle, { className: \"text-lg font-medium\", children: \"Deja un comentario\" }),\n /* @__PURE__ */ jsx39(\n \"textarea\",\n {\n className: \"mt-4 w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-primary\",\n rows: 4,\n value: comment,\n onChange: (e) => setComment(e.target.value)\n }\n ),\n /* @__PURE__ */ jsx39(\"div\", { className: \"mt-4 flex justify-end\", children: /* @__PURE__ */ jsx39(\n Button,\n {\n onClick: handleRate,\n disabled: !comment,\n children: \"Enviar\"\n }\n ) })\n ] })\n ] });\n }\n);\nRatingComment.displayName = \"RatingComment\";\n\n// src/components/molecules/call-out.tsx\nimport * as React33 from \"react\";\nimport { ChevronDown as ChevronDown3, ChevronUp as ChevronUp2 } from \"lucide-react\";\n\n// src/components/hooks/use-text-streaming.ts\nimport { useState as useState8, useEffect as useEffect8, useRef, useCallback as useCallback2 } from \"react\";\nvar CHAR_DELAY = 15;\nvar PUNCTUATION_DELAY = 300;\nfunction useTextStreaming(content, shouldStream, handleIsTextStreaming) {\n const [displayedText, setDisplayedText] = useState8(\"\");\n const contentRef = useRef(content);\n const indexRef = useRef(0);\n const timerRef = useRef(null);\n const hasStartedStreaming = useRef(false);\n useEffect8(() => {\n contentRef.current = content;\n if (hasStartedStreaming.current && !timerRef.current && indexRef.current < contentRef.current.length) {\n typeNext();\n }\n }, [content]);\n const typeNext = useCallback2(() => {\n if (indexRef.current < contentRef.current.length) {\n const nextChar = contentRef.current.charAt(indexRef.current);\n setDisplayedText((prev) => prev + nextChar);\n indexRef.current++;\n const delay = /[.!?;:]/.test(nextChar) ? PUNCTUATION_DELAY : CHAR_DELAY;\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n typeNext();\n }, delay);\n } else {\n handleIsTextStreaming?.(false);\n }\n }, []);\n useEffect8(() => {\n if (!shouldStream && !hasStartedStreaming.current) {\n setDisplayedText(contentRef.current);\n indexRef.current = contentRef.current.length;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n handleIsTextStreaming?.(false);\n } else {\n if (indexRef.current < contentRef.current.length && !timerRef.current) {\n handleIsTextStreaming?.(true);\n hasStartedStreaming.current = true;\n typeNext();\n }\n }\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [shouldStream, typeNext]);\n return displayedText;\n}\n\n// src/components/molecules/call-out.tsx\nimport { jsx as jsx40, jsxs as jsxs18 } from \"react/jsx-runtime\";\nvar CallOut = React33.forwardRef(({ className, children, role, ...props }, ref) => {\n return /* @__PURE__ */ jsx40(\n \"div\",\n {\n ref,\n className: cn(\"alq--callout-box\", className),\n \"data-role\": role,\n ...props,\n children\n }\n );\n});\nvar CallOutDate = React33.forwardRef(({ className, children, ...props }, ref) => {\n return /* @__PURE__ */ jsx40(\n \"div\",\n {\n ref,\n className: cn(\n \"alq--callout-date\",\n \"text-sm text-muted-foreground\",\n className\n ),\n ...props,\n children\n }\n );\n});\nvar CallOutActions = React33.forwardRef(({ className, actions, role, message, ...props }, ref) => {\n const [isLoading, setIsLoading] = React33.useState(false);\n const [isClicked, setIsClicked] = React33.useState(false);\n if (role === \"user\") {\n return null;\n }\n return /* @__PURE__ */ jsx40(\"div\", { ref, className: cn(\"alq--callout-actions\", className), ...props, children: actions.map((action) => action.custom ? /* @__PURE__ */ jsx40(React33.Fragment, { children: action.component?.({ message }) }, action.label) : /* @__PURE__ */ jsxs18(\n \"button\",\n {\n className: cn(\n \"alq--callout-action\",\n {\n \"alq--callout-animate-action\": isLoading\n },\n {\n \"alq--callout-clicked-action\": isClicked\n }\n ),\n type: \"button\",\n title: action.label,\n onClick: () => {\n setIsLoading(true);\n action.onClick(message).then(() => {\n setIsLoading(false);\n setIsClicked(true);\n });\n },\n children: [\n /* @__PURE__ */ jsx40(\n \"span\",\n {\n className: cn(\"alq-action-icon-wrapper\", {\n \"alq--callout-animate-action\": isLoading\n }),\n children: action.icon\n }\n ),\n /* @__PURE__ */ jsx40(\"label\", { children: action.label })\n ]\n },\n action.label\n )) });\n});\nvar CallOutResponse = React33.forwardRef(\n ({\n className,\n children,\n role,\n additionalInfo,\n toggleAdditionalInfo,\n isStreaming,\n handleIsTextStreaming,\n ...props\n }, ref) => {\n const [isAdditionalInfoOpen, setIsAdditionalInfoOpen] = React33.useState(false);\n const content = String(children || \"\");\n const shouldStream = role === \"assistant\" && isStreaming;\n const displayedContent = useTextStreaming(\n content,\n shouldStream ?? false,\n handleIsTextStreaming\n );\n const showAsToggle = additionalInfo && toggleAdditionalInfo;\n const showInline = additionalInfo && !toggleAdditionalInfo;\n return /* @__PURE__ */ jsxs18(\n \"div\",\n {\n ref,\n \"data-role\": role,\n className: cn(\n \"alq--callout-response\",\n \"max-w-none\",\n \"text-foreground\",\n className\n ),\n ...props,\n children: [\n /* @__PURE__ */ jsx40(RichText, { content: displayedContent }),\n showInline && /* @__PURE__ */ jsx40(\n \"div\",\n {\n className: cn(\n \"alq--callout-response-additional-info\",\n \"mt-2 text-sm text-muted-foreground whitespace-pre-line\",\n \"border-t border-border pt-2\"\n ),\n children: additionalInfo\n }\n ),\n showAsToggle && /* @__PURE__ */ jsxs18(\n \"div\",\n {\n className: cn(\n \"alq--callout-response-additional-info\",\n \"mt-2 border-t border-border pt-2\"\n ),\n children: [\n /* @__PURE__ */ jsxs18(\n Button,\n {\n type: \"button\",\n variant: \"ghost\",\n size: \"sm\",\n className: \"h-auto py-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-muted-foreground -ml-1\",\n onClick: () => setIsAdditionalInfoOpen((prev) => !prev),\n \"aria-expanded\": isAdditionalInfoOpen,\n children: [\n isAdditionalInfoOpen ? /* @__PURE__ */ jsx40(ChevronUp2, { className: \"h-4 w-4 mr-1.5 shrink-0 transition-transform\" }) : /* @__PURE__ */ jsx40(ChevronDown3, { className: \"h-4 w-4 mr-1.5 shrink-0 transition-transform\" }),\n isAdditionalInfoOpen ? \"Hide details\" : \"Show details\"\n ]\n }\n ),\n /* @__PURE__ */ jsx40(\n \"div\",\n {\n className: cn(\n \"grid transition-[grid-template-rows] duration-200 ease-out\",\n isAdditionalInfoOpen ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\"\n ),\n children: /* @__PURE__ */ jsx40(\"div\", { className: \"overflow-hidden\", children: /* @__PURE__ */ jsx40(\"div\", { className: \"text-sm text-muted-foreground pt-1 whitespace-pre-line\", children: additionalInfo }) })\n }\n )\n ]\n }\n )\n ]\n }\n );\n }\n);\nCallOut.displayName = \"CallOut\";\nCallOutDate.displayName = \"CallOutDate\";\nCallOutActions.displayName = \"CallOutActions\";\nCallOutResponse.displayName = \"CallOutResponse\";\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n AssistantButton,\n CallOut,\n CallOutActions,\n CallOutDate,\n CallOutResponse,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n PageContainer,\n RatingComment,\n RatingStars,\n RatingThumbs,\n Sidebar,\n SidebarFooter,\n Toaster as SonnerToaster,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n navigationMenuTriggerStyle\n};\n","import { forwardRef } from \"react\";\nimport { cn } from \"../../lib/utils\";\n\ninterface PageContainerProps extends React.HTMLAttributes<HTMLDivElement> {}\nconst PageContainer = forwardRef<HTMLDivElement, PageContainerProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(className, \"alq--page-container\")}\n {...props}\n />\n );\n }\n);\nPageContainer.displayName = \"PageContainer\";\nexport { PageContainer };\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\nexport function parseTextToSpeech(content: string) {\n return content.replace(/[^\\p{L}\\p{N}\\s.,:]/gu, '');\n}\n\n\nexport function blobToBase64(blob: Blob): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n};\n\nexport const truncateString = (str: string, maxLength: number): string => {\n if (str.length <= maxLength) {\n return str;\n }\n return str.slice(0, maxLength) + \"...\";\n};\n\nexport function getCookies(name: string) {\n if (typeof document === 'undefined') return undefined;\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop()?.split(\";\").shift();\n}\n\nexport function hasToolResult(data: any) {\n return data?.tool_output?.result && Object.keys(data.tool_output.result).length > 0;\n}\n\nexport function getErrorMessage(error_code?: string) {\n switch (error_code) {\n case \"STREAM_ERROR\":\n return \"Connection lost. Please try again.\";\n case \"REQUEST_ERROR\":\n return \"There was a problem with your request. Please try again.\";\n case \"401\":\n case \"403\":\n return \"You are not authorized. Please try again.\";\n case \"404\":\n return \"Resource not found.\";\n case \"500\":\n return \"Server error. Please try again later.\";\n default:\n return \"We have an internal error, please try again later.\";\n }\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../../lib/utils\";\nimport { buttonVariants } from \"../atoms/ui/button\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.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));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.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 </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\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);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\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);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\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 { useState, useEffect } from \"react\";\nimport { LucideIcon } from \"lucide-react\";\nimport { Button } from \"../atoms\";\nimport { cn } from \"../../lib/utils\";\n\ninterface Suggestion {\n label: string;\n icon: LucideIcon;\n action: () => void;\n}\n\ninterface AssistantSuggestionsProps {\n suggestions: Suggestion[];\n className?: string;\n showSuggestions: boolean;\n}\n\nconst AssistantSuggestions = React.forwardRef<\n HTMLDivElement,\n AssistantSuggestionsProps\n>(({ suggestions, showSuggestions, className }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"absolute bottom-[calc(100%+0.5rem)] right-0 pb-2 mb-4 alq--assistant-suggestions-container\",\n \"transition-all duration-300\",\n showSuggestions\n ? \"opacity-100 translate-y-0\"\n : \"opacity-0 translate-y-4\",\n className\n )}\n >\n <div className=\"rounded-lg p-2 pr-0 w-64\">\n {suggestions.map((suggestion, index) => (\n <button\n key={index}\n onClick={() => suggestion.action?.()}\n style={{\n transitionDelay: showSuggestions ? `${index * 50}ms` : \"0ms\",\n }}\n className={cn(\n \"bg-background flex items-center gap-2 border p-2 pr-4 my-2 rounded-full ml-auto\",\n \"text-primary hover:bg-secondary\",\n \"transition-all duration-100\",\n \"origin-bottom w-fit\",\n \"alq--assistant-suggestion\",\n showSuggestions\n ? \"opacity-100 translate-y-0\"\n : \"opacity-0 translate-y-4\"\n )}\n >\n <suggestion.icon className=\"w-5 h-5 text-primary\" />\n <span className=\"text-xs whitespace-nowrap font-normal\">\n {suggestion.label}\n </span>\n </button>\n ))}\n </div>\n </div>\n );\n});\n\nAssistantSuggestions.displayName = \"Suggestions\";\n\ninterface AssistantButtonProps {\n icon: LucideIcon;\n clickAction: () => void;\n className?: string;\n suggestions?: Suggestion[];\n}\n\nexport const AssistantButton = React.forwardRef<\n HTMLDivElement,\n AssistantButtonProps\n>(\n (\n {\n icon: Icon,\n clickAction,\n className,\n suggestions = [],\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = useState(false);\n const [showSuggestions, setShowSuggestions] = useState(false);\n\n const handleMouseEnter = () => {\n setIsVisible(true);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setShowSuggestions(true);\n });\n });\n };\n\n const handleMouseLeave = () => {\n setShowSuggestions(false);\n setTimeout(() => setIsVisible(false), 300);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n \"fixed bottom-8 right-4 z-50\",\n \"alq--assistant-button-container\",\n className\n )}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className=\"relative group\">\n {isVisible && suggestions.length > 0 && (\n <AssistantSuggestions\n suggestions={suggestions}\n showSuggestions={showSuggestions}\n />\n )}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={cn(\n \"fixed hover:bg-opacity-70 transition-all duration-300\",\n \"bottom-4 h-12 w-12 right-4 z-50 rounded-full p-2\",\n \"shadow-md\",\n \"hover:shadow-lg\",\n showSuggestions ? \"scale-110\" : \"hover:scale-105\",\n \"alq--assistant-button\"\n )}\n onClick={clickAction}\n >\n <Icon\n style={{ width: \"22px\", height: \"22px\" }}\n className=\"text-primary\"\n />\n </Button>\n </div>\n </div>\n );\n }\n);\n\nAssistantButton.displayName = \"AssistantButton\";\n","import * as React from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\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-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 className,\n \"alq--textarea\"\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import { forwardRef } from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\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-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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 className,\n \"alq--input\"\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\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 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 \"alq--select\"\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-96 min-w-[8rem] overflow-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\",\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\"\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","\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"../../../lib/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import * as React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { cn } from \"../../../lib/utils\";\n\ninterface RichTextProps extends React.HTMLAttributes<HTMLDivElement> {\n content: string;\n className?: string;\n}\n\nfunction RichText({ content, className }: RichTextProps) {\n return (\n <ReactMarkdown className={cn(className)} remarkPlugins={[remarkGfm]}>\n {content}\n </ReactMarkdown>\n );\n}\n\nexport { RichText };\n","import { cn } from \"../../../lib/utils\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted text-muted-foreground\", className, \"alq--skeleton\")}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\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-lg\",\n \" border\",\n \"bg-card\",\n \"text-card-foreground\",\n \"shadow-raised\",\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 HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"alq--typography-heading4\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\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 {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-border bg-background text-foreground alq--drawer-content\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className, \"alq--drawer-header\")}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className, \"alq--drawer-footer\")}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n \"alq--drawer-title\"\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className, \"alq--drawer-description\")}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","import { cn } from \"../../../../lib/utils\";\nimport { forwardRef } from \"react\";\n\nexport interface TypographyProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\";\n typeStyle:\n | \"display\"\n | \"heading1\"\n | \"heading2\"\n | \"heading3\"\n | \"heading4\"\n | \"small\"\n | \"tiny\";\n}\n\nconst Typography = forwardRef<HTMLDivElement, TypographyProps>(\n ({ as: Component = \"p\", typeStyle, ...props }, ref) => {\n return (\n <Component\n {...props}\n className={cn(props.className, `alq--typography-${typeStyle}`)}\n ref={ref}\n />\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography };\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, \"alq--badge\")} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\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 * 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, \"alq--label\")}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\nimport * 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 \"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 \"alq--checkbox\"\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-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\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3\",\n sm: \"h-9 px-2.5\",\n lg: \"h-11 px-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }), \"alq--toggle\")}\n {...props}\n />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\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-44 touch-none select-none items-center\",\n className,\n \"alq--slider\"\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-44 grow overflow-hidden rounded-full bg-primary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-secondary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-gray 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 </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","\"use client\";\n\nimport * 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-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 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 \"alq--switch\"\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-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","\"use client\";\n\nimport * 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 ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md p-1 text-muted-foreground\",\n className,\n \"alq--tabs\"\n )}\n {...props}\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 ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:border-b-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-b-2 data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\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 ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\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 text-foreground bg-background\", className, \"alq--table\")}\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 border-border bg-muted\", className, \"alq--table-header\")} {...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 [&_tr]:border-b border-border\", className, \"alq--table-body\")}\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 border-border bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n \"alq--table-footer\"\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","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\ninterface BreadcrumbItemProps {\n label: string;\n href?: string;\n current?: boolean;\n}\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\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 ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\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</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\n\nimport * 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\",\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\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Dialog, DialogContent } from \"./dialog\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\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 { 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 \"alq--dialog-content\"\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 text-foreground\",\n className,\n \"alq--dialog-header\"\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 text-foreground\",\n className,\n \"alq--dialog-title\"\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 DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n destructive:\n \"destructive group border-destructive bg-destructive text-destructive-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n );\n});\nToast.displayName = ToastPrimitives.Root.displayName;\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold\", className)}\n {...props}\n />\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-sm opacity-90\", className)}\n {...props}\n />\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n","// Loader.tsx\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../../lib/utils\";\nimport { Loader2 } from \"lucide-react\";\n\nconst loaderVariants = cva(\n \"flex justify-center items-center w-full\",\n {\n variants: {\n size: {\n small: \"h-6 w-6\",\n medium: \"h-8 w-8\",\n large: \"h-12 w-12\",\n xl: \"h-24 w-24\",\n },\n colorVariant: {\n default: \"text-primary\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n destructive: \"text-destructive\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n colorVariant: \"default\",\n },\n }\n);\n\ninterface LoaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof loaderVariants> {}\n\nconst Loader = React.forwardRef<HTMLDivElement, LoaderProps>(\n (\n { className, size, colorVariant, ...props },\n ref\n ) => (\n <div\n ref={ref}\n className={cn(loaderVariants({ size, colorVariant }), \"flex justify-center items-center h-full w-full\", className)}\n {...props}\n >\n <Loader2 className=\"animate-spin\" />\n </div>\n )\n);\n\nLoader.displayName = \"Loader\";\n\nexport { Loader };","\"use client\"\n\nimport * 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>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\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 \"alq--separator\"\n )}\n {...props}\n />\n))\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type {\n ToastActionElement,\n ToastProps,\n} from \"../../components/atoms/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useToast } from \"../../hooks/use-toast\";\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from \"./toast\";\n\nfunction Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }: any) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n\nexport { Toaster };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { Loader } from \"..\";\nimport { cn } from \"../../../lib/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nconst thinkIndicatorVariants = cva(\n \"flex items-center gap-3\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n primary: \"text-primary\",\n secondary: \"text-secondary\",\n },\n size: {\n default: \"gap-3\",\n sm: \"gap-2\",\n lg: \"gap-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ThinkIndicatorProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof thinkIndicatorVariants> {\n thoughts?: string[];\n interval?: number;\n loader?: React.ReactNode;\n}\n\nexport const ThinkIndicator = React.forwardRef<HTMLDivElement, ThinkIndicatorProps>(\n ({ \n className, \n variant,\n size,\n thoughts = [\n \"Analyzing your request...\",\n \"Processing information...\",\n \"Formulating response...\",\n ],\n interval = 5000, \n loader,\n ...props \n }, ref) => {\n const [currentThoughtIndex, setCurrentThoughtIndex] = useState<number>(0);\n const [isAnimating, setIsAnimating] = useState<boolean>(false);\n\n useEffect(() => {\n const timer = setInterval(() => {\n setIsAnimating(true);\n setTimeout(() => {\n setCurrentThoughtIndex((prev) => {\n return prev < thoughts.length - 1 ? prev + 1 : prev;\n });\n setIsAnimating(false);\n }, 300);\n }, interval);\n\n if (currentThoughtIndex === thoughts.length - 1) {\n clearInterval(timer);\n }\n\n return () => clearInterval(timer);\n }, [thoughts, interval, currentThoughtIndex]);\n\n return (\n <div\n ref={ref}\n className={cn(thinkIndicatorVariants({ variant, size }), className, \"alq--think-indicator\")}\n {...props}\n >\n {loader || (\n <Loader \n className={cn(\n size === \"sm\" ? \"h-3 w-3\" : size === \"lg\" ? \"h-5 w-5\" : \"h-4 w-4\"\n )} \n />\n )}\n <div\n className={cn(\n \"alq--think-indicator-text\",\n \"transition-all duration-300\",\n isAnimating ? \"opacity-0 -translate-y-2\" : \"opacity-100 translate-y-0\"\n )}\n >\n {thoughts[currentThoughtIndex]}\n </div>\n </div>\n );\n }\n);\n\nThinkIndicator.displayName = \"ThinkIndicator\";\n\nexport { thinkIndicatorVariants };","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/atoms/ui/button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n }\n);\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n );\n});\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-left-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-right-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\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-10 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-[active]:bg-accent/50 data-[state=open]:bg-accent/50\"\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-200 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-lg 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 { LucideIcon } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ScrollArea, Button } from \"../atoms\";\n\nconst sidebarVariants = cva(\n \"flex flex-col border-r\",\n {\n variants: {\n size: {\n sm: \"w-48\",\n default: \"w-64\",\n lg: \"w-72\"\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n);\n\nexport interface SidebarItem {\n name: string;\n icon?: LucideIcon;\n disabled?: boolean;\n isLink?: boolean;\n link?: string;\n}\n\ntype SidebarBaseProps = {\n items: SidebarItem[];\n selectedSection?: SidebarItem;\n onSelect?: (item: SidebarItem) => void;\n footerContent?: React.ReactNode;\n selectedVariant?: \"default\" | \"secondary\" | \"ghost\" | \"link\";\n defaultVariant?: \"default\" | \"secondary\" | \"ghost\" | \"link\";\n buttonClassName?: string;\n}\n\nexport interface SidebarProps \n extends SidebarBaseProps,\n Omit<React.HTMLAttributes<HTMLDivElement>, keyof SidebarBaseProps>,\n VariantProps<typeof sidebarVariants> {}\n\nexport const SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"p-4\", className)}\n {...props}\n >\n {children}\n </div>\n));\nSidebarFooter.displayName = \"SidebarFooter\";\n\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n ({ \n className, \n items, \n selectedSection, \n onSelect, \n footerContent,\n size = \"default\",\n selectedVariant = \"secondary\",\n defaultVariant = \"ghost\",\n buttonClassName,\n ...props \n }, ref) => {\n return (\n <div className={cn(className, \"alq--navigation-sidebar h-full\")} ref={ref} {...props}>\n <aside className={cn(sidebarVariants({ size }), \"h-full\")}>\n <ScrollArea className=\"flex-grow justify-between\">\n <div className=\"flex flex-col gap-2 p-4\">\n {items.map((item) => (\n <Button\n key={item.name}\n variant={selectedSection?.name === item.name ? selectedVariant : defaultVariant}\n className={cn(\"justify-start\", buttonClassName)}\n disabled={item.disabled}\n onClick={() => {\n if (onSelect) {\n onSelect(item);\n }\n }}\n >\n {item.icon && <item.icon className=\"mr-2 h-4 w-4\" />}\n {item.name}\n </Button>\n ))}\n </div>\n </ScrollArea>\n {footerContent && (\n <SidebarFooter>\n {footerContent}\n </SidebarFooter>\n )}\n </aside>\n </div>\n );\n }\n);","\"use client\";\nimport * as React from \"react\";\nimport { Toaster as Sonner } from \"sonner\";\nimport { useAlquimiaTheme } from '../../providers/theme-context';\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useAlquimiaTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n );\n};\nexport { Toaster as SonnerToaster };\n","\"use client\";\nimport { createContext, useContext } from 'react';\n\ninterface ThemeContextValue {\n theme: string;\n setTheme: (theme: string) => void;\n}\n\nexport const ThemeContext = createContext<ThemeContextValue>({\n theme: 'system',\n setTheme: () => {},\n});\n\nexport function useAlquimiaTheme() {\n return useContext(ThemeContext);\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\nimport { Star } from \"lucide-react\"\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../atoms\";\n\nconst TooltipProvider = TooltipPrimitive.Provider\nconst Tooltip = TooltipPrimitive.Root\nconst TooltipTrigger = TooltipPrimitive.Trigger\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.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 shadow-lg 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))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\ninterface StarColors {\n fill: string\n stroke: string\n}\n\ninterface RatingStarsProps {\n currentRating: number\n isLoading: boolean\n onRate: (rating: number) => void\n className?: string\n}\n\nconst StarRating = React.forwardRef<\n HTMLDivElement,\n { rating: number; onRate: (r: number) => void }\n>(({ rating, onRate }, ref) => (\n <div ref={ref} className=\"flex\">\n {[1, 2, 3, 4, 5].map((star) => (\n <Button\n key={star}\n onClick={() => onRate(star)}\n variant=\"link\"\n className=\"p-1 transition-colors [&_svg]:size-5 h-5\"\n aria-label={`Rate ${star} star${star !== 1 ? \"s\" : \"\"}`}\n >\n <Star\n className={cn(\n \"w-5 h-5\",\n star <= rating ? \"alq-rating-star-active fill-current stroke-current\" : \"alq-rating-star-inactive\",\n )}\n />\n </Button>\n ))}\n </div>\n));\nStarRating.displayName = \"StarRating\"\n\nexport const RatingStars = React.forwardRef<\n HTMLButtonElement,\n RatingStarsProps\n>(({\n currentRating = 0,\n onRate,\n className,\n isLoading\n}, ref) => {\n const [open, setOpen] = React.useState(false)\n const [animate, setAnimate] = React.useState(false)\n\n const handleRate = (rating: number) => {\n onRate(rating)\n setOpen(false)\n }\n\n React.useEffect(() => {\n if (currentRating > 0) {\n setAnimate(true)\n const timer = setTimeout(() => setAnimate(false), 150)\n return () => clearTimeout(timer)\n }\n }, [currentRating])\n\n const hasRated = currentRating > 0\n\n return (\n <TooltipProvider>\n <Tooltip open={open} onOpenChange={setOpen}>\n <TooltipTrigger asChild>\n <Button\n ref={ref}\n variant=\"link\"\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium [&_svg]:size-5 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 disabled={isLoading}\n onClick={() => setOpen(!open)}\n >\n <Star \n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && \"animate-ping\",\n isLoading && \"animate-pulse\",\n hasRated ? \"alq-rating-star-active fill-current stroke-current\" : \"alq-rating-star-inactive\",\n )}\n />\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"top\" align=\"center\" className=\"p-0\">\n <div className=\"p-2 bg-background\">\n <StarRating \n rating={currentRating} \n onRate={handleRate}\n />\n </div>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )\n})\nRatingStars.displayName = \"RatingStars\"\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { ThumbsUp, ThumbsDown } from \"lucide-react\"\nimport { Button } from \"../atoms\";\nimport { cn } from \"../../lib/utils\";\n\ninterface RatingThumbsProps {\n currentRating: string\n isLoading: boolean\n onRate: (rating: \"thumbsUp\" | \"thumbsDown\" | \"\") => void\n direction?: \"row\" | \"column\"\n className?: string\n}\n\nexport const RatingThumbs = React.forwardRef<HTMLDivElement, RatingThumbsProps>(\n (\n {\n currentRating,\n onRate,\n direction = \"row\",\n className,\n isLoading\n },\n ref\n ) => {\n const [animate, setAnimate] = React.useState(false);\n\n React.useEffect(() => {\n if (currentRating) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"inline-flex\",\n direction === \"column\" ? \"flex-col\" : \"flex-row\",\n \"space-x-1 gap-4\",\n className\n )}\n >\n <Button\n variant=\"link\"\n onClick={() => onRate(currentRating === \"thumbsUp\" ? \"\" : \"thumbsUp\")}\n className={cn(\n \"p-1 transition-colors disabled:opacity-50 [&_svg]:size-5\",\n `hover:alq-rating-thumbsup/10`\n )}\n aria-label=\"Thumbs up\"\n disabled={isLoading}\n >\n <ThumbsUp\n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && currentRating === \"thumbsUp\" && \"animate-ping\",\n isLoading && \"animate-pulse\",\n currentRating === \"thumbsUp\" ? \"alq-rating-thumbsup fill-current stroke-current\" : \"alq-rating-thumbs-inactive fill-transparent\"\n )}\n />\n </Button>\n <Button\n variant=\"link\"\n onClick={() => onRate(currentRating === \"thumbsDown\" ? \"\" : \"thumbsDown\")}\n className={cn(\n \"p-1 transition-colors disabled:opacity-50 mt-0.5 [&_svg]:size-5\",\n `hover:bg-alq-rating-thumbsdown/10`\n )}\n aria-label=\"Thumbs down\"\n disabled={isLoading}\n >\n <ThumbsDown\n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && currentRating === \"thumbsDown\" && \"animate-ping\",\n isLoading && \"animate-pulse\",\n currentRating === \"thumbsDown\" ? \"alq-rating-thumbsdown fill-current stroke-current\" : \"alq-rating-thumbs-inactive fill-transparent\"\n )}\n />\n </Button>\n </div>\n );\n }\n);\n\nRatingThumbs.displayName = \"RatingThumbs\"","\"use client\"\n\nimport * as React from \"react\"\nimport { Book } from \"lucide-react\"\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"../atoms\"\nimport {\n Dialog,\n DialogTrigger,\n DialogContent,\n DialogOverlay,\n DialogTitle,\n} from \"../atoms/ui/dialog\";\n\ninterface RatingCommentProps {\n currentRating: string\n onRate: (comment: string) => void\n className?: string\n isLoading?: boolean\n}\n\nexport const RatingComment = React.forwardRef<HTMLButtonElement, RatingCommentProps>(\n ({ currentRating, onRate, className, isLoading }, ref) => {\n const [open, setOpen] = React.useState(false)\n const [comment, setComment] = React.useState(\"\")\n const [animate, setAnimate] = React.useState(false);\n\n const handleRate = () => {\n onRate(comment)\n setOpen(false)\n }\n\n React.useEffect(() => {\n if (currentRating) {\n setAnimate(true);\n const timer = setTimeout(() => setAnimate(false), 150);\n return () => clearTimeout(timer);\n }\n }, [currentRating]);\n\n React.useEffect(() => {\n setComment(\"\")\n }, [open])\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button\n ref={ref}\n variant=\"link\"\n size={\"lg\"}\n className={cn(\n \"inline-flex p-2 items-center justify-center rounded-md text-sm font-medium transition-colors [&_svg]:size-5 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring bg-transparent hover:none disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n disabled={isLoading}\n >\n <Book\n className={cn(\n \"w-5 h-5 transition-all duration-500\",\n animate && \"animate-ping\",\n isLoading && \"animate-pulse\",\n `${comment ? \"alq-rating-comment\" : \"stroke-gray-400\"}`\n )}\n />\n </Button>\n </DialogTrigger>\n <DialogOverlay className=\"fixed inset-0 bg-black bg-opacity-50\" />\n <DialogContent aria-describedby={undefined}>\n <DialogTitle className=\"text-lg font-medium\">\n Deja un comentario\n </DialogTitle>\n <textarea\n className=\"mt-4 w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-primary\"\n rows={4}\n value={comment}\n onChange={(e) => setComment(e.target.value)}\n />\n <div className=\"mt-4 flex justify-end\">\n <Button\n onClick={handleRate}\n disabled={!comment}\n >\n Enviar\n </Button>\n </div>\n </DialogContent>\n </Dialog>\n );\n }\n)\n\nRatingComment.displayName = \"RatingComment\"\n","import * as React from \"react\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button, RichText } from \"../atoms\";\nimport { Message } from \"ai\";\nimport { useTextStreaming } from \"../hooks/use-text-streaming\";\n\nexport interface CallOutMessage {\n id: string;\n role: \"user\" | \"assistant\";\n content: string;\n timestamp: Date;\n}\n\ninterface CallOutActionProps {\n label: string;\n icon: React.ReactNode;\n onClick: (message?: Message) => Promise<void>;\n custom?: boolean;\n component?: (props: { message?: Message }) => React.ReactNode;\n}\n\nexport interface CallOutProps extends React.HTMLAttributes<HTMLDivElement> {\n message?: Message;\n}\n\nconst CallOut = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CallOutProps\n>(({ className, children, role, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"alq--callout-box\", className)}\n data-role={role}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nconst CallOutDate = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"alq--callout-date\",\n \"text-sm text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nconst CallOutActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n actions: CallOutActionProps[];\n role: \"user\" | \"assistant\";\n message?: Message;\n }\n>(({ className, actions, role, message, ...props }, ref) => {\n const [isLoading, setIsLoading] = React.useState(false);\n const [isClicked, setIsClicked] = React.useState(false);\n\n if (role === \"user\") {\n return null;\n }\n\n return (\n <div ref={ref} className={cn(\"alq--callout-actions\", className)} {...props}>\n {actions.map((action) => (\n action.custom ? (\n <React.Fragment key={action.label}>\n {action.component?.({ message })}\n </React.Fragment>\n ) : (\n <button\n key={action.label}\n className={cn(\n \"alq--callout-action\",\n {\n \"alq--callout-animate-action\": isLoading,\n },\n {\n \"alq--callout-clicked-action\": isClicked,\n }\n )}\n type=\"button\"\n title={action.label}\n onClick={() => {\n setIsLoading(true);\n action.onClick(message).then(() => {\n setIsLoading(false);\n setIsClicked(true);\n });\n }}\n >\n <span\n className={cn(\"alq-action-icon-wrapper\", {\n \"alq--callout-animate-action\": isLoading,\n })}\n >\n {action.icon}\n </span>\n <label>{action.label}</label>\n </button>\n )\n ))}\n </div>\n );\n});\n\nconst CallOutResponse = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n role: Message[\"role\"];\n additionalInfo?: string;\n toggleAdditionalInfo?: boolean;\n isStreaming?: boolean;\n handleIsTextStreaming?: (isStreaming: boolean) => void;\n }\n>(\n (\n {\n className,\n children,\n role,\n additionalInfo,\n toggleAdditionalInfo,\n isStreaming,\n handleIsTextStreaming,\n ...props\n },\n ref\n ) => {\n const [isAdditionalInfoOpen, setIsAdditionalInfoOpen] =\n React.useState(false);\n const content = String(children || \"\");\n const shouldStream = role === \"assistant\" && isStreaming;\n const displayedContent = useTextStreaming(\n content,\n shouldStream ?? false,\n handleIsTextStreaming\n );\n\n const showAsToggle = additionalInfo && toggleAdditionalInfo;\n const showInline = additionalInfo && !toggleAdditionalInfo;\n\n return (\n <div\n ref={ref}\n data-role={role}\n className={cn(\n \"alq--callout-response\",\n \"max-w-none\",\n \"text-foreground\",\n className\n )}\n {...props}\n >\n <RichText content={displayedContent} />\n {showInline && (\n <div\n className={cn(\n \"alq--callout-response-additional-info\",\n \"mt-2 text-sm text-muted-foreground whitespace-pre-line\",\n \"border-t border-border pt-2\"\n )}\n >\n {additionalInfo}\n </div>\n )}\n {showAsToggle && (\n <div\n className={cn(\n \"alq--callout-response-additional-info\",\n \"mt-2 border-t border-border pt-2\"\n )}\n >\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-auto py-1.5 px-0 text-xs text-muted-foreground hover:bg-transparent hover:text-muted-foreground -ml-1\"\n onClick={() => setIsAdditionalInfoOpen((prev) => !prev)}\n aria-expanded={isAdditionalInfoOpen}\n >\n {isAdditionalInfoOpen ? (\n <ChevronUp className=\"h-4 w-4 mr-1.5 shrink-0 transition-transform\" />\n ) : (\n <ChevronDown className=\"h-4 w-4 mr-1.5 shrink-0 transition-transform\" />\n )}\n {isAdditionalInfoOpen ? \"Hide details\" : \"Show details\"}\n </Button>\n <div\n className={cn(\n \"grid transition-[grid-template-rows] duration-200 ease-out\",\n isAdditionalInfoOpen ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\"\n )}\n >\n <div className=\"overflow-hidden\">\n <div className=\"text-sm text-muted-foreground pt-1 whitespace-pre-line\">\n {additionalInfo}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }\n);\n\nCallOut.displayName = \"CallOut\";\nCallOutDate.displayName = \"CallOutDate\";\nCallOutActions.displayName = \"CallOutActions\";\nCallOutResponse.displayName = \"CallOutResponse\";\nexport { CallOut, CallOutDate, CallOutResponse, CallOutActions };\n","import { useState, useEffect, useRef, useCallback } from \"react\";\n\nconst CHAR_DELAY = 15;\nconst PUNCTUATION_DELAY = 300;\n\nexport function useTextStreaming(\n content: string,\n shouldStream: boolean,\n handleIsTextStreaming?: (isStreaming: boolean) => void\n) {\n const [displayedText, setDisplayedText] = useState(\"\");\n const contentRef = useRef(content);\n const indexRef = useRef(0);\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n const hasStartedStreaming = useRef<boolean>(false);\n\n useEffect(() => {\n contentRef.current = content;\n if (hasStartedStreaming.current && !timerRef.current && indexRef.current < contentRef.current.length) {\n typeNext();\n }\n }, [content]);\n\n const typeNext = useCallback(() => {\n if (indexRef.current < contentRef.current.length) {\n const nextChar = contentRef.current.charAt(indexRef.current);\n setDisplayedText((prev) => prev + nextChar);\n indexRef.current++;\n\n const delay = /[.!?;:]/.test(nextChar) ? PUNCTUATION_DELAY : CHAR_DELAY;\n \n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n typeNext();\n }, delay);\n } else {\n handleIsTextStreaming?.(false);\n }\n }, []);\n\n useEffect(() => {\n if (!shouldStream && !hasStartedStreaming.current) {\n setDisplayedText(contentRef.current);\n indexRef.current = contentRef.current.length;\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n handleIsTextStreaming?.(false);\n } else {\n if (indexRef.current < contentRef.current.length && !timerRef.current) {\n handleIsTextStreaming?.(true);\n hasStartedStreaming.current = true;\n typeNext();\n }\n }\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [shouldStream, typeNext]);\n\n return displayedText;\n}\n\n"]}
|