admin-ui-starter-kit 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/admin-ui-components/SKILL.md +71 -0
- package/.agents/skills/admin-ui-components/agents/openai.yaml +4 -0
- package/.agents/skills/admin-ui-components/references/selection-checklist.md +23 -0
- package/.agents/skills/admin-ui-consumer-migration/SKILL.md +50 -12
- package/.agents/skills/admin-ui-consumer-migration/references/package-gap-surfaces.md +20 -1
- package/.agents/skills/component-library-rules/SKILL.md +39 -24
- package/.agents/skills/component-library-rules/references/audit-followups.md +6 -5
- package/.agents/skills/component-library-rules/references/base-wrapper.md +1 -1
- package/.agents/skills/component-library-rules/references/components/INDEX.json +25 -14
- package/.agents/skills/component-library-rules/references/components/INDEX.md +29 -12
- package/.agents/skills/component-library-rules/references/components/base__accordion.md +1 -1
- package/.agents/skills/component-library-rules/references/components/base__alert.md +3 -3
- package/.agents/skills/component-library-rules/references/components/base__avatar.md +118 -0
- package/.agents/skills/component-library-rules/references/components/base__buttons.md +21 -17
- package/.agents/skills/component-library-rules/references/components/base__cards.md +50 -14
- package/.agents/skills/component-library-rules/references/components/base__carousel.md +5 -5
- package/.agents/skills/component-library-rules/references/components/base__combobox.md +25 -78
- package/.agents/skills/component-library-rules/references/components/base__css-variables.md +810 -0
- package/.agents/skills/component-library-rules/references/components/base__display-utilities.md +427 -0
- package/.agents/skills/component-library-rules/references/components/base__event-calendar.md +1 -1
- package/.agents/skills/component-library-rules/references/components/base__forms.md +8 -2
- package/.agents/skills/component-library-rules/references/components/base__icon-badge.md +84 -0
- package/.agents/skills/component-library-rules/references/components/base__item.md +10 -1
- package/.agents/skills/component-library-rules/references/components/base__navigation.md +7 -6
- package/.agents/skills/component-library-rules/references/components/base__spinner.md +2 -0
- package/.agents/skills/component-library-rules/references/components/base__table.md +270 -112
- package/.agents/skills/component-library-rules/references/components/base__tooltip.md +76 -0
- package/.agents/skills/component-library-rules/references/components/composed__ai.md +34 -2
- package/.agents/skills/component-library-rules/references/components/composed__commerce.md +44 -2
- package/.agents/skills/component-library-rules/references/components/composed__empty-state.md +313 -0
- package/.agents/skills/component-library-rules/references/components/composed__inline-stat.md +63 -0
- package/.agents/skills/component-library-rules/references/components/composed__metadata-list.md +433 -0
- package/.agents/skills/component-library-rules/references/components/composed__onboarding-checklist.md +1 -1
- package/.agents/skills/component-library-rules/references/components/composed__resource-selector-card.md +23 -19
- package/.agents/skills/component-library-rules/references/components/docs__design-system-consistency.md +413 -0
- package/.agents/skills/component-library-rules/references/components/docs__installation.md +221 -0
- package/.agents/skills/component-library-rules/references/components/docs__overview.md +266 -0
- package/.agents/skills/component-library-rules/references/components/docs__refinement-guide.md +280 -0
- package/.agents/skills/component-library-rules/references/components/docs__showcase.md +197 -0
- package/.agents/skills/component-library-rules/references/components/features__activities.md +87 -88
- package/.agents/skills/component-library-rules/references/components/features__ai-chat.md +7 -7
- package/.agents/skills/component-library-rules/references/components/features__data-view.md +175 -0
- package/.agents/skills/component-library-rules/references/components/features__enhanced-activities.md +51 -55
- package/.agents/skills/component-library-rules/references/components/features__kanban.md +37 -35
- package/.agents/skills/component-library-rules/references/components/features__media-library.md +9 -3
- package/.agents/skills/component-library-rules/references/components/features__overlays.md +1 -1
- package/.agents/skills/component-library-rules/references/components/features__products.md +91 -75
- package/.agents/skills/component-library-rules/references/components/features__resource.md +194 -0
- package/.agents/skills/component-library-rules/references/components/features__schema-form.md +12 -10
- package/.agents/skills/component-library-rules/references/components/features__suggestions.md +6 -6
- package/.agents/skills/component-library-rules/references/components/features__sync.md +30 -12
- package/.agents/skills/component-library-rules/references/components/layout__layout-app-shell.md +14 -14
- package/.agents/skills/component-library-rules/references/components/layout__layout-auth.md +224 -188
- package/.agents/skills/component-library-rules/references/components/layout__layout-containers.md +2 -2
- package/.agents/skills/component-library-rules/references/components/layout__layout-header.md +8 -8
- package/.agents/skills/component-library-rules/references/components/layout__layout-page.md +136 -95
- package/.agents/skills/component-library-rules/references/components/layout__layout-sidebar.md +4 -4
- package/.agents/skills/component-library-rules/references/components/layout__layout-users.md +4 -4
- package/.agents/skills/component-library-rules/references/components/layout__layout-workspace.md +19 -11
- package/.agents/skills/component-library-rules/references/components/services__actions.md +443 -0
- package/.agents/skills/component-library-rules/references/components/services__hooks.md +326 -0
- package/.agents/skills/component-library-rules/references/components/ui__button.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__empty-item.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__inputs.md +1 -1
- package/.agents/skills/component-library-rules/references/components/ui__menus.md +15 -9
- package/.agents/skills/component-library-rules/references/components/ui__skeleton.md +3 -3
- package/.agents/skills/component-library-rules/references/consumer-wiring.md +2 -2
- package/.agents/skills/component-library-rules/references/history.md +10 -10
- package/.agents/skills/component-library-rules/references/import-paths.md +3 -3
- package/.agents/skills/component-library-rules/references/item-pattern.md +3 -3
- package/.agents/skills/component-library-rules/references/layout.md +7 -5
- package/.agents/skills/component-library-rules/references/testing.md +5 -5
- package/.agents/skills/component-library-rules/references/ui-provider.md +11 -12
- package/.agents/skills/component-library-rules/references/visual-eval.md +1 -1
- package/.agents/skills/token-system/SKILL.md +81 -0
- package/.agents/skills/token-system/agents/openai.yaml +4 -0
- package/.agents/skills/token-system/references/consumer-overrides.md +68 -0
- package/AGENTS.md +42 -17
- package/COMPONENT_SELECTION.md +18 -8
- package/INTEGRATION.md +45 -4
- package/MIGRATION.md +32 -0
- package/README.md +54 -20
- package/dist/_shared/accordion-B9EjlZLY.js +135 -0
- package/dist/_shared/accordion-B9EjlZLY.js.map +1 -0
- package/dist/_shared/accordion-IFDIc0E7.cjs +2 -0
- package/dist/_shared/accordion-IFDIc0E7.cjs.map +1 -0
- package/dist/_shared/action-menu-B6yFRDz1.cjs +2 -0
- package/dist/_shared/action-menu-B6yFRDz1.cjs.map +1 -0
- package/dist/_shared/action-menu-CNS-fwQr.js +96 -0
- package/dist/_shared/action-menu-CNS-fwQr.js.map +1 -0
- package/dist/_shared/ai-artifact-B3qhuiKC.js +1099 -0
- package/dist/_shared/ai-artifact-B3qhuiKC.js.map +1 -0
- package/dist/_shared/ai-artifact-Dtr0bnVq.cjs +3 -0
- package/dist/_shared/ai-artifact-Dtr0bnVq.cjs.map +1 -0
- package/dist/_shared/alert-V0V36Sny.cjs +2 -0
- package/dist/_shared/alert-V0V36Sny.cjs.map +1 -0
- package/dist/_shared/alert-m-4s0Hqq.js +81 -0
- package/dist/_shared/alert-m-4s0Hqq.js.map +1 -0
- package/dist/_shared/app-shell-D3eGUtL-.js +69 -0
- package/dist/_shared/app-shell-D3eGUtL-.js.map +1 -0
- package/dist/_shared/app-shell-QJHARDMB.cjs +2 -0
- package/dist/_shared/app-shell-QJHARDMB.cjs.map +1 -0
- package/dist/_shared/auth-B_KVUjsB.cjs +2 -0
- package/dist/_shared/auth-B_KVUjsB.cjs.map +1 -0
- package/dist/_shared/auth-C_TgyzDl.js +643 -0
- package/dist/_shared/auth-C_TgyzDl.js.map +1 -0
- package/dist/_shared/avatar-BagPbPuD.js +105 -0
- package/dist/_shared/avatar-BagPbPuD.js.map +1 -0
- package/dist/_shared/avatar-BnKM_o2d.cjs +2 -0
- package/dist/_shared/avatar-BnKM_o2d.cjs.map +1 -0
- package/dist/_shared/badge-BeSKxX1u.cjs +2 -0
- package/dist/_shared/badge-BeSKxX1u.cjs.map +1 -0
- package/dist/_shared/badge-a2Z3K5aQ.js +110 -0
- package/dist/_shared/badge-a2Z3K5aQ.js.map +1 -0
- package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs +2 -0
- package/dist/_shared/breadcrumbs-AyLzxCJZ.cjs.map +1 -0
- package/dist/_shared/breadcrumbs-B57Unsoe.js +105 -0
- package/dist/_shared/breadcrumbs-B57Unsoe.js.map +1 -0
- package/dist/_shared/button-Bd5bEIiB.cjs +2 -0
- package/dist/_shared/button-Bd5bEIiB.cjs.map +1 -0
- package/dist/_shared/button-DHksjMvc.js +189 -0
- package/dist/_shared/button-DHksjMvc.js.map +1 -0
- package/dist/_shared/buttons-C8jy-jMd.cjs +2 -0
- package/dist/_shared/buttons-C8jy-jMd.cjs.map +1 -0
- package/dist/_shared/buttons-MxvdokeK.js +137 -0
- package/dist/_shared/buttons-MxvdokeK.js.map +1 -0
- package/dist/_shared/card-radio-group-C2p_iBal.cjs +2 -0
- package/dist/_shared/card-radio-group-C2p_iBal.cjs.map +1 -0
- package/dist/_shared/card-radio-group-Fdi1Cz1j.js +150 -0
- package/dist/_shared/card-radio-group-Fdi1Cz1j.js.map +1 -0
- package/dist/_shared/cards-BKFwMTjM.cjs +2 -0
- package/dist/_shared/cards-BKFwMTjM.cjs.map +1 -0
- package/dist/_shared/cards-CtBoSZG9.js +355 -0
- package/dist/_shared/cards-CtBoSZG9.js.map +1 -0
- package/dist/_shared/checkbox-Cbh5x6ad.js +31 -0
- package/dist/_shared/checkbox-Cbh5x6ad.js.map +1 -0
- package/dist/_shared/checkbox-ECGg8wjW.cjs +2 -0
- package/dist/_shared/checkbox-ECGg8wjW.cjs.map +1 -0
- package/dist/_shared/combobox-BIe72dV3.js +954 -0
- package/dist/_shared/combobox-BIe72dV3.js.map +1 -0
- package/dist/_shared/combobox-CJiFDoTi.cjs +2 -0
- package/dist/_shared/combobox-CJiFDoTi.cjs.map +1 -0
- package/dist/_shared/command-ByedBajF.js +39 -0
- package/dist/_shared/command-ByedBajF.js.map +1 -0
- package/dist/_shared/command-EGR0nhGc.cjs +2 -0
- package/dist/_shared/command-EGR0nhGc.cjs.map +1 -0
- package/dist/_shared/comments-C8iXy9XO.cjs +2 -0
- package/dist/_shared/comments-C8iXy9XO.cjs.map +1 -0
- package/dist/_shared/comments-DGBxF9fD.js +952 -0
- package/dist/_shared/comments-DGBxF9fD.js.map +1 -0
- package/dist/_shared/copyable-Dopk9pEJ.js +38 -0
- package/dist/_shared/copyable-Dopk9pEJ.js.map +1 -0
- package/dist/_shared/copyable-rQwxsTJ3.cjs +2 -0
- package/dist/_shared/copyable-rQwxsTJ3.cjs.map +1 -0
- package/dist/_shared/data-display-CRFaMkxT.js +1873 -0
- package/dist/_shared/data-display-CRFaMkxT.js.map +1 -0
- package/dist/_shared/data-display-C_44_V-W.cjs +2 -0
- package/dist/_shared/data-display-C_44_V-W.cjs.map +1 -0
- package/dist/_shared/date-picker-BiUgIkjP.cjs +2 -0
- package/dist/_shared/date-picker-BiUgIkjP.cjs.map +1 -0
- package/dist/_shared/date-picker-DFkLiveH.js +1361 -0
- package/dist/_shared/date-picker-DFkLiveH.js.map +1 -0
- package/dist/_shared/date-pickers-C86tVD8e.cjs +2 -0
- package/dist/_shared/date-pickers-C86tVD8e.cjs.map +1 -0
- package/dist/_shared/date-pickers-D4oxOOHE.js +329 -0
- package/dist/_shared/date-pickers-D4oxOOHE.js.map +1 -0
- package/dist/_shared/display-B0wLVN8t.js +986 -0
- package/dist/_shared/display-B0wLVN8t.js.map +1 -0
- package/dist/_shared/display-Bin2vVex.cjs +2 -0
- package/dist/_shared/display-Bin2vVex.cjs.map +1 -0
- package/dist/_shared/form-sizing-C51oI3Di.js +42 -0
- package/dist/_shared/form-sizing-C51oI3Di.js.map +1 -0
- package/dist/_shared/form-sizing-Co53Drri.cjs +2 -0
- package/dist/_shared/form-sizing-Co53Drri.cjs.map +1 -0
- package/dist/_shared/forms-qnwoUqxf.js +3533 -0
- package/dist/_shared/forms-qnwoUqxf.js.map +1 -0
- package/dist/_shared/forms-rmKcy5uO.cjs +2 -0
- package/dist/_shared/forms-rmKcy5uO.cjs.map +1 -0
- package/dist/_shared/header-CxhEtk9M.cjs +2 -0
- package/dist/_shared/header-CxhEtk9M.cjs.map +1 -0
- package/dist/_shared/header-h3f14vQx.js +447 -0
- package/dist/_shared/header-h3f14vQx.js.map +1 -0
- package/dist/_shared/hooks-CS55-w3h.js +95 -0
- package/dist/_shared/hooks-CS55-w3h.js.map +1 -0
- package/dist/_shared/hooks-sfHAyDgD.cjs +2 -0
- package/dist/_shared/hooks-sfHAyDgD.cjs.map +1 -0
- package/dist/_shared/icon-badge-CU6ZkcER.cjs +2 -0
- package/dist/_shared/icon-badge-CU6ZkcER.cjs.map +1 -0
- package/dist/_shared/icon-badge-dZQPvuas.js +48 -0
- package/dist/_shared/icon-badge-dZQPvuas.js.map +1 -0
- package/dist/_shared/input-CB6hxh-5.cjs +2 -0
- package/dist/_shared/input-CB6hxh-5.cjs.map +1 -0
- package/dist/_shared/input-CfnHBT--.js +182 -0
- package/dist/_shared/input-CfnHBT--.js.map +1 -0
- package/dist/_shared/item-Xs-fgzaT.js +226 -0
- package/dist/_shared/item-Xs-fgzaT.js.map +1 -0
- package/dist/_shared/item-eUP9Rtmg.cjs +2 -0
- package/dist/_shared/item-eUP9Rtmg.cjs.map +1 -0
- package/dist/_shared/mentions-BahbwDwU.js +506 -0
- package/dist/_shared/mentions-BahbwDwU.js.map +1 -0
- package/dist/_shared/mentions-aHalksbt.cjs +2 -0
- package/dist/_shared/mentions-aHalksbt.cjs.map +1 -0
- package/dist/_shared/money-display-BLPNMmiT.cjs +2 -0
- package/dist/_shared/money-display-BLPNMmiT.cjs.map +1 -0
- package/dist/_shared/money-display-D_-Cb8-9.js +198 -0
- package/dist/_shared/money-display-D_-Cb8-9.js.map +1 -0
- package/dist/_shared/navigation-BcYAwgzo.js +436 -0
- package/dist/_shared/navigation-BcYAwgzo.js.map +1 -0
- package/dist/_shared/navigation-DAB7uuBj.cjs +2 -0
- package/dist/_shared/navigation-DAB7uuBj.cjs.map +1 -0
- package/dist/_shared/overlays-CdtMAkKG.js +648 -0
- package/dist/_shared/overlays-CdtMAkKG.js.map +1 -0
- package/dist/_shared/overlays-Diy_H0Au.cjs +2 -0
- package/dist/_shared/overlays-Diy_H0Au.cjs.map +1 -0
- package/dist/_shared/page-C6EzwvTz.cjs +2 -0
- package/dist/_shared/page-C6EzwvTz.cjs.map +1 -0
- package/dist/_shared/page-DCW1eWCJ.js +262 -0
- package/dist/_shared/page-DCW1eWCJ.js.map +1 -0
- package/dist/_shared/popover-dWR7-MzY.cjs +2 -0
- package/dist/_shared/popover-dWR7-MzY.cjs.map +1 -0
- package/dist/_shared/popover-menu-qxBZlTck.js +93 -0
- package/dist/_shared/popover-menu-qxBZlTck.js.map +1 -0
- package/dist/_shared/popover-menu-z9QTjl4o.cjs +2 -0
- package/dist/_shared/popover-menu-z9QTjl4o.cjs.map +1 -0
- package/dist/_shared/popover-xVENY0Ax.js +83 -0
- package/dist/_shared/popover-xVENY0Ax.js.map +1 -0
- package/dist/_shared/rich-text-editor-DeIiIDn7.cjs +2 -0
- package/dist/_shared/rich-text-editor-DeIiIDn7.cjs.map +1 -0
- package/dist/_shared/rich-text-editor-VIBlL0x3.js +620 -0
- package/dist/_shared/rich-text-editor-VIBlL0x3.js.map +1 -0
- package/dist/_shared/scroll-area-B32KwU9k.js +43 -0
- package/dist/_shared/scroll-area-B32KwU9k.js.map +1 -0
- package/dist/_shared/scroll-area-CIRXK7s0.cjs +2 -0
- package/dist/_shared/scroll-area-CIRXK7s0.cjs.map +1 -0
- package/dist/_shared/settings-DbAyxMrX.cjs +2 -0
- package/dist/_shared/settings-DbAyxMrX.cjs.map +1 -0
- package/dist/_shared/settings-QOBrbgdN.js +143 -0
- package/dist/_shared/settings-QOBrbgdN.js.map +1 -0
- package/dist/_shared/sidebar-BRg39UF1.js +389 -0
- package/dist/_shared/sidebar-BRg39UF1.js.map +1 -0
- package/dist/_shared/sidebar-Cwhom9QE.cjs +2 -0
- package/dist/_shared/sidebar-Cwhom9QE.cjs.map +1 -0
- package/dist/_shared/sidebar-DfToCaiC.cjs +2 -0
- package/dist/_shared/sidebar-DfToCaiC.cjs.map +1 -0
- package/dist/_shared/sidebar-DhpRdTZH.js +541 -0
- package/dist/_shared/sidebar-DhpRdTZH.js.map +1 -0
- package/dist/_shared/spinner-D35zNriU.cjs +2 -0
- package/dist/_shared/spinner-D35zNriU.cjs.map +1 -0
- package/dist/_shared/spinner-DMC2IIml.js +67 -0
- package/dist/_shared/spinner-DMC2IIml.js.map +1 -0
- package/dist/_shared/table-CUA_A-oO.js +1377 -0
- package/dist/_shared/table-CUA_A-oO.js.map +1 -0
- package/dist/_shared/table-mPchjiRn.cjs +2 -0
- package/dist/_shared/table-mPchjiRn.cjs.map +1 -0
- package/dist/_shared/textarea-B24qgdmd.cjs +2 -0
- package/dist/_shared/textarea-B24qgdmd.cjs.map +1 -0
- package/dist/_shared/textarea-ChLRmmVU.js +118 -0
- package/dist/_shared/textarea-ChLRmmVU.js.map +1 -0
- package/dist/_shared/typography-CO9uwZhF.cjs +2 -0
- package/dist/_shared/typography-CO9uwZhF.cjs.map +1 -0
- package/dist/_shared/typography-DE0NGEIE.js +201 -0
- package/dist/_shared/typography-DE0NGEIE.js.map +1 -0
- package/dist/_shared/ui-provider-DZWtUXf2.cjs +2 -0
- package/dist/_shared/ui-provider-DZWtUXf2.cjs.map +1 -0
- package/dist/_shared/ui-provider-Dj6OSOZi.js +81 -0
- package/dist/_shared/ui-provider-Dj6OSOZi.js.map +1 -0
- package/dist/_shared/workspace-BgtWS9fA.cjs +2 -0
- package/dist/_shared/workspace-BgtWS9fA.cjs.map +1 -0
- package/dist/_shared/workspace-D2jJ0PlS.js +357 -0
- package/dist/_shared/workspace-D2jJ0PlS.js.map +1 -0
- package/dist/components/base/accordion/accordion-variants.d.ts +10 -9
- package/dist/components/base/accordion/accordion-variants.d.ts.map +1 -1
- package/dist/components/base/accordion/accordion.d.ts +1 -1
- package/dist/components/base/accordion/index.cjs +1 -1
- package/dist/components/base/accordion/index.js +1 -1
- package/dist/components/base/accordion/smart-accordion.d.ts.map +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/base-button.d.ts.map +1 -1
- package/dist/components/base/buttons/index.cjs +1 -1
- package/dist/components/base/buttons/index.js +2 -2
- package/dist/components/base/buttons/loader-button.d.ts.map +1 -1
- package/dist/components/base/buttons/page-action-button.d.ts +1 -1
- package/dist/components/base/buttons/page-action-button.d.ts.map +1 -1
- package/dist/components/base/buttons/text-button.d.ts +3 -6
- package/dist/components/base/buttons/text-button.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.tokens.d.ts +3 -4
- package/dist/components/base/cards/smart-card.tokens.d.ts.map +1 -1
- package/dist/components/base/cards/smart-card.types.d.ts +4 -4
- package/dist/components/base/cards/smart-card.types.d.ts.map +1 -1
- package/dist/components/base/carousel/index.cjs +1 -1
- package/dist/components/base/carousel/index.cjs.map +1 -1
- package/dist/components/base/carousel/index.js +4 -4
- package/dist/components/base/carousel/index.js.map +1 -1
- package/dist/components/base/combobox/components/combobox-dropdown.d.ts.map +1 -1
- package/dist/components/base/combobox/components/error-message.d.ts.map +1 -1
- package/dist/components/base/combobox/constants.d.ts +1 -1
- package/dist/components/base/combobox/constants.d.ts.map +1 -1
- package/dist/components/base/combobox/enhanced-combobox.d.ts.map +1 -1
- package/dist/components/base/combobox/index.cjs +1 -1
- package/dist/components/base/combobox/index.js +1 -1
- package/dist/components/base/combobox/types.d.ts +1 -1
- package/dist/components/base/combobox/types.d.ts.map +1 -1
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/command/index.cjs +1 -1
- package/dist/components/base/command/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/date-picker.d.ts +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/date-pickers/segmented-time-input.d.ts.map +1 -1
- package/dist/components/base/display/avatar.d.ts +24 -1
- package/dist/components/base/display/avatar.d.ts.map +1 -1
- package/dist/components/base/display/boolean-indicator.d.ts +2 -1
- package/dist/components/base/display/boolean-indicator.d.ts.map +1 -1
- package/dist/components/base/display/chart.cjs +2 -2
- package/dist/components/base/display/chart.cjs.map +1 -1
- package/dist/components/base/display/chart.js +4 -4
- package/dist/components/base/display/chart.js.map +1 -1
- package/dist/components/base/display/date-block.d.ts +2 -1
- package/dist/components/base/display/date-block.d.ts.map +1 -1
- package/dist/components/base/display/empty.d.ts +8 -0
- package/dist/components/base/display/empty.d.ts.map +1 -0
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +2 -1
- package/dist/components/base/display/icon-badge/icon-badge.d.ts.map +1 -1
- package/dist/components/base/display/index.cjs +1 -1
- package/dist/components/base/display/index.d.ts +1 -7
- package/dist/components/base/display/index.d.ts.map +1 -1
- package/dist/components/base/display/index.js +10 -11
- package/dist/components/base/display/scroll-area.d.ts +10 -1
- package/dist/components/base/display/scroll-area.d.ts.map +1 -1
- package/dist/components/base/display/stacked-avatars.d.ts +2 -1
- package/dist/components/base/display/stacked-avatars.d.ts.map +1 -1
- package/dist/components/base/display/throttle-alert.d.ts +2 -1
- package/dist/components/base/display/throttle-alert.d.ts.map +1 -1
- package/dist/components/base/event-calendar/event-calendar-event-card.d.ts +2 -1
- package/dist/components/base/event-calendar/event-calendar-event-card.d.ts.map +1 -1
- package/dist/components/base/event-calendar/index.cjs +1 -1
- package/dist/components/base/event-calendar/index.cjs.map +1 -1
- package/dist/components/base/event-calendar/index.js +37 -37
- package/dist/components/base/event-calendar/index.js.map +1 -1
- package/dist/components/base/forms/fields/avatar-upload.d.ts +4 -2
- package/dist/components/base/forms/fields/avatar-upload.d.ts.map +1 -1
- package/dist/components/base/forms/fields/checkbox.d.ts +14 -1
- package/dist/components/base/forms/fields/checkbox.d.ts.map +1 -1
- package/dist/components/base/forms/fields/choice-types.d.ts +3 -2
- package/dist/components/base/forms/fields/choice-types.d.ts.map +1 -1
- package/dist/components/base/forms/fields/coordinates-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/decimal-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/dropzone.d.ts +4 -2
- package/dist/components/base/forms/fields/dropzone.d.ts.map +1 -1
- package/dist/components/base/forms/fields/file-upload.d.ts +2 -1
- package/dist/components/base/forms/fields/file-upload.d.ts.map +1 -1
- package/dist/components/base/forms/fields/image-upload.d.ts +2 -1
- package/dist/components/base/forms/fields/image-upload.d.ts.map +1 -1
- package/dist/components/base/forms/fields/input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/key-value-editor.d.ts +2 -1
- package/dist/components/base/forms/fields/key-value-editor.d.ts.map +1 -1
- package/dist/components/base/forms/fields/list.d.ts.map +1 -1
- package/dist/components/base/forms/fields/localized-string-repeater.d.ts.map +1 -1
- package/dist/components/base/forms/fields/media-gallery.d.ts +2 -1
- package/dist/components/base/forms/fields/media-gallery.d.ts.map +1 -1
- package/dist/components/base/forms/fields/object-repeater.d.ts +2 -1
- package/dist/components/base/forms/fields/object-repeater.d.ts.map +1 -1
- package/dist/components/base/forms/fields/select.d.ts.map +1 -1
- package/dist/components/base/forms/fields/string-repeater.d.ts +2 -1
- package/dist/components/base/forms/fields/string-repeater.d.ts.map +1 -1
- package/dist/components/base/forms/fields/tags-input.d.ts +2 -1
- package/dist/components/base/forms/fields/tags-input.d.ts.map +1 -1
- package/dist/components/base/forms/fields/time-picker.d.ts.map +1 -1
- package/dist/components/base/forms/fields/upload-progress-list.d.ts +2 -1
- package/dist/components/base/forms/fields/upload-progress-list.d.ts.map +1 -1
- package/dist/components/base/forms/fields/weight-input.d.ts.map +1 -1
- package/dist/components/base/forms/form-sizing.d.ts +8 -0
- package/dist/components/base/forms/form-sizing.d.ts.map +1 -1
- package/dist/components/base/forms/index.cjs +1 -1
- package/dist/components/base/forms/index.js +7 -7
- package/dist/components/base/forms/workflow.d.ts.map +1 -1
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/base/item/index.cjs +1 -1
- package/dist/components/base/item/index.js +1 -1
- package/dist/components/base/item/item.d.ts.map +1 -1
- package/dist/components/base/map/index.cjs +1 -1
- package/dist/components/base/map/index.cjs.map +1 -1
- package/dist/components/base/map/index.js +55 -54
- package/dist/components/base/map/index.js.map +1 -1
- package/dist/components/base/map/map.d.ts.map +1 -1
- package/dist/components/base/navigation/breadcrumbs.d.ts +2 -1
- package/dist/components/base/navigation/breadcrumbs.d.ts.map +1 -1
- package/dist/components/base/navigation/index.cjs +1 -1
- package/dist/components/base/navigation/index.js +3 -3
- package/dist/components/base/navigation/overflow-tab-bar.d.ts.map +1 -1
- package/dist/components/base/popover/index.cjs +1 -1
- package/dist/components/base/popover/index.js +1 -1
- package/dist/components/base/popover/popover.d.ts +2 -2
- package/dist/components/base/popover-menu/index.cjs +1 -1
- package/dist/components/base/popover-menu/index.js +1 -1
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +1 -1
- package/dist/components/base/spinner/index.cjs +1 -1
- package/dist/components/base/spinner/index.js +1 -1
- package/dist/components/base/table/column-visibility-toggle.d.ts.map +1 -1
- package/dist/components/base/table/data-table.d.ts +1 -1
- package/dist/components/base/table/data-table.d.ts.map +1 -1
- package/dist/components/base/table/filter-bar.d.ts.map +1 -1
- package/dist/components/base/table/index.cjs +1 -1
- package/dist/components/base/table/index.js +2 -2
- package/dist/components/base/table/table-actions.d.ts.map +1 -1
- package/dist/components/base/table/table-header.d.ts.map +1 -1
- package/dist/components/base/table/table-toolbar.d.ts.map +1 -1
- package/dist/components/base/table/table.strings.d.ts.map +1 -1
- package/dist/components/base/table/table.types.d.ts +12 -8
- package/dist/components/base/table/table.types.d.ts.map +1 -1
- package/dist/components/base/toaster/index.cjs +1 -1
- package/dist/components/base/toaster/index.js +1 -1
- package/dist/components/composed/admin/action-surfaces/index.d.ts.map +1 -1
- package/dist/components/composed/admin/index.cjs +1 -1
- package/dist/components/composed/admin/index.cjs.map +1 -1
- package/dist/components/composed/admin/index.js +32 -33
- package/dist/components/composed/admin/index.js.map +1 -1
- package/dist/components/composed/ai/ai-agent/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-agent/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-artifact/ai-artifact.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-artifact/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-artifact/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-attachment/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-attachment/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-chain-of-thought/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-chain-of-thought/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-citation/ai-citation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-citation/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-citation/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-classification/ai-classification.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-code-block/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-code-block/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-confidence/ai-confidence.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-confidence/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-confidence/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-confirmation/ai-confirmation.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-confirmation/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-confirmation/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-feedback/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-feedback/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-file-tree/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-file-tree/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-inline-citation/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-inline-citation/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-message-bubble/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-message-bubble/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-package-info/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-package-info/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-prompt-suggestions/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-prompt-suggestions/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-reasoning/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-reasoning/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-sources/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-sources/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-summary/ai-summary.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-task/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-task/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-token-usage/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-token-usage/types.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-tool-call/ai-tool-call.d.ts.map +1 -1
- package/dist/components/composed/ai/ai-tool-call/types.d.ts +2 -1
- package/dist/components/composed/ai/ai-tool-call/types.d.ts.map +1 -1
- package/dist/components/composed/ai/index.cjs +1 -1
- package/dist/components/composed/ai/index.cjs.map +1 -1
- package/dist/components/composed/ai/index.js +115 -109
- package/dist/components/composed/ai/index.js.map +1 -1
- package/dist/components/composed/analytics/activity-heatmap/types.d.ts +2 -1
- package/dist/components/composed/analytics/activity-heatmap/types.d.ts.map +1 -1
- package/dist/components/composed/analytics/index.cjs +1 -1
- package/dist/components/composed/analytics/index.cjs.map +1 -1
- package/dist/components/composed/analytics/index.js +87 -87
- package/dist/components/composed/analytics/index.js.map +1 -1
- package/dist/components/composed/cards/contact-card/types.d.ts +2 -1
- package/dist/components/composed/cards/contact-card/types.d.ts.map +1 -1
- package/dist/components/composed/cards/course-card/types.d.ts +2 -1
- package/dist/components/composed/cards/course-card/types.d.ts.map +1 -1
- package/dist/components/composed/cards/feature-announcement/feature-announcement.d.ts.map +1 -1
- package/dist/components/composed/cards/giftcard-card/types.d.ts +2 -1
- package/dist/components/composed/cards/giftcard-card/types.d.ts.map +1 -1
- package/dist/components/composed/cards/index.cjs +1 -1
- package/dist/components/composed/cards/index.cjs.map +1 -1
- package/dist/components/composed/cards/index.js +186 -190
- package/dist/components/composed/cards/index.js.map +1 -1
- package/dist/components/composed/cards/vendor-profile/types.d.ts +2 -1
- package/dist/components/composed/cards/vendor-profile/types.d.ts.map +1 -1
- package/dist/components/composed/cards/vendor-profile/vendor-profile.d.ts.map +1 -1
- package/dist/components/composed/commerce/address-card/types.d.ts +2 -1
- package/dist/components/composed/commerce/address-card/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/cart-summary/types.d.ts +2 -1
- package/dist/components/composed/commerce/cart-summary/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/coupon-input/coupon-input.d.ts.map +1 -1
- package/dist/components/composed/commerce/coupon-input/types.d.ts +2 -1
- package/dist/components/composed/commerce/coupon-input/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/discount-stack/types.d.ts +2 -1
- package/dist/components/composed/commerce/discount-stack/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/index.cjs +1 -1
- package/dist/components/composed/commerce/index.cjs.map +1 -1
- package/dist/components/composed/commerce/index.js +197 -202
- package/dist/components/composed/commerce/index.js.map +1 -1
- package/dist/components/composed/commerce/loyalty-points/loyalty-points.d.ts.map +1 -1
- package/dist/components/composed/commerce/loyalty-points/types.d.ts +2 -1
- package/dist/components/composed/commerce/loyalty-points/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/order-status/types.d.ts +2 -1
- package/dist/components/composed/commerce/order-status/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/payment-method/types.d.ts +2 -1
- package/dist/components/composed/commerce/payment-method/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/refund-status/refund-status.d.ts.map +1 -1
- package/dist/components/composed/commerce/refund-status/types.d.ts +2 -1
- package/dist/components/composed/commerce/refund-status/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/subscription-summary/subscription-summary.d.ts.map +1 -1
- package/dist/components/composed/commerce/subscription-summary/types.d.ts +2 -1
- package/dist/components/composed/commerce/subscription-summary/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/tax-breakdown/types.d.ts +2 -1
- package/dist/components/composed/commerce/tax-breakdown/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/voucher-entry/types.d.ts +2 -1
- package/dist/components/composed/commerce/voucher-entry/types.d.ts.map +1 -1
- package/dist/components/composed/commerce/voucher-entry/voucher-entry.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/dark-payment/dark-payment.d.ts.map +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs +1 -1
- package/dist/components/composed/dark-surfaces/index.cjs.map +1 -1
- package/dist/components/composed/dark-surfaces/index.js +71 -72
- package/dist/components/composed/dark-surfaces/index.js.map +1 -1
- package/dist/components/composed/data-display/empty-state/empty-state.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/empty-state.strings.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/empty-state.types.d.ts +85 -0
- package/dist/components/composed/data-display/empty-state/empty-state.types.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/partials/illustrations/document-stack.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/partials/illustrations/inbox-clean.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/partials/illustrations/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/partials/illustrations/search-glass.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/partials/illustrations/stacked-cards.d.ts.map +1 -0
- package/dist/components/composed/data-display/empty-state/partials/illustrations/users-circle.d.ts.map +1 -0
- package/dist/components/composed/data-display/fields/email-display.d.ts +23 -0
- package/dist/components/composed/data-display/fields/email-display.d.ts.map +1 -0
- package/dist/components/composed/data-display/fields/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/fields/phone-display.d.ts +23 -0
- package/dist/components/composed/data-display/fields/phone-display.d.ts.map +1 -0
- package/dist/components/composed/data-display/fields/url-display.d.ts +29 -0
- package/dist/components/composed/data-display/fields/url-display.d.ts.map +1 -0
- package/dist/components/composed/data-display/index.cjs +1 -2
- package/dist/components/composed/data-display/index.d.ts +7 -0
- package/dist/components/composed/data-display/index.d.ts.map +1 -1
- package/dist/components/composed/data-display/index.js +2 -1165
- package/dist/components/composed/data-display/inline-stat/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/inline-stat/inline-stat.d.ts.map +1 -0
- package/dist/components/composed/data-display/invoice-header/types.d.ts +2 -1
- package/dist/components/composed/data-display/invoice-header/types.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-items/invoice-items.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-mini/types.d.ts +2 -1
- package/dist/components/composed/data-display/invoice-mini/types.d.ts.map +1 -1
- package/dist/components/composed/data-display/invoice-table/types.d.ts +2 -1
- package/dist/components/composed/data-display/invoice-table/types.d.ts.map +1 -1
- package/dist/components/composed/data-display/metadata/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -0
- package/dist/components/composed/data-display/metadata/metadata-list.strings.d.ts.map +1 -0
- package/dist/components/composed/data-display/numeric-value/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/numeric-value/numeric-value.d.ts.map +1 -0
- package/dist/components/composed/data-display/resource-selector-card.d.ts.map +1 -1
- package/dist/components/composed/data-display/section-header/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/section-header/section-header.d.ts.map +1 -0
- package/dist/components/composed/data-display/user-cell/index.d.ts.map +1 -0
- package/dist/components/composed/data-display/user-cell/user-cell.d.ts +20 -0
- package/dist/components/composed/data-display/user-cell/user-cell.d.ts.map +1 -0
- package/dist/components/composed/navigation/breadcrumb-progress/types.d.ts +2 -1
- package/dist/components/composed/navigation/breadcrumb-progress/types.d.ts.map +1 -1
- package/dist/components/composed/navigation/index.cjs +1 -1
- package/dist/components/composed/navigation/index.cjs.map +1 -1
- package/dist/components/composed/navigation/index.js +12 -12
- package/dist/components/composed/navigation/index.js.map +1 -1
- package/dist/components/composed/onboarding/index.cjs +1 -1
- package/dist/components/composed/onboarding/index.cjs.map +1 -1
- package/dist/components/composed/onboarding/index.js +3 -3
- package/dist/components/composed/timelines/activity-stream/types.d.ts +2 -1
- package/dist/components/composed/timelines/activity-stream/types.d.ts.map +1 -1
- package/dist/components/composed/timelines/changelog/types.d.ts +2 -1
- package/dist/components/composed/timelines/changelog/types.d.ts.map +1 -1
- package/dist/components/composed/timelines/index.cjs +1 -1
- package/dist/components/composed/timelines/index.cjs.map +1 -1
- package/dist/components/composed/timelines/index.js +6 -6
- package/dist/components/composed/timelines/index.js.map +1 -1
- package/dist/components/composed/timelines/milestones/types.d.ts +2 -1
- package/dist/components/composed/timelines/milestones/types.d.ts.map +1 -1
- package/dist/components/features/activities/activities.types.d.ts +3 -2
- package/dist/components/features/activities/activities.types.d.ts.map +1 -1
- package/dist/components/features/activities/index.cjs +1 -1
- package/dist/components/features/activities/index.cjs.map +1 -1
- package/dist/components/features/activities/index.js +33 -30
- package/dist/components/features/activities/index.js.map +1 -1
- package/dist/components/features/activities/partials/activities-feed-card.d.ts.map +1 -1
- package/dist/components/features/ai-chat/index.cjs +2 -2
- package/dist/components/features/ai-chat/index.cjs.map +1 -1
- package/dist/components/features/ai-chat/index.js +42 -42
- package/dist/components/features/ai-chat/index.js.map +1 -1
- package/dist/components/features/card/index.cjs +1 -1
- package/dist/components/features/card/index.cjs.map +1 -1
- package/dist/components/features/card/index.js +6 -6
- package/dist/components/features/card/index.js.map +1 -1
- package/dist/components/features/comments/index.cjs +1 -1
- package/dist/components/features/comments/index.js +2 -2
- package/dist/components/features/data-view/data-view.d.ts.map +1 -0
- package/dist/components/features/data-view/data-view.strings.d.ts.map +1 -0
- package/dist/components/features/data-view/data-view.types.d.ts.map +1 -0
- package/dist/components/features/data-view/index.cjs +2 -0
- package/dist/components/features/data-view/index.cjs.map +1 -0
- package/dist/components/features/data-view/index.d.ts.map +1 -0
- package/dist/components/features/data-view/index.js +146 -0
- package/dist/components/features/data-view/index.js.map +1 -0
- package/dist/components/features/event-log/index.cjs +1 -1
- package/dist/components/features/event-log/index.cjs.map +1 -1
- package/dist/components/features/event-log/index.js +6 -6
- package/dist/components/features/event-log/index.js.map +1 -1
- package/dist/components/features/filters/filter-context.d.ts +5 -0
- package/dist/components/features/filters/filter-context.d.ts.map +1 -1
- package/dist/components/features/filters/filter-layout.d.ts.map +1 -1
- package/dist/components/features/filters/filters.types.d.ts +1 -1
- package/dist/components/features/filters/filters.types.d.ts.map +1 -1
- package/dist/components/features/filters/index.cjs +1 -1
- package/dist/components/features/filters/index.cjs.map +1 -1
- package/dist/components/features/filters/index.js +333 -308
- package/dist/components/features/filters/index.js.map +1 -1
- package/dist/components/features/filters/partials/active-filter-item.d.ts.map +1 -1
- package/dist/components/features/filters/partials/async-filter-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/regular-filter-content.d.ts.map +1 -1
- package/dist/components/features/filters/partials/tags-filter-content.d.ts.map +1 -1
- package/dist/components/features/global-search/global-search.d.ts.map +1 -1
- package/dist/components/features/global-search/index.cjs +1 -1
- package/dist/components/features/global-search/index.cjs.map +1 -1
- package/dist/components/features/global-search/index.js +36 -28
- package/dist/components/features/global-search/index.js.map +1 -1
- package/dist/components/features/global-search/partials/global-search-input.d.ts.map +1 -1
- package/dist/components/features/global-search/partials/global-search-result-row.d.ts.map +1 -1
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/kanban/index.cjs +1 -1
- package/dist/components/features/kanban/index.cjs.map +1 -1
- package/dist/components/features/kanban/index.js +5 -5
- package/dist/components/features/kanban/index.js.map +1 -1
- package/dist/components/features/media-library/index.cjs +1 -1
- package/dist/components/features/media-library/index.cjs.map +1 -1
- package/dist/components/features/media-library/index.js +27 -27
- package/dist/components/features/media-library/index.js.map +1 -1
- package/dist/components/features/mentions/index.cjs +1 -1
- package/dist/components/features/mentions/index.js +1 -1
- package/dist/components/features/overlays/index.cjs +1 -1
- package/dist/components/features/overlays/index.js +1 -1
- package/dist/components/features/products/components/product-contract-overview.d.ts.map +1 -1
- package/dist/components/features/products/components/product-details-card.d.ts.map +1 -1
- package/dist/components/features/products/components/product-quote-preview-card.d.ts.map +1 -1
- package/dist/components/features/products/components/product-readiness-card.d.ts.map +1 -1
- package/dist/components/features/products/index.cjs +1 -1
- package/dist/components/features/products/index.cjs.map +1 -1
- package/dist/components/features/products/index.js +135 -135
- package/dist/components/features/products/index.js.map +1 -1
- package/dist/components/features/products/products.types.d.ts +1 -1
- package/dist/components/features/products/products.types.d.ts.map +1 -1
- package/dist/components/features/resource/index.cjs +2 -0
- package/dist/components/features/resource/index.cjs.map +1 -0
- package/dist/components/features/resource/index.d.ts.map +1 -0
- package/dist/components/features/resource/index.js +240 -0
- package/dist/components/features/resource/index.js.map +1 -0
- package/dist/components/features/resource/resource.d.ts.map +1 -0
- package/dist/components/features/resource/resource.types.d.ts +87 -0
- package/dist/components/features/resource/resource.types.d.ts.map +1 -0
- 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.cjs.map +1 -1
- package/dist/components/features/schema-form/index.js +23 -23
- 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.cjs.map +1 -1
- package/dist/components/features/sync/index.js +53 -31
- package/dist/components/features/sync/index.js.map +1 -1
- package/dist/components/features/sync/sync-range-dialog-form.d.ts.map +1 -1
- package/dist/components/features/sync/sync.strings.d.ts +6 -0
- package/dist/components/features/sync/sync.strings.d.ts.map +1 -1
- package/dist/components/layout/app-shell/app-shell.types.d.ts +7 -7
- package/dist/components/layout/app-shell/app-shell.types.d.ts.map +1 -1
- package/dist/components/layout/app-shell/index.cjs +1 -1
- package/dist/components/layout/app-shell/index.js +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts.map +1 -1
- package/dist/components/layout/auth/index.cjs +1 -1
- package/dist/components/layout/auth/index.js +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/hooks/index.cjs +1 -1
- package/dist/components/layout/hooks/index.js +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.d.ts +0 -1
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +11 -12
- package/dist/components/layout/page/index.cjs +1 -1
- package/dist/components/layout/page/index.js +1 -1
- package/dist/components/layout/page/page.types.d.ts +2 -1
- package/dist/components/layout/page/page.types.d.ts.map +1 -1
- 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/components/sidebar-navigation-user.d.ts +2 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-user.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/sidebar/sidebar.d.ts +2 -1
- package/dist/components/layout/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/sidebar.types.d.ts +3 -2
- package/dist/components/layout/sidebar/sidebar.types.d.ts.map +1 -1
- package/dist/components/layout/workspace/index.cjs +1 -1
- package/dist/components/layout/workspace/index.js +1 -1
- package/dist/components/layout/workspace/workspace.d.ts.map +1 -1
- package/dist/components/typography/index.cjs +1 -1
- package/dist/components/typography/index.js +2 -3
- package/dist/components/typography/label.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/input-group.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/lib/ui-provider/defaults.d.ts.map +1 -1
- package/dist/lib/ui-provider/hooks.d.ts +1 -2
- package/dist/lib/ui-provider/hooks.d.ts.map +1 -1
- package/dist/lib/ui-provider/index.cjs +1 -1
- package/dist/lib/ui-provider/index.d.ts +2 -2
- package/dist/lib/ui-provider/index.d.ts.map +1 -1
- package/dist/lib/ui-provider/index.js +2 -2
- package/dist/lib/ui-provider/types.d.ts +13 -14
- package/dist/lib/ui-provider/types.d.ts.map +1 -1
- package/dist/lib/utils.cjs +1 -1
- package/dist/lib/utils.cjs.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +31 -10
- package/dist/lib/utils.js.map +1 -1
- package/dist/services/actions/index.cjs +1 -1
- package/dist/services/actions/index.js +1 -1
- package/dist/showcase/assets/AreaChart-CGkuyNyy.js +6 -0
- package/dist/showcase/assets/CSPContext-Bfs88_eg.js +1 -0
- package/dist/showcase/assets/CompositeItem-DAQ048AO.js +1 -0
- package/dist/showcase/assets/CompositeRoot-8-OuCMMq.js +1 -0
- package/dist/showcase/assets/DialogTrigger-1P-jwcoH.js +1 -0
- package/dist/showcase/assets/FieldItemContext-ChrM5Ge4.js +1 -0
- package/dist/showcase/assets/LabelableContext-BDyZArAc.js +1 -0
- package/dist/showcase/assets/PreviewLayout-wYGhlcJt.js +1 -0
- package/dist/showcase/assets/RadioGroup-DuiI4W--.js +1 -0
- package/dist/showcase/assets/ScrollAreaCorner-Df5uTkWT.js +1 -0
- package/dist/showcase/assets/Separator-BuTBo5a_.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-B4S4Fn7d.js +1 -0
- package/dist/showcase/assets/accordion-D3beuJpC.js +171 -0
- package/dist/showcase/assets/accordion-variants-BTMpfSPI.js +1 -0
- package/dist/showcase/assets/action-menu-DsAr1OqF.js +1 -0
- package/dist/showcase/assets/actions-BzyHAEZR.js +310 -0
- package/dist/showcase/assets/activities-BgoelWKu.js +500 -0
- package/dist/showcase/assets/activities-feed-card-DI4MIm3-.js +1 -0
- package/dist/showcase/assets/admin-n-JemkNh.js +140 -0
- package/dist/showcase/assets/ai-BXyk1mT0.js +207 -0
- package/dist/showcase/assets/ai-artifact-C8CmZ94f.js +2 -0
- package/dist/showcase/assets/ai-chat-CTQQ4e4X.js +568 -0
- package/dist/showcase/assets/ai-elements-DGnlBq8E.js +387 -0
- package/dist/showcase/assets/ai-tool-call-bHnWNBtN.js +1 -0
- package/dist/showcase/assets/alert-CIHGXUul.js +62 -0
- package/dist/showcase/assets/alert-N79A6qIx.js +93 -0
- package/dist/showcase/assets/alert-bPnj3_cC.js +1 -0
- package/dist/showcase/assets/api-key-list-Bf1KoRJq.js +1 -0
- package/dist/showcase/assets/api-key-list-DyZ_DaRx.js +73 -0
- package/dist/showcase/assets/app-sidebar-Co0LUSvz.js +1 -0
- package/dist/showcase/assets/arrow-down-BttnoDxP.js +1 -0
- package/dist/showcase/assets/arrow-left-B1kFGJ8v.js +1 -0
- package/dist/showcase/assets/arrow-right-Md96ra7v.js +1 -0
- package/dist/showcase/assets/arrow-up-B9e9cP-q.js +1 -0
- package/dist/showcase/assets/arrow-up-right-BOHJNdrp.js +1 -0
- package/dist/showcase/assets/avatar-CJaCYGWf.js +1 -0
- package/dist/showcase/assets/avatar-CxwFyL4T.js +57 -0
- package/dist/showcase/assets/avatar-D3kvVy00.js +1 -0
- package/dist/showcase/assets/avatar-DKLsNeBi.js +67 -0
- package/dist/showcase/assets/badge-CSMmwDLr.js +31 -0
- package/dist/showcase/assets/badge-check-TQRmqI7C.js +1 -0
- package/dist/showcase/assets/bell-CwRy7zpP.js +1 -0
- package/dist/showcase/assets/bot-Bt02Uzhq.js +1 -0
- package/dist/showcase/assets/box-Bfv5RQBf.js +1 -0
- package/dist/showcase/assets/braces-CxUoAPd4.js +1 -0
- package/dist/showcase/assets/brain-CNapE0CP.js +1 -0
- package/dist/showcase/assets/brand-CBq1YoS0.js +36 -0
- package/dist/showcase/assets/breadcrumb-DRioiUd_.js +1 -0
- package/dist/showcase/assets/breadcrumb-DyXpErBT.js +52 -0
- package/dist/showcase/assets/breadcrumbs-BzHeoItO.js +1 -0
- package/dist/showcase/assets/briefcase-N74Hu0O2.js +1 -0
- package/dist/showcase/assets/building-2-D81ygy-F.js +1 -0
- package/dist/showcase/assets/button-Bgqg7AmN.js +44 -0
- package/dist/showcase/assets/button-group-DPV1XIW3.js +1 -0
- package/dist/showcase/assets/buttons-qpZWlILG.js +272 -0
- package/dist/showcase/assets/calendar-BXG5CwbY.js +1 -0
- package/dist/showcase/assets/calendar-D-CSqGtC.js +16 -0
- package/dist/showcase/assets/calendar-DcYyOrNY.js +1 -0
- package/dist/showcase/assets/calendar-days-CNNiyV9e.js +1 -0
- package/dist/showcase/assets/camera-D0yVo0xC.js +1 -0
- package/dist/showcase/assets/card-Bl-y9-8y.js +1 -0
- package/dist/showcase/assets/card-CH7Ev3xS.js +188 -0
- package/dist/showcase/assets/card-primitives-CiU5lL3a.js +1 -0
- package/dist/showcase/assets/card-radio-group-DpeIWyiO.js +1 -0
- package/dist/showcase/assets/cards-7xave3ub.js +354 -0
- package/dist/showcase/assets/carousel--kHTFkC7.js +449 -0
- package/dist/showcase/assets/cell-renderers-Cx8rAZln.js +1 -0
- package/dist/showcase/assets/chart-DU8INHbt.js +358 -0
- package/dist/showcase/assets/chart-column-Dbekq8cy.js +1 -0
- package/dist/showcase/assets/checkbox-ClPnzko9.js +1 -0
- package/dist/showcase/assets/checkbox-Qhh92dbS.js +1 -0
- package/dist/showcase/assets/chevron-down-BqrI6QzQ.js +1 -0
- package/dist/showcase/assets/chevron-left-TJKYH3rG.js +1 -0
- package/dist/showcase/assets/chevron-up-CPuAmh-d.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-DZB44PVY.js +1 -0
- package/dist/showcase/assets/circle-CY0DkTje.js +1 -0
- package/dist/showcase/assets/circle-alert-9j29FrsT.js +1 -0
- package/dist/showcase/assets/circle-check-BkFKejsY.js +1 -0
- package/dist/showcase/assets/circle-check-big-vu3Znqdx.js +1 -0
- package/dist/showcase/assets/circle-dot-CsBIkbEH.js +1 -0
- package/dist/showcase/assets/circle-question-mark-BRiF5RV4.js +1 -0
- package/dist/showcase/assets/circle-x-BF20gddw.js +1 -0
- package/dist/showcase/assets/clock-3-mhWDhdka.js +1 -0
- package/dist/showcase/assets/clock-Dd-urPd2.js +1 -0
- package/dist/showcase/assets/code-xml-D2f-X63y.js +1 -0
- package/dist/showcase/assets/collapsible-CF0oQTVS.js +1 -0
- package/dist/showcase/assets/collapsible-Ru5-bssh.js +27 -0
- package/dist/showcase/assets/combobox-DpJTW_Rq.js +685 -0
- package/dist/showcase/assets/command-Dno8Ogez.js +1 -0
- package/dist/showcase/assets/command-LRFStKBy.js +1 -0
- package/dist/showcase/assets/comment-composer-Dht7nfbv.js +1 -0
- package/dist/showcase/assets/comment-item-B6IgQsMr.js +1 -0
- package/dist/showcase/assets/comments-B3ksV3Mn.js +357 -0
- package/dist/showcase/assets/commerce-B1_Offbz.js +267 -0
- package/dist/showcase/assets/composite-BjQWIYF-.js +1 -0
- package/dist/showcase/assets/contact-card-Bss4YHZz.js +65 -0
- package/dist/showcase/assets/content-container-D4BM1Zro.js +1 -0
- package/dist/showcase/assets/copyable-C0J88R_R.js +96 -0
- package/dist/showcase/assets/copyable-Dst8oaw5.js +1 -0
- package/dist/showcase/assets/course-card-BuqwjqtO.js +77 -0
- package/dist/showcase/assets/cpu-CFy0M0rN.js +1 -0
- package/dist/showcase/assets/credit-card-CFq0S1Ma.js +1 -0
- package/dist/showcase/assets/css-variables-BAALjDwD.js +1190 -0
- package/dist/showcase/assets/currency-BZzZRv2_.js +149 -0
- package/dist/showcase/assets/dark-surfaces-CVKt2Yww.js +90 -0
- package/dist/showcase/assets/data-view-Be0uoLqL.js +4 -0
- package/dist/showcase/assets/data-view-D6_zyFwk.js +124 -0
- package/dist/showcase/assets/database-DSC-ysYT.js +1 -0
- package/dist/showcase/assets/date-block-Bgu_LMxB.js +1 -0
- package/dist/showcase/assets/date-picker-ByYEZGMg.js +1 -0
- package/dist/showcase/assets/date-pickers-DzSQrvWs.js +73 -0
- package/dist/showcase/assets/dense-info-BhFkOQbt.js +106 -0
- package/dist/showcase/assets/design-system-consistency-D6iCJLcr.js +264 -0
- package/dist/showcase/assets/dialog-C1heXuxu.js +1 -0
- package/dist/showcase/assets/dialog-DzrcsKvl.js +1 -0
- package/dist/showcase/assets/display-utilities-eu-EVMrx.js +267 -0
- package/dist/showcase/assets/dist-BlIID0_L.js +1 -0
- package/dist/showcase/assets/dist-DV4Tv32d.js +45 -0
- package/dist/showcase/assets/dollar-sign-qp4G3P_K.js +1 -0
- package/dist/showcase/assets/download-zlcHjSdS.js +1 -0
- package/dist/showcase/assets/dropdown-menu-DZ47rJaE.js +1 -0
- package/dist/showcase/assets/dropzone-Dx4EqBHu.js +1 -0
- package/dist/showcase/assets/earth-BuXqXHh6.js +1 -0
- package/dist/showcase/assets/ellipsis-DgAjMZHc.js +1 -0
- package/dist/showcase/assets/ellipsis-vertical-BA8_YMyV.js +1 -0
- package/dist/showcase/assets/empty-DXjKmyNv.js +1 -0
- package/dist/showcase/assets/empty-item-DIGWYsI0.js +49 -0
- package/dist/showcase/assets/empty-state-BSc0tQNC.js +190 -0
- package/dist/showcase/assets/empty-state-CkixFVN1.js +1 -0
- package/dist/showcase/assets/enhanced-activities-CKbHgR4f.js +357 -0
- package/dist/showcase/assets/enhanced-combobox-DAKQyFUg.js +1 -0
- package/dist/showcase/assets/esm-C3PfkuOc.js +2 -0
- package/dist/showcase/assets/event-calendar-rNju8jaT.js +138 -0
- package/dist/showcase/assets/event-log-BUK1blGb.js +330 -0
- package/dist/showcase/assets/example-PsbgbESI.js +1 -0
- package/dist/showcase/assets/external-link-CgB9zfWz.js +1 -0
- package/dist/showcase/assets/eye-YnIHbdKe.js +1 -0
- package/dist/showcase/assets/feature-announcement-CWwjAPI1.js +34 -0
- package/dist/showcase/assets/file-3Z2xkc-8.js +1 -0
- package/dist/showcase/assets/file-text-BQeGXxPG.js +1 -0
- package/dist/showcase/assets/filter-layout-D7YskzbC.js +1 -0
- package/dist/showcase/assets/filters-2YY_wVwq.js +139 -0
- package/dist/showcase/assets/flag-Bw3wwRgF.js +1 -0
- package/dist/showcase/assets/folder-open-CZ5Bq4lK.js +1 -0
- package/dist/showcase/assets/form-field-AWNJL9FM.js +1 -0
- package/dist/showcase/assets/form-sizing-C3UG5WKC.js +1 -0
- package/dist/showcase/assets/format-DUU7-42g.js +1 -0
- package/dist/showcase/assets/forms-CWJ3HBbk.js +915 -0
- package/dist/showcase/assets/funnel-vxNNph7w.js +1 -0
- package/dist/showcase/assets/generic-DlyFJDj6.js +1 -0
- package/dist/showcase/assets/getPseudoElementBounds-CibNto5h.js +1 -0
- package/dist/showcase/assets/gift-BjRHqTcQ.js +1 -0
- package/dist/showcase/assets/giftcard-cards-DcujCFff.js +85 -0
- package/dist/showcase/assets/git-branch-B7XnpQE0.js +1 -0
- package/dist/showcase/assets/global-search-CWvNfmpe.js +1 -0
- package/dist/showcase/assets/global-search-Ct7I1Xd2.js +215 -0
- package/dist/showcase/assets/globe-CHleXWd2.js +1 -0
- package/dist/showcase/assets/gradient-card-Bw4oJljh.js +58 -0
- package/dist/showcase/assets/hash-BVGqnm6_.js +1 -0
- package/dist/showcase/assets/header-CgApizpk.js +1 -0
- package/dist/showcase/assets/header-notifications-B2v1Mdri.js +1 -0
- package/dist/showcase/assets/heart-BwvHCA-d.js +1 -0
- package/dist/showcase/assets/hooks-A_AQLIRZ.js +217 -0
- package/dist/showcase/assets/house-opqNxOmP.js +1 -0
- package/dist/showcase/assets/icon-badge-CsG95J1Z.js +37 -0
- package/dist/showcase/assets/icon-badge-ognVhKWR.js +1 -0
- package/dist/showcase/assets/image-apDSlTAx.js +1 -0
- package/dist/showcase/assets/inbox-WrbeTKEw.js +1 -0
- package/dist/showcase/assets/index-CCxHwV7T.css +2 -0
- package/dist/showcase/assets/index-QESvAJrb.js +10 -0
- package/dist/showcase/assets/index.esm-BXmcbSs7.js +1 -0
- package/dist/showcase/assets/inertValue-DrANZiJk.js +1 -0
- package/dist/showcase/assets/info-C3G9KRCx.js +1 -0
- package/dist/showcase/assets/inline-stat-BnjUqzDM.js +15 -0
- package/dist/showcase/assets/inline-stat-CO01t7SJ.js +1 -0
- package/dist/showcase/assets/input-CBJy1dMs.js +1 -0
- package/dist/showcase/assets/input-group-CZyYSq4r.js +47 -0
- package/dist/showcase/assets/input-group-Dfqufdp4.js +1 -0
- package/dist/showcase/assets/input-yYoqWQQ7.js +1 -0
- package/dist/showcase/assets/inputs-Bhw_FGDY.js +155 -0
- package/dist/showcase/assets/installation-DnvS2ZUn.js +134 -0
- package/dist/showcase/assets/invoice-header-B9Ak8GXX.js +36 -0
- package/dist/showcase/assets/invoice-items-DY5zUZhE.js +36 -0
- package/dist/showcase/assets/invoice-mini-BAryECEH.js +14 -0
- package/dist/showcase/assets/invoice-table-BUvjee74.js +30 -0
- package/dist/showcase/assets/isSameDay-DVP1ae2V.js +1 -0
- package/dist/showcase/assets/isToday-CNAQB-p9.js +1 -0
- package/dist/showcase/assets/italic-CjQCLJci.js +1 -0
- package/dist/showcase/assets/item-BMSdEK3V.js +1 -0
- package/dist/showcase/assets/item-D1Jxrpia.js +1 -0
- package/dist/showcase/assets/item-DxPwk321.js +139 -0
- package/dist/showcase/assets/kanban-DXWCGieQ.js +188 -0
- package/dist/showcase/assets/key-round-DpuhXiJQ.js +1 -0
- package/dist/showcase/assets/label-D1wLK5nY.js +1 -0
- package/dist/showcase/assets/languages-CGYZVmbV.js +1 -0
- package/dist/showcase/assets/layers-DJZSVGAu.js +1 -0
- package/dist/showcase/assets/layout-app-shell-UX63nzTO.js +608 -0
- package/dist/showcase/assets/layout-auth-Bav5BBqp.js +790 -0
- package/dist/showcase/assets/layout-containers-DMHD2zdV.js +101 -0
- package/dist/showcase/assets/layout-header-CGesu_kM.js +203 -0
- package/dist/showcase/assets/layout-page-DHXu8SIv.js +314 -0
- package/dist/showcase/assets/layout-primitives-CokzGwd2.js +34 -0
- package/dist/showcase/assets/layout-sidebar-CLUYajcu.js +224 -0
- package/dist/showcase/assets/layout-users-DHUNAnFA.js +117 -0
- package/dist/showcase/assets/layout-workspace-y0v2FpDW.js +191 -0
- package/dist/showcase/assets/lib-g_kR7X9Z.js +1 -0
- package/dist/showcase/assets/list-checks-CXt8visd.js +1 -0
- package/dist/showcase/assets/lock-CpZ5kLUd.js +1 -0
- package/dist/showcase/assets/lock-keyhole-Cy2raRO6.js +1 -0
- package/dist/showcase/assets/mail-Cj6uT4TA.js +1 -0
- package/dist/showcase/assets/mail-check-Di70bdf6.js +1 -0
- package/dist/showcase/assets/map-DMXbG_04.js +124 -0
- package/dist/showcase/assets/map-pin-EKhu7vEj.js +1 -0
- package/dist/showcase/assets/media-library-Dnp9S0oW.js +699 -0
- package/dist/showcase/assets/mention-inline-suggestions-Bp-fVNYF.js +1 -0
- package/dist/showcase/assets/mentions-DNRk30XZ.js +138 -0
- package/dist/showcase/assets/menus-DFURb5VL.js +171 -0
- package/dist/showcase/assets/message-square-DG0qIsG_.js +1 -0
- package/dist/showcase/assets/metadata-list-BhlsEWYT.js +1 -0
- package/dist/showcase/assets/metadata-list-Cb1DQd4S.js +286 -0
- package/dist/showcase/assets/metric-BkzIsP8H.js +1 -0
- package/dist/showcase/assets/metric-bar-CU73nx89.js +1 -0
- package/dist/showcase/assets/metric-grid-BMLMbLjE.js +1 -0
- package/dist/showcase/assets/metric-trend-chip-Dutl5uZo.js +1 -0
- package/dist/showcase/assets/metrics-analytics-bar-AqG2oyIy.js +44 -0
- package/dist/showcase/assets/metrics-analytics-cards-CrFHmR2f.js +50 -0
- package/dist/showcase/assets/metrics-comparison-CY-DyLv7.js +76 -0
- package/dist/showcase/assets/metrics-heatmap-BmX_CkiP.js +27 -0
- package/dist/showcase/assets/metrics-inline-badge-C1IFjdJN.js +17 -0
- package/dist/showcase/assets/metrics-kpi-row-8Kbn034e.js +31 -0
- package/dist/showcase/assets/metrics-micro-grid-CodO02yA.js +42 -0
- package/dist/showcase/assets/metrics-overview-CdPqEAAG.js +192 -0
- package/dist/showcase/assets/metrics-stat-cards-Cw7UMWmb.js +54 -0
- package/dist/showcase/assets/minus-B1es6KJX.js +1 -0
- package/dist/showcase/assets/money-display-CFfUZLus.js +1 -0
- package/dist/showcase/assets/month-year-picker-ChVcYm9f.js +1 -0
- package/dist/showcase/assets/navigation-Boyt1q-1.js +231 -0
- package/dist/showcase/assets/navigation-CThYYxkL.js +90 -0
- package/dist/showcase/assets/navigation-extras-CxLc-Mqx.js +43 -0
- package/dist/showcase/assets/onboarding-checklist-C15gqmFc.js +119 -0
- package/dist/showcase/assets/overflow-tab-bar-B2Htn-Ft.js +1 -0
- package/dist/showcase/assets/overlays-CPZfp0nk.js +159 -0
- package/dist/showcase/assets/overlays-Cpj4akiw.js +408 -0
- package/dist/showcase/assets/overview-BB-Xbkff.js +184 -0
- package/dist/showcase/assets/package-DLn6nx-u.js +1 -0
- package/dist/showcase/assets/package-check-B0wyBUSU.js +1 -0
- package/dist/showcase/assets/page-BPFNsNh7.js +1 -0
- package/dist/showcase/assets/page-action-button-DMS8Vcmz.js +1 -0
- package/dist/showcase/assets/page-header-BGqE9hzO.js +1 -0
- package/dist/showcase/assets/pagination-Be6ynLCp.js +1 -0
- package/dist/showcase/assets/pagination-T4FmLNHn.js +42 -0
- package/dist/showcase/assets/paperclip-B_kxXzSN.js +1 -0
- package/dist/showcase/assets/password-input-qfQ5eIU4.js +1 -0
- package/dist/showcase/assets/pencil-DlDLApli.js +1 -0
- package/dist/showcase/assets/phone-D8tvvbSQ.js +1 -0
- package/dist/showcase/assets/plus-BkhJjfUv.js +1 -0
- package/dist/showcase/assets/popover-BsCx2XMI.js +1 -0
- package/dist/showcase/assets/popover-Bu7aaPjE.js +1 -0
- package/dist/showcase/assets/popover-menu-CD_JfEeq.js +1 -0
- package/dist/showcase/assets/products-BzHX1ta0.js +423 -0
- package/dist/showcase/assets/progress-CpW2ZGAy.js +18 -0
- package/dist/showcase/assets/progress-jIJ_EIKE.js +1 -0
- package/dist/showcase/assets/props-table-CCcohuyT.js +1 -0
- package/dist/showcase/assets/props.generated-cO7HmIpY.json +41578 -0
- package/dist/showcase/assets/quote-Bc9eHVKi.js +1 -0
- package/dist/showcase/assets/react-sKtkuLrH.js +1 -0
- package/dist/showcase/assets/receipt-B77_VWtt.js +1 -0
- package/dist/showcase/assets/receipt-text-BlL_TJsS.js +1 -0
- package/dist/showcase/assets/refinement-guide-BpzOvT_R.js +189 -0
- package/dist/showcase/assets/refresh-cw-CELG4taF.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-LRTUaJTb.js +1 -0
- package/dist/showcase/assets/resource-BT8_ck3n.js +1 -0
- package/dist/showcase/assets/resource-C7J3yZp6.js +139 -0
- package/dist/showcase/assets/resource-selector-card-Ay8ImvKg.js +43 -0
- package/dist/showcase/assets/rich-text-editor-CdGVvtsm.js +143 -0
- package/dist/showcase/assets/rich-text-editor-DVtTVuZ6.js +124 -0
- package/dist/showcase/assets/rotate-ccw-MwEZ1b11.js +1 -0
- package/dist/showcase/assets/route-CgBh1oKF.js +1 -0
- package/dist/showcase/assets/save-BFsAGR7O.js +1 -0
- package/dist/showcase/assets/schema-form-CaF-lBkN.js +327 -0
- package/dist/showcase/assets/scroll-area-BkZULoZA.js +1 -0
- package/dist/showcase/assets/scroll-area-CpDi_6FP.js +32 -0
- package/dist/showcase/assets/section-D-N8Ze16.js +1 -0
- package/dist/showcase/assets/select-C9Mfb_Gj.js +1 -0
- package/dist/showcase/assets/select-ReMZs8K6.js +1 -0
- package/dist/showcase/assets/send-C6PbwpHN.js +1 -0
- package/dist/showcase/assets/separator-CywPSoE0.js +28 -0
- package/dist/showcase/assets/separator-Ha9YxI2x.js +1 -0
- package/dist/showcase/assets/settings-2-CVq5Uyv5.js +1 -0
- package/dist/showcase/assets/settings-DkTHc0Ob.js +1 -0
- package/dist/showcase/assets/sheet-k-P0gWlk.js +1 -0
- package/dist/showcase/assets/shield-Cme7_JJR.js +1 -0
- package/dist/showcase/assets/shield-alert-CxV0S5w0.js +1 -0
- package/dist/showcase/assets/shield-check-BW_7p6Xf.js +1 -0
- package/dist/showcase/assets/shopping-bag-CoR8AMYU.js +1 -0
- package/dist/showcase/assets/showcase-m3FzbvoC.js +132 -0
- package/dist/showcase/assets/sidebar-bz_FzvjM.js +1 -0
- package/dist/showcase/assets/sidebar.context-BWMPnGn6.js +1 -0
- package/dist/showcase/assets/skeleton-BJMnQDgf.js +29 -0
- package/dist/showcase/assets/skeleton-DoWW5XZD.js +1 -0
- package/dist/showcase/assets/slider-BH1Gtp_p.js +1 -0
- package/dist/showcase/assets/smart-card-C6-idFYI.js +1 -0
- package/dist/showcase/assets/sonner-CGZ3FC4U.js +22 -0
- package/dist/showcase/assets/sortable.esm-CE0TA9V_.js +5 -0
- package/dist/showcase/assets/sparkles-8yQFcmte.js +1 -0
- package/dist/showcase/assets/spinner-BYUX0luk.js +30 -0
- package/dist/showcase/assets/spinner-CNveVfOr.js +49 -0
- package/dist/showcase/assets/spinner-CO8LjtjY.js +1 -0
- package/dist/showcase/assets/square-pen-CWylvezY.js +1 -0
- package/dist/showcase/assets/stacked-avatars-DiNA5OJK.js +1 -0
- package/dist/showcase/assets/star-t53uwwyp.js +1 -0
- package/dist/showcase/assets/startOfDay-BKFJecZ3.js +1 -0
- package/dist/showcase/assets/styles-CwpnwrEQ.js +1 -0
- package/dist/showcase/assets/suggestions-CvxZxsmc.js +126 -0
- package/dist/showcase/assets/switch-CewkokYT.js +1 -0
- package/dist/showcase/assets/switch-D-7uqDR8.js +1 -0
- package/dist/showcase/assets/sync-DnBSRAwH.js +124 -0
- package/dist/showcase/assets/table-3cUcSCBR.js +664 -0
- package/dist/showcase/assets/table-actions-CrujG5R-.js +1 -0
- package/dist/showcase/assets/table-ds5oNU0h.js +1 -0
- package/dist/showcase/assets/tabs-C-hJfSn5.js +19 -0
- package/dist/showcase/assets/tabs-GG911oaV.js +1 -0
- package/dist/showcase/assets/tags-input-DBeIaeVn.js +1 -0
- package/dist/showcase/assets/text-button-EZojp9Ye.js +1 -0
- package/dist/showcase/assets/text-link-DcKeYjEX.js +1 -0
- package/dist/showcase/assets/textarea-DgNgSl1g.js +1 -0
- package/dist/showcase/assets/textarea-PXKZSiRa.js +1 -0
- package/dist/showcase/assets/timelines-CaF_Ze8z.js +200 -0
- package/dist/showcase/assets/toggle-group-D_iuhL1G.js +1 -0
- package/dist/showcase/assets/toggles-BKaayRmE.js +71 -0
- package/dist/showcase/assets/toggles-group-DRAksOw2.js +32 -0
- package/dist/showcase/assets/tooltip-B_LnC5D2.js +31 -0
- package/dist/showcase/assets/trash-2-DhUpICQq.js +1 -0
- package/dist/showcase/assets/trending-up-Kfm5l65O.js +1 -0
- package/dist/showcase/assets/truck-D6SGLjv1.js +1 -0
- package/dist/showcase/assets/typography-qEz6MMn9.js +223 -0
- package/dist/showcase/assets/ui-badge-BA334hdB.js +28 -0
- package/dist/showcase/assets/ui-card-CjqUyGvB.js +30 -0
- package/dist/showcase/assets/ui-table-cDgI6WMk.js +42 -0
- package/dist/showcase/assets/upload-tray-BcA-7pqW.js +138 -0
- package/dist/showcase/assets/use-form-field-state-CGGJFfWu.js +1 -0
- package/dist/showcase/assets/use-layout-link-DIUWH-oo.js +1 -0
- package/dist/showcase/assets/useAnchoredPopupScrollLock-BavpibMb.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-HDEJjv0f.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-CL0pCuxO.js +1 -0
- package/dist/showcase/assets/useCompositeItem-LkMSD9DW.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-C_oLUvf8.js +1 -0
- package/dist/showcase/assets/useControlled-BHUji6Sp.js +1 -0
- package/dist/showcase/assets/useLabelableId-DDpjUdIO.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-DQOSh-Eu.js +1 -0
- package/dist/showcase/assets/useRender-CnmFaF3Y.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-BPFrAxlp.js +1 -0
- package/dist/showcase/assets/useValueChanged-lYlHqRM1.js +1 -0
- package/dist/showcase/assets/user-DLuRcjl0.js +1 -0
- package/dist/showcase/assets/user-plus-B1Pi7SNv.js +1 -0
- package/dist/showcase/assets/users-DAlxvktS.js +1 -0
- package/dist/showcase/assets/vendor-profile-ClJ6G6SO.js +37 -0
- package/dist/showcase/assets/video-DxooIkh-.js +1 -0
- package/dist/showcase/assets/wrench-BiwmotMF.js +1 -0
- package/dist/showcase/assets/x-idpnOHil.js +1 -0
- package/dist/showcase/assets/zap-a90eC6iO.js +1 -0
- package/dist/showcase/index.html +3 -3
- package/dist/style.css +1 -1
- package/package.json +24 -23
- package/scripts/install-skill.mjs +2 -0
- package/scripts/metadata.json +67 -3
- package/scripts/publish-theme.mjs +245 -0
- package/src/App.css +10 -3
- package/src/css/defaults.css +12 -0
- package/src/css/themes/default.css +7 -0
- package/src/css/themes/shadcn.default.css +144 -0
- package/src/css/tokens/compat.css +46 -0
- package/src/css/tokens/components.css +55 -0
- package/src/css/tokens/foundation.css +90 -0
- package/src/css/tokens/layout.css +44 -0
- package/src/css/tokens/primitives.css +263 -0
- package/src/css/tokens/states.css +58 -0
- package/.agents/skills/component-library-rules/references/components/base__display.md +0 -627
- package/.agents/skills/component-library-rules/references/components/base__empty-state.md +0 -310
- package/.agents/skills/component-library-rules/references/components/base__frame.md +0 -235
- package/.agents/skills/component-library-rules/references/components/base__metadata-list.md +0 -430
- package/.agents/skills/component-library-rules/references/components/composed__ai-new.md +0 -221
- package/.agents/skills/component-library-rules/references/components/composed__commerce-extras.md +0 -295
- package/dist/_shared/accordion-Df1XrCDv.cjs +0 -2
- package/dist/_shared/accordion-Df1XrCDv.cjs.map +0 -1
- package/dist/_shared/accordion-Rzi9wEl6.js +0 -130
- package/dist/_shared/accordion-Rzi9wEl6.js.map +0 -1
- package/dist/_shared/action-menu-CrOJ63Q9.js +0 -96
- package/dist/_shared/action-menu-CrOJ63Q9.js.map +0 -1
- package/dist/_shared/action-menu-D9OowHKx.cjs +0 -2
- package/dist/_shared/action-menu-D9OowHKx.cjs.map +0 -1
- package/dist/_shared/ai-artifact--vEDQFvM.cjs +0 -3
- package/dist/_shared/ai-artifact--vEDQFvM.cjs.map +0 -1
- package/dist/_shared/ai-artifact-p45wDWWX.js +0 -1099
- package/dist/_shared/ai-artifact-p45wDWWX.js.map +0 -1
- package/dist/_shared/alert-CuIIKJC-.cjs +0 -2
- package/dist/_shared/alert-CuIIKJC-.cjs.map +0 -1
- package/dist/_shared/alert-k60OnTtb.js +0 -81
- package/dist/_shared/alert-k60OnTtb.js.map +0 -1
- package/dist/_shared/app-shell-DqDnnKT4.cjs +0 -2
- package/dist/_shared/app-shell-DqDnnKT4.cjs.map +0 -1
- package/dist/_shared/app-shell-w5h0vEKg.js +0 -69
- package/dist/_shared/app-shell-w5h0vEKg.js.map +0 -1
- package/dist/_shared/auth-1Fl_2u-c.js +0 -643
- package/dist/_shared/auth-1Fl_2u-c.js.map +0 -1
- package/dist/_shared/auth-CVDNwcge.cjs +0 -2
- package/dist/_shared/auth-CVDNwcge.cjs.map +0 -1
- package/dist/_shared/avatar-0spfQEHG.cjs +0 -2
- package/dist/_shared/avatar-0spfQEHG.cjs.map +0 -1
- package/dist/_shared/avatar-CBi4LGxy.js +0 -52
- package/dist/_shared/avatar-CBi4LGxy.js.map +0 -1
- package/dist/_shared/badge-A8wQRShC.js +0 -108
- package/dist/_shared/badge-A8wQRShC.js.map +0 -1
- package/dist/_shared/badge-D7A2LnSf.cjs +0 -2
- package/dist/_shared/badge-D7A2LnSf.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs +0 -2
- package/dist/_shared/breadcrumbs-Dqp2qAmo.cjs.map +0 -1
- package/dist/_shared/breadcrumbs-bJ-J0oCd.js +0 -111
- package/dist/_shared/breadcrumbs-bJ-J0oCd.js.map +0 -1
- package/dist/_shared/button-BGKY8UY0.js +0 -173
- package/dist/_shared/button-BGKY8UY0.js.map +0 -1
- package/dist/_shared/button-BI347RlM.cjs +0 -2
- package/dist/_shared/button-BI347RlM.cjs.map +0 -1
- package/dist/_shared/buttons-PL-TGJ32.js +0 -143
- package/dist/_shared/buttons-PL-TGJ32.js.map +0 -1
- package/dist/_shared/buttons-kVvSD_oI.cjs +0 -2
- package/dist/_shared/buttons-kVvSD_oI.cjs.map +0 -1
- package/dist/_shared/card-radio-group-Bna2uZs1.cjs +0 -2
- package/dist/_shared/card-radio-group-Bna2uZs1.cjs.map +0 -1
- package/dist/_shared/card-radio-group-D_CY1HRy.js +0 -158
- package/dist/_shared/card-radio-group-D_CY1HRy.js.map +0 -1
- package/dist/_shared/checkbox-CTqqawIT.js +0 -22
- package/dist/_shared/checkbox-CTqqawIT.js.map +0 -1
- package/dist/_shared/checkbox-D1n-nfLP.cjs +0 -2
- package/dist/_shared/checkbox-D1n-nfLP.cjs.map +0 -1
- package/dist/_shared/combobox-CEzH533Y.cjs +0 -2
- package/dist/_shared/combobox-CEzH533Y.cjs.map +0 -1
- package/dist/_shared/combobox-Dc4vaeGt.js +0 -927
- package/dist/_shared/combobox-Dc4vaeGt.js.map +0 -1
- package/dist/_shared/command-Bxe_FmGD.cjs +0 -2
- package/dist/_shared/command-Bxe_FmGD.cjs.map +0 -1
- package/dist/_shared/command-DwRnPIGs.js +0 -39
- package/dist/_shared/command-DwRnPIGs.js.map +0 -1
- package/dist/_shared/comments-BDnq4RPN.js +0 -952
- package/dist/_shared/comments-BDnq4RPN.js.map +0 -1
- package/dist/_shared/comments-C4djB-nG.cjs +0 -2
- package/dist/_shared/comments-C4djB-nG.cjs.map +0 -1
- package/dist/_shared/copyable-Bx4J7fuT.cjs +0 -2
- package/dist/_shared/copyable-Bx4J7fuT.cjs.map +0 -1
- package/dist/_shared/copyable-cfF4gZoT.js +0 -38
- package/dist/_shared/copyable-cfF4gZoT.js.map +0 -1
- package/dist/_shared/date-picker-Dl91BM3D.js +0 -1361
- package/dist/_shared/date-picker-Dl91BM3D.js.map +0 -1
- package/dist/_shared/date-picker-zFOqtmAS.cjs +0 -2
- package/dist/_shared/date-picker-zFOqtmAS.cjs.map +0 -1
- package/dist/_shared/date-pickers-BBydcIjN.cjs +0 -2
- package/dist/_shared/date-pickers-BBydcIjN.cjs.map +0 -1
- package/dist/_shared/date-pickers-D2OsgV4V.js +0 -330
- package/dist/_shared/date-pickers-D2OsgV4V.js.map +0 -1
- package/dist/_shared/display-AtPyyUZc.cjs +0 -2
- package/dist/_shared/display-AtPyyUZc.cjs.map +0 -1
- package/dist/_shared/display-CL69dmsv.js +0 -1471
- package/dist/_shared/display-CL69dmsv.js.map +0 -1
- package/dist/_shared/form-sizing-D74IS9KG.js +0 -21
- package/dist/_shared/form-sizing-D74IS9KG.js.map +0 -1
- package/dist/_shared/form-sizing-aVwVuF-w.cjs +0 -2
- package/dist/_shared/form-sizing-aVwVuF-w.cjs.map +0 -1
- package/dist/_shared/forms-Bi5rUH3t.cjs +0 -2
- package/dist/_shared/forms-Bi5rUH3t.cjs.map +0 -1
- package/dist/_shared/forms-Yd0b-3MQ.js +0 -3556
- package/dist/_shared/forms-Yd0b-3MQ.js.map +0 -1
- package/dist/_shared/header-C4SvsbMn.cjs +0 -2
- package/dist/_shared/header-C4SvsbMn.cjs.map +0 -1
- package/dist/_shared/header-CcnW83Vs.js +0 -447
- package/dist/_shared/header-CcnW83Vs.js.map +0 -1
- package/dist/_shared/heading-0DYCOrgC.cjs +0 -2
- package/dist/_shared/heading-0DYCOrgC.cjs.map +0 -1
- package/dist/_shared/heading-HeP06nXG.js +0 -107
- package/dist/_shared/heading-HeP06nXG.js.map +0 -1
- package/dist/_shared/hooks-DsDGr8xz.cjs +0 -2
- package/dist/_shared/hooks-DsDGr8xz.cjs.map +0 -1
- package/dist/_shared/hooks-IEM3N4VG.js +0 -95
- package/dist/_shared/hooks-IEM3N4VG.js.map +0 -1
- package/dist/_shared/icon-badge-BAWl1oOe.cjs +0 -2
- package/dist/_shared/icon-badge-BAWl1oOe.cjs.map +0 -1
- package/dist/_shared/icon-badge-zTBVtgt9.js +0 -52
- package/dist/_shared/icon-badge-zTBVtgt9.js.map +0 -1
- package/dist/_shared/input-C7t-RHYq.js +0 -182
- package/dist/_shared/input-C7t-RHYq.js.map +0 -1
- package/dist/_shared/input-COMcb1WY.cjs +0 -2
- package/dist/_shared/input-COMcb1WY.cjs.map +0 -1
- package/dist/_shared/item-DAjqQhhj.js +0 -225
- package/dist/_shared/item-DAjqQhhj.js.map +0 -1
- package/dist/_shared/item-DoXXYgPm.cjs +0 -2
- package/dist/_shared/item-DoXXYgPm.cjs.map +0 -1
- package/dist/_shared/mentions-CqwT7pUL.cjs +0 -2
- package/dist/_shared/mentions-CqwT7pUL.cjs.map +0 -1
- package/dist/_shared/mentions-RxzSRAWE.js +0 -506
- package/dist/_shared/mentions-RxzSRAWE.js.map +0 -1
- package/dist/_shared/metadata-Ckcmar8d.js +0 -235
- package/dist/_shared/metadata-Ckcmar8d.js.map +0 -1
- package/dist/_shared/metadata-DamdYVZL.cjs +0 -2
- package/dist/_shared/metadata-DamdYVZL.cjs.map +0 -1
- package/dist/_shared/money-display-CFSMUtxS.cjs +0 -2
- package/dist/_shared/money-display-CFSMUtxS.cjs.map +0 -1
- package/dist/_shared/money-display-D4Z3P3f_.js +0 -198
- package/dist/_shared/money-display-D4Z3P3f_.js.map +0 -1
- package/dist/_shared/navigation-B-TE-HR-.cjs +0 -2
- package/dist/_shared/navigation-B-TE-HR-.cjs.map +0 -1
- package/dist/_shared/navigation-Cg0UqMDP.js +0 -424
- package/dist/_shared/navigation-Cg0UqMDP.js.map +0 -1
- package/dist/_shared/overlays-CJs_syAu.js +0 -648
- package/dist/_shared/overlays-CJs_syAu.js.map +0 -1
- package/dist/_shared/overlays-DWFEaAog.cjs +0 -2
- package/dist/_shared/overlays-DWFEaAog.cjs.map +0 -1
- package/dist/_shared/page-Bl_eSGLh.js +0 -262
- package/dist/_shared/page-Bl_eSGLh.js.map +0 -1
- package/dist/_shared/page-DTEqSyEK.cjs +0 -2
- package/dist/_shared/page-DTEqSyEK.cjs.map +0 -1
- package/dist/_shared/popover-CaHvG8Vj.cjs +0 -2
- package/dist/_shared/popover-CaHvG8Vj.cjs.map +0 -1
- package/dist/_shared/popover-L37RqoRO.js +0 -83
- package/dist/_shared/popover-L37RqoRO.js.map +0 -1
- package/dist/_shared/popover-menu-Fz-bvWJF.cjs +0 -2
- package/dist/_shared/popover-menu-Fz-bvWJF.cjs.map +0 -1
- package/dist/_shared/popover-menu-bKQatoYF.js +0 -93
- package/dist/_shared/popover-menu-bKQatoYF.js.map +0 -1
- package/dist/_shared/resource-Bb7dj-aj.cjs +0 -2
- package/dist/_shared/resource-Bb7dj-aj.cjs.map +0 -1
- package/dist/_shared/resource-DljsYA7W.js +0 -243
- package/dist/_shared/resource-DljsYA7W.js.map +0 -1
- package/dist/_shared/rich-text-editor-B2VqNi6j.js +0 -620
- package/dist/_shared/rich-text-editor-B2VqNi6j.js.map +0 -1
- package/dist/_shared/rich-text-editor-ChE-pI3N.cjs +0 -2
- package/dist/_shared/rich-text-editor-ChE-pI3N.cjs.map +0 -1
- package/dist/_shared/scroll-area-BH5CPQh4.js +0 -41
- package/dist/_shared/scroll-area-BH5CPQh4.js.map +0 -1
- package/dist/_shared/scroll-area-u46BOVcC.cjs +0 -2
- package/dist/_shared/scroll-area-u46BOVcC.cjs.map +0 -1
- package/dist/_shared/settings-BtNkFHl3.cjs +0 -2
- package/dist/_shared/settings-BtNkFHl3.cjs.map +0 -1
- package/dist/_shared/settings-Do6SuM-H.js +0 -143
- package/dist/_shared/settings-Do6SuM-H.js.map +0 -1
- package/dist/_shared/sidebar-BGpi9K_Q.js +0 -389
- package/dist/_shared/sidebar-BGpi9K_Q.js.map +0 -1
- package/dist/_shared/sidebar-BhcdQ9e9.cjs +0 -2
- package/dist/_shared/sidebar-BhcdQ9e9.cjs.map +0 -1
- package/dist/_shared/sidebar-CC3lcvNX.cjs +0 -2
- package/dist/_shared/sidebar-CC3lcvNX.cjs.map +0 -1
- package/dist/_shared/sidebar-CMoxtuSw.js +0 -538
- package/dist/_shared/sidebar-CMoxtuSw.js.map +0 -1
- package/dist/_shared/smart-card-B6m7tmt0.cjs +0 -2
- package/dist/_shared/smart-card-B6m7tmt0.cjs.map +0 -1
- package/dist/_shared/smart-card-thLb85Ih.js +0 -361
- package/dist/_shared/smart-card-thLb85Ih.js.map +0 -1
- package/dist/_shared/spinner-BfAbXTQ7.js +0 -67
- package/dist/_shared/spinner-BfAbXTQ7.js.map +0 -1
- package/dist/_shared/spinner-DWn3x9Tl.cjs +0 -2
- package/dist/_shared/spinner-DWn3x9Tl.cjs.map +0 -1
- package/dist/_shared/table-BgpL5Yt8.cjs +0 -2
- package/dist/_shared/table-BgpL5Yt8.cjs.map +0 -1
- package/dist/_shared/table-Ct3nl0lV.js +0 -1381
- package/dist/_shared/table-Ct3nl0lV.js.map +0 -1
- package/dist/_shared/textarea-C4SOrh0z.cjs +0 -2
- package/dist/_shared/textarea-C4SOrh0z.cjs.map +0 -1
- package/dist/_shared/textarea-CsMkelmp.js +0 -119
- package/dist/_shared/textarea-CsMkelmp.js.map +0 -1
- package/dist/_shared/typography-Bzsl7aTu.cjs +0 -2
- package/dist/_shared/typography-Bzsl7aTu.cjs.map +0 -1
- package/dist/_shared/typography-CdxyWB1T.js +0 -102
- package/dist/_shared/typography-CdxyWB1T.js.map +0 -1
- package/dist/_shared/ui-provider-BF4m2cR0.cjs +0 -2
- package/dist/_shared/ui-provider-BF4m2cR0.cjs.map +0 -1
- package/dist/_shared/ui-provider-C8Ot88lS.js +0 -85
- package/dist/_shared/ui-provider-C8Ot88lS.js.map +0 -1
- package/dist/_shared/workspace-BzTFBkmd.cjs +0 -2
- package/dist/_shared/workspace-BzTFBkmd.cjs.map +0 -1
- package/dist/_shared/workspace-CvUYln5V.js +0 -357
- package/dist/_shared/workspace-CvUYln5V.js.map +0 -1
- package/dist/components/base/data-view/data-view.d.ts.map +0 -1
- package/dist/components/base/data-view/data-view.strings.d.ts.map +0 -1
- package/dist/components/base/data-view/data-view.types.d.ts.map +0 -1
- package/dist/components/base/data-view/index.cjs +0 -2
- package/dist/components/base/data-view/index.cjs.map +0 -1
- package/dist/components/base/data-view/index.d.ts.map +0 -1
- package/dist/components/base/data-view/index.js +0 -146
- package/dist/components/base/data-view/index.js.map +0 -1
- package/dist/components/base/display/empty-state/empty-state.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/empty-state.strings.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/empty-state.types.d.ts +0 -85
- package/dist/components/base/display/empty-state/empty-state.types.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/index.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/partials/illustrations/document-stack.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/partials/illustrations/inbox-clean.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/partials/illustrations/index.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/partials/illustrations/search-glass.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/partials/illustrations/stacked-cards.d.ts.map +0 -1
- package/dist/components/base/display/empty-state/partials/illustrations/users-circle.d.ts.map +0 -1
- package/dist/components/base/display/fields/email-display.d.ts +0 -22
- package/dist/components/base/display/fields/email-display.d.ts.map +0 -1
- package/dist/components/base/display/fields/index.d.ts.map +0 -1
- package/dist/components/base/display/fields/phone-display.d.ts +0 -22
- package/dist/components/base/display/fields/phone-display.d.ts.map +0 -1
- package/dist/components/base/display/fields/url-display.d.ts +0 -28
- package/dist/components/base/display/fields/url-display.d.ts.map +0 -1
- package/dist/components/base/display/inline-stat/index.d.ts.map +0 -1
- package/dist/components/base/display/inline-stat/inline-stat.d.ts.map +0 -1
- package/dist/components/base/display/metadata/index.cjs +0 -1
- package/dist/components/base/display/metadata/index.d.ts.map +0 -1
- package/dist/components/base/display/metadata/index.js +0 -2
- package/dist/components/base/display/metadata/metadata-list.d.ts.map +0 -1
- package/dist/components/base/display/metadata/metadata-list.strings.d.ts.map +0 -1
- package/dist/components/base/display/numeric-value/index.d.ts.map +0 -1
- package/dist/components/base/display/numeric-value/numeric-value.d.ts.map +0 -1
- package/dist/components/base/display/section-header/index.d.ts.map +0 -1
- package/dist/components/base/display/section-header/section-header.d.ts.map +0 -1
- package/dist/components/base/display/user-cell/index.d.ts.map +0 -1
- package/dist/components/base/display/user-cell/user-cell.d.ts +0 -19
- package/dist/components/base/display/user-cell/user-cell.d.ts.map +0 -1
- package/dist/components/base/frame/frame.d.ts +0 -24
- package/dist/components/base/frame/frame.d.ts.map +0 -1
- package/dist/components/base/frame/index.cjs +0 -2
- package/dist/components/base/frame/index.cjs.map +0 -1
- package/dist/components/base/frame/index.d.ts +0 -2
- package/dist/components/base/frame/index.d.ts.map +0 -1
- package/dist/components/base/frame/index.js +0 -164
- package/dist/components/base/frame/index.js.map +0 -1
- package/dist/components/composed/data-display/index.cjs.map +0 -1
- package/dist/components/composed/data-display/index.js.map +0 -1
- package/dist/components/layout/resource/index.cjs +0 -1
- package/dist/components/layout/resource/index.d.ts.map +0 -1
- package/dist/components/layout/resource/index.js +0 -2
- package/dist/components/layout/resource/resource.d.ts.map +0 -1
- package/dist/components/layout/resource/resource.types.d.ts +0 -86
- package/dist/components/layout/resource/resource.types.d.ts.map +0 -1
- package/dist/showcase/assets/AreaChart-CPs34Emq.js +0 -6
- package/dist/showcase/assets/CSPContext-B11tftuK.js +0 -1
- package/dist/showcase/assets/CompositeItem-CRBdF4lY.js +0 -1
- package/dist/showcase/assets/CompositeRoot-BJL04x4e.js +0 -1
- package/dist/showcase/assets/DialogTrigger-DLTfNVyT.js +0 -1
- package/dist/showcase/assets/FieldItemContext-BSFHjS7g.js +0 -1
- package/dist/showcase/assets/LabelableContext-DqxJotB_.js +0 -1
- package/dist/showcase/assets/PreviewLayout-DQIZaXaO.js +0 -1
- package/dist/showcase/assets/RadioGroup-Bd_Zncc1.js +0 -1
- package/dist/showcase/assets/Separator-BP98bGSM.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-CHQj8-IW.js +0 -1
- package/dist/showcase/assets/accordion-C-grh_FX.js +0 -171
- package/dist/showcase/assets/accordion-variants-xiD_mqaf.js +0 -1
- package/dist/showcase/assets/action-menu-BkBav9jX.js +0 -1
- package/dist/showcase/assets/activities-DWhVEoyf.js +0 -501
- package/dist/showcase/assets/activities-feed-card-BW5nKGmZ.js +0 -1
- package/dist/showcase/assets/activity-poGMMgYW.js +0 -1
- package/dist/showcase/assets/admin-Dd5rNbt8.js +0 -140
- package/dist/showcase/assets/ai-B-HxItKA.js +0 -41
- package/dist/showcase/assets/ai-artifact-CakosBY2.js +0 -2
- package/dist/showcase/assets/ai-chat-DdxooReQ.js +0 -568
- package/dist/showcase/assets/ai-elements-D1Vv9_Tw.js +0 -387
- package/dist/showcase/assets/ai-new-nIwh-IOk.js +0 -167
- package/dist/showcase/assets/ai-tool-call-D_D0wP5v.js +0 -1
- package/dist/showcase/assets/alert-BUcCtIUZ.js +0 -1
- package/dist/showcase/assets/alert-Dia0s7JO.js +0 -62
- package/dist/showcase/assets/alert-T1jitthq.js +0 -93
- package/dist/showcase/assets/api-key-list-BH7hCegB.js +0 -1
- package/dist/showcase/assets/api-key-list-DGw5v3TM.js +0 -73
- package/dist/showcase/assets/app-sidebar-C9tjHr7T.js +0 -1
- package/dist/showcase/assets/arrow-down-B6kyPDb5.js +0 -1
- package/dist/showcase/assets/arrow-left-D0CtgCZo.js +0 -1
- package/dist/showcase/assets/arrow-right-KBaOzj0x.js +0 -1
- package/dist/showcase/assets/arrow-up-C4Mo45qq.js +0 -1
- package/dist/showcase/assets/arrow-up-right-DP1T-yaT.js +0 -1
- package/dist/showcase/assets/avatar-D7SDbnVK.js +0 -57
- package/dist/showcase/assets/avatar-Dk78XyHT.js +0 -1
- package/dist/showcase/assets/badge-BynPmAU-.js +0 -28
- package/dist/showcase/assets/badge-check-BLKxMna6.js +0 -1
- package/dist/showcase/assets/bell-YYeVQNAQ.js +0 -1
- package/dist/showcase/assets/bot-DW1y5yQ-.js +0 -1
- package/dist/showcase/assets/box-xRYm3qua.js +0 -1
- package/dist/showcase/assets/brain-D_5EG0Lz.js +0 -1
- package/dist/showcase/assets/brand-Dyp6oyOk.js +0 -36
- package/dist/showcase/assets/breadcrumb-DXvRsHCJ.js +0 -52
- package/dist/showcase/assets/breadcrumb-IsBRcWTe.js +0 -1
- package/dist/showcase/assets/breadcrumbs-BU7Rgcpu.js +0 -1
- package/dist/showcase/assets/briefcase-DNJAkTSQ.js +0 -1
- package/dist/showcase/assets/building-2-ew23uhTO.js +0 -1
- package/dist/showcase/assets/button-Vw1Oyu_k.js +0 -44
- package/dist/showcase/assets/button-group-B-jDeq6X.js +0 -1
- package/dist/showcase/assets/buttons-C51ePl4d.js +0 -270
- package/dist/showcase/assets/calendar-B5HmDXFy.js +0 -16
- package/dist/showcase/assets/calendar-BcfonDWf.js +0 -1
- package/dist/showcase/assets/calendar-C30zoOBE.js +0 -1
- package/dist/showcase/assets/calendar-days-RYOuU9Cg.js +0 -1
- package/dist/showcase/assets/camera-CyHnOpqm.js +0 -1
- package/dist/showcase/assets/card-Btuv-VxD.js +0 -188
- package/dist/showcase/assets/card-BvOjmZEl.js +0 -1
- package/dist/showcase/assets/card-primitives-FJQ8zNnk.js +0 -1
- package/dist/showcase/assets/card-radio-group-CEX1QGZc.js +0 -1
- package/dist/showcase/assets/cards-CL6XfZ22.js +0 -328
- package/dist/showcase/assets/carousel-D9G8bQhs.js +0 -449
- package/dist/showcase/assets/cell-renderers-CFw3ElYS.js +0 -1
- package/dist/showcase/assets/chart-CXAM6h1e.js +0 -358
- package/dist/showcase/assets/chart-column-BAuLvocu.js +0 -1
- package/dist/showcase/assets/checkbox-Bu3lf4gm.js +0 -1
- package/dist/showcase/assets/chevron-down-BbbFJsFU.js +0 -1
- package/dist/showcase/assets/chevron-left-CmperXCk.js +0 -1
- package/dist/showcase/assets/chevron-right-0nQcAzMY.js +0 -1
- package/dist/showcase/assets/chevron-up-BXSFzrxh.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-lvrM2T-O.js +0 -1
- package/dist/showcase/assets/circle-DswWOvJq.js +0 -1
- package/dist/showcase/assets/circle-alert-DM8Q0Da0.js +0 -1
- package/dist/showcase/assets/circle-check-BYi8zv0a.js +0 -1
- package/dist/showcase/assets/circle-check-big-WtxiRvrB.js +0 -1
- package/dist/showcase/assets/circle-dot-MfYw-Dij.js +0 -1
- package/dist/showcase/assets/circle-question-mark-CbXDG7RP.js +0 -1
- package/dist/showcase/assets/circle-x-DeZby2HN.js +0 -1
- package/dist/showcase/assets/clock-3-BxradwSg.js +0 -1
- package/dist/showcase/assets/clock-BBX3LCxu.js +0 -1
- package/dist/showcase/assets/code-xml-ldsBhjwS.js +0 -1
- package/dist/showcase/assets/collapsible-COxB1q4f.js +0 -1
- package/dist/showcase/assets/collapsible-D8iHSi7O.js +0 -27
- package/dist/showcase/assets/combobox-gNdpv0PU.js +0 -726
- package/dist/showcase/assets/command-BNVn6pYm.js +0 -1
- package/dist/showcase/assets/command-Bwp2eLDF.js +0 -1
- package/dist/showcase/assets/comment-composer-eU5HG1ZD.js +0 -1
- package/dist/showcase/assets/comment-item-AKJEHLvt.js +0 -1
- package/dist/showcase/assets/comments-hcLJicNU.js +0 -357
- package/dist/showcase/assets/commerce-C_RgOVxU.js +0 -79
- package/dist/showcase/assets/commerce-extras-CVVnDyB5.js +0 -189
- package/dist/showcase/assets/composite-BW91WkOo.js +0 -1
- package/dist/showcase/assets/contact-card-CE82BDxj.js +0 -65
- package/dist/showcase/assets/content-container-Cc8Vv5Wp.js +0 -1
- package/dist/showcase/assets/copyable-CD9f6sxk.js +0 -96
- package/dist/showcase/assets/copyable-DRvJ9iOu.js +0 -1
- package/dist/showcase/assets/course-card-DYzULN2A.js +0 -77
- package/dist/showcase/assets/cpu-Cc__BewW.js +0 -1
- package/dist/showcase/assets/credit-card-CoIW8_5L.js +0 -1
- package/dist/showcase/assets/currency-DEKUvlFU.js +0 -149
- package/dist/showcase/assets/dark-surfaces-D5WXaLLj.js +0 -90
- package/dist/showcase/assets/database-C8o4g1ov.js +0 -1
- package/dist/showcase/assets/date-block-Aw2riL52.js +0 -1
- package/dist/showcase/assets/date-picker-BrBCLxZ8.js +0 -1
- package/dist/showcase/assets/date-pickers-B84_YAGT.js +0 -73
- package/dist/showcase/assets/dense-info-BaI61NnP.js +0 -106
- package/dist/showcase/assets/dialog-CfKGB1qy.js +0 -1
- package/dist/showcase/assets/dialog-DpfYwJPk.js +0 -1
- package/dist/showcase/assets/display-ZDXpxNSP.js +0 -403
- package/dist/showcase/assets/dist-CnonIdcR.js +0 -1
- package/dist/showcase/assets/dist-DRkwLUFP.js +0 -45
- package/dist/showcase/assets/dollar-sign-BTuul0J-.js +0 -1
- package/dist/showcase/assets/download-Nn6XkM9l.js +0 -1
- package/dist/showcase/assets/dropdown-menu-CrcweCup.js +0 -1
- package/dist/showcase/assets/dropzone-MajEhAfA.js +0 -1
- package/dist/showcase/assets/earth-Cv_-EtPW.js +0 -1
- package/dist/showcase/assets/ellipsis-D0y6rUzm.js +0 -1
- package/dist/showcase/assets/ellipsis-vertical-B6ICYsU2.js +0 -1
- package/dist/showcase/assets/empty-CWtvDL2Z.js +0 -1
- package/dist/showcase/assets/empty-item-CBdSL5K4.js +0 -49
- package/dist/showcase/assets/empty-state-DpAXXKE_.js +0 -1
- package/dist/showcase/assets/empty-state-x7W66Jff.js +0 -188
- package/dist/showcase/assets/enhanced-activities-BgQBDjph.js +0 -361
- package/dist/showcase/assets/enhanced-combobox-BT-d7sfw.js +0 -1
- package/dist/showcase/assets/esm-CAF_uoYd.js +0 -2
- package/dist/showcase/assets/event-calendar-Bl3N30L5.js +0 -138
- package/dist/showcase/assets/event-log-BI24HOvx.js +0 -330
- package/dist/showcase/assets/example-CbMg22fx.js +0 -1
- package/dist/showcase/assets/external-link-C4QW5KPr.js +0 -1
- package/dist/showcase/assets/eye-rvb4fYw0.js +0 -1
- package/dist/showcase/assets/feature-announcement-CChQvOnH.js +0 -34
- package/dist/showcase/assets/file-GOMuLez7.js +0 -1
- package/dist/showcase/assets/file-text-B21ZcL9w.js +0 -1
- package/dist/showcase/assets/filters-Crp5EI1q.js +0 -139
- package/dist/showcase/assets/flag-D1iXMqPC.js +0 -1
- package/dist/showcase/assets/folder-open-CjZE_PS8.js +0 -1
- package/dist/showcase/assets/form-field-Dtn_NArM.js +0 -1
- package/dist/showcase/assets/form-sizing-DHUDpiPA.js +0 -1
- package/dist/showcase/assets/format-Cu09wP-k.js +0 -1
- package/dist/showcase/assets/forms-noSArwvn.js +0 -911
- package/dist/showcase/assets/frame-2DJdBXkw.js +0 -167
- package/dist/showcase/assets/generic-BH5YLC_H.js +0 -1
- package/dist/showcase/assets/getPseudoElementBounds-DxlN6Yut.js +0 -1
- package/dist/showcase/assets/gift-DBIsZsVg.js +0 -1
- package/dist/showcase/assets/giftcard-cards-B3ffDDjK.js +0 -85
- package/dist/showcase/assets/git-branch-6eIv9W2g.js +0 -1
- package/dist/showcase/assets/global-search-BelZn8mj.js +0 -215
- package/dist/showcase/assets/global-search-DSMNBBiZ.js +0 -1
- package/dist/showcase/assets/globe-B_Lqx3uz.js +0 -1
- package/dist/showcase/assets/gradient-card-D_2eaE6O.js +0 -58
- package/dist/showcase/assets/hash-BC0RnYwr.js +0 -1
- package/dist/showcase/assets/header-CMjgUhtM.js +0 -1
- package/dist/showcase/assets/header-notifications-fOFoqfCR.js +0 -1
- package/dist/showcase/assets/heart-BM6yPMXn.js +0 -1
- package/dist/showcase/assets/house-CnsMNKdQ.js +0 -1
- package/dist/showcase/assets/icon-badge-IP9B3lQm.js +0 -1
- package/dist/showcase/assets/image-B5jt_w43.js +0 -1
- package/dist/showcase/assets/inbox-BcbV9uGN.js +0 -1
- package/dist/showcase/assets/index-Bn8k0P7-.css +0 -2
- package/dist/showcase/assets/index-DNH0y0r-.js +0 -10
- package/dist/showcase/assets/index.esm-Ducg7a0P.js +0 -1
- package/dist/showcase/assets/inertValue-B82SGILi.js +0 -1
- package/dist/showcase/assets/info-DO5VmDSw.js +0 -1
- package/dist/showcase/assets/inline-stat-B2s_ozrX.js +0 -1
- package/dist/showcase/assets/input-BCxdburb.js +0 -1
- package/dist/showcase/assets/input-DcQuALxy.js +0 -1
- package/dist/showcase/assets/input-group-DZJrOGbm.js +0 -1
- package/dist/showcase/assets/input-group-PwfoPR94.js +0 -47
- package/dist/showcase/assets/inputs-DetnUcEp.js +0 -155
- package/dist/showcase/assets/invoice-header-BMWL_9sW.js +0 -36
- package/dist/showcase/assets/invoice-items-DLEQR54f.js +0 -36
- package/dist/showcase/assets/invoice-mini-BxO8W_p2.js +0 -14
- package/dist/showcase/assets/invoice-table-ClMTdfvZ.js +0 -30
- package/dist/showcase/assets/isSameDay-B9x5Mpln.js +0 -1
- package/dist/showcase/assets/isToday-CT4NGB5x.js +0 -1
- package/dist/showcase/assets/italic-BiQv-7DA.js +0 -1
- package/dist/showcase/assets/item-CdgzxWcL.js +0 -1
- package/dist/showcase/assets/item-JreKWzkR.js +0 -134
- package/dist/showcase/assets/item-a8FCQMvC.js +0 -1
- package/dist/showcase/assets/kanban-CekpGtlO.js +0 -186
- package/dist/showcase/assets/key-round-CpIUGlhG.js +0 -1
- package/dist/showcase/assets/label-BE1d_Rxi.js +0 -1
- package/dist/showcase/assets/languages-DaFWrOam.js +0 -1
- package/dist/showcase/assets/layers-DDIuTz4-.js +0 -1
- package/dist/showcase/assets/layout-app-shell-BkqOwNe9.js +0 -608
- package/dist/showcase/assets/layout-auth-Bng_0NM0.js +0 -754
- package/dist/showcase/assets/layout-containers-Bk_jSDWd.js +0 -101
- package/dist/showcase/assets/layout-header-CuJVU1Rx.js +0 -203
- package/dist/showcase/assets/layout-page-DHOPox5Z.js +0 -278
- package/dist/showcase/assets/layout-primitives-BnIgANs6.js +0 -34
- package/dist/showcase/assets/layout-sidebar-BUOjQm9-.js +0 -224
- package/dist/showcase/assets/layout-users-DFlJQAuB.js +0 -117
- package/dist/showcase/assets/layout-workspace-Cq63UWwT.js +0 -183
- package/dist/showcase/assets/lib-DMGme4uo.js +0 -1
- package/dist/showcase/assets/lock-DTD3z5Vh.js +0 -1
- package/dist/showcase/assets/lock-keyhole-Bbs1Ry2S.js +0 -1
- package/dist/showcase/assets/mail-DAa8myka.js +0 -1
- package/dist/showcase/assets/mail-check-DrmYfqQb.js +0 -1
- package/dist/showcase/assets/map-DfYPJKDx.js +0 -124
- package/dist/showcase/assets/map-pin-Cf_uffQY.js +0 -1
- package/dist/showcase/assets/media-library-Duyf6M0c.js +0 -695
- package/dist/showcase/assets/mention-inline-suggestions-tOlG56Jr.js +0 -1
- package/dist/showcase/assets/mentions-LbZlN995.js +0 -138
- package/dist/showcase/assets/menus-Cs95R125.js +0 -165
- package/dist/showcase/assets/message-square-CjaeUwPc.js +0 -1
- package/dist/showcase/assets/metadata-list-Bcy5s1_q.js +0 -1
- package/dist/showcase/assets/metadata-list-C9L63gMM2.js +0 -288
- package/dist/showcase/assets/metric-D8bF87C1.js +0 -1
- package/dist/showcase/assets/metric-bar-DQF1jEsY.js +0 -1
- package/dist/showcase/assets/metric-grid-DJZjbFrm.js +0 -1
- package/dist/showcase/assets/metric-trend-chip-C9YeKxwe.js +0 -1
- package/dist/showcase/assets/metrics-analytics-bar-CfGjnKEG.js +0 -44
- package/dist/showcase/assets/metrics-analytics-cards-C4R2q2ia.js +0 -50
- package/dist/showcase/assets/metrics-comparison-B2FZ-rUG.js +0 -76
- package/dist/showcase/assets/metrics-heatmap-BS4EafAM.js +0 -27
- package/dist/showcase/assets/metrics-inline-badge-CyWA0Plw.js +0 -17
- package/dist/showcase/assets/metrics-kpi-row-CH_KTuo2.js +0 -31
- package/dist/showcase/assets/metrics-micro-grid-Dw1rbkBU.js +0 -42
- package/dist/showcase/assets/metrics-overview-BuLSn0GC.js +0 -192
- package/dist/showcase/assets/metrics-stat-cards-Zo4F0-y4.js +0 -54
- package/dist/showcase/assets/minus-COUx_vHQ.js +0 -1
- package/dist/showcase/assets/money-display-prumQLQ2.js +0 -1
- package/dist/showcase/assets/month-year-picker-BDTiuGOD.js +0 -1
- package/dist/showcase/assets/navigation-Bf_sgFei.js +0 -90
- package/dist/showcase/assets/navigation-Dnqq0un0.js +0 -230
- package/dist/showcase/assets/navigation-extras-ydwfzYfj.js +0 -43
- package/dist/showcase/assets/onboarding-checklist-DBLaUqhZ.js +0 -119
- package/dist/showcase/assets/overflow-tab-bar-UXs-T5Fq.js +0 -1
- package/dist/showcase/assets/overlays-C1ET_VvE.js +0 -408
- package/dist/showcase/assets/overlays-dMd0EOT1.js +0 -159
- package/dist/showcase/assets/package-C9EnWNEP.js +0 -1
- package/dist/showcase/assets/package-check-BGT72daQ.js +0 -1
- package/dist/showcase/assets/page-action-button-8faHdFOD.js +0 -1
- package/dist/showcase/assets/page-header-DoZnb9z9.js +0 -1
- package/dist/showcase/assets/pagination-BJ3wQQtL.js +0 -42
- package/dist/showcase/assets/pagination-DJnga08n.js +0 -1
- package/dist/showcase/assets/paperclip-DsQ_IPLp.js +0 -1
- package/dist/showcase/assets/password-input-CLxvZdDC.js +0 -1
- package/dist/showcase/assets/pencil-37DzPmX5.js +0 -1
- package/dist/showcase/assets/phone-CLDh9lYU.js +0 -1
- package/dist/showcase/assets/plus-PKSdX45c.js +0 -1
- package/dist/showcase/assets/popover-BWbBoxN0.js +0 -1
- package/dist/showcase/assets/popover-DoEhmJ7G.js +0 -1
- package/dist/showcase/assets/popover-menu-wt8kWbr1.js +0 -1
- package/dist/showcase/assets/products-Bvl2zRfb.js +0 -407
- package/dist/showcase/assets/progress-BeusdG_D.js +0 -18
- package/dist/showcase/assets/progress-CQr08MPz.js +0 -1
- package/dist/showcase/assets/props-table-DSdjPLVr.js +0 -1
- package/dist/showcase/assets/props.generated-AlskAQY9.json +0 -41579
- package/dist/showcase/assets/quote-D1DrZRcn.js +0 -1
- package/dist/showcase/assets/react-dom-Bz4cALsF.js +0 -1
- package/dist/showcase/assets/receipt-CxNJvyC5.js +0 -1
- package/dist/showcase/assets/receipt-text-2YwFjXVP.js +0 -1
- package/dist/showcase/assets/refresh-cw-DlkWEAjG.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-Ctt-9xwK.js +0 -1
- package/dist/showcase/assets/resource-selector-card-C9zM67wN.js +0 -39
- package/dist/showcase/assets/rich-text-editor-DUWBkEdn.js +0 -124
- package/dist/showcase/assets/rich-text-editor-DjsgN-HX.js +0 -143
- package/dist/showcase/assets/rotate-ccw-ZkWMrEMJ.js +0 -1
- package/dist/showcase/assets/save-CQjTFBwm.js +0 -1
- package/dist/showcase/assets/schema-form-yfcV7ZHE.js +0 -325
- package/dist/showcase/assets/scroll-area-D73Zq5No.js +0 -32
- package/dist/showcase/assets/scroll-area-Toa6lE_G.js +0 -1
- package/dist/showcase/assets/select-BQWY3ndy.js +0 -1
- package/dist/showcase/assets/select-x02n3iNp.js +0 -1
- package/dist/showcase/assets/send-L-LNhDVx.js +0 -1
- package/dist/showcase/assets/separator-B57lhXSg.js +0 -28
- package/dist/showcase/assets/separator-kwh2KDqD.js +0 -1
- package/dist/showcase/assets/settings-Mbnp6hDe.js +0 -1
- package/dist/showcase/assets/sheet-DwYghriA.js +0 -1
- package/dist/showcase/assets/shield-D084AWSl.js +0 -1
- package/dist/showcase/assets/shield-alert-h6F2vnr-.js +0 -1
- package/dist/showcase/assets/shield-check-UiN6QwPl.js +0 -1
- package/dist/showcase/assets/shopping-bag-oxYbVKoz.js +0 -1
- package/dist/showcase/assets/sidebar-BWDrvFY1.js +0 -1
- package/dist/showcase/assets/sidebar.context-BhexAjPM.js +0 -1
- package/dist/showcase/assets/skeleton-BIS2X39p.js +0 -29
- package/dist/showcase/assets/skeleton-uyUucxJA.js +0 -1
- package/dist/showcase/assets/slider-DL--Jsf0.js +0 -1
- package/dist/showcase/assets/sliders-horizontal-C6SHwI9f.js +0 -1
- package/dist/showcase/assets/smart-card-DpvRHqI9.js +0 -1
- package/dist/showcase/assets/sonner-CvCutMP9.js +0 -22
- package/dist/showcase/assets/sortable.esm-COtQXiwU.js +0 -5
- package/dist/showcase/assets/sparkles-bMR7rbuC.js +0 -1
- package/dist/showcase/assets/spinner-CBXhPGyW.js +0 -30
- package/dist/showcase/assets/spinner-Dl2u80sI.js +0 -49
- package/dist/showcase/assets/spinner-ULnFdoGj.js +0 -1
- package/dist/showcase/assets/square-pen-3jbmTAqh.js +0 -1
- package/dist/showcase/assets/stacked-avatars-XKXaLCmk.js +0 -1
- package/dist/showcase/assets/star-0BUJBDj_.js +0 -1
- package/dist/showcase/assets/startOfDay-C8cGxdjJ.js +0 -1
- package/dist/showcase/assets/styles-Cl6qvIKS.js +0 -1
- package/dist/showcase/assets/suggestions-EB3TFZpP.js +0 -126
- package/dist/showcase/assets/switch-BbZ7_Rk-.js +0 -1
- package/dist/showcase/assets/switch-C0QtKm5H.js +0 -1
- package/dist/showcase/assets/sync-BAO20Naa.js +0 -107
- package/dist/showcase/assets/table-CnCYxSnD.js +0 -509
- package/dist/showcase/assets/table-DF7x4TGI.js +0 -1
- package/dist/showcase/assets/table-actions-CjaUIKQl.js +0 -1
- package/dist/showcase/assets/tabs-D3YHyrQ5.js +0 -1
- package/dist/showcase/assets/tabs-vUgN5IPn.js +0 -19
- package/dist/showcase/assets/tags-input-jtEAac1b.js +0 -1
- package/dist/showcase/assets/text-button-fiMDoWms.js +0 -1
- package/dist/showcase/assets/text-link-CSzy09hn.js +0 -1
- package/dist/showcase/assets/textarea-DnvQVkFU.js +0 -1
- package/dist/showcase/assets/textarea-mATRsiLJ.js +0 -1
- package/dist/showcase/assets/timelines-fQQIiGc4.js +0 -200
- package/dist/showcase/assets/toggle-group-B0hN7VRz.js +0 -1
- package/dist/showcase/assets/toggles-group-CXm2HDJ1.js +0 -32
- package/dist/showcase/assets/toggles-kwgQf4hQ.js +0 -71
- package/dist/showcase/assets/trash-2-xwHdvAn6.js +0 -1
- package/dist/showcase/assets/trending-up-CKnZUURN.js +0 -1
- package/dist/showcase/assets/truck-8P8-8rHh.js +0 -1
- package/dist/showcase/assets/typography-BP3SCf0c.js +0 -223
- package/dist/showcase/assets/ui-badge-eTC8uxVw.js +0 -28
- package/dist/showcase/assets/ui-card-AQkRKit0.js +0 -30
- package/dist/showcase/assets/ui-table-BTE7t50V.js +0 -42
- package/dist/showcase/assets/upload-tray-DpW8ZnxN.js +0 -138
- package/dist/showcase/assets/use-form-field-state-Sbo6tfr9.js +0 -1
- package/dist/showcase/assets/use-layout-link-DR4Apqbc.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CT1urU5D.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-DiHf8Ou_.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-NNLPWtyS.js +0 -1
- package/dist/showcase/assets/useCompositeItem-BE0Lg9Iz.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-OwLLy0R3.js +0 -1
- package/dist/showcase/assets/useControlled-BF8maje6.js +0 -1
- package/dist/showcase/assets/useLabelableId-Y-6YW07q.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-CUTVNS1V.js +0 -1
- package/dist/showcase/assets/useRender-BiaVVD8L.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-DCMcmSgH.js +0 -1
- package/dist/showcase/assets/useValueChanged-kq4oH4So.js +0 -1
- package/dist/showcase/assets/user-BCzeUL5p.js +0 -1
- package/dist/showcase/assets/user-plus-CUbfQtkK.js +0 -1
- package/dist/showcase/assets/users-DOGJZmUN.js +0 -1
- package/dist/showcase/assets/vendor-profile-C7dXfVv_.js +0 -37
- package/dist/showcase/assets/video-DbaCGki8.js +0 -1
- package/dist/showcase/assets/wrench-TbDfItHQ.js +0 -1
- package/dist/showcase/assets/x-BpAEmld2.js +0 -1
- package/dist/showcase/assets/zap-E8G3kjwh.js +0 -1
- /package/dist/components/{base/display → composed/data-display}/empty-state/empty-state.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/empty-state.strings.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/document-stack.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/inbox-clean.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/search-glass.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/stacked-cards.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/empty-state/partials/illustrations/users-circle.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/fields/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/inline-stat/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/inline-stat/inline-stat.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/metadata/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/metadata/metadata-list.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/metadata/metadata-list.strings.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/numeric-value/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/numeric-value/numeric-value.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/section-header/index.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/section-header/section-header.d.ts +0 -0
- /package/dist/components/{base/display → composed/data-display}/user-cell/index.d.ts +0 -0
- /package/dist/components/{base → features}/data-view/data-view.d.ts +0 -0
- /package/dist/components/{base → features}/data-view/data-view.strings.d.ts +0 -0
- /package/dist/components/{base → features}/data-view/data-view.types.d.ts +0 -0
- /package/dist/components/{base → features}/data-view/index.d.ts +0 -0
- /package/dist/components/{layout → features}/resource/index.d.ts +0 -0
- /package/dist/components/{layout → features}/resource/resource.d.ts +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../lib/strings.cjs"),t=require("./ui-provider-DZWtUXf2.cjs"),n=require("../lib/utils.cjs"),r=require("./button-Bd5bEIiB.cjs"),i=require("./tooltip-mvxZV_Lu.cjs"),a=require("./typography-CO9uwZhF.cjs"),o=require("./badge-BeSKxX1u.cjs"),s=require("./cards-BKFwMTjM.cjs"),c=require("./popover-dWR7-MzY.cjs"),l=require("./avatar-BnKM_o2d.cjs"),u=require("./rich-text-editor-DeIiIDn7.cjs"),d=require("./mentions-aHalksbt.cjs");let f=require("react"),p=require("date-fns"),m=require("react/jsx-runtime"),h=require("lucide-react");var g={title:`Comments`,subtitle:``,empty:`No comments yet.`,emptyHint:`Start the conversation — your team will see it instantly.`,composerPlaceholder:`Write a comment…`,composerSubmit:`Post comment`,composerSubmitting:`Posting…`,composerSave:`Save changes`,invalidContent:`Comment cannot be empty.`,composerCancel:`Cancel`,composerEditingEyebrow:`Editing comment`,composerReplyingEyebrow:`Replying to {{name}}`,composerAttachmentLabel:`Attach file`,composerReferenceLabel:`Mention or link`,composerReferenceMenuTitle:`Insert reference`,composerReferenceSearchPlaceholder:`Search…`,composerReferenceEmpty:`No matches.`,composerReferenceLoading:`Searching…`,fallbackAuthor:`Anonymous`,pinned:`Pinned`,edited:`edited`,deleteLabel:`Delete`,editLabel:`Edit`,replyLabel:`Reply`,pinLabel:`Pin`,unpinLabel:`Unpin`,moreActionsLabel:`More actions`,confirmDeleteLabel:`Delete comment`,attachmentFallback:`Attachment`,attachmentRemoveLabel:`Remove attachment`,attachmentUploadingLabel:`Uploading…`,attachmentFailedLabel:`Upload failed`,attachmentTooLargeError:`File is too large.`,attachmentTooManyError:`Too many attachments.`,attachmentRetryLabel:`Retry`,attachmentDownloadLabel:`Download`,addReactionLabel:`Add reaction`,showRepliesLabel:`Show replies`,hideRepliesLabel:`Hide replies`};function _(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>{let r=t[n];return r==null?``:String(r)})}function v(t){return e.useStrings(g,t)}function y(e){let n=t.c(),r=t.i();return(0,f.useMemo)(()=>({getMediaUrl:e?.getMediaUrl??(e=>n.resolveUrl?.(e??{})),getMediaName:e?.getMediaName??(e=>n.resolveName?.(e??{})),getStatusLabel:e?.getStatusLabel,formatRelativeTime:e?.formatRelativeTime??r.formatRelativeTime}),[e,n,r.formatRelativeTime])}function b(e){return typeof e!=`number`||e<=0?null:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function x(e){return e.mimeType?.startsWith(`image/`)?h.Image:e.mimeType===`application/pdf`||e.mimeType?.startsWith(`text/`)?h.FileText:e.mimeType?h.File:h.Paperclip}var S=({attachment:t,editable:i=!1,onRemove:o,onRetry:s,accessors:c,strings:l,compact:u=!1,className:d})=>{let f=e.useStrings(g,l),p=c?.getMediaUrl?.(t)??t.url,_=c?.getMediaName?.(t)??t.name??f.attachmentFallback,v=x(t),y=t.status===`uploading`,S=t.status===`failed`,C=b(t.size),w=y?f.attachmentUploadingLabel+(typeof t.progress==`number`?` ${Math.round(t.progress)}%`:``):S?t.error??f.attachmentFailedLabel:C,T=n.cn(`relative inline-flex min-w-0 max-w-[20rem] items-center gap-1.5 rounded-md`,`ring-1 ring-inset transition-colors`,u?`px-2 py-1 text-xs`:`px-2.5 py-1 text-xs`,S?`bg-destructive/[0.04] ring-destructive/30 hover:bg-destructive/[0.08]`:`bg-foreground/[0.03] ring-border/60 hover:bg-foreground/[0.06]`,d),E=y?(0,m.jsx)(h.Loader2,{className:n.cn(`shrink-0 animate-spin text-muted-foreground`,`size-3.5`),"aria-hidden":!0}):(0,m.jsx)(v,{className:n.cn(`shrink-0`,`size-3.5`,S?`text-destructive`:`text-muted-foreground`),"aria-hidden":!0}),D=(0,m.jsxs)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,children:[(0,m.jsx)(a.s,{tag:`span`,size:`xs`,weight:`medium`,className:n.cn(`truncate`,S&&`text-destructive`),children:_}),w?(0,m.jsx)(a.s,{tag:`span`,size:`xxs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:w}):null]});return(0,m.jsxs)(`div`,{className:T,children:[E,p&&!y&&!S?(0,m.jsx)(`a`,{href:p,target:`_blank`,rel:`noreferrer noopener`,className:`inline-flex min-w-0 flex-1 items-baseline gap-1.5 hover:underline`,"aria-label":f.attachmentDownloadLabel,children:D}):D,y&&typeof t.progress==`number`&&(0,m.jsx)(`div`,{className:`bg-primary/15 absolute bottom-0 left-2 right-2 h-px overflow-hidden rounded-full`,children:(0,m.jsx)(`div`,{className:`bg-primary h-full transition-[width]`,style:{width:`${Math.min(100,Math.max(0,t.progress))}%`}})}),S&&s&&(0,m.jsx)(r.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`small`,onClick:()=>s(t.id),className:`h-auto shrink-0 rounded px-1.5 py-px text-xxs font-medium ring-1 ring-inset ring-destructive/30 hover:ring-destructive/60`,children:f.attachmentRetryLabel}),i&&o&&(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,onClick:()=>o(t.id),className:`-mr-0.5 size-4 shrink-0 rounded p-0 text-muted-foreground hover:bg-foreground/10 hover:text-foreground`,"aria-label":f.attachmentRemoveLabel,title:f.attachmentRemoveLabel,children:(0,m.jsx)(h.X,{className:`size-3`})})]})};function C(e={}){let{onUpload:t,maxSize:n,maxFiles:r,disabled:i,initialAttachments:a,onChange:o,onError:s}=e,[c,l]=(0,f.useState)(()=>a?[...a]:[]),u=(0,f.useRef)(new Map),d=(0,f.useRef)(new Map),p=(0,f.useRef)(o);p.current=o;let m=(0,f.useCallback)((e,t)=>{l(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),h=(0,f.useCallback)(e=>{l([...e])},[]),g=(0,f.useCallback)((e,n)=>{if(!t)return;let r=new AbortController;u.current.set(e,{controller:r}),m(e,{status:`uploading`,progress:0,error:void 0}),t({file:n,onProgress:t=>{m(e,{progress:t})},signal:r.signal}).then(t=>{u.current.delete(e),m(e,{...t,id:e,status:`uploaded`,progress:100,error:void 0})}).catch(t=>{if(u.current.delete(e),r.signal.aborted)return;let n=t instanceof Error?t.message:`Upload failed`;m(e,{status:`failed`,error:n}),s?.(n)})},[s,t,m]),_=(0,f.useCallback)(e=>{if(i||!t)return;let a=Array.from(e);a.length!==0&&l(e=>{let t=[...e];for(let e of a){if(typeof r==`number`&&t.length>=r){s?.(`Too many attachments.`);break}if(typeof n==`number`&&e.size>n){s?.(`File is too large.`);continue}let i=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`att-${Date.now()}-${Math.random().toString(36).slice(2)}`;d.current.set(i,e),t.push({id:i,name:e.name,size:e.size,mimeType:e.type,status:`uploading`,progress:0}),queueMicrotask(()=>g(i,e))}return t})},[g,i,r,n,s,t]),v=(0,f.useCallback)(e=>{let t=u.current.get(e);t&&(t.controller.abort(),u.current.delete(e)),d.current.delete(e),l(t=>t.filter(t=>t.id!==e))},[]),y=(0,f.useCallback)(e=>{let t=d.current.get(e);t&&g(e,t)},[g]),b=(0,f.useCallback)(()=>{for(let e of u.current.values())e.controller.abort();u.current.clear(),d.current.clear(),l([])},[]);return(0,f.useEffect)(()=>{p.current?.(c)},[c]),(0,f.useEffect)(()=>{let e=u.current;return()=>{for(let t of e.values())t.controller.abort()}},[]),{attachments:c,uploadedAttachments:(0,f.useMemo)(()=>c.filter(e=>e.status===`uploaded`||!e.status),[c]),isUploading:(0,f.useMemo)(()=>c.some(e=>e.status===`uploading`),[c]),addFiles:_,removeAttachment:v,retryAttachment:y,setAttachments:h,reset:b}}function w(e){return!e||typeof e!=`string`?!1:e.replace(/<[^>]*>/g,``).trim().length>0}var T=(0,f.forwardRef)(function({context:e,canComment:t=!0,isSubmitting:n=!1,errors:i,resetKey:o=0,onSubmit:s,onCancel:l,editingComment:p,strings:g,resources:_,onResourceSearch:y,attachments:b,initialValues:x,autoFocus:T=!1,inlineSubmit:D=!0,placeholder:O},k){let A=v(g),j=_,M=y,N=b,P=(0,f.useRef)(null),[F,I]=(0,f.useState)(()=>x?.content??p?.content??``),[L,R]=(0,f.useState)(null),z=d.u({resources:j,onResourceSearch:M,editorRef:P,initialMentions:x?.references??p?.references}),B=C({...N,initialAttachments:x?.attachments??void 0});(0,f.useImperativeHandle)(k,()=>({focus:()=>P.current?.focus(),clear:()=>{P.current?.clear(),z.reset(),B.reset(),R(null)},setBody:e=>{P.current?.setHTML(e)}}),[B,z]),(0,f.useEffect)(()=>{P.current?.setHTML(x?.content??``),z.setMentions(x?.references??[]),B.setAttachments(x?.attachments??[]),R(null)},[e.id,e.type,o]),(0,f.useEffect)(()=>{if(!p)return;P.current?.setHTML(p.content??``),z.setMentions(p.references??[]);let e=(p.attachments??p.media??[]).filter(e=>!!e);B.setAttachments(e)},[p?.id]),(0,f.useEffect)(()=>{i?.content&&R(i.content)},[i]);let V=t=>{t?.preventDefault();let n=P.current?.getHTML()??F;if(!w(n)){R(A.invalidContent);return}R(null),s({content:n,commentableId:e.id,commentableType:e.type,contentType:`html`,references:z.mentions,attachments:B.uploadedAttachments,editingId:p?.id})},H=(0,f.useRef)(null),U=()=>H.current?.click(),W=e=>{e&&B.addFiles(e)},G=B.attachments.length>0,K=!!p,q=n?A.composerSubmitting:K?A.composerSave:A.composerSubmit,J=K?(0,m.jsx)(E,{label:A.composerEditingEyebrow,closeLabel:A.composerCancel,onClose:l}):null,Y=(0,f.useMemo)(()=>{let e=[];return j&&Object.keys(j).length>0&&e.push({id:`reference`,icon:h.AtSign,label:A.composerReferenceLabel,onClick:()=>z.setPickerOpen(!0)}),N?.onUpload&&!N.disabled&&e.push({id:`attachment`,icon:h.Paperclip,label:A.composerAttachmentLabel,onClick:U}),e},[j,N?.onUpload,N?.disabled,A.composerReferenceLabel,A.composerAttachmentLabel]);if(!t)return null;let X=(0,m.jsx)(r.t,{type:`button`,onClick:()=>V(),disabled:n||B.isUploading,icon:n?h.Loader2:h.Send,children:q}),Z=K||l?(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:l,disabled:n,children:A.composerCancel}):null,Q=G?(0,m.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:B.attachments.map(e=>(0,m.jsx)(S,{attachment:e,editable:!0,onRemove:B.removeAttachment,onRetry:B.retryAttachment,strings:g},e.id))}):null,$=G?Q:null,ee=D===!1?null:X,te=D===!1||K;return(0,m.jsxs)(`form`,{onSubmit:V,className:`space-y-2`,children:[J,(0,m.jsx)(`input`,{ref:H,type:`file`,multiple:!0,hidden:!0,accept:N?.accept,onChange:e=>{W(e.target.files),e.target.value=``}}),!z.triggerActive&&(0,m.jsxs)(c.n,{open:z.pickerOpen,onOpenChange:z.setPickerOpen,children:[(0,m.jsx)(c.s,{render:(0,m.jsx)(`button`,{type:`button`,className:`sr-only`,tabIndex:-1}),children:A.composerReferenceLabel}),(0,m.jsx)(d.r,{open:z.pickerOpen,activeKind:z.activeKind,setActiveKind:z.setActiveKind,kinds:z.kinds,resources:j,query:z.query,setQuery:z.setQuery,suggestions:z.suggestions,isLoading:z.isLoading,onSelect:z.pickSuggestion,strings:{title:A.composerReferenceMenuTitle,searchPlaceholder:A.composerReferenceSearchPlaceholder,empty:A.composerReferenceEmpty,loading:A.composerReferenceLoading}})]}),(0,m.jsxs)(`div`,{className:`relative`,children:[(0,m.jsx)(u.t,{ref:P,value:F,onChange:e=>{I(e);let t=d.t(e),n=z.mentions;if(n.map(e=>e.id).join(`|`)!==t.map(e=>e.id).join(`|`)){let e=new Map(n.map(e=>[e.id,e])),r=t.map(t=>e.get(t.id)??t);z.setMentions(r)}},placeholder:O??A.composerPlaceholder,strings:{editorLabel:O??A.composerPlaceholder},minHeight:`3rem`,autoFocus:T||K,extraToolbarItems:Y,toolbarTrailing:ee,footerSlot:$,onCaretChange:z.handleCaretChange}),(0,m.jsx)(d.n,{open:z.triggerActive&&z.pickerOpen,activeKind:z.activeKind,setActiveKind:z.setActiveKind,onManualKindChange:()=>z.setManualKindOverride(!0),kinds:z.kinds,resources:j,query:z.query,suggestions:z.suggestions,suggestionsByKind:z.suggestionsByKind,isLoading:z.isLoading,onSelect:z.pickSuggestion,strings:{title:A.composerReferenceMenuTitle,empty:A.composerReferenceEmpty,loading:A.composerReferenceLoading}})]}),L&&(0,m.jsx)(a.s,{size:`xs`,type:`error`,children:L}),te&&(0,m.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[Z,X]})]})});function E({label:e,closeLabel:t,onClose:n}){return(0,m.jsxs)(`div`,{className:`bg-muted/40 ring-border/60 flex items-center justify-between rounded px-2.5 py-1.5 ring-1 ring-inset`,children:[(0,m.jsx)(a.s,{size:`xxs`,type:`secondary`,weight:`medium`,className:`uppercase tracking-wide`,children:e}),n?(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,onClick:n,className:`size-4 rounded p-0 text-muted-foreground hover:text-foreground`,"aria-label":t,children:(0,m.jsx)(h.X,{className:`size-3`})}):null]})}function D(e,t){return _(e,{name:t??``})}var O=({strings:e,icon:t,className:r})=>{let i=v(e);return(0,m.jsxs)(`div`,{className:n.cn(`flex flex-col items-center justify-center py-8 text-center`,r),children:[(0,m.jsx)(`div`,{className:`bg-muted/50 mb-3 flex h-12 w-12 items-center justify-center rounded-full`,children:t??(0,m.jsx)(h.MessageCircle,{className:`text-muted-foreground/60 h-5 w-5`})}),(0,m.jsx)(a.s,{weight:`medium`,children:i.empty}),i.emptyHint?(0,m.jsx)(a.s,{size:`xs`,type:`secondary`,className:`mt-1 max-w-[28ch]`,children:i.emptyHint}):null]})};function k(e){return(0,m.jsx)(A,{comment:e})}function A(e){let{comment:t,resources:n,renderReference:r,sanitizer:i}=e,o=t.contentType??t.content_type??`text`;return o===`rich`?j(t.content):o===`html`?(0,m.jsx)(d.o,{html:t.content??``,mentions:t.references,resources:n,renderMention:r,sanitizer:i}):(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:P(t.content??``)})}function j(e){if(!e)return null;try{let t=JSON.parse(e);return!t||!Array.isArray(t.blocks)||t.blocks.length===0?null:(0,m.jsx)(`div`,{className:`prose prose-sm prose-p:my-0.5 prose-headings:my-1 prose-a:text-primary prose-a:no-underline hover:prose-a:underline max-w-none space-y-1`,children:t.blocks.map((e,t)=>(0,m.jsx)(f.Fragment,{children:M(e)},e.id??`${e.type}-${t}`))})}catch{return(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:P(e)})}}function M(e){let t=e.data??{};switch(e.type){case`paragraph`:{let e=String(t.text??``).trim();return e?(0,m.jsx)(a.s,{asHTML:!0,content:e}):null}case`header`:{let e=N(String(t.text??``)),n=Number(t.level??3);return e?(0,f.createElement)(a.o,{tag:`h${Math.min(Math.max(n,1),6)}`},e):null}case`list`:{let e=(Array.isArray(t.items)?t.items:[]).map(e=>N(String(e??``))).filter(e=>e.length>0);return e.length===0?null:t.style===`ordered`?(0,m.jsx)(`ol`,{className:`ml-6 list-decimal space-y-1 text-sm`,children:e.map((e,t)=>(0,m.jsx)(`li`,{children:e},`${e}-${t}`))}):(0,m.jsx)(`ul`,{className:`ml-6 list-disc space-y-1 text-sm`,children:e.map(e=>(0,m.jsx)(`li`,{children:e},e))})}case`quote`:{let e=String(t.text??``).trim();if(!e)return null;let n=N(String(t.caption??``));return(0,m.jsxs)(`blockquote`,{className:`border-muted text-muted-foreground border-l-2 pl-3 text-sm italic`,children:[(0,m.jsx)(a.s,{asHTML:!0,content:e}),n.length>0&&(0,m.jsxs)(`cite`,{className:`text-muted-foreground/80 mt-1 block text-xs not-italic`,children:[`— `,n]})]})}case`delimiter`:return(0,m.jsx)(`div`,{className:`border-muted my-4 border-b border-dashed`,"aria-hidden":`true`});default:{let e=N(String(t.text??``));return e?(0,m.jsx)(a.s,{className:`whitespace-pre-line`,children:e}):null}}}function N(e){return e.replace(/<[^>]*>/g,``).trim()}function P(e){if(typeof e!=`string`)return``;let t=e.trim();if(t===``)return``;if(t.startsWith(`{`)||t.startsWith(`[`))return t;try{let e=JSON.parse(t);if(typeof e==`string`)return e}catch{}return t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1):t}var F=`?`,I=e=>e?.url,L=e=>e?.name,R=e=>e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g,` `),z=e=>{try{return(0,p.formatDistanceToNow)(new Date(e),{addSuffix:!0})}catch{return`—`}},B=(0,f.memo)(function({comment:e,canModerate:t,onDelete:s,onPinToggle:c,onReact:u,onReply:d,strings:p,getMediaUrl:g,getMediaName:_,getStatusLabel:b,formatRelativeTime:x,resources:C,renderAttachment:w,renderReference:T}){let E=v(p),D=y({getMediaUrl:g,getMediaName:_,getStatusLabel:b,formatRelativeTime:x}),O=D.getMediaUrl??I,k=D.getMediaName??L,j=D.getStatusLabel??R,M=D.formatRelativeTime??z,N=e.user?.name??E.fallbackAuthor,P=e.user?.avatar??void 0,B=(0,f.useMemo)(()=>e.createdAt?M(e.createdAt):`—`,[e.createdAt,M]),V=(0,f.useMemo)(()=>{if(!N)return F;let e=N.trim();return e===``?F:e.charAt(0).toUpperCase()},[N]),H=(0,f.useMemo)(()=>Array.isArray(e.tagsArray)?e.tagsArray.filter(e=>typeof e==`string`):e.tagsArray&&typeof e.tagsArray==`object`?Object.values(e.tagsArray).filter(e=>typeof e==`string`):[],[e.tagsArray]),U=(0,f.useMemo)(()=>(e.attachments??e.media??[]).filter(e=>!!e&&typeof e==`object`),[e.attachments,e.media]),W=e.reactions??[],G=e.isPinned===!0,K=e.isEdited===!0,q=e.status&&e.status!==`active`,J=q&&e.status?j(e.status):null,Y=e.canDelete===!0||t===!0,X=e.canEdit===!0||t===!0,Z=U.length>0;return(0,m.jsx)(`article`,{className:n.cn(`comment-item--component group relative overflow-hidden rounded-lg border transition-colors`,`border-border/60 bg-card hover:bg-muted/30 px-3 py-2.5`),"data-comment-id":e.id,children:(0,m.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,m.jsxs)(l.t,{className:`mt-0.5 size-avatar shrink-0`,children:[!!P&&(0,m.jsx)(l.o,{src:P,alt:N}),(0,m.jsx)(l.r,{className:`bg-muted text-muted-foreground text-xs font-medium`,children:V})]}),(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,m.jsx)(a.s,{tag:`span`,weight:`semibold`,className:`truncate`,children:N}),!!G&&(0,m.jsx)(i.r,{delayDuration:0,children:(0,m.jsxs)(i.t,{children:[(0,m.jsx)(i.i,{render:(0,m.jsx)(`span`,{className:`inline-flex shrink-0 self-center`}),children:(0,m.jsx)(h.Pin,{className:`text-warning size-3`,"aria-hidden":!0})}),(0,m.jsx)(i.n,{side:`top`,className:`text-xs`,children:E.pinned})]})}),(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0 tabular-nums`,children:B}),!!K&&(0,m.jsx)(a.s,{tag:`span`,size:`xs`,type:`secondary`,className:`shrink-0`,children:E.edited}),!!q&&!!J&&(0,m.jsx)(o.t,{variant:`secondary`,className:`self-center uppercase tracking-wide`,children:J})]}),(0,m.jsx)(`div`,{className:`mt-1 text-sm leading-relaxed`,children:(0,m.jsx)(A,{comment:e,resources:C,renderReference:T})}),H.length>0&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:H.map(e=>(0,m.jsx)(o.t,{variant:`secondary`,className:`uppercase tracking-wide`,children:e},e))}),Z&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:U.map(e=>w?(0,m.jsx)(`div`,{children:w(e)},e.id??e.name):(0,m.jsx)(S,{attachment:e,accessors:{getMediaUrl:O,getMediaName:k},strings:p},e.id??e.name))}),W.length>0&&(0,m.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1`,children:W.map(t=>(0,m.jsx)(r.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,onClick:()=>u&&e.id?u(e.id,t.emoji):void 0,title:t.users?.join(`, `),className:`h-auto rounded-full p-0`,children:(0,m.jsxs)(o.t,{variant:t.mine?`primary`:`secondary`,className:`cursor-pointer transition-colors hover:opacity-90`,children:[(0,m.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:t.emoji}),(0,m.jsx)(`span`,{className:`tabular-nums`,children:t.count})]})},t.emoji))})]}),(0,m.jsxs)(`div`,{className:n.cn(`absolute right-2 top-2 opacity-0 transition-opacity`,`group-hover:opacity-100 focus-within:opacity-100`,`inline-flex items-center gap-0.5 rounded-md bg-card/95 shadow-sm ring-1 ring-border/70`),children:[!!d&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>e.id&&d(e.id),title:E.replyLabel,"aria-label":E.replyLabel,children:(0,m.jsx)(h.CornerDownRight,{className:`size-3.5`})}),!!u&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>e.id&&u(e.id,`👍`),title:E.addReactionLabel,"aria-label":E.addReactionLabel,children:(0,m.jsx)(h.Smile,{className:`size-3.5`})}),!!c&&t&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,onClick:()=>c(e),title:G?E.unpinLabel:E.pinLabel,"aria-label":G?E.unpinLabel:E.pinLabel,children:(0,m.jsx)(h.Pin,{className:n.cn(`size-3.5`,G&&`text-warning`)})}),!!X&&!!e.id&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,title:E.editLabel,"aria-label":E.editLabel,children:(0,m.jsx)(h.Pencil,{className:`size-3.5`})}),!!Y&&!!s&&!!e.id&&(0,m.jsx)(r.t,{type:`button`,size:`icon-small`,variant:`secondary`,buttonStyle:`ghost`,className:`hover:bg-destructive/10 hover:text-destructive`,onClick:()=>s(e.id),title:E.deleteLabel,"aria-label":E.deleteLabel,children:(0,m.jsx)(h.Trash2,{className:`size-3.5`})})]})]})})}),V=function({comments:e,canModerate:t,onDelete:n,onPinToggle:r,onReact:i,onReply:a,strings:o,getMediaUrl:s,getMediaName:c,getStatusLabel:l,formatRelativeTime:u,resources:d,renderItem:f,renderAttachment:p,renderReference:h,emptySlot:g}){return e.length?(0,m.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,g)=>{let _=(0,m.jsx)(B,{comment:e,canModerate:t,onDelete:n,onPinToggle:r,onReact:i,onReply:a,strings:o,getMediaUrl:s,getMediaName:c,getStatusLabel:l,formatRelativeTime:u,resources:d,renderAttachment:p,renderReference:h});return f?(0,m.jsx)(`div`,{children:f({comment:e,canModerate:t??!1,onDelete:n,defaultItem:_})},e.id??`comment-${g}`):(0,m.jsx)(`div`,{children:_},e.id??`comment-${g}`)})}):(0,m.jsx)(m.Fragment,{children:g??(0,m.jsx)(O,{strings:o})})};function H(e){let r=t.r(),i=e.composerPosition??r.composerPosition??`top`,a=e.canComment??!1,o=e.canModerate??!1,c=e.onSubmit,l=e.onDelete,u=e.onPinToggle,d=e.onReact,p=e.onReply,h=e.resources,g=e.attachments,_=v(e.strings),y=e.title===void 0?_.title:e.title,[b,x]=(0,f.useState)({}),[S,C]=(0,f.useState)(!1),[w,E]=(0,f.useState)(0),D={setErrors:e=>x(e),reset:()=>{E(e=>e+1),x({}),C(!1)},setSubmitting:C},k=(0,f.useCallback)(e=>{c&&(C(!0),x({}),c(e,D))},[c]),A=e.composerSlot??(a?(0,m.jsx)(T,{context:e.context,canComment:a,isSubmitting:S,errors:b,resetKey:w,onSubmit:k,strings:e.strings,resources:h,attachments:g}):null),j=(0,m.jsx)(V,{comments:e.comments,canModerate:o,onDelete:l,onPinToggle:u,onReact:d,onReply:p,strings:e.strings,getMediaUrl:e.getMediaUrl,getMediaName:e.getMediaName,getStatusLabel:e.getStatusLabel,formatRelativeTime:e.formatRelativeTime,resources:h,renderItem:e.renderItem,renderAttachment:e.renderAttachment,renderReference:e.renderReference,emptySlot:e.emptySlot??(0,m.jsx)(O,{strings:e.strings})}),M=A?(0,m.jsx)(`div`,{children:A}):null,N=(0,m.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[e.headerSlot,i===`top`&&M,j,i===`bottom`&&M,e.footerSlot]});return e.bare?N:(0,m.jsx)(s.t,{title:y===!1?void 0:y,description:_.subtitle||void 0,padding:`default`,className:n.cn(`comments--component`,e.className),children:N})}var U=H;function W(e={}){let{onSubmit:t,onUpdate:n,onDelete:r}=e,[i,a]=(0,f.useState)({kind:`idle`}),[o,s]=(0,f.useState)(!1),[c,l]=(0,f.useState)({}),[u,d]=(0,f.useState)(0),p={setErrors:e=>l(e),reset:()=>{d(e=>e+1),a({kind:`idle`}),l({})},setSubmitting:s};return{composerMode:i,isSubmitting:o,formErrors:c,resetKey:u,startReply:(0,f.useCallback)(e=>{a({kind:`replying`,commentId:e.id??``,authorName:e.user?.name})},[]),startEdit:(0,f.useCallback)(e=>{a({kind:`editing`,comment:e})},[]),cancelComposerMode:(0,f.useCallback)(()=>{a({kind:`idle`}),l({})},[]),submit:(0,f.useCallback)(e=>{if(s(!0),l({}),i.kind===`editing`&&i.comment.id){if(!n){s(!1);return}n(i.comment.id,e,p);return}if(!t){s(!1);return}t(i.kind===`replying`?{...e,replyToId:i.commentId}:e,p)},[i,t,n]),deleteComment:(0,f.useCallback)(e=>{!r||!e||r(e)},[r]),resetComposer:(0,f.useCallback)(()=>{d(e=>e+1),a({kind:`idle`}),l({})},[]),helpers:p}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return D}});
|
|
2
|
+
//# sourceMappingURL=comments-C8iXy9XO.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments-C8iXy9XO.cjs","names":[],"sources":["../../src/components/features/comments/comments.strings.ts","../../src/components/features/comments/comments-provider.tsx","../../src/components/features/comments/partials/comment-attachment-chip.tsx","../../src/components/features/comments/hooks/use-attachment-upload.ts","../../src/components/features/comments/partials/comment-composer.tsx","../../src/components/features/comments/partials/comment-empty.tsx","../../src/components/features/comments/partials/comment-content.tsx","../../src/components/features/comments/partials/comment-item.tsx","../../src/components/features/comments/partials/comment-timeline.tsx","../../src/components/features/comments/comments.tsx","../../src/components/features/comments/hooks/use-comments.ts"],"sourcesContent":["/**\n * Strings for the Comments feature. Consumers override via the `strings`\n * prop on `<Comments>` / `<CommentsCard>` / sub-components — values are\n * deep-merged over these defaults.\n */\nexport interface CommentsStrings {\n /** Card title — usually \"Comments\". Set to \"\" to hide. */\n title: string;\n /** Subtitle under the card title — optional. */\n subtitle: string;\n /** Empty-state copy for the timeline. */\n empty: string;\n /** Empty-state secondary copy. */\n emptyHint: string;\n\n // Composer ---------------------------------------------------------\n /** Composer rich-text placeholder. */\n composerPlaceholder: string;\n /** Submit label for new comments. */\n composerSubmit: string;\n /** Submit label while pending. */\n composerSubmitting: string;\n /** Submit label when editing. */\n composerSave: string;\n /** Required-content error. */\n invalidContent: string;\n /** Cancel/dismiss draft. */\n composerCancel: string;\n /** \"Edit comment\" eyebrow shown above the composer in edit mode. */\n composerEditingEyebrow: string;\n /** \"Reply to {{name}}\" eyebrow shown above the composer in reply mode. */\n composerReplyingEyebrow: string;\n\n // Toolbar buttons --------------------------------------------------\n composerAttachmentLabel: string;\n composerReferenceLabel: string;\n composerReferenceMenuTitle: string;\n composerReferenceSearchPlaceholder: string;\n composerReferenceEmpty: string;\n composerReferenceLoading: string;\n\n // Item -------------------------------------------------------------\n fallbackAuthor: string;\n pinned: string;\n edited: string;\n /** Trash button aria-label / tooltip. */\n deleteLabel: string;\n /** Edit button label. */\n editLabel: string;\n /** Reply button label. */\n replyLabel: string;\n /** Pin/unpin button label. */\n pinLabel: string;\n unpinLabel: string;\n /** \"More actions\" trigger aria-label. */\n moreActionsLabel: string;\n /** Confirm-delete button label inside the action menu. */\n confirmDeleteLabel: string;\n\n // Attachments ------------------------------------------------------\n attachmentFallback: string;\n attachmentRemoveLabel: string;\n attachmentUploadingLabel: string;\n attachmentFailedLabel: string;\n attachmentTooLargeError: string;\n attachmentTooManyError: string;\n attachmentRetryLabel: string;\n attachmentDownloadLabel: string;\n\n // Reactions --------------------------------------------------------\n addReactionLabel: string;\n\n // Misc -------------------------------------------------------------\n showRepliesLabel: string;\n hideRepliesLabel: string;\n}\n\nexport const defaultCommentsStrings: CommentsStrings = {\n title: 'Comments',\n subtitle: '',\n empty: 'No comments yet.',\n emptyHint: 'Start the conversation — your team will see it instantly.',\n\n composerPlaceholder: 'Write a comment…',\n composerSubmit: 'Post comment',\n composerSubmitting: 'Posting…',\n composerSave: 'Save changes',\n invalidContent: 'Comment cannot be empty.',\n composerCancel: 'Cancel',\n composerEditingEyebrow: 'Editing comment',\n composerReplyingEyebrow: 'Replying to {{name}}',\n\n composerAttachmentLabel: 'Attach file',\n composerReferenceLabel: 'Mention or link',\n composerReferenceMenuTitle: 'Insert reference',\n composerReferenceSearchPlaceholder: 'Search…',\n composerReferenceEmpty: 'No matches.',\n composerReferenceLoading: 'Searching…',\n\n fallbackAuthor: 'Anonymous',\n pinned: 'Pinned',\n edited: 'edited',\n deleteLabel: 'Delete',\n editLabel: 'Edit',\n replyLabel: 'Reply',\n pinLabel: 'Pin',\n unpinLabel: 'Unpin',\n moreActionsLabel: 'More actions',\n confirmDeleteLabel: 'Delete comment',\n\n attachmentFallback: 'Attachment',\n attachmentRemoveLabel: 'Remove attachment',\n attachmentUploadingLabel: 'Uploading…',\n attachmentFailedLabel: 'Upload failed',\n attachmentTooLargeError: 'File is too large.',\n attachmentTooManyError: 'Too many attachments.',\n attachmentRetryLabel: 'Retry',\n attachmentDownloadLabel: 'Download',\n\n addReactionLabel: 'Add reaction',\n\n showRepliesLabel: 'Show replies',\n hideRepliesLabel: 'Hide replies',\n};\n\n/**\n * Tiny `{{token}}` interpolator used by templated strings like\n * `composerReplyingEyebrow`. No HTML escaping — treat values as plain text.\n */\nexport function interpolateString(\n template: string,\n values: Record<string, string | number | undefined>,\n): string {\n return template.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key: string) => {\n const value = values[key];\n return value === undefined || value === null ? '' : String(value);\n });\n}\n","/**\n * Comments — internal helper hooks for resolving strings and accessors.\n *\n * Rationale: the previous `<CommentsProvider>` is gone. Library-wide\n * defaults now live in `<UIProvider>` (`useMediaConfig` / `useDatesConfig`).\n * Per-mount overrides flow as direct props on `<Comments>` and its\n * partials. These helpers just centralize the merge order.\n *\n * Resolution order everywhere:\n *\n * props.strings ← deep-merged over `defaultCommentsStrings`\n * props.accessor.X ← falls back to UIProvider's media/dates resolvers,\n * then to a built-in default at the call site.\n */\nimport { useMemo } from 'react';\n\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { useDatesConfig, useMediaConfig } from '@/lib/ui-provider';\n\nimport {\n defaultCommentsStrings,\n type CommentsStrings,\n} from './comments.strings';\nimport type { CommentAttachment, CommentsAccessors } from './comments.types';\n\n/**\n * Resolve final strings by merging defaults → component prop. Stable\n * identity when the prop reference is unchanged.\n */\nexport function useResolvedStrings(\n propStrings?: StringsProp<CommentsStrings>,\n): CommentsStrings {\n return useStrings(defaultCommentsStrings, propStrings);\n}\n\n/**\n * Resolve accessors. Order:\n * 1. explicit prop accessor\n * 2. matching UIProvider slot (`useMediaConfig().resolveUrl`, etc.)\n * 3. caller's own fallback when neither is present (handled at call site)\n */\nexport function useResolvedAccessors(\n propAccessors?: CommentsAccessors,\n): CommentsAccessors {\n const media = useMediaConfig();\n const dates = useDatesConfig();\n return useMemo<CommentsAccessors>(\n () => ({\n getMediaUrl:\n propAccessors?.getMediaUrl ??\n ((m: CommentAttachment | null | undefined) =>\n media.resolveUrl?.((m ?? {}) as { url?: string; key?: string })),\n getMediaName:\n propAccessors?.getMediaName ??\n ((m: CommentAttachment | null | undefined) =>\n media.resolveName?.((m ?? {}) as { name?: string })),\n getStatusLabel: propAccessors?.getStatusLabel,\n formatRelativeTime:\n propAccessors?.formatRelativeTime ?? dates.formatRelativeTime,\n }),\n [propAccessors, media, dates.formatRelativeTime],\n );\n}\n","/**\n * CommentAttachmentChip — small attachment pill used in the composer draft\n * and the timeline. Single inline row: icon + name · size, with progress /\n * error states overlaid on the same line. Editable mode reveals a remove\n * button; failed uploads expose a retry pill.\n */\nimport { File, FileText, Image as ImageIcon, Loader2, Paperclip, X } from 'lucide-react';\nimport type { FC } from '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 type {\n CommentAttachment,\n CommentsAccessors,\n} from '../comments.types';\nimport {\n defaultCommentsStrings,\n type CommentsStrings,\n} from '../comments.strings';\n\nexport interface CommentAttachmentChipProps {\n attachment: CommentAttachment;\n /** Editable mode shows a remove button. */\n editable?: boolean;\n onRemove?: (id: string) => void;\n onRetry?: (id: string) => void;\n accessors?: CommentsAccessors;\n strings?: StringsProp<CommentsStrings>;\n /** Compact chips have smaller text and tighter padding. */\n compact?: boolean;\n className?: string;\n}\n\nfunction formatBytes(bytes?: number): string | null {\n if (typeof bytes !== 'number' || bytes <= 0) return null;\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n\nfunction pickIcon(att: CommentAttachment) {\n if (att.mimeType?.startsWith('image/')) return ImageIcon;\n if (att.mimeType === 'application/pdf') return FileText;\n if (att.mimeType?.startsWith('text/')) return FileText;\n if (att.mimeType) return File;\n return Paperclip;\n}\n\nexport const CommentAttachmentChip: FC<CommentAttachmentChipProps> = ({\n attachment,\n editable = false,\n onRemove,\n onRetry,\n accessors,\n strings: stringsProp,\n compact = false,\n className,\n}) => {\n const strings = useStrings(defaultCommentsStrings, stringsProp);\n\n const url = accessors?.getMediaUrl?.(attachment) ?? attachment.url;\n const name =\n accessors?.getMediaName?.(attachment) ??\n attachment.name ??\n strings.attachmentFallback;\n const Icon = pickIcon(attachment);\n\n const isUploading = attachment.status === 'uploading';\n const isFailed = attachment.status === 'failed';\n const sizeLabel = formatBytes(attachment.size);\n\n const meta = isUploading\n ? strings.attachmentUploadingLabel +\n (typeof attachment.progress === 'number'\n ? ` ${Math.round(attachment.progress)}%`\n : '')\n : isFailed\n ? attachment.error ?? strings.attachmentFailedLabel\n : sizeLabel;\n\n const surface = cn(\n 'relative inline-flex min-w-0 max-w-[20rem] items-center gap-1.5 rounded-md',\n 'ring-1 ring-inset transition-colors',\n compact ? 'px-2 py-1 text-xs' : 'px-2.5 py-1 text-xs',\n isFailed\n ? 'bg-destructive/[0.04] ring-destructive/30 hover:bg-destructive/[0.08]'\n : 'bg-foreground/[0.03] ring-border/60 hover:bg-foreground/[0.06]',\n className,\n );\n\n const iconNode = isUploading ? (\n <Loader2\n className={cn('shrink-0 animate-spin text-muted-foreground', 'size-3.5')}\n aria-hidden\n />\n ) : (\n <Icon\n className={cn(\n 'shrink-0',\n 'size-3.5',\n isFailed ? 'text-destructive' : 'text-muted-foreground',\n )}\n aria-hidden\n />\n );\n\n const labelRow = (\n <span className=\"inline-flex min-w-0 items-baseline gap-1.5\">\n <Text\n tag=\"span\"\n size=\"xs\"\n weight=\"medium\"\n className={cn('truncate', isFailed && 'text-destructive')}\n >\n {name}\n </Text>\n {meta ? (\n <Text\n tag=\"span\"\n size=\"xxs\"\n type=\"secondary\"\n className=\"shrink-0 tabular-nums\"\n >\n {meta}\n </Text>\n ) : null}\n </span>\n );\n\n const isInteractive = !!url && !isUploading && !isFailed;\n\n return (\n <div className={surface}>\n {iconNode}\n {isInteractive ? (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n className=\"inline-flex min-w-0 flex-1 items-baseline gap-1.5 hover:underline\"\n aria-label={strings.attachmentDownloadLabel}\n >\n {labelRow}\n </a>\n ) : (\n labelRow\n )}\n\n {isUploading && typeof attachment.progress === 'number' && (\n <div className=\"bg-primary/15 absolute bottom-0 left-2 right-2 h-px overflow-hidden rounded-full\">\n <div\n className=\"bg-primary h-full transition-[width]\"\n style={{\n width: `${Math.min(100, Math.max(0, attachment.progress))}%`,\n }}\n />\n </div>\n )}\n\n {isFailed && onRetry && (\n <Button\n type=\"button\"\n variant=\"error\"\n buttonStyle=\"ghost\"\n size=\"small\"\n onClick={() => onRetry(attachment.id)}\n className=\"h-auto shrink-0 rounded px-1.5 py-px text-xxs font-medium ring-1 ring-inset ring-destructive/30 hover:ring-destructive/60\"\n >\n {strings.attachmentRetryLabel}\n </Button>\n )}\n\n {editable && onRemove && (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-small\"\n onClick={() => onRemove(attachment.id)}\n className=\"-mr-0.5 size-4 shrink-0 rounded p-0 text-muted-foreground hover:bg-foreground/10 hover:text-foreground\"\n aria-label={strings.attachmentRemoveLabel}\n title={strings.attachmentRemoveLabel}\n >\n <X className=\"size-3\" />\n </Button>\n )}\n </div>\n );\n};\n","/**\n * useAttachmentUpload — manages a list of in-flight + uploaded\n * `CommentAttachment`s for a comment composer.\n *\n * Pass the consumer-supplied `onUpload` callback directly via the\n * `attachments` prop on `<Comments>` (or `<CommentComposer>`). Aborts\n * in-flight uploads when an attachment is removed.\n */\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type {\n CommentAttachment,\n CommentsAttachmentsConfig,\n} from '../comments.types';\n\ninterface InFlightEntry {\n controller: AbortController;\n}\n\nexport interface UseAttachmentUploadOptions extends CommentsAttachmentsConfig {\n /** Initial attachments — useful when editing an existing comment. */\n initialAttachments?: ReadonlyArray<CommentAttachment>;\n /** Fires when the list of uploaded attachments changes. */\n onChange?: (attachments: ReadonlyArray<CommentAttachment>) => void;\n /** Fires when a validation or upload error happens. */\n onError?: (error: string) => void;\n}\n\nexport interface UseAttachmentUploadReturn {\n /** All attachments — uploading + uploaded + failed. */\n attachments: ReadonlyArray<CommentAttachment>;\n /** Subset of attachments that finished uploading. Use this in the form payload. */\n uploadedAttachments: ReadonlyArray<CommentAttachment>;\n /** True while at least one upload is in flight. */\n isUploading: boolean;\n /** Add files. Validates against `maxSize` / `maxFiles` first. */\n addFiles: (files: ReadonlyArray<File> | FileList) => void;\n /** Remove an attachment by id (aborts in-flight uploads). */\n removeAttachment: (id: string) => void;\n /** Retry a failed upload. */\n retryAttachment: (id: string) => void;\n /** Replace the list (used when editing or after submit). */\n setAttachments: (attachments: ReadonlyArray<CommentAttachment>) => void;\n /** Clear the list and abort everything in flight. */\n reset: () => void;\n}\n\nexport function useAttachmentUpload(\n options: UseAttachmentUploadOptions = {},\n): UseAttachmentUploadReturn {\n const {\n onUpload,\n maxSize,\n maxFiles,\n // `accept` is consumed by the surrounding `<input type=\"file\"\n // accept>` element, not here — destructuring is intentional\n // even though we don't reference it inside the hook.\n disabled,\n initialAttachments,\n onChange,\n onError,\n } = options;\n\n const [attachments, setAttachmentsState] = useState<CommentAttachment[]>(() =>\n initialAttachments ? [...initialAttachments] : [],\n );\n const inFlightRef = useRef<Map<string, InFlightEntry>>(new Map());\n const fileCacheRef = useRef<Map<string, File>>(new Map());\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const updateAttachment = useCallback(\n (id: string, patch: Partial<CommentAttachment>) => {\n setAttachmentsState((prev) =>\n prev.map((a) => (a.id === id ? { ...a, ...patch } : a)),\n );\n },\n [],\n );\n\n const setAttachments = useCallback(\n (next: ReadonlyArray<CommentAttachment>) => {\n setAttachmentsState([...next]);\n },\n [],\n );\n\n const beginUpload = useCallback(\n (id: string, file: File) => {\n if (!onUpload) return;\n const controller = new AbortController();\n inFlightRef.current.set(id, { controller });\n\n updateAttachment(id, {\n status: 'uploading',\n progress: 0,\n error: undefined,\n });\n\n const onProgress = (progress: number) => {\n updateAttachment(id, { progress });\n };\n\n onUpload({ file, onProgress, signal: controller.signal })\n .then((uploaded) => {\n inFlightRef.current.delete(id);\n updateAttachment(id, {\n ...uploaded,\n id,\n status: 'uploaded',\n progress: 100,\n error: undefined,\n });\n })\n .catch((err: unknown) => {\n inFlightRef.current.delete(id);\n if (controller.signal.aborted) {\n return;\n }\n const message =\n err instanceof Error ? err.message : 'Upload failed';\n updateAttachment(id, {\n status: 'failed',\n error: message,\n });\n onError?.(message);\n });\n },\n [onError, onUpload, updateAttachment],\n );\n\n const addFiles = useCallback(\n (filesInput: ReadonlyArray<File> | FileList) => {\n if (disabled || !onUpload) return;\n const files = Array.from(filesInput);\n if (files.length === 0) return;\n\n setAttachmentsState((prev) => {\n const next = [...prev];\n for (const file of files) {\n if (\n typeof maxFiles === 'number' &&\n next.length >= maxFiles\n ) {\n onError?.('Too many attachments.');\n break;\n }\n if (\n typeof maxSize === 'number' &&\n file.size > maxSize\n ) {\n onError?.('File is too large.');\n continue;\n }\n\n const id =\n typeof crypto !== 'undefined' && 'randomUUID' in crypto\n ? crypto.randomUUID()\n : `att-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n\n fileCacheRef.current.set(id, file);\n\n next.push({\n id,\n name: file.name,\n size: file.size,\n mimeType: file.type,\n status: 'uploading',\n progress: 0,\n });\n\n queueMicrotask(() => beginUpload(id, file));\n }\n return next;\n });\n },\n [beginUpload, disabled, maxFiles, maxSize, onError, onUpload],\n );\n\n const removeAttachment = useCallback((id: string) => {\n const entry = inFlightRef.current.get(id);\n if (entry) {\n entry.controller.abort();\n inFlightRef.current.delete(id);\n }\n fileCacheRef.current.delete(id);\n setAttachmentsState((prev) => prev.filter((a) => a.id !== id));\n }, []);\n\n const retryAttachment = useCallback(\n (id: string) => {\n const file = fileCacheRef.current.get(id);\n if (!file) return;\n beginUpload(id, file);\n },\n [beginUpload],\n );\n\n const reset = useCallback(() => {\n for (const entry of inFlightRef.current.values()) {\n entry.controller.abort();\n }\n inFlightRef.current.clear();\n fileCacheRef.current.clear();\n setAttachmentsState([]);\n }, []);\n\n useEffect(() => {\n onChangeRef.current?.(attachments);\n }, [attachments]);\n\n useEffect(() => {\n const inFlight = inFlightRef.current;\n return () => {\n for (const entry of inFlight.values()) {\n entry.controller.abort();\n }\n };\n }, []);\n\n const uploadedAttachments = useMemo(\n () => attachments.filter((a) => a.status === 'uploaded' || !a.status),\n [attachments],\n );\n\n const isUploading = useMemo(\n () => attachments.some((a) => a.status === 'uploading'),\n [attachments],\n );\n\n return {\n attachments,\n uploadedAttachments,\n isUploading,\n addFiles,\n removeAttachment,\n retryAttachment,\n setAttachments,\n reset,\n };\n}\n","/**\n * CommentComposer — TipTap-backed rich text editor with inline reference\n * picker and attachment uploader. Default composer for `<Comments>`.\n *\n * Mention/reference handling is delegated to the shared\n * `features/mentions` module: `useMentions` drives picker state +\n * caret-trigger detection, `<MentionPicker>` renders the popover, and\n * `<MentionChip>` renders draft-list chips. The same primitives power\n * inline references in `features/event-log`.\n */\nimport { AtSign, Loader2, Paperclip, Send, X } from 'lucide-react';\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '@/components/base/buttons';\nimport { Popover, PopoverTrigger } from '@/components/base/popover';\nimport { Text } from '@/components/typography';\nimport {\n RichTextEditor,\n type RichTextEditorHandle,\n type RichTextEditorToolbarItem,\n} from '@/components/features/rich-text-editor/rich-text-editor';\nimport {\n MentionInlineSuggestions,\n MentionPicker,\n parseMentionsFromHtml,\n useMentions,\n} from '@/components/features/mentions';\nimport { useResolvedStrings } from '../comments-provider';\nimport { interpolateString } from '../comments.strings';\nimport type {\n CommentComposerProps,\n CommentFormValues,\n} from '../comments.types';\nimport { CommentAttachmentChip } from './comment-attachment-chip';\nimport { useAttachmentUpload } from '../hooks/use-attachment-upload';\n\nexport interface CommentComposerHandle {\n focus(): void;\n clear(): void;\n /** Imperatively set the draft body. */\n setBody(html: string): void;\n}\n\nfunction hasMeaningfulContent(html: string): boolean {\n if (!html || typeof html !== 'string') return false;\n const text = html.replace(/<[^>]*>/g, '').trim();\n return text.length > 0;\n}\n\nexport const CommentComposer = forwardRef<\n CommentComposerHandle,\n CommentComposerProps\n>(function CommentComposer(\n {\n context,\n canComment = true,\n isSubmitting = false,\n errors,\n resetKey = 0,\n onSubmit,\n onCancel,\n editingComment,\n strings: stringsProp,\n resources: resourcesProp,\n onResourceSearch: onResourceSearchProp,\n attachments: attachmentsProp,\n initialValues,\n autoFocus = false,\n inlineSubmit = true,\n placeholder,\n },\n ref,\n) {\n const strings = useResolvedStrings(stringsProp);\n\n const resources = resourcesProp;\n const onResourceSearch = onResourceSearchProp;\n const attachmentsConfig = attachmentsProp;\n\n const editorRef = useRef<RichTextEditorHandle>(null);\n const [body, setBody] = useState<string>(\n () => initialValues?.content ?? editingComment?.content ?? '',\n );\n const [contentError, setContentError] = useState<string | null>(null);\n\n /**\n * Mentions state — picker + caret-trigger detection. The hook reads\n * the editor handle via the ref we pass; on suggestion select it\n * inserts the chip and replaces the trigger range automatically.\n */\n const mentions = useMentions({\n resources,\n onResourceSearch,\n editorRef,\n initialMentions:\n initialValues?.references ?? editingComment?.references,\n });\n\n const attachmentUpload = useAttachmentUpload({\n ...attachmentsConfig,\n initialAttachments: initialValues?.attachments ?? undefined,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => editorRef.current?.focus(),\n clear: () => {\n editorRef.current?.clear();\n mentions.reset();\n attachmentUpload.reset();\n setContentError(null);\n },\n setBody: (html) => {\n editorRef.current?.setHTML(html);\n },\n }),\n [attachmentUpload, mentions],\n );\n\n // Reset on context change / resetKey bump\n useEffect(() => {\n editorRef.current?.setHTML(initialValues?.content ?? '');\n mentions.setMentions(initialValues?.references ?? []);\n attachmentUpload.setAttachments(initialValues?.attachments ?? []);\n setContentError(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context.id, context.type, resetKey]);\n\n // Sync editing comment payload\n useEffect(() => {\n if (!editingComment) return;\n editorRef.current?.setHTML(editingComment.content ?? '');\n mentions.setMentions(editingComment.references ?? []);\n const list = (editingComment.attachments ?? editingComment.media ?? []).filter(\n (a): a is NonNullable<typeof a> => !!a,\n );\n attachmentUpload.setAttachments(list);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editingComment?.id]);\n\n // Surface server-side errors\n useEffect(() => {\n if (errors?.content) {\n setContentError(errors.content);\n }\n }, [errors]);\n\n const handleSubmit = (event?: React.FormEvent) => {\n event?.preventDefault();\n const html = editorRef.current?.getHTML() ?? body;\n if (!hasMeaningfulContent(html)) {\n setContentError(strings.invalidContent);\n return;\n }\n setContentError(null);\n\n const values: CommentFormValues = {\n content: html,\n commentableId: context.id,\n commentableType: context.type,\n contentType: 'html',\n references: mentions.mentions,\n attachments: attachmentUpload.uploadedAttachments,\n editingId: editingComment?.id,\n };\n\n onSubmit(values);\n };\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n const handleAttachmentClick = () => fileInputRef.current?.click();\n const handleFiles = (files: FileList | null) => {\n if (!files) return;\n attachmentUpload.addFiles(files);\n };\n\n const hasAttachments = attachmentUpload.attachments.length > 0;\n const isEditing = !!editingComment;\n\n const submitLabel = isSubmitting\n ? strings.composerSubmitting\n : isEditing\n ? strings.composerSave\n : strings.composerSubmit;\n\n const eyebrow: ReactNode = isEditing ? (\n <ComposerEyebrow\n label={strings.composerEditingEyebrow}\n closeLabel={strings.composerCancel}\n onClose={onCancel}\n />\n ) : null;\n\n const extraToolbarItems = useMemo<ReadonlyArray<RichTextEditorToolbarItem>>(() => {\n const items: RichTextEditorToolbarItem[] = [];\n if (resources && Object.keys(resources).length > 0) {\n items.push({\n id: 'reference',\n icon: AtSign,\n label: strings.composerReferenceLabel,\n onClick: () => mentions.setPickerOpen(true),\n });\n }\n if (attachmentsConfig?.onUpload && !attachmentsConfig.disabled) {\n items.push({\n id: 'attachment',\n icon: Paperclip,\n label: strings.composerAttachmentLabel,\n onClick: handleAttachmentClick,\n });\n }\n return items;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n resources,\n attachmentsConfig?.onUpload,\n attachmentsConfig?.disabled,\n strings.composerReferenceLabel,\n strings.composerAttachmentLabel,\n ]);\n\n if (!canComment) return null;\n\n const submitButton = (\n <Button\n type=\"button\"\n onClick={() => handleSubmit()}\n disabled={isSubmitting || attachmentUpload.isUploading}\n icon={isSubmitting ? Loader2 : Send}\n >\n {submitLabel}\n </Button>\n );\n\n const cancelButton = (isEditing || onCancel) ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n onClick={onCancel}\n disabled={isSubmitting}\n >\n {strings.composerCancel}\n </Button>\n ) : null;\n\n // Mentions live as inline `<span class=\"rsc-mention\" contenteditable=\"false\">`\n // chips inside the editor body — they're visible, dismissible (single\n // backspace deletes the whole span), and the HTML→mentions sync keeps\n // `mentions.mentions` aligned automatically. Rendering them again as a\n // chip-list below the editor was redundant and confusing.\n\n const attachmentChips = hasAttachments ? (\n <div className=\"flex flex-wrap items-center gap-1.5\">\n {attachmentUpload.attachments.map((attachment) => (\n <CommentAttachmentChip\n key={attachment.id}\n attachment={attachment}\n editable\n onRemove={attachmentUpload.removeAttachment}\n onRetry={attachmentUpload.retryAttachment}\n strings={stringsProp}\n />\n ))}\n </div>\n ) : null;\n\n const footerSlot = hasAttachments ? attachmentChips : null;\n\n const trailingSubmit = inlineSubmit !== false ? submitButton : null;\n const showFooterRow = inlineSubmit === false || isEditing;\n\n return (\n <form onSubmit={handleSubmit} className=\"space-y-2\">\n {eyebrow}\n\n <input\n ref={fileInputRef}\n type=\"file\"\n multiple\n hidden\n accept={attachmentsConfig?.accept}\n onChange={(e) => {\n handleFiles(e.target.files);\n e.target.value = '';\n }}\n />\n\n {/* Manual button-click flow: regular popover anchored to the\n hidden trigger. The inline-trigger flow uses the panel\n rendered below — no focus stealing while the user types. */}\n {!mentions.triggerActive && (\n <Popover open={mentions.pickerOpen} onOpenChange={mentions.setPickerOpen}>\n <PopoverTrigger\n render={\n <button\n type=\"button\"\n className=\"sr-only\"\n tabIndex={-1}\n />\n }\n >\n {strings.composerReferenceLabel}\n </PopoverTrigger>\n <MentionPicker\n open={mentions.pickerOpen}\n activeKind={mentions.activeKind}\n setActiveKind={mentions.setActiveKind}\n kinds={mentions.kinds}\n resources={resources}\n query={mentions.query}\n setQuery={mentions.setQuery}\n suggestions={mentions.suggestions}\n isLoading={mentions.isLoading}\n onSelect={mentions.pickSuggestion}\n strings={{\n title: strings.composerReferenceMenuTitle,\n searchPlaceholder: strings.composerReferenceSearchPlaceholder,\n empty: strings.composerReferenceEmpty,\n loading: strings.composerReferenceLoading,\n }}\n />\n </Popover>\n )}\n\n <div className=\"relative\">\n <RichTextEditor\n ref={editorRef}\n value={body}\n onChange={(html) => {\n setBody(html);\n // Sync the draft's mentions list with what's\n // actually present in the HTML — when the user\n // backspaces a chip span out of the body, the\n // chip-list below shrinks too. We merge with\n // the previously-known list so consumer-supplied\n // `href` / `data` payloads survive parsing.\n const parsed = parseMentionsFromHtml<string>(html);\n const previous = mentions.mentions;\n const previousIds = previous.map((m) => m.id).join('|');\n const currentIds = parsed.map((m) => m.id).join('|');\n if (previousIds !== currentIds) {\n const byId = new Map(previous.map((m) => [m.id, m]));\n const merged = parsed.map(\n (p) => byId.get(p.id) ?? p,\n );\n mentions.setMentions(merged);\n }\n }}\n placeholder={placeholder ?? strings.composerPlaceholder}\n strings={{\n editorLabel: placeholder ?? strings.composerPlaceholder,\n }}\n minHeight=\"3rem\"\n autoFocus={autoFocus || isEditing}\n extraToolbarItems={extraToolbarItems}\n toolbarTrailing={trailingSubmit}\n footerSlot={footerSlot}\n onCaretChange={mentions.handleCaretChange}\n />\n\n <MentionInlineSuggestions\n open={mentions.triggerActive && mentions.pickerOpen}\n activeKind={mentions.activeKind}\n setActiveKind={mentions.setActiveKind}\n onManualKindChange={() => mentions.setManualKindOverride(true)}\n kinds={mentions.kinds}\n resources={resources}\n query={mentions.query}\n suggestions={mentions.suggestions}\n suggestionsByKind={mentions.suggestionsByKind}\n isLoading={mentions.isLoading}\n onSelect={mentions.pickSuggestion}\n strings={{\n title: strings.composerReferenceMenuTitle,\n empty: strings.composerReferenceEmpty,\n loading: strings.composerReferenceLoading,\n }}\n />\n </div>\n\n {contentError && (\n <Text size=\"xs\" type=\"error\">\n {contentError}\n </Text>\n )}\n\n {showFooterRow && (\n <div className=\"flex items-center justify-end gap-2\">\n {cancelButton}\n {submitButton}\n </div>\n )}\n </form>\n );\n});\n\n/* ------------------------------------------------------------------ */\n/* ComposerEyebrow */\n/* ------------------------------------------------------------------ */\n\nfunction ComposerEyebrow({\n label,\n closeLabel,\n onClose,\n}: {\n label: string;\n closeLabel: string;\n onClose?: () => void;\n}) {\n return (\n <div className=\"bg-muted/40 ring-border/60 flex items-center justify-between rounded px-2.5 py-1.5 ring-1 ring-inset\">\n <Text size=\"xxs\" type=\"secondary\" weight=\"medium\" className=\"uppercase tracking-wide\">\n {label}\n </Text>\n {onClose ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"icon-small\"\n onClick={onClose}\n className=\"size-4 rounded p-0 text-muted-foreground hover:text-foreground\"\n aria-label={closeLabel}\n >\n <X className=\"size-3\" />\n </Button>\n ) : null}\n </div>\n );\n}\n\n/** Helper export for templated reply eyebrow. */\nexport function makeReplyEyebrow(template: string, name?: string): string {\n return interpolateString(template, { name: name ?? '' });\n}\n","/**\n * CommentEmpty — default empty state for the timeline. Replaceable via\n * the `emptySlot` prop on `<Comments>` / `<CommentTimeline>`.\n */\nimport { MessageCircle } from 'lucide-react';\nimport type { FC, ReactNode } from 'react';\n\nimport { Text } from '@/components/typography';\nimport type { StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useResolvedStrings } from '../comments-provider';\nimport type { CommentsStrings } from '../comments.strings';\n\nexport interface CommentEmptyProps {\n strings?: StringsProp<CommentsStrings>;\n icon?: ReactNode;\n className?: string;\n}\n\nexport const CommentEmpty: FC<CommentEmptyProps> = ({\n strings: stringsProp,\n icon,\n className,\n}) => {\n const strings = useResolvedStrings(stringsProp);\n\n return (\n <div\n className={cn(\n 'flex flex-col items-center justify-center py-8 text-center',\n className,\n )}\n >\n <div className=\"bg-muted/50 mb-3 flex h-12 w-12 items-center justify-center rounded-full\">\n {icon ?? (\n <MessageCircle className=\"text-muted-foreground/60 h-5 w-5\" />\n )}\n </div>\n <Text weight=\"medium\">\n {strings.empty}\n </Text>\n {strings.emptyHint ? (\n <Text size=\"xs\" type=\"secondary\" className=\"mt-1 max-w-[28ch]\">\n {strings.emptyHint}\n </Text>\n ) : null}\n </div>\n );\n};\n","import type { ReactNode } from 'react';\nimport { Fragment, createElement } from 'react';\n\nimport { Heading, Text } from '@/components/typography';\nimport type { HeadingProps } from '@/components/typography';\nimport { MentionContent } from '@/components/features/mentions';\n\nimport type {\n CommentData,\n CommentUser,\n CommentsConfig,\n CommentsSlots,\n} from '../comments.types';\n\ninterface CommentContentProps<TResource extends string = string> {\n comment: CommentData<CommentUser, unknown, TResource>;\n /** Resource registry — passed through to `<MentionContent>`. */\n resources?: CommentsConfig<CommentUser, unknown, TResource>['resources'];\n renderReference?: CommentsSlots<\n CommentUser,\n unknown,\n TResource\n >['renderReference'];\n /** Optional sanitizer applied to HTML before rendering. */\n sanitizer?: (html: string) => string;\n}\n\n/**\n * `renderCommentContent` — backwards-compatible export that renders only\n * the comment body text (no references resolution). Use the\n * `<CommentContent>` component below for the full feature surface.\n */\nexport function renderCommentContent<TResource extends string = string>(\n comment: CommentData<CommentUser, unknown, TResource>,\n): ReactNode {\n return <CommentContent comment={comment} />;\n}\n\nexport function CommentContent<TResource extends string = string>(\n props: CommentContentProps<TResource>,\n): ReactNode {\n const { comment, resources, renderReference, sanitizer } = props;\n const contentType =\n comment.contentType ??\n (comment as Record<string, unknown>).content_type ??\n 'text';\n\n if (contentType === 'rich') {\n return renderRichContent(comment.content);\n }\n\n if (contentType === 'html') {\n return (\n <MentionContent<TResource>\n html={comment.content ?? ''}\n mentions={comment.references}\n resources={resources}\n renderMention={renderReference}\n sanitizer={sanitizer}\n />\n );\n }\n\n const plainContent = decodeQuotedString(comment.content ?? '');\n\n return (\n <Text className=\"whitespace-pre-line\">\n {plainContent}\n </Text>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Rich-block renderer (legacy \"rich\" content type) */\n/* ------------------------------------------------------------------ */\n\nfunction renderRichContent(rawContent: string | null | undefined): ReactNode {\n if (!rawContent) return null;\n\n try {\n const parsed = JSON.parse(rawContent) as {\n blocks?: Array<{ id?: string; type: string; data?: Record<string, unknown> }>;\n };\n\n if (!parsed || !Array.isArray(parsed.blocks) || parsed.blocks.length === 0) {\n return null;\n }\n\n return (\n <div className=\"prose prose-sm prose-p:my-0.5 prose-headings:my-1 prose-a:text-primary prose-a:no-underline hover:prose-a:underline max-w-none space-y-1\">\n {parsed.blocks.map((block, index) => (\n <Fragment key={block.id ?? `${block.type}-${index}`}>\n {renderRichBlock(block)}\n </Fragment>\n ))}\n </div>\n );\n } catch {\n const decoded = decodeQuotedString(rawContent);\n return (\n <Text className=\"whitespace-pre-line\">\n {decoded}\n </Text>\n );\n }\n}\n\nfunction renderRichBlock(block: { type: string; data?: Record<string, unknown> }): ReactNode {\n const data = block.data ?? {};\n\n switch (block.type) {\n case 'paragraph': {\n const raw = String(data.text ?? '').trim();\n if (!raw) return null;\n return <Text asHTML content={raw} />;\n }\n case 'header': {\n const text = stripHtml(String(data.text ?? ''));\n const level = Number(data.level ?? 3);\n if (!text) return null;\n const safeLevel = Math.min(Math.max(level, 1), 6);\n return createElement(\n Heading,\n { tag: `h${safeLevel}` as HeadingProps['tag'] },\n text,\n );\n }\n case 'list': {\n const items = Array.isArray(data.items) ? data.items : [];\n const sanitizedItems = items\n .map((item) => stripHtml(String(item ?? '')))\n .filter((item) => item.length > 0);\n\n if (sanitizedItems.length === 0) return null;\n\n if (data.style === 'ordered') {\n return (\n <ol className=\"ml-6 list-decimal space-y-1 text-sm\">\n {sanitizedItems.map((item, index) => (\n <li key={`${item}-${index}`}>{item}</li>\n ))}\n </ol>\n );\n }\n\n return (\n <ul className=\"ml-6 list-disc space-y-1 text-sm\">\n {sanitizedItems.map((item) => (\n <li key={item}>{item}</li>\n ))}\n </ul>\n );\n }\n case 'quote': {\n const text = String(data.text ?? '').trim();\n if (!text) return null;\n const caption = stripHtml(String(data.caption ?? ''));\n return (\n <blockquote className=\"border-muted text-muted-foreground border-l-2 pl-3 text-sm italic\">\n <Text asHTML content={text} />\n {caption.length > 0 && (\n <cite className=\"text-muted-foreground/80 mt-1 block text-xs not-italic\">\n — {caption}\n </cite>\n )}\n </blockquote>\n );\n }\n case 'delimiter':\n return (\n <div\n className=\"border-muted my-4 border-b border-dashed\"\n aria-hidden=\"true\"\n />\n );\n default: {\n const text = stripHtml(String(data.text ?? ''));\n if (!text) return null;\n return (\n <Text className=\"whitespace-pre-line\">\n {text}\n </Text>\n );\n }\n }\n}\n\nfunction stripHtml(value: string): string {\n return value.replace(/<[^>]*>/g, '').trim();\n}\n\nfunction decodeQuotedString(value: string | null | undefined): string {\n if (typeof value !== 'string') return '';\n const trimmed = value.trim();\n if (trimmed === '') return '';\n if (trimmed.startsWith('{') || trimmed.startsWith('[')) return trimmed;\n try {\n const parsed = JSON.parse(trimmed);\n if (typeof parsed === 'string') return parsed;\n } catch {\n // ignore\n }\n if (trimmed.startsWith('\"') && trimmed.endsWith('\"')) {\n return trimmed.slice(1, -1);\n }\n return trimmed;\n}\n","import { formatDistanceToNow } from 'date-fns';\nimport {\n CornerDownRight,\n Pencil,\n Pin,\n Smile,\n Trash2,\n} from 'lucide-react';\nimport type { FC } from 'react';\nimport { memo, useMemo } from 'react';\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from '@/components/base/display/avatar';\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@/components/base/display/tooltip';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport {\n useResolvedAccessors,\n useResolvedStrings,\n} from '../comments-provider';\nimport type {\n CommentAttachment,\n CommentItemProps,\n} from '../comments.types';\nimport { CommentAttachmentChip } from './comment-attachment-chip';\nimport { CommentContent } from './comment-content';\n\nconst FALLBACK_INITIAL = '?';\n\nconst defaultGetMediaUrl = (m: CommentAttachment | null | undefined) => m?.url;\nconst defaultGetMediaName = (m: CommentAttachment | null | undefined) => m?.name;\nconst defaultGetStatusLabel = (s: string) =>\n s.charAt(0).toUpperCase() + s.slice(1).replace(/_/g, ' ');\nconst defaultFormatRelativeTime = (iso: string) => {\n try {\n return formatDistanceToNow(new Date(iso), { addSuffix: true });\n } catch {\n return '—';\n }\n};\n\nexport const CommentItem = memo(function CommentItem<TResource extends string = string>({\n comment,\n canModerate,\n onDelete,\n onPinToggle,\n onReact,\n onReply,\n strings: stringsProp,\n getMediaUrl,\n getMediaName,\n getStatusLabel,\n formatRelativeTime,\n resources,\n renderAttachment,\n renderReference,\n}: CommentItemProps<import('../comments.types').CommentUser, unknown, TResource>) {\n const strings = useResolvedStrings(stringsProp);\n const accessors = useResolvedAccessors({\n getMediaUrl,\n getMediaName,\n getStatusLabel,\n formatRelativeTime,\n });\n\n const resolvedGetMediaUrl = accessors.getMediaUrl ?? defaultGetMediaUrl;\n const resolvedGetMediaName = accessors.getMediaName ?? defaultGetMediaName;\n const resolvedGetStatusLabel =\n accessors.getStatusLabel ?? defaultGetStatusLabel;\n const resolvedFormatRelativeTime =\n accessors.formatRelativeTime ?? defaultFormatRelativeTime;\n\n const authorName = comment.user?.name ?? strings.fallbackAuthor;\n const avatarUrl = comment.user?.avatar ?? undefined;\n\n const relativeTime = useMemo(() => {\n if (!comment.createdAt) return '—';\n return resolvedFormatRelativeTime(comment.createdAt);\n }, [comment.createdAt, resolvedFormatRelativeTime]);\n\n const fallbackInitial = useMemo(() => {\n if (!authorName) return FALLBACK_INITIAL;\n const trimmed = authorName.trim();\n return trimmed === ''\n ? FALLBACK_INITIAL\n : trimmed.charAt(0).toUpperCase();\n }, [authorName]);\n\n const tagList = useMemo(() => {\n if (Array.isArray(comment.tagsArray)) {\n return comment.tagsArray.filter(\n (tag): tag is string => typeof tag === 'string',\n );\n }\n if (comment.tagsArray && typeof comment.tagsArray === 'object') {\n return Object.values(comment.tagsArray).filter(\n (value): value is string => typeof value === 'string',\n );\n }\n return [];\n }, [comment.tagsArray]);\n\n const attachments = useMemo(() => {\n const list = comment.attachments ?? comment.media ?? [];\n return list.filter(\n (a): a is CommentAttachment => !!a && typeof a === 'object',\n );\n }, [comment.attachments, comment.media]);\n\n const reactions = comment.reactions ?? [];\n\n const isPinned = comment.isPinned === true;\n const isEdited = comment.isEdited === true;\n const showStatus = comment.status && comment.status !== 'active';\n const statusLabel =\n showStatus && comment.status ? resolvedGetStatusLabel(comment.status) : null;\n const canDeleteComment =\n comment.canDelete === true || canModerate === true;\n const canEditComment = comment.canEdit === true || canModerate === true;\n\n const hasAttachments = attachments.length > 0;\n\n return (\n <article\n className={cn(\n 'comment-item--component group relative overflow-hidden rounded-lg border transition-colors',\n 'border-border/60 bg-card hover:bg-muted/30 px-3 py-2.5',\n )}\n data-comment-id={comment.id}\n >\n <div className=\"flex min-w-0 items-start gap-3\">\n <Avatar className=\"mt-0.5 size-avatar shrink-0\">\n {!!avatarUrl && (\n <AvatarImage src={avatarUrl} alt={authorName} />\n )}\n <AvatarFallback className=\"bg-muted text-muted-foreground text-xs font-medium\">\n {fallbackInitial}\n </AvatarFallback>\n </Avatar>\n\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex min-w-0 items-baseline gap-2\">\n <Text\n tag=\"span\"\n weight=\"semibold\"\n className=\"truncate\"\n >\n {authorName}\n </Text>\n\n {!!isPinned && (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger render={<span className=\"inline-flex shrink-0 self-center\" />}>\n <Pin className=\"text-warning size-3\" aria-hidden />\n </TooltipTrigger>\n <TooltipContent\n side=\"top\"\n className=\"text-xs\"\n >\n {strings.pinned}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n\n <Text\n tag=\"span\"\n size=\"xs\"\n type=\"secondary\"\n className=\"shrink-0 tabular-nums\"\n >\n {relativeTime}\n </Text>\n\n {!!isEdited && (\n <Text\n tag=\"span\"\n size=\"xs\"\n type=\"secondary\"\n className=\"shrink-0\"\n >\n {strings.edited}\n </Text>\n )}\n\n {!!showStatus && !!statusLabel && (\n <Badge variant=\"secondary\" className=\"self-center uppercase tracking-wide\">\n {statusLabel}\n </Badge>\n )}\n </div>\n\n <div className=\"mt-1 text-sm leading-relaxed\">\n <CommentContent\n comment={comment}\n resources={resources}\n renderReference={renderReference}\n />\n </div>\n\n {tagList.length > 0 && (\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {tagList.map((tag) => (\n <Badge key={tag} variant=\"secondary\" className=\"uppercase tracking-wide\">\n {tag}\n </Badge>\n ))}\n </div>\n )}\n\n {hasAttachments && (\n <div className=\"mt-2 flex flex-wrap gap-1.5\">\n {attachments.map((attachment) => {\n if (renderAttachment) {\n return (\n <div key={attachment.id ?? attachment.name}>\n {renderAttachment(attachment)}\n </div>\n );\n }\n return (\n <CommentAttachmentChip\n key={attachment.id ?? attachment.name}\n attachment={attachment}\n accessors={{\n getMediaUrl: resolvedGetMediaUrl,\n getMediaName: resolvedGetMediaName,\n }}\n strings={stringsProp}\n />\n );\n })}\n </div>\n )}\n\n {reactions.length > 0 && (\n <div className=\"mt-2 flex flex-wrap items-center gap-1\">\n {reactions.map((reaction) => (\n <Button\n key={reaction.emoji}\n type=\"button\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n size=\"small\"\n onClick={() =>\n onReact && comment.id\n ? onReact(comment.id, reaction.emoji)\n : undefined\n }\n title={reaction.users?.join(', ')}\n className=\"h-auto rounded-full p-0\"\n >\n <Badge\n variant={reaction.mine ? 'primary' : 'secondary'}\n className=\"cursor-pointer transition-colors hover:opacity-90\"\n >\n <span aria-hidden className=\"leading-none\">\n {reaction.emoji}\n </span>\n <span className=\"tabular-nums\">{reaction.count}</span>\n </Badge>\n </Button>\n ))}\n </div>\n )}\n </div>\n\n {/* Trailing action cluster — single low-contrast group, hover/focus revealed. */}\n <div\n className={cn(\n 'absolute right-2 top-2 opacity-0 transition-opacity',\n 'group-hover:opacity-100 focus-within:opacity-100',\n 'inline-flex items-center gap-0.5 rounded-md bg-card/95 shadow-sm ring-1 ring-border/70',\n )}\n >\n {!!onReply && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n onClick={() =>\n comment.id && onReply(comment.id)\n }\n title={strings.replyLabel}\n aria-label={strings.replyLabel}\n >\n <CornerDownRight className=\"size-3.5\" />\n </Button>\n )}\n {!!onReact && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n onClick={() =>\n comment.id && onReact(comment.id, '👍')\n }\n title={strings.addReactionLabel}\n aria-label={strings.addReactionLabel}\n >\n <Smile className=\"size-3.5\" />\n </Button>\n )}\n {!!onPinToggle && canModerate && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n onClick={() => onPinToggle(comment)}\n title={isPinned ? strings.unpinLabel : strings.pinLabel}\n aria-label={isPinned ? strings.unpinLabel : strings.pinLabel}\n >\n <Pin\n className={cn(\n 'size-3.5',\n isPinned && 'text-warning',\n )}\n />\n </Button>\n )}\n {!!canEditComment && !!comment.id && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n title={strings.editLabel}\n aria-label={strings.editLabel}\n >\n <Pencil className=\"size-3.5\" />\n </Button>\n )}\n {!!canDeleteComment &&\n !!onDelete &&\n !!comment.id && (\n <Button\n type=\"button\"\n size=\"icon-small\"\n variant=\"secondary\"\n buttonStyle=\"ghost\"\n className=\"hover:bg-destructive/10 hover:text-destructive\"\n onClick={() =>\n onDelete(comment.id as string)\n }\n title={strings.deleteLabel}\n aria-label={strings.deleteLabel}\n >\n <Trash2 className=\"size-3.5\" />\n </Button>\n )}\n </div>\n </div>\n </article>\n );\n}) as <TResource extends string = string>(\n props: CommentItemProps<import('../comments.types').CommentUser, unknown, TResource>,\n) => ReturnType<FC>;\n","import type { FC } from 'react';\n\nimport type { CommentTimelineProps, CommentUser } from '../comments.types';\nimport { CommentEmpty } from './comment-empty';\nimport { CommentItem } from './comment-item';\n\nexport const CommentTimeline = function CommentTimeline<\n TResource extends string = string,\n>({\n comments,\n canModerate,\n onDelete,\n onPinToggle,\n onReact,\n onReply,\n strings: stringsProp,\n getMediaUrl,\n getMediaName,\n getStatusLabel,\n formatRelativeTime,\n resources,\n renderItem,\n renderAttachment,\n renderReference,\n emptySlot,\n}: CommentTimelineProps<CommentUser, unknown, TResource>) {\n if (!comments.length) {\n return (\n <>\n {emptySlot ?? <CommentEmpty strings={stringsProp} />}\n </>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-2\">\n {comments.map((comment, index) => {\n const defaultItem = (\n <CommentItem\n comment={comment}\n canModerate={canModerate}\n onDelete={onDelete}\n onPinToggle={onPinToggle}\n onReact={onReact}\n onReply={onReply}\n strings={stringsProp}\n getMediaUrl={getMediaUrl}\n getMediaName={getMediaName}\n getStatusLabel={getStatusLabel}\n formatRelativeTime={formatRelativeTime}\n resources={resources}\n renderAttachment={renderAttachment}\n renderReference={renderReference}\n />\n );\n\n if (renderItem) {\n return (\n <div key={comment.id ?? `comment-${index}`}>\n {renderItem({\n comment,\n canModerate: canModerate ?? false,\n onDelete,\n defaultItem,\n })}\n </div>\n );\n }\n\n return (\n <div key={comment.id ?? `comment-${index}`}>\n {defaultItem}\n </div>\n );\n })}\n </div>\n );\n} as <TResource extends string = string>(\n props: CommentTimelineProps<CommentUser, unknown, TResource>,\n) => ReturnType<FC>;\n","/**\n * Comments — top-level entry for the Comments feature.\n *\n * Composes the composer + timeline + empty state behind a single API.\n * Generic in `<TUser, TMeta, TResource>` so consumers can type their\n * domain (user shape, custom meta payload, resource-kind union).\n *\n * Per-mount wiring (callbacks, resources, accessors) flows as direct\n * props. Library-wide display defaults (composer position, etc.) come\n * from `<UIProvider>` — see `@/lib/ui-provider`. Slots, render-props,\n * and the headless `useComments()` hook cover the composability\n * spectrum.\n *\n * `CommentsCard` is exported as a back-compat alias for the previous\n * name; the API shape is identical.\n */\nimport { useCallback, useState } from 'react';\n\nimport { SmartCard } from '@/components/base/cards';\nimport { useCommentsConfig as useCommentsUIDefaults } from '@/lib/ui-provider';\n\nimport { useResolvedStrings } from './comments-provider';\nimport type {\n CommentData,\n CommentFormValues,\n CommentSubmitHelpers,\n CommentUser,\n CommentsProps,\n} from './comments.types';\nimport { CommentComposer } from './partials/comment-composer';\nimport { CommentEmpty } from './partials/comment-empty';\nimport { CommentTimeline } from './partials/comment-timeline';\n\nimport { cn } from '@/lib/utils';\nexport function Comments<\n TUser extends CommentUser = CommentUser,\n TMeta = unknown,\n TResource extends string = string,\n>(props: CommentsProps<TUser, TMeta, TResource>) {\n const ui = useCommentsUIDefaults();\n\n const composerPosition =\n props.composerPosition ?? ui.composerPosition ?? 'top';\n\n const canComment = props.canComment ?? false;\n const canModerate = props.canModerate ?? false;\n\n const onSubmit = props.onSubmit;\n const onDelete = props.onDelete;\n const onPinToggle = props.onPinToggle;\n const onReact = props.onReact;\n const onReply = props.onReply;\n\n const resources = props.resources;\n const attachments = props.attachments;\n\n const strings = useResolvedStrings(props.strings);\n const cardTitle = props.title === undefined ? strings.title : props.title;\n\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [resetKey, setResetKey] = useState(0);\n\n const submitHelpers: CommentSubmitHelpers = {\n setErrors: (errors) => setFormErrors(errors),\n reset: () => {\n setResetKey((k) => k + 1);\n setFormErrors({});\n setIsSubmitting(false);\n },\n setSubmitting: setIsSubmitting,\n };\n\n const handleSubmit = useCallback(\n (values: CommentFormValues<TResource>) => {\n if (!onSubmit) return;\n setIsSubmitting(true);\n setFormErrors({});\n onSubmit(values, submitHelpers);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onSubmit],\n );\n\n const composer = props.composerSlot ?? (\n canComment ? (\n <CommentComposer\n context={props.context}\n canComment={canComment}\n isSubmitting={isSubmitting}\n errors={formErrors}\n resetKey={resetKey}\n /*\n * Generic-erasure boundary: `<Comments<TResource>>` is\n * generic but `<CommentComposer>` types its props\n * against the default-string kind. Shapes are\n * structurally identical — only the kind union differs.\n */\n onSubmit={\n handleSubmit as (values: CommentFormValues) => void\n }\n strings={props.strings}\n resources={resources as never}\n attachments={attachments}\n />\n ) : null\n );\n\n /*\n * Same generic-erasure boundary as the composer block above:\n * `<Comments<TUser, TMeta, TResource>>` is generic, but\n * `<CommentTimeline>` types its `comments` and `onPinToggle` props\n * against `CommentData<CommentUser, unknown, TResource>` (default\n * `TUser`/`TMeta`). The shapes are structurally identical — `TUser`\n * narrows the author union and `TMeta` narrows the metadata payload,\n * neither of which the timeline reads — so the widening cast is\n * safe. Keep the cast localised here; do not propagate into the\n * timeline body.\n */\n const timeline = (\n <CommentTimeline\n comments={props.comments as ReadonlyArray<CommentData<CommentUser, unknown, TResource>>}\n canModerate={canModerate}\n onDelete={onDelete}\n onPinToggle={onPinToggle as (c: CommentData<CommentUser, unknown, TResource>) => void}\n onReact={onReact}\n onReply={onReply}\n strings={props.strings}\n getMediaUrl={props.getMediaUrl}\n getMediaName={props.getMediaName}\n getStatusLabel={props.getStatusLabel}\n formatRelativeTime={props.formatRelativeTime}\n resources={resources}\n // `renderItem` is generic over the consumer's `<TUser, TMeta,\n // TResource>` triple; `<CommentTimeline>` types it against\n // the default `CommentUser, unknown, string` triple. The\n // structural signature is the same — boundary cast only.\n renderItem={props.renderItem as never}\n renderAttachment={props.renderAttachment}\n renderReference={props.renderReference}\n emptySlot={\n props.emptySlot ?? <CommentEmpty strings={props.strings} />\n }\n />\n );\n\n const composerBlock = composer ? <div>{composer}</div> : null;\n\n const inner = (\n <div className=\"flex flex-col gap-4\">\n {props.headerSlot}\n {composerPosition === 'top' && composerBlock}\n {timeline}\n {composerPosition === 'bottom' && composerBlock}\n {props.footerSlot}\n </div>\n );\n\n if (props.bare) {\n return inner;\n }\n\n return (\n <SmartCard\n title={cardTitle === false ? undefined : cardTitle}\n description={strings.subtitle || undefined}\n padding=\"default\"\n className={cn('comments--component', props.className)}\n >\n {inner}\n </SmartCard>\n );\n}\n\n/** Back-compat alias — `CommentsCard` was the previous primary export. */\nexport const CommentsCard = Comments;\n","/**\n * useComments — headless state machine for the Comments feature.\n *\n * Tracks composer mode (idle | replying | editing), submit/delete\n * helpers, error state, and resetKey bumping. The default `<Comments>`\n * component composes this hook; consumers building a fully custom UI\n * can use it directly.\n */\nimport { useCallback, useState } from 'react';\n\nimport type {\n CommentData,\n CommentFormValues,\n CommentSubmitHelpers,\n CommentUser,\n CommentsConfig,\n} from '../comments.types';\n\nexport type ComposerMode<TResource extends string = string> =\n | { kind: 'idle' }\n | { kind: 'editing'; comment: CommentData<CommentUser, unknown, TResource> }\n | { kind: 'replying'; commentId: string; authorName?: string };\n\nexport interface UseCommentsOptions<\n TUser extends CommentUser = CommentUser,\n TMeta = unknown,\n TResource extends string = string,\n> {\n onSubmit?: CommentsConfig<TUser, TMeta, TResource>['onSubmit'];\n onUpdate?: CommentsConfig<TUser, TMeta, TResource>['onUpdate'];\n onDelete?: CommentsConfig<TUser, TMeta, TResource>['onDelete'];\n}\n\nexport interface UseCommentsReturn<\n TUser extends CommentUser = CommentUser,\n TMeta = unknown,\n TResource extends string = string,\n> {\n composerMode: ComposerMode<TResource>;\n isSubmitting: boolean;\n formErrors: Record<string, string>;\n resetKey: number;\n\n startReply: (comment: CommentData<TUser, TMeta, TResource>) => void;\n startEdit: (comment: CommentData<TUser, TMeta, TResource>) => void;\n cancelComposerMode: () => void;\n\n submit: (values: CommentFormValues<TResource>) => void;\n deleteComment: (id: string) => void;\n\n /** Imperative reset — bumps `resetKey` so the composer clears itself. */\n resetComposer: () => void;\n /** Helpers exposed to onSubmit/onUpdate. */\n helpers: CommentSubmitHelpers;\n}\n\nexport function useComments<\n TUser extends CommentUser = CommentUser,\n TMeta = unknown,\n TResource extends string = string,\n>(\n options: UseCommentsOptions<TUser, TMeta, TResource> = {},\n): UseCommentsReturn<TUser, TMeta, TResource> {\n const { onSubmit, onUpdate, onDelete } = options;\n\n const [composerMode, setComposerMode] = useState<ComposerMode<TResource>>({\n kind: 'idle',\n });\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n const [resetKey, setResetKey] = useState(0);\n\n const helpers: CommentSubmitHelpers = {\n setErrors: (errors) => setFormErrors(errors),\n reset: () => {\n setResetKey((k) => k + 1);\n setComposerMode({ kind: 'idle' });\n setFormErrors({});\n },\n setSubmitting: setIsSubmitting,\n };\n\n const startReply = useCallback(\n (comment: CommentData<TUser, TMeta, TResource>) => {\n setComposerMode({\n kind: 'replying',\n commentId: comment.id ?? '',\n authorName: comment.user?.name,\n });\n },\n [],\n );\n\n const startEdit = useCallback(\n (comment: CommentData<TUser, TMeta, TResource>) => {\n setComposerMode({ kind: 'editing', comment });\n },\n [],\n );\n\n const cancelComposerMode = useCallback(() => {\n setComposerMode({ kind: 'idle' });\n setFormErrors({});\n }, []);\n\n const submit = useCallback(\n (values: CommentFormValues<TResource>) => {\n setIsSubmitting(true);\n setFormErrors({});\n\n if (composerMode.kind === 'editing' && composerMode.comment.id) {\n if (!onUpdate) {\n setIsSubmitting(false);\n return;\n }\n onUpdate(composerMode.comment.id, values, helpers);\n return;\n }\n\n if (!onSubmit) {\n setIsSubmitting(false);\n return;\n }\n\n const payload: CommentFormValues<TResource> =\n composerMode.kind === 'replying'\n ? { ...values, replyToId: composerMode.commentId }\n : values;\n\n onSubmit(payload, helpers);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [composerMode, onSubmit, onUpdate],\n );\n\n const deleteComment = useCallback(\n (id: string) => {\n if (!onDelete || !id) return;\n onDelete(id);\n },\n [onDelete],\n );\n\n const resetComposer = useCallback(() => {\n setResetKey((k) => k + 1);\n setComposerMode({ kind: 'idle' });\n setFormErrors({});\n }, []);\n\n return {\n composerMode,\n isSubmitting,\n formErrors,\n resetKey,\n startReply,\n startEdit,\n cancelComposerMode,\n submit,\n deleteComment,\n resetComposer,\n helpers,\n };\n}\n"],"mappings":"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"}
|