admin-ui-starter-kit 0.6.4 → 0.6.6
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/references/components/base__cards.md +3 -4
- package/.agents/skills/component-library-rules/references/components/base__table.md +32 -11
- package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +2 -2
- package/dist/_shared/accordion-BRj4TDQx.js +135 -0
- package/dist/_shared/accordion-BRj4TDQx.js.map +1 -0
- package/dist/_shared/accordion-DvlDjk29.cjs +2 -0
- package/dist/_shared/accordion-DvlDjk29.cjs.map +1 -0
- package/dist/_shared/action-menu-BrHF4nss.cjs +2 -0
- package/dist/_shared/action-menu-BrHF4nss.cjs.map +1 -0
- package/dist/_shared/action-menu-Crn22LKo.js +96 -0
- package/dist/_shared/action-menu-Crn22LKo.js.map +1 -0
- package/dist/_shared/ai-artifact-BHgd3agA.js +1099 -0
- package/dist/_shared/ai-artifact-BHgd3agA.js.map +1 -0
- package/dist/_shared/ai-artifact-BRM5cvGv.cjs +3 -0
- package/dist/_shared/ai-artifact-BRM5cvGv.cjs.map +1 -0
- package/dist/_shared/alert-CMVVt2Br.js +81 -0
- package/dist/_shared/alert-CMVVt2Br.js.map +1 -0
- package/dist/_shared/alert-Dmhtbmpg.cjs +2 -0
- package/dist/_shared/alert-Dmhtbmpg.cjs.map +1 -0
- package/dist/_shared/app-shell-BZQJfTkf.cjs +2 -0
- package/dist/_shared/app-shell-BZQJfTkf.cjs.map +1 -0
- package/dist/_shared/app-shell-Da6GHxTZ.js +69 -0
- package/dist/_shared/app-shell-Da6GHxTZ.js.map +1 -0
- package/dist/_shared/auth-DZW6NkJx.cjs +2 -0
- package/dist/_shared/auth-DZW6NkJx.cjs.map +1 -0
- package/dist/_shared/auth-Dh790NI_.js +643 -0
- package/dist/_shared/auth-Dh790NI_.js.map +1 -0
- package/dist/_shared/badge-B8xGFpfM.cjs +2 -0
- package/dist/_shared/badge-B8xGFpfM.cjs.map +1 -0
- package/dist/_shared/badge-BYNwSWh5.js +110 -0
- package/dist/_shared/badge-BYNwSWh5.js.map +1 -0
- package/dist/_shared/breadcrumbs-CuT0YIfo.js +105 -0
- package/dist/_shared/breadcrumbs-CuT0YIfo.js.map +1 -0
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs +2 -0
- package/dist/_shared/breadcrumbs-jNzlYqS9.cjs.map +1 -0
- package/dist/_shared/button-BMiPFJIb.cjs +2 -0
- package/dist/_shared/button-BMiPFJIb.cjs.map +1 -0
- package/dist/_shared/button-vv59_uS_.js +189 -0
- package/dist/_shared/button-vv59_uS_.js.map +1 -0
- package/dist/_shared/buttons-CvqIMv3I.js +137 -0
- package/dist/_shared/buttons-CvqIMv3I.js.map +1 -0
- package/dist/_shared/buttons-tCkWktN3.cjs +2 -0
- package/dist/_shared/buttons-tCkWktN3.cjs.map +1 -0
- package/dist/_shared/card-radio-group-Bhe8gAbH.js +150 -0
- package/dist/_shared/card-radio-group-Bhe8gAbH.js.map +1 -0
- package/dist/_shared/card-radio-group-CdG1zr8M.cjs +2 -0
- package/dist/_shared/card-radio-group-CdG1zr8M.cjs.map +1 -0
- package/dist/_shared/cards-Cu6p1Brd.cjs +2 -0
- package/dist/_shared/cards-Cu6p1Brd.cjs.map +1 -0
- package/dist/_shared/cards-cQ9lL6zy.js +354 -0
- package/dist/_shared/cards-cQ9lL6zy.js.map +1 -0
- package/dist/_shared/combobox-BGYjyXeN.cjs +2 -0
- package/dist/_shared/combobox-BGYjyXeN.cjs.map +1 -0
- package/dist/_shared/combobox-DTwomOBt.js +954 -0
- package/dist/_shared/combobox-DTwomOBt.js.map +1 -0
- package/dist/_shared/comments-C97vL5km.js +952 -0
- package/dist/_shared/comments-C97vL5km.js.map +1 -0
- package/dist/_shared/comments-DBe6dP-d.cjs +2 -0
- package/dist/_shared/comments-DBe6dP-d.cjs.map +1 -0
- package/dist/_shared/containers-CB7zaAvN.cjs +2 -0
- package/dist/_shared/containers-CB7zaAvN.cjs.map +1 -0
- package/dist/_shared/containers-CLBmhGfs.js +48 -0
- package/dist/_shared/containers-CLBmhGfs.js.map +1 -0
- package/dist/_shared/copyable-BgFdERqs.js +38 -0
- package/dist/_shared/copyable-BgFdERqs.js.map +1 -0
- package/dist/_shared/copyable-Ce8rmE-V.cjs +2 -0
- package/dist/_shared/copyable-Ce8rmE-V.cjs.map +1 -0
- package/dist/_shared/data-display-DUWxoDKq.js +1873 -0
- package/dist/_shared/data-display-DUWxoDKq.js.map +1 -0
- package/dist/_shared/data-display-o-rbMuIA.cjs +2 -0
- package/dist/_shared/data-display-o-rbMuIA.cjs.map +1 -0
- package/dist/_shared/date-picker-Cxx9jllA.js +1361 -0
- package/dist/_shared/date-picker-Cxx9jllA.js.map +1 -0
- package/dist/_shared/date-picker-DE5A8yqN.cjs +2 -0
- package/dist/_shared/date-picker-DE5A8yqN.cjs.map +1 -0
- package/dist/_shared/date-pickers-Dex1Mfye.cjs +2 -0
- package/dist/_shared/date-pickers-Dex1Mfye.cjs.map +1 -0
- package/dist/_shared/date-pickers-m0dpDcqH.js +329 -0
- package/dist/_shared/date-pickers-m0dpDcqH.js.map +1 -0
- package/dist/_shared/display-Bro3Kufg.js +986 -0
- package/dist/_shared/display-Bro3Kufg.js.map +1 -0
- package/dist/_shared/display-CRQjSjgB.cjs +2 -0
- package/dist/_shared/display-CRQjSjgB.cjs.map +1 -0
- package/dist/_shared/form-sizing-DJus3nK3.cjs +2 -0
- package/dist/_shared/form-sizing-DJus3nK3.cjs.map +1 -0
- package/dist/_shared/form-sizing-DWjJsQSR.js +42 -0
- package/dist/_shared/form-sizing-DWjJsQSR.js.map +1 -0
- package/dist/_shared/forms-D-SNQmtB.cjs +2 -0
- package/dist/_shared/forms-D-SNQmtB.cjs.map +1 -0
- package/dist/_shared/forms-p7cfzJwf.js +3533 -0
- package/dist/_shared/forms-p7cfzJwf.js.map +1 -0
- package/dist/_shared/header-8C71wVRp.js +447 -0
- package/dist/_shared/header-8C71wVRp.js.map +1 -0
- package/dist/_shared/header-CYgFCnjZ.cjs +2 -0
- package/dist/_shared/header-CYgFCnjZ.cjs.map +1 -0
- package/dist/_shared/hooks-Ci1LFWRG.js +95 -0
- package/dist/_shared/hooks-Ci1LFWRG.js.map +1 -0
- package/dist/_shared/hooks-Cjl7LJpn.cjs +2 -0
- package/dist/_shared/hooks-Cjl7LJpn.cjs.map +1 -0
- package/dist/_shared/input-BgcP6x4C.js +182 -0
- package/dist/_shared/input-BgcP6x4C.js.map +1 -0
- package/dist/_shared/input-DV3g7Fm5.cjs +2 -0
- package/dist/_shared/input-DV3g7Fm5.cjs.map +1 -0
- package/dist/_shared/item-D7GTzvhf.js +226 -0
- package/dist/_shared/item-D7GTzvhf.js.map +1 -0
- package/dist/_shared/item-DTrnHpfm.cjs +2 -0
- package/dist/_shared/item-DTrnHpfm.cjs.map +1 -0
- package/dist/_shared/layout-BExg7Vlx.js +261 -0
- package/dist/_shared/layout-BExg7Vlx.js.map +1 -0
- package/dist/_shared/layout-CKRD_goE.cjs +2 -0
- package/dist/_shared/layout-CKRD_goE.cjs.map +1 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs +2 -0
- package/dist/_shared/layout.types-CXFAjJCj.cjs.map +1 -0
- package/dist/_shared/layout.types-ip8BYRa7.js +28 -0
- package/dist/_shared/layout.types-ip8BYRa7.js.map +1 -0
- package/dist/_shared/mentions-BtGhYisA.js +506 -0
- package/dist/_shared/mentions-BtGhYisA.js.map +1 -0
- package/dist/_shared/mentions-CnVOuQJU.cjs +2 -0
- package/dist/_shared/mentions-CnVOuQJU.cjs.map +1 -0
- package/dist/_shared/money-display-BvVpRUs5.cjs +2 -0
- package/dist/_shared/money-display-BvVpRUs5.cjs.map +1 -0
- package/dist/_shared/money-display-D6Qtvyyv.js +198 -0
- package/dist/_shared/money-display-D6Qtvyyv.js.map +1 -0
- package/dist/_shared/navigation-C4dO1I82.cjs +2 -0
- package/dist/_shared/navigation-C4dO1I82.cjs.map +1 -0
- package/dist/_shared/navigation-Ct-LFlpY.js +436 -0
- package/dist/_shared/navigation-Ct-LFlpY.js.map +1 -0
- package/dist/_shared/overlays-ChyqXn0n.js +735 -0
- package/dist/_shared/overlays-ChyqXn0n.js.map +1 -0
- package/dist/_shared/overlays-Dn2bt3CL.cjs +2 -0
- package/dist/_shared/overlays-Dn2bt3CL.cjs.map +1 -0
- package/dist/_shared/popover-menu-17Dxn25O.js +93 -0
- package/dist/_shared/popover-menu-17Dxn25O.js.map +1 -0
- package/dist/_shared/popover-menu-DXVN0bvj.cjs +2 -0
- package/dist/_shared/popover-menu-DXVN0bvj.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-BRpcNkj1.js +620 -0
- package/dist/_shared/rich-text-editor-BRpcNkj1.js.map +1 -0
- package/dist/_shared/rich-text-editor-BXxGNbmI.cjs +2 -0
- package/dist/_shared/rich-text-editor-BXxGNbmI.cjs.map +1 -0
- package/dist/_shared/settings-CW9yzfQM.js +143 -0
- package/dist/_shared/settings-CW9yzfQM.js.map +1 -0
- package/dist/_shared/settings-cCPrw7si.cjs +2 -0
- package/dist/_shared/settings-cCPrw7si.cjs.map +1 -0
- package/dist/_shared/sidebar-Cq6J_I4l.cjs +2 -0
- package/dist/_shared/sidebar-Cq6J_I4l.cjs.map +1 -0
- package/dist/_shared/sidebar-DtF_ihE3.js +548 -0
- package/dist/_shared/sidebar-DtF_ihE3.js.map +1 -0
- package/dist/_shared/spinner-DY2de3Wt.cjs +2 -0
- package/dist/_shared/spinner-DY2de3Wt.cjs.map +1 -0
- package/dist/_shared/spinner-ZmIq_zsx.js +67 -0
- package/dist/_shared/spinner-ZmIq_zsx.js.map +1 -0
- package/dist/_shared/table-BBWc-wIw.js +1377 -0
- package/dist/_shared/table-BBWc-wIw.js.map +1 -0
- package/dist/_shared/table-DMDkdLzV.cjs +2 -0
- package/dist/_shared/table-DMDkdLzV.cjs.map +1 -0
- package/dist/_shared/textarea-C1TeJ7Vt.cjs +2 -0
- package/dist/_shared/textarea-C1TeJ7Vt.cjs.map +1 -0
- package/dist/_shared/textarea-CGRkgH5z.js +118 -0
- package/dist/_shared/textarea-CGRkgH5z.js.map +1 -0
- package/dist/_shared/typography-CzFVA1w1.js +201 -0
- package/dist/_shared/typography-CzFVA1w1.js.map +1 -0
- package/dist/_shared/typography-GtkgK9QX.cjs +2 -0
- package/dist/_shared/typography-GtkgK9QX.cjs.map +1 -0
- package/dist/_shared/workspace-BF5BtDhD.cjs +2 -0
- package/dist/_shared/workspace-BF5BtDhD.cjs.map +1 -0
- package/dist/_shared/workspace-IvsczduM.js +357 -0
- package/dist/_shared/workspace-IvsczduM.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/badge.d.ts.map +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/cards/partials/card-primitives.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.types.d.ts +3 -3
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.js +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/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/chart.cjs +1 -1
- package/dist/components/base/display/chart.js +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.js +3 -3
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.js +3 -3
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +5 -5
- 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 +2 -2
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +3 -3
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/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/data-table.d.ts.map +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.js +11 -11
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.js +8 -8
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.js +3 -3
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.js +7 -7
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.js +8 -8
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.js +4 -4
- package/dist/components/composed/data-display/index.cjs +1 -1
- package/dist/components/composed/data-display/index.js +1 -1
- package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.js +5 -5
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.js +3 -3
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.js +3 -3
- 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.js +5 -5
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.js +4 -4
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/data-view/index.cjs +1 -1
- package/dist/components/features/data-view/index.js +2 -2
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.js +4 -4
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.js +6 -6
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.js +4 -4
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.js +3 -3
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.js +8 -8
- 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/products/index.cjs +1 -1
- package/dist/components/features/products/index.js +11 -11
- package/dist/components/features/resource/index.cjs +1 -1
- package/dist/components/features/resource/index.js +4 -4
- package/dist/components/features/rich-text-editor/index.cjs +1 -1
- package/dist/components/features/rich-text-editor/index.js +1 -1
- package/dist/components/features/schema-form/index.cjs +1 -1
- package/dist/components/features/schema-form/index.js +8 -8
- 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/app-shell/index.cjs +1 -1
- package/dist/components/layout/app-shell/index.js +1 -1
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/containers/containers.types.d.ts +2 -2
- package/dist/components/layout/containers/containers.types.d.ts.map +1 -1
- package/dist/components/layout/containers/content-container.d.ts.map +1 -1
- package/dist/components/layout/containers/index.cjs +1 -1
- package/dist/components/layout/containers/index.js +1 -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 +11 -12
- package/dist/components/layout/layout.types.d.ts.map +1 -1
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +2 -2
- package/dist/components/layout/settings/index.cjs +1 -1
- package/dist/components/layout/settings/index.js +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +2 -2
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.js +1 -1
- package/dist/showcase/assets/AreaChart-CsIm9z7Y.js +6 -0
- package/dist/showcase/assets/CompositeItem-D9zznn01.js +1 -0
- package/dist/showcase/assets/CompositeRoot-CvxtZ81W.js +1 -0
- package/dist/showcase/assets/DialogTrigger-C-osQGHu.js +1 -0
- package/dist/showcase/assets/LabelableContext-_EE-HBND.js +1 -0
- package/dist/showcase/assets/PreviewLayout-KdEsSl3b.js +1 -0
- package/dist/showcase/assets/RadioGroup-4jOeNTc1.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-CXTdUcaE.js +1 -0
- package/dist/showcase/assets/Separator-CHVXO6nj.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-CM5tQGGX.js +1 -0
- package/dist/showcase/assets/accordion-CA84bxb2.js +171 -0
- package/dist/showcase/assets/accordion-variants-DqWzAOO3.js +1 -0
- package/dist/showcase/assets/action-menu-D0q5z-Kq.js +1 -0
- package/dist/showcase/assets/actions-DnqxABJU.js +310 -0
- package/dist/showcase/assets/activities-BC9hoMy9.js +500 -0
- package/dist/showcase/assets/activities-feed-card-D6wGLpbH.js +1 -0
- package/dist/showcase/assets/admin-CMnMsugJ.js +140 -0
- package/dist/showcase/assets/ai-B6_sE9Zg.js +207 -0
- package/dist/showcase/assets/ai-artifact-BVvbsSJB.js +2 -0
- package/dist/showcase/assets/ai-chat-lcXeqJrA.js +568 -0
- package/dist/showcase/assets/ai-elements-B32o_UjE.js +387 -0
- package/dist/showcase/assets/ai-tool-call-BLrAioKz.js +1 -0
- package/dist/showcase/assets/alert-B1p1Grce.js +62 -0
- package/dist/showcase/assets/alert-BBiffYsY.js +93 -0
- package/dist/showcase/assets/alert-vH0nJ8J9.js +1 -0
- package/dist/showcase/assets/api-key-list-BrSc6V1y.js +1 -0
- package/dist/showcase/assets/api-key-list-CoKe_PaL.js +73 -0
- package/dist/showcase/assets/app-sidebar-R93lRPB4.js +1 -0
- package/dist/showcase/assets/arrow-down-xxVIADbv.js +1 -0
- package/dist/showcase/assets/arrow-left-DxnlnN8R.js +1 -0
- package/dist/showcase/assets/arrow-right-S5k93UPM.js +1 -0
- package/dist/showcase/assets/arrow-up-OlEVG7a-.js +1 -0
- package/dist/showcase/assets/arrow-up-right-j55bbl4b.js +1 -0
- package/dist/showcase/assets/avatar-BbiXvZq7.js +67 -0
- package/dist/showcase/assets/avatar-Bwpw-hQo.js +57 -0
- package/dist/showcase/assets/avatar-D0DKQ1lK.js +1 -0
- package/dist/showcase/assets/avatar-WyjSBov9.js +1 -0
- package/dist/showcase/assets/badge-BzLZQO3L.js +31 -0
- package/dist/showcase/assets/badge-check-TFWm1m3F.js +1 -0
- package/dist/showcase/assets/bell-CmuQlO_k.js +1 -0
- package/dist/showcase/assets/bot-Bu518AJB.js +1 -0
- package/dist/showcase/assets/box-D-wrSdOJ.js +1 -0
- package/dist/showcase/assets/braces-CgCdmdAl.js +1 -0
- package/dist/showcase/assets/brain-DkHdwgHO.js +1 -0
- package/dist/showcase/assets/brand-CpovnVoG.js +36 -0
- package/dist/showcase/assets/breadcrumb-BUc0WC5d.js +1 -0
- package/dist/showcase/assets/breadcrumb-Do_Dazt1.js +52 -0
- package/dist/showcase/assets/breadcrumbs-Bj21o2zm.js +1 -0
- package/dist/showcase/assets/briefcase-CQBh2kok.js +1 -0
- package/dist/showcase/assets/building-2-D07Ej6iR.js +1 -0
- package/dist/showcase/assets/button-CCZ4KEGQ.js +44 -0
- package/dist/showcase/assets/button-group-BTjeHOvz.js +1 -0
- package/dist/showcase/assets/buttons-D45Wwiwn.js +272 -0
- package/dist/showcase/assets/calendar-BsEWULmZ.js +16 -0
- package/dist/showcase/assets/calendar-CkPefzIO.js +1 -0
- package/dist/showcase/assets/calendar-DZlT3qTq.js +1 -0
- package/dist/showcase/assets/calendar-days-C9awTMru.js +1 -0
- package/dist/showcase/assets/camera-CQhMw-RD.js +1 -0
- package/dist/showcase/assets/card-CKrz_UHt.js +1 -0
- package/dist/showcase/assets/card-DZgZgjXO.js +188 -0
- package/dist/showcase/assets/card-primitives-CpkDLK3Y.js +1 -0
- package/dist/showcase/assets/card-radio-group-BjXwMI4v.js +1 -0
- package/dist/showcase/assets/cards-Cd24XZ9l.js +353 -0
- package/dist/showcase/assets/carousel-Doon04yO.js +449 -0
- package/dist/showcase/assets/cell-renderers-CTay3duH.js +1 -0
- package/dist/showcase/assets/chart-CkvbdpWw.js +358 -0
- package/dist/showcase/assets/chart-column-Dz57kUMl.js +1 -0
- package/dist/showcase/assets/checkbox-L-L4-wvA.js +1 -0
- package/dist/showcase/assets/checkbox-sP254E7e.js +1 -0
- package/dist/showcase/assets/chevron-down-CLc_a2Ua.js +1 -0
- package/dist/showcase/assets/chevron-left-CMRIGOJt.js +1 -0
- package/dist/showcase/assets/chevron-up-BDw6LdDZ.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-C519RKki.js +1 -0
- package/dist/showcase/assets/circle-B_tOHWTY.js +1 -0
- package/dist/showcase/assets/circle-alert-B56AFULT.js +1 -0
- package/dist/showcase/assets/circle-check-B4XZj4Ty.js +1 -0
- package/dist/showcase/assets/circle-check-big-C0iEkwPB.js +1 -0
- package/dist/showcase/assets/circle-dot-DPdJZkc6.js +1 -0
- package/dist/showcase/assets/circle-question-mark-LTetdrq6.js +1 -0
- package/dist/showcase/assets/circle-x-B4FwM-sI.js +1 -0
- package/dist/showcase/assets/clock-3-DZhjBuw8.js +1 -0
- package/dist/showcase/assets/clock-B9Fna2Q3.js +1 -0
- package/dist/showcase/assets/code-xml-B6Xb_vIg.js +1 -0
- package/dist/showcase/assets/collapsible-Bf7Oo37i.js +27 -0
- package/dist/showcase/assets/collapsible-BfLeooy8.js +1 -0
- package/dist/showcase/assets/combobox-4NYfJznY.js +685 -0
- package/dist/showcase/assets/command-7jRRucHf.js +1 -0
- package/dist/showcase/assets/command-D56CjgNc.js +1 -0
- package/dist/showcase/assets/comment-composer-BWeXIZfK.js +1 -0
- package/dist/showcase/assets/comment-item-ChkiK-ut.js +1 -0
- package/dist/showcase/assets/comments-YnEop7v3.js +357 -0
- package/dist/showcase/assets/commerce-7XxWJChs.js +267 -0
- package/dist/showcase/assets/composite-CHcyYCsk.js +1 -0
- package/dist/showcase/assets/contact-card-BXw-VuBm.js +65 -0
- package/dist/showcase/assets/content-container-C4uopCBg.js +1 -0
- package/dist/showcase/assets/copyable-CjVYEJ0P.js +1 -0
- package/dist/showcase/assets/copyable-Cz2jW7yL.js +96 -0
- package/dist/showcase/assets/course-card-CvK3dw9W.js +77 -0
- package/dist/showcase/assets/cpu-Vk5WgcC1.js +1 -0
- package/dist/showcase/assets/credit-card-CaigqZGk.js +1 -0
- package/dist/showcase/assets/css-variables-hLaBmeMt.js +1190 -0
- package/dist/showcase/assets/currency-yO1giHp1.js +149 -0
- package/dist/showcase/assets/dark-surfaces-BPQnyk9a.js +90 -0
- package/dist/showcase/assets/data-view-CjjXn5VT.js +124 -0
- package/dist/showcase/assets/data-view-DF0n8uva.js +4 -0
- package/dist/showcase/assets/database-ChUBDe8E.js +1 -0
- package/dist/showcase/assets/date-block-DUg1Oyn4.js +1 -0
- package/dist/showcase/assets/date-picker-CoQPZa34.js +1 -0
- package/dist/showcase/assets/date-pickers-B-IUbyXw.js +73 -0
- package/dist/showcase/assets/dense-info-zVQSWqOU.js +106 -0
- package/dist/showcase/assets/design-system-consistency-Bnz_h3-6.js +264 -0
- package/dist/showcase/assets/dialog-BtilpgxJ.js +1 -0
- package/dist/showcase/assets/dialog-kf9WwmTC.js +1 -0
- package/dist/showcase/assets/display-utilities-BBzG5EPX.js +267 -0
- package/dist/showcase/assets/dist-9gFIhkw-.js +45 -0
- package/dist/showcase/assets/dist-CGpz_7Mu.js +1 -0
- package/dist/showcase/assets/dollar-sign-CWbYI3Pd.js +1 -0
- package/dist/showcase/assets/download-Bt_z-poH.js +1 -0
- package/dist/showcase/assets/dropdown-menu-C1_SYTHm.js +1 -0
- package/dist/showcase/assets/dropzone-D5BGVTnl.js +1 -0
- package/dist/showcase/assets/earth-sP5mIgG3.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-BD7kMOzj.js +1 -0
- package/dist/showcase/assets/ellipsis-yqIF49C8.js +1 -0
- package/dist/showcase/assets/empty-DIrJgtrh.js +1 -0
- package/dist/showcase/assets/empty-item-GgnZk2yf.js +49 -0
- package/dist/showcase/assets/empty-state-ZGKkJ6sf.js +190 -0
- package/dist/showcase/assets/empty-state-n_Fspzt-.js +1 -0
- package/dist/showcase/assets/enhanced-activities-CCw_hZnZ.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-bBF-ADDs.js +1 -0
- package/dist/showcase/assets/esm-CyFPn936.js +2 -0
- package/dist/showcase/assets/event-calendar-Czo7yBDx.js +138 -0
- package/dist/showcase/assets/event-log-DJ3B3nMV.js +330 -0
- package/dist/showcase/assets/example-eGsLGIcp.js +1 -0
- package/dist/showcase/assets/external-link-DPOQEVWH.js +1 -0
- package/dist/showcase/assets/eye-CN92NVL0.js +1 -0
- package/dist/showcase/assets/feature-announcement-BXkSW17e.js +34 -0
- package/dist/showcase/assets/file-CFHePlKG.js +1 -0
- package/dist/showcase/assets/file-text--WYCYQMw.js +1 -0
- package/dist/showcase/assets/filter-layout-B35gGmcO.js +1 -0
- package/dist/showcase/assets/filters-GDW_oiT3.js +139 -0
- package/dist/showcase/assets/flag-XsT9XFPr.js +1 -0
- package/dist/showcase/assets/folder-open-RtsQ8vxf.js +1 -0
- package/dist/showcase/assets/form-field-Bijd1Gex.js +1 -0
- package/dist/showcase/assets/form-sizing-Dltt6Fj-.js +1 -0
- package/dist/showcase/assets/format-Ckw4OM66.js +1 -0
- package/dist/showcase/assets/forms-00bU7LN8.js +915 -0
- package/dist/showcase/assets/funnel-qu25WlXD.js +1 -0
- package/dist/showcase/assets/generic-Bf82Wiol.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-BR4_m2HH.js +1 -0
- package/dist/showcase/assets/gift-D4GQoqzV.js +1 -0
- package/dist/showcase/assets/giftcard-cards-CMutwaAY.js +85 -0
- package/dist/showcase/assets/git-branch-B2QG2zRg.js +1 -0
- package/dist/showcase/assets/global-search-CRAB9TSF.js +1 -0
- package/dist/showcase/assets/global-search-DY0cKfhY.js +215 -0
- package/dist/showcase/assets/globe-BxZW28rG.js +1 -0
- package/dist/showcase/assets/gradient-card-CQGnXG8r.js +58 -0
- package/dist/showcase/assets/hash-CsRtIoKK.js +1 -0
- package/dist/showcase/assets/header-DzYOgZLP.js +1 -0
- package/dist/showcase/assets/header-notifications-D_CJPbvs.js +1 -0
- package/dist/showcase/assets/heart-B2YsYprq.js +1 -0
- package/dist/showcase/assets/hooks-BhUMA4Tb.js +220 -0
- package/dist/showcase/assets/house-HeRFNhI0.js +1 -0
- package/dist/showcase/assets/icon-badge-CpDkc-S0.js +37 -0
- package/dist/showcase/assets/icon-badge-eNEGgpAV.js +1 -0
- package/dist/showcase/assets/image-T88JyDag.js +1 -0
- package/dist/showcase/assets/inbox-DLrLLnTR.js +1 -0
- package/dist/showcase/assets/index-DDZl6kOS.js +10 -0
- package/dist/showcase/assets/index-nOkXemgw.css +2 -0
- package/dist/showcase/assets/inertValue-BajuuRy4.js +1 -0
- package/dist/showcase/assets/info-CNYfw2Yz.js +1 -0
- package/dist/showcase/assets/inline-stat-BN6yhDR5.js +15 -0
- package/dist/showcase/assets/inline-stat-Bqw3lVfk.js +1 -0
- package/dist/showcase/assets/input-C-9K6F0N.js +1 -0
- package/dist/showcase/assets/input-DaZzfkZV.js +1 -0
- package/dist/showcase/assets/input-group-DE-Xdhv4.js +1 -0
- package/dist/showcase/assets/input-group-DIQZnytn.js +47 -0
- package/dist/showcase/assets/inputs-Cl_JgSR4.js +155 -0
- package/dist/showcase/assets/installation-DdhD4Dkq.js +134 -0
- package/dist/showcase/assets/invoice-header-DOs2ACqQ.js +36 -0
- package/dist/showcase/assets/invoice-items-1EuA62mF.js +36 -0
- package/dist/showcase/assets/invoice-mini-vCrYEtWp.js +14 -0
- package/dist/showcase/assets/invoice-table--mDTs1Iz.js +30 -0
- package/dist/showcase/assets/isSameDay-BNB1yam4.js +1 -0
- package/dist/showcase/assets/isToday-BugOpGJC.js +1 -0
- package/dist/showcase/assets/italic-Ck4UD2ZT.js +1 -0
- package/dist/showcase/assets/item-BcesxqFS.js +139 -0
- package/dist/showcase/assets/item-BgPlwUMv.js +1 -0
- package/dist/showcase/assets/item-CB9k_rmo.js +1 -0
- package/dist/showcase/assets/kanban-cPuSVqWY.js +188 -0
- package/dist/showcase/assets/key-round-BmYjd5dk.js +1 -0
- package/dist/showcase/assets/label-BTIBJBqN.js +1 -0
- package/dist/showcase/assets/languages-he6FNXRs.js +1 -0
- package/dist/showcase/assets/layers-B_48DtOz.js +1 -0
- package/dist/showcase/assets/layout-app-shell-zwLv6jTP.js +608 -0
- package/dist/showcase/assets/layout-auth-2Zv5lr52.js +790 -0
- package/dist/showcase/assets/layout-containers-Dzw3xlKn.js +101 -0
- package/dist/showcase/assets/layout-header-TJ-WVmG3.js +203 -0
- package/dist/showcase/assets/layout-page-CIVQCKXK.js +314 -0
- package/dist/showcase/assets/layout-primitives-i_O81fzT.js +34 -0
- package/dist/showcase/assets/layout-sidebar-eH_pwBq_.js +224 -0
- package/dist/showcase/assets/layout-users-CWSaFBLj.js +117 -0
- package/dist/showcase/assets/layout-workspace-w3oe32GE.js +191 -0
- package/dist/showcase/assets/lib-CoS0xjP8.js +1 -0
- package/dist/showcase/assets/list-checks-DecRPpK3.js +1 -0
- package/dist/showcase/assets/lock-D9f8uXol.js +1 -0
- package/dist/showcase/assets/lock-keyhole-C20eixH6.js +1 -0
- package/dist/showcase/assets/mail-CVgP8Qlo.js +1 -0
- package/dist/showcase/assets/mail-check-mplTKcSH.js +1 -0
- package/dist/showcase/assets/map-B6OGeOup.js +124 -0
- package/dist/showcase/assets/map-pin-BZXSwrzT.js +1 -0
- package/dist/showcase/assets/media-library-DSlVIM1Q.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-CNAEeXgy.js +1 -0
- package/dist/showcase/assets/mentions-Cb3g4hDN.js +138 -0
- package/dist/showcase/assets/menus-CE0Hlj8N.js +171 -0
- package/dist/showcase/assets/message-square-HliU8vbW.js +1 -0
- package/dist/showcase/assets/metadata-list-CJ5v5Bvc.js +286 -0
- package/dist/showcase/assets/metadata-list-DY92-pw2.js +1 -0
- package/dist/showcase/assets/metric-DxMTjIvU.js +1 -0
- package/dist/showcase/assets/metric-bar-cW9nWCRl.js +1 -0
- package/dist/showcase/assets/metric-grid-CvfO52X1.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-BmjQdRus.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-BZqB5d1y.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-jAhlrQCI.js +50 -0
- package/dist/showcase/assets/metrics-comparison-DURZ6qEL.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-HhJDBguh.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-Dq5k-P6F.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-DXzhwa6z.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-C6O5b0wP.js +42 -0
- package/dist/showcase/assets/metrics-overview-Hv2mseb3.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-CW42vBCS.js +54 -0
- package/dist/showcase/assets/minus-BW62vCxf.js +1 -0
- package/dist/showcase/assets/money-display-CAdGk5Lr.js +1 -0
- package/dist/showcase/assets/month-year-picker-dHuvgz1E.js +1 -0
- package/dist/showcase/assets/navigation-C4uSLvbZ.js +90 -0
- package/dist/showcase/assets/navigation-SjsZrtIc.js +231 -0
- package/dist/showcase/assets/navigation-extras-CMVNVskk.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-C1jwRdMU.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-BYFLpl5w.js +1 -0
- package/dist/showcase/assets/overlays-0Y8MAz39.js +159 -0
- package/dist/showcase/assets/overlays-ClOnjahL.js +408 -0
- package/dist/showcase/assets/overview-B5ztGmTp.js +184 -0
- package/dist/showcase/assets/package-check-MeSw6bS4.js +1 -0
- package/dist/showcase/assets/package-vYJ0q0QM.js +1 -0
- package/dist/showcase/assets/page-4lMKtBQ7.js +1 -0
- package/dist/showcase/assets/page-action-button-C5-TGSzy.js +1 -0
- package/dist/showcase/assets/page-header-C_-KYryO.js +1 -0
- package/dist/showcase/assets/pagination-D3L3Iwus.js +1 -0
- package/dist/showcase/assets/pagination-dZXPxwHx.js +42 -0
- package/dist/showcase/assets/paperclip-BZhdPOw8.js +1 -0
- package/dist/showcase/assets/password-input-CDSMtGxt.js +1 -0
- package/dist/showcase/assets/pencil-DiYr3CZ9.js +1 -0
- package/dist/showcase/assets/phone-Dm5qzlG8.js +1 -0
- package/dist/showcase/assets/plus-pfGaA3St.js +1 -0
- package/dist/showcase/assets/popover-CjVWDO7C.js +1 -0
- package/dist/showcase/assets/popover-menu-JcZyGV3Y.js +1 -0
- package/dist/showcase/assets/popover-pZ4Jbp0s.js +1 -0
- package/dist/showcase/assets/products-C62MKtAR.js +423 -0
- package/dist/showcase/assets/progress-Btw-ZUaU.js +18 -0
- package/dist/showcase/assets/progress-DpB5LL6R.js +1 -0
- package/dist/showcase/assets/props-table-Bjc9IHmp.js +1 -0
- package/dist/showcase/assets/quote-DcxVd1fj.js +1 -0
- package/dist/showcase/assets/receipt-BHns-S5Q.js +1 -0
- package/dist/showcase/assets/receipt-text-L0aYasyt.js +1 -0
- package/dist/showcase/assets/refinement-guide-BBOGBJ4I.js +189 -0
- package/dist/showcase/assets/refresh-cw-z6mlm0HI.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-hsarzg5A.js +1 -0
- package/dist/showcase/assets/resource-CIn_zKZ4.js +139 -0
- package/dist/showcase/assets/resource-DxktLgEK.js +1 -0
- package/dist/showcase/assets/resource-selector-card-dkcEQ6bl.js +43 -0
- package/dist/showcase/assets/rich-text-editor-Dd-rWisw.js +124 -0
- package/dist/showcase/assets/rich-text-editor-DvJMFj48.js +143 -0
- package/dist/showcase/assets/rotate-ccw-DEz6nb5P.js +1 -0
- package/dist/showcase/assets/route-BeXaXTk8.js +1 -0
- package/dist/showcase/assets/save-EE7Tc5OT.js +1 -0
- package/dist/showcase/assets/schema-form-RK9Zpz1E.js +327 -0
- package/dist/showcase/assets/scroll-area-BejQJ0Q1.js +32 -0
- package/dist/showcase/assets/scroll-area-DS8LJ7LG.js +1 -0
- package/dist/showcase/assets/section-Cv8i4DIx.js +1 -0
- package/dist/showcase/assets/select-Cuy3YKW9.js +1 -0
- package/dist/showcase/assets/select-qFy1jm91.js +1 -0
- package/dist/showcase/assets/send-CXv0ST9u.js +1 -0
- package/dist/showcase/assets/separator-CecGyBaV.js +1 -0
- package/dist/showcase/assets/separator-CqtFQXrk.js +28 -0
- package/dist/showcase/assets/settings-2-CCeMwMOj.js +1 -0
- package/dist/showcase/assets/settings-CXjN6wTC.js +1 -0
- package/dist/showcase/assets/sheet-Csyrmkqp.js +1 -0
- package/dist/showcase/assets/shield-DR0ZfAFA.js +1 -0
- package/dist/showcase/assets/shield-alert-Bp1iFJ2q.js +1 -0
- package/dist/showcase/assets/shield-check-ClL4B_Cd.js +1 -0
- package/dist/showcase/assets/shopping-bag-DnSmbPUX.js +1 -0
- package/dist/showcase/assets/showcase-CQKt5VGi.js +132 -0
- package/dist/showcase/assets/sidebar-CXy94md1.js +1 -0
- package/dist/showcase/assets/sidebar.context-C8gkOwJ5.js +1 -0
- package/dist/showcase/assets/skeleton-B8wC5P66.js +29 -0
- package/dist/showcase/assets/skeleton-DBlCLlBC.js +1 -0
- package/dist/showcase/assets/slider-BcjkNx6W.js +1 -0
- package/dist/showcase/assets/smart-card-Cg6rtWH9.js +1 -0
- package/dist/showcase/assets/sonner-ZGBQ13wS.js +22 -0
- package/dist/showcase/assets/sortable.esm-CGFWc-Cn.js +5 -0
- package/dist/showcase/assets/sparkles-q1-9JZqa.js +1 -0
- package/dist/showcase/assets/spinner-CKg8QLHu.js +1 -0
- package/dist/showcase/assets/spinner-D1Ao9j9T.js +49 -0
- package/dist/showcase/assets/spinner-oahLIkgb.js +30 -0
- package/dist/showcase/assets/square-pen-DZ3bQJia.js +1 -0
- package/dist/showcase/assets/stacked-avatars-CKPtb3Hj.js +1 -0
- package/dist/showcase/assets/star-suetD-KI.js +1 -0
- package/dist/showcase/assets/startOfDay-OjIsUeiv.js +1 -0
- package/dist/showcase/assets/styles-1mYOoC2k.js +1 -0
- package/dist/showcase/assets/suggestions-DLYaI-In.js +126 -0
- package/dist/showcase/assets/switch-CTTrJNwo.js +1 -0
- package/dist/showcase/assets/switch-ChJWWmxN.js +1 -0
- package/dist/showcase/assets/sync-DsHYydvo.js +124 -0
- package/dist/showcase/assets/table-Ck2ptin2.js +686 -0
- package/dist/showcase/assets/table-DyJ9oADQ.js +1 -0
- package/dist/showcase/assets/table-actions-COU4zHfh.js +1 -0
- package/dist/showcase/assets/tabs-Bl_RHGIw.js +1 -0
- package/dist/showcase/assets/tabs-DS-4VSkb.js +19 -0
- package/dist/showcase/assets/tags-input-BlYzb5fF.js +1 -0
- package/dist/showcase/assets/text-button-OPdNs3fb.js +1 -0
- package/dist/showcase/assets/text-link-D27gqGeg.js +1 -0
- package/dist/showcase/assets/textarea-DpC7J5F-.js +1 -0
- package/dist/showcase/assets/textarea-JtXUjxvc.js +1 -0
- package/dist/showcase/assets/timelines-DQM-B4Xo.js +200 -0
- package/dist/showcase/assets/toggle-group-CMneKREH.js +1 -0
- package/dist/showcase/assets/toggles-CAXXgjO_.js +71 -0
- package/dist/showcase/assets/toggles-group-CHRqrpoM.js +32 -0
- package/dist/showcase/assets/tooltip-CwGZAioX.js +31 -0
- package/dist/showcase/assets/trash-2-BpMb9Zbb.js +1 -0
- package/dist/showcase/assets/trending-up-B1BzitCg.js +1 -0
- package/dist/showcase/assets/truck-CDSE5-HZ.js +1 -0
- package/dist/showcase/assets/typography-BoNJ1hRZ.js +223 -0
- package/dist/showcase/assets/ui-badge-Djh6NiB2.js +28 -0
- package/dist/showcase/assets/ui-card-QC_rl_H2.js +30 -0
- package/dist/showcase/assets/ui-table-qAGsc3qN.js +42 -0
- package/dist/showcase/assets/upload-tray-DKCJgW5u.js +138 -0
- package/dist/showcase/assets/use-layout-link-BPlsZ8Ys.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-526MebAC.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-CqySZiH9.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-DWX7LbGX.js +1 -0
- package/dist/showcase/assets/useCompositeItem-DGEBUXgE.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-B2nuNlc2.js +1 -0
- package/dist/showcase/assets/useLabelableId-DY4O1lpt.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-DxwujDvt.js +1 -0
- package/dist/showcase/assets/useRender-BPoNv-Lm.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-BnOSAjfy.js +1 -0
- package/dist/showcase/assets/useValueChanged-CXmDOWxx.js +1 -0
- package/dist/showcase/assets/user-BGchdtV_.js +1 -0
- package/dist/showcase/assets/user-plus-BifI_xVA.js +1 -0
- package/dist/showcase/assets/users-Cl5yYqdg.js +1 -0
- package/dist/showcase/assets/vendor-profile-BNW4FYna.js +37 -0
- package/dist/showcase/assets/video-BtQPixYN.js +1 -0
- package/dist/showcase/assets/wrench-CRalc5fG.js +1 -0
- package/dist/showcase/assets/x-D6hUY89S.js +1 -0
- package/dist/showcase/assets/zap-v_qbqeI5.js +1 -0
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/themes/shadcn.default.css +6 -6
- package/src/css/tokens/foundation.css +6 -6
- package/dist/_shared/accordion-B9EjlZLY.js +0 -135
- package/dist/_shared/accordion-B9EjlZLY.js.map +0 -1
- package/dist/_shared/accordion-IFDIc0E7.cjs +0 -2
- package/dist/_shared/accordion-IFDIc0E7.cjs.map +0 -1
- package/dist/_shared/action-menu-B6yFRDz1.cjs +0 -2
- package/dist/_shared/action-menu-B6yFRDz1.cjs.map +0 -1
- package/dist/_shared/action-menu-CNS-fwQr.js +0 -96
- package/dist/_shared/action-menu-CNS-fwQr.js.map +0 -1
- package/dist/_shared/ai-artifact-B3qhuiKC.js +0 -1099
- package/dist/_shared/ai-artifact-B3qhuiKC.js.map +0 -1
- package/dist/_shared/ai-artifact-Dtr0bnVq.cjs +0 -3
- package/dist/_shared/ai-artifact-Dtr0bnVq.cjs.map +0 -1
- package/dist/_shared/alert-V0V36Sny.cjs +0 -2
- package/dist/_shared/alert-V0V36Sny.cjs.map +0 -1
- package/dist/_shared/alert-m-4s0Hqq.js +0 -81
- package/dist/_shared/alert-m-4s0Hqq.js.map +0 -1
- package/dist/_shared/app-shell-D3eGUtL-.js +0 -69
- package/dist/_shared/app-shell-D3eGUtL-.js.map +0 -1
- package/dist/_shared/app-shell-QJHARDMB.cjs +0 -2
- package/dist/_shared/app-shell-QJHARDMB.cjs.map +0 -1
- package/dist/_shared/auth-DdezEtKK.cjs +0 -2
- package/dist/_shared/auth-DdezEtKK.cjs.map +0 -1
- package/dist/_shared/auth-e7yab9pK.js +0 -643
- package/dist/_shared/auth-e7yab9pK.js.map +0 -1
- package/dist/_shared/badge-BeSKxX1u.cjs +0 -2
- package/dist/_shared/badge-BeSKxX1u.cjs.map +0 -1
- package/dist/_shared/badge-a2Z3K5aQ.js +0 -110
- package/dist/_shared/badge-a2Z3K5aQ.js.map +0 -1
- package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs +0 -2
- package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-B57Unsoe.js +0 -105
- package/dist/_shared/breadcrumbs-B57Unsoe.js.map +0 -1
- package/dist/_shared/button-Bd5bEIiB.cjs +0 -2
- package/dist/_shared/button-Bd5bEIiB.cjs.map +0 -1
- package/dist/_shared/button-DHksjMvc.js +0 -189
- package/dist/_shared/button-DHksjMvc.js.map +0 -1
- package/dist/_shared/buttons-Bek9F7qK.cjs +0 -2
- package/dist/_shared/buttons-Bek9F7qK.cjs.map +0 -1
- package/dist/_shared/buttons-DcynMPnE.js +0 -137
- package/dist/_shared/buttons-DcynMPnE.js.map +0 -1
- package/dist/_shared/card-radio-group-C2p_iBal.cjs +0 -2
- package/dist/_shared/card-radio-group-C2p_iBal.cjs.map +0 -1
- package/dist/_shared/card-radio-group-Fdi1Cz1j.js +0 -150
- package/dist/_shared/card-radio-group-Fdi1Cz1j.js.map +0 -1
- package/dist/_shared/cards-CbbHly7W.cjs +0 -2
- package/dist/_shared/cards-CbbHly7W.cjs.map +0 -1
- package/dist/_shared/cards-RZxRLx3f.js +0 -355
- package/dist/_shared/cards-RZxRLx3f.js.map +0 -1
- package/dist/_shared/combobox-BIe72dV3.js +0 -954
- package/dist/_shared/combobox-BIe72dV3.js.map +0 -1
- package/dist/_shared/combobox-CJiFDoTi.cjs +0 -2
- package/dist/_shared/combobox-CJiFDoTi.cjs.map +0 -1
- package/dist/_shared/comments-BJqgvSFY.js +0 -952
- package/dist/_shared/comments-BJqgvSFY.js.map +0 -1
- package/dist/_shared/comments-BjPciQfo.cjs +0 -2
- package/dist/_shared/comments-BjPciQfo.cjs.map +0 -1
- package/dist/_shared/containers-D7oZE4XI.cjs +0 -2
- package/dist/_shared/containers-D7oZE4XI.cjs.map +0 -1
- package/dist/_shared/containers-anBivbL9.js +0 -19
- package/dist/_shared/containers-anBivbL9.js.map +0 -1
- package/dist/_shared/content-container-CVUJCLhn.cjs +0 -2
- package/dist/_shared/content-container-CVUJCLhn.cjs.map +0 -1
- package/dist/_shared/content-container-Dv8XsAw4.js +0 -33
- package/dist/_shared/content-container-Dv8XsAw4.js.map +0 -1
- package/dist/_shared/copyable-Dopk9pEJ.js +0 -38
- package/dist/_shared/copyable-Dopk9pEJ.js.map +0 -1
- package/dist/_shared/copyable-rQwxsTJ3.cjs +0 -2
- package/dist/_shared/copyable-rQwxsTJ3.cjs.map +0 -1
- package/dist/_shared/data-display-C21skrV4.cjs +0 -2
- package/dist/_shared/data-display-C21skrV4.cjs.map +0 -1
- package/dist/_shared/data-display-C5-1dZua.js +0 -1873
- package/dist/_shared/data-display-C5-1dZua.js.map +0 -1
- package/dist/_shared/date-picker-BiUgIkjP.cjs +0 -2
- package/dist/_shared/date-picker-BiUgIkjP.cjs.map +0 -1
- package/dist/_shared/date-picker-DFkLiveH.js +0 -1361
- package/dist/_shared/date-picker-DFkLiveH.js.map +0 -1
- package/dist/_shared/date-pickers-C86tVD8e.cjs +0 -2
- package/dist/_shared/date-pickers-C86tVD8e.cjs.map +0 -1
- package/dist/_shared/date-pickers-D4oxOOHE.js +0 -329
- package/dist/_shared/date-pickers-D4oxOOHE.js.map +0 -1
- package/dist/_shared/display-B0wLVN8t.js +0 -986
- package/dist/_shared/display-B0wLVN8t.js.map +0 -1
- package/dist/_shared/display-Bin2vVex.cjs +0 -2
- package/dist/_shared/display-Bin2vVex.cjs.map +0 -1
- package/dist/_shared/form-sizing-C51oI3Di.js +0 -42
- package/dist/_shared/form-sizing-C51oI3Di.js.map +0 -1
- package/dist/_shared/form-sizing-Co53Drri.cjs +0 -2
- package/dist/_shared/form-sizing-Co53Drri.cjs.map +0 -1
- package/dist/_shared/forms-BoquZE2Y.js +0 -3533
- package/dist/_shared/forms-BoquZE2Y.js.map +0 -1
- package/dist/_shared/forms-CzrEYejY.cjs +0 -2
- package/dist/_shared/forms-CzrEYejY.cjs.map +0 -1
- package/dist/_shared/header-CxhEtk9M.cjs +0 -2
- package/dist/_shared/header-CxhEtk9M.cjs.map +0 -1
- package/dist/_shared/header-h3f14vQx.js +0 -447
- package/dist/_shared/header-h3f14vQx.js.map +0 -1
- package/dist/_shared/hooks-CS55-w3h.js +0 -95
- package/dist/_shared/hooks-CS55-w3h.js.map +0 -1
- package/dist/_shared/hooks-sfHAyDgD.cjs +0 -2
- package/dist/_shared/hooks-sfHAyDgD.cjs.map +0 -1
- package/dist/_shared/input-CB6hxh-5.cjs +0 -2
- package/dist/_shared/input-CB6hxh-5.cjs.map +0 -1
- package/dist/_shared/input-CfnHBT--.js +0 -182
- package/dist/_shared/input-CfnHBT--.js.map +0 -1
- package/dist/_shared/item-Xs-fgzaT.js +0 -226
- package/dist/_shared/item-Xs-fgzaT.js.map +0 -1
- package/dist/_shared/item-eUP9Rtmg.cjs +0 -2
- package/dist/_shared/item-eUP9Rtmg.cjs.map +0 -1
- package/dist/_shared/layout.types-CYuDZ_4h.cjs +0 -2
- package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +0 -1
- package/dist/_shared/layout.types-j7zZAPtg.js +0 -28
- package/dist/_shared/layout.types-j7zZAPtg.js.map +0 -1
- package/dist/_shared/mentions-BahbwDwU.js +0 -506
- package/dist/_shared/mentions-BahbwDwU.js.map +0 -1
- package/dist/_shared/mentions-aHalksbt.cjs +0 -2
- package/dist/_shared/mentions-aHalksbt.cjs.map +0 -1
- package/dist/_shared/money-display-BLPNMmiT.cjs +0 -2
- package/dist/_shared/money-display-BLPNMmiT.cjs.map +0 -1
- package/dist/_shared/money-display-D_-Cb8-9.js +0 -198
- package/dist/_shared/money-display-D_-Cb8-9.js.map +0 -1
- package/dist/_shared/navigation-BcYAwgzo.js +0 -436
- package/dist/_shared/navigation-BcYAwgzo.js.map +0 -1
- package/dist/_shared/navigation-DAB7uuBj.cjs +0 -2
- package/dist/_shared/navigation-DAB7uuBj.cjs.map +0 -1
- package/dist/_shared/overlays-DW8OIK5R.js +0 -735
- package/dist/_shared/overlays-DW8OIK5R.js.map +0 -1
- package/dist/_shared/overlays-Du65iCkx.cjs +0 -2
- package/dist/_shared/overlays-Du65iCkx.cjs.map +0 -1
- package/dist/_shared/page-D8UMXREv.cjs +0 -2
- package/dist/_shared/page-D8UMXREv.cjs.map +0 -1
- package/dist/_shared/page-D9LNsHMN.js +0 -262
- package/dist/_shared/page-D9LNsHMN.js.map +0 -1
- package/dist/_shared/popover-menu-qxBZlTck.js +0 -93
- package/dist/_shared/popover-menu-qxBZlTck.js.map +0 -1
- package/dist/_shared/popover-menu-z9QTjl4o.cjs +0 -2
- package/dist/_shared/popover-menu-z9QTjl4o.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-DeIiIDn7.cjs +0 -2
- package/dist/_shared/rich-text-editor-DeIiIDn7.cjs.map +0 -1
- package/dist/_shared/rich-text-editor-VIBlL0x3.js +0 -620
- package/dist/_shared/rich-text-editor-VIBlL0x3.js.map +0 -1
- package/dist/_shared/settings-BeZOIEJB.js +0 -143
- package/dist/_shared/settings-BeZOIEJB.js.map +0 -1
- package/dist/_shared/settings-DI-K34bW.cjs +0 -2
- package/dist/_shared/settings-DI-K34bW.cjs.map +0 -1
- package/dist/_shared/sidebar-DfToCaiC.cjs +0 -2
- package/dist/_shared/sidebar-DfToCaiC.cjs.map +0 -1
- package/dist/_shared/sidebar-DhpRdTZH.js +0 -541
- package/dist/_shared/sidebar-DhpRdTZH.js.map +0 -1
- package/dist/_shared/spinner-D35zNriU.cjs +0 -2
- package/dist/_shared/spinner-D35zNriU.cjs.map +0 -1
- package/dist/_shared/spinner-DMC2IIml.js +0 -67
- package/dist/_shared/spinner-DMC2IIml.js.map +0 -1
- package/dist/_shared/table-B_pqCQxC.js +0 -1377
- package/dist/_shared/table-B_pqCQxC.js.map +0 -1
- package/dist/_shared/table-CGVOXtdv.cjs +0 -2
- package/dist/_shared/table-CGVOXtdv.cjs.map +0 -1
- package/dist/_shared/textarea-B24qgdmd.cjs +0 -2
- package/dist/_shared/textarea-B24qgdmd.cjs.map +0 -1
- package/dist/_shared/textarea-ChLRmmVU.js +0 -118
- package/dist/_shared/textarea-ChLRmmVU.js.map +0 -1
- package/dist/_shared/typography-CO9uwZhF.cjs +0 -2
- package/dist/_shared/typography-CO9uwZhF.cjs.map +0 -1
- package/dist/_shared/typography-DE0NGEIE.js +0 -201
- package/dist/_shared/typography-DE0NGEIE.js.map +0 -1
- package/dist/_shared/workspace-BgtWS9fA.cjs +0 -2
- package/dist/_shared/workspace-BgtWS9fA.cjs.map +0 -1
- package/dist/_shared/workspace-D2jJ0PlS.js +0 -357
- package/dist/_shared/workspace-D2jJ0PlS.js.map +0 -1
- package/dist/showcase/assets/AreaChart-Y0ZwblHU.js +0 -6
- package/dist/showcase/assets/CompositeItem-BIY_Cp7P.js +0 -1
- package/dist/showcase/assets/CompositeRoot-DSPvBRQr.js +0 -1
- package/dist/showcase/assets/DialogTrigger-DHUp8vXe.js +0 -1
- package/dist/showcase/assets/LabelableContext-CasUI4hR.js +0 -1
- package/dist/showcase/assets/PreviewLayout-B_l930k0.js +0 -1
- package/dist/showcase/assets/RadioGroup-BgZ-UH79.js +0 -1
- package/dist/showcase/assets/ScrollAreaCorner-BbwFElLA.js +0 -1
- package/dist/showcase/assets/Separator-dQuencsA.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-BE0hbejq.js +0 -1
- package/dist/showcase/assets/accordion-D93ZNsLn.js +0 -171
- package/dist/showcase/assets/accordion-variants-Bl4bIQH4.js +0 -1
- package/dist/showcase/assets/action-menu--rEgMzDi.js +0 -1
- package/dist/showcase/assets/actions-3iedOWD9.js +0 -310
- package/dist/showcase/assets/activities-CyrAWFlu.js +0 -500
- package/dist/showcase/assets/activities-feed-card-bhIATc2O.js +0 -1
- package/dist/showcase/assets/admin-CZzNsj2q.js +0 -140
- package/dist/showcase/assets/ai-CasHwkW4.js +0 -207
- package/dist/showcase/assets/ai-artifact-BgWvrLAb.js +0 -2
- package/dist/showcase/assets/ai-chat-seS9aW-1.js +0 -568
- package/dist/showcase/assets/ai-elements-Tku5_ous.js +0 -387
- package/dist/showcase/assets/ai-tool-call-BU6xbmXG.js +0 -1
- package/dist/showcase/assets/alert-6Emt6KX2.js +0 -1
- package/dist/showcase/assets/alert-B6aLWiRW.js +0 -62
- package/dist/showcase/assets/alert-CtoTQ0vN.js +0 -93
- package/dist/showcase/assets/api-key-list-C0glWR3z.js +0 -1
- package/dist/showcase/assets/api-key-list-DcWSbY3u.js +0 -73
- package/dist/showcase/assets/app-sidebar-D_eNP_jh.js +0 -1
- package/dist/showcase/assets/arrow-down-qyKZ1H5j.js +0 -1
- package/dist/showcase/assets/arrow-left-C9I0h_su.js +0 -1
- package/dist/showcase/assets/arrow-right-DswaRsr6.js +0 -1
- package/dist/showcase/assets/arrow-up-5BijPOxK.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CbVVNT6g.js +0 -1
- package/dist/showcase/assets/avatar-BYHVCvVW.js +0 -67
- package/dist/showcase/assets/avatar-BlLAVC87.js +0 -1
- package/dist/showcase/assets/avatar-DQTXjcS4.js +0 -1
- package/dist/showcase/assets/avatar-DveZy09C.js +0 -57
- package/dist/showcase/assets/badge-Bth3mRTh.js +0 -31
- package/dist/showcase/assets/badge-check-DocF8Ho3.js +0 -1
- package/dist/showcase/assets/bell-DXBoeAzi.js +0 -1
- package/dist/showcase/assets/bot-Ch-Y1HK8.js +0 -1
- package/dist/showcase/assets/box-72m9QSDa.js +0 -1
- package/dist/showcase/assets/braces-CC17X3TE.js +0 -1
- package/dist/showcase/assets/brain-Dvbla_5x.js +0 -1
- package/dist/showcase/assets/brand-D5ciAq8v.js +0 -36
- package/dist/showcase/assets/breadcrumb-BBCaOVyz.js +0 -52
- package/dist/showcase/assets/breadcrumb-Bt8yVTCj.js +0 -1
- package/dist/showcase/assets/breadcrumbs-CkVWfcAN.js +0 -1
- package/dist/showcase/assets/briefcase-8rQTJwpE.js +0 -1
- package/dist/showcase/assets/building-2-CV7gTtXz.js +0 -1
- package/dist/showcase/assets/button-HGjoBio3.js +0 -44
- package/dist/showcase/assets/button-group-LWToSCrp.js +0 -1
- package/dist/showcase/assets/buttons-Bn_dX6Kk.js +0 -272
- package/dist/showcase/assets/calendar-BTsffmY8.js +0 -1
- package/dist/showcase/assets/calendar-Bhpyn4u0.js +0 -1
- package/dist/showcase/assets/calendar-DjrUTKcD.js +0 -16
- package/dist/showcase/assets/calendar-days-BKCkzWjV.js +0 -1
- package/dist/showcase/assets/camera-EjpDG3mc.js +0 -1
- package/dist/showcase/assets/card-Bp6iGuOF.js +0 -188
- package/dist/showcase/assets/card-CHc6AVFt.js +0 -1
- package/dist/showcase/assets/card-primitives-Bv6XGPJd.js +0 -1
- package/dist/showcase/assets/card-radio-group-Ce9FsiSv.js +0 -1
- package/dist/showcase/assets/cards-_CGG9zir.js +0 -354
- package/dist/showcase/assets/carousel-BVbsKH2W.js +0 -449
- package/dist/showcase/assets/cell-renderers-CosD6Gby.js +0 -1
- package/dist/showcase/assets/chart-CwOp8Sf8.js +0 -358
- package/dist/showcase/assets/chart-column-sz871NdJ.js +0 -1
- package/dist/showcase/assets/checkbox-BO38TYqr.js +0 -1
- package/dist/showcase/assets/checkbox-W4MhlPlJ.js +0 -1
- package/dist/showcase/assets/chevron-down-BFh1Fz2P.js +0 -1
- package/dist/showcase/assets/chevron-left-C5_X5glO.js +0 -1
- package/dist/showcase/assets/chevron-up-DPH3boVS.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-CM5mIDaw.js +0 -1
- package/dist/showcase/assets/circle-BFDzL1iF.js +0 -1
- package/dist/showcase/assets/circle-alert-C6MbOB0m.js +0 -1
- package/dist/showcase/assets/circle-check-C0X85t4j.js +0 -1
- package/dist/showcase/assets/circle-check-big-CBaodck_.js +0 -1
- package/dist/showcase/assets/circle-dot-DdRpIhnL.js +0 -1
- package/dist/showcase/assets/circle-question-mark-CKlcead7.js +0 -1
- package/dist/showcase/assets/circle-x-MO44aKHe.js +0 -1
- package/dist/showcase/assets/clock-3-CXQJFcbh.js +0 -1
- package/dist/showcase/assets/clock-GhBJJ6n1.js +0 -1
- package/dist/showcase/assets/code-xml-BSX7Qyi5.js +0 -1
- package/dist/showcase/assets/collapsible-CZLTO5EH.js +0 -1
- package/dist/showcase/assets/collapsible-LrDO_sSQ.js +0 -27
- package/dist/showcase/assets/combobox-TmDBXkM-.js +0 -685
- package/dist/showcase/assets/command-9-r1qrJt.js +0 -1
- package/dist/showcase/assets/command-DGne3l9s.js +0 -1
- package/dist/showcase/assets/comment-composer-BI0qnvuY.js +0 -1
- package/dist/showcase/assets/comment-item-Cedds6Lm.js +0 -1
- package/dist/showcase/assets/comments-De02NOns.js +0 -357
- package/dist/showcase/assets/commerce-DldtS83o.js +0 -267
- package/dist/showcase/assets/composite-BjZZlzzb.js +0 -1
- package/dist/showcase/assets/contact-card-muCZ3uXV.js +0 -65
- package/dist/showcase/assets/content-container-BxSLICeL.js +0 -1
- package/dist/showcase/assets/copyable-DYhhmTqM.js +0 -1
- package/dist/showcase/assets/copyable-MNU75-J9.js +0 -96
- package/dist/showcase/assets/course-card-Dl1wsuJx.js +0 -77
- package/dist/showcase/assets/cpu-CsWq4fcX.js +0 -1
- package/dist/showcase/assets/credit-card-B0AUZiWw.js +0 -1
- package/dist/showcase/assets/css-variables-Be7DzahT.js +0 -1190
- package/dist/showcase/assets/currency-BtPM_Xtw.js +0 -149
- package/dist/showcase/assets/dark-surfaces-DRFERSEv.js +0 -90
- package/dist/showcase/assets/data-view-DmWd0h7G.js +0 -4
- package/dist/showcase/assets/data-view-DnLH2o0i.js +0 -124
- package/dist/showcase/assets/database-C0YqGaQ_.js +0 -1
- package/dist/showcase/assets/date-block-BQH25FLS.js +0 -1
- package/dist/showcase/assets/date-picker-BF-jevhh.js +0 -1
- package/dist/showcase/assets/date-pickers-q2v3ajJm.js +0 -73
- package/dist/showcase/assets/dense-info-Cb-roqDU.js +0 -106
- package/dist/showcase/assets/design-system-consistency-DMSJknaM.js +0 -264
- package/dist/showcase/assets/dialog-C0ALRmbP.js +0 -1
- package/dist/showcase/assets/dialog-CbXon08k.js +0 -1
- package/dist/showcase/assets/display-utilities-kBUVw7o3.js +0 -267
- package/dist/showcase/assets/dist-CTSkWj_M.js +0 -45
- package/dist/showcase/assets/dist-W8bxVfew.js +0 -1
- package/dist/showcase/assets/dollar-sign-VNxVZleW.js +0 -1
- package/dist/showcase/assets/download-Ds_6eIpx.js +0 -1
- package/dist/showcase/assets/dropdown-menu-C1G_y9dv.js +0 -1
- package/dist/showcase/assets/dropzone-CxOLmdkt.js +0 -1
- package/dist/showcase/assets/earth-HLyEI1oq.js +0 -1
- package/dist/showcase/assets/ellipsis-BLyAd9A-.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-TG4mYU2J.js +0 -1
- package/dist/showcase/assets/empty-B54k9xAG.js +0 -1
- package/dist/showcase/assets/empty-item-BmA4rmq7.js +0 -49
- package/dist/showcase/assets/empty-state-CH7gjjg7.js +0 -190
- package/dist/showcase/assets/empty-state-hUKvmKa-.js +0 -1
- package/dist/showcase/assets/enhanced-activities-BRDVL9RR.js +0 -357
- package/dist/showcase/assets/enhanced-combobox-2wbQJS6R.js +0 -1
- package/dist/showcase/assets/esm-CUTefMLr.js +0 -2
- package/dist/showcase/assets/event-calendar-Bf9xFZlt.js +0 -138
- package/dist/showcase/assets/event-log-CeRDSL-h.js +0 -330
- package/dist/showcase/assets/example-CJMJcnb4.js +0 -1
- package/dist/showcase/assets/external-link-CvXhYrnd.js +0 -1
- package/dist/showcase/assets/eye-Cl_GfUKH.js +0 -1
- package/dist/showcase/assets/feature-announcement-Dw0SokLo.js +0 -34
- package/dist/showcase/assets/file-CJFWrwy1.js +0 -1
- package/dist/showcase/assets/file-text-BTTFP8Jo.js +0 -1
- package/dist/showcase/assets/filter-layout-DUVqG5Ql.js +0 -1
- package/dist/showcase/assets/filters-BLcCaplV.js +0 -139
- package/dist/showcase/assets/flag-BxI3EGPG.js +0 -1
- package/dist/showcase/assets/folder-open-4d8qsiAj.js +0 -1
- package/dist/showcase/assets/form-field-Dhy0eM5B.js +0 -1
- package/dist/showcase/assets/form-sizing-C3UG5WKC.js +0 -1
- package/dist/showcase/assets/format-zGqa9Olc.js +0 -1
- package/dist/showcase/assets/forms-D99qG5Gb.js +0 -915
- package/dist/showcase/assets/funnel-Cg7SOShf.js +0 -1
- package/dist/showcase/assets/generic-CfrG943t.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-lw5shsdM.js +0 -1
- package/dist/showcase/assets/gift-BXtKbzvA.js +0 -1
- package/dist/showcase/assets/giftcard-cards-CqYaN0jC.js +0 -85
- package/dist/showcase/assets/git-branch-BWAuIMOQ.js +0 -1
- package/dist/showcase/assets/global-search-CHUva8pR.js +0 -1
- package/dist/showcase/assets/global-search-Df7JovOG.js +0 -215
- package/dist/showcase/assets/globe-CvIW_foU.js +0 -1
- package/dist/showcase/assets/gradient-card-CdM2J1Hv.js +0 -58
- package/dist/showcase/assets/hash-wBs5gyr_.js +0 -1
- package/dist/showcase/assets/header-DXPFmpUT.js +0 -1
- package/dist/showcase/assets/header-notifications-FsnCJLpe.js +0 -1
- package/dist/showcase/assets/heart-B4fOMIr6.js +0 -1
- package/dist/showcase/assets/hooks-DtMOMalj.js +0 -220
- package/dist/showcase/assets/house-hebmAxEE.js +0 -1
- package/dist/showcase/assets/icon-badge-DrZ5qGpa.js +0 -1
- package/dist/showcase/assets/icon-badge-JEug_P_U.js +0 -37
- package/dist/showcase/assets/image-CxNywgkb.js +0 -1
- package/dist/showcase/assets/inbox-DqAmGdDd.js +0 -1
- package/dist/showcase/assets/index-DujM0kEF.css +0 -2
- package/dist/showcase/assets/index-jD-KSiHu.js +0 -10
- package/dist/showcase/assets/inertValue-Dg9TwvOb.js +0 -1
- package/dist/showcase/assets/info-B5fZn_ZC.js +0 -1
- package/dist/showcase/assets/inline-stat-CklKufoA.js +0 -1
- package/dist/showcase/assets/inline-stat-Dep7oHIi.js +0 -15
- package/dist/showcase/assets/input-CkNgwwCs.js +0 -1
- package/dist/showcase/assets/input-DAPMRlKO.js +0 -1
- package/dist/showcase/assets/input-group-06D68uB6.js +0 -47
- package/dist/showcase/assets/input-group-Bq9aXQPG.js +0 -1
- package/dist/showcase/assets/inputs-C8G3y-zR.js +0 -155
- package/dist/showcase/assets/installation-BV5xOvoE.js +0 -134
- package/dist/showcase/assets/invoice-header-BcUxzT68.js +0 -36
- package/dist/showcase/assets/invoice-items-B42Jfxl7.js +0 -36
- package/dist/showcase/assets/invoice-mini-RJGdlErg.js +0 -14
- package/dist/showcase/assets/invoice-table--MdP6ysv.js +0 -30
- package/dist/showcase/assets/isSameDay-srttAIjD.js +0 -1
- package/dist/showcase/assets/isToday-BPub5Zvi.js +0 -1
- package/dist/showcase/assets/italic-1BNA_XlU.js +0 -1
- package/dist/showcase/assets/item-B9KyqUGa.js +0 -139
- package/dist/showcase/assets/item-DoIlPm6J.js +0 -1
- package/dist/showcase/assets/item-ffIfXEGd.js +0 -1
- package/dist/showcase/assets/kanban-Cfad3edR.js +0 -188
- package/dist/showcase/assets/key-round-J11Zc216.js +0 -1
- package/dist/showcase/assets/label-DqaB8ZB2.js +0 -1
- package/dist/showcase/assets/languages-D9UaP3QU.js +0 -1
- package/dist/showcase/assets/layers-QXZ9Jfej.js +0 -1
- package/dist/showcase/assets/layout-app-shell-CW1eRJmU.js +0 -608
- package/dist/showcase/assets/layout-auth-j4K6lveg.js +0 -790
- package/dist/showcase/assets/layout-containers-NclLtsV0.js +0 -101
- package/dist/showcase/assets/layout-header-B8AOTiwL.js +0 -203
- package/dist/showcase/assets/layout-page-DM79QHyW.js +0 -314
- package/dist/showcase/assets/layout-primitives-Dyop-WMt.js +0 -34
- package/dist/showcase/assets/layout-sidebar-uBNaHqjD.js +0 -224
- package/dist/showcase/assets/layout-users-BkhDiOOz.js +0 -117
- package/dist/showcase/assets/layout-workspace-C2hSimZW.js +0 -191
- package/dist/showcase/assets/lib-CDssULuD.js +0 -1
- package/dist/showcase/assets/list-checks-DA2jqXdm.js +0 -1
- package/dist/showcase/assets/lock-BDZLNQLR.js +0 -1
- package/dist/showcase/assets/lock-keyhole-CWYENd9O.js +0 -1
- package/dist/showcase/assets/mail-CCdaRmft.js +0 -1
- package/dist/showcase/assets/mail-check-DZF1VbCX.js +0 -1
- package/dist/showcase/assets/map-CDFEmmZH.js +0 -124
- package/dist/showcase/assets/map-pin-CdV-R6nt.js +0 -1
- package/dist/showcase/assets/media-library-BJyn1s9d.js +0 -699
- package/dist/showcase/assets/mention-inline-suggestions-DPO6FhXx.js +0 -1
- package/dist/showcase/assets/mentions-DtWHbcS6.js +0 -138
- package/dist/showcase/assets/menus-BmjngFE4.js +0 -171
- package/dist/showcase/assets/message-square-bM29txT3.js +0 -1
- package/dist/showcase/assets/metadata-list-DvYTAJri.js +0 -286
- package/dist/showcase/assets/metadata-list-xVUTVyy9.js +0 -1
- package/dist/showcase/assets/metric-BPNCh4eA.js +0 -1
- package/dist/showcase/assets/metric-bar-BX4sCMrM.js +0 -1
- package/dist/showcase/assets/metric-grid-IyHP3nmU.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-Dih8eR17.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-DK16RNMs.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-Byyl13YT.js +0 -50
- package/dist/showcase/assets/metrics-comparison-DGHFMBL-.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-Bl6C7i0j.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-Bz79zbNK.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-DzZ9dRFY.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-DyoQiuzr.js +0 -42
- package/dist/showcase/assets/metrics-overview-DoyHPEZw.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-B1b7NFqW.js +0 -54
- package/dist/showcase/assets/minus-BE2L5hVc.js +0 -1
- package/dist/showcase/assets/money-display-CXQ_8LfA.js +0 -1
- package/dist/showcase/assets/month-year-picker-ra8FEN8F.js +0 -1
- package/dist/showcase/assets/navigation-CFfVZQJ1.js +0 -231
- package/dist/showcase/assets/navigation-Da0MVkqr.js +0 -90
- package/dist/showcase/assets/navigation-extras-LpsdoXfx.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-DPNatNOk.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-C0vTzcEY.js +0 -1
- package/dist/showcase/assets/overlays-Blmbun0J.js +0 -408
- package/dist/showcase/assets/overlays-t0joc10Y.js +0 -159
- package/dist/showcase/assets/overview-Ckq8vbOR.js +0 -184
- package/dist/showcase/assets/package-Cjod_a06.js +0 -1
- package/dist/showcase/assets/package-check-JRHaNnkl.js +0 -1
- package/dist/showcase/assets/page-9xr7xnuW.js +0 -1
- package/dist/showcase/assets/page-action-button-BRXnfsEx.js +0 -1
- package/dist/showcase/assets/page-header-Bdlxfn_9.js +0 -1
- package/dist/showcase/assets/pagination-CeaYhOvv.js +0 -42
- package/dist/showcase/assets/pagination-DdZZHvNF.js +0 -1
- package/dist/showcase/assets/paperclip-BRM-yXTB.js +0 -1
- package/dist/showcase/assets/password-input-1FVEugoO.js +0 -1
- package/dist/showcase/assets/pencil-DiG2dQ8F.js +0 -1
- package/dist/showcase/assets/phone-BREyNZN-.js +0 -1
- package/dist/showcase/assets/plus-CQcelTNc.js +0 -1
- package/dist/showcase/assets/popover-Czmwspmc.js +0 -1
- package/dist/showcase/assets/popover-menu-beuCaiLt.js +0 -1
- package/dist/showcase/assets/popover-uqk7myG2.js +0 -1
- package/dist/showcase/assets/products-DGNqIbLs.js +0 -423
- package/dist/showcase/assets/progress-D76Df908.js +0 -1
- package/dist/showcase/assets/progress-DjUprSDD.js +0 -18
- package/dist/showcase/assets/props-table-DoDq8Mvr.js +0 -1
- package/dist/showcase/assets/quote-BvGGgyJ0.js +0 -1
- package/dist/showcase/assets/receipt-rgnlMgyi.js +0 -1
- package/dist/showcase/assets/receipt-text-CBQrVlnU.js +0 -1
- package/dist/showcase/assets/refinement-guide-B_BpIMxm.js +0 -189
- package/dist/showcase/assets/refresh-cw-C-yHy6B7.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-0bwEvIG-.js +0 -1
- package/dist/showcase/assets/resource-8f61BZ8t.js +0 -1
- package/dist/showcase/assets/resource-BEh6R0gu.js +0 -139
- package/dist/showcase/assets/resource-selector-card-DJwXY_Ms.js +0 -43
- package/dist/showcase/assets/rich-text-editor-D433iv0N.js +0 -143
- package/dist/showcase/assets/rich-text-editor-vTRfWsOK.js +0 -124
- package/dist/showcase/assets/rotate-ccw-JuE4H14F.js +0 -1
- package/dist/showcase/assets/route-eSu1bFNn.js +0 -1
- package/dist/showcase/assets/save-Bpjj-rBP.js +0 -1
- package/dist/showcase/assets/schema-form-DmOpxd96.js +0 -327
- package/dist/showcase/assets/scroll-area-B9OdCBy9.js +0 -32
- package/dist/showcase/assets/scroll-area-BH80l2As.js +0 -1
- package/dist/showcase/assets/section-BPNIPavy.js +0 -1
- package/dist/showcase/assets/select-BauiG1a3.js +0 -1
- package/dist/showcase/assets/select-CPopSr5c.js +0 -1
- package/dist/showcase/assets/send-DNCcBKXs.js +0 -1
- package/dist/showcase/assets/separator-BK0beCOv.js +0 -28
- package/dist/showcase/assets/separator-CKM9A-mm.js +0 -1
- package/dist/showcase/assets/settings-2-B8fz7JZB.js +0 -1
- package/dist/showcase/assets/settings-Cy2y3sQw.js +0 -1
- package/dist/showcase/assets/sheet-C7VWkXE1.js +0 -1
- package/dist/showcase/assets/shield-ClPev4gS.js +0 -1
- package/dist/showcase/assets/shield-alert-6XO5YZ5u.js +0 -1
- package/dist/showcase/assets/shield-check-DSfGVZq0.js +0 -1
- package/dist/showcase/assets/shopping-bag-DzMrGvpF.js +0 -1
- package/dist/showcase/assets/showcase-DuZaO6q9.js +0 -132
- package/dist/showcase/assets/sidebar-7y9EQYWf.js +0 -1
- package/dist/showcase/assets/sidebar.context-DUheJD8t.js +0 -1
- package/dist/showcase/assets/skeleton-Dgr8Vabr.js +0 -29
- package/dist/showcase/assets/skeleton-HSpErFqw.js +0 -1
- package/dist/showcase/assets/slider-B7f81APg.js +0 -1
- package/dist/showcase/assets/smart-card-p97LLZCW.js +0 -1
- package/dist/showcase/assets/sonner-CWazrN19.js +0 -22
- package/dist/showcase/assets/sortable.esm-uufol7Mz.js +0 -5
- package/dist/showcase/assets/sparkles-Z4V23xKK.js +0 -1
- package/dist/showcase/assets/spinner-BUgjAjWE.js +0 -49
- package/dist/showcase/assets/spinner-CXu7z8-j.js +0 -1
- package/dist/showcase/assets/spinner-DCwR0mnD.js +0 -30
- package/dist/showcase/assets/square-pen-jwp_OWMQ.js +0 -1
- package/dist/showcase/assets/stacked-avatars-CHEpTotO.js +0 -1
- package/dist/showcase/assets/star-Ck8Lg5hm.js +0 -1
- package/dist/showcase/assets/startOfDay-BzULZHy4.js +0 -1
- package/dist/showcase/assets/styles-CNYitflH.js +0 -1
- package/dist/showcase/assets/suggestions-CSF9MlKl.js +0 -126
- package/dist/showcase/assets/switch-BX9KSLIF.js +0 -1
- package/dist/showcase/assets/switch-Bn0WaWa9.js +0 -1
- package/dist/showcase/assets/sync-BuKBnqWW.js +0 -124
- package/dist/showcase/assets/table-DNJcLaud.js +0 -686
- package/dist/showcase/assets/table-NfpOWGsG.js +0 -1
- package/dist/showcase/assets/table-actions-Ci9Yszp0.js +0 -1
- package/dist/showcase/assets/tabs-CYNFQdIr.js +0 -19
- package/dist/showcase/assets/tabs-Cm_p6znb.js +0 -1
- package/dist/showcase/assets/tags-input-DE4QZqS_.js +0 -1
- package/dist/showcase/assets/text-button-D9llh4pU.js +0 -1
- package/dist/showcase/assets/text-link-ZT6QGJOL.js +0 -1
- package/dist/showcase/assets/textarea-CgcHuGVq.js +0 -1
- package/dist/showcase/assets/textarea-D2uT_GJt.js +0 -1
- package/dist/showcase/assets/timelines-BEFO7tJ0.js +0 -200
- package/dist/showcase/assets/toggle-group-oYpa59lN.js +0 -1
- package/dist/showcase/assets/toggles-BL93YmQo.js +0 -71
- package/dist/showcase/assets/toggles-group-BG-xiQCY.js +0 -32
- package/dist/showcase/assets/tooltip-BMI7zHwP.js +0 -31
- package/dist/showcase/assets/trash-2-CtRtVsCy.js +0 -1
- package/dist/showcase/assets/trending-up-2NQ-P8vB.js +0 -1
- package/dist/showcase/assets/truck-Cl0nyN_j.js +0 -1
- package/dist/showcase/assets/typography-C7pCPhg7.js +0 -223
- package/dist/showcase/assets/ui-badge-BvmuMzSq.js +0 -28
- package/dist/showcase/assets/ui-card-B7ziOMAn.js +0 -30
- package/dist/showcase/assets/ui-table-BEFHakBU.js +0 -42
- package/dist/showcase/assets/upload-tray-CMKqTtEp.js +0 -138
- package/dist/showcase/assets/use-layout-link-nEU6ctSs.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-B1xyKMh7.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-BMlFgz-H.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BEzH6TC2.js +0 -1
- package/dist/showcase/assets/useCompositeItem-CIuww7-p.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-PrMTh4tz.js +0 -1
- package/dist/showcase/assets/useLabelableId-BBLkeLGr.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CW0quo3l.js +0 -1
- package/dist/showcase/assets/useRender-6NNMHJJU.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-DEza_iee.js +0 -1
- package/dist/showcase/assets/useValueChanged-BmWIb3SN.js +0 -1
- package/dist/showcase/assets/user-BDIP5UPS.js +0 -1
- package/dist/showcase/assets/user-plus-BCqHFh2h.js +0 -1
- package/dist/showcase/assets/users-Bh7xGRX2.js +0 -1
- package/dist/showcase/assets/vendor-profile-BlYcRbPI.js +0 -37
- package/dist/showcase/assets/video-BucshqNW.js +0 -1
- package/dist/showcase/assets/wrench-DQvhyTEb.js +0 -1
- package/dist/showcase/assets/x-DyuS4YRT.js +0 -1
- package/dist/showcase/assets/zap-Dpn8_pnQ.js +0 -1
|
@@ -1,506 +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 "./button-DHksjMvc.js";
|
|
4
|
-
import { s as r } from "./typography-DE0NGEIE.js";
|
|
5
|
-
import { t as i } from "./badge-a2Z3K5aQ.js";
|
|
6
|
-
import { t as a } from "./popover-xVENY0Ax.js";
|
|
7
|
-
import { i as o } from "./command-CAI-BCSR.js";
|
|
8
|
-
import { a as s, i as c, n as l, r as u, t as d } from "./command-ByedBajF.js";
|
|
9
|
-
import { Fragment as f, useCallback as p, useEffect as m, useMemo as h, useRef as g, useState as _ } from "react";
|
|
10
|
-
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
11
|
-
import { Loader2 as x } from "lucide-react";
|
|
12
|
-
//#region src/components/features/mentions/hooks/use-mentions-search.ts
|
|
13
|
-
function S(e = {}) {
|
|
14
|
-
let { resources: t, onResourceSearch: n, initialMentions: r, debounceMs: i = 200 } = e, a = h(() => t ? Object.keys(t) : [], [t]), [o, s] = _(() => a[0] ?? null), [c, l] = _(!1), [u, d] = _(""), [f, v] = _({}), [y, b] = _(!1), [x, S] = _(() => r ? [...r] : []), C = g(0), w = g(null);
|
|
15
|
-
m(() => {
|
|
16
|
-
if (a.length === 0) {
|
|
17
|
-
s(null);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
(!o || !a.includes(o)) && s(a[0]);
|
|
21
|
-
}, [o, a]);
|
|
22
|
-
let T = h(() => o && t ? t[o] ?? null : null, [o, t]), E = p(async (e, r) => {
|
|
23
|
-
let i = t?.[e];
|
|
24
|
-
if (i?.search) return (await i.search(r)).map((t) => ({
|
|
25
|
-
...t,
|
|
26
|
-
kind: e
|
|
27
|
-
}));
|
|
28
|
-
if (i?.suggestions) {
|
|
29
|
-
let t = i.suggestions;
|
|
30
|
-
return (r.trim().length === 0 ? t : t.filter((e) => e.label.toLowerCase().includes(r.toLowerCase()))).map((t) => ({
|
|
31
|
-
...t,
|
|
32
|
-
kind: e
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
return n ? (await n(r, e)).map((t) => ({
|
|
36
|
-
...t,
|
|
37
|
-
kind: e
|
|
38
|
-
})) : [];
|
|
39
|
-
}, [t, n]);
|
|
40
|
-
m(() => {
|
|
41
|
-
if (w.current && clearTimeout(w.current), a.length === 0) {
|
|
42
|
-
v({});
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
let e = ++C.current, t = async () => {
|
|
46
|
-
b(!0);
|
|
47
|
-
try {
|
|
48
|
-
let t = await Promise.all(a.map(async (e) => {
|
|
49
|
-
try {
|
|
50
|
-
return [e, await E(e, u)];
|
|
51
|
-
} catch {
|
|
52
|
-
return [e, []];
|
|
53
|
-
}
|
|
54
|
-
}));
|
|
55
|
-
if (e !== C.current) return;
|
|
56
|
-
let n = {};
|
|
57
|
-
for (let [e, r] of t) n[e] = r;
|
|
58
|
-
v(n);
|
|
59
|
-
} finally {
|
|
60
|
-
e === C.current && b(!1);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
return w.current = setTimeout(() => {
|
|
64
|
-
t();
|
|
65
|
-
}, i), () => {
|
|
66
|
-
w.current && clearTimeout(w.current);
|
|
67
|
-
};
|
|
68
|
-
}, [
|
|
69
|
-
a,
|
|
70
|
-
u,
|
|
71
|
-
E,
|
|
72
|
-
i
|
|
73
|
-
]), m(() => {
|
|
74
|
-
if (c || !o || (f[o] ?? []).length > 0) return;
|
|
75
|
-
let e = a.find((e) => (f[e]?.length ?? 0) > 0);
|
|
76
|
-
e && e !== o && s(e);
|
|
77
|
-
}, [
|
|
78
|
-
o,
|
|
79
|
-
a,
|
|
80
|
-
c,
|
|
81
|
-
f
|
|
82
|
-
]);
|
|
83
|
-
let D = p((e) => {
|
|
84
|
-
s(e);
|
|
85
|
-
}, []), O = p((e) => {
|
|
86
|
-
d(e);
|
|
87
|
-
}, []), k = p((e) => {
|
|
88
|
-
S((t) => t.some((t) => t.id === e.id) ? t : [...t, e]);
|
|
89
|
-
}, []), A = p((e) => {
|
|
90
|
-
S((t) => t.filter((t) => t.id !== e));
|
|
91
|
-
}, []), j = p((e) => {
|
|
92
|
-
S([...e]);
|
|
93
|
-
}, []), M = p(() => {
|
|
94
|
-
S([]), d(""), l(!1), C.current++;
|
|
95
|
-
}, []), N = p((e) => {
|
|
96
|
-
let n = e.kind ?? o, r = `${n}:${e.id}`, i = t?.[n], a = e.href ?? i?.buildHref?.(e), s = {
|
|
97
|
-
id: r,
|
|
98
|
-
kind: n,
|
|
99
|
-
label: e.label,
|
|
100
|
-
href: a,
|
|
101
|
-
data: e.data
|
|
102
|
-
};
|
|
103
|
-
return k(s), s;
|
|
104
|
-
}, [
|
|
105
|
-
o,
|
|
106
|
-
k,
|
|
107
|
-
t
|
|
108
|
-
]);
|
|
109
|
-
return {
|
|
110
|
-
kinds: a,
|
|
111
|
-
activeKind: o,
|
|
112
|
-
setActiveKind: D,
|
|
113
|
-
activeResource: T,
|
|
114
|
-
query: u,
|
|
115
|
-
setQuery: O,
|
|
116
|
-
suggestions: h(() => o ? f[o] ?? [] : [], [o, f]),
|
|
117
|
-
suggestionsByKind: f,
|
|
118
|
-
isLoading: y,
|
|
119
|
-
mentions: x,
|
|
120
|
-
addMention: k,
|
|
121
|
-
removeMention: A,
|
|
122
|
-
setMentions: j,
|
|
123
|
-
reset: M,
|
|
124
|
-
selectSuggestion: N,
|
|
125
|
-
manualKindOverride: c,
|
|
126
|
-
setManualKindOverride: l
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
//#endregion
|
|
130
|
-
//#region src/components/features/mentions/utils/build-mention-html.ts
|
|
131
|
-
function C(e, t) {
|
|
132
|
-
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" ? "@" : "");
|
|
133
|
-
return `<span class="rsc-mention" data-ref-id="${r}" data-ref-kind="${i}"${a ? ` data-ref-tone="${a}"` : ""} contenteditable="false">${o}${n}</span> `;
|
|
134
|
-
}
|
|
135
|
-
//#endregion
|
|
136
|
-
//#region src/components/features/mentions/hooks/use-mentions.ts
|
|
137
|
-
function w(e = {}) {
|
|
138
|
-
let t = e.resources, n = e.onResourceSearch, r = S({
|
|
139
|
-
...e,
|
|
140
|
-
resources: t,
|
|
141
|
-
onResourceSearch: n
|
|
142
|
-
}), [i, a] = _(!1), [o, s] = _(!1), c = g(null), l = g(null), u = p((e) => {
|
|
143
|
-
a(e), e || (c.current = null, l.current = null, s(!1), r.setManualKindOverride(!1));
|
|
144
|
-
}, [r]), d = e.editorRef, f = p(() => {
|
|
145
|
-
if (!t) return;
|
|
146
|
-
let e = {};
|
|
147
|
-
for (let [n, r] of Object.entries(t)) {
|
|
148
|
-
let t = r?.trigger;
|
|
149
|
-
typeof t == "string" && t.length > 0 && (e[t] = n);
|
|
150
|
-
}
|
|
151
|
-
if (Object.keys(e).length === 0) return;
|
|
152
|
-
let n = d?.current?.getCaretContext();
|
|
153
|
-
if (!n) {
|
|
154
|
-
c.current && (c.current = null, u(!1));
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
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);
|
|
158
|
-
if (!f) {
|
|
159
|
-
c.current && (c.current = null, u(!1));
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
let p = f[1], m = f[2] ?? "", h = e[p];
|
|
163
|
-
c.current = {
|
|
164
|
-
kind: h,
|
|
165
|
-
triggerChar: p,
|
|
166
|
-
consumedLength: p.length + m.length
|
|
167
|
-
}, 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);
|
|
168
|
-
}, [
|
|
169
|
-
d,
|
|
170
|
-
t,
|
|
171
|
-
r,
|
|
172
|
-
u
|
|
173
|
-
]), m = p((e) => {
|
|
174
|
-
let n = r.selectSuggestion(e), i = c.current, a = t?.[n.kind]?.tone, o = C(n, {
|
|
175
|
-
triggerChar: i?.triggerChar,
|
|
176
|
-
tone: a
|
|
177
|
-
});
|
|
178
|
-
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;
|
|
179
|
-
}, [
|
|
180
|
-
d,
|
|
181
|
-
t,
|
|
182
|
-
r,
|
|
183
|
-
u
|
|
184
|
-
]);
|
|
185
|
-
return {
|
|
186
|
-
...r,
|
|
187
|
-
pickerOpen: i,
|
|
188
|
-
setPickerOpen: u,
|
|
189
|
-
triggerActive: o,
|
|
190
|
-
handleCaretChange: f,
|
|
191
|
-
pickSuggestion: m
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
//#endregion
|
|
195
|
-
//#region src/components/features/mentions/partials/mention-chip.tsx
|
|
196
|
-
var T = {
|
|
197
|
-
primary: "secondary",
|
|
198
|
-
success: "success",
|
|
199
|
-
warning: "warning",
|
|
200
|
-
destructive: "destructive",
|
|
201
|
-
info: "info",
|
|
202
|
-
secondary: "secondary"
|
|
203
|
-
}, E = ({ mention: e, resource: n, asLink: r = !0, onClick: a, trailing: o, className: s }) => {
|
|
204
|
-
if (n?.renderChip) return /* @__PURE__ */ y(v, { children: n.renderChip(e) });
|
|
205
|
-
let c = T[n?.tone ?? "secondary"] ?? T.secondary, l = n?.icon, u = /* @__PURE__ */ b(i, {
|
|
206
|
-
variant: c,
|
|
207
|
-
inline: !0,
|
|
208
|
-
"data-ref-id": e.id,
|
|
209
|
-
"data-ref-kind": e.kind,
|
|
210
|
-
className: t("mention-chip--component", "align-[-0.15em] cursor-default whitespace-nowrap", s),
|
|
211
|
-
children: [
|
|
212
|
-
l ? /* @__PURE__ */ y(l, {
|
|
213
|
-
className: "size-3 shrink-0",
|
|
214
|
-
"aria-hidden": !0
|
|
215
|
-
}) : null,
|
|
216
|
-
/* @__PURE__ */ y("span", {
|
|
217
|
-
className: "truncate max-w-[14rem]",
|
|
218
|
-
children: e.label
|
|
219
|
-
}),
|
|
220
|
-
o
|
|
221
|
-
]
|
|
222
|
-
});
|
|
223
|
-
return r && e.href ? /* @__PURE__ */ y("a", {
|
|
224
|
-
href: e.href,
|
|
225
|
-
target: "_blank",
|
|
226
|
-
rel: "noreferrer noopener",
|
|
227
|
-
onClick: a,
|
|
228
|
-
className: "inline align-baseline no-underline hover:opacity-90",
|
|
229
|
-
children: u
|
|
230
|
-
}) : a ? /* @__PURE__ */ y("span", {
|
|
231
|
-
onClick: a,
|
|
232
|
-
className: "inline align-baseline",
|
|
233
|
-
children: u
|
|
234
|
-
}) : u;
|
|
235
|
-
}, D = /<(span|a)\b([^>]*?)data-ref-id\s*=\s*"([^"]+)"([^>]*)>([\s\S]*?)<\/\1>/gi;
|
|
236
|
-
function O(e) {
|
|
237
|
-
if (!e) return [];
|
|
238
|
-
let t = [], n = 0, r;
|
|
239
|
-
for (D.lastIndex = 0; (r = D.exec(e)) !== null;) {
|
|
240
|
-
let [i, , , a] = r, o = e.slice(n, r.index);
|
|
241
|
-
o.length > 0 && t.push({
|
|
242
|
-
kind: "html",
|
|
243
|
-
value: o
|
|
244
|
-
}), t.push({
|
|
245
|
-
kind: "mention",
|
|
246
|
-
refId: a,
|
|
247
|
-
fallback: i
|
|
248
|
-
}), n = r.index + i.length;
|
|
249
|
-
}
|
|
250
|
-
let i = e.slice(n);
|
|
251
|
-
return i.length > 0 && t.push({
|
|
252
|
-
kind: "html",
|
|
253
|
-
value: i
|
|
254
|
-
}), t;
|
|
255
|
-
}
|
|
256
|
-
//#endregion
|
|
257
|
-
//#region src/components/features/mentions/partials/mention-content.tsx
|
|
258
|
-
var k = "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";
|
|
259
|
-
function A(e) {
|
|
260
|
-
let { html: n, mentions: r, resources: i, renderMention: a, sanitizer: o, className: s, prose: c = !0 } = e, l = i, u = o ? o(n ?? "") : n ?? "", d = /* @__PURE__ */ new Map();
|
|
261
|
-
for (let e of r ?? []) d.set(e.id, e);
|
|
262
|
-
let p = d.size > 0 ? O(u) : [{
|
|
263
|
-
kind: "html",
|
|
264
|
-
value: u
|
|
265
|
-
}], m = (e) => {
|
|
266
|
-
if (a) return a(e);
|
|
267
|
-
let t = l?.[e.kind];
|
|
268
|
-
return /* @__PURE__ */ y(E, {
|
|
269
|
-
mention: e,
|
|
270
|
-
resource: t
|
|
271
|
-
});
|
|
272
|
-
}, h = p.map((e, t) => {
|
|
273
|
-
if (e.kind === "mention") {
|
|
274
|
-
let n = d.get(e.refId);
|
|
275
|
-
return n ? /* @__PURE__ */ y(f, { children: m(n) }, `ref-${t}-${e.refId}`) : /* @__PURE__ */ y("span", { dangerouslySetInnerHTML: { __html: e.fallback } }, `fallback-${t}`);
|
|
276
|
-
}
|
|
277
|
-
return /* @__PURE__ */ y("span", { dangerouslySetInnerHTML: { __html: e.value } }, `html-${t}`);
|
|
278
|
-
});
|
|
279
|
-
return c ? /* @__PURE__ */ y("div", {
|
|
280
|
-
className: t("mention-content--component", k, s),
|
|
281
|
-
children: h
|
|
282
|
-
}) : /* @__PURE__ */ y(v, { children: h });
|
|
283
|
-
}
|
|
284
|
-
var j = (e) => /* @__PURE__ */ y(A, { ...e }), M = {
|
|
285
|
-
title: "Insert reference",
|
|
286
|
-
searchPlaceholder: "Search…",
|
|
287
|
-
empty: "No matches.",
|
|
288
|
-
loading: "Searching…"
|
|
289
|
-
}, N = {
|
|
290
|
-
title: "Insert reference",
|
|
291
|
-
empty: "No matches.",
|
|
292
|
-
loading: "Searching…"
|
|
293
|
-
};
|
|
294
|
-
//#endregion
|
|
295
|
-
//#region src/components/features/mentions/partials/mention-picker.tsx
|
|
296
|
-
function P({ open: i, activeKind: f, setActiveKind: p, kinds: m, resources: h, query: g, setQuery: _, suggestions: v, isLoading: S, onSelect: C, strings: w, className: T }) {
|
|
297
|
-
let E = e(M, w);
|
|
298
|
-
return i ? /* @__PURE__ */ b(a, {
|
|
299
|
-
align: "start",
|
|
300
|
-
className: t("mention-picker--component", "w-72 overflow-hidden p-0", T),
|
|
301
|
-
children: [/* @__PURE__ */ b("div", {
|
|
302
|
-
className: "border-b border-border/60 px-3 py-2",
|
|
303
|
-
children: [/* @__PURE__ */ y(r, {
|
|
304
|
-
size: "xxs",
|
|
305
|
-
type: "secondary",
|
|
306
|
-
weight: "medium",
|
|
307
|
-
className: "uppercase tracking-wide",
|
|
308
|
-
children: E.title
|
|
309
|
-
}), m.length > 1 && /* @__PURE__ */ y("div", {
|
|
310
|
-
className: "mt-2 flex flex-wrap gap-1",
|
|
311
|
-
children: m.map((e) => {
|
|
312
|
-
let r = h?.[e], i = r?.icon, a = e === f;
|
|
313
|
-
return /* @__PURE__ */ b(n, {
|
|
314
|
-
type: "button",
|
|
315
|
-
variant: a ? "primary" : "secondary",
|
|
316
|
-
buttonStyle: a ? "solid" : "ghost",
|
|
317
|
-
size: "small",
|
|
318
|
-
onClick: () => p(e),
|
|
319
|
-
className: t("h-auto gap-1 rounded px-1.5 py-0.5 text-xxs font-medium ring-1 ring-inset transition-colors", a ? "bg-primary text-primary-foreground ring-primary" : "bg-muted text-muted-foreground ring-border/60 hover:bg-muted/80"),
|
|
320
|
-
children: [i ? /* @__PURE__ */ y(i, { className: "size-3" }) : null, /* @__PURE__ */ y("span", { children: r?.label ?? String(e) })]
|
|
321
|
-
}, e);
|
|
322
|
-
})
|
|
323
|
-
})]
|
|
324
|
-
}), /* @__PURE__ */ b(d, {
|
|
325
|
-
shouldFilter: !1,
|
|
326
|
-
children: [/* @__PURE__ */ y(o, {
|
|
327
|
-
placeholder: E.searchPlaceholder,
|
|
328
|
-
value: g,
|
|
329
|
-
onValueChange: _
|
|
330
|
-
}), /* @__PURE__ */ b(s, { children: [
|
|
331
|
-
S ? /* @__PURE__ */ b("div", {
|
|
332
|
-
className: "text-muted-foreground flex items-center justify-center gap-2 py-3",
|
|
333
|
-
children: [/* @__PURE__ */ y(x, {
|
|
334
|
-
className: "size-3.5 animate-spin",
|
|
335
|
-
"aria-hidden": !0
|
|
336
|
-
}), /* @__PURE__ */ y(r, {
|
|
337
|
-
tag: "span",
|
|
338
|
-
size: "xs",
|
|
339
|
-
type: "secondary",
|
|
340
|
-
children: E.loading
|
|
341
|
-
})]
|
|
342
|
-
}) : null,
|
|
343
|
-
/* @__PURE__ */ y(l, { children: E.empty }),
|
|
344
|
-
/* @__PURE__ */ y(u, { children: v.map((e) => {
|
|
345
|
-
let t = e.kind ?? f ?? "";
|
|
346
|
-
return /* @__PURE__ */ y(c, {
|
|
347
|
-
value: `${t}:${e.id}`,
|
|
348
|
-
onSelect: () => C(e),
|
|
349
|
-
children: /* @__PURE__ */ b("div", {
|
|
350
|
-
className: "flex min-w-0 flex-1 flex-col leading-tight",
|
|
351
|
-
children: [/* @__PURE__ */ y(r, {
|
|
352
|
-
tag: "span",
|
|
353
|
-
size: "xs",
|
|
354
|
-
weight: "medium",
|
|
355
|
-
className: "truncate",
|
|
356
|
-
children: e.label
|
|
357
|
-
}), e.description ? /* @__PURE__ */ y(r, {
|
|
358
|
-
tag: "span",
|
|
359
|
-
size: "xxs",
|
|
360
|
-
type: "secondary",
|
|
361
|
-
className: "mt-0.5 truncate",
|
|
362
|
-
children: e.description
|
|
363
|
-
}) : null]
|
|
364
|
-
})
|
|
365
|
-
}, `${t}:${e.id}`);
|
|
366
|
-
}) })
|
|
367
|
-
] })]
|
|
368
|
-
})]
|
|
369
|
-
}) : null;
|
|
370
|
-
}
|
|
371
|
-
//#endregion
|
|
372
|
-
//#region src/components/features/mentions/partials/mention-inline-suggestions.tsx
|
|
373
|
-
function F({ open: i, activeKind: a, setActiveKind: o, kinds: s, resources: c, suggestionsByKind: l, suggestions: u, isLoading: d, query: f, onManualKindChange: p, onSelect: m, strings: h, className: g }) {
|
|
374
|
-
let _ = e(N, h);
|
|
375
|
-
return i ? /* @__PURE__ */ b("div", {
|
|
376
|
-
onMouseDown: (e) => e.preventDefault(),
|
|
377
|
-
className: t("mention-inline-suggestions--component", "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", g),
|
|
378
|
-
children: [/* @__PURE__ */ b("div", {
|
|
379
|
-
className: "border-b border-border/60 px-3 py-2",
|
|
380
|
-
children: [/* @__PURE__ */ b("div", {
|
|
381
|
-
className: "flex items-baseline justify-between gap-2",
|
|
382
|
-
children: [/* @__PURE__ */ y(r, {
|
|
383
|
-
size: "xxs",
|
|
384
|
-
type: "secondary",
|
|
385
|
-
weight: "medium",
|
|
386
|
-
className: "uppercase tracking-wide",
|
|
387
|
-
children: _.title
|
|
388
|
-
}), f ? /* @__PURE__ */ b(r, {
|
|
389
|
-
tag: "span",
|
|
390
|
-
size: "xxs",
|
|
391
|
-
type: "secondary",
|
|
392
|
-
className: "truncate font-mono",
|
|
393
|
-
children: [
|
|
394
|
-
"“",
|
|
395
|
-
f,
|
|
396
|
-
"”"
|
|
397
|
-
]
|
|
398
|
-
}) : null]
|
|
399
|
-
}), s.length > 1 && /* @__PURE__ */ y("div", {
|
|
400
|
-
className: "mt-2 flex flex-wrap gap-1",
|
|
401
|
-
children: s.map((e) => {
|
|
402
|
-
let r = c?.[e], i = r?.icon, s = e === a, u = l?.[e]?.length ?? 0;
|
|
403
|
-
return /* @__PURE__ */ b(n, {
|
|
404
|
-
type: "button",
|
|
405
|
-
variant: s ? "primary" : "secondary",
|
|
406
|
-
buttonStyle: s ? "solid" : "ghost",
|
|
407
|
-
size: "small",
|
|
408
|
-
onClick: () => {
|
|
409
|
-
o(e), p?.();
|
|
410
|
-
},
|
|
411
|
-
className: t("h-auto gap-1 rounded px-1.5 py-0.5 text-xxs font-medium ring-1 ring-inset transition-colors", s ? "bg-primary text-primary-foreground ring-primary" : u > 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"),
|
|
412
|
-
children: [
|
|
413
|
-
i ? /* @__PURE__ */ y(i, { className: "size-3" }) : null,
|
|
414
|
-
/* @__PURE__ */ y("span", { children: r?.label ?? String(e) }),
|
|
415
|
-
u > 0 && /* @__PURE__ */ y("span", {
|
|
416
|
-
className: t("tabular-nums", s ? "opacity-90" : "opacity-70"),
|
|
417
|
-
children: u
|
|
418
|
-
})
|
|
419
|
-
]
|
|
420
|
-
}, e);
|
|
421
|
-
})
|
|
422
|
-
})]
|
|
423
|
-
}), /* @__PURE__ */ b("div", {
|
|
424
|
-
className: "max-h-72 overflow-y-auto py-1",
|
|
425
|
-
...u.length > 0 ? {
|
|
426
|
-
role: "listbox",
|
|
427
|
-
"aria-label": _.title
|
|
428
|
-
} : {},
|
|
429
|
-
children: [
|
|
430
|
-
d ? /* @__PURE__ */ b("div", {
|
|
431
|
-
className: "text-muted-foreground flex items-center justify-center gap-2 py-3",
|
|
432
|
-
children: [/* @__PURE__ */ y(x, {
|
|
433
|
-
className: "size-3.5 animate-spin",
|
|
434
|
-
"aria-hidden": !0
|
|
435
|
-
}), /* @__PURE__ */ y(r, {
|
|
436
|
-
tag: "span",
|
|
437
|
-
size: "xs",
|
|
438
|
-
type: "secondary",
|
|
439
|
-
children: _.loading
|
|
440
|
-
})]
|
|
441
|
-
}) : null,
|
|
442
|
-
!d && u.length === 0 ? /* @__PURE__ */ y("div", {
|
|
443
|
-
className: "px-3 py-3",
|
|
444
|
-
children: /* @__PURE__ */ y(r, {
|
|
445
|
-
size: "xs",
|
|
446
|
-
type: "secondary",
|
|
447
|
-
children: _.empty
|
|
448
|
-
})
|
|
449
|
-
}) : null,
|
|
450
|
-
u.map((e) => {
|
|
451
|
-
let i = e.kind ?? a ?? "";
|
|
452
|
-
return /* @__PURE__ */ y(n, {
|
|
453
|
-
type: "button",
|
|
454
|
-
variant: "secondary",
|
|
455
|
-
buttonStyle: "ghost",
|
|
456
|
-
size: "default",
|
|
457
|
-
role: "option",
|
|
458
|
-
"data-ref-id": `${i}:${e.id}`,
|
|
459
|
-
onClick: () => m(e),
|
|
460
|
-
className: t("h-auto w-full min-w-0 justify-start gap-2 rounded-none px-3 py-1.5 text-left", "hover:bg-muted/60 focus-visible:bg-muted/60 transition-colors"),
|
|
461
|
-
children: /* @__PURE__ */ b("div", {
|
|
462
|
-
className: "flex min-w-0 flex-1 flex-col leading-tight",
|
|
463
|
-
children: [/* @__PURE__ */ y(r, {
|
|
464
|
-
tag: "span",
|
|
465
|
-
size: "xs",
|
|
466
|
-
weight: "medium",
|
|
467
|
-
className: "truncate",
|
|
468
|
-
children: e.label
|
|
469
|
-
}), e.description ? /* @__PURE__ */ y(r, {
|
|
470
|
-
tag: "span",
|
|
471
|
-
size: "xxs",
|
|
472
|
-
type: "secondary",
|
|
473
|
-
className: "mt-0.5 truncate",
|
|
474
|
-
children: e.description
|
|
475
|
-
}) : null]
|
|
476
|
-
})
|
|
477
|
-
}, `${i}:${e.id}`);
|
|
478
|
-
})
|
|
479
|
-
]
|
|
480
|
-
})]
|
|
481
|
-
}) : null;
|
|
482
|
-
}
|
|
483
|
-
//#endregion
|
|
484
|
-
//#region src/components/features/mentions/utils/parse-mentions-from-html.ts
|
|
485
|
-
var I = /<(?:span|a)\b[^>]*?data-ref-id\s*=\s*"([^"]+)"[^>]*?>([\s\S]*?)<\/(?:span|a)>/gi, L = /data-ref-kind\s*=\s*"([^"]+)"/i;
|
|
486
|
-
function R(e) {
|
|
487
|
-
let t = [];
|
|
488
|
-
if (!e) return t;
|
|
489
|
-
let n = /* @__PURE__ */ new Set(), r;
|
|
490
|
-
for (I.lastIndex = 0; (r = I.exec(e)) !== null;) {
|
|
491
|
-
let [e, i, a] = r;
|
|
492
|
-
if (n.has(i)) continue;
|
|
493
|
-
n.add(i);
|
|
494
|
-
let o = e.match(L)?.[1] ?? i.split(":")[0] ?? "", s = (a ?? "").replace(/<[^>]*>/g, "").replace(/ /g, " ").replace(/^[@#$&%!~]\s*/, "").trim();
|
|
495
|
-
t.push({
|
|
496
|
-
id: i,
|
|
497
|
-
kind: o,
|
|
498
|
-
label: s
|
|
499
|
-
});
|
|
500
|
-
}
|
|
501
|
-
return t;
|
|
502
|
-
}
|
|
503
|
-
//#endregion
|
|
504
|
-
export { M as a, O as c, C as d, S as f, N as i, E as l, F as n, A as o, P as r, j as s, R as t, w as u };
|
|
505
|
-
|
|
506
|
-
//# sourceMappingURL=mentions-BahbwDwU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mentions-BahbwDwU.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 the `.rsc-mention` / `[data-ref-tone]` rules (see\n * mention-chip.css, co-located in this feature) and the read-time\n * renderer (`<MentionContent>`) 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 'mention-chip--component',\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('mention-content--component', 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 { Button } from '@/components/base/buttons';\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('mention-picker--component', '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 variant={active ? 'primary' : 'secondary'}\n buttonStyle={active ? 'solid' : 'ghost'}\n size=\"small\"\n onClick={() => setActiveKind(kind)}\n className={cn(\n 'h-auto 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 { Button } from '@/components/base/buttons';\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 'mention-inline-suggestions--component',\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 >\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 variant={active ? 'primary' : 'secondary'}\n buttonStyle={active ? 'solid' : 'ghost'}\n size=\"small\"\n onClick={() => {\n setActiveKind(kind);\n onManualKindChange?.();\n }}\n className={cn(\n 'h-auto 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\n className=\"max-h-72 overflow-y-auto py-1\"\n {...(suggestions.length > 0\n ? { role: 'listbox', 'aria-label': strings.title }\n : {})}\n >\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 variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"default\"\n role=\"option\"\n data-ref-id={`${kind}:${suggestion.id}`}\n onClick={() => onSelect(suggestion)}\n className={cn(\n 'h-auto w-full min-w-0 justify-start gap-2 rounded-none 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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"}
|