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
|
@@ -1,493 +0,0 @@
|
|
|
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-BbUN6W7E.js";
|
|
5
|
-
import { i } from "./command-Sq8XbHbA.js";
|
|
6
|
-
import { a, i as o, n as s, r as c, t as l } from "./command-CvZ6Emb8.js";
|
|
7
|
-
import { t as u } from "./popover-CF9VWt-l.js";
|
|
8
|
-
import { Fragment as d, useCallback as f, useEffect as p, useMemo as m, useRef as h, useState as g } from "react";
|
|
9
|
-
import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
10
|
-
import { Loader2 as b } from "lucide-react";
|
|
11
|
-
//#region src/components/features/mentions/hooks/use-mentions-search.ts
|
|
12
|
-
function x(e = {}) {
|
|
13
|
-
let { resources: t, onResourceSearch: n, initialMentions: r, debounceMs: i = 200 } = e, a = m(() => t ? Object.keys(t) : [], [t]), [o, s] = g(() => a[0] ?? null), [c, l] = g(!1), [u, d] = g(""), [_, v] = g({}), [y, b] = g(!1), [x, S] = g(() => r ? [...r] : []), C = h(0), w = h(null);
|
|
14
|
-
p(() => {
|
|
15
|
-
if (a.length === 0) {
|
|
16
|
-
s(null);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
(!o || !a.includes(o)) && s(a[0]);
|
|
20
|
-
}, [o, a]);
|
|
21
|
-
let T = m(() => o && t ? t[o] ?? null : null, [o, t]), E = f(async (e, r) => {
|
|
22
|
-
let i = t?.[e];
|
|
23
|
-
if (i?.search) return (await i.search(r)).map((t) => ({
|
|
24
|
-
...t,
|
|
25
|
-
kind: e
|
|
26
|
-
}));
|
|
27
|
-
if (i?.suggestions) {
|
|
28
|
-
let t = i.suggestions;
|
|
29
|
-
return (r.trim().length === 0 ? t : t.filter((e) => e.label.toLowerCase().includes(r.toLowerCase()))).map((t) => ({
|
|
30
|
-
...t,
|
|
31
|
-
kind: e
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
return n ? (await n(r, e)).map((t) => ({
|
|
35
|
-
...t,
|
|
36
|
-
kind: e
|
|
37
|
-
})) : [];
|
|
38
|
-
}, [t, n]);
|
|
39
|
-
p(() => {
|
|
40
|
-
if (w.current && clearTimeout(w.current), a.length === 0) {
|
|
41
|
-
v({});
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
let e = ++C.current, t = async () => {
|
|
45
|
-
b(!0);
|
|
46
|
-
try {
|
|
47
|
-
let t = await Promise.all(a.map(async (e) => {
|
|
48
|
-
try {
|
|
49
|
-
return [e, await E(e, u)];
|
|
50
|
-
} catch {
|
|
51
|
-
return [e, []];
|
|
52
|
-
}
|
|
53
|
-
}));
|
|
54
|
-
if (e !== C.current) return;
|
|
55
|
-
let n = {};
|
|
56
|
-
for (let [e, r] of t) n[e] = r;
|
|
57
|
-
v(n);
|
|
58
|
-
} finally {
|
|
59
|
-
e === C.current && b(!1);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
return w.current = setTimeout(() => {
|
|
63
|
-
t();
|
|
64
|
-
}, i), () => {
|
|
65
|
-
w.current && clearTimeout(w.current);
|
|
66
|
-
};
|
|
67
|
-
}, [
|
|
68
|
-
a,
|
|
69
|
-
u,
|
|
70
|
-
E,
|
|
71
|
-
i
|
|
72
|
-
]), p(() => {
|
|
73
|
-
if (c || !o || (_[o] ?? []).length > 0) return;
|
|
74
|
-
let e = a.find((e) => (_[e]?.length ?? 0) > 0);
|
|
75
|
-
e && e !== o && s(e);
|
|
76
|
-
}, [
|
|
77
|
-
o,
|
|
78
|
-
a,
|
|
79
|
-
c,
|
|
80
|
-
_
|
|
81
|
-
]);
|
|
82
|
-
let D = f((e) => {
|
|
83
|
-
s(e);
|
|
84
|
-
}, []), O = f((e) => {
|
|
85
|
-
d(e);
|
|
86
|
-
}, []), k = f((e) => {
|
|
87
|
-
S((t) => t.some((t) => t.id === e.id) ? t : [...t, e]);
|
|
88
|
-
}, []), A = f((e) => {
|
|
89
|
-
S((t) => t.filter((t) => t.id !== e));
|
|
90
|
-
}, []), j = f((e) => {
|
|
91
|
-
S([...e]);
|
|
92
|
-
}, []), M = f(() => {
|
|
93
|
-
S([]), d(""), l(!1), C.current++;
|
|
94
|
-
}, []), N = f((e) => {
|
|
95
|
-
let n = e.kind ?? o, r = `${n}:${e.id}`, i = t?.[n], a = e.href ?? i?.buildHref?.(e), s = {
|
|
96
|
-
id: r,
|
|
97
|
-
kind: n,
|
|
98
|
-
label: e.label,
|
|
99
|
-
href: a,
|
|
100
|
-
data: e.data
|
|
101
|
-
};
|
|
102
|
-
return k(s), s;
|
|
103
|
-
}, [
|
|
104
|
-
o,
|
|
105
|
-
k,
|
|
106
|
-
t
|
|
107
|
-
]);
|
|
108
|
-
return {
|
|
109
|
-
kinds: a,
|
|
110
|
-
activeKind: o,
|
|
111
|
-
setActiveKind: D,
|
|
112
|
-
activeResource: T,
|
|
113
|
-
query: u,
|
|
114
|
-
setQuery: O,
|
|
115
|
-
suggestions: m(() => o ? _[o] ?? [] : [], [o, _]),
|
|
116
|
-
suggestionsByKind: _,
|
|
117
|
-
isLoading: y,
|
|
118
|
-
mentions: x,
|
|
119
|
-
addMention: k,
|
|
120
|
-
removeMention: A,
|
|
121
|
-
setMentions: j,
|
|
122
|
-
reset: M,
|
|
123
|
-
selectSuggestion: N,
|
|
124
|
-
manualKindOverride: c,
|
|
125
|
-
setManualKindOverride: l
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
//#endregion
|
|
129
|
-
//#region src/components/features/mentions/utils/build-mention-html.ts
|
|
130
|
-
function S(e, t) {
|
|
131
|
-
let n = String(e.label ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), r = String(e.id).replace(/"/g, """), i = String(e.kind).replace(/"/g, """), a = t?.tone ? String(t.tone).replace(/"/g, """) : "", o = t?.triggerChar ?? (e.kind === "user" ? "@" : "");
|
|
132
|
-
return `<span class="rsc-mention" data-ref-id="${r}" data-ref-kind="${i}"${a ? ` data-ref-tone="${a}"` : ""} contenteditable="false">${o}${n}</span> `;
|
|
133
|
-
}
|
|
134
|
-
//#endregion
|
|
135
|
-
//#region src/components/features/mentions/hooks/use-mentions.ts
|
|
136
|
-
function C(e = {}) {
|
|
137
|
-
let t = e.resources, n = e.onResourceSearch, r = x({
|
|
138
|
-
...e,
|
|
139
|
-
resources: t,
|
|
140
|
-
onResourceSearch: n
|
|
141
|
-
}), [i, a] = g(!1), [o, s] = g(!1), c = h(null), l = h(null), u = f((e) => {
|
|
142
|
-
a(e), e || (c.current = null, l.current = null, s(!1), r.setManualKindOverride(!1));
|
|
143
|
-
}, [r]), d = e.editorRef, p = f(() => {
|
|
144
|
-
if (!t) return;
|
|
145
|
-
let e = {};
|
|
146
|
-
for (let [n, r] of Object.entries(t)) {
|
|
147
|
-
let t = r?.trigger;
|
|
148
|
-
typeof t == "string" && t.length > 0 && (e[t] = n);
|
|
149
|
-
}
|
|
150
|
-
if (Object.keys(e).length === 0) return;
|
|
151
|
-
let n = d?.current?.getCaretContext();
|
|
152
|
-
if (!n) {
|
|
153
|
-
c.current && (c.current = null, u(!1));
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
let i = Object.keys(e).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join(""), o = RegExp(`(?:^|\\s)([${i}])([\\p{L}\\p{N}_-]*)$`, "u"), f = n.textBefore.match(o);
|
|
157
|
-
if (!f) {
|
|
158
|
-
c.current && (c.current = null, u(!1));
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
let p = f[1], m = f[2] ?? "", h = e[p];
|
|
162
|
-
c.current = {
|
|
163
|
-
kind: h,
|
|
164
|
-
triggerChar: p,
|
|
165
|
-
consumedLength: p.length + m.length
|
|
166
|
-
}, s(!0), l.current !== p && (r.activeKind !== h && r.setActiveKind(h), r.setManualKindOverride(!1), l.current = p), r.query !== m && r.setQuery(m), a(!0);
|
|
167
|
-
}, [
|
|
168
|
-
d,
|
|
169
|
-
t,
|
|
170
|
-
r,
|
|
171
|
-
u
|
|
172
|
-
]), m = f((e) => {
|
|
173
|
-
let n = r.selectSuggestion(e), i = c.current, a = t?.[n.kind]?.tone, o = S(n, {
|
|
174
|
-
triggerChar: i?.triggerChar,
|
|
175
|
-
tone: a
|
|
176
|
-
});
|
|
177
|
-
return i && i.consumedLength > 0 && d?.current ? (d.current.replaceBeforeCaret(i.consumedLength, o), c.current = null) : d?.current && d.current.insertHTML(o), u(!1), n;
|
|
178
|
-
}, [
|
|
179
|
-
d,
|
|
180
|
-
t,
|
|
181
|
-
r,
|
|
182
|
-
u
|
|
183
|
-
]);
|
|
184
|
-
return {
|
|
185
|
-
...r,
|
|
186
|
-
pickerOpen: i,
|
|
187
|
-
setPickerOpen: u,
|
|
188
|
-
triggerActive: o,
|
|
189
|
-
handleCaretChange: p,
|
|
190
|
-
pickSuggestion: m
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
//#endregion
|
|
194
|
-
//#region src/components/features/mentions/partials/mention-chip.tsx
|
|
195
|
-
var w = {
|
|
196
|
-
primary: "secondary",
|
|
197
|
-
success: "success",
|
|
198
|
-
warning: "warning",
|
|
199
|
-
destructive: "destructive",
|
|
200
|
-
info: "info",
|
|
201
|
-
secondary: "secondary"
|
|
202
|
-
}, T = ({ mention: e, resource: n, asLink: i = !0, onClick: a, trailing: o, className: s }) => {
|
|
203
|
-
if (n?.renderChip) return /* @__PURE__ */ v(_, { children: n.renderChip(e) });
|
|
204
|
-
let c = w[n?.tone ?? "secondary"] ?? w.secondary, l = n?.icon, u = /* @__PURE__ */ y(r, {
|
|
205
|
-
variant: c,
|
|
206
|
-
inline: !0,
|
|
207
|
-
"data-ref-id": e.id,
|
|
208
|
-
"data-ref-kind": e.kind,
|
|
209
|
-
className: t("align-[-0.15em] cursor-default whitespace-nowrap", s),
|
|
210
|
-
children: [
|
|
211
|
-
l ? /* @__PURE__ */ v(l, {
|
|
212
|
-
className: "size-3 shrink-0",
|
|
213
|
-
"aria-hidden": !0
|
|
214
|
-
}) : null,
|
|
215
|
-
/* @__PURE__ */ v("span", {
|
|
216
|
-
className: "truncate max-w-[14rem]",
|
|
217
|
-
children: e.label
|
|
218
|
-
}),
|
|
219
|
-
o
|
|
220
|
-
]
|
|
221
|
-
});
|
|
222
|
-
return i && e.href ? /* @__PURE__ */ v("a", {
|
|
223
|
-
href: e.href,
|
|
224
|
-
target: "_blank",
|
|
225
|
-
rel: "noreferrer noopener",
|
|
226
|
-
onClick: a,
|
|
227
|
-
className: "inline align-baseline no-underline hover:opacity-90",
|
|
228
|
-
children: u
|
|
229
|
-
}) : a ? /* @__PURE__ */ v("span", {
|
|
230
|
-
onClick: a,
|
|
231
|
-
className: "inline align-baseline",
|
|
232
|
-
children: u
|
|
233
|
-
}) : u;
|
|
234
|
-
}, E = /<(span|a)\b([^>]*?)data-ref-id\s*=\s*"([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi;
|
|
235
|
-
function D(e) {
|
|
236
|
-
if (!e) return [];
|
|
237
|
-
let t = [], n = 0, r;
|
|
238
|
-
for (E.lastIndex = 0; (r = E.exec(e)) !== null;) {
|
|
239
|
-
let [i, , , a] = r, o = e.slice(n, r.index);
|
|
240
|
-
o.length > 0 && t.push({
|
|
241
|
-
kind: "html",
|
|
242
|
-
value: o
|
|
243
|
-
}), t.push({
|
|
244
|
-
kind: "mention",
|
|
245
|
-
refId: a,
|
|
246
|
-
fallback: i
|
|
247
|
-
}), n = r.index + i.length;
|
|
248
|
-
}
|
|
249
|
-
let i = e.slice(n);
|
|
250
|
-
return i.length > 0 && t.push({
|
|
251
|
-
kind: "html",
|
|
252
|
-
value: i
|
|
253
|
-
}), t;
|
|
254
|
-
}
|
|
255
|
-
//#endregion
|
|
256
|
-
//#region src/components/features/mentions/partials/mention-content.tsx
|
|
257
|
-
var O = "prose prose-sm prose-p:my-0.5 prose-p:leading-relaxed prose-headings:my-1 prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-strong:font-semibold prose-ul:my-0.5 prose-ol:my-0.5 prose-li:my-0.5 max-w-none";
|
|
258
|
-
function k(e) {
|
|
259
|
-
let { html: n, mentions: r, resources: i, renderMention: a, sanitizer: o, className: s, prose: c = !0 } = e, l = i, u = o ? o(n ?? "") : n ?? "", f = /* @__PURE__ */ new Map();
|
|
260
|
-
for (let e of r ?? []) f.set(e.id, e);
|
|
261
|
-
let p = f.size > 0 ? D(u) : [{
|
|
262
|
-
kind: "html",
|
|
263
|
-
value: u
|
|
264
|
-
}], m = (e) => {
|
|
265
|
-
if (a) return a(e);
|
|
266
|
-
let t = l?.[e.kind];
|
|
267
|
-
return /* @__PURE__ */ v(T, {
|
|
268
|
-
mention: e,
|
|
269
|
-
resource: t
|
|
270
|
-
});
|
|
271
|
-
}, h = p.map((e, t) => {
|
|
272
|
-
if (e.kind === "mention") {
|
|
273
|
-
let n = f.get(e.refId);
|
|
274
|
-
return n ? /* @__PURE__ */ v(d, { children: m(n) }, `ref-${t}-${e.refId}`) : /* @__PURE__ */ v("span", { dangerouslySetInnerHTML: { __html: e.fallback } }, `fallback-${t}`);
|
|
275
|
-
}
|
|
276
|
-
return /* @__PURE__ */ v("span", { dangerouslySetInnerHTML: { __html: e.value } }, `html-${t}`);
|
|
277
|
-
});
|
|
278
|
-
return c ? /* @__PURE__ */ v("div", {
|
|
279
|
-
className: t(O, s),
|
|
280
|
-
children: h
|
|
281
|
-
}) : /* @__PURE__ */ v(_, { children: h });
|
|
282
|
-
}
|
|
283
|
-
var A = (e) => /* @__PURE__ */ v(k, { ...e }), j = {
|
|
284
|
-
title: "Insert reference",
|
|
285
|
-
searchPlaceholder: "Search…",
|
|
286
|
-
empty: "No matches.",
|
|
287
|
-
loading: "Searching…"
|
|
288
|
-
}, M = {
|
|
289
|
-
title: "Insert reference",
|
|
290
|
-
empty: "No matches.",
|
|
291
|
-
loading: "Searching…"
|
|
292
|
-
};
|
|
293
|
-
//#endregion
|
|
294
|
-
//#region src/components/features/mentions/partials/mention-picker.tsx
|
|
295
|
-
function N({ open: r, activeKind: d, setActiveKind: f, kinds: p, resources: m, query: h, setQuery: g, suggestions: _, isLoading: x, onSelect: S, strings: C, className: w }) {
|
|
296
|
-
let T = e(j, C);
|
|
297
|
-
return r ? /* @__PURE__ */ y(u, {
|
|
298
|
-
align: "start",
|
|
299
|
-
className: t("w-72 overflow-hidden p-0", w),
|
|
300
|
-
children: [/* @__PURE__ */ y("div", {
|
|
301
|
-
className: "border-b border-border/60 px-3 py-2",
|
|
302
|
-
children: [/* @__PURE__ */ v(n, {
|
|
303
|
-
size: "xxs",
|
|
304
|
-
type: "secondary",
|
|
305
|
-
weight: "medium",
|
|
306
|
-
className: "uppercase tracking-wide",
|
|
307
|
-
children: T.title
|
|
308
|
-
}), p.length > 1 && /* @__PURE__ */ v("div", {
|
|
309
|
-
className: "mt-2 flex flex-wrap gap-1",
|
|
310
|
-
children: p.map((e) => {
|
|
311
|
-
let n = m?.[e], r = n?.icon;
|
|
312
|
-
return /* @__PURE__ */ y("button", {
|
|
313
|
-
type: "button",
|
|
314
|
-
onClick: () => f(e),
|
|
315
|
-
className: t("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xxs font-medium ring-1 ring-inset transition-colors", e === d ? "bg-primary text-primary-foreground ring-primary" : "bg-muted text-muted-foreground ring-border/60 hover:bg-muted/80"),
|
|
316
|
-
children: [r ? /* @__PURE__ */ v(r, { className: "size-3" }) : null, /* @__PURE__ */ v("span", { children: n?.label ?? String(e) })]
|
|
317
|
-
}, e);
|
|
318
|
-
})
|
|
319
|
-
})]
|
|
320
|
-
}), /* @__PURE__ */ y(l, {
|
|
321
|
-
shouldFilter: !1,
|
|
322
|
-
children: [/* @__PURE__ */ v(i, {
|
|
323
|
-
placeholder: T.searchPlaceholder,
|
|
324
|
-
value: h,
|
|
325
|
-
onValueChange: g
|
|
326
|
-
}), /* @__PURE__ */ y(a, { children: [
|
|
327
|
-
x ? /* @__PURE__ */ y("div", {
|
|
328
|
-
className: "text-muted-foreground flex items-center justify-center gap-2 py-3",
|
|
329
|
-
children: [/* @__PURE__ */ v(b, {
|
|
330
|
-
className: "size-3.5 animate-spin",
|
|
331
|
-
"aria-hidden": !0
|
|
332
|
-
}), /* @__PURE__ */ v(n, {
|
|
333
|
-
tag: "span",
|
|
334
|
-
size: "xs",
|
|
335
|
-
type: "secondary",
|
|
336
|
-
children: T.loading
|
|
337
|
-
})]
|
|
338
|
-
}) : null,
|
|
339
|
-
/* @__PURE__ */ v(s, { children: T.empty }),
|
|
340
|
-
/* @__PURE__ */ v(c, { children: _.map((e) => {
|
|
341
|
-
let t = e.kind ?? d ?? "";
|
|
342
|
-
return /* @__PURE__ */ v(o, {
|
|
343
|
-
value: `${t}:${e.id}`,
|
|
344
|
-
onSelect: () => S(e),
|
|
345
|
-
children: /* @__PURE__ */ y("div", {
|
|
346
|
-
className: "flex min-w-0 flex-1 flex-col leading-tight",
|
|
347
|
-
children: [/* @__PURE__ */ v(n, {
|
|
348
|
-
tag: "span",
|
|
349
|
-
size: "xs",
|
|
350
|
-
weight: "medium",
|
|
351
|
-
className: "truncate",
|
|
352
|
-
children: e.label
|
|
353
|
-
}), e.description ? /* @__PURE__ */ v(n, {
|
|
354
|
-
tag: "span",
|
|
355
|
-
size: "xxs",
|
|
356
|
-
type: "secondary",
|
|
357
|
-
className: "mt-0.5 truncate",
|
|
358
|
-
children: e.description
|
|
359
|
-
}) : null]
|
|
360
|
-
})
|
|
361
|
-
}, `${t}:${e.id}`);
|
|
362
|
-
}) })
|
|
363
|
-
] })]
|
|
364
|
-
})]
|
|
365
|
-
}) : null;
|
|
366
|
-
}
|
|
367
|
-
//#endregion
|
|
368
|
-
//#region src/components/features/mentions/partials/mention-inline-suggestions.tsx
|
|
369
|
-
function P({ open: r, activeKind: i, setActiveKind: a, kinds: o, resources: s, suggestionsByKind: c, suggestions: l, isLoading: u, query: d, onManualKindChange: f, onSelect: p, strings: m, className: h }) {
|
|
370
|
-
let g = e(M, m);
|
|
371
|
-
return r ? /* @__PURE__ */ y("div", {
|
|
372
|
-
onMouseDown: (e) => e.preventDefault(),
|
|
373
|
-
className: t("bg-popover text-popover-foreground absolute left-0 top-full z-40 mt-1 w-80 max-w-[min(theme(spacing.96),100%)]", "border-border/60 rounded-md border shadow-md ring-1 ring-foreground/[0.04]", "overflow-hidden", h),
|
|
374
|
-
role: "listbox",
|
|
375
|
-
children: [/* @__PURE__ */ y("div", {
|
|
376
|
-
className: "border-b border-border/60 px-3 py-2",
|
|
377
|
-
children: [/* @__PURE__ */ y("div", {
|
|
378
|
-
className: "flex items-baseline justify-between gap-2",
|
|
379
|
-
children: [/* @__PURE__ */ v(n, {
|
|
380
|
-
size: "xxs",
|
|
381
|
-
type: "secondary",
|
|
382
|
-
weight: "medium",
|
|
383
|
-
className: "uppercase tracking-wide",
|
|
384
|
-
children: g.title
|
|
385
|
-
}), d ? /* @__PURE__ */ y(n, {
|
|
386
|
-
tag: "span",
|
|
387
|
-
size: "xxs",
|
|
388
|
-
type: "secondary",
|
|
389
|
-
className: "truncate font-mono",
|
|
390
|
-
children: [
|
|
391
|
-
"“",
|
|
392
|
-
d,
|
|
393
|
-
"”"
|
|
394
|
-
]
|
|
395
|
-
}) : null]
|
|
396
|
-
}), o.length > 1 && /* @__PURE__ */ v("div", {
|
|
397
|
-
className: "mt-2 flex flex-wrap gap-1",
|
|
398
|
-
children: o.map((e) => {
|
|
399
|
-
let n = s?.[e], r = n?.icon, o = e === i, l = c?.[e]?.length ?? 0;
|
|
400
|
-
return /* @__PURE__ */ y("button", {
|
|
401
|
-
type: "button",
|
|
402
|
-
onClick: () => {
|
|
403
|
-
a(e), f?.();
|
|
404
|
-
},
|
|
405
|
-
className: t("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xxs font-medium ring-1 ring-inset transition-colors", o ? "bg-primary text-primary-foreground ring-primary" : l > 0 ? "bg-muted text-foreground ring-border/60 hover:bg-muted/80" : "bg-muted/40 text-muted-foreground ring-border/40 hover:bg-muted/60"),
|
|
406
|
-
children: [
|
|
407
|
-
r ? /* @__PURE__ */ v(r, { className: "size-3" }) : null,
|
|
408
|
-
/* @__PURE__ */ v("span", { children: n?.label ?? String(e) }),
|
|
409
|
-
l > 0 && /* @__PURE__ */ v("span", {
|
|
410
|
-
className: t("tabular-nums", o ? "opacity-90" : "opacity-70"),
|
|
411
|
-
children: l
|
|
412
|
-
})
|
|
413
|
-
]
|
|
414
|
-
}, e);
|
|
415
|
-
})
|
|
416
|
-
})]
|
|
417
|
-
}), /* @__PURE__ */ y("div", {
|
|
418
|
-
className: "max-h-72 overflow-y-auto py-1",
|
|
419
|
-
children: [
|
|
420
|
-
u ? /* @__PURE__ */ y("div", {
|
|
421
|
-
className: "text-muted-foreground flex items-center justify-center gap-2 py-3",
|
|
422
|
-
children: [/* @__PURE__ */ v(b, {
|
|
423
|
-
className: "size-3.5 animate-spin",
|
|
424
|
-
"aria-hidden": !0
|
|
425
|
-
}), /* @__PURE__ */ v(n, {
|
|
426
|
-
tag: "span",
|
|
427
|
-
size: "xs",
|
|
428
|
-
type: "secondary",
|
|
429
|
-
children: g.loading
|
|
430
|
-
})]
|
|
431
|
-
}) : null,
|
|
432
|
-
!u && l.length === 0 ? /* @__PURE__ */ v("div", {
|
|
433
|
-
className: "px-3 py-3",
|
|
434
|
-
children: /* @__PURE__ */ v(n, {
|
|
435
|
-
size: "xs",
|
|
436
|
-
type: "secondary",
|
|
437
|
-
children: g.empty
|
|
438
|
-
})
|
|
439
|
-
}) : null,
|
|
440
|
-
l.map((e) => {
|
|
441
|
-
let r = e.kind ?? i ?? "";
|
|
442
|
-
return /* @__PURE__ */ v("button", {
|
|
443
|
-
type: "button",
|
|
444
|
-
role: "option",
|
|
445
|
-
"data-ref-id": `${r}:${e.id}`,
|
|
446
|
-
onClick: () => p(e),
|
|
447
|
-
className: t("flex w-full min-w-0 items-start gap-2 px-3 py-1.5 text-left", "hover:bg-muted/60 focus-visible:bg-muted/60 transition-colors"),
|
|
448
|
-
children: /* @__PURE__ */ y("div", {
|
|
449
|
-
className: "flex min-w-0 flex-1 flex-col leading-tight",
|
|
450
|
-
children: [/* @__PURE__ */ v(n, {
|
|
451
|
-
tag: "span",
|
|
452
|
-
size: "xs",
|
|
453
|
-
weight: "medium",
|
|
454
|
-
className: "truncate",
|
|
455
|
-
children: e.label
|
|
456
|
-
}), e.description ? /* @__PURE__ */ v(n, {
|
|
457
|
-
tag: "span",
|
|
458
|
-
size: "xxs",
|
|
459
|
-
type: "secondary",
|
|
460
|
-
className: "mt-0.5 truncate",
|
|
461
|
-
children: e.description
|
|
462
|
-
}) : null]
|
|
463
|
-
})
|
|
464
|
-
}, `${r}:${e.id}`);
|
|
465
|
-
})
|
|
466
|
-
]
|
|
467
|
-
})]
|
|
468
|
-
}) : null;
|
|
469
|
-
}
|
|
470
|
-
//#endregion
|
|
471
|
-
//#region src/components/features/mentions/utils/parse-mentions-from-html.ts
|
|
472
|
-
var F = /<(?:span|a)\b[^>]*?data-ref-id\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/(?:span|a)>/gi, I = /data-ref-kind\s*=\s*"([^"]+)"/i;
|
|
473
|
-
function L(e) {
|
|
474
|
-
let t = [];
|
|
475
|
-
if (!e) return t;
|
|
476
|
-
let n = /* @__PURE__ */ new Set(), r;
|
|
477
|
-
for (F.lastIndex = 0; (r = F.exec(e)) !== null;) {
|
|
478
|
-
let [e, i, a] = r;
|
|
479
|
-
if (n.has(i)) continue;
|
|
480
|
-
n.add(i);
|
|
481
|
-
let o = e.match(I)?.[1] ?? i.split(":")[0] ?? "", s = (a ?? "").replace(/<[^>]*>/g, "").replace(/ /g, " ").replace(/^[@#$&%!~]\s*/, "").trim();
|
|
482
|
-
t.push({
|
|
483
|
-
id: i,
|
|
484
|
-
kind: o,
|
|
485
|
-
label: s
|
|
486
|
-
});
|
|
487
|
-
}
|
|
488
|
-
return t;
|
|
489
|
-
}
|
|
490
|
-
//#endregion
|
|
491
|
-
export { j as a, D as c, S as d, x as f, M as i, T as l, P as n, k as o, N as r, A as s, L as t, C as u };
|
|
492
|
-
|
|
493
|
-
//# sourceMappingURL=mentions-DzG8mX5H.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mentions-DzG8mX5H.js","names":[],"sources":["../../src/components/features/mentions/hooks/use-mentions-search.ts","../../src/components/features/mentions/utils/build-mention-html.ts","../../src/components/features/mentions/hooks/use-mentions.ts","../../src/components/features/mentions/partials/mention-chip.tsx","../../src/components/features/mentions/utils/split-html-by-mentions.ts","../../src/components/features/mentions/partials/mention-content.tsx","../../src/components/features/mentions/mentions.strings.ts","../../src/components/features/mentions/partials/mention-picker.tsx","../../src/components/features/mentions/partials/mention-inline-suggestions.tsx","../../src/components/features/mentions/utils/parse-mentions-from-html.ts"],"sourcesContent":["/**\n * useMentionsSearch — pure search state for the mention picker.\n *\n * Runs **all registered kinds in parallel** for the same needle so the\n * caller can render mixed results in tabs and the picker can auto-\n * switch when the active kind has zero matches but another does. The\n * caller still controls which kind is *active* (the one whose\n * suggestions render); manual switches are remembered and not\n * overridden by subsequent caret-driven re-detections.\n *\n * Suggestion lookup order per kind:\n * 1. `resources[kind].search(needle)` — per-kind callback\n * 2. `resources[kind].suggestions` — static catalogue\n * 3. global `onResourceSearch(needle, kind)` — fallback\n */\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type {\n Mention,\n MentionResource,\n MentionSuggestion,\n MentionsResourceSearch,\n} from '../mentions.types';\n\nexport interface UseMentionsSearchOptions<TResource extends string = string> {\n resources?: Partial<Record<TResource, MentionResource<TResource>>>;\n onResourceSearch?: MentionsResourceSearch<TResource>;\n initialMentions?: ReadonlyArray<Mention<TResource>>;\n /** Debounce window for async search. Default: 200ms. */\n debounceMs?: number;\n}\n\nexport interface UseMentionsSearchReturn<TResource extends string = string> {\n kinds: ReadonlyArray<TResource>;\n activeKind: TResource | null;\n setActiveKind: (kind: TResource | null) => void;\n activeResource: MentionResource<TResource> | null;\n\n query: string;\n setQuery: (q: string) => void;\n\n /** Suggestions for the active kind (`suggestionsByKind[activeKind]`). */\n suggestions: ReadonlyArray<MentionSuggestion<TResource>>;\n /** Per-kind suggestion buckets — useful for cross-kind UIs. */\n suggestionsByKind: Readonly<Record<string, ReadonlyArray<MentionSuggestion<TResource>>>>;\n isLoading: boolean;\n\n mentions: ReadonlyArray<Mention<TResource>>;\n addMention: (mention: Mention<TResource>) => void;\n removeMention: (id: string) => void;\n setMentions: (next: ReadonlyArray<Mention<TResource>>) => void;\n reset: () => void;\n\n selectSuggestion: (\n suggestion: MentionSuggestion<TResource>,\n ) => Mention<TResource>;\n\n /** True if the consumer manually picked a tab. The trigger detector\n * checks this and refuses to override the active kind on next caret\n * change while it's true. Reset on `setManualKindOverride(false)` or\n * `reset()`. */\n manualKindOverride: boolean;\n setManualKindOverride: (override: boolean) => void;\n}\n\nexport function useMentionsSearch<TResource extends string = string>(\n options: UseMentionsSearchOptions<TResource> = {},\n): UseMentionsSearchReturn<TResource> {\n const { resources, onResourceSearch, initialMentions, debounceMs = 200 } = options;\n\n const kinds = useMemo<ReadonlyArray<TResource>>(\n () => (resources ? (Object.keys(resources) as TResource[]) : []),\n [resources],\n );\n\n const [activeKind, setActiveKindState] = useState<TResource | null>(\n () => kinds[0] ?? null,\n );\n const [manualKindOverride, setManualKindOverride] = useState(false);\n const [query, setQueryState] = useState('');\n const [suggestionsByKind, setSuggestionsByKind] = useState<\n Record<string, ReadonlyArray<MentionSuggestion<TResource>>>\n >({});\n const [isLoading, setIsLoading] = useState(false);\n const [mentions, setMentionsState] = useState<Mention<TResource>[]>(() =>\n initialMentions ? [...initialMentions] : [],\n );\n\n const requestIdRef = useRef(0);\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (kinds.length === 0) {\n setActiveKindState(null);\n return;\n }\n if (!activeKind || !kinds.includes(activeKind)) {\n setActiveKindState(kinds[0]);\n }\n }, [activeKind, kinds]);\n\n const activeResource = useMemo(\n () => (activeKind && resources ? resources[activeKind] ?? null : null),\n [activeKind, resources],\n );\n\n /**\n * Search a single kind. Per-kind `search` wins, then static\n * `suggestions`, then the global `onResourceSearch` fallback.\n */\n const searchOneKind = useCallback(\n async (\n kind: TResource,\n q: string,\n ): Promise<ReadonlyArray<MentionSuggestion<TResource>>> => {\n const config = resources?.[kind];\n if (config?.search) {\n const result = await config.search(q);\n return result.map((s) => ({ ...s, kind }));\n }\n if (config?.suggestions) {\n const stat = config.suggestions;\n const filtered =\n q.trim().length === 0\n ? stat\n : stat.filter((s) =>\n s.label.toLowerCase().includes(q.toLowerCase()),\n );\n return filtered.map((s) => ({ ...s, kind }));\n }\n if (onResourceSearch) {\n const result = await onResourceSearch(q, kind);\n return result.map((s) => ({ ...s, kind }));\n }\n return [];\n },\n [resources, onResourceSearch],\n );\n\n // Debounced cross-kind search runner. Populates `suggestionsByKind`\n // for every registered kind in parallel.\n useEffect(() => {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current);\n }\n if (kinds.length === 0) {\n setSuggestionsByKind({});\n return;\n }\n\n const requestId = ++requestIdRef.current;\n const run = async () => {\n setIsLoading(true);\n try {\n const entries = await Promise.all(\n kinds.map(async (kind) => {\n try {\n const list = await searchOneKind(kind, query);\n return [kind, list] as const;\n } catch {\n return [kind, []] as const;\n }\n }),\n );\n if (requestId !== requestIdRef.current) return;\n const next: Record<string, ReadonlyArray<MentionSuggestion<TResource>>> = {};\n for (const [kind, list] of entries) {\n next[kind] = list;\n }\n setSuggestionsByKind(next);\n } finally {\n if (requestId === requestIdRef.current) {\n setIsLoading(false);\n }\n }\n };\n\n debounceRef.current = setTimeout(() => {\n void run();\n }, debounceMs);\n\n return () => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, [kinds, query, searchOneKind, debounceMs]);\n\n /**\n * Auto-switch behaviour: when the active kind has zero results but\n * another kind has matches, jump to the first kind with results.\n * Skipped while `manualKindOverride` is true so the consumer's tab\n * choice sticks.\n */\n useEffect(() => {\n if (manualKindOverride) return;\n if (!activeKind) return;\n const activeList = suggestionsByKind[activeKind] ?? [];\n if (activeList.length > 0) return;\n const first = kinds.find((k) => (suggestionsByKind[k]?.length ?? 0) > 0);\n if (first && first !== activeKind) {\n setActiveKindState(first);\n }\n }, [activeKind, kinds, manualKindOverride, suggestionsByKind]);\n\n /**\n * Set the active kind. **Does not** toggle `manualKindOverride` —\n * the picker UI is responsible for calling\n * `setManualKindOverride(true)` when the user explicitly clicks a\n * tab so the auto-switch / auto-detect logic respects their choice.\n */\n const setActiveKind = useCallback((kind: TResource | null) => {\n setActiveKindState(kind);\n }, []);\n\n const setQuery = useCallback((q: string) => {\n setQueryState(q);\n }, []);\n\n const addMention = useCallback((mention: Mention<TResource>) => {\n setMentionsState((prev) => {\n if (prev.some((m) => m.id === mention.id)) return prev;\n return [...prev, mention];\n });\n }, []);\n\n const removeMention = useCallback((id: string) => {\n setMentionsState((prev) => prev.filter((m) => m.id !== id));\n }, []);\n\n const setMentions = useCallback(\n (next: ReadonlyArray<Mention<TResource>>) => {\n setMentionsState([...next]);\n },\n [],\n );\n\n const reset = useCallback(() => {\n setMentionsState([]);\n setQueryState('');\n setManualKindOverride(false);\n requestIdRef.current++;\n }, []);\n\n const selectSuggestion = useCallback(\n (suggestion: MentionSuggestion<TResource>) => {\n const kind = (suggestion.kind ?? activeKind) as TResource;\n const id = `${kind}:${suggestion.id}`;\n const cfg = resources?.[kind];\n const href = suggestion.href ?? cfg?.buildHref?.(suggestion);\n const mention: Mention<TResource> = {\n id,\n kind,\n label: suggestion.label,\n href,\n data: suggestion.data,\n };\n addMention(mention);\n return mention;\n },\n [activeKind, addMention, resources],\n );\n\n const suggestions = useMemo<ReadonlyArray<MentionSuggestion<TResource>>>(\n () => (activeKind ? suggestionsByKind[activeKind] ?? [] : []),\n [activeKind, suggestionsByKind],\n );\n\n return {\n kinds,\n activeKind,\n setActiveKind,\n activeResource,\n query,\n setQuery,\n suggestions,\n suggestionsByKind,\n isLoading,\n mentions,\n addMention,\n removeMention,\n setMentions,\n reset,\n selectSuggestion,\n manualKindOverride,\n setManualKindOverride,\n };\n}\n","import type { Mention, MentionTone } from '../mentions.types';\n\n/**\n * Serialize a `Mention` into the HTML span that gets inserted into a\n * rich-text body. The structure mirrors `<MentionChip>` so the editor\n * can style it via `[data-ref-id]` selectors (see App.css `.ProseMirror\n * [data-ref-id]` rules) and the read-time renderer (`<MentionContent>`)\n * can find it again.\n *\n * <span class=\"rsc-mention\" data-ref-id=\"kind:id\" data-ref-kind=\"kind\"\n * data-ref-tone=\"info\" contenteditable=\"false\">@Maria Petrova</span> \n *\n * `data-ref-tone` is what drives the badge colour in both the editor\n * (CSS-only, since contenteditable can't host React) and the read-time\n * renderer (which respects it as a hint when the resource registry\n * isn't available).\n *\n * `contenteditable=\"false\"` tells the browser to treat the chip as an\n * atomic glyph — backspace deletes the whole span, the cursor moves\n * past it, and the inner label can't be edited character-by-character.\n */\nexport function buildMentionHtml<TKind extends string = string>(\n mention: Mention<TKind>,\n options?: { triggerChar?: string; tone?: MentionTone },\n): string {\n const safeLabel = String(mention.label ?? '')\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n const id = String(mention.id).replace(/\"/g, '"');\n const kind = String(mention.kind).replace(/\"/g, '"');\n const tone = options?.tone ? String(options.tone).replace(/\"/g, '"') : '';\n const trigger =\n options?.triggerChar ?? (mention.kind === 'user' ? '@' : '');\n const toneAttr = tone ? ` data-ref-tone=\"${tone}\"` : '';\n return (\n `<span class=\"rsc-mention\" data-ref-id=\"${id}\" data-ref-kind=\"${kind}\"${toneAttr} contenteditable=\"false\">` +\n `${trigger}${safeLabel}` +\n `</span> `\n );\n}\n","/**\n * useMentions — picker state + caret-trigger detection bound to an editor.\n *\n * Composes `useMentionsSearch` (suggestion state) with caret-watch\n * logic. The editor it binds to must implement the minimal handle\n * surface in `MentionEditorHandle` — `<RichTextEditor>` from\n * `features/rich-text-editor` already does. Other editors (Slate,\n * Lexical, ProseMirror, plain contenteditable, …) can be plugged in by\n * implementing the same four methods on their imperative handle.\n *\n * Behaviour summary:\n * - On every editor `onCaretChange`, the hook reads `getCaretContext()`\n * and looks for a registered trigger char (`@`, `#`, …) preceded by\n * start-of-line / whitespace and followed by `\\p{L}\\p{N}_-` chars.\n * - On match, the picker opens, `activeKind` is seeded from the\n * trigger char (only on a *fresh* trigger session — manual tab\n * switches survive subsequent keystrokes), and `query` syncs from\n * the typed needle.\n * - All registered kinds are searched in parallel; the active kind\n * auto-switches to the first kind with results when the current\n * active is empty (skipped if `manualKindOverride` is true).\n * - `pickSuggestion` deletes the trigger range and inserts the chip\n * atomically via `replaceBeforeCaret` — selection-extension means\n * no manual text mutation, no race between delete + insert.\n * - When opened via the manual button (no trigger detected), the\n * selection runs `insertHTML` instead — caret stays where it was.\n *\n * Returned API:\n * pickerOpen, setPickerOpen, triggerActive,\n * kinds, activeKind, setActiveKind, manualKindOverride, setManualKindOverride,\n * query, setQuery, suggestions, suggestionsByKind, isLoading,\n * mentions, addMention, removeMention, setMentions, reset,\n * handleCaretChange() — wire to the editor's `onCaretChange`\n * pickSuggestion(s) — convert suggestion → Mention + insert chip\n *\n * @example\n * const editorRef = useRef<RichTextEditorHandle>(null);\n * const mentions = useMentions<'user' | 'order'>({ editorRef });\n *\n * <RichTextEditor ref={editorRef} onCaretChange={mentions.handleCaretChange} />\n * <MentionInlineSuggestions\n * open={mentions.triggerActive && mentions.pickerOpen}\n * activeKind={mentions.activeKind}\n * setActiveKind={mentions.setActiveKind}\n * onManualKindChange={() => mentions.setManualKindOverride(true)}\n * {...mentions}\n * onSelect={mentions.pickSuggestion}\n * />\n */\nimport { useCallback, useRef, useState } from 'react';\nimport type { RefObject } from 'react';\n\nimport type {\n Mention,\n MentionResource,\n MentionSuggestion,\n MentionsResourceSearch,\n} from '../mentions.types';\nimport { buildMentionHtml } from '../utils/build-mention-html';\nimport {\n useMentionsSearch,\n type UseMentionsSearchOptions,\n type UseMentionsSearchReturn,\n} from './use-mentions-search';\n\n/**\n * Minimal editor handle the trigger detector needs. Compatible with the\n * library's `<RichTextEditor>` handle — implement these on any custom\n * editor to plug in.\n */\nexport interface MentionEditorHandle {\n getCaretContext(): { textBefore: string } | null;\n insertHTML(html: string): void;\n replaceBeforeCaret(length: number, html: string): void;\n focus(): void;\n}\n\nexport interface UseMentionsOptions<TResource extends string = string>\n extends UseMentionsSearchOptions<TResource> {\n /** Ref to the editor surface the trigger detector reads from. */\n editorRef?: RefObject<MentionEditorHandle | null>;\n}\n\nexport interface UseMentionsReturn<TResource extends string = string>\n extends UseMentionsSearchReturn<TResource> {\n pickerOpen: boolean;\n setPickerOpen: (open: boolean) => void;\n /** True while the picker is open from an inline `@`/`#` trigger. */\n triggerActive: boolean;\n /** Wire to the editor's `onCaretChange` to enable inline triggers. */\n handleCaretChange: () => void;\n /**\n * Convert a suggestion into a Mention, register it, insert the chip\n * into the editor (replacing the trigger range when one is active),\n * and close the picker. Returns the Mention.\n */\n pickSuggestion: (\n suggestion: MentionSuggestion<TResource>,\n ) => Mention<TResource>;\n}\n\ninterface TriggerState {\n kind: string;\n triggerChar: string;\n consumedLength: number;\n}\n\nexport function useMentions<TResource extends string = string>(\n options: UseMentionsOptions<TResource> = {},\n): UseMentionsReturn<TResource> {\n const resources = options.resources;\n const onResourceSearch: MentionsResourceSearch<TResource> | undefined =\n options.onResourceSearch;\n\n const search = useMentionsSearch<TResource>({\n ...options,\n resources,\n onResourceSearch,\n });\n\n const [pickerOpen, setPickerOpenState] = useState(false);\n const [triggerActive, setTriggerActive] = useState(false);\n const triggerStateRef = useRef<TriggerState | null>(null);\n /** Tracks the trigger char from the most recent detection — lets us\n * set the initial active kind on a fresh trigger without overriding\n * the user's manual tab switch on every subsequent keystroke. */\n const lastTriggerCharRef = useRef<string | null>(null);\n\n const setPickerOpen = useCallback((open: boolean) => {\n setPickerOpenState(open);\n if (!open) {\n triggerStateRef.current = null;\n lastTriggerCharRef.current = null;\n setTriggerActive(false);\n search.setManualKindOverride(false);\n }\n }, [search]);\n\n const editorRef = options.editorRef;\n\n const handleCaretChange = useCallback(() => {\n if (!resources) return;\n const triggerMap: Record<string, string> = {};\n for (const [kind, cfg] of Object.entries(resources)) {\n const trig = (cfg as MentionResource | undefined)?.trigger;\n if (typeof trig === 'string' && trig.length > 0) {\n triggerMap[trig] = kind;\n }\n }\n if (Object.keys(triggerMap).length === 0) return;\n\n const ctx = editorRef?.current?.getCaretContext();\n if (!ctx) {\n if (triggerStateRef.current) {\n triggerStateRef.current = null;\n setPickerOpen(false);\n }\n return;\n }\n const triggers = Object.keys(triggerMap)\n .map((c) => c.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n .join('');\n const re = new RegExp(`(?:^|\\\\s)([${triggers}])([\\\\p{L}\\\\p{N}_-]*)$`, 'u');\n const match = ctx.textBefore.match(re);\n if (!match) {\n if (triggerStateRef.current) {\n triggerStateRef.current = null;\n setPickerOpen(false);\n }\n return;\n }\n const triggerChar = match[1];\n const needle = match[2] ?? '';\n const kind = triggerMap[triggerChar];\n const consumedLength = triggerChar.length + needle.length;\n\n triggerStateRef.current = { kind, triggerChar, consumedLength };\n setTriggerActive(true);\n\n // Only seed the initial active kind on a *fresh* trigger session.\n // If the user has already picked a tab in the panel,\n // `manualKindOverride` is true and we skip — their choice sticks\n // even as they keep typing or deleting characters.\n const isNewTriggerSession = lastTriggerCharRef.current !== triggerChar;\n if (isNewTriggerSession) {\n if (search.activeKind !== kind) {\n search.setActiveKind(kind as TResource);\n }\n search.setManualKindOverride(false);\n lastTriggerCharRef.current = triggerChar;\n }\n\n if (search.query !== needle) {\n search.setQuery(needle);\n }\n setPickerOpenState(true);\n }, [editorRef, resources, search, setPickerOpen]);\n\n const pickSuggestion = useCallback(\n (suggestion: MentionSuggestion<TResource>) => {\n const mention = search.selectSuggestion(suggestion);\n const trigger = triggerStateRef.current;\n const tone = (resources?.[mention.kind] as MentionResource | undefined)?.tone;\n const html = buildMentionHtml(mention, {\n triggerChar: trigger?.triggerChar,\n tone,\n });\n\n if (trigger && trigger.consumedLength > 0 && editorRef?.current) {\n editorRef.current.replaceBeforeCaret(trigger.consumedLength, html);\n triggerStateRef.current = null;\n } else if (editorRef?.current) {\n editorRef.current.insertHTML(html);\n }\n setPickerOpen(false);\n return mention;\n },\n [editorRef, resources, search, setPickerOpen],\n );\n\n return {\n ...search,\n pickerOpen,\n setPickerOpen,\n triggerActive,\n handleCaretChange,\n pickSuggestion,\n };\n}\n","/**\n * MentionChip — default rendering for an inline mention/reference.\n *\n * Wraps the lib's `<Badge>` base component with the variant driven by\n * the resource registry's `tone` field. The mapping between the\n * mentions module's `MentionTone` and the badge's variant lives below\n * (`TONE_TO_VARIANT`) so consumers can rebrand by editing one table.\n *\n * Override paths:\n * - `renderMention` on `<MentionContent>` — full takeover\n * - `resources.<kind>.renderChip(mention)` — per-kind takeover\n * - `resources.<kind>.tone` — quickest \"just change the color\" override\n */\nimport type { FC, ReactNode } from 'react';\n\nimport { Badge, type ComposedBadgeVariant } from '@/components/base/badge';\nimport { cn } from '@/lib/utils';\n\nimport type {\n Mention,\n MentionResource,\n MentionTone,\n} from '../mentions.types';\n\nexport interface MentionChipProps {\n mention: Mention;\n resource?: MentionResource<string>;\n /** Force-disable the chip's link (useful inside the composer draft list). */\n asLink?: boolean;\n onClick?: () => void;\n /** Trailing slot — typically a remove button when shown in the composer. */\n trailing?: ReactNode;\n className?: string;\n}\n\n/**\n * Single source of truth for `MentionTone → Badge variant`. Edit here\n * to rebrand all chips library-wide; override per-kind via\n * `resources.<kind>.tone`.\n */\nconst TONE_TO_VARIANT: Record<MentionTone, ComposedBadgeVariant> = {\n primary: 'secondary', // calm primary — saturated `primary` overwhelms body copy\n success: 'success',\n warning: 'warning',\n destructive: 'destructive',\n info: 'info',\n secondary: 'secondary',\n};\n\nexport const MentionChip: FC<MentionChipProps> = ({\n mention,\n resource,\n asLink = true,\n onClick,\n trailing,\n className,\n}) => {\n if (resource?.renderChip) {\n return <>{resource.renderChip(mention)}</>;\n }\n\n const tone = resource?.tone ?? 'secondary';\n const variant = TONE_TO_VARIANT[tone] ?? TONE_TO_VARIANT.secondary;\n const Icon = resource?.icon;\n\n const inner = (\n <Badge\n variant={variant}\n inline\n data-ref-id={mention.id}\n data-ref-kind={mention.kind}\n className={cn(\n /* Inline-flow tweaks: align to the surrounding text baseline\n instead of the line's mid-point, which causes wobble next\n to text. Keep the badge as `inline-flex` (from `inline`),\n add a subtle vertical offset via translate so the icon\n sits on the cap-height. */\n 'align-[-0.15em] cursor-default whitespace-nowrap',\n className,\n )}\n >\n {Icon ? <Icon className=\"size-3 shrink-0\" aria-hidden /> : null}\n <span className=\"truncate max-w-[14rem]\">{mention.label}</span>\n {trailing}\n </Badge>\n );\n\n if (asLink && mention.href) {\n return (\n <a\n href={mention.href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n onClick={onClick}\n className=\"inline align-baseline no-underline hover:opacity-90\"\n >\n {inner}\n </a>\n );\n }\n\n if (onClick) {\n return (\n <span onClick={onClick} className=\"inline align-baseline\">\n {inner}\n </span>\n );\n }\n\n return inner;\n};\n","/**\n * Split an HTML string into a list of `html` chunks and `mention`\n * placeholders, keyed by the `data-ref-id` attribute the writer set.\n *\n * Used by `<MentionContent>` to render the body once with React chips\n * for the references and `dangerouslySetInnerHTML` for everything else.\n */\nexport type MentionHtmlSegment =\n | { kind: 'html'; value: string }\n | { kind: 'mention'; refId: string; fallback: string };\n\nconst MENTION_RE =\n /<(span|a)\\b([^>]*?)data-ref-id\\s*=\\s*\"([^\"]+)\"([^>]*)>([\\s\\S]*?)<\\/\\1>/gi;\n\nexport function splitHtmlByMentions(html: string): MentionHtmlSegment[] {\n if (!html) return [];\n\n const segments: MentionHtmlSegment[] = [];\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n MENTION_RE.lastIndex = 0;\n\n while ((match = MENTION_RE.exec(html)) !== null) {\n const [full, , , refId] = match;\n const before = html.slice(lastIndex, match.index);\n if (before.length > 0) {\n segments.push({ kind: 'html', value: before });\n }\n segments.push({\n kind: 'mention',\n refId,\n fallback: full,\n });\n lastIndex = match.index + full.length;\n }\n\n const tail = html.slice(lastIndex);\n if (tail.length > 0) {\n segments.push({ kind: 'html', value: tail });\n }\n\n return segments;\n}\n","/**\n * MentionContent — render an HTML body that may contain inline mention\n * spans (`<span data-ref-id=\"kind:id\">…</span>`) by swapping each ref\n * for a React `<MentionChip>` while leaving the rest of the HTML\n * untouched.\n *\n * Used by:\n * - `features/comments` — comment bodies\n * - `features/event-log` — event descriptions\n * - any other surface that renders rich-text with embedded refs\n *\n * Consumer can override per-mention rendering via `renderMention`, or\n * per-kind via the resource registry's `renderChip`.\n */\nimport { Fragment } from 'react';\nimport type { FC, ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport type {\n Mention,\n MentionResource,\n MentionsConfig,\n} from '../mentions.types';\nimport { splitHtmlByMentions } from '../utils/split-html-by-mentions';\nimport { MentionChip } from './mention-chip';\n\nexport interface MentionContentProps<TResource extends string = string> {\n /** HTML body to render. */\n html: string;\n /** Mentions resolved on the data — keyed by `data-ref-id`. */\n mentions?: ReadonlyArray<Mention<TResource>>;\n /** Resource registry — pass at the call site. */\n resources?: MentionsConfig<TResource>['resources'];\n /** Custom per-mention renderer — overrides resource.renderChip. */\n renderMention?: (mention: Mention<TResource>) => ReactNode;\n /** Optional sanitizer applied to HTML before rendering. */\n sanitizer?: (html: string) => string;\n /** Outer wrapper class. Defaults to a tight prose surface. */\n className?: string;\n /**\n * Set to `false` to skip the default prose wrapper — useful when\n * embedding inside an existing typed surface (e.g. timeline rows).\n */\n prose?: boolean;\n}\n\nconst DEFAULT_PROSE_CLASS =\n 'prose prose-sm prose-p:my-0.5 prose-p:leading-relaxed prose-headings:my-1 prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-strong:font-semibold prose-ul:my-0.5 prose-ol:my-0.5 prose-li:my-0.5 max-w-none';\n\nexport function MentionContent<TResource extends string = string>(\n props: MentionContentProps<TResource>,\n): ReactNode {\n const {\n html,\n mentions,\n resources: resourcesProp,\n renderMention,\n sanitizer,\n className,\n prose = true,\n } = props;\n\n const resources = resourcesProp;\n\n const sanitized = sanitizer ? sanitizer(html ?? '') : (html ?? '');\n\n const mentionsById = new Map<string, Mention<TResource>>();\n for (const m of mentions ?? []) mentionsById.set(m.id, m);\n\n const hasMentions = mentionsById.size > 0;\n const segments = hasMentions\n ? splitHtmlByMentions(sanitized)\n : [{ kind: 'html' as const, value: sanitized }];\n\n const renderRef = (mention: Mention<TResource>): ReactNode => {\n if (renderMention) return renderMention(mention);\n const resource = resources?.[mention.kind] as\n | MentionResource<string>\n | undefined;\n return <MentionChip mention={mention} resource={resource} />;\n };\n\n const body = segments.map((segment, index) => {\n if (segment.kind === 'mention') {\n const mention = mentionsById.get(segment.refId);\n if (!mention) {\n return (\n <span\n key={`fallback-${index}`}\n dangerouslySetInnerHTML={{ __html: segment.fallback }}\n />\n );\n }\n return (\n <Fragment key={`ref-${index}-${segment.refId}`}>\n {renderRef(mention)}\n </Fragment>\n );\n }\n // Render the HTML segment directly. The lib's `Text asHTML` escapes\n // via a strict sanitiser — bypass it for trusted editor output.\n // Consumers must pass `sanitizer` for untrusted content.\n return (\n <span\n key={`html-${index}`}\n dangerouslySetInnerHTML={{ __html: segment.value }}\n />\n );\n });\n\n if (!prose) {\n return <>{body}</>;\n }\n\n return (\n <div className={cn(DEFAULT_PROSE_CLASS, className)}>{body}</div>\n );\n}\n\n/** FC alias for callsites that prefer the `<MentionContent>` element form. */\nexport const MentionContentComponent: FC<MentionContentProps> = (props) => (\n <MentionContent {...props} />\n);\n","/**\n * Default user-facing strings for the `features/mentions` partials.\n *\n * Both `<MentionPicker>` and `<MentionInlineSuggestions>` consume their\n * respective slice; `<MentionInlineSuggestions>` is a strict subset.\n * Consumers wire backend i18n at the call site:\n *\n * <MentionPicker strings={{ empty: t('mentions.empty') }} … />\n */\n\nexport interface MentionPickerStrings {\n\ttitle: string;\n\tsearchPlaceholder: string;\n\tempty: string;\n\tloading: string;\n}\n\nexport const defaultMentionPickerStrings: MentionPickerStrings = {\n\ttitle: 'Insert reference',\n\tsearchPlaceholder: 'Search…',\n\tempty: 'No matches.',\n\tloading: 'Searching…',\n};\n\nexport interface MentionInlineSuggestionsStrings {\n\ttitle: string;\n\tempty: string;\n\tloading: string;\n}\n\nexport const defaultMentionInlineSuggestionsStrings: MentionInlineSuggestionsStrings = {\n\ttitle: 'Insert reference',\n\tempty: 'No matches.',\n\tloading: 'Searching…',\n};\n","/**\n * MentionPicker — popover content for the mention/reference picker.\n *\n * Pure UI: takes the state from `useMentions` (or any equivalent hook)\n * and renders kind tabs + a cmdk search list. Wrapped in `<Popover>` by\n * the consumer:\n *\n * <Popover open={mentions.pickerOpen} onOpenChange={mentions.setPickerOpen}>\n * <PopoverTrigger ... />\n * <MentionPicker ... />\n * </Popover>\n */\nimport { Loader2 } from 'lucide-react';\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/base/command';\nimport { PopoverContent } from '@/components/base/popover';\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n defaultMentionPickerStrings,\n type MentionPickerStrings,\n} from '../mentions.strings';\nimport type {\n MentionResource,\n MentionSuggestion,\n} from '../mentions.types';\n\nexport type { MentionPickerStrings };\n\nexport interface MentionPickerProps<TResource extends string = string> {\n open: boolean;\n activeKind: TResource | null;\n setActiveKind: (kind: TResource | null) => void;\n kinds: ReadonlyArray<TResource>;\n resources?: Partial<Record<TResource, MentionResource<TResource>>>;\n query: string;\n setQuery: (query: string) => void;\n suggestions: ReadonlyArray<MentionSuggestion<TResource>>;\n isLoading: boolean;\n onSelect: (suggestion: MentionSuggestion<TResource>) => void;\n strings?: StringsProp<MentionPickerStrings>;\n className?: string;\n}\n\nexport function MentionPicker<TResource extends string = string>({\n open,\n activeKind,\n setActiveKind,\n kinds,\n resources,\n query,\n setQuery,\n suggestions,\n isLoading,\n onSelect,\n strings: stringsProp,\n className,\n}: MentionPickerProps<TResource>) {\n const strings = useStrings(defaultMentionPickerStrings, stringsProp);\n if (!open) return null;\n\n return (\n <PopoverContent\n align=\"start\"\n className={cn('w-72 overflow-hidden p-0', className)}\n >\n <div className=\"border-b border-border/60 px-3 py-2\">\n <Text\n size=\"xxs\"\n type=\"secondary\"\n weight=\"medium\"\n className=\"uppercase tracking-wide\"\n >\n {strings.title}\n </Text>\n {kinds.length > 1 && (\n <div className=\"mt-2 flex flex-wrap gap-1\">\n {kinds.map((kind) => {\n const cfg = resources?.[kind];\n const Icon = cfg?.icon;\n const active = kind === activeKind;\n return (\n <button\n key={kind}\n type=\"button\"\n onClick={() => setActiveKind(kind)}\n className={cn(\n 'inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xxs font-medium ring-1 ring-inset transition-colors',\n active\n ? 'bg-primary text-primary-foreground ring-primary'\n : 'bg-muted text-muted-foreground ring-border/60 hover:bg-muted/80',\n )}\n >\n {Icon ? <Icon className=\"size-3\" /> : null}\n <span>{cfg?.label ?? String(kind)}</span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n\n <Command shouldFilter={false}>\n <CommandInput\n placeholder={strings.searchPlaceholder}\n value={query}\n onValueChange={setQuery}\n />\n <CommandList>\n {isLoading ? (\n <div className=\"text-muted-foreground flex items-center justify-center gap-2 py-3\">\n <Loader2 className=\"size-3.5 animate-spin\" aria-hidden />\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.loading}\n </Text>\n </div>\n ) : null}\n <CommandEmpty>{strings.empty}</CommandEmpty>\n <CommandGroup>\n {suggestions.map((suggestion) => {\n const kind = suggestion.kind ?? activeKind ?? '';\n return (\n <CommandItem\n key={`${kind}:${suggestion.id}`}\n value={`${kind}:${suggestion.id}`}\n onSelect={() => onSelect(suggestion)}\n >\n <div className=\"flex min-w-0 flex-1 flex-col leading-tight\">\n <Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"truncate\">\n {suggestion.label}\n </Text>\n {suggestion.description ? (\n <Text\n tag=\"span\"\n size=\"xxs\"\n type=\"secondary\"\n className=\"mt-0.5 truncate\"\n >\n {suggestion.description}\n </Text>\n ) : null}\n </div>\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n );\n}\n","/**\n * MentionInlineSuggestions — non-focus-stealing suggestion list.\n *\n * Used in the *inline-trigger* flow (user typed `@` / `#` / …): the\n * editor stays focused while this panel renders below the surface and\n * updates live as the user keeps typing. No popover, no focus trap,\n * no CommandInput — the editor IS the input, we read the needle from\n * the caret context and stream results in.\n *\n * Position is \"anchored to a wrapping element\" — the consumer puts this\n * inside a `relative`-positioned wrapper around the editor and we\n * absolute-position ourselves below it.\n */\nimport { Loader2 } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport {\n defaultMentionInlineSuggestionsStrings,\n type MentionInlineSuggestionsStrings,\n} from '../mentions.strings';\nimport type {\n MentionResource,\n MentionSuggestion,\n} from '../mentions.types';\n\nexport type { MentionInlineSuggestionsStrings };\n\nexport interface MentionInlineSuggestionsProps<TResource extends string = string> {\n open: boolean;\n activeKind: TResource | null;\n setActiveKind: (kind: TResource | null) => void;\n kinds: ReadonlyArray<TResource>;\n resources?: Partial<Record<TResource, MentionResource<TResource>>>;\n /** Per-kind suggestion buckets — used to render result counts on tabs. */\n suggestionsByKind?: Readonly<Record<string, ReadonlyArray<MentionSuggestion<TResource>>>>;\n suggestions: ReadonlyArray<MentionSuggestion<TResource>>;\n isLoading: boolean;\n /** Live query the panel echoes in the header; the consumer owns the editor input. */\n query?: string;\n /**\n * Notifies the consumer that the user manually picked a tab, so it\n * can flip the `manualKindOverride` flag on `useMentionsSearch`.\n */\n onManualKindChange?: () => void;\n onSelect: (suggestion: MentionSuggestion<TResource>) => void;\n strings?: StringsProp<MentionInlineSuggestionsStrings>;\n className?: string;\n}\n\nexport function MentionInlineSuggestions<TResource extends string = string>({\n open,\n activeKind,\n setActiveKind,\n kinds,\n resources,\n suggestionsByKind,\n suggestions,\n isLoading,\n query,\n onManualKindChange,\n onSelect,\n strings: stringsProp,\n className,\n}: MentionInlineSuggestionsProps<TResource>) {\n const strings = useStrings(defaultMentionInlineSuggestionsStrings, stringsProp);\n if (!open) return null;\n\n return (\n <div\n // `mousedown.preventDefault` keeps focus in the editor when\n // the user clicks inside the panel — clicks still bubble to\n // the underlying button so selection works normally.\n onMouseDown={(e) => e.preventDefault()}\n className={cn(\n 'bg-popover text-popover-foreground absolute left-0 top-full z-40 mt-1 w-80 max-w-[min(theme(spacing.96),100%)]',\n 'border-border/60 rounded-md border shadow-md ring-1 ring-foreground/[0.04]',\n 'overflow-hidden',\n className,\n )}\n role=\"listbox\"\n >\n <div className=\"border-b border-border/60 px-3 py-2\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Text\n size=\"xxs\"\n type=\"secondary\"\n weight=\"medium\"\n className=\"uppercase tracking-wide\"\n >\n {strings.title}\n </Text>\n {query ? (\n <Text\n tag=\"span\"\n size=\"xxs\"\n type=\"secondary\"\n className=\"truncate font-mono\"\n >\n “{query}”\n </Text>\n ) : null}\n </div>\n {kinds.length > 1 && (\n <div className=\"mt-2 flex flex-wrap gap-1\">\n {kinds.map((kind) => {\n const cfg = resources?.[kind];\n const Icon = cfg?.icon;\n const active = kind === activeKind;\n const count = suggestionsByKind?.[kind as string]?.length ?? 0;\n return (\n <button\n key={kind}\n type=\"button\"\n onClick={() => {\n setActiveKind(kind);\n onManualKindChange?.();\n }}\n className={cn(\n 'inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xxs font-medium ring-1 ring-inset transition-colors',\n active\n ? 'bg-primary text-primary-foreground ring-primary'\n : count > 0\n ? 'bg-muted text-foreground ring-border/60 hover:bg-muted/80'\n : 'bg-muted/40 text-muted-foreground ring-border/40 hover:bg-muted/60',\n )}\n >\n {Icon ? <Icon className=\"size-3\" /> : null}\n <span>{cfg?.label ?? String(kind)}</span>\n {count > 0 && (\n <span\n className={cn(\n 'tabular-nums',\n active ? 'opacity-90' : 'opacity-70',\n )}\n >\n {count}\n </span>\n )}\n </button>\n );\n })}\n </div>\n )}\n </div>\n\n <div className=\"max-h-72 overflow-y-auto py-1\">\n {isLoading ? (\n <div className=\"text-muted-foreground flex items-center justify-center gap-2 py-3\">\n <Loader2 className=\"size-3.5 animate-spin\" aria-hidden />\n <Text tag=\"span\" size=\"xs\" type=\"secondary\">\n {strings.loading}\n </Text>\n </div>\n ) : null}\n\n {!isLoading && suggestions.length === 0 ? (\n <div className=\"px-3 py-3\">\n <Text size=\"xs\" type=\"secondary\">\n {strings.empty}\n </Text>\n </div>\n ) : null}\n\n {suggestions.map((suggestion) => {\n const kind = suggestion.kind ?? activeKind ?? '';\n return (\n <button\n key={`${kind}:${suggestion.id}`}\n type=\"button\"\n role=\"option\"\n data-ref-id={`${kind}:${suggestion.id}`}\n onClick={() => onSelect(suggestion)}\n className={cn(\n 'flex w-full min-w-0 items-start gap-2 px-3 py-1.5 text-left',\n 'hover:bg-muted/60 focus-visible:bg-muted/60 transition-colors',\n )}\n >\n <div className=\"flex min-w-0 flex-1 flex-col leading-tight\">\n <Text\n tag=\"span\"\n size=\"xs\"\n weight=\"medium\"\n className=\"truncate\"\n >\n {suggestion.label}\n </Text>\n {suggestion.description ? (\n <Text\n tag=\"span\"\n size=\"xxs\"\n type=\"secondary\"\n className=\"mt-0.5 truncate\"\n >\n {suggestion.description}\n </Text>\n ) : null}\n </div>\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n","/**\n * Walk an HTML string and extract `data-ref-id=\"kind:id\"` spans /\n * anchors as a list of `Mention` records. Used by the comment composer\n * to keep its `mentions` state in sync with what's actually present in\n * the editor — when the user backspaces a chip out of the body, the\n * draft's mentions list shrinks too.\n *\n * The output preserves first-occurrence order and deduplicates by id.\n * Caller can merge the resulting Mentions with previously known ones to\n * preserve `href` / `data` payloads that aren't expressible in HTML.\n */\nimport type { Mention } from '../mentions.types';\n\nconst REF_RE =\n /<(?:span|a)\\b[^>]*?data-ref-id\\s*=\\s*\"([^\"]+)\"[^>]*?>([\\s\\S]*?)<\\/(?:span|a)>/gi;\nconst KIND_ATTR_RE = /data-ref-kind\\s*=\\s*\"([^\"]+)\"/i;\n\nexport function parseMentionsFromHtml<TKind extends string = string>(\n html: string,\n): Array<Mention<TKind>> {\n const out: Mention<TKind>[] = [];\n if (!html) return out;\n\n const seen = new Set<string>();\n let match: RegExpExecArray | null;\n REF_RE.lastIndex = 0;\n\n while ((match = REF_RE.exec(html)) !== null) {\n const [tagText, id, inner] = match;\n if (seen.has(id)) continue;\n seen.add(id);\n\n const kindMatch = tagText.match(KIND_ATTR_RE);\n const kind = (kindMatch?.[1] ?? id.split(':')[0] ?? '') as TKind;\n const label = (inner ?? '')\n .replace(/<[^>]*>/g, '')\n .replace(/ /g, ' ')\n .replace(/^[@#$&%!~]\\s*/, '')\n .trim();\n\n out.push({ id, kind, label });\n }\n\n return out;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require(`./chunk-D3uCBrYO.cjs`);const e=require(`./ui-provider-uiQgATj1.cjs`),t=require(`../lib/utils.cjs`),n=require(`./text-DBnY6fcL.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`),a=require(`lucide-react`);function o(t){let n=e.u(),{defaultCurrency:i,displayCurrency:a,locale:o,dualPricingEnabled:s,displayMode:c,dualPricingDisplay:l,formatMode:u}=(0,r.useMemo)(()=>{let e={...n,...t},r=e.defaultCurrency??`USD`;return{defaultCurrency:r,displayCurrency:e.displayCurrency??r,locale:e.locale,dualPricingEnabled:e.dualPricingEnabled??!1,displayMode:e.displayMode??`default_only`,dualPricingDisplay:e.dualPricingDisplay??`lines`,formatMode:e.formatMode??`with_code`}},[n,t]);return{defaultCurrency:i,displayCurrency:a,dualPricingEnabled:s,displayMode:c,dualPricingDisplay:l,formatMode:u,shouldShowDualPricing:()=>s?c===`dual`:!1,formatAmount:(e,t,n)=>{let r=typeof e==`string`?parseFloat(e):e;if(!Number.isFinite(r))return t?`${String(e)} ${t}`.trim():String(e);let i=new Intl.NumberFormat(o,{minimumFractionDigits:2,maximumFractionDigits:2}).format(r);switch(u){case`decimal`:return i;case`with_code`:return t?`${i} ${t}`:i;case`with_symbol`:return n?`${n}${i}`:t?`${i} ${t}`:i;case`locale_aware`:if(!t)return i;try{return new Intl.NumberFormat(o,{style:`currency`,currency:t}).format(r)}catch{return`${i} ${t}`}default:return t?`${i} ${t}`:i}},getCurrencySymbol:e=>({BGN:`лв`,EUR:`€`,USD:`$`,GBP:`£`,JPY:`¥`})[e]??e}}var s=(0,i.jsx)(a.ArrowRight,{className:`size-3 shrink-0 opacity-60`,"aria-hidden":`true`});function c({pair:r,emptyLabel:a=`—`,separator:c=s,className:l,size:u,tag:d=`span`,...f}){let{defaultTextSize:p}=e.m(),m=u??p??`sm`,{formatAmount:h}=o(),g=r?.source?.value??null,_=r?.source?.currency??null,v=r?.source?.symbol??null,y=r?.target?.value??null,b=r?.target?.currency??null,x=r?.target?.symbol??null;return!g||!y?(0,i.jsx)(n.t,{tag:d,size:m,type:`secondary`,className:t.cn(`currency-pair-preview--component`,`tabular-nums`,l),...f,children:a}):(0,i.jsxs)(n.t,{tag:d,size:m,className:t.cn(`inline-flex items-center gap-1.5 tabular-nums`,l),...f,children:[(0,i.jsx)(`span`,{children:h(g,String(_??``),v??void 0)}),(0,i.jsx)(`span`,{className:`inline-flex items-center text-muted-foreground`,"aria-hidden":`true`,children:c}),(0,i.jsx)(`span`,{children:h(y,String(b??``),x??void 0)})]})}c.displayName=`CurrencyPairPreview`;var l=e=>{if(e==null)return null;let t=typeof e==`number`?e:Number.parseFloat(String(e).trim());return Number.isFinite(t)?t:null},u=e=>{let t=l(e?.value);return t===null?null:{value:t,currency:e?.currency?String(e.currency):null,symbol:e?.symbol?String(e.symbol):null}},d=e=>{let t=l(e?.amount);return t===null?null:{value:t,currency:e?.currency?String(e.currency):null,symbol:null}},f=e=>{let t=l(e?.amount);return t===null?null:{value:t,currency:e?.currency?String(e.currency):null,symbol:null}};function p({money:r,moneyPair:a,amount:s,pair:c,showPair:l=!1,dualPricingDisplay:p,alignment:m,emptyLabel:h=`—`,variant:g=`default`,secondaryEmphasis:_=`discrete`,className:v,size:y,align:b=`right`,weight:x=`medium`,tag:S=`span`,...C}){let{defaultTextSize:w}=e.m(),T=y??w??`sm`,{displayCurrency:E,dualPricingDisplay:D,shouldShowDualPricing:O,formatAmount:k,getCurrencySymbol:A}=o(),j=p??D??`lines`,M=(O()||l)&&a?.primary?d(a.primary):null,N=d(r),P=u(s),F=M??N??P??null,I=F?.currency??E??null,L=(l||O())&&!!(a??c??r?.pair),R=g===`minimal`||_===`hidden`?null:(()=>{if(!L)return null;if(a?.primary&&a?.secondary)return d(a.secondary);if(r?.pair)return f(r.pair);if(c?.source||c?.target){let e=u(c?.source??null),t=u(c?.target??null);if(!e&&!t)return null;let n=e?.currency??null,r=t?.currency??null;return I&&r===I?e:I&&n===I?t:E&&r===E?e:E&&n===E?t:t??e}return null})(),z=m??b,B=z===`left`?`text-left`:z===`center`?`text-center`:`text-right`,V=z===`left`?`justify-start`:z===`center`?`justify-center`:`justify-end`;if(!F)return(0,i.jsx)(n.t,{tag:S,size:T,type:`secondary`,align:z,className:t.cn(`money-display--component`,`money--display inline-flex flex-col tabular-nums`,B,v),...C,children:h});let H=k(F.value,I??``,F.symbol??(I?A(I):void 0)),U=R?k(R.value,R.currency??``,R.symbol??(R.currency?A(R.currency):void 0)):null,W=_===`match`?T:_===`muted`?`xs`:`xxs`,G=_===`match`?void 0:_===`muted`?`secondary`:`discrete`;return j===`inline`&&U?(0,i.jsxs)(`span`,{className:t.cn(`money--display inline-flex items-baseline gap-1.5 tabular-nums whitespace-nowrap`,V,v),...C,children:[(0,i.jsx)(n.t,{tag:`span`,size:T,weight:x,children:H}),(0,i.jsx)(n.t,{tag:`span`,size:`xxs`,type:`discrete`,"aria-hidden":`true`,children:`·`}),(0,i.jsx)(n.t,{tag:`span`,size:W,type:G,weight:`regular`,children:U})]}):(0,i.jsxs)(n.t,{tag:S,size:T,align:z,className:t.cn(`money--display inline-flex flex-col tabular-nums leading-tight`,B,v),...C,children:[(0,i.jsx)(n.t,{tag:`span`,size:T,weight:x,children:H}),!!U&&(0,i.jsx)(n.t,{tag:`span`,size:W,align:z,type:G,className:`block whitespace-nowrap font-normal leading-tight`,children:U})]})}p.displayName=`MoneyDisplay`,Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return p}});
|
|
2
|
-
//# sourceMappingURL=money-display-B5oxCs_0.cjs.map
|