@uselets/ui 1.19.0 → 1.20.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 +30 -1
- package/dist/components/bottom-nav.d.ts +13 -0
- package/dist/components/bottom-nav.js +2 -0
- package/dist/components/bottom-nav.js.map +1 -0
- package/dist/components/sidebar.d.ts +9 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/skills/uselets-ui/references/component-catalog.md +4 -0
- package/dist/skills/uselets-ui/references/package-guide.md +1 -1
- package/package.json +7 -7
- package/skills/uselets-ui/references/component-catalog.md +4 -0
- package/skills/uselets-ui/references/package-guide.md +1 -1
package/README.md
CHANGED
|
@@ -400,7 +400,7 @@ The package also exports the following modules through the root entrypoint and s
|
|
|
400
400
|
|
|
401
401
|
- Layout and disclosure: `Accordion`, `Carousel`, `Center`, `Collapsible`, `Container`, `Flex`, `Group`, `Resizable`, `ScrollArea`, `Sidebar`, `Stack`, `Tabs`
|
|
402
402
|
- Inputs and selection: `Calendar`, `DateRangePicker`, `InputGroup`, `RadioGroup`, `Slider`, `Switch`, `Textarea`, `Toggle`, `ToggleGroup`
|
|
403
|
-
- Navigation and feedback: `AlertDialog`, `Breadcrumb`, `NavigationMenu`, `Pagination`, `Progress`
|
|
403
|
+
- Navigation and feedback: `AlertDialog`, `BottomNav`, `Breadcrumb`, `NavigationMenu`, `Pagination`, `Progress`
|
|
404
404
|
- Data display and utilities: `Badge`, `ButtonGroup`, `Chart`, `Command`, `HoverCard`, `Table`, `ThemeProvider`, `useTheme`, `ModeToggle`
|
|
405
405
|
|
|
406
406
|
Each module exports its public composition parts and prop types from the same import path, for example `@uselets/ui/accordion` or `@uselets/ui`. `Carousel` includes the composed `CarouselIndicators` subcomponent for opt-in slide indicators.
|
|
@@ -409,6 +409,8 @@ Layout primitives follow the same pattern: `Stack`, `Group`, and `Flex` support
|
|
|
409
409
|
|
|
410
410
|
`Pagination` highlights the current page and keeps the other links neutral. Its `color` prop (`UIColor`, default `primary`) controls only the current page's color. `PaginationLink`/`PaginationPrevious`/`PaginationNext` also accept `color` individually, but the value set on `Pagination` wins whenever it's provided.
|
|
411
411
|
|
|
412
|
+
`BottomNav`/`BottomNavItem` render a fixed, safe-area-aware mobile tab bar (`env(safe-area-inset-bottom)` via the `--spacing-safe-bottom` token). The component has no built-in responsive/breakpoint logic — consumers decide when it's shown (e.g. wrapping it in `md:hidden`). `BottomNavItem` accepts `asChild` to render a routing library's link, and its active state is fully external via `isActive` (mirrored onto `data-active`/`aria-current="page"`) — there's no internal state, context, or navigation logic.
|
|
413
|
+
|
|
412
414
|
Public hooks are exported from the package root and from the `@uselets/ui/hooks/*` namespace:
|
|
413
415
|
|
|
414
416
|
- `useBreakpoint` from `@uselets/ui/hooks/use-breakpoint`
|
|
@@ -509,3 +511,30 @@ export function SaveButton() {
|
|
|
509
511
|
)
|
|
510
512
|
}
|
|
511
513
|
```
|
|
514
|
+
|
|
515
|
+
## Sidebar setup
|
|
516
|
+
|
|
517
|
+
`SidebarProvider` owns the sidebar's open/collapsed state; `Sidebar` renders the structure and
|
|
518
|
+
accepts `collapsible: 'offcanvas' | 'icon' | 'none'`. Set `expandOnHover` on `SidebarProvider` to let
|
|
519
|
+
a `collapsible="icon"` sidebar reveal a floating preview (an overlay, not a layout push) on pointer
|
|
520
|
+
hover or keyboard focus while collapsed — clicking `SidebarTrigger` or `SidebarRail` during that
|
|
521
|
+
preview pins the sidebar open instead of toggling blindly. `useSidebar()` exposes `isHoverExpanded`
|
|
522
|
+
for components that need to react to the preview themselves. The preview's open/close debounce
|
|
523
|
+
defaults to 150ms/300ms and can be tuned per app via `hoverExpandOpenDelay`/`hoverExpandCloseDelay`.
|
|
524
|
+
|
|
525
|
+
```tsx
|
|
526
|
+
import { Sidebar, SidebarContent, SidebarProvider, SidebarRail, SidebarTrigger } from '@uselets/ui/sidebar'
|
|
527
|
+
|
|
528
|
+
export function AppShell({ children }: { children: React.ReactNode }) {
|
|
529
|
+
return (
|
|
530
|
+
<SidebarProvider expandOnHover>
|
|
531
|
+
<Sidebar collapsible="icon">
|
|
532
|
+
<SidebarContent>{/* menu */}</SidebarContent>
|
|
533
|
+
<SidebarRail />
|
|
534
|
+
</Sidebar>
|
|
535
|
+
<SidebarTrigger />
|
|
536
|
+
{children}
|
|
537
|
+
</SidebarProvider>
|
|
538
|
+
)
|
|
539
|
+
}
|
|
540
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { t as __name } from "../rolldown-runtime-BhWHdk3m.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/components/bottom-nav.d.ts
|
|
4
|
+
export type BottomNavProps = React.ComponentProps<'nav'>;
|
|
5
|
+
export type BottomNavItemProps = React.ComponentProps<'button'> & {
|
|
6
|
+
asChild?: boolean;
|
|
7
|
+
isActive?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare function BottomNav({ className, ...props }: BottomNavProps): React.JSX.Element;
|
|
10
|
+
declare function BottomNavItem({ className, type, asChild, isActive, ...props }: BottomNavItemProps): React.JSX.Element;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { BottomNav, BottomNavItem };
|
|
13
|
+
//# sourceMappingURL=bottom-nav.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function BottomNav({className:t,...r}){return n(`nav`,{"aria-label":`bottom navigation`,"data-slot":`bottom-nav`,className:e(`fixed inset-x-0 bottom-0 z-30 flex border-t bg-background`,`px-2 pt-2 pb-[calc(--spacing(2)+var(--spacing-safe-bottom))]`,t),...r})}function BottomNavItem({className:r,type:i=`button`,asChild:a=!1,isActive:o=!1,...s}){let c=a?t.Root:`button`;return n(c,{type:a?void 0:i,"data-slot":`bottom-nav-item`,"data-active":o,"aria-current":o?`page`:void 0,className:e(`flex flex-1 flex-col items-center justify-center gap-1 rounded-md py-1 text-xs font-medium text-muted-foreground`,`transition-colors data-[active=true]:font-semibold data-[active=true]:text-primary`,`focus-visible:ring-3 focus-visible:ring-ring/50 outline-hidden`,`[&_svg]:size-5 [&_svg]:shrink-0 [&>span:last-child]:truncate`,r),...s})}export{BottomNav,BottomNavItem};
|
|
2
|
+
//# sourceMappingURL=bottom-nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottom-nav.js","names":[],"sources":["../../src/components/bottom-nav.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { Slot } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nexport type BottomNavProps = React.ComponentProps<'nav'>\n\nexport type BottomNavItemProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n}\n\nfunction BottomNav({ className, ...props }: BottomNavProps) {\n return (\n <nav\n aria-label=\"bottom navigation\"\n data-slot=\"bottom-nav\"\n className={cn(\n 'fixed inset-x-0 bottom-0 z-30 flex border-t bg-background',\n 'px-2 pt-2 pb-[calc(--spacing(2)+var(--spacing-safe-bottom))]',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BottomNavItem({\n className,\n type = 'button',\n asChild = false,\n isActive = false,\n ...props\n}: BottomNavItemProps) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n type={!asChild ? type : undefined}\n data-slot=\"bottom-nav-item\"\n data-active={isActive}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n 'flex flex-1 flex-col items-center justify-center gap-1 rounded-md py-1 text-xs font-medium text-muted-foreground',\n 'transition-colors data-[active=true]:font-semibold data-[active=true]:text-primary',\n 'focus-visible:ring-3 focus-visible:ring-ring/50 outline-hidden',\n '[&_svg]:size-5 [&_svg]:shrink-0 [&>span:last-child]:truncate',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { BottomNav, BottomNavItem }\n"],"mappings":"qJAaA,SAAS,UAAU,CAAE,YAAW,GAAG,GAAyB,CAC1D,OACE,EAAC,MAAD,CACE,aAAW,oBACX,YAAU,aACV,UAAW,EACT,4DACA,+DACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,cAAc,CACrB,YACA,OAAO,SACP,UAAU,GACV,WAAW,GACX,GAAG,GACkB,CACrB,IAAM,EAAO,EAAU,EAAK,KAAO,SAEnC,OACE,EAAC,EAAD,CACE,KAAO,EAAiB,IAAA,GAAP,EACjB,YAAU,kBACV,cAAa,EACb,eAAc,EAAW,OAAS,IAAA,GAClC,UAAW,EACT,mHACA,qFACA,iEACA,+DACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
|
|
@@ -14,11 +14,19 @@ type SidebarContextProps = {
|
|
|
14
14
|
setOpenMobile: (open: boolean) => void;
|
|
15
15
|
isMobile: boolean;
|
|
16
16
|
toggleSidebar: () => void;
|
|
17
|
+
expandOnHover: boolean;
|
|
18
|
+
isHoverExpanded: boolean;
|
|
19
|
+
setHoverExpanded: (hoverExpanded: boolean) => void;
|
|
20
|
+
hoverExpandOpenDelay: number;
|
|
21
|
+
hoverExpandCloseDelay: number;
|
|
17
22
|
};
|
|
18
23
|
export type SidebarProviderProps = React.ComponentProps<'div'> & {
|
|
19
24
|
defaultOpen?: boolean;
|
|
20
25
|
open?: boolean;
|
|
21
26
|
onOpenChange?: (open: boolean) => void;
|
|
27
|
+
expandOnHover?: boolean;
|
|
28
|
+
hoverExpandOpenDelay?: number;
|
|
29
|
+
hoverExpandCloseDelay?: number;
|
|
22
30
|
};
|
|
23
31
|
export type SidebarProps = React.ComponentProps<'div'> & {
|
|
24
32
|
side?: 'left' | 'right';
|
|
@@ -44,7 +52,7 @@ export type SidebarGroupContentProps = React.ComponentProps<'div'>;
|
|
|
44
52
|
export type SidebarMenuProps = React.ComponentProps<'ul'>;
|
|
45
53
|
export type SidebarMenuItemProps = React.ComponentProps<'li'>;
|
|
46
54
|
declare function useSidebar(): SidebarContextProps;
|
|
47
|
-
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: SidebarProviderProps): React.JSX.Element;
|
|
55
|
+
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, expandOnHover, hoverExpandOpenDelay, hoverExpandCloseDelay, className, style, children, ...props }: SidebarProviderProps): React.JSX.Element;
|
|
48
56
|
declare function Sidebar({ side, variant, collapsible, className, children, dir, ...props }: SidebarProps): React.JSX.Element;
|
|
49
57
|
declare function SidebarTrigger({ className, onClick, ...props }: SidebarTriggerProps): React.JSX.Element;
|
|
50
58
|
declare function SidebarRail({ className, ...props }: SidebarRailProps): React.JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{Separator as n}from"./separator.js";import{Input as r}from"./input.js";import{Drawer as i,DrawerContent as a,DrawerDescription as o,DrawerHeader as s,DrawerTitle as c}from"./drawer.js";import{useIsMobile as l}from"../hooks/use-mobile.js";import{Skeleton as u}from"./skeleton.js";import{Tooltip as d}from"./tooltip.js";import{IconLayoutSidebar as f}from"@tabler/icons-react";import{Slot as p}from"radix-ui";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{cva as g}from"class-variance-authority";import*as _ from"react";const v=_.createContext(null);function useSidebar(){let e=_.useContext(v);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function SidebarProvider({defaultOpen:t=!0,open:n,onOpenChange:r,className:i,style:a,children:o,...s}){let c=l(),[u,d]=_.useState(!1),[f,p]=_.useState(t),h=n??f,g=_.useCallback(e=>{let t=typeof e==`function`?e(h):e;r?r(t):p(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[r,h]),y=_.useCallback(()=>c?d(e=>!e):g(e=>!e),[c,g]);_.useEffect(()=>{let handleKeyDown=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener(`keydown`,handleKeyDown),()=>window.removeEventListener(`keydown`,handleKeyDown)},[y]);let b=h?`expanded`:`collapsed`,x=_.useMemo(()=>({state:b,open:h,setOpen:g,isMobile:c,openMobile:u,setOpenMobile:d,toggleSidebar:y}),[b,h,g,c,u,y]);return m(v.Provider,{value:x,children:m(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:e(`group/sidebar-wrapper relative flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,i),...s,children:o})})}function Sidebar({side:t=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:l,children:u,dir:d,...f}){let{isMobile:p,state:g,openMobile:_,setOpenMobile:v}=useSidebar();return r===`none`?m(`div`,{"data-slot":`sidebar`,className:e(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,l),...f,children:u}):p?m(i,{open:_,onOpenChange:v,direction:t,size:`sm`,children:h(a,{dir:d,"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`h-full w-(--sidebar-width) rounded-none bg-sidebar p-0 text-sidebar-foreground`,style:{"--sidebar-width":`18rem`},...f,children:[h(s,{className:`sr-only`,children:[m(c,{children:`Sidebar`}),m(o,{children:`Displays the mobile sidebar.`})]}),m(`div`,{className:`flex h-full w-full flex-col`,children:u})]})}):h(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":g,"data-collapsible":g===`collapsed`?r:``,"data-variant":n,"data-side":t,"data-slot":`sidebar`,children:[m(`div`,{"data-slot":`sidebar-gap`,className:e(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,n===`floating`||n===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),m(`div`,{"data-slot":`sidebar-container`,"data-side":t,className:e(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,`data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)`,`data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)`,n===`floating`||n===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,n!==`floating`&&n!==`inset`&&`group-data-[side=left]:border-r group-data-[side=right]:border-l`,l),...f,children:m(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:e(`flex size-full flex-col bg-sidebar`,`group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm`,`group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`),children:u})})]})}function SidebarTrigger({className:n,onClick:r,...i}){let{toggleSidebar:a}=useSidebar();return h(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon-sm`,color:`zinc`,className:e(n),onClick:e=>{r?.(e),a()},...i,children:[m(f,{}),m(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function SidebarRail({className:t,...n}){let{toggleSidebar:r}=useSidebar();return m(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:r,title:`Toggle Sidebar`,className:e(`in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize`,`absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:s-1/2 after:w-0.5 hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,t),...n})}function SidebarInset({className:t,...n}){return m(`main`,{"data-slot":`sidebar-inset`,className:e(`relative flex w-full 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`,t),...n})}function SidebarInput({className:t,...n}){return m(r,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:e(`h-8 w-full bg-background shadow-none`,t),...n})}function SidebarHeader({className:t,...n}){return m(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function SidebarFooter({className:t,...n}){return m(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function SidebarSeparator({className:t,...r}){return m(n,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:e(`w-auto bg-sidebar-border`,t),...r})}function SidebarContent({className:t,...n}){return m(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:e(`no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,t),...n})}function SidebarGroup({className:t,...n}){return m(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:e(`relative flex w-full min-w-0 flex-col px-2`,t),...n})}function SidebarGroupLabel({className:t,asChild:n=!1,...r}){let i=n?p.Root:`div`;return m(i,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:e(`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`,t),...r})}function SidebarGroupAction({className:t,asChild:n=!1,...r}){let i=n?p.Root:`button`;return m(i,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:e(`absolute top-1.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`,t),...r})}function SidebarGroupContent({className:t,...n}){return m(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:e(`w-full text-sm mt-2`,t),...n})}function SidebarMenu({className:t,...n}){return m(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:e(`flex w-full min-w-0 flex-col gap-0`,t),...n})}function SidebarMenuItem({className:t,...n}){return m(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:e(`group/menu-item relative`,t),...n})}const y=g(`peer/menu-button group/menu-button font-medium flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm 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-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:[&_svg]:text-sidebar-primary data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`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))]`},size:{md:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`md`}});function SidebarMenuButton({asChild:t=!1,isActive:n=!1,variant:r=`default`,size:i=`md`,tooltip:a,className:o,...s}){let c=t?p.Root:`button`,{isMobile:l,state:u}=useSidebar(),f=m(c,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":n,className:e(y({variant:r,size:i}),o),...s});return a?(typeof a==`string`&&(a={children:a}),m(d,{label:a.children,side:`right`,align:`center`,hidden:u!==`collapsed`||l,...a,children:f})):f}function SidebarMenuAction({className:t,asChild:n=!1,showOnHover:r=!1,...i}){let a=n?p.Root:`button`;return m(a,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:e(`absolute top-1.5 right-1 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 peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 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`,r&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0`,t),...i})}function SidebarMenuBadge({className:t,...n}){return m(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:e(`pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground`,t),...n})}function SidebarMenuSkeleton({className:t,showIcon:n=!1,...r}){let[i]=_.useState(()=>`${Math.floor(Math.random()*40)+50}%`);return h(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:e(`flex h-8 items-center gap-2 rounded-md px-2`,t),...r,children:[n&&m(u,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),m(u,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function SidebarMenuSub({className:t,...n}){return m(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:e(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden`,t),...n})}function SidebarMenuSubItem({className:t,...n}){return m(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:e(`group/menu-sub-item relative`,t),...n})}function SidebarMenuSubButton({asChild:t=!1,size:n=`md`,isActive:r=!1,className:i,...a}){let o=t?p.Root:`a`;return m(o,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":n,"data-active":r,className:e(`flex h-7 min-w-0 -translate-x-px items-center font-medium gap-2 overflow-hidden rounded-md px-2 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-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,i),...a})}export{Sidebar,SidebarContent,SidebarFooter,SidebarGroup,SidebarGroupAction,SidebarGroupContent,SidebarGroupLabel,SidebarHeader,SidebarInput,SidebarInset,SidebarMenu,SidebarMenuAction,SidebarMenuBadge,SidebarMenuButton,SidebarMenuItem,SidebarMenuSkeleton,SidebarMenuSub,SidebarMenuSubButton,SidebarMenuSubItem,SidebarProvider,SidebarRail,SidebarSeparator,SidebarTrigger,useSidebar};
|
|
1
|
+
import"../rolldown-runtime-BhWHdk3m.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{Separator as n}from"./separator.js";import{Input as r}from"./input.js";import{Drawer as i,DrawerContent as a,DrawerDescription as o,DrawerHeader as s,DrawerTitle as c}from"./drawer.js";import{useIsMobile as l}from"../hooks/use-mobile.js";import{Skeleton as u}from"./skeleton.js";import{Tooltip as d}from"./tooltip.js";import{IconLayoutSidebar as f}from"@tabler/icons-react";import{Slot as p}from"radix-ui";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{cva as g}from"class-variance-authority";import*as _ from"react";const v=_.createContext(null);function useSidebar(){let e=_.useContext(v);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function SidebarProvider({defaultOpen:t=!0,open:n,onOpenChange:r,expandOnHover:i=!1,hoverExpandOpenDelay:a=150,hoverExpandCloseDelay:o=300,className:s,style:c,children:u,...d}){let f=l(),[p,h]=_.useState(!1),[g,y]=_.useState(!1);_.useEffect(()=>{i||y(!1)},[i]);let[b,x]=_.useState(t),S=n??b,C=_.useCallback(e=>{let t=typeof e==`function`?e(S):e;r?r(t):x(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[r,S]),w=_.useCallback(()=>f?h(e=>!e):C(e=>!e),[f,C]);_.useEffect(()=>{let handleKeyDown=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),w())};return window.addEventListener(`keydown`,handleKeyDown),()=>window.removeEventListener(`keydown`,handleKeyDown)},[w]);let T=S?`expanded`:`collapsed`,E=_.useMemo(()=>({state:T,open:S,setOpen:C,isMobile:f,openMobile:p,setOpenMobile:h,toggleSidebar:w,expandOnHover:i,isHoverExpanded:g,setHoverExpanded:y,hoverExpandOpenDelay:a,hoverExpandCloseDelay:o}),[T,S,C,f,p,w,i,g,a,o]);return m(v.Provider,{value:E,children:m(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...c},className:e(`group/sidebar-wrapper relative flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,s),...d,children:u})})}function Sidebar({side:t=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:l,children:u,dir:d,...f}){let{isMobile:p,state:g,openMobile:v,setOpenMobile:y,expandOnHover:b,isHoverExpanded:x,setHoverExpanded:S,hoverExpandOpenDelay:C,hoverExpandCloseDelay:w}=useSidebar(),T=b&&r===`icon`,E=T&&x,D=_.useRef(!1),O=_.useRef(!1),k=_.useRef(null),A=_.useRef(null),scheduleHoverExpanded=(e=!1)=>{k.current&&=(clearTimeout(k.current),null),A.current&&=(clearTimeout(A.current),null);let t=D.current||O.current;if(e){S(t);return}let n=t?k:A;n.current=setTimeout(()=>{n.current=null,S(t)},t?C:w)};_.useEffect(()=>()=>{k.current&&clearTimeout(k.current),A.current&&clearTimeout(A.current),S(!1)},[S]);let handlePointerEnter=()=>{T&&(D.current=!0,scheduleHoverExpanded())},handlePointerLeave=()=>{T&&(D.current=!1,scheduleHoverExpanded())},handleFocus=()=>{T&&(O.current=!0,scheduleHoverExpanded())},handleBlur=e=>{T&&(e.currentTarget.contains(e.relatedTarget)||(O.current=!1,scheduleHoverExpanded()))},handleKeyDown=e=>{T&&e.key===`Escape`&&x&&(D.current=!1,O.current=!1,scheduleHoverExpanded(!0),document.activeElement?.blur?.())};return r===`none`?m(`div`,{"data-slot":`sidebar`,className:e(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,l),...f,children:u}):p?m(i,{open:v,onOpenChange:y,direction:t,size:`sm`,children:h(a,{dir:d,"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`h-full w-(--sidebar-width) rounded-none bg-sidebar p-0 text-sidebar-foreground`,style:{"--sidebar-width":`18rem`},...f,children:[h(s,{className:`sr-only`,children:[m(c,{children:`Sidebar`}),m(o,{children:`Displays the mobile sidebar.`})]}),m(`div`,{className:`flex h-full w-full flex-col`,children:u})]})}):h(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":g,"data-collapsible":g===`collapsed`&&!E?r:``,"data-collapsible-raw":g===`collapsed`?r:``,"data-hover-expanded":E?`true`:void 0,"data-variant":n,"data-side":t,"data-slot":`sidebar`,onMouseEnter:handlePointerEnter,onMouseLeave:handlePointerLeave,onFocus:handleFocus,onBlur:handleBlur,onKeyDown:handleKeyDown,children:[m(`div`,{"data-slot":`sidebar-gap`,className:e(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible-raw=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,n===`floating`||n===`inset`?`group-data-[collapsible-raw=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible-raw=icon]:w-(--sidebar-width-icon)`)}),m(`div`,{"data-slot":`sidebar-container`,"data-side":t,className:e(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,`data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)`,`data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)`,n===`floating`||n===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,n!==`floating`&&n!==`inset`&&`group-data-[side=left]:border-r group-data-[side=right]:border-l`,`group-data-[hover-expanded=true]:shadow-lg group-data-[hover-expanded=true]:ring-1 group-data-[hover-expanded=true]:ring-foreground/10`,l),...f,children:m(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:e(`flex size-full flex-col bg-sidebar`,`group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm`,`group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`),children:u})})]})}function SidebarTrigger({className:n,onClick:r,...i}){let{toggleSidebar:a,open:o,setOpen:s,isHoverExpanded:c}=useSidebar();return h(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon-sm`,color:`zinc`,className:e(n),onClick:e=>{r?.(e),c&&!o?s(!0):a()},...i,children:[m(f,{}),m(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function SidebarRail({className:t,...n}){let{toggleSidebar:r,open:i,setOpen:a,isHoverExpanded:o}=useSidebar(),handleClick=()=>{o&&!i?a(!0):r()};return m(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:handleClick,title:`Toggle Sidebar`,className:e(`in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize`,`absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:s-1/2 after:w-0.5 hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,t),...n})}function SidebarInset({className:t,...n}){return m(`main`,{"data-slot":`sidebar-inset`,className:e(`relative flex w-full 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`,t),...n})}function SidebarInput({className:t,...n}){return m(r,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:e(`h-8 w-full bg-background shadow-none`,t),...n})}function SidebarHeader({className:t,...n}){return m(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function SidebarFooter({className:t,...n}){return m(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function SidebarSeparator({className:t,...r}){return m(n,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:e(`w-auto bg-sidebar-border`,t),...r})}function SidebarContent({className:t,...n}){return m(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:e(`no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,t),...n})}function SidebarGroup({className:t,...n}){return m(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:e(`relative flex w-full min-w-0 flex-col px-2`,t),...n})}function SidebarGroupLabel({className:t,asChild:n=!1,...r}){let i=n?p.Root:`div`;return m(i,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:e(`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`,t),...r})}function SidebarGroupAction({className:t,asChild:n=!1,...r}){let i=n?p.Root:`button`;return m(i,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:e(`absolute top-1.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`,t),...r})}function SidebarGroupContent({className:t,...n}){return m(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:e(`w-full text-sm mt-2`,t),...n})}function SidebarMenu({className:t,...n}){return m(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:e(`flex w-full min-w-0 flex-col gap-0`,t),...n})}function SidebarMenuItem({className:t,...n}){return m(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:e(`group/menu-item relative`,t),...n})}const y=g(`peer/menu-button group/menu-button font-medium flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm 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-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:[&_svg]:text-sidebar-primary data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`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))]`},size:{md:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`md`}});function SidebarMenuButton({asChild:t=!1,isActive:n=!1,variant:r=`default`,size:i=`md`,tooltip:a,className:o,...s}){let c=t?p.Root:`button`,{isMobile:l,state:u,isHoverExpanded:f}=useSidebar(),h=m(c,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":n,className:e(y({variant:r,size:i}),o),...s});return a?(typeof a==`string`&&(a={children:a}),m(d,{label:a.children,side:`right`,align:`center`,hidden:u!==`collapsed`||l||f,...a,children:h})):h}function SidebarMenuAction({className:t,asChild:n=!1,showOnHover:r=!1,...i}){let a=n?p.Root:`button`;return m(a,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:e(`absolute top-1.5 right-1 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 peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 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`,r&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0`,t),...i})}function SidebarMenuBadge({className:t,...n}){return m(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:e(`pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground`,t),...n})}function SidebarMenuSkeleton({className:t,showIcon:n=!1,...r}){let[i]=_.useState(()=>`${Math.floor(Math.random()*40)+50}%`);return h(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:e(`flex h-8 items-center gap-2 rounded-md px-2`,t),...r,children:[n&&m(u,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),m(u,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function SidebarMenuSub({className:t,...n}){return m(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:e(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden`,t),...n})}function SidebarMenuSubItem({className:t,...n}){return m(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:e(`group/menu-sub-item relative`,t),...n})}function SidebarMenuSubButton({asChild:t=!1,size:n=`md`,isActive:r=!1,className:i,...a}){let o=t?p.Root:`a`;return m(o,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":n,"data-active":r,className:e(`flex h-7 min-w-0 -translate-x-px items-center font-medium gap-2 overflow-hidden rounded-md px-2 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-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,i),...a})}export{Sidebar,SidebarContent,SidebarFooter,SidebarGroup,SidebarGroupAction,SidebarGroupContent,SidebarGroupLabel,SidebarHeader,SidebarInput,SidebarInset,SidebarMenu,SidebarMenuAction,SidebarMenuBadge,SidebarMenuButton,SidebarMenuItem,SidebarMenuSkeleton,SidebarMenuSub,SidebarMenuSubButton,SidebarMenuSubItem,SidebarProvider,SidebarRail,SidebarSeparator,SidebarTrigger,useSidebar};
|
|
2
2
|
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.js","names":["Separator","Tooltip"],"sources":["../../src/components/sidebar.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconLayoutSidebar } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot } from 'radix-ui'\n\nimport { useIsMobile } from '../hooks/use-mobile'\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from './drawer'\nimport { Input } from './input'\nimport { Separator } from './separator'\nimport { Skeleton } from './skeleton'\nimport { Tooltip, type TooltipContent } from './tooltip'\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 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\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nexport type SidebarProviderProps = React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}\n\nexport type SidebarProps = React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}\n\nexport type SidebarTriggerProps = React.ComponentProps<typeof Button>\n\nexport type SidebarRailProps = React.ComponentProps<'button'>\n\nexport type SidebarInsetProps = React.ComponentProps<'main'>\n\nexport type SidebarInputProps = React.ComponentProps<typeof Input>\n\nexport type SidebarHeaderProps = React.ComponentProps<'div'>\n\nexport type SidebarFooterProps = React.ComponentProps<'div'>\n\nexport type SidebarSeparatorProps = React.ComponentProps<typeof Separator>\n\nexport type SidebarContentProps = React.ComponentProps<'div'>\n\nexport type SidebarGroupProps = React.ComponentProps<'div'>\n\nexport type SidebarGroupLabelProps = React.ComponentProps<'div'> & {\n asChild?: boolean\n}\n\nexport type SidebarGroupActionProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n}\n\nexport type SidebarGroupContentProps = React.ComponentProps<'div'>\n\nexport type SidebarMenuProps = React.ComponentProps<'ul'>\n\nexport type SidebarMenuItemProps = React.ComponentProps<'li'>\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\nfunction 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] = 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 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 // biome-ignore lint/suspicious/noDocumentCookie: This package persists a simple UI preference cookie without framework-specific APIs.\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 = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\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<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 data-slot=\"sidebar-wrapper\"\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 relative flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n dir,\n ...props\n}: SidebarProps) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Drawer open={openMobile} onOpenChange={setOpenMobile} direction={side} size=\"sm\">\n <DrawerContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"h-full w-(--sidebar-width) rounded-none bg-sidebar p-0 text-sidebar-foreground\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE\n } as React.CSSProperties\n }\n {...props}\n >\n <DrawerHeader className=\"sr-only\">\n <DrawerTitle>Sidebar</DrawerTitle>\n <DrawerDescription>Displays the mobile sidebar.</DrawerDescription>\n </DrawerHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </DrawerContent>\n </Drawer>\n )\n }\n\n return (\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 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 data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n 'data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)',\n 'data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)',\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)',\n variant !== 'floating' &&\n variant !== 'inset' &&\n '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 data-slot=\"sidebar-inner\"\n className={cn(\n 'flex size-full flex-col bg-sidebar',\n 'group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm',\n 'group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border'\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: SidebarTriggerProps) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n color=\"zinc\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <IconLayoutSidebar />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: SidebarRailProps) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n 'absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:s-1/2 after:w-0.5 hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\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\nfunction SidebarInset({ className, ...props }: SidebarInsetProps) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'relative flex w-full 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 {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: SidebarInputProps) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('h-8 w-full bg-background shadow-none', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: SidebarHeaderProps) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: SidebarFooterProps) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({ className, ...props }: SidebarSeparatorProps) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: SidebarContentProps) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'no-scrollbar 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\nfunction SidebarGroup({ className, ...props }: SidebarGroupProps) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col px-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({ className, asChild = false, ...props }: SidebarGroupLabelProps) {\n const Comp = asChild ? Slot.Root : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\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 {...props}\n />\n )\n}\n\nfunction SidebarGroupAction({ className, asChild = false, ...props }: SidebarGroupActionProps) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute top-1.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 {...props}\n />\n )\n}\n\nfunction SidebarGroupContent({ className, ...props }: SidebarGroupContentProps) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm mt-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: SidebarMenuProps) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-0', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: SidebarMenuItemProps) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button group/menu-button font-medium flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm 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-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:[&_svg]:text-sidebar-primary data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\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 md: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!'\n }\n },\n defaultVariants: {\n variant: 'default',\n size: 'md'\n }\n }\n)\n\nexport type SidebarMenuButtonProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>\n\nexport type SidebarMenuActionProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n}\n\nexport type SidebarMenuBadgeProps = React.ComponentProps<'div'>\n\nexport type SidebarMenuSkeletonProps = React.ComponentProps<'div'> & {\n showIcon?: boolean\n}\n\nexport type SidebarMenuSubProps = React.ComponentProps<'ul'>\n\nexport type SidebarMenuSubItemProps = React.ComponentProps<'li'>\n\nexport type SidebarMenuSubButtonProps = React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n}\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'md',\n tooltip,\n className,\n ...props\n}: SidebarMenuButtonProps) {\n const Comp = asChild ? Slot.Root : 'button'\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\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 label={tooltip.children}\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n >\n {button}\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({ className, asChild = false, showOnHover = false, ...props }: SidebarMenuActionProps) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute top-1.5 right-1 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 peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 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 showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuBadge({ className, ...props }: SidebarMenuBadgeProps) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({ className, showIcon = false, ...props }: SidebarMenuSkeletonProps) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: SidebarMenuSubProps) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: SidebarMenuSubButtonProps) {\n const Comp = asChild ? Slot.Root : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\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 font-medium gap-2 overflow-hidden rounded-md px-2 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-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n className\n )}\n {...props}\n />\n )\n}\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sidebar.js","names":["Separator","Tooltip"],"sources":["../../src/components/sidebar.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconLayoutSidebar } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot } from 'radix-ui'\n\nimport { useIsMobile } from '../hooks/use-mobile'\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle } from './drawer'\nimport { Input } from './input'\nimport { Separator } from './separator'\nimport { Skeleton } from './skeleton'\nimport { Tooltip, type TooltipContent } from './tooltip'\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'\nconst SIDEBAR_HOVER_EXPAND_OPEN_DELAY = 150\nconst SIDEBAR_HOVER_EXPAND_CLOSE_DELAY = 300\n\ntype 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 expandOnHover: boolean\n isHoverExpanded: boolean\n setHoverExpanded: (hoverExpanded: boolean) => void\n hoverExpandOpenDelay: number\n hoverExpandCloseDelay: number\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nexport type SidebarProviderProps = React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n expandOnHover?: boolean\n hoverExpandOpenDelay?: number\n hoverExpandCloseDelay?: number\n}\n\nexport type SidebarProps = React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}\n\nexport type SidebarTriggerProps = React.ComponentProps<typeof Button>\n\nexport type SidebarRailProps = React.ComponentProps<'button'>\n\nexport type SidebarInsetProps = React.ComponentProps<'main'>\n\nexport type SidebarInputProps = React.ComponentProps<typeof Input>\n\nexport type SidebarHeaderProps = React.ComponentProps<'div'>\n\nexport type SidebarFooterProps = React.ComponentProps<'div'>\n\nexport type SidebarSeparatorProps = React.ComponentProps<typeof Separator>\n\nexport type SidebarContentProps = React.ComponentProps<'div'>\n\nexport type SidebarGroupProps = React.ComponentProps<'div'>\n\nexport type SidebarGroupLabelProps = React.ComponentProps<'div'> & {\n asChild?: boolean\n}\n\nexport type SidebarGroupActionProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n}\n\nexport type SidebarGroupContentProps = React.ComponentProps<'div'>\n\nexport type SidebarMenuProps = React.ComponentProps<'ul'>\n\nexport type SidebarMenuItemProps = React.ComponentProps<'li'>\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\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n expandOnHover = false,\n hoverExpandOpenDelay = SIDEBAR_HOVER_EXPAND_OPEN_DELAY,\n hoverExpandCloseDelay = SIDEBAR_HOVER_EXPAND_CLOSE_DELAY,\n className,\n style,\n children,\n ...props\n}: SidebarProviderProps) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n const [isHoverExpanded, setIsHoverExpanded] = React.useState(false)\n\n React.useEffect(() => {\n if (!expandOnHover) setIsHoverExpanded(false)\n }, [expandOnHover])\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 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 // biome-ignore lint/suspicious/noDocumentCookie: This package persists a simple UI preference cookie without framework-specific APIs.\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 = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\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<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n expandOnHover,\n isHoverExpanded,\n setHoverExpanded: setIsHoverExpanded,\n hoverExpandOpenDelay,\n hoverExpandCloseDelay\n }),\n [\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n toggleSidebar,\n expandOnHover,\n isHoverExpanded,\n hoverExpandOpenDelay,\n hoverExpandCloseDelay\n ]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\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 relative flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n dir,\n ...props\n}: SidebarProps) {\n const {\n isMobile,\n state,\n openMobile,\n setOpenMobile,\n expandOnHover,\n isHoverExpanded,\n setHoverExpanded,\n hoverExpandOpenDelay,\n hoverExpandCloseDelay\n } = useSidebar()\n\n const canHoverExpand = expandOnHover && collapsible === 'icon'\n const effectiveHoverExpanded = canHoverExpand && isHoverExpanded\n\n const pointerInsideRef = React.useRef(false)\n const focusInsideRef = React.useRef(false)\n const openTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n const closeTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const scheduleHoverExpanded = (immediate = false) => {\n if (openTimeoutRef.current) {\n clearTimeout(openTimeoutRef.current)\n openTimeoutRef.current = null\n }\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current)\n closeTimeoutRef.current = null\n }\n\n const shouldExpand = pointerInsideRef.current || focusInsideRef.current\n\n if (immediate) {\n setHoverExpanded(shouldExpand)\n return\n }\n\n const timeoutRef = shouldExpand ? openTimeoutRef : closeTimeoutRef\n const delay = shouldExpand ? hoverExpandOpenDelay : hoverExpandCloseDelay\n timeoutRef.current = setTimeout(() => {\n timeoutRef.current = null\n setHoverExpanded(shouldExpand)\n }, delay)\n }\n\n React.useEffect(() => {\n return () => {\n if (openTimeoutRef.current) clearTimeout(openTimeoutRef.current)\n if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current)\n setHoverExpanded(false)\n }\n }, [setHoverExpanded])\n\n const handlePointerEnter = () => {\n if (!canHoverExpand) return\n pointerInsideRef.current = true\n scheduleHoverExpanded()\n }\n const handlePointerLeave = () => {\n if (!canHoverExpand) return\n pointerInsideRef.current = false\n scheduleHoverExpanded()\n }\n const handleFocus = () => {\n if (!canHoverExpand) return\n focusInsideRef.current = true\n scheduleHoverExpanded()\n }\n const handleBlur = (event: React.FocusEvent<HTMLDivElement>) => {\n if (!canHoverExpand) return\n if (event.currentTarget.contains(event.relatedTarget as Node | null)) return\n focusInsideRef.current = false\n scheduleHoverExpanded()\n }\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!canHoverExpand || event.key !== 'Escape' || !isHoverExpanded) return\n pointerInsideRef.current = false\n focusInsideRef.current = false\n scheduleHoverExpanded(true)\n ;(document.activeElement as HTMLElement | null)?.blur?.()\n }\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Drawer open={openMobile} onOpenChange={setOpenMobile} direction={side} size=\"sm\">\n <DrawerContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"h-full w-(--sidebar-width) rounded-none bg-sidebar p-0 text-sidebar-foreground\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE\n } as React.CSSProperties\n }\n {...props}\n >\n <DrawerHeader className=\"sr-only\">\n <DrawerTitle>Sidebar</DrawerTitle>\n <DrawerDescription>Displays the mobile sidebar.</DrawerDescription>\n </DrawerHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </DrawerContent>\n </Drawer>\n )\n }\n\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: Tracks pointer/focus presence for the expandOnHover preview; it exposes no interaction of its own, descendants keep their own semantics/roles.\n <div\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' && !effectiveHoverExpanded ? collapsible : ''}\n data-collapsible-raw={state === 'collapsed' ? collapsible : ''}\n data-hover-expanded={effectiveHoverExpanded ? 'true' : undefined}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n onMouseEnter={handlePointerEnter}\n onMouseLeave={handlePointerLeave}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible-raw=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible-raw=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible-raw=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n 'data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)',\n 'data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)',\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)',\n variant !== 'floating' &&\n variant !== 'inset' &&\n 'group-data-[side=left]:border-r group-data-[side=right]:border-l',\n 'group-data-[hover-expanded=true]:shadow-lg group-data-[hover-expanded=true]:ring-1 group-data-[hover-expanded=true]:ring-foreground/10',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'flex size-full flex-col bg-sidebar',\n 'group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm',\n 'group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border'\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: SidebarTriggerProps) {\n const { toggleSidebar, open, setOpen, isHoverExpanded } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n color=\"zinc\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n if (isHoverExpanded && !open) {\n setOpen(true)\n } else {\n toggleSidebar()\n }\n }}\n {...props}\n >\n <IconLayoutSidebar />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: SidebarRailProps) {\n const { toggleSidebar, open, setOpen, isHoverExpanded } = useSidebar()\n\n const handleClick = () => {\n if (isHoverExpanded && !open) {\n setOpen(true)\n } else {\n toggleSidebar()\n }\n }\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={handleClick}\n title=\"Toggle Sidebar\"\n className={cn(\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n 'absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:s-1/2 after:w-0.5 hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\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\nfunction SidebarInset({ className, ...props }: SidebarInsetProps) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'relative flex w-full 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 {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: SidebarInputProps) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('h-8 w-full bg-background shadow-none', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: SidebarHeaderProps) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: SidebarFooterProps) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({ className, ...props }: SidebarSeparatorProps) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: SidebarContentProps) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'no-scrollbar 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\nfunction SidebarGroup({ className, ...props }: SidebarGroupProps) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col px-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({ className, asChild = false, ...props }: SidebarGroupLabelProps) {\n const Comp = asChild ? Slot.Root : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\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 {...props}\n />\n )\n}\n\nfunction SidebarGroupAction({ className, asChild = false, ...props }: SidebarGroupActionProps) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute top-1.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 {...props}\n />\n )\n}\n\nfunction SidebarGroupContent({ className, ...props }: SidebarGroupContentProps) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm mt-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: SidebarMenuProps) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-0', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: SidebarMenuItemProps) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button group/menu-button font-medium flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm 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-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:[&_svg]:text-sidebar-primary data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\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 md: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!'\n }\n },\n defaultVariants: {\n variant: 'default',\n size: 'md'\n }\n }\n)\n\nexport type SidebarMenuButtonProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>\n\nexport type SidebarMenuActionProps = React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n}\n\nexport type SidebarMenuBadgeProps = React.ComponentProps<'div'>\n\nexport type SidebarMenuSkeletonProps = React.ComponentProps<'div'> & {\n showIcon?: boolean\n}\n\nexport type SidebarMenuSubProps = React.ComponentProps<'ul'>\n\nexport type SidebarMenuSubItemProps = React.ComponentProps<'li'>\n\nexport type SidebarMenuSubButtonProps = React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n}\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'md',\n tooltip,\n className,\n ...props\n}: SidebarMenuButtonProps) {\n const Comp = asChild ? Slot.Root : 'button'\n const { isMobile, state, isHoverExpanded } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\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 label={tooltip.children}\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile || isHoverExpanded}\n {...tooltip}\n >\n {button}\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({ className, asChild = false, showOnHover = false, ...props }: SidebarMenuActionProps) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute top-1.5 right-1 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 peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 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 showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuBadge({ className, ...props }: SidebarMenuBadgeProps) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({ className, showIcon = false, ...props }: SidebarMenuSkeletonProps) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: SidebarMenuSubProps) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: SidebarMenuSubButtonProps) {\n const Comp = asChild ? Slot.Root : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\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 font-medium gap-2 overflow-hidden rounded-md px-2 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-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\n className\n )}\n {...props}\n />\n )\n}\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"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { AreaChart, AreaChartCurveType, AreaChartGridAxis, AreaChartProps, AreaC
|
|
|
8
8
|
import { Avatar, AvatarBadge, AvatarBadgeProps, AvatarFallback, AvatarFallbackProps, AvatarGroup, AvatarGroupCount, AvatarGroupCountProps, AvatarGroupProps, AvatarImage, AvatarImageProps, AvatarProps } from "./components/avatar.js";
|
|
9
9
|
import { Badge, BadgeProps, badgeVariants } from "./components/badge.js";
|
|
10
10
|
import { BarChart, BarChartDatum, BarChartGridAxis, BarChartOrientation, BarChartProps, BarChartSeries, BarChartType } from "./components/bar-chart.js";
|
|
11
|
+
import { BottomNav, BottomNavItem, BottomNavItemProps, BottomNavProps } from "./components/bottom-nav.js";
|
|
11
12
|
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItem, BreadcrumbItemProps, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbListProps, BreadcrumbPage, BreadcrumbPageProps, BreadcrumbProps, BreadcrumbSeparator, BreadcrumbSeparatorProps } from "./components/breadcrumb.js";
|
|
12
13
|
import { Separator, SeparatorProps } from "./components/separator.js";
|
|
13
14
|
import { ButtonGroup, ButtonGroupProps, ButtonGroupSeparator, ButtonGroupSeparatorProps, ButtonGroupText, ButtonGroupTextProps, buttonGroupVariants } from "./components/button-group.js";
|
|
@@ -93,4 +94,4 @@ import { ButtonColor, buttonColorVariants } from "./lib/button.js";
|
|
|
93
94
|
import { composeRefs, setRef } from "./lib/compose-refs.js";
|
|
94
95
|
import { ProgressColor, progressColorVariants } from "./lib/progress.js";
|
|
95
96
|
import { cn, randomId, stopPropagationHandler } from "./lib/utils.js";
|
|
96
|
-
export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, Alert, AlertAction, AlertActionProps, AlertDescription, AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogActionProps, AlertDialogCancel, AlertDialogCancelProps, AlertDialogContent, AlertDialogContentProps, AlertDialogDescription, AlertDialogDescriptionProps, AlertDialogFooter, AlertDialogFooterProps, AlertDialogHeader, AlertDialogHeaderProps, AlertDialogMedia, AlertDialogMediaProps, AlertDialogOverlay, AlertDialogOverlayProps, AlertDialogPortal, AlertDialogPortalProps, AlertDialogProps, AlertDialogTitle, AlertDialogTitleProps, AlertDialogTrigger, AlertDialogTriggerProps, AlertProps, AlertTitle, AlertTitleProps, Anchor, AnchorProps, AreaChart, AreaChartCurveType, AreaChartGridAxis, AreaChartProps, AreaChartSeries, AreaChartType, Avatar, AvatarBadge, AvatarBadgeProps, AvatarFallback, AvatarFallbackProps, AvatarGroup, AvatarGroupCount, AvatarGroupCountProps, AvatarGroupProps, AvatarImage, AvatarImageProps, AvatarProps, Badge, BadgeColor, BadgeProps, BarChart, BarChartDatum, BarChartGridAxis, BarChartOrientation, BarChartProps, BarChartSeries, BarChartType, BippiLogo, BippiLogoProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItem, BreadcrumbItemProps, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbListProps, BreadcrumbPage, BreadcrumbPageProps, BreadcrumbProps, BreadcrumbSeparator, BreadcrumbSeparatorProps, Breakpoint, Button, ButtonColor, ButtonGroup, ButtonGroupProps, ButtonGroupSeparator, ButtonGroupSeparatorProps, ButtonGroupText, ButtonGroupTextProps, ButtonProps, CHART_COLOR_KEYS, Calendar, CalendarDayButton, CalendarDayButtonProps, CalendarProps, Card, CardAction, CardActionProps, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps, Carousel, CarouselApi, CarouselContent, CarouselContentProps, CarouselIndicators, CarouselIndicatorsProps, CarouselItem, CarouselItemProps, CarouselNext, CarouselNextProps, CarouselPrevious, CarouselPreviousProps, CarouselProps, Center, CenterProps, ChartColorKey, ChartConfig, ChartContainer, ChartContainerProps, ChartLegend, ChartLegendContent, ChartLegendContentProps, ChartLegendProps, ChartStyle, ChartStyleProps, ChartTooltip, ChartTooltipContent, ChartTooltipContentProps, ChartTooltipProps, Checkbox, CheckboxProps, Code, CodeProps, Collapsible, CollapsibleContent, CollapsibleContentProps, CollapsibleProps, CollapsibleTrigger, CollapsibleTriggerProps, Column, ColumnDef, Combobox, ComboboxChip, ComboboxChipProps, ComboboxChips, ComboboxChipsInput, ComboboxChipsInputProps, ComboboxChipsProps, ComboboxClear, ComboboxClearProps, ComboboxCollection, ComboboxCollectionProps, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxEmptyProps, ComboboxGroup, ComboboxGroupProps, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxLabel, ComboboxLabelProps, ComboboxList, ComboboxListProps, ComboboxProps, ComboboxSeparator, ComboboxSeparatorProps, ComboboxTrigger, ComboboxTriggerProps, ComboboxValue, ComboboxValueProps, Command, CommandDialog, CommandDialogProps, CommandEmpty, CommandEmptyProps, CommandGroup, CommandGroupProps, CommandInput, CommandInputProps, CommandItem, CommandItemProps, CommandList, CommandListProps, CommandProps, CommandSeparator, CommandSeparatorProps, CommandShortcut, CommandShortcutProps, Container, ContainerProps, DEFAULT_CHART_PALETTE, DataTable, DataTableBody, DataTableBodyProps, DataTableColumnHeader, DataTableColumnHeaderProps, DataTableHeader, DataTableHeaderProps, DataTableLabels, DataTablePagination, DataTablePaginationProps, DataTableProps, DataTableRoot, DataTableRootProps, DataTableToolbar, DataTableToolbarProps, DataTableViewOptions, DataTableViewOptionsProps, type DateRange, DateRangePicker, DateRangePickerActions, DateRangePickerActionsProps, DateRangePickerApply, DateRangePickerApplyProps, DateRangePickerCalendar, DateRangePickerCalendarProps, DateRangePickerContent, DateRangePickerContentProps, DateRangePickerDateFields, DateRangePickerDateFieldsProps, DateRangePickerPreset, DateRangePickerPresetOption, DateRangePickerPresetProps, DateRangePickerPresets, DateRangePickerPresetsProps, DateRangePickerProps, DateRangePickerReset, DateRangePickerResetProps, DateRangePickerTrigger, DateRangePickerTriggerProps, DateRangePickerValue, DateRangePickerValueProps, Dialog, DialogBody, DialogBodyProps, DialogClose, DialogCloseProps, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogOverlay, DialogOverlayProps, DialogPortal, DialogPortalProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps, DonutChart, DonutChartProps, Drawer, DrawerBody, DrawerBodyProps, DrawerClose, DrawerCloseProps, DrawerContent, DrawerContentProps, DrawerDescription, DrawerDescriptionProps, DrawerFooter, DrawerFooterProps, DrawerHeader, DrawerHeaderProps, DrawerOverlay, DrawerOverlayProps, DrawerPortal, DrawerPortalProps, DrawerProps, DrawerTitle, DrawerTitleProps, DrawerTrigger, DrawerTriggerProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuGroupProps, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuPortalProps, DropdownMenuProps, DropdownMenuRadioGroup, DropdownMenuRadioGroupProps, DropdownMenuRadioItem, DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuSeparatorProps, DropdownMenuShortcut, DropdownMenuShortcutProps, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubContentProps, DropdownMenuSubProps, DropdownMenuSubTrigger, DropdownMenuSubTriggerProps, DropdownMenuTrigger, DropdownMenuTriggerProps, Dropzone, DropzoneArea, DropzoneAreaProps, DropzoneDescription, DropzoneDescriptionProps, DropzoneFileList, DropzoneFileListItem, DropzoneFileListItemProps, DropzoneFileListProps, DropzoneFileMessage, DropzoneFileMessageProps, DropzoneFileStatus, DropzoneMessage, DropzoneMessageProps, DropzoneProps, DropzoneRemoveFile, DropzoneRemoveFileProps, DropzoneRetryFile, DropzoneRetryFileProps, DropzoneTrigger, DropzoneTriggerProps, DropzoneUploadResult, DropzoneValidation, Empty, EmptyContent, EmptyContentProps, EmptyDescription, EmptyDescriptionProps, EmptyHeader, EmptyHeaderProps, EmptyMedia, EmptyMediaProps, EmptyProps, EmptyTitle, EmptyTitleProps, ErrorCode, FibonashLogo, FibonashLogoProps, Field, FieldContent, FieldContentProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorProps, FieldGroup, FieldGroupProps, FieldLabel, FieldLabelProps, FieldLegend, FieldLegendProps, FieldProps, FieldSeparator, FieldSeparatorProps, FieldSet, FieldSetProps, FieldTitle, FieldTitleProps, type FileError, FileStatus, Flex, FlexProps, GomaxLogo, GomaxLogoProps, Grid, GridItem, GridItemProps, GridProps, Group, GroupProps, Heading, HeadingProps, HiddenFrom, HiddenFromProps, HotkeyItem, type HotkeyItemOptions, HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps, InfiniteProgress, InfiniteProgressProps, Input, InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupButton, InputGroupButtonProps, InputGroupInput, InputGroupInputProps, InputGroupProps, InputGroupText, InputGroupTextProps, InputGroupTextarea, InputGroupTextareaProps, InputOTP, InputOTPGroup, InputOTPGroupProps, InputOTPProps, InputOTPSeparator, InputOTPSeparatorProps, InputOTPSlot, InputOTPSlotProps, InputProps, IntelitrackLogo, IntelitrackLogoProps, Kbd, KbdGroup, KbdGroupProps, KbdProps, KovraLogo, KovraLogoProps, Label, LabelProps, LetsLogo, LetsLogoProps, List, ListIcon, ListIconProps, ListItem, ListItemProps, ListProps, Marker, MarkerContent, MarkerContentProps, MarkerIcon, MarkerIconProps, MarkerProps, MaskInput, MaskInputProps, type MaskOptions, MaxLogo, MaxLogoProps, ModeToggle, ModeToggleProps, type ModifiedData, type Modify, NativeSelect, NativeSelectOptGroup, NativeSelectOptGroupProps, NativeSelectOption, NativeSelectOptionProps, NativeSelectProps, NavigationMenu, NavigationMenuContent, NavigationMenuContentProps, NavigationMenuIndicator, NavigationMenuIndicatorProps, NavigationMenuItem, NavigationMenuItemProps, NavigationMenuLink, NavigationMenuLinkProps, NavigationMenuList, NavigationMenuListProps, NavigationMenuProps, NavigationMenuTrigger, NavigationMenuTriggerProps, NavigationMenuViewport, NavigationMenuViewportProps, NeutraLogo, NeutraLogoProps, NumberField, NumberFieldDecrement, NumberFieldDecrementProps, NumberFieldGroup, NumberFieldGroupProps, NumberFieldIncrement, NumberFieldIncrementProps, NumberFieldInput, NumberFieldInputProps, NumberFieldProps, NumberFieldScrubArea, NumberFieldScrubAreaProps, Pagination, PaginationContent, PaginationContentProps, PaginationEllipsis, PaginationEllipsisProps, PaginationItem, PaginationItemProps, PaginationLink, PaginationLinkProps, PaginationNext, PaginationNextProps, PaginationPrevious, PaginationPreviousProps, PaginationProps, PhoneInput, PhoneInputProps, PieChart, PieChartBase, PieChartBaseProps, PieChartDatum, PieChartProps, Popover, PopoverAnchor, PopoverAnchorProps, PopoverContent, PopoverContentProps, PopoverDescription, PopoverDescriptionProps, PopoverHeader, PopoverHeaderProps, PopoverProps, PopoverTitle, PopoverTitleProps, PopoverTrigger, PopoverTriggerProps, Progress, ProgressColor, ProgressProps, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, RadioGroup, RadioGroupItem, RadioGroupItemProps, RadioGroupProps, RdLogo, RdLogoProps, type Replacement, ResizableHandle, ResizableHandleProps, ResizablePanel, ResizablePanelGroup, ResizablePanelGroupProps, ResizablePanelProps, ResponsiveValueMap, RingProgress, RingProgressProps, RingProgressThickness, type RowData, ScrollArea, ScrollAreaProps, ScrollBar, ScrollBarProps, Select, SelectContent, SelectContentProps, SelectGroup, SelectGroupProps, SelectItem, SelectItemProps, SelectLabel, SelectLabelProps, SelectProps, SelectScrollDownButton, SelectScrollDownButtonProps, SelectScrollUpButton, SelectScrollUpButtonProps, SelectSeparator, SelectSeparatorProps, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps, Separator, SeparatorProps, Sidebar, SidebarContent, SidebarContentProps, SidebarFooter, SidebarFooterProps, SidebarGroup, SidebarGroupAction, SidebarGroupActionProps, SidebarGroupContent, SidebarGroupContentProps, SidebarGroupLabel, SidebarGroupLabelProps, SidebarGroupProps, SidebarHeader, SidebarHeaderProps, SidebarInput, SidebarInputProps, SidebarInset, SidebarInsetProps, SidebarMenu, SidebarMenuAction, SidebarMenuActionProps, SidebarMenuBadge, SidebarMenuBadgeProps, SidebarMenuButton, SidebarMenuButtonProps, SidebarMenuItem, SidebarMenuItemProps, SidebarMenuProps, SidebarMenuSkeleton, SidebarMenuSkeletonProps, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubButtonProps, SidebarMenuSubItem, SidebarMenuSubItemProps, SidebarMenuSubProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailProps, SidebarSeparator, SidebarSeparatorProps, SidebarTrigger, SidebarTriggerProps, SimpleGrid, SimpleGridProps, Skeleton, SkeletonProps, Slider, SliderProps, Spinner, SpinnerProps, Stack, StackProps, Stepper, StepperContent, type StepperContentProps, StepperDescription, StepperDescriptionProps, StepperIndicator, StepperIndicatorProps, StepperItem, type StepperItemProps, StepperNav, StepperNavProps, StepperPanel, StepperPanelProps, type StepperProps, StepperSeparator, StepperSeparatorProps, StepperTitle, StepperTitleProps, StepperTrigger, type StepperTriggerProps, Switch, SwitchProps, Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableContainer, TableContainerProps, TableFooter, TableFooterProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps, TanStackTable, Text, TextProps, Textarea, TextareaProps, Theme, ThemeProvider, ThemeProviderProps, ThemeProviderState, Timeline, TimelineConnector, TimelineConnectorColor, TimelineConnectorProps, TimelineContent, TimelineContentProps, TimelineDescription, TimelineDescriptionProps, TimelineEmpty, TimelineEmptyProps, TimelineHeader, TimelineHeaderProps, TimelineIcon, TimelineIconColor, TimelineIconProps, TimelineIconSize, TimelineItem, TimelineItemProps, TimelineProps, TimelineStatus, TimelineTime, TimelineTimeProps, TimelineTitle, TimelineTitleProps, Toaster, ToasterProps, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupItemProps, ToggleGroupProps, ToggleProps, Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipRoot, TooltipRootProps, TooltipTrigger, TooltipTriggerProps, type Track, type TrackingData, UIColor, UnstyledButton, UnstyledButtonProps, UseDataTableOptions, UseDisclosureHandlers, UseDisclosureOptions, UseDisclosureReturnValue, UseDropzoneProps, UseDropzoneReturn, UseIdleOptions, UseIntervalOptions, UseIntervalReturnValue, UseLocalStorageOptions, UseMaskOptions, VisibleFrom, VisibleFromProps, anchorVariants, badgeColorVariants, badgeVariants, breakpointValues, buildPieConfig, buttonColorVariants, buttonGroupVariants, buttonVariants, centerVariants, cn, composeRefs, containerVariants, createDataTableSelectColumn, defaultDataTableLabels, flexVariants, getHotkeyHandler, groupVariants, headingVariants, listVariants, locale, markerVariants, navigationMenuTriggerStyle, progressColorVariants, progressVariants, randomId, resolveChartColor, ringProgressVariants, selectionControlColorVariants, setRef, spinnerVariants, stackVariants, stopPropagationHandler, tableVariants, tabsListVariants, textVariants, timelineVariants, toast, toggleVariants, uiColors, useBreakpoint, useBreakpointValue, useCarousel, useComboboxAnchor, useDataTable, useDataTableContext, useDisclosure, useDocumentVisibility, useDropzone, useFieldControlId, useHotkeys, useIdle, useInterval, useIsMobile, useLocalStorage, useMask, useSidebar, useStepItem, useStepper, useTheme };
|
|
97
|
+
export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, Alert, AlertAction, AlertActionProps, AlertDescription, AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogActionProps, AlertDialogCancel, AlertDialogCancelProps, AlertDialogContent, AlertDialogContentProps, AlertDialogDescription, AlertDialogDescriptionProps, AlertDialogFooter, AlertDialogFooterProps, AlertDialogHeader, AlertDialogHeaderProps, AlertDialogMedia, AlertDialogMediaProps, AlertDialogOverlay, AlertDialogOverlayProps, AlertDialogPortal, AlertDialogPortalProps, AlertDialogProps, AlertDialogTitle, AlertDialogTitleProps, AlertDialogTrigger, AlertDialogTriggerProps, AlertProps, AlertTitle, AlertTitleProps, Anchor, AnchorProps, AreaChart, AreaChartCurveType, AreaChartGridAxis, AreaChartProps, AreaChartSeries, AreaChartType, Avatar, AvatarBadge, AvatarBadgeProps, AvatarFallback, AvatarFallbackProps, AvatarGroup, AvatarGroupCount, AvatarGroupCountProps, AvatarGroupProps, AvatarImage, AvatarImageProps, AvatarProps, Badge, BadgeColor, BadgeProps, BarChart, BarChartDatum, BarChartGridAxis, BarChartOrientation, BarChartProps, BarChartSeries, BarChartType, BippiLogo, BippiLogoProps, BottomNav, BottomNavItem, BottomNavItemProps, BottomNavProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItem, BreadcrumbItemProps, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbListProps, BreadcrumbPage, BreadcrumbPageProps, BreadcrumbProps, BreadcrumbSeparator, BreadcrumbSeparatorProps, Breakpoint, Button, ButtonColor, ButtonGroup, ButtonGroupProps, ButtonGroupSeparator, ButtonGroupSeparatorProps, ButtonGroupText, ButtonGroupTextProps, ButtonProps, CHART_COLOR_KEYS, Calendar, CalendarDayButton, CalendarDayButtonProps, CalendarProps, Card, CardAction, CardActionProps, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps, Carousel, CarouselApi, CarouselContent, CarouselContentProps, CarouselIndicators, CarouselIndicatorsProps, CarouselItem, CarouselItemProps, CarouselNext, CarouselNextProps, CarouselPrevious, CarouselPreviousProps, CarouselProps, Center, CenterProps, ChartColorKey, ChartConfig, ChartContainer, ChartContainerProps, ChartLegend, ChartLegendContent, ChartLegendContentProps, ChartLegendProps, ChartStyle, ChartStyleProps, ChartTooltip, ChartTooltipContent, ChartTooltipContentProps, ChartTooltipProps, Checkbox, CheckboxProps, Code, CodeProps, Collapsible, CollapsibleContent, CollapsibleContentProps, CollapsibleProps, CollapsibleTrigger, CollapsibleTriggerProps, Column, ColumnDef, Combobox, ComboboxChip, ComboboxChipProps, ComboboxChips, ComboboxChipsInput, ComboboxChipsInputProps, ComboboxChipsProps, ComboboxClear, ComboboxClearProps, ComboboxCollection, ComboboxCollectionProps, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxEmptyProps, ComboboxGroup, ComboboxGroupProps, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxLabel, ComboboxLabelProps, ComboboxList, ComboboxListProps, ComboboxProps, ComboboxSeparator, ComboboxSeparatorProps, ComboboxTrigger, ComboboxTriggerProps, ComboboxValue, ComboboxValueProps, Command, CommandDialog, CommandDialogProps, CommandEmpty, CommandEmptyProps, CommandGroup, CommandGroupProps, CommandInput, CommandInputProps, CommandItem, CommandItemProps, CommandList, CommandListProps, CommandProps, CommandSeparator, CommandSeparatorProps, CommandShortcut, CommandShortcutProps, Container, ContainerProps, DEFAULT_CHART_PALETTE, DataTable, DataTableBody, DataTableBodyProps, DataTableColumnHeader, DataTableColumnHeaderProps, DataTableHeader, DataTableHeaderProps, DataTableLabels, DataTablePagination, DataTablePaginationProps, DataTableProps, DataTableRoot, DataTableRootProps, DataTableToolbar, DataTableToolbarProps, DataTableViewOptions, DataTableViewOptionsProps, type DateRange, DateRangePicker, DateRangePickerActions, DateRangePickerActionsProps, DateRangePickerApply, DateRangePickerApplyProps, DateRangePickerCalendar, DateRangePickerCalendarProps, DateRangePickerContent, DateRangePickerContentProps, DateRangePickerDateFields, DateRangePickerDateFieldsProps, DateRangePickerPreset, DateRangePickerPresetOption, DateRangePickerPresetProps, DateRangePickerPresets, DateRangePickerPresetsProps, DateRangePickerProps, DateRangePickerReset, DateRangePickerResetProps, DateRangePickerTrigger, DateRangePickerTriggerProps, DateRangePickerValue, DateRangePickerValueProps, Dialog, DialogBody, DialogBodyProps, DialogClose, DialogCloseProps, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogOverlay, DialogOverlayProps, DialogPortal, DialogPortalProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps, DonutChart, DonutChartProps, Drawer, DrawerBody, DrawerBodyProps, DrawerClose, DrawerCloseProps, DrawerContent, DrawerContentProps, DrawerDescription, DrawerDescriptionProps, DrawerFooter, DrawerFooterProps, DrawerHeader, DrawerHeaderProps, DrawerOverlay, DrawerOverlayProps, DrawerPortal, DrawerPortalProps, DrawerProps, DrawerTitle, DrawerTitleProps, DrawerTrigger, DrawerTriggerProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuGroupProps, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuPortalProps, DropdownMenuProps, DropdownMenuRadioGroup, DropdownMenuRadioGroupProps, DropdownMenuRadioItem, DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuSeparatorProps, DropdownMenuShortcut, DropdownMenuShortcutProps, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubContentProps, DropdownMenuSubProps, DropdownMenuSubTrigger, DropdownMenuSubTriggerProps, DropdownMenuTrigger, DropdownMenuTriggerProps, Dropzone, DropzoneArea, DropzoneAreaProps, DropzoneDescription, DropzoneDescriptionProps, DropzoneFileList, DropzoneFileListItem, DropzoneFileListItemProps, DropzoneFileListProps, DropzoneFileMessage, DropzoneFileMessageProps, DropzoneFileStatus, DropzoneMessage, DropzoneMessageProps, DropzoneProps, DropzoneRemoveFile, DropzoneRemoveFileProps, DropzoneRetryFile, DropzoneRetryFileProps, DropzoneTrigger, DropzoneTriggerProps, DropzoneUploadResult, DropzoneValidation, Empty, EmptyContent, EmptyContentProps, EmptyDescription, EmptyDescriptionProps, EmptyHeader, EmptyHeaderProps, EmptyMedia, EmptyMediaProps, EmptyProps, EmptyTitle, EmptyTitleProps, ErrorCode, FibonashLogo, FibonashLogoProps, Field, FieldContent, FieldContentProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorProps, FieldGroup, FieldGroupProps, FieldLabel, FieldLabelProps, FieldLegend, FieldLegendProps, FieldProps, FieldSeparator, FieldSeparatorProps, FieldSet, FieldSetProps, FieldTitle, FieldTitleProps, type FileError, FileStatus, Flex, FlexProps, GomaxLogo, GomaxLogoProps, Grid, GridItem, GridItemProps, GridProps, Group, GroupProps, Heading, HeadingProps, HiddenFrom, HiddenFromProps, HotkeyItem, type HotkeyItemOptions, HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps, InfiniteProgress, InfiniteProgressProps, Input, InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupButton, InputGroupButtonProps, InputGroupInput, InputGroupInputProps, InputGroupProps, InputGroupText, InputGroupTextProps, InputGroupTextarea, InputGroupTextareaProps, InputOTP, InputOTPGroup, InputOTPGroupProps, InputOTPProps, InputOTPSeparator, InputOTPSeparatorProps, InputOTPSlot, InputOTPSlotProps, InputProps, IntelitrackLogo, IntelitrackLogoProps, Kbd, KbdGroup, KbdGroupProps, KbdProps, KovraLogo, KovraLogoProps, Label, LabelProps, LetsLogo, LetsLogoProps, List, ListIcon, ListIconProps, ListItem, ListItemProps, ListProps, Marker, MarkerContent, MarkerContentProps, MarkerIcon, MarkerIconProps, MarkerProps, MaskInput, MaskInputProps, type MaskOptions, MaxLogo, MaxLogoProps, ModeToggle, ModeToggleProps, type ModifiedData, type Modify, NativeSelect, NativeSelectOptGroup, NativeSelectOptGroupProps, NativeSelectOption, NativeSelectOptionProps, NativeSelectProps, NavigationMenu, NavigationMenuContent, NavigationMenuContentProps, NavigationMenuIndicator, NavigationMenuIndicatorProps, NavigationMenuItem, NavigationMenuItemProps, NavigationMenuLink, NavigationMenuLinkProps, NavigationMenuList, NavigationMenuListProps, NavigationMenuProps, NavigationMenuTrigger, NavigationMenuTriggerProps, NavigationMenuViewport, NavigationMenuViewportProps, NeutraLogo, NeutraLogoProps, NumberField, NumberFieldDecrement, NumberFieldDecrementProps, NumberFieldGroup, NumberFieldGroupProps, NumberFieldIncrement, NumberFieldIncrementProps, NumberFieldInput, NumberFieldInputProps, NumberFieldProps, NumberFieldScrubArea, NumberFieldScrubAreaProps, Pagination, PaginationContent, PaginationContentProps, PaginationEllipsis, PaginationEllipsisProps, PaginationItem, PaginationItemProps, PaginationLink, PaginationLinkProps, PaginationNext, PaginationNextProps, PaginationPrevious, PaginationPreviousProps, PaginationProps, PhoneInput, PhoneInputProps, PieChart, PieChartBase, PieChartBaseProps, PieChartDatum, PieChartProps, Popover, PopoverAnchor, PopoverAnchorProps, PopoverContent, PopoverContentProps, PopoverDescription, PopoverDescriptionProps, PopoverHeader, PopoverHeaderProps, PopoverProps, PopoverTitle, PopoverTitleProps, PopoverTrigger, PopoverTriggerProps, Progress, ProgressColor, ProgressProps, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, RadioGroup, RadioGroupItem, RadioGroupItemProps, RadioGroupProps, RdLogo, RdLogoProps, type Replacement, ResizableHandle, ResizableHandleProps, ResizablePanel, ResizablePanelGroup, ResizablePanelGroupProps, ResizablePanelProps, ResponsiveValueMap, RingProgress, RingProgressProps, RingProgressThickness, type RowData, ScrollArea, ScrollAreaProps, ScrollBar, ScrollBarProps, Select, SelectContent, SelectContentProps, SelectGroup, SelectGroupProps, SelectItem, SelectItemProps, SelectLabel, SelectLabelProps, SelectProps, SelectScrollDownButton, SelectScrollDownButtonProps, SelectScrollUpButton, SelectScrollUpButtonProps, SelectSeparator, SelectSeparatorProps, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps, Separator, SeparatorProps, Sidebar, SidebarContent, SidebarContentProps, SidebarFooter, SidebarFooterProps, SidebarGroup, SidebarGroupAction, SidebarGroupActionProps, SidebarGroupContent, SidebarGroupContentProps, SidebarGroupLabel, SidebarGroupLabelProps, SidebarGroupProps, SidebarHeader, SidebarHeaderProps, SidebarInput, SidebarInputProps, SidebarInset, SidebarInsetProps, SidebarMenu, SidebarMenuAction, SidebarMenuActionProps, SidebarMenuBadge, SidebarMenuBadgeProps, SidebarMenuButton, SidebarMenuButtonProps, SidebarMenuItem, SidebarMenuItemProps, SidebarMenuProps, SidebarMenuSkeleton, SidebarMenuSkeletonProps, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubButtonProps, SidebarMenuSubItem, SidebarMenuSubItemProps, SidebarMenuSubProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailProps, SidebarSeparator, SidebarSeparatorProps, SidebarTrigger, SidebarTriggerProps, SimpleGrid, SimpleGridProps, Skeleton, SkeletonProps, Slider, SliderProps, Spinner, SpinnerProps, Stack, StackProps, Stepper, StepperContent, type StepperContentProps, StepperDescription, StepperDescriptionProps, StepperIndicator, StepperIndicatorProps, StepperItem, type StepperItemProps, StepperNav, StepperNavProps, StepperPanel, StepperPanelProps, type StepperProps, StepperSeparator, StepperSeparatorProps, StepperTitle, StepperTitleProps, StepperTrigger, type StepperTriggerProps, Switch, SwitchProps, Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableContainer, TableContainerProps, TableFooter, TableFooterProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps, TanStackTable, Text, TextProps, Textarea, TextareaProps, Theme, ThemeProvider, ThemeProviderProps, ThemeProviderState, Timeline, TimelineConnector, TimelineConnectorColor, TimelineConnectorProps, TimelineContent, TimelineContentProps, TimelineDescription, TimelineDescriptionProps, TimelineEmpty, TimelineEmptyProps, TimelineHeader, TimelineHeaderProps, TimelineIcon, TimelineIconColor, TimelineIconProps, TimelineIconSize, TimelineItem, TimelineItemProps, TimelineProps, TimelineStatus, TimelineTime, TimelineTimeProps, TimelineTitle, TimelineTitleProps, Toaster, ToasterProps, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupItemProps, ToggleGroupProps, ToggleProps, Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipRoot, TooltipRootProps, TooltipTrigger, TooltipTriggerProps, type Track, type TrackingData, UIColor, UnstyledButton, UnstyledButtonProps, UseDataTableOptions, UseDisclosureHandlers, UseDisclosureOptions, UseDisclosureReturnValue, UseDropzoneProps, UseDropzoneReturn, UseIdleOptions, UseIntervalOptions, UseIntervalReturnValue, UseLocalStorageOptions, UseMaskOptions, VisibleFrom, VisibleFromProps, anchorVariants, badgeColorVariants, badgeVariants, breakpointValues, buildPieConfig, buttonColorVariants, buttonGroupVariants, buttonVariants, centerVariants, cn, composeRefs, containerVariants, createDataTableSelectColumn, defaultDataTableLabels, flexVariants, getHotkeyHandler, groupVariants, headingVariants, listVariants, locale, markerVariants, navigationMenuTriggerStyle, progressColorVariants, progressVariants, randomId, resolveChartColor, ringProgressVariants, selectionControlColorVariants, setRef, spinnerVariants, stackVariants, stopPropagationHandler, tableVariants, tabsListVariants, textVariants, timelineVariants, toast, toggleVariants, uiColors, useBreakpoint, useBreakpointValue, useCarousel, useComboboxAnchor, useDataTable, useDataTableContext, useDisclosure, useDocumentVisibility, useDropzone, useFieldControlId, useHotkeys, useIdle, useInterval, useIsMobile, useLocalStorage, useMask, useSidebar, useStepItem, useStepper, useTheme };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cn as e,randomId as t,stopPropagationHandler as n}from"./lib/utils.js";import{Accordion as r,AccordionContent as i,AccordionItem as a,AccordionTrigger as o}from"./components/accordion.js";import{Alert as s,AlertAction as c,AlertDescription as l,AlertTitle as u}from"./components/alert.js";import{buttonColorVariants as d}from"./lib/button.js";import{Spinner as f,spinnerVariants as p}from"./components/spinner.js";import{Button as m,buttonVariants as h}from"./components/button.js";import{AlertDialog as g,AlertDialogAction as _,AlertDialogCancel as v,AlertDialogContent as y,AlertDialogDescription as b,AlertDialogFooter as x,AlertDialogHeader as S,AlertDialogMedia as C,AlertDialogOverlay as w,AlertDialogPortal as T,AlertDialogTitle as E,AlertDialogTrigger as D}from"./components/alert-dialog.js";import{Anchor as O,anchorVariants as k}from"./components/anchor.js";import{CHART_COLOR_KEYS as A,ChartContainer as j,ChartLegend as M,ChartLegendContent as N,ChartStyle as P,ChartTooltip as F,ChartTooltipContent as I,DEFAULT_CHART_PALETTE as L,resolveChartColor as R}from"./components/chart.js";import{AreaChart as z}from"./components/area-chart.js";import{Avatar as B,AvatarBadge as V,AvatarFallback as H,AvatarGroup as U,AvatarGroupCount as W,AvatarImage as G}from"./components/avatar.js";import{badgeColorVariants as K}from"./lib/badge.js";import{Badge as q,badgeVariants as J}from"./components/badge.js";import{BarChart as Y}from"./components/bar-chart.js";import{Breadcrumb as X,BreadcrumbEllipsis as Z,BreadcrumbItem as Q,BreadcrumbLink as $,BreadcrumbList as ee,BreadcrumbPage as te,BreadcrumbSeparator as ne}from"./components/breadcrumb.js";import{Separator as re}from"./components/separator.js";import{ButtonGroup as ie,ButtonGroupSeparator as ae,ButtonGroupText as oe,buttonGroupVariants as se}from"./components/button-group.js";import{Calendar as ce,CalendarDayButton as le,locale as ue}from"./components/calendar.js";import{Card as de,CardAction as fe,CardContent as pe,CardDescription as me,CardFooter as he,CardHeader as ge,CardTitle as _e}from"./components/card.js";import{Carousel as ve,CarouselContent as ye,CarouselIndicators as be,CarouselItem as xe,CarouselNext as Se,CarouselPrevious as Ce,useCarousel as we}from"./components/carousel.js";import{Center as Te,centerVariants as Ee}from"./components/center.js";import{selectionControlColorVariants as De,uiColors as Oe}from"./lib/color.js";import{Label as ke}from"./components/label.js";import{Field as Ae,FieldContent as je,FieldDescription as Me,FieldError as Ne,FieldGroup as Pe,FieldLabel as Fe,FieldLegend as Ie,FieldSeparator as Le,FieldSet as Re,FieldTitle as ze,useFieldControlId as Be}from"./components/field.js";import{Checkbox as Ve}from"./components/checkbox.js";import{Code as He}from"./components/code.js";import{Collapsible as Ue,CollapsibleContent as We,CollapsibleTrigger as Ge}from"./components/collapsible.js";import{Input as Ke}from"./components/input.js";import{Textarea as qe}from"./components/textarea.js";import{InputGroup as Je,InputGroupAddon as Ye,InputGroupButton as Xe,InputGroupInput as Ze,InputGroupText as Qe,InputGroupTextarea as $e}from"./components/input-group.js";import{Combobox as et,ComboboxChip as tt,ComboboxChips as nt,ComboboxChipsInput as rt,ComboboxClear as it,ComboboxCollection as at,ComboboxContent as ot,ComboboxEmpty as st,ComboboxGroup as ct,ComboboxInput as lt,ComboboxItem as ut,ComboboxLabel as dt,ComboboxList as ft,ComboboxSeparator as pt,ComboboxTrigger as mt,ComboboxValue as ht,useComboboxAnchor as gt}from"./components/combobox.js";import{Dialog as _t,DialogBody as vt,DialogClose as yt,DialogContent as bt,DialogDescription as xt,DialogFooter as St,DialogHeader as Ct,DialogOverlay as wt,DialogPortal as Tt,DialogTitle as Et,DialogTrigger as Dt}from"./components/dialog.js";import{Command as Ot,CommandDialog as kt,CommandEmpty as At,CommandGroup as jt,CommandInput as Mt,CommandItem as Nt,CommandList as Pt,CommandSeparator as Ft,CommandShortcut as It}from"./components/command.js";import{Container as Lt,containerVariants as Rt}from"./components/container.js";import{DropdownMenu as zt,DropdownMenuCheckboxItem as Bt,DropdownMenuContent as Vt,DropdownMenuGroup as Ht,DropdownMenuItem as Ut,DropdownMenuLabel as Wt,DropdownMenuPortal as Gt,DropdownMenuRadioGroup as Kt,DropdownMenuRadioItem as qt,DropdownMenuSeparator as Jt,DropdownMenuShortcut as Yt,DropdownMenuSub as Xt,DropdownMenuSubContent as Zt,DropdownMenuSubTrigger as Qt,DropdownMenuTrigger as $t}from"./components/dropdown-menu.js";import{Select as en,SelectContent as tn,SelectGroup as nn,SelectItem as rn,SelectLabel as an,SelectScrollDownButton as on,SelectScrollUpButton as sn,SelectSeparator as cn,SelectTrigger as ln,SelectValue as un}from"./components/select.js";import{Table as dn,TableBody as fn,TableCaption as pn,TableCell as mn,TableContainer as hn,TableFooter as gn,TableHead as _n,TableHeader as vn,TableRow as yn,tableVariants as bn}from"./components/table.js";import{DataTable as xn,DataTableBody as Sn,DataTableColumnHeader as Cn,DataTableHeader as wn,DataTablePagination as Tn,DataTableRoot as En,DataTableToolbar as Dn,DataTableViewOptions as On,createDataTableSelectColumn as kn,defaultDataTableLabels as An,useDataTable as jn,useDataTableContext as Mn}from"./components/data-table.js";import{Popover as Nn,PopoverAnchor as Pn,PopoverContent as Fn,PopoverDescription as In,PopoverHeader as Ln,PopoverTitle as Rn,PopoverTrigger as zn}from"./components/popover.js";import{DateRangePicker as Bn,DateRangePickerActions as Vn,DateRangePickerApply as Hn,DateRangePickerCalendar as Un,DateRangePickerContent as Wn,DateRangePickerDateFields as Gn,DateRangePickerPreset as Kn,DateRangePickerPresets as qn,DateRangePickerReset as Jn,DateRangePickerTrigger as Yn,DateRangePickerValue as Xn}from"./components/date-range-picker.js";import{PieChart as Zn,PieChartBase as Qn,buildPieConfig as $n}from"./components/pie-chart.js";import{DonutChart as er}from"./components/donut-chart.js";import{Drawer as tr,DrawerBody as nr,DrawerClose as rr,DrawerContent as ir,DrawerDescription as ar,DrawerFooter as or,DrawerHeader as sr,DrawerOverlay as cr,DrawerPortal as lr,DrawerTitle as ur,DrawerTrigger as dr}from"./components/drawer.js";import{composeRefs as fr,setRef as pr}from"./lib/compose-refs.js";import{Dropzone as mr,DropzoneArea as hr,DropzoneDescription as gr,DropzoneFileList as _r,DropzoneFileListItem as vr,DropzoneFileMessage as yr,DropzoneMessage as br,DropzoneRemoveFile as xr,DropzoneRetryFile as Sr,DropzoneTrigger as Cr,ErrorCode as wr,InfiniteProgress as Tr,useDropzone as Er}from"./components/dropzone.js";import{Empty as Dr,EmptyContent as Or,EmptyDescription as kr,EmptyHeader as Ar,EmptyMedia as jr,EmptyTitle as Mr}from"./components/empty.js";import{Flex as Nr,flexVariants as Pr}from"./components/flex.js";import{Grid as Fr,GridItem as Ir}from"./components/grid.js";import{Group as Lr,groupVariants as Rr}from"./components/group.js";import{Heading as zr,headingVariants as Br}from"./components/heading.js";import{HoverCard as Vr,HoverCardContent as Hr,HoverCardTrigger as Ur}from"./components/hover-card.js";import{InputOTP as Wr,InputOTPGroup as Gr,InputOTPSeparator as Kr,InputOTPSlot as qr,REGEXP_ONLY_CHARS as Jr,REGEXP_ONLY_DIGITS as Yr,REGEXP_ONLY_DIGITS_AND_CHARS as Xr}from"./components/input-otp.js";import{Kbd as Zr,KbdGroup as Qr}from"./components/kbd.js";import{List as $r,ListIcon as ei,ListItem as ti,listVariants as ni}from"./components/list.js";import{a as ri,c as ii,i as ai,l as oi,n as si,o as ci,r as li,s as ui,t as di}from"./logo-B0thHtTS.js";import{Marker as fi,MarkerContent as pi,MarkerIcon as mi,markerVariants as hi}from"./components/marker.js";import{useMask as gi}from"./hooks/use-mask.js";import{MaskInput as _i}from"./components/mask-input.js";import{NativeSelect as vi,NativeSelectOptGroup as yi,NativeSelectOption as bi}from"./components/native-select.js";import{NavigationMenu as xi,NavigationMenuContent as Si,NavigationMenuIndicator as Ci,NavigationMenuItem as wi,NavigationMenuLink as Ti,NavigationMenuList as Ei,NavigationMenuTrigger as Di,NavigationMenuViewport as Oi,navigationMenuTriggerStyle as ki}from"./components/navigation-menu.js";import{NumberField as Ai,NumberFieldDecrement as ji,NumberFieldGroup as Mi,NumberFieldIncrement as Ni,NumberFieldInput as Pi,NumberFieldScrubArea as Fi}from"./components/number-field.js";import{Pagination as Ii,PaginationContent as Li,PaginationEllipsis as Ri,PaginationItem as zi,PaginationLink as Bi,PaginationNext as Vi,PaginationPrevious as Hi}from"./components/pagination.js";import{ScrollArea as Ui,ScrollBar as Wi}from"./components/scroll-area.js";import{PhoneInput as Gi}from"./components/phone-input.js";import{progressColorVariants as Ki}from"./lib/progress.js";import{Progress as qi,progressVariants as Ji}from"./components/progress.js";import{RadioGroup as Yi,RadioGroupItem as Xi}from"./components/radio-group.js";import{ResizableHandle as Zi,ResizablePanel as Qi,ResizablePanelGroup as $i}from"./components/resizable.js";import{RingProgress as ea,ringProgressVariants as ta}from"./components/ring-progress.js";import{useIsMobile as na}from"./hooks/use-mobile.js";import{Skeleton as ra}from"./components/skeleton.js";import{Tooltip as ia,TooltipContent as aa,TooltipProvider as oa,TooltipRoot as sa,TooltipTrigger as ca}from"./components/tooltip.js";import{Sidebar as la,SidebarContent as ua,SidebarFooter as da,SidebarGroup as fa,SidebarGroupAction as pa,SidebarGroupContent as ma,SidebarGroupLabel as ha,SidebarHeader as ga,SidebarInput as _a,SidebarInset as va,SidebarMenu as ya,SidebarMenuAction as ba,SidebarMenuBadge as xa,SidebarMenuButton as Sa,SidebarMenuItem as Ca,SidebarMenuSkeleton as wa,SidebarMenuSub as Ta,SidebarMenuSubButton as Ea,SidebarMenuSubItem as Da,SidebarProvider as Oa,SidebarRail as ka,SidebarSeparator as Aa,SidebarTrigger as ja,useSidebar as Ma}from"./components/sidebar.js";import{SimpleGrid as Na}from"./components/simple-grid.js";import{Slider as Pa}from"./components/slider.js";import{Toaster as Fa,toast as Ia}from"./components/sonner.js";import{Stack as La,stackVariants as Ra}from"./components/stack.js";import{Stepper as za,StepperContent as Ba,StepperDescription as Va,StepperIndicator as Ha,StepperItem as Ua,StepperNav as Wa,StepperPanel as Ga,StepperSeparator as Ka,StepperTitle as qa,StepperTrigger as Ja,useStepItem as Ya,useStepper as Xa}from"./components/stepper.js";import{Switch as Za}from"./components/switch.js";import{Tabs as Qa,TabsContent as $a,TabsList as eo,TabsTrigger as to,tabsListVariants as no}from"./components/tabs.js";import{Text as ro,textVariants as io}from"./components/text.js";import{ModeToggle as ao,ThemeProvider as oo,useTheme as so}from"./components/theme.js";import{Timeline as co,TimelineConnector as lo,TimelineContent as uo,TimelineDescription as fo,TimelineEmpty as po,TimelineHeader as mo,TimelineIcon as ho,TimelineItem as go,TimelineTime as _o,TimelineTitle as vo,timelineVariants as yo}from"./components/timeline.js";import{Toggle as bo,toggleVariants as xo}from"./components/toggle.js";import{ToggleGroup as So,ToggleGroupItem as Co}from"./components/toggle-group.js";import{UnstyledButton as wo}from"./components/unstyled-button.js";import{breakpointValues as To,useBreakpoint as Eo}from"./hooks/use-breakpoint.js";import{HiddenFrom as Do,VisibleFrom as Oo}from"./components/visibility.js";import{useBreakpointValue as ko}from"./hooks/use-breakpoint-value.js";import{useDisclosure as Ao}from"./hooks/use-disclosure.js";import{useDocumentVisibility as jo}from"./hooks/use-document-visibility.js";import{n as Mo,t as No}from"./use-hotkeys-YDJmGWX6.js";import{useIdle as Po}from"./hooks/use-idle.js";import{useInterval as Fo}from"./hooks/use-interval.js";import{useLocalStorage as Io}from"./hooks/use-local-storage.js";export{r as Accordion,i as AccordionContent,a as AccordionItem,o as AccordionTrigger,s as Alert,c as AlertAction,l as AlertDescription,g as AlertDialog,_ as AlertDialogAction,v as AlertDialogCancel,y as AlertDialogContent,b as AlertDialogDescription,x as AlertDialogFooter,S as AlertDialogHeader,C as AlertDialogMedia,w as AlertDialogOverlay,T as AlertDialogPortal,E as AlertDialogTitle,D as AlertDialogTrigger,u as AlertTitle,O as Anchor,z as AreaChart,B as Avatar,V as AvatarBadge,H as AvatarFallback,U as AvatarGroup,W as AvatarGroupCount,G as AvatarImage,q as Badge,Y as BarChart,di as BippiLogo,X as Breadcrumb,Z as BreadcrumbEllipsis,Q as BreadcrumbItem,$ as BreadcrumbLink,ee as BreadcrumbList,te as BreadcrumbPage,ne as BreadcrumbSeparator,m as Button,ie as ButtonGroup,ae as ButtonGroupSeparator,oe as ButtonGroupText,A as CHART_COLOR_KEYS,ce as Calendar,le as CalendarDayButton,de as Card,fe as CardAction,pe as CardContent,me as CardDescription,he as CardFooter,ge as CardHeader,_e as CardTitle,ve as Carousel,ye as CarouselContent,be as CarouselIndicators,xe as CarouselItem,Se as CarouselNext,Ce as CarouselPrevious,Te as Center,j as ChartContainer,M as ChartLegend,N as ChartLegendContent,P as ChartStyle,F as ChartTooltip,I as ChartTooltipContent,Ve as Checkbox,He as Code,Ue as Collapsible,We as CollapsibleContent,Ge as CollapsibleTrigger,et as Combobox,tt as ComboboxChip,nt as ComboboxChips,rt as ComboboxChipsInput,it as ComboboxClear,at as ComboboxCollection,ot as ComboboxContent,st as ComboboxEmpty,ct as ComboboxGroup,lt as ComboboxInput,ut as ComboboxItem,dt as ComboboxLabel,ft as ComboboxList,pt as ComboboxSeparator,mt as ComboboxTrigger,ht as ComboboxValue,Ot as Command,kt as CommandDialog,At as CommandEmpty,jt as CommandGroup,Mt as CommandInput,Nt as CommandItem,Pt as CommandList,Ft as CommandSeparator,It as CommandShortcut,Lt as Container,L as DEFAULT_CHART_PALETTE,xn as DataTable,Sn as DataTableBody,Cn as DataTableColumnHeader,wn as DataTableHeader,Tn as DataTablePagination,En as DataTableRoot,Dn as DataTableToolbar,On as DataTableViewOptions,Bn as DateRangePicker,Vn as DateRangePickerActions,Hn as DateRangePickerApply,Un as DateRangePickerCalendar,Wn as DateRangePickerContent,Gn as DateRangePickerDateFields,Kn as DateRangePickerPreset,qn as DateRangePickerPresets,Jn as DateRangePickerReset,Yn as DateRangePickerTrigger,Xn as DateRangePickerValue,_t as Dialog,vt as DialogBody,yt as DialogClose,bt as DialogContent,xt as DialogDescription,St as DialogFooter,Ct as DialogHeader,wt as DialogOverlay,Tt as DialogPortal,Et as DialogTitle,Dt as DialogTrigger,er as DonutChart,tr as Drawer,nr as DrawerBody,rr as DrawerClose,ir as DrawerContent,ar as DrawerDescription,or as DrawerFooter,sr as DrawerHeader,cr as DrawerOverlay,lr as DrawerPortal,ur as DrawerTitle,dr as DrawerTrigger,zt as DropdownMenu,Bt as DropdownMenuCheckboxItem,Vt as DropdownMenuContent,Ht as DropdownMenuGroup,Ut as DropdownMenuItem,Wt as DropdownMenuLabel,Gt as DropdownMenuPortal,Kt as DropdownMenuRadioGroup,qt as DropdownMenuRadioItem,Jt as DropdownMenuSeparator,Yt as DropdownMenuShortcut,Xt as DropdownMenuSub,Zt as DropdownMenuSubContent,Qt as DropdownMenuSubTrigger,$t as DropdownMenuTrigger,mr as Dropzone,hr as DropzoneArea,gr as DropzoneDescription,_r as DropzoneFileList,vr as DropzoneFileListItem,yr as DropzoneFileMessage,br as DropzoneMessage,xr as DropzoneRemoveFile,Sr as DropzoneRetryFile,Cr as DropzoneTrigger,Dr as Empty,Or as EmptyContent,kr as EmptyDescription,Ar as EmptyHeader,jr as EmptyMedia,Mr as EmptyTitle,wr as ErrorCode,si as FibonashLogo,Ae as Field,je as FieldContent,Me as FieldDescription,Ne as FieldError,Pe as FieldGroup,Fe as FieldLabel,Ie as FieldLegend,Le as FieldSeparator,Re as FieldSet,ze as FieldTitle,Nr as Flex,li as GomaxLogo,Fr as Grid,Ir as GridItem,Lr as Group,zr as Heading,Do as HiddenFrom,Vr as HoverCard,Hr as HoverCardContent,Ur as HoverCardTrigger,Tr as InfiniteProgress,Ke as Input,Je as InputGroup,Ye as InputGroupAddon,Xe as InputGroupButton,Ze as InputGroupInput,Qe as InputGroupText,$e as InputGroupTextarea,Wr as InputOTP,Gr as InputOTPGroup,Kr as InputOTPSeparator,qr as InputOTPSlot,ai as IntelitrackLogo,Zr as Kbd,Qr as KbdGroup,ri as KovraLogo,ke as Label,ci as LetsLogo,$r as List,ei as ListIcon,ti as ListItem,fi as Marker,pi as MarkerContent,mi as MarkerIcon,_i as MaskInput,ui as MaxLogo,ao as ModeToggle,vi as NativeSelect,yi as NativeSelectOptGroup,bi as NativeSelectOption,xi as NavigationMenu,Si as NavigationMenuContent,Ci as NavigationMenuIndicator,wi as NavigationMenuItem,Ti as NavigationMenuLink,Ei as NavigationMenuList,Di as NavigationMenuTrigger,Oi as NavigationMenuViewport,ii as NeutraLogo,Ai as NumberField,ji as NumberFieldDecrement,Mi as NumberFieldGroup,Ni as NumberFieldIncrement,Pi as NumberFieldInput,Fi as NumberFieldScrubArea,Ii as Pagination,Li as PaginationContent,Ri as PaginationEllipsis,zi as PaginationItem,Bi as PaginationLink,Vi as PaginationNext,Hi as PaginationPrevious,Gi as PhoneInput,Zn as PieChart,Qn as PieChartBase,Nn as Popover,Pn as PopoverAnchor,Fn as PopoverContent,In as PopoverDescription,Ln as PopoverHeader,Rn as PopoverTitle,zn as PopoverTrigger,qi as Progress,Jr as REGEXP_ONLY_CHARS,Yr as REGEXP_ONLY_DIGITS,Xr as REGEXP_ONLY_DIGITS_AND_CHARS,Yi as RadioGroup,Xi as RadioGroupItem,oi as RdLogo,Zi as ResizableHandle,Qi as ResizablePanel,$i as ResizablePanelGroup,ea as RingProgress,Ui as ScrollArea,Wi as ScrollBar,en as Select,tn as SelectContent,nn as SelectGroup,rn as SelectItem,an as SelectLabel,on as SelectScrollDownButton,sn as SelectScrollUpButton,cn as SelectSeparator,ln as SelectTrigger,un as SelectValue,re as Separator,la as Sidebar,ua as SidebarContent,da as SidebarFooter,fa as SidebarGroup,pa as SidebarGroupAction,ma as SidebarGroupContent,ha as SidebarGroupLabel,ga as SidebarHeader,_a as SidebarInput,va as SidebarInset,ya as SidebarMenu,ba as SidebarMenuAction,xa as SidebarMenuBadge,Sa as SidebarMenuButton,Ca as SidebarMenuItem,wa as SidebarMenuSkeleton,Ta as SidebarMenuSub,Ea as SidebarMenuSubButton,Da as SidebarMenuSubItem,Oa as SidebarProvider,ka as SidebarRail,Aa as SidebarSeparator,ja as SidebarTrigger,Na as SimpleGrid,ra as Skeleton,Pa as Slider,f as Spinner,La as Stack,za as Stepper,Ba as StepperContent,Va as StepperDescription,Ha as StepperIndicator,Ua as StepperItem,Wa as StepperNav,Ga as StepperPanel,Ka as StepperSeparator,qa as StepperTitle,Ja as StepperTrigger,Za as Switch,dn as Table,fn as TableBody,pn as TableCaption,mn as TableCell,hn as TableContainer,gn as TableFooter,_n as TableHead,vn as TableHeader,yn as TableRow,Qa as Tabs,$a as TabsContent,eo as TabsList,to as TabsTrigger,ro as Text,qe as Textarea,oo as ThemeProvider,co as Timeline,lo as TimelineConnector,uo as TimelineContent,fo as TimelineDescription,po as TimelineEmpty,mo as TimelineHeader,ho as TimelineIcon,go as TimelineItem,_o as TimelineTime,vo as TimelineTitle,Fa as Toaster,bo as Toggle,So as ToggleGroup,Co as ToggleGroupItem,ia as Tooltip,aa as TooltipContent,oa as TooltipProvider,sa as TooltipRoot,ca as TooltipTrigger,wo as UnstyledButton,Oo as VisibleFrom,k as anchorVariants,K as badgeColorVariants,J as badgeVariants,To as breakpointValues,$n as buildPieConfig,d as buttonColorVariants,se as buttonGroupVariants,h as buttonVariants,Ee as centerVariants,e as cn,fr as composeRefs,Rt as containerVariants,kn as createDataTableSelectColumn,An as defaultDataTableLabels,Pr as flexVariants,Mo as getHotkeyHandler,Rr as groupVariants,Br as headingVariants,ni as listVariants,ue as locale,hi as markerVariants,ki as navigationMenuTriggerStyle,Ki as progressColorVariants,Ji as progressVariants,t as randomId,R as resolveChartColor,ta as ringProgressVariants,De as selectionControlColorVariants,pr as setRef,p as spinnerVariants,Ra as stackVariants,n as stopPropagationHandler,bn as tableVariants,no as tabsListVariants,io as textVariants,yo as timelineVariants,Ia as toast,xo as toggleVariants,Oe as uiColors,Eo as useBreakpoint,ko as useBreakpointValue,we as useCarousel,gt as useComboboxAnchor,jn as useDataTable,Mn as useDataTableContext,Ao as useDisclosure,jo as useDocumentVisibility,Er as useDropzone,Be as useFieldControlId,No as useHotkeys,Po as useIdle,Fo as useInterval,na as useIsMobile,Io as useLocalStorage,gi as useMask,Ma as useSidebar,Ya as useStepItem,Xa as useStepper,so as useTheme};
|
|
1
|
+
import{cn as e,randomId as t,stopPropagationHandler as n}from"./lib/utils.js";import{Accordion as r,AccordionContent as i,AccordionItem as a,AccordionTrigger as o}from"./components/accordion.js";import{Alert as s,AlertAction as c,AlertDescription as l,AlertTitle as u}from"./components/alert.js";import{buttonColorVariants as d}from"./lib/button.js";import{Spinner as f,spinnerVariants as p}from"./components/spinner.js";import{Button as m,buttonVariants as h}from"./components/button.js";import{AlertDialog as g,AlertDialogAction as _,AlertDialogCancel as v,AlertDialogContent as y,AlertDialogDescription as b,AlertDialogFooter as x,AlertDialogHeader as S,AlertDialogMedia as C,AlertDialogOverlay as w,AlertDialogPortal as T,AlertDialogTitle as E,AlertDialogTrigger as D}from"./components/alert-dialog.js";import{Anchor as O,anchorVariants as k}from"./components/anchor.js";import{CHART_COLOR_KEYS as A,ChartContainer as j,ChartLegend as M,ChartLegendContent as N,ChartStyle as P,ChartTooltip as F,ChartTooltipContent as I,DEFAULT_CHART_PALETTE as L,resolveChartColor as R}from"./components/chart.js";import{AreaChart as z}from"./components/area-chart.js";import{Avatar as B,AvatarBadge as V,AvatarFallback as H,AvatarGroup as U,AvatarGroupCount as W,AvatarImage as G}from"./components/avatar.js";import{badgeColorVariants as K}from"./lib/badge.js";import{Badge as q,badgeVariants as J}from"./components/badge.js";import{BarChart as Y}from"./components/bar-chart.js";import{BottomNav as X,BottomNavItem as Z}from"./components/bottom-nav.js";import{Breadcrumb as Q,BreadcrumbEllipsis as $,BreadcrumbItem as ee,BreadcrumbLink as te,BreadcrumbList as ne,BreadcrumbPage as re,BreadcrumbSeparator as ie}from"./components/breadcrumb.js";import{Separator as ae}from"./components/separator.js";import{ButtonGroup as oe,ButtonGroupSeparator as se,ButtonGroupText as ce,buttonGroupVariants as le}from"./components/button-group.js";import{Calendar as ue,CalendarDayButton as de,locale as fe}from"./components/calendar.js";import{Card as pe,CardAction as me,CardContent as he,CardDescription as ge,CardFooter as _e,CardHeader as ve,CardTitle as ye}from"./components/card.js";import{Carousel as be,CarouselContent as xe,CarouselIndicators as Se,CarouselItem as Ce,CarouselNext as we,CarouselPrevious as Te,useCarousel as Ee}from"./components/carousel.js";import{Center as De,centerVariants as Oe}from"./components/center.js";import{selectionControlColorVariants as ke,uiColors as Ae}from"./lib/color.js";import{Label as je}from"./components/label.js";import{Field as Me,FieldContent as Ne,FieldDescription as Pe,FieldError as Fe,FieldGroup as Ie,FieldLabel as Le,FieldLegend as Re,FieldSeparator as ze,FieldSet as Be,FieldTitle as Ve,useFieldControlId as He}from"./components/field.js";import{Checkbox as Ue}from"./components/checkbox.js";import{Code as We}from"./components/code.js";import{Collapsible as Ge,CollapsibleContent as Ke,CollapsibleTrigger as qe}from"./components/collapsible.js";import{Input as Je}from"./components/input.js";import{Textarea as Ye}from"./components/textarea.js";import{InputGroup as Xe,InputGroupAddon as Ze,InputGroupButton as Qe,InputGroupInput as $e,InputGroupText as et,InputGroupTextarea as tt}from"./components/input-group.js";import{Combobox as nt,ComboboxChip as rt,ComboboxChips as it,ComboboxChipsInput as at,ComboboxClear as ot,ComboboxCollection as st,ComboboxContent as ct,ComboboxEmpty as lt,ComboboxGroup as ut,ComboboxInput as dt,ComboboxItem as ft,ComboboxLabel as pt,ComboboxList as mt,ComboboxSeparator as ht,ComboboxTrigger as gt,ComboboxValue as _t,useComboboxAnchor as vt}from"./components/combobox.js";import{Dialog as yt,DialogBody as bt,DialogClose as xt,DialogContent as St,DialogDescription as Ct,DialogFooter as wt,DialogHeader as Tt,DialogOverlay as Et,DialogPortal as Dt,DialogTitle as Ot,DialogTrigger as kt}from"./components/dialog.js";import{Command as At,CommandDialog as jt,CommandEmpty as Mt,CommandGroup as Nt,CommandInput as Pt,CommandItem as Ft,CommandList as It,CommandSeparator as Lt,CommandShortcut as Rt}from"./components/command.js";import{Container as zt,containerVariants as Bt}from"./components/container.js";import{DropdownMenu as Vt,DropdownMenuCheckboxItem as Ht,DropdownMenuContent as Ut,DropdownMenuGroup as Wt,DropdownMenuItem as Gt,DropdownMenuLabel as Kt,DropdownMenuPortal as qt,DropdownMenuRadioGroup as Jt,DropdownMenuRadioItem as Yt,DropdownMenuSeparator as Xt,DropdownMenuShortcut as Zt,DropdownMenuSub as Qt,DropdownMenuSubContent as $t,DropdownMenuSubTrigger as en,DropdownMenuTrigger as tn}from"./components/dropdown-menu.js";import{Select as nn,SelectContent as rn,SelectGroup as an,SelectItem as on,SelectLabel as sn,SelectScrollDownButton as cn,SelectScrollUpButton as ln,SelectSeparator as un,SelectTrigger as dn,SelectValue as fn}from"./components/select.js";import{Table as pn,TableBody as mn,TableCaption as hn,TableCell as gn,TableContainer as _n,TableFooter as vn,TableHead as yn,TableHeader as bn,TableRow as xn,tableVariants as Sn}from"./components/table.js";import{DataTable as Cn,DataTableBody as wn,DataTableColumnHeader as Tn,DataTableHeader as En,DataTablePagination as Dn,DataTableRoot as On,DataTableToolbar as kn,DataTableViewOptions as An,createDataTableSelectColumn as jn,defaultDataTableLabels as Mn,useDataTable as Nn,useDataTableContext as Pn}from"./components/data-table.js";import{Popover as Fn,PopoverAnchor as In,PopoverContent as Ln,PopoverDescription as Rn,PopoverHeader as zn,PopoverTitle as Bn,PopoverTrigger as Vn}from"./components/popover.js";import{DateRangePicker as Hn,DateRangePickerActions as Un,DateRangePickerApply as Wn,DateRangePickerCalendar as Gn,DateRangePickerContent as Kn,DateRangePickerDateFields as qn,DateRangePickerPreset as Jn,DateRangePickerPresets as Yn,DateRangePickerReset as Xn,DateRangePickerTrigger as Zn,DateRangePickerValue as Qn}from"./components/date-range-picker.js";import{PieChart as $n,PieChartBase as er,buildPieConfig as tr}from"./components/pie-chart.js";import{DonutChart as nr}from"./components/donut-chart.js";import{Drawer as rr,DrawerBody as ir,DrawerClose as ar,DrawerContent as or,DrawerDescription as sr,DrawerFooter as cr,DrawerHeader as lr,DrawerOverlay as ur,DrawerPortal as dr,DrawerTitle as fr,DrawerTrigger as pr}from"./components/drawer.js";import{composeRefs as mr,setRef as hr}from"./lib/compose-refs.js";import{Dropzone as gr,DropzoneArea as _r,DropzoneDescription as vr,DropzoneFileList as yr,DropzoneFileListItem as br,DropzoneFileMessage as xr,DropzoneMessage as Sr,DropzoneRemoveFile as Cr,DropzoneRetryFile as wr,DropzoneTrigger as Tr,ErrorCode as Er,InfiniteProgress as Dr,useDropzone as Or}from"./components/dropzone.js";import{Empty as kr,EmptyContent as Ar,EmptyDescription as jr,EmptyHeader as Mr,EmptyMedia as Nr,EmptyTitle as Pr}from"./components/empty.js";import{Flex as Fr,flexVariants as Ir}from"./components/flex.js";import{Grid as Lr,GridItem as Rr}from"./components/grid.js";import{Group as zr,groupVariants as Br}from"./components/group.js";import{Heading as Vr,headingVariants as Hr}from"./components/heading.js";import{HoverCard as Ur,HoverCardContent as Wr,HoverCardTrigger as Gr}from"./components/hover-card.js";import{InputOTP as Kr,InputOTPGroup as qr,InputOTPSeparator as Jr,InputOTPSlot as Yr,REGEXP_ONLY_CHARS as Xr,REGEXP_ONLY_DIGITS as Zr,REGEXP_ONLY_DIGITS_AND_CHARS as Qr}from"./components/input-otp.js";import{Kbd as $r,KbdGroup as ei}from"./components/kbd.js";import{List as ti,ListIcon as ni,ListItem as ri,listVariants as ii}from"./components/list.js";import{a as ai,c as oi,i as si,l as ci,n as li,o as ui,r as di,s as fi,t as pi}from"./logo-B0thHtTS.js";import{Marker as mi,MarkerContent as hi,MarkerIcon as gi,markerVariants as _i}from"./components/marker.js";import{useMask as vi}from"./hooks/use-mask.js";import{MaskInput as yi}from"./components/mask-input.js";import{NativeSelect as bi,NativeSelectOptGroup as xi,NativeSelectOption as Si}from"./components/native-select.js";import{NavigationMenu as Ci,NavigationMenuContent as wi,NavigationMenuIndicator as Ti,NavigationMenuItem as Ei,NavigationMenuLink as Di,NavigationMenuList as Oi,NavigationMenuTrigger as ki,NavigationMenuViewport as Ai,navigationMenuTriggerStyle as ji}from"./components/navigation-menu.js";import{NumberField as Mi,NumberFieldDecrement as Ni,NumberFieldGroup as Pi,NumberFieldIncrement as Fi,NumberFieldInput as Ii,NumberFieldScrubArea as Li}from"./components/number-field.js";import{Pagination as Ri,PaginationContent as zi,PaginationEllipsis as Bi,PaginationItem as Vi,PaginationLink as Hi,PaginationNext as Ui,PaginationPrevious as Wi}from"./components/pagination.js";import{ScrollArea as Gi,ScrollBar as Ki}from"./components/scroll-area.js";import{PhoneInput as qi}from"./components/phone-input.js";import{progressColorVariants as Ji}from"./lib/progress.js";import{Progress as Yi,progressVariants as Xi}from"./components/progress.js";import{RadioGroup as Zi,RadioGroupItem as Qi}from"./components/radio-group.js";import{ResizableHandle as $i,ResizablePanel as ea,ResizablePanelGroup as ta}from"./components/resizable.js";import{RingProgress as na,ringProgressVariants as ra}from"./components/ring-progress.js";import{useIsMobile as ia}from"./hooks/use-mobile.js";import{Skeleton as aa}from"./components/skeleton.js";import{Tooltip as oa,TooltipContent as sa,TooltipProvider as ca,TooltipRoot as la,TooltipTrigger as ua}from"./components/tooltip.js";import{Sidebar as da,SidebarContent as fa,SidebarFooter as pa,SidebarGroup as ma,SidebarGroupAction as ha,SidebarGroupContent as ga,SidebarGroupLabel as _a,SidebarHeader as va,SidebarInput as ya,SidebarInset as ba,SidebarMenu as xa,SidebarMenuAction as Sa,SidebarMenuBadge as Ca,SidebarMenuButton as wa,SidebarMenuItem as Ta,SidebarMenuSkeleton as Ea,SidebarMenuSub as Da,SidebarMenuSubButton as Oa,SidebarMenuSubItem as ka,SidebarProvider as Aa,SidebarRail as ja,SidebarSeparator as Ma,SidebarTrigger as Na,useSidebar as Pa}from"./components/sidebar.js";import{SimpleGrid as Fa}from"./components/simple-grid.js";import{Slider as Ia}from"./components/slider.js";import{Toaster as La,toast as Ra}from"./components/sonner.js";import{Stack as za,stackVariants as Ba}from"./components/stack.js";import{Stepper as Va,StepperContent as Ha,StepperDescription as Ua,StepperIndicator as Wa,StepperItem as Ga,StepperNav as Ka,StepperPanel as qa,StepperSeparator as Ja,StepperTitle as Ya,StepperTrigger as Xa,useStepItem as Za,useStepper as Qa}from"./components/stepper.js";import{Switch as $a}from"./components/switch.js";import{Tabs as eo,TabsContent as to,TabsList as no,TabsTrigger as ro,tabsListVariants as io}from"./components/tabs.js";import{Text as ao,textVariants as oo}from"./components/text.js";import{ModeToggle as so,ThemeProvider as co,useTheme as lo}from"./components/theme.js";import{Timeline as uo,TimelineConnector as fo,TimelineContent as po,TimelineDescription as mo,TimelineEmpty as ho,TimelineHeader as go,TimelineIcon as _o,TimelineItem as vo,TimelineTime as yo,TimelineTitle as bo,timelineVariants as xo}from"./components/timeline.js";import{Toggle as So,toggleVariants as Co}from"./components/toggle.js";import{ToggleGroup as wo,ToggleGroupItem as To}from"./components/toggle-group.js";import{UnstyledButton as Eo}from"./components/unstyled-button.js";import{breakpointValues as Do,useBreakpoint as Oo}from"./hooks/use-breakpoint.js";import{HiddenFrom as ko,VisibleFrom as Ao}from"./components/visibility.js";import{useBreakpointValue as jo}from"./hooks/use-breakpoint-value.js";import{useDisclosure as Mo}from"./hooks/use-disclosure.js";import{useDocumentVisibility as No}from"./hooks/use-document-visibility.js";import{n as Po,t as Fo}from"./use-hotkeys-YDJmGWX6.js";import{useIdle as Io}from"./hooks/use-idle.js";import{useInterval as Lo}from"./hooks/use-interval.js";import{useLocalStorage as Ro}from"./hooks/use-local-storage.js";export{r as Accordion,i as AccordionContent,a as AccordionItem,o as AccordionTrigger,s as Alert,c as AlertAction,l as AlertDescription,g as AlertDialog,_ as AlertDialogAction,v as AlertDialogCancel,y as AlertDialogContent,b as AlertDialogDescription,x as AlertDialogFooter,S as AlertDialogHeader,C as AlertDialogMedia,w as AlertDialogOverlay,T as AlertDialogPortal,E as AlertDialogTitle,D as AlertDialogTrigger,u as AlertTitle,O as Anchor,z as AreaChart,B as Avatar,V as AvatarBadge,H as AvatarFallback,U as AvatarGroup,W as AvatarGroupCount,G as AvatarImage,q as Badge,Y as BarChart,pi as BippiLogo,X as BottomNav,Z as BottomNavItem,Q as Breadcrumb,$ as BreadcrumbEllipsis,ee as BreadcrumbItem,te as BreadcrumbLink,ne as BreadcrumbList,re as BreadcrumbPage,ie as BreadcrumbSeparator,m as Button,oe as ButtonGroup,se as ButtonGroupSeparator,ce as ButtonGroupText,A as CHART_COLOR_KEYS,ue as Calendar,de as CalendarDayButton,pe as Card,me as CardAction,he as CardContent,ge as CardDescription,_e as CardFooter,ve as CardHeader,ye as CardTitle,be as Carousel,xe as CarouselContent,Se as CarouselIndicators,Ce as CarouselItem,we as CarouselNext,Te as CarouselPrevious,De as Center,j as ChartContainer,M as ChartLegend,N as ChartLegendContent,P as ChartStyle,F as ChartTooltip,I as ChartTooltipContent,Ue as Checkbox,We as Code,Ge as Collapsible,Ke as CollapsibleContent,qe as CollapsibleTrigger,nt as Combobox,rt as ComboboxChip,it as ComboboxChips,at as ComboboxChipsInput,ot as ComboboxClear,st as ComboboxCollection,ct as ComboboxContent,lt as ComboboxEmpty,ut as ComboboxGroup,dt as ComboboxInput,ft as ComboboxItem,pt as ComboboxLabel,mt as ComboboxList,ht as ComboboxSeparator,gt as ComboboxTrigger,_t as ComboboxValue,At as Command,jt as CommandDialog,Mt as CommandEmpty,Nt as CommandGroup,Pt as CommandInput,Ft as CommandItem,It as CommandList,Lt as CommandSeparator,Rt as CommandShortcut,zt as Container,L as DEFAULT_CHART_PALETTE,Cn as DataTable,wn as DataTableBody,Tn as DataTableColumnHeader,En as DataTableHeader,Dn as DataTablePagination,On as DataTableRoot,kn as DataTableToolbar,An as DataTableViewOptions,Hn as DateRangePicker,Un as DateRangePickerActions,Wn as DateRangePickerApply,Gn as DateRangePickerCalendar,Kn as DateRangePickerContent,qn as DateRangePickerDateFields,Jn as DateRangePickerPreset,Yn as DateRangePickerPresets,Xn as DateRangePickerReset,Zn as DateRangePickerTrigger,Qn as DateRangePickerValue,yt as Dialog,bt as DialogBody,xt as DialogClose,St as DialogContent,Ct as DialogDescription,wt as DialogFooter,Tt as DialogHeader,Et as DialogOverlay,Dt as DialogPortal,Ot as DialogTitle,kt as DialogTrigger,nr as DonutChart,rr as Drawer,ir as DrawerBody,ar as DrawerClose,or as DrawerContent,sr as DrawerDescription,cr as DrawerFooter,lr as DrawerHeader,ur as DrawerOverlay,dr as DrawerPortal,fr as DrawerTitle,pr as DrawerTrigger,Vt as DropdownMenu,Ht as DropdownMenuCheckboxItem,Ut as DropdownMenuContent,Wt as DropdownMenuGroup,Gt as DropdownMenuItem,Kt as DropdownMenuLabel,qt as DropdownMenuPortal,Jt as DropdownMenuRadioGroup,Yt as DropdownMenuRadioItem,Xt as DropdownMenuSeparator,Zt as DropdownMenuShortcut,Qt as DropdownMenuSub,$t as DropdownMenuSubContent,en as DropdownMenuSubTrigger,tn as DropdownMenuTrigger,gr as Dropzone,_r as DropzoneArea,vr as DropzoneDescription,yr as DropzoneFileList,br as DropzoneFileListItem,xr as DropzoneFileMessage,Sr as DropzoneMessage,Cr as DropzoneRemoveFile,wr as DropzoneRetryFile,Tr as DropzoneTrigger,kr as Empty,Ar as EmptyContent,jr as EmptyDescription,Mr as EmptyHeader,Nr as EmptyMedia,Pr as EmptyTitle,Er as ErrorCode,li as FibonashLogo,Me as Field,Ne as FieldContent,Pe as FieldDescription,Fe as FieldError,Ie as FieldGroup,Le as FieldLabel,Re as FieldLegend,ze as FieldSeparator,Be as FieldSet,Ve as FieldTitle,Fr as Flex,di as GomaxLogo,Lr as Grid,Rr as GridItem,zr as Group,Vr as Heading,ko as HiddenFrom,Ur as HoverCard,Wr as HoverCardContent,Gr as HoverCardTrigger,Dr as InfiniteProgress,Je as Input,Xe as InputGroup,Ze as InputGroupAddon,Qe as InputGroupButton,$e as InputGroupInput,et as InputGroupText,tt as InputGroupTextarea,Kr as InputOTP,qr as InputOTPGroup,Jr as InputOTPSeparator,Yr as InputOTPSlot,si as IntelitrackLogo,$r as Kbd,ei as KbdGroup,ai as KovraLogo,je as Label,ui as LetsLogo,ti as List,ni as ListIcon,ri as ListItem,mi as Marker,hi as MarkerContent,gi as MarkerIcon,yi as MaskInput,fi as MaxLogo,so as ModeToggle,bi as NativeSelect,xi as NativeSelectOptGroup,Si as NativeSelectOption,Ci as NavigationMenu,wi as NavigationMenuContent,Ti as NavigationMenuIndicator,Ei as NavigationMenuItem,Di as NavigationMenuLink,Oi as NavigationMenuList,ki as NavigationMenuTrigger,Ai as NavigationMenuViewport,oi as NeutraLogo,Mi as NumberField,Ni as NumberFieldDecrement,Pi as NumberFieldGroup,Fi as NumberFieldIncrement,Ii as NumberFieldInput,Li as NumberFieldScrubArea,Ri as Pagination,zi as PaginationContent,Bi as PaginationEllipsis,Vi as PaginationItem,Hi as PaginationLink,Ui as PaginationNext,Wi as PaginationPrevious,qi as PhoneInput,$n as PieChart,er as PieChartBase,Fn as Popover,In as PopoverAnchor,Ln as PopoverContent,Rn as PopoverDescription,zn as PopoverHeader,Bn as PopoverTitle,Vn as PopoverTrigger,Yi as Progress,Xr as REGEXP_ONLY_CHARS,Zr as REGEXP_ONLY_DIGITS,Qr as REGEXP_ONLY_DIGITS_AND_CHARS,Zi as RadioGroup,Qi as RadioGroupItem,ci as RdLogo,$i as ResizableHandle,ea as ResizablePanel,ta as ResizablePanelGroup,na as RingProgress,Gi as ScrollArea,Ki as ScrollBar,nn as Select,rn as SelectContent,an as SelectGroup,on as SelectItem,sn as SelectLabel,cn as SelectScrollDownButton,ln as SelectScrollUpButton,un as SelectSeparator,dn as SelectTrigger,fn as SelectValue,ae as Separator,da as Sidebar,fa as SidebarContent,pa as SidebarFooter,ma as SidebarGroup,ha as SidebarGroupAction,ga as SidebarGroupContent,_a as SidebarGroupLabel,va as SidebarHeader,ya as SidebarInput,ba as SidebarInset,xa as SidebarMenu,Sa as SidebarMenuAction,Ca as SidebarMenuBadge,wa as SidebarMenuButton,Ta as SidebarMenuItem,Ea as SidebarMenuSkeleton,Da as SidebarMenuSub,Oa as SidebarMenuSubButton,ka as SidebarMenuSubItem,Aa as SidebarProvider,ja as SidebarRail,Ma as SidebarSeparator,Na as SidebarTrigger,Fa as SimpleGrid,aa as Skeleton,Ia as Slider,f as Spinner,za as Stack,Va as Stepper,Ha as StepperContent,Ua as StepperDescription,Wa as StepperIndicator,Ga as StepperItem,Ka as StepperNav,qa as StepperPanel,Ja as StepperSeparator,Ya as StepperTitle,Xa as StepperTrigger,$a as Switch,pn as Table,mn as TableBody,hn as TableCaption,gn as TableCell,_n as TableContainer,vn as TableFooter,yn as TableHead,bn as TableHeader,xn as TableRow,eo as Tabs,to as TabsContent,no as TabsList,ro as TabsTrigger,ao as Text,Ye as Textarea,co as ThemeProvider,uo as Timeline,fo as TimelineConnector,po as TimelineContent,mo as TimelineDescription,ho as TimelineEmpty,go as TimelineHeader,_o as TimelineIcon,vo as TimelineItem,yo as TimelineTime,bo as TimelineTitle,La as Toaster,So as Toggle,wo as ToggleGroup,To as ToggleGroupItem,oa as Tooltip,sa as TooltipContent,ca as TooltipProvider,la as TooltipRoot,ua as TooltipTrigger,Eo as UnstyledButton,Ao as VisibleFrom,k as anchorVariants,K as badgeColorVariants,J as badgeVariants,Do as breakpointValues,tr as buildPieConfig,d as buttonColorVariants,le as buttonGroupVariants,h as buttonVariants,Oe as centerVariants,e as cn,mr as composeRefs,Bt as containerVariants,jn as createDataTableSelectColumn,Mn as defaultDataTableLabels,Ir as flexVariants,Po as getHotkeyHandler,Br as groupVariants,Hr as headingVariants,ii as listVariants,fe as locale,_i as markerVariants,ji as navigationMenuTriggerStyle,Ji as progressColorVariants,Xi as progressVariants,t as randomId,R as resolveChartColor,ra as ringProgressVariants,ke as selectionControlColorVariants,hr as setRef,p as spinnerVariants,Ba as stackVariants,n as stopPropagationHandler,Sn as tableVariants,io as tabsListVariants,oo as textVariants,xo as timelineVariants,Ra as toast,Co as toggleVariants,Ae as uiColors,Oo as useBreakpoint,jo as useBreakpointValue,Ee as useCarousel,vt as useComboboxAnchor,Nn as useDataTable,Pn as useDataTableContext,Mo as useDisclosure,No as useDocumentVisibility,Or as useDropzone,He as useFieldControlId,Fo as useHotkeys,Io as useIdle,Lo as useInterval,ia as useIsMobile,Ro as useLocalStorage,vi as useMask,Pa as useSidebar,Za as useStepItem,Qa as useStepper,lo as useTheme};
|
|
@@ -214,6 +214,9 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
214
214
|
|
|
215
215
|
## Navigation
|
|
216
216
|
|
|
217
|
+
- `bottom-nav`
|
|
218
|
+
- Exports: `BottomNav`, `BottomNavItem`
|
|
219
|
+
- Notes: fixed, safe-area-aware mobile bottom tab bar (`env(safe-area-inset-bottom)` via the `--spacing-safe-bottom` token). No built-in responsive/breakpoint logic — the consumer decides when it's shown (e.g. `md:hidden`). `BottomNavItem` supports `asChild` for routing links; its active state is fully external via `isActive` (mirrored onto `data-active`/`aria-current="page"`).
|
|
217
220
|
- `breadcrumb`
|
|
218
221
|
- Exports: `Breadcrumb`, `BreadcrumbList`, `BreadcrumbItem`, `BreadcrumbLink`, `BreadcrumbPage`, `BreadcrumbSeparator`, `BreadcrumbEllipsis`
|
|
219
222
|
- `command`
|
|
@@ -225,6 +228,7 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
225
228
|
- Notes: `Pagination` highlights the current page and keeps other links neutral. `Pagination.color` (a `UIColor`, default `primary`) controls only the current page's color. Each `PaginationLink`/`PaginationPrevious`/`PaginationNext` can still pass its own `color`, but `Pagination`'s wins when set.
|
|
226
229
|
- `sidebar`
|
|
227
230
|
- Exports: `Sidebar`, `SidebarContent`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupAction`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarInput`, `SidebarInset`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSkeleton`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarRail`, `SidebarSeparator`, `SidebarTrigger`, `useSidebar`
|
|
231
|
+
- Notes: `SidebarProvider.expandOnHover` (default `false`) reveals a floating preview overlay when hovering or focusing a `collapsible="icon"` sidebar while collapsed — the reserved rail width never changes, only an overlay appears. Clicking `SidebarTrigger`/`SidebarRail` during that preview pins the sidebar open (`setOpen(true)`) instead of toggling blindly. `useSidebar()` exposes `isHoverExpanded` for custom behavior during the preview. The preview's debounce is tunable via `SidebarProvider.hoverExpandOpenDelay`/`hoverExpandCloseDelay` (default `150`/`300` ms).
|
|
228
232
|
- `stepper`
|
|
229
233
|
- Exports: `Stepper`, `StepperNav`, `StepperItem`, `StepperTrigger`, `StepperIndicator`, `StepperSeparator`, `StepperTitle`, `StepperDescription`, `StepperPanel`, `StepperContent`, `useStepper`, `useStepItem`
|
|
230
234
|
- Notes: multi-step progress navigation. `Stepper.orientation: 'horizontal' | 'vertical'` (default `horizontal`); supports controlled (`value` / `onValueChange`) and uncontrolled (`defaultValue`) active step, plus custom per-state `indicators` (`active`, `completed`, `inactive`, `loading`). `StepperItem` accepts `completed`, `disabled`, and `loading`. Arrow-key and Home/End keyboard navigation between triggers is built in.
|
|
@@ -455,7 +455,7 @@ Choose components by intent:
|
|
|
455
455
|
- overlays and floating UI:
|
|
456
456
|
- `Dialog`, `Drawer`, `Popover`, `Tooltip`, `HoverCard`, `AlertDialog`
|
|
457
457
|
- navigation:
|
|
458
|
-
- `Breadcrumb`, `NavigationMenu`, `Pagination`, `Sidebar`, `Tabs`, `DropdownMenu`, `Command`
|
|
458
|
+
- `Breadcrumb`, `NavigationMenu`, `Pagination`, `Sidebar`, `Tabs`, `DropdownMenu`, `Command`, `BottomNav`
|
|
459
459
|
- typography:
|
|
460
460
|
- `Anchor`, `Code`, `Heading`, `List`, `Text`
|
|
461
461
|
- layout and display:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uselets/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
@@ -63,12 +63,12 @@
|
|
|
63
63
|
"@base-ui/react": "1.8.0",
|
|
64
64
|
"@fontsource-variable/inter": "5.3.0",
|
|
65
65
|
"@react-input/mask": "2.0.4",
|
|
66
|
-
"@tabler/icons-react": "3.
|
|
66
|
+
"@tabler/icons-react": "3.48.0",
|
|
67
67
|
"@tanstack/react-table": "9.2.4",
|
|
68
|
-
"@uselets/tokens": "0.
|
|
68
|
+
"@uselets/tokens": "0.2.0",
|
|
69
69
|
"class-variance-authority": "0.7.1",
|
|
70
70
|
"cmdk": "1.1.1",
|
|
71
|
-
"cn": "0.
|
|
71
|
+
"cn": "0.4.0",
|
|
72
72
|
"commander": "15.0.0",
|
|
73
73
|
"date-fns": "4.4.0",
|
|
74
74
|
"embla-carousel-react": "8.6.0",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"react-day-picker": "10.0.1",
|
|
79
79
|
"react-dropzone": "20.1.2",
|
|
80
80
|
"react-phone-number-input": "3.4.18",
|
|
81
|
-
"react-resizable-panels": "4.
|
|
81
|
+
"react-resizable-panels": "4.13.2",
|
|
82
82
|
"recharts": "3.10.1",
|
|
83
83
|
"shadcn": "4.21.0",
|
|
84
84
|
"sonner": "2.0.8"
|
|
@@ -93,11 +93,11 @@
|
|
|
93
93
|
"@testing-library/react": "16.3.3",
|
|
94
94
|
"@vitest/coverage-v8": "5.0.1",
|
|
95
95
|
"@tsdown/css": "0.23.0",
|
|
96
|
-
"@turbo/gen": "2.
|
|
96
|
+
"@turbo/gen": "2.11.3",
|
|
97
97
|
"@types/node": "26.6.2",
|
|
98
98
|
"@types/react": "19.3.0",
|
|
99
99
|
"@types/react-dom": "19.3.0",
|
|
100
|
-
"jsdom": "30.
|
|
100
|
+
"jsdom": "30.1.1",
|
|
101
101
|
"tailwindcss": "4.3.3",
|
|
102
102
|
"tsdown": "0.23.0",
|
|
103
103
|
"typescript": "7.0.2",
|
|
@@ -214,6 +214,9 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
214
214
|
|
|
215
215
|
## Navigation
|
|
216
216
|
|
|
217
|
+
- `bottom-nav`
|
|
218
|
+
- Exports: `BottomNav`, `BottomNavItem`
|
|
219
|
+
- Notes: fixed, safe-area-aware mobile bottom tab bar (`env(safe-area-inset-bottom)` via the `--spacing-safe-bottom` token). No built-in responsive/breakpoint logic — the consumer decides when it's shown (e.g. `md:hidden`). `BottomNavItem` supports `asChild` for routing links; its active state is fully external via `isActive` (mirrored onto `data-active`/`aria-current="page"`).
|
|
217
220
|
- `breadcrumb`
|
|
218
221
|
- Exports: `Breadcrumb`, `BreadcrumbList`, `BreadcrumbItem`, `BreadcrumbLink`, `BreadcrumbPage`, `BreadcrumbSeparator`, `BreadcrumbEllipsis`
|
|
219
222
|
- `command`
|
|
@@ -225,6 +228,7 @@ Unless noted otherwise, each module also exports its public `*Props` types from
|
|
|
225
228
|
- Notes: `Pagination` highlights the current page and keeps other links neutral. `Pagination.color` (a `UIColor`, default `primary`) controls only the current page's color. Each `PaginationLink`/`PaginationPrevious`/`PaginationNext` can still pass its own `color`, but `Pagination`'s wins when set.
|
|
226
229
|
- `sidebar`
|
|
227
230
|
- Exports: `Sidebar`, `SidebarContent`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupAction`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarInput`, `SidebarInset`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSkeleton`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarRail`, `SidebarSeparator`, `SidebarTrigger`, `useSidebar`
|
|
231
|
+
- Notes: `SidebarProvider.expandOnHover` (default `false`) reveals a floating preview overlay when hovering or focusing a `collapsible="icon"` sidebar while collapsed — the reserved rail width never changes, only an overlay appears. Clicking `SidebarTrigger`/`SidebarRail` during that preview pins the sidebar open (`setOpen(true)`) instead of toggling blindly. `useSidebar()` exposes `isHoverExpanded` for custom behavior during the preview. The preview's debounce is tunable via `SidebarProvider.hoverExpandOpenDelay`/`hoverExpandCloseDelay` (default `150`/`300` ms).
|
|
228
232
|
- `stepper`
|
|
229
233
|
- Exports: `Stepper`, `StepperNav`, `StepperItem`, `StepperTrigger`, `StepperIndicator`, `StepperSeparator`, `StepperTitle`, `StepperDescription`, `StepperPanel`, `StepperContent`, `useStepper`, `useStepItem`
|
|
230
234
|
- Notes: multi-step progress navigation. `Stepper.orientation: 'horizontal' | 'vertical'` (default `horizontal`); supports controlled (`value` / `onValueChange`) and uncontrolled (`defaultValue`) active step, plus custom per-state `indicators` (`active`, `completed`, `inactive`, `loading`). `StepperItem` accepts `completed`, `disabled`, and `loading`. Arrow-key and Home/End keyboard navigation between triggers is built in.
|
|
@@ -455,7 +455,7 @@ Choose components by intent:
|
|
|
455
455
|
- overlays and floating UI:
|
|
456
456
|
- `Dialog`, `Drawer`, `Popover`, `Tooltip`, `HoverCard`, `AlertDialog`
|
|
457
457
|
- navigation:
|
|
458
|
-
- `Breadcrumb`, `NavigationMenu`, `Pagination`, `Sidebar`, `Tabs`, `DropdownMenu`, `Command`
|
|
458
|
+
- `Breadcrumb`, `NavigationMenu`, `Pagination`, `Sidebar`, `Tabs`, `DropdownMenu`, `Command`, `BottomNav`
|
|
459
459
|
- typography:
|
|
460
460
|
- `Anchor`, `Code`, `Heading`, `List`, `Text`
|
|
461
461
|
- layout and display:
|