@gbmtech/aurora-ui 0.4.73 → 0.4.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/alert-dialog.cjs +1 -1
- package/dist/cjs/components/app-layout/index.cjs +1 -1
- package/dist/cjs/components/app-layout/index.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/index.cjs +1 -1
- package/dist/cjs/components/app-layout/sidebar/index.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/sidebar.cjs +1 -1
- package/dist/cjs/components/avatar.cjs +1 -1
- package/dist/cjs/components/badge.cjs +1 -1
- package/dist/cjs/components/breadcrumb.cjs +1 -1
- package/dist/cjs/components/command.cjs +1 -1
- package/dist/cjs/components/context-menu.cjs +1 -1
- package/dist/cjs/components/data-table/data-table-action-bar.cjs +1 -1
- package/dist/cjs/components/date-picker-with-range.cjs +2 -2
- package/dist/cjs/components/date-picker-with-range.cjs.map +1 -1
- package/dist/cjs/components/dialog.cjs +1 -1
- package/dist/cjs/components/dropdown-menu.cjs +1 -1
- package/dist/cjs/components/faceted.cjs +1 -1
- package/dist/cjs/components/form.cjs +1 -1
- package/dist/cjs/components/input-otp.cjs +1 -1
- package/dist/cjs/components/multi-select.cjs +1 -1
- package/dist/cjs/components/multi-select.cjs.map +1 -1
- package/dist/cjs/components/pagination.cjs +1 -1
- package/dist/cjs/components/select.cjs +1 -1
- package/dist/cjs/components/separator.cjs +1 -1
- package/dist/cjs/components/sheet/sheet.cjs +1 -1
- package/dist/cjs/components/sortable.cjs +1 -1
- package/dist/cjs/components/table-expandable.cjs +1 -1
- package/dist/cjs/components/table.cjs +1 -1
- package/dist/cjs/components/tabs/tabs-root.cjs +1 -1
- package/dist/cjs/components/time-picker-input.cjs +1 -1
- package/dist/cjs/components/time-picker-input.cjs.map +1 -1
- package/dist/cjs/components/tooltip.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/lib/composition.cjs +1 -1
- package/dist/cjs/lib/data-table.cjs +1 -1
- package/dist/cjs/lib/index.cjs +1 -1
- package/dist/cjs/lib/index.cjs.map +1 -1
- package/dist/cjs/lib/parsers.cjs +1 -1
- package/dist/cjs/primitive/input.cjs +1 -1
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-breadcrumb.js +1 -1
- package/dist/esm/components/app-layout/app-layout-breadcrumb.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-content.js +1 -1
- package/dist/esm/components/app-layout/app-layout-content.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-filters.js +1 -1
- package/dist/esm/components/app-layout/app-layout-filters.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-header.js +1 -1
- package/dist/esm/components/app-layout/app-layout-header.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-provider.js +1 -1
- package/dist/esm/components/app-layout/app-layout-provider.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout.js +1 -1
- package/dist/esm/components/app-layout/app-layout.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/app-sidebar.js +1 -1
- package/dist/esm/components/app-layout/sidebar/app-sidebar.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/index.js +2 -1
- package/dist/esm/components/app-layout/sidebar/index.js.map +1 -0
- package/dist/esm/components/app-layout/sidebar/logo.js +1 -1
- package/dist/esm/components/app-layout/sidebar/logo.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-modules.js +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-modules.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-sub-item.js +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-sub-item.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-user.js +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-user.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar-icons.js +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar-icons.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar.js +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-content.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete-content.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-context.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete-context.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-empty.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete-empty.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-input.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete-input.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-item.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete-item.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-list.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete-list.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete.js +1 -1
- package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.js.map +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.js.map +1 -1
- package/dist/esm/components/breadcrumb.js +1 -1
- package/dist/esm/components/breadcrumb.js.map +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.js.map +1 -1
- package/dist/esm/components/calendar.js +1 -1
- package/dist/esm/components/calendar.js.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.js.map +1 -1
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.js.map +1 -1
- package/dist/esm/components/command.js +1 -1
- package/dist/esm/components/command.js.map +1 -1
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.js.map +1 -1
- package/dist/esm/components/data-table/data-table-action-bar.js +1 -1
- package/dist/esm/components/data-table/data-table-action-bar.js.map +1 -1
- package/dist/esm/components/data-table/data-table-advanced-toolbar.js +1 -1
- package/dist/esm/components/data-table/data-table-advanced-toolbar.js.map +1 -1
- package/dist/esm/components/data-table/data-table-column-header.js +1 -1
- package/dist/esm/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/esm/components/data-table/data-table-date-filter.js +1 -1
- package/dist/esm/components/data-table/data-table-date-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-faceted-filter.js +1 -1
- package/dist/esm/components/data-table/data-table-faceted-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-filter-list.js +1 -1
- package/dist/esm/components/data-table/data-table-filter-list.js.map +1 -1
- package/dist/esm/components/data-table/data-table-filter-menu.js +1 -1
- package/dist/esm/components/data-table/data-table-filter-menu.js.map +1 -1
- package/dist/esm/components/data-table/data-table-pagination.js +1 -1
- package/dist/esm/components/data-table/data-table-pagination.js.map +1 -1
- package/dist/esm/components/data-table/data-table-range-filter.js +1 -1
- package/dist/esm/components/data-table/data-table-range-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-skeleton.js +1 -1
- package/dist/esm/components/data-table/data-table-skeleton.js.map +1 -1
- package/dist/esm/components/data-table/data-table-slider-filter.js +1 -1
- package/dist/esm/components/data-table/data-table-slider-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-sort-list.js +1 -1
- package/dist/esm/components/data-table/data-table-sort-list.js.map +1 -1
- package/dist/esm/components/data-table/data-table-toolbar.js +1 -1
- package/dist/esm/components/data-table/data-table-toolbar.js.map +1 -1
- package/dist/esm/components/data-table/data-table-view-options.js +1 -1
- package/dist/esm/components/data-table/data-table-view-options.js.map +1 -1
- package/dist/esm/components/data-table/data-table.js +1 -1
- package/dist/esm/components/data-table/data-table.js.map +1 -1
- package/dist/esm/components/data-table/index.js +1 -1
- package/dist/esm/components/date-picker-with-range.js +2 -2
- package/dist/esm/components/date-picker-with-range.js.map +1 -1
- package/dist/esm/components/date-picker.js +1 -1
- package/dist/esm/components/date-picker.js.map +1 -1
- package/dist/esm/components/date-time-picker-with-range.js +1 -1
- package/dist/esm/components/date-time-picker-with-range.js.map +1 -1
- package/dist/esm/components/datetime-picker/datetime-picker.js +1 -1
- package/dist/esm/components/datetime-picker/datetime-picker.js.map +1 -1
- package/dist/esm/components/datetime-picker/month-year-picker.js +1 -1
- package/dist/esm/components/datetime-picker/month-year-picker.js.map +1 -1
- package/dist/esm/components/datetime-picker/time-item.js +1 -1
- package/dist/esm/components/datetime-picker/time-item.js.map +1 -1
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.js.map +1 -1
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.js.map +1 -1
- package/dist/esm/components/faceted.js +1 -1
- package/dist/esm/components/faceted.js.map +1 -1
- package/dist/esm/components/form.js +1 -1
- package/dist/esm/components/form.js.map +1 -1
- package/dist/esm/components/icons/rumo.js +1 -1
- package/dist/esm/components/icons/rumo.js.map +1 -1
- package/dist/esm/components/icons/vli.js +1 -1
- package/dist/esm/components/icons/vli.js.map +1 -1
- package/dist/esm/components/input-otp.js +1 -1
- package/dist/esm/components/input-otp.js.map +1 -1
- package/dist/esm/components/input-password.js +1 -1
- package/dist/esm/components/input-password.js.map +1 -1
- package/dist/esm/components/input.js +1 -1
- package/dist/esm/components/input.js.map +1 -1
- package/dist/esm/components/label.js +1 -1
- package/dist/esm/components/label.js.map +1 -1
- package/dist/esm/components/mask-input.js +1 -1
- package/dist/esm/components/mask-input.js.map +1 -1
- package/dist/esm/components/multi-select.js +1 -1
- package/dist/esm/components/multi-select.js.map +1 -1
- package/dist/esm/components/pagination.js +1 -1
- package/dist/esm/components/pagination.js.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.js.map +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.js.map +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.js.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.js.map +1 -1
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.js.map +1 -1
- package/dist/esm/components/sheet/sheet-content-variants.js +1 -1
- package/dist/esm/components/sheet/sheet-content-variants.js.map +1 -1
- package/dist/esm/components/sheet/sheet.js +1 -1
- package/dist/esm/components/sheet/sheet.js.map +1 -1
- package/dist/esm/components/skeleton.js +1 -1
- package/dist/esm/components/skeleton.js.map +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.js.map +1 -1
- package/dist/esm/components/sortable.js +3 -3
- package/dist/esm/components/sortable.js.map +1 -1
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/spinner.js.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.js.map +1 -1
- package/dist/esm/components/table-expandable.js +1 -1
- package/dist/esm/components/table-expandable.js.map +1 -1
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.js.map +1 -1
- package/dist/esm/components/tabs/index.js +1 -1
- package/dist/esm/components/tabs/index.js.map +1 -1
- package/dist/esm/components/tabs/tabs-content.js +1 -1
- package/dist/esm/components/tabs/tabs-content.js.map +1 -1
- package/dist/esm/components/tabs/tabs-list.js +1 -1
- package/dist/esm/components/tabs/tabs-list.js.map +1 -1
- package/dist/esm/components/tabs/tabs-root.js +1 -1
- package/dist/esm/components/tabs/tabs-root.js.map +1 -1
- package/dist/esm/components/tabs/tabs-trigger.js +1 -1
- package/dist/esm/components/tabs/tabs-trigger.js.map +1 -1
- package/dist/esm/components/textarea.js +1 -1
- package/dist/esm/components/textarea.js.map +1 -1
- package/dist/esm/components/theme-provider.js +1 -1
- package/dist/esm/components/theme-provider.js.map +1 -1
- package/dist/esm/components/theme-toggle.js +1 -1
- package/dist/esm/components/theme-toggle.js.map +1 -1
- package/dist/esm/components/time-picker-input.js +1 -1
- package/dist/esm/components/time-picker-input.js.map +1 -1
- package/dist/esm/components/time-picker.js +1 -1
- package/dist/esm/components/time-picker.js.map +1 -1
- package/dist/esm/components/title.js +1 -1
- package/dist/esm/components/title.js.map +1 -1
- package/dist/esm/components/tokens-grid.js +1 -1
- package/dist/esm/components/tokens-grid.js.map +1 -1
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/tooltip.js.map +1 -1
- package/dist/esm/hooks/use-callback-ref.js +1 -1
- package/dist/esm/hooks/use-callback-ref.js.map +1 -1
- package/dist/esm/hooks/use-data-table.js +1 -1
- package/dist/esm/hooks/use-data-table.js.map +1 -1
- package/dist/esm/hooks/use-debounce.js +1 -1
- package/dist/esm/hooks/use-debounce.js.map +1 -1
- package/dist/esm/hooks/use-debounced-callback.js +1 -1
- package/dist/esm/hooks/use-debounced-callback.js.map +1 -1
- package/dist/esm/hooks/use-mobile.js +1 -1
- package/dist/esm/hooks/use-mobile.js.map +1 -1
- package/dist/esm/lib/composition.js +1 -1
- package/dist/esm/lib/composition.js.map +1 -1
- package/dist/esm/lib/data-table.js +1 -1
- package/dist/esm/lib/data-table.js.map +1 -1
- package/dist/esm/lib/id.js +1 -1
- package/dist/esm/lib/id.js.map +1 -1
- package/dist/esm/lib/parsers.js +1 -1
- package/dist/esm/lib/parsers.js.map +1 -1
- package/dist/esm/lib/utils.js +1 -1
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/primitive/input.js +1 -1
- package/dist/esm/primitive/input.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import
|
|
2
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{DropdownMenu as s,DropdownMenuContent as r,DropdownMenuGroup as l,DropdownMenuItem as i,DropdownMenuLabel as t,DropdownMenuSeparator as n,DropdownMenuSub as d,DropdownMenuSubContent as c,DropdownMenuSubTrigger as m,DropdownMenuTrigger as o}from"../../dropdown-menu.js";import{ChevronsUpDown as h,Languages as g,LogOut as u,UserRound as p}from"lucide-react";import{SidebarMenu as N,SidebarMenuButton as f,SidebarMenuItem as x,useSidebar as v}from"./index.js";import{Avatar as z,AvatarFallback as b,AvatarImage as w}from"../../avatar.js";import{messages as j}from"./intl/messages.js";function C(){let{isMobile:C,user:U,locale:E}=v("NavUser");return e(N,{children:e(x,{children:a(s,{children:[e(o,{asChild:!0,children:a(f,{size:"lg",className:"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",children:[a(z,{className:"size-8 rounded-lg group-data-[collapsible=icon]:size-10",children:[e(w,{src:void 0,alt:U.name}),e(b,{className:"rounded-lg",children:e(p,{className:"size-4"})})]}),a("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[e("span",{className:"truncate font-medium",children:U.name}),e("span",{className:"truncate text-muted-foreground text-xs",children:U.email})]}),e(h,{className:"ml-auto size-4"})]})}),a(r,{className:"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg",side:C?"bottom":"right",align:"end",sideOffset:4,children:[e(t,{className:"p-0 font-normal",children:a("div",{className:"flex items-center gap-2 px-1 py-1.5 text-left text-sm",children:[a(z,{className:"h-8 w-8 rounded-lg",children:[e(w,{src:void 0,alt:U.name}),e(b,{className:"rounded-lg",children:e(p,{className:"size-4"})})]}),a("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[e("span",{className:"truncate font-semibold",children:U.name}),e("span",{className:"truncate text-muted-foreground text-xs",children:U.email})]})]})}),e(l,{children:a(d,{children:[a(m,{children:[e(g,{className:"mr-2 size-4"}),j[E].language]}),a(c,{children:[e(i,{asChild:!0,children:e("a",{href:"/pt-br/home",className:"gap-2",children:"PT-BR"})}),e(i,{asChild:!0,children:e("a",{href:"/en-us/home",className:"gap-2",children:"EN-US"})}),e(i,{className:"gap-2",asChild:!0,children:e("a",{href:"/es/home",className:"gap-2",children:"ES"})})]})]})}),e(n,{}),e(i,{asChild:!0,children:a("a",{href:"/api/auth/sign-out",children:[e(u,{className:"mr-2 size-4"}),j[E]["sign-out"]]})})]})]})})})}export{C as NavUser};
|
|
3
3
|
//# sourceMappingURL=nav-user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\app-layout\\sidebar\\nav-user.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/app-layout/sidebar/nav-user.tsx"],"sourcesContent":["\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from '@/components/dropdown-menu'\nimport { ChevronsUpDown, Languages, LogOut, UserRound } from 'lucide-react'\nimport { JSX } from 'react'\n\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from '@/components/app-layout/sidebar'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { messages } from './intl/messages'\n\n/* -----------------------------------------------------------------------------\n * Component: NavUser\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_NAV_USER_NAME = 'NavUser'\n\nfunction NavUser(): JSX.Element {\n const { isMobile, user, locale } = useSidebar(SIDEBAR_NAV_USER_NAME)\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"size-8 rounded-lg group-data-[collapsible=icon]:size-10\">\n <AvatarImage src={undefined} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">\n <UserRound className=\"size-4\" />\n </AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">\n {user.email}\n </span>\n </div>\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={undefined} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">\n <UserRound className=\"size-4\" />\n </AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">\n {user.email}\n </span>\n </div>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>\n <Languages className=\"mr-2 size-4\" />\n {messages[locale].language}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuItem asChild>\n <a href=\"/pt-br/home\" className=\"gap-2\">\n PT-BR\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem asChild>\n <a href=\"/en-us/home\" className=\"gap-2\">\n EN-US\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem className=\"gap-2\" asChild>\n <a href=\"/es/home\" className=\"gap-2\">\n ES\n </a>\n </DropdownMenuItem>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem asChild>\n <a href=\"/api/auth/sign-out\">\n <LogOut className=\"mr-2 size-4\" />\n {messages[locale]['sign-out']}\n </a>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { NavUser }\n"],"names":["NavUser","isMobile","user","locale","useSidebar","SidebarMenu","SidebarMenuItem","DropdownMenu","DropdownMenuTrigger","SidebarMenuButton","Avatar","AvatarImage","undefined","AvatarFallback","UserRound","ChevronsUpDown","DropdownMenuContent","DropdownMenuLabel","DropdownMenuGroup","DropdownMenuSub","DropdownMenuSubTrigger","Languages","messages","DropdownMenuSubContent","DropdownMenuItem","DropdownMenuSeparator","LogOut"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\app-layout\\sidebar\\nav-user.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/app-layout/sidebar/nav-user.tsx"],"sourcesContent":["\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from '@/components/dropdown-menu'\nimport { ChevronsUpDown, Languages, LogOut, UserRound } from 'lucide-react'\nimport { JSX } from 'react'\n\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from '@/components/app-layout/sidebar'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/avatar'\nimport { messages } from './intl/messages'\n\n/* -----------------------------------------------------------------------------\n * Component: NavUser\n * -------------------------------------------------------------------------- */\n\nconst SIDEBAR_NAV_USER_NAME = 'NavUser'\n\nfunction NavUser(): JSX.Element {\n const { isMobile, user, locale } = useSidebar(SIDEBAR_NAV_USER_NAME)\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"size-8 rounded-lg group-data-[collapsible=icon]:size-10\">\n <AvatarImage src={undefined} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">\n <UserRound className=\"size-4\" />\n </AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">\n {user.email}\n </span>\n </div>\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={undefined} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">\n <UserRound className=\"size-4\" />\n </AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">\n {user.email}\n </span>\n </div>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuSub>\n <DropdownMenuSubTrigger>\n <Languages className=\"mr-2 size-4\" />\n {messages[locale].language}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n <DropdownMenuItem asChild>\n <a href=\"/pt-br/home\" className=\"gap-2\">\n PT-BR\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem asChild>\n <a href=\"/en-us/home\" className=\"gap-2\">\n EN-US\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem className=\"gap-2\" asChild>\n <a href=\"/es/home\" className=\"gap-2\">\n ES\n </a>\n </DropdownMenuItem>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem asChild>\n <a href=\"/api/auth/sign-out\">\n <LogOut className=\"mr-2 size-4\" />\n {messages[locale]['sign-out']}\n </a>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { NavUser }\n"],"names":["NavUser","isMobile","user","locale","useSidebar","SidebarMenu","SidebarMenuItem","DropdownMenu","DropdownMenuTrigger","SidebarMenuButton","Avatar","AvatarImage","undefined","AvatarFallback","UserRound","ChevronsUpDown","DropdownMenuContent","DropdownMenuLabel","DropdownMenuGroup","DropdownMenuSub","DropdownMenuSubTrigger","Languages","messages","DropdownMenuSubContent","DropdownMenuItem","DropdownMenuSeparator","LogOut"],"mappings":";+nBAgCA,SAASA,IACP,GAAM,CAAEC,SAAAA,CAAQ,CAAEC,KAAAA,CAAI,CAAEC,OAAAA,CAAM,CAAE,CAAGC,EAHP,WAK5B,OACE,EAACC,EAAWA,C,SACV,EAACC,EAAeA,C,SACd,EAACC,EAAYA,C,UACX,EAACC,EAAmBA,CAAC,QAAO,G,SAC1B,EAACC,EAAiBA,CAChB,KAAK,KACL,UAAU,uF,UAEV,EAACC,EAAMA,CAAC,UAAU,0D,UAChB,EAACC,EAAWA,CAAC,IAAKC,OAAW,IAAKV,EAAK,IAAI,GAC3C,EAACW,EAAcA,CAAC,UAAU,a,SACxB,EAACC,EAASA,CAAC,UAAU,Q,QAGzB,EAAC,OAAI,UAAU,8C,UACb,EAAC,QAAK,UAAU,uB,SAAwBZ,EAAK,IAAI,GACjD,EAAC,QAAK,UAAU,yC,SACbA,EAAK,KAAK,MAGf,EAACa,EAAcA,CAAC,UAAU,gB,QAG9B,EAACC,EAAmBA,CAClB,UAAU,8DACV,KAAMf,EAAW,SAAW,QAC5B,MAAM,MACN,WAAY,E,UAEZ,EAACgB,EAAiBA,CAAC,UAAU,kB,SAC3B,EAAC,OAAI,UAAU,wD,UACb,EAACP,EAAMA,CAAC,UAAU,qB,UAChB,EAACC,EAAWA,CAAC,IAAKC,OAAW,IAAKV,EAAK,IAAI,GAC3C,EAACW,EAAcA,CAAC,UAAU,a,SACxB,EAACC,EAASA,CAAC,UAAU,Q,QAGzB,EAAC,OAAI,UAAU,8C,UACb,EAAC,QAAK,UAAU,yB,SAA0BZ,EAAK,IAAI,GACnD,EAAC,QAAK,UAAU,yC,SACbA,EAAK,KAAK,WAKnB,EAACgB,EAAiBA,C,SAChB,EAACC,EAAeA,C,UACd,EAACC,EAAsBA,C,UACrB,EAACC,EAASA,CAAC,UAAU,a,GACpBC,CAAQ,CAACnB,EAAO,CAAC,QAAQ,C,GAE5B,EAACoB,EAAsBA,C,UACrB,EAACC,EAAgBA,CAAC,QAAO,G,SACvB,EAAC,KAAE,KAAK,cAAc,UAAU,Q,SAAQ,O,KAI1C,EAACA,EAAgBA,CAAC,QAAO,G,SACvB,EAAC,KAAE,KAAK,cAAc,UAAU,Q,SAAQ,O,KAI1C,EAACA,EAAgBA,CAAC,UAAU,QAAQ,QAAO,G,SACzC,EAAC,KAAE,KAAK,WAAW,UAAU,Q,SAAQ,I,aAO7C,EAACC,EAAqBA,CAAAA,GACtB,EAACD,EAAgBA,CAAC,QAAO,G,SACvB,EAAC,KAAE,KAAK,qB,UACN,EAACE,EAAMA,CAAC,UAAU,a,GACjBJ,CAAQ,CAACnB,EAAO,CAAC,WAAW,C,cAQ7C,Q"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import
|
|
2
|
+
import{jsx as r}from"react/jsx-runtime";import{Rumo as o}from"../../icons/rumo.js";import{VLI as e}from"../../icons/vli.js";import{Anchor as i,BriefcaseBusiness as t,CalendarDays as m,Ship as s,TramFront as n}from"lucide-react";let a=({icon:a})=>{let c={Rumo:o,VLI:e,ship:s,anchor:i,"tram-front":n,"calendar-days":m,"briefcase-business":t}[a];return c?r(c,{}):null};export{a as SidebarIcons};
|
|
3
3
|
//# sourceMappingURL=sidebar-icons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\app-layout\\sidebar\\sidebar-icons.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/app-layout/sidebar/sidebar-icons.tsx"],"sourcesContent":["\r\n\r\nimport { Rumo } from '@/components/icons/rumo'\r\nimport { VLI } from '@/components/icons/vli'\r\nimport {\r\n Anchor,\r\n BriefcaseBusiness,\r\n CalendarDays,\r\n Ship,\r\n TramFront,\r\n} from 'lucide-react'\r\n\r\nconst SidebarIcons = ({ icon }: { icon: string | null }) => {\r\n const customIcons = {\r\n Rumo,\r\n VLI,\r\n ship: Ship,\r\n anchor: Anchor,\r\n 'tram-front': TramFront,\r\n 'calendar-days': CalendarDays,\r\n 'briefcase-business': BriefcaseBusiness,\r\n }\r\n\r\n const IconCustom = customIcons[icon as keyof typeof customIcons]\r\n\r\n if (!IconCustom) {\r\n return null\r\n }\r\n\r\n return <IconCustom />\r\n}\r\n\r\nexport { SidebarIcons }\r\n"],"names":["SidebarIcons","icon","IconCustom","customIcons","Rumo","VLI","Ship","Anchor","TramFront","CalendarDays","BriefcaseBusiness"],"mappings":";
|
|
1
|
+
{"version":3,"file":"components\\app-layout\\sidebar\\sidebar-icons.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/app-layout/sidebar/sidebar-icons.tsx"],"sourcesContent":["\r\n\r\nimport { Rumo } from '@/components/icons/rumo'\r\nimport { VLI } from '@/components/icons/vli'\r\nimport {\r\n Anchor,\r\n BriefcaseBusiness,\r\n CalendarDays,\r\n Ship,\r\n TramFront,\r\n} from 'lucide-react'\r\n\r\nconst SidebarIcons = ({ icon }: { icon: string | null }) => {\r\n const customIcons = {\r\n Rumo,\r\n VLI,\r\n ship: Ship,\r\n anchor: Anchor,\r\n 'tram-front': TramFront,\r\n 'calendar-days': CalendarDays,\r\n 'briefcase-business': BriefcaseBusiness,\r\n }\r\n\r\n const IconCustom = customIcons[icon as keyof typeof customIcons]\r\n\r\n if (!IconCustom) {\r\n return null\r\n }\r\n\r\n return <IconCustom />\r\n}\r\n\r\nexport { SidebarIcons }\r\n"],"names":["SidebarIcons","icon","IconCustom","customIcons","Rumo","VLI","Ship","Anchor","TramFront","CalendarDays","BriefcaseBusiness"],"mappings":";oOAYA,IAAMA,EAAe,CAAC,CAAEC,KAAAA,CAAI,CAA2B,IAWrD,IAAMC,EAAaC,CATjBC,KAAIA,EACJC,IAAGA,EACH,KAAMC,EACN,OAAQC,EACR,aAAcC,EACd,gBAAiBC,EACjB,qBAAsBC,CACxB,CAE8B,CAACT,EAAiC,QAEhE,EAIO,EAACC,EAAAA,CAAAA,GAHC,IAIX,S"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
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="gbm_sidebar_open",[p,f]=(0,t.createContext)("SidebarProvider");function g({defaultOpen:t=!0,open:r,onOpenChange:i,className:s,style:d,user:o,modules:n,locale:f="pt-br",children:g,...m}){let h=(0,c.useIsMobile)(),[x,v]=(0,a.useState)(!1),[w,S]=(0,a.useState)(t),j=r??w,y=(0,a.useCallback)(e=>{let a="function"==typeof e?e(j):e;i?i(a):S(a),document.cookie=`${b}=${a}; path=/; max-age=604800`},[i,j]),N=(0,a.useCallback)(()=>{h?v(e=>!e):y(e=>!e)},[h,y,v]);(0,a.useEffect)(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),N())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[N]);let k=j?"expanded":"collapsed";return(0,e.jsx)(p,{isMobile:h,open:j,openMobile:x,setOpen:y,setOpenMobile:v,state:k,toggleSidebar:N,user:o,modules:n,locale:f,children:(0,e.jsx)(l.TooltipProvider,{delayDuration:0,children:(0,e.jsx)("div",{className:(0,u.cn)("group/sidebar-wrapper flex 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},...m,children:g})})})}function m({side:a="left",variant:t="sidebar",collapsible:r="icon",className:i,children:s,...d}){let{isMobile:n,state:l,openMobile:c,setOpenMobile:b}=f("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 h({className:a,onClick:t,...r}){let{toggleSidebar:d}=f("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 x({className:a,...t}){let{toggleSidebar:r}=f("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 v({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 w({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 S({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 y({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 N({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 k({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 z({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 M=(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 _({asChild:a=!1,isActive:t=!1,variant:i="default",size:s="default",tooltip:d,className:o,onClick:n,...c}){let b=a?r.Slot:"button",{isMobile:p,open:g,setOpen:m,state:h}=f("SidebarMenuButton"),x=(0,e.jsx)(b,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":s,"data-active":t,className:(0,u.cn)(M({variant:i,size:s}),o),onClick:e=>{n?.(e),g||m(!0)},...c});return d?("string"==typeof d&&(d={children:d}),(0,e.jsxs)(l.Tooltip,{children:[(0,e.jsx)(l.TooltipTrigger,{asChild:!0,children:x}),(0,e.jsx)(l.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==h||p,...d})]})):x}function C({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 T({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 I({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 E({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{b as SIDEBAR_COOKIE_NAME,m as Sidebar,j as SidebarContent,w as SidebarFooter,y as SidebarGroup,N as SidebarGroupLabel,v as SidebarHeader,k as SidebarMenu,C as SidebarMenuAction,_ as SidebarMenuButton,z as SidebarMenuItem,T as SidebarMenuSkeleton,I as SidebarMenuSub,E as SidebarMenuSubItem,g as SidebarProvider,x as SidebarRail,S as SidebarSeparator,h as SidebarTrigger,f as useSidebar};
|
|
2
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useCallback as t,useEffect as r,useMemo as i,useState as d}from"react";import{createContext as o}from"@radix-ui/react-context";import{Slot as s}from"@radix-ui/react-slot";import{PanelLeftIcon as n}from"lucide-react";import{Button as l}from"../../button.js";import{Separator as c}from"../../separator.js";import{Sheet as b,SheetContent as u,SheetDescription as p,SheetHeader as f,SheetTitle as g}from"../../sheet/index.js";import{Skeleton as m}from"../../skeleton.js";import{Tooltip as h,TooltipContent as v,TooltipProvider as x,TooltipTrigger as w}from"../../tooltip.js";import{useIsMobile as S}from"../../../hooks/use-mobile.js";import{cn as y,tv as N}from"../../../lib/index.js";let k="gbm_sidebar_open",[z,_]=o("SidebarProvider");function M({defaultOpen:a=!0,open:i,onOpenChange:o,className:s,style:n,user:l,modules:c,locale:b="pt-br",children:u,...p}){let f=S(),[g,m]=d(!1),[h,v]=d(a),w=i??h,N=t(e=>{let a="function"==typeof e?e(w):e;o?o(a):v(a),document.cookie=`${k}=${a}; path=/; max-age=604800`},[o,w]),_=t(()=>{f?m(e=>!e):N(e=>!e)},[f,N,m]);r(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),_())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[_]);let M=w?"expanded":"collapsed";return e(z,{isMobile:f,open:w,openMobile:g,setOpen:N,setOpenMobile:m,state:M,toggleSidebar:_,user:l,modules:c,locale:b,children:e(x,{delayDuration:0,children:e("div",{className:y("group/sidebar-wrapper flex h-svh w-full has-data-[variant=inset]:bg-sidebar",s),"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"4.5rem",...n},...p,children:u})})})}function j({side:t="left",variant:r="sidebar",collapsible:i="icon",className:d,children:o,...s}){let{isMobile:n,state:l,openMobile:c,setOpenMobile:m}=_("Sidebar");return"none"===i?e("div",{"data-slot":"sidebar",className:y("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",d),...s,children:o}):n?e(b,{open:c,onOpenChange:m,...s,children:a(u,{"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:t,children:[a(f,{className:"sr-only",children:[e(g,{children:"Sidebar"}),e(p,{children:"Displays the mobile sidebar."})]}),e("div",{className:"flex h-full w-full flex-col",children:o})]})}):a("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":l,"data-collapsible":"collapsed"===l?i:"","data-variant":r,"data-side":t,"data-slot":"sidebar",children:[e("div",{"data-slot":"sidebar-gap",className:y("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"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),e("div",{"data-slot":"sidebar-container",className:y("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===t?"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"===r||"inset"===r?"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",d),...s,children:e("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:o})})]})}function C({className:t,onClick:r,...i}){let{toggleSidebar:d}=_("SidebarTrigger");return a(l,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:y("size-7",t),onClick:e=>{r?.(e),d()},...i,children:[e(n,{}),e("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function O({className:a,...t}){let{toggleSidebar:r}=_("SidebarRail");return e("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:r,title:"Toggle Sidebar",className:y("-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 E({className:a,...t}){return e("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:y("flex flex-col gap-2 p-5 group-data-[collapsible=icon]:p-4",a),...t})}function I({className:a,...t}){return e("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:y("flex flex-col gap-2 p-5 group-data-[collapsible=icon]:p-4",a),...t})}function T({className:a,...t}){return e(c,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:y("mx-2 w-auto bg-sidebar-border",a),...t})}function D({className:a,...t}){return e("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:y("flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto group-data-[collapsible=icon]:overflow-hidden",a),...t})}function A({className:a,...t}){return e("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:y("relative flex w-full min-w-0 flex-col px-5 group-data-[collapsible=icon]:p-4",a),...t})}function B({className:a,asChild:t=!1,...r}){return e(t?s:"div",{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:y("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),...r})}function K({className:a,...t}){return e("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:y("flex w-full min-w-0 flex-col gap-1",a),...t})}function L({className:a,...t}){return e("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:y("group/menu-item relative",a),...t})}let 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",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 $({asChild:t=!1,isActive:r=!1,variant:i="default",size:d="default",tooltip:o,className:n,onClick:l,...c}){let{isMobile:b,open:u,setOpen:p,state:f}=_("SidebarMenuButton"),g=e(t?s:"button",{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":d,"data-active":r,className:y(R({variant:i,size:d}),n),onClick:e=>{l?.(e),u||p(!0)},...c});return o?("string"==typeof o&&(o={children:o}),a(h,{children:[e(w,{asChild:!0,children:g}),e(v,{side:"right",align:"center",hidden:"collapsed"!==f||b,...o})]})):g}function G({className:a,asChild:t=!1,showOnHover:r=!1,...i}){return e(t?s:"button",{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:y("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",r&&"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),...i})}function P({className:t,showIcon:r=!1,...d}){let o=i(()=>`${Math.floor(40*Math.random())+50}%`,[]);return a("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:y("flex h-8 items-center gap-2 rounded-md px-2",t),...d,children:[r&&e(m,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),e(m,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":o}})]})}function q({className:a,...t}){return e("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:y("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 F({className:a,...t}){return e("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:y("group/menu-sub-item relative",a),...t})}export{k as SIDEBAR_COOKIE_NAME,j as Sidebar,D as SidebarContent,I as SidebarFooter,A as SidebarGroup,B as SidebarGroupLabel,E as SidebarHeader,K as SidebarMenu,G as SidebarMenuAction,$ as SidebarMenuButton,L as SidebarMenuItem,P as SidebarMenuSkeleton,q as SidebarMenuSub,F as SidebarMenuSubItem,M as SidebarProvider,O as SidebarRail,T as SidebarSeparator,C as SidebarTrigger,_ as useSidebar};
|
|
3
3
|
//# sourceMappingURL=sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\app-layout\\sidebar\\sidebar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/app-layout/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 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 onClick,\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, open, setOpen, state } = useSidebar(\r\n SIDEBAR_MENU_BUTTON_NAME\r\n )\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 onClick={event => {\r\n onClick?.(event)\r\n\r\n if (!open) {\r\n setOpen(true)\r\n }\r\n }}\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 SIDEBAR_COOKIE_NAME,\r\n}\r\n"],"names":["SIDEBAR_COOKIE_NAME","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":";wbAoCA,IAAMA,EAAsB,mBA0BtB,CAACC,EAAwBC,EAAW,CAAGC,GAAAA,EAAAA,aAAAA,EAFf,mBAU9B,SAASC,EAAgB,CACvBC,YAAAA,EAAc,EAAI,CAClB,KAAMC,CAAQ,CACd,aAAcC,CAAW,CACzBC,UAAAA,CAAS,CACTC,MAAAA,CAAK,CACLC,KAAAA,CAAI,CACJC,QAAAA,CAAO,CACPC,OAAAA,EAAS,OAAO,CAChBC,SAAAA,CAAQ,CACR,GAAGC,EAQJ,EACC,IAAMC,EAAWC,GAAAA,EAAAA,WAAAA,IACX,CAACC,EAAYC,EAAc,CAAGC,GAAAA,EAAAA,QAAAA,EAAS,IAIvC,CAACC,EAAQC,EAAU,CAAGF,GAAAA,EAAAA,QAAAA,EAASd,GAC/BiB,EAAOhB,GAAYc,EACnBG,EAAUC,GAAAA,EAAAA,WAAAA,EACd,IACE,IAAME,EAAY,mBAAOD,EAAuBA,EAAMH,GAAQG,EAE1DlB,EACFA,EAAYmB,GAEZL,EAAUK,GAIZC,SAAS,MAAM,CAAG,GAAG3B,KAAuB0B,2BAAsD,EAEpG,CAACnB,EAAae,EAAK,EAIfM,EAAgBJ,GAAAA,EAAAA,WAAAA,EAAY,KAC5BT,EACFG,EAAcW,GAAgB,CAACA,GAE/BN,EAAQM,GAAgB,CAACA,EAE7B,EAAG,CAACd,EAAUQ,EAASL,EAAc,EAGrCY,GAAAA,EAAAA,SAAAA,EAAU,KACR,IAAMC,EAAgD,IAlFxB,MAsF1BC,EAAM,GAAG,EACRA,CAAAA,EAAM,OAAO,EAAIA,EAAM,OAAM,IAE9BA,EAAM,cAAc,GACpBJ,IAEJ,EAIA,OAFAK,OAAO,gBAAgB,CAAC,UAAWF,GAE5B,KACLE,OAAO,mBAAmB,CAAC,UAAWF,EACxC,CACF,EAAG,CAACH,EAAc,EAIlB,IAAMM,EAAQZ,EAAO,WAAa,YAElC,MACE,UAACrB,EAAAA,CACC,SAAUc,EACV,KAAMO,EACN,WAAYL,EACZ,QAASM,EACT,cAAeL,EACf,MAAOgB,EACP,cAAeN,EACf,KAAMlB,EACN,QAASC,EACT,OAAQC,E,SAER,UAACuB,EAAAA,eAAeA,CAAAA,CAAC,cAAe,E,SAC9B,UAAC,OACC,UAAWC,GAAAA,EAAAA,EAAAA,EACT,8EACA5B,GAEF,YAAU,kBACV,MACE,CACE,kBAlIQ,QAmIR,uBAjIa,SAkIb,GAAGC,CAAK,EAGX,GAAGK,CAAK,C,SAERD,C,MAKX,CAQA,SAASwB,EAAQ,CACfC,KAAAA,EAAO,MAAM,CACbC,QAAAA,EAAU,SAAS,CACnBC,YAAAA,EAAc,MAAM,CACpBhC,UAAAA,CAAS,CACTK,SAAAA,CAAQ,CACR,GAAGC,EAKJ,EACC,GAAM,CAAEC,SAAAA,CAAQ,CAAEmB,MAAAA,CAAK,CAAEjB,WAAAA,CAAU,CAAEC,cAAAA,CAAa,CAAE,CAClDhB,EAfiB,iBAiBnB,SAAIsC,EAEA,UAAC,OACC,YAAU,UACV,UAAWJ,GAAAA,EAAAA,EAAAA,EACT,8EACA5B,GAED,GAAGM,CAAK,C,SAERD,C,GAKHE,EAEA,UAAC0B,EAAAA,KAAKA,CAAAA,CAAC,KAAMxB,EAAY,aAAcC,EAAgB,GAAGJ,CAAK,C,SAC7D,WAAC4B,EAAAA,YAAYA,CAAAA,CACX,eAAa,UACb,YAAU,UACV,cAAY,OACZ,UAAU,+EACV,MACE,CACE,kBA7Le,OA8LjB,EAEF,KAAMJ,E,UAEN,WAACK,EAAAA,WAAWA,CAAAA,CAAC,UAAU,U,UACrB,UAACC,EAAAA,UAAUA,CAAAA,C,SAAC,S,GACZ,UAACC,EAAAA,gBAAgBA,CAAAA,C,SAAC,8B,MAEpB,UAAC,OAAI,UAAU,8B,SAA+BhC,C,QAOpD,WAAC,OACC,UAAU,qDACV,aAAYqB,EACZ,mBAAkBA,cAAAA,EAAwBM,EAAc,GACxD,eAAcD,EACd,YAAWD,EACX,YAAU,U,UAGV,UAAC,OACC,YAAU,cACV,UAAWF,GAAAA,EAAAA,EAAAA,EACT,0FACA,yCACA,qCACAG,aAAAA,GAA0BA,UAAAA,EACtB,mFACA,yD,GAGR,UAAC,OACC,YAAU,oBACV,UAAWH,GAAAA,EAAAA,EAAAA,EACT,uHACAE,SAAAA,EACI,iFACA,mFAEJC,aAAAA,GAA0BA,UAAAA,EACtB,2FACA,0HACJ/B,GAED,GAAGM,CAAK,C,SAET,UAAC,OACC,eAAa,UACb,YAAU,gBACV,UAAU,mN,SAETD,C,OAKX,CAQA,SAASiC,EAAe,CACtBtC,UAAAA,CAAS,CACTuC,QAAAA,CAAO,CACP,GAAGjC,EAC2B,EAC9B,GAAM,CAAEc,cAAAA,CAAa,CAAE,CAAG1B,EAPC,kBAS3B,MACE,WAAC8C,EAAAA,MAAMA,CAAAA,CACL,eAAa,UACb,YAAU,kBACV,QAAQ,QACR,KAAK,OACL,UAAWZ,GAAAA,EAAAA,EAAAA,EAAG,SAAU5B,GACxB,QAASwB,IACPe,IAAUf,GACVJ,GACF,EACC,GAAGd,CAAK,C,UAET,UAACmC,EAAAA,aAAaA,CAAAA,CAAAA,GACd,UAAC,QAAK,UAAU,U,SAAU,gB,KAGhC,CAQA,SAASC,EAAY,CAAE1C,UAAAA,CAAS,CAAE,GAAGM,EAAuC,EAC1E,GAAM,CAAEc,cAAAA,CAAa,CAAE,CAAG1B,EAHF,eAKxB,MACE,UAAC,UACC,eAAa,OACb,YAAU,eACV,aAAW,iBACX,SAAU,GACV,QAAS0B,EACT,MAAM,iBACN,UAAWQ,GAAAA,EAAAA,EAAAA,EACT,kPACA,2EACA,yHACA,0JACA,4DACA,4DACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAASqC,EAAc,CAAE3C,UAAAA,CAAS,CAAE,GAAGM,EAA8B,EACnE,MACE,UAAC,OACC,YAAU,iBACV,eAAa,SACb,UAAWsB,GAAAA,EAAAA,EAAAA,EACT,4DACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAASsC,EAAc,CAAE5C,UAAAA,CAAS,CAAE,GAAGM,EAA8B,EACnE,MACE,UAAC,OACC,YAAU,iBACV,eAAa,SACb,UAAWsB,GAAAA,EAAAA,EAAAA,EACT,4DACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAASuC,EAAiB,CACxB7C,UAAAA,CAAS,CACT,GAAGM,EAC8B,EACjC,MACE,UAACwC,EAAAA,SAASA,CAAAA,CACR,YAAU,oBACV,eAAa,YACb,UAAWlB,GAAAA,EAAAA,EAAAA,EAAG,gCAAiC5B,GAC9C,GAAGM,CAAK,EAGf,CAMA,SAASyC,EAAe,CAAE/C,UAAAA,CAAS,CAAE,GAAGM,EAA8B,EACpE,MACE,UAAC,OACC,YAAU,kBACV,eAAa,UACb,UAAWsB,GAAAA,EAAAA,EAAAA,EACT,mGACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAAS0C,EAAa,CAAEhD,UAAAA,CAAS,CAAE,GAAGM,EAA8B,EAClE,MACE,UAAC,OACC,YAAU,gBACV,eAAa,QACb,UAAWsB,GAAAA,EAAAA,EAAAA,EACT,+EACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAAS2C,EAAkB,CACzBjD,UAAAA,CAAS,CACTkD,QAAAA,EAAU,EAAK,CACf,GAAG5C,EAC2C,EAC9C,IAAM6C,EAAOD,EAAUE,EAAAA,IAAIA,CAAG,MAE9B,MACE,UAACD,EAAAA,CACC,YAAU,sBACV,eAAa,cACb,UAAWvB,GAAAA,EAAAA,EAAAA,EACT,2OACA,8EACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAAS+C,EAAY,CAAErD,UAAAA,CAAS,CAAE,GAAGM,EAA6B,EAChE,MACE,UAAC,MACC,YAAU,eACV,eAAa,OACb,UAAWsB,GAAAA,EAAAA,EAAAA,EAAG,qCAAsC5B,GACnD,GAAGM,CAAK,EAGf,CAMA,SAASgD,EAAgB,CAAEtD,UAAAA,CAAS,CAAE,GAAGM,EAA6B,EACpE,MACE,UAAC,MACC,YAAU,oBACV,eAAa,YACb,UAAWsB,GAAAA,EAAAA,EAAAA,EAAG,2BAA4B5B,GACzC,GAAGM,CAAK,EAGf,CAMA,IAAMiD,EAA4BC,GAAAA,EAAAA,EAAAA,EAAG,CACnC,KAAM,w4BACN,SAAU,CACR,QAAS,CACP,QAAS,+DACT,QACE,8KACJ,EACA,KAAM,CACJ,QAAS,UACT,GAAI,cACJ,GAAI,iDACN,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,GAIA,SAASC,EAAkB,CACzBP,QAAAA,EAAU,EAAK,CACfQ,SAAAA,EAAW,EAAK,CAChB3B,QAAAA,EAAU,SAAS,CACnB4B,KAAAA,EAAO,SAAS,CAChBC,QAAAA,CAAO,CACP5D,UAAAA,CAAS,CACTuC,QAAAA,CAAO,CACP,GAAGjC,EAK6C,EAChD,IAAM6C,EAAOD,EAAUE,EAAAA,IAAIA,CAAG,SACxB,CAAE7C,SAAAA,CAAQ,CAAEO,KAAAA,CAAI,CAAEC,QAAAA,CAAO,CAAEW,MAAAA,CAAK,CAAE,CAAGhC,EAjBZ,qBAqBzBmE,EACJ,UAACV,EAAAA,CACC,YAAU,sBACV,eAAa,cACb,YAAWQ,EACX,cAAaD,EACb,UAAW9B,GAAAA,EAAAA,EAAAA,EAAG2B,EAA0B,CAAExB,QAAAA,EAAS4B,KAAAA,CAAK,GAAI3D,GAC5D,QAASwB,IACPe,IAAUf,GAEN,GACFT,EAAQ,GAEZ,EACC,GAAGT,CAAK,UAIb,GAII,iBAAOsD,GACTA,CAAAA,EAAU,CACR,SAAUA,CACZ,GAIA,WAACE,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SAAEF,C,GACzB,UAACG,EAAAA,cAAcA,CAAAA,CACb,KAAK,QACL,MAAM,SACN,OAAQtC,cAAAA,GAAyBnB,EAChC,GAAGqD,CAAO,OAhBRC,CAoBX,CAMA,SAASI,EAAkB,CACzBjE,UAAAA,CAAS,CACTkD,QAAAA,EAAU,EAAK,CACfgB,YAAAA,EAAc,EAAK,CACnB,GAAG5D,EAIJ,EACC,IAAM6C,EAAOD,EAAUE,EAAAA,IAAIA,CAAG,SAE9B,MACE,UAACD,EAAAA,CACC,YAAU,sBACV,eAAa,cACb,UAAWvB,GAAAA,EAAAA,EAAAA,EACT,mVAEA,gDACA,wCACA,+CACA,0CACA,uCACAsC,GACE,2LACFlE,GAED,GAAGM,CAAK,EAGf,CAMA,SAAS6D,EAAoB,CAC3BnE,UAAAA,CAAS,CACToE,SAAAA,EAAW,EAAK,CAChB,GAAG9D,EAGJ,EAEC,IAAM+D,EAAQC,GAAAA,EAAAA,OAAAA,EAAQ,IACb,CAAC,EAAEC,KAAK,KAAK,CAACA,GAAAA,KAAK,MAAM,IAAW,GAAG,CAAC,CAAC,CAC/C,EAAE,EAEL,MACE,WAAC,OACC,YAAU,wBACV,eAAa,gBACb,UAAW3C,GAAAA,EAAAA,EAAAA,EAAG,8CAA+C5B,GAC5D,GAAGM,CAAK,C,UAER8D,GACC,UAACI,EAAAA,QAAQA,CAAAA,CACP,UAAU,oBACV,eAAa,oB,GAGjB,UAACA,EAAAA,QAAQA,CAAAA,CACP,UAAU,sCACV,eAAa,qBACb,MACE,CACE,mBAAoBH,CACtB,C,KAKV,CAMA,SAASI,EAAe,CAAEzE,UAAAA,CAAS,CAAE,GAAGM,EAA6B,EACnE,MACE,UAAC,MACC,YAAU,mBACV,eAAa,WACb,UAAWsB,GAAAA,EAAAA,EAAAA,EACT,iGACA,uCACA5B,GAED,GAAGM,CAAK,EAGf,CAMA,SAASoE,EAAmB,CAAE1E,UAAAA,CAAS,CAAE,GAAGM,EAA6B,EACvE,MACE,UAAC,MACC,YAAU,wBACV,eAAa,gBACb,UAAWsB,GAAAA,EAAAA,EAAAA,EAAG,+BAAgC5B,GAC7C,GAAGM,CAAK,EAGf,Q"}
|
|
1
|
+
{"version":3,"file":"components\\app-layout\\sidebar\\sidebar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/app-layout/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 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 onClick,\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, open, setOpen, state } = useSidebar(\r\n SIDEBAR_MENU_BUTTON_NAME\r\n )\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 onClick={event => {\r\n onClick?.(event)\r\n\r\n if (!open) {\r\n setOpen(true)\r\n }\r\n }}\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 SIDEBAR_COOKIE_NAME,\r\n}\r\n"],"names":["SIDEBAR_COOKIE_NAME","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","Slot","Comp","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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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as e,jsxs as o}from"react/jsx-runtime";import{Command as r}from"cmdk";import{cn as t}from"../../lib/index.js";import{CommandList as m}from"../command.js";import{Skeleton as i}from"../skeleton.js";import{useAutoCompleteContext as n}from"./autocomplete-context.js";function l({children:l}){let{isOpen:d,isLoading:c}=n();return e("div",{className:"relative mt-2",children:e("div",{className:t("absolute top-0 z-10 w-full bg-background outline-none",d?"block":"hidden"),children:o(m,{className:"rounded-md ring-1 ring-border",children:[c&&e(r.Loading,{children:e("div",{className:"p-1",children:e(i,{className:"h-8 w-full"})})}),l]})})})}export{l as AutoCompleteContent};
|
|
2
2
|
//# sourceMappingURL=autocomplete-content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete-content.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-content.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from 'cmdk'\nimport type { ReactNode } from 'react'\n\nimport { cn } from '@/lib'\nimport { CommandList } from '../command'\nimport { Skeleton } from '../skeleton'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteContent({ children }: { children: ReactNode }) {\n const { isOpen, isLoading } = useAutoCompleteContext()\n\n return (\n <div className=\"relative mt-2\">\n <div\n className={cn(\n 'absolute top-0 z-10 w-full bg-background outline-none',\n isOpen ? 'block' : 'hidden'\n )}\n >\n <CommandList className=\"rounded-md ring-1 ring-border\">\n {isLoading && (\n <CommandPrimitive.Loading>\n <div className=\"p-1\">\n <Skeleton className=\"h-8 w-full\" />\n </div>\n </CommandPrimitive.Loading>\n )}\n\n {children}\n </CommandList>\n </div>\n </div>\n )\n}\n\nexport { AutoCompleteContent }\n"],"names":["AutoCompleteContent","children","isOpen","isLoading","useAutoCompleteContext","cn","CommandList","CommandPrimitive","Skeleton"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete-content.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-content.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from 'cmdk'\nimport type { ReactNode } from 'react'\n\nimport { cn } from '@/lib'\nimport { CommandList } from '../command'\nimport { Skeleton } from '../skeleton'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteContent({ children }: { children: ReactNode }) {\n const { isOpen, isLoading } = useAutoCompleteContext()\n\n return (\n <div className=\"relative mt-2\">\n <div\n className={cn(\n 'absolute top-0 z-10 w-full bg-background outline-none',\n isOpen ? 'block' : 'hidden'\n )}\n >\n <CommandList className=\"rounded-md ring-1 ring-border\">\n {isLoading && (\n <CommandPrimitive.Loading>\n <div className=\"p-1\">\n <Skeleton className=\"h-8 w-full\" />\n </div>\n </CommandPrimitive.Loading>\n )}\n\n {children}\n </CommandList>\n </div>\n </div>\n )\n}\n\nexport { AutoCompleteContent }\n"],"names":["AutoCompleteContent","children","isOpen","isLoading","useAutoCompleteContext","cn","CommandList","CommandPrimitive","Skeleton"],"mappings":"kRAQA,SAASA,EAAoB,CAAEC,SAAAA,CAAQ,CAA2B,EAChE,GAAM,CAAEC,OAAAA,CAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,IAE9B,OACE,EAAC,OAAI,UAAU,gB,SACb,EAAC,OACC,UAAWC,EACT,wDACAH,EAAS,QAAU,U,SAGrB,EAACI,EAAWA,CAAC,UAAU,gC,UACpBH,GACC,EAACI,EAAAA,OAAwB,E,SACvB,EAAC,OAAI,UAAU,M,SACb,EAACC,EAAQA,CAAC,UAAU,Y,OAKzBP,E,MAKX,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{createContext as t,useContext as e}from"react";let o=t({}),m=()=>e(o);export{o as AutoCompleteContext,m as useAutoCompleteContext};
|
|
2
2
|
//# sourceMappingURL=autocomplete-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete-context.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-context.tsx"],"sourcesContent":["import { type RefObject, createContext, useContext } from 'react'\n\ntype AutoCompleteContextValue = {\n value: string\n onValueChange: (value: string) => void\n isOpen: boolean\n onOpenChange: (isOpen: boolean) => void\n inputRef: RefObject<HTMLInputElement | null>\n isLoading?: boolean\n}\n\nconst AutoCompleteContext = createContext<AutoCompleteContextValue>(\n {} as AutoCompleteContextValue\n)\n\nconst useAutoCompleteContext = () => useContext(AutoCompleteContext)\n\nexport {\n type AutoCompleteContextValue,\n AutoCompleteContext,\n useAutoCompleteContext,\n}\n"],"names":["AutoCompleteContext","createContext","useAutoCompleteContext","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete-context.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-context.tsx"],"sourcesContent":["import { type RefObject, createContext, useContext } from 'react'\n\ntype AutoCompleteContextValue = {\n value: string\n onValueChange: (value: string) => void\n isOpen: boolean\n onOpenChange: (isOpen: boolean) => void\n inputRef: RefObject<HTMLInputElement | null>\n isLoading?: boolean\n}\n\nconst AutoCompleteContext = createContext<AutoCompleteContextValue>(\n {} as AutoCompleteContextValue\n)\n\nconst useAutoCompleteContext = () => useContext(AutoCompleteContext)\n\nexport {\n type AutoCompleteContextValue,\n AutoCompleteContext,\n useAutoCompleteContext,\n}\n"],"names":["AutoCompleteContext","createContext","useAutoCompleteContext","useContext"],"mappings":"sDAWA,IAAMA,EAAsBC,EAC1B,CAAC,GAGGC,EAAyB,IAAMC,EAAWH,U"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{cn as e}from"../../lib/index.js";import{CommandEmpty as o}from"../command.js";import{useAutoCompleteContext as m}from"./autocomplete-context.js";function r({className:r,...n}){let{isLoading:p}=m();return p?null:t(o,{className:e("select-none rounded-sm px-2 py-3 text-center text-sm",r),...n})}export{r as AutoCompleteEmpty};
|
|
2
2
|
//# sourceMappingURL=autocomplete-empty.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete-empty.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-empty.tsx"],"sourcesContent":["import { cn } from '@/lib'\nimport type { ComponentProps } from 'react'\nimport { CommandEmpty } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteEmpty({\n className,\n ...props\n}: ComponentProps<typeof CommandEmpty>) {\n const { isLoading } = useAutoCompleteContext()\n\n if (isLoading) {\n return null\n }\n\n return (\n <CommandEmpty\n className={cn(\n 'select-none rounded-sm px-2 py-3 text-center text-sm',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { AutoCompleteEmpty }\n"],"names":["AutoCompleteEmpty","className","props","isLoading","useAutoCompleteContext","CommandEmpty","cn"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete-empty.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-empty.tsx"],"sourcesContent":["import { cn } from '@/lib'\nimport type { ComponentProps } from 'react'\nimport { CommandEmpty } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteEmpty({\n className,\n ...props\n}: ComponentProps<typeof CommandEmpty>) {\n const { isLoading } = useAutoCompleteContext()\n\n if (isLoading) {\n return null\n }\n\n return (\n <CommandEmpty\n className={cn(\n 'select-none rounded-sm px-2 py-3 text-center text-sm',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { AutoCompleteEmpty }\n"],"names":["AutoCompleteEmpty","className","props","isLoading","useAutoCompleteContext","CommandEmpty","cn"],"mappings":"gMAKA,SAASA,EAAkB,CACzBC,UAAAA,CAAS,CACT,GAAGC,EACiC,EACpC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,WAEtB,AAAID,EACK,KAIP,EAACE,EAAYA,CACX,UAAWC,EACT,uDACAL,GAED,GAAGC,CAAK,A,EAGf,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as e,jsxs as o}from"react/jsx-runtime";import{Command as t}from"cmdk";import{cn as r}from"../../lib/index.js";import{MagnifyingGlassIcon as a}from"@phosphor-icons/react";import{useAutoCompleteContext as n}from"./autocomplete-context.js";function l({className:l,...p}){let{value:i,onValueChange:m,onOpenChange:u,inputRef:d}=n();return o("div",{className:"relative","cmdk-input-wrapper":"","data-slot":"command-input-wrapper",children:[e(a,{className:"-translate-1/2 absolute top-1/2 left-6 size-4 shrink-0 opacity-50"}),e(t.Input,{className:r("flex h-10 w-full rounded-md border border-input bg-background px-3 pl-10 text-sm shadow-xs outline-hidden placeholder:text-muted-foreground disabled:opacity-50",l),...p,ref:d,value:p.value??i,onValueChange:function(e){m?.(e),p.onValueChange?.(e)},"data-slot":"command-input",onFocus:()=>u(!0),onBlur:()=>u(!1)})]})}export{l as AutoCompleteInput};
|
|
2
2
|
//# sourceMappingURL=autocomplete-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete-input.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-input.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from 'cmdk'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib'\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react'\nimport { CommandInput } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteInput({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof CommandInput>) {\n const { value, onValueChange, onOpenChange, inputRef } =\n useAutoCompleteContext()\n\n function handleChange(value: string) {\n onValueChange?.(value)\n props.onValueChange?.(value)\n }\n\n return (\n <div\n className=\"relative\"\n cmdk-input-wrapper=\"\"\n data-slot=\"command-input-wrapper\"\n >\n <MagnifyingGlassIcon className=\"-translate-1/2 absolute top-1/2 left-6 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 pl-10 text-sm shadow-xs outline-hidden placeholder:text-muted-foreground disabled:opacity-50',\n className\n )}\n {...props}\n ref={inputRef}\n value={props.value ?? value}\n onValueChange={handleChange}\n data-slot=\"command-input\"\n onFocus={() => onOpenChange(true)}\n onBlur={() => onOpenChange(false)}\n />\n </div>\n )\n}\n\nexport { AutoCompleteInput }\n"],"names":["AutoCompleteInput","className","props","value","onValueChange","onOpenChange","inputRef","useAutoCompleteContext","MagnifyingGlassIcon","CommandPrimitive","cn"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete-input.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-input.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from 'cmdk'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nimport { cn } from '@/lib'\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react'\nimport { CommandInput } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteInput({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof CommandInput>) {\n const { value, onValueChange, onOpenChange, inputRef } =\n useAutoCompleteContext()\n\n function handleChange(value: string) {\n onValueChange?.(value)\n props.onValueChange?.(value)\n }\n\n return (\n <div\n className=\"relative\"\n cmdk-input-wrapper=\"\"\n data-slot=\"command-input-wrapper\"\n >\n <MagnifyingGlassIcon className=\"-translate-1/2 absolute top-1/2 left-6 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 pl-10 text-sm shadow-xs outline-hidden placeholder:text-muted-foreground disabled:opacity-50',\n className\n )}\n {...props}\n ref={inputRef}\n value={props.value ?? value}\n onValueChange={handleChange}\n data-slot=\"command-input\"\n onFocus={() => onOpenChange(true)}\n onBlur={() => onOpenChange(false)}\n />\n </div>\n )\n}\n\nexport { AutoCompleteInput }\n"],"names":["AutoCompleteInput","className","props","value","onValueChange","onOpenChange","inputRef","useAutoCompleteContext","MagnifyingGlassIcon","CommandPrimitive","cn"],"mappings":"wPAQA,SAASA,EAAkB,CACzBC,UAAAA,CAAS,CACT,GAAGC,EAC2C,EAC9C,GAAM,CAAEC,MAAAA,CAAK,CAAEC,cAAAA,CAAa,CAAEC,aAAAA,CAAY,CAAEC,SAAAA,CAAQ,CAAE,CACpDC,IAOF,OACE,EAAC,OACC,UAAU,WACV,qBAAmB,GACnB,YAAU,wB,UAEV,EAACC,EAAmBA,CAAC,UAAU,mE,GAC/B,EAACC,EAAAA,KAAsB,EACrB,UAAWC,EACT,kKACAT,GAED,GAAGC,CAAK,CACT,IAAKI,EACL,MAAOJ,EAAM,KAAK,EAAIC,EACtB,cApBN,SAAsBA,CAAa,EACjCC,IAAgBD,GAChBD,EAAM,aAAa,GAAGC,EACxB,EAkBM,YAAU,gBACV,QAAS,IAAME,EAAa,IAC5B,OAAQ,IAAMA,EAAa,G,KAInC,Q"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import
|
|
2
|
+
import{jsx as e,jsxs as o}from"react/jsx-runtime";import{Check as t}from"@phosphor-icons/react";import{cn as r}from"../../lib/index.js";import{CommandItem as m}from"../command.js";import{useAutoCompleteContext as n}from"./autocomplete-context.js";function l(l){let{value:a,onValueChange:i,onOpenChange:p}=n(),c=a===l.value;return o(m,{...l,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:function(){i?.(l.value??""),p(!1)},className:r("flex w-full items-center gap-2",!c&&"pl-8"),children:[c&&e(t,{className:"size-4"}),l.value]})}export{l as AutocompleteItem};
|
|
3
3
|
//# sourceMappingURL=autocomplete-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete-item.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-item.tsx"],"sourcesContent":["\n\nimport { Check } from '@phosphor-icons/react'\nimport type { ComponentProps } from 'react'\n\nimport { cn } from '@/lib'\nimport { CommandItem } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutocompleteItem(props: ComponentProps<typeof CommandItem>) {\n const { value, onValueChange, onOpenChange } = useAutoCompleteContext()\n\n const isSelected = value === props.value\n\n function handleSelect() {\n onValueChange?.(props.value ?? '')\n onOpenChange(false)\n }\n\n return (\n <CommandItem\n {...props}\n onMouseDown={event => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onSelect={handleSelect}\n className={cn('flex w-full items-center gap-2', !isSelected && 'pl-8')}\n >\n {isSelected && <Check className=\"size-4\" />}\n {props.value}\n </CommandItem>\n )\n}\n\nexport { AutocompleteItem }\n"],"names":["AutocompleteItem","props","value","onValueChange","onOpenChange","useAutoCompleteContext","isSelected","CommandItem","event","cn","Check"],"mappings":";
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete-item.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-item.tsx"],"sourcesContent":["\n\nimport { Check } from '@phosphor-icons/react'\nimport type { ComponentProps } from 'react'\n\nimport { cn } from '@/lib'\nimport { CommandItem } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutocompleteItem(props: ComponentProps<typeof CommandItem>) {\n const { value, onValueChange, onOpenChange } = useAutoCompleteContext()\n\n const isSelected = value === props.value\n\n function handleSelect() {\n onValueChange?.(props.value ?? '')\n onOpenChange(false)\n }\n\n return (\n <CommandItem\n {...props}\n onMouseDown={event => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onSelect={handleSelect}\n className={cn('flex w-full items-center gap-2', !isSelected && 'pl-8')}\n >\n {isSelected && <Check className=\"size-4\" />}\n {props.value}\n </CommandItem>\n )\n}\n\nexport { AutocompleteItem }\n"],"names":["AutocompleteItem","props","value","onValueChange","onOpenChange","useAutoCompleteContext","isSelected","CommandItem","event","cn","Check"],"mappings":";uPASA,SAASA,EAAiBC,CAAyC,EACjE,GAAM,CAAEC,MAAAA,CAAK,CAAEC,cAAAA,CAAa,CAAEC,aAAAA,CAAY,CAAE,CAAGC,IAEzCC,EAAaJ,IAAUD,EAAM,KAAK,CAOxC,OACE,EAACM,EAAWA,CACT,GAAGN,CAAK,CACT,YAAaO,IACXA,EAAM,cAAc,GACpBA,EAAM,eAAe,EACvB,EACA,SAZJ,WACEL,IAAgBF,EAAM,KAAK,EAAI,IAC/BG,EAAa,GACf,EAUI,UAAWK,EAAG,iCAAkC,CAACH,GAAc,Q,UAE9DA,GAAc,EAACI,EAAKA,CAAC,UAAU,Q,GAC/BT,EAAM,KAAK,C,EAGlB,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{CommandGroup as o}from"../command.js";import{useAutoCompleteContext as r}from"./autocomplete-context.js";function e({children:e,...m}){let{isLoading:i}=r();return t(o,{...m,children:e})}export{e as AutoCompleteList};
|
|
2
2
|
//# sourceMappingURL=autocomplete-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete-list.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-list.tsx"],"sourcesContent":["import type { ComponentProps } from 'react'\n\nimport { CommandGroup } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteList({\n children,\n ...props\n}: ComponentProps<typeof CommandGroup>) {\n const { isLoading } = useAutoCompleteContext()\n\n if (isLoading) {\n null\n }\n\n return <CommandGroup {...props}>{children}</CommandGroup>\n}\n\nexport { AutoCompleteList }\n"],"names":["AutoCompleteList","children","props","isLoading","useAutoCompleteContext","CommandGroup"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete-list.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete-list.tsx"],"sourcesContent":["import type { ComponentProps } from 'react'\n\nimport { CommandGroup } from '../command'\nimport { useAutoCompleteContext } from './autocomplete-context'\n\nfunction AutoCompleteList({\n children,\n ...props\n}: ComponentProps<typeof CommandGroup>) {\n const { isLoading } = useAutoCompleteContext()\n\n if (isLoading) {\n null\n }\n\n return <CommandGroup {...props}>{children}</CommandGroup>\n}\n\nexport { AutoCompleteList }\n"],"names":["AutoCompleteList","children","props","isLoading","useAutoCompleteContext","CommandGroup"],"mappings":"wJAKA,SAASA,EAAiB,CACxBC,SAAAA,CAAQ,CACR,GAAGC,EACiC,EACpC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,IAMtB,OAAO,EAACC,EAAYA,CAAE,GAAGH,CAAK,C,SAAGD,C,EACnC,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{Command as e}from"cmdk";import{useRef as o,useState as t}from"react";import{AutoCompleteContext as m}from"./autocomplete-context.js";function n({children:n,value:i="",onValueChange:c,isLoading:l=!1}){let[p,u]=t(!1),a=o(null);return r(m.Provider,{value:{value:i,onValueChange:c,isOpen:p,onOpenChange:u,inputRef:a,isLoading:l},children:r(e,{children:n})})}export{n as AutoComplete};
|
|
2
2
|
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\autocomplete\\autocomplete.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from 'cmdk'\nimport { type ReactNode, useRef, useState } from 'react'\n\nimport { AutoCompleteContext } from './autocomplete-context'\n\ninterface AutoCompleteProps {\n children: ReactNode\n value: string\n onValueChange: (value: string) => void\n isLoading?: boolean\n}\n\nexport function AutoComplete({\n children,\n value = '',\n onValueChange,\n isLoading = false,\n}: AutoCompleteProps) {\n const [isOpen, setIsOpen] = useState(false)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <AutoCompleteContext.Provider\n value={{\n value,\n onValueChange,\n isOpen,\n onOpenChange: setIsOpen,\n inputRef,\n isLoading,\n }}\n >\n <CommandPrimitive>{children}</CommandPrimitive>\n </AutoCompleteContext.Provider>\n )\n}\n"],"names":["AutoComplete","children","value","onValueChange","isLoading","isOpen","setIsOpen","useState","inputRef","useRef","AutoCompleteContext","CommandPrimitive"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\autocomplete\\autocomplete.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/autocomplete/autocomplete.tsx"],"sourcesContent":["import { Command as CommandPrimitive } from 'cmdk'\nimport { type ReactNode, useRef, useState } from 'react'\n\nimport { AutoCompleteContext } from './autocomplete-context'\n\ninterface AutoCompleteProps {\n children: ReactNode\n value: string\n onValueChange: (value: string) => void\n isLoading?: boolean\n}\n\nexport function AutoComplete({\n children,\n value = '',\n onValueChange,\n isLoading = false,\n}: AutoCompleteProps) {\n const [isOpen, setIsOpen] = useState(false)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <AutoCompleteContext.Provider\n value={{\n value,\n onValueChange,\n isOpen,\n onOpenChange: setIsOpen,\n inputRef,\n isLoading,\n }}\n >\n <CommandPrimitive>{children}</CommandPrimitive>\n </AutoCompleteContext.Provider>\n )\n}\n"],"names":["AutoComplete","children","value","onValueChange","isLoading","isOpen","setIsOpen","useState","inputRef","useRef","AutoCompleteContext","CommandPrimitive"],"mappings":"oLAYO,SAASA,EAAa,CAC3BC,SAAAA,CAAQ,CACRC,MAAAA,EAAQ,EAAE,CACVC,cAAAA,CAAa,CACbC,UAAAA,EAAY,EAAK,CACC,EAClB,GAAM,CAACC,EAAQC,EAAU,CAAGC,EAAS,IAE/BC,EAAWC,EAAyB,MAE1C,OACE,EAACC,EAAoB,QAAQ,EAC3B,MAAO,CACLR,MAAAA,EACAC,cAAAA,EACAE,OAAAA,EACA,aAAcC,EACdE,SAAAA,EACAJ,UAAAA,CACF,E,SAEA,EAACO,EAAgBA,C,SAAEV,C,IAGzB,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as a}from"react/jsx-runtime";import{Fallback as t,Image as r,Root as e}from"@radix-ui/react-avatar";import{cn as l}from"../lib/utils.js";function i({className:t,...r}){return a(e,{"data-slot":"avatar",className:l("relative flex size-8 shrink-0 overflow-hidden rounded-full",t),...r})}function s({className:t,...e}){return a(r,{"data-slot":"avatar-image",className:l("aspect-square size-full",t),...e})}function u({className:r,...e}){return a(t,{"data-slot":"avatar-fallback",className:l("flex size-full items-center justify-center rounded-full bg-muted",r),...e})}export{i as Avatar,u as AvatarFallback,s as AvatarImage};
|
|
2
2
|
//# sourceMappingURL=avatar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\avatar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/avatar.tsx"],"sourcesContent":["import * as AvatarPrimitive from '@radix-ui/react-avatar'\nimport type { ComponentProps } from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n 'relative flex size-8 shrink-0 overflow-hidden rounded-full',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full', className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'flex size-full items-center justify-center rounded-full bg-muted',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":["Avatar","className","props","AvatarPrimitive","cn","AvatarImage","AvatarFallback"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components\\avatar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/avatar.tsx"],"sourcesContent":["import * as AvatarPrimitive from '@radix-ui/react-avatar'\nimport type { ComponentProps } from 'react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Avatar({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n 'relative flex size-8 shrink-0 overflow-hidden rounded-full',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full', className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'flex size-full items-center justify-center rounded-full bg-muted',\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"],"names":["Avatar","className","props","AvatarPrimitive","cn","AvatarImage","AvatarFallback"],"mappings":"oJAKA,SAASA,EAAO,CACdC,UAAAA,CAAS,CACT,GAAGC,EACyC,EAC5C,OACE,EAACC,EAAoB,CACnB,YAAU,SACV,UAAWC,EACT,6DACAH,GAED,GAAGC,CAAK,A,EAGf,CAEA,SAASG,EAAY,CACnBJ,UAAAA,CAAS,CACT,GAAGC,EAC0C,EAC7C,OACE,EAACC,EAAqB,CACpB,YAAU,eACV,UAAWC,EAAG,0BAA2BH,GACxC,GAAGC,CAAK,A,EAGf,CAEA,SAASI,EAAe,CACtBL,UAAAA,CAAS,CACT,GAAGC,EAC6C,EAChD,OACE,EAACC,EAAwB,CACvB,YAAU,kBACV,UAAWC,EACT,mEACAH,GAED,GAAGC,CAAK,A,EAGf,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{tv as t}from"../lib/utils.js";import{Slot as e}from"@radix-ui/react-slot";let n=t({base:"inline-flex items-center rounded-md border px-1.5 py-0.5 font-semibold text-xs transition-colors focus:outline-none focus:ring-1 focus:ring-ring",variants:{variant:{default:"border-transparent bg-primary text-white hover:bg-primary/80",secondary:"border-transparent bg-muted text-foreground hover:bg-muted/80",destructive:"border-transparent bg-destructive text-white hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function o({className:t,asChild:o,variant:a,...i}){return r(o?e:"span",{className:n({className:t,variant:a}),...i})}export{o as Badge,n as badgeVariants};
|
|
2
2
|
//# sourceMappingURL=badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\badge.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/badge.tsx"],"sourcesContent":["import { ComponentProps, JSX } from 'react'\r\n\r\nimport { VariantProps, tv } from '@/lib/utils'\r\nimport { Slot } from '@radix-ui/react-slot'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Variant: Badge\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst badgeVariants = tv({\r\n base: 'inline-flex items-center rounded-md border px-1.5 py-0.5 font-semibold text-xs transition-colors focus:outline-none focus:ring-1 focus:ring-ring',\r\n variants: {\r\n variant: {\r\n default: 'border-transparent bg-primary text-white hover:bg-primary/80',\r\n secondary:\r\n 'border-transparent bg-muted text-foreground hover:bg-muted/80',\r\n destructive: 'border-transparent bg-destructive text-white hover:bg-destructive/80',\r\n outline: 'text-foreground',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Badge\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Badge({\r\n className,\r\n asChild,\r\n variant,\r\n ...props\r\n}: ComponentProps<'span'> &\r\n VariantProps<typeof badgeVariants> & {\r\n asChild?: boolean\r\n }): JSX.Element {\r\n const Component = asChild ? Slot : 'span'\r\n\r\n return (\r\n <Component className={badgeVariants({ className, variant })} {...props} />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { Badge, badgeVariants }\r\n"],"names":["badgeVariants","tv","Badge","className","asChild","variant","props","
|
|
1
|
+
{"version":3,"file":"components\\badge.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/badge.tsx"],"sourcesContent":["import { ComponentProps, JSX } from 'react'\r\n\r\nimport { VariantProps, tv } from '@/lib/utils'\r\nimport { Slot } from '@radix-ui/react-slot'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Variant: Badge\r\n * -------------------------------------------------------------------------- */\r\n\r\nconst badgeVariants = tv({\r\n base: 'inline-flex items-center rounded-md border px-1.5 py-0.5 font-semibold text-xs transition-colors focus:outline-none focus:ring-1 focus:ring-ring',\r\n variants: {\r\n variant: {\r\n default: 'border-transparent bg-primary text-white hover:bg-primary/80',\r\n secondary:\r\n 'border-transparent bg-muted text-foreground hover:bg-muted/80',\r\n destructive: 'border-transparent bg-destructive text-white hover:bg-destructive/80',\r\n outline: 'text-foreground',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n})\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Badge\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Badge({\r\n className,\r\n asChild,\r\n variant,\r\n ...props\r\n}: ComponentProps<'span'> &\r\n VariantProps<typeof badgeVariants> & {\r\n asChild?: boolean\r\n }): JSX.Element {\r\n const Component = asChild ? Slot : 'span'\r\n\r\n return (\r\n <Component className={badgeVariants({ className, variant })} {...props} />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { Badge, badgeVariants }\r\n"],"names":["badgeVariants","tv","Badge","className","asChild","variant","props","Slot","Component"],"mappings":"yHASA,IAAMA,EAAgBC,EAAG,CACvB,KAAM,mJACN,SAAU,CACR,QAAS,CACP,QAAS,+DACT,UACE,gEACF,YAAa,uEACb,QAAS,iBACX,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,GAMA,SAASC,EAAM,CACbC,UAAAA,CAAS,CACTC,QAAAA,CAAO,CACPC,QAAAA,CAAO,CACP,GAAGC,EAIF,EAGD,OACE,EAHgBF,EAAUG,EAAO,OAGhCC,CAAU,UAAWR,EAAc,CAAEG,UAAAA,EAAWE,QAAAA,CAAQ,GAAK,GAAGC,CAAK,A,EAE1E,Q"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as r,jsxs as e}from"react/jsx-runtime";import{Slot as a}from"@radix-ui/react-slot";import{cn as t}from"../lib/utils.js";import{ChevronRightIcon as s}from"lucide-react";import l from"next/link";function i({...e}){return r("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function n({className:e,...a}){return r("ol",{className:t("flex flex-wrap items-center gap-1.5 break-words text-gbm-dark sm:gap-2.5",e),"data-slot":"breadcrumb-list",...a})}function o({className:e,...a}){return r("li",{className:t("inline-flex items-center gap-1.5 text-gray-500 last:h-8 last:rounded last:border last:border-stroke last:bg-header last:px-2.5 last:font-medium last:text-gbm-dark last:opacity-100",e),"data-slot":"breadcrumb-item",...a})}function c({asChild:e,className:s,...i}){return r(e?a:l,{className:t("hover:underline",s),"data-slot":"breadcrumb-link",...i})}function d({className:e,...a}){return r("span",{"aria-current":"page","aria-disabled":"true",className:e,"data-slot":"breadcrumb-page",role:"link",...a})}function m({children:e,className:a,...l}){return r("li",{"aria-hidden":"true","data-slot":"breadcrumb-separator",role:"presentation",className:t("[&>svg]:size-4.5",a),...l,children:e??r(s,{className:"stroke-2"})})}function u({className:a,...s}){return e("span",{"aria-hidden":"true",className:t("flex items-center justify-center",a),"data-slot":"breadcrumb-ellipsis",role:"presentation",...s,children:[r("span",{children:"..."}),r("span",{className:"sr-only",children:"More"})]})}export{i as Breadcrumb,u as BreadcrumbEllipsis,o as BreadcrumbItem,c as BreadcrumbLink,n as BreadcrumbList,d as BreadcrumbPage,m as BreadcrumbSeparator};
|
|
2
2
|
//# sourceMappingURL=breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\breadcrumb.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/breadcrumb.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\r\nimport { ComponentProps, JSX, ReactNode } from 'react'\r\n\r\nimport { cn } from '@/lib/utils'\r\nimport { ChevronRightIcon } from 'lucide-react'\r\nimport Link from 'next/link'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Breadcrumb\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Breadcrumb({\r\n ...props\r\n}: ComponentProps<'nav'> & {\r\n separator?: ReactNode\r\n}): JSX.Element {\r\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbList\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbList({\r\n className,\r\n ...props\r\n}: ComponentProps<'ol'>): JSX.Element {\r\n return (\r\n <ol\r\n className={cn(\r\n 'flex flex-wrap items-center gap-1.5 break-words text-gbm-dark sm:gap-2.5',\r\n className\r\n )}\r\n data-slot=\"breadcrumb-list\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbItem({\r\n className,\r\n ...props\r\n}: ComponentProps<'li'>): JSX.Element {\r\n return (\r\n <li\r\n className={cn(\r\n 'inline-flex items-center gap-1.5 text-gray-500 last:h-8 last:rounded last:border last:border-stroke last:bg-header last:px-2.5 last:font-medium last:text-gbm-dark last:opacity-100',\r\n className\r\n )}\r\n data-slot=\"breadcrumb-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbLink\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbLink({\r\n asChild,\r\n className,\r\n ...props\r\n}: ComponentProps<typeof Link> & {\r\n asChild?: boolean\r\n}): JSX.Element {\r\n const Component = asChild ? Slot : Link\r\n\r\n return (\r\n <Component\r\n className={cn('hover:underline', className)}\r\n data-slot=\"breadcrumb-link\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbPage\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbPage({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n aria-current=\"page\"\r\n aria-disabled=\"true\"\r\n className={className}\r\n data-slot=\"breadcrumb-page\"\r\n role=\"link\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbSeparator\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbSeparator({\r\n children,\r\n className,\r\n ...props\r\n}: ComponentProps<'li'>): JSX.Element {\r\n return (\r\n <li\r\n aria-hidden=\"true\"\r\n data-slot=\"breadcrumb-separator\"\r\n role=\"presentation\"\r\n className={cn('[&>svg]:size-4.5', className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRightIcon className=\"stroke-2\" />}\r\n </li>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbEllipsis\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbEllipsis({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn('flex items-center justify-center', className)}\r\n data-slot=\"breadcrumb-ellipsis\"\r\n role=\"presentation\"\r\n {...props}\r\n >\r\n <span>...</span>\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis,\r\n}\r\n"],"names":["Breadcrumb","props","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","
|
|
1
|
+
{"version":3,"file":"components\\breadcrumb.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/breadcrumb.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\r\nimport { ComponentProps, JSX, ReactNode } from 'react'\r\n\r\nimport { cn } from '@/lib/utils'\r\nimport { ChevronRightIcon } from 'lucide-react'\r\nimport Link from 'next/link'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Breadcrumb\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Breadcrumb({\r\n ...props\r\n}: ComponentProps<'nav'> & {\r\n separator?: ReactNode\r\n}): JSX.Element {\r\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbList\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbList({\r\n className,\r\n ...props\r\n}: ComponentProps<'ol'>): JSX.Element {\r\n return (\r\n <ol\r\n className={cn(\r\n 'flex flex-wrap items-center gap-1.5 break-words text-gbm-dark sm:gap-2.5',\r\n className\r\n )}\r\n data-slot=\"breadcrumb-list\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbItem({\r\n className,\r\n ...props\r\n}: ComponentProps<'li'>): JSX.Element {\r\n return (\r\n <li\r\n className={cn(\r\n 'inline-flex items-center gap-1.5 text-gray-500 last:h-8 last:rounded last:border last:border-stroke last:bg-header last:px-2.5 last:font-medium last:text-gbm-dark last:opacity-100',\r\n className\r\n )}\r\n data-slot=\"breadcrumb-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbLink\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbLink({\r\n asChild,\r\n className,\r\n ...props\r\n}: ComponentProps<typeof Link> & {\r\n asChild?: boolean\r\n}): JSX.Element {\r\n const Component = asChild ? Slot : Link\r\n\r\n return (\r\n <Component\r\n className={cn('hover:underline', className)}\r\n data-slot=\"breadcrumb-link\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbPage\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbPage({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n aria-current=\"page\"\r\n aria-disabled=\"true\"\r\n className={className}\r\n data-slot=\"breadcrumb-page\"\r\n role=\"link\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbSeparator\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbSeparator({\r\n children,\r\n className,\r\n ...props\r\n}: ComponentProps<'li'>): JSX.Element {\r\n return (\r\n <li\r\n aria-hidden=\"true\"\r\n data-slot=\"breadcrumb-separator\"\r\n role=\"presentation\"\r\n className={cn('[&>svg]:size-4.5', className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRightIcon className=\"stroke-2\" />}\r\n </li>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: BreadcrumbEllipsis\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction BreadcrumbEllipsis({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn('flex items-center justify-center', className)}\r\n data-slot=\"breadcrumb-ellipsis\"\r\n role=\"presentation\"\r\n {...props}\r\n >\r\n <span>...</span>\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis,\r\n}\r\n"],"names":["Breadcrumb","props","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","Link","Component","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRightIcon","BreadcrumbEllipsis"],"mappings":"4MAWA,SAASA,EAAW,CAClB,GAAGC,EAGJ,EACC,OAAO,EAAC,OAAI,aAAW,aAAa,YAAU,aAAc,GAAGA,CAAK,A,EACtE,CAMA,SAASC,EAAe,CACtBC,UAAAA,CAAS,CACT,GAAGF,EACkB,EACrB,OACE,EAAC,MACC,UAAWG,EACT,2EACAD,GAEF,YAAU,kBACT,GAAGF,CAAK,A,EAGf,CAMA,SAASI,EAAe,CACtBF,UAAAA,CAAS,CACT,GAAGF,EACkB,EACrB,OACE,EAAC,MACC,UAAWG,EACT,sLACAD,GAEF,YAAU,kBACT,GAAGF,CAAK,A,EAGf,CAMA,SAASK,EAAe,CACtBC,QAAAA,CAAO,CACPJ,UAAAA,CAAS,CACT,GAAGF,EAGJ,EAGC,OACE,EAHgBM,EAAUC,EAAOC,EAGhCC,CACC,UAAWN,EAAG,kBAAmBD,GACjC,YAAU,kBACT,GAAGF,CAAK,A,EAGf,CAMA,SAASU,EAAe,CACtBR,UAAAA,CAAS,CACT,GAAGF,EACoB,EACvB,OACE,EAAC,QACC,eAAa,OACb,gBAAc,OACd,UAAWE,EACX,YAAU,kBACV,KAAK,OACJ,GAAGF,CAAK,A,EAGf,CAMA,SAASW,EAAoB,CAC3BC,SAAAA,CAAQ,CACRV,UAAAA,CAAS,CACT,GAAGF,EACkB,EACrB,OACE,EAAC,MACC,cAAY,OACZ,YAAU,uBACV,KAAK,eACL,UAAWG,EAAG,mBAAoBD,GACjC,GAAGF,CAAK,C,SAERY,GAAY,EAACC,EAAgBA,CAAC,UAAU,U,IAG/C,CAMA,SAASC,EAAmB,CAC1BZ,UAAAA,CAAS,CACT,GAAGF,EACoB,EACvB,OACE,EAAC,QACC,cAAY,OACZ,UAAWG,EAAG,mCAAoCD,GAClD,YAAU,sBACV,KAAK,eACJ,GAAGF,CAAK,C,UAET,EAAC,Q,SAAK,K,GACN,EAAC,QAAK,UAAU,U,SAAU,M,KAGhC,Q"}
|