@hanzo/ui
Version:
Multi-framework UI library with React, Vue, Svelte, and React Native support. Based on shadcn/ui with comprehensive framework coverage.
1,378 lines (1,357 loc) • 476 kB
JavaScript
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// primitives/index-next.ts
var index_next_exports = {};
__export(index_next_exports, {
AIAgentIcon: () => AIAgentIcon,
AISearchContentIcon: () => AISearchContentIcon,
Accordion: () => Accordion,
AccordionContent: () => AccordionContent,
AccordionItem: () => AccordionItem,
AccordionTrigger: () => AccordionTrigger,
ActionButton: () => action_button_default,
ActiveIcon: () => ActiveIcon,
AddAgentIcon: () => AddAgentIcon,
AddCryptoWalletIcon: () => AddCryptoWalletIcon,
AddNewFolderIcon: () => AddNewFolderIcon,
AgentIcon: () => AgentIcon,
AiTasksIcon: () => AiTasksIcon,
AisIcon: () => AisIcon,
Alert: () => Alert,
AlertDescription: () => AlertDescription,
AlertDialog: () => AlertDialog,
AlertDialogAction: () => AlertDialogAction,
AlertDialogCancel: () => AlertDialogCancel,
AlertDialogContent: () => AlertDialogContent,
AlertDialogDescription: () => AlertDialogDescription,
AlertDialogFooter: () => AlertDialogFooter,
AlertDialogHeader: () => AlertDialogHeader,
AlertDialogTitle: () => AlertDialogTitle,
AlertDialogTrigger: () => AlertDialogTrigger,
AlertTitle: () => AlertTitle,
AnthropicIcon: () => AnthropicIcon,
ApplyTypography: () => ApplyTypography,
ArchiveIcon: () => ArchiveIcon,
ArchivedIcon: () => ArchivedIcon,
ArrowRightIcon: () => ArrowRightIcon,
AspectRatio: () => aspect_ratio_default,
AttachmentIcon: () => AttachmentIcon,
Avatar: () => Avatar,
AvatarFallback: () => AvatarFallback,
AvatarImage: () => AvatarImage,
AyaCohereIcon: () => AyaCohereIcon,
AzureIcon: () => AzureIcon,
Breadcrumb: () => Breadcrumb,
BreadcrumbEllipsis: () => BreadcrumbEllipsis,
BreadcrumbItem: () => BreadcrumbItem,
BreadcrumbLink: () => BreadcrumbLink,
BreadcrumbList: () => BreadcrumbList,
BreadcrumbPage: () => BreadcrumbPage,
BreadcrumbSeparator: () => BreadcrumbSeparator,
BreakpointIndicator: () => breakpoint_indicator_default,
BrowseSubscriptionIcon: () => BrowseSubscriptionIcon,
Button: () => button_default,
Calendar: () => calendar_default,
Card: () => Card,
CardContent: () => CardContent,
CardDescription: () => CardDescription,
CardFooter: () => CardFooter,
CardHeader: () => CardHeader,
CardTitle: () => CardTitle,
Carousel: () => Carousel,
CarouselContent: () => CarouselContent,
CarouselItem: () => CarouselItem,
CarouselNext: () => CarouselNext,
CarouselPrevious: () => CarouselPrevious,
CategoryIcon: () => CategoryIcon,
ChatBubbleIcon: () => ChatBubbleIcon,
ChatInput: () => ChatInput,
ChatInputArea: () => ChatInputArea,
ChatSettingsIcon: () => ChatSettingsIcon,
CloudModelIcon: () => CloudModelIcon,
Collapsible: () => Collapsible,
CollapsibleContent: () => CollapsibleContent2,
CollapsibleTrigger: () => CollapsibleTrigger2,
Combobox: () => Combobox,
Command: () => Command,
CommandDialog: () => CommandDialog,
CommandEmpty: () => CommandEmpty,
CommandGroup: () => CommandGroup,
CommandInput: () => CommandInput,
CommandItem: () => CommandItem,
CommandList: () => CommandList,
CommandSeparator: () => CommandSeparator,
CommandShortcut: () => CommandShortcut,
ContextMenu: () => ContextMenu,
ContextMenuCheckboxItem: () => ContextMenuCheckboxItem,
ContextMenuContent: () => ContextMenuContent,
ContextMenuGroup: () => ContextMenuGroup,
ContextMenuItem: () => ContextMenuItem,
ContextMenuLabel: () => ContextMenuLabel,
ContextMenuPortal: () => ContextMenuPortal,
ContextMenuRadioGroup: () => ContextMenuRadioGroup,
ContextMenuRadioItem: () => ContextMenuRadioItem,
ContextMenuSeparator: () => ContextMenuSeparator,
ContextMenuShortcut: () => ContextMenuShortcut,
ContextMenuSub: () => ContextMenuSub,
ContextMenuSubContent: () => ContextMenuSubContent,
ContextMenuSubTrigger: () => ContextMenuSubTrigger,
ContextMenuTrigger: () => ContextMenuTrigger,
CopyToClipboardIcon: () => CopyToClipboardIcon,
CreateAIIcon: () => CreateAIIcon,
CryptoWalletIcon: () => CryptoWalletIcon,
DeepSeekIcon: () => DeepSeekIcon,
Dialog: () => Dialog,
DialogContent: () => DialogContent,
DialogDescription: () => DialogDescription,
DialogFooter: () => DialogFooter,
DialogHeader: () => DialogHeader,
DialogOverlay: () => DialogOverlay,
DialogPortal: () => DialogPortal,
DialogTitle: () => DialogTitle,
DialogTrigger: () => DialogTrigger,
DialogVideoController: () => dialog_video_controller_default,
DirectoryTypeIcon: () => DirectoryTypeIcon,
DisconnectIcon: () => DisconnectIcon,
DotsLoader: () => DotsLoader,
DownloadIcon: () => DownloadIcon,
Drawer: () => Drawer,
DrawerClose: () => DrawerClose,
DrawerContent: () => DrawerContent,
DrawerDescription: () => DrawerDescription,
DrawerFooter: () => DrawerFooter,
DrawerHeader: () => DrawerHeader,
DrawerOverlay: () => DrawerOverlay,
DrawerPortal: () => DrawerPortal,
DrawerTitle: () => DrawerTitle,
DrawerTrigger: () => DrawerTrigger,
DropdownMenu: () => DropdownMenu,
DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
DropdownMenuContent: () => DropdownMenuContent,
DropdownMenuGroup: () => DropdownMenuGroup,
DropdownMenuItem: () => DropdownMenuItem,
DropdownMenuLabel: () => DropdownMenuLabel,
DropdownMenuPortal: () => DropdownMenuPortal,
DropdownMenuRadioGroup: () => DropdownMenuRadioGroup,
DropdownMenuRadioItem: () => DropdownMenuRadioItem,
DropdownMenuSeparator: () => DropdownMenuSeparator,
DropdownMenuShortcut: () => DropdownMenuShortcut,
DropdownMenuSub: () => DropdownMenuSub,
DropdownMenuSubContent: () => DropdownMenuSubContent,
DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
DropdownMenuTrigger: () => DropdownMenuTrigger,
EmbeddingsGeneratedIcon: () => EmbeddingsGeneratedIcon,
EthereumIcon: () => EthereumIcon,
ExoIcon: () => ExoIcon,
ExportIcon: () => ExportIcon,
FileEmptyStateIcon: () => FileEmptyStateIcon,
FileList: () => FileList,
FileTypeIcon: () => FileTypeIcon,
FileUploader: () => FileUploader,
FilesIcon: () => FilesIcon,
Form: () => Form,
FormControl: () => FormControl,
FormDescription: () => FormDescription,
FormField: () => FormField,
FormItem: () => FormItem,
FormLabel: () => FormLabel,
FormMessage: () => FormMessage,
FormulaIcon: () => FormulaIcon,
GeminiIcon: () => GeminiIcon,
GenerateDocIcon: () => GenerateDocIcon,
GenerateFromWebIcon: () => GenerateFromWebIcon,
GoogleIcon: () => GoogleIcon,
GrokIcon: () => GrokIcon,
GroqIcon: () => GroqIcon,
HanzoCombinationMarkIcon: () => HanzoCombinationMarkIcon,
HanzoIcon: () => HanzoIcon,
HanzoLogoIcon: () => HanzoLogoIcon,
HanzoLogoSoloIcon: () => HanzoLogoSoloIcon,
HomeIcon: () => HomeIcon,
HoverCard: () => HoverCard,
HoverCardContent: () => HoverCardContent,
HoverCardTrigger: () => HoverCardTrigger,
Icons: () => icons_exports,
Image: () => image_default,
ImportIcon: () => ImportIcon,
InboxIcon: () => InboxIcon,
InlineIcon: () => inline_icon_default,
InputOTP: () => InputOTP,
InputOTPGroup: () => InputOTPGroup,
InputOTPSeparator: () => InputOTPSeparator,
InputOTPSlot: () => InputOTPSlot,
JobBubbleIcon: () => JobBubbleIcon,
JsonForm: () => json_form_default,
LinkElement: () => link_element_default,
ListBox: () => list_box_default,
LmStudioIcon: () => LmStudioIcon,
LoadingSpinner: () => loading_spinner_default,
LocalModelIcon: () => LocalModelIcon,
MCPIcon: () => MCPIcon,
MDXLink: () => mdx_link_default,
MarkdownText: () => MarkdownText,
MediaStack: () => media_stack_default,
MetaIcon: () => MetaIcon,
MetadataIcon: () => MetadataIcon,
MicrosoftIcon: () => MicrosoftIcon,
MistralIcon: () => MistralIcon,
MySubscriptionsIcon: () => MySubscriptionsIcon,
NavItems: () => nav_items_default,
NavigationMenu: () => NavigationMenu,
NavigationMenuContent: () => NavigationMenuContent,
NavigationMenuIndicator: () => NavigationMenuIndicator,
NavigationMenuItem: () => NavigationMenuItem,
NavigationMenuLink: () => NavigationMenuLink,
NavigationMenuList: () => NavigationMenuList,
NavigationMenuTrigger: () => NavigationMenuTrigger,
NavigationMenuViewport: () => NavigationMenuViewport,
NetworkAgentIcon: () => NetworkAgentIcon,
NotificationIcon: () => NotificationIcon,
OllamaIcon: () => OllamaIcon,
OpenAIIcon: () => OpenAIIcon,
OpenBMBIcon: () => OpenBMBIcon,
OpenRouterIcon: () => OpenRouterIcon,
PaperClipIcon: () => PaperClipIcon,
PartyIcon: () => PartyIcon,
PerplexityIcon: () => PerplexityIcon,
PlusIcon: () => PlusIcon,
Popover: () => Popover,
PopoverAnchor: () => PopoverAnchor,
PopoverContent: () => PopoverContent,
PopoverTrigger: () => PopoverTrigger,
PrettyJsonPrint: () => PrettyJsonPrint,
PromptLibraryIcon: () => PromptLibraryIcon,
PythonIcon: () => PythonIcon,
QrIcon: () => QrIcon,
QwenIcon: () => QwenIcon,
RadioGroup: () => RadioGroup3,
RadioGroupItem: () => RadioGroupItem,
ReactJsIcon: () => ReactJsIcon,
ReasoningIcon: () => ReasoningIcon,
ResizableHandle: () => ResizableHandle,
ResizablePanel: () => ResizablePanel,
ResizablePanelGroup: () => ResizablePanelGroup,
SaveIcon: () => SaveIcon,
ScheduledTasksComingSoonIcon: () => ScheduledTasksComingSoonIcon,
ScheduledTasksIcon: () => ScheduledTasksIcon,
ScrollArea: () => ScrollArea,
ScrollBar: () => ScrollBar,
SearchInput: () => SearchInput,
Select: () => Select,
SelectContent: () => SelectContent,
SelectGroup: () => SelectGroup,
SelectItem: () => SelectItem,
SelectLabel: () => SelectLabel,
SelectSeparator: () => SelectSeparator,
SelectTrigger: () => SelectTrigger,
SelectValue: () => SelectValue,
SendIcon: () => SendIcon,
SharedFolderIcon: () => SharedFolderIcon,
Sheet: () => Sheet,
SheetClose: () => SheetClose,
SheetContent: () => SheetContent,
SheetDescription: () => SheetDescription,
SheetFileIcon: () => SheetFileIcon,
SheetFooter: () => SheetFooter,
SheetHeader: () => SheetHeader,
SheetIcon: () => SheetIcon,
SheetOverlay: () => SheetOverlay,
SheetPortal: () => SheetPortal,
SheetTitle: () => SheetTitle,
SheetTrigger: () => SheetTrigger,
ShortcutsIcon: () => ShortcutsIcon,
SortingAToZ: () => SortingAToZ,
SortingZToA: () => SortingZToA,
StepIndicator: () => step_indicator_default,
StoreIcon: () => StoreIcon,
Table: () => Table,
TableBody: () => TableBody,
TableCaption: () => TableCaption,
TableCell: () => TableCell,
TableFooter: () => TableFooter,
TableHead: () => TableHead,
TableHeader: () => TableHeader,
TableRow: () => TableRow,
Tabs: () => Tabs,
TabsContent: () => TabsContent,
TabsList: () => TabsList,
TabsTrigger: () => TabsTrigger,
Toaster: () => Toaster,
TogetherAI: () => TogetherAI,
Toggle: () => Toggle,
ToggleGroup: () => ToggleGroup,
ToggleGroupItem: () => ToggleGroupItem,
ToolAssetsIcon: () => ToolAssetsIcon,
ToolsDisabledIcon: () => ToolsDisabledIcon,
ToolsIcon: () => ToolsIcon,
Tooltip: () => Tooltip,
TooltipArrow: () => TooltipArrow2,
TooltipContent: () => TooltipContent,
TooltipPortal: () => TooltipPortal,
TooltipProvider: () => TooltipProvider,
TooltipTrigger: () => TooltipTrigger,
TracingIcon: () => TracingIcon,
TypeScriptIcon: () => TypeScriptIcon,
USDCIcon: () => USDCIcon,
UnknownLanguageIcon: () => UnknownLanguageIcon,
UploadVectorResourceIcon: () => UploadVectorResourceIcon,
VideoPlayer: () => video_player_default,
WebSearchDisabledIcon: () => WebSearchDisabledIcon,
WebSearchIcon: () => WebSearchIcon,
YouTubeEmbed: () => youtube_embed_default,
buttonVariants: () => buttonVariants,
fileIconMap: () => fileIconMap,
navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
toast: () => import_sonner2.toast,
toggleVariants: () => toggleVariants,
useFormField: () => useFormField
});
module.exports = __toCommonJS(index_next_exports);
// primitives/accordion.tsx
var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"));
var import_lucide_react = require("lucide-react");
// src/utils.ts
var import_clsx = require("clsx");
var import_tailwind_merge = require("tailwind-merge");
function cn(...inputs) {
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
}
__name(cn, "cn");
// primitives/accordion.tsx
var import_jsx_runtime = require("react/jsx-runtime");
var Accordion = AccordionPrimitive.Root;
var AccordionItem = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionPrimitive.Item, { className: cn("", className), ref, ...props }), "AccordionItem");
AccordionItem.displayName = "AccordionItem";
var AccordionTrigger = /* @__PURE__ */ __name(({
className,
children,
hideArrow = false,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
AccordionPrimitive.Trigger,
{
className: cn(
"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
className
),
ref,
...props,
children: [
children,
hideArrow ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
]
}
) }), "AccordionTrigger");
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
var AccordionContent = /* @__PURE__ */ __name(({
className,
children,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
AccordionPrimitive.Content,
{
className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down w-full overflow-hidden text-sm transition-all",
ref,
...props,
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn("pt-0 pb-4", className), children })
}
), "AccordionContent");
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
// primitives/alert-dialog.tsx
var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"));
// primitives/button.tsx
var import_react_slot = require("@radix-ui/react-slot");
var import_class_variance_authority = require("class-variance-authority");
var import_lucide_react2 = require("lucide-react");
var React = __toESM(require("react"));
var import_jsx_runtime2 = require("react/jsx-runtime");
var buttonVariants = (0, import_class_variance_authority.cva)(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
{
variants: {
variant: {
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
ghost: "hover:bg-accent hover:text-accent-foreground",
link: "text-primary underline-offset-4 hover:underline",
// Keep the additional Hanzo variants for backward compatibility
primary: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
linkFG: "text-primary underline-offset-4 hover:underline",
linkMuted: "text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"
},
size: {
default: "h-9 px-4 py-2",
sm: "h-8 rounded-md px-3 text-xs",
lg: "h-10 rounded-md px-8",
icon: "h-9 w-9"
}
},
defaultVariants: {
variant: "default",
size: "default"
}
}
);
var Button = React.forwardRef(
({ className, variant, size: size2, asChild = false, isLoading = false, children, ...props }, ref) => {
const Comp = asChild ? import_react_slot.Slot : "button";
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
Comp,
{
className: cn(buttonVariants({ variant, size: size2, className })),
ref,
...props,
children: [
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
import_lucide_react2.Loader2,
{
className: cn("h-4 w-4 animate-spin", size2 !== "icon" && "mr-2")
}
) : null,
isLoading && size2 === "icon" ? null : children
]
}
);
}
);
Button.displayName = "Button";
var button_default = Button;
// primitives/alert-dialog.tsx
var import_jsx_runtime3 = require("react/jsx-runtime");
var AlertDialog = AlertDialogPrimitive.Root;
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
var AlertDialogPortal = AlertDialogPrimitive.Portal;
var AlertDialogOverlay = /* @__PURE__ */ __name(({
className,
children,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
AlertDialogPrimitive.Overlay,
{
className: cn(
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 backdrop-blur-sm",
"bg-bg-dark/90",
className
),
...props,
ref
}
), "AlertDialogOverlay");
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
var AlertDialogContent = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(AlertDialogPortal, { children: [
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(AlertDialogOverlay, {}),
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
AlertDialogPrimitive.Content,
{
className: cn(
"bg-bg-default 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 border-divider fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
className
),
ref,
...props
}
)
] }), "AlertDialogContent");
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
var AlertDialogHeader = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
"div",
{
className: cn(
"flex flex-col space-y-2 text-center sm:text-left",
className
),
...props
}
), "AlertDialogHeader");
AlertDialogHeader.displayName = "AlertDialogHeader";
var AlertDialogFooter = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cn("flex", className), ...props }), "AlertDialogFooter");
AlertDialogFooter.displayName = "AlertDialogFooter";
var AlertDialogTitle = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
AlertDialogPrimitive.Title,
{
className: cn("text-lg font-semibold", className),
ref,
...props
}
), "AlertDialogTitle");
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
var AlertDialogDescription = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
AlertDialogPrimitive.Description,
{
className: cn("text-text-secondary text-sm", className),
ref,
...props
}
), "AlertDialogDescription");
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
var AlertDialogAction = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
AlertDialogPrimitive.Action,
{
className: cn(
buttonVariants({ variant: "default", size: "sm" }),
className
),
ref,
...props
}
), "AlertDialogAction");
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
var AlertDialogCancel = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
AlertDialogPrimitive.Cancel,
{
className: cn(
buttonVariants({ variant: "outline", size: "sm" }),
className
),
ref,
...props
}
), "AlertDialogCancel");
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
// primitives/alert.tsx
var import_class_variance_authority2 = require("class-variance-authority");
var import_jsx_runtime4 = require("react/jsx-runtime");
var alertVariants = (0, import_class_variance_authority2.cva)(
"[&>svg]:text-text-default relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:top-4 [&>svg]:left-4 [&>svg+div]:translate-y-[-3px] [&>svg~*]:pl-7",
{
variants: {
variant: {
default: "bg-bg-tertiary text-text-default",
info: "text-text-secondary [&>svg]:text-text-secondary bg-gray-250 border-gray-100 border-gray-200",
destructive: "border-[#4d0408] bg-[#2d0607] text-[#ff9ea1] [&>svg]:text-[#ff9ea1]",
warning: "border-yellow-800 bg-yellow-900 text-yellow-400 [&>svg]:text-yellow-400",
success: "border-green-800 bg-green-900 text-green-400 [&>svg]:text-green-400",
download: "border-gray-800 bg-gray-900 text-cyan-400 [&>svg]:text-cyan-400"
}
},
defaultVariants: {
variant: "default"
}
}
);
var Alert = /* @__PURE__ */ __name(({ className, variant, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
"div",
{
className: cn(alertVariants({ variant }), className),
ref,
role: "alert",
...props
}
), "Alert");
Alert.displayName = "Alert";
var AlertTitle = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
"h5",
{
className: cn("mb-1 leading-none font-medium tracking-tight", className),
ref,
...props
}
), "AlertTitle");
AlertTitle.displayName = "AlertTitle";
var AlertDescription = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
"div",
{
className: cn("text-sm [&_p]:leading-relaxed", className),
ref,
...props
}
), "AlertDescription");
AlertDescription.displayName = "AlertDescription";
// primitives/avatar.tsx
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
var import_jsx_runtime5 = require("react/jsx-runtime");
var Avatar = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
AvatarPrimitive.Root,
{
className: cn(
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
className
),
ref,
...props
}
), "Avatar");
Avatar.displayName = AvatarPrimitive.Root.displayName;
var AvatarImage = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
AvatarPrimitive.Image,
{
className: cn("aspect-square h-full w-full", className),
ref,
...props
}
), "AvatarImage");
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
var AvatarFallback = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
AvatarPrimitive.Fallback,
{
className: cn(
"bg-muted flex h-full w-full items-center justify-center rounded-full",
className
),
ref,
...props
}
), "AvatarFallback");
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
// primitives/breadcrumb.tsx
var import_react_slot2 = require("@radix-ui/react-slot");
var import_lucide_react3 = require("lucide-react");
var import_jsx_runtime6 = require("react/jsx-runtime");
var Breadcrumb = /* @__PURE__ */ __name(({ ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("nav", { "aria-label": "breadcrumb", ref, ...props }), "Breadcrumb");
Breadcrumb.displayName = "Breadcrumb";
var BreadcrumbList = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
"ol",
{
className: cn(
"text-text-secondary flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
className
),
ref,
...props
}
), "BreadcrumbList");
BreadcrumbList.displayName = "BreadcrumbList";
var BreadcrumbItem = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
"li",
{
className: cn("inline-flex items-center gap-1.5", className),
ref,
...props
}
), "BreadcrumbItem");
BreadcrumbItem.displayName = "BreadcrumbItem";
var BreadcrumbLink = /* @__PURE__ */ __name(({
asChild,
className,
ref,
...props
}) => {
const Comp = asChild ? import_react_slot2.Slot : "a";
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
Comp,
{
className: cn("hover:text-text-default transition-colors", className),
ref,
...props
}
);
}, "BreadcrumbLink");
BreadcrumbLink.displayName = "BreadcrumbLink";
var BreadcrumbPage = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
"span",
{
"aria-current": "page",
"aria-disabled": "true",
className: cn("text-text-default font-normal", className),
ref,
role: "link",
...props
}
), "BreadcrumbPage");
BreadcrumbPage.displayName = "BreadcrumbPage";
var BreadcrumbSeparator = /* @__PURE__ */ __name(({
children,
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
"li",
{
"aria-hidden": "true",
className: cn("[&>svg]:h-4 [&>svg]:w-4", className),
role: "presentation",
...props,
children: children ?? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react3.ChevronRight, {})
}
), "BreadcrumbSeparator");
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
var BreadcrumbEllipsis = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
"span",
{
"aria-hidden": "true",
className: cn("flex h-9 w-9 items-center justify-center", className),
role: "presentation",
...props,
children: [
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react3.MoreHorizontal, { className: "h-4 w-4" }),
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "sr-only", children: "More" })
]
}
), "BreadcrumbEllipsis");
BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
// primitives/card.tsx
var import_jsx_runtime7 = require("react/jsx-runtime");
var Card = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
"div",
{
className: cn(
"bg-card text-card-foreground rounded-lg border shadow-xs",
className
),
ref,
...props
}
), "Card");
Card.displayName = "Card";
var CardHeader = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
"div",
{
className: cn("flex flex-col space-y-1.5 p-6", className),
ref,
...props
}
), "CardHeader");
CardHeader.displayName = "CardHeader";
var CardTitle = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
"h3",
{
className: cn(
"text-2xl leading-none font-semibold tracking-tight",
className
),
ref,
...props
}
), "CardTitle");
CardTitle.displayName = "CardTitle";
var CardDescription = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
"p",
{
className: cn("text-text-secondary text-sm", className),
ref,
...props
}
), "CardDescription");
CardDescription.displayName = "CardDescription";
var CardContent = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: cn("p-6 pt-0", className), ref, ...props }), "CardContent");
CardContent.displayName = "CardContent";
var CardFooter = /* @__PURE__ */ __name(({ className, ref, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
"div",
{
className: cn("flex items-center p-6 pt-0", className),
ref,
...props
}
), "CardFooter");
CardFooter.displayName = "CardFooter";
// primitives/carousel.tsx
var React2 = __toESM(require("react"));
var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
var import_lucide_react4 = require("lucide-react");
// util/copy-to-clipboard.ts
async function copyToClipboard(text) {
try {
await navigator.clipboard.writeText(text);
} catch {
const textarea = document.createElement("textarea");
textarea.style.position = "fixed";
textarea.style.top = "-9999px";
textarea.style.left = "-9999px";
textarea.innerText = text;
document.body.appendChild(textarea);
textarea.focus();
textarea.select();
document.execCommand("copy");
textarea.remove();
}
}
__name(copyToClipboard, "copyToClipboard");
// util/spread-to-transform.ts
function spreadToTransform(t) {
let transformStrings = [];
const scaleVal = "scale" in t ? t.scale : void 0;
if (scaleVal) {
if (typeof scaleVal === "number") {
transformStrings.push(`scale(${scaleVal})`);
} else if (Array.isArray(scaleVal) && scaleVal.length == 2 && typeof scaleVal[0] === "number") {
transformStrings.push(`scale(${scaleVal[0]}, ${scaleVal[1]})`);
} else {
throw new Error("parsing MediaTransform: Unrecognized value for 'scale'!");
}
}
return transformStrings.length > 0 ? { transform: transformStrings.join(" ") } : {};
}
__name(spreadToTransform, "spreadToTransform");
var spread_to_transform_default = spreadToTransform;
// util/index.ts
function constrain(value, minOrConstrainTo, max) {
if (typeof value === "number" && typeof minOrConstrainTo === "number" && typeof max === "number") {
return Math.min(Math.max(value, minOrConstrainTo), max);
}
if (typeof value === "object" && typeof minOrConstrainTo === "object") {
const dim = value;
const constrainTo = minOrConstrainTo;
const aspectRatio = dim.w / dim.h;
const constrainAspectRatio = constrainTo.w / constrainTo.h;
if (aspectRatio > constrainAspectRatio) {
return {
w: constrainTo.w,
h: constrainTo.w / aspectRatio
};
} else {
return {
w: constrainTo.h * aspectRatio,
h: constrainTo.h
};
}
}
throw new Error("Invalid parameters for constrain function");
}
__name(constrain, "constrain");
// primitives/carousel.tsx
var import_jsx_runtime8 = require("react/jsx-runtime");
var CarouselContext = React2.createContext(null);
var useCarousel = /* @__PURE__ */ __name(() => {
const service = React2.useContext(CarouselContext);
if (!service) {
throw new Error("useCarousel must be used within a <Carousel />");
}
return service;
}, "useCarousel");
var Carousel = React2.forwardRef(
({
orientation = "horizontal",
options,
setApi,
plugins,
className,
children,
onCarouselSelect,
...props
}, ref) => {
const [carouselRef, api] = (0, import_embla_carousel_react.default)({ ...options, axis: orientation === "horizontal" ? "x" : "y" }, plugins);
const [canScrollPrev, setCanScrollPrev] = React2.useState(false);
const [canScrollNext, setCanScrollNext] = React2.useState(false);
const onSelect = React2.useCallback((api2) => {
if (!api2) {
return;
}
setCanScrollPrev(api2.canScrollPrev());
setCanScrollNext(api2.canScrollNext());
if (onCarouselSelect) {
onCarouselSelect(api2);
}
}, []);
const scrollPrev = React2.useCallback(() => {
api?.scrollPrev();
}, [api]);
const scrollNext = React2.useCallback(() => {
api?.scrollNext();
}, [api]);
const handleKeyDown = React2.useCallback((event) => {
if (event.key === "ArrowLeft") {
event.preventDefault();
scrollPrev();
} else if (event.key === "ArrowRight") {
event.preventDefault();
scrollNext();
}
}, [scrollPrev, scrollNext]);
React2.useEffect(() => {
if (!api || !setApi) {
return;
}
setApi(api);
}, [api, setApi]);
React2.useEffect(() => {
if (!api) {
return;
}
onSelect(api);
api.on("reInit", onSelect);
api.on("select", onSelect);
return () => {
api?.off("select", onSelect);
};
}, [api, onSelect]);
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
CarouselContext.Provider,
{
value: {
carouselRef,
api,
options,
orientation: orientation || (options?.axis === "y" ? "vertical" : "horizontal"),
scrollPrev,
scrollNext,
canScrollPrev,
canScrollNext
},
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
"div",
{
ref,
onKeyDownCapture: handleKeyDown,
className: cn("relative", className),
role: "region",
"aria-roledescription": "carousel",
"data-vaul-no-drag": true,
...props,
children
}
)
}
);
}
);
Carousel.displayName = "Carousel";
var CarouselContent = React2.forwardRef(({ className, ...props }, ref) => {
const { carouselRef, orientation } = useCarousel();
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { ref: carouselRef, className: "overflow-hidden", "data-vaul-no-drag": true, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
"div",
{
ref,
className: cn(
"flex",
orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
className
),
...props
}
) });
});
CarouselContent.displayName = "CarouselContent";
var CarouselItem = React2.forwardRef(({ className, ...props }, ref) => {
const { orientation } = useCarousel();
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
"div",
{
ref,
role: "group",
"aria-roledescription": "slide",
"data-vaul-no-drag": true,
className: cn(
"min-w-0 shrink-0 grow-0 basis-full",
orientation === "horizontal" ? "pl-4" : "pt-4",
className
),
...props
}
);
});
CarouselItem.displayName = "CarouselItem";
var CarouselPrevious = React2.forwardRef(({ className, variant = "ghost", size: size2 = "icon", ...props }, ref) => {
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
button_default,
{
ref,
variant,
size: size2,
className: cn(
"absolute h-8 w-8 rounded-full",
orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
className
),
disabled: !canScrollPrev,
onClick: scrollPrev,
...props,
children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react4.ArrowLeft, { className: "h-4 w-4" }),
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "sr-only", children: "Previous slide" })
]
}
);
});
CarouselPrevious.displayName = "CarouselPrevious";
var CarouselNext = React2.forwardRef(({ className, variant = "ghost", size: size2 = "icon", ...props }, ref) => {
const { orientation, scrollNext, canScrollNext } = useCarousel();
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
button_default,
{
ref,
variant,
size: size2,
className: cn(
"absolute h-8 w-8 rounded-full",
orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
className
),
disabled: !canScrollNext,
onClick: scrollNext,
...props,
children: [
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react4.ArrowRight, { className: "h-4 w-4" }),
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "sr-only", children: "Next slide" })
]
}
);
});
CarouselNext.displayName = "CarouselNext";
// primitives/command.tsx
var import_cmdk = require("cmdk");
var import_lucide_react6 = require("lucide-react");
// primitives/dialog.tsx
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
var import_lucide_react5 = require("lucide-react");
var import_jsx_runtime9 = require("react/jsx-runtime");
var Dialog = DialogPrimitive.Root;
var DialogTrigger = DialogPrimitive.Trigger;
var DialogPortal = DialogPrimitive.Portal;
var DialogOverlay = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
DialogPrimitive.Overlay,
{
className: cn(
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
"bg-bg-dark/90",
className
),
...props
}
), "DialogOverlay");
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
var DialogContent = /* @__PURE__ */ __name(({
className,
children,
showCloseButton = false,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(DialogPortal, { children: [
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogOverlay, {}),
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
DialogPrimitive.Content,
{
className: cn(
"bg-bg-default 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 border-divider fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:rounded-lg md:w-full",
className
),
...props,
children: [
children,
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
DialogPrimitive.Close,
{
className: cn(
"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-text-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
!showCloseButton && "hidden"
),
children: [
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react5.X, { className: "h-4 w-4" }),
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "Close" })
]
}
)
]
}
)
] }), "DialogContent");
DialogContent.displayName = DialogPrimitive.Content.displayName;
var DialogHeader = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
"div",
{
className: cn(
"flex flex-col space-y-1.5 text-center sm:text-left",
className
),
...props
}
), "DialogHeader");
DialogHeader.displayName = "DialogHeader";
var DialogFooter = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
"div",
{
className: cn(
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
className
),
...props
}
), "DialogFooter");
DialogFooter.displayName = "DialogFooter";
var DialogTitle = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
DialogPrimitive.Title,
{
className: cn(
"text-lg leading-none font-semibold tracking-tight",
className
),
...props
}
), "DialogTitle");
DialogTitle.displayName = DialogPrimitive.Title.displayName;
var DialogDescription = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
DialogPrimitive.Description,
{
className: cn("text-text-secondary text-sm", className),
...props
}
), "DialogDescription");
DialogDescription.displayName = DialogPrimitive.Description.displayName;
// primitives/command.tsx
var import_jsx_runtime10 = require("react/jsx-runtime");
var Command = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
import_cmdk.Command,
{
className: cn(
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md [&_[cmdk-list]]:scroll-pt-0 [&_[cmdk-list]]:scroll-auto",
className
),
loop: true,
...props
}
), "Command");
Command.displayName = import_cmdk.Command.displayName;
var CommandDialog = /* @__PURE__ */ __name(({ children, ...props }) => {
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Command, { className: "[&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[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", children }) }) });
}, "CommandDialog");
var CommandInput = /* @__PURE__ */ __name(({
className,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react6.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
import_cmdk.Command.Input,
{
className: cn(
"placeholder:!text-text-placeholder flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
className
),
ref,
...props
}
)
] }), "CommandInput");
CommandInput.displayName = import_cmdk.Command.Input.displayName;
var CommandList = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
import_cmdk.Command.List,
{
className: cn(
"max-h-[300px] scroll-pt-0 overflow-x-hidden overflow-y-auto scroll-auto",
className
),
...props
}
), "CommandList");
CommandList.displayName = import_cmdk.Command.List.displayName;
var CommandEmpty = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_cmdk.Command.Empty, { className: "py-6 text-center text-sm", ...props }), "CommandEmpty");
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
var CommandGroup = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
import_cmdk.Command.Group,
{
className: cn(
"text-text-default [&_[cmdk-group-heading]]:text-text-default overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
className
),
...props
}
), "CommandGroup");
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
var CommandSeparator = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
import_cmdk.Command.Separator,
{
className: cn("bg-divider -mx-1 h-px", className),
...props
}
), "CommandSeparator");
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
var CommandItem = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
import_cmdk.Command.Item,
{
className: cn(
"hover:bg-bg-secondary data-[selected=true]:text-text-default data-[selected='true']:bg-bg-secondary relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
className
),
...props
}
), "CommandItem");
CommandItem.displayName = import_cmdk.Command.Item.displayName;
var CommandShortcut = /* @__PURE__ */ __name(({
className,
...props
}) => {
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
"span",
{
className: cn(
"text-text-secondary ml-auto text-xs tracking-widest",
className
),
...props
}
);
}, "CommandShortcut");
CommandShortcut.displayName = "CommandShortcut";
// primitives/collapsible.tsx
var CollapsiblePrimitive = __toESM(require("@radix-ui/react-collapsible"));
var Collapsible = CollapsiblePrimitive.Root;
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
// primitives/context-menu.tsx
var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
var import_lucide_react7 = require("lucide-react");
var import_jsx_runtime11 = require("react/jsx-runtime");
var ContextMenu = ContextMenuPrimitive.Root;
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
var ContextMenuGroup = ContextMenuPrimitive.Group;
var ContextMenuPortal = ContextMenuPrimitive.Portal;
var ContextMenuSub = ContextMenuPrimitive.Sub;
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
var ContextMenuSubTrigger = /* @__PURE__ */ __name(({
className,
inset,
children,
ref,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
ContextMenuPrimitive.SubTrigger,
{
className: cn(
"focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white",
inset && "pl-8",
className
),
ref,
...props,
children: [
children,
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react7.ChevronRight, { className: "ml-auto h-4 w-4" })
]
}
), "ContextMenuSubTrigger");
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
var ContextMenuSubContent = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
ContextMenuPrimitive.SubContent,
{
className: cn(
"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 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md",
className
),
...props
}
), "ContextMenuSubContent");
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
var ContextMenuContent = /* @__PURE__ */ __name(({
className,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
ContextMenuPrimitive.Content,
{
className: cn(
"animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md",
className
),
...props
}
) }), "ContextMenuContent");
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
var ContextMenuItem = /* @__PURE__ */ __name(({
className,
inset,
...props
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
ContextMenuPrimitive.Item,
{
className: cn(
"relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
inset && "pl-8",
className
),
...props
}
), "ContextMenuItem");
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
var ContextMenuCheckboxItem = /* @__PUR