@gbmtech/aurora-ui 0.3.43 → 0.3.44

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.
Files changed (151) hide show
  1. package/dist/cjs/components/app-layout/app-layout-breadcrumb.cjs.map +1 -1
  2. package/dist/cjs/components/app-layout/app-layout-header.cjs +1 -1
  3. package/dist/cjs/components/app-layout/app-layout-header.cjs.map +1 -1
  4. package/dist/cjs/components/app-layout/app-layout-provider.cjs +1 -1
  5. package/dist/cjs/components/app-layout/app-layout-provider.cjs.map +1 -1
  6. package/dist/cjs/components/app-layout/app-layout-provider.d.ts +1 -1
  7. package/dist/cjs/components/app-layout/app-layout-provider.d.ts.map +1 -1
  8. package/dist/cjs/components/app-layout/index.cjs +1 -1
  9. package/dist/cjs/components/app-layout/index.cjs.map +1 -1
  10. package/dist/cjs/components/app-layout/index.d.ts +1 -0
  11. package/dist/cjs/components/app-layout/index.d.ts.map +1 -1
  12. package/dist/cjs/components/app-layout/sidebar/app-sidebar.cjs +3 -0
  13. package/dist/cjs/components/app-layout/sidebar/app-sidebar.cjs.map +1 -0
  14. package/dist/{esm/components → cjs/components/app-layout}/sidebar/app-sidebar.d.ts +1 -1
  15. package/dist/cjs/components/app-layout/sidebar/app-sidebar.d.ts.map +1 -0
  16. package/dist/cjs/components/app-layout/sidebar/index.cjs +2 -0
  17. package/dist/cjs/components/app-layout/sidebar/index.cjs.map +1 -0
  18. package/dist/cjs/components/app-layout/sidebar/index.d.ts.map +1 -0
  19. package/dist/cjs/components/app-layout/sidebar/intl/messages.cjs.map +1 -0
  20. package/dist/cjs/components/app-layout/sidebar/intl/messages.d.ts.map +1 -0
  21. package/dist/cjs/components/app-layout/sidebar/logo.cjs.map +1 -0
  22. package/dist/cjs/components/app-layout/sidebar/logo.d.ts.map +1 -0
  23. package/dist/cjs/components/app-layout/sidebar/nav-modules.cjs +3 -0
  24. package/dist/cjs/components/app-layout/sidebar/nav-modules.cjs.map +1 -0
  25. package/dist/cjs/components/app-layout/sidebar/nav-modules.d.ts.map +1 -0
  26. package/dist/cjs/components/app-layout/sidebar/nav-sub-item.cjs.map +1 -0
  27. package/dist/{esm/components → cjs/components/app-layout}/sidebar/nav-sub-item.d.ts +1 -1
  28. package/dist/cjs/components/app-layout/sidebar/nav-sub-item.d.ts.map +1 -0
  29. package/dist/cjs/components/app-layout/sidebar/nav-user.cjs +3 -0
  30. package/dist/cjs/components/app-layout/sidebar/nav-user.cjs.map +1 -0
  31. package/dist/cjs/components/app-layout/sidebar/nav-user.d.ts.map +1 -0
  32. package/dist/cjs/components/{sidebar → app-layout/sidebar}/sidebar-icons.cjs +1 -1
  33. package/dist/cjs/components/app-layout/sidebar/sidebar-icons.cjs.map +1 -0
  34. package/dist/cjs/components/app-layout/sidebar/sidebar-icons.d.ts.map +1 -0
  35. package/dist/cjs/components/app-layout/sidebar/sidebar.cjs +3 -0
  36. package/dist/cjs/components/app-layout/sidebar/sidebar.cjs.map +1 -0
  37. package/dist/cjs/components/{sidebar → app-layout/sidebar}/sidebar.d.ts +5 -5
  38. package/dist/cjs/components/app-layout/sidebar/sidebar.d.ts.map +1 -0
  39. package/dist/cjs/components/data-table/index.cjs +1 -1
  40. package/dist/cjs/components/data-table/index.cjs.map +1 -1
  41. package/dist/cjs/index.cjs +1 -1
  42. package/dist/cjs/index.cjs.map +1 -1
  43. package/dist/cjs/index.d.ts +0 -1
  44. package/dist/cjs/index.d.ts.map +1 -1
  45. package/dist/esm/components/app-layout/app-layout-breadcrumb.js.map +1 -1
  46. package/dist/esm/components/app-layout/app-layout-header.js +1 -1
  47. package/dist/esm/components/app-layout/app-layout-header.js.map +1 -1
  48. package/dist/esm/components/app-layout/app-layout-provider.d.ts +1 -1
  49. package/dist/esm/components/app-layout/app-layout-provider.d.ts.map +1 -1
  50. package/dist/esm/components/app-layout/app-layout-provider.js +1 -1
  51. package/dist/esm/components/app-layout/app-layout-provider.js.map +1 -1
  52. package/dist/esm/components/app-layout/index.d.ts +1 -0
  53. package/dist/esm/components/app-layout/index.d.ts.map +1 -1
  54. package/dist/esm/components/app-layout/index.js +1 -1
  55. package/dist/{cjs/components → esm/components/app-layout}/sidebar/app-sidebar.d.ts +1 -1
  56. package/dist/esm/components/app-layout/sidebar/app-sidebar.d.ts.map +1 -0
  57. package/dist/esm/components/app-layout/sidebar/app-sidebar.js +3 -0
  58. package/dist/esm/components/app-layout/sidebar/app-sidebar.js.map +1 -0
  59. package/dist/esm/components/app-layout/sidebar/index.d.ts.map +1 -0
  60. package/dist/esm/components/app-layout/sidebar/index.js +2 -0
  61. package/dist/esm/components/app-layout/sidebar/index.js.map +1 -0
  62. package/dist/esm/components/app-layout/sidebar/intl/messages.d.ts.map +1 -0
  63. package/dist/esm/components/app-layout/sidebar/intl/messages.js.map +1 -0
  64. package/dist/esm/components/app-layout/sidebar/logo.d.ts.map +1 -0
  65. package/dist/esm/components/app-layout/sidebar/logo.js.map +1 -0
  66. package/dist/esm/components/app-layout/sidebar/nav-modules.d.ts.map +1 -0
  67. package/dist/esm/components/app-layout/sidebar/nav-modules.js +3 -0
  68. package/dist/esm/components/app-layout/sidebar/nav-modules.js.map +1 -0
  69. package/dist/{cjs/components → esm/components/app-layout}/sidebar/nav-sub-item.d.ts +1 -1
  70. package/dist/esm/components/app-layout/sidebar/nav-sub-item.d.ts.map +1 -0
  71. package/dist/esm/components/app-layout/sidebar/nav-sub-item.js.map +1 -0
  72. package/dist/esm/components/app-layout/sidebar/nav-user.d.ts.map +1 -0
  73. package/dist/esm/components/app-layout/sidebar/nav-user.js +3 -0
  74. package/dist/esm/components/app-layout/sidebar/nav-user.js.map +1 -0
  75. package/dist/esm/components/app-layout/sidebar/sidebar-icons.d.ts.map +1 -0
  76. package/dist/esm/components/app-layout/sidebar/sidebar-icons.js +3 -0
  77. package/dist/esm/components/app-layout/sidebar/sidebar-icons.js.map +1 -0
  78. package/dist/esm/components/{sidebar → app-layout/sidebar}/sidebar.d.ts +5 -5
  79. package/dist/esm/components/app-layout/sidebar/sidebar.d.ts.map +1 -0
  80. package/dist/esm/components/app-layout/sidebar/sidebar.js +3 -0
  81. package/dist/esm/components/app-layout/sidebar/sidebar.js.map +1 -0
  82. package/dist/esm/components/data-table/index.js +1 -1
  83. package/dist/esm/index.d.ts +0 -1
  84. package/dist/esm/index.d.ts.map +1 -1
  85. package/dist/esm/index.js +1 -1
  86. package/package.json +1 -1
  87. package/dist/cjs/components/sidebar/app-sidebar.cjs +0 -3
  88. package/dist/cjs/components/sidebar/app-sidebar.cjs.map +0 -1
  89. package/dist/cjs/components/sidebar/app-sidebar.d.ts.map +0 -1
  90. package/dist/cjs/components/sidebar/index.cjs +0 -2
  91. package/dist/cjs/components/sidebar/index.cjs.map +0 -1
  92. package/dist/cjs/components/sidebar/index.d.ts.map +0 -1
  93. package/dist/cjs/components/sidebar/intl/messages.cjs.map +0 -1
  94. package/dist/cjs/components/sidebar/intl/messages.d.ts.map +0 -1
  95. package/dist/cjs/components/sidebar/logo.cjs.map +0 -1
  96. package/dist/cjs/components/sidebar/logo.d.ts.map +0 -1
  97. package/dist/cjs/components/sidebar/nav-modules.cjs +0 -3
  98. package/dist/cjs/components/sidebar/nav-modules.cjs.map +0 -1
  99. package/dist/cjs/components/sidebar/nav-modules.d.ts.map +0 -1
  100. package/dist/cjs/components/sidebar/nav-sub-item.cjs.map +0 -1
  101. package/dist/cjs/components/sidebar/nav-sub-item.d.ts.map +0 -1
  102. package/dist/cjs/components/sidebar/nav-user.cjs +0 -3
  103. package/dist/cjs/components/sidebar/nav-user.cjs.map +0 -1
  104. package/dist/cjs/components/sidebar/nav-user.d.ts.map +0 -1
  105. package/dist/cjs/components/sidebar/sidebar-icons.cjs.map +0 -1
  106. package/dist/cjs/components/sidebar/sidebar-icons.d.ts.map +0 -1
  107. package/dist/cjs/components/sidebar/sidebar.cjs +0 -3
  108. package/dist/cjs/components/sidebar/sidebar.cjs.map +0 -1
  109. package/dist/cjs/components/sidebar/sidebar.d.ts.map +0 -1
  110. package/dist/esm/components/sidebar/app-sidebar.d.ts.map +0 -1
  111. package/dist/esm/components/sidebar/app-sidebar.js +0 -3
  112. package/dist/esm/components/sidebar/app-sidebar.js.map +0 -1
  113. package/dist/esm/components/sidebar/index.d.ts.map +0 -1
  114. package/dist/esm/components/sidebar/index.js +0 -2
  115. package/dist/esm/components/sidebar/index.js.map +0 -1
  116. package/dist/esm/components/sidebar/intl/messages.d.ts.map +0 -1
  117. package/dist/esm/components/sidebar/intl/messages.js.map +0 -1
  118. package/dist/esm/components/sidebar/logo.d.ts.map +0 -1
  119. package/dist/esm/components/sidebar/logo.js.map +0 -1
  120. package/dist/esm/components/sidebar/nav-modules.d.ts.map +0 -1
  121. package/dist/esm/components/sidebar/nav-modules.js +0 -3
  122. package/dist/esm/components/sidebar/nav-modules.js.map +0 -1
  123. package/dist/esm/components/sidebar/nav-sub-item.d.ts.map +0 -1
  124. package/dist/esm/components/sidebar/nav-sub-item.js.map +0 -1
  125. package/dist/esm/components/sidebar/nav-user.d.ts.map +0 -1
  126. package/dist/esm/components/sidebar/nav-user.js +0 -3
  127. package/dist/esm/components/sidebar/nav-user.js.map +0 -1
  128. package/dist/esm/components/sidebar/sidebar-icons.d.ts.map +0 -1
  129. package/dist/esm/components/sidebar/sidebar-icons.js +0 -3
  130. package/dist/esm/components/sidebar/sidebar-icons.js.map +0 -1
  131. package/dist/esm/components/sidebar/sidebar.d.ts.map +0 -1
  132. package/dist/esm/components/sidebar/sidebar.js +0 -3
  133. package/dist/esm/components/sidebar/sidebar.js.map +0 -1
  134. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/index.d.ts +0 -0
  135. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/intl/messages.cjs +0 -0
  136. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/intl/messages.d.ts +0 -0
  137. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/logo.cjs +0 -0
  138. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/logo.d.ts +0 -0
  139. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/nav-modules.d.ts +0 -0
  140. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/nav-sub-item.cjs +0 -0
  141. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/nav-user.d.ts +0 -0
  142. /package/dist/cjs/components/{sidebar → app-layout/sidebar}/sidebar-icons.d.ts +0 -0
  143. /package/dist/esm/components/{sidebar → app-layout/sidebar}/index.d.ts +0 -0
  144. /package/dist/esm/components/{sidebar → app-layout/sidebar}/intl/messages.d.ts +0 -0
  145. /package/dist/esm/components/{sidebar → app-layout/sidebar}/intl/messages.js +0 -0
  146. /package/dist/esm/components/{sidebar → app-layout/sidebar}/logo.d.ts +0 -0
  147. /package/dist/esm/components/{sidebar → app-layout/sidebar}/logo.js +0 -0
  148. /package/dist/esm/components/{sidebar → app-layout/sidebar}/nav-modules.d.ts +0 -0
  149. /package/dist/esm/components/{sidebar → app-layout/sidebar}/nav-sub-item.js +0 -0
  150. /package/dist/esm/components/{sidebar → app-layout/sidebar}/nav-user.d.ts +0 -0
  151. /package/dist/esm/components/{sidebar → app-layout/sidebar}/sidebar-icons.d.ts +0 -0
