@cryptlex/web-components 1.3.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/components/data-table/column-picker.es.js +12 -11
- package/dist/components/data-table/column-picker.es.js.map +1 -1
- package/dist/components/data-table/data-table.es.js +112 -95
- package/dist/components/data-table/data-table.es.js.map +1 -1
- package/dist/components/data-table/table-actions.es.js +8 -8
- package/dist/components/data-table/table-actions.es.js.map +1 -1
- package/dist/components/data-table/table-content.es.js +20 -15
- package/dist/components/data-table/table-content.es.js.map +1 -1
- package/dist/components/data-table/table-filter.es.js +264 -0
- package/dist/components/data-table/table-filter.es.js.map +1 -0
- package/dist/components/data-table/table-utils/constants.es.js +20 -6
- package/dist/components/data-table/table-utils/constants.es.js.map +1 -1
- package/dist/components/data-table/table-utils/link-display.es.js +4 -4
- package/dist/components/data-table/table-utils/link-display.es.js.map +1 -1
- package/dist/components/key-value-card/key-value-card.es.js +87 -0
- package/dist/components/key-value-card/key-value-card.es.js.map +1 -0
- package/dist/components/sidebar/app-layout.es.js +41 -47
- package/dist/components/sidebar/app-layout.es.js.map +1 -1
- package/dist/components/sidebar/breadcrumb.es.js +58 -0
- package/dist/components/sidebar/breadcrumb.es.js.map +1 -0
- package/dist/components/sidebar/nav-main.es.js +65 -51
- package/dist/components/sidebar/nav-main.es.js.map +1 -1
- package/dist/components/static-data-table/data-table.es.js +8 -8
- package/dist/components/static-data-table/data-table.es.js.map +1 -1
- package/dist/components/ui/avatar.es.js +1 -1
- package/dist/components/ui/avatar.es.js.map +1 -1
- package/dist/components/ui/badge.es.js +1 -1
- package/dist/components/ui/badge.es.js.map +1 -1
- package/dist/components/ui/button.es.js +15 -14
- package/dist/components/ui/button.es.js.map +1 -1
- package/dist/components/ui/calendar.es.js +3 -3
- package/dist/components/ui/chart.es.js +16 -16
- package/dist/components/ui/chart.es.js.map +1 -1
- package/dist/components/ui/checkbox.es.js +1 -1
- package/dist/components/ui/checkbox.es.js.map +1 -1
- package/dist/components/ui/command.es.js +28 -28
- package/dist/components/ui/command.es.js.map +1 -1
- package/dist/components/ui/copy-button.es.js +76 -0
- package/dist/components/ui/copy-button.es.js.map +1 -0
- package/dist/components/ui/dialog.es.js +8 -8
- package/dist/components/ui/dialog.es.js.map +1 -1
- package/dist/components/ui/drawer.es.js +18 -21
- package/dist/components/ui/drawer.es.js.map +1 -1
- package/dist/components/ui/dropdown-menu.es.js +38 -38
- package/dist/components/ui/dropdown-menu.es.js.map +1 -1
- package/dist/components/ui/form.es.js +4 -4
- package/dist/components/ui/input-otp.es.js +2 -2
- package/dist/components/ui/input-otp.es.js.map +1 -1
- package/dist/components/ui/input.es.js +7 -7
- package/dist/components/ui/input.es.js.map +1 -1
- package/dist/components/ui/link-button.es.js +22 -0
- package/dist/components/ui/link-button.es.js.map +1 -0
- package/dist/components/ui/mutli-select.es.js +17 -15
- package/dist/components/ui/mutli-select.es.js.map +1 -1
- package/dist/components/ui/navigation-menu.es.js +3 -3
- package/dist/components/ui/navigation-menu.es.js.map +1 -1
- package/dist/components/ui/password-input.es.js +10 -10
- package/dist/components/ui/password-input.es.js.map +1 -1
- package/dist/components/ui/popover.es.js +1 -1
- package/dist/components/ui/popover.es.js.map +1 -1
- package/dist/components/ui/radio-group.es.js +7 -7
- package/dist/components/ui/radio-group.es.js.map +1 -1
- package/dist/components/ui/select.es.js +20 -20
- package/dist/components/ui/select.es.js.map +1 -1
- package/dist/components/ui/sheet.es.js +8 -8
- package/dist/components/ui/sheet.es.js.map +1 -1
- package/dist/components/ui/sidebar.es.js +76 -76
- package/dist/components/ui/sidebar.es.js.map +1 -1
- package/dist/components/ui/table-page-layout.es.js +8 -8
- package/dist/components/ui/table-page-layout.es.js.map +1 -1
- package/dist/components/ui/table.es.js +19 -19
- package/dist/components/ui/table.es.js.map +1 -1
- package/dist/components/ui/tabs.es.js +11 -11
- package/dist/components/ui/tabs.es.js.map +1 -1
- package/dist/index.es.d.ts +54 -21
- package/dist/index.es.js +231 -226
- package/dist/index.es.js.map +1 -1
- package/dist/utils/index.es.js +19 -14
- package/dist/utils/index.es.js.map +1 -1
- package/lib/index.css +15 -87
- package/lib/tailwind.preset.css +220 -0
- package/lib/tokens.css +54 -54
- package/package.json +9 -8
- package/dist/components/info-card/info-card.es.js +0 -71
- package/dist/components/info-card/info-card.es.js.map +0 -1
- package/tailwind.preset.ts +0 -183
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.es.js","sources":["../../../lib/components/ui/sidebar.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight, Menu } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/utils';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\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\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.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] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n if (setOpenProp) {\n return setOpenProp?.(typeof value === 'function' ? value(open) : value);\n }\n\n _setOpen(value);\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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 = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader>\n <SheetTitle />\n <SheetDescription />\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, open, isMobile } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n {isMobile ? <Menu /> : open ? <ChevronLeft /> : <ChevronRight />}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[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=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-caption font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-body', className)}\n {...props}\n />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-body outline-none ring-sidebar-ring transition-[width,height,padding] 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 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\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(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-body',\n sm: 'h-7 text-caption',\n lg: 'h-12 text-body group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'lg',\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-caption font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />,\n);\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-caption',\n size === 'md' && 'text-body',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","jsxs","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","Menu","ChevronLeft","ChevronRight","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sidebar.es.js","sources":["../../../lib/components/ui/sidebar.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { ChevronLeft, ChevronRight, Menu } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Separator } from '@/components/ui/separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '@/components/ui/sheet';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/utils';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\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\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.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] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n if (setOpenProp) {\n return setOpenProp?.(typeof value === 'function' ? value(open) : value);\n }\n\n _setOpen(value);\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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 = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader>\n <SheetTitle />\n <SheetDescription />\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, open, isMobile } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n {isMobile ? <Menu /> : open ? <ChevronLeft /> : <ChevronRight />}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 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=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-caption font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-body', className)}\n {...props}\n />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col', className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-body outline-hidden ring-sidebar-ring transition-[width,height,padding] 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 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\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(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-body',\n sm: 'h-7 text-caption',\n lg: 'h-12 text-body group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'lg',\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-caption font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-(--skeleton-width)\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />,\n);\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-caption',\n size === 'md' && 'text-body',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","jsxs","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","Menu","ChevronLeft","ChevronRight","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
function
|
|
3
|
-
resourceName:
|
|
4
|
-
children:
|
|
1
|
+
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
function s({
|
|
3
|
+
resourceName: t,
|
|
4
|
+
children: i
|
|
5
5
|
}) {
|
|
6
|
-
return /* @__PURE__ */
|
|
7
|
-
/* @__PURE__ */ e("h4", { children:
|
|
8
|
-
/* @__PURE__ */ e("div", { children:
|
|
6
|
+
return /* @__PURE__ */ n("section", { className: "flex-1 justify-between gap-10", children: [
|
|
7
|
+
/* @__PURE__ */ e("h4", { children: t }),
|
|
8
|
+
/* @__PURE__ */ e("div", { children: i })
|
|
9
9
|
] });
|
|
10
10
|
}
|
|
11
11
|
export {
|
|
12
|
-
|
|
12
|
+
s as TablePageLayout
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=table-page-layout.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-page-layout.es.js","sources":["../../../lib/components/ui/table-page-layout.tsx"],"sourcesContent":["export function TablePageLayout({\n resourceName,\n children,\n}: {\n resourceName: string;\n children?: React.ReactNode;\n}) {\n return (\n <section className=\"
|
|
1
|
+
{"version":3,"file":"table-page-layout.es.js","sources":["../../../lib/components/ui/table-page-layout.tsx"],"sourcesContent":["export function TablePageLayout({\n resourceName,\n children,\n}: {\n resourceName: string;\n children?: React.ReactNode;\n}) {\n return (\n <section className=\"flex-1 justify-between gap-10\">\n <h4>{resourceName}</h4>\n <div>{children}</div>\n </section>\n );\n}\n"],"names":["TablePageLayout","resourceName","children","jsxs","jsx"],"mappings":";AAAO,SAASA,EAAgB;AAAA,EAC9B,cAAAC;AAAA,EACA,UAAAC;AACF,GAGG;AAEC,SAAA,gBAAAC,EAAC,WAAQ,EAAA,WAAU,kCACjB,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAI,UAAaH,EAAA,CAAA;AAAA,IAClB,gBAAAG,EAAC,SAAK,UAAAF,EAAS,CAAA;AAAA,EAAA,GACjB;AAEJ;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import * as t from "react";
|
|
3
|
-
import { cn as
|
|
4
|
-
const
|
|
3
|
+
import { cn as d } from "../../utils/index.es.js";
|
|
4
|
+
const l = t.forwardRef(
|
|
5
5
|
({ className: e, ...a }, r) => /* @__PURE__ */ o("div", { className: "w-full", children: /* @__PURE__ */ o(
|
|
6
6
|
"table",
|
|
7
7
|
{
|
|
8
8
|
ref: r,
|
|
9
|
-
className:
|
|
9
|
+
className: d(
|
|
10
10
|
"w-full caption-bottom text-sm [&_tr:last-child]:border-0 my-0 overflow-x-auto whitespace-nowrap",
|
|
11
11
|
e
|
|
12
12
|
),
|
|
@@ -14,12 +14,12 @@ const d = t.forwardRef(
|
|
|
14
14
|
}
|
|
15
15
|
) })
|
|
16
16
|
);
|
|
17
|
-
|
|
17
|
+
l.displayName = "Table";
|
|
18
18
|
const s = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
19
19
|
"thead",
|
|
20
20
|
{
|
|
21
21
|
ref: r,
|
|
22
|
-
className:
|
|
22
|
+
className: d("[&_tr]:border-b border-b", e),
|
|
23
23
|
...a
|
|
24
24
|
}
|
|
25
25
|
));
|
|
@@ -28,7 +28,7 @@ const b = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
|
28
28
|
"tbody",
|
|
29
29
|
{
|
|
30
30
|
ref: r,
|
|
31
|
-
className:
|
|
31
|
+
className: d(
|
|
32
32
|
"[&_tr:last-child]:border-b-2 [&_tr:last-child]:border-dotted",
|
|
33
33
|
// Updated to 2px dotted border for the last row
|
|
34
34
|
e
|
|
@@ -37,34 +37,34 @@ const b = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
|
37
37
|
}
|
|
38
38
|
));
|
|
39
39
|
b.displayName = "TableBody";
|
|
40
|
-
const
|
|
40
|
+
const m = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
41
41
|
"tfoot",
|
|
42
42
|
{
|
|
43
43
|
ref: r,
|
|
44
|
-
className:
|
|
44
|
+
className: d("border-t bg-card/50 font-medium last:[&>tr]:border-b-0", e),
|
|
45
45
|
...a
|
|
46
46
|
}
|
|
47
47
|
));
|
|
48
|
-
|
|
49
|
-
const
|
|
48
|
+
m.displayName = "TableFooter";
|
|
49
|
+
const c = t.forwardRef(
|
|
50
50
|
({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
51
51
|
"tr",
|
|
52
52
|
{
|
|
53
53
|
ref: r,
|
|
54
|
-
className:
|
|
55
|
-
"border-b
|
|
54
|
+
className: d(
|
|
55
|
+
"border-b border-card cursor-pointer transition-colors data-[state=selected]:bg-muted-foreground/20 hover:bg-muted-foreground/30",
|
|
56
56
|
e
|
|
57
57
|
),
|
|
58
58
|
...a
|
|
59
59
|
}
|
|
60
60
|
)
|
|
61
61
|
);
|
|
62
|
-
|
|
62
|
+
c.displayName = "TableRow";
|
|
63
63
|
const i = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
64
64
|
"th",
|
|
65
65
|
{
|
|
66
66
|
ref: r,
|
|
67
|
-
className:
|
|
67
|
+
className: d(
|
|
68
68
|
"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
|
|
69
69
|
e
|
|
70
70
|
),
|
|
@@ -76,7 +76,7 @@ const f = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
|
76
76
|
"td",
|
|
77
77
|
{
|
|
78
78
|
ref: r,
|
|
79
|
-
className:
|
|
79
|
+
className: d(
|
|
80
80
|
"p-4 align-middle [&:has([role=checkbox])]:pr-0 border-b [&_tr:last-child]:border-dotted",
|
|
81
81
|
e
|
|
82
82
|
),
|
|
@@ -84,16 +84,16 @@ const f = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o(
|
|
|
84
84
|
}
|
|
85
85
|
));
|
|
86
86
|
f.displayName = "TableCell";
|
|
87
|
-
const n = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o("caption", { ref: r, className:
|
|
87
|
+
const n = t.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ o("caption", { ref: r, className: d("mt-4 text-sm text-muted-foreground", e), ...a }));
|
|
88
88
|
n.displayName = "TableCaption";
|
|
89
89
|
export {
|
|
90
|
-
|
|
90
|
+
l as Table,
|
|
91
91
|
b as TableBody,
|
|
92
92
|
n as TableCaption,
|
|
93
93
|
f as TableCell,
|
|
94
|
-
|
|
94
|
+
m as TableFooter,
|
|
95
95
|
i as TableHead,
|
|
96
96
|
s as TableHeader,
|
|
97
|
-
|
|
97
|
+
c as TableRow
|
|
98
98
|
};
|
|
99
99
|
//# sourceMappingURL=table.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.es.js","sources":["../../../lib/components/ui/table.tsx"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"file":"table.es.js","sources":["../../../lib/components/ui/table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"w-full\">\n <table\n ref={ref}\n className={cn(\n 'w-full caption-bottom text-sm [&_tr:last-child]:border-0 my-0 overflow-x-auto whitespace-nowrap',\n className,\n )}\n {...props}\n />\n </div>\n ),\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn('[&_tr]:border-b border-b', className)} // Added border-b to apply a bottom border\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\n '[&_tr:last-child]:border-b-2 [&_tr:last-child]:border-dotted', // Updated to 2px dotted border for the last row\n className,\n )}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn('border-t bg-card/50 font-medium last:[&>tr]:border-b-0', className)}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b border-card cursor-pointer transition-colors data-[state=selected]:bg-muted-foreground/20 hover:bg-muted-foreground/30',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0 border-b [&_tr:last-child]:border-dotted',\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };\n"],"names":["Table","React","className","props","ref","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;;AAIA,MAAMA,IAAQC,EAAM;AAAA,EAClB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAI,EAAA,WAAU,UACb,UAAA,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA,EAER,CAAA;AAEJ;AACAH,EAAM,cAAc;AAEd,MAAAO,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,4BAA4BJ,CAAS;AAAA,IAClD,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAc;AAEpB,MAAAC,IAAYP,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAU,cAAc;AAElB,MAAAC,IAAcR,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,0DAA0DJ,CAAS;AAAA,IAChF,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAY,cAAc;AAE1B,MAAMC,IAAWT,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAO,EAAS,cAAc;AAEjB,MAAAC,IAAYV,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDQ,EAAU,cAAc;AAElB,MAAAC,IAAYX,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDS,EAAU,cAAc;AAElB,MAAAC,IAAeZ,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAS,GAAAC,wBACzB,WAAQ,EAAA,KAAAA,GAAU,WAAWE,EAAG,sCAAsCJ,CAAS,GAAI,GAAGC,GAAO,CAC/F;AACDU,EAAa,cAAc;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import * as
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import * as o from "react";
|
|
3
3
|
import * as e from "@radix-ui/react-tabs";
|
|
4
4
|
import { cn as n } from "../../utils/index.es.js";
|
|
5
|
-
const m = e.Root, r =
|
|
5
|
+
const m = e.Root, r = o.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ a(
|
|
6
6
|
e.List,
|
|
7
7
|
{
|
|
8
8
|
ref: s,
|
|
@@ -14,34 +14,34 @@ const m = e.Root, r = a.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ *
|
|
|
14
14
|
}
|
|
15
15
|
));
|
|
16
16
|
r.displayName = e.List.displayName;
|
|
17
|
-
const
|
|
17
|
+
const d = o.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ a(
|
|
18
18
|
e.Trigger,
|
|
19
19
|
{
|
|
20
20
|
ref: s,
|
|
21
21
|
className: n(
|
|
22
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-
|
|
22
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
23
23
|
i
|
|
24
24
|
),
|
|
25
25
|
...t
|
|
26
26
|
}
|
|
27
27
|
));
|
|
28
|
-
|
|
29
|
-
const
|
|
28
|
+
d.displayName = e.Trigger.displayName;
|
|
29
|
+
const f = o.forwardRef(({ className: i, ...t }, s) => /* @__PURE__ */ a(
|
|
30
30
|
e.Content,
|
|
31
31
|
{
|
|
32
32
|
ref: s,
|
|
33
33
|
className: n(
|
|
34
|
-
"mt-2 ring-offset-background focus-visible:outline-
|
|
34
|
+
"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
35
35
|
i
|
|
36
36
|
),
|
|
37
37
|
...t
|
|
38
38
|
}
|
|
39
39
|
));
|
|
40
|
-
|
|
40
|
+
f.displayName = e.Content.displayName;
|
|
41
41
|
export {
|
|
42
42
|
m as Tabs,
|
|
43
|
-
|
|
43
|
+
f as TabsContent,
|
|
44
44
|
r as TabsList,
|
|
45
|
-
|
|
45
|
+
d as TabsTrigger
|
|
46
46
|
};
|
|
47
47
|
//# sourceMappingURL=tabs.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.es.js","sources":["../../../lib/components/ui/tabs.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-
|
|
1
|
+
{"version":3,"file":"tabs.es.js","sources":["../../../lib/components/ui/tabs.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/utils\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-body font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n"],"names":["Tabs","TabsPrimitive","TabsList","React","className","props","ref","jsx","cn","TabsTrigger","TabsContent"],"mappings":";;;;AAKA,MAAMA,IAAOC,EAAc,MAErBC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcD,EAAc,KAAK;AAEpC,MAAAQ,IAAcN,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAY,cAAcR,EAAc,QAAQ;AAE1C,MAAAS,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACN,EAAc;AAAA,EAAd;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcT,EAAc,QAAQ;"}
|
package/dist/index.es.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { AllowInDimension } from 'recharts/types/util/types';
|
|
|
4
4
|
import { AnimationDuration } from 'recharts/types/util/types';
|
|
5
5
|
import { AnimationTiming } from 'recharts/types/util/types';
|
|
6
6
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
7
|
+
import { ButtonProps as ButtonProps_2 } from './button';
|
|
7
8
|
import { CartesianViewBox } from 'recharts/types/util/types';
|
|
8
9
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
9
10
|
import { ClassProp } from 'class-variance-authority/types';
|
|
@@ -32,6 +33,7 @@ import { FieldPath } from 'react-hook-form';
|
|
|
32
33
|
import { FieldValues } from 'react-hook-form';
|
|
33
34
|
import { FormProviderProps } from 'react-hook-form';
|
|
34
35
|
import { ForwardRefExoticComponent } from 'react';
|
|
36
|
+
import { InputProps as InputProps_2 } from './input';
|
|
35
37
|
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
36
38
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
37
39
|
import { LucideIcon } from 'lucide-react';
|
|
@@ -68,6 +70,10 @@ export declare const AccordionItem: React_2.ForwardRefExoticComponent<Omit<Accor
|
|
|
68
70
|
|
|
69
71
|
export declare const AccordionTrigger: React_2.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
|
|
70
72
|
|
|
73
|
+
export declare const ALL_OS: {
|
|
74
|
+
[key: string]: string;
|
|
75
|
+
};
|
|
76
|
+
|
|
71
77
|
export declare function AppLayout({ data, user }: AppLayoutProps): JSX_2.Element;
|
|
72
78
|
|
|
73
79
|
export declare interface AppLayoutProps {
|
|
@@ -327,6 +333,18 @@ export declare function convertCamelCaseToTitleCase(string: string): string;
|
|
|
327
333
|
*/
|
|
328
334
|
export declare function convertToTitleCase(input: string): string;
|
|
329
335
|
|
|
336
|
+
export declare function CopyButton({ value, display, tooltipMessage, onCopy, position, }: CopyProps): JSX_2.Element | undefined;
|
|
337
|
+
|
|
338
|
+
declare interface CopyProps {
|
|
339
|
+
value: string;
|
|
340
|
+
display?: string;
|
|
341
|
+
tooltipMessage?: string;
|
|
342
|
+
className?: string;
|
|
343
|
+
size?: number;
|
|
344
|
+
onCopy?: () => void;
|
|
345
|
+
position?: 'leading' | 'trailing';
|
|
346
|
+
}
|
|
347
|
+
|
|
330
348
|
export declare function createTableFetchFn<_any, Return>(ctxclient: Client, path: GetPaths, params?: ParamsOption<any>): TableFetchFn<Return>;
|
|
331
349
|
|
|
332
350
|
export declare type CtxPortals = 'customer-portal' | 'system-portal' | 'reseller-portal' | 'admin-portal';
|
|
@@ -334,20 +352,20 @@ export declare type CtxPortals = 'customer-portal' | 'system-portal' | 'reseller
|
|
|
334
352
|
/** Application Names */
|
|
335
353
|
export declare type CtxProjectName = 'admin-portal' | 'customer-portal' | 'internal-portal' | 'reseller-portal';
|
|
336
354
|
|
|
337
|
-
export declare function DataTable<TData extends Record<string, any>, TValue = any>({ columns, fetchFn, tableName, tableActions, columnsToHideByDefault, }: DataTableProps<TData, TValue>): JSX_2.Element;
|
|
355
|
+
export declare function DataTable<TData extends Record<string, any>, TValue = any>({ columns, fetchFn, tableName, tableActions, columnsToHideByDefault, filterableFields, }: DataTableProps<TData, TValue>): JSX_2.Element;
|
|
338
356
|
|
|
339
357
|
export declare interface DataTableProps<TData, TValue = any> {
|
|
340
358
|
columns: ColumnDef<TData, TValue>[];
|
|
341
359
|
tableName: string;
|
|
342
360
|
fetchFn: TableFetchFn<TData>;
|
|
343
361
|
tableActions: TableActions;
|
|
344
|
-
filterableFields: FilterableProperties
|
|
362
|
+
filterableFields: FilterableProperties<TData>;
|
|
345
363
|
columnsToHideByDefault: VisibilityState_2;
|
|
346
364
|
}
|
|
347
365
|
|
|
348
366
|
export declare const DEFAULT_DATE_COLUMNS: AccessorKeyColumnDef<any, any>[];
|
|
349
367
|
|
|
350
|
-
export declare const DEFAULT_FILTERABLE_FIELDS: FilterableProperties
|
|
368
|
+
export declare const DEFAULT_FILTERABLE_FIELDS: FilterableProperties<any>;
|
|
351
369
|
|
|
352
370
|
/*** Type for hide some of the columns based on the dto of the particular page
|
|
353
371
|
** `id`, `updatedAt` are by default hidden
|
|
@@ -382,10 +400,10 @@ export declare const DialogTitle: React_2.ForwardRefExoticComponent<Omit<DialogP
|
|
|
382
400
|
|
|
383
401
|
export declare const DialogTrigger: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
|
|
384
402
|
|
|
385
|
-
export declare type DisplayField = {
|
|
403
|
+
export declare type DisplayField<T> = {
|
|
386
404
|
display: string;
|
|
387
|
-
accessor:
|
|
388
|
-
type?: 'text' | 'badge' | 'boolean';
|
|
405
|
+
accessor: NestedKeyOf<T>;
|
|
406
|
+
type?: 'text' | 'badge' | 'boolean' | 'date' | 'yesno' | 'copyButton' | 'link';
|
|
389
407
|
transform?: (value: any) => React.ReactNode;
|
|
390
408
|
};
|
|
391
409
|
|
|
@@ -470,10 +488,10 @@ export declare type fieldsToDisplay = {
|
|
|
470
488
|
|
|
471
489
|
export declare const FILTER_COMPARISON_OPERATORS: readonly ["eq", "ne", "cn", "nc", "sw", "ew", "in", "nin", "gt", "gte", "lt", "lte"];
|
|
472
490
|
|
|
473
|
-
export declare const FILTERABLE_PROPERTY_TYPES: readonly ["objectString", "string", "number", "objectNumber", "boolean", "objectDate", "licenseType", "product", "product-version", "user", "webhook", "automated-email", "organization", "country", "tag", "resource", "resourceId", "reseller", "role"];
|
|
491
|
+
export declare const FILTERABLE_PROPERTY_TYPES: readonly ["objectString", "string", "number", "objectNumber", "boolean", "objectDate", "licenseType", "product", "product-version", "user", "webhook", "automated-email", "organization", "country", "tag", "resource", "resourceId", "reseller", "role", "note", "os", "action"];
|
|
474
492
|
|
|
475
|
-
export declare type FilterableProperties = {
|
|
476
|
-
[
|
|
493
|
+
export declare type FilterableProperties<T> = {
|
|
494
|
+
[K in keyof T]?: FilterablePropertyType;
|
|
477
495
|
};
|
|
478
496
|
|
|
479
497
|
export declare type FilterablePropertyType = (typeof FILTERABLE_PROPERTY_TYPES)[number];
|
|
@@ -530,15 +548,6 @@ export declare function getValueFromData(data: any, accessor: string | number |
|
|
|
530
548
|
|
|
531
549
|
export declare const ID_COLUMN: AccessorKeyColumnDef<any, any>[];
|
|
532
550
|
|
|
533
|
-
export declare const InfoCard: React.FC<InfoCardProps>;
|
|
534
|
-
|
|
535
|
-
export declare interface InfoCardProps {
|
|
536
|
-
data: Record<string, any>;
|
|
537
|
-
label: string;
|
|
538
|
-
fields: DisplayField[];
|
|
539
|
-
className?: string;
|
|
540
|
-
}
|
|
541
|
-
|
|
542
551
|
export declare const Input: React_2.ForwardRefExoticComponent<InputProps & React_2.RefAttributes<HTMLInputElement>>;
|
|
543
552
|
|
|
544
553
|
export declare const InputOTP: React_2.ForwardRefExoticComponent<(Omit<Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
|
|
@@ -597,8 +606,28 @@ export declare type JwtDecode = {
|
|
|
597
606
|
sadmin?: string;
|
|
598
607
|
};
|
|
599
608
|
|
|
609
|
+
export declare const KeyValueCard: <T extends {}>({ data, label, fields }: KeyValueCardProps<T>) => JSX_2.Element;
|
|
610
|
+
|
|
611
|
+
export declare interface KeyValueCardProps<T> {
|
|
612
|
+
data: T;
|
|
613
|
+
label: string;
|
|
614
|
+
fields: DisplayField<T>[];
|
|
615
|
+
className?: string;
|
|
616
|
+
}
|
|
617
|
+
|
|
600
618
|
export declare const Label: React_2.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React_2.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: ClassProp | undefined) => string> & React_2.RefAttributes<HTMLLabelElement>>;
|
|
601
619
|
|
|
620
|
+
/**
|
|
621
|
+
*
|
|
622
|
+
* @param props buttonVariants
|
|
623
|
+
* @returns Button as Tanstack Link
|
|
624
|
+
*/
|
|
625
|
+
export declare function LinkButton(props: VariantProps<typeof buttonVariants> & {
|
|
626
|
+
icon?: LucideIcon;
|
|
627
|
+
to: string;
|
|
628
|
+
children: React.ReactNode;
|
|
629
|
+
}): JSX_2.Element;
|
|
630
|
+
|
|
602
631
|
export declare function Loader({ className }: LoaderProps): JSX_2.Element;
|
|
603
632
|
|
|
604
633
|
declare interface LoaderProps {
|
|
@@ -634,7 +663,7 @@ export declare type NavItem = {
|
|
|
634
663
|
label: string;
|
|
635
664
|
display: boolean;
|
|
636
665
|
icon: LucideIcon;
|
|
637
|
-
|
|
666
|
+
children?: {
|
|
638
667
|
path: string;
|
|
639
668
|
label: string;
|
|
640
669
|
icon: LucideIcon;
|
|
@@ -646,6 +675,10 @@ export declare function NavMain({ items }: {
|
|
|
646
675
|
items: NavItem[];
|
|
647
676
|
}): JSX_2.Element;
|
|
648
677
|
|
|
678
|
+
declare type NestedKeyOf<T> = T extends object ? {
|
|
679
|
+
[K in keyof T]: K extends string | number ? `${K & string}` | `${K & string}.${NestedKeyOf<T[K]>}` : never;
|
|
680
|
+
}[keyof T] : never;
|
|
681
|
+
|
|
649
682
|
export declare const OPERATORS_FOR_FILTER_TYPE: OperatorsForFilterType;
|
|
650
683
|
|
|
651
684
|
export declare type OperatorsForFilterType = Record<FilterablePropertyType, FilterComparisonOperator[]>;
|
|
@@ -812,7 +845,7 @@ export declare const SidebarGroupLabel: React_2.ForwardRefExoticComponent<Omit<R
|
|
|
812
845
|
|
|
813
846
|
export declare const SidebarHeader: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
|
|
814
847
|
|
|
815
|
-
export declare const SidebarInput: React_2.ForwardRefExoticComponent<Omit<
|
|
848
|
+
export declare const SidebarInput: React_2.ForwardRefExoticComponent<Omit<InputProps_2 & React_2.RefAttributes<HTMLInputElement>, "ref"> & React_2.RefAttributes<HTMLInputElement>>;
|
|
816
849
|
|
|
817
850
|
export declare const SidebarInset: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
|
|
818
851
|
|
|
@@ -864,7 +897,7 @@ export declare const SidebarRail: React_2.ForwardRefExoticComponent<Omit<React_2
|
|
|
864
897
|
|
|
865
898
|
export declare const SidebarSeparator: React_2.ForwardRefExoticComponent<Omit<Omit<SeparatorProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
|
|
866
899
|
|
|
867
|
-
export declare const SidebarTrigger: React_2.ForwardRefExoticComponent<Omit<
|
|
900
|
+
export declare const SidebarTrigger: React_2.ForwardRefExoticComponent<Omit<ButtonProps_2 & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
|
|
868
901
|
|
|
869
902
|
export declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX_2.Element;
|
|
870
903
|
|