admin-ui-starter-kit 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/component-library-rules/SKILL.md +24 -0
- package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +2 -2
- package/.agents/skills/component-library-rules/references/import-paths.md +27 -0
- package/AGENTS.md +8 -3
- package/INTEGRATION.md +33 -2
- package/PUBLISHING.md +3 -1
- package/README.md +33 -6
- package/dist/_shared/accordion-CztqyaIN.js +130 -0
- package/dist/_shared/accordion-CztqyaIN.js.map +1 -0
- package/dist/_shared/accordion-D5uTCLCB.cjs +2 -0
- package/dist/_shared/accordion-D5uTCLCB.cjs.map +1 -0
- package/dist/_shared/action-menu-Yrj6VzFS.js +96 -0
- package/dist/_shared/action-menu-Yrj6VzFS.js.map +1 -0
- package/dist/_shared/action-menu-eVP8GGlv.cjs +2 -0
- package/dist/_shared/action-menu-eVP8GGlv.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs +3 -0
- package/dist/_shared/ai-artifact-DaHXJTKg.cjs.map +1 -0
- package/dist/_shared/ai-artifact-DyLn3JAs.js +1068 -0
- package/dist/_shared/ai-artifact-DyLn3JAs.js.map +1 -0
- package/dist/_shared/alert-BVw4Mq6H.js +48 -0
- package/dist/_shared/alert-BVw4Mq6H.js.map +1 -0
- package/dist/_shared/alert-DXSlR9ja.cjs +2 -0
- package/dist/_shared/alert-DXSlR9ja.cjs.map +1 -0
- package/dist/_shared/avatar-CpBz9pTv.js +52 -0
- package/dist/_shared/avatar-CpBz9pTv.js.map +1 -0
- package/dist/_shared/avatar-dg20YFFs.cjs +2 -0
- package/dist/_shared/avatar-dg20YFFs.cjs.map +1 -0
- package/dist/_shared/badge-BVCh_hfL.js +108 -0
- package/dist/_shared/badge-BVCh_hfL.js.map +1 -0
- package/dist/_shared/badge-C49SSz-6.cjs +2 -0
- package/dist/_shared/badge-C49SSz-6.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs +2 -0
- package/dist/_shared/breadcrumbs-Bo7j5Rhv.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-Dc93fqqE.js +111 -0
- package/dist/_shared/breadcrumbs-Dc93fqqE.js.map +1 -0
- package/dist/_shared/button-2xglT7yf.cjs +2 -0
- package/dist/_shared/button-2xglT7yf.cjs.map +1 -0
- package/dist/_shared/button-ChCkwoOD.js +176 -0
- package/dist/_shared/button-ChCkwoOD.js.map +1 -0
- package/dist/_shared/button-D0nF99a9.cjs +2 -0
- package/dist/_shared/button-D0nF99a9.cjs.map +1 -0
- package/dist/_shared/button-DBR4QI9E.js +46 -0
- package/dist/_shared/button-DBR4QI9E.js.map +1 -0
- package/dist/_shared/buttons-Bcnt1md_.js +143 -0
- package/dist/_shared/buttons-Bcnt1md_.js.map +1 -0
- package/dist/_shared/buttons-km9xqXJv.cjs +2 -0
- package/dist/_shared/buttons-km9xqXJv.cjs.map +1 -0
- package/dist/_shared/card-radio-group-BGH93O5-.js +158 -0
- package/dist/_shared/card-radio-group-BGH93O5-.js.map +1 -0
- package/dist/_shared/card-radio-group-Vq741uhL.cjs +2 -0
- package/dist/_shared/card-radio-group-Vq741uhL.cjs.map +1 -0
- package/dist/_shared/combobox-BgXAxjU2.js +746 -0
- package/dist/_shared/combobox-BgXAxjU2.js.map +1 -0
- package/dist/_shared/combobox-DuIyh3xJ.cjs +2 -0
- package/dist/_shared/combobox-DuIyh3xJ.cjs.map +1 -0
- package/dist/_shared/command-BbiijN61.js +39 -0
- package/dist/_shared/command-BbiijN61.js.map +1 -0
- package/dist/_shared/command-D7zTvyBJ.cjs +2 -0
- package/dist/_shared/command-D7zTvyBJ.cjs.map +1 -0
- package/dist/_shared/command-DGNtTI-V.cjs +2 -0
- package/dist/_shared/command-DGNtTI-V.cjs.map +1 -0
- package/dist/_shared/command-jKbwFRtS.js +123 -0
- package/dist/_shared/command-jKbwFRtS.js.map +1 -0
- package/dist/_shared/comments-CNUsdwGW.cjs +2 -0
- package/dist/_shared/comments-CNUsdwGW.cjs.map +1 -0
- package/dist/_shared/comments-CvmS7zG3.js +945 -0
- package/dist/_shared/comments-CvmS7zG3.js.map +1 -0
- package/dist/_shared/containers-BFDv7cCV.cjs +2 -0
- package/dist/_shared/containers-BFDv7cCV.cjs.map +1 -0
- package/dist/_shared/containers-C1-A_2PT.js +19 -0
- package/dist/_shared/containers-C1-A_2PT.js.map +1 -0
- package/dist/_shared/content-container-CwqFnaI0.cjs +2 -0
- package/dist/_shared/content-container-CwqFnaI0.cjs.map +1 -0
- package/dist/_shared/content-container-D_3JGBSc.js +33 -0
- package/dist/_shared/content-container-D_3JGBSc.js.map +1 -0
- package/dist/_shared/copyable-CHhCGMfW.js +38 -0
- package/dist/_shared/copyable-CHhCGMfW.js.map +1 -0
- package/dist/_shared/copyable-ndaiocYq.cjs +2 -0
- package/dist/_shared/copyable-ndaiocYq.cjs.map +1 -0
- package/dist/_shared/date-picker-B8O_qbik.js +1353 -0
- package/dist/_shared/date-picker-B8O_qbik.js.map +1 -0
- package/dist/_shared/date-picker-BnOjyuKS.cjs +2 -0
- package/dist/_shared/date-picker-BnOjyuKS.cjs.map +1 -0
- package/dist/_shared/date-pickers-Cas9cPlj.js +330 -0
- package/dist/_shared/date-pickers-Cas9cPlj.js.map +1 -0
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs +2 -0
- package/dist/_shared/date-pickers-Dk-G3RMy.cjs.map +1 -0
- package/dist/_shared/dialog-67GmkMLC.js +101 -0
- package/dist/_shared/dialog-67GmkMLC.js.map +1 -0
- package/dist/_shared/dialog-BF_4uAhE.cjs +2 -0
- package/dist/_shared/dialog-BF_4uAhE.cjs.map +1 -0
- package/dist/_shared/display-B9xVWboG.cjs +8 -0
- package/dist/_shared/display-B9xVWboG.cjs.map +1 -0
- package/dist/_shared/display-BM_GxDAo.js +1237 -0
- package/dist/_shared/display-BM_GxDAo.js.map +1 -0
- package/dist/_shared/dropdown-menu-4nxEBMnd.js +147 -0
- package/dist/_shared/dropdown-menu-4nxEBMnd.js.map +1 -0
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs +2 -0
- package/dist/_shared/dropdown-menu-DZlWHqWS.cjs.map +1 -0
- package/dist/_shared/form-field-BQlki-8s.js +319 -0
- package/dist/_shared/form-field-BQlki-8s.js.map +1 -0
- package/dist/_shared/form-field-DzpwVS99.cjs +2 -0
- package/dist/_shared/form-field-DzpwVS99.cjs.map +1 -0
- package/dist/_shared/form-sizing-CcbB-OHF.js +21 -0
- package/dist/_shared/form-sizing-CcbB-OHF.js.map +1 -0
- package/dist/_shared/form-sizing-Cw12UeI6.cjs +2 -0
- package/dist/_shared/form-sizing-Cw12UeI6.cjs.map +1 -0
- package/dist/_shared/format-B2AdSQVn.cjs +2 -0
- package/dist/_shared/format-B2AdSQVn.cjs.map +1 -0
- package/dist/_shared/format-CP65h1vK.js +48 -0
- package/dist/_shared/format-CP65h1vK.js.map +1 -0
- package/dist/_shared/forms-B8aaNG44.cjs +2 -0
- package/dist/_shared/forms-B8aaNG44.cjs.map +1 -0
- package/dist/_shared/forms-BusuTZZ2.js +3374 -0
- package/dist/_shared/forms-BusuTZZ2.js.map +1 -0
- package/dist/_shared/header-DWfOUjFL.cjs +2 -0
- package/dist/_shared/header-DWfOUjFL.cjs.map +1 -0
- package/dist/_shared/header-KpdoLtP9.js +369 -0
- package/dist/_shared/header-KpdoLtP9.js.map +1 -0
- package/dist/_shared/heading-BprqyzDs.js +39 -0
- package/dist/_shared/heading-BprqyzDs.js.map +1 -0
- package/dist/_shared/heading-mZc_jan1.cjs +2 -0
- package/dist/_shared/heading-mZc_jan1.cjs.map +1 -0
- package/dist/_shared/hooks-C-uWoRq5.cjs +2 -0
- package/dist/_shared/hooks-C-uWoRq5.cjs.map +1 -0
- package/dist/_shared/hooks-D5HJtvvP.js +118 -0
- package/dist/_shared/hooks-D5HJtvvP.js.map +1 -0
- package/dist/_shared/icon-badge-BBqDyAUz.cjs +2 -0
- package/dist/_shared/icon-badge-BBqDyAUz.cjs.map +1 -0
- package/dist/_shared/icon-badge-Bi63T-bj.js +52 -0
- package/dist/_shared/icon-badge-Bi63T-bj.js.map +1 -0
- package/dist/_shared/input-B2YXTHqz.cjs +2 -0
- package/dist/_shared/input-B2YXTHqz.cjs.map +1 -0
- package/dist/_shared/input-BJb10xb9.cjs +2 -0
- package/dist/_shared/input-BJb10xb9.cjs.map +1 -0
- package/dist/_shared/input-CZxP5Xgj.js +17 -0
- package/dist/_shared/input-CZxP5Xgj.js.map +1 -0
- package/dist/_shared/input-DQahu2sm.js +182 -0
- package/dist/_shared/input-DQahu2sm.js.map +1 -0
- package/dist/_shared/item-Cu5JbZyZ.js +224 -0
- package/dist/_shared/item-Cu5JbZyZ.js.map +1 -0
- package/dist/_shared/item-Cx_7QZ2o.cjs +2 -0
- package/dist/_shared/item-Cx_7QZ2o.cjs.map +1 -0
- package/dist/_shared/mentions-CS3rIhze.js +493 -0
- package/dist/_shared/mentions-CS3rIhze.js.map +1 -0
- package/dist/_shared/mentions-D7gnP3Nf.cjs +2 -0
- package/dist/_shared/mentions-D7gnP3Nf.cjs.map +1 -0
- package/dist/_shared/metadata-CRsVWE8Y.cjs +2 -0
- package/dist/_shared/metadata-CRsVWE8Y.cjs.map +1 -0
- package/dist/_shared/metadata-CfG0FdFZ.js +236 -0
- package/dist/_shared/metadata-CfG0FdFZ.js.map +1 -0
- package/dist/_shared/money-display-Bd0rkjc9.js +198 -0
- package/dist/_shared/money-display-Bd0rkjc9.js.map +1 -0
- package/dist/_shared/money-display-DSFft9Mi.cjs +2 -0
- package/dist/_shared/money-display-DSFft9Mi.cjs.map +1 -0
- package/dist/_shared/navigation-Do9k5Xh1.js +420 -0
- package/dist/_shared/navigation-Do9k5Xh1.js.map +1 -0
- package/dist/_shared/navigation-QAAD3HJd.cjs +2 -0
- package/dist/_shared/navigation-QAAD3HJd.cjs.map +1 -0
- package/dist/_shared/overlays-B8AH8fNv.js +633 -0
- package/dist/_shared/overlays-B8AH8fNv.js.map +1 -0
- package/dist/_shared/overlays-DOcoRy8k.cjs +2 -0
- package/dist/_shared/overlays-DOcoRy8k.cjs.map +1 -0
- package/dist/_shared/page-BPCeKX9X.js +263 -0
- package/dist/_shared/page-BPCeKX9X.js.map +1 -0
- package/dist/_shared/page-DMM32sxi.cjs +2 -0
- package/dist/_shared/page-DMM32sxi.cjs.map +1 -0
- package/dist/_shared/popover-B1f_EUQS.cjs +2 -0
- package/dist/_shared/popover-B1f_EUQS.cjs.map +1 -0
- package/dist/_shared/popover-CgRGcFk9.js +83 -0
- package/dist/_shared/popover-CgRGcFk9.js.map +1 -0
- package/dist/_shared/popover-menu-BEKIT3LR.cjs +2 -0
- package/dist/_shared/popover-menu-BEKIT3LR.cjs.map +1 -0
- package/dist/_shared/popover-menu-BHdHLEVL.js +95 -0
- package/dist/_shared/popover-menu-BHdHLEVL.js.map +1 -0
- package/dist/_shared/rich-text-editor-0uoIoYXU.js +608 -0
- package/dist/_shared/rich-text-editor-0uoIoYXU.js.map +1 -0
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs +2 -0
- package/dist/_shared/rich-text-editor-wTiARGuB.cjs.map +1 -0
- package/dist/_shared/scroll-area-Bo17wtZD.cjs +2 -0
- package/dist/_shared/scroll-area-Bo17wtZD.cjs.map +1 -0
- package/dist/_shared/scroll-area-Cj-hmB5D.js +41 -0
- package/dist/_shared/scroll-area-Cj-hmB5D.js.map +1 -0
- package/dist/_shared/select-07RRiTWc.js +85 -0
- package/dist/_shared/select-07RRiTWc.js.map +1 -0
- package/dist/_shared/select-BfiU7a4n.cjs +2 -0
- package/dist/_shared/select-BfiU7a4n.cjs.map +1 -0
- package/dist/_shared/separator-CN9zAJfs.cjs +2 -0
- package/dist/_shared/separator-CN9zAJfs.cjs.map +1 -0
- package/dist/_shared/separator-DR0uUMKa.js +16 -0
- package/dist/_shared/separator-DR0uUMKa.js.map +1 -0
- package/dist/_shared/sheet-B5FoGJAZ.cjs +2 -0
- package/dist/_shared/sheet-B5FoGJAZ.cjs.map +1 -0
- package/dist/_shared/sheet-cUI8cypP.js +100 -0
- package/dist/_shared/sheet-cUI8cypP.js.map +1 -0
- package/dist/_shared/sidebar-Bq7yKLrG.cjs +2 -0
- package/dist/_shared/sidebar-Bq7yKLrG.cjs.map +1 -0
- package/dist/_shared/sidebar-Da20tCUc.cjs +2 -0
- package/dist/_shared/sidebar-Da20tCUc.cjs.map +1 -0
- package/dist/_shared/sidebar-Q6TYE8Ux.js +371 -0
- package/dist/_shared/sidebar-Q6TYE8Ux.js.map +1 -0
- package/dist/_shared/sidebar-WmnQ55YY.js +537 -0
- package/dist/_shared/sidebar-WmnQ55YY.js.map +1 -0
- package/dist/_shared/skeleton-B3HWEc6G.js +14 -0
- package/dist/_shared/skeleton-B3HWEc6G.js.map +1 -0
- package/dist/_shared/skeleton-Cz_l8-fc.cjs +2 -0
- package/dist/_shared/skeleton-Cz_l8-fc.cjs.map +1 -0
- package/dist/_shared/slot-BgnZtKR5.js +18 -0
- package/dist/_shared/slot-BgnZtKR5.js.map +1 -0
- package/dist/_shared/slot-Dac1ipUC.cjs +2 -0
- package/dist/_shared/slot-Dac1ipUC.cjs.map +1 -0
- package/dist/_shared/smart-card-Bm_VxYUG.cjs +2 -0
- package/dist/_shared/smart-card-Bm_VxYUG.cjs.map +1 -0
- package/dist/_shared/smart-card-MT6JjkoI.js +360 -0
- package/dist/_shared/smart-card-MT6JjkoI.js.map +1 -0
- package/dist/_shared/spinner-BQjxJ_Kx.js +67 -0
- package/dist/_shared/spinner-BQjxJ_Kx.js.map +1 -0
- package/dist/_shared/spinner-Dvaa6GUm.cjs +2 -0
- package/dist/_shared/spinner-Dvaa6GUm.cjs.map +1 -0
- package/dist/_shared/switch-C0yyhsXZ.js +51 -0
- package/dist/_shared/switch-C0yyhsXZ.js.map +1 -0
- package/dist/_shared/switch-DozkSQNn.cjs +2 -0
- package/dist/_shared/switch-DozkSQNn.cjs.map +1 -0
- package/dist/_shared/textarea-Cgl-FPwu.js +119 -0
- package/dist/_shared/textarea-Cgl-FPwu.js.map +1 -0
- package/dist/_shared/textarea-D8wC0XlZ.cjs +2 -0
- package/dist/_shared/textarea-D8wC0XlZ.cjs.map +1 -0
- package/dist/_shared/tooltip-Cws4BiPT.js +49 -0
- package/dist/_shared/tooltip-Cws4BiPT.js.map +1 -0
- package/dist/_shared/tooltip-DyUi-Tac.cjs +2 -0
- package/dist/_shared/tooltip-DyUi-Tac.cjs.map +1 -0
- package/dist/_shared/typography-BW7iZBx7.cjs +2 -0
- package/dist/_shared/typography-BW7iZBx7.cjs.map +1 -0
- package/dist/_shared/typography-a3hydyvI.js +102 -0
- package/dist/_shared/typography-a3hydyvI.js.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/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/command/index.cjs +1 -1
- package/dist/components/base/command/index.js +2 -2
- package/dist/components/base/copyable/index.cjs +1 -1
- package/dist/components/base/copyable/index.js +1 -1
- package/dist/components/base/currency/index.cjs +1 -1
- package/dist/components/base/currency/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/index.cjs +1 -1
- package/dist/components/base/display/index.js +12 -11
- package/dist/components/base/display/metadata/index.cjs +1 -0
- package/dist/components/base/display/metadata/index.js +2 -0
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.cjs.map +1 -1
- package/dist/components/base/event-calendar/index.js +4 -4
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +6 -6
- package/dist/components/base/item/index.cjs +1 -1
- package/dist/components/base/item/index.js +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.js +3 -3
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +4 -4
- package/dist/components/base/popover/index.cjs +1 -1
- package/dist/components/base/popover/index.js +1 -1
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- 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/spinner/index.cjs +1 -1
- package/dist/components/base/spinner/index.js +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +7 -7
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.js +12 -12
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +9 -9
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.cjs.map +1 -1
- package/dist/components/composed/analytics/index.js +4 -4
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.cjs.map +1 -1
- package/dist/components/composed/cards/index.js +8 -8
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.cjs.map +1 -1
- package/dist/components/composed/commerce/index.js +9 -9
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
- package/dist/components/composed/dark-surfaces/index.js +6 -6
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.cjs.map +1 -1
- package/dist/components/composed/data-display/index.js +7 -7
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +4 -4
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +2 -2
- 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 +4 -4
- package/dist/components/features/ai-chat/index.cjs +1 -1
- package/dist/components/features/ai-chat/index.cjs.map +1 -1
- package/dist/components/features/ai-chat/index.js +6 -6
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +3 -3
- 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 +9 -9
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +2 -2
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +1 -1
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- 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/suggestions/index.cjs +1 -1
- package/dist/components/features/suggestions/index.js +1 -1
- package/dist/components/features/sync/index.cjs +1 -1
- package/dist/components/features/sync/index.js +2 -2
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +2 -2
- 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/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +3 -2
- package/dist/showcase/assets/AreaChart-CJ57G5Ub.js +6 -0
- package/dist/showcase/assets/CSPContext-BA7DfnCI.js +1 -0
- package/dist/showcase/assets/CompositeItem-PwzgE4va.js +1 -0
- package/dist/showcase/assets/CompositeRoot-Du4CMlK7.js +1 -0
- package/dist/showcase/assets/DialogTrigger-FkENgwo6.js +1 -0
- package/dist/showcase/assets/FormContext-ChygLayp.js +1 -0
- package/dist/showcase/assets/PreviewLayout-z6vpJJGt.js +1 -0
- package/dist/showcase/assets/RadioGroup-CcDmbxOw.js +1 -0
- package/dist/showcase/assets/Separator-Dk4eN76U.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-D_KAA5hZ.js +1 -0
- package/dist/showcase/assets/accordion-dQszzfmw.js +172 -0
- package/dist/showcase/assets/accordion-variants-Dp4wxic-.js +1 -0
- package/dist/showcase/assets/action-menu-CBi2Eiy0.js +1 -0
- package/dist/showcase/assets/activities-DoXsgP4G.js +501 -0
- package/dist/showcase/assets/activities-feed-card-xz5FtkOm.js +1 -0
- package/dist/showcase/assets/admin-CxklUqAG.js +80 -0
- package/dist/showcase/assets/ai-artifact-DkhUdEbM.js +2 -0
- package/dist/showcase/assets/ai-chat-B6PuqkEu.js +568 -0
- package/dist/showcase/assets/ai-elements-D_rpj_ds.js +379 -0
- package/dist/showcase/assets/ai-new-CUPrAbOK.js +167 -0
- package/dist/showcase/assets/ai-tool-call-CEr-dGVx.js +1 -0
- package/dist/showcase/assets/ai-zxF_msJF.js +41 -0
- package/dist/showcase/assets/alert-771BE3Ny.js +59 -0
- package/dist/showcase/assets/alert-CG42DAlX.js +1 -0
- package/dist/showcase/assets/api-key-list-D6jUN7Fq.js +73 -0
- package/dist/showcase/assets/arrow-down-CUoXUyN1.js +1 -0
- package/dist/showcase/assets/arrow-left-Cdq69X6h.js +1 -0
- package/dist/showcase/assets/arrow-right-i25q9L2H.js +1 -0
- package/dist/showcase/assets/arrow-up-pnezegnF.js +1 -0
- package/dist/showcase/assets/arrow-up-right-CK3XnMah.js +1 -0
- package/dist/showcase/assets/avatar-LPmQqZQv.js +1 -0
- package/dist/showcase/assets/avatar-ZVFIQouy.js +57 -0
- package/dist/showcase/assets/badge-DK4bsgZC.js +28 -0
- package/dist/showcase/assets/badge-check-Cw5gkVcG.js +1 -0
- package/dist/showcase/assets/bell-BvJELoaV.js +1 -0
- package/dist/showcase/assets/bot-DRj6sdSR.js +1 -0
- package/dist/showcase/assets/box-BNND3M2m.js +1 -0
- package/dist/showcase/assets/brain-Cy3o-12l.js +1 -0
- package/dist/showcase/assets/brand-DvipEpFn.js +40 -0
- package/dist/showcase/assets/breadcrumb-B-LNuOyv.js +1 -0
- package/dist/showcase/assets/breadcrumb-Lzpc0yo4.js +52 -0
- package/dist/showcase/assets/breadcrumbs-DD6msKFZ.js +1 -0
- package/dist/showcase/assets/briefcase-LcAwoEmu.js +1 -0
- package/dist/showcase/assets/button-CuwcGzk1.js +44 -0
- package/dist/showcase/assets/button-group-CAImjDrl.js +1 -0
- package/dist/showcase/assets/buttons-DTjNHCMl.js +259 -0
- package/dist/showcase/assets/calendar-B1zW0q6I.js +1 -0
- package/dist/showcase/assets/calendar-Dlv72ytt.js +1 -0
- package/dist/showcase/assets/calendar-ls2A08Pn.js +16 -0
- package/dist/showcase/assets/card-BhtkM1BT.js +1 -0
- package/dist/showcase/assets/cards-BRpRXzGk.js +328 -0
- package/dist/showcase/assets/chart-column-BpQkEi1H.js +1 -0
- package/dist/showcase/assets/chevron-down-DyObdfSb.js +1 -0
- package/dist/showcase/assets/chevron-left-T7dHNxYM.js +1 -0
- package/dist/showcase/assets/chevron-right-D_EcqHpT.js +1 -0
- package/dist/showcase/assets/chevron-up-B38ivdGO.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-SdRARzoq.js +1 -0
- package/dist/showcase/assets/circle-BrCPAmDA.js +1 -0
- package/dist/showcase/assets/circle-alert-DdhzLPY_.js +1 -0
- package/dist/showcase/assets/circle-check-DlA6zidQ.js +1 -0
- package/dist/showcase/assets/circle-check-big-DFGJANQF.js +1 -0
- package/dist/showcase/assets/circle-dot-BKmnVUqM.js +1 -0
- package/dist/showcase/assets/circle-question-mark-BNREvgVC.js +1 -0
- package/dist/showcase/assets/circle-x-C45QjHEs.js +1 -0
- package/dist/showcase/assets/clock-D1nKQzQo.js +1 -0
- package/dist/showcase/assets/code-xml-B8N3GRSu.js +1 -0
- package/dist/showcase/assets/collapsible-4TfcWyNs.js +1 -0
- package/dist/showcase/assets/collapsible-CKbZtvTj.js +27 -0
- package/dist/showcase/assets/combobox-DTdGPaU0.js +622 -0
- package/dist/showcase/assets/command-DymTXwL1.js +1 -0
- package/dist/showcase/assets/command-ksVIHQKJ.js +45 -0
- package/dist/showcase/assets/comment-composer-DC9oS1Yy.js +1 -0
- package/dist/showcase/assets/comment-item-CAmKnJa7.js +1 -0
- package/dist/showcase/assets/comments-Benk-2mV.js +349 -0
- package/dist/showcase/assets/commerce-Qz-mq8mQ.js +78 -0
- package/dist/showcase/assets/commerce-extras-CQRc3Bna.js +179 -0
- package/dist/showcase/assets/composite-DBDXLPyz.js +1 -0
- package/dist/showcase/assets/contact-card-DkL2nI3r.js +65 -0
- package/dist/showcase/assets/content-container-mRm6oJEa.js +1 -0
- package/dist/showcase/assets/copyable-DmLlmwzy.js +96 -0
- package/dist/showcase/assets/course-card-CJJoeZj9.js +113 -0
- package/dist/showcase/assets/cpu-BXJnF2Xy.js +1 -0
- package/dist/showcase/assets/credit-card-BQK3KKb2.js +1 -0
- package/dist/showcase/assets/currency-DBPUh8ee.js +149 -0
- package/dist/showcase/assets/dark-surfaces-LpPuIeYy.js +90 -0
- package/dist/showcase/assets/database-BZerpzGE.js +1 -0
- package/dist/showcase/assets/date-block-iiHUpbNX.js +1 -0
- package/dist/showcase/assets/date-picker-BQeBGL7T.js +1 -0
- package/dist/showcase/assets/date-pickers-CKcUEMMF.js +110 -0
- package/dist/showcase/assets/dense-info-DATmxRU8.js +106 -0
- package/dist/showcase/assets/dialog-Bqu5KDYH.js +1 -0
- package/dist/showcase/assets/display-Bj7uPXD4.js +392 -0
- package/dist/showcase/assets/dist-QK7JxeYv.js +1 -0
- package/dist/showcase/assets/dollar-sign-DFZs6vfz.js +1 -0
- package/dist/showcase/assets/download-5oGw_WbW.js +1 -0
- package/dist/showcase/assets/dropdown-menu-1CJgYn0S.js +1 -0
- package/dist/showcase/assets/dropzone-Co1uhsDn.js +1 -0
- package/dist/showcase/assets/ellipsis-cKRcvuyL.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-B1RErEkj.js +1 -0
- package/dist/showcase/assets/empty-Y2-4nCBr.js +1 -0
- package/dist/showcase/assets/empty-item-USa6xcUv.js +49 -0
- package/dist/showcase/assets/empty-state-DfhZ9AT5.js +188 -0
- package/dist/showcase/assets/enhanced-activities-DmAPVUSu.js +359 -0
- package/dist/showcase/assets/esm-BeGQ_ZTM.js +2 -0
- package/dist/showcase/assets/event-calendar-D-jGrrZS.js +138 -0
- package/dist/showcase/assets/event-log-tA_i4eR9.js +326 -0
- package/dist/showcase/assets/example-6phCHGsN.js +1 -0
- package/dist/showcase/assets/external-link-BuVHkCy0.js +1 -0
- package/dist/showcase/assets/eye-DC5HfGm6.js +1 -0
- package/dist/showcase/assets/feature-announcement-DwvxLytd.js +34 -0
- package/dist/showcase/assets/file-D-xM4vLy.js +1 -0
- package/dist/showcase/assets/file-text-tmG5vNbr.js +1 -0
- package/dist/showcase/assets/filters-CrGRXmq6.js +78 -0
- package/dist/showcase/assets/flag-CWrEtkY5.js +1 -0
- package/dist/showcase/assets/folder-open-Br-x1pjP.js +1 -0
- package/dist/showcase/assets/form-sizing-Bb5hiM45.js +1 -0
- package/dist/showcase/assets/format-D_ETCyg4.js +1 -0
- package/dist/showcase/assets/forms-B_MkQ3rm.js +790 -0
- package/dist/showcase/assets/generic-CdmsyXV3.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-CZnCbCFP.js +1 -0
- package/dist/showcase/assets/gift-NkuklfU2.js +1 -0
- package/dist/showcase/assets/giftcard-cards-BAvevZ0i.js +85 -0
- package/dist/showcase/assets/git-branch-B_CBqPeO.js +1 -0
- package/dist/showcase/assets/global-search-D9teAbPe.js +90 -0
- package/dist/showcase/assets/globe-gzw45GU2.js +1 -0
- package/dist/showcase/assets/gradient-card-Xk2r7R5H.js +58 -0
- package/dist/showcase/assets/header-notifications-_aZCpE5A.js +1 -0
- package/dist/showcase/assets/heart-CEMKbRaZ.js +1 -0
- package/dist/showcase/assets/house-BlGXAcMH.js +1 -0
- package/dist/showcase/assets/icon-badge-z6N9reH_.js +1 -0
- package/dist/showcase/assets/image-B8mzmVBr.js +1 -0
- package/dist/showcase/assets/inbox-qdSnP4UV.js +1 -0
- package/dist/showcase/assets/index-B4ubXfly.js +10 -0
- package/dist/showcase/assets/inertValue-D5Q8cLku.js +1 -0
- package/dist/showcase/assets/info-DBvvNjc_.js +1 -0
- package/dist/showcase/assets/inline-stat-Bm1zVT8D.js +1 -0
- package/dist/showcase/assets/input-CBQR0aeX.js +1 -0
- package/dist/showcase/assets/input-OrUzpI55.js +1 -0
- package/dist/showcase/assets/input-group-DhqOen2N.js +47 -0
- package/dist/showcase/assets/input-group-l8xa5nUq.js +1 -0
- package/dist/showcase/assets/inputs-DbiJ0qy2.js +49 -0
- package/dist/showcase/assets/invoice-header-C6youIbL.js +36 -0
- package/dist/showcase/assets/invoice-items-g6dgryF-.js +36 -0
- package/dist/showcase/assets/invoice-mini-0iWhufpt.js +14 -0
- package/dist/showcase/assets/invoice-table-Bvdh3rRq.js +30 -0
- package/dist/showcase/assets/isSameDay-BpZEtJe8.js +1 -0
- package/dist/showcase/assets/isToday-F0CS28oK.js +1 -0
- package/dist/showcase/assets/italic-CJOEwjdc.js +1 -0
- package/dist/showcase/assets/item-BiMm1PPB.js +1 -0
- package/dist/showcase/assets/item-CN0cwdj_.js +1 -0
- package/dist/showcase/assets/item-DNqEUYLT.js +117 -0
- package/dist/showcase/assets/kanban-DxePEUiQ.js +175 -0
- package/dist/showcase/assets/label-Dx4WO-fg.js +1 -0
- package/dist/showcase/assets/layout-containers-DDl8rG8S.js +96 -0
- package/dist/showcase/assets/layout-header-Bu6IcDWu.js +170 -0
- package/dist/showcase/assets/layout-page-D-88Qnoy.js +122 -0
- package/dist/showcase/assets/layout-sidebar-Ctft10pk.js +224 -0
- package/dist/showcase/assets/layout-users-DtbZduBG.js +104 -0
- package/dist/showcase/assets/lib-D9BoOYUd.js +1 -0
- package/dist/showcase/assets/lock-CHurDI0n.js +1 -0
- package/dist/showcase/assets/mail-DZ1o1RLW.js +1 -0
- package/dist/showcase/assets/map-C8xiyT9X.js +124 -0
- package/dist/showcase/assets/map-pin-CAKaoYod.js +1 -0
- package/dist/showcase/assets/menus-C6mnp636.js +89 -0
- package/dist/showcase/assets/message-square-Zo5J_zU1.js +1 -0
- package/dist/showcase/assets/metadata-list-W83-UMhc.js +278 -0
- package/dist/showcase/assets/metric-BSvxidIX.js +1 -0
- package/dist/showcase/assets/metric-grid-Dtqx_3Lg.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-mtvcJ_M9.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-DQbyss7i.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CEBu5Uw0.js +77 -0
- package/dist/showcase/assets/metrics-comparison-Bs-R6v4y.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-BKHWH8sM.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-BxVn0Y2p.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DtACYEds.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-BkwUGOUR.js +42 -0
- package/dist/showcase/assets/metrics-overview-BAtrlzsI.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-iCRCNyHY.js +54 -0
- package/dist/showcase/assets/minus-C6eBW-2t.js +1 -0
- package/dist/showcase/assets/money-display-DjGRJ16l.js +1 -0
- package/dist/showcase/assets/month-year-picker-DTDebPqf.js +1 -0
- package/dist/showcase/assets/navigation-BrG8Chig.js +86 -0
- package/dist/showcase/assets/navigation-CfXQJbyM.js +230 -0
- package/dist/showcase/assets/navigation-extras-D_gzLlZ5.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-1EerUwAo.js +119 -0
- package/dist/showcase/assets/overlays-2AB9-S1Z.js +88 -0
- package/dist/showcase/assets/overlays-CYt9o3Xq.js +393 -0
- package/dist/showcase/assets/package-BJMP-Fcr.js +1 -0
- package/dist/showcase/assets/page-action-button-BZxJ0X1j.js +1 -0
- package/dist/showcase/assets/page-header-B_rqHJhe.js +1 -0
- package/dist/showcase/assets/pagination-BHiQvvka.js +1 -0
- package/dist/showcase/assets/pagination-Dq0GruQd.js +42 -0
- package/dist/showcase/assets/paperclip-BMYKrUQo.js +1 -0
- package/dist/showcase/assets/pencil-BJ3VS_FO.js +1 -0
- package/dist/showcase/assets/phone-CsRIyvep.js +1 -0
- package/dist/showcase/assets/plus-D2JuXYLg.js +1 -0
- package/dist/showcase/assets/popover-DNT9755r.js +1 -0
- package/dist/showcase/assets/popover-KvGgcPNg.js +1 -0
- package/dist/showcase/assets/popover-menu-CJx30R65.js +1 -0
- package/dist/showcase/assets/progress-B7WuXcJR.js +1 -0
- package/dist/showcase/assets/progress-CweCSAUv.js +18 -0
- package/dist/showcase/assets/props-table-uDY4eIzt.js +1 -0
- package/dist/showcase/assets/quote-DAyyfzQd.js +1 -0
- package/dist/showcase/assets/receipt-C0mMZGbF.js +1 -0
- package/dist/showcase/assets/refresh-cw-X06JbXb-.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-Bks7UDko.js +1 -0
- package/dist/showcase/assets/rich-text-editor-QJsb-qIe.js +124 -0
- package/dist/showcase/assets/rich-text-editor-h07VBNI9.js +141 -0
- package/dist/showcase/assets/rotate-ccw-D84bdX_x.js +1 -0
- package/dist/showcase/assets/scroll-area-0rT06pXZ.js +1 -0
- package/dist/showcase/assets/scroll-area-YXwdzGpN.js +32 -0
- package/dist/showcase/assets/select-BoWQDtUf.js +1 -0
- package/dist/showcase/assets/send-DJsk3cr1.js +1 -0
- package/dist/showcase/assets/separator-CLSnRcJa.js +28 -0
- package/dist/showcase/assets/separator-DWv-twD-.js +1 -0
- package/dist/showcase/assets/settings-Cb2MsAmN.js +1 -0
- package/dist/showcase/assets/sheet-Dn1-MYus.js +1 -0
- package/dist/showcase/assets/shield-DwLjF5ch.js +1 -0
- package/dist/showcase/assets/shield-alert-D8i6gzMK.js +1 -0
- package/dist/showcase/assets/shield-check-D5YRSBIz.js +1 -0
- package/dist/showcase/assets/shopping-bag-BqlAP4vn.js +1 -0
- package/dist/showcase/assets/sidebar.context-BAp_pBEB.js +1 -0
- package/dist/showcase/assets/skeleton-CeNPp4hr.js +1 -0
- package/dist/showcase/assets/skeleton-QPsnM_NR.js +29 -0
- package/dist/showcase/assets/smart-card-BisUbLPt.js +1 -0
- package/dist/showcase/assets/sonner-B7GzbBK2.js +22 -0
- package/dist/showcase/assets/sortable.esm-BDcEOHT7.js +5 -0
- package/dist/showcase/assets/sparkles-CF9P5Tqh.js +1 -0
- package/dist/showcase/assets/spinner-BeamEyJd.js +49 -0
- package/dist/showcase/assets/spinner-DoYBfalR.js +1 -0
- package/dist/showcase/assets/spinner-UsLsOYzn.js +30 -0
- package/dist/showcase/assets/square-pen-BGTVdnt1.js +1 -0
- package/dist/showcase/assets/stacked-avatars-BWfVX1Ov.js +1 -0
- package/dist/showcase/assets/star-NsPNO9gR.js +1 -0
- package/dist/showcase/assets/startOfDay-zJBpxLuW.js +1 -0
- package/dist/showcase/assets/styles-DA7a7hVy.js +1 -0
- package/dist/showcase/assets/switch-C62S4U2o.js +1 -0
- package/dist/showcase/assets/switch-CYQcinJZ.js +1 -0
- package/dist/showcase/assets/table-w4IABkpa.js +1 -0
- package/dist/showcase/assets/table-xgB63UrY.js +390 -0
- package/dist/showcase/assets/tabs-BFTEaTXj.js +19 -0
- package/dist/showcase/assets/tabs-oMJn9Ujq.js +1 -0
- package/dist/showcase/assets/text-button-BgcutPuu.js +1 -0
- package/dist/showcase/assets/text-link-CS9thOWL.js +1 -0
- package/dist/showcase/assets/textarea-BOBx4EM6.js +1 -0
- package/dist/showcase/assets/textarea-CTzYZZqa.js +1 -0
- package/dist/showcase/assets/timelines-CK07mEBK.js +186 -0
- package/dist/showcase/assets/toggle-group-CSPdPT6G.js +1 -0
- package/dist/showcase/assets/toggles-DDSdl-gA.js +71 -0
- package/dist/showcase/assets/toggles-group-Y2BdKEFB.js +32 -0
- package/dist/showcase/assets/trash-2-C-FAptQP.js +1 -0
- package/dist/showcase/assets/trending-up-BmLhdF_w.js +1 -0
- package/dist/showcase/assets/truck-pZdUS_as.js +1 -0
- package/dist/showcase/assets/typography-CnBH2z7f.js +214 -0
- package/dist/showcase/assets/ui-badge-Cl6INRO5.js +28 -0
- package/dist/showcase/assets/ui-card-B5P-thNu.js +30 -0
- package/dist/showcase/assets/ui-table-B32RILKk.js +42 -0
- package/dist/showcase/assets/upload-tray-mu6bR2ZE.js +138 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CzDaXxmM.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-B0DZvDFu.js +1 -0
- package/dist/showcase/assets/useCompositeItem-BVIVLT9X.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-JEMeTFPx.js +1 -0
- package/dist/showcase/assets/useControlled-ZjqBfPCn.js +1 -0
- package/dist/showcase/assets/useLabelableId-D8CZq8Bm.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-CopGCf3q.js +1 -0
- package/dist/showcase/assets/useRender-zuKv6JQF.js +1 -0
- package/dist/showcase/assets/useRole-08KeyiD3.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-DEuz5CGe.js +1 -0
- package/dist/showcase/assets/useValueChanged-BxFi_qyj.js +1 -0
- package/dist/showcase/assets/user-Bgc2t2_e.js +1 -0
- package/dist/showcase/assets/user-plus-F_TfagnP.js +1 -0
- package/dist/showcase/assets/users-B7G4yTCR.js +1 -0
- package/dist/showcase/assets/vendor-profile-BTQmsKM6.js +37 -0
- package/dist/showcase/assets/wrench-BdzICmjR.js +1 -0
- package/dist/showcase/assets/x-B156Wr-5.js +1 -0
- package/dist/showcase/assets/zap-B3iByjNV.js +1 -0
- package/dist/showcase/index.html +1 -1
- package/package.json +254 -19
- package/dist/_shared/accordion-7rwpgJ1k.cjs +0 -2
- package/dist/_shared/accordion-7rwpgJ1k.cjs.map +0 -1
- package/dist/_shared/accordion-DcduCEIo.js +0 -130
- package/dist/_shared/accordion-DcduCEIo.js.map +0 -1
- package/dist/_shared/action-menu-D0u-q0q-.cjs +0 -2
- package/dist/_shared/action-menu-D0u-q0q-.cjs.map +0 -1
- package/dist/_shared/action-menu-DUBXdReV.js +0 -96
- package/dist/_shared/action-menu-DUBXdReV.js.map +0 -1
- package/dist/_shared/ai-artifact-C3R0god0.cjs +0 -3
- package/dist/_shared/ai-artifact-C3R0god0.cjs.map +0 -1
- package/dist/_shared/ai-artifact-DMjQv_Si.js +0 -1068
- package/dist/_shared/ai-artifact-DMjQv_Si.js.map +0 -1
- package/dist/_shared/alert-B2cuJGAA.cjs +0 -2
- package/dist/_shared/alert-B2cuJGAA.cjs.map +0 -1
- package/dist/_shared/alert-BKUmOI2e.js +0 -48
- package/dist/_shared/alert-BKUmOI2e.js.map +0 -1
- package/dist/_shared/avatar-BcYcRORH.cjs +0 -2
- package/dist/_shared/avatar-BcYcRORH.cjs.map +0 -1
- package/dist/_shared/avatar-CNzG6jSZ.js +0 -52
- package/dist/_shared/avatar-CNzG6jSZ.js.map +0 -1
- package/dist/_shared/badge-BbUN6W7E.js +0 -108
- package/dist/_shared/badge-BbUN6W7E.js.map +0 -1
- package/dist/_shared/badge-BjtDcU1M.cjs +0 -2
- package/dist/_shared/badge-BjtDcU1M.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-DctwTld5.js +0 -111
- package/dist/_shared/breadcrumbs-DctwTld5.js.map +0 -1
- package/dist/_shared/breadcrumbs-m0-gCdNj.cjs +0 -2
- package/dist/_shared/breadcrumbs-m0-gCdNj.cjs.map +0 -1
- package/dist/_shared/button-BCABTFLE.js +0 -46
- package/dist/_shared/button-BCABTFLE.js.map +0 -1
- package/dist/_shared/button-Ck2qS42n.js +0 -176
- package/dist/_shared/button-Ck2qS42n.js.map +0 -1
- package/dist/_shared/button-DjJ-mDI1.cjs +0 -2
- package/dist/_shared/button-DjJ-mDI1.cjs.map +0 -1
- package/dist/_shared/button-DjacsNTg.cjs +0 -2
- package/dist/_shared/button-DjacsNTg.cjs.map +0 -1
- package/dist/_shared/buttons-BVnjQ-uE.js +0 -143
- package/dist/_shared/buttons-BVnjQ-uE.js.map +0 -1
- package/dist/_shared/buttons-BdY6igTr.cjs +0 -2
- package/dist/_shared/buttons-BdY6igTr.cjs.map +0 -1
- package/dist/_shared/card-radio-group--GP1xrz_.js +0 -158
- package/dist/_shared/card-radio-group--GP1xrz_.js.map +0 -1
- package/dist/_shared/card-radio-group-DnQsWozr.cjs +0 -2
- package/dist/_shared/card-radio-group-DnQsWozr.cjs.map +0 -1
- package/dist/_shared/combobox-DBrRE1Dr.cjs +0 -2
- package/dist/_shared/combobox-DBrRE1Dr.cjs.map +0 -1
- package/dist/_shared/combobox-DYztEJaw.js +0 -746
- package/dist/_shared/combobox-DYztEJaw.js.map +0 -1
- package/dist/_shared/command-COvgXQ8r.cjs +0 -2
- package/dist/_shared/command-COvgXQ8r.cjs.map +0 -1
- package/dist/_shared/command-CvZ6Emb8.js +0 -39
- package/dist/_shared/command-CvZ6Emb8.js.map +0 -1
- package/dist/_shared/command-DTFQIUVG.cjs +0 -2
- package/dist/_shared/command-DTFQIUVG.cjs.map +0 -1
- package/dist/_shared/command-Sq8XbHbA.js +0 -123
- package/dist/_shared/command-Sq8XbHbA.js.map +0 -1
- package/dist/_shared/comments-BOFU1GYY.js +0 -945
- package/dist/_shared/comments-BOFU1GYY.js.map +0 -1
- package/dist/_shared/comments-BbTYFzx6.cjs +0 -2
- package/dist/_shared/comments-BbTYFzx6.cjs.map +0 -1
- package/dist/_shared/containers-BthqdOhA.cjs +0 -2
- package/dist/_shared/containers-BthqdOhA.cjs.map +0 -1
- package/dist/_shared/containers-CD2xs1nk.js +0 -19
- package/dist/_shared/containers-CD2xs1nk.js.map +0 -1
- package/dist/_shared/content-container-CFfYbWoa.js +0 -33
- package/dist/_shared/content-container-CFfYbWoa.js.map +0 -1
- package/dist/_shared/content-container-CReiVugL.cjs +0 -2
- package/dist/_shared/content-container-CReiVugL.cjs.map +0 -1
- package/dist/_shared/copyable-CweQ72QI.cjs +0 -2
- package/dist/_shared/copyable-CweQ72QI.cjs.map +0 -1
- package/dist/_shared/copyable-JgsTp6ev.js +0 -38
- package/dist/_shared/copyable-JgsTp6ev.js.map +0 -1
- package/dist/_shared/date-picker-DI4b-SeE.cjs +0 -2
- package/dist/_shared/date-picker-DI4b-SeE.cjs.map +0 -1
- package/dist/_shared/date-picker-DTazvODY.js +0 -1352
- package/dist/_shared/date-picker-DTazvODY.js.map +0 -1
- package/dist/_shared/date-pickers-CLzuzmuc.cjs +0 -2
- package/dist/_shared/date-pickers-CLzuzmuc.cjs.map +0 -1
- package/dist/_shared/date-pickers-CWPxP3zy.js +0 -330
- package/dist/_shared/date-pickers-CWPxP3zy.js.map +0 -1
- package/dist/_shared/dialog-2MJmaj_d.js +0 -101
- package/dist/_shared/dialog-2MJmaj_d.js.map +0 -1
- package/dist/_shared/dialog-KKD0i1T8.cjs +0 -2
- package/dist/_shared/dialog-KKD0i1T8.cjs.map +0 -1
- package/dist/_shared/display-BCy1Ti7T.cjs +0 -8
- package/dist/_shared/display-BCy1Ti7T.cjs.map +0 -1
- package/dist/_shared/display-DUpkE2aS.js +0 -1462
- package/dist/_shared/display-DUpkE2aS.js.map +0 -1
- package/dist/_shared/dropdown-menu-BebBffUH.cjs +0 -2
- package/dist/_shared/dropdown-menu-BebBffUH.cjs.map +0 -1
- package/dist/_shared/dropdown-menu-xdGEynC8.js +0 -147
- package/dist/_shared/dropdown-menu-xdGEynC8.js.map +0 -1
- package/dist/_shared/form-field-rOj3cm6C.js +0 -319
- package/dist/_shared/form-field-rOj3cm6C.js.map +0 -1
- package/dist/_shared/form-field-rcyIIHjR.cjs +0 -2
- package/dist/_shared/form-field-rcyIIHjR.cjs.map +0 -1
- package/dist/_shared/form-sizing--bs_xPe2.cjs +0 -2
- package/dist/_shared/form-sizing--bs_xPe2.cjs.map +0 -1
- package/dist/_shared/form-sizing-CkKcs5fi.js +0 -21
- package/dist/_shared/form-sizing-CkKcs5fi.js.map +0 -1
- package/dist/_shared/format-BlVEsPyT.js +0 -48
- package/dist/_shared/format-BlVEsPyT.js.map +0 -1
- package/dist/_shared/format-DYVtSA2I.cjs +0 -2
- package/dist/_shared/format-DYVtSA2I.cjs.map +0 -1
- package/dist/_shared/forms-BAVsxxRk.js +0 -3374
- package/dist/_shared/forms-BAVsxxRk.js.map +0 -1
- package/dist/_shared/forms-DaZ3LsYc.cjs +0 -2
- package/dist/_shared/forms-DaZ3LsYc.cjs.map +0 -1
- package/dist/_shared/header-BtTMsQ5P.cjs +0 -2
- package/dist/_shared/header-BtTMsQ5P.cjs.map +0 -1
- package/dist/_shared/header-DpW4UWV6.js +0 -369
- package/dist/_shared/header-DpW4UWV6.js.map +0 -1
- package/dist/_shared/hooks-Bsm917yh.cjs +0 -2
- package/dist/_shared/hooks-Bsm917yh.cjs.map +0 -1
- package/dist/_shared/hooks-CX-SICd4.js +0 -118
- package/dist/_shared/hooks-CX-SICd4.js.map +0 -1
- package/dist/_shared/icon-badge-DGKpbo9_.cjs +0 -2
- package/dist/_shared/icon-badge-DGKpbo9_.cjs.map +0 -1
- package/dist/_shared/icon-badge-DoClA_9q.js +0 -52
- package/dist/_shared/icon-badge-DoClA_9q.js.map +0 -1
- package/dist/_shared/input-BXt-YtVs.cjs +0 -2
- package/dist/_shared/input-BXt-YtVs.cjs.map +0 -1
- package/dist/_shared/input-Bx4LeLhn.js +0 -17
- package/dist/_shared/input-Bx4LeLhn.js.map +0 -1
- package/dist/_shared/input-ChZGIhtS.cjs +0 -2
- package/dist/_shared/input-ChZGIhtS.cjs.map +0 -1
- package/dist/_shared/input-Cwv1-5jt.js +0 -182
- package/dist/_shared/input-Cwv1-5jt.js.map +0 -1
- package/dist/_shared/item-BmTYKzEb.js +0 -224
- package/dist/_shared/item-BmTYKzEb.js.map +0 -1
- package/dist/_shared/item-BtR-bz96.cjs +0 -2
- package/dist/_shared/item-BtR-bz96.cjs.map +0 -1
- package/dist/_shared/mentions-DVCjaO_z.cjs +0 -2
- package/dist/_shared/mentions-DVCjaO_z.cjs.map +0 -1
- package/dist/_shared/mentions-DzG8mX5H.js +0 -493
- package/dist/_shared/mentions-DzG8mX5H.js.map +0 -1
- package/dist/_shared/money-display-B5oxCs_0.cjs +0 -2
- package/dist/_shared/money-display-B5oxCs_0.cjs.map +0 -1
- package/dist/_shared/money-display-C0wI02ou.js +0 -198
- package/dist/_shared/money-display-C0wI02ou.js.map +0 -1
- package/dist/_shared/navigation-BA2nsTgU.cjs +0 -2
- package/dist/_shared/navigation-BA2nsTgU.cjs.map +0 -1
- package/dist/_shared/navigation-DHyaf-RZ.js +0 -420
- package/dist/_shared/navigation-DHyaf-RZ.js.map +0 -1
- package/dist/_shared/overlays-Kl6Gp6WR.js +0 -633
- package/dist/_shared/overlays-Kl6Gp6WR.js.map +0 -1
- package/dist/_shared/overlays-W6j-Pe1L.cjs +0 -2
- package/dist/_shared/overlays-W6j-Pe1L.cjs.map +0 -1
- package/dist/_shared/page-DROZhtWT.js +0 -263
- package/dist/_shared/page-DROZhtWT.js.map +0 -1
- package/dist/_shared/page-lh9Rcx_d.cjs +0 -2
- package/dist/_shared/page-lh9Rcx_d.cjs.map +0 -1
- package/dist/_shared/popover-BTEwjJZS.cjs +0 -2
- package/dist/_shared/popover-BTEwjJZS.cjs.map +0 -1
- package/dist/_shared/popover-CF9VWt-l.js +0 -83
- package/dist/_shared/popover-CF9VWt-l.js.map +0 -1
- package/dist/_shared/popover-menu-BYesl29w.js +0 -95
- package/dist/_shared/popover-menu-BYesl29w.js.map +0 -1
- package/dist/_shared/popover-menu-DF9sWz61.cjs +0 -2
- package/dist/_shared/popover-menu-DF9sWz61.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-UZghkgsh.cjs +0 -2
- package/dist/_shared/rich-text-editor-UZghkgsh.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-fUeuK-rY.js +0 -608
- package/dist/_shared/rich-text-editor-fUeuK-rY.js.map +0 -1
- package/dist/_shared/scroll-area-XJLcCczs.js +0 -41
- package/dist/_shared/scroll-area-XJLcCczs.js.map +0 -1
- package/dist/_shared/scroll-area-y8ZJoS97.cjs +0 -2
- package/dist/_shared/scroll-area-y8ZJoS97.cjs.map +0 -1
- package/dist/_shared/select-D8MYF4f7.js +0 -85
- package/dist/_shared/select-D8MYF4f7.js.map +0 -1
- package/dist/_shared/select-DxAiUfpM.cjs +0 -2
- package/dist/_shared/select-DxAiUfpM.cjs.map +0 -1
- package/dist/_shared/separator-BazqiQ9s.js +0 -16
- package/dist/_shared/separator-BazqiQ9s.js.map +0 -1
- package/dist/_shared/separator-DSkXMOXq.cjs +0 -2
- package/dist/_shared/separator-DSkXMOXq.cjs.map +0 -1
- package/dist/_shared/sheet-7iHOs-IU.js +0 -100
- package/dist/_shared/sheet-7iHOs-IU.js.map +0 -1
- package/dist/_shared/sheet-qKtoyxgi.cjs +0 -2
- package/dist/_shared/sheet-qKtoyxgi.cjs.map +0 -1
- package/dist/_shared/sidebar-CaTUJ3t-.js +0 -537
- package/dist/_shared/sidebar-CaTUJ3t-.js.map +0 -1
- package/dist/_shared/sidebar-DVjfsm-f.cjs +0 -2
- package/dist/_shared/sidebar-DVjfsm-f.cjs.map +0 -1
- package/dist/_shared/sidebar-aV5DVAVg.js +0 -371
- package/dist/_shared/sidebar-aV5DVAVg.js.map +0 -1
- package/dist/_shared/sidebar-mL0jSJ8u.cjs +0 -2
- package/dist/_shared/sidebar-mL0jSJ8u.cjs.map +0 -1
- package/dist/_shared/skeleton-Bwv_j9jJ.cjs +0 -2
- package/dist/_shared/skeleton-Bwv_j9jJ.cjs.map +0 -1
- package/dist/_shared/skeleton-DyKa-Ed-.js +0 -14
- package/dist/_shared/skeleton-DyKa-Ed-.js.map +0 -1
- package/dist/_shared/slot-ClIPTht1.cjs +0 -2
- package/dist/_shared/slot-ClIPTht1.cjs.map +0 -1
- package/dist/_shared/slot-CrS_VEVl.js +0 -18
- package/dist/_shared/slot-CrS_VEVl.js.map +0 -1
- package/dist/_shared/smart-card-Ddsjvf7r.cjs +0 -2
- package/dist/_shared/smart-card-Ddsjvf7r.cjs.map +0 -1
- package/dist/_shared/smart-card-hJ01usWt.js +0 -360
- package/dist/_shared/smart-card-hJ01usWt.js.map +0 -1
- package/dist/_shared/spinner-D-pcMBt1.js +0 -67
- package/dist/_shared/spinner-D-pcMBt1.js.map +0 -1
- package/dist/_shared/spinner-zbmhn0vE.cjs +0 -2
- package/dist/_shared/spinner-zbmhn0vE.cjs.map +0 -1
- package/dist/_shared/switch-C5J37LMI.cjs +0 -2
- package/dist/_shared/switch-C5J37LMI.cjs.map +0 -1
- package/dist/_shared/switch-ClGgHcEb.js +0 -51
- package/dist/_shared/switch-ClGgHcEb.js.map +0 -1
- package/dist/_shared/textarea-DeISZfHw.js +0 -119
- package/dist/_shared/textarea-DeISZfHw.js.map +0 -1
- package/dist/_shared/textarea-iR9txrty.cjs +0 -2
- package/dist/_shared/textarea-iR9txrty.cjs.map +0 -1
- package/dist/_shared/tooltip-CEqxHWxQ.js +0 -49
- package/dist/_shared/tooltip-CEqxHWxQ.js.map +0 -1
- package/dist/_shared/tooltip-DPv0LGr9.cjs +0 -2
- package/dist/_shared/tooltip-DPv0LGr9.cjs.map +0 -1
- package/dist/_shared/typography-BtPQBvSm.js +0 -135
- package/dist/_shared/typography-BtPQBvSm.js.map +0 -1
- package/dist/_shared/typography-DClleVWi.cjs +0 -2
- package/dist/_shared/typography-DClleVWi.cjs.map +0 -1
- package/dist/showcase/assets/AreaChart-D-RqNtqG.js +0 -6
- package/dist/showcase/assets/CSPContext-t69BXyB7.js +0 -1
- package/dist/showcase/assets/CompositeItem-DHNLgEeV.js +0 -1
- package/dist/showcase/assets/CompositeRoot-xq_0ZFev.js +0 -1
- package/dist/showcase/assets/DialogTrigger-Cl7n_3xX.js +0 -1
- package/dist/showcase/assets/FormContext-CXdwDz7F.js +0 -1
- package/dist/showcase/assets/PreviewLayout-BHemtKEf.js +0 -1
- package/dist/showcase/assets/RadioGroup-DXAt4VZN.js +0 -1
- package/dist/showcase/assets/Separator-C9vXwWmZ.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-iF4ctnIz.js +0 -1
- package/dist/showcase/assets/accordion-DzkNgNcB.js +0 -172
- package/dist/showcase/assets/accordion-variants-DP5-oxLe.js +0 -1
- package/dist/showcase/assets/action-menu-CyA2e9TF.js +0 -1
- package/dist/showcase/assets/activities-Dt-dO5ew.js +0 -501
- package/dist/showcase/assets/activities-feed-card-DZdFekXl.js +0 -1
- package/dist/showcase/assets/admin-C2SeJmE7.js +0 -80
- package/dist/showcase/assets/ai-Cwo0h_Xn.js +0 -41
- package/dist/showcase/assets/ai-artifact-3UJofyU5.js +0 -2
- package/dist/showcase/assets/ai-chat-CrFtG_Vg.js +0 -568
- package/dist/showcase/assets/ai-elements-iJ15Y7pS.js +0 -379
- package/dist/showcase/assets/ai-new-DuznZydd.js +0 -167
- package/dist/showcase/assets/ai-tool-call-CTcGGAQU.js +0 -1
- package/dist/showcase/assets/alert-CUGGckOX.js +0 -1
- package/dist/showcase/assets/alert-tWped3Sw.js +0 -59
- package/dist/showcase/assets/api-key-list-Q5LAqzMn.js +0 -73
- package/dist/showcase/assets/arrow-down-CfwCPcHL.js +0 -1
- package/dist/showcase/assets/arrow-left-BKx9qNX6.js +0 -1
- package/dist/showcase/assets/arrow-right-DlEpbqEk.js +0 -1
- package/dist/showcase/assets/arrow-up-BYQ4F9L1.js +0 -1
- package/dist/showcase/assets/arrow-up-right-C8r6vYfE.js +0 -1
- package/dist/showcase/assets/avatar-BuZ3zTbH.js +0 -57
- package/dist/showcase/assets/avatar-DR2mqPpY.js +0 -1
- package/dist/showcase/assets/badge-D1HLfP93.js +0 -28
- package/dist/showcase/assets/badge-check-oP2z_95u.js +0 -1
- package/dist/showcase/assets/bell-BTX2D-ES.js +0 -1
- package/dist/showcase/assets/bot-CKh5XgUG.js +0 -1
- package/dist/showcase/assets/box-F1uaZ6iw.js +0 -1
- package/dist/showcase/assets/brain-dD_ppLUa.js +0 -1
- package/dist/showcase/assets/brand-zisZOFKf.js +0 -40
- package/dist/showcase/assets/breadcrumb-C7vv0L8K.js +0 -52
- package/dist/showcase/assets/breadcrumb-fay5sLba.js +0 -1
- package/dist/showcase/assets/breadcrumbs-DklRXepp.js +0 -1
- package/dist/showcase/assets/briefcase-D9M4aNmi.js +0 -1
- package/dist/showcase/assets/button-DbhXfR1N.js +0 -44
- package/dist/showcase/assets/button-group-BpdhyMif.js +0 -1
- package/dist/showcase/assets/buttons-XexbmUtN.js +0 -259
- package/dist/showcase/assets/calendar-BADJgjpI.js +0 -16
- package/dist/showcase/assets/calendar-Djh3xLVx.js +0 -1
- package/dist/showcase/assets/calendar-dWZ2-0gU.js +0 -1
- package/dist/showcase/assets/card-BUSAPPkx.js +0 -1
- package/dist/showcase/assets/cards-DHBPe01w.js +0 -328
- package/dist/showcase/assets/chart-column-6l5wIZ0h.js +0 -1
- package/dist/showcase/assets/chevron-down-at2vrt1V.js +0 -1
- package/dist/showcase/assets/chevron-left-DIs3WYNO.js +0 -1
- package/dist/showcase/assets/chevron-right-BNy0Or0x.js +0 -1
- package/dist/showcase/assets/chevron-up-CX7619BJ.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-Be6eciau.js +0 -1
- package/dist/showcase/assets/circle-C0Yd1DDS.js +0 -1
- package/dist/showcase/assets/circle-alert-DfQp_X3_.js +0 -1
- package/dist/showcase/assets/circle-check-BkqQe1tv.js +0 -1
- package/dist/showcase/assets/circle-check-big-BXxHUhuc.js +0 -1
- package/dist/showcase/assets/circle-dot-HeRgxZxN.js +0 -1
- package/dist/showcase/assets/circle-question-mark-BgS4fb6N.js +0 -1
- package/dist/showcase/assets/circle-x-CMzwDsaf.js +0 -1
- package/dist/showcase/assets/clock-ynCzs_rR.js +0 -1
- package/dist/showcase/assets/code-xml-B8aVstrJ.js +0 -1
- package/dist/showcase/assets/collapsible-C8CKdiRn.js +0 -27
- package/dist/showcase/assets/collapsible-u43HxDHB.js +0 -1
- package/dist/showcase/assets/combobox-D-6ff0VG.js +0 -622
- package/dist/showcase/assets/command-BsHudlBe.js +0 -1
- package/dist/showcase/assets/command-DZqmBolX.js +0 -45
- package/dist/showcase/assets/comment-composer-OnxlkC5y.js +0 -1
- package/dist/showcase/assets/comment-item-DmZ1AJ2Y.js +0 -1
- package/dist/showcase/assets/comments-BjIVksjE.js +0 -349
- package/dist/showcase/assets/commerce-3T1GxvrA.js +0 -78
- package/dist/showcase/assets/commerce-extras-CYv_uRQR.js +0 -179
- package/dist/showcase/assets/composite-mol0-2zZ.js +0 -1
- package/dist/showcase/assets/contact-card-CWAANJqn.js +0 -65
- package/dist/showcase/assets/content-container-D3Phw6h8.js +0 -1
- package/dist/showcase/assets/copyable-BdzUH3U3.js +0 -96
- package/dist/showcase/assets/course-card-Cb6Y2vJ6.js +0 -113
- package/dist/showcase/assets/cpu-CRrekbGQ.js +0 -1
- package/dist/showcase/assets/credit-card--5vg7bQy.js +0 -1
- package/dist/showcase/assets/currency-VuqnKj_Y.js +0 -149
- package/dist/showcase/assets/dark-surfaces-DEyBimFz.js +0 -90
- package/dist/showcase/assets/database-Bnvw0wVV.js +0 -1
- package/dist/showcase/assets/date-block-IhoCVl_d.js +0 -1
- package/dist/showcase/assets/date-picker-DnJpsnaF.js +0 -1
- package/dist/showcase/assets/date-pickers-CEbieq-R.js +0 -110
- package/dist/showcase/assets/dense-info-B04QmrOd.js +0 -106
- package/dist/showcase/assets/dialog-DotEO3IO.js +0 -1
- package/dist/showcase/assets/display-hK7Dtm-B.js +0 -392
- package/dist/showcase/assets/dist-DQgGKvzA.js +0 -1
- package/dist/showcase/assets/dollar-sign-gJtl-XaL.js +0 -1
- package/dist/showcase/assets/download-CMrNgeil.js +0 -1
- package/dist/showcase/assets/dropdown-menu-Cqv6D7Sb.js +0 -1
- package/dist/showcase/assets/dropzone-v69fWHZJ.js +0 -1
- package/dist/showcase/assets/ellipsis-CgqPlt6Z.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-CiJqC0n2.js +0 -1
- package/dist/showcase/assets/empty-DYHzk-Gb.js +0 -1
- package/dist/showcase/assets/empty-item-CTwvC_3M.js +0 -49
- package/dist/showcase/assets/empty-state-eUgJ4h41.js +0 -188
- package/dist/showcase/assets/enhanced-activities-XU2u5gO6.js +0 -359
- package/dist/showcase/assets/esm-B7xAMXnv.js +0 -2
- package/dist/showcase/assets/event-calendar-D2rjpzq1.js +0 -138
- package/dist/showcase/assets/event-log-BxER62Ds.js +0 -326
- package/dist/showcase/assets/example-DPfw-R7_.js +0 -1
- package/dist/showcase/assets/external-link-DJNGkjZ0.js +0 -1
- package/dist/showcase/assets/eye-BQU3UqWi.js +0 -1
- package/dist/showcase/assets/feature-announcement-CjGQEODB.js +0 -34
- package/dist/showcase/assets/file-DBpbC8g-.js +0 -1
- package/dist/showcase/assets/file-text-DokBif5V.js +0 -1
- package/dist/showcase/assets/filters-DM2olMKy.js +0 -78
- package/dist/showcase/assets/flag-hAuZbHU1.js +0 -1
- package/dist/showcase/assets/folder-open-DqubQ0ts.js +0 -1
- package/dist/showcase/assets/form-sizing-CfbZF8Ja.js +0 -1
- package/dist/showcase/assets/format-gCABLair.js +0 -1
- package/dist/showcase/assets/forms-FsAT0C-I.js +0 -790
- package/dist/showcase/assets/generic-BUuo7j09.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-l8uxcPNL.js +0 -1
- package/dist/showcase/assets/gift-CS7Tg3kD.js +0 -1
- package/dist/showcase/assets/giftcard-cards-h1ffLs9F.js +0 -85
- package/dist/showcase/assets/git-branch-D4-6vv6t.js +0 -1
- package/dist/showcase/assets/global-search-BUyhhsQv.js +0 -90
- package/dist/showcase/assets/globe-CqLYhUfl.js +0 -1
- package/dist/showcase/assets/gradient-card-Bwr9OLIL.js +0 -58
- package/dist/showcase/assets/header-notifications-BWla1yhM.js +0 -1
- package/dist/showcase/assets/heart-DfZtXfIP.js +0 -1
- package/dist/showcase/assets/house-DhIReDt8.js +0 -1
- package/dist/showcase/assets/icon-badge-BgRFYZEc.js +0 -1
- package/dist/showcase/assets/image-D_eNEZWQ.js +0 -1
- package/dist/showcase/assets/inbox-5sFkO7gC.js +0 -1
- package/dist/showcase/assets/index-B-Z7p0So.js +0 -10
- package/dist/showcase/assets/inertValue-NU_Amr-x.js +0 -1
- package/dist/showcase/assets/info-DyB6KH3Z.js +0 -1
- package/dist/showcase/assets/inline-stat-D2aaM1Vt.js +0 -1
- package/dist/showcase/assets/input-BS64kyoq.js +0 -1
- package/dist/showcase/assets/input-DWLyniGt.js +0 -1
- package/dist/showcase/assets/input-group-BS8j5Eek.js +0 -47
- package/dist/showcase/assets/input-group-B_E_3EGS.js +0 -1
- package/dist/showcase/assets/inputs-DOQ2foig.js +0 -49
- package/dist/showcase/assets/invoice-header-C2-uQE_s.js +0 -36
- package/dist/showcase/assets/invoice-items-BUunRJqA.js +0 -36
- package/dist/showcase/assets/invoice-mini-BrLMrzN6.js +0 -14
- package/dist/showcase/assets/invoice-table-CaB9Z8jI.js +0 -30
- package/dist/showcase/assets/isSameDay-rwvIyLOL.js +0 -1
- package/dist/showcase/assets/isToday-CIAzBrb5.js +0 -1
- package/dist/showcase/assets/italic-B02a4PdD.js +0 -1
- package/dist/showcase/assets/item-C-0RObvI.js +0 -117
- package/dist/showcase/assets/item-CCu0Ufaq.js +0 -1
- package/dist/showcase/assets/item-DF4m_56j.js +0 -1
- package/dist/showcase/assets/kanban-BgW23a7P.js +0 -175
- package/dist/showcase/assets/label-MdV7pglj.js +0 -1
- package/dist/showcase/assets/layout-containers-nKVReEJB.js +0 -96
- package/dist/showcase/assets/layout-header-CKyxHHPC.js +0 -170
- package/dist/showcase/assets/layout-page-ClD2yMnK.js +0 -122
- package/dist/showcase/assets/layout-sidebar-jdQnYDiT.js +0 -224
- package/dist/showcase/assets/layout-users-Cv849xnU.js +0 -104
- package/dist/showcase/assets/lib-BHW4JERQ.js +0 -1
- package/dist/showcase/assets/lock-B8bfl9sZ.js +0 -1
- package/dist/showcase/assets/mail-DmOBTX4I.js +0 -1
- package/dist/showcase/assets/map-ButgRl8f.js +0 -124
- package/dist/showcase/assets/map-pin-o3egisLq.js +0 -1
- package/dist/showcase/assets/menus-DdXgYKVA.js +0 -89
- package/dist/showcase/assets/message-square-Bl6P4TA0.js +0 -1
- package/dist/showcase/assets/metadata-list-aXo96h_U.js +0 -278
- package/dist/showcase/assets/metric-BLHKuZtE.js +0 -1
- package/dist/showcase/assets/metric-grid-6Dpj5eV3.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-m389ipmG.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-B-1IUlHf.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-B8tvK_RB.js +0 -77
- package/dist/showcase/assets/metrics-comparison-DKJ7Js3F.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-BlRnJoI0.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-COI7f64X.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-LRfmKhsy.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DmqIQVVR.js +0 -42
- package/dist/showcase/assets/metrics-overview-Dbf5RM2k.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-D5oevQvv.js +0 -54
- package/dist/showcase/assets/minus-D-jmUi0G.js +0 -1
- package/dist/showcase/assets/money-display-C__61373.js +0 -1
- package/dist/showcase/assets/month-year-picker-BfBQePUY.js +0 -1
- package/dist/showcase/assets/navigation-DUAe-sQV.js +0 -86
- package/dist/showcase/assets/navigation-extras-itSAf6QT.js +0 -43
- package/dist/showcase/assets/navigation-fAOvwIlP.js +0 -230
- package/dist/showcase/assets/onboarding-checklist-1gmzk3_J.js +0 -119
- package/dist/showcase/assets/overlays-BMTBOIEI.js +0 -88
- package/dist/showcase/assets/overlays-Lu16yJWM.js +0 -393
- package/dist/showcase/assets/package-BIa1hPVQ.js +0 -1
- package/dist/showcase/assets/page-action-button-C5NiQHnP.js +0 -1
- package/dist/showcase/assets/page-header-Cwf9DuhD.js +0 -1
- package/dist/showcase/assets/pagination-9iSNmdCx.js +0 -1
- package/dist/showcase/assets/pagination-MjniF-7j.js +0 -42
- package/dist/showcase/assets/paperclip-CaNLUOIA.js +0 -1
- package/dist/showcase/assets/pencil-DTLGPoc_.js +0 -1
- package/dist/showcase/assets/phone-XvU6LndA.js +0 -1
- package/dist/showcase/assets/plus-BDSCn8ol.js +0 -1
- package/dist/showcase/assets/popover-CvhuubS6.js +0 -1
- package/dist/showcase/assets/popover-DUQqLZN2.js +0 -1
- package/dist/showcase/assets/popover-menu-DVGBuFpL.js +0 -1
- package/dist/showcase/assets/progress-BQopCRpV.js +0 -1
- package/dist/showcase/assets/progress-CvSUR260.js +0 -18
- package/dist/showcase/assets/props-table-BzUnIcv-.js +0 -1
- package/dist/showcase/assets/quote-D55lkoXn.js +0 -1
- package/dist/showcase/assets/receipt-D3ilhl9U.js +0 -1
- package/dist/showcase/assets/refresh-cw-Csl2LQ4l.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CM5i142y.js +0 -1
- package/dist/showcase/assets/rich-text-editor-Bz7jWvPv.js +0 -124
- package/dist/showcase/assets/rich-text-editor-DWKFpgNI.js +0 -141
- package/dist/showcase/assets/rotate-ccw-BnkpK7eq.js +0 -1
- package/dist/showcase/assets/scroll-area-BTVLd58j.js +0 -1
- package/dist/showcase/assets/scroll-area-CgFEDepJ.js +0 -32
- package/dist/showcase/assets/select-B7-tZDlG.js +0 -1
- package/dist/showcase/assets/send-BhjEdZ06.js +0 -1
- package/dist/showcase/assets/separator-CJayjKGP.js +0 -28
- package/dist/showcase/assets/separator-CZ_sPWQj.js +0 -1
- package/dist/showcase/assets/settings-Duj7gAZe.js +0 -1
- package/dist/showcase/assets/sheet-BMabZ_Gj.js +0 -1
- package/dist/showcase/assets/shield-C22sWOf4.js +0 -1
- package/dist/showcase/assets/shield-alert-DgZ6UO46.js +0 -1
- package/dist/showcase/assets/shield-check-jGSgmijm.js +0 -1
- package/dist/showcase/assets/shopping-bag-Cd09Ga6D.js +0 -1
- package/dist/showcase/assets/sidebar.context-CXTHS3vn.js +0 -1
- package/dist/showcase/assets/skeleton-Dmp4eC1A.js +0 -1
- package/dist/showcase/assets/skeleton-FLNbc7QP.js +0 -29
- package/dist/showcase/assets/smart-card-50WN9sCI.js +0 -1
- package/dist/showcase/assets/sonner-DR_DYpqb.js +0 -22
- package/dist/showcase/assets/sortable.esm-C_l8_Iqt.js +0 -5
- package/dist/showcase/assets/sparkles-C-fyahzv.js +0 -1
- package/dist/showcase/assets/spinner-B8jgVQNj.js +0 -30
- package/dist/showcase/assets/spinner-C4zPRpI0.js +0 -49
- package/dist/showcase/assets/spinner-DFjHsQlR.js +0 -1
- package/dist/showcase/assets/square-pen-Dp7lCfI3.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CTckbUiW.js +0 -1
- package/dist/showcase/assets/star-l00ivfkD.js +0 -1
- package/dist/showcase/assets/startOfDay-Xmododib.js +0 -1
- package/dist/showcase/assets/styles-zuwR0q1z.js +0 -1
- package/dist/showcase/assets/switch-D3LrIrTQ.js +0 -1
- package/dist/showcase/assets/switch-ylXVyh_N.js +0 -1
- package/dist/showcase/assets/table-Cn3-19zb.js +0 -1
- package/dist/showcase/assets/table-ao3IcAnF.js +0 -390
- package/dist/showcase/assets/tabs-CTLQKtiu.js +0 -19
- package/dist/showcase/assets/tabs-lc1fX94A.js +0 -1
- package/dist/showcase/assets/text-button-Fu8UY1A8.js +0 -1
- package/dist/showcase/assets/text-link--EyGasJN.js +0 -1
- package/dist/showcase/assets/textarea-BdhnlNrF.js +0 -1
- package/dist/showcase/assets/textarea-D1kG3a9B.js +0 -1
- package/dist/showcase/assets/timelines-DF3tNgyG.js +0 -186
- package/dist/showcase/assets/toggle-group-CfxuWsv9.js +0 -1
- package/dist/showcase/assets/toggles-CacdBPlV.js +0 -71
- package/dist/showcase/assets/toggles-group-CRhgTGmL.js +0 -32
- package/dist/showcase/assets/trash-2-B0_GprQM.js +0 -1
- package/dist/showcase/assets/trending-up-B202l1b6.js +0 -1
- package/dist/showcase/assets/truck-Bl1pNrHi.js +0 -1
- package/dist/showcase/assets/typography-DEtOxBlR.js +0 -214
- package/dist/showcase/assets/ui-badge-n4RA0J5b.js +0 -28
- package/dist/showcase/assets/ui-card-Ck-kzrTh.js +0 -30
- package/dist/showcase/assets/ui-table-gzOp82pf.js +0 -42
- package/dist/showcase/assets/upload-tray-VvKdTZSi.js +0 -138
- package/dist/showcase/assets/useAnchoredPopupScrollLock-Cu2ZwN7Z.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-C6_cdQ7B.js +0 -1
- package/dist/showcase/assets/useCompositeItem-BfUPqXoj.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-Cf2lpKB8.js +0 -1
- package/dist/showcase/assets/useControlled-C6q3nmcf.js +0 -1
- package/dist/showcase/assets/useLabelableId-CfPT16c1.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CGeqRuuY.js +0 -1
- package/dist/showcase/assets/useRender-CoUlh0uZ.js +0 -1
- package/dist/showcase/assets/useRole-DSPUSyVX.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-BwZ1HD24.js +0 -1
- package/dist/showcase/assets/useValueChanged-Dej794I1.js +0 -1
- package/dist/showcase/assets/user-3L762Mec.js +0 -1
- package/dist/showcase/assets/user-plus-9WRYjS04.js +0 -1
- package/dist/showcase/assets/users-CxKZ7gt8.js +0 -1
- package/dist/showcase/assets/vendor-profile-BaCptdMF.js +0 -37
- package/dist/showcase/assets/wrench-Duh91tnW.js +0 -1
- package/dist/showcase/assets/x-t42iKYpL.js +0 -1
- package/dist/showcase/assets/zap-D0z3Tv_L.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-D3uCBrYO.cjs`),t=require(`../lib/strings.cjs`),n=require(`../lib/utils.cjs`),r=require(`./text-DBnY6fcL.cjs`),i=require(`./badge-C49SSz-6.cjs`),a=require(`./button-D0nF99a9.cjs`),o=require(`./dropdown-menu-DZlWHqWS.cjs`),s=require(`./separator-CN9zAJfs.cjs`),c=require(`./avatar-dg20YFFs.cjs`),l=require(`./breadcrumbs-Bo7j5Rhv.cjs`),u=require(`./sidebar-Bq7yKLrG.cjs`),d=require(`./hooks-C-uWoRq5.cjs`);let f=require(`react`);f=e.t(f,1);let p=require(`react/jsx-runtime`),m=require(`lucide-react`);function h({breadcrumbs:e=[],homeBreadcrumb:t=null,showSidebarTrigger:r=!0,triggerSlot:i,renderLink:a,LinkComponent:o,className:c}){let m=d.d({renderLink:a,LinkComponent:o}),h=f.useMemo(()=>{let n=[];return t&&n.push(t),n.push(...e),n},[t,e]),g=h.length>0;return(0,p.jsxs)(`div`,{className:n.cn(`relative flex min-h-9 items-stretch gap-3`,c),children:[!!r&&(0,p.jsx)(`div`,{className:`relative flex min-h-9 items-center justify-center gap-2`,children:i??(0,p.jsx)(u.C,{className:`size-7 [&_svg]:size-4`})}),!!g&&(0,p.jsxs)(p.Fragment,{children:[!!r&&(0,p.jsx)(s.t,{orientation:`vertical`,className:`h-auto self-stretch`}),(0,p.jsx)(`div`,{className:`flex min-w-0 items-center`,children:(0,p.jsx)(l.t,{breadcrumbs:h,size:`xs`,renderLink:m})})]})]})}function g({showBreadcrumbs:e=!0,breadcrumbs:t=[],homeBreadcrumb:r=null,showSidebarTrigger:i=!0,brand:a,leftContent:o,centerContent:s,rightContent:c,slots:l,renderLink:u,LinkComponent:f,className:m,contentClassName:g,leftClassName:_,centerClassName:v,rightClassName:y,breadcrumbsClassName:b}){let x=d.d({renderLink:u,LinkComponent:f});return(0,p.jsx)(`header`,{className:n.cn(`sticky top-0 z-40 flex min-h-[var(--topbar-height)] items-center border-b bg-background/70 px-4 py-2 backdrop-blur-md transition-[width,height] ease-linear md:px-5`,`dark:bg-topbar`,m),children:(0,p.jsxs)(`div`,{className:n.cn(`flex min-h-9 min-w-0 flex-1 items-stretch gap-4`,g),children:[!!(l?.brand??a)&&(0,p.jsx)(`div`,{className:`hidden min-w-0 shrink-0 items-center md:flex`,children:l?.brand??a}),!!e&&(l?.breadcrumbs??(0,p.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,p.jsx)(h,{breadcrumbs:t,homeBreadcrumb:r,showSidebarTrigger:i,renderLink:x,className:b})})),!!(l?.left??o)&&(0,p.jsx)(`div`,{className:n.cn(`flex min-w-0 items-center`,_),children:l?.left??o}),!!(l?.center??s)&&(0,p.jsx)(`div`,{className:n.cn(`hidden min-w-0 shrink-0 items-center justify-center lg:flex`,v),children:l?.center??s}),!!(l?.right??c)&&(0,p.jsx)(`div`,{className:n.cn(`ml-auto flex shrink-0 items-center gap-2`,y),children:l?.right??c})]})})}var _={triggerLabel:`Notifications`,heading:`Notifications`,markAllRead:`Mark all as read`,empty:`No new notifications`,viewAll:`View all notifications`},v={placeholder:`Search...`,shortcutMac:`⌘K`,shortcutPc:`Ctrl+K`},y={profile:`Profile`,settings:`Settings`,logout:`Log out`};function b(){if(typeof navigator>`u`)return!1;let e=navigator.userAgentData;return e?.platform?e.platform===`macOS`:/Mac|iPhone|iPad/.test(navigator.platform)}function x({onOpen:e,isMac:i,enableShortcut:o=!0,strings:s,className:c,iconClassName:l,shortcutSlot:u}){let h=t.useStrings(v,s),g=(0,f.useMemo)(()=>i??b(),[i]);d.t({key:`k`,enabled:o,onTrigger:e});let _=g?h.shortcutMac:h.shortcutPc,y=u??(0,p.jsx)(`kbd`,{className:`hidden h-5 shrink-0 items-center gap-1 rounded bg-muted px-1.5 font-mono text-xxs text-muted-foreground lg:inline-flex dark:bg-muted/20`,children:g?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(m.Command,{className:`size-3 dark:text-muted/60`,"aria-hidden":`true`}),(0,p.jsx)(r.t,{tag:`span`,size:`xs`,className:`dark:text-muted/60`,children:`K`})]}):(0,p.jsx)(r.t,{tag:`span`,size:`xs`,className:`dark:text-muted/60`,children:`Ctrl+K`})});return(0,p.jsxs)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,onClick:e,className:n.cn(`h-8 w-full min-w-[205px] justify-start gap-2 rounded-lg border-input bg-background px-2.5 shadow-none hover:bg-accent/50`,`dark:border-topbar-accent/80 dark:bg-topbar-accent/40`,c),title:_,children:[(0,p.jsx)(m.Search,{className:n.cn(`size-3.5 shrink-0 text-muted-foreground dark:text-muted/60`,l),"aria-hidden":`true`}),(0,p.jsx)(r.t,{tag:`span`,size:`xs`,type:`secondary`,className:`flex-1 text-left dark:text-muted/60`,children:h.placeholder}),y,(0,p.jsx)(`span`,{className:`sr-only`,children:h.placeholder})]})}function S(e){return e.split(` `).map(e=>e[0]).filter(Boolean).slice(0,2).join(``).toUpperCase()}function C({user:e,showEmail:i=!0,customContent:s,onProfile:l,onSettings:u,onLogout:d,align:f=`end`,side:h=`bottom`,strings:g,triggerClassName:_,contentClassName:v,renderTrigger:b}){let x=t.useStrings(y,g),C=S(e.name),w=(0,p.jsxs)(p.Fragment,{children:[!!l&&(0,p.jsxs)(o.a,{onClick:l,children:[(0,p.jsx)(m.User,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(r.t,{tag:`span`,size:`xs`,className:`text-inherit`,children:x.profile})]}),!!u&&(0,p.jsxs)(o.a,{onClick:u,children:[(0,p.jsx)(m.Settings,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(r.t,{tag:`span`,size:`xs`,className:`text-inherit`,children:x.settings})]}),!!(l||u)&&!!d&&(0,p.jsx)(o.d,{}),!!d&&(0,p.jsxs)(o.a,{onClick:d,children:[(0,p.jsx)(m.LogOut,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(r.t,{tag:`span`,size:`xs`,className:`text-inherit`,children:x.logout})]})]});return(0,p.jsxs)(o.t,{children:[(0,p.jsx)(o.g,{render:b?.(e)??(0,p.jsxs)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,className:n.cn(`group h-10 max-w-56 justify-start gap-2 rounded-lg px-1.5 pr-2 text-foreground shadow-none hover:bg-foreground/5 data-[state=open]:bg-foreground/5`,i?`py-1.5`:`py-1`,`dark:text-background dark:hover:bg-topbar-accent/50`,_),children:[(0,p.jsxs)(c.t,{className:`size-6 overflow-hidden rounded-full ring-1 ring-border/60`,children:[!!e.avatar&&(0,p.jsx)(c.o,{src:e.avatar,alt:e.name}),(0,p.jsx)(c.r,{className:`rounded-md bg-success text-[length:var(--text-xxs)] font-semibold text-background`,children:C})]}),(0,p.jsxs)(`div`,{className:`grid min-w-0 flex-1 text-left leading-none`,children:[(0,p.jsx)(r.t,{size:`xs`,weight:`medium`,className:`truncate`,children:e.name}),!!i&&!!e.email&&(0,p.jsx)(r.t,{size:`xxs`,type:`secondary`,className:`truncate`,children:e.email})]}),(0,p.jsx)(m.ChevronsUpDown,{className:`size-3 shrink-0 text-muted-foreground`,"aria-hidden":`true`})]})}),(0,p.jsx)(o.r,{className:n.cn(`w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg p-3`,v),align:f,side:h,children:s??w})]})}var w={info:`border-l-info`,success:`border-l-success`,warning:`border-l-warning`,error:`border-l-destructive`};function T(e){return w[e??`info`]}function E({notifications:e=[],unreadCount:s=0,onNotificationClick:c,onMarkAllRead:l,onViewAll:u,viewAllHref:f,renderLink:h,LinkComponent:g,align:v=`end`,side:y=`bottom`,strings:b,className:x,contentClassName:S,renderNotification:C}){let w=t.useStrings(_,b),T=d.d({renderLink:h,LinkComponent:g}),E=s>99?`99+`:String(s);return(0,p.jsxs)(o.t,{children:[(0,p.jsx)(o.g,{render:(0,p.jsxs)(a.t,{variant:`secondary`,buttonStyle:`ghost`,size:`icon-sm`,"aria-label":w.triggerLabel,className:n.cn(`relative`,x),children:[(0,p.jsx)(m.Bell,{className:`size-4`,"aria-hidden":`true`}),s>0&&(0,p.jsx)(i.t,{variant:`error`,className:`absolute -right-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full px-1 py-0 text-xxs`,children:E})]})}),(0,p.jsxs)(o.r,{className:n.cn(`w-80`,S),align:v,side:y,children:[(0,p.jsxs)(o.o,{className:`flex items-center justify-between gap-3`,children:[(0,p.jsx)(r.t,{tag:`span`,weight:`semibold`,children:w.heading}),s>0&&!!l&&(0,p.jsx)(a.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`xs`,onClick:l,className:`h-auto px-1 py-0 text-xs`,children:w.markAllRead})]}),(0,p.jsx)(o.d,{}),e.length===0?(0,p.jsx)(`div`,{className:`p-4 text-center`,children:(0,p.jsx)(r.t,{type:`secondary`,children:w.empty})}):(0,p.jsx)(`div`,{className:`space-y-1 p-1`,children:e.map(e=>(0,p.jsx)(D,{notification:e,onClick:c,renderLink:T,renderNotification:C},e.id))}),!!(u||f)&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(o.d,{}),f?(0,p.jsx)(o.s,{href:f,render:e=>T({...e,href:f,children:e.children}),children:w.viewAll}):(0,p.jsx)(o.a,{onClick:u,children:w.viewAll})]})]})]})}function D({notification:e,onClick:t,renderLink:i,renderNotification:a}){if(a)return a(e);let s=(0,p.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,p.jsx)(r.t,{weight:`medium`,children:e.title}),!!e.description&&(0,p.jsx)(r.t,{size:`xs`,type:`secondary`,children:e.description}),!!e.time&&(0,p.jsx)(r.t,{size:`xxs`,type:`secondary`,children:e.time})]}),c=n.cn(`items-start rounded-md border-l-2 px-3 py-2`,T(e.tone),!e.read&&`bg-muted/40`);return e.href?(0,p.jsx)(o.s,{href:e.href,className:c,onClick:()=>t?.(e),render:t=>i({...t,href:e.href,children:t.children}),children:s}):(0,p.jsx)(o.a,{onClick:()=>t?.(e),className:c,children:s})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return E}});
|
|
2
|
+
//# sourceMappingURL=header-DWfOUjFL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-DWfOUjFL.cjs","names":[],"sources":["../../src/components/layout/header/partials/header-breadcrumbs.tsx","../../src/components/layout/header/header.tsx","../../src/components/layout/header/header.types.ts","../../src/components/layout/header/partials/header-search.tsx","../../src/components/layout/header/partials/header-user-menu.tsx","../../src/components/layout/header/partials/header-notifications.tsx"],"sourcesContent":["/** HeaderBreadcrumbs — breadcrumbs trail with optional sidebar trigger. */\nimport * as React from 'react';\n\nimport { Separator } from '@/components/base/display/separator';\nimport { Breadcrumbs } from '@/components/base/navigation/breadcrumbs';\nimport { SidebarTrigger } from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { BreadcrumbItem } from '../../layout.types';\nimport type { HeaderBreadcrumbsProps } from '../header.types';\n\nexport function HeaderBreadcrumbs({\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\ttriggerSlot,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: HeaderBreadcrumbsProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst items = React.useMemo<BreadcrumbItem[]>(() => {\n\t\tconst out: BreadcrumbItem[] = [];\n\t\tif (homeBreadcrumb) out.push(homeBreadcrumb);\n\t\tout.push(...breadcrumbs);\n\t\treturn out;\n\t}, [homeBreadcrumb, breadcrumbs]);\n\n\tconst showCrumbs = items.length > 0;\n\n\treturn (\n\t\t<div className={cn('relative flex min-h-9 items-stretch gap-3', className)}>\n\t\t\t{!!showSidebarTrigger && (\n\t\t\t\t<div className=\"relative flex min-h-9 items-center justify-center gap-2\">\n\t\t\t\t\t{triggerSlot ?? <SidebarTrigger className=\"size-7 [&_svg]:size-4\" />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!showCrumbs && (\n\t\t\t\t<>\n\t\t\t\t\t{!!showSidebarTrigger && <Separator orientation=\"vertical\" className=\"h-auto self-stretch\" />}\n\t\t\t\t\t<div className=\"flex min-w-0 items-center\">\n\t\t\t\t\t\t<Breadcrumbs breadcrumbs={items} size=\"xs\" renderLink={resolvedRenderLink} />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","/** Header — sticky top bar with breadcrumbs and slot-driven content regions. */\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport { HeaderBreadcrumbs } from './partials/header-breadcrumbs';\nimport type { HeaderProps } from './header.types';\n\nexport function Header({\n\tshowBreadcrumbs = true,\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\tbrand,\n\tleftContent,\n\tcenterContent,\n\trightContent,\n\tslots,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n\tcontentClassName,\n\tleftClassName,\n\tcenterClassName,\n\trightClassName,\n\tbreadcrumbsClassName,\n}: HeaderProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t'sticky top-0 z-40 flex min-h-[var(--topbar-height)] items-center border-b bg-background/70 px-4 py-2 backdrop-blur-md transition-[width,height] ease-linear md:px-5',\n\t\t\t\t'dark:bg-topbar',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('flex min-h-9 min-w-0 flex-1 items-stretch gap-4', contentClassName)}>\n\t\t\t\t{!!(slots?.brand ?? brand) && (\n\t\t\t\t\t<div className=\"hidden min-w-0 shrink-0 items-center md:flex\">\n\t\t\t\t\t\t{slots?.brand ?? brand}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!showBreadcrumbs && (slots?.breadcrumbs ?? (\n\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t<HeaderBreadcrumbs\n\t\t\t\t\t\t\tbreadcrumbs={breadcrumbs}\n\t\t\t\t\t\t\thomeBreadcrumb={homeBreadcrumb}\n\t\t\t\t\t\t\tshowSidebarTrigger={showSidebarTrigger}\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\tclassName={breadcrumbsClassName}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\n\t\t\t\t{!!(slots?.left ?? leftContent) && (\n\t\t\t\t\t<div className={cn('flex min-w-0 items-center', leftClassName)}>\n\t\t\t\t\t\t{slots?.left ?? leftContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.center ?? centerContent) && (\n\t\t\t\t\t<div className={cn('hidden min-w-0 shrink-0 items-center justify-center lg:flex', centerClassName)}>\n\t\t\t\t\t\t{slots?.center ?? centerContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.right ?? rightContent) && (\n\t\t\t\t\t<div className={cn('ml-auto flex shrink-0 items-center gap-2', rightClassName)}>\n\t\t\t\t\t\t{slots?.right ?? rightContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</header>\n\t);\n}\n","/**\n * Header layout and partial types.\n *\n * This layer is intentionally framework-neutral: links and route state enter\n * through `renderLink`, and app-specific content enters through slots.\n */\nimport type { ReactNode } from 'react';\n\nimport type {\n\tBreadcrumbItem,\n\tLayoutNavigationAdapter,\n\tLayoutUser,\n\tLinkComponent,\n} from '../layout.types';\n\nexport interface HeaderBreadcrumbsProps extends LayoutNavigationAdapter {\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\ttriggerSlot?: ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type NotificationTone = 'info' | 'success' | 'warning' | 'error';\n\nexport interface HeaderNotification {\n\tid: string | number;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttime?: ReactNode;\n\tread?: boolean;\n\ttone?: NotificationTone;\n\thref?: string;\n}\n\nexport interface HeaderNotificationsStrings {\n\ttriggerLabel: string;\n\theading: string;\n\tmarkAllRead: string;\n\tempty: string;\n\tviewAll: string;\n}\n\nexport const defaultHeaderNotificationsStrings: HeaderNotificationsStrings = {\n\ttriggerLabel: 'Notifications',\n\theading: 'Notifications',\n\tmarkAllRead: 'Mark all as read',\n\tempty: 'No new notifications',\n\tviewAll: 'View all notifications',\n};\n\nexport interface HeaderNotificationsProps extends LayoutNavigationAdapter {\n\tnotifications?: HeaderNotification[];\n\tunreadCount?: number;\n\tonNotificationClick?: (notification: HeaderNotification) => void;\n\tonMarkAllRead?: () => void;\n\tonViewAll?: () => void;\n\tviewAllHref?: string;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: Partial<HeaderNotificationsStrings>;\n\tclassName?: string;\n\tcontentClassName?: string;\n\trenderNotification?: (notification: HeaderNotification) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface HeaderSearchStrings {\n\tplaceholder: string;\n\tshortcutMac: string;\n\tshortcutPc: string;\n}\n\nexport const defaultHeaderSearchStrings: HeaderSearchStrings = {\n\tplaceholder: 'Search...',\n\tshortcutMac: '⌘K',\n\tshortcutPc: 'Ctrl+K',\n};\n\nexport interface HeaderSearchProps {\n\tonOpen?: () => void;\n\tisMac?: boolean;\n\tenableShortcut?: boolean;\n\tstrings?: Partial<HeaderSearchStrings>;\n\tclassName?: string;\n\ticonClassName?: string;\n\tshortcutSlot?: ReactNode;\n}\n\nexport interface HeaderUserMenuProps {\n\tuser: LayoutUser;\n\tshowEmail?: boolean;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: Partial<HeaderUserMenuStrings>;\n\ttriggerClassName?: string;\n\tcontentClassName?: string;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nexport interface HeaderUserMenuStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultHeaderUserMenuStrings: HeaderUserMenuStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface HeaderSlots {\n\t/** Leading brand/logo region before breadcrumbs. */\n\tbrand?: ReactNode;\n\t/** Replaces the breadcrumb/sidebar-trigger region. */\n\tbreadcrumbs?: ReactNode;\n\t/** Leading content after breadcrumbs. Prefer this over `leftContent` for new code. */\n\tleft?: ReactNode;\n\t/** Center content, usually search or a scope switcher. */\n\tcenter?: ReactNode;\n\t/** Trailing content, usually notifications/user menu/actions. */\n\tright?: ReactNode;\n}\n\nexport interface HeaderProps extends LayoutNavigationAdapter {\n\tshowBreadcrumbs?: boolean;\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\tbrand?: ReactNode;\n\t/** @deprecated Prefer `slots.left`. */\n\tleftContent?: ReactNode;\n\t/** @deprecated Prefer `slots.center`. */\n\tcenterContent?: ReactNode;\n\t/** @deprecated Prefer `slots.right`. */\n\trightContent?: ReactNode;\n\tslots?: HeaderSlots;\n\tclassName?: string;\n\tcontentClassName?: string;\n\tleftClassName?: string;\n\tcenterClassName?: string;\n\trightClassName?: string;\n\tbreadcrumbsClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** HeaderSearch — framework-neutral search trigger with optional Cmd/Ctrl+K. */\nimport { useMemo } from 'react';\nimport { Command, Search } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useCommandShortcut } from '../../hooks';\nimport {\n\tdefaultHeaderSearchStrings,\n\ttype HeaderSearchProps,\n} from '../header.types';\n\nfunction detectMac(): boolean {\n\tif (typeof navigator === 'undefined') return false;\n\tconst ua = (navigator as Navigator & { userAgentData?: { platform?: string } }).userAgentData;\n\tif (ua?.platform) return ua.platform === 'macOS';\n\treturn /Mac|iPhone|iPad/.test(navigator.platform);\n}\n\nexport function HeaderSearch({\n\tonOpen,\n\tisMac,\n\tenableShortcut = true,\n\tstrings: stringsProp,\n\tclassName,\n\ticonClassName,\n\tshortcutSlot,\n}: HeaderSearchProps) {\n\tconst strings = useStrings(defaultHeaderSearchStrings, stringsProp);\n\tconst isMacResolved = useMemo(() => isMac ?? detectMac(), [isMac]);\n\tuseCommandShortcut({ key: 'k', enabled: enableShortcut, onTrigger: onOpen });\n\n\tconst shortcutTitle = isMacResolved ? strings.shortcutMac : strings.shortcutPc;\n\tconst shortcut = shortcutSlot ?? (\n\t\t<kbd className=\"hidden h-5 shrink-0 items-center gap-1 rounded bg-muted px-1.5 font-mono text-xxs text-muted-foreground lg:inline-flex dark:bg-muted/20\">\n\t\t\t{isMacResolved ? (\n\t\t\t\t<>\n\t\t\t\t\t<Command className=\"size-3 dark:text-muted/60\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"dark:text-muted/60\">K</Text>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"dark:text-muted/60\">Ctrl+K</Text>\n\t\t\t)}\n\t\t</kbd>\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"outline\"\n\t\t\tonClick={onOpen}\n\t\t\tclassName={cn(\n\t\t\t\t'h-8 w-full min-w-[205px] justify-start gap-2 rounded-lg border-input bg-background px-2.5 shadow-none hover:bg-accent/50',\n\t\t\t\t'dark:border-topbar-accent/80 dark:bg-topbar-accent/40',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttitle={shortcutTitle}\n\t\t>\n\t\t\t<Search className={cn('size-3.5 shrink-0 text-muted-foreground dark:text-muted/60', iconClassName)} aria-hidden=\"true\" />\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"flex-1 text-left dark:text-muted/60\">\n\t\t\t\t{strings.placeholder}\n\t\t\t</Text>\n\t\t\t{shortcut}\n\t\t\t<span className=\"sr-only\">{strings.placeholder}</span>\n\t\t</Button>\n\t);\n}\n","/** HeaderUserMenu — avatar/name trigger with consumer-wired menu callbacks. */\nimport type { ReactElement } from 'react';\n\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultHeaderUserMenuStrings,\n\ttype HeaderUserMenuProps,\n} from '../header.types';\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function HeaderUserMenu({\n\tuser,\n\tshowEmail = true,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\ttriggerClassName,\n\tcontentClassName,\n\trenderTrigger,\n}: HeaderUserMenuProps) {\n\tconst strings = useStrings(defaultHeaderUserMenuStrings, stringsProp);\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst trigger = renderTrigger?.(user) ?? (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tclassName={cn(\n\t\t\t\t'group h-10 max-w-56 justify-start gap-2 rounded-lg px-1.5 pr-2 text-foreground shadow-none hover:bg-foreground/5 data-[state=open]:bg-foreground/5',\n\t\t\t\tshowEmail ? 'py-1.5' : 'py-1',\n\t\t\t\t'dark:text-background dark:hover:bg-topbar-accent/50',\n\t\t\t\ttriggerClassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Avatar className=\"size-6 overflow-hidden rounded-full ring-1 ring-border/60\">\n\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t<AvatarFallback className=\"rounded-md bg-success text-[length:var(--text-xxs)] font-semibold text-background\">\n\t\t\t\t\t{initials}\n\t\t\t\t</AvatarFallback>\n\t\t\t</Avatar>\n\t\t\t<div className=\"grid min-w-0 flex-1 text-left leading-none\">\n\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"truncate\">{user.name}</Text>\n\t\t\t\t{!!showEmail && !!user.email && (\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"truncate\">{user.email}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<ChevronsUpDown className=\"size-3 shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n\t\t</Button>\n\t);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger render={trigger as ReactElement} />\n\t\t\t<DropdownMenuContent\n\t\t\t\tclassName={cn('w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg p-3', contentClassName)}\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t>\n\t\t\t\t{customContent ?? defaultContent}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/** HeaderNotifications — bell dropdown for consumer-supplied notifications. */\nimport type { ReactElement } from 'react';\n\nimport { Bell } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuLinkItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultHeaderNotificationsStrings,\n\ttype HeaderNotification,\n\ttype HeaderNotificationsProps,\n\ttype NotificationTone,\n} from '../header.types';\n\nconst TONE_BORDER: Record<NotificationTone, string> = {\n\tinfo: 'border-l-info',\n\tsuccess: 'border-l-success',\n\twarning: 'border-l-warning',\n\terror: 'border-l-destructive',\n};\n\nfunction getToneClass(tone: NotificationTone | undefined): string {\n\treturn TONE_BORDER[tone ?? 'info'];\n}\n\nexport function HeaderNotifications({\n\tnotifications = [],\n\tunreadCount = 0,\n\tonNotificationClick,\n\tonMarkAllRead,\n\tonViewAll,\n\tviewAllHref,\n\trenderLink,\n\tLinkComponent,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\tclassName,\n\tcontentClassName,\n\trenderNotification,\n}: HeaderNotificationsProps) {\n\tconst strings = useStrings(defaultHeaderNotificationsStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst badgeText = unreadCount > 99 ? '99+' : String(unreadCount);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\t\taria-label={strings.triggerLabel}\n\t\t\t\t\t\tclassName={cn('relative', className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Bell className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{unreadCount > 0 && (\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tclassName=\"absolute -right-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full px-1 py-0 text-xxs\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badgeText}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<DropdownMenuContent className={cn('w-80', contentClassName)} align={align} side={side}>\n\t\t\t\t<DropdownMenuLabel className=\"flex items-center justify-between gap-3\">\n\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{strings.heading}</Text>\n\t\t\t\t\t{unreadCount > 0 && !!onMarkAllRead && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\tonClick={onMarkAllRead}\n\t\t\t\t\t\t\tclassName=\"h-auto px-1 py-0 text-xs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.markAllRead}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t<DropdownMenuSeparator />\n\n\t\t\t\t{notifications.length === 0 ? (\n\t\t\t\t\t<div className=\"p-4 text-center\">\n\t\t\t\t\t\t<Text type=\"secondary\">{strings.empty}</Text>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"space-y-1 p-1\">\n\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t<NotificationRow\n\t\t\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\t\t\tnotification={notification}\n\t\t\t\t\t\t\t\tonClick={onNotificationClick}\n\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\trenderNotification={renderNotification}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(onViewAll || viewAllHref) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t{viewAllHref ? (\n\t\t\t\t\t\t\t<DropdownMenuLinkItem\n\t\t\t\t\t\t\t\thref={viewAllHref}\n\t\t\t\t\t\t\t\trender={(props) =>\n\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\t\thref: viewAllHref,\n\t\t\t\t\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t\t\t\t\t}) as ReactElement\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{strings.viewAll}\n\t\t\t\t\t\t\t</DropdownMenuLinkItem>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={onViewAll}>{strings.viewAll}</DropdownMenuItem>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction NotificationRow({\n\tnotification,\n\tonClick,\n\trenderLink,\n\trenderNotification,\n}: {\n\tnotification: HeaderNotification;\n\tonClick?: (n: HeaderNotification) => void;\n\trenderLink: NonNullable<HeaderNotificationsProps['renderLink']>;\n\trenderNotification?: HeaderNotificationsProps['renderNotification'];\n}) {\n\tif (renderNotification) return renderNotification(notification);\n\n\tconst content = (\n\t\t<div className=\"min-w-0 space-y-1\">\n\t\t\t<Text weight=\"medium\">{notification.title}</Text>\n\t\t\t{!!notification.description && <Text size=\"xs\" type=\"secondary\">{notification.description}</Text>}\n\t\t\t{!!notification.time && <Text size=\"xxs\" type=\"secondary\">{notification.time}</Text>}\n\t\t</div>\n\t);\n\n\tconst className = cn(\n\t\t'items-start rounded-md border-l-2 px-3 py-2',\n\t\tgetToneClass(notification.tone),\n\t\t!notification.read && 'bg-muted/40',\n\t);\n\n\tif (notification.href) {\n\t\treturn (\n\t\t\t<DropdownMenuLinkItem\n\t\t\t\thref={notification.href}\n\t\t\t\tclassName={className}\n\t\t\t\tonClick={() => onClick?.(notification)}\n\t\t\t\trender={(props) =>\n\t\t\t\t\trenderLink({\n\t\t\t\t\t\t...props,\n\t\t\t\t\t\thref: notification.href,\n\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t}) as ReactElement\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</DropdownMenuLinkItem>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DropdownMenuItem onClick={() => onClick?.(notification)} className={className}>\n\t\t\t{content}\n\t\t</DropdownMenuItem>\n\t);\n}\n\n/** @deprecated Re-exported for backwards compat — use `HeaderNotification`. */\nexport type Notification = HeaderNotification;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { useStrings as e } from "../lib/strings.js";
|
|
2
|
+
import { cn as t } from "../lib/utils.js";
|
|
3
|
+
import { t as n } from "./text-DIxMTECE.js";
|
|
4
|
+
import { t as r } from "./badge-BVCh_hfL.js";
|
|
5
|
+
import { t as i } from "./button-ChCkwoOD.js";
|
|
6
|
+
import { a, d as o, g as s, o as c, r as l, s as u, t as d } from "./dropdown-menu-4nxEBMnd.js";
|
|
7
|
+
import { t as f } from "./separator-DR0uUMKa.js";
|
|
8
|
+
import { o as p, r as m, t as h } from "./avatar-CpBz9pTv.js";
|
|
9
|
+
import { t as g } from "./breadcrumbs-Dc93fqqE.js";
|
|
10
|
+
import { C as _ } from "./sidebar-Q6TYE8Ux.js";
|
|
11
|
+
import { d as v, t as y } from "./hooks-D5HJtvvP.js";
|
|
12
|
+
import * as b from "react";
|
|
13
|
+
import { useMemo as x } from "react";
|
|
14
|
+
import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
15
|
+
import { Bell as T, ChevronsUpDown as E, Command as D, LogOut as O, Search as k, Settings as A, User as j } from "lucide-react";
|
|
16
|
+
//#region src/components/layout/header/partials/header-breadcrumbs.tsx
|
|
17
|
+
function M({ breadcrumbs: e = [], homeBreadcrumb: n = null, showSidebarTrigger: r = !0, triggerSlot: i, renderLink: a, LinkComponent: o, className: s }) {
|
|
18
|
+
let c = v({
|
|
19
|
+
renderLink: a,
|
|
20
|
+
LinkComponent: o
|
|
21
|
+
}), l = b.useMemo(() => {
|
|
22
|
+
let t = [];
|
|
23
|
+
return n && t.push(n), t.push(...e), t;
|
|
24
|
+
}, [n, e]), u = l.length > 0;
|
|
25
|
+
return /* @__PURE__ */ w("div", {
|
|
26
|
+
className: t("relative flex min-h-9 items-stretch gap-3", s),
|
|
27
|
+
children: [!!r && /* @__PURE__ */ C("div", {
|
|
28
|
+
className: "relative flex min-h-9 items-center justify-center gap-2",
|
|
29
|
+
children: i ?? /* @__PURE__ */ C(_, { className: "size-7 [&_svg]:size-4" })
|
|
30
|
+
}), !!u && /* @__PURE__ */ w(S, { children: [!!r && /* @__PURE__ */ C(f, {
|
|
31
|
+
orientation: "vertical",
|
|
32
|
+
className: "h-auto self-stretch"
|
|
33
|
+
}), /* @__PURE__ */ C("div", {
|
|
34
|
+
className: "flex min-w-0 items-center",
|
|
35
|
+
children: /* @__PURE__ */ C(g, {
|
|
36
|
+
breadcrumbs: l,
|
|
37
|
+
size: "xs",
|
|
38
|
+
renderLink: c
|
|
39
|
+
})
|
|
40
|
+
})] })]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/components/layout/header/header.tsx
|
|
45
|
+
function N({ showBreadcrumbs: e = !0, breadcrumbs: n = [], homeBreadcrumb: r = null, showSidebarTrigger: i = !0, brand: a, leftContent: o, centerContent: s, rightContent: c, slots: l, renderLink: u, LinkComponent: d, className: f, contentClassName: p, leftClassName: m, centerClassName: h, rightClassName: g, breadcrumbsClassName: _ }) {
|
|
46
|
+
let y = v({
|
|
47
|
+
renderLink: u,
|
|
48
|
+
LinkComponent: d
|
|
49
|
+
});
|
|
50
|
+
return /* @__PURE__ */ C("header", {
|
|
51
|
+
className: t("sticky top-0 z-40 flex min-h-[var(--topbar-height)] items-center border-b bg-background/70 px-4 py-2 backdrop-blur-md transition-[width,height] ease-linear md:px-5", "dark:bg-topbar", f),
|
|
52
|
+
children: /* @__PURE__ */ w("div", {
|
|
53
|
+
className: t("flex min-h-9 min-w-0 flex-1 items-stretch gap-4", p),
|
|
54
|
+
children: [
|
|
55
|
+
!!(l?.brand ?? a) && /* @__PURE__ */ C("div", {
|
|
56
|
+
className: "hidden min-w-0 shrink-0 items-center md:flex",
|
|
57
|
+
children: l?.brand ?? a
|
|
58
|
+
}),
|
|
59
|
+
!!e && (l?.breadcrumbs ?? /* @__PURE__ */ C("div", {
|
|
60
|
+
className: "min-w-0 flex-1",
|
|
61
|
+
children: /* @__PURE__ */ C(M, {
|
|
62
|
+
breadcrumbs: n,
|
|
63
|
+
homeBreadcrumb: r,
|
|
64
|
+
showSidebarTrigger: i,
|
|
65
|
+
renderLink: y,
|
|
66
|
+
className: _
|
|
67
|
+
})
|
|
68
|
+
})),
|
|
69
|
+
!!(l?.left ?? o) && /* @__PURE__ */ C("div", {
|
|
70
|
+
className: t("flex min-w-0 items-center", m),
|
|
71
|
+
children: l?.left ?? o
|
|
72
|
+
}),
|
|
73
|
+
!!(l?.center ?? s) && /* @__PURE__ */ C("div", {
|
|
74
|
+
className: t("hidden min-w-0 shrink-0 items-center justify-center lg:flex", h),
|
|
75
|
+
children: l?.center ?? s
|
|
76
|
+
}),
|
|
77
|
+
!!(l?.right ?? c) && /* @__PURE__ */ C("div", {
|
|
78
|
+
className: t("ml-auto flex shrink-0 items-center gap-2", g),
|
|
79
|
+
children: l?.right ?? c
|
|
80
|
+
})
|
|
81
|
+
]
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/components/layout/header/header.types.ts
|
|
87
|
+
var P = {
|
|
88
|
+
triggerLabel: "Notifications",
|
|
89
|
+
heading: "Notifications",
|
|
90
|
+
markAllRead: "Mark all as read",
|
|
91
|
+
empty: "No new notifications",
|
|
92
|
+
viewAll: "View all notifications"
|
|
93
|
+
}, F = {
|
|
94
|
+
placeholder: "Search...",
|
|
95
|
+
shortcutMac: "⌘K",
|
|
96
|
+
shortcutPc: "Ctrl+K"
|
|
97
|
+
}, I = {
|
|
98
|
+
profile: "Profile",
|
|
99
|
+
settings: "Settings",
|
|
100
|
+
logout: "Log out"
|
|
101
|
+
};
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/components/layout/header/partials/header-search.tsx
|
|
104
|
+
function L() {
|
|
105
|
+
if (typeof navigator > "u") return !1;
|
|
106
|
+
let e = navigator.userAgentData;
|
|
107
|
+
return e?.platform ? e.platform === "macOS" : /Mac|iPhone|iPad/.test(navigator.platform);
|
|
108
|
+
}
|
|
109
|
+
function R({ onOpen: r, isMac: a, enableShortcut: o = !0, strings: s, className: c, iconClassName: l, shortcutSlot: u }) {
|
|
110
|
+
let d = e(F, s), f = x(() => a ?? L(), [a]);
|
|
111
|
+
y({
|
|
112
|
+
key: "k",
|
|
113
|
+
enabled: o,
|
|
114
|
+
onTrigger: r
|
|
115
|
+
});
|
|
116
|
+
let p = f ? d.shortcutMac : d.shortcutPc, m = u ?? /* @__PURE__ */ C("kbd", {
|
|
117
|
+
className: "hidden h-5 shrink-0 items-center gap-1 rounded bg-muted px-1.5 font-mono text-xxs text-muted-foreground lg:inline-flex dark:bg-muted/20",
|
|
118
|
+
children: f ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(D, {
|
|
119
|
+
className: "size-3 dark:text-muted/60",
|
|
120
|
+
"aria-hidden": "true"
|
|
121
|
+
}), /* @__PURE__ */ C(n, {
|
|
122
|
+
tag: "span",
|
|
123
|
+
size: "xs",
|
|
124
|
+
className: "dark:text-muted/60",
|
|
125
|
+
children: "K"
|
|
126
|
+
})] }) : /* @__PURE__ */ C(n, {
|
|
127
|
+
tag: "span",
|
|
128
|
+
size: "xs",
|
|
129
|
+
className: "dark:text-muted/60",
|
|
130
|
+
children: "Ctrl+K"
|
|
131
|
+
})
|
|
132
|
+
});
|
|
133
|
+
return /* @__PURE__ */ w(i, {
|
|
134
|
+
type: "button",
|
|
135
|
+
variant: "secondary",
|
|
136
|
+
buttonStyle: "outline",
|
|
137
|
+
onClick: r,
|
|
138
|
+
className: t("h-8 w-full min-w-[205px] justify-start gap-2 rounded-lg border-input bg-background px-2.5 shadow-none hover:bg-accent/50", "dark:border-topbar-accent/80 dark:bg-topbar-accent/40", c),
|
|
139
|
+
title: p,
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ C(k, {
|
|
142
|
+
className: t("size-3.5 shrink-0 text-muted-foreground dark:text-muted/60", l),
|
|
143
|
+
"aria-hidden": "true"
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ C(n, {
|
|
146
|
+
tag: "span",
|
|
147
|
+
size: "xs",
|
|
148
|
+
type: "secondary",
|
|
149
|
+
className: "flex-1 text-left dark:text-muted/60",
|
|
150
|
+
children: d.placeholder
|
|
151
|
+
}),
|
|
152
|
+
m,
|
|
153
|
+
/* @__PURE__ */ C("span", {
|
|
154
|
+
className: "sr-only",
|
|
155
|
+
children: d.placeholder
|
|
156
|
+
})
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/components/layout/header/partials/header-user-menu.tsx
|
|
162
|
+
function z(e) {
|
|
163
|
+
return e.split(" ").map((e) => e[0]).filter(Boolean).slice(0, 2).join("").toUpperCase();
|
|
164
|
+
}
|
|
165
|
+
function B({ user: r, showEmail: c = !0, customContent: u, onProfile: f, onSettings: g, onLogout: _, align: v = "end", side: y = "bottom", strings: b, triggerClassName: x, contentClassName: T, renderTrigger: D }) {
|
|
166
|
+
let k = e(I, b), M = z(r.name), N = /* @__PURE__ */ w(S, { children: [
|
|
167
|
+
!!f && /* @__PURE__ */ w(a, {
|
|
168
|
+
onClick: f,
|
|
169
|
+
children: [/* @__PURE__ */ C(j, {
|
|
170
|
+
className: "mr-2 size-4",
|
|
171
|
+
"aria-hidden": "true"
|
|
172
|
+
}), /* @__PURE__ */ C(n, {
|
|
173
|
+
tag: "span",
|
|
174
|
+
size: "xs",
|
|
175
|
+
className: "text-inherit",
|
|
176
|
+
children: k.profile
|
|
177
|
+
})]
|
|
178
|
+
}),
|
|
179
|
+
!!g && /* @__PURE__ */ w(a, {
|
|
180
|
+
onClick: g,
|
|
181
|
+
children: [/* @__PURE__ */ C(A, {
|
|
182
|
+
className: "mr-2 size-4",
|
|
183
|
+
"aria-hidden": "true"
|
|
184
|
+
}), /* @__PURE__ */ C(n, {
|
|
185
|
+
tag: "span",
|
|
186
|
+
size: "xs",
|
|
187
|
+
className: "text-inherit",
|
|
188
|
+
children: k.settings
|
|
189
|
+
})]
|
|
190
|
+
}),
|
|
191
|
+
!!(f || g) && !!_ && /* @__PURE__ */ C(o, {}),
|
|
192
|
+
!!_ && /* @__PURE__ */ w(a, {
|
|
193
|
+
onClick: _,
|
|
194
|
+
children: [/* @__PURE__ */ C(O, {
|
|
195
|
+
className: "mr-2 size-4",
|
|
196
|
+
"aria-hidden": "true"
|
|
197
|
+
}), /* @__PURE__ */ C(n, {
|
|
198
|
+
tag: "span",
|
|
199
|
+
size: "xs",
|
|
200
|
+
className: "text-inherit",
|
|
201
|
+
children: k.logout
|
|
202
|
+
})]
|
|
203
|
+
})
|
|
204
|
+
] });
|
|
205
|
+
return /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C(s, { render: D?.(r) ?? /* @__PURE__ */ w(i, {
|
|
206
|
+
type: "button",
|
|
207
|
+
variant: "secondary",
|
|
208
|
+
buttonStyle: "ghost",
|
|
209
|
+
className: t("group h-10 max-w-56 justify-start gap-2 rounded-lg px-1.5 pr-2 text-foreground shadow-none hover:bg-foreground/5 data-[state=open]:bg-foreground/5", c ? "py-1.5" : "py-1", "dark:text-background dark:hover:bg-topbar-accent/50", x),
|
|
210
|
+
children: [
|
|
211
|
+
/* @__PURE__ */ w(h, {
|
|
212
|
+
className: "size-6 overflow-hidden rounded-full ring-1 ring-border/60",
|
|
213
|
+
children: [!!r.avatar && /* @__PURE__ */ C(p, {
|
|
214
|
+
src: r.avatar,
|
|
215
|
+
alt: r.name
|
|
216
|
+
}), /* @__PURE__ */ C(m, {
|
|
217
|
+
className: "rounded-md bg-success text-[length:var(--text-xxs)] font-semibold text-background",
|
|
218
|
+
children: M
|
|
219
|
+
})]
|
|
220
|
+
}),
|
|
221
|
+
/* @__PURE__ */ w("div", {
|
|
222
|
+
className: "grid min-w-0 flex-1 text-left leading-none",
|
|
223
|
+
children: [/* @__PURE__ */ C(n, {
|
|
224
|
+
size: "xs",
|
|
225
|
+
weight: "medium",
|
|
226
|
+
className: "truncate",
|
|
227
|
+
children: r.name
|
|
228
|
+
}), !!c && !!r.email && /* @__PURE__ */ C(n, {
|
|
229
|
+
size: "xxs",
|
|
230
|
+
type: "secondary",
|
|
231
|
+
className: "truncate",
|
|
232
|
+
children: r.email
|
|
233
|
+
})]
|
|
234
|
+
}),
|
|
235
|
+
/* @__PURE__ */ C(E, {
|
|
236
|
+
className: "size-3 shrink-0 text-muted-foreground",
|
|
237
|
+
"aria-hidden": "true"
|
|
238
|
+
})
|
|
239
|
+
]
|
|
240
|
+
}) }), /* @__PURE__ */ C(l, {
|
|
241
|
+
className: t("w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg p-3", T),
|
|
242
|
+
align: v,
|
|
243
|
+
side: y,
|
|
244
|
+
children: u ?? N
|
|
245
|
+
})] });
|
|
246
|
+
}
|
|
247
|
+
//#endregion
|
|
248
|
+
//#region src/components/layout/header/partials/header-notifications.tsx
|
|
249
|
+
var V = {
|
|
250
|
+
info: "border-l-info",
|
|
251
|
+
success: "border-l-success",
|
|
252
|
+
warning: "border-l-warning",
|
|
253
|
+
error: "border-l-destructive"
|
|
254
|
+
};
|
|
255
|
+
function H(e) {
|
|
256
|
+
return V[e ?? "info"];
|
|
257
|
+
}
|
|
258
|
+
function U({ notifications: f = [], unreadCount: p = 0, onNotificationClick: m, onMarkAllRead: h, onViewAll: g, viewAllHref: _, renderLink: y, LinkComponent: b, align: x = "end", side: E = "bottom", strings: D, className: O, contentClassName: k, renderNotification: A }) {
|
|
259
|
+
let j = e(P, D), M = v({
|
|
260
|
+
renderLink: y,
|
|
261
|
+
LinkComponent: b
|
|
262
|
+
}), N = p > 99 ? "99+" : String(p);
|
|
263
|
+
return /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C(s, { render: /* @__PURE__ */ w(i, {
|
|
264
|
+
variant: "secondary",
|
|
265
|
+
buttonStyle: "ghost",
|
|
266
|
+
size: "icon-sm",
|
|
267
|
+
"aria-label": j.triggerLabel,
|
|
268
|
+
className: t("relative", O),
|
|
269
|
+
children: [/* @__PURE__ */ C(T, {
|
|
270
|
+
className: "size-4",
|
|
271
|
+
"aria-hidden": "true"
|
|
272
|
+
}), p > 0 && /* @__PURE__ */ C(r, {
|
|
273
|
+
variant: "error",
|
|
274
|
+
className: "absolute -right-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full px-1 py-0 text-xxs",
|
|
275
|
+
children: N
|
|
276
|
+
})]
|
|
277
|
+
}) }), /* @__PURE__ */ w(l, {
|
|
278
|
+
className: t("w-80", k),
|
|
279
|
+
align: x,
|
|
280
|
+
side: E,
|
|
281
|
+
children: [
|
|
282
|
+
/* @__PURE__ */ w(c, {
|
|
283
|
+
className: "flex items-center justify-between gap-3",
|
|
284
|
+
children: [/* @__PURE__ */ C(n, {
|
|
285
|
+
tag: "span",
|
|
286
|
+
weight: "semibold",
|
|
287
|
+
children: j.heading
|
|
288
|
+
}), p > 0 && !!h && /* @__PURE__ */ C(i, {
|
|
289
|
+
type: "button",
|
|
290
|
+
variant: "secondary",
|
|
291
|
+
buttonStyle: "ghost",
|
|
292
|
+
size: "xs",
|
|
293
|
+
onClick: h,
|
|
294
|
+
className: "h-auto px-1 py-0 text-xs",
|
|
295
|
+
children: j.markAllRead
|
|
296
|
+
})]
|
|
297
|
+
}),
|
|
298
|
+
/* @__PURE__ */ C(o, {}),
|
|
299
|
+
f.length === 0 ? /* @__PURE__ */ C("div", {
|
|
300
|
+
className: "p-4 text-center",
|
|
301
|
+
children: /* @__PURE__ */ C(n, {
|
|
302
|
+
type: "secondary",
|
|
303
|
+
children: j.empty
|
|
304
|
+
})
|
|
305
|
+
}) : /* @__PURE__ */ C("div", {
|
|
306
|
+
className: "space-y-1 p-1",
|
|
307
|
+
children: f.map((e) => /* @__PURE__ */ C(W, {
|
|
308
|
+
notification: e,
|
|
309
|
+
onClick: m,
|
|
310
|
+
renderLink: M,
|
|
311
|
+
renderNotification: A
|
|
312
|
+
}, e.id))
|
|
313
|
+
}),
|
|
314
|
+
!!(g || _) && /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(o, {}), _ ? /* @__PURE__ */ C(u, {
|
|
315
|
+
href: _,
|
|
316
|
+
render: (e) => M({
|
|
317
|
+
...e,
|
|
318
|
+
href: _,
|
|
319
|
+
children: e.children
|
|
320
|
+
}),
|
|
321
|
+
children: j.viewAll
|
|
322
|
+
}) : /* @__PURE__ */ C(a, {
|
|
323
|
+
onClick: g,
|
|
324
|
+
children: j.viewAll
|
|
325
|
+
})] })
|
|
326
|
+
]
|
|
327
|
+
})] });
|
|
328
|
+
}
|
|
329
|
+
function W({ notification: e, onClick: r, renderLink: i, renderNotification: o }) {
|
|
330
|
+
if (o) return o(e);
|
|
331
|
+
let s = /* @__PURE__ */ w("div", {
|
|
332
|
+
className: "min-w-0 space-y-1",
|
|
333
|
+
children: [
|
|
334
|
+
/* @__PURE__ */ C(n, {
|
|
335
|
+
weight: "medium",
|
|
336
|
+
children: e.title
|
|
337
|
+
}),
|
|
338
|
+
!!e.description && /* @__PURE__ */ C(n, {
|
|
339
|
+
size: "xs",
|
|
340
|
+
type: "secondary",
|
|
341
|
+
children: e.description
|
|
342
|
+
}),
|
|
343
|
+
!!e.time && /* @__PURE__ */ C(n, {
|
|
344
|
+
size: "xxs",
|
|
345
|
+
type: "secondary",
|
|
346
|
+
children: e.time
|
|
347
|
+
})
|
|
348
|
+
]
|
|
349
|
+
}), c = t("items-start rounded-md border-l-2 px-3 py-2", H(e.tone), !e.read && "bg-muted/40");
|
|
350
|
+
return e.href ? /* @__PURE__ */ C(u, {
|
|
351
|
+
href: e.href,
|
|
352
|
+
className: c,
|
|
353
|
+
onClick: () => r?.(e),
|
|
354
|
+
render: (t) => i({
|
|
355
|
+
...t,
|
|
356
|
+
href: e.href,
|
|
357
|
+
children: t.children
|
|
358
|
+
}),
|
|
359
|
+
children: s
|
|
360
|
+
}) : /* @__PURE__ */ C(a, {
|
|
361
|
+
onClick: () => r?.(e),
|
|
362
|
+
className: c,
|
|
363
|
+
children: s
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
//#endregion
|
|
367
|
+
export { F as a, M as c, P as i, B as n, I as o, R as r, N as s, U as t };
|
|
368
|
+
|
|
369
|
+
//# sourceMappingURL=header-KpdoLtP9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-KpdoLtP9.js","names":[],"sources":["../../src/components/layout/header/partials/header-breadcrumbs.tsx","../../src/components/layout/header/header.tsx","../../src/components/layout/header/header.types.ts","../../src/components/layout/header/partials/header-search.tsx","../../src/components/layout/header/partials/header-user-menu.tsx","../../src/components/layout/header/partials/header-notifications.tsx"],"sourcesContent":["/** HeaderBreadcrumbs — breadcrumbs trail with optional sidebar trigger. */\nimport * as React from 'react';\n\nimport { Separator } from '@/components/base/display/separator';\nimport { Breadcrumbs } from '@/components/base/navigation/breadcrumbs';\nimport { SidebarTrigger } from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { BreadcrumbItem } from '../../layout.types';\nimport type { HeaderBreadcrumbsProps } from '../header.types';\n\nexport function HeaderBreadcrumbs({\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\ttriggerSlot,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: HeaderBreadcrumbsProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst items = React.useMemo<BreadcrumbItem[]>(() => {\n\t\tconst out: BreadcrumbItem[] = [];\n\t\tif (homeBreadcrumb) out.push(homeBreadcrumb);\n\t\tout.push(...breadcrumbs);\n\t\treturn out;\n\t}, [homeBreadcrumb, breadcrumbs]);\n\n\tconst showCrumbs = items.length > 0;\n\n\treturn (\n\t\t<div className={cn('relative flex min-h-9 items-stretch gap-3', className)}>\n\t\t\t{!!showSidebarTrigger && (\n\t\t\t\t<div className=\"relative flex min-h-9 items-center justify-center gap-2\">\n\t\t\t\t\t{triggerSlot ?? <SidebarTrigger className=\"size-7 [&_svg]:size-4\" />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!showCrumbs && (\n\t\t\t\t<>\n\t\t\t\t\t{!!showSidebarTrigger && <Separator orientation=\"vertical\" className=\"h-auto self-stretch\" />}\n\t\t\t\t\t<div className=\"flex min-w-0 items-center\">\n\t\t\t\t\t\t<Breadcrumbs breadcrumbs={items} size=\"xs\" renderLink={resolvedRenderLink} />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","/** Header — sticky top bar with breadcrumbs and slot-driven content regions. */\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport { HeaderBreadcrumbs } from './partials/header-breadcrumbs';\nimport type { HeaderProps } from './header.types';\n\nexport function Header({\n\tshowBreadcrumbs = true,\n\tbreadcrumbs = [],\n\thomeBreadcrumb = null,\n\tshowSidebarTrigger = true,\n\tbrand,\n\tleftContent,\n\tcenterContent,\n\trightContent,\n\tslots,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n\tcontentClassName,\n\tleftClassName,\n\tcenterClassName,\n\trightClassName,\n\tbreadcrumbsClassName,\n}: HeaderProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t'sticky top-0 z-40 flex min-h-[var(--topbar-height)] items-center border-b bg-background/70 px-4 py-2 backdrop-blur-md transition-[width,height] ease-linear md:px-5',\n\t\t\t\t'dark:bg-topbar',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className={cn('flex min-h-9 min-w-0 flex-1 items-stretch gap-4', contentClassName)}>\n\t\t\t\t{!!(slots?.brand ?? brand) && (\n\t\t\t\t\t<div className=\"hidden min-w-0 shrink-0 items-center md:flex\">\n\t\t\t\t\t\t{slots?.brand ?? brand}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!showBreadcrumbs && (slots?.breadcrumbs ?? (\n\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t<HeaderBreadcrumbs\n\t\t\t\t\t\t\tbreadcrumbs={breadcrumbs}\n\t\t\t\t\t\t\thomeBreadcrumb={homeBreadcrumb}\n\t\t\t\t\t\t\tshowSidebarTrigger={showSidebarTrigger}\n\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\tclassName={breadcrumbsClassName}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\n\t\t\t\t{!!(slots?.left ?? leftContent) && (\n\t\t\t\t\t<div className={cn('flex min-w-0 items-center', leftClassName)}>\n\t\t\t\t\t\t{slots?.left ?? leftContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.center ?? centerContent) && (\n\t\t\t\t\t<div className={cn('hidden min-w-0 shrink-0 items-center justify-center lg:flex', centerClassName)}>\n\t\t\t\t\t\t{slots?.center ?? centerContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(slots?.right ?? rightContent) && (\n\t\t\t\t\t<div className={cn('ml-auto flex shrink-0 items-center gap-2', rightClassName)}>\n\t\t\t\t\t\t{slots?.right ?? rightContent}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</header>\n\t);\n}\n","/**\n * Header layout and partial types.\n *\n * This layer is intentionally framework-neutral: links and route state enter\n * through `renderLink`, and app-specific content enters through slots.\n */\nimport type { ReactNode } from 'react';\n\nimport type {\n\tBreadcrumbItem,\n\tLayoutNavigationAdapter,\n\tLayoutUser,\n\tLinkComponent,\n} from '../layout.types';\n\nexport interface HeaderBreadcrumbsProps extends LayoutNavigationAdapter {\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\ttriggerSlot?: ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type NotificationTone = 'info' | 'success' | 'warning' | 'error';\n\nexport interface HeaderNotification {\n\tid: string | number;\n\ttitle: ReactNode;\n\tdescription?: ReactNode;\n\ttime?: ReactNode;\n\tread?: boolean;\n\ttone?: NotificationTone;\n\thref?: string;\n}\n\nexport interface HeaderNotificationsStrings {\n\ttriggerLabel: string;\n\theading: string;\n\tmarkAllRead: string;\n\tempty: string;\n\tviewAll: string;\n}\n\nexport const defaultHeaderNotificationsStrings: HeaderNotificationsStrings = {\n\ttriggerLabel: 'Notifications',\n\theading: 'Notifications',\n\tmarkAllRead: 'Mark all as read',\n\tempty: 'No new notifications',\n\tviewAll: 'View all notifications',\n};\n\nexport interface HeaderNotificationsProps extends LayoutNavigationAdapter {\n\tnotifications?: HeaderNotification[];\n\tunreadCount?: number;\n\tonNotificationClick?: (notification: HeaderNotification) => void;\n\tonMarkAllRead?: () => void;\n\tonViewAll?: () => void;\n\tviewAllHref?: string;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: Partial<HeaderNotificationsStrings>;\n\tclassName?: string;\n\tcontentClassName?: string;\n\trenderNotification?: (notification: HeaderNotification) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface HeaderSearchStrings {\n\tplaceholder: string;\n\tshortcutMac: string;\n\tshortcutPc: string;\n}\n\nexport const defaultHeaderSearchStrings: HeaderSearchStrings = {\n\tplaceholder: 'Search...',\n\tshortcutMac: '⌘K',\n\tshortcutPc: 'Ctrl+K',\n};\n\nexport interface HeaderSearchProps {\n\tonOpen?: () => void;\n\tisMac?: boolean;\n\tenableShortcut?: boolean;\n\tstrings?: Partial<HeaderSearchStrings>;\n\tclassName?: string;\n\ticonClassName?: string;\n\tshortcutSlot?: ReactNode;\n}\n\nexport interface HeaderUserMenuProps {\n\tuser: LayoutUser;\n\tshowEmail?: boolean;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\talign?: 'start' | 'center' | 'end';\n\tside?: 'top' | 'right' | 'bottom' | 'left';\n\tstrings?: Partial<HeaderUserMenuStrings>;\n\ttriggerClassName?: string;\n\tcontentClassName?: string;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nexport interface HeaderUserMenuStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultHeaderUserMenuStrings: HeaderUserMenuStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface HeaderSlots {\n\t/** Leading brand/logo region before breadcrumbs. */\n\tbrand?: ReactNode;\n\t/** Replaces the breadcrumb/sidebar-trigger region. */\n\tbreadcrumbs?: ReactNode;\n\t/** Leading content after breadcrumbs. Prefer this over `leftContent` for new code. */\n\tleft?: ReactNode;\n\t/** Center content, usually search or a scope switcher. */\n\tcenter?: ReactNode;\n\t/** Trailing content, usually notifications/user menu/actions. */\n\tright?: ReactNode;\n}\n\nexport interface HeaderProps extends LayoutNavigationAdapter {\n\tshowBreadcrumbs?: boolean;\n\tbreadcrumbs?: BreadcrumbItem[];\n\thomeBreadcrumb?: BreadcrumbItem | null;\n\tshowSidebarTrigger?: boolean;\n\tbrand?: ReactNode;\n\t/** @deprecated Prefer `slots.left`. */\n\tleftContent?: ReactNode;\n\t/** @deprecated Prefer `slots.center`. */\n\tcenterContent?: ReactNode;\n\t/** @deprecated Prefer `slots.right`. */\n\trightContent?: ReactNode;\n\tslots?: HeaderSlots;\n\tclassName?: string;\n\tcontentClassName?: string;\n\tleftClassName?: string;\n\tcenterClassName?: string;\n\trightClassName?: string;\n\tbreadcrumbsClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** HeaderSearch — framework-neutral search trigger with optional Cmd/Ctrl+K. */\nimport { useMemo } from 'react';\nimport { Command, Search } from 'lucide-react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useCommandShortcut } from '../../hooks';\nimport {\n\tdefaultHeaderSearchStrings,\n\ttype HeaderSearchProps,\n} from '../header.types';\n\nfunction detectMac(): boolean {\n\tif (typeof navigator === 'undefined') return false;\n\tconst ua = (navigator as Navigator & { userAgentData?: { platform?: string } }).userAgentData;\n\tif (ua?.platform) return ua.platform === 'macOS';\n\treturn /Mac|iPhone|iPad/.test(navigator.platform);\n}\n\nexport function HeaderSearch({\n\tonOpen,\n\tisMac,\n\tenableShortcut = true,\n\tstrings: stringsProp,\n\tclassName,\n\ticonClassName,\n\tshortcutSlot,\n}: HeaderSearchProps) {\n\tconst strings = useStrings(defaultHeaderSearchStrings, stringsProp);\n\tconst isMacResolved = useMemo(() => isMac ?? detectMac(), [isMac]);\n\tuseCommandShortcut({ key: 'k', enabled: enableShortcut, onTrigger: onOpen });\n\n\tconst shortcutTitle = isMacResolved ? strings.shortcutMac : strings.shortcutPc;\n\tconst shortcut = shortcutSlot ?? (\n\t\t<kbd className=\"hidden h-5 shrink-0 items-center gap-1 rounded bg-muted px-1.5 font-mono text-xxs text-muted-foreground lg:inline-flex dark:bg-muted/20\">\n\t\t\t{isMacResolved ? (\n\t\t\t\t<>\n\t\t\t\t\t<Command className=\"size-3 dark:text-muted/60\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"dark:text-muted/60\">K</Text>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"dark:text-muted/60\">Ctrl+K</Text>\n\t\t\t)}\n\t\t</kbd>\n\t);\n\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"outline\"\n\t\t\tonClick={onOpen}\n\t\t\tclassName={cn(\n\t\t\t\t'h-8 w-full min-w-[205px] justify-start gap-2 rounded-lg border-input bg-background px-2.5 shadow-none hover:bg-accent/50',\n\t\t\t\t'dark:border-topbar-accent/80 dark:bg-topbar-accent/40',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\ttitle={shortcutTitle}\n\t\t>\n\t\t\t<Search className={cn('size-3.5 shrink-0 text-muted-foreground dark:text-muted/60', iconClassName)} aria-hidden=\"true\" />\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"flex-1 text-left dark:text-muted/60\">\n\t\t\t\t{strings.placeholder}\n\t\t\t</Text>\n\t\t\t{shortcut}\n\t\t\t<span className=\"sr-only\">{strings.placeholder}</span>\n\t\t</Button>\n\t);\n}\n","/** HeaderUserMenu — avatar/name trigger with consumer-wired menu callbacks. */\nimport type { ReactElement } from 'react';\n\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n\tdefaultHeaderUserMenuStrings,\n\ttype HeaderUserMenuProps,\n} from '../header.types';\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function HeaderUserMenu({\n\tuser,\n\tshowEmail = true,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\ttriggerClassName,\n\tcontentClassName,\n\trenderTrigger,\n}: HeaderUserMenuProps) {\n\tconst strings = useStrings(defaultHeaderUserMenuStrings, stringsProp);\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst trigger = renderTrigger?.(user) ?? (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\tvariant=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tclassName={cn(\n\t\t\t\t'group h-10 max-w-56 justify-start gap-2 rounded-lg px-1.5 pr-2 text-foreground shadow-none hover:bg-foreground/5 data-[state=open]:bg-foreground/5',\n\t\t\t\tshowEmail ? 'py-1.5' : 'py-1',\n\t\t\t\t'dark:text-background dark:hover:bg-topbar-accent/50',\n\t\t\t\ttriggerClassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Avatar className=\"size-6 overflow-hidden rounded-full ring-1 ring-border/60\">\n\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t<AvatarFallback className=\"rounded-md bg-success text-[length:var(--text-xxs)] font-semibold text-background\">\n\t\t\t\t\t{initials}\n\t\t\t\t</AvatarFallback>\n\t\t\t</Avatar>\n\t\t\t<div className=\"grid min-w-0 flex-1 text-left leading-none\">\n\t\t\t\t<Text size=\"xs\" weight=\"medium\" className=\"truncate\">{user.name}</Text>\n\t\t\t\t{!!showEmail && !!user.email && (\n\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"truncate\">{user.email}</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<ChevronsUpDown className=\"size-3 shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n\t\t</Button>\n\t);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger render={trigger as ReactElement} />\n\t\t\t<DropdownMenuContent\n\t\t\t\tclassName={cn('w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg p-3', contentClassName)}\n\t\t\t\talign={align}\n\t\t\t\tside={side}\n\t\t\t>\n\t\t\t\t{customContent ?? defaultContent}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n","/** HeaderNotifications — bell dropdown for consumer-supplied notifications. */\nimport type { ReactElement } from 'react';\n\nimport { Bell } from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuLinkItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultHeaderNotificationsStrings,\n\ttype HeaderNotification,\n\ttype HeaderNotificationsProps,\n\ttype NotificationTone,\n} from '../header.types';\n\nconst TONE_BORDER: Record<NotificationTone, string> = {\n\tinfo: 'border-l-info',\n\tsuccess: 'border-l-success',\n\twarning: 'border-l-warning',\n\terror: 'border-l-destructive',\n};\n\nfunction getToneClass(tone: NotificationTone | undefined): string {\n\treturn TONE_BORDER[tone ?? 'info'];\n}\n\nexport function HeaderNotifications({\n\tnotifications = [],\n\tunreadCount = 0,\n\tonNotificationClick,\n\tonMarkAllRead,\n\tonViewAll,\n\tviewAllHref,\n\trenderLink,\n\tLinkComponent,\n\talign = 'end',\n\tside = 'bottom',\n\tstrings: stringsProp,\n\tclassName,\n\tcontentClassName,\n\trenderNotification,\n}: HeaderNotificationsProps) {\n\tconst strings = useStrings(defaultHeaderNotificationsStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst badgeText = unreadCount > 99 ? '99+' : String(unreadCount);\n\n\treturn (\n\t\t<DropdownMenu>\n\t\t\t<DropdownMenuTrigger\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\tsize=\"icon-sm\"\n\t\t\t\t\t\taria-label={strings.triggerLabel}\n\t\t\t\t\t\tclassName={cn('relative', className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Bell className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{unreadCount > 0 && (\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvariant=\"error\"\n\t\t\t\t\t\t\t\tclassName=\"absolute -right-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full px-1 py-0 text-xxs\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badgeText}\n\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<DropdownMenuContent className={cn('w-80', contentClassName)} align={align} side={side}>\n\t\t\t\t<DropdownMenuLabel className=\"flex items-center justify-between gap-3\">\n\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{strings.heading}</Text>\n\t\t\t\t\t{unreadCount > 0 && !!onMarkAllRead && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\tonClick={onMarkAllRead}\n\t\t\t\t\t\t\tclassName=\"h-auto px-1 py-0 text-xs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.markAllRead}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t<DropdownMenuSeparator />\n\n\t\t\t\t{notifications.length === 0 ? (\n\t\t\t\t\t<div className=\"p-4 text-center\">\n\t\t\t\t\t\t<Text type=\"secondary\">{strings.empty}</Text>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"space-y-1 p-1\">\n\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t<NotificationRow\n\t\t\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\t\t\tnotification={notification}\n\t\t\t\t\t\t\t\tonClick={onNotificationClick}\n\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\trenderNotification={renderNotification}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!(onViewAll || viewAllHref) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t{viewAllHref ? (\n\t\t\t\t\t\t\t<DropdownMenuLinkItem\n\t\t\t\t\t\t\t\thref={viewAllHref}\n\t\t\t\t\t\t\t\trender={(props) =>\n\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\t\thref: viewAllHref,\n\t\t\t\t\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t\t\t\t\t}) as ReactElement\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{strings.viewAll}\n\t\t\t\t\t\t\t</DropdownMenuLinkItem>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={onViewAll}>{strings.viewAll}</DropdownMenuItem>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction NotificationRow({\n\tnotification,\n\tonClick,\n\trenderLink,\n\trenderNotification,\n}: {\n\tnotification: HeaderNotification;\n\tonClick?: (n: HeaderNotification) => void;\n\trenderLink: NonNullable<HeaderNotificationsProps['renderLink']>;\n\trenderNotification?: HeaderNotificationsProps['renderNotification'];\n}) {\n\tif (renderNotification) return renderNotification(notification);\n\n\tconst content = (\n\t\t<div className=\"min-w-0 space-y-1\">\n\t\t\t<Text weight=\"medium\">{notification.title}</Text>\n\t\t\t{!!notification.description && <Text size=\"xs\" type=\"secondary\">{notification.description}</Text>}\n\t\t\t{!!notification.time && <Text size=\"xxs\" type=\"secondary\">{notification.time}</Text>}\n\t\t</div>\n\t);\n\n\tconst className = cn(\n\t\t'items-start rounded-md border-l-2 px-3 py-2',\n\t\tgetToneClass(notification.tone),\n\t\t!notification.read && 'bg-muted/40',\n\t);\n\n\tif (notification.href) {\n\t\treturn (\n\t\t\t<DropdownMenuLinkItem\n\t\t\t\thref={notification.href}\n\t\t\t\tclassName={className}\n\t\t\t\tonClick={() => onClick?.(notification)}\n\t\t\t\trender={(props) =>\n\t\t\t\t\trenderLink({\n\t\t\t\t\t\t...props,\n\t\t\t\t\t\thref: notification.href,\n\t\t\t\t\t\tchildren: props.children,\n\t\t\t\t\t}) as ReactElement\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</DropdownMenuLinkItem>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DropdownMenuItem onClick={() => onClick?.(notification)} className={className}>\n\t\t\t{content}\n\t\t</DropdownMenuItem>\n\t);\n}\n\n/** @deprecated Re-exported for backwards compat — use `HeaderNotification`. */\nexport type Notification = HeaderNotification;\n"],"mappings":";;;;;;;;;;;;;;;;AAYA,SAAgB,EAAkB,EACjC,iBAAc,EAAE,EAChB,oBAAiB,MACjB,wBAAqB,IACrB,gBACA,eACA,kBACA,gBAC0B;CAC1B,IAAM,IAAqB,EAAsB;EAAE;EAAY;EAAe,CAAC,EACzE,IAAQ,EAAM,cAAgC;EACnD,IAAM,IAAwB,EAAE;AAGhC,SAFI,KAAgB,EAAI,KAAK,EAAe,EAC5C,EAAI,KAAK,GAAG,EAAY,EACjB;IACL,CAAC,GAAgB,EAAY,CAAC,EAE3B,IAAa,EAAM,SAAS;AAElC,QACC,kBAAC,OAAD;EAAK,WAAW,EAAG,6CAA6C,EAAU;YAA1E,CACE,CAAC,CAAC,KACF,kBAAC,OAAD;GAAK,WAAU;aACb,KAAe,kBAAC,GAAD,EAAgB,WAAU,yBAA0B,CAAA;GAC/D,CAAA,EAEN,CAAC,CAAC,KACF,kBAAA,GAAA,EAAA,UAAA,CACE,CAAC,CAAC,KAAsB,kBAAC,GAAD;GAAW,aAAY;GAAW,WAAU;GAAwB,CAAA,EAC7F,kBAAC,OAAD;GAAK,WAAU;aACd,kBAAC,GAAD;IAAa,aAAa;IAAO,MAAK;IAAK,YAAY;IAAsB,CAAA;GACxE,CAAA,CACJ,EAAA,CAAA,CAEC;;;;;ACvCR,SAAgB,EAAO,EACtB,qBAAkB,IAClB,iBAAc,EAAE,EAChB,oBAAiB,MACjB,wBAAqB,IACrB,UACA,gBACA,kBACA,iBACA,UACA,eACA,kBACA,cACA,qBACA,kBACA,oBACA,mBACA,2BACe;CACf,IAAM,IAAqB,EAAsB;EAAE;EAAY;EAAe,CAAC;AAE/E,QACC,kBAAC,UAAD;EACC,WAAW,EACV,uKACA,kBACA,EACA;YAED,kBAAC,OAAD;GAAK,WAAW,EAAG,mDAAmD,EAAiB;aAAvF;IACE,CAAC,EAAE,GAAO,SAAS,MACnB,kBAAC,OAAD;KAAK,WAAU;eACb,GAAO,SAAS;KACZ,CAAA;IAGN,CAAC,CAAC,MAAoB,GAAO,eAC7B,kBAAC,OAAD;KAAK,WAAU;eACd,kBAAC,GAAD;MACc;MACG;MACI;MACpB,YAAY;MACZ,WAAW;MACV,CAAA;KACG,CAAA;IAGN,CAAC,EAAE,GAAO,QAAQ,MAClB,kBAAC,OAAD;KAAK,WAAW,EAAG,6BAA6B,EAAc;eAC5D,GAAO,QAAQ;KACX,CAAA;IAGN,CAAC,EAAE,GAAO,UAAU,MACpB,kBAAC,OAAD;KAAK,WAAW,EAAG,+DAA+D,EAAgB;eAChG,GAAO,UAAU;KACb,CAAA;IAGN,CAAC,EAAE,GAAO,SAAS,MACnB,kBAAC,OAAD;KAAK,WAAW,EAAG,4CAA4C,EAAe;eAC5E,GAAO,SAAS;KACZ,CAAA;IAEF;;EACE,CAAA;;;;AC5BX,IAAa,IAAgE;CAC5E,cAAc;CACd,SAAS;CACT,aAAa;CACb,OAAO;CACP,SAAS;CACT,EAyBY,IAAkD;CAC9D,aAAa;CACb,aAAa;CACb,YAAY;CACZ,EAiCY,IAAsD;CAClE,SAAS;CACT,UAAU;CACV,QAAQ;CACR;;;ACtGD,SAAS,IAAqB;AAC7B,KAAI,OAAO,YAAc,IAAa,QAAO;CAC7C,IAAM,IAAM,UAAoE;AAEhF,QADI,GAAI,WAAiB,EAAG,aAAa,UAClC,kBAAkB,KAAK,UAAU,SAAS;;AAGlD,SAAgB,EAAa,EAC5B,WACA,UACA,oBAAiB,IACjB,SAAS,GACT,cACA,kBACA,mBACqB;CACrB,IAAM,IAAU,EAAW,GAA4B,EAAY,EAC7D,IAAgB,QAAc,KAAS,GAAW,EAAE,CAAC,EAAM,CAAC;AAClE,GAAmB;EAAE,KAAK;EAAK,SAAS;EAAgB,WAAW;EAAQ,CAAC;CAE5E,IAAM,IAAgB,IAAgB,EAAQ,cAAc,EAAQ,YAC9D,IAAW,KAChB,kBAAC,OAAD;EAAK,WAAU;YACb,IACA,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,GAAD;GAAS,WAAU;GAA4B,eAAY;GAAS,CAAA,EACpE,kBAAC,GAAD;GAAM,KAAI;GAAO,MAAK;GAAK,WAAU;aAAqB;GAAQ,CAAA,CAChE,EAAA,CAAA,GAEH,kBAAC,GAAD;GAAM,KAAI;GAAO,MAAK;GAAK,WAAU;aAAqB;GAAa,CAAA;EAEnE,CAAA;AAGP,QACC,kBAAC,GAAD;EACC,MAAK;EACL,SAAQ;EACR,aAAY;EACZ,SAAS;EACT,WAAW,EACV,4HACA,yDACA,EACA;EACD,OAAO;YAVR;GAYC,kBAAC,GAAD;IAAQ,WAAW,EAAG,8DAA8D,EAAc;IAAE,eAAY;IAAS,CAAA;GACzH,kBAAC,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,MAAK;IAAY,WAAU;cACpD,EAAQ;IACH,CAAA;GACN;GACD,kBAAC,QAAD;IAAM,WAAU;cAAW,EAAQ;IAAmB,CAAA;GAC9C;;;;;AC7CX,SAAS,EAAe,GAAsB;AAC7C,QAAO,EACL,MAAM,IAAI,CACV,KAAK,MAAS,EAAK,GAAG,CACtB,OAAO,QAAQ,CACf,MAAM,GAAG,EAAE,CACX,KAAK,GAAG,CACR,aAAa;;AAGhB,SAAgB,EAAe,EAC9B,SACA,eAAY,IACZ,kBACA,cACA,eACA,aACA,WAAQ,OACR,UAAO,UACP,SAAS,GACT,qBACA,qBACA,oBACuB;CACvB,IAAM,IAAU,EAAW,GAA8B,EAAY,EAC/D,IAAW,EAAe,EAAK,KAAK,EAEpC,IACL,kBAAA,GAAA,EAAA,UAAA;EACE,CAAC,CAAC,KACF,kBAAC,GAAD;GAAkB,SAAS;aAA3B,CACC,kBAAC,GAAD;IAAM,WAAU;IAAc,eAAY;IAAS,CAAA,EACnD,kBAAC,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,WAAU;cAAgB,EAAQ;IAAe,CAAA,CAC1D;;EAEnB,CAAC,CAAC,KACF,kBAAC,GAAD;GAAkB,SAAS;aAA3B,CACC,kBAAC,GAAD;IAAU,WAAU;IAAc,eAAY;IAAS,CAAA,EACvD,kBAAC,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,WAAU;cAAgB,EAAQ;IAAgB,CAAA,CAC3D;;EAEnB,CAAC,EAAE,KAAa,MAAe,CAAC,CAAC,KAAY,kBAAC,GAAD,EAAyB,CAAA;EACtE,CAAC,CAAC,KACF,kBAAC,GAAD;GAAkB,SAAS;aAA3B,CACC,kBAAC,GAAD;IAAQ,WAAU;IAAc,eAAY;IAAS,CAAA,EACrD,kBAAC,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,WAAU;cAAgB,EAAQ;IAAc,CAAA,CACzD;;EAElB,EAAA,CAAA;AA+BJ,QACC,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,GAAD,EAAqB,QA9BP,IAAgB,EAAK,IACpC,kBAAC,GAAD;EACC,MAAK;EACL,SAAQ;EACR,aAAY;EACZ,WAAW,EACV,sJACA,IAAY,WAAW,QACvB,uDACA,EACA;YATF;GAWC,kBAAC,GAAD;IAAQ,WAAU;cAAlB,CACE,CAAC,CAAC,EAAK,UAAU,kBAAC,GAAD;KAAa,KAAK,EAAK;KAAQ,KAAK,EAAK;KAAQ,CAAA,EACnE,kBAAC,GAAD;KAAgB,WAAU;eACxB;KACe,CAAA,CACT;;GACT,kBAAC,OAAD;IAAK,WAAU;cAAf,CACC,kBAAC,GAAD;KAAM,MAAK;KAAK,QAAO;KAAS,WAAU;eAAY,EAAK;KAAY,CAAA,EACtE,CAAC,CAAC,KAAa,CAAC,CAAC,EAAK,SACtB,kBAAC,GAAD;KAAM,MAAK;KAAM,MAAK;KAAY,WAAU;eAAY,EAAK;KAAa,CAAA,CAEtE;;GACN,kBAAC,GAAD;IAAgB,WAAU;IAAwC,eAAY;IAAS,CAAA;GAC/E;KAKgD,CAAA,EACxD,kBAAC,GAAD;EACC,WAAW,EAAG,mEAAmE,EAAiB;EAC3F;EACD;YAEL,KAAiB;EACG,CAAA,CACR,EAAA,CAAA;;;;ACpFjB,IAAM,IAAgD;CACrD,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP;AAED,SAAS,EAAa,GAA4C;AACjE,QAAO,EAAY,KAAQ;;AAG5B,SAAgB,EAAoB,EACnC,mBAAgB,EAAE,EAClB,iBAAc,GACd,wBACA,kBACA,cACA,gBACA,eACA,kBACA,WAAQ,OACR,UAAO,UACP,SAAS,GACT,cACA,qBACA,yBAC4B;CAC5B,IAAM,IAAU,EAAW,GAAmC,EAAY,EACpE,IAAqB,EAAsB;EAAE;EAAY;EAAe,CAAC,EACzE,IAAY,IAAc,KAAK,QAAQ,OAAO,EAAY;AAEhE,QACC,kBAAC,GAAD,EAAA,UAAA,CACC,kBAAC,GAAD,EACC,QACC,kBAAC,GAAD;EACC,SAAQ;EACR,aAAY;EACZ,MAAK;EACL,cAAY,EAAQ;EACpB,WAAW,EAAG,YAAY,EAAU;YALrC,CAOC,kBAAC,GAAD;GAAM,WAAU;GAAS,eAAY;GAAS,CAAA,EAC7C,IAAc,KACd,kBAAC,GAAD;GACC,SAAQ;GACR,WAAU;aAET;GACM,CAAA,CAED;KAET,CAAA,EACF,kBAAC,GAAD;EAAqB,WAAW,EAAG,QAAQ,EAAiB;EAAS;EAAa;YAAlF;GACC,kBAAC,GAAD;IAAmB,WAAU;cAA7B,CACC,kBAAC,GAAD;KAAM,KAAI;KAAO,QAAO;eAAY,EAAQ;KAAe,CAAA,EAC1D,IAAc,KAAK,CAAC,CAAC,KACrB,kBAAC,GAAD;KACC,MAAK;KACL,SAAQ;KACR,aAAY;KACZ,MAAK;KACL,SAAS;KACT,WAAU;eAET,EAAQ;KACD,CAAA,CAES;;GACpB,kBAAC,GAAD,EAAyB,CAAA;GAExB,EAAc,WAAW,IACzB,kBAAC,OAAD;IAAK,WAAU;cACd,kBAAC,GAAD;KAAM,MAAK;eAAa,EAAQ;KAAa,CAAA;IACxC,CAAA,GAEN,kBAAC,OAAD;IAAK,WAAU;cACb,EAAc,KAAK,MACnB,kBAAC,GAAD;KAEe;KACd,SAAS;KACT,YAAY;KACQ;KACnB,EALI,EAAa,GAKjB,CACD;IACG,CAAA;GAGN,CAAC,EAAE,KAAa,MAChB,kBAAA,GAAA,EAAA,UAAA,CACC,kBAAC,GAAD,EAAyB,CAAA,EACxB,IACA,kBAAC,GAAD;IACC,MAAM;IACN,SAAS,MACR,EAAmB;KAClB,GAAG;KACH,MAAM;KACN,UAAU,EAAM;KAChB,CAAC;cAGF,EAAQ;IACa,CAAA,GAEvB,kBAAC,GAAD;IAAkB,SAAS;cAAY,EAAQ;IAA2B,CAAA,CAEzE,EAAA,CAAA;GAEiB;IACR,EAAA,CAAA;;AAIjB,SAAS,EAAgB,EACxB,iBACA,YACA,eACA,yBAME;AACF,KAAI,EAAoB,QAAO,EAAmB,EAAa;CAE/D,IAAM,IACL,kBAAC,OAAD;EAAK,WAAU;YAAf;GACC,kBAAC,GAAD;IAAM,QAAO;cAAU,EAAa;IAAa,CAAA;GAChD,CAAC,CAAC,EAAa,eAAe,kBAAC,GAAD;IAAM,MAAK;IAAK,MAAK;cAAa,EAAa;IAAmB,CAAA;GAChG,CAAC,CAAC,EAAa,QAAQ,kBAAC,GAAD;IAAM,MAAK;IAAM,MAAK;cAAa,EAAa;IAAY,CAAA;GAC/E;KAGD,IAAY,EACjB,+CACA,EAAa,EAAa,KAAK,EAC/B,CAAC,EAAa,QAAQ,cACtB;AAqBD,QAnBI,EAAa,OAEf,kBAAC,GAAD;EACC,MAAM,EAAa;EACR;EACX,eAAe,IAAU,EAAa;EACtC,SAAS,MACR,EAAW;GACV,GAAG;GACH,MAAM,EAAa;GACnB,UAAU,EAAM;GAChB,CAAC;YAGF;EACqB,CAAA,GAKxB,kBAAC,GAAD;EAAkB,eAAe,IAAU,EAAa;EAAa;YACnE;EACiB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cn as e } from "../lib/utils.js";
|
|
2
|
+
import { t } from "./text-DIxMTECE.js";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/typography/heading.tsx
|
|
5
|
+
var i = {
|
|
6
|
+
h1: "scroll-m-20 text-2xl font-semibold text-balance",
|
|
7
|
+
h2: "scroll-m-20 border-b pb-2 text-xl font-semibold first:mt-0",
|
|
8
|
+
h3: "scroll-m-20 text-lg font-semibold",
|
|
9
|
+
h4: "scroll-m-20 text-base font-semibold",
|
|
10
|
+
h5: "text-sm font-semibold",
|
|
11
|
+
h6: "text-xs font-semibold"
|
|
12
|
+
}, a = {
|
|
13
|
+
left: "text-left",
|
|
14
|
+
center: "text-center",
|
|
15
|
+
right: "text-right"
|
|
16
|
+
};
|
|
17
|
+
function o({ tag: o = "h3", className: s, children: c, subHeading: l, subHeadingClassName: u, subHeadingSize: d, containerClassName: f, align: p = "left", ...m }) {
|
|
18
|
+
let h = e("text-foreground antialiased", i[o], a[p], s);
|
|
19
|
+
return /* @__PURE__ */ r("div", {
|
|
20
|
+
className: e("space-y-1", a[p], f),
|
|
21
|
+
children: [!!c && /* @__PURE__ */ n(o, {
|
|
22
|
+
className: h,
|
|
23
|
+
"data-typography": "heading",
|
|
24
|
+
...m,
|
|
25
|
+
children: c
|
|
26
|
+
}), !!l && /* @__PURE__ */ n(t, {
|
|
27
|
+
size: d ?? "xs",
|
|
28
|
+
type: "secondary",
|
|
29
|
+
align: p,
|
|
30
|
+
className: u,
|
|
31
|
+
children: l
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
o.displayName = "Heading";
|
|
36
|
+
//#endregion
|
|
37
|
+
export { o as t };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=heading-BprqyzDs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading-BprqyzDs.js","names":[],"sources":["../../src/components/typography/heading.tsx"],"sourcesContent":["/**\n * Heading — semantic h1–h6 with consistent sizing, optional `subHeading` (rendered as\n * a Text below), alignment, and CSS-var driven `--heading-font-scale` for global scaling.\n */\nimport type { HTMLAttributes, ReactNode } from 'react';\n\nimport { type TextSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport Text from './text';\n\ntype HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst headingVariants: Record<HeadingTag, string> = {\n\th1: 'scroll-m-20 text-2xl font-semibold text-balance',\n\th2: 'scroll-m-20 border-b pb-2 text-xl font-semibold first:mt-0',\n\th3: 'scroll-m-20 text-lg font-semibold',\n\th4: 'scroll-m-20 text-base font-semibold',\n\th5: 'text-sm font-semibold',\n\th6: 'text-xs font-semibold',\n};\n\nconst alignmentClasses = {\n\tleft: 'text-left',\n\tcenter: 'text-center',\n\tright: 'text-right',\n} as const;\n\nexport interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n\ttag?: HeadingTag;\n\tsubHeading?: ReactNode;\n\tsubHeadingClassName?: string;\n\tsubHeadingSize?: TextSize;\n\tcontainerClassName?: string;\n\talign?: 'left' | 'center' | 'right';\n}\n\nfunction Heading({\n\ttag: Tag = 'h3',\n\tclassName,\n\tchildren,\n\tsubHeading,\n\tsubHeadingClassName,\n\tsubHeadingSize,\n\tcontainerClassName,\n\talign = 'left',\n\t...headingProps\n}: HeadingProps) {\n\tconst headingClasses = cn(\n\t\t'text-foreground antialiased',\n\t\theadingVariants[Tag],\n\t\talignmentClasses[align],\n\t\tclassName,\n\t);\n\n\tconst wrapperClasses = cn(\n\t\t'space-y-1',\n\t\talignmentClasses[align],\n\t\tcontainerClassName,\n\t);\n\n\treturn (\n\t\t<div className={wrapperClasses}>\n\t\t\t{!!children && (\n\t\t\t\t<Tag className={headingClasses} data-typography=\"heading\" {...headingProps}>\n\t\t\t\t\t{children}\n\t\t\t\t</Tag>\n\t\t\t)}\n\n\t\t\t{!!subHeading && (\n\t\t\t\t<Text\n\t\t\t\t\tsize={subHeadingSize ?? 'xs'}\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\talign={align}\n\t\t\t\t\tclassName={subHeadingClassName}\n\t\t\t\t>\n\t\t\t\t\t{subHeading}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nHeading.displayName = 'Heading';\n\nexport default Heading;\n"],"mappings":";;;;AAaA,IAAM,IAA8C;CACnD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,EAEK,IAAmB;CACxB,MAAM;CACN,QAAQ;CACR,OAAO;CACP;AAWD,SAAS,EAAQ,EAChB,KAAK,IAAM,MACX,cACA,aACA,eACA,wBACA,mBACA,uBACA,WAAQ,QACR,GAAG,KACa;CAChB,IAAM,IAAiB,EACtB,+BACA,EAAgB,IAChB,EAAiB,IACjB,EACA;AAQD,QACC,kBAAC,OAAD;EAAK,WAPiB,EACtB,aACA,EAAiB,IACjB,EAIgB;YAAhB,CACE,CAAC,CAAC,KACF,kBAAC,GAAD;GAAK,WAAW;GAAgB,mBAAgB;GAAU,GAAI;GAC5D;GACI,CAAA,EAGN,CAAC,CAAC,KACF,kBAAC,GAAD;GACC,MAAM,KAAkB;GACxB,MAAK;GACE;GACP,WAAW;aAEV;GACK,CAAA,CAEH;;;AAIR,EAAQ,cAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-D3uCBrYO.cjs`);const e=require(`../lib/utils.cjs`),t=require(`./text-DBnY6fcL.cjs`);let n=require(`react/jsx-runtime`);var r={h1:`scroll-m-20 text-2xl font-semibold text-balance`,h2:`scroll-m-20 border-b pb-2 text-xl font-semibold first:mt-0`,h3:`scroll-m-20 text-lg font-semibold`,h4:`scroll-m-20 text-base font-semibold`,h5:`text-sm font-semibold`,h6:`text-xs font-semibold`},i={left:`text-left`,center:`text-center`,right:`text-right`};function a({tag:a=`h3`,className:o,children:s,subHeading:c,subHeadingClassName:l,subHeadingSize:u,containerClassName:d,align:f=`left`,...p}){let m=e.cn(`text-foreground antialiased`,r[a],i[f],o);return(0,n.jsxs)(`div`,{className:e.cn(`space-y-1`,i[f],d),children:[!!s&&(0,n.jsx)(a,{className:m,"data-typography":`heading`,...p,children:s}),!!c&&(0,n.jsx)(t.t,{size:u??`xs`,type:`secondary`,align:f,className:l,children:c})]})}a.displayName=`Heading`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
+
//# sourceMappingURL=heading-mZc_jan1.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading-mZc_jan1.cjs","names":[],"sources":["../../src/components/typography/heading.tsx"],"sourcesContent":["/**\n * Heading — semantic h1–h6 with consistent sizing, optional `subHeading` (rendered as\n * a Text below), alignment, and CSS-var driven `--heading-font-scale` for global scaling.\n */\nimport type { HTMLAttributes, ReactNode } from 'react';\n\nimport { type TextSize } from '@/lib/ui-provider';\nimport { cn } from '@/lib/utils';\n\nimport Text from './text';\n\ntype HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst headingVariants: Record<HeadingTag, string> = {\n\th1: 'scroll-m-20 text-2xl font-semibold text-balance',\n\th2: 'scroll-m-20 border-b pb-2 text-xl font-semibold first:mt-0',\n\th3: 'scroll-m-20 text-lg font-semibold',\n\th4: 'scroll-m-20 text-base font-semibold',\n\th5: 'text-sm font-semibold',\n\th6: 'text-xs font-semibold',\n};\n\nconst alignmentClasses = {\n\tleft: 'text-left',\n\tcenter: 'text-center',\n\tright: 'text-right',\n} as const;\n\nexport interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {\n\ttag?: HeadingTag;\n\tsubHeading?: ReactNode;\n\tsubHeadingClassName?: string;\n\tsubHeadingSize?: TextSize;\n\tcontainerClassName?: string;\n\talign?: 'left' | 'center' | 'right';\n}\n\nfunction Heading({\n\ttag: Tag = 'h3',\n\tclassName,\n\tchildren,\n\tsubHeading,\n\tsubHeadingClassName,\n\tsubHeadingSize,\n\tcontainerClassName,\n\talign = 'left',\n\t...headingProps\n}: HeadingProps) {\n\tconst headingClasses = cn(\n\t\t'text-foreground antialiased',\n\t\theadingVariants[Tag],\n\t\talignmentClasses[align],\n\t\tclassName,\n\t);\n\n\tconst wrapperClasses = cn(\n\t\t'space-y-1',\n\t\talignmentClasses[align],\n\t\tcontainerClassName,\n\t);\n\n\treturn (\n\t\t<div className={wrapperClasses}>\n\t\t\t{!!children && (\n\t\t\t\t<Tag className={headingClasses} data-typography=\"heading\" {...headingProps}>\n\t\t\t\t\t{children}\n\t\t\t\t</Tag>\n\t\t\t)}\n\n\t\t\t{!!subHeading && (\n\t\t\t\t<Text\n\t\t\t\t\tsize={subHeadingSize ?? 'xs'}\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\talign={align}\n\t\t\t\t\tclassName={subHeadingClassName}\n\t\t\t\t>\n\t\t\t\t\t{subHeading}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nHeading.displayName = 'Heading';\n\nexport default Heading;\n"],"mappings":"wIAaA,IAAM,EAA8C,CACnD,GAAI,kDACJ,GAAI,6DACJ,GAAI,oCACJ,GAAI,sCACJ,GAAI,wBACJ,GAAI,wBACJ,CAEK,EAAmB,CACxB,KAAM,YACN,OAAQ,cACR,MAAO,aACP,CAWD,SAAS,EAAQ,CAChB,IAAK,EAAM,KACX,YACA,WACA,aACA,sBACA,iBACA,qBACA,QAAQ,OACR,GAAG,GACa,CAChB,IAAM,EAAiB,EAAA,GACtB,8BACA,EAAgB,GAChB,EAAiB,GACjB,EACA,CAQD,OACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAPiB,EAAA,GACtB,YACA,EAAiB,GACjB,EAIgB,UAAhB,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAD,CAAK,UAAW,EAAgB,kBAAgB,UAAU,GAAI,EAC5D,WACI,CAAA,CAGN,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CACC,KAAM,GAAkB,KACxB,KAAK,YACE,QACP,UAAW,WAEV,EACK,CAAA,CAEH,GAIR,EAAQ,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-D3uCBrYO.cjs`),t=require(`../lib/utils.cjs`),n=require(`./badge-C49SSz-6.cjs`);let r=require(`react`);r=e.t(r,1);let i=require(`react/jsx-runtime`);var a=({href:e,children:t,disabled:n,external:r,rel:a,target:o,...s})=>!e||n?(0,i.jsx)(`span`,{...s,children:t}):(0,i.jsx)(`a`,{href:e,target:o??(r?`_blank`:void 0),rel:a??(r?`noopener noreferrer`:void 0),...s,children:t}),o=({children:e,...t})=>(0,i.jsx)(`a`,{...t,children:e});function s({renderLink:e,LinkComponent:t}={}){return e||(t?({active:e,disabled:n,external:r,children:a,...o})=>n||!o.href?(0,i.jsx)(`span`,{className:o.className,children:a}):(0,i.jsx)(t,{...o,children:a}):a)}function c({renderLink:e,LinkComponent:t}={}){return(0,r.useMemo)(()=>s({renderLink:e,LinkComponent:t}),[e,t])}function l(e){if(e.startsWith(`#/`))return e.slice(1).split(`?`)[0]?.split(`#`)[0]||`/`;try{return new URL(e,`http://local.invalid`).pathname}catch{return e}}function u(e,t){let n=l(e);return n===t||n.startsWith(t+`/`)||n.startsWith(t+`?`)}function d(e){return e.label??e.title??``}function f(e,t){let n=d(e);return e.handle??e.href??(typeof n==`string`||typeof n==`number`?n:`nav-${t??0}`)}function p({value:e,size:r=`default`}){return(0,i.jsx)(n.t,{variant:`secondary`,className:t.cn(`ml-auto rounded-full tabular-nums text-sidebar-foreground`,r===`small`?`h-4 min-w-4 px-1.5`:`h-5 min-w-5 px-1.5`),children:e})}function m(e,t,n){return e&&n&&n[e]!=null?n[e]:t}function h({icon:e,iconMap:n={},size:a=20,className:o=`size-4`,...s}){if(!e)return null;if(typeof e==`string`){let t=n[e];return t?(0,i.jsx)(t,{className:o}):null}return r.isValidElement(e)?r.cloneElement(e,{className:t.cn(o,e.props.className),...s}):typeof e==`function`||typeof e==`object`&&e&&`$$typeof`in e?(0,i.jsx)(e,{className:o,width:a,height:a,...s}):null}function g(e,t,n,r,i){return e({href:t.href,children:n,className:r,active:i,disabled:t.disabled||!t.href,external:t.external})}function _(e=`/`){return(0,r.useCallback)(t=>!!t&&u(e,l(t)),[e])}function v({key:e,enabled:t=!0,onTrigger:n,preventDefault:i=!0}){(0,r.useEffect)(()=>{if(!t||!n||typeof document>`u`)return;let r=t=>{(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===e.toLowerCase()&&(i&&t.preventDefault(),n())};return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[t,e,n,i])}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
|
|
2
|
+
//# sourceMappingURL=hooks-C-uWoRq5.cjs.map
|