@tetrascience-npm/tetrascience-react-ui 0.6.0-beta.86.1 → 0.6.0-beta.88.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"DataAppShell.js","sources":["../../../../src/components/composed/DataAppShell/DataAppShell.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport {\n ArrowLeft,\n HelpCircle,\n Menu,\n type LucideIcon,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { TDPLink } from \"@/components/composed/tdp-link\";\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface NavPage {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Lucide icon or custom React SVG component */\n icon?: LucideIcon | React.FC<React.SVGProps<SVGSVGElement>>;\n /** Whether this page is currently active */\n isActive?: boolean;\n /** Click handler */\n onClick?: () => void;\n}\n\nexport interface NavGroup {\n /** Optional group label shown as a section header in expanded nav */\n label?: string;\n /** Page entries in this group */\n pages: NavPage[];\n}\n\nexport interface BreadcrumbItemConfig {\n /** Display label */\n label: string;\n /** If provided, renders as a link */\n href?: string;\n /** Click handler (used when no href is provided) */\n onClick?: () => void;\n}\n\nexport interface DataAppShellProps {\n // -- Sidebar --\n /** Application name/abbreviation shown in the logo button */\n appName: string;\n /** Full application name shown in the app dropdown and mobile nav header */\n appFullName?: string;\n /** Custom icon element shown in the logo area */\n appIcon?: React.ReactNode;\n /** Optional version string shown below the app name/icon in the sidebar header */\n version?: string;\n /** Navigation groups; each group contains one or more pages */\n navGroups: NavGroup[];\n /** Callback when the app name / icon is clicked in the dropdown */\n onAppNameClick?: () => void;\n /** TDP path to navigate to when \"Back to TDP Platform\" is clicked (uses TDPLink — requires TdpNavigationProvider) */\n backToPlatformPath?: string;\n /** Fallback callback when \"Back to TDP Platform\" is clicked and no backToPlatformPath is set */\n onBackToPlatform?: () => void;\n /** Slot rendered at the bottom of the sidebar (e.g. user avatar + menu) */\n userMenu?: React.ReactNode;\n\n // -- Top nav --\n /** Breadcrumb items from root to current page */\n breadcrumbs?: BreadcrumbItemConfig[];\n /** Callback when the help button is clicked; omit to hide the button */\n onHelpClick?: () => void;\n /** Slot for right-side actions in the top nav (e.g. data count pills, next button) */\n headerActions?: React.ReactNode;\n\n // -- Shell --\n /** Slot rendered between the icon rail and the content (e.g. WorkflowPanel) */\n sidebarPanel?: React.ReactNode;\n /** Main content area */\n children: React.ReactNode;\n /** Additional className for the root container */\n className?: string;\n}\n\n// =============================================================================\n// Sidebar shared body (used by desktop rail + mobile Sheet)\n// =============================================================================\n\ninterface SidebarBodyProps\n extends Pick<\n DataAppShellProps,\n | \"appName\"\n | \"appFullName\"\n | \"appIcon\"\n | \"version\"\n | \"navGroups\"\n | \"onAppNameClick\"\n | \"backToPlatformPath\"\n | \"onBackToPlatform\"\n | \"userMenu\"\n > {\n /**\n * compact=true → narrow icon rail (60px): icons + tiny labels stacked, tooltips on hover\n * compact=false → expanded mobile sheet (220px): icon + label side-by-side rows\n */\n compact: boolean;\n /** Called after a nav page item is clicked — used by mobile sheet to close itself */\n onAfterNavClick?: () => void;\n}\n\nconst pageIconVariants = cva(\n \"flex items-center justify-center rounded-lg transition-colors duration-150\",\n {\n variants: {\n active: {\n true: \"bg-primary/10\",\n false: \"bg-transparent\",\n },\n compact: {\n true: \"w-9 h-9 hover:bg-muted\",\n false: \"w-8 h-8\",\n },\n },\n defaultVariants: { active: false, compact: true },\n }\n);\n\nfunction SidebarBody({\n appName,\n appFullName,\n appIcon,\n version,\n navGroups,\n onAppNameClick,\n backToPlatformPath,\n onBackToPlatform,\n userMenu,\n compact,\n onAfterNavClick,\n}: SidebarBodyProps) {\n return (\n <TooltipProvider>\n {/* ── Header: app icon / name + version ──────────────────────────────── */}\n <div\n className={cn(\n \"shrink-0 border-b border-sidebar-border\",\n compact ? \"flex justify-center py-2\" : \"flex px-3 py-2.5\"\n )}\n >\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"cursor-pointer bg-transparent border-none p-0\",\n !compact && \"flex items-center gap-3 w-full text-left\"\n )}\n >\n {/* Icon */}\n <span\n className={cn(\n \"flex items-center justify-center rounded-lg bg-sidebar-accent border border-sidebar-border font-bold text-foreground shrink-0\",\n compact ? \"w-9 h-9 text-[11px]\" : \"w-8 h-8 text-[10px]\"\n )}\n >\n {appIcon ?? appName}\n </span>\n\n {/* Name (expanded only — no version here) */}\n {!compact && (\n <span className=\"text-sm font-semibold text-foreground truncate leading-snug\">\n {appFullName ?? appName}\n </span>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent side=\"right\" align=\"start\" className=\"min-w-[220px]\">\n <div\n className=\"flex items-center gap-3 px-3 py-2.5 cursor-pointer\"\n onClick={onAppNameClick}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") onAppNameClick?.();\n }}\n >\n <div className=\"w-8 h-8 rounded-lg bg-sidebar-accent border border-sidebar-border flex items-center justify-center shrink-0\">\n <span className=\"text-[10px] font-bold text-foreground\">\n {appIcon ?? appName}\n </span>\n </div>\n <div className=\"flex flex-col min-w-0\">\n <span className=\"text-sm font-semibold text-foreground truncate\">\n {appFullName ?? appName}\n </span>\n {version && (\n <span className=\"text-[10px] text-muted-foreground/70 font-mono leading-none mt-0.5\">\n {version}\n </span>\n )}\n </div>\n </div>\n <DropdownMenuSeparator />\n <DropdownMenuItem className=\"gap-2.5 p-0\" asChild>\n {backToPlatformPath ? (\n <TDPLink\n path={backToPlatformPath}\n navigationOptions={{ newTab: false }}\n className=\"flex items-center gap-2.5 w-full px-2 py-1.5 !no-underline hover:!no-underline\"\n >\n <ArrowLeft className=\"w-4 h-4 text-muted-foreground\" />\n Back to TDP Platform\n </TDPLink>\n ) : (\n <button\n type=\"button\"\n className=\"flex items-center gap-2.5 w-full px-2 py-1.5 bg-transparent border-none cursor-pointer\"\n onClick={onBackToPlatform}\n >\n <ArrowLeft className=\"w-4 h-4 text-muted-foreground\" />\n Back to TDP Platform\n </button>\n )}\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n\n {/* ── Nav groups ──────────────────────────────────────────────────────── */}\n <div\n className={cn(\n \"flex-1 min-h-0\",\n compact\n ? \"flex flex-col items-center gap-1 px-2 pt-3 overflow-y-auto\"\n : \"flex flex-col py-2 overflow-y-auto\"\n )}\n >\n {navGroups.map((group, groupIndex) => (\n <React.Fragment key={`${groupIndex}-${group.label ?? \"\"}`}>\n {groupIndex > 0 && (\n <div\n className={cn(\n \"border-t border-sidebar-border\",\n compact ? \"w-8 my-2\" : \"mx-3 my-1\"\n )}\n />\n )}\n {!compact && group.label && (\n <span className=\"px-3 py-1 text-[10px] uppercase tracking-widest text-muted-foreground/60 font-semibold\">\n {group.label}\n </span>\n )}\n <div\n className={cn(\n \"flex flex-col\",\n compact ? \"items-center gap-3 w-full\" : \"gap-0.5\"\n )}\n >\n {group.pages.map((page) => {\n const Icon = page.icon;\n const iconEl = Icon ? (\n <Icon\n className={cn(\n \"w-5 h-5\",\n page.isActive ? \"text-primary\" : \"text-muted-foreground\"\n )}\n />\n ) : (\n <div\n className={cn(\n \"w-2 h-2 rounded-full\",\n page.isActive ? \"bg-primary\" : \"bg-muted-foreground/40\"\n )}\n />\n );\n\n const handleClick = () => {\n page.onClick?.();\n onAfterNavClick?.();\n };\n\n if (compact) {\n return (\n <Tooltip key={page.id}>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n className=\"flex flex-col items-center gap-0.5 cursor-pointer bg-transparent border-none p-0 w-full\"\n onClick={handleClick}\n >\n <div className={cn(pageIconVariants({ active: page.isActive ?? false, compact: true }))}>\n {iconEl}\n </div>\n <span\n className={cn(\n \"text-[10px] font-medium leading-tight text-center\",\n page.isActive\n ? \"text-foreground font-semibold\"\n : \"text-muted-foreground\"\n )}\n >\n {page.label}\n </span>\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">{page.label}</TooltipContent>\n </Tooltip>\n );\n }\n\n // Expanded (mobile) row\n return (\n <button\n key={page.id}\n type=\"button\"\n className={cn(\n \"flex items-center gap-3 w-full px-3 py-2 text-sm cursor-pointer bg-transparent border-none text-left transition-colors duration-150 rounded-md mx-1\",\n page.isActive\n ? \"bg-sidebar-accent text-sidebar-foreground font-medium\"\n : \"text-muted-foreground hover:bg-sidebar-accent/60 hover:text-foreground\"\n )}\n onClick={handleClick}\n >\n <div className={cn(pageIconVariants({ active: page.isActive ?? false, compact: false }))}>\n {iconEl}\n </div>\n <span>{page.label}</span>\n </button>\n );\n })}\n </div>\n </React.Fragment>\n ))}\n </div>\n\n {/* ── Bottom: user menu slot ──────────────────────────────────────────── */}\n {userMenu && (\n <div\n className={cn(\n \"shrink-0 border-t border-sidebar-border\",\n compact ? \"flex flex-col items-center py-2\" : \"p-2\"\n )}\n >\n {userMenu}\n </div>\n )}\n </TooltipProvider>\n );\n}\n\n// =============================================================================\n// Icon rail sidebar (desktop only — hidden on mobile)\n// =============================================================================\n\nfunction IconRailSidebar(props: Omit<SidebarBodyProps, \"compact\" | \"onAfterNavClick\">) {\n return (\n <nav\n data-slot=\"data-app-sidebar-rail\"\n aria-label=\"Application navigation\"\n className=\"hidden md:flex w-[60px] flex-col shrink-0 bg-sidebar border-r border-sidebar-border h-full z-50\"\n >\n <SidebarBody compact {...props} />\n </nav>\n );\n}\n\n// =============================================================================\n// Top nav\n// =============================================================================\n\nfunction TopNav({\n breadcrumbs = [],\n onHelpClick,\n headerActions,\n mobileTrigger,\n}: {\n breadcrumbs?: BreadcrumbItemConfig[];\n onHelpClick?: () => void;\n headerActions?: React.ReactNode;\n mobileTrigger?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"data-app-top-nav\"\n className=\"flex items-center h-10 px-3 bg-sidebar border-b border-sidebar-border sticky top-0 z-40 w-full gap-2\"\n >\n {/* Mobile hamburger (hidden on md+) */}\n {mobileTrigger}\n\n {/* Left: Breadcrumbs */}\n <Breadcrumb className=\"flex-1 min-w-0\">\n <BreadcrumbList>\n {breadcrumbs.map((item, index) => {\n const isLast = index === breadcrumbs.length - 1;\n const isClickable = !isLast && (!!item.href || !!item.onClick);\n return (\n <React.Fragment key={`${item.label}-${index}`}>\n {index > 0 && <BreadcrumbSeparator>/</BreadcrumbSeparator>}\n <BreadcrumbItem>\n {isLast ? (\n <BreadcrumbPage>{item.label}</BreadcrumbPage>\n ) : isClickable && item.href ? (\n <BreadcrumbLink href={item.href}>{item.label}</BreadcrumbLink>\n ) : isClickable && item.onClick ? (\n <button\n type=\"button\"\n className=\"text-[13px] text-primary hover:underline cursor-pointer bg-transparent border-none p-0 font-normal\"\n onClick={item.onClick}\n >\n {item.label}\n </button>\n ) : (\n <span className=\"text-[13px] text-muted-foreground\">{item.label}</span>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </Breadcrumb>\n\n {/* Right: header actions + help */}\n <div className=\"flex items-center gap-2 shrink-0\">\n {headerActions}\n\n {onHelpClick && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"w-7 h-7 text-muted-foreground\"\n onClick={onHelpClick}\n aria-label=\"Help\"\n >\n <HelpCircle className=\"w-4 h-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">Help</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n );\n}\n\n// =============================================================================\n// DataAppShell\n// =============================================================================\n\nfunction DataAppShell({\n appName,\n appFullName,\n appIcon,\n version,\n navGroups,\n onAppNameClick,\n backToPlatformPath,\n onBackToPlatform,\n userMenu,\n breadcrumbs = [],\n onHelpClick,\n headerActions,\n sidebarPanel,\n children,\n className,\n}: DataAppShellProps) {\n const [mobileNavOpen, setMobileNavOpen] = React.useState(false);\n\n const sidebarProps = {\n appName,\n appFullName,\n appIcon,\n version,\n navGroups,\n onAppNameClick,\n backToPlatformPath,\n onBackToPlatform,\n userMenu,\n };\n\n return (\n <Sheet open={mobileNavOpen} onOpenChange={setMobileNavOpen}>\n <div\n data-slot=\"data-app-shell\"\n className={cn(\"flex flex-row w-full h-screen overflow-hidden\", className)}\n >\n {/* Desktop icon rail (hidden on mobile) */}\n <IconRailSidebar {...sidebarProps} />\n\n {/* Mobile sidebar Sheet */}\n <SheetContent\n side=\"left\"\n showCloseButton={false}\n className=\"p-0 bg-sidebar border-r border-sidebar-border data-[side=left]:w-[220px] data-[side=left]:sm:w-[220px] data-[side=left]:sm:max-w-[220px] flex flex-col\"\n >\n <SheetTitle className=\"sr-only\">Navigation</SheetTitle>\n <SheetDescription className=\"sr-only\">\n Application navigation menu\n </SheetDescription>\n <nav aria-label=\"Application navigation\" className=\"flex flex-col h-full\">\n <SidebarBody\n compact={false}\n onAfterNavClick={() => setMobileNavOpen(false)}\n {...sidebarProps}\n />\n </nav>\n </SheetContent>\n\n {/* Right: top nav + panel + content */}\n <div className=\"flex flex-1 flex-col min-w-0 overflow-hidden\">\n <TopNav\n breadcrumbs={breadcrumbs}\n onHelpClick={onHelpClick}\n headerActions={headerActions}\n mobileTrigger={\n <SheetTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Open navigation menu\"\n className=\"md:hidden w-7 h-7 shrink-0 text-muted-foreground\"\n >\n <Menu className=\"w-4 h-4\" />\n </Button>\n </SheetTrigger>\n }\n />\n\n <div className=\"flex flex-1 min-h-0 overflow-hidden\">\n {/* Sidebar panel slot (e.g. WorkflowPanel) */}\n {sidebarPanel}\n\n {/* Content area */}\n <main\n data-slot=\"data-app-shell-content\"\n className=\"flex-1 overflow-auto bg-background\"\n >\n {children}\n </main>\n </div>\n </div>\n </div>\n </Sheet>\n );\n}\n\nexport default DataAppShell;\nexport { DataAppShell };\n"],"names":["pageIconVariants","cva","SidebarBody","appName","appFullName","appIcon","version","navGroups","onAppNameClick","backToPlatformPath","onBackToPlatform","userMenu","compact","onAfterNavClick","TooltipProvider","jsx","cn","DropdownMenu","DropdownMenuTrigger","jsxs","DropdownMenuContent","e","DropdownMenuSeparator","DropdownMenuItem","TDPLink","ArrowLeft","group","groupIndex","React","page","Icon","iconEl","handleClick","Tooltip","TooltipTrigger","TooltipContent","IconRailSidebar","props","TopNav","breadcrumbs","onHelpClick","headerActions","mobileTrigger","Breadcrumb","BreadcrumbList","item","index","isLast","isClickable","BreadcrumbSeparator","BreadcrumbItem","BreadcrumbPage","BreadcrumbLink","Button","HelpCircle","DataAppShell","sidebarPanel","children","className","mobileNavOpen","setMobileNavOpen","sidebarProps","Sheet","SheetContent","SheetTitle","SheetDescription","SheetTrigger","Menu"],"mappings":"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"}
1
+ {"version":3,"file":"DataAppShell.js","sources":["../../../../src/components/composed/DataAppShell/DataAppShell.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport {\n ArrowLeft,\n HelpCircle,\n Menu,\n type LucideIcon,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { TDPLink } from \"@/components/composed/tdp-link\";\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface NavPage {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Lucide icon or custom React SVG component */\n icon?: LucideIcon | React.FC<React.SVGProps<SVGSVGElement>>;\n /** Whether this page is currently active */\n isActive?: boolean;\n /** Click handler */\n onClick?: () => void;\n}\n\nexport interface NavGroup {\n /** Optional group label shown as a section header in expanded nav */\n label?: string;\n /** Page entries in this group */\n pages: NavPage[];\n}\n\nexport interface BreadcrumbItemConfig {\n /** Display label */\n label: string;\n /** If provided, renders as a link */\n href?: string;\n /** Click handler (used when no href is provided) */\n onClick?: () => void;\n}\n\nexport interface DataAppShellProps {\n // -- Sidebar --\n /** Application name/abbreviation shown in the logo button */\n appName: string;\n /** Full application name shown in the app dropdown and mobile nav header */\n appFullName?: string;\n /** Custom icon element shown in the logo area */\n appIcon?: React.ReactNode;\n /** Optional version string shown below the app name/icon in the sidebar header */\n version?: string;\n /** Navigation groups; each group contains one or more pages */\n navGroups: NavGroup[];\n /** Callback when the app name / icon is clicked in the dropdown */\n onAppNameClick?: () => void;\n /** TDP path to navigate to when \"Back to TDP Platform\" is clicked (uses TDPLink — requires TdpNavigationProvider) */\n backToPlatformPath?: string;\n /** Fallback callback when \"Back to TDP Platform\" is clicked and no backToPlatformPath is set */\n onBackToPlatform?: () => void;\n /** Slot rendered at the bottom of the sidebar (e.g. user avatar + menu) */\n userMenu?: React.ReactNode;\n\n // -- Top nav --\n /** Breadcrumb items from root to current page */\n breadcrumbs?: BreadcrumbItemConfig[];\n /** Callback when the help button is clicked; omit to hide the button */\n onHelpClick?: () => void;\n /** Slot for right-side actions in the top nav (e.g. data count pills, next button) */\n headerActions?: React.ReactNode;\n\n // -- Shell --\n /** Slot rendered between the icon rail and the content (e.g. WorkflowPanel) */\n sidebarPanel?: React.ReactNode;\n /** Show the desktop icon nav rail. Set false to reclaim width when the panel is collapsed. */\n showNavRail?: boolean; // default true\n /** Main content area */\n children: React.ReactNode;\n /** Additional className for the root container */\n className?: string;\n}\n\n// =============================================================================\n// Sidebar shared body (used by desktop rail + mobile Sheet)\n// =============================================================================\n\ninterface SidebarBodyProps\n extends Pick<\n DataAppShellProps,\n | \"appName\"\n | \"appFullName\"\n | \"appIcon\"\n | \"version\"\n | \"navGroups\"\n | \"onAppNameClick\"\n | \"backToPlatformPath\"\n | \"onBackToPlatform\"\n | \"userMenu\"\n > {\n /**\n * compact=true → narrow icon rail (60px): icons + tiny labels stacked, tooltips on hover\n * compact=false → expanded mobile sheet (220px): icon + label side-by-side rows\n */\n compact: boolean;\n /** Called after a nav page item is clicked — used by mobile sheet to close itself */\n onAfterNavClick?: () => void;\n}\n\nconst pageIconVariants = cva(\n \"flex items-center justify-center rounded-lg transition-colors duration-150\",\n {\n variants: {\n active: {\n true: \"bg-primary/10\",\n false: \"bg-transparent\",\n },\n compact: {\n true: \"w-9 h-9 hover:bg-muted\",\n false: \"w-8 h-8\",\n },\n },\n defaultVariants: { active: false, compact: true },\n }\n);\n\nfunction SidebarBody({\n appName,\n appFullName,\n appIcon,\n version,\n navGroups,\n onAppNameClick,\n backToPlatformPath,\n onBackToPlatform,\n userMenu,\n compact,\n onAfterNavClick,\n}: SidebarBodyProps) {\n return (\n <TooltipProvider>\n {/* ── Header: app icon / name + version ──────────────────────────────── */}\n <div\n className={cn(\n \"shrink-0 border-b border-sidebar-border\",\n compact ? \"flex justify-center py-2\" : \"flex px-3 py-2.5\"\n )}\n >\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"cursor-pointer bg-transparent border-none p-0\",\n !compact && \"flex items-center gap-3 w-full text-left\"\n )}\n >\n {/* Icon */}\n <span\n className={cn(\n \"flex items-center justify-center rounded-lg bg-sidebar-accent border border-sidebar-border font-bold text-foreground shrink-0\",\n compact ? \"w-9 h-9 text-[11px]\" : \"w-8 h-8 text-[10px]\"\n )}\n >\n {appIcon ?? appName}\n </span>\n\n {/* Name (expanded only — no version here) */}\n {!compact && (\n <span className=\"text-sm font-semibold text-foreground truncate leading-snug\">\n {appFullName ?? appName}\n </span>\n )}\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent side=\"right\" align=\"start\" className=\"min-w-[220px]\">\n <div\n className=\"flex items-center gap-3 px-3 py-2.5 cursor-pointer\"\n onClick={onAppNameClick}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") onAppNameClick?.();\n }}\n >\n <div className=\"w-8 h-8 rounded-lg bg-sidebar-accent border border-sidebar-border flex items-center justify-center shrink-0\">\n <span className=\"text-[10px] font-bold text-foreground\">\n {appIcon ?? appName}\n </span>\n </div>\n <div className=\"flex flex-col min-w-0\">\n <span className=\"text-sm font-semibold text-foreground truncate\">\n {appFullName ?? appName}\n </span>\n {version && (\n <span className=\"text-[10px] text-muted-foreground/70 font-mono leading-none mt-0.5\">\n {version}\n </span>\n )}\n </div>\n </div>\n <DropdownMenuSeparator />\n <DropdownMenuItem className=\"gap-2.5 p-0\" asChild>\n {backToPlatformPath ? (\n <TDPLink\n path={backToPlatformPath}\n navigationOptions={{ newTab: false }}\n className=\"flex items-center gap-2.5 w-full px-2 py-1.5 !no-underline hover:!no-underline\"\n >\n <ArrowLeft className=\"w-4 h-4 text-muted-foreground\" />\n Back to TDP Platform\n </TDPLink>\n ) : (\n <button\n type=\"button\"\n className=\"flex items-center gap-2.5 w-full px-2 py-1.5 bg-transparent border-none cursor-pointer\"\n onClick={onBackToPlatform}\n >\n <ArrowLeft className=\"w-4 h-4 text-muted-foreground\" />\n Back to TDP Platform\n </button>\n )}\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n\n {/* ── Nav groups ──────────────────────────────────────────────────────── */}\n <div\n className={cn(\n \"flex-1 min-h-0\",\n compact\n ? \"flex flex-col items-center gap-1 px-2 pt-3 overflow-y-auto\"\n : \"flex flex-col py-2 overflow-y-auto\"\n )}\n >\n {navGroups.map((group, groupIndex) => (\n <React.Fragment key={`${groupIndex}-${group.label ?? \"\"}`}>\n {groupIndex > 0 && (\n <div\n className={cn(\n \"border-t border-sidebar-border\",\n compact ? \"w-8 my-2\" : \"mx-3 my-1\"\n )}\n />\n )}\n {!compact && group.label && (\n <span className=\"px-3 py-1 text-[10px] uppercase tracking-widest text-muted-foreground/60 font-semibold\">\n {group.label}\n </span>\n )}\n <div\n className={cn(\n \"flex flex-col\",\n compact ? \"items-center gap-3 w-full\" : \"gap-0.5\"\n )}\n >\n {group.pages.map((page) => {\n const Icon = page.icon;\n const iconEl = Icon ? (\n <Icon\n className={cn(\n \"w-5 h-5\",\n page.isActive ? \"text-primary\" : \"text-muted-foreground\"\n )}\n />\n ) : (\n <div\n className={cn(\n \"w-2 h-2 rounded-full\",\n page.isActive ? \"bg-primary\" : \"bg-muted-foreground/40\"\n )}\n />\n );\n\n const handleClick = () => {\n page.onClick?.();\n onAfterNavClick?.();\n };\n\n if (compact) {\n return (\n <Tooltip key={page.id}>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n className=\"flex flex-col items-center gap-0.5 cursor-pointer bg-transparent border-none p-0 w-full\"\n onClick={handleClick}\n >\n <div className={cn(pageIconVariants({ active: page.isActive ?? false, compact: true }))}>\n {iconEl}\n </div>\n <span\n className={cn(\n \"text-[10px] font-medium leading-tight text-center\",\n page.isActive\n ? \"text-foreground font-semibold\"\n : \"text-muted-foreground\"\n )}\n >\n {page.label}\n </span>\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">{page.label}</TooltipContent>\n </Tooltip>\n );\n }\n\n // Expanded (mobile) row\n return (\n <button\n key={page.id}\n type=\"button\"\n className={cn(\n \"flex items-center gap-3 w-full px-3 py-2 text-sm cursor-pointer bg-transparent border-none text-left transition-colors duration-150 rounded-md mx-1\",\n page.isActive\n ? \"bg-sidebar-accent text-sidebar-foreground font-medium\"\n : \"text-muted-foreground hover:bg-sidebar-accent/60 hover:text-foreground\"\n )}\n onClick={handleClick}\n >\n <div className={cn(pageIconVariants({ active: page.isActive ?? false, compact: false }))}>\n {iconEl}\n </div>\n <span>{page.label}</span>\n </button>\n );\n })}\n </div>\n </React.Fragment>\n ))}\n </div>\n\n {/* ── Bottom: user menu slot ──────────────────────────────────────────── */}\n {userMenu && (\n <div\n className={cn(\n \"shrink-0 border-t border-sidebar-border\",\n compact ? \"flex flex-col items-center py-2\" : \"p-2\"\n )}\n >\n {userMenu}\n </div>\n )}\n </TooltipProvider>\n );\n}\n\n// =============================================================================\n// Icon rail sidebar (desktop only — hidden on mobile)\n// =============================================================================\n\nfunction IconRailSidebar(props: Omit<SidebarBodyProps, \"compact\" | \"onAfterNavClick\">) {\n return (\n <nav\n data-slot=\"data-app-sidebar-rail\"\n aria-label=\"Application navigation\"\n className=\"hidden md:flex w-[60px] flex-col shrink-0 bg-sidebar border-r border-sidebar-border h-full z-50\"\n >\n <SidebarBody compact {...props} />\n </nav>\n );\n}\n\n// =============================================================================\n// Top nav\n// =============================================================================\n\nfunction TopNav({\n breadcrumbs = [],\n onHelpClick,\n headerActions,\n mobileTrigger,\n}: {\n breadcrumbs?: BreadcrumbItemConfig[];\n onHelpClick?: () => void;\n headerActions?: React.ReactNode;\n mobileTrigger?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"data-app-top-nav\"\n className=\"flex items-center h-10 px-3 bg-sidebar border-b border-sidebar-border sticky top-0 z-40 w-full gap-2\"\n >\n {/* Mobile hamburger (hidden on md+) */}\n {mobileTrigger}\n\n {/* Left: Breadcrumbs */}\n <Breadcrumb className=\"flex-1 min-w-0\">\n <BreadcrumbList>\n {breadcrumbs.map((item, index) => {\n const isLast = index === breadcrumbs.length - 1;\n const isClickable = !isLast && (!!item.href || !!item.onClick);\n return (\n <React.Fragment key={`${item.label}-${index}`}>\n {index > 0 && <BreadcrumbSeparator>/</BreadcrumbSeparator>}\n <BreadcrumbItem>\n {isLast ? (\n <BreadcrumbPage>{item.label}</BreadcrumbPage>\n ) : isClickable && item.href ? (\n <BreadcrumbLink href={item.href}>{item.label}</BreadcrumbLink>\n ) : isClickable && item.onClick ? (\n <button\n type=\"button\"\n className=\"text-[13px] text-primary hover:underline cursor-pointer bg-transparent border-none p-0 font-normal\"\n onClick={item.onClick}\n >\n {item.label}\n </button>\n ) : (\n <span className=\"text-[13px] text-muted-foreground\">{item.label}</span>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </Breadcrumb>\n\n {/* Right: header actions + help */}\n <div className=\"flex items-center gap-2 shrink-0\">\n {headerActions}\n\n {onHelpClick && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"w-7 h-7 text-muted-foreground\"\n onClick={onHelpClick}\n aria-label=\"Help\"\n >\n <HelpCircle className=\"w-4 h-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">Help</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </div>\n );\n}\n\n// =============================================================================\n// DataAppShell\n// =============================================================================\n\nfunction DataAppShell({\n appName,\n appFullName,\n appIcon,\n version,\n navGroups,\n onAppNameClick,\n backToPlatformPath,\n onBackToPlatform,\n userMenu,\n breadcrumbs = [],\n onHelpClick,\n headerActions,\n sidebarPanel,\n showNavRail = true,\n children,\n className,\n}: DataAppShellProps) {\n const [mobileNavOpen, setMobileNavOpen] = React.useState(false);\n\n const sidebarProps = {\n appName,\n appFullName,\n appIcon,\n version,\n navGroups,\n onAppNameClick,\n backToPlatformPath,\n onBackToPlatform,\n userMenu,\n };\n\n return (\n <Sheet open={mobileNavOpen} onOpenChange={setMobileNavOpen}>\n <div\n data-slot=\"data-app-shell\"\n className={cn(\"flex flex-row w-full h-screen overflow-hidden\", className)}\n >\n {/* Desktop icon rail (hidden on mobile, or when showNavRail is false) */}\n {showNavRail && <IconRailSidebar {...sidebarProps} />}\n\n {/* Mobile sidebar Sheet */}\n <SheetContent\n side=\"left\"\n showCloseButton={false}\n className=\"p-0 bg-sidebar border-r border-sidebar-border data-[side=left]:w-[220px] data-[side=left]:sm:w-[220px] data-[side=left]:sm:max-w-[220px] flex flex-col\"\n >\n <SheetTitle className=\"sr-only\">Navigation</SheetTitle>\n <SheetDescription className=\"sr-only\">\n Application navigation menu\n </SheetDescription>\n <nav aria-label=\"Application navigation\" className=\"flex flex-col h-full\">\n <SidebarBody\n compact={false}\n onAfterNavClick={() => setMobileNavOpen(false)}\n {...sidebarProps}\n />\n </nav>\n </SheetContent>\n\n {/* Right: top nav + panel + content */}\n <div className=\"flex flex-1 flex-col min-w-0 overflow-hidden\">\n <TopNav\n breadcrumbs={breadcrumbs}\n onHelpClick={onHelpClick}\n headerActions={headerActions}\n mobileTrigger={\n <SheetTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Open navigation menu\"\n className=\"md:hidden w-7 h-7 shrink-0 text-muted-foreground\"\n >\n <Menu className=\"w-4 h-4\" />\n </Button>\n </SheetTrigger>\n }\n />\n\n <div className=\"flex flex-1 min-h-0 overflow-hidden\">\n {/* Sidebar panel slot (e.g. WorkflowPanel) */}\n {sidebarPanel}\n\n {/* Content area */}\n <main\n data-slot=\"data-app-shell-content\"\n className=\"flex-1 overflow-auto bg-background\"\n >\n {children}\n </main>\n </div>\n </div>\n </div>\n </Sheet>\n );\n}\n\nexport default DataAppShell;\nexport { DataAppShell };\n"],"names":["pageIconVariants","cva","SidebarBody","appName","appFullName","appIcon","version","navGroups","onAppNameClick","backToPlatformPath","onBackToPlatform","userMenu","compact","onAfterNavClick","TooltipProvider","jsx","cn","DropdownMenu","DropdownMenuTrigger","jsxs","DropdownMenuContent","e","DropdownMenuSeparator","DropdownMenuItem","TDPLink","ArrowLeft","group","groupIndex","React","page","Icon","iconEl","handleClick","Tooltip","TooltipTrigger","TooltipContent","IconRailSidebar","props","TopNav","breadcrumbs","onHelpClick","headerActions","mobileTrigger","Breadcrumb","BreadcrumbList","item","index","isLast","isClickable","BreadcrumbSeparator","BreadcrumbItem","BreadcrumbPage","BreadcrumbLink","Button","HelpCircle","DataAppShell","sidebarPanel","showNavRail","children","className","mobileNavOpen","setMobileNavOpen","sidebarProps","Sheet","SheetContent","SheetTitle","SheetDescription","SheetTrigger","Menu"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("lucide-react"),r=require("radix-ui"),t=require("../../lib/utils.cjs");function a({className:e,...n}){return o.jsx(r.Accordion.Root,{"data-slot":"accordion",className:t.cn("flex w-full flex-col",e),...n})}function d({className:e,...n}){return o.jsx(r.Accordion.Item,{"data-slot":"accordion-item",className:t.cn("not-last:border-b",e),...n})}function s({className:e,children:n,...i}){return o.jsx(r.Accordion.Header,{className:"flex",children:o.jsxs(r.Accordion.Trigger,{"data-slot":"accordion-trigger",className:t.cn("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",e),...i,children:[n,o.jsx(c.ChevronDownIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"}),o.jsx(c.ChevronUpIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"})]})})}function l({className:e,children:n,...i}){return o.jsx(r.Accordion.Content,{"data-slot":"accordion-content",className:"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",...i,children:o.jsx("div",{className:t.cn("h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",e),children:n})})}exports.Accordion=a;exports.AccordionContent=l;exports.AccordionItem=d;exports.AccordionTrigger=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),c=require("lucide-react"),r=require("radix-ui"),t=require("../../lib/utils.cjs");function a({className:e,...n}){return o.jsx(r.Accordion.Root,{"data-slot":"accordion",className:t.cn("flex w-full flex-col",e),...n})}function d({className:e,...n}){return o.jsx(r.Accordion.Item,{"data-slot":"accordion-item",className:t.cn("not-last:border-b",e),...n})}function s({className:e,children:n,...i}){return o.jsx(r.Accordion.Header,{className:"flex",children:o.jsxs(r.Accordion.Trigger,{"data-slot":"accordion-trigger",className:t.cn("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",e),...i,children:[n,o.jsx(c.ChevronDownIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"}),o.jsx(c.ChevronUpIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"})]})})}function l({className:e,children:n,...i}){return o.jsx(r.Accordion.Content,{"data-slot":"accordion-content",className:"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",...i,children:o.jsx("div",{className:t.cn("h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",e),children:n})})}exports.Accordion=a;exports.AccordionContent=l;exports.AccordionItem=d;exports.AccordionTrigger=s;
2
2
  //# sourceMappingURL=accordion.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.cjs","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":"sMAOA,SAASA,EAAU,CACjB,UAAAC,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,YACV,UAAWC,EAAAA,GAAG,uBAAwBJ,CAAS,EAC9C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASI,EAAc,CACrB,UAAAL,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,iBACV,UAAWC,EAAAA,GAAG,oBAAqBJ,CAAS,EAC3C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAiB,CACxB,UAAAN,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,OAAnB,CAA0B,UAAU,OACnC,SAAAK,EAAAA,KAACL,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAWC,EAAAA,GACT,8dACAJ,CAAA,EAED,GAAGC,EAEH,SAAA,CAAAM,EACDL,EAAAA,IAACO,EAAAA,gBAAA,CAAgB,YAAU,yBAAyB,UAAU,4EAA4E,EAC1IP,EAAAA,IAACQ,EAAAA,cAAA,CAAc,YAAU,yBAAyB,UAAU,kFAAA,CAAmF,CAAA,CAAA,CAAA,EAEnJ,CAEJ,CAEA,SAASC,EAAiB,CACxB,UAAAX,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAU,4FACT,GAAGF,EAEJ,SAAAC,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GACT,oJACAJ,CAAA,EAGD,SAAAO,CAAA,CAAA,CACH,CAAA,CAGN"}
