admin-ui-starter-kit 0.4.3 → 0.4.4
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/admin-ui-consumer-migration/SKILL.md +10 -0
- package/.agents/skills/admin-ui-consumer-migration/references/actions-service.md +236 -0
- package/CHANGELOG.md +26 -1
- package/COMPONENT_SELECTION.md +10 -1
- package/INTEGRATION.md +47 -0
- package/README.md +34 -1
- package/dist/_shared/accordion-Df1XrCDv.cjs +2 -0
- package/dist/_shared/accordion-Df1XrCDv.cjs.map +1 -0
- package/dist/_shared/accordion-Rzi9wEl6.js +130 -0
- package/dist/_shared/accordion-Rzi9wEl6.js.map +1 -0
- package/dist/_shared/action-menu-CrOJ63Q9.js +96 -0
- package/dist/_shared/action-menu-CrOJ63Q9.js.map +1 -0
- package/dist/_shared/action-menu-D9OowHKx.cjs +2 -0
- package/dist/_shared/action-menu-D9OowHKx.cjs.map +1 -0
- package/dist/_shared/ai-artifact-D4EjKoq6.cjs +3 -0
- package/dist/_shared/ai-artifact-D4EjKoq6.cjs.map +1 -0
- package/dist/_shared/ai-artifact-nlOrSeqT.js +1099 -0
- package/dist/_shared/ai-artifact-nlOrSeqT.js.map +1 -0
- package/dist/_shared/auth-C5HawWvp.cjs +2 -0
- package/dist/_shared/auth-C5HawWvp.cjs.map +1 -0
- package/dist/_shared/auth-DnMEJXP9.js +643 -0
- package/dist/_shared/auth-DnMEJXP9.js.map +1 -0
- package/dist/_shared/badge-6WYAMJwA.js +108 -0
- package/dist/_shared/badge-6WYAMJwA.js.map +1 -0
- package/dist/_shared/badge-CBof1rbF.cjs +2 -0
- package/dist/_shared/badge-CBof1rbF.cjs.map +1 -0
- package/dist/_shared/button-BGKY8UY0.js +173 -0
- package/dist/_shared/button-BGKY8UY0.js.map +1 -0
- package/dist/_shared/button-BI347RlM.cjs +2 -0
- package/dist/_shared/button-BI347RlM.cjs.map +1 -0
- package/dist/_shared/button-DEFoa7-c.cjs +2 -0
- package/dist/_shared/button-DEFoa7-c.cjs.map +1 -0
- package/dist/_shared/button-DlqryxqA.js +46 -0
- package/dist/_shared/button-DlqryxqA.js.map +1 -0
- package/dist/_shared/buttons-PL-TGJ32.js +143 -0
- package/dist/_shared/buttons-PL-TGJ32.js.map +1 -0
- package/dist/_shared/buttons-kVvSD_oI.cjs +2 -0
- package/dist/_shared/buttons-kVvSD_oI.cjs.map +1 -0
- package/dist/_shared/combobox-B4KmDZK0.cjs +2 -0
- package/dist/_shared/combobox-B4KmDZK0.cjs.map +1 -0
- package/dist/_shared/combobox-YUGi3xSc.js +810 -0
- package/dist/_shared/combobox-YUGi3xSc.js.map +1 -0
- package/dist/_shared/comments-GzXdwpq4.js +952 -0
- package/dist/_shared/comments-GzXdwpq4.js.map +1 -0
- package/dist/_shared/comments-Zj_foV1V.cjs +2 -0
- package/dist/_shared/comments-Zj_foV1V.cjs.map +1 -0
- package/dist/_shared/date-picker-Dl91BM3D.js +1361 -0
- package/dist/_shared/date-picker-Dl91BM3D.js.map +1 -0
- package/dist/_shared/date-picker-zFOqtmAS.cjs +2 -0
- package/dist/_shared/date-picker-zFOqtmAS.cjs.map +1 -0
- package/dist/_shared/date-pickers-BBydcIjN.cjs +2 -0
- package/dist/_shared/date-pickers-BBydcIjN.cjs.map +1 -0
- package/dist/_shared/date-pickers-D2OsgV4V.js +330 -0
- package/dist/_shared/date-pickers-D2OsgV4V.js.map +1 -0
- package/dist/_shared/dialog-CCN4tjU9.js +101 -0
- package/dist/_shared/dialog-CCN4tjU9.js.map +1 -0
- package/dist/_shared/dialog-Dd0ENSrU.cjs +2 -0
- package/dist/_shared/dialog-Dd0ENSrU.cjs.map +1 -0
- package/dist/_shared/display-Dhy5ogxC.cjs +2 -0
- package/dist/_shared/display-Dhy5ogxC.cjs.map +1 -0
- package/dist/_shared/display-NBtWdAMl.js +1154 -0
- package/dist/_shared/display-NBtWdAMl.js.map +1 -0
- package/dist/_shared/forms-BweX9Lm8.cjs +2 -0
- package/dist/_shared/forms-BweX9Lm8.cjs.map +1 -0
- package/dist/_shared/forms-L1hyNKpZ.js +3430 -0
- package/dist/_shared/forms-L1hyNKpZ.js.map +1 -0
- package/dist/_shared/header-BSBPtGn4.cjs +2 -0
- package/dist/_shared/header-BSBPtGn4.cjs.map +1 -0
- package/dist/_shared/header-No6GSp4R.js +360 -0
- package/dist/_shared/header-No6GSp4R.js.map +1 -0
- package/dist/_shared/hooks-BkXvZ4py.js +118 -0
- package/dist/_shared/hooks-BkXvZ4py.js.map +1 -0
- package/dist/_shared/hooks-D3SbLBRk.cjs +2 -0
- package/dist/_shared/hooks-D3SbLBRk.cjs.map +1 -0
- package/dist/_shared/mentions-CA1Ka_Bv.cjs +2 -0
- package/dist/_shared/mentions-CA1Ka_Bv.cjs.map +1 -0
- package/dist/_shared/mentions-CdvvLGQG.js +506 -0
- package/dist/_shared/mentions-CdvvLGQG.js.map +1 -0
- package/dist/_shared/metadata-Ckcmar8d.js +235 -0
- package/dist/_shared/metadata-Ckcmar8d.js.map +1 -0
- package/dist/_shared/metadata-DamdYVZL.cjs +2 -0
- package/dist/_shared/metadata-DamdYVZL.cjs.map +1 -0
- package/dist/_shared/navigation-BemwPPC8.cjs +2 -0
- package/dist/_shared/navigation-BemwPPC8.cjs.map +1 -0
- package/dist/_shared/navigation-DY540HB0.js +419 -0
- package/dist/_shared/navigation-DY540HB0.js.map +1 -0
- package/dist/_shared/overlays-CJs_syAu.js +648 -0
- package/dist/_shared/overlays-CJs_syAu.js.map +1 -0
- package/dist/_shared/overlays-DWFEaAog.cjs +2 -0
- package/dist/_shared/overlays-DWFEaAog.cjs.map +1 -0
- package/dist/_shared/page-Cg_gNpyK.js +262 -0
- package/dist/_shared/page-Cg_gNpyK.js.map +1 -0
- package/dist/_shared/page-CpFWQuWU.cjs +2 -0
- package/dist/_shared/page-CpFWQuWU.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-B2VqNi6j.js +620 -0
- package/dist/_shared/rich-text-editor-B2VqNi6j.js.map +1 -0
- package/dist/_shared/rich-text-editor-ChE-pI3N.cjs +2 -0
- package/dist/_shared/rich-text-editor-ChE-pI3N.cjs.map +1 -0
- package/dist/_shared/sheet-BOgUA4fC.cjs +2 -0
- package/dist/_shared/sheet-BOgUA4fC.cjs.map +1 -0
- package/dist/_shared/sheet-DWQuyRRz.js +100 -0
- package/dist/_shared/sheet-DWQuyRRz.js.map +1 -0
- package/dist/_shared/sidebar-BGpi9K_Q.js +389 -0
- package/dist/_shared/sidebar-BGpi9K_Q.js.map +1 -0
- package/dist/_shared/sidebar-BTFfxmNG.cjs +2 -0
- package/dist/_shared/sidebar-BTFfxmNG.cjs.map +1 -0
- package/dist/_shared/sidebar-CC3lcvNX.cjs +2 -0
- package/dist/_shared/sidebar-CC3lcvNX.cjs.map +1 -0
- package/dist/_shared/sidebar-wmztVpnO.js +538 -0
- package/dist/_shared/sidebar-wmztVpnO.js.map +1 -0
- package/dist/_shared/smart-card-B6m7tmt0.cjs +2 -0
- package/dist/_shared/smart-card-B6m7tmt0.cjs.map +1 -0
- package/dist/_shared/smart-card-thLb85Ih.js +361 -0
- package/dist/_shared/smart-card-thLb85Ih.js.map +1 -0
- package/dist/_shared/table-BItnJ8lG.cjs +2 -0
- package/dist/_shared/table-BItnJ8lG.cjs.map +1 -0
- package/dist/_shared/table-D3349b-v.js +1189 -0
- package/dist/_shared/table-D3349b-v.js.map +1 -0
- package/dist/_shared/workspace-BGVeTeJy.js +357 -0
- package/dist/_shared/workspace-BGVeTeJy.js.map +1 -0
- package/dist/_shared/workspace-CWyzTUmE.cjs +2 -0
- package/dist/_shared/workspace-CWyzTUmE.cjs.map +1 -0
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/badge/index.cjs +1 -1
- package/dist/components/base/badge/index.js +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/cards/index.cjs +1 -1
- package/dist/components/base/cards/index.js +1 -1
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.js +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/date-pickers/index.cjs +1 -1
- package/dist/components/base/date-pickers/index.js +2 -2
- package/dist/components/base/display/alert.d.ts +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.js +6 -6
- package/dist/components/base/display/metadata/index.cjs +1 -1
- package/dist/components/base/display/metadata/index.js +1 -1
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.js +41 -41
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.js +31 -31
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +2 -2
- package/dist/components/base/sheet/index.cjs +1 -1
- package/dist/components/base/sheet/index.js +1 -1
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.js +47 -47
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +105 -105
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.js +89 -89
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +116 -116
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +127 -127
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +37 -37
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +3 -3
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +55 -55
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +1 -1
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +2 -2
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.js +56 -56
- package/dist/components/features/ai-chat/index.cjs +2 -2
- package/dist/components/features/ai-chat/index.js +53 -53
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +21 -21
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +3 -3
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.js +143 -143
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +57 -57
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +14 -14
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.js +178 -178
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/alert-dialog.d.ts.map +1 -1
- package/dist/components/features/overlays/drawer.d.ts +1 -1
- package/dist/components/features/overlays/drawer.d.ts.map +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/overlays/overlays.types.d.ts +1 -0
- package/dist/components/features/overlays/overlays.types.d.ts.map +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +124 -124
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +26 -26
- package/dist/components/features/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +6 -6
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/ui/alert.d.ts +1 -1
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/services/actions/action-overlay-outlet.d.ts +4 -0
- package/dist/services/actions/action-overlay-outlet.d.ts.map +1 -0
- package/dist/services/actions/action-provider.d.ts +8 -0
- package/dist/services/actions/action-provider.d.ts.map +1 -0
- package/dist/services/actions/action-scope.d.ts +4 -0
- package/dist/services/actions/action-scope.d.ts.map +1 -0
- package/dist/services/actions/action-store.d.ts +44 -0
- package/dist/services/actions/action-store.d.ts.map +1 -0
- package/dist/services/actions/actions.strings.d.ts +3 -0
- package/dist/services/actions/actions.strings.d.ts.map +1 -0
- package/dist/services/actions/actions.types.d.ts +248 -0
- package/dist/services/actions/actions.types.d.ts.map +1 -0
- package/dist/services/actions/hooks.d.ts +8 -0
- package/dist/services/actions/hooks.d.ts.map +1 -0
- package/dist/services/actions/index.cjs +2 -0
- package/dist/services/actions/index.cjs.map +1 -0
- package/dist/services/actions/index.d.ts +8 -0
- package/dist/services/actions/index.d.ts.map +1 -0
- package/dist/services/actions/index.js +562 -0
- package/dist/services/actions/index.js.map +1 -0
- package/dist/showcase/assets/AreaChart-BYEewdc_.js +6 -0
- package/dist/showcase/assets/CompositeItem-Duekeg4m.js +1 -0
- package/dist/showcase/assets/CompositeRoot-BgNU3T7R.js +1 -0
- package/dist/showcase/assets/DialogTrigger-9xWmoeF5.js +1 -0
- package/dist/showcase/assets/LabelableContext-B3W_70Qk.js +1 -0
- package/dist/showcase/assets/PreviewLayout-nADJqRlP.js +1 -0
- package/dist/showcase/assets/RadioGroup-Bp1VCzxr.js +1 -0
- package/dist/showcase/assets/Separator-9PWX3shz.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-DwELw9xS.js +1 -0
- package/dist/showcase/assets/accordion-CfqHO9_z.js +171 -0
- package/dist/showcase/assets/accordion-variants-pkPHxkLW.js +1 -0
- package/dist/showcase/assets/action-menu-DFzSuDjI.js +1 -0
- package/dist/showcase/assets/activities-Bo97b2-I.js +501 -0
- package/dist/showcase/assets/activities-feed-card-D77gf27B.js +1 -0
- package/dist/showcase/assets/activity-BUlCWLI8.js +1 -0
- package/dist/showcase/assets/admin-CxTV4kZX.js +80 -0
- package/dist/showcase/assets/ai-Bym5H8bn.js +41 -0
- package/dist/showcase/assets/ai-artifact-DZVl1WmK.js +2 -0
- package/dist/showcase/assets/ai-chat-M3X5-PgT.js +568 -0
- package/dist/showcase/assets/ai-elements-DjppcMBD.js +387 -0
- package/dist/showcase/assets/ai-new-CXnrIi5S.js +167 -0
- package/dist/showcase/assets/ai-tool-call-DyMI8DqD.js +1 -0
- package/dist/showcase/assets/alert-D6Pygy2s.js +62 -0
- package/dist/showcase/assets/alert-DCrWLbEx.js +93 -0
- package/dist/showcase/assets/alert-qTNM0vld.js +1 -0
- package/dist/showcase/assets/api-key-list-CCpuHYHc.js +73 -0
- package/dist/showcase/assets/app-sidebar-CxTRNC5L.js +1 -0
- package/dist/showcase/assets/arrow-down--phuskCV.js +1 -0
- package/dist/showcase/assets/arrow-left-B__WWqyA.js +1 -0
- package/dist/showcase/assets/arrow-right-1-EvXxjB.js +1 -0
- package/dist/showcase/assets/arrow-up-lWotnmo7.js +1 -0
- package/dist/showcase/assets/arrow-up-right-IyQ3oeq0.js +1 -0
- package/dist/showcase/assets/avatar-gugtNx4D.js +57 -0
- package/dist/showcase/assets/avatar-n1nywTlx.js +1 -0
- package/dist/showcase/assets/badge-TuE-u3Hv.js +28 -0
- package/dist/showcase/assets/badge-check-CPDvpVzK.js +1 -0
- package/dist/showcase/assets/bell-DeCVddCA.js +1 -0
- package/dist/showcase/assets/bot-B_vzJEJH.js +1 -0
- package/dist/showcase/assets/box-z4O8t_K5.js +1 -0
- package/dist/showcase/assets/brain-DdKBE4Bh.js +1 -0
- package/dist/showcase/assets/brand-CfW7mgTY.js +36 -0
- package/dist/showcase/assets/breadcrumb-B4TBbKv3.js +52 -0
- package/dist/showcase/assets/breadcrumb-bF_sFVBL.js +1 -0
- package/dist/showcase/assets/breadcrumbs-CBv3EaMX.js +1 -0
- package/dist/showcase/assets/briefcase-ClqzeNt3.js +1 -0
- package/dist/showcase/assets/building-2-BQuWgjZj.js +1 -0
- package/dist/showcase/assets/button-CWKNCI82.js +44 -0
- package/dist/showcase/assets/button-group-BYhxtFwV.js +1 -0
- package/dist/showcase/assets/buttons-mBRyBw3Q.js +270 -0
- package/dist/showcase/assets/calendar-BgloJjlW.js +1 -0
- package/dist/showcase/assets/calendar-CJDWspzi.js +1 -0
- package/dist/showcase/assets/calendar-CgML2kJt.js +16 -0
- package/dist/showcase/assets/calendar-days-C0gTLVnY.js +1 -0
- package/dist/showcase/assets/camera-nIlaz4Sn.js +1 -0
- package/dist/showcase/assets/card-1ncRnRvq.js +1 -0
- package/dist/showcase/assets/card-CcgWzFB-.js +188 -0
- package/dist/showcase/assets/card-primitives-By4-RTuP.js +1 -0
- package/dist/showcase/assets/card-radio-group-DeX3qsRg.js +1 -0
- package/dist/showcase/assets/cards-DdqQr8rY.js +328 -0
- package/dist/showcase/assets/carousel-CV8ltDl8.js +449 -0
- package/dist/showcase/assets/chart-BNzHjskC.js +358 -0
- package/dist/showcase/assets/chart-column-CpTxRLEH.js +1 -0
- package/dist/showcase/assets/checkbox-CZTTm4Dv.js +1 -0
- package/dist/showcase/assets/chevron-down-LWBNHe9S.js +1 -0
- package/dist/showcase/assets/chevron-left-BsshO7nf.js +1 -0
- package/dist/showcase/assets/chevron-right-t68um2_G.js +1 -0
- package/dist/showcase/assets/chevron-up-DjhlESJB.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-ZUo0Do59.js +1 -0
- package/dist/showcase/assets/circle-BL52dLr9.js +1 -0
- package/dist/showcase/assets/circle-alert-CXCt6zxc.js +1 -0
- package/dist/showcase/assets/circle-check-CbiRRw7s.js +1 -0
- package/dist/showcase/assets/circle-check-big-BSgn7lyt.js +1 -0
- package/dist/showcase/assets/circle-dot-WEOpGGJf.js +1 -0
- package/dist/showcase/assets/circle-question-mark-C9hLlsD7.js +1 -0
- package/dist/showcase/assets/circle-x-BT9TJbJC.js +1 -0
- package/dist/showcase/assets/clock-3-CfRK8ckc.js +1 -0
- package/dist/showcase/assets/clock-D-3zf0c1.js +1 -0
- package/dist/showcase/assets/code-xml-CQYKKuBU.js +1 -0
- package/dist/showcase/assets/collapsible-BC0hQvat.js +27 -0
- package/dist/showcase/assets/collapsible-CRVtVDCF.js +1 -0
- package/dist/showcase/assets/combobox-D4VYvYCT.js +696 -0
- package/dist/showcase/assets/command-CxeHT4lL.js +1 -0
- package/dist/showcase/assets/command-Do_t_Zou.js +1 -0
- package/dist/showcase/assets/comment-composer-DoFwvVlq.js +1 -0
- package/dist/showcase/assets/comment-item-CT8UbVeg.js +1 -0
- package/dist/showcase/assets/comments-CqdXrjUn.js +357 -0
- package/dist/showcase/assets/commerce-B9V2Wo_q.js +79 -0
- package/dist/showcase/assets/commerce-extras-CNT3QmAT.js +189 -0
- package/dist/showcase/assets/composite-BXLXcagx.js +1 -0
- package/dist/showcase/assets/contact-card-BLcAXepj.js +65 -0
- package/dist/showcase/assets/content-container-DJVD3ZmI.js +1 -0
- package/dist/showcase/assets/copyable-od17NrMu.js +96 -0
- package/dist/showcase/assets/course-card-CdZQr5yy.js +77 -0
- package/dist/showcase/assets/cpu-B8kRNR1R.js +1 -0
- package/dist/showcase/assets/credit-card-BYMQj03s.js +1 -0
- package/dist/showcase/assets/currency-Cxv3Cp6B.js +149 -0
- package/dist/showcase/assets/dark-surfaces-Cfp58iFb.js +90 -0
- package/dist/showcase/assets/database-DuUABvxU.js +1 -0
- package/dist/showcase/assets/date-block-E9qfY7W7.js +1 -0
- package/dist/showcase/assets/date-picker-I8BdaiiU.js +1 -0
- package/dist/showcase/assets/date-pickers-BLJaqhcS.js +73 -0
- package/dist/showcase/assets/dense-info-Bk1K_7Ww.js +106 -0
- package/dist/showcase/assets/dialog-BuatDnQ9.js +1 -0
- package/dist/showcase/assets/dialog-DCx-LydW.js +1 -0
- package/dist/showcase/assets/display-Bt7busw5.js +403 -0
- package/dist/showcase/assets/dist-BPyBHOXU.js +45 -0
- package/dist/showcase/assets/dollar-sign-qXQSS6Gh.js +1 -0
- package/dist/showcase/assets/download-B2JAmHmJ.js +1 -0
- package/dist/showcase/assets/dropdown-menu-DXT3BZLa.js +1 -0
- package/dist/showcase/assets/dropzone-BKIxDJNy.js +1 -0
- package/dist/showcase/assets/earth-7-Z3Gv2v.js +1 -0
- package/dist/showcase/assets/ellipsis-6Krb3RRW.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-DeOMIw1J.js +1 -0
- package/dist/showcase/assets/empty-BSYKaeXQ.js +1 -0
- package/dist/showcase/assets/empty-item-YElgv25f.js +49 -0
- package/dist/showcase/assets/empty-state-D-LrvnKF.js +1 -0
- package/dist/showcase/assets/empty-state-dNh1GtVU.js +188 -0
- package/dist/showcase/assets/enhanced-activities-Bw99ItYl.js +361 -0
- package/dist/showcase/assets/enhanced-combobox-CqLZmU3K.js +1 -0
- package/dist/showcase/assets/event-calendar-CcSi7g5A.js +138 -0
- package/dist/showcase/assets/event-log-2uq-eYxh.js +330 -0
- package/dist/showcase/assets/example-CTJ8AdNR.js +1 -0
- package/dist/showcase/assets/external-link-D0gqSa1q.js +1 -0
- package/dist/showcase/assets/eye-CDMCDLei.js +1 -0
- package/dist/showcase/assets/feature-announcement-BlyNck35.js +34 -0
- package/dist/showcase/assets/file-Y5EbzufX.js +1 -0
- package/dist/showcase/assets/file-text-DH1mBuPi.js +1 -0
- package/dist/showcase/assets/filters-BtHF4GSM.js +78 -0
- package/dist/showcase/assets/flag-CJ08LwLY.js +1 -0
- package/dist/showcase/assets/folder-open-DODo2pjy.js +1 -0
- package/dist/showcase/assets/form-field-CHY7jh1q.js +1 -0
- package/dist/showcase/assets/format-DYJqAuDM.js +1 -0
- package/dist/showcase/assets/forms-DgvQQXHO.js +862 -0
- package/dist/showcase/assets/frame-CdKicP4A.js +167 -0
- package/dist/showcase/assets/getPseudoElementBounds-D9-Hr3mO.js +1 -0
- package/dist/showcase/assets/gift-DD8O7cld.js +1 -0
- package/dist/showcase/assets/giftcard-cards-Dp9eYodY.js +85 -0
- package/dist/showcase/assets/git-branch-DZq1Vo2G.js +1 -0
- package/dist/showcase/assets/global-search-BqDotXql.js +215 -0
- package/dist/showcase/assets/global-search-PH6LXqZw.js +1 -0
- package/dist/showcase/assets/globe-mRTwrUxM.js +1 -0
- package/dist/showcase/assets/gradient-card-CaL88YKv.js +58 -0
- package/dist/showcase/assets/hash-DuqvHQHv.js +1 -0
- package/dist/showcase/assets/header-CiNgDop3.js +1 -0
- package/dist/showcase/assets/header-notifications-B9XMBsK_.js +1 -0
- package/dist/showcase/assets/heart-DsGJfnDx.js +1 -0
- package/dist/showcase/assets/house-B504aFIP.js +1 -0
- package/dist/showcase/assets/icon-badge-DMNu8xb5.js +1 -0
- package/dist/showcase/assets/image-C3DaMxmn.js +1 -0
- package/dist/showcase/assets/inbox-BWKQMLMx.js +1 -0
- package/dist/showcase/assets/index-DaYVSqKu.js +10 -0
- package/dist/showcase/assets/inertValue-DrtTkMGx.js +1 -0
- package/dist/showcase/assets/info-_FrGoCay.js +1 -0
- package/dist/showcase/assets/inline-stat-BYu-tiUU.js +1 -0
- package/dist/showcase/assets/input-C96HMHWR.js +1 -0
- package/dist/showcase/assets/input-fMPi7XxI.js +1 -0
- package/dist/showcase/assets/input-group-BZnSgFCn.js +47 -0
- package/dist/showcase/assets/input-group-CVONNP3T.js +1 -0
- package/dist/showcase/assets/inputs-Blh0LJ8-.js +155 -0
- package/dist/showcase/assets/invoice-header-Bpo4iwX3.js +36 -0
- package/dist/showcase/assets/invoice-items-OVIrbG0k.js +36 -0
- package/dist/showcase/assets/invoice-mini-CaOMTiUO.js +14 -0
- package/dist/showcase/assets/invoice-table-BXd_HhUg.js +30 -0
- package/dist/showcase/assets/isSameDay-NBVO9AKF.js +1 -0
- package/dist/showcase/assets/isToday-Bk5HMXWn.js +1 -0
- package/dist/showcase/assets/italic-BOv5bW4H.js +1 -0
- package/dist/showcase/assets/item-B4rdcVVp.js +134 -0
- package/dist/showcase/assets/item-BVt0zZ12.js +1 -0
- package/dist/showcase/assets/item-C4Xk3DC1.js +1 -0
- package/dist/showcase/assets/kanban-BXbelelR.js +186 -0
- package/dist/showcase/assets/label-Cv6wotdv.js +1 -0
- package/dist/showcase/assets/languages-BofyvcCF.js +1 -0
- package/dist/showcase/assets/layers-DJK0t5px.js +1 -0
- package/dist/showcase/assets/layout-app-shell-D_yMonSl.js +608 -0
- package/dist/showcase/assets/layout-auth-BTvSTwUz.js +754 -0
- package/dist/showcase/assets/layout-containers-PMuo__2O.js +101 -0
- package/dist/showcase/assets/layout-header-DQ3zeCHz.js +170 -0
- package/dist/showcase/assets/layout-page-CbvWdHrK.js +122 -0
- package/dist/showcase/assets/layout-primitives-6nsFFIdE.js +34 -0
- package/dist/showcase/assets/layout-sidebar-CKqeVCSY.js +224 -0
- package/dist/showcase/assets/layout-users-Cypq-42s.js +117 -0
- package/dist/showcase/assets/layout-workspace-DiRR8vDv.js +183 -0
- package/dist/showcase/assets/lock-DXmvLEEx.js +1 -0
- package/dist/showcase/assets/lock-keyhole-Cu6M-jjE.js +1 -0
- package/dist/showcase/assets/mail-CXVFHkzh.js +1 -0
- package/dist/showcase/assets/mail-check-BNEu3j2a.js +1 -0
- package/dist/showcase/assets/map-DnE1pFCQ.js +124 -0
- package/dist/showcase/assets/map-pin-CpOVa8IH.js +1 -0
- package/dist/showcase/assets/media-library-C-KfEvm4.js +695 -0
- package/dist/showcase/assets/mention-inline-suggestions-DlmslsfR.js +1 -0
- package/dist/showcase/assets/mentions-C8ZdNFuC.js +138 -0
- package/dist/showcase/assets/menus-B8yUL75K.js +165 -0
- package/dist/showcase/assets/message-square-DNOTaOFs.js +1 -0
- package/dist/showcase/assets/metadata-list-BQAanxM-.js +1 -0
- package/dist/showcase/assets/metadata-list-DL9qgDAp.js +288 -0
- package/dist/showcase/assets/metric-CYi09Ltx.js +1 -0
- package/dist/showcase/assets/metric-bar-CQH1z8T3.js +1 -0
- package/dist/showcase/assets/metric-grid-H1ixqMCI.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-BBzWzFZ-.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-C7Z2ITl4.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CZZSWiMn.js +50 -0
- package/dist/showcase/assets/metrics-comparison-BPqz8k30.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-C3NYZAfx.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-RjHfm7um.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DnBjyDH4.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-CKn405qb.js +42 -0
- package/dist/showcase/assets/metrics-overview-D8YGtdrh.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-Dxh6cAha.js +54 -0
- package/dist/showcase/assets/minus-20OTSSxf.js +1 -0
- package/dist/showcase/assets/money-display-BoiAMxH8.js +1 -0
- package/dist/showcase/assets/month-year-picker-Bl59Ygq9.js +1 -0
- package/dist/showcase/assets/navigation-B8d2CDU6.js +90 -0
- package/dist/showcase/assets/navigation-D16JX3kL.js +230 -0
- package/dist/showcase/assets/navigation-extras-Dm83uT6i.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-DznDpP9M.js +119 -0
- package/dist/showcase/assets/overlays-CzlSqbFz.js +408 -0
- package/dist/showcase/assets/overlays-DUFqbkb9.js +159 -0
- package/dist/showcase/assets/package-BCXIwEPz.js +1 -0
- package/dist/showcase/assets/package-check-Ol-Cw3j-.js +1 -0
- package/dist/showcase/assets/page-action-button-DpzdSYvw.js +1 -0
- package/dist/showcase/assets/page-header-B_b7SqW8.js +1 -0
- package/dist/showcase/assets/pagination-BPDQo9Dl.js +1 -0
- package/dist/showcase/assets/pagination-PvkEX0qs.js +42 -0
- package/dist/showcase/assets/paperclip-CznEsmLN.js +1 -0
- package/dist/showcase/assets/password-input-CWMY5q3b.js +1 -0
- package/dist/showcase/assets/pencil-Cl9qi90g.js +1 -0
- package/dist/showcase/assets/phone-DbvK_QQJ.js +1 -0
- package/dist/showcase/assets/plus-CO8t66Yo.js +1 -0
- package/dist/showcase/assets/popover-3QIVx9lU.js +1 -0
- package/dist/showcase/assets/popover-Cyg9oYIU.js +1 -0
- package/dist/showcase/assets/popover-menu-DJPHeIL1.js +1 -0
- package/dist/showcase/assets/products-WsU-qdMz.js +407 -0
- package/dist/showcase/assets/progress-C61sf-qt.js +1 -0
- package/dist/showcase/assets/progress-PvTl8Fgf.js +18 -0
- package/dist/showcase/assets/props-table-C8la6vcG.js +1 -0
- package/dist/showcase/assets/props.generated-vFrhDrth.json +38618 -0
- package/dist/showcase/assets/quote-N1_lRDnX.js +1 -0
- package/dist/showcase/assets/receipt-C6a_WyLu.js +1 -0
- package/dist/showcase/assets/receipt-text-CDOh8FAv.js +1 -0
- package/dist/showcase/assets/refresh-cw-D4-ECZ1x.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-DqAP3zJd.js +1 -0
- package/dist/showcase/assets/rich-text-editor-CU0IZpwV.js +143 -0
- package/dist/showcase/assets/rich-text-editor-DCU7mMoO.js +124 -0
- package/dist/showcase/assets/rotate-ccw-Dd5zEmr7.js +1 -0
- package/dist/showcase/assets/save-DDmFSQli.js +1 -0
- package/dist/showcase/assets/schema-form-B7naqMvv.js +325 -0
- package/dist/showcase/assets/scroll-area-CdaYm4UK.js +32 -0
- package/dist/showcase/assets/scroll-area-DwWSHYHB.js +1 -0
- package/dist/showcase/assets/select-CNzpb5ug.js +1 -0
- package/dist/showcase/assets/select-DBXZ_Wzf.js +1 -0
- package/dist/showcase/assets/send-eDm7YMmA.js +1 -0
- package/dist/showcase/assets/separator-4IC9ED7s.js +1 -0
- package/dist/showcase/assets/separator-DPGDsZpG.js +28 -0
- package/dist/showcase/assets/settings-IANZGo2i.js +1 -0
- package/dist/showcase/assets/sheet-2oCce5ae.js +1 -0
- package/dist/showcase/assets/shield-CDZhhvFW.js +1 -0
- package/dist/showcase/assets/shield-alert-5hL3sdf3.js +1 -0
- package/dist/showcase/assets/shield-check-CaO2dhVS.js +1 -0
- package/dist/showcase/assets/shopping-bag-Bt3iK-Bv.js +1 -0
- package/dist/showcase/assets/sidebar-Cds60-PS.js +1 -0
- package/dist/showcase/assets/sidebar.context-CdH_DH9M.js +1 -0
- package/dist/showcase/assets/skeleton-2HajJKO4.js +29 -0
- package/dist/showcase/assets/skeleton-CGEJwPdD.js +1 -0
- package/dist/showcase/assets/slider-BjQViBR0.js +1 -0
- package/dist/showcase/assets/sliders-horizontal-C3JH5WQu.js +1 -0
- package/dist/showcase/assets/smart-card-CHouYi8U.js +1 -0
- package/dist/showcase/assets/sonner-Cog559j7.js +22 -0
- package/dist/showcase/assets/sortable.esm-hUEKsxpQ.js +5 -0
- package/dist/showcase/assets/sparkles-B18eTHVN.js +1 -0
- package/dist/showcase/assets/spinner-BSI97i4D.js +1 -0
- package/dist/showcase/assets/spinner-D0WhVyye.js +30 -0
- package/dist/showcase/assets/spinner-DQmJ7k9y.js +49 -0
- package/dist/showcase/assets/square-pen-CLyDWdhj.js +1 -0
- package/dist/showcase/assets/stacked-avatars-ECnU27uV.js +1 -0
- package/dist/showcase/assets/star-C3mhkpSK.js +1 -0
- package/dist/showcase/assets/startOfDay-ECIxhJGC.js +1 -0
- package/dist/showcase/assets/styles-CDD7mDye.js +1 -0
- package/dist/showcase/assets/suggestions-DOW6NBJp.js +126 -0
- package/dist/showcase/assets/switch-D59YKmf6.js +1 -0
- package/dist/showcase/assets/switch-NICmdoPn.js +1 -0
- package/dist/showcase/assets/sync-B8nBZXQ9.js +107 -0
- package/dist/showcase/assets/table-CckompuR.js +382 -0
- package/dist/showcase/assets/table-DtA4-Q0p.js +1 -0
- package/dist/showcase/assets/table-actions-DdoPJTMy.js +1 -0
- package/dist/showcase/assets/tabs-BrC_HxL_.js +1 -0
- package/dist/showcase/assets/tabs-UVxr80vY.js +19 -0
- package/dist/showcase/assets/tags-input-iDfvhzZD.js +1 -0
- package/dist/showcase/assets/text-button-DHFCLCoc.js +1 -0
- package/dist/showcase/assets/text-link-nCLLDcS_.js +1 -0
- package/dist/showcase/assets/textarea-DsSuQHQY.js +1 -0
- package/dist/showcase/assets/textarea-DyGI3Kcn.js +1 -0
- package/dist/showcase/assets/timelines-JmMcH657.js +200 -0
- package/dist/showcase/assets/toggle-group-BZKzMmC8.js +1 -0
- package/dist/showcase/assets/toggles-BSJvy4Tw.js +71 -0
- package/dist/showcase/assets/toggles-group-Bsc6eaWw.js +32 -0
- package/dist/showcase/assets/trash-2-C9AC7Pcv.js +1 -0
- package/dist/showcase/assets/trending-up-CGaDZj0S.js +1 -0
- package/dist/showcase/assets/truck-Dq6heokm.js +1 -0
- package/dist/showcase/assets/typography-ByvwR6Kg.js +223 -0
- package/dist/showcase/assets/ui-badge-BYgJSE_w.js +28 -0
- package/dist/showcase/assets/ui-card-BdueUfow.js +30 -0
- package/dist/showcase/assets/ui-table-CxtCQUsg.js +42 -0
- package/dist/showcase/assets/upload-tray-DKJ8nFZp.js +138 -0
- package/dist/showcase/assets/use-layout-link-CGBQHZon.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CywAbxVB.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-B2bZzE7D.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-SLdY_s6S.js +1 -0
- package/dist/showcase/assets/useCompositeItem-g6aCBp84.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-DK0Tpege.js +1 -0
- package/dist/showcase/assets/useLabelableId-hdKzFCp2.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CnhifZ1E.js +1 -0
- package/dist/showcase/assets/useRender-QhawWhpb.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-Cht7Sa7e.js +1 -0
- package/dist/showcase/assets/useValueChanged-DURO1kfZ.js +1 -0
- package/dist/showcase/assets/user-plus-DbOuTfr7.js +1 -0
- package/dist/showcase/assets/user-u65Fo7k7.js +1 -0
- package/dist/showcase/assets/users-BUb7CmVp.js +1 -0
- package/dist/showcase/assets/vendor-profile-wfI3PBuO.js +37 -0
- package/dist/showcase/assets/video-e4hDbTQ2.js +1 -0
- package/dist/showcase/assets/wrench-CBUvtxdr.js +1 -0
- package/dist/showcase/assets/x-oVTJnCJn.js +1 -0
- package/dist/showcase/assets/zap-CzABYL3c.js +1 -0
- package/dist/showcase/index.html +1 -1
- package/package.json +11 -3
- package/scripts/README.md +24 -0
- package/scripts/metadata.json +325 -0
- package/dist/_shared/accordion-BWU7zxlO.cjs +0 -2
- package/dist/_shared/accordion-BWU7zxlO.cjs.map +0 -1
- package/dist/_shared/accordion-DTYKGqWD.js +0 -130
- package/dist/_shared/accordion-DTYKGqWD.js.map +0 -1
- package/dist/_shared/action-menu-BoQnI2UF.cjs +0 -2
- package/dist/_shared/action-menu-BoQnI2UF.cjs.map +0 -1
- package/dist/_shared/action-menu-uyg1Phsn.js +0 -96
- package/dist/_shared/action-menu-uyg1Phsn.js.map +0 -1
- package/dist/_shared/ai-artifact-CY1Jf9gM.cjs +0 -3
- package/dist/_shared/ai-artifact-CY1Jf9gM.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DdlK_l56.js +0 -1099
- package/dist/_shared/ai-artifact-DdlK_l56.js.map +0 -1
- package/dist/_shared/auth-CDjZFJxy.cjs +0 -2
- package/dist/_shared/auth-CDjZFJxy.cjs.map +0 -1
- package/dist/_shared/auth-_udUdWtn.js +0 -643
- package/dist/_shared/auth-_udUdWtn.js.map +0 -1
- package/dist/_shared/badge--o9wFHB_.cjs +0 -2
- package/dist/_shared/badge--o9wFHB_.cjs.map +0 -1
- package/dist/_shared/badge-yGlx9trX.js +0 -108
- package/dist/_shared/badge-yGlx9trX.js.map +0 -1
- package/dist/_shared/button-683R5quQ.js +0 -46
- package/dist/_shared/button-683R5quQ.js.map +0 -1
- package/dist/_shared/button-C1qc97U1.cjs +0 -2
- package/dist/_shared/button-C1qc97U1.cjs.map +0 -1
- package/dist/_shared/button-CjZrRLzR.cjs +0 -2
- package/dist/_shared/button-CjZrRLzR.cjs.map +0 -1
- package/dist/_shared/button-SuocMQFT.js +0 -173
- package/dist/_shared/button-SuocMQFT.js.map +0 -1
- package/dist/_shared/buttons-9YBwevkP.cjs +0 -2
- package/dist/_shared/buttons-9YBwevkP.cjs.map +0 -1
- package/dist/_shared/buttons-BR4BGVYf.js +0 -143
- package/dist/_shared/buttons-BR4BGVYf.js.map +0 -1
- package/dist/_shared/combobox-CpSmiPV8.cjs +0 -2
- package/dist/_shared/combobox-CpSmiPV8.cjs.map +0 -1
- package/dist/_shared/combobox-D01JwyFZ.js +0 -810
- package/dist/_shared/combobox-D01JwyFZ.js.map +0 -1
- package/dist/_shared/comments-D9velZAW.js +0 -952
- package/dist/_shared/comments-D9velZAW.js.map +0 -1
- package/dist/_shared/comments-DyUAKSQu.cjs +0 -2
- package/dist/_shared/comments-DyUAKSQu.cjs.map +0 -1
- package/dist/_shared/date-picker-BnsvBFOZ.cjs +0 -2
- package/dist/_shared/date-picker-BnsvBFOZ.cjs.map +0 -1
- package/dist/_shared/date-picker-TMcjGO26.js +0 -1361
- package/dist/_shared/date-picker-TMcjGO26.js.map +0 -1
- package/dist/_shared/date-pickers-BI4xLjHR.js +0 -330
- package/dist/_shared/date-pickers-BI4xLjHR.js.map +0 -1
- package/dist/_shared/date-pickers-BhaUK5S2.cjs +0 -2
- package/dist/_shared/date-pickers-BhaUK5S2.cjs.map +0 -1
- package/dist/_shared/dialog-A95-614f.js +0 -101
- package/dist/_shared/dialog-A95-614f.js.map +0 -1
- package/dist/_shared/dialog-ivDByBmO.cjs +0 -2
- package/dist/_shared/dialog-ivDByBmO.cjs.map +0 -1
- package/dist/_shared/display-C4n0uuxl.js +0 -1154
- package/dist/_shared/display-C4n0uuxl.js.map +0 -1
- package/dist/_shared/display-oDW0O9yB.cjs +0 -2
- package/dist/_shared/display-oDW0O9yB.cjs.map +0 -1
- package/dist/_shared/forms-CwJci54_.js +0 -3430
- package/dist/_shared/forms-CwJci54_.js.map +0 -1
- package/dist/_shared/forms-E3JkTgcC.cjs +0 -2
- package/dist/_shared/forms-E3JkTgcC.cjs.map +0 -1
- package/dist/_shared/header-CyBTcM-L.js +0 -360
- package/dist/_shared/header-CyBTcM-L.js.map +0 -1
- package/dist/_shared/header-kwvkesfq.cjs +0 -2
- package/dist/_shared/header-kwvkesfq.cjs.map +0 -1
- package/dist/_shared/hooks-MW0UTO3q.cjs +0 -2
- package/dist/_shared/hooks-MW0UTO3q.cjs.map +0 -1
- package/dist/_shared/hooks-ZiPIvs0_.js +0 -118
- package/dist/_shared/hooks-ZiPIvs0_.js.map +0 -1
- package/dist/_shared/mentions-Br-EP9tq.js +0 -506
- package/dist/_shared/mentions-Br-EP9tq.js.map +0 -1
- package/dist/_shared/mentions-DNTsRHJl.cjs +0 -2
- package/dist/_shared/mentions-DNTsRHJl.cjs.map +0 -1
- package/dist/_shared/metadata-CPSQGPJh.cjs +0 -2
- package/dist/_shared/metadata-CPSQGPJh.cjs.map +0 -1
- package/dist/_shared/metadata-qTNAOM7E.js +0 -235
- package/dist/_shared/metadata-qTNAOM7E.js.map +0 -1
- package/dist/_shared/navigation-HnnA6uSV.js +0 -419
- package/dist/_shared/navigation-HnnA6uSV.js.map +0 -1
- package/dist/_shared/navigation-J2g0Tw9D.cjs +0 -2
- package/dist/_shared/navigation-J2g0Tw9D.cjs.map +0 -1
- package/dist/_shared/overlays-CIeniDjj.js +0 -639
- package/dist/_shared/overlays-CIeniDjj.js.map +0 -1
- package/dist/_shared/overlays-Xc_F_Y-E.cjs +0 -2
- package/dist/_shared/overlays-Xc_F_Y-E.cjs.map +0 -1
- package/dist/_shared/page-BFV-KE8H.js +0 -262
- package/dist/_shared/page-BFV-KE8H.js.map +0 -1
- package/dist/_shared/page-UJfWfw2R.cjs +0 -2
- package/dist/_shared/page-UJfWfw2R.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-B6WKHUKC.js +0 -620
- package/dist/_shared/rich-text-editor-B6WKHUKC.js.map +0 -1
- package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs +0 -2
- package/dist/_shared/rich-text-editor-Dm-6r_xe.cjs.map +0 -1
- package/dist/_shared/sheet-BKEfwhCn.js +0 -100
- package/dist/_shared/sheet-BKEfwhCn.js.map +0 -1
- package/dist/_shared/sheet-D4yWgkwC.cjs +0 -2
- package/dist/_shared/sheet-D4yWgkwC.cjs.map +0 -1
- package/dist/_shared/sidebar-B_L_dnAe.cjs +0 -2
- package/dist/_shared/sidebar-B_L_dnAe.cjs.map +0 -1
- package/dist/_shared/sidebar-C5DApiDy.js +0 -389
- package/dist/_shared/sidebar-C5DApiDy.js.map +0 -1
- package/dist/_shared/sidebar-CIlGkVbF.js +0 -538
- package/dist/_shared/sidebar-CIlGkVbF.js.map +0 -1
- package/dist/_shared/sidebar-D3sK9otF.cjs +0 -2
- package/dist/_shared/sidebar-D3sK9otF.cjs.map +0 -1
- package/dist/_shared/smart-card-DYZGY_Su.js +0 -361
- package/dist/_shared/smart-card-DYZGY_Su.js.map +0 -1
- package/dist/_shared/smart-card-Df80VF8x.cjs +0 -2
- package/dist/_shared/smart-card-Df80VF8x.cjs.map +0 -1
- package/dist/_shared/table-CBKDA7ZE.js +0 -1189
- package/dist/_shared/table-CBKDA7ZE.js.map +0 -1
- package/dist/_shared/table-CJoxRCWy.cjs +0 -2
- package/dist/_shared/table-CJoxRCWy.cjs.map +0 -1
- package/dist/_shared/workspace-CTjIGCE0.cjs +0 -2
- package/dist/_shared/workspace-CTjIGCE0.cjs.map +0 -1
- package/dist/_shared/workspace-WgJgiSUA.js +0 -357
- package/dist/_shared/workspace-WgJgiSUA.js.map +0 -1
- package/dist/showcase/assets/AreaChart-BkAbL-UV.js +0 -6
- package/dist/showcase/assets/CompositeItem-Dzu0MfUC.js +0 -1
- package/dist/showcase/assets/CompositeRoot-CQvQ_uj2.js +0 -1
- package/dist/showcase/assets/DialogTrigger-BxVhSw4D.js +0 -1
- package/dist/showcase/assets/LabelableContext-DapqaNeY.js +0 -1
- package/dist/showcase/assets/PreviewLayout-CGEkbS-i.js +0 -1
- package/dist/showcase/assets/RadioGroup-DBA3iBQw.js +0 -1
- package/dist/showcase/assets/Separator-BEMr82IS.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-xN-ruoGR.js +0 -1
- package/dist/showcase/assets/accordion-B-Iy0jKu.js +0 -171
- package/dist/showcase/assets/accordion-variants-B9GD0oBE.js +0 -1
- package/dist/showcase/assets/action-menu-CMUF6gPp.js +0 -1
- package/dist/showcase/assets/activities-C1P9bsJm.js +0 -501
- package/dist/showcase/assets/activities-feed-card-WZUuGHmT.js +0 -1
- package/dist/showcase/assets/activity-BVP5C805.js +0 -1
- package/dist/showcase/assets/admin-DWOK4sj4.js +0 -80
- package/dist/showcase/assets/ai-Dteb3y6G.js +0 -41
- package/dist/showcase/assets/ai-artifact-B0d7GveY.js +0 -2
- package/dist/showcase/assets/ai-chat-IJ0b2FOw.js +0 -568
- package/dist/showcase/assets/ai-elements-Cr8GgtEV.js +0 -387
- package/dist/showcase/assets/ai-new-BJN9wNvX.js +0 -167
- package/dist/showcase/assets/ai-tool-call-BqlQuR1P.js +0 -1
- package/dist/showcase/assets/alert-2_0J7Vv6.js +0 -1
- package/dist/showcase/assets/alert-7wEOpEor.js +0 -93
- package/dist/showcase/assets/alert-C_FOBilU.js +0 -62
- package/dist/showcase/assets/api-key-list-CGV1k52v.js +0 -73
- package/dist/showcase/assets/app-sidebar-S6oUYO4h.js +0 -1
- package/dist/showcase/assets/arrow-down-VNr82bS3.js +0 -1
- package/dist/showcase/assets/arrow-left-BSVeKWNq.js +0 -1
- package/dist/showcase/assets/arrow-right-D6hTB0Bd.js +0 -1
- package/dist/showcase/assets/arrow-up-p9oA4cIz.js +0 -1
- package/dist/showcase/assets/arrow-up-right-BtlQ62bc.js +0 -1
- package/dist/showcase/assets/avatar-BxcQUuh0.js +0 -57
- package/dist/showcase/assets/avatar-LGWm52rv.js +0 -1
- package/dist/showcase/assets/badge-COn5psy3.js +0 -28
- package/dist/showcase/assets/badge-check-D2C2BPUT.js +0 -1
- package/dist/showcase/assets/bell-C80n9VRl.js +0 -1
- package/dist/showcase/assets/bot-C83bUUi9.js +0 -1
- package/dist/showcase/assets/box-rZ0pA-02.js +0 -1
- package/dist/showcase/assets/brain-BJtktdVu.js +0 -1
- package/dist/showcase/assets/brand-CxdIBpyJ.js +0 -36
- package/dist/showcase/assets/breadcrumb-BZsr_A8k.js +0 -1
- package/dist/showcase/assets/breadcrumb-CSU8FvWB.js +0 -52
- package/dist/showcase/assets/breadcrumbs-BUm4gHzL.js +0 -1
- package/dist/showcase/assets/briefcase-0WhUdLn5.js +0 -1
- package/dist/showcase/assets/building-2-1D6zVdCI.js +0 -1
- package/dist/showcase/assets/button-C22Gs6y0.js +0 -44
- package/dist/showcase/assets/button-group-C0Ts4-x3.js +0 -1
- package/dist/showcase/assets/buttons-Dfn6hmwe.js +0 -270
- package/dist/showcase/assets/calendar-7a4yQlzJ.js +0 -1
- package/dist/showcase/assets/calendar-Bo17POsN.js +0 -1
- package/dist/showcase/assets/calendar-D6XNDRVQ.js +0 -16
- package/dist/showcase/assets/calendar-days-C4mG2tOe.js +0 -1
- package/dist/showcase/assets/camera-C16z6v0m.js +0 -1
- package/dist/showcase/assets/card-BjqRQxxz.js +0 -1
- package/dist/showcase/assets/card-IzYmUTpI.js +0 -188
- package/dist/showcase/assets/card-primitives-BDj4DtS8.js +0 -1
- package/dist/showcase/assets/card-radio-group-7GU9AtWs.js +0 -1
- package/dist/showcase/assets/cards-DAqpr8CM.js +0 -328
- package/dist/showcase/assets/carousel-D1n4Kkoo.js +0 -449
- package/dist/showcase/assets/chart-D2EGeI3b.js +0 -358
- package/dist/showcase/assets/chart-column-DKcP77Dx.js +0 -1
- package/dist/showcase/assets/checkbox-BI3gcjED.js +0 -1
- package/dist/showcase/assets/chevron-down-ByPPEdNm.js +0 -1
- package/dist/showcase/assets/chevron-left-BNByuq3g.js +0 -1
- package/dist/showcase/assets/chevron-right-D4pIMCh9.js +0 -1
- package/dist/showcase/assets/chevron-up-Cha879Nz.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-eAgHau5X.js +0 -1
- package/dist/showcase/assets/circle-V5hdlsIn.js +0 -1
- package/dist/showcase/assets/circle-alert-BW-Btwgh.js +0 -1
- package/dist/showcase/assets/circle-check-1MSds3Vu.js +0 -1
- package/dist/showcase/assets/circle-check-big-vBWkmhCZ.js +0 -1
- package/dist/showcase/assets/circle-dot-CsD5uXwH.js +0 -1
- package/dist/showcase/assets/circle-question-mark-xYn9p1nL.js +0 -1
- package/dist/showcase/assets/circle-x-VSqZOeGt.js +0 -1
- package/dist/showcase/assets/clock-3-CP_t59kW.js +0 -1
- package/dist/showcase/assets/clock-9xbB7EnW.js +0 -1
- package/dist/showcase/assets/code-xml-CeGA85eB.js +0 -1
- package/dist/showcase/assets/collapsible-C2W51-wl.js +0 -27
- package/dist/showcase/assets/collapsible-C4eof15p.js +0 -1
- package/dist/showcase/assets/combobox-i8o4u6Q0.js +0 -696
- package/dist/showcase/assets/command-C4F78Ppy.js +0 -1
- package/dist/showcase/assets/command-wjOXUieO.js +0 -1
- package/dist/showcase/assets/comment-composer-DeURrlgL.js +0 -1
- package/dist/showcase/assets/comment-item-D07Qk-Nt.js +0 -1
- package/dist/showcase/assets/comments-Bo-lZU18.js +0 -357
- package/dist/showcase/assets/commerce-extras-Cio3xn_B.js +0 -189
- package/dist/showcase/assets/commerce-jqA58sCZ.js +0 -79
- package/dist/showcase/assets/composite-BQFpnmS9.js +0 -1
- package/dist/showcase/assets/contact-card-4ajPhcd_.js +0 -65
- package/dist/showcase/assets/content-container-B83BnjFb.js +0 -1
- package/dist/showcase/assets/copyable-DKkroGJ3.js +0 -96
- package/dist/showcase/assets/course-card-DShYl03k.js +0 -77
- package/dist/showcase/assets/cpu-BZTsuaUu.js +0 -1
- package/dist/showcase/assets/credit-card-CAI3F3HB.js +0 -1
- package/dist/showcase/assets/currency-PXgbngHk.js +0 -149
- package/dist/showcase/assets/dark-surfaces-pSCicdm4.js +0 -90
- package/dist/showcase/assets/database-oHsxHUj-.js +0 -1
- package/dist/showcase/assets/date-block-CvCdJr8d.js +0 -1
- package/dist/showcase/assets/date-picker-Cd5vsEEd.js +0 -1
- package/dist/showcase/assets/date-pickers-CBK-zvSB.js +0 -73
- package/dist/showcase/assets/dense-info-zOdJpez6.js +0 -106
- package/dist/showcase/assets/dialog-D9-MRCRg.js +0 -1
- package/dist/showcase/assets/dialog-EDw9DvZs.js +0 -1
- package/dist/showcase/assets/display-CE9JWinr.js +0 -403
- package/dist/showcase/assets/dist-CjZ6RM9v.js +0 -45
- package/dist/showcase/assets/dollar-sign-BXD_x2mP.js +0 -1
- package/dist/showcase/assets/download-D0ur_d_N.js +0 -1
- package/dist/showcase/assets/dropdown-menu-Cto8-yDW.js +0 -1
- package/dist/showcase/assets/dropzone-9Gb4mR4x.js +0 -1
- package/dist/showcase/assets/earth-BN1w3w7h.js +0 -1
- package/dist/showcase/assets/ellipsis-DsrebD1Y.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-CAiMV7G2.js +0 -1
- package/dist/showcase/assets/empty-DoJF3uif.js +0 -1
- package/dist/showcase/assets/empty-item-zZ85qI6s.js +0 -49
- package/dist/showcase/assets/empty-state-CGfB7sOE.js +0 -1
- package/dist/showcase/assets/empty-state-Y_4qnNWt.js +0 -188
- package/dist/showcase/assets/enhanced-activities-B41hAxhb.js +0 -361
- package/dist/showcase/assets/enhanced-combobox-BOimEW-1.js +0 -1
- package/dist/showcase/assets/event-calendar-BjcfC6fM.js +0 -138
- package/dist/showcase/assets/event-log-BhoMXcix.js +0 -330
- package/dist/showcase/assets/example-Cz_880po.js +0 -1
- package/dist/showcase/assets/external-link-Cy1-PP8k.js +0 -1
- package/dist/showcase/assets/eye-C85PNNdH.js +0 -1
- package/dist/showcase/assets/feature-announcement-_tpahla3.js +0 -34
- package/dist/showcase/assets/file-C8PCBEtY.js +0 -1
- package/dist/showcase/assets/file-text-DwqbUujq.js +0 -1
- package/dist/showcase/assets/filters-ChqGg_1z.js +0 -78
- package/dist/showcase/assets/flag-csHQcBml.js +0 -1
- package/dist/showcase/assets/folder-open-BThTng3d.js +0 -1
- package/dist/showcase/assets/form-field-B5g_5Zjm.js +0 -1
- package/dist/showcase/assets/format-DrTwpH65.js +0 -1
- package/dist/showcase/assets/forms-BukyUSKs.js +0 -862
- package/dist/showcase/assets/frame-BNKhZVlb.js +0 -167
- package/dist/showcase/assets/getPseudoElementBounds-DwyQgIj-.js +0 -1
- package/dist/showcase/assets/gift-CtM--bDo.js +0 -1
- package/dist/showcase/assets/giftcard-cards-imm4Br0H.js +0 -85
- package/dist/showcase/assets/git-branch-Dl3AzbqP.js +0 -1
- package/dist/showcase/assets/global-search-Bhl7z_vN.js +0 -1
- package/dist/showcase/assets/global-search-C4yaPFSW.js +0 -215
- package/dist/showcase/assets/globe-BCikLfKc.js +0 -1
- package/dist/showcase/assets/gradient-card-Dh_5ZYv0.js +0 -58
- package/dist/showcase/assets/hash-C8m0EECO.js +0 -1
- package/dist/showcase/assets/header-BXjw7Lm_.js +0 -1
- package/dist/showcase/assets/header-notifications-CShSQ8kR.js +0 -1
- package/dist/showcase/assets/heart-BJVBFZ-j.js +0 -1
- package/dist/showcase/assets/house-C3fXPhlL.js +0 -1
- package/dist/showcase/assets/icon-badge-dwVx3Hxf.js +0 -1
- package/dist/showcase/assets/image-gc4qX_7C.js +0 -1
- package/dist/showcase/assets/inbox-C0GJ1KEC.js +0 -1
- package/dist/showcase/assets/index-BQIv1ffM.js +0 -10
- package/dist/showcase/assets/inertValue-DeVQ2cCe.js +0 -1
- package/dist/showcase/assets/info-BimmreJ-.js +0 -1
- package/dist/showcase/assets/inline-stat-DcNP6bcO.js +0 -1
- package/dist/showcase/assets/input-DJAWOJEx.js +0 -1
- package/dist/showcase/assets/input-NIgvB9CZ.js +0 -1
- package/dist/showcase/assets/input-group-BmqJ20bA.js +0 -1
- package/dist/showcase/assets/input-group-gOUubhee.js +0 -47
- package/dist/showcase/assets/inputs-Dk8YOVkI.js +0 -155
- package/dist/showcase/assets/invoice-header-BnNpWej2.js +0 -36
- package/dist/showcase/assets/invoice-items-BdPmW10L.js +0 -36
- package/dist/showcase/assets/invoice-mini-CbSYyHIb.js +0 -14
- package/dist/showcase/assets/invoice-table-DjnWG3KF.js +0 -30
- package/dist/showcase/assets/isSameDay-B2KDl_YX.js +0 -1
- package/dist/showcase/assets/isToday-CXNS7ELW.js +0 -1
- package/dist/showcase/assets/italic-BRS-PpYL.js +0 -1
- package/dist/showcase/assets/item--6Hx9AXZ.js +0 -1
- package/dist/showcase/assets/item-BszVRzXj.js +0 -134
- package/dist/showcase/assets/item-YF6wMI9W.js +0 -1
- package/dist/showcase/assets/kanban-BWBbWLVe.js +0 -186
- package/dist/showcase/assets/label-BgpcD3V6.js +0 -1
- package/dist/showcase/assets/languages-DDgmIDFe.js +0 -1
- package/dist/showcase/assets/layers-nkkXRmvA.js +0 -1
- package/dist/showcase/assets/layout-app-shell-D3MbPoGC.js +0 -608
- package/dist/showcase/assets/layout-auth-DIeRtG0B.js +0 -754
- package/dist/showcase/assets/layout-containers-Dc3-IAgV.js +0 -101
- package/dist/showcase/assets/layout-header-Cg6GfMST.js +0 -170
- package/dist/showcase/assets/layout-page-DojPq8S6.js +0 -122
- package/dist/showcase/assets/layout-primitives-JBSQS72B.js +0 -34
- package/dist/showcase/assets/layout-sidebar-C6jUJRhx.js +0 -224
- package/dist/showcase/assets/layout-users-uzPscfo7.js +0 -117
- package/dist/showcase/assets/layout-workspace-B3leaOKl.js +0 -183
- package/dist/showcase/assets/lock-DLIcOBUd.js +0 -1
- package/dist/showcase/assets/lock-keyhole-DY6aV7Mq.js +0 -1
- package/dist/showcase/assets/mail-AES_tOd2.js +0 -1
- package/dist/showcase/assets/mail-check-dJTzg2bD.js +0 -1
- package/dist/showcase/assets/map-CZ2l0iGH.js +0 -124
- package/dist/showcase/assets/map-pin-0O7GD5Dz.js +0 -1
- package/dist/showcase/assets/media-library-CRllxSGQ.js +0 -695
- package/dist/showcase/assets/mention-inline-suggestions-Dx2Z1GHF.js +0 -1
- package/dist/showcase/assets/mentions-CDqqGCE4.js +0 -138
- package/dist/showcase/assets/menus-CDgE79I5.js +0 -165
- package/dist/showcase/assets/message-square-CBNI_sf8.js +0 -1
- package/dist/showcase/assets/metadata-list-BoEVt7cX.js +0 -1
- package/dist/showcase/assets/metadata-list-NtWuY9W8.js +0 -288
- package/dist/showcase/assets/metric-Bx_LWobe.js +0 -1
- package/dist/showcase/assets/metric-bar-BldYHNLQ.js +0 -1
- package/dist/showcase/assets/metric-grid-BDw7w7d2.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-lSjDkUEo.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-CCFhTmQZ.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-C1AjZqJU.js +0 -50
- package/dist/showcase/assets/metrics-comparison-vEE6BtuW.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-DKkz8ibX.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-CZmVnReB.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-s2FYIYB1.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DDlCl9Ep.js +0 -42
- package/dist/showcase/assets/metrics-overview-BgliK2L1.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-Cn5sRZsB.js +0 -54
- package/dist/showcase/assets/minus-DByvcC8K.js +0 -1
- package/dist/showcase/assets/money-display-DG4IaEaA.js +0 -1
- package/dist/showcase/assets/month-year-picker-CVurc9L7.js +0 -1
- package/dist/showcase/assets/navigation-CHYgQTsY.js +0 -90
- package/dist/showcase/assets/navigation-C_6gS4FA.js +0 -230
- package/dist/showcase/assets/navigation-extras-CflOar2P.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-CYiciKwv.js +0 -119
- package/dist/showcase/assets/overlays-HrH2wdTK.js +0 -408
- package/dist/showcase/assets/overlays-cp7VMq3b.js +0 -159
- package/dist/showcase/assets/package-CjcwDJKu.js +0 -1
- package/dist/showcase/assets/package-check-CCH3ax-x.js +0 -1
- package/dist/showcase/assets/page-action-button-Cn5j2_EP.js +0 -1
- package/dist/showcase/assets/page-header-CkvCF1MQ.js +0 -1
- package/dist/showcase/assets/pagination-DM5QGPo2.js +0 -42
- package/dist/showcase/assets/pagination-DUzHnhJ6.js +0 -1
- package/dist/showcase/assets/paperclip-DoqDQQVa.js +0 -1
- package/dist/showcase/assets/password-input-CfS4sfCl.js +0 -1
- package/dist/showcase/assets/pencil-C2OfFQMj.js +0 -1
- package/dist/showcase/assets/phone-CLvml_XI.js +0 -1
- package/dist/showcase/assets/plus-D5swsZCz.js +0 -1
- package/dist/showcase/assets/popover-menu-Bu9q96nE.js +0 -1
- package/dist/showcase/assets/popover-nCGXR4Yd.js +0 -1
- package/dist/showcase/assets/popover-xC8qczvP.js +0 -1
- package/dist/showcase/assets/products-BbSzEFvw.js +0 -407
- package/dist/showcase/assets/progress-DYfoy7pk.js +0 -1
- package/dist/showcase/assets/progress-ENNwjW3X.js +0 -18
- package/dist/showcase/assets/props-table-2pIZzGC-.js +0 -1
- package/dist/showcase/assets/props.generated-DggzG-JL.json +0 -38611
- package/dist/showcase/assets/quote-BO1bufuX.js +0 -1
- package/dist/showcase/assets/receipt-kIVP3kxJ.js +0 -1
- package/dist/showcase/assets/receipt-text-BDQIvI4l.js +0 -1
- package/dist/showcase/assets/refresh-cw-UdL93poQ.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-DfiI3G4i.js +0 -1
- package/dist/showcase/assets/rich-text-editor-CNtfwLC2.js +0 -143
- package/dist/showcase/assets/rich-text-editor-DB4QWptQ.js +0 -124
- package/dist/showcase/assets/rotate-ccw-DQPoMfMY.js +0 -1
- package/dist/showcase/assets/save-Cd0ZM40i.js +0 -1
- package/dist/showcase/assets/schema-form-Cyc6vCVO.js +0 -325
- package/dist/showcase/assets/scroll-area-B5NZsDdi.js +0 -32
- package/dist/showcase/assets/scroll-area-BvTq99pz.js +0 -1
- package/dist/showcase/assets/select-BRbyPtx8.js +0 -1
- package/dist/showcase/assets/select-Dymyvyh6.js +0 -1
- package/dist/showcase/assets/send-BWzI7mwi.js +0 -1
- package/dist/showcase/assets/separator-BsYPzBlF.js +0 -1
- package/dist/showcase/assets/separator-Osp0OJ78.js +0 -28
- package/dist/showcase/assets/settings-DRmWJILI.js +0 -1
- package/dist/showcase/assets/sheet-BKsjMYMo.js +0 -1
- package/dist/showcase/assets/shield-D1EaWJMG.js +0 -1
- package/dist/showcase/assets/shield-alert-DWsbR2jn.js +0 -1
- package/dist/showcase/assets/shield-check-DUTAPADm.js +0 -1
- package/dist/showcase/assets/shopping-bag-XmeqUqk9.js +0 -1
- package/dist/showcase/assets/sidebar-B5uO9sUB.js +0 -1
- package/dist/showcase/assets/sidebar.context-CRjgeYJL.js +0 -1
- package/dist/showcase/assets/skeleton-BtiPkfxB.js +0 -1
- package/dist/showcase/assets/skeleton-DbybIpkV.js +0 -29
- package/dist/showcase/assets/slider-vuwVVBby.js +0 -1
- package/dist/showcase/assets/sliders-horizontal-BE_cwUn0.js +0 -1
- package/dist/showcase/assets/smart-card-Dhu_1A_u.js +0 -1
- package/dist/showcase/assets/sonner-DZB-G4q5.js +0 -22
- package/dist/showcase/assets/sortable.esm-YOwRw8Hr.js +0 -5
- package/dist/showcase/assets/sparkles-N8rqKQez.js +0 -1
- package/dist/showcase/assets/spinner-B5zKCNXu.js +0 -30
- package/dist/showcase/assets/spinner-BOjRziLu.js +0 -1
- package/dist/showcase/assets/spinner-PIr8y8av.js +0 -49
- package/dist/showcase/assets/square-pen-ImRrVwT8.js +0 -1
- package/dist/showcase/assets/stacked-avatars-DnIAc098.js +0 -1
- package/dist/showcase/assets/star-BaV-UTPq.js +0 -1
- package/dist/showcase/assets/startOfDay-CtTeiGV0.js +0 -1
- package/dist/showcase/assets/styles-Bv0pDLVi.js +0 -1
- package/dist/showcase/assets/suggestions-QnLPdgnG.js +0 -126
- package/dist/showcase/assets/switch-DwAS_TXx.js +0 -1
- package/dist/showcase/assets/switch-xzxCDtyg.js +0 -1
- package/dist/showcase/assets/sync-LeYxWAap.js +0 -107
- package/dist/showcase/assets/table-BbEFanNu.js +0 -1
- package/dist/showcase/assets/table-CVVHBty6.js +0 -382
- package/dist/showcase/assets/table-actions-DvI9U67L.js +0 -1
- package/dist/showcase/assets/tabs-CLcyGwLd.js +0 -1
- package/dist/showcase/assets/tabs-ck8y1Bjr.js +0 -19
- package/dist/showcase/assets/tags-input-DmBY2CKI.js +0 -1
- package/dist/showcase/assets/text-button-C54O1rZM.js +0 -1
- package/dist/showcase/assets/text-link-9_mZpq_f.js +0 -1
- package/dist/showcase/assets/textarea-CHvnWHWH.js +0 -1
- package/dist/showcase/assets/textarea-jexcMklP.js +0 -1
- package/dist/showcase/assets/timelines-uvFVjEQv.js +0 -200
- package/dist/showcase/assets/toggle-group-B3fORi8i.js +0 -1
- package/dist/showcase/assets/toggles-Cox6Yk2k.js +0 -71
- package/dist/showcase/assets/toggles-group-CSvSPqCB.js +0 -32
- package/dist/showcase/assets/trash-2-CE9bDw49.js +0 -1
- package/dist/showcase/assets/trending-up-0iJl0XvC.js +0 -1
- package/dist/showcase/assets/truck-DlhOPoCD.js +0 -1
- package/dist/showcase/assets/typography-BotOITw4.js +0 -223
- package/dist/showcase/assets/ui-badge-hfmO1K3-.js +0 -28
- package/dist/showcase/assets/ui-card-Aigzxhn3.js +0 -30
- package/dist/showcase/assets/ui-table-CKif9sNO.js +0 -42
- package/dist/showcase/assets/upload-tray-BnKDNrw9.js +0 -138
- package/dist/showcase/assets/use-layout-link-BQ6Y9z__.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CP1vkwD7.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-J_Rvjwx3.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BwUOowW2.js +0 -1
- package/dist/showcase/assets/useCompositeItem-D3XOIML-.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-BWfShNPP.js +0 -1
- package/dist/showcase/assets/useLabelableId-DxorZ3YW.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-DLUX6CcH.js +0 -1
- package/dist/showcase/assets/useRender-B9zzqKA1.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-BSvL8pKg.js +0 -1
- package/dist/showcase/assets/useValueChanged-DSoTBFAJ.js +0 -1
- package/dist/showcase/assets/user-BZog6aIh.js +0 -1
- package/dist/showcase/assets/user-plus-CPxlPoxf.js +0 -1
- package/dist/showcase/assets/users-BgXAp2UO.js +0 -1
- package/dist/showcase/assets/vendor-profile-BLYiDIrO.js +0 -37
- package/dist/showcase/assets/video-YBnCbmIb.js +0 -1
- package/dist/showcase/assets/wrench-BFTavxzg.js +0 -1
- package/dist/showcase/assets/x-D8UN9pOu.js +0 -1
- package/dist/showcase/assets/zap-DIJUAJEb.js +0 -1
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
import { useStrings as e } from "../lib/strings.js";
|
|
2
|
-
import { cn as t } from "../lib/utils.js";
|
|
3
|
-
import { n, t as r } from "./heading-HeP06nXG.js";
|
|
4
|
-
import { t as i } from "./badge-yGlx9trX.js";
|
|
5
|
-
import { i as a, t as o } from "./button-SuocMQFT.js";
|
|
6
|
-
import { a as s, g as c, r as l, t as u } from "./dropdown-menu-CoWmrjYX.js";
|
|
7
|
-
import { t as d } from "./separator-B8FBp-7E.js";
|
|
8
|
-
import { Fragment as f, useCallback as p, useEffect as m, useLayoutEffect as h, useMemo as g, useRef as _, useState as v } from "react";
|
|
9
|
-
import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
10
|
-
import { ChevronDown as S, Globe as C, MoreHorizontal as w } from "lucide-react";
|
|
11
|
-
//#region src/components/base/navigation/language-switcher.tsx
|
|
12
|
-
function T({ locales: e, onRenderLabel: n, variant: r = "buttons", onSelect: i }) {
|
|
13
|
-
let a = p((e, t) => {
|
|
14
|
-
t || i?.(e);
|
|
15
|
-
}, [i]);
|
|
16
|
-
return e.length === 0 ? null : r === "inline" ? /* @__PURE__ */ x("div", {
|
|
17
|
-
className: t("language-switcher--component", "flex items-center justify-center gap-2.5"),
|
|
18
|
-
children: [/* @__PURE__ */ b(C, {
|
|
19
|
-
className: "size-4 text-muted-foreground/70",
|
|
20
|
-
"aria-hidden": "true"
|
|
21
|
-
}), /* @__PURE__ */ b("div", {
|
|
22
|
-
className: "flex items-center justify-center gap-2.5",
|
|
23
|
-
children: e.map((r, i) => {
|
|
24
|
-
let o = n ? n(r) : r.nativeLabel;
|
|
25
|
-
return /* @__PURE__ */ x(f, { children: [/* @__PURE__ */ b("button", {
|
|
26
|
-
type: "button",
|
|
27
|
-
onClick: () => a(r.value, r.active),
|
|
28
|
-
className: t("text-xs transition-colors", r.active ? "text-primary font-medium" : "text-muted-foreground hover:text-foreground"),
|
|
29
|
-
children: o
|
|
30
|
-
}), i < e.length - 1 && /* @__PURE__ */ b("span", {
|
|
31
|
-
"aria-hidden": "true",
|
|
32
|
-
className: "size-1 rounded-full bg-border"
|
|
33
|
-
})] }, r.value);
|
|
34
|
-
})
|
|
35
|
-
})]
|
|
36
|
-
}) : /* @__PURE__ */ b("div", {
|
|
37
|
-
className: "flex flex-wrap items-center justify-center gap-2",
|
|
38
|
-
children: e.map((e) => {
|
|
39
|
-
let r = n ? n(e) : e.nativeLabel;
|
|
40
|
-
return /* @__PURE__ */ b(o, {
|
|
41
|
-
type: "button",
|
|
42
|
-
variant: "secondary",
|
|
43
|
-
buttonStyle: e.active ? "solid" : "ghost",
|
|
44
|
-
onClick: () => a(e.value, e.active),
|
|
45
|
-
className: t("min-w-[4.5rem] justify-center transition-colors", e.active ? "font-semibold text-primary" : "text-muted-foreground"),
|
|
46
|
-
children: r
|
|
47
|
-
}, e.value);
|
|
48
|
-
})
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
T.displayName = "LanguageSwitcher";
|
|
52
|
-
//#endregion
|
|
53
|
-
//#region src/components/base/navigation/aside-navigation-menu.tsx
|
|
54
|
-
function E(e) {
|
|
55
|
-
if (e.length === 0) return "/";
|
|
56
|
-
try {
|
|
57
|
-
let t = typeof window < "u" ? window.location.origin : "http://localhost", n = new URL(e, t).pathname.replace(/\/+$/, "");
|
|
58
|
-
return n.length > 0 ? n : "/";
|
|
59
|
-
} catch {
|
|
60
|
-
let t = (e.split("?")[0] ?? e).replace(/\/+$/, "");
|
|
61
|
-
return t.length > 0 ? t : "/";
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
function D({ items: e, currentPath: n, activeClassName: r, itemClassName: i }) {
|
|
65
|
-
let o = E(n ?? (typeof window < "u" ? window.location.pathname : "")), s = typeof r == "string" && r.length > 0 ? r : "bg-muted", c = e.map((e) => ({
|
|
66
|
-
item: e,
|
|
67
|
-
normalizedPath: E(e.href)
|
|
68
|
-
})), l = c.filter(({ normalizedPath: e }) => o === e || o.startsWith(`${e}/`)).sort((e, t) => t.normalizedPath.length - e.normalizedPath.length)[0]?.normalizedPath ?? null;
|
|
69
|
-
return /* @__PURE__ */ b("nav", {
|
|
70
|
-
className: t("aside-navigation-menu--component", "flex flex-col space-y-1 space-x-0"),
|
|
71
|
-
children: c.map(({ item: e, normalizedPath: n }) => /* @__PURE__ */ b(a, {
|
|
72
|
-
variant: "secondary",
|
|
73
|
-
buttonStyle: "ghost",
|
|
74
|
-
size: "sm",
|
|
75
|
-
fullWidth: !0,
|
|
76
|
-
className: t("justify-start", i, n === l ? s : null),
|
|
77
|
-
nativeButton: !1,
|
|
78
|
-
render: (t) => /* @__PURE__ */ b("a", {
|
|
79
|
-
...t,
|
|
80
|
-
href: e.href
|
|
81
|
-
}),
|
|
82
|
-
children: e.title
|
|
83
|
-
}, e.href))
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
D.displayName = "AsideNavigationMenu";
|
|
87
|
-
//#endregion
|
|
88
|
-
//#region src/components/base/navigation/navigation-tabs.tsx
|
|
89
|
-
var O = { tabsAria: "Tabs" };
|
|
90
|
-
function k({ items: n, currentUrl: r, strings: i }) {
|
|
91
|
-
let a = e(O, i), o = r ?? (typeof window < "u" ? window.location.pathname : "/"), s = (e) => {
|
|
92
|
-
try {
|
|
93
|
-
return new URL(e, window.location.origin).pathname.replace(/\/+$/, "");
|
|
94
|
-
} catch {
|
|
95
|
-
return e.replace(/\/+$/, "").split("?")[0];
|
|
96
|
-
}
|
|
97
|
-
}, c = s(o);
|
|
98
|
-
return /* @__PURE__ */ b("div", {
|
|
99
|
-
className: t("navigation-tabs--component", "navigation-tabs-container w-full"),
|
|
100
|
-
children: /* @__PURE__ */ b("nav", {
|
|
101
|
-
className: "inline-flex items-center gap-1 rounded-lg bg-muted/60 p-1",
|
|
102
|
-
"aria-label": a.tabsAria,
|
|
103
|
-
children: n.map((e) => {
|
|
104
|
-
let n = c === s(e.url);
|
|
105
|
-
return /* @__PURE__ */ b("a", {
|
|
106
|
-
href: e.url,
|
|
107
|
-
className: t("whitespace-nowrap flex items-center gap-1 leading-tight rounded-md border border-transparent px-3 py-1.5 text-sm bg-background text-foreground hover:text-background hover:bg-primary transition-all duration-150", { "!bg-primary !text-background font-semibold": n }),
|
|
108
|
-
children: e.label
|
|
109
|
-
}, e.url);
|
|
110
|
-
})
|
|
111
|
-
})
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
k.displayName = "NavigationTabs";
|
|
115
|
-
//#endregion
|
|
116
|
-
//#region src/components/base/navigation/tab-navigation-menu.tsx
|
|
117
|
-
function A({ items: e, currentPath: n, className: r, ariaLabel: i = "Tab navigation" }) {
|
|
118
|
-
let a = n ?? (typeof window < "u" ? window.location.pathname : ""), o = g(() => e.map((e) => {
|
|
119
|
-
let t = a === e.href, n = null;
|
|
120
|
-
if (typeof e.icon == "string") n = /* @__PURE__ */ b("span", {
|
|
121
|
-
className: "text-inherit",
|
|
122
|
-
children: e.icon
|
|
123
|
-
});
|
|
124
|
-
else if (e.icon) {
|
|
125
|
-
let t = e.icon;
|
|
126
|
-
n = /* @__PURE__ */ b(t, { className: "h-4 w-4" });
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
key: e.href,
|
|
130
|
-
item: e,
|
|
131
|
-
isActive: t,
|
|
132
|
-
iconNode: n,
|
|
133
|
-
ariaCurrent: t ? "page" : void 0
|
|
134
|
-
};
|
|
135
|
-
}), [a, e]);
|
|
136
|
-
return /* @__PURE__ */ b("div", {
|
|
137
|
-
className: t("tab-navigation-menu--component", "w-full", r),
|
|
138
|
-
children: /* @__PURE__ */ b("nav", {
|
|
139
|
-
className: "inline-flex bg-muted rounded-full items-center gap-1 p-1",
|
|
140
|
-
"aria-label": i,
|
|
141
|
-
children: o.map(({ key: e, item: n, isActive: r, iconNode: i, ariaCurrent: a }) => /* @__PURE__ */ x("a", {
|
|
142
|
-
href: n.href,
|
|
143
|
-
className: t("whitespace-nowrap flex items-center gap-2", "rounded-full px-4 py-2", "text-sm font-medium", "transition-all duration-200", "focus-visible:outline-none focus-visible:ring-2", "focus-visible:ring-ring focus-visible:ring-offset-2", {
|
|
144
|
-
"bg-background text-foreground shadow-sm": r,
|
|
145
|
-
"text-muted-foreground hover:text-foreground hover:bg-background/50": !r
|
|
146
|
-
}),
|
|
147
|
-
"aria-current": a,
|
|
148
|
-
children: [
|
|
149
|
-
!!i && /* @__PURE__ */ b("span", {
|
|
150
|
-
className: "text-inherit",
|
|
151
|
-
children: i
|
|
152
|
-
}),
|
|
153
|
-
n.title,
|
|
154
|
-
!!n.badge && /* @__PURE__ */ b("span", {
|
|
155
|
-
className: t("ml-1.5 rounded-full px-2 py-0.5 text-xs font-medium", r ? "bg-primary/10 text-primary" : "bg-muted-foreground/10 text-muted-foreground"),
|
|
156
|
-
children: n.badge
|
|
157
|
-
})
|
|
158
|
-
]
|
|
159
|
-
}, e))
|
|
160
|
-
})
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
A.displayName = "TabNavigationMenu";
|
|
164
|
-
//#endregion
|
|
165
|
-
//#region src/components/base/navigation/page-header/page-header.tsx
|
|
166
|
-
function j({ eyebrow: e, title: a, description: o, badge: s, breadcrumbs: c, actions: l, children: u, className: f, withSeparator: p = !0 }) {
|
|
167
|
-
return /* @__PURE__ */ x("header", {
|
|
168
|
-
className: t("page-header--component", "w-full", f),
|
|
169
|
-
children: [
|
|
170
|
-
!!c && /* @__PURE__ */ b("div", {
|
|
171
|
-
className: "mb-3",
|
|
172
|
-
children: c
|
|
173
|
-
}),
|
|
174
|
-
/* @__PURE__ */ x("div", {
|
|
175
|
-
className: "flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
|
|
176
|
-
children: [/* @__PURE__ */ x("div", {
|
|
177
|
-
className: "min-w-0 flex-1",
|
|
178
|
-
children: [
|
|
179
|
-
!!e && /* @__PURE__ */ b(n, {
|
|
180
|
-
size: "xxs",
|
|
181
|
-
type: "secondary",
|
|
182
|
-
weight: "semibold",
|
|
183
|
-
className: "mb-1 uppercase tracking-wider",
|
|
184
|
-
children: e
|
|
185
|
-
}),
|
|
186
|
-
/* @__PURE__ */ x("div", {
|
|
187
|
-
className: "flex items-center gap-2",
|
|
188
|
-
children: [/* @__PURE__ */ b(r, {
|
|
189
|
-
tag: "h2",
|
|
190
|
-
className: "text-2xl border-0 pb-0",
|
|
191
|
-
children: a
|
|
192
|
-
}), !!s && /* @__PURE__ */ b(i, {
|
|
193
|
-
variant: s.variant ?? "secondary",
|
|
194
|
-
children: s.label
|
|
195
|
-
})]
|
|
196
|
-
}),
|
|
197
|
-
!!o && /* @__PURE__ */ b(n, {
|
|
198
|
-
type: "secondary",
|
|
199
|
-
className: "mt-1 max-w-2xl",
|
|
200
|
-
children: o
|
|
201
|
-
})
|
|
202
|
-
]
|
|
203
|
-
}), !!l && /* @__PURE__ */ b("div", {
|
|
204
|
-
className: "flex shrink-0 items-center gap-2",
|
|
205
|
-
children: l
|
|
206
|
-
})]
|
|
207
|
-
}),
|
|
208
|
-
!!u && /* @__PURE__ */ b("div", {
|
|
209
|
-
className: "mt-4",
|
|
210
|
-
children: u
|
|
211
|
-
}),
|
|
212
|
-
!!p && /* @__PURE__ */ b(d, { className: "mt-4" })
|
|
213
|
-
]
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
j.displayName = "PageHeader";
|
|
217
|
-
//#endregion
|
|
218
|
-
//#region src/components/base/navigation/section-nav/section-nav.tsx
|
|
219
|
-
function M({ items: e, rootMargin: r = "-40% 0px -50% 0px", className: i, onSelect: a }) {
|
|
220
|
-
let [o, s] = v(e[0]?.id ?? null);
|
|
221
|
-
return m(() => {
|
|
222
|
-
let t = new IntersectionObserver((e) => {
|
|
223
|
-
let t = e.find((e) => e.isIntersecting);
|
|
224
|
-
t?.target.id && s(t.target.id);
|
|
225
|
-
}, {
|
|
226
|
-
rootMargin: r,
|
|
227
|
-
threshold: 0
|
|
228
|
-
});
|
|
229
|
-
return e.forEach((e) => {
|
|
230
|
-
let n = document.getElementById(e.id);
|
|
231
|
-
n && t.observe(n);
|
|
232
|
-
}), () => t.disconnect();
|
|
233
|
-
}, [e, r]), /* @__PURE__ */ b("nav", {
|
|
234
|
-
className: t("section-nav--component", "flex flex-col gap-0.5", i),
|
|
235
|
-
"aria-label": "Section navigation",
|
|
236
|
-
children: e.map((e) => {
|
|
237
|
-
let r = e.icon, i = o === e.id;
|
|
238
|
-
return /* @__PURE__ */ x("a", {
|
|
239
|
-
href: `#${e.id}`,
|
|
240
|
-
onClick: (t) => {
|
|
241
|
-
t.preventDefault(), document.getElementById(e.id)?.scrollIntoView({
|
|
242
|
-
behavior: "smooth",
|
|
243
|
-
block: "start"
|
|
244
|
-
}), s(e.id), a?.(e.id);
|
|
245
|
-
},
|
|
246
|
-
className: t("flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors", i ? "bg-primary/10 text-primary" : "text-muted-foreground hover:bg-muted/50 hover:text-foreground"),
|
|
247
|
-
children: [!!r && /* @__PURE__ */ b(r, { className: "size-3.5 shrink-0" }), /* @__PURE__ */ b(n, {
|
|
248
|
-
tag: "span",
|
|
249
|
-
weight: i ? "semibold" : "medium",
|
|
250
|
-
children: e.label
|
|
251
|
-
})]
|
|
252
|
-
}, e.id);
|
|
253
|
-
})
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
M.displayName = "SectionNav";
|
|
257
|
-
//#endregion
|
|
258
|
-
//#region src/components/base/navigation/side-nav.tsx
|
|
259
|
-
function N(e) {
|
|
260
|
-
if (e.length === 0) return "/";
|
|
261
|
-
try {
|
|
262
|
-
let t = typeof window < "u" ? window.location.origin : "http://localhost", n = new URL(e, t).pathname.replace(/\/+$/, "");
|
|
263
|
-
return n.length > 0 ? n : "/";
|
|
264
|
-
} catch {
|
|
265
|
-
let t = (e.split("?")[0] ?? e).replace(/\/+$/, "");
|
|
266
|
-
return t.length > 0 ? t : "/";
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
function P({ groups: e, currentPath: r, className: a, itemClassName: o, activeItemClassName: s, ariaLabel: c = "Side navigation" }) {
|
|
270
|
-
let l = N(r ?? (typeof window < "u" ? window.location.pathname : "")), u = g(() => e.flatMap((e) => e.items.map((t) => ({
|
|
271
|
-
groupId: e.id,
|
|
272
|
-
normalizedPath: N(t.href)
|
|
273
|
-
}))), [e]).filter(({ normalizedPath: e }) => l === e || l.startsWith(`${e}/`)).sort((e, t) => t.normalizedPath.length - e.normalizedPath.length)[0]?.normalizedPath ?? null, [d, f] = v(() => Object.fromEntries(e.map((e) => [e.id, !!e.defaultCollapsed]))), p = (e) => f((t) => ({
|
|
274
|
-
...t,
|
|
275
|
-
[e]: !t[e]
|
|
276
|
-
})), m = s && s.length > 0 ? s : "bg-primary/5 text-primary";
|
|
277
|
-
return /* @__PURE__ */ b("nav", {
|
|
278
|
-
className: t("side-nav--component", "flex flex-col gap-4", a),
|
|
279
|
-
"aria-label": c,
|
|
280
|
-
children: e.map((e) => {
|
|
281
|
-
let r = e.collapsible !== !1 && d[e.id], a = !!e.label, s = !r;
|
|
282
|
-
return /* @__PURE__ */ x("div", {
|
|
283
|
-
className: "flex flex-col gap-1",
|
|
284
|
-
children: [!!a && (e.collapsible === !1 ? /* @__PURE__ */ b(n, {
|
|
285
|
-
tag: "div",
|
|
286
|
-
size: "xs",
|
|
287
|
-
type: "secondary",
|
|
288
|
-
weight: "medium",
|
|
289
|
-
className: "px-3 py-1.5 uppercase tracking-wider",
|
|
290
|
-
children: e.label
|
|
291
|
-
}) : /* @__PURE__ */ x("button", {
|
|
292
|
-
type: "button",
|
|
293
|
-
onClick: () => p(e.id),
|
|
294
|
-
className: t("flex w-full items-center justify-between px-3 py-1.5 rounded-md", "text-xs font-medium uppercase tracking-wider text-muted-foreground", "hover:text-foreground transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40"),
|
|
295
|
-
"aria-expanded": !r,
|
|
296
|
-
children: [/* @__PURE__ */ b("span", { children: e.label }), /* @__PURE__ */ b(S, {
|
|
297
|
-
className: t("size-3.5 transition-transform", r && "-rotate-90"),
|
|
298
|
-
"aria-hidden": "true"
|
|
299
|
-
})]
|
|
300
|
-
})), !!s && /* @__PURE__ */ b("div", {
|
|
301
|
-
className: "flex flex-col gap-0.5",
|
|
302
|
-
children: e.items.map((e) => {
|
|
303
|
-
let n = e.icon, r = N(e.href) === u;
|
|
304
|
-
return /* @__PURE__ */ x("a", {
|
|
305
|
-
href: e.disabled ? void 0 : e.href,
|
|
306
|
-
"aria-current": r ? "page" : void 0,
|
|
307
|
-
"aria-disabled": e.disabled || void 0,
|
|
308
|
-
className: t("group flex items-center gap-2.5 rounded-md px-3 py-1.5", "text-sm transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40", "hover:bg-muted/60", e.disabled && "pointer-events-none opacity-50", r && m, o),
|
|
309
|
-
children: [
|
|
310
|
-
!!n && /* @__PURE__ */ b(n, { className: t("size-4 shrink-0", r ? "text-primary" : "text-muted-foreground") }),
|
|
311
|
-
/* @__PURE__ */ b("span", {
|
|
312
|
-
className: "min-w-0 flex-1 truncate",
|
|
313
|
-
children: e.label
|
|
314
|
-
}),
|
|
315
|
-
!!e.badge && /* @__PURE__ */ b(i, {
|
|
316
|
-
variant: r ? "primary" : "secondary",
|
|
317
|
-
className: "shrink-0",
|
|
318
|
-
children: e.badge
|
|
319
|
-
})
|
|
320
|
-
]
|
|
321
|
-
}, e.href);
|
|
322
|
-
})
|
|
323
|
-
})]
|
|
324
|
-
}, e.id);
|
|
325
|
-
})
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
P.displayName = "SideNav";
|
|
329
|
-
//#endregion
|
|
330
|
-
//#region src/components/base/navigation/overflow-tab-bar.tsx
|
|
331
|
-
var F = "inline-flex shrink-0 items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40";
|
|
332
|
-
function I({ items: e, value: n, onChange: r, className: i, tabClassName: a, activeTabClassName: o, moreLabel: d = "More", ariaLabel: f = "Tab navigation" }) {
|
|
333
|
-
let p = _(null), m = _(null), [S, C] = v(e.length);
|
|
334
|
-
h(() => {
|
|
335
|
-
if (!p.current || !m.current) return;
|
|
336
|
-
let e = p.current, t = m.current, n = () => {
|
|
337
|
-
let n = e.clientWidth, r = Array.from(t.querySelectorAll("[data-tab-id]")), i = 0, a = 0;
|
|
338
|
-
for (let e of r) {
|
|
339
|
-
let t = e.offsetWidth + 4;
|
|
340
|
-
if (i + t + 72 <= n) i += t, a += 1;
|
|
341
|
-
else break;
|
|
342
|
-
}
|
|
343
|
-
C(a === r.length ? a : Math.max(1, a));
|
|
344
|
-
};
|
|
345
|
-
n();
|
|
346
|
-
let r = new ResizeObserver(n);
|
|
347
|
-
return r.observe(e), () => r.disconnect();
|
|
348
|
-
}, [e]);
|
|
349
|
-
let T = g(() => {
|
|
350
|
-
if (!n) return e;
|
|
351
|
-
let t = e.findIndex((e) => e.id === n);
|
|
352
|
-
if (t < 0 || t < S) return e;
|
|
353
|
-
let r = [...e], i = Math.max(0, S - 1);
|
|
354
|
-
return [r[t], r[i]] = [r[i], r[t]], r;
|
|
355
|
-
}, [
|
|
356
|
-
e,
|
|
357
|
-
n,
|
|
358
|
-
S
|
|
359
|
-
]), E = T.slice(0, S), D = T.slice(S), O = (e) => {
|
|
360
|
-
r?.(e.id), e.onClick?.();
|
|
361
|
-
}, k = (e, n) => {
|
|
362
|
-
let r = e.icon, i = t(F, n ? t("bg-card text-foreground shadow-sm", o) : "text-muted-foreground hover:bg-muted/60", a), s = /* @__PURE__ */ x(y, { children: [
|
|
363
|
-
!!r && /* @__PURE__ */ b(r, { className: "size-3.5" }),
|
|
364
|
-
/* @__PURE__ */ b("span", { children: e.label }),
|
|
365
|
-
!!e.badge && /* @__PURE__ */ b("span", {
|
|
366
|
-
className: t("ml-1 inline-flex items-center rounded-full px-1.5 py-0.5 text-xxs font-semibold", n ? "bg-primary/10 text-primary" : "bg-muted-foreground/10 text-muted-foreground"),
|
|
367
|
-
children: e.badge
|
|
368
|
-
})
|
|
369
|
-
] });
|
|
370
|
-
return e.href ? /* @__PURE__ */ b("a", {
|
|
371
|
-
href: e.href,
|
|
372
|
-
"data-tab-id": e.id,
|
|
373
|
-
"aria-current": n ? "page" : void 0,
|
|
374
|
-
onClick: () => O(e),
|
|
375
|
-
className: t("overflow-tab-bar--component", i),
|
|
376
|
-
children: s
|
|
377
|
-
}, e.id) : /* @__PURE__ */ b("button", {
|
|
378
|
-
type: "button",
|
|
379
|
-
"data-tab-id": e.id,
|
|
380
|
-
"aria-pressed": n,
|
|
381
|
-
onClick: () => O(e),
|
|
382
|
-
className: i,
|
|
383
|
-
children: s
|
|
384
|
-
}, e.id);
|
|
385
|
-
};
|
|
386
|
-
return /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b("div", {
|
|
387
|
-
ref: m,
|
|
388
|
-
"aria-hidden": "true",
|
|
389
|
-
className: "pointer-events-none fixed left-0 top-0 z-[-1] flex h-0 w-0 items-center gap-1 overflow-hidden opacity-0",
|
|
390
|
-
children: e.map((e) => k(e, !1))
|
|
391
|
-
}), /* @__PURE__ */ x("div", {
|
|
392
|
-
ref: p,
|
|
393
|
-
role: "tablist",
|
|
394
|
-
"aria-label": f,
|
|
395
|
-
className: t("relative flex w-full min-w-0 max-w-full items-center gap-1 overflow-hidden rounded-lg bg-muted/40 p-1", i),
|
|
396
|
-
children: [E.map((e) => k(e, e.id === n)), D.length > 0 && /* @__PURE__ */ x(u, { children: [/* @__PURE__ */ x(c, {
|
|
397
|
-
type: "button",
|
|
398
|
-
"aria-label": d,
|
|
399
|
-
className: t(F, "text-muted-foreground hover:bg-muted/60"),
|
|
400
|
-
children: [/* @__PURE__ */ b(w, { className: "size-3.5" }), /* @__PURE__ */ b("span", { children: d })]
|
|
401
|
-
}), /* @__PURE__ */ b(l, {
|
|
402
|
-
align: "end",
|
|
403
|
-
className: "min-w-[160px]",
|
|
404
|
-
children: D.map((e) => {
|
|
405
|
-
let r = e.icon;
|
|
406
|
-
return /* @__PURE__ */ x(s, {
|
|
407
|
-
onClick: () => O(e),
|
|
408
|
-
className: t("text-xs gap-1.5 px-2 py-1.5", e.id === n && "bg-primary/5 text-primary"),
|
|
409
|
-
children: [!!r && /* @__PURE__ */ b(r, { className: "size-3.5" }), /* @__PURE__ */ b("span", { children: e.label })]
|
|
410
|
-
}, e.id);
|
|
411
|
-
})
|
|
412
|
-
})] })]
|
|
413
|
-
})] });
|
|
414
|
-
}
|
|
415
|
-
I.displayName = "OverflowTabBar";
|
|
416
|
-
//#endregion
|
|
417
|
-
export { A as a, T as c, j as i, P as n, k as o, M as r, D as s, I as t };
|
|
418
|
-
|
|
419
|
-
//# sourceMappingURL=navigation-HnnA6uSV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-HnnA6uSV.js","names":[],"sources":["../../src/components/base/navigation/language-switcher.tsx","../../src/components/base/navigation/aside-navigation-menu.tsx","../../src/components/base/navigation/navigation-tabs.tsx","../../src/components/base/navigation/tab-navigation-menu.tsx","../../src/components/base/navigation/page-header/page-header.tsx","../../src/components/base/navigation/section-nav/section-nav.tsx","../../src/components/base/navigation/side-nav.tsx","../../src/components/base/navigation/overflow-tab-bar.tsx"],"sourcesContent":["/**\n * LanguageSwitcher — locale picker with two layouts: `buttons` (chunky\n * primary buttons) and `inline` (small text links separated by dots, prefixed\n * with a globe icon). Defaults to `buttons`.\n *\n * The library never navigates on its own. The consumer wires routing /\n * locale switching by passing `onSelect` (e.g. a Tanstack Router\n * `navigate(...)` or Inertia `router.visit(...)`). When `onSelect` is\n * absent the click is a no-op.\n */\nimport { Globe } from 'lucide-react';\nimport { Fragment, useCallback } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\nimport type { LocaleOption } from '@/types/locale.types';\n\ninterface LanguageSwitcherProps {\n\tlocales: LocaleOption[];\n\tonRenderLabel?: (options: LocaleOption) => string;\n\tvariant?: 'buttons' | 'inline';\n\tonSelect?: (value: string) => void;\n}\n\nexport function LanguageSwitcher({\n\tlocales,\n\tonRenderLabel,\n\tvariant = 'buttons',\n\tonSelect,\n}: LanguageSwitcherProps) {\n\tconst handleSelect = useCallback((value: string, isActive: boolean) => {\n\t\tif (isActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tonSelect?.(value);\n\t}, [onSelect]);\n\n\tif (locales.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (variant === 'inline') {\n\t\treturn (\n\t\t\t<div className={cn('language-switcher--component', 'flex items-center justify-center gap-2.5')}>\n\t\t\t\t<Globe className=\"size-4 text-muted-foreground/70\" aria-hidden=\"true\" />\n\t\t\t\t<div className=\"flex items-center justify-center gap-2.5\">\n\t\t\t\t\t{locales.map((locale, index) => {\n\t\t\t\t\t\tconst label = onRenderLabel\n\t\t\t\t\t\t\t? onRenderLabel(locale)\n\t\t\t\t\t\t\t: locale.nativeLabel;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Fragment key={locale.value}>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\thandleSelect(locale.value, locale.active)\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'text-xs transition-colors',\n\t\t\t\t\t\t\t\t\t\tlocale.active\n\t\t\t\t\t\t\t\t\t\t\t? 'text-primary font-medium'\n\t\t\t\t\t\t\t\t\t\t\t: 'text-muted-foreground hover:text-foreground',\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\t\t{label}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t{index < locales.length - 1 && (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"size-1 rounded-full bg-border\"\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</Fragment>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"flex flex-wrap items-center justify-center gap-2\">\n\t\t\t{locales.map((locale) => {\n\t\t\t\tconst label = onRenderLabel ? onRenderLabel(locale) : locale.nativeLabel;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={locale.value}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle={locale.active ? 'solid' : 'ghost'}\n\t\t\t\t\t\tonClick={() => handleSelect(locale.value, locale.active)}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'min-w-[4.5rem] justify-center transition-colors',\n\t\t\t\t\t\t\tlocale.active ? 'font-semibold text-primary' : 'text-muted-foreground',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n\nLanguageSwitcher.displayName = 'LanguageSwitcher';\n","/**\n * AsideNavigationMenu — vertical list of navigation links with active-state\n * highlight. Active item is matched by deepest path prefix so nested routes\n * still highlight their parent. Pass `currentPath` explicitly when SSR-ing or\n * when the consuming router does not update `window.location` synchronously.\n */\nimport { BaseButton } from '@/components/base/buttons';\nimport { cn } from '@/lib/utils';\nimport { type NavItem } from '@/types';\n\ninterface AsideNavigationMenuProps {\n\titems: NavItem[];\n\tcurrentPath?: string;\n\tactiveClassName?: string;\n\titemClassName?: string;\n}\n\nfunction normalizePath(rawUrl: string): string {\n\tif (rawUrl.length === 0) {\n\t\treturn '/';\n\t}\n\n\ttry {\n\t\tconst baseOrigin =\n\t\t\ttypeof window !== 'undefined'\n\t\t\t\t? window.location.origin\n\t\t\t\t: 'http://localhost';\n\t\tconst parsed = new URL(rawUrl, baseOrigin);\n\t\tconst trimmed = parsed.pathname.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t} catch {\n\t\tconst clean = rawUrl.split('?')[0] ?? rawUrl;\n\t\tconst trimmed = clean.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t}\n}\n\nexport default function AsideNavigationMenu({\n\titems,\n\tcurrentPath,\n\tactiveClassName,\n\titemClassName,\n}: AsideNavigationMenuProps) {\n\tconst rawActivePath = currentPath ?? (typeof window !== 'undefined' ? window.location.pathname : '');\n\tconst activePath = normalizePath(rawActivePath);\n\tconst resolvedActiveClassName =\n\t\ttypeof activeClassName === 'string' && activeClassName.length > 0\n\t\t\t? activeClassName\n\t\t\t: 'bg-muted';\n\tconst normalizedItems = items.map((item) => ({\n\t\titem,\n\t\tnormalizedPath: normalizePath(item.href),\n\t}));\n\n\tconst activeItemPath =\n\t\tnormalizedItems\n\t\t\t.filter(\n\t\t\t\t({ normalizedPath }) =>\n\t\t\t\t\tactivePath === normalizedPath ||\n\t\t\t\t\tactivePath.startsWith(`${normalizedPath}/`),\n\t\t\t)\n\t\t\t.sort((a, b) => b.normalizedPath.length - a.normalizedPath.length)[0]\n\t\t\t?.normalizedPath ?? null;\n\n\treturn (\n\t\t<nav className={cn('aside-navigation-menu--component', 'flex flex-col space-y-1 space-x-0')}>\n\t\t\t{normalizedItems.map(({ item, normalizedPath }) => {\n\t\t\t\tconst isActive = normalizedPath === activeItemPath;\n\n\t\t\t\treturn (\n\t\t\t\t\t<BaseButton\n\t\t\t\t\t\tkey={item.href}\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tfullWidth\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'justify-start',\n\t\t\t\t\t\t\titemClassName,\n\t\t\t\t\t\t\tisActive ? resolvedActiveClassName : null,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tnativeButton={false}\n\t\t\t\t\t\trender={(renderProps) => (\n\t\t\t\t\t\t\t<a {...renderProps} href={item.href} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{item.title}\n\t\t\t\t\t</BaseButton>\n\t\t\t\t);\n\t\t\t})}\n\t\t</nav>\n\t);\n}\n\nAsideNavigationMenu.displayName = 'AsideNavigationMenu';\n","/**\n * NavigationTabs — large pill tab strip for prominent in-page navigation.\n * Active tab gets full-primary fill with inverse text. Lighter-weight\n * alternative is `TabNavigationMenu` (compact card-style pills).\n */\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nexport interface NavigationTabItem {\n\tlabel: string;\n\tto: string;\n}\n\nexport interface NavigationTabsItem {\n\tlabel: string;\n\turl: string;\n\tactive?: boolean;\n}\n\nexport interface NavigationTabsStrings {\n\ttabsAria: string;\n}\n\nexport const defaultNavigationTabsStrings: NavigationTabsStrings = {\n\ttabsAria: 'Tabs',\n};\n\ninterface NavigationTabsProps {\n\titems: NavigationTabsItem[];\n\tcurrentUrl?: string;\n\tstrings?: StringsProp<NavigationTabsStrings>;\n}\n\nfunction NavigationTabs({ items, currentUrl: currentUrlProp, strings: stringsProp }: NavigationTabsProps) {\n\tconst strings = useStrings(defaultNavigationTabsStrings, stringsProp);\n\tconst url = currentUrlProp ?? (typeof window !== 'undefined' ? window.location.pathname : '/');\n\n\tconst normalizeUrl = (rawUrl: string): string => {\n\t\ttry {\n\t\t\tconst urlObj = new URL(rawUrl, window.location.origin);\n\t\t\treturn urlObj.pathname.replace(/\\/+$/, '');\n\t\t} catch {\n\t\t\treturn rawUrl.replace(/\\/+$/, '').split('?')[0];\n\t\t}\n\t};\n\n\tconst currentUrl = normalizeUrl(url);\n\n\tconst clsDefault = 'whitespace-nowrap flex items-center gap-1 leading-tight rounded-md border border-transparent px-3 py-1.5 text-sm bg-background text-foreground hover:text-background hover:bg-primary transition-all duration-150';\n\treturn (\n\t\t<div className={cn('navigation-tabs--component', 'navigation-tabs-container w-full')}>\n\t\t\t<nav className=\"inline-flex items-center gap-1 rounded-lg bg-muted/60 p-1\" aria-label={strings.tabsAria}>\n\t\t\t\t{items.map((item) => {\n\t\t\t\t\tconst itemUrl = normalizeUrl(item.url);\n\t\t\t\t\tconst isActive = currentUrl === itemUrl;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={item.url}\n\t\t\t\t\t\t\tkey={item.url}\n\t\t\t\t\t\t\tclassName={cn(clsDefault, {\n\t\t\t\t\t\t\t\t'!bg-primary !text-background font-semibold': isActive,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</nav>\n\t\t</div>\n\t);\n}\n\nexport default NavigationTabs;\n\nNavigationTabs.displayName = 'NavigationTabs';\n","/**\n * TabNavigationMenu — pill-style horizontal navigation. Active tab gets the\n * elevated card background; inactive tabs hover into a translucent variant.\n * Supports optional badges and per-item icons (Lucide component or string).\n */\nimport { useMemo, type ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { type NavItem } from '@/types';\n\ninterface TabNavigationMenuProps {\n\titems: NavItem[];\n\tcurrentPath?: string;\n\tclassName?: string;\n\tariaLabel?: string;\n}\n\nfunction TabNavigationMenu({ items, currentPath, className, ariaLabel = 'Tab navigation' }: TabNavigationMenuProps) {\n\tconst activePath = currentPath ?? (typeof window !== 'undefined' ? window.location.pathname : '');\n\n\tconst normalizedItems = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst isActive = activePath === item.href;\n\t\t\tlet iconNode: ReactNode = null;\n\n\t\t\tif (typeof item.icon === 'string') {\n\t\t\t\ticonNode = <span className=\"text-inherit\">{item.icon}</span>;\n\t\t\t} else if (item.icon) {\n\t\t\t\tconst IconComp = item.icon;\n\t\t\t\ticonNode = <IconComp className=\"h-4 w-4\" />;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tkey: item.href,\n\t\t\t\titem,\n\t\t\t\tisActive,\n\t\t\t\ticonNode,\n\t\t\t\tariaCurrent: isActive ? ('page' as const) : undefined,\n\t\t\t};\n\t\t});\n\t}, [activePath, items]);\n\n\treturn (\n\t\t<div className={cn('tab-navigation-menu--component', 'w-full', className)}>\n\t\t\t<nav className=\"inline-flex bg-muted rounded-full items-center gap-1 p-1\" aria-label={ariaLabel}>\n\t\t\t\t{normalizedItems.map(({ key, item, isActive, iconNode, ariaCurrent }) => (\n\t\t\t\t\t<a\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\thref={item.href}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'whitespace-nowrap flex items-center gap-2',\n\t\t\t\t\t\t\t'rounded-full px-4 py-2',\n\t\t\t\t\t\t\t'text-sm font-medium',\n\t\t\t\t\t\t\t'transition-all duration-200',\n\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2',\n\t\t\t\t\t\t\t'focus-visible:ring-ring focus-visible:ring-offset-2',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'bg-background text-foreground shadow-sm': isActive,\n\t\t\t\t\t\t\t\t'text-muted-foreground hover:text-foreground hover:bg-background/50': !isActive,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-current={ariaCurrent}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!iconNode && (\n\t\t\t\t\t\t\t<span className=\"text-inherit\">\n\t\t\t\t\t\t\t\t{iconNode}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'ml-1.5 rounded-full px-2 py-0.5 text-xs font-medium',\n\t\t\t\t\t\t\t\t\tisActive\n\t\t\t\t\t\t\t\t\t\t? 'bg-primary/10 text-primary'\n\t\t\t\t\t\t\t\t\t\t: 'bg-muted-foreground/10 text-muted-foreground',\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{item.badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</a>\n\t\t\t\t))}\n\t\t\t</nav>\n\t\t</div>\n\t);\n}\n\nTabNavigationMenu.displayName = 'TabNavigationMenu';\n\nexport default TabNavigationMenu;\n\n","/**\n * PageHeader — section / page heading with optional eyebrow, breadcrumbs slot,\n * description, status badge, and a row of action buttons. Designed to sit at the top\n * of every dashboard or detail page for consistent vertical rhythm.\n */\nimport type { ReactNode } from 'react';\nimport Heading from '@/components/typography/heading';\nimport { Text } from '@/components/typography';\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { Separator } from '@/components/base/display/separator';\nimport { cn } from '@/lib/utils';\n\nexport interface PageHeaderProps {\n\teyebrow?: ReactNode;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\tbadge?: { label: string; variant?: ComposedBadgeVariant };\n\tbreadcrumbs?: ReactNode;\n\tactions?: ReactNode;\n\tchildren?: ReactNode;\n\tclassName?: string;\n\twithSeparator?: boolean;\n}\n\nexport function PageHeader({\n\teyebrow,\n\ttitle,\n\tdescription,\n\tbadge,\n\tbreadcrumbs,\n\tactions,\n\tchildren,\n\tclassName,\n\twithSeparator = true,\n}: PageHeaderProps) {\n\treturn (\n\t\t<header className={cn('page-header--component', 'w-full', className)}>\n\t\t\t{!!breadcrumbs && <div className=\"mb-3\">{breadcrumbs}</div>}\n\n\t\t\t<div className=\"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between\">\n\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t{!!eyebrow && (\n\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" weight=\"semibold\" className=\"mb-1 uppercase tracking-wider\">\n\t\t\t\t\t\t\t{eyebrow}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t<Heading tag=\"h2\" className=\"text-2xl border-0 pb-0\">{title}</Heading>\n\t\t\t\t\t\t{!!badge && (\n\t\t\t\t\t\t\t<Badge variant={badge.variant ?? 'secondary'}>{badge.label}</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t<Text type=\"secondary\" className=\"mt-1 max-w-2xl\">{description}</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{!!actions && <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>}\n\t\t\t</div>\n\n\t\t\t{!!children && <div className=\"mt-4\">{children}</div>}\n\n\t\t\t{!!withSeparator && <Separator className=\"mt-4\" />}\n\t\t</header>\n\t);\n}\n\nPageHeader.displayName = 'PageHeader';\n","/**\n * SectionNav — sticky in-page anchor nav. Pass a list of section ids; the active one\n * is tracked via IntersectionObserver and the matching item is highlighted. Click to\n * scroll to that section. Pure JS — no router required.\n */\nimport { useEffect, useState } from 'react';\nimport type { LucideIcon } from 'lucide-react';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface SectionNavItem {\n\tid: string;\n\tlabel: string;\n\ticon?: LucideIcon;\n}\n\nexport interface SectionNavProps {\n\titems: SectionNavItem[];\n\trootMargin?: string;\n\tclassName?: string;\n\tonSelect?: (id: string) => void;\n}\n\nexport function SectionNav({ items, rootMargin = '-40% 0px -50% 0px', className, onSelect }: SectionNavProps) {\n\tconst [active, setActive] = useState<string | null>(items[0]?.id ?? null);\n\n\tuseEffect(() => {\n\t\tconst obs = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst visible = entries.find((e) => e.isIntersecting);\n\t\t\t\tif (visible?.target.id) setActive(visible.target.id);\n\t\t\t},\n\t\t\t{ rootMargin, threshold: 0 },\n\t\t);\n\t\titems.forEach((it) => {\n\t\t\tconst el = document.getElementById(it.id);\n\t\t\tif (el) obs.observe(el);\n\t\t});\n\t\treturn () => obs.disconnect();\n\t}, [items, rootMargin]);\n\n\treturn (\n\t\t<nav className={cn('section-nav--component', 'flex flex-col gap-0.5', className)} aria-label=\"Section navigation\">\n\t\t\t{items.map((it) => {\n\t\t\t\tconst Icon = it.icon;\n\t\t\t\tconst isActive = active === it.id;\n\t\t\t\treturn (\n\t\t\t\t\t<a\n\t\t\t\t\t\tkey={it.id}\n\t\t\t\t\t\thref={`#${it.id}`}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tdocument.getElementById(it.id)?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n\t\t\t\t\t\t\tsetActive(it.id);\n\t\t\t\t\t\t\tonSelect?.(it.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors',\n\t\t\t\t\t\t\tisActive ? 'bg-primary/10 text-primary' : 'text-muted-foreground hover:bg-muted/50 hover:text-foreground',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!Icon && <Icon className=\"size-3.5 shrink-0\" />}\n\t\t\t\t\t\t<Text tag=\"span\" weight={isActive ? 'semibold' : 'medium'}>{it.label}</Text>\n\t\t\t\t\t</a>\n\t\t\t\t);\n\t\t\t})}\n\t\t</nav>\n\t);\n}\n\nSectionNav.displayName = 'SectionNav';\n","/**\n * SideNav — collapsible vertical sidebar navigation. Items can be grouped\n * with a heading and optionally collapsed; each item supports an icon, badge,\n * and active-state highlight. The active item is matched by deepest path\n * prefix so nested routes still highlight their parent group.\n *\n * Use this when AsideNavigationMenu (flat) is not enough — e.g. settings\n * panes with multiple sections, or a primary app nav with collapsible groups.\n */\nimport { ChevronDown, type LucideIcon } from 'lucide-react';\nimport { useMemo, useState, type ReactNode } from 'react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface SideNavItem {\n\tlabel: ReactNode;\n\thref: string;\n\ticon?: LucideIcon;\n\tbadge?: ReactNode;\n\tdisabled?: boolean;\n}\n\nexport interface SideNavGroup {\n\tid: string;\n\tlabel?: ReactNode;\n\titems: SideNavItem[];\n\tdefaultCollapsed?: boolean;\n\tcollapsible?: boolean;\n}\n\nexport interface SideNavProps {\n\t/** Groups of items. Pass a single group with no `label` for an ungrouped list. */\n\tgroups: SideNavGroup[];\n\tcurrentPath?: string;\n\tclassName?: string;\n\titemClassName?: string;\n\tactiveItemClassName?: string;\n\tariaLabel?: string;\n}\n\nfunction normalizePath(rawUrl: string): string {\n\tif (rawUrl.length === 0) return '/';\n\ttry {\n\t\tconst baseOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';\n\t\tconst parsed = new URL(rawUrl, baseOrigin);\n\t\tconst trimmed = parsed.pathname.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t} catch {\n\t\tconst clean = rawUrl.split('?')[0] ?? rawUrl;\n\t\tconst trimmed = clean.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t}\n}\n\nexport function SideNav({\n\tgroups,\n\tcurrentPath,\n\tclassName,\n\titemClassName,\n\tactiveItemClassName,\n\tariaLabel = 'Side navigation',\n}: SideNavProps) {\n\tconst rawActivePath = currentPath ?? (typeof window !== 'undefined' ? window.location.pathname : '');\n\tconst activePath = normalizePath(rawActivePath);\n\n\tconst allNormalized = useMemo(() => {\n\t\treturn groups.flatMap((g) =>\n\t\t\tg.items.map((item) => ({ groupId: g.id, normalizedPath: normalizePath(item.href) })),\n\t\t);\n\t}, [groups]);\n\n\tconst activeNormalized =\n\t\tallNormalized\n\t\t\t.filter(\n\t\t\t\t({ normalizedPath }) =>\n\t\t\t\t\tactivePath === normalizedPath || activePath.startsWith(`${normalizedPath}/`),\n\t\t\t)\n\t\t\t.sort((a, b) => b.normalizedPath.length - a.normalizedPath.length)[0]?.normalizedPath ??\n\t\tnull;\n\n\tconst [collapsed, setCollapsed] = useState<Record<string, boolean>>(() =>\n\t\tObject.fromEntries(groups.map((g) => [g.id, Boolean(g.defaultCollapsed)])),\n\t);\n\n\tconst toggleGroup = (id: string) =>\n\t\tsetCollapsed((prev) => ({ ...prev, [id]: !prev[id] }));\n\n\tconst resolvedActive =\n\t\tactiveItemClassName && activeItemClassName.length > 0\n\t\t\t? activeItemClassName\n\t\t\t: 'bg-primary/5 text-primary';\n\n\treturn (\n\t\t<nav className={cn('side-nav--component', 'flex flex-col gap-4', className)} aria-label={ariaLabel}>\n\t\t\t{groups.map((group) => {\n\t\t\t\tconst isCollapsed = group.collapsible !== false && collapsed[group.id];\n\t\t\t\tconst showLabel = !!group.label;\n\t\t\t\tconst shouldRenderItems = !isCollapsed;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div key={group.id} className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t{!!showLabel && (\n\t\t\t\t\t\t\tgroup.collapsible !== false ? (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tonClick={() => toggleGroup(group.id)}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'flex w-full items-center justify-between px-3 py-1.5 rounded-md',\n\t\t\t\t\t\t\t\t\t\t'text-xs font-medium uppercase tracking-wider text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t'hover:text-foreground transition-colors',\n\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\taria-expanded={!isCollapsed}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span>{group.label}</span>\n\t\t\t\t\t\t\t\t\t<ChevronDown\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'size-3.5 transition-transform',\n\t\t\t\t\t\t\t\t\t\t\tisCollapsed && '-rotate-90',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\t\tclassName=\"px-3 py-1.5 uppercase tracking-wider\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{group.label}\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)}\n\t\t\t\t\t\t{!!shouldRenderItems && (\n\t\t\t\t\t\t\t<div className=\"flex flex-col gap-0.5\">\n\t\t\t\t\t\t\t\t{group.items.map((item) => {\n\t\t\t\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\t\t\t\tconst itemPath = normalizePath(item.href);\n\t\t\t\t\t\t\t\t\tconst isActive = itemPath === activeNormalized;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={item.href}\n\t\t\t\t\t\t\t\t\t\t\thref={item.disabled ? undefined : item.href}\n\t\t\t\t\t\t\t\t\t\t\taria-current={isActive ? 'page' : undefined}\n\t\t\t\t\t\t\t\t\t\t\taria-disabled={item.disabled || undefined}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'group flex items-center gap-2.5 rounded-md px-3 py-1.5',\n\t\t\t\t\t\t\t\t\t\t\t\t'text-sm transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\t\t\t\t\t\t\t\t\t'hover:bg-muted/60',\n\t\t\t\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t\t\t\t\tisActive && resolvedActive,\n\t\t\t\t\t\t\t\t\t\t\t\titemClassName,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-4 shrink-0',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisActive ? 'text-primary' : 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"min-w-0 flex-1 truncate\">{item.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={isActive ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</a>\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</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</nav>\n\t);\n}\n\nSideNav.displayName = 'SideNav';\n","/**\n * OverflowTabBar — horizontal tab strip that gracefully degrades on narrow\n * containers. Tabs that would overflow are moved into a trailing \"More\"\n * dropdown so the strip never wraps. Uses a ResizeObserver to recompute on\n * container resize; the active tab is always kept visible by being moved\n * out of the overflow set when needed.\n *\n * Pair with `TabNavigationMenu` for fixed sets where overflow is impossible,\n * or with `NavigationTabs` for marketing-weight pill bars.\n */\nimport { MoreHorizontal, type LucideIcon } from 'lucide-react';\nimport { useEffect, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from 'react';\n\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\nexport interface OverflowTabItem {\n\tid: string;\n\tlabel: ReactNode;\n\thref?: string;\n\ticon?: LucideIcon;\n\tbadge?: ReactNode;\n\tonClick?: () => void;\n}\n\nexport interface OverflowTabBarProps {\n\titems: OverflowTabItem[];\n\t/** Currently active tab id. */\n\tvalue?: string;\n\tonChange?: (id: string) => void;\n\tclassName?: string;\n\ttabClassName?: string;\n\tactiveTabClassName?: string;\n\tmoreLabel?: string;\n\tariaLabel?: string;\n}\n\nconst TAB_BUTTON_BASE =\n\t'inline-flex shrink-0 items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-colors ' +\n\t'hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40';\n\nexport function OverflowTabBar({\n\titems,\n\tvalue,\n\tonChange,\n\tclassName,\n\ttabClassName,\n\tactiveTabClassName,\n\tmoreLabel = 'More',\n\tariaLabel = 'Tab navigation',\n}: OverflowTabBarProps) {\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\tconst measureRef = useRef<HTMLDivElement | null>(null);\n\tconst [visibleCount, setVisibleCount] = useState(items.length);\n\n\t// Recompute how many tabs fit when container or items change.\n\tuseLayoutEffect(() => {\n\t\tif (!containerRef.current || !measureRef.current) return;\n\t\tconst container = containerRef.current;\n\t\tconst measure = measureRef.current;\n\n\t\tconst compute = () => {\n\t\t\tconst containerWidth = container.clientWidth;\n\t\t\tconst moreReserve = 72; // approximate \"More\" trigger width\n\t\t\tconst buttons = Array.from(measure.querySelectorAll<HTMLElement>('[data-tab-id]'));\n\t\t\tlet used = 0;\n\t\t\tlet count = 0;\n\t\t\tfor (const btn of buttons) {\n\t\t\t\tconst w = btn.offsetWidth + 4; // gap allowance\n\t\t\t\tif (used + w + moreReserve <= containerWidth) {\n\t\t\t\t\tused += w;\n\t\t\t\t\tcount += 1;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetVisibleCount(count === buttons.length ? count : Math.max(1, count));\n\t\t};\n\n\t\tcompute();\n\t\tconst observer = new ResizeObserver(compute);\n\t\tobserver.observe(container);\n\t\treturn () => observer.disconnect();\n\t}, [items]);\n\n\t// Ensure active tab is always visible; if it falls into the overflow set,\n\t// pull it forward by reducing the visible count to where it lives.\n\tconst orderedItems = useMemo(() => {\n\t\tif (!value) return items;\n\t\tconst activeIdx = items.findIndex((i) => i.id === value);\n\t\tif (activeIdx < 0 || activeIdx < visibleCount) return items;\n\t\t// Move active item into the visible window (swap with last visible).\n\t\tconst next = [...items];\n\t\tconst lastVisibleIdx = Math.max(0, visibleCount - 1);\n\t\t[next[activeIdx], next[lastVisibleIdx]] = [next[lastVisibleIdx], next[activeIdx]];\n\t\treturn next;\n\t}, [items, value, visibleCount]);\n\n\tconst visibleItems = orderedItems.slice(0, visibleCount);\n\tconst overflowItems = orderedItems.slice(visibleCount);\n\n\tconst handleSelect = (item: OverflowTabItem) => {\n\t\tonChange?.(item.id);\n\t\titem.onClick?.();\n\t};\n\n\tconst renderTab = (item: OverflowTabItem, isActive: boolean) => {\n\t\tconst Icon = item.icon;\n\t\tconst className = cn(\n\t\t\tTAB_BUTTON_BASE,\n\t\t\tisActive\n\t\t\t\t? cn('bg-card text-foreground shadow-sm', activeTabClassName)\n\t\t\t\t: 'text-muted-foreground hover:bg-muted/60',\n\t\t\ttabClassName,\n\t\t);\n\t\tconst inner = (\n\t\t\t<>\n\t\t\t\t{!!Icon && <Icon className=\"size-3.5\" />}\n\t\t\t\t<span>{item.label}</span>\n\t\t\t\t{!!item.badge && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'ml-1 inline-flex items-center rounded-full px-1.5 py-0.5 text-xxs font-semibold',\n\t\t\t\t\t\t\tisActive ? 'bg-primary/10 text-primary' : 'bg-muted-foreground/10 text-muted-foreground',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t\tif (item.href) {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\tkey={item.id}\n\t\t\t\t\thref={item.href}\n\t\t\t\t\tdata-tab-id={item.id}\n\t\t\t\t\taria-current={isActive ? 'page' : undefined}\n\t\t\t\t\tonClick={() => handleSelect(item)}\n\t\t\t\t\tclassName={cn('overflow-tab-bar--component', className)}\n\t\t\t\t>\n\t\t\t\t\t{inner}\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<button\n\t\t\t\tkey={item.id}\n\t\t\t\ttype=\"button\"\n\t\t\t\tdata-tab-id={item.id}\n\t\t\t\taria-pressed={isActive}\n\t\t\t\tonClick={() => handleSelect(item)}\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t{inner}\n\t\t\t</button>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{/* Hidden measure row: always renders all tabs at native width so\n\t\t\t we can measure how many fit. Visually hidden but laid out. */}\n\t\t\t<div\n\t\t\t\tref={measureRef}\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName=\"pointer-events-none fixed left-0 top-0 z-[-1] flex h-0 w-0 items-center gap-1 overflow-hidden opacity-0\"\n\t\t\t>\n\t\t\t\t{items.map((i) => renderTab(i, false))}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\trole=\"tablist\"\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\tclassName={cn('relative flex w-full min-w-0 max-w-full items-center gap-1 overflow-hidden rounded-lg bg-muted/40 p-1', className)}\n\t\t\t>\n\t\t\t\t{visibleItems.map((item) => renderTab(item, item.id === value))}\n\t\t\t\t{overflowItems.length > 0 && (\n\t\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label={moreLabel}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tTAB_BUTTON_BASE,\n\t\t\t\t\t\t\t\t'text-muted-foreground hover:bg-muted/60',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MoreHorizontal className=\"size-3.5\" />\n\t\t\t\t\t\t\t<span>{moreLabel}</span>\n\t\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t\t<DropdownMenuContent align=\"end\" className=\"min-w-[160px]\">\n\t\t\t\t\t\t\t{overflowItems.map((item) => {\n\t\t\t\t\t\t\t\tconst Icon = item.icon;\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={item.id}\n\t\t\t\t\t\t\t\t\t\tonClick={() => handleSelect(item)}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'text-xs gap-1.5 px-2 py-1.5',\n\t\t\t\t\t\t\t\t\t\t\titem.id === value && 'bg-primary/5 text-primary',\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{!!Icon && <Icon className=\"size-3.5\" />}\n\t\t\t\t\t\t\t\t\t\t<span>{item.label}</span>\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</DropdownMenuContent>\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nOverflowTabBar.displayName = 'OverflowTabBar';\n\n// useEffect is referenced indirectly through useLayoutEffect above; keep the\n// import so SSR builds that fall back to useEffect still compile cleanly.\nvoid useEffect;\n"],"mappings":";;;;;;;;;;;AAwBA,SAAgB,EAAiB,EAChC,YACA,kBACA,aAAU,WACV,eACyB;CACzB,IAAM,IAAe,GAAa,GAAe,MAAsB;EAClE,KAIJ,IAAW,CAAK;CACjB,GAAG,CAAC,CAAQ,CAAC;CA8Cb,OA5CI,EAAQ,WAAW,IACf,OAGJ,MAAY,WAEd,kBAAC,OAAD;EAAK,WAAW,EAAG,gCAAgC,0CAA0C;YAA7F,CACC,kBAAC,GAAD;GAAO,WAAU;GAAkC,eAAY;EAAQ,CAAA,GACvE,kBAAC,OAAD;GAAK,WAAU;aACb,EAAQ,KAAK,GAAQ,MAAU;IAC/B,IAAM,IAAQ,IACX,EAAc,CAAM,IACpB,EAAO;IAEV,OACC,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,UAAD;KACC,MAAK;KACL,eACC,EAAa,EAAO,OAAO,EAAO,MAAM;KAEzC,WAAW,EACV,6BACA,EAAO,SACJ,6BACA,6CACJ;eAEC;IACM,CAAA,GACP,IAAQ,EAAQ,SAAS,KACzB,kBAAC,QAAD;KACC,eAAY;KACZ,WAAU;IACV,CAAA,CAEO,EAAA,GArBK,EAAO,KAqBZ;GAEZ,CAAC;EACG,CAAA,CACD;MAKN,kBAAC,OAAD;EAAK,WAAU;YACb,EAAQ,KAAK,MAAW;GACxB,IAAM,IAAQ,IAAgB,EAAc,CAAM,IAAI,EAAO;GAE7D,OACC,kBAAC,GAAD;IAEC,MAAK;IACL,SAAQ;IACR,aAAa,EAAO,SAAS,UAAU;IACvC,eAAe,EAAa,EAAO,OAAO,EAAO,MAAM;IACvD,WAAW,EACV,mDACA,EAAO,SAAS,+BAA+B,uBAChD;cAEC;GACM,GAXF,EAAO,KAWL;EAEV,CAAC;CACG,CAAA;AAEP;AAEA,EAAiB,cAAc;;;AC1F/B,SAAS,EAAc,GAAwB;CAC9C,IAAI,EAAO,WAAW,GACrB,OAAO;CAGR,IAAI;EACH,IAAM,IACL,OAAO,SAAW,MACf,OAAO,SAAS,SAChB,oBAEE,IAAU,IADG,IAAI,GAAQ,CACf,EAAO,SAAS,QAAQ,QAAQ,EAAE;EAClD,OAAO,EAAQ,SAAS,IAAI,IAAU;CACvC,QAAQ;EAEP,IAAM,KADQ,EAAO,MAAM,GAAG,EAAE,MAAM,GAChB,QAAQ,QAAQ,EAAE;EACxC,OAAO,EAAQ,SAAS,IAAI,IAAU;CACvC;AACD;AAEA,SAAwB,EAAoB,EAC3C,UACA,gBACA,oBACA,oBAC4B;CAE5B,IAAM,IAAa,EADG,MAAgB,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,GACnD,GACxC,IACL,OAAO,KAAoB,YAAY,EAAgB,SAAS,IAC7D,IACA,YACE,IAAkB,EAAM,KAAK,OAAU;EAC5C;EACA,gBAAgB,EAAc,EAAK,IAAI;CACxC,EAAE,GAEI,IACL,EACE,QACC,EAAE,wBACF,MAAe,KACf,EAAW,WAAW,GAAG,EAAe,EAAE,CAC5C,EACC,MAAM,GAAG,MAAM,EAAE,eAAe,SAAS,EAAE,eAAe,MAAM,EAAE,IACjE,kBAAkB;CAEtB,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,oCAAoC,mCAAmC;YACxF,EAAgB,KAAK,EAAE,SAAM,wBAI5B,kBAAC,GAAD;GAEC,SAAQ;GACR,aAAY;GACZ,MAAK;GACL,WAAA;GACA,WAAW,EACV,iBACA,GAXc,MAAmB,IAYtB,IAA0B,IACtC;GACA,cAAc;GACd,SAAS,MACR,kBAAC,KAAD;IAAG,GAAI;IAAa,MAAM,EAAK;GAAO,CAAA;aAGtC,EAAK;EACK,GAhBN,EAAK,IAgBC,CAEb;CACG,CAAA;AAEP;AAEA,EAAoB,cAAc;;;ACvElC,IAAa,IAAsD,EAClE,UAAU,OACX;AAQA,SAAS,EAAe,EAAE,UAAO,YAAY,GAAgB,SAAS,KAAoC;CACzG,IAAM,IAAU,EAAW,GAA8B,CAAW,GAC9D,IAAM,MAAmB,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,MAEpF,KAAgB,MAA2B;EAChD,IAAI;GAEH,OAAO,IADY,IAAI,GAAQ,OAAO,SAAS,MACxC,EAAO,SAAS,QAAQ,QAAQ,EAAE;EAC1C,QAAQ;GACP,OAAO,EAAO,QAAQ,QAAQ,EAAE,EAAE,MAAM,GAAG,EAAE;EAC9C;CACD,GAEM,IAAa,EAAa,CAAG;CAGnC,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,8BAA8B,kCAAkC;YAClF,kBAAC,OAAD;GAAK,WAAU;GAA4D,cAAY,EAAQ;aAC7F,EAAM,KAAK,MAAS;IAEpB,IAAM,IAAW,MADD,EAAa,EAAK,GACF;IAEhC,OACC,kBAAC,KAAD;KACC,MAAM,EAAK;KAEX,WAAW,EAAG,qNAAY,EACzB,8CAA8C,EAC/C,CAAC;eAEA,EAAK;IACJ,GANG,EAAK,GAMR;GAEL,CAAC;EACG,CAAA;CACD,CAAA;AAEP;AAIA,EAAe,cAAc;;;AC1D7B,SAAS,EAAkB,EAAE,UAAO,gBAAa,cAAW,eAAY,oBAA4C;CACnH,IAAM,IAAa,MAAgB,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,KAExF,IAAkB,QAChB,EAAM,KAAK,MAAS;EAC1B,IAAM,IAAW,MAAe,EAAK,MACjC,IAAsB;EAE1B,IAAI,OAAO,EAAK,QAAS,UACxB,IAAW,kBAAC,QAAD;GAAM,WAAU;aAAgB,EAAK;EAAW,CAAA;OACrD,IAAI,EAAK,MAAM;GACrB,IAAM,IAAW,EAAK;GACtB,IAAW,kBAAC,GAAD,EAAU,WAAU,UAAW,CAAA;EAC3C;EAEA,OAAO;GACN,KAAK,EAAK;GACV;GACA;GACA;GACA,aAAa,IAAY,SAAmB,KAAA;EAC7C;CACD,CAAC,GACC,CAAC,GAAY,CAAK,CAAC;CAEtB,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,kCAAkC,UAAU,CAAS;YACvE,kBAAC,OAAD;GAAK,WAAU;GAA2D,cAAY;aACpF,EAAgB,KAAK,EAAE,QAAK,SAAM,aAAU,aAAU,qBACtD,kBAAC,KAAD;IAEC,MAAM,EAAK;IACX,WAAW,EACV,6CACA,0BACA,uBACA,+BACA,mDACA,uDACA;KACC,2CAA2C;KAC3C,sEAAsE,CAAC;IACxE,CACD;IACA,gBAAc;cAff;KAiBE,CAAC,CAAC,KACF,kBAAC,QAAD;MAAM,WAAU;gBACd;KACI,CAAA;KAEN,EAAK;KACL,CAAC,CAAC,EAAK,SACP,kBAAC,QAAD;MACC,WAAW,EACV,uDACA,IACG,+BACA,8CACJ;gBAEC,EAAK;KACD,CAAA;IAEL;MAlCG,CAkCH,CACH;EACG,CAAA;CACD,CAAA;AAEP;AAEA,EAAkB,cAAc;;;AChEhC,SAAgB,EAAW,EAC1B,YACA,UACA,gBACA,UACA,gBACA,YACA,aACA,cACA,mBAAgB,MACG;CACnB,OACC,kBAAC,UAAD;EAAQ,WAAW,EAAG,0BAA0B,UAAU,CAAS;YAAnE;GACE,CAAC,CAAC,KAAe,kBAAC,OAAD;IAAK,WAAU;cAAQ;GAAiB,CAAA;GAE1D,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,CAAC,CAAC,KACF,kBAAC,GAAD;OAAM,MAAK;OAAM,MAAK;OAAY,QAAO;OAAW,WAAU;iBAC5D;MACI,CAAA;MAEP,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACC,kBAAC,GAAD;QAAS,KAAI;QAAK,WAAU;kBAA0B;OAAe,CAAA,GACpE,CAAC,CAAC,KACF,kBAAC,GAAD;QAAO,SAAS,EAAM,WAAW;kBAAc,EAAM;OAAa,CAAA,CAE/D;;MACJ,CAAC,CAAC,KACF,kBAAC,GAAD;OAAM,MAAK;OAAY,WAAU;iBAAkB;MAAkB,CAAA;KAElE;QACJ,CAAC,CAAC,KAAW,kBAAC,OAAD;KAAK,WAAU;eAAoC;IAAa,CAAA,CAC1E;;GAEJ,CAAC,CAAC,KAAY,kBAAC,OAAD;IAAK,WAAU;IAAQ;GAAc,CAAA;GAEnD,CAAC,CAAC,KAAiB,kBAAC,GAAD,EAAW,WAAU,OAAQ,CAAA;EAC1C;;AAEV;AAEA,EAAW,cAAc;;;AC3CzB,SAAgB,EAAW,EAAE,UAAO,gBAAa,qBAAqB,cAAW,eAA6B;CAC7G,IAAM,CAAC,GAAQ,KAAa,EAAwB,EAAM,IAAI,MAAM,IAAI;CAiBxE,OAfA,QAAgB;EACf,IAAM,IAAM,IAAI,sBACd,MAAY;GACZ,IAAM,IAAU,EAAQ,MAAM,MAAM,EAAE,cAAc;GACpD,AAAI,GAAS,OAAO,MAAI,EAAU,EAAQ,OAAO,EAAE;EACpD,GACA;GAAE;GAAY,WAAW;EAAE,CAC5B;EAKA,OAJA,EAAM,SAAS,MAAO;GACrB,IAAM,IAAK,SAAS,eAAe,EAAG,EAAE;GACxC,AAAI,KAAI,EAAI,QAAQ,CAAE;EACvB,CAAC,SACY,EAAI,WAAW;CAC7B,GAAG,CAAC,GAAO,CAAU,CAAC,GAGrB,kBAAC,OAAD;EAAK,WAAW,EAAG,0BAA0B,yBAAyB,CAAS;EAAG,cAAW;YAC3F,EAAM,KAAK,MAAO;GAClB,IAAM,IAAO,EAAG,MACV,IAAW,MAAW,EAAG;GAC/B,OACC,kBAAC,KAAD;IAEC,MAAM,IAAI,EAAG;IACb,UAAU,MAAM;KAIf,AAHA,EAAE,eAAe,GACjB,SAAS,eAAe,EAAG,EAAE,GAAG,eAAe;MAAE,UAAU;MAAU,OAAO;KAAQ,CAAC,GACrF,EAAU,EAAG,EAAE,GACf,IAAW,EAAG,EAAE;IACjB;IACA,WAAW,EACV,oEACA,IAAW,+BAA+B,+DAC3C;cAZD,CAcE,CAAC,CAAC,KAAQ,kBAAC,GAAD,EAAM,WAAU,oBAAqB,CAAA,GAChD,kBAAC,GAAD;KAAM,KAAI;KAAO,QAAQ,IAAW,aAAa;eAAW,EAAG;IAAY,CAAA,CACzE;MAfG,EAAG,EAeN;EAEL,CAAC;CACG,CAAA;AAEP;AAEA,EAAW,cAAc;;;AC5BzB,SAAS,EAAc,GAAwB;CAC9C,IAAI,EAAO,WAAW,GAAG,OAAO;CAChC,IAAI;EACH,IAAM,IAAa,OAAO,SAAW,MAAc,OAAO,SAAS,SAAS,oBAEtE,IAAU,IADG,IAAI,GAAQ,CACf,EAAO,SAAS,QAAQ,QAAQ,EAAE;EAClD,OAAO,EAAQ,SAAS,IAAI,IAAU;CACvC,QAAQ;EAEP,IAAM,KADQ,EAAO,MAAM,GAAG,EAAE,MAAM,GAChB,QAAQ,QAAQ,EAAE;EACxC,OAAO,EAAQ,SAAS,IAAI,IAAU;CACvC;AACD;AAEA,SAAgB,EAAQ,EACvB,WACA,gBACA,cACA,kBACA,wBACA,eAAY,qBACI;CAEhB,IAAM,IAAa,EADG,MAAgB,OAAO,SAAW,MAAc,OAAO,SAAS,WAAW,GACnD,GAQxC,IANgB,QACd,EAAO,SAAS,MACtB,EAAE,MAAM,KAAK,OAAU;EAAE,SAAS,EAAE;EAAI,gBAAgB,EAAc,EAAK,IAAI;CAAE,EAAE,CACpF,GACE,CAAC,CAAM,CAGT,EACE,QACC,EAAE,wBACF,MAAe,KAAkB,EAAW,WAAW,GAAG,EAAe,EAAE,CAC7E,EACC,MAAM,GAAG,MAAM,EAAE,eAAe,SAAS,EAAE,eAAe,MAAM,EAAE,IAAI,kBACxE,MAEK,CAAC,GAAW,KAAgB,QACjC,OAAO,YAAY,EAAO,KAAK,MAAM,CAAC,EAAE,IAAI,EAAQ,EAAE,gBAAiB,CAAC,CAAC,CAC1E,GAEM,KAAe,MACpB,GAAc,OAAU;EAAE,GAAG;GAAO,IAAK,CAAC,EAAK;CAAI,EAAE,GAEhD,IACL,KAAuB,EAAoB,SAAS,IACjD,IACA;CAEJ,OACC,kBAAC,OAAD;EAAK,WAAW,EAAG,uBAAuB,uBAAuB,CAAS;EAAG,cAAY;YACvF,EAAO,KAAK,MAAU;GACtB,IAAM,IAAc,EAAM,gBAAgB,MAAS,EAAU,EAAM,KAC7D,IAAY,CAAC,CAAC,EAAM,OACpB,IAAoB,CAAC;GAE3B,OACC,kBAAC,OAAD;IAAoB,WAAU;cAA9B,CACE,CAAC,CAAC,MACF,EAAM,gBAAgB,KAsBrB,kBAAC,GAAD;KACC,KAAI;KACJ,MAAK;KACL,MAAK;KACL,QAAO;KACP,WAAU;eAET,EAAM;IACF,CAAA,IA7BN,kBAAC,UAAD;KACC,MAAK;KACL,eAAe,EAAY,EAAM,EAAE;KACnC,WAAW,EACV,mEACA,sEACA,2CACA,4EACD;KACA,iBAAe,CAAC;eATjB,CAWC,kBAAC,QAAD,EAAA,UAAO,EAAM,MAAY,CAAA,GACzB,kBAAC,GAAD;MACC,WAAW,EACV,iCACA,KAAe,YAChB;MACA,eAAY;KACZ,CAAA,CACM;SAaT,CAAC,CAAC,KACF,kBAAC,OAAD;KAAK,WAAU;eACb,EAAM,MAAM,KAAK,MAAS;MAC1B,IAAM,IAAO,EAAK,MAEZ,IADW,EAAc,EAAK,IACnB,MAAa;MAC9B,OACC,kBAAC,KAAD;OAEC,MAAM,EAAK,WAAW,KAAA,IAAY,EAAK;OACvC,gBAAc,IAAW,SAAS,KAAA;OAClC,iBAAe,EAAK,YAAY,KAAA;OAChC,WAAW,EACV,0DACA,6BACA,8EACA,qBACA,EAAK,YAAY,kCACjB,KAAY,GACZ,CACD;iBAbD;QAeE,CAAC,CAAC,KACF,kBAAC,GAAD,EACC,WAAW,EACV,mBACA,IAAW,iBAAiB,uBAC7B,EACA,CAAA;QAEF,kBAAC,QAAD;SAAM,WAAU;mBAA2B,EAAK;QAAY,CAAA;QAC3D,CAAC,CAAC,EAAK,SACP,kBAAC,GAAD;SACC,SAAS,IAAW,YAAY;SAChC,WAAU;mBAET,EAAK;QACA,CAAA;OAEN;SA/BG,EAAK,IA+BR;KAEL,CAAC;IACG,CAAA,CAEF;MA/EK,EAAM,EA+EX;EAEP,CAAC;CACG,CAAA;AAEP;AAEA,EAAQ,cAAc;;;AClJtB,IAAM,IACL;AAGD,SAAgB,EAAe,EAC9B,UACA,UACA,aACA,cACA,iBACA,uBACA,eAAY,QACZ,eAAY,oBACW;CACvB,IAAM,IAAe,EAA8B,IAAI,GACjD,IAAa,EAA8B,IAAI,GAC/C,CAAC,GAAc,KAAmB,EAAS,EAAM,MAAM;CAG7D,QAAsB;EACrB,IAAI,CAAC,EAAa,WAAW,CAAC,EAAW,SAAS;EAClD,IAAM,IAAY,EAAa,SACzB,IAAU,EAAW,SAErB,UAAgB;GACrB,IAAM,IAAiB,EAAU,aAE3B,IAAU,MAAM,KAAK,EAAQ,iBAA8B,eAAe,CAAC,GAC7E,IAAO,GACP,IAAQ;GACZ,KAAK,IAAM,KAAO,GAAS;IAC1B,IAAM,IAAI,EAAI,cAAc;IAC5B,IAAI,IAAO,IAAI,MAAe,GAE7B,AADA,KAAQ,GACR,KAAS;SAET;GAEF;GACA,EAAgB,MAAU,EAAQ,SAAS,IAAQ,KAAK,IAAI,GAAG,CAAK,CAAC;EACtE;EAEA,EAAQ;EACR,IAAM,IAAW,IAAI,eAAe,CAAO;EAE3C,OADA,EAAS,QAAQ,CAAS,SACb,EAAS,WAAW;CAClC,GAAG,CAAC,CAAK,CAAC;CAIV,IAAM,IAAe,QAAc;EAClC,IAAI,CAAC,GAAO,OAAO;EACnB,IAAM,IAAY,EAAM,WAAW,MAAM,EAAE,OAAO,CAAK;EACvD,IAAI,IAAY,KAAK,IAAY,GAAc,OAAO;EAEtD,IAAM,IAAO,CAAC,GAAG,CAAK,GAChB,IAAiB,KAAK,IAAI,GAAG,IAAe,CAAC;EAEnD,OADA,CAAC,EAAK,IAAY,EAAK,MAAmB,CAAC,EAAK,IAAiB,EAAK,EAAU,GACzE;CACR,GAAG;EAAC;EAAO;EAAO;CAAY,CAAC,GAEzB,IAAe,EAAa,MAAM,GAAG,CAAY,GACjD,IAAgB,EAAa,MAAM,CAAY,GAE/C,KAAgB,MAA0B;EAE/C,AADA,IAAW,EAAK,EAAE,GAClB,EAAK,UAAU;CAChB,GAEM,KAAa,GAAuB,MAAsB;EAC/D,IAAM,IAAO,EAAK,MACZ,IAAY,EACjB,GACA,IACG,EAAG,qCAAqC,CAAkB,IAC1D,2CACH,CACD,GACM,IACL,kBAAA,GAAA,EAAA,UAAA;GACE,CAAC,CAAC,KAAQ,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA;GACvC,kBAAC,QAAD,EAAA,UAAO,EAAK,MAAY,CAAA;GACvB,CAAC,CAAC,EAAK,SACP,kBAAC,QAAD;IACC,WAAW,EACV,mFACA,IAAW,+BAA+B,8CAC3C;cAEC,EAAK;GACD,CAAA;EAEN,EAAA,CAAA;EAgBH,OAdI,EAAK,OAEP,kBAAC,KAAD;GAEC,MAAM,EAAK;GACX,eAAa,EAAK;GAClB,gBAAc,IAAW,SAAS,KAAA;GAClC,eAAe,EAAa,CAAI;GAChC,WAAW,EAAG,+BAA+B,CAAS;aAErD;EACC,GARG,EAAK,EAQR,IAIJ,kBAAC,UAAD;GAEC,MAAK;GACL,eAAa,EAAK;GAClB,gBAAc;GACd,eAAe,EAAa,CAAI;GACrB;aAEV;EACM,GARF,EAAK,EAQH;CAEV;CAEA,OACC,kBAAA,GAAA,EAAA,UAAA,CAGC,kBAAC,OAAD;EACC,KAAK;EACL,eAAY;EACZ,WAAU;YAET,EAAM,KAAK,MAAM,EAAU,GAAG,EAAK,CAAC;CACjC,CAAA,GAEL,kBAAC,OAAD;EACC,KAAK;EACL,MAAK;EACL,cAAY;EACZ,WAAW,EAAG,yGAAyG,CAAS;YAJjI,CAME,EAAa,KAAK,MAAS,EAAU,GAAM,EAAK,OAAO,CAAK,CAAC,GAC7D,EAAc,SAAS,KACvB,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,GAAD;GACC,MAAK;GACL,cAAY;GACZ,WAAW,EACV,GACA,yCACD;aAND,CAQC,kBAAC,GAAD,EAAgB,WAAU,WAAY,CAAA,GACtC,kBAAC,QAAD,EAAA,UAAO,EAAgB,CAAA,CACH;MACrB,kBAAC,GAAD;GAAqB,OAAM;GAAM,WAAU;aACzC,EAAc,KAAK,MAAS;IAC5B,IAAM,IAAO,EAAK;IAClB,OACC,kBAAC,GAAD;KAEC,eAAe,EAAa,CAAI;KAChC,WAAW,EACV,+BACA,EAAK,OAAO,KAAS,2BACtB;eAND,CAQE,CAAC,CAAC,KAAQ,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,GACvC,kBAAC,QAAD,EAAA,UAAO,EAAK,MAAY,CAAA,CACP;OATZ,EAAK,EASO;GAEpB,CAAC;EACmB,CAAA,CACR,EAAA,CAAA,CAEX;GACJ,EAAA,CAAA;AAEJ;AAEA,EAAe,cAAc"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../lib/strings.cjs"),t=require("../lib/utils.cjs"),n=require("./heading-0DYCOrgC.cjs"),r=require("./badge--o9wFHB_.cjs"),i=require("./button-C1qc97U1.cjs"),a=require("./dropdown-menu-CHQzQWUK.cjs"),o=require("./separator-q42IlFFA.cjs");let s=require("react"),c=require("react/jsx-runtime"),l=require("lucide-react");function u({locales:e,onRenderLabel:n,variant:r=`buttons`,onSelect:a}){let o=(0,s.useCallback)((e,t)=>{t||a?.(e)},[a]);return e.length===0?null:r===`inline`?(0,c.jsxs)(`div`,{className:t.cn(`language-switcher--component`,`flex items-center justify-center gap-2.5`),children:[(0,c.jsx)(l.Globe,{className:`size-4 text-muted-foreground/70`,"aria-hidden":`true`}),(0,c.jsx)(`div`,{className:`flex items-center justify-center gap-2.5`,children:e.map((r,i)=>{let a=n?n(r):r.nativeLabel;return(0,c.jsxs)(s.Fragment,{children:[(0,c.jsx)(`button`,{type:`button`,onClick:()=>o(r.value,r.active),className:t.cn(`text-xs transition-colors`,r.active?`text-primary font-medium`:`text-muted-foreground hover:text-foreground`),children:a}),i<e.length-1&&(0,c.jsx)(`span`,{"aria-hidden":`true`,className:`size-1 rounded-full bg-border`})]},r.value)})})]}):(0,c.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:e.map(e=>{let r=n?n(e):e.nativeLabel;return(0,c.jsx)(i.t,{type:`button`,variant:`secondary`,buttonStyle:e.active?`solid`:`ghost`,onClick:()=>o(e.value,e.active),className:t.cn(`min-w-[4.5rem] justify-center transition-colors`,e.active?`font-semibold text-primary`:`text-muted-foreground`),children:r},e.value)})})}u.displayName=`LanguageSwitcher`;function d(e){if(e.length===0)return`/`;try{let t=typeof window<`u`?window.location.origin:`http://localhost`,n=new URL(e,t).pathname.replace(/\/+$/,``);return n.length>0?n:`/`}catch{let t=(e.split(`?`)[0]??e).replace(/\/+$/,``);return t.length>0?t:`/`}}function f({items:e,currentPath:n,activeClassName:r,itemClassName:a}){let o=d(n??(typeof window<`u`?window.location.pathname:``)),s=typeof r==`string`&&r.length>0?r:`bg-muted`,l=e.map(e=>({item:e,normalizedPath:d(e.href)})),u=l.filter(({normalizedPath:e})=>o===e||o.startsWith(`${e}/`)).sort((e,t)=>t.normalizedPath.length-e.normalizedPath.length)[0]?.normalizedPath??null;return(0,c.jsx)(`nav`,{className:t.cn(`aside-navigation-menu--component`,`flex flex-col space-y-1 space-x-0`),children:l.map(({item:e,normalizedPath:n})=>(0,c.jsx)(i.i,{variant:`secondary`,buttonStyle:`ghost`,size:`sm`,fullWidth:!0,className:t.cn(`justify-start`,a,n===u?s:null),nativeButton:!1,render:t=>(0,c.jsx)(`a`,{...t,href:e.href}),children:e.title},e.href))})}f.displayName=`AsideNavigationMenu`;var p={tabsAria:`Tabs`};function m({items:n,currentUrl:r,strings:i}){let a=e.useStrings(p,i),o=r??(typeof window<`u`?window.location.pathname:`/`),s=e=>{try{return new URL(e,window.location.origin).pathname.replace(/\/+$/,``)}catch{return e.replace(/\/+$/,``).split(`?`)[0]}},l=s(o);return(0,c.jsx)(`div`,{className:t.cn(`navigation-tabs--component`,`navigation-tabs-container w-full`),children:(0,c.jsx)(`nav`,{className:`inline-flex items-center gap-1 rounded-lg bg-muted/60 p-1`,"aria-label":a.tabsAria,children:n.map(e=>{let n=l===s(e.url);return(0,c.jsx)(`a`,{href:e.url,className:t.cn(`whitespace-nowrap flex items-center gap-1 leading-tight rounded-md border border-transparent px-3 py-1.5 text-sm bg-background text-foreground hover:text-background hover:bg-primary transition-all duration-150`,{"!bg-primary !text-background font-semibold":n}),children:e.label},e.url)})})})}m.displayName=`NavigationTabs`;function h({items:e,currentPath:n,className:r,ariaLabel:i=`Tab navigation`}){let a=n??(typeof window<`u`?window.location.pathname:``),o=(0,s.useMemo)(()=>e.map(e=>{let t=a===e.href,n=null;if(typeof e.icon==`string`)n=(0,c.jsx)(`span`,{className:`text-inherit`,children:e.icon});else if(e.icon){let t=e.icon;n=(0,c.jsx)(t,{className:`h-4 w-4`})}return{key:e.href,item:e,isActive:t,iconNode:n,ariaCurrent:t?`page`:void 0}}),[a,e]);return(0,c.jsx)(`div`,{className:t.cn(`tab-navigation-menu--component`,`w-full`,r),children:(0,c.jsx)(`nav`,{className:`inline-flex bg-muted rounded-full items-center gap-1 p-1`,"aria-label":i,children:o.map(({key:e,item:n,isActive:r,iconNode:i,ariaCurrent:a})=>(0,c.jsxs)(`a`,{href:n.href,className:t.cn(`whitespace-nowrap flex items-center gap-2`,`rounded-full px-4 py-2`,`text-sm font-medium`,`transition-all duration-200`,`focus-visible:outline-none focus-visible:ring-2`,`focus-visible:ring-ring focus-visible:ring-offset-2`,{"bg-background text-foreground shadow-sm":r,"text-muted-foreground hover:text-foreground hover:bg-background/50":!r}),"aria-current":a,children:[!!i&&(0,c.jsx)(`span`,{className:`text-inherit`,children:i}),n.title,!!n.badge&&(0,c.jsx)(`span`,{className:t.cn(`ml-1.5 rounded-full px-2 py-0.5 text-xs font-medium`,r?`bg-primary/10 text-primary`:`bg-muted-foreground/10 text-muted-foreground`),children:n.badge})]},e))})})}h.displayName=`TabNavigationMenu`;function g({eyebrow:e,title:i,description:a,badge:s,breadcrumbs:l,actions:u,children:d,className:f,withSeparator:p=!0}){return(0,c.jsxs)(`header`,{className:t.cn(`page-header--component`,`w-full`,f),children:[!!l&&(0,c.jsx)(`div`,{className:`mb-3`,children:l}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,c.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[!!e&&(0,c.jsx)(n.n,{size:`xxs`,type:`secondary`,weight:`semibold`,className:`mb-1 uppercase tracking-wider`,children:e}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(n.t,{tag:`h2`,className:`text-2xl border-0 pb-0`,children:i}),!!s&&(0,c.jsx)(r.t,{variant:s.variant??`secondary`,children:s.label})]}),!!a&&(0,c.jsx)(n.n,{type:`secondary`,className:`mt-1 max-w-2xl`,children:a})]}),!!u&&(0,c.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:u})]}),!!d&&(0,c.jsx)(`div`,{className:`mt-4`,children:d}),!!p&&(0,c.jsx)(o.t,{className:`mt-4`})]})}g.displayName=`PageHeader`;function _({items:e,rootMargin:r=`-40% 0px -50% 0px`,className:i,onSelect:a}){let[o,l]=(0,s.useState)(e[0]?.id??null);return(0,s.useEffect)(()=>{let t=new IntersectionObserver(e=>{let t=e.find(e=>e.isIntersecting);t?.target.id&&l(t.target.id)},{rootMargin:r,threshold:0});return e.forEach(e=>{let n=document.getElementById(e.id);n&&t.observe(n)}),()=>t.disconnect()},[e,r]),(0,c.jsx)(`nav`,{className:t.cn(`section-nav--component`,`flex flex-col gap-0.5`,i),"aria-label":`Section navigation`,children:e.map(e=>{let r=e.icon,i=o===e.id;return(0,c.jsxs)(`a`,{href:`#${e.id}`,onClick:t=>{t.preventDefault(),document.getElementById(e.id)?.scrollIntoView({behavior:`smooth`,block:`start`}),l(e.id),a?.(e.id)},className:t.cn(`flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors`,i?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/50 hover:text-foreground`),children:[!!r&&(0,c.jsx)(r,{className:`size-3.5 shrink-0`}),(0,c.jsx)(n.n,{tag:`span`,weight:i?`semibold`:`medium`,children:e.label})]},e.id)})})}_.displayName=`SectionNav`;function v(e){if(e.length===0)return`/`;try{let t=typeof window<`u`?window.location.origin:`http://localhost`,n=new URL(e,t).pathname.replace(/\/+$/,``);return n.length>0?n:`/`}catch{let t=(e.split(`?`)[0]??e).replace(/\/+$/,``);return t.length>0?t:`/`}}function y({groups:e,currentPath:i,className:a,itemClassName:o,activeItemClassName:u,ariaLabel:d=`Side navigation`}){let f=v(i??(typeof window<`u`?window.location.pathname:``)),p=(0,s.useMemo)(()=>e.flatMap(e=>e.items.map(t=>({groupId:e.id,normalizedPath:v(t.href)}))),[e]).filter(({normalizedPath:e})=>f===e||f.startsWith(`${e}/`)).sort((e,t)=>t.normalizedPath.length-e.normalizedPath.length)[0]?.normalizedPath??null,[m,h]=(0,s.useState)(()=>Object.fromEntries(e.map(e=>[e.id,!!e.defaultCollapsed]))),g=e=>h(t=>({...t,[e]:!t[e]})),_=u&&u.length>0?u:`bg-primary/5 text-primary`;return(0,c.jsx)(`nav`,{className:t.cn(`side-nav--component`,`flex flex-col gap-4`,a),"aria-label":d,children:e.map(e=>{let i=e.collapsible!==!1&&m[e.id],a=!!e.label,s=!i;return(0,c.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[!!a&&(e.collapsible===!1?(0,c.jsx)(n.n,{tag:`div`,size:`xs`,type:`secondary`,weight:`medium`,className:`px-3 py-1.5 uppercase tracking-wider`,children:e.label}):(0,c.jsxs)(`button`,{type:`button`,onClick:()=>g(e.id),className:t.cn(`flex w-full items-center justify-between px-3 py-1.5 rounded-md`,`text-xs font-medium uppercase tracking-wider text-muted-foreground`,`hover:text-foreground transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`),"aria-expanded":!i,children:[(0,c.jsx)(`span`,{children:e.label}),(0,c.jsx)(l.ChevronDown,{className:t.cn(`size-3.5 transition-transform`,i&&`-rotate-90`),"aria-hidden":`true`})]})),!!s&&(0,c.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.items.map(e=>{let n=e.icon,i=v(e.href)===p;return(0,c.jsxs)(`a`,{href:e.disabled?void 0:e.href,"aria-current":i?`page`:void 0,"aria-disabled":e.disabled||void 0,className:t.cn(`group flex items-center gap-2.5 rounded-md px-3 py-1.5`,`text-sm transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,`hover:bg-muted/60`,e.disabled&&`pointer-events-none opacity-50`,i&&_,o),children:[!!n&&(0,c.jsx)(n,{className:t.cn(`size-4 shrink-0`,i?`text-primary`:`text-muted-foreground`)}),(0,c.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!!e.badge&&(0,c.jsx)(r.t,{variant:i?`primary`:`secondary`,className:`shrink-0`,children:e.badge})]},e.href)})})]},e.id)})})}y.displayName=`SideNav`;var b=`inline-flex shrink-0 items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`;function x({items:e,value:n,onChange:r,className:i,tabClassName:o,activeTabClassName:u,moreLabel:d=`More`,ariaLabel:f=`Tab navigation`}){let p=(0,s.useRef)(null),m=(0,s.useRef)(null),[h,g]=(0,s.useState)(e.length);(0,s.useLayoutEffect)(()=>{if(!p.current||!m.current)return;let e=p.current,t=m.current,n=()=>{let n=e.clientWidth,r=Array.from(t.querySelectorAll(`[data-tab-id]`)),i=0,a=0;for(let e of r){let t=e.offsetWidth+4;if(i+t+72<=n)i+=t,a+=1;else break}g(a===r.length?a:Math.max(1,a))};n();let r=new ResizeObserver(n);return r.observe(e),()=>r.disconnect()},[e]);let _=(0,s.useMemo)(()=>{if(!n)return e;let t=e.findIndex(e=>e.id===n);if(t<0||t<h)return e;let r=[...e],i=Math.max(0,h-1);return[r[t],r[i]]=[r[i],r[t]],r},[e,n,h]),v=_.slice(0,h),y=_.slice(h),x=e=>{r?.(e.id),e.onClick?.()},S=(e,n)=>{let r=e.icon,i=t.cn(b,n?t.cn(`bg-card text-foreground shadow-sm`,u):`text-muted-foreground hover:bg-muted/60`,o),a=(0,c.jsxs)(c.Fragment,{children:[!!r&&(0,c.jsx)(r,{className:`size-3.5`}),(0,c.jsx)(`span`,{children:e.label}),!!e.badge&&(0,c.jsx)(`span`,{className:t.cn(`ml-1 inline-flex items-center rounded-full px-1.5 py-0.5 text-xxs font-semibold`,n?`bg-primary/10 text-primary`:`bg-muted-foreground/10 text-muted-foreground`),children:e.badge})]});return e.href?(0,c.jsx)(`a`,{href:e.href,"data-tab-id":e.id,"aria-current":n?`page`:void 0,onClick:()=>x(e),className:t.cn(`overflow-tab-bar--component`,i),children:a},e.id):(0,c.jsx)(`button`,{type:`button`,"data-tab-id":e.id,"aria-pressed":n,onClick:()=>x(e),className:i,children:a},e.id)};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`div`,{ref:m,"aria-hidden":`true`,className:`pointer-events-none fixed left-0 top-0 z-[-1] flex h-0 w-0 items-center gap-1 overflow-hidden opacity-0`,children:e.map(e=>S(e,!1))}),(0,c.jsxs)(`div`,{ref:p,role:`tablist`,"aria-label":f,className:t.cn(`relative flex w-full min-w-0 max-w-full items-center gap-1 overflow-hidden rounded-lg bg-muted/40 p-1`,i),children:[v.map(e=>S(e,e.id===n)),y.length>0&&(0,c.jsxs)(a.t,{children:[(0,c.jsxs)(a.g,{type:`button`,"aria-label":d,className:t.cn(b,`text-muted-foreground hover:bg-muted/60`),children:[(0,c.jsx)(l.MoreHorizontal,{className:`size-3.5`}),(0,c.jsx)(`span`,{children:d})]}),(0,c.jsx)(a.r,{align:`end`,className:`min-w-[160px]`,children:y.map(e=>{let r=e.icon;return(0,c.jsxs)(a.a,{onClick:()=>x(e),className:t.cn(`text-xs gap-1.5 px-2 py-1.5`,e.id===n&&`bg-primary/5 text-primary`),children:[!!r&&(0,c.jsx)(r,{className:`size-3.5`}),(0,c.jsx)(`span`,{children:e.label})]},e.id)})})]})]})]})}x.displayName=`OverflowTabBar`,Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return x}});
|
|
2
|
-
//# sourceMappingURL=navigation-J2g0Tw9D.cjs.map
|