admin-ui-starter-kit 0.4.2 → 0.4.3
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/.agents/skills/component-library-rules/SKILL.md +7 -1
- package/.agents/skills/component-library-rules/references/base-wrapper.md +24 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +4 -3
- package/.agents/skills/component-library-rules/references/components/INDEX.md +4 -3
- package/.agents/skills/component-library-rules/references/components/ui__inputs.md +117 -18
- package/.agents/skills/component-library-rules/references/components/ui__layout-primitives.md +71 -0
- package/.agents/skills/component-library-rules/references/components/ui__menus.md +125 -43
- package/.agents/skills/component-library-rules/references/components/ui__overlays.md +117 -42
- package/AGENTS.md +7 -4
- package/README.md +28 -4
- package/dist/_shared/{header-BUAddfdE.js → header-CyBTcM-L.js} +9 -9
- package/dist/_shared/header-CyBTcM-L.js.map +1 -0
- package/dist/_shared/header-kwvkesfq.cjs +2 -0
- package/dist/_shared/header-kwvkesfq.cjs.map +1 -0
- package/dist/_shared/{sidebar-Bl_KRk-S.cjs → sidebar-B_L_dnAe.cjs} +2 -2
- package/dist/_shared/{sidebar-Bl_KRk-S.cjs.map → sidebar-B_L_dnAe.cjs.map} +1 -1
- package/dist/_shared/{sidebar-ux-yk-Ph.js → sidebar-C5DApiDy.js} +26 -19
- package/dist/_shared/{sidebar-ux-yk-Ph.js.map → sidebar-C5DApiDy.js.map} +1 -1
- package/dist/_shared/{sidebar-BML5ZZ5s.js → sidebar-CIlGkVbF.js} +156 -155
- package/dist/_shared/sidebar-CIlGkVbF.js.map +1 -0
- package/dist/_shared/sidebar-D3sK9otF.cjs +2 -0
- package/dist/_shared/sidebar-D3sK9otF.cjs.map +1 -0
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +2 -2
- package/dist/components/base/sidebar/sidebar.d.ts +5 -3
- package/dist/components/base/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +2 -2
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +1 -1
- package/dist/components/ui/alert-dialog.d.ts +19 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +5 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/carousel.d.ts +29 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/direction.d.ts +2 -0
- package/dist/components/ui/direction.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/field.d.ts +25 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/input-otp.d.ts +12 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/kbd.d.ts +4 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/menubar.d.ts +30 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/native-select.d.ts +9 -0
- package/dist/components/ui/native-select.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/showcase/assets/{AreaChart-DUe3j5uB.js → AreaChart-BkAbL-UV.js} +1 -1
- package/dist/showcase/assets/CSPContext-B11tftuK.js +1 -0
- package/dist/showcase/assets/CompositeItem-Dzu0MfUC.js +1 -0
- package/dist/showcase/assets/CompositeRoot-CQvQ_uj2.js +1 -0
- package/dist/showcase/assets/DialogTrigger-BxVhSw4D.js +1 -0
- package/dist/showcase/assets/FieldItemContext-BSFHjS7g.js +1 -0
- package/dist/showcase/assets/LabelableContext-DapqaNeY.js +1 -0
- package/dist/showcase/assets/{PreviewLayout-BG1B5TzA.js → PreviewLayout-CGEkbS-i.js} +1 -1
- package/dist/showcase/assets/RadioGroup-DBA3iBQw.js +1 -0
- package/dist/showcase/assets/Separator-BEMr82IS.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-xN-ruoGR.js +1 -0
- package/dist/showcase/assets/{accordion-BWkuKg77.js → accordion-B-Iy0jKu.js} +3 -3
- package/dist/showcase/assets/accordion-variants-B9GD0oBE.js +1 -0
- package/dist/showcase/assets/{action-menu-BOUHlGba.js → action-menu-CMUF6gPp.js} +1 -1
- package/dist/showcase/assets/{activities-DMDQje7Y.js → activities-C1P9bsJm.js} +2 -2
- package/dist/showcase/assets/{activities-feed-card-B8wpu4F3.js → activities-feed-card-WZUuGHmT.js} +1 -1
- package/dist/showcase/assets/{activity-B-FxNryB.js → activity-BVP5C805.js} +1 -1
- package/dist/showcase/assets/{admin-CAhEeKt_.js → admin-DWOK4sj4.js} +2 -2
- package/dist/showcase/assets/{ai-UioEgJ90.js → ai-Dteb3y6G.js} +2 -2
- package/dist/showcase/assets/{ai-artifact-CUAlhcSX.js → ai-artifact-B0d7GveY.js} +2 -2
- package/dist/showcase/assets/{ai-chat-C_w2PSmy.js → ai-chat-IJ0b2FOw.js} +7 -7
- package/dist/showcase/assets/{ai-elements-DmxqXR6H.js → ai-elements-Cr8GgtEV.js} +3 -3
- package/dist/showcase/assets/{ai-new-PG02TWQq.js → ai-new-BJN9wNvX.js} +2 -2
- package/dist/showcase/assets/{ai-tool-call-BaJx1rR4.js → ai-tool-call-BqlQuR1P.js} +1 -1
- package/dist/showcase/assets/{alert-DIelf1qF.js → alert-2_0J7Vv6.js} +1 -1
- package/dist/showcase/assets/{alert-D7n-kQoO.js → alert-7wEOpEor.js} +1 -1
- package/dist/showcase/assets/{alert-TQCZEcn-.js → alert-C_FOBilU.js} +2 -2
- package/dist/showcase/assets/{api-key-list-CSt4trYG.js → api-key-list-CGV1k52v.js} +2 -2
- package/dist/showcase/assets/app-sidebar-S6oUYO4h.js +1 -0
- package/dist/showcase/assets/arrow-down-VNr82bS3.js +1 -0
- package/dist/showcase/assets/arrow-left-BSVeKWNq.js +1 -0
- package/dist/showcase/assets/arrow-right-D6hTB0Bd.js +1 -0
- package/dist/showcase/assets/arrow-up-p9oA4cIz.js +1 -0
- package/dist/showcase/assets/arrow-up-right-BtlQ62bc.js +1 -0
- package/dist/showcase/assets/{avatar-DLpnivU0.js → avatar-BxcQUuh0.js} +1 -1
- package/dist/showcase/assets/avatar-LGWm52rv.js +1 -0
- package/dist/showcase/assets/{badge-yFoRqbiq.js → badge-COn5psy3.js} +2 -2
- package/dist/showcase/assets/{badge-check-BRAVo7dA.js → badge-check-D2C2BPUT.js} +1 -1
- package/dist/showcase/assets/{bell-Dt3Nz2y2.js → bell-C80n9VRl.js} +1 -1
- package/dist/showcase/assets/{bot-5Ro5Dayc.js → bot-C83bUUi9.js} +1 -1
- package/dist/showcase/assets/{box-mt6TbZO6.js → box-rZ0pA-02.js} +1 -1
- package/dist/showcase/assets/{brain-736080Wh.js → brain-BJtktdVu.js} +1 -1
- package/dist/showcase/assets/{brand-4K8xsJ91.js → brand-CxdIBpyJ.js} +1 -1
- package/dist/showcase/assets/{breadcrumb-CAlApdCw.js → breadcrumb-BZsr_A8k.js} +1 -1
- package/dist/showcase/assets/{breadcrumb-DHeGqoTD.js → breadcrumb-CSU8FvWB.js} +1 -1
- package/dist/showcase/assets/{breadcrumbs-D_lniGJs.js → breadcrumbs-BUm4gHzL.js} +1 -1
- package/dist/showcase/assets/{briefcase-B_Uti-Iu.js → briefcase-0WhUdLn5.js} +1 -1
- package/dist/showcase/assets/{building-2-zgcwuzxP.js → building-2-1D6zVdCI.js} +1 -1
- package/dist/showcase/assets/{button-PmqgeJKm.js → button-C22Gs6y0.js} +2 -2
- package/dist/showcase/assets/{button-group-DAOmmujV.js → button-group-C0Ts4-x3.js} +1 -1
- package/dist/showcase/assets/{buttons-PtpR_v16.js → buttons-Dfn6hmwe.js} +3 -3
- package/dist/showcase/assets/{calendar-DTgagmt7.js → calendar-7a4yQlzJ.js} +1 -1
- package/dist/showcase/assets/{calendar-BiOGjB7a.js → calendar-Bo17POsN.js} +1 -1
- package/dist/showcase/assets/{calendar-C1A98cz0.js → calendar-D6XNDRVQ.js} +1 -1
- package/dist/showcase/assets/{calendar-days-pr8kXiTx.js → calendar-days-C4mG2tOe.js} +1 -1
- package/dist/showcase/assets/{camera-CGKLOOep.js → camera-C16z6v0m.js} +1 -1
- package/dist/showcase/assets/{card-CFIG8Dgg.js → card-BjqRQxxz.js} +1 -1
- package/dist/showcase/assets/{card-CRd07Iun.js → card-IzYmUTpI.js} +2 -2
- package/dist/showcase/assets/{card-primitives-YgCOqVDI.js → card-primitives-BDj4DtS8.js} +1 -1
- package/dist/showcase/assets/{card-radio-group-Du6yaMZ-.js → card-radio-group-7GU9AtWs.js} +1 -1
- package/dist/showcase/assets/{cards-H7ywhTNM.js → cards-DAqpr8CM.js} +8 -8
- package/dist/showcase/assets/{carousel-Dwll5oz1.js → carousel-D1n4Kkoo.js} +4 -4
- package/dist/showcase/assets/{chart-BWnVf-d-.js → chart-D2EGeI3b.js} +5 -5
- package/dist/showcase/assets/{chart-column-DjAyOA-t.js → chart-column-DKcP77Dx.js} +1 -1
- package/dist/showcase/assets/checkbox-BI3gcjED.js +1 -0
- package/dist/showcase/assets/chevron-down-ByPPEdNm.js +1 -0
- package/dist/showcase/assets/chevron-left-BNByuq3g.js +1 -0
- package/dist/showcase/assets/chevron-right-D4pIMCh9.js +1 -0
- package/dist/showcase/assets/chevron-up-Cha879Nz.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-eAgHau5X.js +1 -0
- package/dist/showcase/assets/circle-V5hdlsIn.js +1 -0
- package/dist/showcase/assets/{circle-alert-ysbx8rsZ.js → circle-alert-BW-Btwgh.js} +1 -1
- package/dist/showcase/assets/circle-check-1MSds3Vu.js +1 -0
- package/dist/showcase/assets/circle-check-big-vBWkmhCZ.js +1 -0
- package/dist/showcase/assets/circle-dot-CsD5uXwH.js +1 -0
- package/dist/showcase/assets/{circle-question-mark-Dbi-WTYN.js → circle-question-mark-xYn9p1nL.js} +1 -1
- package/dist/showcase/assets/{circle-x-c5z6-eYV.js → circle-x-VSqZOeGt.js} +1 -1
- package/dist/showcase/assets/clock-3-CP_t59kW.js +1 -0
- package/dist/showcase/assets/clock-9xbB7EnW.js +1 -0
- package/dist/showcase/assets/{code-xml-SoYTMEdm.js → code-xml-CeGA85eB.js} +1 -1
- package/dist/showcase/assets/{collapsible-Cv3oGVkH.js → collapsible-C2W51-wl.js} +2 -2
- package/dist/showcase/assets/collapsible-C4eof15p.js +1 -0
- package/dist/showcase/assets/{combobox-CPC4a_MH.js → combobox-i8o4u6Q0.js} +4 -4
- package/dist/showcase/assets/{command-C37Q471b.js → command-C4F78Ppy.js} +1 -1
- package/dist/showcase/assets/command-wjOXUieO.js +1 -0
- package/dist/showcase/assets/{comment-composer-W0xfh_HP.js → comment-composer-DeURrlgL.js} +1 -1
- package/dist/showcase/assets/comment-item-D07Qk-Nt.js +1 -0
- package/dist/showcase/assets/{comments-BODDdRry.js → comments-Bo-lZU18.js} +2 -2
- package/dist/showcase/assets/{commerce-extras-DsgnTkBH.js → commerce-extras-Cio3xn_B.js} +2 -2
- package/dist/showcase/assets/{commerce-B9MICTY2.js → commerce-jqA58sCZ.js} +2 -2
- package/dist/showcase/assets/{composite-B-19wwf9.js → composite-BQFpnmS9.js} +1 -1
- package/dist/showcase/assets/{contact-card-CqP3YxTq.js → contact-card-4ajPhcd_.js} +2 -2
- package/dist/showcase/assets/{content-container-x2tsQKwH.js → content-container-B83BnjFb.js} +1 -1
- package/dist/showcase/assets/{copyable-DH0w0i_h.js → copyable-DKkroGJ3.js} +3 -3
- package/dist/showcase/assets/{course-card-qpC4JUUM.js → course-card-DShYl03k.js} +2 -2
- package/dist/showcase/assets/{cpu-DjJeD_0Z.js → cpu-BZTsuaUu.js} +1 -1
- package/dist/showcase/assets/{credit-card-CYgRtM77.js → credit-card-CAI3F3HB.js} +1 -1
- package/dist/showcase/assets/{currency-hguqIjWU.js → currency-PXgbngHk.js} +6 -6
- package/dist/showcase/assets/{dark-surfaces-Cj34O9A0.js → dark-surfaces-pSCicdm4.js} +2 -2
- package/dist/showcase/assets/{database-BVwSMeGM.js → database-oHsxHUj-.js} +1 -1
- package/dist/showcase/assets/{date-block-LCTDXG5-.js → date-block-CvCdJr8d.js} +1 -1
- package/dist/showcase/assets/{date-picker-CbYq8wZ7.js → date-picker-Cd5vsEEd.js} +1 -1
- package/dist/showcase/assets/{date-pickers-BaSX23MK.js → date-pickers-CBK-zvSB.js} +4 -4
- package/dist/showcase/assets/{dense-info-kY1QmtaP.js → dense-info-zOdJpez6.js} +2 -2
- package/dist/showcase/assets/{dialog-B85US9Ue.js → dialog-D9-MRCRg.js} +1 -1
- package/dist/showcase/assets/{dialog-iIgfMvTJ.js → dialog-EDw9DvZs.js} +1 -1
- package/dist/showcase/assets/display-CE9JWinr.js +403 -0
- package/dist/showcase/assets/dist-CjZ6RM9v.js +45 -0
- package/dist/showcase/assets/{dollar-sign-DlK6XF_v.js → dollar-sign-BXD_x2mP.js} +1 -1
- package/dist/showcase/assets/{download-B_EY5cGA.js → download-D0ur_d_N.js} +1 -1
- package/dist/showcase/assets/dropdown-menu-Cto8-yDW.js +1 -0
- package/dist/showcase/assets/{dropzone-Bl7RO_Uk.js → dropzone-9Gb4mR4x.js} +1 -1
- package/dist/showcase/assets/{earth-C7n2JAYm.js → earth-BN1w3w7h.js} +1 -1
- package/dist/showcase/assets/{ellipsis-ntuo3ejh.js → ellipsis-DsrebD1Y.js} +1 -1
- package/dist/showcase/assets/{ellipsis-vertical-yH8S83bc.js → ellipsis-vertical-CAiMV7G2.js} +1 -1
- package/dist/showcase/assets/{empty-CY8f7iFe.js → empty-DoJF3uif.js} +1 -1
- package/dist/showcase/assets/{empty-item-Ct7uCr40.js → empty-item-zZ85qI6s.js} +2 -2
- package/dist/showcase/assets/{empty-state-IAAUTn6f.js → empty-state-CGfB7sOE.js} +1 -1
- package/dist/showcase/assets/{empty-state-DlO8SJi8.js → empty-state-Y_4qnNWt.js} +1 -1
- package/dist/showcase/assets/{enhanced-activities-DLwShhof.js → enhanced-activities-B41hAxhb.js} +2 -2
- package/dist/showcase/assets/enhanced-combobox-BOimEW-1.js +1 -0
- package/dist/showcase/assets/{event-calendar-C4KlumlG.js → event-calendar-BjcfC6fM.js} +3 -3
- package/dist/showcase/assets/{event-log-BvUU5Rj8.js → event-log-BhoMXcix.js} +2 -2
- package/dist/showcase/assets/example-Cz_880po.js +1 -0
- package/dist/showcase/assets/{external-link-DuJlM_H4.js → external-link-Cy1-PP8k.js} +1 -1
- package/dist/showcase/assets/{eye-CnRPL_H8.js → eye-C85PNNdH.js} +1 -1
- package/dist/showcase/assets/feature-announcement-_tpahla3.js +34 -0
- package/dist/showcase/assets/{file-Dc5UHkfE.js → file-C8PCBEtY.js} +1 -1
- package/dist/showcase/assets/{file-text-D3AE37vP.js → file-text-DwqbUujq.js} +1 -1
- package/dist/showcase/assets/{filters-CsovNSxS.js → filters-ChqGg_1z.js} +3 -3
- package/dist/showcase/assets/{flag-CJJ43K4x.js → flag-csHQcBml.js} +1 -1
- package/dist/showcase/assets/{folder-open-Dp0sceCi.js → folder-open-BThTng3d.js} +1 -1
- package/dist/showcase/assets/{form-field-Cxm4APa9.js → form-field-B5g_5Zjm.js} +1 -1
- package/dist/showcase/assets/{format-bDaUGCSP.js → format-DrTwpH65.js} +1 -1
- package/dist/showcase/assets/{forms-BrVikK1p.js → forms-BukyUSKs.js} +9 -9
- package/dist/showcase/assets/{frame-CkLEABTd.js → frame-BNKhZVlb.js} +4 -4
- package/dist/showcase/assets/getPseudoElementBounds-DwyQgIj-.js +1 -0
- package/dist/showcase/assets/{gift-Bx8IO1FQ.js → gift-CtM--bDo.js} +1 -1
- package/dist/showcase/assets/{giftcard-cards-CZTXBjv0.js → giftcard-cards-imm4Br0H.js} +2 -2
- package/dist/showcase/assets/{git-branch-D9jt-u1q.js → git-branch-Dl3AzbqP.js} +1 -1
- package/dist/showcase/assets/{global-search-D9XJ747r.js → global-search-Bhl7z_vN.js} +1 -1
- package/dist/showcase/assets/{global-search-C2R_3Pb3.js → global-search-C4yaPFSW.js} +1 -1
- package/dist/showcase/assets/{globe-BJHI134i.js → globe-BCikLfKc.js} +1 -1
- package/dist/showcase/assets/{gradient-card-CV8w2JG5.js → gradient-card-Dh_5ZYv0.js} +2 -2
- package/dist/showcase/assets/{hash-CtBGoIvf.js → hash-C8m0EECO.js} +1 -1
- package/dist/showcase/assets/{header-B3FSlVv4.js → header-BXjw7Lm_.js} +1 -1
- package/dist/showcase/assets/header-notifications-CShSQ8kR.js +1 -0
- package/dist/showcase/assets/{heart-BWZYF4xJ.js → heart-BJVBFZ-j.js} +1 -1
- package/dist/showcase/assets/{house-CAQOnHLO.js → house-C3fXPhlL.js} +1 -1
- package/dist/showcase/assets/{icon-badge-CxvxB8Vd.js → icon-badge-dwVx3Hxf.js} +1 -1
- package/dist/showcase/assets/{image-Byz-p7hT.js → image-gc4qX_7C.js} +1 -1
- package/dist/showcase/assets/{inbox-D4UE_W9O.js → inbox-C0GJ1KEC.js} +1 -1
- package/dist/showcase/assets/{index-Cz4UGUT2.js → index-BQIv1ffM.js} +2 -2
- package/dist/showcase/assets/index-DN3tqopz.css +2 -0
- package/dist/showcase/assets/inertValue-DeVQ2cCe.js +1 -0
- package/dist/showcase/assets/{info-DFu8OfxV.js → info-BimmreJ-.js} +1 -1
- package/dist/showcase/assets/{inline-stat-DqI70yoJ.js → inline-stat-DcNP6bcO.js} +1 -1
- package/dist/showcase/assets/input-DJAWOJEx.js +1 -0
- package/dist/showcase/assets/{input-BPDdWrB1.js → input-NIgvB9CZ.js} +1 -1
- package/dist/showcase/assets/{input-group-BYZYeQ7j.js → input-group-BmqJ20bA.js} +1 -1
- package/dist/showcase/assets/{input-group-YIWmmLJ6.js → input-group-gOUubhee.js} +1 -1
- package/dist/showcase/assets/inputs-Dk8YOVkI.js +155 -0
- package/dist/showcase/assets/{invoice-header-B00JrPAb.js → invoice-header-BnNpWej2.js} +2 -2
- package/dist/showcase/assets/{invoice-items-CUt5D3Wz.js → invoice-items-BdPmW10L.js} +2 -2
- package/dist/showcase/assets/{invoice-mini-CRoaQ9g9.js → invoice-mini-CbSYyHIb.js} +2 -2
- package/dist/showcase/assets/{invoice-table-DYNnDTQl.js → invoice-table-DjnWG3KF.js} +2 -2
- package/dist/showcase/assets/isSameDay-B2KDl_YX.js +1 -0
- package/dist/showcase/assets/isToday-CXNS7ELW.js +1 -0
- package/dist/showcase/assets/{italic-AbetEb3d.js → italic-BRS-PpYL.js} +1 -1
- package/dist/showcase/assets/{item-BJOYyqeO.js → item--6Hx9AXZ.js} +1 -1
- package/dist/showcase/assets/{item-BGA6_5Zh.js → item-BszVRzXj.js} +2 -2
- package/dist/showcase/assets/{item-CbiuwbAN.js → item-YF6wMI9W.js} +1 -1
- package/dist/showcase/assets/{kanban-Br-Yz002.js → kanban-BWBbWLVe.js} +2 -2
- package/dist/showcase/assets/{label-BlCKlLE-.js → label-BgpcD3V6.js} +1 -1
- package/dist/showcase/assets/{languages-CKcUvHnt.js → languages-DDgmIDFe.js} +1 -1
- package/dist/showcase/assets/{layers-CakZLRSD.js → layers-nkkXRmvA.js} +1 -1
- package/dist/showcase/assets/{layout-app-shell-ukDXqPxC.js → layout-app-shell-D3MbPoGC.js} +2 -2
- package/dist/showcase/assets/{layout-auth-BFza65L3.js → layout-auth-DIeRtG0B.js} +4 -4
- package/dist/showcase/assets/{layout-containers-v1jG_b7r.js → layout-containers-Dc3-IAgV.js} +2 -2
- package/dist/showcase/assets/{layout-header-CqBf9wjY.js → layout-header-Cg6GfMST.js} +2 -2
- package/dist/showcase/assets/{layout-page-WJcljCac.js → layout-page-DojPq8S6.js} +2 -2
- package/dist/showcase/assets/layout-primitives-JBSQS72B.js +34 -0
- package/dist/showcase/assets/{layout-sidebar-DL6TLuQC.js → layout-sidebar-C6jUJRhx.js} +2 -2
- package/dist/showcase/assets/{layout-users-B8qpsvV9.js → layout-users-uzPscfo7.js} +2 -2
- package/dist/showcase/assets/{layout-workspace-iOKZ4-9K.js → layout-workspace-B3leaOKl.js} +2 -2
- package/dist/showcase/assets/{lock-Dn4-vUBz.js → lock-DLIcOBUd.js} +1 -1
- package/dist/showcase/assets/{lock-keyhole-M6KZ_7RC.js → lock-keyhole-DY6aV7Mq.js} +1 -1
- package/dist/showcase/assets/{mail-w1nhszbW.js → mail-AES_tOd2.js} +1 -1
- package/dist/showcase/assets/{mail-check-DXqQwivW.js → mail-check-dJTzg2bD.js} +1 -1
- package/dist/showcase/assets/{map-CquesVXo.js → map-CZ2l0iGH.js} +1 -1
- package/dist/showcase/assets/{map-pin-DUl-Lt6t.js → map-pin-0O7GD5Dz.js} +1 -1
- package/dist/showcase/assets/{media-library-CCJBQRPu.js → media-library-CRllxSGQ.js} +3 -3
- package/dist/showcase/assets/mention-inline-suggestions-Dx2Z1GHF.js +1 -0
- package/dist/showcase/assets/{mentions-Ea4pSJqG.js → mentions-CDqqGCE4.js} +2 -2
- package/dist/showcase/assets/menus-CDgE79I5.js +165 -0
- package/dist/showcase/assets/{message-square-B0RnrJV6.js → message-square-CBNI_sf8.js} +1 -1
- package/dist/showcase/assets/{metadata-list-fm8e58ID.js → metadata-list-BoEVt7cX.js} +1 -1
- package/dist/showcase/assets/{metadata-list-DkN9yfTj.js → metadata-list-NtWuY9W8.js} +4 -4
- package/dist/showcase/assets/{metric-guQTLTAa.js → metric-Bx_LWobe.js} +1 -1
- package/dist/showcase/assets/{metric-bar-BydkmggA.js → metric-bar-BldYHNLQ.js} +1 -1
- package/dist/showcase/assets/{metric-grid-BKjrYpt9.js → metric-grid-BDw7w7d2.js} +1 -1
- package/dist/showcase/assets/{metric-trend-chip-DehaJ3nC.js → metric-trend-chip-lSjDkUEo.js} +1 -1
- package/dist/showcase/assets/{metrics-analytics-bar-YjwFT4ae.js → metrics-analytics-bar-CCFhTmQZ.js} +1 -1
- package/dist/showcase/assets/{metrics-analytics-cards-B6DspERM.js → metrics-analytics-cards-C1AjZqJU.js} +2 -2
- package/dist/showcase/assets/{metrics-comparison-Nru5wypZ.js → metrics-comparison-vEE6BtuW.js} +2 -2
- package/dist/showcase/assets/{metrics-heatmap-CcumN0Or.js → metrics-heatmap-DKkz8ibX.js} +2 -2
- package/dist/showcase/assets/{metrics-inline-badge-2WB7w9mz.js → metrics-inline-badge-CZmVnReB.js} +2 -2
- package/dist/showcase/assets/{metrics-kpi-row-jU3hsB3C.js → metrics-kpi-row-s2FYIYB1.js} +2 -2
- package/dist/showcase/assets/{metrics-micro-grid-CaJ99RXL.js → metrics-micro-grid-DDlCl9Ep.js} +2 -2
- package/dist/showcase/assets/{metrics-overview-Sa7z6jct.js → metrics-overview-BgliK2L1.js} +2 -2
- package/dist/showcase/assets/{metrics-stat-cards-PLvMkA0M.js → metrics-stat-cards-Cn5sRZsB.js} +1 -1
- package/dist/showcase/assets/minus-DByvcC8K.js +1 -0
- package/dist/showcase/assets/{money-display-23DKz-jK.js → money-display-DG4IaEaA.js} +1 -1
- package/dist/showcase/assets/{month-year-picker-oEoInnKW.js → month-year-picker-CVurc9L7.js} +1 -1
- package/dist/showcase/assets/{navigation-Dufz6qnF.js → navigation-CHYgQTsY.js} +2 -2
- package/dist/showcase/assets/{navigation-Ds60FMAs.js → navigation-C_6gS4FA.js} +3 -3
- package/dist/showcase/assets/{navigation-extras-DKufT82I.js → navigation-extras-CflOar2P.js} +2 -2
- package/dist/showcase/assets/{onboarding-checklist-DSkS2ktA.js → onboarding-checklist-CYiciKwv.js} +2 -2
- package/dist/showcase/assets/{overlays-BptoR4sm.js → overlays-HrH2wdTK.js} +2 -2
- package/dist/showcase/assets/overlays-cp7VMq3b.js +159 -0
- package/dist/showcase/assets/{package-0ZgMoFm1.js → package-CjcwDJKu.js} +1 -1
- package/dist/showcase/assets/{package-check-CT0dhSM8.js → package-check-CCH3ax-x.js} +1 -1
- package/dist/showcase/assets/{page-action-button-DrHJKFbp.js → page-action-button-Cn5j2_EP.js} +1 -1
- package/dist/showcase/assets/page-header-CkvCF1MQ.js +1 -0
- package/dist/showcase/assets/{pagination-CxuA2zkE.js → pagination-DM5QGPo2.js} +1 -1
- package/dist/showcase/assets/{pagination-DsPLs2Tx.js → pagination-DUzHnhJ6.js} +1 -1
- package/dist/showcase/assets/{paperclip-CDMZ_JAo.js → paperclip-DoqDQQVa.js} +1 -1
- package/dist/showcase/assets/{password-input-BVaUPw7a.js → password-input-CfS4sfCl.js} +1 -1
- package/dist/showcase/assets/{pencil-BouoJ5x7.js → pencil-C2OfFQMj.js} +1 -1
- package/dist/showcase/assets/{phone-DCNFH5yg.js → phone-CLvml_XI.js} +1 -1
- package/dist/showcase/assets/plus-D5swsZCz.js +1 -0
- package/dist/showcase/assets/{popover-menu-CuA8fb7i.js → popover-menu-Bu9q96nE.js} +1 -1
- package/dist/showcase/assets/{popover-CECpX3MQ.js → popover-nCGXR4Yd.js} +1 -1
- package/dist/showcase/assets/popover-xC8qczvP.js +1 -0
- package/dist/showcase/assets/{products-BJHNTW62.js → products-BbSzEFvw.js} +2 -2
- package/dist/showcase/assets/progress-DYfoy7pk.js +1 -0
- package/dist/showcase/assets/{progress-tpxRVOkp.js → progress-ENNwjW3X.js} +1 -1
- package/dist/showcase/assets/{props-table-BR-KjRNe.js → props-table-2pIZzGC-.js} +1 -1
- package/dist/showcase/assets/{props.generated-qdUud3iu.json → props.generated-DggzG-JL.json} +3 -3
- package/dist/showcase/assets/{quote-CN-Sodsj.js → quote-BO1bufuX.js} +1 -1
- package/dist/showcase/assets/{receipt-T8B9lscp.js → receipt-kIVP3kxJ.js} +1 -1
- package/dist/showcase/assets/{receipt-text-CeBruM29.js → receipt-text-BDQIvI4l.js} +1 -1
- package/dist/showcase/assets/{refresh-cw-DnxNcOMm.js → refresh-cw-UdL93poQ.js} +1 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-iFo8AzEr.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-DfiI3G4i.js +1 -0
- package/dist/showcase/assets/{rich-text-editor-Bha0lSKT.js → rich-text-editor-CNtfwLC2.js} +1 -1
- package/dist/showcase/assets/{rich-text-editor-NeOPmoZF.js → rich-text-editor-DB4QWptQ.js} +3 -3
- package/dist/showcase/assets/rotate-ccw-DQPoMfMY.js +1 -0
- package/dist/showcase/assets/{save-AT8JlA8E.js → save-Cd0ZM40i.js} +1 -1
- package/dist/showcase/assets/{schema-form-BpkVygoO.js → schema-form-Cyc6vCVO.js} +2 -2
- package/dist/showcase/assets/{scroll-area-B0wmaMAD.js → scroll-area-B5NZsDdi.js} +1 -1
- package/dist/showcase/assets/scroll-area-BvTq99pz.js +1 -0
- package/dist/showcase/assets/{select-t6dryszf.js → select-BRbyPtx8.js} +1 -1
- package/dist/showcase/assets/select-Dymyvyh6.js +1 -0
- package/dist/showcase/assets/{send-BzGRF4t-.js → send-BWzI7mwi.js} +1 -1
- package/dist/showcase/assets/{separator-BjGdXNcn.js → separator-BsYPzBlF.js} +1 -1
- package/dist/showcase/assets/{separator-DbiGagrP.js → separator-Osp0OJ78.js} +1 -1
- package/dist/showcase/assets/{settings-BSRT_96A.js → settings-DRmWJILI.js} +1 -1
- package/dist/showcase/assets/{sheet-CEuKOBxr.js → sheet-BKsjMYMo.js} +1 -1
- package/dist/showcase/assets/{shield-CcR2q5u_.js → shield-D1EaWJMG.js} +1 -1
- package/dist/showcase/assets/{shield-alert-DhbgXV1X.js → shield-alert-DWsbR2jn.js} +1 -1
- package/dist/showcase/assets/{shield-check-CRbBJXw2.js → shield-check-DUTAPADm.js} +1 -1
- package/dist/showcase/assets/{shopping-bag-B5BzpLV5.js → shopping-bag-XmeqUqk9.js} +1 -1
- package/dist/showcase/assets/sidebar-B5uO9sUB.js +1 -0
- package/dist/showcase/assets/{sidebar.context-BCb20eIt.js → sidebar.context-CRjgeYJL.js} +1 -1
- package/dist/showcase/assets/{skeleton-BeVdks4r.js → skeleton-BtiPkfxB.js} +1 -1
- package/dist/showcase/assets/{skeleton-DijlT51X.js → skeleton-DbybIpkV.js} +1 -1
- package/dist/showcase/assets/slider-vuwVVBby.js +1 -0
- package/dist/showcase/assets/{sliders-horizontal-C8RwUn0S.js → sliders-horizontal-BE_cwUn0.js} +1 -1
- package/dist/showcase/assets/{smart-card-B4P_C0nk.js → smart-card-Dhu_1A_u.js} +1 -1
- package/dist/showcase/assets/{sonner-CLYYRmEW.js → sonner-DZB-G4q5.js} +2 -2
- package/dist/showcase/assets/{sortable.esm-CoekVJlU.js → sortable.esm-YOwRw8Hr.js} +1 -1
- package/dist/showcase/assets/{sparkles-DFJmoAFP.js → sparkles-N8rqKQez.js} +1 -1
- package/dist/showcase/assets/{spinner-DMKANM9S.js → spinner-B5zKCNXu.js} +2 -2
- package/dist/showcase/assets/{spinner-WEI7TMVk.js → spinner-BOjRziLu.js} +1 -1
- package/dist/showcase/assets/{spinner-CeQHboSs.js → spinner-PIr8y8av.js} +1 -1
- package/dist/showcase/assets/{square-pen-CfvmmXYo.js → square-pen-ImRrVwT8.js} +1 -1
- package/dist/showcase/assets/{stacked-avatars-CcCnnUrA.js → stacked-avatars-DnIAc098.js} +1 -1
- package/dist/showcase/assets/{star-DK5onZCp.js → star-BaV-UTPq.js} +1 -1
- package/dist/showcase/assets/startOfDay-CtTeiGV0.js +1 -0
- package/dist/showcase/assets/stringifyLocale-CkHjdQTJ.js +1 -0
- package/dist/showcase/assets/{styles-BStlbPXe.js → styles-Bv0pDLVi.js} +1 -1
- package/dist/showcase/assets/{suggestions-Cd_XUmz3.js → suggestions-QnLPdgnG.js} +2 -2
- package/dist/showcase/assets/switch-DwAS_TXx.js +1 -0
- package/dist/showcase/assets/{switch-arjWj-n7.js → switch-xzxCDtyg.js} +1 -1
- package/dist/showcase/assets/{sync-DorQdMfx.js → sync-LeYxWAap.js} +2 -2
- package/dist/showcase/assets/{table-ClYkDRAk.js → table-BbEFanNu.js} +1 -1
- package/dist/showcase/assets/{table-D9q0odD8.js → table-CVVHBty6.js} +5 -5
- package/dist/showcase/assets/{table-actions-UJbkGb44.js → table-actions-DvI9U67L.js} +1 -1
- package/dist/showcase/assets/tabs-CLcyGwLd.js +1 -0
- package/dist/showcase/assets/{tabs-BENBPFif.js → tabs-ck8y1Bjr.js} +1 -1
- package/dist/showcase/assets/{tags-input-DRlg3zQH.js → tags-input-DmBY2CKI.js} +1 -1
- package/dist/showcase/assets/{text-button-CQvP6Kic.js → text-button-C54O1rZM.js} +1 -1
- package/dist/showcase/assets/{text-link-DT-nOORV.js → text-link-9_mZpq_f.js} +1 -1
- package/dist/showcase/assets/{textarea-BGHGV17m.js → textarea-CHvnWHWH.js} +1 -1
- package/dist/showcase/assets/{textarea-pstF1OBP.js → textarea-jexcMklP.js} +1 -1
- package/dist/showcase/assets/{timelines-D8y-IyxW.js → timelines-uvFVjEQv.js} +2 -2
- package/dist/showcase/assets/toggle-group-B3fORi8i.js +1 -0
- package/dist/showcase/assets/{toggles-dhLpAHSR.js → toggles-Cox6Yk2k.js} +1 -1
- package/dist/showcase/assets/{toggles-group-BJ5Jio2p.js → toggles-group-CSvSPqCB.js} +1 -1
- package/dist/showcase/assets/{trash-2-OsaEm8cc.js → trash-2-CE9bDw49.js} +1 -1
- package/dist/showcase/assets/trending-up-0iJl0XvC.js +1 -0
- package/dist/showcase/assets/{truck-CvvBxBeB.js → truck-DlhOPoCD.js} +1 -1
- package/dist/showcase/assets/{typography-D_99bjSh.js → typography-BotOITw4.js} +17 -17
- package/dist/showcase/assets/{ui-badge-C1bu7wRu.js → ui-badge-hfmO1K3-.js} +2 -2
- package/dist/showcase/assets/{ui-card-Ct1FFUxv.js → ui-card-Aigzxhn3.js} +1 -1
- package/dist/showcase/assets/{ui-table-Dxu9Jjq0.js → ui-table-CKif9sNO.js} +1 -1
- package/dist/showcase/assets/{upload-tray-BeOBVU1z.js → upload-tray-BnKDNrw9.js} +3 -3
- package/dist/showcase/assets/{use-layout-link-BK_oEoBg.js → use-layout-link-BQ6Y9z__.js} +1 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CP1vkwD7.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-J_Rvjwx3.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-BwUOowW2.js +1 -0
- package/dist/showcase/assets/useCompositeItem-D3XOIML-.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-BWfShNPP.js +1 -0
- package/dist/showcase/assets/useControlled-BF8maje6.js +1 -0
- package/dist/showcase/assets/useLabelableId-DxorZ3YW.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-DLUX6CcH.js +1 -0
- package/dist/showcase/assets/useRender-B9zzqKA1.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-BSvL8pKg.js +1 -0
- package/dist/showcase/assets/useValueChanged-DSoTBFAJ.js +1 -0
- package/dist/showcase/assets/user-BZog6aIh.js +1 -0
- package/dist/showcase/assets/{user-plus-MMxrhI4h.js → user-plus-CPxlPoxf.js} +1 -1
- package/dist/showcase/assets/{users-ERTaffcv.js → users-BgXAp2UO.js} +1 -1
- package/dist/showcase/assets/valueToPercent-gleKSaFe.js +1 -0
- package/dist/showcase/assets/{vendor-profile-BAwCE0wP.js → vendor-profile-BLYiDIrO.js} +2 -2
- package/dist/showcase/assets/{video-DJm0ubTE.js → video-YBnCbmIb.js} +1 -1
- package/dist/showcase/assets/{wrench-gaXnvr_b.js → wrench-BFTavxzg.js} +1 -1
- package/dist/showcase/assets/x-D8UN9pOu.js +1 -0
- package/dist/showcase/assets/{zap-DHBVTfYZ.js → zap-DIJUAJEb.js} +1 -1
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +5 -2
- package/dist/_shared/header-BUAddfdE.js.map +0 -1
- package/dist/_shared/header-BnxWOiNm.cjs +0 -2
- package/dist/_shared/header-BnxWOiNm.cjs.map +0 -1
- package/dist/_shared/sidebar-BML5ZZ5s.js.map +0 -1
- package/dist/_shared/sidebar-C89O5ho_.cjs +0 -2
- package/dist/_shared/sidebar-C89O5ho_.cjs.map +0 -1
- package/dist/showcase/assets/CSPContext-ImKusJJ_.js +0 -1
- package/dist/showcase/assets/CompositeItem-DleE4kTc.js +0 -1
- package/dist/showcase/assets/CompositeRoot-BbNkvtLz.js +0 -1
- package/dist/showcase/assets/DialogTrigger-C0DB0bXw.js +0 -1
- package/dist/showcase/assets/FieldItemContext-CFTR-INZ.js +0 -1
- package/dist/showcase/assets/FormContext-lmjYAh4E.js +0 -1
- package/dist/showcase/assets/LabelableContext-CDv6gSfU.js +0 -1
- package/dist/showcase/assets/RadioGroup-C-0MNAYY.js +0 -1
- package/dist/showcase/assets/Separator-KsPLUEno.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-AV8xAl2m.js +0 -1
- package/dist/showcase/assets/accordion-variants-CVT_62VO.js +0 -1
- package/dist/showcase/assets/app-sidebar-DixqrLf2.js +0 -1
- package/dist/showcase/assets/arrow-down-CYh_aUsd.js +0 -1
- package/dist/showcase/assets/arrow-left-pYYsNkZE.js +0 -1
- package/dist/showcase/assets/arrow-right-Bf1Tl6D5.js +0 -1
- package/dist/showcase/assets/arrow-up-BhmQRZs9.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CuAsO3-r.js +0 -1
- package/dist/showcase/assets/avatar-5EFTnHEG.js +0 -1
- package/dist/showcase/assets/checkbox-fwuAAaUZ.js +0 -1
- package/dist/showcase/assets/chevron-down-CSn8HCwf.js +0 -1
- package/dist/showcase/assets/chevron-left-Ddj6-KOu.js +0 -1
- package/dist/showcase/assets/chevron-right-d-umkBru.js +0 -1
- package/dist/showcase/assets/chevron-up-CeFY6O0I.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-Ck3rUZtc.js +0 -1
- package/dist/showcase/assets/circle-Dy08kACD.js +0 -1
- package/dist/showcase/assets/circle-check-TT7cFQrr.js +0 -1
- package/dist/showcase/assets/circle-check-big-4RnJfeaC.js +0 -1
- package/dist/showcase/assets/circle-dot-CvoDXS-W.js +0 -1
- package/dist/showcase/assets/clock-3-DDEsD4Tb.js +0 -1
- package/dist/showcase/assets/clock-DuBsP5t3.js +0 -1
- package/dist/showcase/assets/collapsible-DagkA3To.js +0 -1
- package/dist/showcase/assets/command-BtaMPVtf.js +0 -45
- package/dist/showcase/assets/comment-item-Ctcpx1GX.js +0 -1
- package/dist/showcase/assets/display-DTaQWVJp.js +0 -403
- package/dist/showcase/assets/dropdown-menu-bPWrLPgm.js +0 -1
- package/dist/showcase/assets/enhanced-combobox-Cs_-wq9p.js +0 -1
- package/dist/showcase/assets/example-BIrQab7K.js +0 -1
- package/dist/showcase/assets/feature-announcement-0dOcSH7F.js +0 -34
- package/dist/showcase/assets/getPseudoElementBounds-Bznj386s.js +0 -1
- package/dist/showcase/assets/header-notifications-3VH9lzzJ.js +0 -1
- package/dist/showcase/assets/index-ADfexGMA.css +0 -2
- package/dist/showcase/assets/inertValue-BVXUUuS4.js +0 -1
- package/dist/showcase/assets/input-BzafMIDj.js +0 -1
- package/dist/showcase/assets/inputs-DjzrYJdb.js +0 -49
- package/dist/showcase/assets/isSameDay-DVNkwpSk.js +0 -1
- package/dist/showcase/assets/isToday-DZ1HTCty.js +0 -1
- package/dist/showcase/assets/mention-inline-suggestions-DyW6IwL8.js +0 -1
- package/dist/showcase/assets/menus-CJjtE4fD.js +0 -89
- package/dist/showcase/assets/minus-OyRBql2C.js +0 -1
- package/dist/showcase/assets/overlays-CVGJ_FEg.js +0 -88
- package/dist/showcase/assets/page-header-CikNDnqI.js +0 -1
- package/dist/showcase/assets/plus-DkHZm34I.js +0 -1
- package/dist/showcase/assets/popover-BSB11Qjp.js +0 -1
- package/dist/showcase/assets/progress-DGvRQyPS.js +0 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-B2ZzrlGb.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CGuVi0Dj.js +0 -1
- package/dist/showcase/assets/rotate-ccw-7aUlKQpX.js +0 -1
- package/dist/showcase/assets/scroll-area-CgXTHlpJ.js +0 -1
- package/dist/showcase/assets/select-BG_Iad8E.js +0 -1
- package/dist/showcase/assets/sidebar--2nHUTn3.js +0 -1
- package/dist/showcase/assets/slider-Cp4m3NTK.js +0 -1
- package/dist/showcase/assets/startOfDay-BuizEr24.js +0 -1
- package/dist/showcase/assets/switch-5f1vwEZ7.js +0 -1
- package/dist/showcase/assets/tabs-ePpje8sU.js +0 -1
- package/dist/showcase/assets/toggle-group-BVyFo04r.js +0 -1
- package/dist/showcase/assets/trending-up-HlQQXTth.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DLXArfPo.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-etINba8U.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BNe9r1t_.js +0 -1
- package/dist/showcase/assets/useCompositeItem-CvG1CBEV.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-CcY0U1bY.js +0 -1
- package/dist/showcase/assets/useControlled-Cpg8gDqb.js +0 -1
- package/dist/showcase/assets/useLabelableId-Czdg4nY8.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-eyZ6twES.js +0 -1
- package/dist/showcase/assets/useRender-BAZlIYnj.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-C2I8g7TT.js +0 -1
- package/dist/showcase/assets/useValueChanged-Bz3WRSDy.js +0 -1
- package/dist/showcase/assets/user-Bqmz8M16.js +0 -1
- package/dist/showcase/assets/valueToPercent-B5BHWU68.js +0 -1
- package/dist/showcase/assets/x-BqJnRkKw.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-CIlGkVbF.js","names":[],"sources":["../../src/components/layout/sidebar/sidebar.context.tsx","../../src/components/layout/sidebar/sidebar.settings.ts","../../src/components/layout/sidebar/sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-logo.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-footer.tsx","../../src/components/layout/sidebar/sidebar.types.ts","../../src/components/layout/sidebar/components/sidebar-workspace-dropdown.tsx","../../src/components/layout/sidebar/app-sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-user.tsx"],"sourcesContent":[" \n/** SidebarProvider — layout-scoped wrapper around the shadcn sidebar context. */\nimport * as React from 'react';\n\nimport { TooltipProvider } from '@/components/base/display/tooltip';\nimport {\n\tSidebarProvider as PrimitiveSidebarProvider,\n\tuseSidebar as primitiveUseSidebar,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nexport const useSidebar = primitiveUseSidebar;\nexport type SidebarContext = ReturnType<typeof primitiveUseSidebar>;\n\nexport type SidebarProviderProps = React.ComponentProps<'div'> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n};\n\nexport function SidebarProvider({\n\tdefaultOpen = true,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: SidebarProviderProps) {\n\treturn (\n\t\t<TooltipProvider delayDuration={0}>\n\t\t\t<PrimitiveSidebarProvider\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={cn('min-h-svh', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PrimitiveSidebarProvider>\n\t\t</TooltipProvider>\n\t);\n}\n","import { cva } from \"class-variance-authority\"\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nexport const SIDEBAR_WIDTH = \"16rem\"\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\"\nexport const SIDEBAR_WIDTH_ICON = \"3rem\"\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\nexport const sidebarMenuButtonVariants = cva(\n \"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-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n"," \n/** Sidebar — responsive shell around the shadcn sidebar primitive pieces. */\nimport * as React from 'react';\n\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from '@/components/base/sheet';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from './sidebar.context';\nimport { SIDEBAR_WIDTH_MOBILE } from './sidebar.settings';\n\nexport interface SidebarStrings {\n\tmobileTitle: string;\n\tmobileDescription: string;\n}\n\nexport const defaultSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Sidebar',\n\tmobileDescription: 'Displays the mobile sidebar.',\n};\n\nexport type SidebarProps = React.ComponentProps<'div'> & {\n\tside?: 'left' | 'right';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tstrings?: Partial<SidebarStrings>;\n\tsurfaceClassName?: string;\n};\n\nexport function Sidebar({\n\tside = 'left',\n\tvariant = 'sidebar',\n\tcollapsible = 'offcanvas',\n\tclassName,\n\tsurfaceClassName,\n\tchildren,\n\tstrings: stringsProp,\n\t...props\n}: SidebarProps) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\tconst strings = useStrings(defaultSidebarStrings, stringsProp);\n\n\tif (collapsible === 'none') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', surfaceClassName, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName={cn('w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden', surfaceClassName)}\n\t\t\t\t\tstyle={{ '--sidebar-width': SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>{strings.mobileTitle}</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>{strings.mobileDescription}</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer sticky top-0 hidden h-full text-sidebar-foreground md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === 'collapsed' ? collapsible : ''}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inset-y-0 z-10 hidden h-full w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n\t\t\t\t\tside === 'left'\n\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? 'px-2 py-3 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'sidebar flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm',\n\t\t\t\t\t\tsurfaceClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","/** SidebarGroupedNavigation — grouped tree navigation with composable rows. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarGroupedNavigationProps, SidebarNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarGroupedNavigation({\n\tnavigationByGroups,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\temptySlot,\n\trenderItem,\n\tclassName,\n}: SidebarGroupedNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst isActive = (href?: string): boolean => !!href && isPathMatch(currentUrl, toPath(href));\n\n\tconst bestMatchIndex = (siblings: SidebarNavItem[]): number => {\n\t\tlet bestIdx = -1;\n\t\tlet bestLen = -1;\n\t\tfor (let i = 0; i < siblings.length; i += 1) {\n\t\t\tconst sibling = siblings[i];\n\t\t\tconst path = sibling?.href ? toPath(sibling.href) : '';\n\t\t\tif (path && isPathMatch(currentUrl, path) && path.length > bestLen) {\n\t\t\t\tbestLen = path.length;\n\t\t\t\tbestIdx = i;\n\t\t\t}\n\t\t}\n\t\treturn bestIdx;\n\t};\n\n\tconst hasActiveChild = (children?: SidebarNavItem[]): boolean =>\n\t\t!!children?.some((child) => isActive(child.href) || hasActiveChild(child.children));\n\n\tconst renderDefaultItem = (item: SidebarNavItem, depth = 0, index = 0): React.ReactNode => {\n\t\tconst hasChildren = !!item.children?.length;\n\t\tconst itemActive = isActive(item.href);\n\t\tconst childActive = hasChildren ? hasActiveChild(item.children) : false;\n\t\tconst expanded = itemActive || childActive;\n\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\tconst label = getNavLabel(item);\n\t\tconst context: SidebarRenderItemContext = {\n\t\t\tdepth,\n\t\t\tactive: itemActive,\n\t\t\texpanded,\n\t\t\tbadge,\n\t\t\trenderLink: resolvedRenderLink,\n\t\t};\n\n\t\tif (renderItem) {\n\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t}\n\n\t\tif (hasChildren) {\n\t\t\tconst activeChildIdx = bestMatchIndex(item.children ?? []);\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\tisActive={expanded}\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, expanded) as React.ReactElement\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttooltip={{ children: label }}\n\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t!itemActive && childActive && 'bg-sidebar-accent/70 text-sidebar-accent-foreground',\n\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</SidebarMenuButton>\n\n\t\t\t\t\t{!!expanded && (\n\t\t\t\t\t\t<SidebarMenuSub className=\"gap-0.5\">\n\t\t\t\t\t\t\t{item.children?.map((child, childIndex) => {\n\t\t\t\t\t\t\t\tconst childActiveNow = childIndex === activeChildIdx || isActive(child.href);\n\t\t\t\t\t\t\t\tconst childBadge = resolveNavBadge(child.handle, child.badge, liveBadges);\n\t\t\t\t\t\t\t\tconst childLabel = getNavLabel(child);\n\t\t\t\t\t\t\t\tconst childContent = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{typeof childLabel === 'string' || typeof childLabel === 'number' ? (\n\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"min-w-0 flex-1 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t\t\t\t{childLabel}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t) : childLabel}\n\t\t\t\t\t\t\t\t\t\t{!!childBadge && <NavBadge value={childBadge} size=\"small\" />}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SidebarMenuSubItem key={getNavKey(child, childIndex)}>\n\t\t\t\t\t\t\t\t\t\t<SidebarMenuSubButton\n\t\t\t\t\t\t\t\t\t\t\tisActive={childActiveNow}\n\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\tchild.href && !child.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, child, childContent, undefined, childActiveNow) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn('w-full', childActiveNow && 'font-semibold text-sidebar-accent-foreground')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{childContent}\n\t\t\t\t\t\t\t\t\t\t</SidebarMenuSubButton>\n\t\t\t\t\t\t\t\t\t</SidebarMenuSubItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</SidebarMenuSub>\n\t\t\t\t\t)}\n\t\t\t</SidebarMenuItem>\n\t\t);\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t<NavLabel item={item} />\n\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t<SidebarMenuButton\n\t\t\t\tisActive={itemActive}\n\t\t\t\trender={\n\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, itemActive) as React.ReactElement\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\ttooltip={{ children: label }}\n\t\t\t\tdisabled={item.disabled}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</SidebarMenuButton>\n\t\t</SidebarMenuItem>\n\t);\n\t};\n\n\tconst groupEntries = Object.entries(navigationByGroups).filter(([, items]) => items.length > 0);\n\tif (groupEntries.length === 0) return emptySlot ?? null;\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{groupEntries.map(([groupName, items], groupIndex) => (\n\t\t\t\t<React.Fragment key={groupName}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t{!groupName.startsWith('_') && <SidebarGroupLabel>{groupName}</SidebarGroupLabel>}\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{items.map((item, index) => renderDefaultItem(item, 0, index))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIndex < groupEntries.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1.5 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n","/** SidebarLogo — hides its logo content when the sidebar is icon-collapsed. */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarLogoProps {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tclassName?: string;\n}\n\nexport function SidebarLogo({ logo, collapsedLogo = null, className }: SidebarLogoProps) {\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst content = isCollapsed ? collapsedLogo : logo;\n\tif (!content) return null;\n\treturn <div className={cn('min-w-0', className)}>{content}</div>;\n}\n","/** SidebarNavigationFooter — secondary footer navigation using renderLink. */\nimport { ExternalLink } from 'lucide-react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarNavigationFooterProps } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport function SidebarNavigationFooter({\n\titems,\n\tlabel,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: SidebarNavigationFooterProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('group-data-[collapsible=icon]:p-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarGroupContent>\n\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\t\tconst labelNode = getNavLabel(item);\n\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{typeof labelNode === 'string' || typeof labelNode === 'number' ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"truncate text-inherit\">{labelNode}</Text>\n\t\t\t\t\t\t\t\t) : labelNode}\n\t\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t\t\t{!!item.external && <ExternalLink className=\"ml-auto size-3 opacity-50\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'h-8 font-medium text-sidebar-foreground/70 hover:text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</SidebarMenu>\n\t\t\t</SidebarGroupContent>\n\t\t</SidebarGroup>\n\t);\n}\n","/**\n * Sidebar types — framework-neutral navigation tree, render contexts, slots,\n * strings, and composition props.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type {\n\tLayoutIconSource,\n\tLayoutLinkRenderer,\n\tLayoutNavigationAdapter,\n\tLinkComponent,\n} from '../layout.types';\n\nexport interface SidebarNavItem {\n\t/** New preferred label. */\n\tlabel?: ReactNode;\n\t/** Back-compat label used by older call sites. */\n\ttitle?: ReactNode;\n\thref?: string;\n\thandle?: string;\n\ticon?: LayoutIconSource;\n\tdisabled?: boolean;\n\tbadge?: string | number;\n\tchildren?: SidebarNavItem[];\n\tgroup?: string;\n\texternal?: boolean;\n}\n\nexport type SidebarFlatNavItem = Omit<SidebarNavItem, 'children' | 'group'>;\n\nexport interface SidebarRenderItemContext {\n\tdepth: number;\n\tactive: boolean;\n\texpanded: boolean;\n\tbadge?: string | number;\n\trenderLink: LayoutLinkRenderer;\n}\n\nexport interface SidebarSlots {\n\theader?: ReactNode;\n\tbeforeNavigation?: ReactNode;\n\tafterNavigation?: ReactNode;\n\tfooter?: ReactNode;\n\tempty?: ReactNode;\n\tloading?: ReactNode;\n}\n\nexport interface AppSidebarProps extends LayoutNavigationAdapter {\n\tnavigationGroups?: Record<string, SidebarNavItem[]>;\n\tfooterNavItems?: SidebarFlatNavItem[];\n\tfooterLabel?: ReactNode;\n\tlogo?: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks?: WorkspaceLink[];\n\tworkspaceStrings?: Partial<SidebarWorkspaceDropdownStrings>;\n\tworkspaceContentClassName?: string;\n\theaderClassName?: string;\n\tlogoClassName?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tcurrentUrl?: string;\n\tliveBadges?: Record<string, string | number>;\n\tloading?: boolean;\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tside?: 'left' | 'right';\n\tclassName?: string;\n\tsurfaceClassName?: string;\n\tcontentClassName?: string;\n\tslots?: SidebarSlots;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarGroupedNavigationProps extends LayoutNavigationAdapter {\n\tnavigationByGroups: Record<string, SidebarNavItem[]>;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\temptySlot?: ReactNode;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarFlatNavigationProps extends LayoutNavigationAdapter {\n\titems: SidebarFlatNavItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\trenderItem?: (item: SidebarFlatNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface WorkspaceLink {\n\tlabel: ReactNode;\n\turl: string;\n\ticon?: ComponentType<{ className?: string }>;\n\texternal?: boolean;\n}\n\nexport interface SidebarWorkspaceDropdownStrings {\n\tlabel: string;\n\tselect: string;\n}\n\nexport const defaultSidebarWorkspaceDropdownStrings: SidebarWorkspaceDropdownStrings = {\n\tlabel: 'Workspace',\n\tselect: 'Select workspace',\n};\n\nexport interface SidebarWorkspaceDropdownProps extends LayoutNavigationAdapter {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks: WorkspaceLink[];\n\tstrings?: Partial<SidebarWorkspaceDropdownStrings>;\n\tcontentClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type SidebarFooterNavigationItem = SidebarFlatNavItem;\n\nexport interface SidebarNavigationFooterProps extends LayoutNavigationAdapter {\n\titems: SidebarFooterNavigationItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** SidebarWorkspaceDropdown — workspace selector using consumer link rendering. */\nimport { ChevronsUpDown, ExternalLink } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultSidebarWorkspaceDropdownStrings,\n\ttype SidebarWorkspaceDropdownProps,\n} from '../sidebar.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport function SidebarWorkspaceDropdown({\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks,\n\trenderLink,\n\tLinkComponent,\n\tstrings: stringsProp,\n\tcontentClassName,\n}: SidebarWorkspaceDropdownProps) {\n\tconst strings = useStrings(defaultSidebarWorkspaceDropdownStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst visibleLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t{visibleLogo}\n\t\t\t\t\t\t\t{!isCollapsed && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"sr-only\">\n\t\t\t\t\t\t\t\t\t{strings.select}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{!isCollapsed && <ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent className={cn('min-w-56', contentClassName)} align=\"start\" side=\"right\" sideOffset={8}>\n\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t<DropdownMenuLabel>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\">{strings.label}</Text>\n\t\t\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t\t{workspaceLinks.map((link) => {\n\t\t\t\t\t\t\t\tconst Icon = link.icon ?? ExternalLink;\n\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<Icon className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{link.label}</Text>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={link.url}\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t\t\thref: link.url,\n\t\t\t\t\t\t\t\t\t\t\t\texternal: link.external ?? true,\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: null,\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: 'flex items-center gap-2',\n\t\t\t\t\t\t\t\t\t\t\t}) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n","/**\n * AppSidebar — opinionated assembly of logo/header, grouped navigation, and\n * footer links. Consumers still own framework routing through `renderLink`.\n */\nimport * as React from 'react';\n\nimport { ScrollArea } from '@/components/base/display/scroll-area';\nimport { Skeleton } from '@/components/base/display/skeleton';\nimport {\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarHeader,\n\tSidebarMenu,\n\tSidebarMenuItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { SidebarGroupedNavigation } from './components/sidebar-grouped-navigation';\nimport { SidebarLogo } from './components/sidebar-logo';\nimport { SidebarNavigationFooter } from './components/sidebar-navigation-footer';\nimport { SidebarWorkspaceDropdown } from './components/sidebar-workspace-dropdown';\nimport { Sidebar } from './sidebar';\nimport type { AppSidebarProps } from './sidebar.types';\n\nexport function AppSidebar({\n\tnavigationGroups,\n\tfooterNavItems = [],\n\tfooterLabel,\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks = [],\n\tworkspaceStrings,\n\tworkspaceContentClassName,\n\theaderClassName,\n\tlogoClassName,\n\ticonMap,\n\tcurrentUrl = '/',\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tloading,\n\tcollapsible = 'icon',\n\tvariant = 'sidebar',\n\tside = 'left',\n\tclassName,\n\tsurfaceClassName,\n\tcontentClassName,\n\tslots,\n\trenderItem,\n}: AppSidebarProps) {\n\tconst hasFooter = footerNavItems.length > 0 || !!slots?.footer;\n\tconst isLoading = loading || !navigationGroups;\n\tconst hasWorkspaceLinks = workspaceLinks.length > 0;\n\n\treturn (\n\t\t<Sidebar collapsible={collapsible} variant={variant} side={side} className={cn('h-svh', className)} surfaceClassName={surfaceClassName}>\n\t\t\t{slots?.header ?? (!!logo && (\n\t\t\t\t<SidebarHeader className={headerClassName}>\n\t\t\t\t\t{hasWorkspaceLinks ? (\n\t\t\t\t\t\t<SidebarWorkspaceDropdown\n\t\t\t\t\t\t\tlogo={logo}\n\t\t\t\t\t\t\tcollapsedLogo={collapsedLogo}\n\t\t\t\t\t\t\tworkspaceLinks={workspaceLinks}\n\t\t\t\t\t\t\tstrings={workspaceStrings}\n\t\t\t\t\t\t\tcontentClassName={workspaceContentClassName}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarLogo logo={logo} collapsedLogo={collapsedLogo} className={logoClassName} />\n\t\t\t\t\t)}\n\t\t\t\t</SidebarHeader>\n\t\t\t))}\n\n\t\t\t<SidebarContent className={contentClassName}>\n\t\t\t\t<ScrollArea className=\"h-full pr-1.5 pt-4\">\n\t\t\t\t\t{slots?.beforeNavigation}\n\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\tslots?.loading ?? <AppSidebarSkeleton />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarGroupedNavigation\n\t\t\t\t\t\t\tnavigationByGroups={navigationGroups}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t\temptySlot={slots?.empty}\n\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{slots?.afterNavigation}\n\t\t\t\t</ScrollArea>\n\t\t\t</SidebarContent>\n\n\t\t\t{hasFooter && (\n\t\t\t\t<SidebarFooter>\n\t\t\t\t\t{slots?.footer ?? (\n\t\t\t\t\t\t<SidebarNavigationFooter\n\t\t\t\t\t\t\titems={footerNavItems}\n\t\t\t\t\t\t\tlabel={footerLabel}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</SidebarFooter>\n\t\t\t)}\n\t\t</Sidebar>\n\t);\n}\n\nfunction AppSidebarSkeleton() {\n\tconst groups = [9, 3, 4, 2, 1];\n\n\treturn (\n\t\t<>\n\t\t\t{groups.map((count, groupIdx) => (\n\t\t\t\t<React.Fragment key={groupIdx}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{Array.from({ length: count }, (_, i) => (\n\t\t\t\t\t\t\t\t<SidebarMenuItem key={i}>\n\t\t\t\t\t\t\t\t\t<div className=\"flex h-8 items-center gap-2 px-2\">\n\t\t\t\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-4 shrink-0 rounded\" />\n\t\t\t\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"h-3.5 rounded\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ width: `${60 + ((groupIdx * 7 + i * 13) % 40)}px` }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIdx < groups.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</>\n\t);\n}\n","/** SidebarNavigation — flat, framework-neutral sidebar nav list. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarFlatNavigationProps, SidebarFlatNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport { DynamicIcon } from '../sidebar.utils';\nexport { DynamicIcon as Icon } from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarFlatNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarNavigation({\n\titems,\n\tlabel = 'Platform',\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\trenderItem,\n\tclassName,\n}: SidebarFlatNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('px-2 py-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\tconst context: SidebarRenderItemContext = {\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tactive,\n\t\t\t\t\t\texpanded: false,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\trenderLink: resolvedRenderLink,\n\t\t\t\t\t};\n\t\t\t\t\tconst labelNode = getNavLabel(item);\n\n\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst content = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</SidebarMenu>\n\t\t</SidebarGroup>\n\t);\n}\n\n/** @deprecated Use `SidebarFlatNavItem` from `sidebar.types`. */\nexport type SidebarNavigationItem = SidebarFlatNavItem;\n"," \n/** SidebarNavigationUser — user profile dropdown for sidebar footer. */\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { Text } from '@/components/typography';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings } from '@/lib/strings';\n\nimport type { LayoutUser } from '../../layout.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarNavigationUserStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultSidebarNavigationUserStrings: SidebarNavigationUserStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface SidebarNavigationUserProps {\n\tuser: LayoutUser;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\tstrings?: Partial<SidebarNavigationUserStrings>;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function SidebarNavigationUser({\n\tuser,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\tstrings: stringsProp,\n\trenderTrigger,\n}: SidebarNavigationUserProps) {\n\tconst strings = useStrings(defaultSidebarNavigationUserStrings, stringsProp);\n\tconst { state, isMobile } = useSidebar();\n\tconst dropdownSide = isMobile || state !== 'collapsed' ? 'bottom' : 'right';\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTrigger?.(user) ?? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<Avatar className=\"size-8 rounded-full\">\n\t\t\t\t\t\t\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t\t\t\t\t\t\t<AvatarFallback className=\"bg-sidebar-accent text-xs text-sidebar-accent-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-1 flex-col items-start justify-center overflow-hidden\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"w-full truncate\">{user.name}</Text>\n\t\t\t\t\t\t\t\t\t\t{!!user.email && <Text size=\"xs\" type=\"secondary\" className=\"w-full truncate\">{user.email}</Text>}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuTrigger>\n\n\t\t\t\t\t<DropdownMenuContent\n\t\t\t\t\t\tclassName=\"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg\"\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tside={dropdownSide}\n\t\t\t\t\t\tsideOffset={4}\n\t\t\t\t\t>\n\t\t\t\t\t\t{customContent ?? defaultContent}\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n\n/** @deprecated — use `LayoutUser` from `layout.types`. */\nexport type SidebarUserData = LayoutUser;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("../lib/utils.cjs"),r=require("./heading-0DYCOrgC.cjs"),i=require("./tooltip-mvxZV_Lu.cjs"),a=require("./dropdown-menu-CHQzQWUK.cjs"),o=require("./avatar-0spfQEHG.cjs"),s=require("./scroll-area-u46BOVcC.cjs"),c=require("./skeleton-D1c5OHXa.cjs"),l=require("./sheet-D4yWgkwC.cjs"),u=require("./sidebar-B_L_dnAe.cjs"),d=require("./hooks-MW0UTO3q.cjs");let f=require("react");f=e.t(f,1);let p=require("react/jsx-runtime"),m=require("lucide-react"),h=require("class-variance-authority");var g=u.w;function _({defaultOpen:e=!0,open:t,onOpenChange:r,className:a,style:o,children:s,...c}){return(0,p.jsx)(i.r,{delayDuration:0,children:(0,p.jsx)(u.b,{defaultOpen:e,open:t,onOpenChange:r,style:o,className:n.cn(`min-h-svh`,a),...c,children:s})})}var v=`18rem`;(0,h.cva)(`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-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});var y={mobileTitle:`Sidebar`,mobileDescription:`Displays the mobile sidebar.`};function b({side:e=`left`,variant:r=`sidebar`,collapsible:i=`offcanvas`,className:a,surfaceClassName:o,children:s,strings:c,...u}){let{isMobile:d,state:f,openMobile:m,setOpenMobile:h}=g(),_=t.useStrings(y,c);return i===`none`?(0,p.jsx)(`div`,{"data-slot":`sidebar`,className:n.cn(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,o,a),...u,children:s}):d?(0,p.jsx)(l.t,{open:m,onOpenChange:h,...u,children:(0,p.jsxs)(l.r,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:n.cn(`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,o),style:{"--sidebar-width":v},side:e,children:[(0,p.jsxs)(l.o,{className:`sr-only`,children:[(0,p.jsx)(l.s,{children:_.mobileTitle}),(0,p.jsx)(l.i,{children:_.mobileDescription})]}),(0,p.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:s})]})}):(0,p.jsx)(`div`,{className:`group peer sticky top-0 hidden h-full text-sidebar-foreground md:block`,"data-state":f,"data-collapsible":f===`collapsed`?i:``,"data-variant":r,"data-side":e,"data-slot":`sidebar`,children:(0,p.jsx)(`div`,{className:n.cn(`inset-y-0 z-10 hidden h-full w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,r===`floating`||r===`inset`?`px-2 py-3 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`,a),...u,children:(0,p.jsx)(`div`,{"data-sidebar":`sidebar`,className:n.cn(`sidebar 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`,o),children:s})})})}function x({item:e}){return(0,p.jsx)(r.n,{tag:`span`,className:`truncate text-inherit`,children:d.o(e)})}function S({navigationByGroups:e,currentUrl:t=`/`,iconMap:i={},liveBadges:a,renderLink:o,LinkComponent:s,emptySlot:c,renderItem:l,className:m}){let h=d.d({renderLink:o,LinkComponent:s}),g=e=>!!e&&d.s(t,d.u(e)),_=e=>{let n=-1,r=-1;for(let i=0;i<e.length;i+=1){let a=e[i],o=a?.href?d.u(a.href):``;o&&d.s(t,o)&&o.length>r&&(r=o.length,n=i)}return n},v=e=>!!e?.some(e=>g(e.href)||v(e.children)),y=(e,t=0,o=0)=>{let s=!!e.children?.length,c=g(e.href),m=s?v(e.children):!1,y=c||m,b=d.l(e.handle,e.badge,a),S=d.o(e),C={depth:t,active:c,expanded:y,badge:b,renderLink:h};if(l)return(0,p.jsx)(f.Fragment,{children:l(e,C)},d.a(e,o));if(s){let t=_(e.children??[]),s=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:i,className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(x,{item:e}),!!b&&(0,p.jsx)(d.i,{value:b})]});return(0,p.jsxs)(u.g,{children:[(0,p.jsx)(u.t,{isActive:y,render:e.href&&!e.disabled?d.c(h,e,s,void 0,y):void 0,tooltip:{children:S},disabled:e.disabled,className:n.cn(`h-8 font-medium`,c&&`bg-sidebar-accent text-sidebar-accent-foreground`,!c&&m&&`bg-sidebar-accent/70 text-sidebar-accent-foreground`,e.disabled&&`cursor-not-allowed opacity-50`),children:s}),!!y&&(0,p.jsx)(u.v,{className:`gap-0.5`,children:e.children?.map((e,i)=>{let o=i===t||g(e.href),s=d.l(e.handle,e.badge,a),c=d.o(e),l=(0,p.jsxs)(p.Fragment,{children:[typeof c==`string`||typeof c==`number`?(0,p.jsx)(r.n,{tag:`span`,className:`min-w-0 flex-1 truncate text-inherit`,children:c}):c,!!s&&(0,p.jsx)(d.i,{value:s,size:`small`})]});return(0,p.jsx)(u.y,{children:(0,p.jsx)(u.n,{isActive:o,render:e.href&&!e.disabled?d.c(h,e,l,void 0,o):void 0,className:n.cn(`w-full`,o&&`font-semibold text-sidebar-accent-foreground`),children:l})},d.a(e,i))})})]},d.a(e,o))}let w=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:i,className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(x,{item:e}),!!b&&(0,p.jsx)(d.i,{value:b})]});return(0,p.jsx)(u.g,{children:(0,p.jsx)(u.t,{isActive:c,render:e.href&&!e.disabled?d.c(h,e,w,void 0,c):void 0,tooltip:{children:S},disabled:e.disabled,className:n.cn(`h-8 font-medium`,c&&`bg-sidebar-accent text-sidebar-accent-foreground`,e.disabled&&`cursor-not-allowed opacity-50`),children:w})},d.a(e,o))},b=Object.entries(e).filter(([,e])=>e.length>0);return b.length===0?c??null:(0,p.jsx)(`div`,{className:m,children:b.map(([e,t],n)=>(0,p.jsxs)(f.Fragment,{children:[(0,p.jsxs)(u.o,{className:`px-2 py-0`,children:[!e.startsWith(`_`)&&(0,p.jsx)(u.l,{children:e}),(0,p.jsx)(u.p,{className:`gap-0.5`,children:t.map((e,t)=>y(e,0,t))})]}),n<b.length-1&&(0,p.jsx)(u.S,{className:`!mx-auto !my-1.5 !w-11/12 overflow-hidden px-4`})]},e))})}function C({logo:e,collapsedLogo:t=null,className:r}){let{state:i}=g(),a=i===`collapsed`?t:e;return a?(0,p.jsx)(`div`,{className:n.cn(`min-w-0`,r),children:a}):null}function w({items:e,label:t,currentUrl:i=`/`,iconMap:a={},liveBadges:o,renderLink:s,LinkComponent:c,className:l}){let f=d.d({renderLink:s,LinkComponent:c});return(0,p.jsxs)(u.o,{className:n.cn(`group-data-[collapsible=icon]:p-0`,l),children:[!!t&&(0,p.jsx)(u.l,{children:t}),(0,p.jsx)(u.c,{children:(0,p.jsx)(u.p,{className:`gap-0.5`,children:e.map((e,t)=>{let s=!!e.href&&d.s(i,d.u(e.href)),c=d.l(e.handle,e.badge,o),l=d.o(e),h=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:a,className:`size-4`,"aria-hidden":`true`}),typeof l==`string`||typeof l==`number`?(0,p.jsx)(r.n,{tag:`span`,className:`truncate text-inherit`,children:l}):l,!!c&&(0,p.jsx)(d.i,{value:c}),!!e.external&&(0,p.jsx)(m.ExternalLink,{className:`ml-auto size-3 opacity-50`,"aria-hidden":`true`})]});return(0,p.jsx)(u.g,{children:(0,p.jsx)(u.t,{isActive:s,render:e.href&&!e.disabled?d.c(f,e,h,void 0,s):void 0,className:n.cn(`h-8 font-medium text-sidebar-foreground/70 hover:text-sidebar-accent-foreground`,s&&`bg-sidebar-accent text-sidebar-accent-foreground`),tooltip:{children:l},disabled:e.disabled,children:h})},d.a(e,t))})})})]})}var T={label:`Workspace`,select:`Select workspace`};function E({logo:e,collapsedLogo:i,workspaceLinks:o,renderLink:s,LinkComponent:c,strings:l,contentClassName:f}){let h=t.useStrings(T,l),_=d.d({renderLink:s,LinkComponent:c}),{state:v}=g(),y=v===`collapsed`;return(0,p.jsx)(u.p,{children:(0,p.jsx)(u.g,{children:(0,p.jsxs)(a.t,{children:[(0,p.jsxs)(a.g,{render:(0,p.jsx)(u.t,{size:`lg`,className:`data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground`}),children:[(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[y?i??e:e,!y&&(0,p.jsx)(r.n,{tag:`span`,size:`xs`,className:`sr-only`,children:h.select})]}),!y&&(0,p.jsx)(m.ChevronsUpDown,{className:`ml-auto size-4 shrink-0`,"aria-hidden":`true`})]}),(0,p.jsx)(a.r,{className:n.cn(`min-w-56`,f),align:`start`,side:`right`,sideOffset:8,children:(0,p.jsxs)(a.i,{children:[(0,p.jsx)(a.o,{children:(0,p.jsx)(r.n,{weight:`semibold`,children:h.label})}),(0,p.jsx)(a.d,{}),o.map(e=>{let t=(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(e.icon??m.ExternalLink,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,p.jsx)(r.n,{tag:`span`,size:`xs`,className:`text-inherit`,children:e.label})]});return(0,p.jsx)(a.a,{render:_({href:e.url,external:e.external??!0,children:null,className:`flex items-center gap-2`}),children:t},e.url)})]})})]})})})}function D({navigationGroups:e,footerNavItems:t=[],footerLabel:r,logo:i,collapsedLogo:a,workspaceLinks:o=[],workspaceStrings:c,workspaceContentClassName:l,headerClassName:d,logoClassName:f,iconMap:m,currentUrl:h=`/`,liveBadges:g,renderLink:_,LinkComponent:v,loading:y,collapsible:x=`icon`,variant:T=`sidebar`,side:D=`left`,className:k,surfaceClassName:A,contentClassName:j,slots:M,renderItem:N}){let P=t.length>0||!!M?.footer,F=y||!e,I=o.length>0;return(0,p.jsxs)(b,{collapsible:x,variant:T,side:D,className:n.cn(`h-svh`,k),surfaceClassName:A,children:[M?.header??(!!i&&(0,p.jsx)(u.u,{className:d,children:I?(0,p.jsx)(E,{logo:i,collapsedLogo:a,workspaceLinks:o,strings:c,contentClassName:l,renderLink:_,LinkComponent:v}):(0,p.jsx)(C,{logo:i,collapsedLogo:a,className:f})})),(0,p.jsx)(u.i,{className:j,children:(0,p.jsxs)(s.t,{className:`h-full pr-1.5 pt-4`,children:[M?.beforeNavigation,F?M?.loading??(0,p.jsx)(O,{}):(0,p.jsx)(S,{navigationByGroups:e,currentUrl:h,iconMap:m,liveBadges:g,renderLink:_,LinkComponent:v,emptySlot:M?.empty,renderItem:N}),M?.afterNavigation]})}),P&&(0,p.jsx)(u.a,{children:M?.footer??(0,p.jsx)(w,{items:t,label:r,currentUrl:h,iconMap:m,liveBadges:g,renderLink:_,LinkComponent:v})})]})}function O(){let e=[9,3,4,2,1];return(0,p.jsx)(p.Fragment,{children:e.map((t,n)=>(0,p.jsxs)(f.Fragment,{children:[(0,p.jsx)(u.o,{className:`px-2 py-0`,children:(0,p.jsx)(u.p,{className:`gap-0.5`,children:Array.from({length:t},(e,t)=>(0,p.jsx)(u.g,{children:(0,p.jsxs)(`div`,{className:`flex h-8 items-center gap-2 px-2`,children:[(0,p.jsx)(c.t,{className:`h-4 w-4 shrink-0 rounded`}),(0,p.jsx)(c.t,{className:`h-3.5 rounded`,style:{width:`${60+(n*7+t*13)%40}px`}})]})},t))})}),n<e.length-1&&(0,p.jsx)(u.S,{className:`!mx-auto !my-1 !w-11/12 overflow-hidden px-4`})]},n))})}function k({item:e}){return(0,p.jsx)(r.n,{tag:`span`,className:`truncate text-inherit`,children:d.o(e)})}function A({items:e,label:t=`Platform`,currentUrl:r=`/`,iconMap:i={},liveBadges:a,renderLink:o,LinkComponent:s,renderItem:c,className:l}){let m=d.d({renderLink:o,LinkComponent:s});return(0,p.jsxs)(u.o,{className:n.cn(`px-2 py-0`,l),children:[!!t&&(0,p.jsx)(u.l,{children:t}),(0,p.jsx)(u.p,{className:`gap-0.5`,children:e.map((e,t)=>{let o=!!e.href&&d.s(r,d.u(e.href)),s=d.l(e.handle,e.badge,a),l={depth:0,active:o,expanded:!1,badge:s,renderLink:m},h=d.o(e);if(c)return(0,p.jsx)(f.Fragment,{children:c(e,l)},d.a(e,t));let g=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:i,className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(k,{item:e}),!!s&&(0,p.jsx)(d.i,{value:s})]});return(0,p.jsx)(u.g,{children:(0,p.jsx)(u.t,{isActive:o,render:e.href&&!e.disabled?d.c(m,e,g,void 0,o):void 0,tooltip:{children:h},disabled:e.disabled,className:n.cn(`h-8 font-medium`,o&&`bg-sidebar-accent text-sidebar-accent-foreground`,e.disabled&&`cursor-not-allowed opacity-50`),children:g})},d.a(e,t))})})]})}var j={profile:`Profile`,settings:`Settings`,logout:`Log out`};function M(e){return e.split(` `).map(e=>e[0]).filter(Boolean).slice(0,2).join(``).toUpperCase()}function N({user:e,customContent:n,onProfile:i,onSettings:s,onLogout:c,strings:l,renderTrigger:d}){let f=t.useStrings(j,l),{state:h,isMobile:_}=g(),v=_||h!==`collapsed`?`bottom`:`right`,y=M(e.name),b=(0,p.jsxs)(p.Fragment,{children:[!!i&&(0,p.jsxs)(a.a,{onClick:i,children:[(0,p.jsx)(m.User,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(r.n,{tag:`span`,size:`xs`,className:`text-inherit`,children:f.profile})]}),!!s&&(0,p.jsxs)(a.a,{onClick:s,children:[(0,p.jsx)(m.Settings,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(r.n,{tag:`span`,size:`xs`,className:`text-inherit`,children:f.settings})]}),!!(i||s)&&!!c&&(0,p.jsx)(a.d,{}),!!c&&(0,p.jsxs)(a.a,{onClick:c,children:[(0,p.jsx)(m.LogOut,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(r.n,{tag:`span`,size:`xs`,className:`text-inherit`,children:f.logout})]})]});return(0,p.jsx)(u.p,{children:(0,p.jsx)(u.g,{children:(0,p.jsxs)(a.t,{children:[(0,p.jsx)(a.g,{render:(0,p.jsx)(u.t,{size:`lg`,className:`group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent`}),children:d?.(e)??(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,p.jsxs)(o.t,{className:`size-8 rounded-full`,children:[!!e.avatar&&(0,p.jsx)(o.o,{src:e.avatar,alt:e.name}),(0,p.jsx)(o.r,{className:`bg-sidebar-accent text-xs text-sidebar-accent-foreground`,children:y})]}),(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-start justify-center overflow-hidden`,children:[(0,p.jsx)(r.n,{weight:`medium`,className:`w-full truncate`,children:e.name}),!!e.email&&(0,p.jsx)(r.n,{size:`xs`,type:`secondary`,className:`w-full truncate`,children:e.email})]})]}),(0,p.jsx)(m.ChevronsUpDown,{className:`ml-auto size-4 shrink-0`,"aria-hidden":`true`})]})}),(0,p.jsx)(a.r,{className:`w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg`,align:`end`,side:v,sideOffset:4,children:n??b})]})})})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});
|
|
2
|
+
//# sourceMappingURL=sidebar-D3sK9otF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar-D3sK9otF.cjs","names":[],"sources":["../../src/components/layout/sidebar/sidebar.context.tsx","../../src/components/layout/sidebar/sidebar.settings.ts","../../src/components/layout/sidebar/sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-logo.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-footer.tsx","../../src/components/layout/sidebar/sidebar.types.ts","../../src/components/layout/sidebar/components/sidebar-workspace-dropdown.tsx","../../src/components/layout/sidebar/app-sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-user.tsx"],"sourcesContent":[" \n/** SidebarProvider — layout-scoped wrapper around the shadcn sidebar context. */\nimport * as React from 'react';\n\nimport { TooltipProvider } from '@/components/base/display/tooltip';\nimport {\n\tSidebarProvider as PrimitiveSidebarProvider,\n\tuseSidebar as primitiveUseSidebar,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nexport const useSidebar = primitiveUseSidebar;\nexport type SidebarContext = ReturnType<typeof primitiveUseSidebar>;\n\nexport type SidebarProviderProps = React.ComponentProps<'div'> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n};\n\nexport function SidebarProvider({\n\tdefaultOpen = true,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: SidebarProviderProps) {\n\treturn (\n\t\t<TooltipProvider delayDuration={0}>\n\t\t\t<PrimitiveSidebarProvider\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={cn('min-h-svh', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PrimitiveSidebarProvider>\n\t\t</TooltipProvider>\n\t);\n}\n","import { cva } from \"class-variance-authority\"\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nexport const SIDEBAR_WIDTH = \"16rem\"\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\"\nexport const SIDEBAR_WIDTH_ICON = \"3rem\"\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\nexport const sidebarMenuButtonVariants = cva(\n \"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-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n"," \n/** Sidebar — responsive shell around the shadcn sidebar primitive pieces. */\nimport * as React from 'react';\n\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from '@/components/base/sheet';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from './sidebar.context';\nimport { SIDEBAR_WIDTH_MOBILE } from './sidebar.settings';\n\nexport interface SidebarStrings {\n\tmobileTitle: string;\n\tmobileDescription: string;\n}\n\nexport const defaultSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Sidebar',\n\tmobileDescription: 'Displays the mobile sidebar.',\n};\n\nexport type SidebarProps = React.ComponentProps<'div'> & {\n\tside?: 'left' | 'right';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tstrings?: Partial<SidebarStrings>;\n\tsurfaceClassName?: string;\n};\n\nexport function Sidebar({\n\tside = 'left',\n\tvariant = 'sidebar',\n\tcollapsible = 'offcanvas',\n\tclassName,\n\tsurfaceClassName,\n\tchildren,\n\tstrings: stringsProp,\n\t...props\n}: SidebarProps) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\tconst strings = useStrings(defaultSidebarStrings, stringsProp);\n\n\tif (collapsible === 'none') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', surfaceClassName, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName={cn('w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden', surfaceClassName)}\n\t\t\t\t\tstyle={{ '--sidebar-width': SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>{strings.mobileTitle}</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>{strings.mobileDescription}</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer sticky top-0 hidden h-full text-sidebar-foreground md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === 'collapsed' ? collapsible : ''}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inset-y-0 z-10 hidden h-full w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n\t\t\t\t\tside === 'left'\n\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? 'px-2 py-3 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'sidebar flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm',\n\t\t\t\t\t\tsurfaceClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","/** SidebarGroupedNavigation — grouped tree navigation with composable rows. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarGroupedNavigationProps, SidebarNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarGroupedNavigation({\n\tnavigationByGroups,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\temptySlot,\n\trenderItem,\n\tclassName,\n}: SidebarGroupedNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst isActive = (href?: string): boolean => !!href && isPathMatch(currentUrl, toPath(href));\n\n\tconst bestMatchIndex = (siblings: SidebarNavItem[]): number => {\n\t\tlet bestIdx = -1;\n\t\tlet bestLen = -1;\n\t\tfor (let i = 0; i < siblings.length; i += 1) {\n\t\t\tconst sibling = siblings[i];\n\t\t\tconst path = sibling?.href ? toPath(sibling.href) : '';\n\t\t\tif (path && isPathMatch(currentUrl, path) && path.length > bestLen) {\n\t\t\t\tbestLen = path.length;\n\t\t\t\tbestIdx = i;\n\t\t\t}\n\t\t}\n\t\treturn bestIdx;\n\t};\n\n\tconst hasActiveChild = (children?: SidebarNavItem[]): boolean =>\n\t\t!!children?.some((child) => isActive(child.href) || hasActiveChild(child.children));\n\n\tconst renderDefaultItem = (item: SidebarNavItem, depth = 0, index = 0): React.ReactNode => {\n\t\tconst hasChildren = !!item.children?.length;\n\t\tconst itemActive = isActive(item.href);\n\t\tconst childActive = hasChildren ? hasActiveChild(item.children) : false;\n\t\tconst expanded = itemActive || childActive;\n\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\tconst label = getNavLabel(item);\n\t\tconst context: SidebarRenderItemContext = {\n\t\t\tdepth,\n\t\t\tactive: itemActive,\n\t\t\texpanded,\n\t\t\tbadge,\n\t\t\trenderLink: resolvedRenderLink,\n\t\t};\n\n\t\tif (renderItem) {\n\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t}\n\n\t\tif (hasChildren) {\n\t\t\tconst activeChildIdx = bestMatchIndex(item.children ?? []);\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\tisActive={expanded}\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, expanded) as React.ReactElement\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttooltip={{ children: label }}\n\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t!itemActive && childActive && 'bg-sidebar-accent/70 text-sidebar-accent-foreground',\n\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</SidebarMenuButton>\n\n\t\t\t\t\t{!!expanded && (\n\t\t\t\t\t\t<SidebarMenuSub className=\"gap-0.5\">\n\t\t\t\t\t\t\t{item.children?.map((child, childIndex) => {\n\t\t\t\t\t\t\t\tconst childActiveNow = childIndex === activeChildIdx || isActive(child.href);\n\t\t\t\t\t\t\t\tconst childBadge = resolveNavBadge(child.handle, child.badge, liveBadges);\n\t\t\t\t\t\t\t\tconst childLabel = getNavLabel(child);\n\t\t\t\t\t\t\t\tconst childContent = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{typeof childLabel === 'string' || typeof childLabel === 'number' ? (\n\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"min-w-0 flex-1 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t\t\t\t{childLabel}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t) : childLabel}\n\t\t\t\t\t\t\t\t\t\t{!!childBadge && <NavBadge value={childBadge} size=\"small\" />}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SidebarMenuSubItem key={getNavKey(child, childIndex)}>\n\t\t\t\t\t\t\t\t\t\t<SidebarMenuSubButton\n\t\t\t\t\t\t\t\t\t\t\tisActive={childActiveNow}\n\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\tchild.href && !child.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, child, childContent, undefined, childActiveNow) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn('w-full', childActiveNow && 'font-semibold text-sidebar-accent-foreground')}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{childContent}\n\t\t\t\t\t\t\t\t\t\t</SidebarMenuSubButton>\n\t\t\t\t\t\t\t\t\t</SidebarMenuSubItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</SidebarMenuSub>\n\t\t\t\t\t)}\n\t\t\t</SidebarMenuItem>\n\t\t);\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t<NavLabel item={item} />\n\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t<SidebarMenuButton\n\t\t\t\tisActive={itemActive}\n\t\t\t\trender={\n\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, itemActive) as React.ReactElement\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\ttooltip={{ children: label }}\n\t\t\t\tdisabled={item.disabled}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</SidebarMenuButton>\n\t\t</SidebarMenuItem>\n\t);\n\t};\n\n\tconst groupEntries = Object.entries(navigationByGroups).filter(([, items]) => items.length > 0);\n\tif (groupEntries.length === 0) return emptySlot ?? null;\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{groupEntries.map(([groupName, items], groupIndex) => (\n\t\t\t\t<React.Fragment key={groupName}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t{!groupName.startsWith('_') && <SidebarGroupLabel>{groupName}</SidebarGroupLabel>}\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{items.map((item, index) => renderDefaultItem(item, 0, index))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIndex < groupEntries.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1.5 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n","/** SidebarLogo — hides its logo content when the sidebar is icon-collapsed. */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarLogoProps {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tclassName?: string;\n}\n\nexport function SidebarLogo({ logo, collapsedLogo = null, className }: SidebarLogoProps) {\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst content = isCollapsed ? collapsedLogo : logo;\n\tif (!content) return null;\n\treturn <div className={cn('min-w-0', className)}>{content}</div>;\n}\n","/** SidebarNavigationFooter — secondary footer navigation using renderLink. */\nimport { ExternalLink } from 'lucide-react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarNavigationFooterProps } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport function SidebarNavigationFooter({\n\titems,\n\tlabel,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: SidebarNavigationFooterProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('group-data-[collapsible=icon]:p-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarGroupContent>\n\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\t\tconst labelNode = getNavLabel(item);\n\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{typeof labelNode === 'string' || typeof labelNode === 'number' ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"truncate text-inherit\">{labelNode}</Text>\n\t\t\t\t\t\t\t\t) : labelNode}\n\t\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t\t\t{!!item.external && <ExternalLink className=\"ml-auto size-3 opacity-50\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'h-8 font-medium text-sidebar-foreground/70 hover:text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</SidebarMenu>\n\t\t\t</SidebarGroupContent>\n\t\t</SidebarGroup>\n\t);\n}\n","/**\n * Sidebar types — framework-neutral navigation tree, render contexts, slots,\n * strings, and composition props.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type {\n\tLayoutIconSource,\n\tLayoutLinkRenderer,\n\tLayoutNavigationAdapter,\n\tLinkComponent,\n} from '../layout.types';\n\nexport interface SidebarNavItem {\n\t/** New preferred label. */\n\tlabel?: ReactNode;\n\t/** Back-compat label used by older call sites. */\n\ttitle?: ReactNode;\n\thref?: string;\n\thandle?: string;\n\ticon?: LayoutIconSource;\n\tdisabled?: boolean;\n\tbadge?: string | number;\n\tchildren?: SidebarNavItem[];\n\tgroup?: string;\n\texternal?: boolean;\n}\n\nexport type SidebarFlatNavItem = Omit<SidebarNavItem, 'children' | 'group'>;\n\nexport interface SidebarRenderItemContext {\n\tdepth: number;\n\tactive: boolean;\n\texpanded: boolean;\n\tbadge?: string | number;\n\trenderLink: LayoutLinkRenderer;\n}\n\nexport interface SidebarSlots {\n\theader?: ReactNode;\n\tbeforeNavigation?: ReactNode;\n\tafterNavigation?: ReactNode;\n\tfooter?: ReactNode;\n\tempty?: ReactNode;\n\tloading?: ReactNode;\n}\n\nexport interface AppSidebarProps extends LayoutNavigationAdapter {\n\tnavigationGroups?: Record<string, SidebarNavItem[]>;\n\tfooterNavItems?: SidebarFlatNavItem[];\n\tfooterLabel?: ReactNode;\n\tlogo?: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks?: WorkspaceLink[];\n\tworkspaceStrings?: Partial<SidebarWorkspaceDropdownStrings>;\n\tworkspaceContentClassName?: string;\n\theaderClassName?: string;\n\tlogoClassName?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tcurrentUrl?: string;\n\tliveBadges?: Record<string, string | number>;\n\tloading?: boolean;\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tside?: 'left' | 'right';\n\tclassName?: string;\n\tsurfaceClassName?: string;\n\tcontentClassName?: string;\n\tslots?: SidebarSlots;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarGroupedNavigationProps extends LayoutNavigationAdapter {\n\tnavigationByGroups: Record<string, SidebarNavItem[]>;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\temptySlot?: ReactNode;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarFlatNavigationProps extends LayoutNavigationAdapter {\n\titems: SidebarFlatNavItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\trenderItem?: (item: SidebarFlatNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface WorkspaceLink {\n\tlabel: ReactNode;\n\turl: string;\n\ticon?: ComponentType<{ className?: string }>;\n\texternal?: boolean;\n}\n\nexport interface SidebarWorkspaceDropdownStrings {\n\tlabel: string;\n\tselect: string;\n}\n\nexport const defaultSidebarWorkspaceDropdownStrings: SidebarWorkspaceDropdownStrings = {\n\tlabel: 'Workspace',\n\tselect: 'Select workspace',\n};\n\nexport interface SidebarWorkspaceDropdownProps extends LayoutNavigationAdapter {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks: WorkspaceLink[];\n\tstrings?: Partial<SidebarWorkspaceDropdownStrings>;\n\tcontentClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type SidebarFooterNavigationItem = SidebarFlatNavItem;\n\nexport interface SidebarNavigationFooterProps extends LayoutNavigationAdapter {\n\titems: SidebarFooterNavigationItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** SidebarWorkspaceDropdown — workspace selector using consumer link rendering. */\nimport { ChevronsUpDown, ExternalLink } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultSidebarWorkspaceDropdownStrings,\n\ttype SidebarWorkspaceDropdownProps,\n} from '../sidebar.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport function SidebarWorkspaceDropdown({\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks,\n\trenderLink,\n\tLinkComponent,\n\tstrings: stringsProp,\n\tcontentClassName,\n}: SidebarWorkspaceDropdownProps) {\n\tconst strings = useStrings(defaultSidebarWorkspaceDropdownStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst visibleLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t{visibleLogo}\n\t\t\t\t\t\t\t{!isCollapsed && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"sr-only\">\n\t\t\t\t\t\t\t\t\t{strings.select}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{!isCollapsed && <ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent className={cn('min-w-56', contentClassName)} align=\"start\" side=\"right\" sideOffset={8}>\n\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t<DropdownMenuLabel>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\">{strings.label}</Text>\n\t\t\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t\t{workspaceLinks.map((link) => {\n\t\t\t\t\t\t\t\tconst Icon = link.icon ?? ExternalLink;\n\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<Icon className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{link.label}</Text>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={link.url}\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t\t\thref: link.url,\n\t\t\t\t\t\t\t\t\t\t\t\texternal: link.external ?? true,\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: null,\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: 'flex items-center gap-2',\n\t\t\t\t\t\t\t\t\t\t\t}) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n","/**\n * AppSidebar — opinionated assembly of logo/header, grouped navigation, and\n * footer links. Consumers still own framework routing through `renderLink`.\n */\nimport * as React from 'react';\n\nimport { ScrollArea } from '@/components/base/display/scroll-area';\nimport { Skeleton } from '@/components/base/display/skeleton';\nimport {\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarHeader,\n\tSidebarMenu,\n\tSidebarMenuItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { SidebarGroupedNavigation } from './components/sidebar-grouped-navigation';\nimport { SidebarLogo } from './components/sidebar-logo';\nimport { SidebarNavigationFooter } from './components/sidebar-navigation-footer';\nimport { SidebarWorkspaceDropdown } from './components/sidebar-workspace-dropdown';\nimport { Sidebar } from './sidebar';\nimport type { AppSidebarProps } from './sidebar.types';\n\nexport function AppSidebar({\n\tnavigationGroups,\n\tfooterNavItems = [],\n\tfooterLabel,\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks = [],\n\tworkspaceStrings,\n\tworkspaceContentClassName,\n\theaderClassName,\n\tlogoClassName,\n\ticonMap,\n\tcurrentUrl = '/',\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tloading,\n\tcollapsible = 'icon',\n\tvariant = 'sidebar',\n\tside = 'left',\n\tclassName,\n\tsurfaceClassName,\n\tcontentClassName,\n\tslots,\n\trenderItem,\n}: AppSidebarProps) {\n\tconst hasFooter = footerNavItems.length > 0 || !!slots?.footer;\n\tconst isLoading = loading || !navigationGroups;\n\tconst hasWorkspaceLinks = workspaceLinks.length > 0;\n\n\treturn (\n\t\t<Sidebar collapsible={collapsible} variant={variant} side={side} className={cn('h-svh', className)} surfaceClassName={surfaceClassName}>\n\t\t\t{slots?.header ?? (!!logo && (\n\t\t\t\t<SidebarHeader className={headerClassName}>\n\t\t\t\t\t{hasWorkspaceLinks ? (\n\t\t\t\t\t\t<SidebarWorkspaceDropdown\n\t\t\t\t\t\t\tlogo={logo}\n\t\t\t\t\t\t\tcollapsedLogo={collapsedLogo}\n\t\t\t\t\t\t\tworkspaceLinks={workspaceLinks}\n\t\t\t\t\t\t\tstrings={workspaceStrings}\n\t\t\t\t\t\t\tcontentClassName={workspaceContentClassName}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarLogo logo={logo} collapsedLogo={collapsedLogo} className={logoClassName} />\n\t\t\t\t\t)}\n\t\t\t\t</SidebarHeader>\n\t\t\t))}\n\n\t\t\t<SidebarContent className={contentClassName}>\n\t\t\t\t<ScrollArea className=\"h-full pr-1.5 pt-4\">\n\t\t\t\t\t{slots?.beforeNavigation}\n\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\tslots?.loading ?? <AppSidebarSkeleton />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarGroupedNavigation\n\t\t\t\t\t\t\tnavigationByGroups={navigationGroups}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t\temptySlot={slots?.empty}\n\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{slots?.afterNavigation}\n\t\t\t\t</ScrollArea>\n\t\t\t</SidebarContent>\n\n\t\t\t{hasFooter && (\n\t\t\t\t<SidebarFooter>\n\t\t\t\t\t{slots?.footer ?? (\n\t\t\t\t\t\t<SidebarNavigationFooter\n\t\t\t\t\t\t\titems={footerNavItems}\n\t\t\t\t\t\t\tlabel={footerLabel}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</SidebarFooter>\n\t\t\t)}\n\t\t</Sidebar>\n\t);\n}\n\nfunction AppSidebarSkeleton() {\n\tconst groups = [9, 3, 4, 2, 1];\n\n\treturn (\n\t\t<>\n\t\t\t{groups.map((count, groupIdx) => (\n\t\t\t\t<React.Fragment key={groupIdx}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{Array.from({ length: count }, (_, i) => (\n\t\t\t\t\t\t\t\t<SidebarMenuItem key={i}>\n\t\t\t\t\t\t\t\t\t<div className=\"flex h-8 items-center gap-2 px-2\">\n\t\t\t\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-4 shrink-0 rounded\" />\n\t\t\t\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"h-3.5 rounded\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ width: `${60 + ((groupIdx * 7 + i * 13) % 40)}px` }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIdx < groups.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</>\n\t);\n}\n","/** SidebarNavigation — flat, framework-neutral sidebar nav list. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarFlatNavigationProps, SidebarFlatNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport { DynamicIcon } from '../sidebar.utils';\nexport { DynamicIcon as Icon } from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarFlatNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarNavigation({\n\titems,\n\tlabel = 'Platform',\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\trenderItem,\n\tclassName,\n}: SidebarFlatNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('px-2 py-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\tconst context: SidebarRenderItemContext = {\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tactive,\n\t\t\t\t\t\texpanded: false,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\trenderLink: resolvedRenderLink,\n\t\t\t\t\t};\n\t\t\t\t\tconst labelNode = getNavLabel(item);\n\n\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst content = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</SidebarMenu>\n\t\t</SidebarGroup>\n\t);\n}\n\n/** @deprecated Use `SidebarFlatNavItem` from `sidebar.types`. */\nexport type SidebarNavigationItem = SidebarFlatNavItem;\n"," \n/** SidebarNavigationUser — user profile dropdown for sidebar footer. */\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { Text } from '@/components/typography';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings } from '@/lib/strings';\n\nimport type { LayoutUser } from '../../layout.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarNavigationUserStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultSidebarNavigationUserStrings: SidebarNavigationUserStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface SidebarNavigationUserProps {\n\tuser: LayoutUser;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\tstrings?: Partial<SidebarNavigationUserStrings>;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function SidebarNavigationUser({\n\tuser,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\tstrings: stringsProp,\n\trenderTrigger,\n}: SidebarNavigationUserProps) {\n\tconst strings = useStrings(defaultSidebarNavigationUserStrings, stringsProp);\n\tconst { state, isMobile } = useSidebar();\n\tconst dropdownSide = isMobile || state !== 'collapsed' ? 'bottom' : 'right';\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTrigger?.(user) ?? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<Avatar className=\"size-8 rounded-full\">\n\t\t\t\t\t\t\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t\t\t\t\t\t\t<AvatarFallback className=\"bg-sidebar-accent text-xs text-sidebar-accent-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-1 flex-col items-start justify-center overflow-hidden\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"w-full truncate\">{user.name}</Text>\n\t\t\t\t\t\t\t\t\t\t{!!user.email && <Text size=\"xs\" type=\"secondary\" className=\"w-full truncate\">{user.email}</Text>}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuTrigger>\n\n\t\t\t\t\t<DropdownMenuContent\n\t\t\t\t\t\tclassName=\"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg\"\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tside={dropdownSide}\n\t\t\t\t\t\tsideOffset={4}\n\t\t\t\t\t>\n\t\t\t\t\t\t{customContent ?? defaultContent}\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n\n/** @deprecated — use `LayoutUser` from `layout.types`. */\nexport type SidebarUserData = LayoutUser;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/sidebar-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/sidebar-B_L_dnAe.cjs");exports.Sidebar=e.r,exports.SidebarContent=e.i,exports.SidebarFooter=e.a,exports.SidebarGroup=e.o,exports.SidebarGroupAction=e.s,exports.SidebarGroupContent=e.c,exports.SidebarGroupLabel=e.l,exports.SidebarHeader=e.u,exports.SidebarInput=e.d,exports.SidebarInset=e.f,exports.SidebarMenu=e.p,exports.SidebarMenuAction=e.m,exports.SidebarMenuBadge=e.h,exports.SidebarMenuButton=e.t,exports.SidebarMenuItem=e.g,exports.SidebarMenuSkeleton=e._,exports.SidebarMenuSub=e.v,exports.SidebarMenuSubButton=e.n,exports.SidebarMenuSubItem=e.y,exports.SidebarProvider=e.b,exports.SidebarRail=e.x,exports.SidebarSeparator=e.S,exports.SidebarTrigger=e.C,exports.useSidebar=e.w;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as C } from "../../../_shared/sidebar-
|
|
2
|
-
export {
|
|
1
|
+
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as C } from "../../../_shared/sidebar-C5DApiDy.js";
|
|
2
|
+
export { g as Sidebar, u as SidebarContent, r as SidebarFooter, m as SidebarGroup, _ as SidebarGroupAction, a as SidebarGroupContent, d as SidebarGroupLabel, y as SidebarHeader, o as SidebarInput, s as SidebarInset, h as SidebarMenu, f as SidebarMenuAction, l as SidebarMenuBadge, v as SidebarMenuButton, c as SidebarMenuItem, n as SidebarMenuSkeleton, b as SidebarMenuSub, p as SidebarMenuSubButton, C as SidebarMenuSubItem, i as SidebarProvider, S as SidebarRail, t as SidebarSeparator, e as SidebarTrigger, x as useSidebar };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SidebarMenuButton as SidebarMenuButtonPrimitive } from '../../ui/sidebar';
|
|
1
|
+
import { SidebarMenuButton as SidebarMenuButtonPrimitive, SidebarMenuSubButton as SidebarMenuSubButtonPrimitive } from '../../ui/sidebar';
|
|
2
2
|
/**
|
|
3
3
|
* base/sidebar — thin wrapper around the shadcn `Sidebar` compound component.
|
|
4
4
|
*
|
|
@@ -8,8 +8,10 @@ import { SidebarMenuButton as SidebarMenuButtonPrimitive } from '../../ui/sideba
|
|
|
8
8
|
* the same public surface.
|
|
9
9
|
*/
|
|
10
10
|
import * as React from 'react';
|
|
11
|
-
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub,
|
|
11
|
+
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, } from '../../ui/sidebar';
|
|
12
12
|
type SidebarMenuButtonProps = React.ComponentProps<typeof SidebarMenuButtonPrimitive>;
|
|
13
|
+
type SidebarMenuSubButtonProps = React.ComponentProps<typeof SidebarMenuSubButtonPrimitive>;
|
|
13
14
|
declare function SidebarMenuButton({ className, render, tooltip, ...props }: SidebarMenuButtonProps): React.JSX.Element;
|
|
14
|
-
|
|
15
|
+
declare function SidebarMenuSubButton({ className, ...props }: SidebarMenuSubButtonProps): React.JSX.Element;
|
|
16
|
+
export { SidebarMenuButton, SidebarMenuSubButton };
|
|
15
17
|
//# sourceMappingURL=sidebar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/base/sidebar/sidebar.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/base/sidebar/sidebar.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACN,iBAAiB,IAAI,0BAA0B,EAC/C,oBAAoB,IAAI,6BAA6B,EACrD,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACN,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,GACV,MAAM,yBAAyB,CAAC;AAEjC,KAAK,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACtF,KAAK,yBAAyB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAQ5F,iBAAS,iBAAiB,CAAC,EAC1B,SAAS,EACT,MAAM,EACN,OAAO,EACP,GAAG,KAAK,EACR,EAAE,sBAAsB,qBAaxB;AAED,iBAAS,oBAAoB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACR,EAAE,yBAAyB,qBAO3B;AAED,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/header-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/header-kwvkesfq.cjs");exports.Header=e.s,exports.HeaderBreadcrumbs=e.c,exports.HeaderNotifications=e.t,exports.HeaderSearch=e.r,exports.HeaderUserMenu=e.n,exports.defaultHeaderNotificationsStrings=e.i,exports.defaultHeaderSearchStrings=e.a,exports.defaultHeaderUserMenuStrings=e.o;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../../../_shared/header-
|
|
1
|
+
import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../../../_shared/header-CyBTcM-L.js";
|
|
2
2
|
export { o as Header, t as HeaderBreadcrumbs, s as HeaderNotifications, a as HeaderSearch, r as HeaderUserMenu, n as defaultHeaderNotificationsStrings, e as defaultHeaderSearchStrings, i as defaultHeaderUserMenuStrings };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-search.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/header/partials/header-search.tsx"],"names":[],"mappings":"AAUA,OAAO,EAEN,KAAK,iBAAiB,EACtB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,cAAqB,EACrB,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,aAAa,EACb,YAAY,GACZ,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"header-search.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/header/partials/header-search.tsx"],"names":[],"mappings":"AAUA,OAAO,EAEN,KAAK,iBAAiB,EACtB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,cAAqB,EACrB,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,aAAa,EACb,YAAY,GACZ,EAAE,iBAAiB,+BAuCnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_shared/hooks-MW0UTO3q.cjs"),t=require("../../_shared/app-shell-DqDnnKT4.cjs"),n=require("../../_shared/content-container-CVUJCLhn.cjs"),r=require("../../_shared/containers-D7oZE4XI.cjs"),i=require("../../_shared/page-UJfWfw2R.cjs"),a=require("../../_shared/header-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_shared/hooks-MW0UTO3q.cjs"),t=require("../../_shared/app-shell-DqDnnKT4.cjs"),n=require("../../_shared/content-container-CVUJCLhn.cjs"),r=require("../../_shared/containers-D7oZE4XI.cjs"),i=require("../../_shared/page-UJfWfw2R.cjs"),a=require("../../_shared/header-kwvkesfq.cjs"),o=require("../../_shared/sidebar-D3sK9otF.cjs"),s=require("../../_shared/auth-CDjZFJxy.cjs"),c=require("../../_shared/workspace-CTjIGCE0.cjs");exports.AppSidebar=o.i,exports.AuthCard=s.h,exports.AuthFooterLinks=s.s,exports.AuthMethodSwitch=s.t,exports.AuthShell=s.r,exports.AuthSocialProviderButton=s.a,exports.AuthSocialProviders=s.o,exports.AuthSplitPanel=s.i,exports.Container=n.t,exports.DefaultLinkComponent=e.f,exports.DynamicIcon=e.r,exports.Icon=e.r,exports.SidebarIcon=e.r,exports.Header=a.s,exports.HeaderBreadcrumbs=a.c,exports.HeaderNotifications=a.t,exports.HeaderSearch=a.r,exports.HeaderUserMenu=a.n,exports.NavBadge=e.i,exports.Page=i.i,exports.PageActions=i.t,exports.PageContent=i.r,exports.PageHeader=i.a,exports.Section=r.t,exports.Sidebar=o.u,exports.SidebarGroupedNavigation=o.l,exports.SidebarLogo=o.c,exports.SidebarNavigation=o.r,exports.SidebarNavigationFooter=o.s,exports.SidebarNavigationUser=o.t,exports.SidebarProvider=o.f,exports.SidebarWorkspaceDropdown=o.a,exports.TopbarSidebarLayout=t.t,exports.WorkspaceLayout=c.t,exports.WorkspaceLocaleStrip=c.n,exports.WorkspaceNav=c.r,exports.WorkspaceRecordHeader=c.i,exports.defaultAuthFooterLinksStrings=s.c,exports.defaultAuthMethodSwitchStrings=s.l,exports.defaultAuthShellStrings=s.u,exports.defaultAuthSocialProvidersStrings=s.d,exports.defaultHeaderNotificationsStrings=a.i,exports.defaultHeaderSearchStrings=a.a,exports.defaultHeaderUserMenuStrings=a.o,exports.defaultPageActionsStrings=i.n,exports.defaultRenderLink=e.p,exports.defaultSidebarNavigationUserStrings=o.n,exports.defaultSidebarStrings=o.d,exports.defaultSidebarWorkspaceDropdownStrings=o.o,exports.defaultWorkspaceLocaleStripStrings=c.a,exports.defaultWorkspaceNavStrings=c.o,exports.defaultWorkspaceRecordHeaderStrings=c.s,exports.getNavKey=e.a,exports.getNavLabel=e.o,exports.isAuthBrandConfig=s.f,exports.isPathMatch=e.s,exports.resolveLayoutLinkRenderer=e.m,exports.resolveNavBadge=e.l,exports.toPath=e.u,exports.useActivePath=e.n,exports.useAuthLinks=s.p,exports.useAuthMethodSwitch=s.n,exports.useAuthShell=s.m,exports.useCommandShortcut=e.t,exports.useLayoutLinkRenderer=e.d,exports.useSidebar=o.p;
|
|
@@ -3,8 +3,8 @@ import { t as p } from "../../_shared/app-shell-w5h0vEKg.js";
|
|
|
3
3
|
import { t as m } from "../../_shared/content-container-Dv8XsAw4.js";
|
|
4
4
|
import { t as h } from "../../_shared/containers-anBivbL9.js";
|
|
5
5
|
import { a as g, i as _, n as v, r as y, t as b } from "../../_shared/page-BFV-KE8H.js";
|
|
6
|
-
import { a as x, c as S, i as C, n as w, o as T, r as E, s as D, t as O } from "../../_shared/header-
|
|
7
|
-
import { a as k, c as ee, d as A, f as j, i as M, l as N, n as P, o as F, p as I, r as L, s as R, t as z, u as B } from "../../_shared/sidebar-
|
|
6
|
+
import { a as x, c as S, i as C, n as w, o as T, r as E, s as D, t as O } from "../../_shared/header-CyBTcM-L.js";
|
|
7
|
+
import { a as k, c as ee, d as A, f as j, i as M, l as N, n as P, o as F, p as I, r as L, s as R, t as z, u as B } from "../../_shared/sidebar-CIlGkVbF.js";
|
|
8
8
|
import { a as V, c as H, d as U, f as W, h as G, i as K, l as q, m as J, n as Y, o as X, p as Z, r as Q, s as $, t as te, u as ne } from "../../_shared/auth-_udUdWtn.js";
|
|
9
9
|
import { a as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "../../_shared/workspace-WgJgiSUA.js";
|
|
10
10
|
export { M as AppSidebar, G as AuthCard, $ as AuthFooterLinks, te as AuthMethodSwitch, Q as AuthShell, V as AuthSocialProviderButton, X as AuthSocialProviders, K as AuthSplitPanel, m as Container, n as DefaultLinkComponent, l as DynamicIcon, l as Icon, l as SidebarIcon, D as Header, S as HeaderBreadcrumbs, O as HeaderNotifications, E as HeaderSearch, w as HeaderUserMenu, r as NavBadge, _ as Page, b as PageActions, y as PageContent, g as PageHeader, h as Section, B as Sidebar, N as SidebarGroupedNavigation, ee as SidebarLogo, L as SidebarNavigation, R as SidebarNavigationFooter, z as SidebarNavigationUser, j as SidebarProvider, k as SidebarWorkspaceDropdown, p as TopbarSidebarLayout, le as WorkspaceLayout, ae as WorkspaceLocaleStrip, se as WorkspaceNav, ie as WorkspaceRecordHeader, H as defaultAuthFooterLinksStrings, q as defaultAuthMethodSwitchStrings, ne as defaultAuthShellStrings, U as defaultAuthSocialProvidersStrings, C as defaultHeaderNotificationsStrings, x as defaultHeaderSearchStrings, T as defaultHeaderUserMenuStrings, v as defaultPageActionsStrings, c as defaultRenderLink, P as defaultSidebarNavigationUserStrings, A as defaultSidebarStrings, F as defaultSidebarWorkspaceDropdownStrings, re as defaultWorkspaceLocaleStripStrings, oe as defaultWorkspaceNavStrings, ce as defaultWorkspaceRecordHeaderStrings, e as getNavKey, s as getNavLabel, W as isAuthBrandConfig, u as isPathMatch, a as resolveLayoutLinkRenderer, i as resolveNavBadge, f as toPath, o as useActivePath, Z as useAuthLinks, Y as useAuthMethodSwitch, J as useAuthShell, d as useCommandShortcut, t as useLayoutLinkRenderer, I as useSidebar };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-grouped-navigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EAAE,6BAA6B,EAA4C,MAAM,kBAAkB,CAAC;AAqBhH,wBAAgB,wBAAwB,CAAC,EACxC,kBAAkB,EAClB,UAAgB,EAChB,OAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,SAAS,GACT,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"sidebar-grouped-navigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EAAE,6BAA6B,EAA4C,MAAM,kBAAkB,CAAC;AAqBhH,wBAAgB,wBAAwB,CAAC,EACxC,kBAAkB,EAClB,UAAgB,EAChB,OAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,SAAS,GACT,EAAE,6BAA6B,uRAgK/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/hooks-MW0UTO3q.cjs"),t=require("../../../_shared/sidebar-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/hooks-MW0UTO3q.cjs"),t=require("../../../_shared/sidebar-D3sK9otF.cjs");exports.AppSidebar=t.i,exports.DynamicIcon=e.r,exports.Icon=e.r,exports.SidebarIcon=e.r,exports.NavBadge=e.i,exports.Sidebar=t.u,exports.SidebarGroupedNavigation=t.l,exports.SidebarLogo=t.c,exports.SidebarNavigation=t.r,exports.SidebarNavigationFooter=t.s,exports.SidebarNavigationUser=t.t,exports.SidebarProvider=t.f,exports.SidebarWorkspaceDropdown=t.a,exports.defaultSidebarNavigationUserStrings=t.n,exports.defaultSidebarStrings=t.d,exports.defaultSidebarWorkspaceDropdownStrings=t.o,exports.getNavKey=e.a,exports.getNavLabel=e.o,exports.isPathMatch=e.s,exports.resolveNavBadge=e.l,exports.toPath=e.u,exports.useSidebar=t.p;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { a as e, i as t, l as n, o as r, r as i, s as a, u as o } from "../../../_shared/hooks-ZiPIvs0_.js";
|
|
2
|
-
import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y } from "../../../_shared/sidebar-
|
|
2
|
+
import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y } from "../../../_shared/sidebar-CIlGkVbF.js";
|
|
3
3
|
export { d as AppSidebar, i as DynamicIcon, i as Icon, i as SidebarIcon, t as NavBadge, y as Sidebar, f as SidebarGroupedNavigation, c as SidebarLogo, g as SidebarNavigation, _ as SidebarNavigationFooter, v as SidebarNavigationUser, u as SidebarProvider, s as SidebarWorkspaceDropdown, p as defaultSidebarNavigationUserStrings, l as defaultSidebarStrings, m as defaultSidebarWorkspaceDropdownStrings, e as getNavKey, r as getNavLabel, a as isPathMatch, n as resolveNavBadge, o as toPath, h as useSidebar };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';
|
|
2
|
+
import { Button } from './button';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
declare function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props): React.JSX.Element;
|
|
5
|
+
declare function AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props): React.JSX.Element;
|
|
6
|
+
declare function AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props): React.JSX.Element;
|
|
7
|
+
declare function AlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.Backdrop.Props): React.JSX.Element;
|
|
8
|
+
declare function AlertDialogContent({ className, size, ...props }: AlertDialogPrimitive.Popup.Props & {
|
|
9
|
+
size?: "default" | "sm";
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
12
|
+
declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
13
|
+
declare function AlertDialogMedia({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
14
|
+
declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): React.JSX.Element;
|
|
15
|
+
declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): React.JSX.Element;
|
|
16
|
+
declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
17
|
+
declare function AlertDialogCancel({ className, variant, size, ...props }: AlertDialogPrimitive.Close.Props & Pick<React.ComponentProps<typeof Button>, "variant" | "size">): React.JSX.Element;
|
|
18
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, };
|
|
19
|
+
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/alert-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGjF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,qBAEjE;AAED,iBAAS,kBAAkB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,CAAC,OAAO,CAAC,KAAK,qBAI3E;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,qBAIzE;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,qBAWrC;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,GAAG;IACpC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CACxB,qBAeA;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,KAAK,CAAC,qBAWzD;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,WAAW,CAAC,qBAW/D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,qBAQrC;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,GACjC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,qBAS9D;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../../../src/components/ui/aspect-ratio.tsx"],"names":[],"mappings":"AAEA,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,+BAajD;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { default as useEmblaCarousel, UseEmblaCarouselType } from 'embla-carousel-react';
|
|
2
|
+
import { Button } from './button';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
type CarouselApi = UseEmblaCarouselType[1];
|
|
5
|
+
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
6
|
+
type CarouselOptions = UseCarouselParameters[0];
|
|
7
|
+
type CarouselPlugin = UseCarouselParameters[1];
|
|
8
|
+
type CarouselProps = {
|
|
9
|
+
opts?: CarouselOptions;
|
|
10
|
+
plugins?: CarouselPlugin;
|
|
11
|
+
orientation?: "horizontal" | "vertical";
|
|
12
|
+
setApi?: (api: CarouselApi) => void;
|
|
13
|
+
};
|
|
14
|
+
type CarouselContextProps = {
|
|
15
|
+
carouselRef: ReturnType<typeof useEmblaCarousel>[0];
|
|
16
|
+
api: ReturnType<typeof useEmblaCarousel>[1];
|
|
17
|
+
scrollPrev: () => void;
|
|
18
|
+
scrollNext: () => void;
|
|
19
|
+
canScrollPrev: boolean;
|
|
20
|
+
canScrollNext: boolean;
|
|
21
|
+
} & CarouselProps;
|
|
22
|
+
declare function useCarousel(): CarouselContextProps;
|
|
23
|
+
declare function Carousel({ orientation, opts, setApi, plugins, className, children, ...props }: React.ComponentProps<"div"> & CarouselProps): React.JSX.Element;
|
|
24
|
+
declare function CarouselContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
25
|
+
declare function CarouselItem({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
26
|
+
declare function CarouselPrevious({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
27
|
+
declare function CarouselNext({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
28
|
+
export { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, useCarousel, };
|
|
29
|
+
//# sourceMappingURL=carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/components/ui/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,gBAAgB,EAAE,EACvB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,KAAK,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAC1C,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAChE,KAAK,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC/C,KAAK,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAE9C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,WAAW,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;CACvB,GAAG,aAAa,CAAA;AAIjB,iBAAS,WAAW,yBAQnB;AAED,iBAAS,QAAQ,CAAC,EAChB,WAA0B,EAC1B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,qBAgF7C;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAmB5E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAgBzE;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,qBAuBrC;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,qBAuBrC;AAED,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direction.d.ts","sourceRoot":"","sources":["../../../src/components/ui/direction.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,GACb,MAAM,mCAAmC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Drawer as DrawerPrimitive } from 'vaul';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>): React.JSX.Element;
|
|
4
|
+
declare function DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>): React.JSX.Element;
|
|
5
|
+
declare function DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>): React.JSX.Element;
|
|
6
|
+
declare function DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>): React.JSX.Element;
|
|
7
|
+
declare function DrawerOverlay({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Overlay>): React.JSX.Element;
|
|
8
|
+
declare function DrawerContent({ className, children, ...props }: React.ComponentProps<typeof DrawerPrimitive.Content>): React.JSX.Element;
|
|
9
|
+
declare function DrawerHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
10
|
+
declare function DrawerFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
11
|
+
declare function DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>): React.JSX.Element;
|
|
12
|
+
declare function DrawerDescription({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>): React.JSX.Element;
|
|
13
|
+
export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription, };
|
|
14
|
+
//# sourceMappingURL=drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,MAAM,CAAA;AAIhD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAEnD;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAEtD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,qBAErD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAWtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAiBtD;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWzE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAWpD;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,qBAQ1D;AAED,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { Label } from './label';
|
|
3
|
+
declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">): import("react").JSX.Element;
|
|
4
|
+
declare function FieldLegend({ className, variant, ...props }: React.ComponentProps<"legend"> & {
|
|
5
|
+
variant?: "legend" | "label";
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
declare function FieldGroup({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
|
|
8
|
+
declare const fieldVariants: (props?: ({
|
|
9
|
+
orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
|
|
10
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
11
|
+
declare function Field({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): import("react").JSX.Element;
|
|
12
|
+
declare function FieldContent({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
|
|
13
|
+
declare function FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>): import("react").JSX.Element;
|
|
14
|
+
declare function FieldTitle({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
|
|
15
|
+
declare function FieldDescription({ className, ...props }: React.ComponentProps<"p">): import("react").JSX.Element;
|
|
16
|
+
declare function FieldSeparator({ children, className, ...props }: React.ComponentProps<"div"> & {
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
declare function FieldError({ className, children, errors, ...props }: React.ComponentProps<"div"> & {
|
|
20
|
+
errors?: Array<{
|
|
21
|
+
message?: string;
|
|
22
|
+
} | undefined>;
|
|
23
|
+
}): import("react").JSX.Element | null;
|
|
24
|
+
export { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle, };
|
|
25
|
+
//# sourceMappingURL=field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/field.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAG7C,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,+BAW1E;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,+BAYnE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,QAAA,MAAM,aAAa;;8EAgBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAUlE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWzE;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,+BAYpC;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,+BAa3E;AAED,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,+BAsBA;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;CACjD,sCA0CA;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OTPInput } from 'input-otp';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
|
|
4
|
+
containerClassName?: string;
|
|
5
|
+
}): React.JSX.Element;
|
|
6
|
+
declare function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
7
|
+
declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & {
|
|
8
|
+
index: number;
|
|
9
|
+
}): React.JSX.Element;
|
|
10
|
+
declare function InputOTPSeparator({ ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
11
|
+
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
|
|
12
|
+
//# sourceMappingURL=input-otp.d.ts.map
|