1
+ {"version":3,"file":"accordion.cjs","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":"sMAOA,SAASA,EAAU,CACjB,UAAAC,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,YACV,UAAWC,EAAAA,GAAG,uBAAwBJ,CAAS,EAC9C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASI,EAAc,CACrB,UAAAL,EACA,GAAGC,CACL,EAAyD,CACvD,OACEC,EAAAA,IAACC,EAAAA,UAAmB,KAAnB,CACC,YAAU,iBACV,UAAWC,EAAAA,GAAG,oBAAqBJ,CAAS,EAC3C,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASK,EAAiB,CACxB,UAAAN,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,OAAnB,CAA0B,UAAU,OACnC,SAAAK,EAAAA,KAACL,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAWC,EAAAA,GACT,8bACAJ,CAAA,EAED,GAAGC,EAEH,SAAA,CAAAM,EACDL,EAAAA,IAACO,EAAAA,gBAAA,CAAgB,YAAU,yBAAyB,UAAU,4EAA4E,EAC1IP,EAAAA,IAACQ,EAAAA,cAAA,CAAc,YAAU,yBAAyB,UAAU,kFAAA,CAAmF,CAAA,CAAA,CAAA,EAEnJ,CAEJ,CAEA,SAASC,EAAiB,CACxB,UAAAX,EACA,SAAAO,EACA,GAAGN,CACL,EAA4D,CAC1D,OACEC,EAAAA,IAACC,EAAAA,UAAmB,QAAnB,CACC,YAAU,oBACV,UAAU,4FACT,GAAGF,EAEJ,SAAAC,EAAAA,IAAC,MAAA,CACC,UAAWE,EAAAA,GACT,oJACAJ,CAAA,EAGD,SAAAO,CAAA,CAAA,CACH,CAAA,CAGN"}
@@ -38,7 +38,7 @@ function p({
38
38
  {
39
39
  "data-slot": "accordion-trigger",
40
40
  className: t(
41
- "group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",
41
+ "group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",
42
42
  o
43
43
  ),
44
44
  ...i,
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":";;;;AAOA,SAASA,EAAU;AAAA,EACjB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,wBAAwBJ,CAAS;AAAA,MAC9C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAc;AAAA,EACrB,WAAAL;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,qBAAqBJ,CAAS;AAAA,MAC3C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAiB;AAAA,EACxB,WAAAN;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC,EAACC,EAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAA,gBAAAK;AAAA,IAACL,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAL,EAACO,GAAA,EAAgB,aAAU,0BAAyB,WAAU,6EAA4E;AAAA,QAC1I,gBAAAP,EAACQ,GAAA,EAAc,aAAU,0BAAyB,WAAU,mFAAA,CAAmF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnJ;AAEJ;AAEA,SAASC,EAAiB;AAAA,EACxB,WAAAX;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAGF;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAA,YACT;AAAA,YACAJ;AAAA,UAAA;AAAA,UAGD,UAAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Accordion({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["Accordion","className","props","jsx","AccordionPrimitive","cn","AccordionItem","AccordionTrigger","children","jsxs","ChevronDownIcon","ChevronUpIcon","AccordionContent"],"mappings":";;;;AAOA,SAASA,EAAU;AAAA,EACjB,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,wBAAwBJ,CAAS;AAAA,MAC9C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAc;AAAA,EACrB,WAAAL;AAAA,EACA,GAAGC;AACL,GAAyD;AACvD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,qBAAqBJ,CAAS;AAAA,MAC3C,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAiB;AAAA,EACxB,WAAAN;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC,EAACC,EAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAA,gBAAAK;AAAA,IAACL,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAL,EAACO,GAAA,EAAgB,aAAU,0BAAyB,WAAU,6EAA4E;AAAA,QAC1I,gBAAAP,EAACQ,GAAA,EAAc,aAAU,0BAAyB,WAAU,mFAAA,CAAmF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnJ;AAEJ;AAEA,SAASC,EAAiB;AAAA,EACxB,WAAAX;AAAA,EACA,UAAAO;AAAA,EACA,GAAGN;AACL,GAA4D;AAC1D,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MACT,GAAGF;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAA,YACT;AAAA,YACAJ;AAAA,UAAA;AAAA,UAGD,UAAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("@base-ui/react"),b=require("lucide-react"),m=require("react"),p=require("./button.cjs"),i=require("./input-group.cjs"),r=require("../../lib/utils.cjs");function x(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const a in o)if(a!=="default"){const s=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(e,a,s.get?s:{enumerable:!0,get:()=>o[a]})}}return e.default=o,Object.freeze(e)}const h=x(m),g=n.Combobox.Root;function C({...o}){return t.jsx(n.Combobox.Value,{"data-slot":"combobox-value",...o})}function d({className:o,children:e,...a}){return t.jsxs(n.Combobox.Trigger,{"data-slot":"combobox-trigger",className:r.cn("[&_svg:not([class*='size-'])]:size-4",o),...a,children:[e,t.jsx(b.ChevronDownIcon,{className:"pointer-events-none size-4 text-muted-foreground"})]})}function f({className:o,...e}){return t.jsx(n.Combobox.Clear,{"data-slot":"combobox-clear",render:t.jsx(i.InputGroupButton,{variant:"ghost",size:"icon-xs"}),className:r.cn(o),...e,children:t.jsx(b.XIcon,{className:"pointer-events-none"})})}function v({className:o,children:e,disabled:a=!1,showTrigger:s=!0,showClear:l=!1,...c}){return t.jsxs(i.InputGroup,{className:r.cn("w-auto",o),children:[t.jsx(n.Combobox.Input,{render:t.jsx(i.InputGroupInput,{disabled:a}),...c}),t.jsxs(i.InputGroupAddon,{align:"inline-end",children:[s&&t.jsx(i.InputGroupButton,{size:"icon-xs",variant:"ghost",asChild:!0,"data-slot":"input-group-button",className:"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",disabled:a,children:t.jsx(d,{})}),l&&t.jsx(f,{disabled:a})]}),e]})}function j({className:o,side:e="bottom",sideOffset:a=6,align:s="start",alignOffset:l=0,anchor:c,...u}){return t.jsx(n.Combobox.Portal,{children:t.jsx(n.Combobox.Positioner,{side:e,sideOffset:a,align:s,alignOffset:l,anchor:c,className:"isolate z-50",children:t.jsx(n.Combobox.Popup,{"data-slot":"combobox-content","data-chips":!!c,className:r.cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",o),...u})})})}function w({className:o,...e}){return t.jsx(n.Combobox.List,{"data-slot":"combobox-list",className:r.cn("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0",o),...e})}function y({className:o,children:e,...a}){return t.jsxs(n.Combobox.Item,{"data-slot":"combobox-item",className:r.cn("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",o),...a,children:[e,t.jsx(n.Combobox.ItemIndicator,{render:t.jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:t.jsx(b.CheckIcon,{className:"pointer-events-none"})})]})}function N({className:o,...e}){return t.jsx(n.Combobox.Group,{"data-slot":"combobox-group",className:r.cn(o),...e})}function I({className:o,...e}){return t.jsx(n.Combobox.GroupLabel,{"data-slot":"combobox-label",className:r.cn("px-2 py-1.5 text-xs text-muted-foreground",o),...e})}function z({...o}){return t.jsx(n.Combobox.Collection,{"data-slot":"combobox-collection",...o})}function G({className:o,...e}){return t.jsx(n.Combobox.Empty,{"data-slot":"combobox-empty",className:r.cn("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex",o),...e})}function q({className:o,...e}){return t.jsx(n.Combobox.Separator,{"data-slot":"combobox-separator",className:r.cn("-mx-1 my-1 h-px bg-border",o),...e})}function R({className:o,...e}){return t.jsx(n.Combobox.Chips,{"data-slot":"combobox-chips",className:r.cn("group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-transparent bg-clip-padding px-4 py-1 text-sm transition-colors focus-within:border-ring focus-within:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50",o),...e})}function S({className:o,children:e,showRemove:a=!0,...s}){return t.jsxs(n.Combobox.Chip,{"data-slot":"combobox-chip",className:r.cn("flex h-[calc(--spacing(6.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0",o),...s,children:[e,a&&t.jsx(n.Combobox.ChipRemove,{render:t.jsx(p.Button,{variant:"ghost",size:"icon-xs"}),className:"-ml-1 opacity-50 hover:opacity-100","data-slot":"combobox-chip-remove",children:t.jsx(b.XIcon,{className:"pointer-events-none"})})]})}function _({className:o,...e}){return t.jsx(n.Combobox.Input,{"data-slot":"combobox-chip-input",className:r.cn("min-w-16 flex-1 outline-none group-has-data-[slot=combobox-chip]/chips:placeholder:text-transparent",o),...e})}function L(){return h.useRef(null)}exports.Combobox=g;exports.ComboboxChip=S;exports.ComboboxChips=R;exports.ComboboxChipsInput=_;exports.ComboboxCollection=z;exports.ComboboxContent=j;exports.ComboboxEmpty=G;exports.ComboboxGroup=N;exports.ComboboxInput=v;exports.ComboboxItem=y;exports.ComboboxLabel=I;exports.ComboboxList=w;exports.ComboboxSeparator=q;exports.ComboboxTrigger=d;exports.ComboboxValue=C;exports.useComboboxAnchor=L;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("@base-ui/react"),b=require("lucide-react"),m=require("react"),p=require("./button.cjs"),i=require("./input-group.cjs"),s=require("../../lib/utils.cjs");function x(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const a in o)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:()=>o[a]})}}return e.default=o,Object.freeze(e)}const h=x(m),g=n.Combobox.Root;function C({...o}){return t.jsx(n.Combobox.Value,{"data-slot":"combobox-value",...o})}function d({className:o,children:e,...a}){return t.jsxs(n.Combobox.Trigger,{"data-slot":"combobox-trigger",className:s.cn("[&_svg:not([class*='size-'])]:size-4",o),...a,children:[e,t.jsx(b.ChevronDownIcon,{className:"pointer-events-none size-4 text-muted-foreground"})]})}function f({className:o,...e}){return t.jsx(n.Combobox.Clear,{"data-slot":"combobox-clear",render:t.jsx(i.InputGroupButton,{variant:"ghost",size:"icon-xs"}),className:s.cn(o),...e,children:t.jsx(b.XIcon,{className:"pointer-events-none"})})}function v({className:o,children:e,disabled:a=!1,showTrigger:r=!0,showClear:l=!1,...c}){return t.jsxs(i.InputGroup,{className:s.cn("w-auto bg-card",o),children:[t.jsx(n.Combobox.Input,{render:t.jsx(i.InputGroupInput,{disabled:a}),...c}),t.jsxs(i.InputGroupAddon,{align:"inline-end",children:[r&&t.jsx(i.InputGroupButton,{size:"icon-xs",variant:"ghost",asChild:!0,"data-slot":"input-group-button",className:"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent",disabled:a,children:t.jsx(d,{})}),l&&t.jsx(f,{disabled:a})]}),e]})}function j({className:o,side:e="bottom",sideOffset:a=6,align:r="start",alignOffset:l=0,anchor:c,...u}){return t.jsx(n.Combobox.Portal,{children:t.jsx(n.Combobox.Positioner,{side:e,sideOffset:a,align:r,alignOffset:l,anchor:c,className:"isolate z-50",children:t.jsx(n.Combobox.Popup,{"data-slot":"combobox-content","data-chips":!!c,className:s.cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",o),...u})})})}function w({className:o,...e}){return t.jsx(n.Combobox.List,{"data-slot":"combobox-list",className:s.cn("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0",o),...e})}function y({className:o,children:e,...a}){return t.jsxs(n.Combobox.Item,{"data-slot":"combobox-item",className:s.cn("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",o),...a,children:[e,t.jsx(n.Combobox.ItemIndicator,{render:t.jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:t.jsx(b.CheckIcon,{className:"pointer-events-none"})})]})}function N({className:o,...e}){return t.jsx(n.Combobox.Group,{"data-slot":"combobox-group",className:s.cn(o),...e})}function I({className:o,...e}){return t.jsx(n.Combobox.GroupLabel,{"data-slot":"combobox-label",className:s.cn("px-2 py-1.5 text-xs text-muted-foreground",o),...e})}function z({...o}){return t.jsx(n.Combobox.Collection,{"data-slot":"combobox-collection",...o})}function G({className:o,...e}){return t.jsx(n.Combobox.Empty,{"data-slot":"combobox-empty",className:s.cn("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex",o),...e})}function q({className:o,...e}){return t.jsx(n.Combobox.Separator,{"data-slot":"combobox-separator",className:s.cn("-mx-1 my-1 h-px bg-border",o),...e})}function R({className:o,...e}){return t.jsx(n.Combobox.Chips,{"data-slot":"combobox-chips",className:s.cn("group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-card bg-clip-padding px-4 py-1 text-sm transition-colors has-[[data-slot=combobox-chip-input]:focus-visible]:border-ring has-[[data-slot=combobox-chip-input]:focus-visible]:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50",o),...e})}function S({className:o,children:e,showRemove:a=!0,...r}){return t.jsxs(n.Combobox.Chip,{"data-slot":"combobox-chip",className:s.cn("flex h-[calc(--spacing(6.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0",o),...r,children:[e,a&&t.jsx(n.Combobox.ChipRemove,{render:t.jsx(p.Button,{variant:"ghost",size:"icon-xs"}),className:"-ml-1 opacity-50 hover:opacity-100","data-slot":"combobox-chip-remove",children:t.jsx(b.XIcon,{className:"pointer-events-none"})})]})}function _({className:o,...e}){return t.jsx(n.Combobox.Input,{"data-slot":"combobox-chip-input",className:s.cn("min-w-16 flex-1 outline-none group-has-data-[slot=combobox-chip]/chips:placeholder:text-transparent",o),...e})}function L(){return h.useRef(null)}exports.Combobox=g;exports.ComboboxChip=S;exports.ComboboxChips=R;exports.ComboboxChipsInput=_;exports.ComboboxCollection=z;exports.ComboboxContent=j;exports.ComboboxEmpty=G;exports.ComboboxGroup=N;exports.ComboboxInput=v;exports.ComboboxItem=y;exports.ComboboxLabel=I;exports.ComboboxList=w;exports.ComboboxSeparator=q;exports.ComboboxTrigger=d;exports.ComboboxValue=C;exports.useComboboxAnchor=L;
2
2
  //# sourceMappingURL=combobox.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.cjs","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"@/components/ui/input-group\"\nimport { cn } from \"@/lib/utils\"\n\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-transparent bg-clip-padding px-4 py-1 text-sm transition-colors focus-within:border-ring focus-within:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(6.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\n \"min-w-16 flex-1 outline-none group-has-data-[slot=combobox-chip]/chips:placeholder:text-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"],"names":["Combobox","ComboboxPrimitive","ComboboxValue","props","ComboboxTrigger","className","children","jsxs","cn","jsx","ChevronDownIcon","ComboboxClear","InputGroupButton","XIcon","ComboboxInput","disabled","showTrigger","showClear","InputGroup","InputGroupInput","InputGroupAddon","ComboboxContent","side","sideOffset","align","alignOffset","anchor","ComboboxList","ComboboxItem","CheckIcon","ComboboxGroup","ComboboxLabel","ComboboxCollection","ComboboxEmpty","ComboboxSeparator","ComboboxChips","ComboboxChip","showRemove","Button","ComboboxChipsInput","useComboboxAnchor","React"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.cjs","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"@/components/ui/input-group\"\nimport { cn } from \"@/lib/utils\"\n\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto bg-card\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-card bg-clip-padding px-4 py-1 text-sm transition-colors has-[[data-slot=combobox-chip-input]:focus-visible]:border-ring has-[[data-slot=combobox-chip-input]:focus-visible]:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(6.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\n \"min-w-16 flex-1 outline-none group-has-data-[slot=combobox-chip]/chips:placeholder:text-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"],"names":["Combobox","ComboboxPrimitive","ComboboxValue","props","ComboboxTrigger","className","children","jsxs","cn","jsx","ChevronDownIcon","ComboboxClear","InputGroupButton","XIcon","ComboboxInput","disabled","showTrigger","showClear","InputGroup","InputGroupInput","InputGroupAddon","ComboboxContent","side","sideOffset","align","alignOffset","anchor","ComboboxList","ComboboxItem","CheckIcon","ComboboxGroup","ComboboxLabel","ComboboxCollection","ComboboxEmpty","ComboboxSeparator","ComboboxChips","ComboboxChip","showRemove","Button","ComboboxChipsInput","useComboboxAnchor","React"],"mappings":"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"}
@@ -44,15 +44,15 @@ function R({
44
44
  children: e,
45
45
  disabled: r = !1,
46
46
  showTrigger: i = !0,
47
- showClear: c = !1,
48
- ...d
47
+ showClear: d = !1,
48
+ ...c
49
49
  }) {
50
- return /* @__PURE__ */ s(g, { className: n("w-auto", o), children: [
50
+ return /* @__PURE__ */ s(g, { className: n("w-auto bg-card", o), children: [
51
51
  /* @__PURE__ */ t(
52
52
  a.Input,
53
53
  {
54
54
  render: /* @__PURE__ */ t(f, { disabled: r }),
55
- ...d
55
+ ...c
56
56
  }
57
57
  ),
58
58
  /* @__PURE__ */ s(v, { align: "inline-end", children: [
@@ -68,7 +68,7 @@ function R({
68
68
  children: /* @__PURE__ */ t(C, {})
69
69
  }
70
70
  ),
71
- c && /* @__PURE__ */ t(w, { disabled: r })
71
+ d && /* @__PURE__ */ t(w, { disabled: r })
72
72
  ] }),
73
73
  e
74
74
  ] });
@@ -78,8 +78,8 @@ function _({
78
78
  side: e = "bottom",
79
79
  sideOffset: r = 6,
80
80
  align: i = "start",
81
- alignOffset: c = 0,
82
- anchor: d,
81
+ alignOffset: d = 0,
82
+ anchor: c,
83
83
  ...m
84
84
  }) {
85
85
  return /* @__PURE__ */ t(a.Portal, { children: /* @__PURE__ */ t(
@@ -88,14 +88,14 @@ function _({
88
88
  side: e,
89
89
  sideOffset: r,
90
90
  align: i,
91
- alignOffset: c,
92
- anchor: d,
91
+ alignOffset: d,
92
+ anchor: c,
93
93
  className: "isolate z-50",
94
94
  children: /* @__PURE__ */ t(
95
95
  a.Popup,
96
96
  {
97
97
  "data-slot": "combobox-content",
98
- "data-chips": !!d,
98
+ "data-chips": !!c,
99
99
  className: n("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", o),
100
100
  ...m
101
101
  }
@@ -126,7 +126,7 @@ function A({
126
126
  {
127
127
  "data-slot": "combobox-item",
128
128
  className: n(
129
- "relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
129
+ "relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
130
130
  o
131
131
  ),
132
132
  ...r,
@@ -204,7 +204,7 @@ function D({
204
204
  {
205
205
  "data-slot": "combobox-chips",
206
206
  className: n(
207
- "group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-transparent bg-clip-padding px-4 py-1 text-sm transition-colors focus-within:border-ring focus-within:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50",
207
+ "group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-card bg-clip-padding px-4 py-1 text-sm transition-colors has-[[data-slot=combobox-chip-input]:focus-visible]:border-ring has-[[data-slot=combobox-chip-input]:focus-visible]:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50",
208
208
  o
209
209
  ),
210
210
  ...e
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"@/components/ui/input-group\"\nimport { cn } from \"@/lib/utils\"\n\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-transparent bg-clip-padding px-4 py-1 text-sm transition-colors focus-within:border-ring focus-within:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(6.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\n \"min-w-16 flex-1 outline-none group-has-data-[slot=combobox-chip]/chips:placeholder:text-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"],"names":["Combobox","ComboboxPrimitive","ComboboxValue","props","ComboboxTrigger","className","children","jsxs","cn","jsx","ChevronDownIcon","ComboboxClear","InputGroupButton","XIcon","ComboboxInput","disabled","showTrigger","showClear","InputGroup","InputGroupInput","InputGroupAddon","ComboboxContent","side","sideOffset","align","alignOffset","anchor","ComboboxList","ComboboxItem","CheckIcon","ComboboxGroup","ComboboxLabel","ComboboxCollection","ComboboxEmpty","ComboboxSeparator","ComboboxChips","ComboboxChip","showRemove","Button","ComboboxChipsInput","useComboboxAnchor","React"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../src/components/ui/combobox.tsx"],"sourcesContent":["\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { ChevronDownIcon, XIcon, CheckIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"@/components/ui/input-group\"\nimport { cn } from \"@/lib/utils\"\n\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto bg-card\", className)}>\n <ComboboxPrimitive.Input\n render={<InputGroupInput disabled={disabled} />}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n asChild\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n >\n <ComboboxTrigger />\n </InputGroupButton>\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n )\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"group/chips flex min-h-12 flex-wrap items-center gap-1 rounded-md border border-input bg-card bg-clip-padding px-4 py-1 text-sm transition-colors has-[[data-slot=combobox-chip-input]:focus-visible]:border-ring has-[[data-slot=combobox-chip-input]:focus-visible]:shadow-focus has-aria-invalid:border-destructive has-aria-invalid:shadow-focus has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(6.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n className\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\n \"min-w-16 flex-1 outline-none group-has-data-[slot=combobox-chip]/chips:placeholder:text-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n"],"names":["Combobox","ComboboxPrimitive","ComboboxValue","props","ComboboxTrigger","className","children","jsxs","cn","jsx","ChevronDownIcon","ComboboxClear","InputGroupButton","XIcon","ComboboxInput","disabled","showTrigger","showClear","InputGroup","InputGroupInput","InputGroupAddon","ComboboxContent","side","sideOffset","align","alignOffset","anchor","ComboboxList","ComboboxItem","CheckIcon","ComboboxGroup","ComboboxLabel","ComboboxCollection","ComboboxEmpty","ComboboxSeparator","ComboboxChips","ComboboxChip","showRemove","Button","ComboboxChipsInput","useComboboxAnchor","React"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("lucide-react"),n=require("radix-ui"),o=require("../../lib/utils.cjs");function u({...t}){return e.jsx(n.Select.Root,{"data-slot":"select",...t})}function p({className:t,...a}){return e.jsx(n.Select.Group,{"data-slot":"select-group",className:o.cn("scroll-my-1 p-1",t),...a})}function g({...t}){return e.jsx(n.Select.Value,{"data-slot":"select-value",...t})}function m({className:t,size:a="default",children:s,...l}){return e.jsxs(n.Select.Trigger,{"data-slot":"select-trigger","data-size":a,className:o.cn("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus data-placeholder:text-muted-foreground data-[size=default]:h-10 data-[size=sm]:h-8 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...l,children:[s,e.jsx(n.Select.Icon,{asChild:!0,children:e.jsx(r.ChevronDownIcon,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function f({className:t,children:a,position:s="item-aligned",align:l="center",...d}){return e.jsx(n.Select.Portal,{children:e.jsxs(n.Select.Content,{"data-slot":"select-content","data-align-trigger":s==="item-aligned",className:o.cn("relative z-50 max-h-(--radix-select-content-available-height) p-1 min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",s==="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",t),position:s,align:l,...d,children:[e.jsx(c,{}),e.jsx(n.Select.Viewport,{"data-position":s,className:o.cn("data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",s==="popper"&&""),children:a}),e.jsx(i,{})]})})}function x({className:t,...a}){return e.jsx(n.Select.Label,{"data-slot":"select-label",className:o.cn("px-1.5 py-1 text-xs text-muted-foreground",t),...a})}function S({className:t,children:a,...s}){return e.jsxs(n.Select.Item,{"data-slot":"select-item",className:o.cn("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[e.jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center",children:e.jsx(n.Select.ItemIndicator,{children:e.jsx(r.CheckIcon,{className:"pointer-events-none"})})}),e.jsx(n.Select.ItemText,{children:a})]})}function v({className:t,...a}){return e.jsx(n.Select.Separator,{"data-slot":"select-separator",className:o.cn("pointer-events-none -mx-1 my-1 h-px bg-border",t),...a})}function c({className:t,...a}){return e.jsx(n.Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:o.cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",t),...a,children:e.jsx(r.ChevronUpIcon,{})})}function i({className:t,...a}){return e.jsx(n.Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:o.cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",t),...a,children:e.jsx(r.ChevronDownIcon,{})})}exports.Select=u;exports.SelectContent=f;exports.SelectGroup=p;exports.SelectItem=S;exports.SelectLabel=x;exports.SelectScrollDownButton=i;exports.SelectScrollUpButton=c;exports.SelectSeparator=v;exports.SelectTrigger=m;exports.SelectValue=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("lucide-react"),n=require("radix-ui"),o=require("../../lib/utils.cjs");function u({...t}){return e.jsx(n.Select.Root,{"data-slot":"select",...t})}function p({className:t,...a}){return e.jsx(n.Select.Group,{"data-slot":"select-group",className:o.cn("scroll-my-1 p-1",t),...a})}function g({...t}){return e.jsx(n.Select.Value,{"data-slot":"select-value",...t})}function m({className:t,size:a="default",children:s,...l}){return e.jsxs(n.Select.Trigger,{"data-slot":"select-trigger","data-size":a,className:o.cn("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...l,children:[s,e.jsx(n.Select.Icon,{asChild:!0,children:e.jsx(r.ChevronDownIcon,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function f({className:t,children:a,position:s="item-aligned",align:l="center",...d}){return e.jsx(n.Select.Portal,{children:e.jsxs(n.Select.Content,{"data-slot":"select-content","data-align-trigger":s==="item-aligned",className:o.cn("relative z-50 max-h-(--radix-select-content-available-height) p-1 min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",s==="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",t),position:s,align:l,...d,children:[e.jsx(c,{}),e.jsx(n.Select.Viewport,{"data-position":s,className:o.cn("data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",s==="popper"&&""),children:a}),e.jsx(i,{})]})})}function x({className:t,...a}){return e.jsx(n.Select.Label,{"data-slot":"select-label",className:o.cn("px-1.5 py-1 text-xs text-muted-foreground",t),...a})}function S({className:t,children:a,...s}){return e.jsxs(n.Select.Item,{"data-slot":"select-item",className:o.cn("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[e.jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center",children:e.jsx(n.Select.ItemIndicator,{children:e.jsx(r.CheckIcon,{className:"pointer-events-none"})})}),e.jsx(n.Select.ItemText,{children:a})]})}function v({className:t,...a}){return e.jsx(n.Select.Separator,{"data-slot":"select-separator",className:o.cn("pointer-events-none -mx-1 my-1 h-px bg-border",t),...a})}function c({className:t,...a}){return e.jsx(n.Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:o.cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",t),...a,children:e.jsx(r.ChevronUpIcon,{})})}function i({className:t,...a}){return e.jsx(n.Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:o.cn("z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",t),...a,children:e.jsx(r.ChevronDownIcon,{})})}exports.Select=u;exports.SelectContent=f;exports.SelectGroup=p;exports.SelectItem=S;exports.SelectLabel=x;exports.SelectScrollDownButton=i;exports.SelectScrollUpButton=c;exports.SelectSeparator=v;exports.SelectTrigger=m;exports.SelectValue=g;
2
2
  //# sourceMappingURL=select.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.cjs","sources":["../../../src/components/ui/select.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Select as SelectPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus data-placeholder:text-muted-foreground data-[size=default]:h-10 data-[size=sm]:h-8 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\"relative z-50 max-h-(--radix-select-content-available-height) p-1 min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", 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\", className )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n position === \"popper\" && \"\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon\n />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon\n />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":["Select","props","SelectPrimitive","SelectGroup","className","jsx","cn","SelectValue","SelectTrigger","size","children","jsxs","ChevronDownIcon","SelectContent","position","align","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","CheckIcon","SelectSeparator","ChevronUpIcon"],"mappings":"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"}
1
+ {"version":3,"file":"select.cjs","sources":["../../../src/components/ui/select.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\nimport { Select as SelectPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\"relative z-50 max-h-(--radix-select-content-available-height) p-1 min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", 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\", className )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n position === \"popper\" && \"\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon\n />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon\n />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":["Select","props","SelectPrimitive","SelectGroup","className","jsx","cn","SelectValue","SelectTrigger","size","children","jsxs","ChevronDownIcon","SelectContent","position","align","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","CheckIcon","SelectSeparator","ChevronUpIcon"],"mappings":"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"}
@@ -37,7 +37,7 @@ function z({
37
37
  "data-slot": "select-trigger",
38
38
  "data-size": a,
39
39
  className: n(
40
- "flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus data-placeholder:text-muted-foreground data-[size=default]:h-10 data-[size=sm]:h-8 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
40
+ "flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-card pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
41
41
  e
42
42
  ),
43
43
  ...s,