@kuzenbo/core 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autocomplete-value-CE4htlBI.js.map +1 -1
- package/dist/carousel-previous-OcdvvI1k.js.map +1 -1
- package/dist/command-shortcut-fALFGGNB.js.map +1 -1
- package/dist/context-menu-trigger-Db8Hnkac.js.map +1 -1
- package/dist/dropdown-menu-trigger-PvBaqoOj.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input-group-textarea-C6ixncHC.js.map +1 -1
- package/dist/input-otp-slot-BA8DE3oz.js.map +1 -1
- package/dist/kbd-group-3GbsGHQf.d.ts.map +1 -1
- package/dist/kbd-group-BmHYZhQr.js.map +1 -1
- package/dist/menubar-trigger-BSEAK4Hv.js.map +1 -1
- package/dist/navigation-menu-viewport-MCTpmOhX.js.map +1 -1
- package/dist/number-field-scrub-area-cursor-h-iB-JHz.js.map +1 -1
- package/dist/sidebar-trigger-DpUDeyoo.js.map +1 -1
- package/dist/size-context-CPoCTRTV.d.ts.map +1 -1
- package/dist/size-context-rJNE33WZ.js.map +1 -1
- package/dist/size-provider-D2Fy00Ky.js.map +1 -1
- package/dist/tabs-trigger-CzOTnpSV.js.map +1 -1
- package/dist/toggle-group-item-BNfDa9G7.js.map +1 -1
- package/dist/toggle-group-item-GtR1C20m.d.ts.map +1 -1
- package/dist/use-carousel-BP1JcA8B.d.ts.map +1 -1
- package/dist/use-combobox-anchor-CR11U_ns.js.map +1 -1
- package/dist/use-select-default-props-xp2KqlMr.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-trigger-DpUDeyoo.js","names":[],"sources":["../src/ui/sidebar/constants.ts","../src/ui/sidebar/sidebar-content.tsx","../src/ui/sidebar/sidebar-footer.tsx","../src/ui/sidebar/sidebar-group.tsx","../src/ui/sidebar/sidebar-group-action.tsx","../src/ui/sidebar/sidebar-group-content.tsx","../src/ui/sidebar/sidebar-group-label.tsx","../src/ui/sidebar/sidebar-header.tsx","../src/ui/sidebar/sidebar-input.tsx","../src/ui/sidebar/sidebar-inset.tsx","../src/ui/sidebar/sidebar-menu-context.tsx","../src/ui/sidebar/sidebar-menu.tsx","../src/ui/sidebar/sidebar-menu-action.tsx","../src/ui/sidebar/sidebar-menu-badge.tsx","../src/ui/sidebar/use-sidebar.tsx","../src/ui/sidebar/sidebar-menu-button.tsx","../src/ui/sidebar/sidebar-menu-item.tsx","../src/ui/sidebar/sidebar-menu-skeleton.tsx","../src/ui/sidebar/sidebar-menu-sub.tsx","../src/ui/sidebar/sidebar-menu-sub-button.tsx","../src/ui/sidebar/sidebar-menu-sub-item.tsx","../src/ui/sidebar/sidebar-provider.tsx","../src/ui/sidebar/sidebar-rail.tsx","../src/ui/sidebar/sidebar-separator.tsx","../src/ui/sidebar/sidebar-trigger.tsx"],"sourcesContent":["export const SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nexport const SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nexport const SIDEBAR_WIDTH_ICON = \"3rem\";\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarContentProps = ComponentProps<\"div\">;\n\nconst SidebarContent = ({ className, ...props }: SidebarContentProps) => (\n <div\n className={cn(\n \"no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n data-sidebar=\"content\"\n data-slot=\"sidebar-content\"\n {...props}\n />\n);\n\nexport { SidebarContent };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarFooterProps = ComponentProps<\"div\">;\n\nconst SidebarFooter = ({ className, ...props }: SidebarFooterProps) => (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"footer\"\n data-slot=\"sidebar-footer\"\n {...props}\n />\n);\n\nexport { SidebarFooter };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupProps = ComponentProps<\"div\">;\n\nconst SidebarGroup = ({ className, ...props }: SidebarGroupProps) => (\n <div\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n data-sidebar=\"group\"\n data-slot=\"sidebar-group\"\n {...props}\n />\n);\n\nexport { SidebarGroup };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupActionProps = useRender.ComponentProps<\"button\"> &\n ComponentProps<\"button\">;\n\nconst SidebarGroupAction = ({\n className,\n render,\n ...props\n}: SidebarGroupActionProps) =>\n useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n });\n\nexport { SidebarGroupAction };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupContentProps = ComponentProps<\"div\">;\n\nconst SidebarGroupContent = ({\n className,\n ...props\n}: SidebarGroupContentProps) => (\n <div\n className={cn(\"w-full text-sm\", className)}\n data-sidebar=\"group-content\"\n data-slot=\"sidebar-group-content\"\n {...props}\n />\n);\n\nexport { SidebarGroupContent };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupLabelProps = useRender.ComponentProps<\"div\"> &\n ComponentProps<\"div\">;\n\nconst SidebarGroupLabel = ({\n className,\n render,\n ...props\n}: SidebarGroupLabelProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n });\n\nexport { SidebarGroupLabel };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarHeaderProps = ComponentProps<\"div\">;\n\nconst SidebarHeader = ({ className, ...props }: SidebarHeaderProps) => (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"header\"\n data-slot=\"sidebar-header\"\n {...props}\n />\n);\n\nexport { SidebarHeader };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { Input } from \"../input/input\";\nexport type SidebarInputProps = ComponentProps<typeof Input>;\n\nconst SidebarInput = ({\n className,\n size = \"sm\",\n ...props\n}: SidebarInputProps) => (\n <Input\n className={cn(\"w-full bg-background shadow-none\", className)}\n data-sidebar=\"input\"\n size={size}\n data-slot=\"sidebar-input\"\n {...props}\n />\n);\n\nexport { SidebarInput };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarInsetProps = ComponentProps<\"main\">;\n\nconst SidebarInset = ({ className, ...props }: SidebarInsetProps) => (\n <main\n className={cn(\n \"relative flex w-full min-w-0 flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className\n )}\n data-slot=\"sidebar-inset\"\n {...props}\n />\n);\n\nexport { SidebarInset };\n","import { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface SidebarMenuContextValue {\n size?: InputSize;\n}\n\nconst SidebarMenuContext = createContext<SidebarMenuContextValue>({\n size: \"md\",\n});\n\nexport { SidebarMenuContext };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\nexport type SidebarMenuProps = ComponentProps<\"ul\"> & {\n size?: InputSize;\n};\n\nconst SidebarMenu = ({\n className,\n size: providedSize,\n ...props\n}: SidebarMenuProps) => {\n const size = useComponentSize(providedSize);\n\n return (\n <SidebarMenuContext.Provider value={{ size }}>\n <ul\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n data-sidebar=\"menu\"\n data-size={size}\n data-slot=\"sidebar-menu\"\n {...props}\n />\n </SidebarMenuContext.Provider>\n );\n};\n\nexport { SidebarMenu };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuActionVariants = tv({\n base: \"absolute right-1 flex aspect-square items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:shrink-0\",\n variants: {\n size: {\n xs: \"top-0.5 w-4 [&>svg:not([class*='size-'])]:size-3\",\n sm: \"top-1 w-5 [&>svg:not([class*='size-'])]:size-3.5\",\n md: \"top-1.5 w-5 [&>svg:not([class*='size-'])]:size-4\",\n lg: \"top-2 w-6 [&>svg:not([class*='size-'])]:size-4\",\n xl: \"top-2.5 w-7 [&>svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuActionProps = useRender.ComponentProps<\"button\"> &\n ComponentProps<\"button\"> & {\n showOnHover?: boolean;\n size?: InputSize;\n } & VariantProps<typeof sidebarMenuActionVariants>;\n\nconst SidebarMenuAction = ({\n className,\n render,\n size,\n showOnHover = false,\n ...props\n}: SidebarMenuActionProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n sidebarMenuActionVariants({ size: resolvedSize }),\n \"peer-data-[size=xs]/menu-button:top-0.5 peer-data-[size=sm]/menu-button:top-1 peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2 peer-data-[size=xl]/menu-button:top-2.5\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground data-open:opacity-100 md:opacity-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n size: resolvedSize,\n },\n });\n};\n\nexport { SidebarMenuAction };\n","import type { ComponentProps } from \"react\";\n\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuBadgeVariants = tv({\n base: \"pointer-events-none absolute right-1 flex items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground\",\n variants: {\n size: {\n xs: \"top-0.5 h-4 min-w-4 text-[10px]\",\n sm: \"top-1 h-5 min-w-5 text-[11px]\",\n md: \"top-1.5 h-5 min-w-5 text-xs\",\n lg: \"top-2 h-6 min-w-6 text-xs\",\n xl: \"top-2.5 h-7 min-w-7 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuBadgeProps = ComponentProps<\"div\"> &\n VariantProps<typeof sidebarMenuBadgeVariants> & {\n size?: InputSize;\n };\n\nconst SidebarMenuBadge = ({\n className,\n size,\n ...props\n}: SidebarMenuBadgeProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return (\n <div\n className={cn(\n sidebarMenuBadgeVariants({ size: resolvedSize }),\n className\n )}\n data-sidebar=\"menu-badge\"\n data-size={resolvedSize}\n data-slot=\"sidebar-menu-badge\"\n {...props}\n />\n );\n};\n\nexport { SidebarMenuBadge };\n","\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nexport interface SidebarContextProps {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | null>(null);\n\nexport const useSidebar = () => {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n};\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip/tooltip\";\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\nimport { useSidebar } from \"./use-sidebar\";\nexport type SidebarMenuButtonProps = useRender.ComponentProps<\"button\"> &\n ComponentProps<\"button\"> & {\n isActive?: boolean;\n tooltip?: string | ComponentProps<typeof TooltipContent>;\n size?: InputSize;\n } & VariantProps<typeof sidebarMenuButtonVariants>;\n\nconst sidebarMenuButtonVariants = tv({\n base: \"peer/menu-button group/menu-button flex w-full cursor-pointer items-center gap-2 overflow-hidden rounded-md text-left ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground [&_svg]:shrink-0 [&>span:last-child]:truncate\",\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--kb-sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--kb-sidebar-accent))]\",\n },\n size: {\n xs: \"h-6 px-1.5 py-1 text-xs [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 px-2 py-1 text-xs [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n lg: \"h-10 px-2.5 py-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n xl: \"h-11 px-3 py-2 text-base [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nconst SidebarMenuButton = ({\n render,\n isActive = false,\n variant = \"default\",\n size,\n tooltip,\n className,\n ...props\n}: SidebarMenuButtonProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n const { isMobile, state } = useSidebar();\n const comp = useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n sidebarMenuButtonVariants({ size: resolvedSize, variant }),\n className\n ),\n },\n props\n ),\n render: tooltip ? TooltipTrigger : render,\n state: {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size: resolvedSize,\n active: isActive,\n },\n });\n\n if (!tooltip) {\n return comp;\n }\n\n if (typeof tooltip === \"string\") {\n // oxlint-disable-next-line no-param-reassign\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n {comp}\n <TooltipContent\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n side=\"right\"\n {...tooltip}\n />\n </Tooltip>\n );\n};\n\nexport { SidebarMenuButton, sidebarMenuButtonVariants };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarMenuItemProps = ComponentProps<\"li\">;\n\nconst SidebarMenuItem = ({ className, ...props }: SidebarMenuItemProps) => (\n <li\n className={cn(\"group/menu-item relative\", className)}\n data-sidebar=\"menu-item\"\n data-slot=\"sidebar-menu-item\"\n {...props}\n />\n);\n\nexport { SidebarMenuItem };\n","\"use client\";\n\nimport type { ComponentProps, CSSProperties } from \"react\";\n\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { Skeleton } from \"../skeleton/skeleton\";\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuSkeletonVariants = tv({\n base: \"flex items-center gap-2 rounded-md\",\n variants: {\n size: {\n xs: \"h-6 px-1.5\",\n sm: \"h-7 px-2\",\n md: \"h-8 px-2\",\n lg: \"h-10 px-2.5\",\n xl: \"h-11 px-3\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuSkeletonProps = ComponentProps<\"div\"> & {\n showIcon?: boolean;\n size?: InputSize;\n} & VariantProps<typeof sidebarMenuSkeletonVariants>;\n\nconst SidebarMenuSkeleton = ({\n className,\n size,\n showIcon = false,\n ...props\n}: SidebarMenuSkeletonProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return (\n <div\n className={cn(\n sidebarMenuSkeletonVariants({ size: resolvedSize }),\n className\n )}\n data-sidebar=\"menu-skeleton\"\n data-size={resolvedSize}\n data-slot=\"sidebar-menu-skeleton\"\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": \"100%\",\n } as CSSProperties\n }\n />\n </div>\n );\n};\n\nexport { SidebarMenuSkeleton };\n","import type { ComponentProps } from \"react\";\n\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuSubVariants = tv({\n base: \"flex min-w-0 translate-x-px flex-col border-l border-sidebar-border group-data-[collapsible=icon]:hidden\",\n variants: {\n size: {\n xs: \"mx-2.5 gap-0.5 px-1.5 py-0.5\",\n sm: \"mx-3 gap-1 px-2 py-0.5\",\n md: \"mx-3.5 gap-1 px-2.5 py-0.5\",\n lg: \"mx-4 gap-1 px-3 py-1\",\n xl: \"mx-4.5 gap-1.5 px-3.5 py-1\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuSubProps = ComponentProps<\"ul\"> &\n VariantProps<typeof sidebarMenuSubVariants> & {\n size?: InputSize;\n };\n\nconst SidebarMenuSub = ({ className, size, ...props }: SidebarMenuSubProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return (\n <ul\n className={cn(sidebarMenuSubVariants({ size: resolvedSize }), className)}\n data-sidebar=\"menu-sub\"\n data-size={resolvedSize}\n data-slot=\"sidebar-menu-sub\"\n {...props}\n />\n );\n};\n\nexport { SidebarMenuSub };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\nexport type SidebarMenuSubButtonProps = useRender.ComponentProps<\"a\"> &\n ComponentProps<\"a\"> & {\n size?: InputSize;\n isActive?: boolean;\n } & VariantProps<typeof sidebarMenuSubButtonVariants>;\n\nconst sidebarMenuSubButtonVariants = tv({\n base: \"flex min-w-0 -translate-x-px cursor-pointer items-center overflow-hidden rounded-md text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n variants: {\n size: {\n xs: \"h-6 gap-1.5 px-1.5 text-xs [&>svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-2 px-2 text-xs [&>svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 gap-2 px-2 text-sm [&>svg:not([class*='size-'])]:size-4\",\n lg: \"h-9 gap-2.5 px-2.5 text-sm [&>svg:not([class*='size-'])]:size-4\",\n xl: \"h-10 gap-2.5 px-3 text-base [&>svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst SidebarMenuSubButton = ({\n render,\n size,\n isActive = false,\n className,\n ...props\n}: SidebarMenuSubButtonProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n sidebarMenuSubButtonVariants({ size: resolvedSize }),\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size: resolvedSize,\n active: isActive,\n },\n });\n};\n\nexport { SidebarMenuSubButton };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarMenuSubItemProps = ComponentProps<\"li\">;\n\nconst SidebarMenuSubItem = ({\n className,\n ...props\n}: SidebarMenuSubItemProps) => (\n <li\n className={cn(\"group/menu-sub-item relative\", className)}\n data-sidebar=\"menu-sub-item\"\n data-slot=\"sidebar-menu-sub-item\"\n {...props}\n />\n);\n\nexport { SidebarMenuSubItem };\n","\"use client\";\n\nimport type { ComponentProps, CSSProperties } from \"react\";\n\nimport { useIsMobile } from \"@kuzenbo/hooks\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport {\n SIDEBAR_COOKIE_MAX_AGE,\n SIDEBAR_COOKIE_NAME,\n SIDEBAR_KEYBOARD_SHORTCUT,\n SIDEBAR_WIDTH,\n SIDEBAR_WIDTH_ICON,\n} from \"./constants\";\nimport { SidebarContext, type SidebarContextProps } from \"./use-sidebar\";\nexport type SidebarProviderProps = ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nconst SidebarProvider = ({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = useCallback(\n (value: boolean | ((prev: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n // oxlint-disable-next-line unicorn/no-document-cookie\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(\n () =>\n isMobile ? setOpenMobile((prev) => !prev) : setOpen((prev) => !prev),\n [isMobile, setOpen]\n );\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n};\n\nexport { SidebarProvider };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { useSidebar } from \"./use-sidebar\";\nexport type SidebarRailProps = ComponentProps<\"button\">;\n\nconst SidebarRail = ({ className, ...props }: SidebarRailProps) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n type=\"button\"\n aria-label=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offExamples]:translate-x-0 group-data-[collapsible=offExamples]:after:left-full hover:group-data-[collapsible=offExamples]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offExamples]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offExamples]_&]:-left-2\",\n className\n )}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n onClick={toggleSidebar}\n tabIndex={-1}\n title=\"Toggle Sidebar\"\n {...props}\n />\n );\n};\n\nexport { SidebarRail };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { Separator } from \"../separator/separator\";\nexport type SidebarSeparatorProps = ComponentProps<typeof Separator>;\n\nconst SidebarSeparator = ({ className, ...props }: SidebarSeparatorProps) => (\n <Separator\n className={cn(\"w-auto bg-sidebar-border\", className)}\n data-sidebar=\"separator\"\n data-slot=\"sidebar-separator\"\n {...props}\n />\n);\n\nexport { SidebarSeparator };\n","\"use client\";\n\nimport { SidebarLeftIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useCallback, type ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useSidebar } from \"./use-sidebar\";\nexport type SidebarTriggerProps = ComponentProps<typeof Button>;\n\nconst SidebarTrigger = ({\n className,\n onClick,\n ...props\n}: SidebarTriggerProps) => {\n const { toggleSidebar } = useSidebar();\n\n const handleClick = useCallback(\n (\n event: Parameters<\n NonNullable<ComponentProps<typeof Button>[\"onClick\"]>\n >[0]\n ) => {\n onClick?.(event);\n toggleSidebar();\n },\n [onClick, toggleSidebar]\n );\n\n return (\n <Button\n className={cn(className)}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n onClick={handleClick}\n size=\"icon-sm\"\n variant=\"ghost\"\n {...props}\n >\n <HugeiconsIcon icon={SidebarLeftIcon} strokeWidth={2} />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n};\n\nexport { SidebarTrigger };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sidebar-trigger-DpUDeyoo.js","names":[],"sources":["../src/ui/sidebar/constants.ts","../src/ui/sidebar/sidebar-content.tsx","../src/ui/sidebar/sidebar-footer.tsx","../src/ui/sidebar/sidebar-group.tsx","../src/ui/sidebar/sidebar-group-action.tsx","../src/ui/sidebar/sidebar-group-content.tsx","../src/ui/sidebar/sidebar-group-label.tsx","../src/ui/sidebar/sidebar-header.tsx","../src/ui/sidebar/sidebar-input.tsx","../src/ui/sidebar/sidebar-inset.tsx","../src/ui/sidebar/sidebar-menu-context.tsx","../src/ui/sidebar/sidebar-menu.tsx","../src/ui/sidebar/sidebar-menu-action.tsx","../src/ui/sidebar/sidebar-menu-badge.tsx","../src/ui/sidebar/use-sidebar.tsx","../src/ui/sidebar/sidebar-menu-button.tsx","../src/ui/sidebar/sidebar-menu-item.tsx","../src/ui/sidebar/sidebar-menu-skeleton.tsx","../src/ui/sidebar/sidebar-menu-sub.tsx","../src/ui/sidebar/sidebar-menu-sub-button.tsx","../src/ui/sidebar/sidebar-menu-sub-item.tsx","../src/ui/sidebar/sidebar-provider.tsx","../src/ui/sidebar/sidebar-rail.tsx","../src/ui/sidebar/sidebar-separator.tsx","../src/ui/sidebar/sidebar-trigger.tsx"],"sourcesContent":["export const SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nexport const SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nexport const SIDEBAR_WIDTH_ICON = \"3rem\";\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarContentProps = ComponentProps<\"div\">;\n\nconst SidebarContent = ({ className, ...props }: SidebarContentProps) => (\n <div\n className={cn(\n \"no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n data-sidebar=\"content\"\n data-slot=\"sidebar-content\"\n {...props}\n />\n);\n\nexport { SidebarContent };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarFooterProps = ComponentProps<\"div\">;\n\nconst SidebarFooter = ({ className, ...props }: SidebarFooterProps) => (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"footer\"\n data-slot=\"sidebar-footer\"\n {...props}\n />\n);\n\nexport { SidebarFooter };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupProps = ComponentProps<\"div\">;\n\nconst SidebarGroup = ({ className, ...props }: SidebarGroupProps) => (\n <div\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n data-sidebar=\"group\"\n data-slot=\"sidebar-group\"\n {...props}\n />\n);\n\nexport { SidebarGroup };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupActionProps = useRender.ComponentProps<\"button\"> &\n ComponentProps<\"button\">;\n\nconst SidebarGroupAction = ({\n className,\n render,\n ...props\n}: SidebarGroupActionProps) =>\n useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n });\n\nexport { SidebarGroupAction };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupContentProps = ComponentProps<\"div\">;\n\nconst SidebarGroupContent = ({\n className,\n ...props\n}: SidebarGroupContentProps) => (\n <div\n className={cn(\"w-full text-sm\", className)}\n data-sidebar=\"group-content\"\n data-slot=\"sidebar-group-content\"\n {...props}\n />\n);\n\nexport { SidebarGroupContent };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cn } from \"tailwind-variants\";\nexport type SidebarGroupLabelProps = useRender.ComponentProps<\"div\"> &\n ComponentProps<\"div\">;\n\nconst SidebarGroupLabel = ({\n className,\n render,\n ...props\n}: SidebarGroupLabelProps) =>\n useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n });\n\nexport { SidebarGroupLabel };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarHeaderProps = ComponentProps<\"div\">;\n\nconst SidebarHeader = ({ className, ...props }: SidebarHeaderProps) => (\n <div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"header\"\n data-slot=\"sidebar-header\"\n {...props}\n />\n);\n\nexport { SidebarHeader };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { Input } from \"../input/input\";\nexport type SidebarInputProps = ComponentProps<typeof Input>;\n\nconst SidebarInput = ({\n className,\n size = \"sm\",\n ...props\n}: SidebarInputProps) => (\n <Input\n className={cn(\"w-full bg-background shadow-none\", className)}\n data-sidebar=\"input\"\n size={size}\n data-slot=\"sidebar-input\"\n {...props}\n />\n);\n\nexport { SidebarInput };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarInsetProps = ComponentProps<\"main\">;\n\nconst SidebarInset = ({ className, ...props }: SidebarInsetProps) => (\n <main\n className={cn(\n \"relative flex w-full min-w-0 flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className\n )}\n data-slot=\"sidebar-inset\"\n {...props}\n />\n);\n\nexport { SidebarInset };\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface SidebarMenuContextValue {\n size?: InputSize;\n}\n\nconst SidebarMenuContext = createContext<SidebarMenuContextValue>({\n size: \"md\",\n});\n\nexport { SidebarMenuContext };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\nexport type SidebarMenuProps = ComponentProps<\"ul\"> & {\n size?: InputSize;\n};\n\nconst SidebarMenu = ({\n className,\n size: providedSize,\n ...props\n}: SidebarMenuProps) => {\n const size = useComponentSize(providedSize);\n\n return (\n <SidebarMenuContext.Provider value={{ size }}>\n <ul\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n data-sidebar=\"menu\"\n data-size={size}\n data-slot=\"sidebar-menu\"\n {...props}\n />\n </SidebarMenuContext.Provider>\n );\n};\n\nexport { SidebarMenu };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuActionVariants = tv({\n base: \"absolute right-1 flex aspect-square items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:shrink-0\",\n variants: {\n size: {\n xs: \"top-0.5 w-4 [&>svg:not([class*='size-'])]:size-3\",\n sm: \"top-1 w-5 [&>svg:not([class*='size-'])]:size-3.5\",\n md: \"top-1.5 w-5 [&>svg:not([class*='size-'])]:size-4\",\n lg: \"top-2 w-6 [&>svg:not([class*='size-'])]:size-4\",\n xl: \"top-2.5 w-7 [&>svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuActionProps = useRender.ComponentProps<\"button\"> &\n ComponentProps<\"button\"> & {\n showOnHover?: boolean;\n size?: InputSize;\n } & VariantProps<typeof sidebarMenuActionVariants>;\n\nconst SidebarMenuAction = ({\n className,\n render,\n size,\n showOnHover = false,\n ...props\n}: SidebarMenuActionProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n sidebarMenuActionVariants({ size: resolvedSize }),\n \"peer-data-[size=xs]/menu-button:top-0.5 peer-data-[size=sm]/menu-button:top-1 peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2 peer-data-[size=xl]/menu-button:top-2.5\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground data-open:opacity-100 md:opacity-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n size: resolvedSize,\n },\n });\n};\n\nexport { SidebarMenuAction };\n","import type { ComponentProps } from \"react\";\n\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuBadgeVariants = tv({\n base: \"pointer-events-none absolute right-1 flex items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground\",\n variants: {\n size: {\n xs: \"top-0.5 h-4 min-w-4 text-[10px]\",\n sm: \"top-1 h-5 min-w-5 text-[11px]\",\n md: \"top-1.5 h-5 min-w-5 text-xs\",\n lg: \"top-2 h-6 min-w-6 text-xs\",\n xl: \"top-2.5 h-7 min-w-7 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuBadgeProps = ComponentProps<\"div\"> &\n VariantProps<typeof sidebarMenuBadgeVariants> & {\n size?: InputSize;\n };\n\nconst SidebarMenuBadge = ({\n className,\n size,\n ...props\n}: SidebarMenuBadgeProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return (\n <div\n className={cn(\n sidebarMenuBadgeVariants({ size: resolvedSize }),\n className\n )}\n data-sidebar=\"menu-badge\"\n data-size={resolvedSize}\n data-slot=\"sidebar-menu-badge\"\n {...props}\n />\n );\n};\n\nexport { SidebarMenuBadge };\n","\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nexport interface SidebarContextProps {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | null>(null);\n\nexport const useSidebar = () => {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n};\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../tooltip/tooltip\";\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\nimport { useSidebar } from \"./use-sidebar\";\nexport type SidebarMenuButtonProps = useRender.ComponentProps<\"button\"> &\n ComponentProps<\"button\"> & {\n isActive?: boolean;\n tooltip?: string | ComponentProps<typeof TooltipContent>;\n size?: InputSize;\n } & VariantProps<typeof sidebarMenuButtonVariants>;\n\nconst sidebarMenuButtonVariants = tv({\n base: \"peer/menu-button group/menu-button flex w-full cursor-pointer items-center gap-2 overflow-hidden rounded-md text-left ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground [&_svg]:shrink-0 [&>span:last-child]:truncate\",\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--kb-sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--kb-sidebar-accent))]\",\n },\n size: {\n xs: \"h-6 px-1.5 py-1 text-xs [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 px-2 py-1 text-xs [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n lg: \"h-10 px-2.5 py-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n xl: \"h-11 px-3 py-2 text-base [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nconst SidebarMenuButton = ({\n render,\n isActive = false,\n variant = \"default\",\n size,\n tooltip,\n className,\n ...props\n}: SidebarMenuButtonProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n const { isMobile, state } = useSidebar();\n const comp = useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n sidebarMenuButtonVariants({ size: resolvedSize, variant }),\n className\n ),\n },\n props\n ),\n render: tooltip ? TooltipTrigger : render,\n state: {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size: resolvedSize,\n active: isActive,\n },\n });\n\n if (!tooltip) {\n return comp;\n }\n\n if (typeof tooltip === \"string\") {\n // oxlint-disable-next-line no-param-reassign\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n {comp}\n <TooltipContent\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n side=\"right\"\n {...tooltip}\n />\n </Tooltip>\n );\n};\n\nexport { SidebarMenuButton, sidebarMenuButtonVariants };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarMenuItemProps = ComponentProps<\"li\">;\n\nconst SidebarMenuItem = ({ className, ...props }: SidebarMenuItemProps) => (\n <li\n className={cn(\"group/menu-item relative\", className)}\n data-sidebar=\"menu-item\"\n data-slot=\"sidebar-menu-item\"\n {...props}\n />\n);\n\nexport { SidebarMenuItem };\n","\"use client\";\n\nimport type { ComponentProps, CSSProperties } from \"react\";\n\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { Skeleton } from \"../skeleton/skeleton\";\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuSkeletonVariants = tv({\n base: \"flex items-center gap-2 rounded-md\",\n variants: {\n size: {\n xs: \"h-6 px-1.5\",\n sm: \"h-7 px-2\",\n md: \"h-8 px-2\",\n lg: \"h-10 px-2.5\",\n xl: \"h-11 px-3\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuSkeletonProps = ComponentProps<\"div\"> & {\n showIcon?: boolean;\n size?: InputSize;\n} & VariantProps<typeof sidebarMenuSkeletonVariants>;\n\nconst SidebarMenuSkeleton = ({\n className,\n size,\n showIcon = false,\n ...props\n}: SidebarMenuSkeletonProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return (\n <div\n className={cn(\n sidebarMenuSkeletonVariants({ size: resolvedSize }),\n className\n )}\n data-sidebar=\"menu-skeleton\"\n data-size={resolvedSize}\n data-slot=\"sidebar-menu-skeleton\"\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": \"100%\",\n } as CSSProperties\n }\n />\n </div>\n );\n};\n\nexport { SidebarMenuSkeleton };\n","import type { ComponentProps } from \"react\";\n\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\n\nconst sidebarMenuSubVariants = tv({\n base: \"flex min-w-0 translate-x-px flex-col border-l border-sidebar-border group-data-[collapsible=icon]:hidden\",\n variants: {\n size: {\n xs: \"mx-2.5 gap-0.5 px-1.5 py-0.5\",\n sm: \"mx-3 gap-1 px-2 py-0.5\",\n md: \"mx-3.5 gap-1 px-2.5 py-0.5\",\n lg: \"mx-4 gap-1 px-3 py-1\",\n xl: \"mx-4.5 gap-1.5 px-3.5 py-1\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type SidebarMenuSubProps = ComponentProps<\"ul\"> &\n VariantProps<typeof sidebarMenuSubVariants> & {\n size?: InputSize;\n };\n\nconst SidebarMenuSub = ({ className, size, ...props }: SidebarMenuSubProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return (\n <ul\n className={cn(sidebarMenuSubVariants({ size: resolvedSize }), className)}\n data-sidebar=\"menu-sub\"\n data-size={resolvedSize}\n data-slot=\"sidebar-menu-sub\"\n {...props}\n />\n );\n};\n\nexport { SidebarMenuSub };\n","import type { ComponentProps } from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { SidebarMenuContext } from \"./sidebar-menu-context\";\nexport type SidebarMenuSubButtonProps = useRender.ComponentProps<\"a\"> &\n ComponentProps<\"a\"> & {\n size?: InputSize;\n isActive?: boolean;\n } & VariantProps<typeof sidebarMenuSubButtonVariants>;\n\nconst sidebarMenuSubButtonVariants = tv({\n base: \"flex min-w-0 -translate-x-px cursor-pointer items-center overflow-hidden rounded-md text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n variants: {\n size: {\n xs: \"h-6 gap-1.5 px-1.5 text-xs [&>svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-2 px-2 text-xs [&>svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 gap-2 px-2 text-sm [&>svg:not([class*='size-'])]:size-4\",\n lg: \"h-9 gap-2.5 px-2.5 text-sm [&>svg:not([class*='size-'])]:size-4\",\n xl: \"h-10 gap-2.5 px-3 text-base [&>svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst SidebarMenuSubButton = ({\n render,\n size,\n isActive = false,\n className,\n ...props\n}: SidebarMenuSubButtonProps) => {\n const { size: menuSize } = useContext(SidebarMenuContext);\n const resolvedSize: InputSize = size ?? menuSize ?? \"md\";\n\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n sidebarMenuSubButtonVariants({ size: resolvedSize }),\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size: resolvedSize,\n active: isActive,\n },\n });\n};\n\nexport { SidebarMenuSubButton };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type SidebarMenuSubItemProps = ComponentProps<\"li\">;\n\nconst SidebarMenuSubItem = ({\n className,\n ...props\n}: SidebarMenuSubItemProps) => (\n <li\n className={cn(\"group/menu-sub-item relative\", className)}\n data-sidebar=\"menu-sub-item\"\n data-slot=\"sidebar-menu-sub-item\"\n {...props}\n />\n);\n\nexport { SidebarMenuSubItem };\n","\"use client\";\n\nimport type { ComponentProps, CSSProperties } from \"react\";\n\nimport { useIsMobile } from \"@kuzenbo/hooks\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport {\n SIDEBAR_COOKIE_MAX_AGE,\n SIDEBAR_COOKIE_NAME,\n SIDEBAR_KEYBOARD_SHORTCUT,\n SIDEBAR_WIDTH,\n SIDEBAR_WIDTH_ICON,\n} from \"./constants\";\nimport { SidebarContext, type SidebarContextProps } from \"./use-sidebar\";\nexport type SidebarProviderProps = ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\n\nconst SidebarProvider = ({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = useCallback(\n (value: boolean | ((prev: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n // oxlint-disable-next-line unicorn/no-document-cookie\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(\n () =>\n isMobile ? setOpenMobile((prev) => !prev) : setOpen((prev) => !prev),\n [isMobile, setOpen]\n );\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n );\n};\n\nexport { SidebarProvider };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { useSidebar } from \"./use-sidebar\";\nexport type SidebarRailProps = ComponentProps<\"button\">;\n\nconst SidebarRail = ({ className, ...props }: SidebarRailProps) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n type=\"button\"\n aria-label=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offExamples]:translate-x-0 group-data-[collapsible=offExamples]:after:left-full hover:group-data-[collapsible=offExamples]:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offExamples]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offExamples]_&]:-left-2\",\n className\n )}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n onClick={toggleSidebar}\n tabIndex={-1}\n title=\"Toggle Sidebar\"\n {...props}\n />\n );\n};\n\nexport { SidebarRail };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { Separator } from \"../separator/separator\";\nexport type SidebarSeparatorProps = ComponentProps<typeof Separator>;\n\nconst SidebarSeparator = ({ className, ...props }: SidebarSeparatorProps) => (\n <Separator\n className={cn(\"w-auto bg-sidebar-border\", className)}\n data-sidebar=\"separator\"\n data-slot=\"sidebar-separator\"\n {...props}\n />\n);\n\nexport { SidebarSeparator };\n","\"use client\";\n\nimport { SidebarLeftIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useCallback, type ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useSidebar } from \"./use-sidebar\";\nexport type SidebarTriggerProps = ComponentProps<typeof Button>;\n\nconst SidebarTrigger = ({\n className,\n onClick,\n ...props\n}: SidebarTriggerProps) => {\n const { toggleSidebar } = useSidebar();\n\n const handleClick = useCallback(\n (\n event: Parameters<\n NonNullable<ComponentProps<typeof Button>[\"onClick\"]>\n >[0]\n ) => {\n onClick?.(event);\n toggleSidebar();\n },\n [onClick, toggleSidebar]\n );\n\n return (\n <Button\n className={cn(className)}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n onClick={handleClick}\n size=\"icon-sm\"\n variant=\"ghost\"\n {...props}\n >\n <HugeiconsIcon icon={SidebarLeftIcon} strokeWidth={2} />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n};\n\nexport { SidebarTrigger };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-context-CPoCTRTV.d.ts","names":[],"sources":["../src/ui/shared/size/size-context.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"size-context-CPoCTRTV.d.ts","names":[],"sources":["../src/ui/shared/size/size-context.ts"],"mappings":";;;;UASiB,gBAAA;EACf,IAAA,GAAO,MAAA;AAAA;AAAA,cAGI,iBAAA,GAAqB,WAAA,GAAa,MAAA;;;;oCAUJ,MAAA,2BAA4B,MAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-context-rJNE33WZ.js","names":[],"sources":["../src/ui/shared/size/size-context.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"size-context-rJNE33WZ.js","names":[],"sources":["../src/ui/shared/size/size-context.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nimport type { UISize } from \"./size-system\";\n\nimport { DEFAULT_UI_SIZE, resolveSize } from \"./resolve-size\";\nimport { useGlobalUISize } from \"./size-provider\";\n\nexport interface SizeContextValue {\n size?: UISize;\n}\n\nexport const createSizeContext = (defaultSize: UISize = DEFAULT_UI_SIZE) => {\n const SizeContext = createContext<\n SizeContextValue & {\n hasFallbackDefault?: true;\n }\n >({\n size: defaultSize,\n hasFallbackDefault: true,\n });\n\n const useResolvedSize = (...candidates: (UISize | undefined | null)[]) => {\n const [explicitCandidate, ...contextAfterCandidates] = candidates;\n const { hasFallbackDefault, size: contextSize } = useContext(SizeContext);\n const localSize = hasFallbackDefault ? undefined : contextSize;\n const globalSize = useGlobalUISize();\n\n return resolveSize(\n explicitCandidate,\n localSize,\n ...contextAfterCandidates,\n globalSize,\n defaultSize\n );\n };\n\n return { SizeContext, useResolvedSize };\n};\n"],"mappings":";;;;AAaA,MAAa,qBAAqB,cAAsB,oBAAoB;CAC1E,MAAM,cAAc,cAIlB;EACA,MAAM;EACN,oBAAoB;EACrB,CAAC;CAEF,MAAM,mBAAmB,GAAG,eAA8C;EACxE,MAAM,CAAC,mBAAmB,GAAG,0BAA0B;EACvD,MAAM,EAAE,oBAAoB,MAAM,gBAAgB,WAAW,YAAY;EACzE,MAAM,YAAY,qBAAqB,SAAY;EACnD,MAAM,aAAa,iBAAiB;AAEpC,SAAO,YACL,mBACA,WACA,GAAG,wBACH,YACA,YACD;;AAGH,QAAO;EAAE;EAAa;EAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-provider-D2Fy00Ky.js","names":[],"sources":["../src/ui/shared/provider/create-strict-context.ts","../src/ui/shared/size/resolve-size.ts","../src/ui/shared/size/size-provider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"size-provider-D2Fy00Ky.js","names":[],"sources":["../src/ui/shared/provider/create-strict-context.ts","../src/ui/shared/size/resolve-size.ts","../src/ui/shared/size/size-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nexport const createStrictContext = <T>(errorMessage: string) => {\n const StrictContext = createContext<T | null>(null);\n\n const useStrictContext = (): T => {\n const context = useContext(StrictContext);\n\n if (!context) {\n throw new Error(errorMessage);\n }\n\n return context;\n };\n\n const useOptionalContext = (): T | null => useContext(StrictContext);\n\n return {\n StrictContext,\n useOptionalContext,\n useStrictContext,\n };\n};\n","import type { UISize } from \"./size-system\";\n\nconst DEFAULT_UI_SIZE: UISize = \"md\";\n\nexport const resolveSize = (\n ...candidates: (UISize | undefined | null)[]\n): UISize => {\n for (const candidate of candidates) {\n if (candidate !== undefined && candidate !== null) {\n return candidate;\n }\n }\n\n return DEFAULT_UI_SIZE;\n};\n\nexport { DEFAULT_UI_SIZE };\n","\"use client\";\n\nimport type { CSSProperties, ReactNode } from \"react\";\n\nimport { useMemo } from \"react\";\n\nimport type { UISize } from \"./size-system\";\n\nimport { createStrictContext } from \"../provider/create-strict-context\";\nimport { DEFAULT_UI_SIZE, resolveSize } from \"./resolve-size\";\n\nexport type KuzenboEnv = \"default\" | \"test\";\nexport type KuzenboComponentDefaultProps = Record<string, unknown>;\n\nexport interface KuzenboComponentConfig {\n defaultProps?: KuzenboComponentDefaultProps;\n}\n\nexport type KuzenboComponentsConfig = Record<\n string,\n KuzenboComponentConfig | undefined\n>;\n\nexport interface KuzenboContextValue {\n components: KuzenboComponentsConfig;\n defaultRadius?: number | string;\n defaultSize?: UISize;\n env: KuzenboEnv;\n reducedMotion: boolean;\n}\n\nexport interface KuzenboProviderProps {\n children: ReactNode;\n components?: KuzenboComponentsConfig;\n defaultRadius?: number | string;\n defaultSize?: UISize;\n env?: KuzenboEnv;\n inherit?: boolean;\n reducedMotion?: boolean;\n}\n\nexport const KUZENBO_PROVIDER_MISSING_ERROR =\n \"[@kuzenbo/core] KuzenboProvider was not found in tree. Wrap app root with <KuzenboProvider>.\";\n\nconst {\n StrictContext: KuzenboContext,\n useOptionalContext: useOptionalKuzenboContextInternal,\n} = createStrictContext<KuzenboContextValue>(KUZENBO_PROVIDER_MISSING_ERROR);\n\nconst KUZENBO_TEST_CONTEXT_FALLBACK: KuzenboContextValue = {\n components: {},\n defaultRadius: undefined,\n defaultSize: undefined,\n env: \"test\",\n reducedMotion: false,\n};\n\nconst isMissingProviderAllowed = (): boolean =>\n (\n globalThis as {\n __KUZENBO_ALLOW_MISSING_PROVIDER__?: boolean;\n }\n ).__KUZENBO_ALLOW_MISSING_PROVIDER__ === true;\n\nconst mergeComponentConfigs = (\n parent: KuzenboComponentsConfig | undefined,\n own: KuzenboComponentsConfig | undefined\n): KuzenboComponentsConfig => {\n const merged: KuzenboComponentsConfig = { ...parent };\n\n if (!own) {\n return merged;\n }\n\n for (const [componentName, componentConfig] of Object.entries(own)) {\n const parentConfig = merged[componentName];\n\n if (!componentConfig) {\n merged[componentName] = parentConfig;\n continue;\n }\n\n merged[componentName] = {\n ...parentConfig,\n ...componentConfig,\n defaultProps: {\n ...parentConfig?.defaultProps,\n ...componentConfig.defaultProps,\n },\n };\n }\n\n return merged;\n};\n\nconst toRadiusVariableValue = (value: number | string): string =>\n typeof value === \"number\" ? `${value}px` : value;\n\nexport const filterUndefinedProps = <T extends object>(\n input: Partial<T> | undefined\n): Partial<T> => {\n if (!input) {\n return {};\n }\n\n const filtered: Partial<T> = {};\n\n for (const [key, value] of Object.entries(input)) {\n if (value !== undefined) {\n filtered[key as keyof T] = value as T[keyof T];\n }\n }\n\n return filtered;\n};\n\nexport const KuzenboProvider = ({\n children,\n components,\n defaultRadius,\n defaultSize,\n env,\n inherit = true,\n reducedMotion,\n}: KuzenboProviderProps) => {\n const parentContext = useOptionalKuzenboContextInternal();\n const inheritedContext = inherit ? parentContext : null;\n\n const contextValue = useMemo<KuzenboContextValue>(\n () => ({\n components: mergeComponentConfigs(\n inheritedContext?.components,\n components\n ),\n defaultRadius: defaultRadius ?? inheritedContext?.defaultRadius,\n defaultSize: defaultSize ?? inheritedContext?.defaultSize,\n env: env ?? inheritedContext?.env ?? \"default\",\n reducedMotion: reducedMotion ?? inheritedContext?.reducedMotion ?? false,\n }),\n [\n components,\n defaultRadius,\n defaultSize,\n env,\n inheritedContext,\n reducedMotion,\n ]\n );\n\n const providerStyle = useMemo(() => {\n const style: CSSProperties = {\n display: \"contents\",\n };\n\n if (contextValue.defaultRadius !== undefined) {\n (\n style as CSSProperties & {\n \"--kb-radius\": string;\n }\n )[\"--kb-radius\"] = toRadiusVariableValue(contextValue.defaultRadius);\n }\n\n return style;\n }, [contextValue.defaultRadius]);\n\n return (\n <KuzenboContext.Provider value={contextValue}>\n <div\n data-kb-env={contextValue.env}\n data-kb-motion={contextValue.reducedMotion ? \"reduce\" : \"allow\"}\n data-slot=\"kuzenbo-provider\"\n style={providerStyle}\n >\n {children}\n </div>\n </KuzenboContext.Provider>\n );\n};\n\nexport const useKuzenboContext = (): KuzenboContextValue => {\n const context = useOptionalKuzenboContextInternal();\n\n if (context) {\n return context;\n }\n\n if (isMissingProviderAllowed()) {\n return KUZENBO_TEST_CONTEXT_FALLBACK;\n }\n\n throw new Error(KUZENBO_PROVIDER_MISSING_ERROR);\n};\n\nexport const useOptionalKuzenboContext = (): KuzenboContextValue | null =>\n useOptionalKuzenboContextInternal();\n\nexport const useKuzenboEnv = (): KuzenboEnv => useKuzenboContext().env;\n\nexport const useKuzenboReducedMotion = (): boolean =>\n useKuzenboContext().reducedMotion;\n\nexport const useKuzenboComponentDefaults = <T extends object>(\n componentName: string\n): Partial<T> => {\n const context = useKuzenboContext();\n\n return (context.components[componentName]?.defaultProps ?? {}) as Partial<T>;\n};\n\nexport const useComponentDefaultProps = <T extends object>(\n componentName: string,\n defaultProps: Partial<T>,\n props: T\n): T => {\n const componentDefaults = useKuzenboComponentDefaults<T>(componentName);\n\n return {\n ...filterUndefinedProps(defaultProps),\n ...filterUndefinedProps(componentDefaults),\n ...filterUndefinedProps(props),\n } as T;\n};\n\nexport const useGlobalUISize = (): UISize | undefined =>\n useKuzenboContext().defaultSize;\n\nexport const useComponentSize = (\n ...candidates: (UISize | undefined | null)[]\n): UISize => {\n const globalSize = useGlobalUISize();\n\n return resolveSize(...candidates, globalSize, DEFAULT_UI_SIZE);\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-trigger-CzOTnpSV.js","names":["TabsPrimitive","TabsPrimitive","TabsPrimitive","TabsPrimitive"],"sources":["../src/ui/tabs/tabs-content.tsx","../src/ui/tabs/tabs-style-context.ts","../src/ui/tabs/tabs-indicator.tsx","../src/ui/tabs/tabs-list.tsx","../src/ui/tabs/tabs-trigger.tsx"],"sourcesContent":["\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type TabsContentProps = TabsPrimitive.Panel.Props;\n\nconst TabsContent = ({ className, ...props }: TabsContentProps) => (\n <TabsPrimitive.Panel\n className={mergeBaseUIClassName<TabsPrimitive.Panel.State>(\n \"flex-1 text-sm outline-none focus-visible:rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-ring\",\n className\n )}\n data-slot=\"tabs-content\"\n {...props}\n />\n);\n\nexport { TabsContent };\n","import { createContext, useContext } from \"react\";\n\nimport type { UISize } from \"../shared/size/size-system\";\n\ntype TabsListVariant = \"default\" | \"line\" | \"pill\";\n\ntype TabsListSize = UISize;\n\ninterface TabsStyleContextValue {\n variant: TabsListVariant;\n size: TabsListSize;\n fullWidth: boolean;\n}\n\nconst tabsStyleDefaults: TabsStyleContextValue = {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n};\n\nconst TabsStyleContext =\n createContext<TabsStyleContextValue>(tabsStyleDefaults);\n\nconst useTabsStyleContext = () => useContext(TabsStyleContext);\n\nexport {\n TabsStyleContext,\n tabsStyleDefaults,\n useTabsStyleContext,\n type TabsListSize,\n type TabsListVariant,\n};\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { tv } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useTabsStyleContext } from \"./tabs-style-context\";\nexport type TabsIndicatorProps = TabsPrimitive.Indicator.Props;\n\nconst tabsIndicatorVariants = tv({\n base: \"pointer-events-none absolute top-0 left-0 z-[-1] h-[var(--active-tab-height)] w-[var(--active-tab-width)] translate-x-[var(--active-tab-left)] translate-y-[var(--active-tab-top)] transition-[translate,width,height,opacity] duration-200 ease-in-out\",\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"bg-primary group-data-[orientation=horizontal]/tabs:h-[2px] group-data-[orientation=horizontal]/tabs:w-[var(--active-tab-width)] group-data-[orientation=horizontal]/tabs:translate-x-[var(--active-tab-left)] group-data-[orientation=horizontal]/tabs:translate-y-[calc(var(--active-tab-top)+var(--active-tab-height)-2px)] group-data-[orientation=vertical]/tabs:h-[var(--active-tab-height)] group-data-[orientation=vertical]/tabs:w-[2px] group-data-[orientation=vertical]/tabs:translate-x-[var(--active-tab-left)] group-data-[orientation=vertical]/tabs:translate-y-[var(--active-tab-top)]\",\n pill: \"bg-background shadow-sm\",\n },\n size: {\n xs: \"rounded-[min(var(--radius-md),8px)]\",\n sm: \"rounded-[min(var(--radius-md),8px)]\",\n md: \"rounded-[min(var(--radius-md),10px)]\",\n lg: \"rounded-[var(--radius-md)]\",\n xl: \"rounded-[var(--radius-md)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nconst TabsIndicator = ({ className, ...props }: TabsIndicatorProps) => {\n const { size, variant } = useTabsStyleContext();\n\n return (\n <TabsPrimitive.Indicator\n className={mergeBaseUIClassName<TabsPrimitive.Indicator.State>(\n tabsIndicatorVariants({ size, variant }),\n className\n )}\n data-slot=\"tabs-indicator\"\n renderBeforeHydration\n {...props}\n />\n );\n};\n\nexport { TabsIndicator };\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport {\n TabsStyleContext,\n tabsStyleDefaults,\n type TabsListSize,\n type TabsListVariant,\n} from \"./tabs-style-context\";\nexport type TabsListProps = TabsPrimitive.List.Props &\n VariantProps<typeof tabsListVariants>;\n\nconst tabsListVariants = tv({\n base: \"group/tabs-list relative z-0 inline-flex items-center justify-start text-muted-foreground group-data-[orientation=vertical]/tabs:flex-col group-data-[orientation=vertical]/tabs:items-stretch\",\n variants: {\n fullWidth: {\n true: \"w-full\",\n false: \"w-fit\",\n },\n variant: {\n default:\n \"gap-1 px-1 group-data-[orientation=vertical]/tabs:px-0 group-data-[orientation=vertical]/tabs:py-1\",\n line: \"gap-1 group-data-[orientation=vertical]/tabs:border-b-0 group-data-[orientation=vertical]/tabs:border-l\",\n pill: \"gap-1 rounded-md bg-muted p-1\",\n },\n size: {\n xs: \"group-data-[orientation=horizontal]/tabs:min-h-6\",\n sm: \"group-data-[orientation=horizontal]/tabs:min-h-7\",\n md: \"group-data-[orientation=horizontal]/tabs:min-h-8\",\n lg: \"group-data-[orientation=horizontal]/tabs:min-h-9\",\n xl: \"group-data-[orientation=horizontal]/tabs:min-h-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n },\n});\n\nconst TabsList = ({\n className,\n variant = tabsStyleDefaults.variant,\n size = tabsStyleDefaults.size,\n fullWidth = tabsStyleDefaults.fullWidth,\n ...props\n}: TabsListProps) => (\n <TabsStyleContext.Provider\n value={{\n size,\n variant,\n fullWidth,\n }}\n >\n <TabsPrimitive.List\n className={mergeBaseUIClassName<TabsPrimitive.List.State>(\n tabsListVariants({ size, variant, fullWidth }),\n className\n )}\n data-size={size}\n data-slot=\"tabs-list\"\n data-variant={variant}\n data-full-width={fullWidth}\n {...props}\n />\n </TabsStyleContext.Provider>\n);\n\nexport { TabsList, tabsListVariants, type TabsListSize, type TabsListVariant };\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { tv } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useTabsStyleContext } from \"./tabs-style-context\";\nexport type TabsTriggerProps = TabsPrimitive.Tab.Props;\n\nconst tabsTriggerVariants = tv({\n base: \"relative inline-flex cursor-pointer items-center justify-center gap-1.5 border border-transparent font-medium break-keep whitespace-nowrap text-muted-foreground transition-colors outline-none select-none hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-active:text-foreground group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n compoundVariants: [{ fullWidth: true, class: \"min-w-0 flex-1\" }],\n variants: {\n variant: {\n default: \"rounded-md border-transparent\",\n line: \"rounded-none border-transparent focus-visible:rounded-sm data-[orientation=horizontal]:-mb-[2px] data-[orientation=vertical]:-ml-[2px]\",\n pill: \"rounded-md border-transparent data-active:text-foreground\",\n },\n size: {\n xs: \"h-6 px-2 text-xs [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 px-2 text-xs [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 px-2.5 text-sm\",\n lg: \"h-9 px-3 text-sm\",\n xl: \"h-10 px-3.5 text-base [&_svg:not([class*='size-'])]:size-5\",\n },\n fullWidth: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n },\n});\n\nconst TabsTrigger = ({ className, ...props }: TabsTriggerProps) => {\n const { size, variant, fullWidth } = useTabsStyleContext();\n\n return (\n <TabsPrimitive.Tab\n className={mergeBaseUIClassName<TabsPrimitive.Tab.State>(\n tabsTriggerVariants({ size, variant, fullWidth }),\n className\n )}\n data-slot=\"tabs-trigger\"\n {...props}\n />\n );\n};\n\nexport { TabsTrigger };\n"],"mappings":";;;;;;;AAOA,MAAM,eAAe,EAAE,WAAW,GAAG,YACnC,oBAACA,KAAc;CACb,WAAW,qBACT,qKACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACDJ,MAAM,oBAA2C;CAC/C,SAAS;CACT,MAAM;CACN,WAAW;CACZ;AAED,MAAM,mBACJ,cAAqC,kBAAkB;AAEzD,MAAM,4BAA4B,WAAW,iBAAiB;;;;ACd9D,MAAM,wBAAwB,GAAG;CAC/B,MAAM;CACN,UAAU;EACR,SAAS;GACP,SAAS;GACT,MAAM;GACN,MAAM;GACP;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CAAC;AAEF,MAAM,iBAAiB,EAAE,WAAW,GAAG,YAAgC;CACrE,MAAM,EAAE,MAAM,YAAY,qBAAqB;AAE/C,QACE,oBAACC,KAAc;EACb,WAAW,qBACT,sBAAsB;GAAE;GAAM;GAAS,CAAC,EACxC,UACD;EACD,aAAU;EACV;EACA,GAAI;GACJ;;;;;AC5BN,MAAM,mBAAmB,GAAG;CAC1B,MAAM;CACN,UAAU;EACR,WAAW;GACT,MAAM;GACN,OAAO;GACR;EACD,SAAS;GACP,SACE;GACF,MAAM;GACN,MAAM;GACP;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACN,WAAW;EACZ;CACF,CAAC;AAEF,MAAM,YAAY,EAChB,WACA,UAAU,kBAAkB,SAC5B,OAAO,kBAAkB,MACzB,YAAY,kBAAkB,WAC9B,GAAG,YAEH,oBAAC,iBAAiB;CAChB,OAAO;EACL;EACA;EACA;EACD;WAED,oBAACC,KAAc;EACb,WAAW,qBACT,iBAAiB;GAAE;GAAM;GAAS;GAAW,CAAC,EAC9C,UACD;EACD,aAAW;EACX,aAAU;EACV,gBAAc;EACd,mBAAiB;EACjB,GAAI;GACJ;EACwB;;;;AC3D9B,MAAM,sBAAsB,GAAG;CAC7B,MAAM;CACN,kBAAkB,CAAC;EAAE,WAAW;EAAM,OAAO;EAAkB,CAAC;CAChE,UAAU;EACR,SAAS;GACP,SAAS;GACT,MAAM;GACN,MAAM;GACP;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACD,WAAW;GACT,MAAM;GACN,OAAO;GACR;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACN,WAAW;EACZ;CACF,CAAC;AAEF,MAAM,eAAe,EAAE,WAAW,GAAG,YAA8B;CACjE,MAAM,EAAE,MAAM,SAAS,cAAc,qBAAqB;AAE1D,QACE,oBAACC,KAAc;EACb,WAAW,qBACT,oBAAoB;GAAE;GAAM;GAAS;GAAW,CAAC,EACjD,UACD;EACD,aAAU;EACV,GAAI;GACJ"}
|
|
1
|
+
{"version":3,"file":"tabs-trigger-CzOTnpSV.js","names":["TabsPrimitive","TabsPrimitive","TabsPrimitive","TabsPrimitive"],"sources":["../src/ui/tabs/tabs-content.tsx","../src/ui/tabs/tabs-style-context.ts","../src/ui/tabs/tabs-indicator.tsx","../src/ui/tabs/tabs-list.tsx","../src/ui/tabs/tabs-trigger.tsx"],"sourcesContent":["\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type TabsContentProps = TabsPrimitive.Panel.Props;\n\nconst TabsContent = ({ className, ...props }: TabsContentProps) => (\n <TabsPrimitive.Panel\n className={mergeBaseUIClassName<TabsPrimitive.Panel.State>(\n \"flex-1 text-sm outline-none focus-visible:rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-ring\",\n className\n )}\n data-slot=\"tabs-content\"\n {...props}\n />\n);\n\nexport { TabsContent };\n","\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nimport type { UISize } from \"../shared/size/size-system\";\n\ntype TabsListVariant = \"default\" | \"line\" | \"pill\";\n\ntype TabsListSize = UISize;\n\ninterface TabsStyleContextValue {\n variant: TabsListVariant;\n size: TabsListSize;\n fullWidth: boolean;\n}\n\nconst tabsStyleDefaults: TabsStyleContextValue = {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n};\n\nconst TabsStyleContext =\n createContext<TabsStyleContextValue>(tabsStyleDefaults);\n\nconst useTabsStyleContext = () => useContext(TabsStyleContext);\n\nexport {\n TabsStyleContext,\n tabsStyleDefaults,\n useTabsStyleContext,\n type TabsListSize,\n type TabsListVariant,\n};\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { tv } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useTabsStyleContext } from \"./tabs-style-context\";\nexport type TabsIndicatorProps = TabsPrimitive.Indicator.Props;\n\nconst tabsIndicatorVariants = tv({\n base: \"pointer-events-none absolute top-0 left-0 z-[-1] h-[var(--active-tab-height)] w-[var(--active-tab-width)] translate-x-[var(--active-tab-left)] translate-y-[var(--active-tab-top)] transition-[translate,width,height,opacity] duration-200 ease-in-out\",\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"bg-primary group-data-[orientation=horizontal]/tabs:h-[2px] group-data-[orientation=horizontal]/tabs:w-[var(--active-tab-width)] group-data-[orientation=horizontal]/tabs:translate-x-[var(--active-tab-left)] group-data-[orientation=horizontal]/tabs:translate-y-[calc(var(--active-tab-top)+var(--active-tab-height)-2px)] group-data-[orientation=vertical]/tabs:h-[var(--active-tab-height)] group-data-[orientation=vertical]/tabs:w-[2px] group-data-[orientation=vertical]/tabs:translate-x-[var(--active-tab-left)] group-data-[orientation=vertical]/tabs:translate-y-[var(--active-tab-top)]\",\n pill: \"bg-background shadow-sm\",\n },\n size: {\n xs: \"rounded-[min(var(--radius-md),8px)]\",\n sm: \"rounded-[min(var(--radius-md),8px)]\",\n md: \"rounded-[min(var(--radius-md),10px)]\",\n lg: \"rounded-[var(--radius-md)]\",\n xl: \"rounded-[var(--radius-md)]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nconst TabsIndicator = ({ className, ...props }: TabsIndicatorProps) => {\n const { size, variant } = useTabsStyleContext();\n\n return (\n <TabsPrimitive.Indicator\n className={mergeBaseUIClassName<TabsPrimitive.Indicator.State>(\n tabsIndicatorVariants({ size, variant }),\n className\n )}\n data-slot=\"tabs-indicator\"\n renderBeforeHydration\n {...props}\n />\n );\n};\n\nexport { TabsIndicator };\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport {\n TabsStyleContext,\n tabsStyleDefaults,\n type TabsListSize,\n type TabsListVariant,\n} from \"./tabs-style-context\";\nexport type TabsListProps = TabsPrimitive.List.Props &\n VariantProps<typeof tabsListVariants>;\n\nconst tabsListVariants = tv({\n base: \"group/tabs-list relative z-0 inline-flex items-center justify-start text-muted-foreground group-data-[orientation=vertical]/tabs:flex-col group-data-[orientation=vertical]/tabs:items-stretch\",\n variants: {\n fullWidth: {\n true: \"w-full\",\n false: \"w-fit\",\n },\n variant: {\n default:\n \"gap-1 px-1 group-data-[orientation=vertical]/tabs:px-0 group-data-[orientation=vertical]/tabs:py-1\",\n line: \"gap-1 group-data-[orientation=vertical]/tabs:border-b-0 group-data-[orientation=vertical]/tabs:border-l\",\n pill: \"gap-1 rounded-md bg-muted p-1\",\n },\n size: {\n xs: \"group-data-[orientation=horizontal]/tabs:min-h-6\",\n sm: \"group-data-[orientation=horizontal]/tabs:min-h-7\",\n md: \"group-data-[orientation=horizontal]/tabs:min-h-8\",\n lg: \"group-data-[orientation=horizontal]/tabs:min-h-9\",\n xl: \"group-data-[orientation=horizontal]/tabs:min-h-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n },\n});\n\nconst TabsList = ({\n className,\n variant = tabsStyleDefaults.variant,\n size = tabsStyleDefaults.size,\n fullWidth = tabsStyleDefaults.fullWidth,\n ...props\n}: TabsListProps) => (\n <TabsStyleContext.Provider\n value={{\n size,\n variant,\n fullWidth,\n }}\n >\n <TabsPrimitive.List\n className={mergeBaseUIClassName<TabsPrimitive.List.State>(\n tabsListVariants({ size, variant, fullWidth }),\n className\n )}\n data-size={size}\n data-slot=\"tabs-list\"\n data-variant={variant}\n data-full-width={fullWidth}\n {...props}\n />\n </TabsStyleContext.Provider>\n);\n\nexport { TabsList, tabsListVariants, type TabsListSize, type TabsListVariant };\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { tv } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { useTabsStyleContext } from \"./tabs-style-context\";\nexport type TabsTriggerProps = TabsPrimitive.Tab.Props;\n\nconst tabsTriggerVariants = tv({\n base: \"relative inline-flex cursor-pointer items-center justify-center gap-1.5 border border-transparent font-medium break-keep whitespace-nowrap text-muted-foreground transition-colors outline-none select-none hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-active:text-foreground group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n compoundVariants: [{ fullWidth: true, class: \"min-w-0 flex-1\" }],\n variants: {\n variant: {\n default: \"rounded-md border-transparent\",\n line: \"rounded-none border-transparent focus-visible:rounded-sm data-[orientation=horizontal]:-mb-[2px] data-[orientation=vertical]:-ml-[2px]\",\n pill: \"rounded-md border-transparent data-active:text-foreground\",\n },\n size: {\n xs: \"h-6 px-2 text-xs [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 px-2 text-xs [&_svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 px-2.5 text-sm\",\n lg: \"h-9 px-3 text-sm\",\n xl: \"h-10 px-3.5 text-base [&_svg:not([class*='size-'])]:size-5\",\n },\n fullWidth: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n },\n});\n\nconst TabsTrigger = ({ className, ...props }: TabsTriggerProps) => {\n const { size, variant, fullWidth } = useTabsStyleContext();\n\n return (\n <TabsPrimitive.Tab\n className={mergeBaseUIClassName<TabsPrimitive.Tab.State>(\n tabsTriggerVariants({ size, variant, fullWidth }),\n className\n )}\n data-slot=\"tabs-trigger\"\n {...props}\n />\n );\n};\n\nexport { TabsTrigger };\n"],"mappings":";;;;;;;AAOA,MAAM,eAAe,EAAE,WAAW,GAAG,YACnC,oBAACA,KAAc;CACb,WAAW,qBACT,qKACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACCJ,MAAM,oBAA2C;CAC/C,SAAS;CACT,MAAM;CACN,WAAW;CACZ;AAED,MAAM,mBACJ,cAAqC,kBAAkB;AAEzD,MAAM,4BAA4B,WAAW,iBAAiB;;;;AChB9D,MAAM,wBAAwB,GAAG;CAC/B,MAAM;CACN,UAAU;EACR,SAAS;GACP,SAAS;GACT,MAAM;GACN,MAAM;GACP;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CAAC;AAEF,MAAM,iBAAiB,EAAE,WAAW,GAAG,YAAgC;CACrE,MAAM,EAAE,MAAM,YAAY,qBAAqB;AAE/C,QACE,oBAACC,KAAc;EACb,WAAW,qBACT,sBAAsB;GAAE;GAAM;GAAS,CAAC,EACxC,UACD;EACD,aAAU;EACV;EACA,GAAI;GACJ;;;;;AC5BN,MAAM,mBAAmB,GAAG;CAC1B,MAAM;CACN,UAAU;EACR,WAAW;GACT,MAAM;GACN,OAAO;GACR;EACD,SAAS;GACP,SACE;GACF,MAAM;GACN,MAAM;GACP;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACN,WAAW;EACZ;CACF,CAAC;AAEF,MAAM,YAAY,EAChB,WACA,UAAU,kBAAkB,SAC5B,OAAO,kBAAkB,MACzB,YAAY,kBAAkB,WAC9B,GAAG,YAEH,oBAAC,iBAAiB;CAChB,OAAO;EACL;EACA;EACA;EACD;WAED,oBAACC,KAAc;EACb,WAAW,qBACT,iBAAiB;GAAE;GAAM;GAAS;GAAW,CAAC,EAC9C,UACD;EACD,aAAW;EACX,aAAU;EACV,gBAAc;EACd,mBAAiB;EACjB,GAAI;GACJ;EACwB;;;;AC3D9B,MAAM,sBAAsB,GAAG;CAC7B,MAAM;CACN,kBAAkB,CAAC;EAAE,WAAW;EAAM,OAAO;EAAkB,CAAC;CAChE,UAAU;EACR,SAAS;GACP,SAAS;GACT,MAAM;GACN,MAAM;GACP;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACD,WAAW;GACT,MAAM;GACN,OAAO;GACR;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACN,WAAW;EACZ;CACF,CAAC;AAEF,MAAM,eAAe,EAAE,WAAW,GAAG,YAA8B;CACjE,MAAM,EAAE,MAAM,SAAS,cAAc,qBAAqB;AAE1D,QACE,oBAACC,KAAc;EACb,WAAW,qBACT,oBAAoB;GAAE;GAAM;GAAS;GAAW,CAAC,EACjD,UACD;EACD,aAAU;EACV,GAAI;GACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group-item-BNfDa9G7.js","names":["TogglePrimitive"],"sources":["../src/ui/toggle-group/toggle-group-context.tsx","../src/ui/toggle-group/toggle-group-item.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"toggle-group-item-BNfDa9G7.js","names":["TogglePrimitive"],"sources":["../src/ui/toggle-group/toggle-group-context.tsx","../src/ui/toggle-group/toggle-group-item.tsx"],"sourcesContent":["\"use client\";\n\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { createContext } from \"react\";\n\nimport type { UISize } from \"../shared/size/size-system\";\nimport type { toggleVariants } from \"../toggle/toggle\";\n\nexport type ToggleGroupVariant = NonNullable<\n VariantProps<typeof toggleVariants>[\"variant\"]\n>;\nexport type ToggleGroupSize = UISize;\n\nexport interface ToggleGroupContextValue {\n orientation: \"horizontal\" | \"vertical\";\n size: ToggleGroupSize;\n spacing: number;\n variant: ToggleGroupVariant;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue>({\n size: \"md\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n});\n\nexport { ToggleGroupContext };\n","\"use client\";\n\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { useContext } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { toggleVariants } from \"../toggle/toggle\";\nimport {\n ToggleGroupContext,\n type ToggleGroupSize,\n type ToggleGroupVariant,\n} from \"./toggle-group-context\";\n\nconst toggleGroupItemVariants = tv({\n base: \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n extend: toggleVariants,\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\ntype ToggleGroupItemVariantProps = Omit<\n VariantProps<typeof toggleGroupItemVariants>,\n \"size\" | \"variant\"\n> & {\n size?: ToggleGroupSize;\n variant?: ToggleGroupVariant;\n};\n\nexport type ToggleGroupItemProps = TogglePrimitive.Props &\n ToggleGroupItemVariantProps;\n\nconst ToggleGroupItem = ({\n className,\n children,\n variant,\n size,\n ...props\n}: ToggleGroupItemProps) => {\n const {\n size: contextSize,\n spacing,\n variant: contextVariant,\n } = useContext(ToggleGroupContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n const resolvedVariant = variant ?? contextVariant ?? \"default\";\n\n return (\n <TogglePrimitive\n className={mergeBaseUIClassName<TogglePrimitive.State>(\n toggleGroupItemVariants({\n variant: resolvedVariant,\n size: resolvedSize,\n }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"toggle-group-item\"\n data-spacing={spacing}\n data-variant={resolvedVariant}\n {...props}\n >\n {children}\n </TogglePrimitive>\n );\n};\n\nexport { ToggleGroupItem };\n"],"mappings":";;;;;;;;AAqBA,MAAM,qBAAqB,cAAuC;CAChE,MAAM;CACN,SAAS;CACT,SAAS;CACT,aAAa;CACd,CAAC;;;;ACVF,MAAM,0BAA0B,GAAG;CACjC,MAAM;CACN,QAAQ;CACR,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CAAC;AAaF,MAAM,mBAAmB,EACvB,WACA,UACA,SACA,MACA,GAAG,YACuB;CAC1B,MAAM,EACJ,MAAM,aACN,SACA,SAAS,mBACP,WAAW,mBAAmB;CAClC,MAAM,eAAe,QAAQ,eAAe;CAC5C,MAAM,kBAAkB,WAAW,kBAAkB;AAErD,QACE,oBAACA;EACC,WAAW,qBACT,wBAAwB;GACtB,SAAS;GACT,MAAM;GACP,CAAC,EACF,UACD;EACD,aAAW;EACX,aAAU;EACV,gBAAc;EACd,gBAAc;EACd,GAAI;EAEH;GACe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group-item-GtR1C20m.d.ts","names":[],"sources":["../src/ui/toggle-group/toggle-group-context.tsx","../src/ui/toggle-group/toggle-group-item.tsx"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"toggle-group-item-GtR1C20m.d.ts","names":[],"sources":["../src/ui/toggle-group/toggle-group-context.tsx","../src/ui/toggle-group/toggle-group-item.tsx"],"mappings":";;;;;;;;;;KASY,kBAAA,GAAqB,WAAA,CAC/B,YAAA,QAAoB,cAAA;AAAA,KAEV,eAAA,GAAkB,MAAA;AAAA,UAEb,uBAAA;EACf,WAAA;EACA,IAAA,EAAM,eAAA;EACN,OAAA;EACA,OAAA,EAAS,kBAAA;AAAA;AAAA,cAGL,kBAAA,EAAkB,KAAA,CAAA,OAAA,CAAA,uBAAA;;;cCLlB,uBAAA,qBAAuB,YAAA;;aAO3B,eAAA,CAAA,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEG,2BAAA,GAA8B,IAAA,CACjC,YAAA,QAAoB,uBAAA;EAGpB,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,kBAAA;AAAA;AAAA,KAGA,oBAAA,GAAuB,MAAA,CAAgB,KAAA,GACjD,2BAAA;AAAA,cAEI,eAAA;EAAmB,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAMtB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-carousel-BP1JcA8B.d.ts","names":[],"sources":["../src/ui/carousel/carousel-content.tsx","../src/ui/carousel/carousel-item.tsx","../src/ui/carousel/carousel-next.tsx","../src/ui/carousel/carousel-previous.tsx","../src/ui/carousel/use-carousel.tsx"],"mappings":";;;;;;KAKY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,MAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,MAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;
|
|
1
|
+
{"version":3,"file":"use-carousel-BP1JcA8B.d.ts","names":[],"sources":["../src/ui/carousel/carousel-content.tsx","../src/ui/carousel/carousel-item.tsx","../src/ui/carousel/carousel-next.tsx","../src/ui/carousel/carousel-previous.tsx","../src/ui/carousel/use-carousel.tsx"],"mappings":";;;;;;KAKY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,MAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,MAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCRnB,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,UAEZ,aAAA;EACR,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;AAAA,KAGZ,oBAAA;EACH,WAAA,EAAa,UAAA,QAAkB,gBAAA;EAC/B,GAAA,EAAK,UAAA,QAAkB,gBAAA;EACvB,UAAA;EACA,UAAA;EACA,aAAA;EACA,aAAA;AAAA,IACE,aAAA;AAAA,cAIE,WAAA,QAAW,oBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-combobox-anchor-CR11U_ns.js","names":["ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","mapComboboxSizeToInputGroupIconButtonSize","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive"],"sources":["../src/ui/combobox/combobox-arrow.tsx","../src/ui/combobox/combobox-backdrop.tsx","../src/ui/combobox/combobox-context.tsx","../src/ui/combobox/combobox-chip-remove.tsx","../src/ui/combobox/combobox-chip.tsx","../src/ui/combobox/combobox-chips.tsx","../src/ui/combobox/combobox-chips-input.tsx","../src/ui/combobox/combobox-clear.tsx","../src/ui/combobox/combobox-collection.tsx","../src/ui/combobox/combobox-overlay-context.tsx","../src/ui/combobox/combobox-popup.tsx","../src/ui/combobox/combobox-portal.tsx","../src/ui/combobox/combobox-positioner.tsx","../src/ui/combobox/combobox-content.tsx","../src/ui/combobox/combobox-empty.tsx","../src/ui/combobox/combobox-group.tsx","../src/ui/combobox/combobox-group-label.tsx","../src/ui/combobox/combobox-icon.tsx","../src/ui/combobox/combobox-trigger.tsx","../src/ui/combobox/combobox-input.tsx","../src/ui/combobox/combobox-item-indicator.tsx","../src/ui/combobox/combobox-item.tsx","../src/ui/combobox/combobox-label.tsx","../src/ui/combobox/combobox-list.tsx","../src/ui/combobox/combobox-row.tsx","../src/ui/combobox/combobox-separator.tsx","../src/ui/combobox/combobox-status.tsx","../src/ui/combobox/combobox-value.tsx","../src/ui/combobox/use-combobox-anchor.tsx"],"sourcesContent":["\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxArrowProps = ComboboxPrimitive.Arrow.Props;\n\nconst ComboboxArrow = ({ className, ...props }: ComboboxArrowProps) => (\n <ComboboxPrimitive.Arrow\n className={mergeBaseUIClassName<ComboboxPrimitive.Arrow.State>(\n undefined,\n className\n )}\n data-slot=\"combobox-arrow\"\n {...props}\n />\n);\n\nexport { ComboboxArrow };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxBackdropProps = ComboboxPrimitive.Backdrop.Props;\n\nconst ComboboxBackdrop = ({ className, ...props }: ComboboxBackdropProps) => (\n <ComboboxPrimitive.Backdrop\n className={mergeBaseUIClassName<ComboboxPrimitive.Backdrop.State>(\n undefined,\n className\n )}\n data-slot=\"combobox-backdrop\"\n {...props}\n />\n);\n\nexport { ComboboxBackdrop };\n","import { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface ComboboxContextValue {\n size?: InputSize;\n}\n\nconst ComboboxContext = createContext<ComboboxContextValue>({\n size: \"md\",\n});\n\nexport { ComboboxContext };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { Button } from \"../button/button\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nexport type ComboboxChipRemoveProps = ComboboxPrimitive.ChipRemove.Props & {\n size?: InputSize;\n};\n\nconst mapComboboxSizeToButtonIconSize = (size: InputSize) => {\n if (size === \"xl\") {\n return \"icon-sm\";\n }\n\n return \"icon-xs\";\n};\n\nconst ComboboxChipRemove = ({\n className,\n size,\n ...props\n}: ComboboxChipRemoveProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.ChipRemove\n className={mergeBaseUIClassName<ComboboxPrimitive.ChipRemove.State>(\n \"-ml-1 opacity-50 hover:opacity-100\",\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-chip-remove\"\n render={\n <Button\n size={mapComboboxSizeToButtonIconSize(resolvedSize)}\n variant=\"ghost\"\n />\n }\n {...props}\n >\n <HugeiconsIcon\n className=\"pointer-events-none\"\n icon={Cancel01Icon}\n strokeWidth={2}\n />\n </ComboboxPrimitive.ChipRemove>\n );\n};\n\nexport { ComboboxChipRemove };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxChipRemove } from \"./combobox-chip-remove\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nconst comboboxChipVariants = tv({\n base: \"flex w-fit items-center justify-center gap-1 rounded-sm bg-muted 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 variants: {\n size: {\n xs: \"h-5 px-1 text-[11px]\",\n sm: \"h-[calc(--spacing(5.25))] px-1.5 text-xs\",\n md: \"h-[calc(--spacing(5.25))] px-1.5 text-xs\",\n lg: \"h-6 px-2 text-xs\",\n xl: \"h-7 px-2.5 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxChipProps = ComboboxPrimitive.Chip.Props &\n VariantProps<typeof comboboxChipVariants> & {\n showRemove?: boolean;\n };\n\nconst ComboboxChip = ({\n className,\n children,\n size,\n showRemove = true,\n ...props\n}: ComboboxChipProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Chip\n className={mergeBaseUIClassName<ComboboxPrimitive.Chip.State>(\n comboboxChipVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-chip\"\n {...props}\n >\n {children}\n {showRemove && <ComboboxChipRemove size={resolvedSize} />}\n </ComboboxPrimitive.Chip>\n );\n};\n\nexport { ComboboxChip };\n","\"use client\";\n\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nconst comboboxChipsVariants = tv({\n base: \"flex flex-wrap items-center border border-input bg-transparent bg-clip-padding transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-danger has-aria-invalid:ring-[3px] has-aria-invalid:ring-danger/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-danger/50 dark:has-aria-invalid:ring-danger/40\",\n variants: {\n size: {\n xs: \"min-h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 py-0.5 text-xs\",\n sm: \"min-h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 py-1 text-sm\",\n md: \"min-h-9 gap-1 rounded-md px-2.5 py-1 text-sm\",\n lg: \"min-h-10 gap-1.5 rounded-md px-3 py-1.5 text-sm\",\n xl: \"min-h-11 gap-1.5 rounded-md px-4 py-2 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxChipsProps = ComponentPropsWithRef<\n typeof ComboboxPrimitive.Chips\n> &\n ComboboxPrimitive.Chips.Props &\n VariantProps<typeof comboboxChipsVariants>;\n\nconst ComboboxChips = ({ className, size, ...props }: ComboboxChipsProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Chips\n className={mergeBaseUIClassName<ComboboxPrimitive.Chips.State>(\n comboboxChipsVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-chips\"\n {...props}\n />\n );\n};\n\nexport { ComboboxChips };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxChipsInputProps = ComboboxPrimitive.Input.Props;\n\nconst ComboboxChipsInput = ({\n className,\n ...props\n}: ComboboxChipsInputProps) => (\n <ComboboxPrimitive.Input\n className={mergeBaseUIClassName<ComboboxPrimitive.Input.State>(\n \"min-w-16 flex-1 outline-none\",\n className\n )}\n data-slot=\"combobox-chip-input\"\n {...props}\n />\n);\n\nexport { ComboboxChipsInput };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { InputGroupButton } from \"../input-group/input-group\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nexport type ComboboxClearProps = ComboboxPrimitive.Clear.Props & {\n size?: InputSize;\n};\n\nconst mapComboboxSizeToInputGroupIconButtonSize = (size: InputSize) => {\n if (size === \"xl\") {\n return \"icon-sm\";\n }\n\n return \"icon-xs\";\n};\n\nconst ComboboxClear = ({ className, size, ...props }: ComboboxClearProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Clear\n className={mergeBaseUIClassName<ComboboxPrimitive.Clear.State>(\n undefined,\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-clear\"\n render={\n <InputGroupButton\n size={mapComboboxSizeToInputGroupIconButtonSize(resolvedSize)}\n variant=\"ghost\"\n />\n }\n {...props}\n >\n <HugeiconsIcon\n className=\"pointer-events-none\"\n icon={Cancel01Icon}\n strokeWidth={2}\n />\n </ComboboxPrimitive.Clear>\n );\n};\n\nexport { ComboboxClear };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nexport type ComboboxCollectionProps = ComboboxPrimitive.Collection.Props;\n\nconst ComboboxCollection = ({ ...props }: ComboboxCollectionProps) => (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n);\n\nexport { ComboboxCollection };\n","import { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface ComboboxOverlayContextValue {\n size?: InputSize;\n}\n\nconst ComboboxOverlayContext = createContext<ComboboxOverlayContextValue>({\n size: \"md\",\n});\n\nexport { ComboboxOverlayContext };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxPopupVariants = tv({\n base: \"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-36 min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[chips=true]:min-w-(--anchor-width) 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-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none\",\n variants: {\n size: {\n xs: \"rounded-[min(var(--radius-md),8px)]\",\n sm: \"rounded-[min(var(--radius-md),10px)]\",\n md: \"rounded-lg\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ComboboxPopupVariantProps = VariantProps<typeof comboboxPopupVariants>;\n\nexport type ComboboxPopupProps = ComboboxPrimitive.Popup.Props &\n ComboboxPopupVariantProps;\n\nconst ComboboxPopup = ({ className, size, ...props }: ComboboxPopupProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Popup\n className={mergeBaseUIClassName<ComboboxPrimitive.Popup.State>(\n comboboxPopupVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-popup\"\n {...props}\n />\n );\n};\n\nexport { ComboboxPopup };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nexport type ComboboxPortalProps = ComboboxPrimitive.Portal.Props;\n\nconst ComboboxPortal = (props: ComboboxPortalProps) => (\n <ComboboxPrimitive.Portal data-slot=\"combobox-portal\" {...props} />\n);\n\nexport { ComboboxPortal };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxPositionerProps = ComboboxPrimitive.Positioner.Props;\n\nconst ComboboxPositioner = ({\n className,\n ...props\n}: ComboboxPositionerProps) => (\n <ComboboxPrimitive.Positioner\n className={mergeBaseUIClassName<ComboboxPrimitive.Positioner.State>(\n \"isolate z-50\",\n className\n )}\n data-slot=\"combobox-positioner\"\n {...props}\n />\n);\n\nexport { ComboboxPositioner };\n","\"use client\";\n\nimport type { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { ComboboxContext } from \"./combobox-context\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\nimport { ComboboxPopup } from \"./combobox-popup\";\nimport { ComboboxPortal } from \"./combobox-portal\";\nimport { ComboboxPositioner } from \"./combobox-positioner\";\n\nexport type ComboboxContentProps = ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n > & {\n size?: InputSize;\n };\n\nconst ComboboxContent = ({\n className,\n size,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxContentProps) => {\n const { size: rootSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? rootSize ?? \"md\";\n\n return (\n <ComboboxOverlayContext.Provider value={{ size: resolvedSize }}>\n <ComboboxPortal>\n <ComboboxPositioner\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n >\n <ComboboxPopup\n className={className}\n data-chips={!!anchor}\n data-size={resolvedSize}\n data-slot=\"combobox-content\"\n size={resolvedSize}\n {...props}\n />\n </ComboboxPositioner>\n </ComboboxPortal>\n </ComboboxOverlayContext.Provider>\n );\n};\n\nexport { ComboboxContent };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxEmptyVariants = tv({\n base: \"hidden w-full justify-center text-center text-muted-foreground group-data-empty/combobox-content:flex\",\n variants: {\n size: {\n xs: \"py-2 text-xs\",\n sm: \"py-2 text-sm\",\n md: \"py-2.5 text-sm\",\n lg: \"py-3 text-sm\",\n xl: \"py-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxEmptyProps = ComboboxPrimitive.Empty.Props &\n VariantProps<typeof comboboxEmptyVariants>;\n\nconst ComboboxEmpty = ({ className, size, ...props }: ComboboxEmptyProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Empty\n className={mergeBaseUIClassName<ComboboxPrimitive.Empty.State>(\n comboboxEmptyVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-empty\"\n {...props}\n />\n );\n};\n\nexport { ComboboxEmpty };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxGroupProps = ComboboxPrimitive.Group.Props;\n\nconst ComboboxGroup = ({ className, ...props }: ComboboxGroupProps) => (\n <ComboboxPrimitive.Group\n className={mergeBaseUIClassName<ComboboxPrimitive.Group.State>(\n undefined,\n className\n )}\n data-slot=\"combobox-group\"\n {...props}\n />\n);\n\nexport { ComboboxGroup };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxGroupLabelVariants = tv({\n base: \"text-muted-foreground\",\n variants: {\n size: {\n xs: \"px-1.5 py-1 text-xs\",\n sm: \"px-2 py-1 text-xs\",\n md: \"px-2 py-1.5 text-xs\",\n lg: \"px-2.5 py-1.5 text-sm\",\n xl: \"px-3 py-2 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxGroupLabelProps = ComboboxPrimitive.GroupLabel.Props &\n VariantProps<typeof comboboxGroupLabelVariants>;\n\nconst ComboboxGroupLabel = ({\n className,\n size,\n ...props\n}: ComboboxGroupLabelProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.GroupLabel\n className={mergeBaseUIClassName<ComboboxPrimitive.GroupLabel.State>(\n comboboxGroupLabelVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-group-label\"\n {...props}\n />\n );\n};\n\nexport { ComboboxGroupLabel };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxIconProps = ComboboxPrimitive.Icon.Props;\n\nconst ComboboxIcon = ({ className, ...props }: ComboboxIconProps) => (\n <ComboboxPrimitive.Icon\n className={mergeBaseUIClassName<ComboboxPrimitive.Icon.State>(\n \"pointer-events-none size-4 text-muted-foreground\",\n className\n )}\n data-slot=\"combobox-icon\"\n {...props}\n />\n);\n\nexport { ComboboxIcon };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxIcon } from \"./combobox-icon\";\n\nexport type ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props;\n\nconst ComboboxTrigger = ({\n className,\n children,\n ...props\n}: ComboboxTriggerProps) => (\n <ComboboxPrimitive.Trigger\n className={mergeBaseUIClassName<ComboboxPrimitive.Trigger.State>(\n \"cursor-pointer\",\n className\n )}\n data-slot=\"combobox-trigger\"\n {...props}\n >\n {children}\n <ComboboxIcon\n render={\n <HugeiconsIcon\n className=\"pointer-events-none text-muted-foreground\"\n icon={ArrowDown01Icon}\n strokeWidth={2}\n />\n }\n />\n </ComboboxPrimitive.Trigger>\n);\n\nexport { ComboboxTrigger };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"../input-group/input-group\";\nimport { ComboboxClear } from \"./combobox-clear\";\nimport { ComboboxContext } from \"./combobox-context\";\nimport { ComboboxTrigger } from \"./combobox-trigger\";\n\ntype NativeComboboxInputProps = ComboboxPrimitive.Input.Props;\n\nexport type ComboboxInputProps = Omit<NativeComboboxInputProps, \"size\"> & {\n htmlSize?: NativeComboboxInputProps[\"size\"];\n size?: InputSize;\n showTrigger?: boolean;\n showClear?: boolean;\n};\n\nconst mapComboboxSizeToInputGroupIconButtonSize = (size: InputSize) => {\n if (size === \"xl\") {\n return \"icon-sm\";\n }\n\n return \"icon-xs\";\n};\n\nconst ComboboxInput = ({\n className,\n children,\n disabled = false,\n htmlSize,\n size,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxInputProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n const iconButtonSize =\n mapComboboxSizeToInputGroupIconButtonSize(resolvedSize);\n\n return (\n <InputGroup className=\"w-auto\" size={resolvedSize}>\n <ComboboxPrimitive.Input\n className={mergeBaseUIClassName<ComboboxPrimitive.Input.State>(\n undefined,\n className\n )}\n data-size={resolvedSize}\n render={<InputGroupInput disabled={disabled} size={resolvedSize} />}\n size={htmlSize}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden gap-0 data-pressed:bg-transparent\"\n data-slot=\"input-group-button\"\n disabled={disabled}\n render={<ComboboxTrigger />}\n size={iconButtonSize}\n variant=\"ghost\"\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} size={resolvedSize} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n );\n};\n\nexport { ComboboxInput };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxItemIndicatorVariants = tv({\n base: \"pointer-events-none absolute flex items-center justify-center\",\n variants: {\n size: {\n xs: \"right-1.5 size-3\",\n sm: \"right-2 size-3.5\",\n md: \"right-2 size-4\",\n lg: \"right-2.5 size-4\",\n xl: \"right-3 size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ComboboxItemIndicatorVariantProps = VariantProps<\n typeof comboboxItemIndicatorVariants\n>;\n\nexport type ComboboxItemIndicatorProps = ComboboxPrimitive.ItemIndicator.Props &\n ComboboxItemIndicatorVariantProps;\n\nconst ComboboxItemIndicator = ({\n className,\n render,\n size,\n ...props\n}: ComboboxItemIndicatorProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n const indicatorClassName = comboboxItemIndicatorVariants({\n size: resolvedSize,\n });\n\n return (\n <ComboboxPrimitive.ItemIndicator\n className={mergeBaseUIClassName<ComboboxPrimitive.ItemIndicator.State>(\n indicatorClassName,\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-item-indicator\"\n render={render ?? <span className={indicatorClassName} />}\n {...props}\n />\n );\n};\n\nexport { ComboboxItemIndicator };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { Tick02Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxItemIndicator } from \"./combobox-item-indicator\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxItemVariants = tv({\n slots: {\n icon: \"pointer-events-none\",\n root: \"relative flex w-full cursor-pointer items-center rounded-md outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=danger]:data-highlighted:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n },\n variants: {\n size: {\n xs: {\n icon: \"size-3\",\n root: \"gap-1 py-1 pr-6 pl-1.5 text-xs [&_svg:not([class*='size-'])]:size-3\",\n },\n sm: {\n icon: \"size-3.5\",\n root: \"gap-1.5 py-1 pr-7 pl-2 text-sm [&_svg:not([class*='size-'])]:size-3.5\",\n },\n md: {\n icon: \"size-4\",\n root: \"gap-2 py-1.5 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n },\n lg: {\n icon: \"size-4\",\n root: \"gap-2 py-2 pr-9 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n },\n xl: {\n icon: \"size-5\",\n root: \"gap-2.5 py-2.5 pr-10 pl-2.5 text-base [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ComboboxItemVariantProps = VariantProps<typeof comboboxItemVariants>;\n\nexport type ComboboxItemProps = ComboboxPrimitive.Item.Props &\n ComboboxItemVariantProps;\n\nconst ComboboxItem = ({\n className,\n children,\n size,\n ...props\n}: ComboboxItemProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n const { icon, root } = comboboxItemVariants({ size: resolvedSize });\n\n return (\n <ComboboxPrimitive.Item\n className={mergeBaseUIClassName<ComboboxPrimitive.Item.State>(\n root(),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-item\"\n {...props}\n >\n {children}\n <ComboboxItemIndicator size={resolvedSize}>\n <HugeiconsIcon className={icon()} icon={Tick02Icon} strokeWidth={2} />\n </ComboboxItemIndicator>\n </ComboboxPrimitive.Item>\n );\n};\n\nexport { ComboboxItem };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxLabelProps = ComboboxPrimitive.GroupLabel.Props;\n\nconst ComboboxLabel = ({ className, ...props }: ComboboxLabelProps) => (\n <ComboboxPrimitive.GroupLabel\n className={mergeBaseUIClassName<ComboboxPrimitive.GroupLabel.State>(\n \"px-2 py-1.5 text-xs text-muted-foreground\",\n className\n )}\n data-slot=\"combobox-label\"\n {...props}\n />\n);\n\nexport { ComboboxLabel };\n","\"use client\";\n\nimport type { CSSProperties } from \"react\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxListVariants = tv({\n base: \"no-scrollbar overflow-y-auto overscroll-contain data-empty:p-0\",\n variants: {\n size: {\n xs: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-0.5 p-0.5\",\n sm: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1\",\n md: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1\",\n lg: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1.5 p-1.5\",\n xl: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-2 p-2\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst comboboxAnchorOffsetBySize: Record<InputSize, string> = {\n xs: \"1.5rem\",\n sm: \"2rem\",\n md: \"2.25rem\",\n lg: \"2.5rem\",\n xl: \"2.75rem\",\n};\n\nexport type ComboboxListProps = ComboboxPrimitive.List.Props &\n VariantProps<typeof comboboxListVariants>;\n\nconst ComboboxList = ({\n className,\n size,\n style,\n ...props\n}: ComboboxListProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.List\n className={mergeBaseUIClassName<ComboboxPrimitive.List.State>(\n comboboxListVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-list\"\n style={\n {\n \"--kb-combobox-anchor-offset\":\n comboboxAnchorOffsetBySize[resolvedSize],\n ...style,\n } as CSSProperties & { \"--kb-combobox-anchor-offset\": string }\n }\n {...props}\n />\n );\n};\n\nexport { ComboboxList };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxRowVariants = tv({\n base: \"grid w-full\",\n variants: {\n size: {\n xs: \"scroll-my-1\",\n sm: \"scroll-my-1\",\n md: \"scroll-my-1.5\",\n lg: \"scroll-my-2\",\n xl: \"scroll-my-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxRowProps = ComboboxPrimitive.Row.Props &\n VariantProps<typeof comboboxRowVariants>;\n\nconst ComboboxRow = ({ className, size, ...props }: ComboboxRowProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Row\n className={mergeBaseUIClassName<ComboboxPrimitive.Row.State>(\n comboboxRowVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-row\"\n {...props}\n />\n );\n};\n\nexport { ComboboxRow };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props;\n\nconst ComboboxSeparator = ({ className, ...props }: ComboboxSeparatorProps) => (\n <ComboboxPrimitive.Separator\n className={mergeBaseUIClassName<ComboboxPrimitive.Separator.State>(\n \"-mx-1 my-1 h-px bg-border\",\n className\n )}\n data-slot=\"combobox-separator\"\n {...props}\n />\n);\n\nexport { ComboboxSeparator };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxStatusVariants = tv({\n base: \"flex items-center text-muted-foreground\",\n variants: {\n size: {\n xs: \"gap-1 px-1.5 py-1 text-xs\",\n sm: \"gap-1.5 px-2 py-1 text-sm\",\n md: \"gap-2 px-2 py-1.5 text-sm\",\n lg: \"gap-2 px-2.5 py-2 text-sm\",\n xl: \"gap-2.5 px-3 py-2.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxStatusProps = ComboboxPrimitive.Status.Props &\n VariantProps<typeof comboboxStatusVariants>;\n\nconst ComboboxStatus = ({ className, size, ...props }: ComboboxStatusProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Status\n className={mergeBaseUIClassName<ComboboxPrimitive.Status.State>(\n comboboxStatusVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-status\"\n {...props}\n />\n );\n};\n\nexport { ComboboxStatus };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nexport type ComboboxValueProps = ComboboxPrimitive.Value.Props;\n\nconst ComboboxValue = ({ ...props }: ComboboxValueProps) => (\n <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n);\n\nexport { ComboboxValue };\n","import { useRef } from \"react\";\n\nconst useComboboxAnchor = () => useRef<HTMLDivElement | null>(null);\n\nexport { useComboboxAnchor };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-combobox-anchor-CR11U_ns.js","names":["ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","mapComboboxSizeToInputGroupIconButtonSize","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive","ComboboxPrimitive"],"sources":["../src/ui/combobox/combobox-arrow.tsx","../src/ui/combobox/combobox-backdrop.tsx","../src/ui/combobox/combobox-context.tsx","../src/ui/combobox/combobox-chip-remove.tsx","../src/ui/combobox/combobox-chip.tsx","../src/ui/combobox/combobox-chips.tsx","../src/ui/combobox/combobox-chips-input.tsx","../src/ui/combobox/combobox-clear.tsx","../src/ui/combobox/combobox-collection.tsx","../src/ui/combobox/combobox-overlay-context.tsx","../src/ui/combobox/combobox-popup.tsx","../src/ui/combobox/combobox-portal.tsx","../src/ui/combobox/combobox-positioner.tsx","../src/ui/combobox/combobox-content.tsx","../src/ui/combobox/combobox-empty.tsx","../src/ui/combobox/combobox-group.tsx","../src/ui/combobox/combobox-group-label.tsx","../src/ui/combobox/combobox-icon.tsx","../src/ui/combobox/combobox-trigger.tsx","../src/ui/combobox/combobox-input.tsx","../src/ui/combobox/combobox-item-indicator.tsx","../src/ui/combobox/combobox-item.tsx","../src/ui/combobox/combobox-label.tsx","../src/ui/combobox/combobox-list.tsx","../src/ui/combobox/combobox-row.tsx","../src/ui/combobox/combobox-separator.tsx","../src/ui/combobox/combobox-status.tsx","../src/ui/combobox/combobox-value.tsx","../src/ui/combobox/use-combobox-anchor.tsx"],"sourcesContent":["\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxArrowProps = ComboboxPrimitive.Arrow.Props;\n\nconst ComboboxArrow = ({ className, ...props }: ComboboxArrowProps) => (\n <ComboboxPrimitive.Arrow\n className={mergeBaseUIClassName<ComboboxPrimitive.Arrow.State>(\n undefined,\n className\n )}\n data-slot=\"combobox-arrow\"\n {...props}\n />\n);\n\nexport { ComboboxArrow };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxBackdropProps = ComboboxPrimitive.Backdrop.Props;\n\nconst ComboboxBackdrop = ({ className, ...props }: ComboboxBackdropProps) => (\n <ComboboxPrimitive.Backdrop\n className={mergeBaseUIClassName<ComboboxPrimitive.Backdrop.State>(\n undefined,\n className\n )}\n data-slot=\"combobox-backdrop\"\n {...props}\n />\n);\n\nexport { ComboboxBackdrop };\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface ComboboxContextValue {\n size?: InputSize;\n}\n\nconst ComboboxContext = createContext<ComboboxContextValue>({\n size: \"md\",\n});\n\nexport { ComboboxContext };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { Button } from \"../button/button\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nexport type ComboboxChipRemoveProps = ComboboxPrimitive.ChipRemove.Props & {\n size?: InputSize;\n};\n\nconst mapComboboxSizeToButtonIconSize = (size: InputSize) => {\n if (size === \"xl\") {\n return \"icon-sm\";\n }\n\n return \"icon-xs\";\n};\n\nconst ComboboxChipRemove = ({\n className,\n size,\n ...props\n}: ComboboxChipRemoveProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.ChipRemove\n className={mergeBaseUIClassName<ComboboxPrimitive.ChipRemove.State>(\n \"-ml-1 opacity-50 hover:opacity-100\",\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-chip-remove\"\n render={\n <Button\n size={mapComboboxSizeToButtonIconSize(resolvedSize)}\n variant=\"ghost\"\n />\n }\n {...props}\n >\n <HugeiconsIcon\n className=\"pointer-events-none\"\n icon={Cancel01Icon}\n strokeWidth={2}\n />\n </ComboboxPrimitive.ChipRemove>\n );\n};\n\nexport { ComboboxChipRemove };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxChipRemove } from \"./combobox-chip-remove\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nconst comboboxChipVariants = tv({\n base: \"flex w-fit items-center justify-center gap-1 rounded-sm bg-muted 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 variants: {\n size: {\n xs: \"h-5 px-1 text-[11px]\",\n sm: \"h-[calc(--spacing(5.25))] px-1.5 text-xs\",\n md: \"h-[calc(--spacing(5.25))] px-1.5 text-xs\",\n lg: \"h-6 px-2 text-xs\",\n xl: \"h-7 px-2.5 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxChipProps = ComboboxPrimitive.Chip.Props &\n VariantProps<typeof comboboxChipVariants> & {\n showRemove?: boolean;\n };\n\nconst ComboboxChip = ({\n className,\n children,\n size,\n showRemove = true,\n ...props\n}: ComboboxChipProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Chip\n className={mergeBaseUIClassName<ComboboxPrimitive.Chip.State>(\n comboboxChipVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-chip\"\n {...props}\n >\n {children}\n {showRemove && <ComboboxChipRemove size={resolvedSize} />}\n </ComboboxPrimitive.Chip>\n );\n};\n\nexport { ComboboxChip };\n","\"use client\";\n\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nconst comboboxChipsVariants = tv({\n base: \"flex flex-wrap items-center border border-input bg-transparent bg-clip-padding transition-colors focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50 has-aria-invalid:border-danger has-aria-invalid:ring-[3px] has-aria-invalid:ring-danger/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-danger/50 dark:has-aria-invalid:ring-danger/40\",\n variants: {\n size: {\n xs: \"min-h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 py-0.5 text-xs\",\n sm: \"min-h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 py-1 text-sm\",\n md: \"min-h-9 gap-1 rounded-md px-2.5 py-1 text-sm\",\n lg: \"min-h-10 gap-1.5 rounded-md px-3 py-1.5 text-sm\",\n xl: \"min-h-11 gap-1.5 rounded-md px-4 py-2 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxChipsProps = ComponentPropsWithRef<\n typeof ComboboxPrimitive.Chips\n> &\n ComboboxPrimitive.Chips.Props &\n VariantProps<typeof comboboxChipsVariants>;\n\nconst ComboboxChips = ({ className, size, ...props }: ComboboxChipsProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Chips\n className={mergeBaseUIClassName<ComboboxPrimitive.Chips.State>(\n comboboxChipsVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-chips\"\n {...props}\n />\n );\n};\n\nexport { ComboboxChips };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxChipsInputProps = ComboboxPrimitive.Input.Props;\n\nconst ComboboxChipsInput = ({\n className,\n ...props\n}: ComboboxChipsInputProps) => (\n <ComboboxPrimitive.Input\n className={mergeBaseUIClassName<ComboboxPrimitive.Input.State>(\n \"min-w-16 flex-1 outline-none\",\n className\n )}\n data-slot=\"combobox-chip-input\"\n {...props}\n />\n);\n\nexport { ComboboxChipsInput };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { InputGroupButton } from \"../input-group/input-group\";\nimport { ComboboxContext } from \"./combobox-context\";\n\nexport type ComboboxClearProps = ComboboxPrimitive.Clear.Props & {\n size?: InputSize;\n};\n\nconst mapComboboxSizeToInputGroupIconButtonSize = (size: InputSize) => {\n if (size === \"xl\") {\n return \"icon-sm\";\n }\n\n return \"icon-xs\";\n};\n\nconst ComboboxClear = ({ className, size, ...props }: ComboboxClearProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Clear\n className={mergeBaseUIClassName<ComboboxPrimitive.Clear.State>(\n undefined,\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-clear\"\n render={\n <InputGroupButton\n size={mapComboboxSizeToInputGroupIconButtonSize(resolvedSize)}\n variant=\"ghost\"\n />\n }\n {...props}\n >\n <HugeiconsIcon\n className=\"pointer-events-none\"\n icon={Cancel01Icon}\n strokeWidth={2}\n />\n </ComboboxPrimitive.Clear>\n );\n};\n\nexport { ComboboxClear };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nexport type ComboboxCollectionProps = ComboboxPrimitive.Collection.Props;\n\nconst ComboboxCollection = ({ ...props }: ComboboxCollectionProps) => (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n);\n\nexport { ComboboxCollection };\n","\"use client\";\n\nimport { createContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nexport interface ComboboxOverlayContextValue {\n size?: InputSize;\n}\n\nconst ComboboxOverlayContext = createContext<ComboboxOverlayContextValue>({\n size: \"md\",\n});\n\nexport { ComboboxOverlayContext };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxPopupVariants = tv({\n base: \"group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-36 min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[chips=true]:min-w-(--anchor-width) 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-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none\",\n variants: {\n size: {\n xs: \"rounded-[min(var(--radius-md),8px)]\",\n sm: \"rounded-[min(var(--radius-md),10px)]\",\n md: \"rounded-lg\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ComboboxPopupVariantProps = VariantProps<typeof comboboxPopupVariants>;\n\nexport type ComboboxPopupProps = ComboboxPrimitive.Popup.Props &\n ComboboxPopupVariantProps;\n\nconst ComboboxPopup = ({ className, size, ...props }: ComboboxPopupProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Popup\n className={mergeBaseUIClassName<ComboboxPrimitive.Popup.State>(\n comboboxPopupVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-popup\"\n {...props}\n />\n );\n};\n\nexport { ComboboxPopup };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nexport type ComboboxPortalProps = ComboboxPrimitive.Portal.Props;\n\nconst ComboboxPortal = (props: ComboboxPortalProps) => (\n <ComboboxPrimitive.Portal data-slot=\"combobox-portal\" {...props} />\n);\n\nexport { ComboboxPortal };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxPositionerProps = ComboboxPrimitive.Positioner.Props;\n\nconst ComboboxPositioner = ({\n className,\n ...props\n}: ComboboxPositionerProps) => (\n <ComboboxPrimitive.Positioner\n className={mergeBaseUIClassName<ComboboxPrimitive.Positioner.State>(\n \"isolate z-50\",\n className\n )}\n data-slot=\"combobox-positioner\"\n {...props}\n />\n);\n\nexport { ComboboxPositioner };\n","\"use client\";\n\nimport type { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { ComboboxContext } from \"./combobox-context\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\nimport { ComboboxPopup } from \"./combobox-popup\";\nimport { ComboboxPortal } from \"./combobox-portal\";\nimport { ComboboxPositioner } from \"./combobox-positioner\";\n\nexport type ComboboxContentProps = ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n > & {\n size?: InputSize;\n };\n\nconst ComboboxContent = ({\n className,\n size,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxContentProps) => {\n const { size: rootSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? rootSize ?? \"md\";\n\n return (\n <ComboboxOverlayContext.Provider value={{ size: resolvedSize }}>\n <ComboboxPortal>\n <ComboboxPositioner\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n side={side}\n sideOffset={sideOffset}\n >\n <ComboboxPopup\n className={className}\n data-chips={!!anchor}\n data-size={resolvedSize}\n data-slot=\"combobox-content\"\n size={resolvedSize}\n {...props}\n />\n </ComboboxPositioner>\n </ComboboxPortal>\n </ComboboxOverlayContext.Provider>\n );\n};\n\nexport { ComboboxContent };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxEmptyVariants = tv({\n base: \"hidden w-full justify-center text-center text-muted-foreground group-data-empty/combobox-content:flex\",\n variants: {\n size: {\n xs: \"py-2 text-xs\",\n sm: \"py-2 text-sm\",\n md: \"py-2.5 text-sm\",\n lg: \"py-3 text-sm\",\n xl: \"py-3.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxEmptyProps = ComboboxPrimitive.Empty.Props &\n VariantProps<typeof comboboxEmptyVariants>;\n\nconst ComboboxEmpty = ({ className, size, ...props }: ComboboxEmptyProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Empty\n className={mergeBaseUIClassName<ComboboxPrimitive.Empty.State>(\n comboboxEmptyVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-empty\"\n {...props}\n />\n );\n};\n\nexport { ComboboxEmpty };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxGroupProps = ComboboxPrimitive.Group.Props;\n\nconst ComboboxGroup = ({ className, ...props }: ComboboxGroupProps) => (\n <ComboboxPrimitive.Group\n className={mergeBaseUIClassName<ComboboxPrimitive.Group.State>(\n undefined,\n className\n )}\n data-slot=\"combobox-group\"\n {...props}\n />\n);\n\nexport { ComboboxGroup };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxGroupLabelVariants = tv({\n base: \"text-muted-foreground\",\n variants: {\n size: {\n xs: \"px-1.5 py-1 text-xs\",\n sm: \"px-2 py-1 text-xs\",\n md: \"px-2 py-1.5 text-xs\",\n lg: \"px-2.5 py-1.5 text-sm\",\n xl: \"px-3 py-2 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxGroupLabelProps = ComboboxPrimitive.GroupLabel.Props &\n VariantProps<typeof comboboxGroupLabelVariants>;\n\nconst ComboboxGroupLabel = ({\n className,\n size,\n ...props\n}: ComboboxGroupLabelProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.GroupLabel\n className={mergeBaseUIClassName<ComboboxPrimitive.GroupLabel.State>(\n comboboxGroupLabelVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-group-label\"\n {...props}\n />\n );\n};\n\nexport { ComboboxGroupLabel };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxIconProps = ComboboxPrimitive.Icon.Props;\n\nconst ComboboxIcon = ({ className, ...props }: ComboboxIconProps) => (\n <ComboboxPrimitive.Icon\n className={mergeBaseUIClassName<ComboboxPrimitive.Icon.State>(\n \"pointer-events-none size-4 text-muted-foreground\",\n className\n )}\n data-slot=\"combobox-icon\"\n {...props}\n />\n);\n\nexport { ComboboxIcon };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { ArrowDown01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxIcon } from \"./combobox-icon\";\n\nexport type ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props;\n\nconst ComboboxTrigger = ({\n className,\n children,\n ...props\n}: ComboboxTriggerProps) => (\n <ComboboxPrimitive.Trigger\n className={mergeBaseUIClassName<ComboboxPrimitive.Trigger.State>(\n \"cursor-pointer\",\n className\n )}\n data-slot=\"combobox-trigger\"\n {...props}\n >\n {children}\n <ComboboxIcon\n render={\n <HugeiconsIcon\n className=\"pointer-events-none text-muted-foreground\"\n icon={ArrowDown01Icon}\n strokeWidth={2}\n />\n }\n />\n </ComboboxPrimitive.Trigger>\n);\n\nexport { ComboboxTrigger };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n} from \"../input-group/input-group\";\nimport { ComboboxClear } from \"./combobox-clear\";\nimport { ComboboxContext } from \"./combobox-context\";\nimport { ComboboxTrigger } from \"./combobox-trigger\";\n\ntype NativeComboboxInputProps = ComboboxPrimitive.Input.Props;\n\nexport type ComboboxInputProps = Omit<NativeComboboxInputProps, \"size\"> & {\n htmlSize?: NativeComboboxInputProps[\"size\"];\n size?: InputSize;\n showTrigger?: boolean;\n showClear?: boolean;\n};\n\nconst mapComboboxSizeToInputGroupIconButtonSize = (size: InputSize) => {\n if (size === \"xl\") {\n return \"icon-sm\";\n }\n\n return \"icon-xs\";\n};\n\nconst ComboboxInput = ({\n className,\n children,\n disabled = false,\n htmlSize,\n size,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxInputProps) => {\n const { size: contextSize } = useContext(ComboboxContext);\n const resolvedSize = size ?? contextSize ?? \"md\";\n const iconButtonSize =\n mapComboboxSizeToInputGroupIconButtonSize(resolvedSize);\n\n return (\n <InputGroup className=\"w-auto\" size={resolvedSize}>\n <ComboboxPrimitive.Input\n className={mergeBaseUIClassName<ComboboxPrimitive.Input.State>(\n undefined,\n className\n )}\n data-size={resolvedSize}\n render={<InputGroupInput disabled={disabled} size={resolvedSize} />}\n size={htmlSize}\n {...props}\n />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden gap-0 data-pressed:bg-transparent\"\n data-slot=\"input-group-button\"\n disabled={disabled}\n render={<ComboboxTrigger />}\n size={iconButtonSize}\n variant=\"ghost\"\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} size={resolvedSize} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n );\n};\n\nexport { ComboboxInput };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxItemIndicatorVariants = tv({\n base: \"pointer-events-none absolute flex items-center justify-center\",\n variants: {\n size: {\n xs: \"right-1.5 size-3\",\n sm: \"right-2 size-3.5\",\n md: \"right-2 size-4\",\n lg: \"right-2.5 size-4\",\n xl: \"right-3 size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ComboboxItemIndicatorVariantProps = VariantProps<\n typeof comboboxItemIndicatorVariants\n>;\n\nexport type ComboboxItemIndicatorProps = ComboboxPrimitive.ItemIndicator.Props &\n ComboboxItemIndicatorVariantProps;\n\nconst ComboboxItemIndicator = ({\n className,\n render,\n size,\n ...props\n}: ComboboxItemIndicatorProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n const indicatorClassName = comboboxItemIndicatorVariants({\n size: resolvedSize,\n });\n\n return (\n <ComboboxPrimitive.ItemIndicator\n className={mergeBaseUIClassName<ComboboxPrimitive.ItemIndicator.State>(\n indicatorClassName,\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-item-indicator\"\n render={render ?? <span className={indicatorClassName} />}\n {...props}\n />\n );\n};\n\nexport { ComboboxItemIndicator };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { Tick02Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxItemIndicator } from \"./combobox-item-indicator\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxItemVariants = tv({\n slots: {\n icon: \"pointer-events-none\",\n root: \"relative flex w-full cursor-pointer items-center rounded-md outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=danger]:data-highlighted:**:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n },\n variants: {\n size: {\n xs: {\n icon: \"size-3\",\n root: \"gap-1 py-1 pr-6 pl-1.5 text-xs [&_svg:not([class*='size-'])]:size-3\",\n },\n sm: {\n icon: \"size-3.5\",\n root: \"gap-1.5 py-1 pr-7 pl-2 text-sm [&_svg:not([class*='size-'])]:size-3.5\",\n },\n md: {\n icon: \"size-4\",\n root: \"gap-2 py-1.5 pr-8 pl-1.5 text-sm [&_svg:not([class*='size-'])]:size-4\",\n },\n lg: {\n icon: \"size-4\",\n root: \"gap-2 py-2 pr-9 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n },\n xl: {\n icon: \"size-5\",\n root: \"gap-2.5 py-2.5 pr-10 pl-2.5 text-base [&_svg:not([class*='size-'])]:size-5\",\n },\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ComboboxItemVariantProps = VariantProps<typeof comboboxItemVariants>;\n\nexport type ComboboxItemProps = ComboboxPrimitive.Item.Props &\n ComboboxItemVariantProps;\n\nconst ComboboxItem = ({\n className,\n children,\n size,\n ...props\n}: ComboboxItemProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n const { icon, root } = comboboxItemVariants({ size: resolvedSize });\n\n return (\n <ComboboxPrimitive.Item\n className={mergeBaseUIClassName<ComboboxPrimitive.Item.State>(\n root(),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-item\"\n {...props}\n >\n {children}\n <ComboboxItemIndicator size={resolvedSize}>\n <HugeiconsIcon className={icon()} icon={Tick02Icon} strokeWidth={2} />\n </ComboboxItemIndicator>\n </ComboboxPrimitive.Item>\n );\n};\n\nexport { ComboboxItem };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxLabelProps = ComboboxPrimitive.GroupLabel.Props;\n\nconst ComboboxLabel = ({ className, ...props }: ComboboxLabelProps) => (\n <ComboboxPrimitive.GroupLabel\n className={mergeBaseUIClassName<ComboboxPrimitive.GroupLabel.State>(\n \"px-2 py-1.5 text-xs text-muted-foreground\",\n className\n )}\n data-slot=\"combobox-label\"\n {...props}\n />\n);\n\nexport { ComboboxLabel };\n","\"use client\";\n\nimport type { CSSProperties } from \"react\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxListVariants = tv({\n base: \"no-scrollbar overflow-y-auto overscroll-contain data-empty:p-0\",\n variants: {\n size: {\n xs: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-0.5 p-0.5\",\n sm: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1\",\n md: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1 p-1\",\n lg: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-1.5 p-1.5\",\n xl: \"max-h-[min(calc(--spacing(72)-var(--kb-combobox-anchor-offset)),calc(var(--available-height)-var(--kb-combobox-anchor-offset)))] scroll-py-2 p-2\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst comboboxAnchorOffsetBySize: Record<InputSize, string> = {\n xs: \"1.5rem\",\n sm: \"2rem\",\n md: \"2.25rem\",\n lg: \"2.5rem\",\n xl: \"2.75rem\",\n};\n\nexport type ComboboxListProps = ComboboxPrimitive.List.Props &\n VariantProps<typeof comboboxListVariants>;\n\nconst ComboboxList = ({\n className,\n size,\n style,\n ...props\n}: ComboboxListProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.List\n className={mergeBaseUIClassName<ComboboxPrimitive.List.State>(\n comboboxListVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-list\"\n style={\n {\n \"--kb-combobox-anchor-offset\":\n comboboxAnchorOffsetBySize[resolvedSize],\n ...style,\n } as CSSProperties & { \"--kb-combobox-anchor-offset\": string }\n }\n {...props}\n />\n );\n};\n\nexport { ComboboxList };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxRowVariants = tv({\n base: \"grid w-full\",\n variants: {\n size: {\n xs: \"scroll-my-1\",\n sm: \"scroll-my-1\",\n md: \"scroll-my-1.5\",\n lg: \"scroll-my-2\",\n xl: \"scroll-my-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxRowProps = ComboboxPrimitive.Row.Props &\n VariantProps<typeof comboboxRowVariants>;\n\nconst ComboboxRow = ({ className, size, ...props }: ComboboxRowProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Row\n className={mergeBaseUIClassName<ComboboxPrimitive.Row.State>(\n comboboxRowVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-row\"\n {...props}\n />\n );\n};\n\nexport { ComboboxRow };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props;\n\nconst ComboboxSeparator = ({ className, ...props }: ComboboxSeparatorProps) => (\n <ComboboxPrimitive.Separator\n className={mergeBaseUIClassName<ComboboxPrimitive.Separator.State>(\n \"-mx-1 my-1 h-px bg-border\",\n className\n )}\n data-slot=\"combobox-separator\"\n {...props}\n />\n);\n\nexport { ComboboxSeparator };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { useContext } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { InputSize } from \"../input/input\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ComboboxOverlayContext } from \"./combobox-overlay-context\";\n\nconst comboboxStatusVariants = tv({\n base: \"flex items-center text-muted-foreground\",\n variants: {\n size: {\n xs: \"gap-1 px-1.5 py-1 text-xs\",\n sm: \"gap-1.5 px-2 py-1 text-sm\",\n md: \"gap-2 px-2 py-1.5 text-sm\",\n lg: \"gap-2 px-2.5 py-2 text-sm\",\n xl: \"gap-2.5 px-3 py-2.5 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport type ComboboxStatusProps = ComboboxPrimitive.Status.Props &\n VariantProps<typeof comboboxStatusVariants>;\n\nconst ComboboxStatus = ({ className, size, ...props }: ComboboxStatusProps) => {\n const { size: overlaySize } = useContext(ComboboxOverlayContext);\n const resolvedSize: InputSize = size ?? overlaySize ?? \"md\";\n\n return (\n <ComboboxPrimitive.Status\n className={mergeBaseUIClassName<ComboboxPrimitive.Status.State>(\n comboboxStatusVariants({ size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"combobox-status\"\n {...props}\n />\n );\n};\n\nexport { ComboboxStatus };\n","\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\n\nexport type ComboboxValueProps = ComboboxPrimitive.Value.Props;\n\nconst ComboboxValue = ({ ...props }: ComboboxValueProps) => (\n <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n);\n\nexport { ComboboxValue };\n","import { useRef } from \"react\";\n\nconst useComboboxAnchor = () => useRef<HTMLDivElement | null>(null);\n\nexport { useComboboxAnchor };\n"],"mappings":"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"}
|