{"version":3,"sources":["../layouts/sidebar1/app-sidebar.tsx"],"sourcesContent":["\"use client\";\nimport * as React from 'react';\nimport { NavMenus } from './nav-menus';\nimport { NavUser, INavUser, INavUserMenuItem } from './nav-user';\nimport { ContextSwitcher, INavContext } from './context-switcher';\nimport { INavMenu } from './nav-menus';\nimport { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarRail } from '../../components/ui/sidebar';\nimport { Button } from '../../components/ui/button';\n\nexport interface ISidebarContext {\n  title?: string;\n  addText?: string;\n  items?: INavContext[];\n  canAdd?: boolean;\n}\n\nexport interface ISidebarData {\n  user?: INavUser;\n  context?: ISidebarContext;\n  menus: INavMenu[];\n  userMenus: INavUserMenuItem[];\n  events?: {\n    login?: () => void;\n    logout?: (user: INavUser) => void;\n    newContext?: () => void;\n    contextSelect?: (context: INavContext) => void;\n  };\n}\n\nexport function AppSidebar({\n  ...props\n}: React.ComponentProps<typeof Sidebar> & {\n  data: ISidebarData;\n  aslink: React.ElementType;\n}) {\n  const { data, aslink, ...rest } = props;\n  const { context } = data;\n\n  return (\n    <Sidebar collapsible=\"icon\" {...rest}>\n      {context?.items && context.items.length > 0 && (\n        <SidebarHeader>\n          <ContextSwitcher\n            items={context.items}\n            title={context.title}\n            newContextText={context.addText}\n            canAdd={context.canAdd}\n            onContextAdd={() => {\n              if (data.events?.newContext) {\n                data.events.newContext();\n              }\n            }}\n            onContextSelected={(context: INavContext) => {\n              if (data.events?.contextSelect) {\n                data.events.contextSelect(context);\n              }\n            }}\n          />\n        </SidebarHeader>\n      )}\n\n      <SidebarContent>\n        <NavMenus menus={data.menus} aslink={aslink} />\n      </SidebarContent>\n\n      <SidebarFooter>\n        {data.user ? (\n          <NavUser user={data.user} menus={data.userMenus} aslink={aslink} onLogout={data.events?.logout} />\n        ) : (\n          <Button\n            variant=\"action\"\n            onClick={() => {\n              if (data.events?.login) {\n                data.events.login();\n              }\n            }}\n          >\n            Sign in\n          </Button>\n        )}\n      </SidebarFooter>\n\n      <SidebarRail />\n    </Sidebar>\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,YAAY,WAAW;AA4BhB,SAAS,WAAW,IAKxB;AALwB,MACtB,kBADsB,IACtB;AA9BL;AAmCE,QAAkCA,MAAA,OAA1B,QAAM,OAnChB,IAmCoCA,KAAT,iBAASA,KAAT,CAAjB,QAAM;AACd,QAAM,EAAE,QAAQ,IAAI;AAEpB,SACE,oCAAC,0BAAQ,aAAY,UAAW,QAC7B,mCAAS,UAAS,QAAQ,MAAM,SAAS,KACxC,oCAAC,qBACC;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,QAAQ;AAAA,MACf,OAAO,QAAQ;AAAA,MACf,gBAAgB,QAAQ;AAAA,MACxB,QAAQ,QAAQ;AAAA,MAChB,cAAc,MAAM;AA/ChC,YAAAA;AAgDc,aAAIA,MAAA,KAAK,WAAL,gBAAAA,IAAa,YAAY;AAC3B,eAAK,OAAO,WAAW;AAAA,QACzB;AAAA,MACF;AAAA,MACA,mBAAmB,CAACC,aAAyB;AApDzD,YAAAD;AAqDc,aAAIA,MAAA,KAAK,WAAL,gBAAAA,IAAa,eAAe;AAC9B,eAAK,OAAO,cAAcC,QAAO;AAAA,QACnC;AAAA,MACF;AAAA;AAAA,EACF,CACF,GAGF,oCAAC,sBACC,oCAAC,YAAS,OAAO,KAAK,OAAO,QAAgB,CAC/C,GAEA,oCAAC,qBACE,KAAK,OACJ,oCAAC,WAAQ,MAAM,KAAK,MAAM,OAAO,KAAK,WAAW,QAAgB,WAAU,UAAK,WAAL,mBAAa,QAAQ,IAEhG;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MAAM;AAvE3B,YAAAD;AAwEc,aAAIA,MAAA,KAAK,WAAL,gBAAAA,IAAa,OAAO;AACtB,eAAK,OAAO,MAAM;AAAA,QACpB;AAAA,MACF;AAAA;AAAA,IACD;AAAA,EAED,CAEJ,GAEA,oCAAC,iBAAY,CACf;AAEJ;","names":["_a","context"]}