@@ -1,3 +0,0 @@
1
- 'use client'
2
- import*as e from"react/jsx-runtime";import*as a from"react";import*as t from"@radix-ui/react-context";import*as r from"@radix-ui/react-slot";import*as i from"lucide-react";import*as s from"../button.js";import*as d from"../separator.js";import*as o from"../sheet/index.js";import*as n from"../skeleton.js";import*as l from"../tooltip.js";import*as c from"../../hooks/use-mobile.js";import*as u from"../../lib/index.js";let[b,p]=(0,t.createContext)("SidebarProvider");function f({defaultOpen:t=!0,open:r,onOpenChange:i,className:s,style:d,user:o,modules:n,locale:p="pt-br",children:f,...g}){let m=(0,c.useIsMobile)(),[h,x]=(0,a.useState)(!1),[v,w]=(0,a.useState)(t),j=r??v,S=(0,a.useCallback)(e=>{let a="function"==typeof e?e(j):e;i?i(a):w(a),document.cookie=`gbm_sidebar_open=${a}; path=/; max-age=604800`},[i,j]),y=(0,a.useCallback)(()=>{m?x(e=>!e):S(e=>!e)},[m,S,x]);(0,a.useEffect)(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[y]);let N=j?"expanded":"collapsed";return(0,e.jsx)(b,{isMobile:m,open:j,openMobile:h,setOpen:S,setOpenMobile:x,state:N,toggleSidebar:y,user:o,modules:n,locale:p,children:(0,e.jsx)(l.TooltipProvider,{delayDuration:0,children:(0,e.jsx)("div",{className:(0,u.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"4.5rem",...d},...g,children:f})})})}function g({side:a="left",variant:t="sidebar",collapsible:r="icon",className:i,children:s,...d}){let{isMobile:n,state:l,openMobile:c,setOpenMobile:b}=p("Sidebar");return"none"===r?(0,e.jsx)("div",{"data-slot":"sidebar",className:(0,u.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),...d,children:s}):n?(0,e.jsx)(o.Sheet,{open:c,onOpenChange:b,...d,children:(0,e.jsxs)(o.SheetContent,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,e.jsxs)(o.SheetHeader,{className:"sr-only",children:[(0,e.jsx)(o.SheetTitle,{children:"Sidebar"}),(0,e.jsx)(o.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,e.jsx)("div",{className:"flex h-full w-full flex-col",children:s})]})}):(0,e.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":l,"data-collapsible":"collapsed"===l?r:"","data-variant":t,"data-side":a,"data-slot":"sidebar",children:[(0,e.jsx)("div",{"data-slot":"sidebar-gap",className:(0,u.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,e.jsx)("div",{"data-slot":"sidebar-container",className:(0,u.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===a?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...d,children:(0,e.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:s})})]})}function m({className:a,onClick:t,...r}){let{toggleSidebar:d}=p("SidebarTrigger");return(0,e.jsxs)(s.Button,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:(0,u.cn)("size-7",a),onClick:e=>{t?.(e),d()},...r,children:[(0,e.jsx)(i.PanelLeftIcon,{}),(0,e.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function h({className:a,...t}){let{toggleSidebar:r}=p("SidebarRail");return(0,e.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:r,title:"Toggle Sidebar",className:(0,u.cn)("-translate-x-1/2 group-data-[side=left]:-right-4 absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[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 hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:after:left-full","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...t})}function x({className:a,...t}){return(0,e.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,u.cn)("flex flex-col gap-2 p-5 group-data-[collapsible=icon]:p-4",a),...t})}function v({className:a,...t}){return(0,e.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,u.cn)("flex flex-col gap-2 p-5 group-data-[collapsible=icon]:p-4",a),...t})}function w({className:a,...t}){return(0,e.jsx)(d.Separator,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,u.cn)("mx-2 w-auto bg-sidebar-border",a),...t})}function j({className:a,...t}){return(0,e.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,u.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto group-data-[collapsible=icon]:overflow-hidden",a),...t})}function S({className:a,...t}){return(0,e.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,u.cn)("relative flex w-full min-w-0 flex-col px-5 group-data-[collapsible=icon]:p-4",a),...t})}function y({className:a,asChild:t=!1,...i}){let s=t?r.Slot:"div";return(0,e.jsx)(s,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,u.cn)("flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...i})}function N({className:a,...t}){return(0,e.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,u.cn)("flex w-full min-w-0 flex-col gap-1",a),...t})}function k({className:a,...t}){return(0,e.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,u.cn)("group/menu-item relative",a),...t})}let z=(0,u.tv)({base:"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:p-2.5! group-data-[collapsible=icon]:gap-3 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:[&>svg]:size-5",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:{default:"text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function M({asChild:a=!1,isActive:t=!1,variant:i="default",size:s="default",tooltip:d,className:o,...n}){let c=a?r.Slot:"button",{isMobile:b,state:f}=p("SidebarMenuButton"),g=(0,e.jsx)(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":s,"data-active":t,className:(0,u.cn)(z({variant:i,size:s}),o),...n});return d?("string"==typeof d&&(d={children:d}),(0,e.jsxs)(l.Tooltip,{children:[(0,e.jsx)(l.TooltipTrigger,{asChild:!0,children:g}),(0,e.jsx)(l.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==f||b,...d})]})):g}function _({className:a,asChild:t=!1,showOnHover:i=!1,...s}){let d=t?r.Slot:"button";return(0,e.jsx)(d,{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:(0,u.cn)("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:-inset-2 after:absolute md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",i&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",a),...s})}function C({className:t,showIcon:r=!1,...i}){let s=(0,a.useMemo)(()=>`${Math.floor(40*Math.random())+50}%`,[]);return(0,e.jsxs)("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:(0,u.cn)("flex h-8 items-center gap-2 rounded-md px-2",t),...i,children:[r&&(0,e.jsx)(n.Skeleton,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,e.jsx)(n.Skeleton,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":s}})]})}function T({className:a,...t}){return(0,e.jsx)("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:(0,u.cn)("ml-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-sidebar-border border-l py-0.5 pl-2.5","group-data-[collapsible=icon]:hidden",a),...t})}function I({className:a,...t}){return(0,e.jsx)("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:(0,u.cn)("group/menu-sub-item relative",a),...t})}export{g as Sidebar,j as SidebarContent,v as SidebarFooter,S as SidebarGroup,y as SidebarGroupLabel,x as SidebarHeader,N as SidebarMenu,_ as SidebarMenuAction,M as SidebarMenuButton,k as SidebarMenuItem,C as SidebarMenuSkeleton,T as SidebarMenuSub,I as SidebarMenuSubItem,f as SidebarProvider,h as SidebarRail,w as SidebarSeparator,m as SidebarTrigger,p as useSidebar};
3
- //# sourceMappingURL=sidebar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components\\sidebar\\sidebar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/sidebar/sidebar.tsx"],"sourcesContent":["\r\n\r\nimport {\r\n CSSProperties,\r\n ComponentProps,\r\n JSX,\r\n useCallback,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n} from 'react'\r\n\r\nimport { createContext } from '@radix-ui/react-context'\r\nimport { Slot } from '@radix-ui/react-slot'\r\nimport { PanelLeftIcon } from 'lucide-react'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Separator } from '@/components/separator'\r\nimport {\r\n Sheet,\r\n SheetContent,\r\n SheetDescription,\r\n SheetHeader,\r\n SheetTitle,\r\n} from '@/components/sheet'\r\nimport { Skeleton } from '@/components/skeleton'\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipProvider,\r\n TooltipTrigger,\r\n} from '@/components/tooltip'\r\nimport { useIsMobile } from '@/hooks/use-mobile'\r\nimport { VariantProps, cn, tv } from '@/lib'\r\nimport { Locale, Module, User } from '@/types'\r\n\r\nconst SIDEBAR_COOKIE_NAME = 'gbm_sidebar_open'\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\r\nconst SIDEBAR_WIDTH = '16rem'\r\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\r\nconst SIDEBAR_WIDTH_ICON = '4.5rem'\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\r\n\r\ntype SidebarContextValue = {\r\n state: 'expanded' | 'collapsed'\r\n open: boolean\r\n setOpen: (open: boolean) => void\r\n openMobile: boolean\r\n setOpenMobile: (open: boolean) => void\r\n isMobile: boolean\r\n toggleSidebar: () => void\r\n user: User\r\n modules: Module[]\r\n locale: Locale\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Context: SidebarProvider\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst SIDEBAR_PROVIDER_NAME = 'SidebarProvider'\r\n\r\nconst [SidebarContextProvider, useSidebar] = createContext<SidebarContextValue>(\r\n SIDEBAR_PROVIDER_NAME\r\n)\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarProvider\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarProvider({\r\n defaultOpen = true,\r\n open: openProp,\r\n onOpenChange: setOpenProp,\r\n className,\r\n style,\r\n user,\r\n modules,\r\n locale = 'pt-br',\r\n children,\r\n ...props\r\n}: ComponentProps<'div'> & {\r\n defaultOpen?: boolean\r\n open?: boolean\r\n onOpenChange?: (open: boolean) => void\r\n user: User\r\n modules: Module[]\r\n locale?: Locale\r\n}): JSX.Element {\r\n const isMobile = useIsMobile()\r\n const [openMobile, setOpenMobile] = useState(false)\r\n\r\n // This is the internal state of the sidebar.\r\n // We use openProp and setOpenProp for control from outside the component.\r\n const [isOpen, setIsOpen] = useState(defaultOpen)\r\n const open = openProp ?? isOpen\r\n const setOpen = useCallback(\r\n (value: ((value: boolean) => boolean) | boolean) => {\r\n const openState = typeof value === 'function' ? value(open) : value\r\n\r\n if (setOpenProp) {\r\n setOpenProp(openState)\r\n } else {\r\n setIsOpen(openState)\r\n }\r\n\r\n // This sets the cookie to keep the sidebar state.\r\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\r\n },\r\n [setOpenProp, open]\r\n )\r\n\r\n // Helper to toggle the sidebar.\r\n const toggleSidebar = useCallback(() => {\r\n if (isMobile) {\r\n setOpenMobile(currentValue => !currentValue)\r\n } else {\r\n setOpen(currentValue => !currentValue)\r\n }\r\n }, [isMobile, setOpen, setOpenMobile])\r\n\r\n // Adds a keyboard shortcut to toggle the sidebar.\r\n useEffect(() => {\r\n const handleKeyDown: (event: KeyboardEvent) => void = (\r\n event: KeyboardEvent\r\n ) => {\r\n if (\r\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\r\n (event.metaKey || event.ctrlKey)\r\n ) {\r\n event.preventDefault()\r\n toggleSidebar()\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', handleKeyDown)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', handleKeyDown)\r\n }\r\n }, [toggleSidebar])\r\n\r\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n // This makes it easier to style the sidebar with Tailwind classes.\r\n const state = open ? 'expanded' : 'collapsed'\r\n\r\n return (\r\n <SidebarContextProvider\r\n isMobile={isMobile}\r\n open={open}\r\n openMobile={openMobile}\r\n setOpen={setOpen}\r\n setOpenMobile={setOpenMobile}\r\n state={state}\r\n toggleSidebar={toggleSidebar}\r\n user={user}\r\n modules={modules}\r\n locale={locale}\r\n >\r\n <TooltipProvider delayDuration={0}>\r\n <div\r\n className={cn(\r\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\r\n className\r\n )}\r\n data-slot=\"sidebar-wrapper\"\r\n style={\r\n {\r\n '--sidebar-width': SIDEBAR_WIDTH,\r\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\r\n ...style,\r\n } as CSSProperties\r\n }\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </TooltipProvider>\r\n </SidebarContextProvider>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Sidebar\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst SIDEBAR_NAME = 'Sidebar'\r\n\r\nfunction Sidebar({\r\n side = 'left',\r\n variant = 'sidebar',\r\n collapsible = 'icon',\r\n className,\r\n children,\r\n ...props\r\n}: ComponentProps<'div'> & {\r\n side?: 'left' | 'right'\r\n variant?: 'sidebar' | 'floating' | 'inset'\r\n collapsible?: 'offcanvas' | 'icon' | 'none'\r\n}) {\r\n const { isMobile, state, openMobile, setOpenMobile } =\r\n useSidebar(SIDEBAR_NAME)\r\n\r\n if (collapsible === 'none') {\r\n return (\r\n <div\r\n data-slot=\"sidebar\"\r\n className={cn(\r\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n )\r\n }\r\n\r\n if (isMobile) {\r\n return (\r\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n <SheetContent\r\n data-sidebar=\"sidebar\"\r\n data-slot=\"sidebar\"\r\n data-mobile=\"true\"\r\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\r\n style={\r\n {\r\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\r\n } as CSSProperties\r\n }\r\n side={side}\r\n >\r\n <SheetHeader className=\"sr-only\">\r\n <SheetTitle>Sidebar</SheetTitle>\r\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\r\n </SheetHeader>\r\n <div className=\"flex h-full w-full flex-col\">{children}</div>\r\n </SheetContent>\r\n </Sheet>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className=\"group peer hidden text-sidebar-foreground md:block\"\r\n data-state={state}\r\n data-collapsible={state === 'collapsed' ? collapsible : ''}\r\n data-variant={variant}\r\n data-side={side}\r\n data-slot=\"sidebar\"\r\n >\r\n {/* This is what handles the sidebar gap on desktop */}\r\n <div\r\n data-slot=\"sidebar-gap\"\r\n className={cn(\r\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\r\n 'group-data-[collapsible=offcanvas]:w-0',\r\n 'group-data-[side=right]:rotate-180',\r\n variant === 'floating' || variant === 'inset'\r\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\r\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\r\n )}\r\n />\r\n <div\r\n data-slot=\"sidebar-container\"\r\n className={cn(\r\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\r\n side === 'left'\r\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\r\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\r\n // Adjust the padding for floating and inset variants.\r\n variant === 'floating' || variant === 'inset'\r\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\r\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n data-sidebar=\"sidebar\"\r\n data-slot=\"sidebar-inner\"\r\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarTrigger\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst SIDEBAR_TRIGGER_NAME = 'SidebarTrigger'\r\n\r\nfunction SidebarTrigger({\r\n className,\r\n onClick,\r\n ...props\r\n}: ComponentProps<typeof Button>) {\r\n const { toggleSidebar } = useSidebar(SIDEBAR_TRIGGER_NAME)\r\n\r\n return (\r\n <Button\r\n data-sidebar=\"trigger\"\r\n data-slot=\"sidebar-trigger\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={cn('size-7', className)}\r\n onClick={event => {\r\n onClick?.(event)\r\n toggleSidebar()\r\n }}\r\n {...props}\r\n >\r\n <PanelLeftIcon />\r\n <span className=\"sr-only\">Toggle Sidebar</span>\r\n </Button>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarRail\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst SIDEBAR_RAIL_NAME = 'SidebarRail'\r\n\r\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\r\n const { toggleSidebar } = useSidebar(SIDEBAR_RAIL_NAME)\r\n\r\n return (\r\n <button\r\n data-sidebar=\"rail\"\r\n data-slot=\"sidebar-rail\"\r\n aria-label=\"Toggle Sidebar\"\r\n tabIndex={-1}\r\n onClick={toggleSidebar}\r\n title=\"Toggle Sidebar\"\r\n className={cn(\r\n '-translate-x-1/2 group-data-[side=left]:-right-4 absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=right]:left-0 sm:flex',\r\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\r\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\r\n 'group-data-[collapsible=offcanvas]:translate-x-0 hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:after:left-full',\r\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\r\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarHeader\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarHeader({ className, ...props }: ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-header\"\r\n data-sidebar=\"header\"\r\n className={cn(\r\n 'flex flex-col gap-2 p-5 group-data-[collapsible=icon]:p-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarFooter\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarFooter({ className, ...props }: ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-footer\"\r\n data-sidebar=\"footer\"\r\n className={cn(\r\n 'flex flex-col gap-2 p-5 group-data-[collapsible=icon]:p-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarSeparator\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarSeparator({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof Separator>) {\r\n return (\r\n <Separator\r\n data-slot=\"sidebar-separator\"\r\n data-sidebar=\"separator\"\r\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarContent\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarContent({ className, ...props }: ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-content\"\r\n data-sidebar=\"content\"\r\n className={cn(\r\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto group-data-[collapsible=icon]:overflow-hidden',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarGroup\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarGroup({ className, ...props }: ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-group\"\r\n data-sidebar=\"group\"\r\n className={cn(\r\n 'relative flex w-full min-w-0 flex-col px-5 group-data-[collapsible=icon]:p-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarGroupLabel\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarGroupLabel({\r\n className,\r\n asChild = false,\r\n ...props\r\n}: ComponentProps<'div'> & { asChild?: boolean }) {\r\n const Comp = asChild ? Slot : 'div'\r\n\r\n return (\r\n <Comp\r\n data-slot=\"sidebar-group-label\"\r\n data-sidebar=\"group-label\"\r\n className={cn(\r\n 'flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\r\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenu\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarMenu({ className, ...props }: ComponentProps<'ul'>) {\r\n return (\r\n <ul\r\n data-slot=\"sidebar-menu\"\r\n data-sidebar=\"menu\"\r\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenuItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarMenuItem({ className, ...props }: ComponentProps<'li'>) {\r\n return (\r\n <li\r\n data-slot=\"sidebar-menu-item\"\r\n data-sidebar=\"menu-item\"\r\n className={cn('group/menu-item relative', className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenuButton\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst sidebarMenuButtonVariants = tv({\r\n base: 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:p-2.5! group-data-[collapsible=icon]:gap-3 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:[&>svg]:size-5',\r\n variants: {\r\n variant: {\r\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\r\n outline:\r\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))]',\r\n },\r\n size: {\r\n default: 'text-sm',\r\n sm: 'h-7 text-xs',\r\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default',\r\n },\r\n})\r\n\r\nconst SIDEBAR_MENU_BUTTON_NAME = 'SidebarMenuButton'\r\n\r\nfunction SidebarMenuButton({\r\n asChild = false,\r\n isActive = false,\r\n variant = 'default',\r\n size = 'default',\r\n tooltip,\r\n className,\r\n ...props\r\n}: ComponentProps<'button'> & {\r\n asChild?: boolean\r\n isActive?: boolean\r\n tooltip?: string | ComponentProps<typeof TooltipContent>\r\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\r\n const Comp = asChild ? Slot : 'button'\r\n const { isMobile, state } = useSidebar(SIDEBAR_MENU_BUTTON_NAME)\r\n\r\n const button = (\r\n <Comp\r\n data-slot=\"sidebar-menu-button\"\r\n data-sidebar=\"menu-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n )\r\n\r\n if (!tooltip) {\r\n return button\r\n }\r\n\r\n if (typeof tooltip === 'string') {\r\n tooltip = {\r\n children: tooltip,\r\n }\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{button}</TooltipTrigger>\r\n <TooltipContent\r\n side=\"right\"\r\n align=\"center\"\r\n hidden={state !== 'collapsed' || isMobile}\r\n {...tooltip}\r\n />\r\n </Tooltip>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenuAction\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarMenuAction({\r\n className,\r\n asChild = false,\r\n showOnHover = false,\r\n ...props\r\n}: ComponentProps<'button'> & {\r\n asChild?: boolean\r\n showOnHover?: boolean\r\n}) {\r\n const Comp = asChild ? Slot : 'button'\r\n\r\n return (\r\n <Comp\r\n data-slot=\"sidebar-menu-action\"\r\n data-sidebar=\"menu-action\"\r\n className={cn(\r\n 'absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\r\n // Increases the hit area of the button on mobile.\r\n 'after:-inset-2 after:absolute md:after:hidden',\r\n 'peer-data-[size=sm]/menu-button:top-1',\r\n 'peer-data-[size=default]/menu-button:top-1.5',\r\n 'peer-data-[size=lg]/menu-button:top-2.5',\r\n 'group-data-[collapsible=icon]:hidden',\r\n showOnHover &&\r\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenuSkeleton\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarMenuSkeleton({\r\n className,\r\n showIcon = false,\r\n ...props\r\n}: ComponentProps<'div'> & {\r\n showIcon?: boolean\r\n}) {\r\n // Random width between 50 to 90%.\r\n const width = useMemo(() => {\r\n return `${Math.floor(Math.random() * 40) + 50}%`\r\n }, [])\r\n\r\n return (\r\n <div\r\n data-slot=\"sidebar-menu-skeleton\"\r\n data-sidebar=\"menu-skeleton\"\r\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\r\n {...props}\r\n >\r\n {showIcon && (\r\n <Skeleton\r\n className=\"size-4 rounded-md\"\r\n data-sidebar=\"menu-skeleton-icon\"\r\n />\r\n )}\r\n <Skeleton\r\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\r\n data-sidebar=\"menu-skeleton-text\"\r\n style={\r\n {\r\n '--skeleton-width': width,\r\n } as CSSProperties\r\n }\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenuSub\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<'ul'>) {\r\n return (\r\n <ul\r\n data-slot=\"sidebar-menu-sub\"\r\n data-sidebar=\"menu-sub\"\r\n className={cn(\r\n 'ml-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-sidebar-border border-l py-0.5 pl-2.5',\r\n 'group-data-[collapsible=icon]:hidden',\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: SidebarMenuSubItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<'li'>) {\r\n return (\r\n <li\r\n data-slot=\"sidebar-menu-sub-item\"\r\n data-sidebar=\"menu-sub-item\"\r\n className={cn('group/menu-sub-item relative', className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n Sidebar,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarMenu,\r\n SidebarMenuAction,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n SidebarMenuSkeleton,\r\n SidebarMenuSub,\r\n SidebarMenuSubItem,\r\n SidebarProvider,\r\n SidebarSeparator,\r\n SidebarTrigger,\r\n SidebarRail,\r\n useSidebar,\r\n}\r\n"],"names":["SidebarContextProvider","useSidebar","createContext","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","user","modules","locale","children","props","isMobile","useIsMobile","openMobile","setOpenMobile","useState","isOpen","setIsOpen","open","setOpen","useCallback","value","openState","document","toggleSidebar","currentValue","useEffect","handleKeyDown","event","window","state","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","PanelLeftIcon","SidebarRail","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","Slot","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","tv","SidebarMenuButton","isActive","size","tooltip","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuSkeleton","showIcon","width","useMemo","Math","Skeleton","SidebarMenuSub","SidebarMenuSubItem"],"mappings":"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"}