themelia-react-ui 0.0.0-stage → 1.0.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/CHANGELOG.md +116 -0
- package/LICENSE +21 -0
- package/README.md +282 -2
- package/THIRD_PARTY_NOTICES.md +65 -0
- package/dist/accordion-B-5Focs8.js +205 -0
- package/dist/accordion-B-5Focs8.js.map +1 -0
- package/dist/action-menu-Cx3SdfbN.js +265 -0
- package/dist/action-menu-Cx3SdfbN.js.map +1 -0
- package/dist/action-presentation.js +11 -0
- package/dist/action-presentation.js.map +1 -0
- package/dist/affordance-geometry.generated-D8Jcfb0G.js +32 -0
- package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +1 -0
- package/dist/ai-artifact-B5tPpXnS.js +1121 -0
- package/dist/ai-artifact-B5tPpXnS.js.map +1 -0
- package/dist/anchored-positioning-DPnKTvNs.js +6 -0
- package/dist/anchored-positioning-DPnKTvNs.js.map +1 -0
- package/dist/app-shell-at8Kt4l_.js +235 -0
- package/dist/app-shell-at8Kt4l_.js.map +1 -0
- package/dist/attachment-BO2R47wn.js +244 -0
- package/dist/attachment-BO2R47wn.js.map +1 -0
- package/dist/auth-OFwWSAap.js +704 -0
- package/dist/auth-OFwWSAap.js.map +1 -0
- package/dist/avatar-Bpzty83c.js +178 -0
- package/dist/avatar-Bpzty83c.js.map +1 -0
- package/dist/badge-BZXZT9wd.js +92 -0
- package/dist/badge-BZXZT9wd.js.map +1 -0
- package/dist/base/accordion.js +3 -0
- package/dist/base/action-menu.js +3 -0
- package/dist/base/attachment.js +3 -0
- package/dist/base/avatar.js +3 -0
- package/dist/base/badge.js +3 -0
- package/dist/base/buttons.js +3 -0
- package/dist/base/cards.js +4 -0
- package/dist/base/carousel.js +251 -0
- package/dist/base/carousel.js.map +1 -0
- package/dist/base/cascader.js +361 -0
- package/dist/base/cascader.js.map +1 -0
- package/dist/base/chart.js +3 -0
- package/dist/base/choice-inputs.js +4 -0
- package/dist/base/code-block.js +3 -0
- package/dist/base/combobox.js +3 -0
- package/dist/base/command.js +3 -0
- package/dist/base/copyable.js +3 -0
- package/dist/base/date-pickers.js +4 -0
- package/dist/base/display.js +8 -0
- package/dist/base/feedback.js +5 -0
- package/dist/base/forms-numeric.js +3 -0
- package/dist/base/forms.js +4 -0
- package/dist/base/inline-edit.js +236 -0
- package/dist/base/inline-edit.js.map +1 -0
- package/dist/base/item.js +3 -0
- package/dist/base/media-gallery.js +3 -0
- package/dist/base/navigation.js +8 -0
- package/dist/base/popover-menu.js +3 -0
- package/dist/base/popover.js +3 -0
- package/dist/base/qr-code.js +63 -0
- package/dist/base/qr-code.js.map +1 -0
- package/dist/base/repeaters.js +620 -0
- package/dist/base/repeaters.js.map +1 -0
- package/dist/base/sheet.js +3 -0
- package/dist/base/sidebar.js +3 -0
- package/dist/base/signature-pad.js +364 -0
- package/dist/base/signature-pad.js.map +1 -0
- package/dist/base/skeleton.js +3 -0
- package/dist/base/spinner.js +3 -0
- package/dist/base/structure.js +3 -0
- package/dist/base/table.js +3 -0
- package/dist/base/text-inputs.js +4 -0
- package/dist/base/toaster.js +102 -0
- package/dist/base/toaster.js.map +1 -0
- package/dist/base/tree.js +3 -0
- package/dist/base/upload-queue.js +3 -0
- package/dist/base/upload.js +5 -0
- package/dist/base/value-inputs.js +3 -0
- package/dist/blocks/admin.js +478 -0
- package/dist/blocks/admin.js.map +1 -0
- package/dist/blocks/ai.js +1021 -0
- package/dist/blocks/ai.js.map +1 -0
- package/dist/blocks/analytics/usage-card.js +3 -0
- package/dist/blocks/analytics.js +1500 -0
- package/dist/blocks/analytics.js.map +1 -0
- package/dist/blocks/collaboration.js +3 -0
- package/dist/blocks/commerce/receipt.js +3 -0
- package/dist/blocks/commerce.js +3393 -0
- package/dist/blocks/commerce.js.map +1 -0
- package/dist/blocks/data-display.js +3 -0
- package/dist/blocks/onboarding.js +128 -0
- package/dist/blocks/onboarding.js.map +1 -0
- package/dist/blocks/planning.js +311 -0
- package/dist/blocks/planning.js.map +1 -0
- package/dist/blocks/timelines.js +3 -0
- package/dist/breadcrumbs-DdQ_I5ra.js +127 -0
- package/dist/breadcrumbs-DdQ_I5ra.js.map +1 -0
- package/dist/button-BS6l5JUw.js +47 -0
- package/dist/button-BS6l5JUw.js.map +1 -0
- package/dist/buttons-Co6GavvM.js +674 -0
- package/dist/buttons-Co6GavvM.js.map +1 -0
- package/dist/cards-Cum56XOF.js +66 -0
- package/dist/cards-Cum56XOF.js.map +1 -0
- package/dist/chart-DVfcwQu6.js +149 -0
- package/dist/chart-DVfcwQu6.js.map +1 -0
- package/dist/checkbox-BavDRjF7.js +34 -0
- package/dist/checkbox-BavDRjF7.js.map +1 -0
- package/dist/choice-inputs-CC7XqPQO.js +619 -0
- package/dist/choice-inputs-CC7XqPQO.js.map +1 -0
- package/dist/code-block-xHKbAJDj.js +183 -0
- package/dist/code-block-xHKbAJDj.js.map +1 -0
- package/dist/collapsible-DsnktFNv.js +81 -0
- package/dist/collapsible-DsnktFNv.js.map +1 -0
- package/dist/collection-content-C4fthJV_.js +53 -0
- package/dist/collection-content-C4fthJV_.js.map +1 -0
- package/dist/combobox-DEbdr-3u.js +273 -0
- package/dist/combobox-DEbdr-3u.js.map +1 -0
- package/dist/combobox-xv3yJbzl.js +850 -0
- package/dist/combobox-xv3yJbzl.js.map +1 -0
- package/dist/command-C0xe7u9B.js +421 -0
- package/dist/command-C0xe7u9B.js.map +1 -0
- package/dist/comments-DviPLnwy.js +1132 -0
- package/dist/comments-DviPLnwy.js.map +1 -0
- package/dist/component-vocabulary.js +26 -0
- package/dist/component-vocabulary.js.map +1 -0
- package/dist/components/base/accordion/accordion-variants.d.ts +36 -0
- package/dist/components/base/accordion/accordion.d.ts +20 -0
- package/dist/components/base/accordion/accordion.strings.d.ts +15 -0
- package/dist/components/base/accordion/accordion.types.d.ts +74 -0
- package/dist/components/base/accordion/index.d.ts +4 -0
- package/dist/components/base/accordion/smart-accordion.d.ts +7 -0
- package/dist/components/base/action-menu/action-menu.d.ts +147 -0
- package/dist/components/base/action-menu/action-menu.strings.d.ts +4 -0
- package/dist/components/base/action-menu/index.d.ts +11 -0
- package/dist/components/base/attachment/attachment.d.ts +17 -0
- package/dist/components/base/attachment/attachment.types.d.ts +49 -0
- package/dist/components/base/attachment/index.d.ts +2 -0
- package/dist/components/base/avatar/avatar.d.ts +24 -0
- package/dist/components/base/avatar/index.d.ts +14 -0
- package/dist/components/base/avatar/stacked-avatars.d.ts +39 -0
- package/dist/components/base/badge/badge.d.ts +22 -0
- package/dist/components/base/badge/badge.recipes.d.ts +20 -0
- package/dist/components/base/badge/index.d.ts +2 -0
- package/dist/components/base/buttons/base-button.d.ts +24 -0
- package/dist/components/base/buttons/button-group.d.ts +28 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +6 -0
- package/dist/components/base/buttons/button.d.ts +47 -0
- package/dist/components/base/buttons/button.recipes.d.ts +23 -0
- package/dist/components/base/buttons/button.variants.d.ts +8 -0
- package/dist/components/base/buttons/index.d.ts +7 -0
- package/dist/components/base/buttons/loader-button.d.ts +40 -0
- package/dist/components/base/buttons/text-button.d.ts +19 -0
- package/dist/components/base/buttons/tooltip-button.d.ts +7 -0
- package/dist/components/base/cards/card-actions.d.ts +41 -0
- package/dist/components/base/cards/card.recipes.d.ts +28 -0
- package/dist/components/base/cards/index.d.ts +5 -0
- package/dist/components/base/cards/partials/card-primitives.d.ts +21 -0
- package/dist/components/base/cards/partials/has-renderable-content.d.ts +8 -0
- package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +8 -0
- package/dist/components/base/cards/partials/smart-card-alert.d.ts +20 -0
- package/dist/components/base/cards/partials/smart-card-header-row.d.ts +33 -0
- package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +16 -0
- package/dist/components/base/cards/smart-card.d.ts +9 -0
- package/dist/components/base/cards/smart-card.strings.d.ts +18 -0
- package/dist/components/base/cards/smart-card.tokens.d.ts +44 -0
- package/dist/components/base/cards/smart-card.types.d.ts +146 -0
- package/dist/components/base/carousel/carousel.d.ts +105 -0
- package/dist/components/base/carousel/carousel.strings.d.ts +6 -0
- package/dist/components/base/carousel/index.d.ts +2 -0
- package/dist/components/base/cascader/cascader.d.ts +2 -0
- package/dist/components/base/cascader/cascader.types.d.ts +57 -0
- package/dist/components/base/cascader/index.d.ts +2 -0
- package/dist/components/base/chart/chart.d.ts +99 -0
- package/dist/components/base/chart/index.d.ts +9 -0
- package/dist/components/base/choice-inputs/card-checkbox-group.d.ts +27 -0
- package/dist/components/base/choice-inputs/card-radio-group.d.ts +19 -0
- package/dist/components/base/choice-inputs/checkbox.d.ts +17 -0
- package/dist/components/base/choice-inputs/choice-types.d.ts +57 -0
- package/dist/components/base/choice-inputs/index.d.ts +28 -0
- package/dist/components/base/choice-inputs/list-radio-group.d.ts +13 -0
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +27 -0
- package/dist/components/base/choice-inputs/select-popup.d.ts +26 -0
- package/dist/components/base/choice-inputs/select.d.ts +94 -0
- package/dist/components/base/choice-inputs/switch-card.d.ts +36 -0
- package/dist/components/base/choice-inputs/switch.d.ts +38 -0
- package/dist/components/base/choice-inputs/toggle-field.d.ts +41 -0
- package/dist/components/base/code-block/code-block.d.ts +3 -0
- package/dist/components/base/code-block/code-block.types.d.ts +46 -0
- package/dist/components/base/code-block/index.d.ts +2 -0
- package/dist/components/base/code-block/use-code-copy.d.ts +6 -0
- package/dist/components/base/combobox/index.d.ts +27 -0
- package/dist/components/base/command/command.d.ts +73 -0
- package/dist/components/base/command/index.d.ts +1 -0
- package/dist/components/base/copyable/copyable.d.ts +36 -0
- package/dist/components/base/copyable/index.d.ts +1 -0
- package/dist/components/base/date-pickers/date-picker-footer.d.ts +14 -0
- package/dist/components/base/date-pickers/date-picker-header.d.ts +10 -0
- package/dist/components/base/date-pickers/date-picker-helpers.d.ts +87 -0
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +10 -0
- package/dist/components/base/date-pickers/date-picker-multiple.d.ts +20 -0
- package/dist/components/base/date-pickers/date-picker-range.d.ts +15 -0
- package/dist/components/base/date-pickers/date-picker-single.d.ts +15 -0
- package/dist/components/base/date-pickers/date-picker.d.ts +3 -0
- package/dist/components/base/date-pickers/date-picker.recipes.d.ts +18 -0
- package/dist/components/base/date-pickers/date-pickers.strings.d.ts +14 -0
- package/dist/components/base/date-pickers/datepicker.types.d.ts +285 -0
- package/dist/components/base/date-pickers/index.d.ts +7 -0
- package/dist/components/base/date-pickers/month-year-picker.d.ts +4 -0
- package/dist/components/base/date-pickers/time-picker.d.ts +70 -0
- package/dist/components/base/display/alert-dialog.d.ts +25 -0
- package/dist/components/base/display/boolean-indicator.d.ts +25 -0
- package/dist/components/base/display/collapsible.d.ts +21 -0
- package/dist/components/base/display/content-block.d.ts +73 -0
- package/dist/components/base/display/content-block.strings.d.ts +5 -0
- package/dist/components/base/display/date-block.d.ts +70 -0
- package/dist/components/base/display/dialog.d.ts +35 -0
- package/dist/components/base/display/icon-badge/icon-badge.d.ts +45 -0
- package/dist/components/base/display/icon-badge/index.d.ts +1 -0
- package/dist/components/base/display/icon-size.d.ts +5 -0
- package/dist/components/base/display/index.d.ts +31 -0
- package/dist/components/base/display/placeholder-pattern.d.ts +7 -0
- package/dist/components/base/display/scroll-area.d.ts +12 -0
- package/dist/components/base/display/separator.d.ts +10 -0
- package/dist/components/base/display/surface-title.d.ts +10 -0
- package/dist/components/base/display/tooltip.d.ts +28 -0
- package/dist/components/base/display/visually-hidden.d.ts +14 -0
- package/dist/components/base/feedback/alert.d.ts +49 -0
- package/dist/components/base/feedback/empty.d.ts +48 -0
- package/dist/components/base/feedback/index.d.ts +27 -0
- package/dist/components/base/feedback/progress.d.ts +81 -0
- package/dist/components/base/feedback/progress.strings.d.ts +5 -0
- package/dist/components/base/feedback/state-display.d.ts +39 -0
- package/dist/components/base/forms/controlled-form-field.d.ts +32 -0
- package/dist/components/base/forms/controlled-form-field.strings.d.ts +7 -0
- package/dist/components/base/forms/form-field.d.ts +38 -0
- package/dist/components/base/forms/form-sizing.d.ts +86 -0
- package/dist/components/base/forms/index.d.ts +4 -0
- package/dist/components/base/forms/operation-password-form.d.ts +16 -0
- package/dist/components/base/forms/workflow.d.ts +68 -0
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +47 -0
- package/dist/components/base/forms-numeric/currency-input.d.ts +44 -0
- package/dist/components/base/forms-numeric/decimal-input.d.ts +53 -0
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +79 -0
- package/dist/components/base/forms-numeric/index.d.ts +21 -0
- package/dist/components/base/forms-numeric/money-input.d.ts +67 -0
- package/dist/components/base/forms-numeric/money-input.strings.d.ts +6 -0
- package/dist/components/base/forms-numeric/percentage-input.d.ts +8 -0
- package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +12 -0
- package/dist/components/base/forms-numeric/weight-input.d.ts +54 -0
- package/dist/components/base/inline-edit/index.d.ts +2 -0
- package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
- package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
- package/dist/components/base/item/index.d.ts +2 -0
- package/dist/components/base/item/item.d.ts +12 -0
- package/dist/components/base/item/item.types.d.ts +100 -0
- package/dist/components/base/media-gallery/index.d.ts +2 -0
- package/dist/components/base/media-gallery/media-gallery.d.ts +45 -0
- package/dist/components/base/navigation/breadcrumbs.d.ts +37 -0
- package/dist/components/base/navigation/dropdown-menu.d.ts +45 -0
- package/dist/components/base/navigation/index.d.ts +21 -0
- package/dist/components/base/navigation/language-switcher.d.ts +12 -0
- package/dist/components/base/navigation/navigation-tabs.d.ts +40 -0
- package/dist/components/base/navigation/overflow-tab-bar.d.ts +43 -0
- package/dist/components/base/navigation/page-header/index.d.ts +1 -0
- package/dist/components/base/navigation/page-header/page-header.d.ts +88 -0
- package/dist/components/base/navigation/pagination.d.ts +61 -0
- package/dist/components/base/navigation/tab-scroll-viewport.d.ts +12 -0
- package/dist/components/base/navigation/tabs.d.ts +23 -0
- package/dist/components/base/popover/collection-content.d.ts +22 -0
- package/dist/components/base/popover/index.d.ts +1 -0
- package/dist/components/base/popover/popover.d.ts +54 -0
- package/dist/components/base/popover/popover.recipes.d.ts +29 -0
- package/dist/components/base/popover-menu/index.d.ts +3 -0
- package/dist/components/base/popover-menu/popover-menu.d.ts +82 -0
- package/dist/components/base/popover-menu/popover-menu.types.d.ts +30 -0
- package/dist/components/base/qr-code/index.d.ts +8 -0
- package/dist/components/base/qr-code/qr-code.d.ts +13 -0
- package/dist/components/base/repeaters/index.d.ts +21 -0
- package/dist/components/base/repeaters/key-value-editor.d.ts +27 -0
- package/dist/components/base/repeaters/localized-object-field.d.ts +35 -0
- package/dist/components/base/repeaters/localized-string-field.d.ts +25 -0
- package/dist/components/base/repeaters/localized-string-repeater.d.ts +44 -0
- package/dist/components/base/repeaters/object-repeater.d.ts +66 -0
- package/dist/components/base/repeaters/repeater.d.ts +87 -0
- package/dist/components/base/repeaters/repeaters.strings.d.ts +16 -0
- package/dist/components/base/repeaters/string-repeater.d.ts +65 -0
- package/dist/components/base/repeaters/string-repeater.utils.d.ts +2 -0
- package/dist/components/base/sheet/index.d.ts +1 -0
- package/dist/components/base/sheet/sheet.d.ts +35 -0
- package/dist/components/base/sidebar/index.d.ts +6 -0
- package/dist/components/base/sidebar/sidebar.d.ts +135 -0
- package/dist/components/base/signature-pad/index.d.ts +4 -0
- package/dist/components/base/signature-pad/signature-pad.d.ts +4 -0
- package/dist/components/base/signature-pad/signature-pad.types.d.ts +66 -0
- package/dist/components/base/signature-pad/signature-pad.utils.d.ts +8 -0
- package/dist/components/base/skeleton/index.d.ts +14 -0
- package/dist/components/base/skeleton/skeleton.d.ts +54 -0
- package/dist/components/base/spinner/index.d.ts +1 -0
- package/dist/components/base/spinner/spinner.d.ts +32 -0
- package/dist/components/base/structure/adaptive-grid.d.ts +3 -0
- package/dist/components/base/structure/grid-cell.d.ts +3 -0
- package/dist/components/base/structure/grid.d.ts +3 -0
- package/dist/components/base/structure/index.d.ts +5 -0
- package/dist/components/base/structure/stack.d.ts +3 -0
- package/dist/components/base/structure/structure.context.d.ts +6 -0
- package/dist/components/base/structure/structure.recipes.d.ts +33 -0
- package/dist/components/base/structure/structure.responsive.d.ts +5 -0
- package/dist/components/base/structure/structure.types.d.ts +51 -0
- package/dist/components/base/table/index.d.ts +18 -0
- package/dist/components/base/text-inputs/hooks/index.d.ts +1 -0
- package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +48 -0
- package/dist/components/base/text-inputs/index.d.ts +21 -0
- package/dist/components/base/text-inputs/input-group.d.ts +46 -0
- package/dist/components/base/text-inputs/input.d.ts +45 -0
- package/dist/components/base/text-inputs/password-input.d.ts +28 -0
- package/dist/components/base/text-inputs/slug-field.d.ts +21 -0
- package/dist/components/base/text-inputs/textarea.d.ts +37 -0
- package/dist/components/base/toaster/index.d.ts +1 -0
- package/dist/components/base/toaster/toaster.d.ts +6 -0
- package/dist/components/base/tree/hierarchy.d.ts +11 -0
- package/dist/components/base/tree/index.d.ts +2 -0
- package/dist/components/base/tree/tree.d.ts +3 -0
- package/dist/components/base/tree/tree.types.d.ts +47 -0
- package/dist/components/base/upload/avatar-upload.d.ts +39 -0
- package/dist/components/base/upload/dropzone.d.ts +40 -0
- package/dist/components/base/upload/file-picker-input.d.ts +15 -0
- package/dist/components/base/upload/file-upload.d.ts +9 -0
- package/dist/components/base/upload/file-upload.strings.d.ts +18 -0
- package/dist/components/base/upload/file-upload.types.d.ts +68 -0
- package/dist/components/base/upload/file-upload.validation.d.ts +21 -0
- package/dist/components/base/upload/image-upload.d.ts +57 -0
- package/dist/components/base/upload/index.d.ts +26 -0
- package/dist/components/base/upload/use-file-drop-target.d.ts +22 -0
- package/dist/components/base/upload-queue/index.d.ts +3 -0
- package/dist/components/base/upload-queue/upload-progress-list.d.ts +55 -0
- package/dist/components/base/upload-queue/upload-tray.d.ts +46 -0
- package/dist/components/base/value-inputs/color-input.d.ts +26 -0
- package/dist/components/base/value-inputs/date-time-input.d.ts +19 -0
- package/dist/components/base/value-inputs/index.d.ts +25 -0
- package/dist/components/base/value-inputs/phone-input.d.ts +48 -0
- package/dist/components/base/value-inputs/slider.d.ts +59 -0
- package/dist/components/base/value-inputs/tags-input.d.ts +67 -0
- package/dist/components/blocks/admin/action-surfaces/index.d.ts +127 -0
- package/dist/components/blocks/admin/admin.strings.d.ts +11 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.d.ts +2 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.strings.d.ts +16 -0
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +58 -0
- package/dist/components/blocks/admin/api-key-list/index.d.ts +3 -0
- package/dist/components/blocks/admin/index.d.ts +4 -0
- package/dist/components/blocks/admin/role-permission/index.d.ts +2 -0
- package/dist/components/blocks/admin/role-permission/role-permission.d.ts +5 -0
- package/dist/components/blocks/admin/role-permission/types.d.ts +26 -0
- package/dist/components/blocks/ai/ai-agent/ai-agent.d.ts +5 -0
- package/dist/components/blocks/ai/ai-agent/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-agent/types.d.ts +30 -0
- package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +5 -0
- package/dist/components/blocks/ai/ai-artifact/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-artifact/types.d.ts +50 -0
- package/dist/components/blocks/ai/ai-attachment/ai-attachment.d.ts +5 -0
- package/dist/components/blocks/ai/ai-attachment/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-attachment/types.d.ts +35 -0
- package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +5 -0
- package/dist/components/blocks/ai/ai-chain-of-thought/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +36 -0
- package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +5 -0
- package/dist/components/blocks/ai/ai-citation/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-citation/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai-classification/ai-classification.d.ts +2 -0
- package/dist/components/blocks/ai/ai-classification/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-classification/types.d.ts +27 -0
- package/dist/components/blocks/ai/ai-code-block/ai-code-block.d.ts +6 -0
- package/dist/components/blocks/ai/ai-code-block/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-code-block/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai-confidence/ai-confidence.d.ts +5 -0
- package/dist/components/blocks/ai/ai-confidence/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-confidence/types.d.ts +25 -0
- package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +5 -0
- package/dist/components/blocks/ai/ai-confirmation/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-confirmation/types.d.ts +40 -0
- package/dist/components/blocks/ai/ai-feedback/ai-feedback.d.ts +5 -0
- package/dist/components/blocks/ai/ai-feedback/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-feedback/types.d.ts +24 -0
- package/dist/components/blocks/ai/ai-file-tree/ai-file-tree.d.ts +5 -0
- package/dist/components/blocks/ai/ai-file-tree/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-file-tree/types.d.ts +59 -0
- package/dist/components/blocks/ai/ai-inline-citation/ai-inline-citation.d.ts +5 -0
- package/dist/components/blocks/ai/ai-inline-citation/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +22 -0
- package/dist/components/blocks/ai/ai-message-bubble/ai-message-bubble.d.ts +6 -0
- package/dist/components/blocks/ai/ai-message-bubble/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-message-bubble/types.d.ts +35 -0
- package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +5 -0
- package/dist/components/blocks/ai/ai-package-info/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-package-info/types.d.ts +39 -0
- package/dist/components/blocks/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +5 -0
- package/dist/components/blocks/ai/ai-prompt-suggestions/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-prompt-suggestions/types.d.ts +26 -0
- package/dist/components/blocks/ai/ai-reasoning/ai-reasoning.d.ts +5 -0
- package/dist/components/blocks/ai/ai-reasoning/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +32 -0
- package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +5 -0
- package/dist/components/blocks/ai/ai-shimmer/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-shimmer/types.d.ts +11 -0
- package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +5 -0
- package/dist/components/blocks/ai/ai-sources/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/types.d.ts +44 -0
- package/dist/components/blocks/ai/ai-summary/ai-summary.d.ts +2 -0
- package/dist/components/blocks/ai/ai-summary/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-summary/types.d.ts +32 -0
- package/dist/components/blocks/ai/ai-task/ai-task.d.ts +5 -0
- package/dist/components/blocks/ai/ai-task/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-task/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai-token-usage/ai-token-usage.d.ts +5 -0
- package/dist/components/blocks/ai/ai-token-usage/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-token-usage/types.d.ts +22 -0
- package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +5 -0
- package/dist/components/blocks/ai/ai-tool-call/index.d.ts +2 -0
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +38 -0
- package/dist/components/blocks/ai/ai.strings.d.ts +36 -0
- package/dist/components/blocks/ai/index.d.ts +24 -0
- package/dist/components/blocks/ai/use-copy-feedback.d.ts +6 -0
- package/dist/components/blocks/analytics/activity-heatmap/activity-heatmap.d.ts +5 -0
- package/dist/components/blocks/analytics/activity-heatmap/index.d.ts +2 -0
- package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +20 -0
- package/dist/components/blocks/analytics/analytics.strings.d.ts +35 -0
- package/dist/components/blocks/analytics/atoms/metric-skeleton.d.ts +13 -0
- package/dist/components/blocks/analytics/atoms/metric-sparkline.d.ts +15 -0
- package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +15 -0
- package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +42 -0
- package/dist/components/blocks/analytics/chart-card/index.d.ts +1 -0
- package/dist/components/blocks/analytics/format-metric-value.d.ts +8 -0
- package/dist/components/blocks/analytics/index.d.ts +35 -0
- package/dist/components/blocks/analytics/metric/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric/metric.d.ts +28 -0
- package/dist/components/blocks/analytics/metric-bar/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-bar/metric-bar.d.ts +22 -0
- package/dist/components/blocks/analytics/metric-comparison/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +26 -0
- package/dist/components/blocks/analytics/metric-gradient/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-gradient/metric-gradient.d.ts +19 -0
- package/dist/components/blocks/analytics/metric-grid/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +33 -0
- package/dist/components/blocks/analytics/metric-micro-grid/index.d.ts +1 -0
- package/dist/components/blocks/analytics/metric-micro-grid/metric-micro-grid.d.ts +23 -0
- package/dist/components/blocks/analytics/time-ruler/index.d.ts +2 -0
- package/dist/components/blocks/analytics/time-ruler/time-ruler.d.ts +5 -0
- package/dist/components/blocks/analytics/time-ruler/types.d.ts +32 -0
- package/dist/components/blocks/analytics/types.d.ts +83 -0
- package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
- package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
- package/dist/components/blocks/collaboration/index.d.ts +1 -0
- package/dist/components/blocks/collaboration/message/index.d.ts +2 -0
- package/dist/components/blocks/collaboration/message/message.d.ts +8 -0
- package/dist/components/blocks/collaboration/message/message.types.d.ts +30 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +5 -0
- package/dist/components/blocks/commerce/address-card/index.d.ts +2 -0
- package/dist/components/blocks/commerce/address-card/types.d.ts +43 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +12 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +36 -0
- package/dist/components/blocks/commerce/booking-calendar-event-card/index.d.ts +2 -0
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +5 -0
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -0
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +53 -0
- package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +5 -0
- package/dist/components/blocks/commerce/coupon-input/index.d.ts +2 -0
- package/dist/components/blocks/commerce/coupon-input/types.d.ts +35 -0
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +5 -0
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -0
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +27 -0
- package/dist/components/blocks/commerce/format-signed-amount.d.ts +22 -0
- package/dist/components/blocks/commerce/giftcard-card/giftcard-card.d.ts +62 -0
- package/dist/components/blocks/commerce/giftcard-card/index.d.ts +2 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +10 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +9 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +7 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +11 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +10 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +10 -0
- package/dist/components/blocks/commerce/giftcard-card/types.d.ts +83 -0
- package/dist/components/blocks/commerce/index.d.ts +34 -0
- package/dist/components/blocks/commerce/inventory-level/index.d.ts +3 -0
- package/dist/components/blocks/commerce/inventory-level/inventory-level.d.ts +5 -0
- package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +10 -0
- package/dist/components/blocks/commerce/inventory-level/types.d.ts +20 -0
- package/dist/components/blocks/commerce/inventory-section/index.d.ts +2 -0
- package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +5 -0
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +105 -0
- package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -0
- package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +5 -0
- package/dist/components/blocks/commerce/invoice-header/types.d.ts +51 -0
- package/dist/components/blocks/commerce/invoice-line-items/index.d.ts +2 -0
- package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +5 -0
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +64 -0
- package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -0
- package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +5 -0
- package/dist/components/blocks/commerce/invoice-mini/types.d.ts +28 -0
- package/dist/components/blocks/commerce/loyalty-points/index.d.ts +2 -0
- package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +5 -0
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +32 -0
- package/dist/components/blocks/commerce/order-status/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-status/order-status.d.ts +5 -0
- package/dist/components/blocks/commerce/order-status/types.d.ts +35 -0
- package/dist/components/blocks/commerce/order-timeline/index.d.ts +2 -0
- package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +5 -0
- package/dist/components/blocks/commerce/order-timeline/types.d.ts +22 -0
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -0
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +5 -0
- package/dist/components/blocks/commerce/payment-method/types.d.ts +33 -0
- package/dist/components/blocks/commerce/payment-timeline/index.d.ts +2 -0
- package/dist/components/blocks/commerce/payment-timeline/payment-timeline.d.ts +5 -0
- package/dist/components/blocks/commerce/payment-timeline/types.d.ts +15 -0
- package/dist/components/blocks/commerce/receipt/index.d.ts +3 -0
- package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +2 -0
- package/dist/components/blocks/commerce/receipt/receipt.d.ts +3 -0
- package/dist/components/blocks/commerce/receipt/types.d.ts +42 -0
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -0
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +5 -0
- package/dist/components/blocks/commerce/refund-status/types.d.ts +37 -0
- package/dist/components/blocks/commerce/seo-listing/index.d.ts +3 -0
- package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +5 -0
- package/dist/components/blocks/commerce/seo-listing/seo-listing-score.d.ts +5 -0
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +92 -0
- package/dist/components/blocks/commerce/shipment-tracking/index.d.ts +2 -0
- package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +5 -0
- package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +44 -0
- package/dist/components/blocks/commerce/subscription-summary/index.d.ts +2 -0
- package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +5 -0
- package/dist/components/blocks/commerce/subscription-summary/types.d.ts +39 -0
- package/dist/components/blocks/commerce/tax-breakdown/index.d.ts +2 -0
- package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +5 -0
- package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +34 -0
- package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -0
- package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +29 -0
- package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +5 -0
- package/dist/components/blocks/commerce/vendor-profile/index.d.ts +3 -0
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +86 -0
- package/dist/components/blocks/commerce/vendor-profile/vendor-profile.d.ts +2 -0
- package/dist/components/blocks/commerce/voucher-entry/index.d.ts +2 -0
- package/dist/components/blocks/commerce/voucher-entry/types.d.ts +33 -0
- package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +6 -0
- package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +19 -0
- package/dist/components/blocks/data-display/dense-info-card/index.d.ts +7 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +5 -0
- package/dist/components/blocks/data-display/dense-info-card/types.d.ts +183 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.d.ts +2 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.strings.d.ts +19 -0
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +86 -0
- package/dist/components/blocks/data-display/empty-state/index.d.ts +5 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +9 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +9 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +25 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/search-glass.d.ts +9 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +11 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/types.d.ts +4 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/users-circle.d.ts +9 -0
- package/dist/components/blocks/data-display/index.d.ts +6 -0
- package/dist/components/blocks/data-display/inline-stat/index.d.ts +1 -0
- package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +35 -0
- package/dist/components/blocks/data-display/metadata/index.d.ts +4 -0
- package/dist/components/blocks/data-display/metadata/metadata-list.d.ts +78 -0
- package/dist/components/blocks/data-display/metadata/metadata-list.strings.d.ts +18 -0
- package/dist/components/blocks/data-display/metadata/metadata-value.d.ts +142 -0
- package/dist/components/blocks/data-display/relationship-card-frame.d.ts +40 -0
- package/dist/components/blocks/onboarding/checklist/checklist.d.ts +2 -0
- package/dist/components/blocks/onboarding/checklist/checklist.strings.d.ts +15 -0
- package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +64 -0
- package/dist/components/blocks/onboarding/checklist/index.d.ts +4 -0
- package/dist/components/blocks/onboarding/checklist/partials/step-status-indicator.d.ts +12 -0
- package/dist/components/blocks/onboarding/index.d.ts +7 -0
- package/dist/components/blocks/planning/index.d.ts +3 -0
- package/dist/components/blocks/planning/task-card.d.ts +3 -0
- package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
- package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
- package/dist/components/blocks/timelines/changelog/changelog-timeline.d.ts +5 -0
- package/dist/components/blocks/timelines/changelog/index.d.ts +2 -0
- package/dist/components/blocks/timelines/changelog/types.d.ts +33 -0
- package/dist/components/blocks/timelines/index.d.ts +5 -0
- package/dist/components/blocks/timelines/milestones/index.d.ts +2 -0
- package/dist/components/blocks/timelines/milestones/milestones-timeline.d.ts +5 -0
- package/dist/components/blocks/timelines/milestones/types.d.ts +32 -0
- package/dist/components/blocks/timelines/shared/index.d.ts +1 -0
- package/dist/components/blocks/timelines/shared/timeline.d.ts +40 -0
- package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -0
- package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +9 -0
- package/dist/components/blocks/timelines/steps-card/types.d.ts +38 -0
- package/dist/components/features/activities/activities-feed.d.ts +5 -0
- package/dist/components/features/activities/activities.config.d.ts +6 -0
- package/dist/components/features/activities/activities.strings.d.ts +38 -0
- package/dist/components/features/activities/activities.types.d.ts +431 -0
- package/dist/components/features/activities/activity-event-adapter.d.ts +38 -0
- package/dist/components/features/activities/activity-log.d.ts +6 -0
- package/dist/components/features/activities/hooks/index.d.ts +2 -0
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +44 -0
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +22 -0
- package/dist/components/features/activities/index.d.ts +8 -0
- package/dist/components/features/activities/partials/activity-actions-menu.d.ts +11 -0
- package/dist/components/features/activities/partials/activity-changes.d.ts +8 -0
- package/dist/components/features/activities/partials/activity-date-label.d.ts +9 -0
- package/dist/components/features/activities/partials/activity-empty-state.d.ts +9 -0
- package/dist/components/features/activities/partials/activity-headline.d.ts +20 -0
- package/dist/components/features/activities/partials/activity-marker.d.ts +25 -0
- package/dist/components/features/activities/partials/activity-resource-tag.d.ts +11 -0
- package/dist/components/features/activities/partials/activity-row.d.ts +68 -0
- package/dist/components/features/activities/partials/index.d.ts +8 -0
- package/dist/components/features/activities/partials/tone-tokens.d.ts +25 -0
- package/dist/components/features/ai-chat/ai-chat.d.ts +81 -0
- package/dist/components/features/ai-chat/ai-chat.strings.d.ts +56 -0
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +170 -0
- package/dist/components/features/ai-chat/hooks/index.d.ts +1 -0
- package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +15 -0
- package/dist/components/features/ai-chat/index.d.ts +5 -0
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +15 -0
- package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +28 -0
- package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +22 -0
- package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +21 -0
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +59 -0
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +19 -0
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +18 -0
- package/dist/components/features/ai-chat/partials/index.d.ts +7 -0
- package/dist/components/features/async-preview/async-preview.d.ts +84 -0
- package/dist/components/features/async-preview/async-preview.strings.d.ts +14 -0
- package/dist/components/features/async-preview/async-preview.types.d.ts +133 -0
- package/dist/components/features/async-preview/hooks/index.d.ts +1 -0
- package/dist/components/features/async-preview/hooks/use-async-preview.d.ts +8 -0
- package/dist/components/features/async-preview/index.d.ts +6 -0
- package/dist/components/features/async-preview/partials/index.d.ts +1 -0
- package/dist/components/features/async-preview/preview-trigger-cell.d.ts +45 -0
- package/dist/components/features/combobox/async-resource-combobox.d.ts +94 -0
- package/dist/components/features/combobox/combobox.d.ts +20 -0
- package/dist/components/features/combobox/combobox.strings.d.ts +14 -0
- package/dist/components/features/combobox/components/combobox-dropdown.d.ts +57 -0
- package/dist/components/features/combobox/components/error-message.d.ts +15 -0
- package/dist/components/features/combobox/components/highlighted-text.d.ts +14 -0
- package/dist/components/features/combobox/components/index.d.ts +13 -0
- package/dist/components/features/combobox/components/loading-more.d.ts +15 -0
- package/dist/components/features/combobox/components/status-content.d.ts +21 -0
- package/dist/components/features/combobox/constants.d.ts +19 -0
- package/dist/components/features/combobox/hooks/index.d.ts +2 -0
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +30 -0
- package/dist/components/features/combobox/hooks/use-debounced-search.d.ts +10 -0
- package/dist/components/features/combobox/hooks/use-grouped-items.d.ts +9 -0
- package/dist/components/features/combobox/hooks/use-load-more.d.ts +12 -0
- package/dist/components/features/combobox/index.d.ts +13 -0
- package/dist/components/features/combobox/types.d.ts +184 -0
- package/dist/components/features/comments/comments-provider.d.ts +15 -0
- package/dist/components/features/comments/comments.d.ts +2 -0
- package/dist/components/features/comments/comments.strings.d.ts +91 -0
- package/dist/components/features/comments/comments.types.d.ts +369 -0
- package/dist/components/features/comments/hooks/index.d.ts +4 -0
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +28 -0
- package/dist/components/features/comments/hooks/use-comments.d.ts +34 -0
- package/dist/components/features/comments/index.d.ts +8 -0
- package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +23 -0
- package/dist/components/features/comments/partials/comment-composer.d.ts +12 -0
- package/dist/components/features/comments/partials/comment-content.d.ts +13 -0
- package/dist/components/features/comments/partials/comment-empty.d.ts +12 -0
- package/dist/components/features/comments/partials/comment-item.d.ts +3 -0
- package/dist/components/features/comments/partials/comment-timeline.d.ts +3 -0
- package/dist/components/features/comments/partials/index.d.ts +9 -0
- package/dist/components/features/data-view/data-view-filtering.d.ts +3 -0
- package/dist/components/features/data-view/data-view.d.ts +7 -0
- package/dist/components/features/data-view/data-view.strings.d.ts +9 -0
- package/dist/components/features/data-view/data-view.types.d.ts +191 -0
- package/dist/components/features/data-view/hooks/index.d.ts +1 -0
- package/dist/components/features/data-view/hooks/use-data-view.d.ts +2 -0
- package/dist/components/features/data-view/index.d.ts +4 -0
- package/dist/components/features/email-composer/document.d.ts +8 -0
- package/dist/components/features/email-composer/email-composer.d.ts +2 -0
- package/dist/components/features/email-composer/email-html.d.ts +5 -0
- package/dist/components/features/email-composer/engine.d.ts +18 -0
- package/dist/components/features/email-composer/http.d.ts +6 -0
- package/dist/components/features/email-composer/index.d.ts +6 -0
- package/dist/components/features/email-composer/partials/body-editor.d.ts +11 -0
- package/dist/components/features/email-composer/partials/data-status.d.ts +8 -0
- package/dist/components/features/email-composer/partials/html-preview.d.ts +6 -0
- package/dist/components/features/email-composer/partials/recipients.d.ts +14 -0
- package/dist/components/features/email-composer/partials/variables.d.ts +11 -0
- package/dist/components/features/email-composer/strings.d.ts +79 -0
- package/dist/components/features/email-composer/types.d.ts +195 -0
- package/dist/components/features/email-composer/use-composer.d.ts +119 -0
- package/dist/components/features/event-calendar/colors.d.ts +29 -0
- package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar-event-card.d.ts +16 -0
- package/dist/components/features/event-calendar/event-calendar-header.d.ts +8 -0
- package/dist/components/features/event-calendar/event-calendar-legend.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar.d.ts +5 -0
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +350 -0
- package/dist/components/features/event-calendar/index.d.ts +11 -0
- package/dist/components/features/event-calendar/use-event-calendar-data.d.ts +15 -0
- package/dist/components/features/event-calendar/use-event-calendar.d.ts +24 -0
- package/dist/components/features/filters/facets/async-select-facet.d.ts +28 -0
- package/dist/components/features/filters/facets/date-facet.d.ts +18 -0
- package/dist/components/features/filters/facets/range-facet.d.ts +30 -0
- package/dist/components/features/filters/facets/search-facet.d.ts +27 -0
- package/dist/components/features/filters/facets/select-facet.d.ts +19 -0
- package/dist/components/features/filters/facets/tags-facet.d.ts +27 -0
- package/dist/components/features/filters/filter-context.d.ts +61 -0
- package/dist/components/features/filters/filter-layout.d.ts +16 -0
- package/dist/components/features/filters/filter-query.d.ts +21 -0
- package/dist/components/features/filters/filters.strings.d.ts +103 -0
- package/dist/components/features/filters/filters.types.d.ts +222 -0
- package/dist/components/features/filters/hooks/index.d.ts +3 -0
- package/dist/components/features/filters/hooks/use-async-options.d.ts +16 -0
- package/dist/components/features/filters/hooks/use-filter-groups.d.ts +16 -0
- package/dist/components/features/filters/index.d.ts +42 -0
- package/dist/components/features/filters/operator-options.d.ts +9 -0
- package/dist/components/features/filters/partials/active-filter-item.d.ts +37 -0
- package/dist/components/features/filters/partials/async-filter-content.d.ts +21 -0
- package/dist/components/features/filters/partials/date-filter-content.d.ts +14 -0
- package/dist/components/features/filters/partials/filter-error-boundary.d.ts +9 -0
- package/dist/components/features/filters/partials/filter-list-content.d.ts +24 -0
- package/dist/components/features/filters/partials/filter-list-item.d.ts +19 -0
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +22 -0
- package/dist/components/features/filters/partials/filter-pill.d.ts +26 -0
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +36 -0
- package/dist/components/features/filters/partials/filter-tabs.d.ts +14 -0
- package/dist/components/features/filters/partials/filter-value-display.d.ts +21 -0
- package/dist/components/features/filters/partials/filters-button.d.ts +32 -0
- package/dist/components/features/filters/partials/index.d.ts +14 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +28 -0
- package/dist/components/features/filters/partials/search-filters-list.d.ts +25 -0
- package/dist/components/features/filters/partials/tags-filter-content.d.ts +28 -0
- package/dist/components/features/filters/utils/filter-utils.d.ts +37 -0
- package/dist/components/features/filters/validators.d.ts +63 -0
- package/dist/components/features/global-search/global-search-dialog.d.ts +13 -0
- package/dist/components/features/global-search/global-search.d.ts +52 -0
- package/dist/components/features/global-search/global-search.strings.d.ts +36 -0
- package/dist/components/features/global-search/global-search.types.d.ts +105 -0
- package/dist/components/features/global-search/hooks/index.d.ts +2 -0
- package/dist/components/features/global-search/hooks/use-global-search.d.ts +33 -0
- package/dist/components/features/global-search/index.d.ts +9 -0
- package/dist/components/features/global-search/partials/global-search-empty-state.d.ts +7 -0
- package/dist/components/features/global-search/partials/global-search-footer.d.ts +13 -0
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +12 -0
- package/dist/components/features/global-search/partials/global-search-input.d.ts +17 -0
- package/dist/components/features/global-search/partials/global-search-result-row.d.ts +16 -0
- package/dist/components/features/global-search/partials/global-search-tabs.d.ts +13 -0
- package/dist/components/features/global-search/partials/index.d.ts +12 -0
- package/dist/components/features/global-search/partials/tone-palettes.d.ts +8 -0
- package/dist/components/features/kanban/hooks/index.d.ts +1 -0
- package/dist/components/features/kanban/hooks/use-kanban.d.ts +32 -0
- package/dist/components/features/kanban/index.d.ts +5 -0
- package/dist/components/features/kanban/kanban-context.d.ts +25 -0
- package/dist/components/features/kanban/kanban-keyboard.d.ts +10 -0
- package/dist/components/features/kanban/kanban.d.ts +38 -0
- package/dist/components/features/kanban/kanban.strings.d.ts +24 -0
- package/dist/components/features/kanban/kanban.types.d.ts +168 -0
- package/dist/components/features/map/index.d.ts +13 -0
- package/dist/components/features/map/map.d.ts +166 -0
- package/dist/components/features/map/place-autocomplete.d.ts +97 -0
- package/dist/components/features/map/public-leaflet.types.d.ts +71 -0
- package/dist/components/features/map/use-map-color-scheme.d.ts +2 -0
- package/dist/components/features/media-library/hooks/index.d.ts +1 -0
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +5 -0
- package/dist/components/features/media-library/index.d.ts +6 -0
- package/dist/components/features/media-library/media-library.d.ts +3 -0
- package/dist/components/features/media-library/media-library.strings.d.ts +124 -0
- package/dist/components/features/media-library/media-library.types.d.ts +568 -0
- package/dist/components/features/media-library/media-resource-gallery.d.ts +2 -0
- package/dist/components/features/media-library/partials/index.d.ts +1 -0
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +10 -0
- package/dist/components/features/mentions/hooks/index.d.ts +2 -0
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +41 -0
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +35 -0
- package/dist/components/features/mentions/index.d.ts +5 -0
- package/dist/components/features/mentions/mentions.strings.d.ts +26 -0
- package/dist/components/features/mentions/mentions.types.d.ts +100 -0
- package/dist/components/features/mentions/partials/index.d.ts +4 -0
- package/dist/components/features/mentions/partials/mention-chip.d.ts +29 -0
- package/dist/components/features/mentions/partials/mention-content.d.ts +22 -0
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +36 -0
- package/dist/components/features/mentions/partials/mention-picker.d.ts +31 -0
- package/dist/components/features/mentions/utils/build-mention-html.d.ts +24 -0
- package/dist/components/features/mentions/utils/index.d.ts +3 -0
- package/dist/components/features/mentions/utils/parse-mentions-from-html.d.ts +13 -0
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +16 -0
- package/dist/components/features/overlays/alert-dialog.d.ts +4 -0
- package/dist/components/features/overlays/dialog.d.ts +4 -0
- package/dist/components/features/overlays/drawer.d.ts +4 -0
- package/dist/components/features/overlays/hooks/index.d.ts +2 -0
- package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +24 -0
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +36 -0
- package/dist/components/features/overlays/index.d.ts +6 -0
- package/dist/components/features/overlays/overlays.strings.d.ts +19 -0
- package/dist/components/features/overlays/overlays.types.d.ts +169 -0
- package/dist/components/features/products/components/index.d.ts +17 -0
- package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
- package/dist/components/features/products/components/product-details-card.d.ts +5 -0
- package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
- package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
- package/dist/components/features/products/components/product-options-matrix.d.ts +5 -0
- package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
- package/dist/components/features/products/components/product-overview.d.ts +5 -0
- package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
- package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
- package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-details.d.ts +5 -0
- package/dist/components/features/products/components/product-variant-editor.d.ts +5 -0
- package/dist/components/features/products/components/product-variants-bulk-table.d.ts +5 -0
- package/dist/components/features/products/components/product-variants-manager.d.ts +5 -0
- package/dist/components/features/products/components/product-variants-table.d.ts +5 -0
- package/dist/components/features/products/index.d.ts +3 -0
- package/dist/components/features/products/partials/index.d.ts +7 -0
- package/dist/components/features/products/partials/product-actions.d.ts +10 -0
- package/dist/components/features/products/partials/product-empty-state.d.ts +10 -0
- package/dist/components/features/products/partials/product-metric-tile.d.ts +4 -0
- package/dist/components/features/products/partials/product-rows.d.ts +35 -0
- package/dist/components/features/products/partials/product-tone.d.ts +8 -0
- package/dist/components/features/products/partials/product-values.d.ts +1 -0
- package/dist/components/features/products/partials/product-variant-table-parts.d.ts +28 -0
- package/dist/components/features/products/products.strings.d.ts +308 -0
- package/dist/components/features/products/products.types.d.ts +906 -0
- package/dist/components/features/questionnaire/index.d.ts +3 -0
- package/dist/components/features/questionnaire/questionnaire-control.d.ts +3 -0
- package/dist/components/features/questionnaire/questionnaire.d.ts +2 -0
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +98 -0
- package/dist/components/features/questionnaire/questionnaire.utils.d.ts +5 -0
- package/dist/components/features/resource/index.d.ts +3 -0
- package/dist/components/features/resource/resource.d.ts +8 -0
- package/dist/components/features/resource/resource.strings.d.ts +12 -0
- package/dist/components/features/resource/resource.types.d.ts +161 -0
- package/dist/components/features/resource-assignment/hooks/index.d.ts +2 -0
- package/dist/components/features/resource-assignment/hooks/use-shared-resource-card.d.ts +32 -0
- package/dist/components/features/resource-assignment/index.d.ts +6 -0
- package/dist/components/features/resource-assignment/partials/default-shared-resource-partials.d.ts +31 -0
- package/dist/components/features/resource-assignment/partials/index.d.ts +1 -0
- package/dist/components/features/resource-assignment/resource-assignment.d.ts +12 -0
- package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +17 -0
- package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +193 -0
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +6 -0
- package/dist/components/features/rich-text-editor/index.d.ts +5 -0
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +28 -0
- package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +32 -0
- package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +7 -0
- package/dist/components/features/rich-text-editor/partials/index.d.ts +7 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +8 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +3 -0
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +33 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.d.ts +3 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +6 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +32 -0
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +111 -0
- package/dist/components/features/schema-form/hooks/index.d.ts +1 -0
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +23 -0
- package/dist/components/features/schema-form/index.d.ts +5 -0
- package/dist/components/features/schema-form/partials/index.d.ts +3 -0
- package/dist/components/features/schema-form/partials/schema-form-actions.d.ts +23 -0
- package/dist/components/features/schema-form/partials/schema-form-empty.d.ts +12 -0
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +12 -0
- package/dist/components/features/schema-form/schema-form.d.ts +5 -0
- package/dist/components/features/schema-form/schema-form.strings.d.ts +11 -0
- package/dist/components/features/schema-form/schema-form.types.d.ts +271 -0
- package/dist/components/features/schema-form/schema-form.utils.d.ts +18 -0
- package/dist/components/features/suggestions/hooks/index.d.ts +1 -0
- package/dist/components/features/suggestions/hooks/use-suggestions.d.ts +9 -0
- package/dist/components/features/suggestions/index.d.ts +4 -0
- package/dist/components/features/suggestions/suggestions.d.ts +5 -0
- package/dist/components/features/suggestions/suggestions.strings.d.ts +16 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +79 -0
- package/dist/components/features/sync/index.d.ts +3 -0
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +5 -0
- package/dist/components/features/sync/sync.strings.d.ts +18 -0
- package/dist/components/features/sync/sync.types.d.ts +44 -0
- package/dist/components/features/table/column-visibility-toggle.d.ts +5 -0
- package/dist/components/features/table/data-table.d.ts +6 -0
- package/dist/components/features/table/filter-bar.d.ts +5 -0
- package/dist/components/features/table/hooks.d.ts +47 -0
- package/dist/components/features/table/index.d.ts +16 -0
- package/dist/components/features/table/pagination.d.ts +5 -0
- package/dist/components/features/table/partials/cell-renderers.d.ts +141 -0
- package/dist/components/features/table/partials/cell-value.d.ts +121 -0
- package/dist/components/features/table/partials/fullscreen-toggle.d.ts +16 -0
- package/dist/components/features/table/partials/resource-cell.d.ts +63 -0
- package/dist/components/features/table/partials/table-link.d.ts +3 -0
- package/dist/components/features/table/table-actions.d.ts +5 -0
- package/dist/components/features/table/table-body.d.ts +5 -0
- package/dist/components/features/table/table-header.d.ts +6 -0
- package/dist/components/features/table/table-helpers.d.ts +39 -0
- package/dist/components/features/table/table-toolbar.d.ts +5 -0
- package/dist/components/features/table/table.strings.d.ts +3 -0
- package/dist/components/features/table/table.types.d.ts +489 -0
- package/dist/components/features/theme-tweaker/admin-ui-theme-provider.d.ts +6 -0
- package/dist/components/features/theme-tweaker/index.d.ts +10 -0
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +49 -0
- package/dist/components/features/theme-tweaker/theme-scope.d.ts +7 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.d.ts +2 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.fields.d.ts +7 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.recipes.d.ts +25 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +75 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +161 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +23 -0
- package/dist/components/features/theme-tweaker/use-applied-theme.d.ts +11 -0
- package/dist/components/layout/app-shell/app-layout.d.ts +12 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts +151 -0
- package/dist/components/layout/app-shell/index.d.ts +6 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +2 -0
- package/dist/components/layout/app-shell/stacked-layout.d.ts +2 -0
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +2 -0
- package/dist/components/layout/auth/auth-card.d.ts +2 -0
- package/dist/components/layout/auth/auth-footer-links.d.ts +2 -0
- package/dist/components/layout/auth/auth-form.d.ts +11 -0
- package/dist/components/layout/auth/auth-hooks.d.ts +4 -0
- package/dist/components/layout/auth/auth-method-switch.d.ts +4 -0
- package/dist/components/layout/auth/auth-shell.d.ts +2 -0
- package/dist/components/layout/auth/auth-social-providers.d.ts +3 -0
- package/dist/components/layout/auth/auth-split-panel.d.ts +2 -0
- package/dist/components/layout/auth/auth.strings.d.ts +21 -0
- package/dist/components/layout/auth/auth.types.d.ts +282 -0
- package/dist/components/layout/auth/index.d.ts +10 -0
- package/dist/components/layout/containers/container.recipes.d.ts +5 -0
- package/dist/components/layout/containers/containers.types.d.ts +17 -0
- package/dist/components/layout/containers/content-container.d.ts +3 -0
- package/dist/components/layout/containers/index.d.ts +5 -0
- package/dist/components/layout/containers/page-viewport.d.ts +3 -0
- package/dist/components/layout/containers/section.d.ts +3 -0
- package/dist/components/layout/containers/two-column-layout.d.ts +27 -0
- package/dist/components/layout/header/header.d.ts +2 -0
- package/dist/components/layout/header/header.types.d.ts +198 -0
- package/dist/components/layout/header/index.d.ts +9 -0
- package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +4 -0
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +2 -0
- package/dist/components/layout/header/partials/header-notifications.d.ts +2 -0
- package/dist/components/layout/header/partials/header-search.d.ts +2 -0
- package/dist/components/layout/header/partials/header-tool-button.d.ts +4 -0
- package/dist/components/layout/header/partials/header-tool-popover.d.ts +2 -0
- package/dist/components/layout/header/partials/header-user-menu.d.ts +2 -0
- package/dist/components/layout/hooks/index.d.ts +3 -0
- package/dist/components/layout/hooks/use-active-path.d.ts +1 -0
- package/dist/components/layout/hooks/use-command-shortcut.d.ts +7 -0
- package/dist/components/layout/hooks/use-layout-link.d.ts +2 -0
- package/dist/components/layout/index.d.ts +24 -0
- package/dist/components/layout/layout.types.d.ts +91 -0
- package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +5 -0
- package/dist/components/layout/navigation/breadcrumb-progress/index.d.ts +2 -0
- package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +24 -0
- package/dist/components/layout/navigation/category-nav/category-nav.d.ts +5 -0
- package/dist/components/layout/navigation/category-nav/index.d.ts +2 -0
- package/dist/components/layout/navigation/category-nav/types.d.ts +22 -0
- package/dist/components/layout/navigation/index.d.ts +17 -0
- package/dist/components/layout/navigation/section-nav/index.d.ts +1 -0
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +29 -0
- package/dist/components/layout/navigation/side-nav.d.ts +58 -0
- package/dist/components/layout/page/index.d.ts +4 -0
- package/dist/components/layout/page/page.d.ts +3 -0
- package/dist/components/layout/page/page.types.d.ts +138 -0
- package/dist/components/layout/page/partials/page-actions.d.ts +2 -0
- package/dist/components/layout/page/partials/page-header.d.ts +2 -0
- package/dist/components/layout/settings/index.d.ts +1 -0
- package/dist/components/layout/settings/settings.d.ts +65 -0
- package/dist/components/layout/sidebar/app-sidebar.d.ts +7 -0
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +4 -0
- package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +10 -0
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +2 -0
- package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +23 -0
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +4 -0
- package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +2 -0
- package/dist/components/layout/sidebar/index.d.ts +11 -0
- package/dist/components/layout/sidebar/sidebar.context.d.ts +17 -0
- package/dist/components/layout/sidebar/sidebar.d.ts +9 -0
- package/dist/components/layout/sidebar/sidebar.types.d.ts +218 -0
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +29 -0
- package/dist/components/layout/workspace/index.d.ts +3 -0
- package/dist/components/layout/workspace/workspace.d.ts +6 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +18 -0
- package/dist/components/layout/workspace/workspace.types.d.ts +141 -0
- package/dist/components/primitives/date.d.ts +63 -0
- package/dist/components/primitives/dimensions.d.ts +30 -0
- package/dist/components/primitives/duration.d.ts +23 -0
- package/dist/components/primitives/file-size.d.ts +23 -0
- package/dist/components/primitives/index.d.ts +11 -0
- package/dist/components/primitives/initials-format.d.ts +21 -0
- package/dist/components/primitives/initials.d.ts +16 -0
- package/dist/components/primitives/link.d.ts +28 -0
- package/dist/components/primitives/money.d.ts +79 -0
- package/dist/components/primitives/name.d.ts +16 -0
- package/dist/components/primitives/number.d.ts +23 -0
- package/dist/components/primitives/value.d.ts +23 -0
- package/dist/components/typography/content-typography.d.ts +4 -0
- package/dist/components/typography/display-label.d.ts +5 -0
- package/dist/components/typography/heading.d.ts +16 -0
- package/dist/components/typography/index.d.ts +10 -0
- package/dist/components/typography/label.d.ts +8 -0
- package/dist/components/typography/rich-text/index.d.ts +2 -0
- package/dist/components/typography/rich-text/rich-text.d.ts +6 -0
- package/dist/components/typography/text-link.d.ts +7 -0
- package/dist/components/typography/text.d.ts +17 -0
- package/dist/components/typography/text.styles.d.ts +50 -0
- package/dist/components/ui/accordion.d.ts +6 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/avatar.d.ts +11 -0
- package/dist/components/ui/badge.d.ts +5 -0
- package/dist/components/ui/breadcrumb.d.ts +11 -0
- package/dist/components/ui/button-group.d.ts +12 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/calendar.d.ts +10 -0
- package/dist/components/ui/card.d.ts +11 -0
- package/dist/components/ui/checkbox.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts +9 -0
- package/dist/components/ui/combobox.d.ts +40 -0
- package/dist/components/ui/command.d.ts +50 -0
- package/dist/components/ui/dialog.d.ts +26 -0
- package/dist/components/ui/disclosure-panel.d.ts +14 -0
- package/dist/components/ui/empty.d.ts +11 -0
- package/dist/components/ui/input-group.d.ts +18 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/item.d.ts +22 -0
- package/dist/components/ui/overlay.recipes.d.ts +2 -0
- package/dist/components/ui/pagination.d.ts +17 -0
- package/dist/components/ui/popover.d.ts +22 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/separator.d.ts +3 -0
- package/dist/components/ui/sheet.d.ts +25 -0
- package/dist/components/ui/sidebar.d.ts +64 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/slot.d.ts +6 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/table.d.ts +13 -0
- package/dist/components/ui/tabs.d.ts +10 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/toggle-group.d.ts +12 -0
- package/dist/components/ui/toggle.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts +13 -0
- package/dist/containers-6s-ucRQQ.js +125 -0
- package/dist/containers-6s-ucRQQ.js.map +1 -0
- package/dist/content-typography-CnwgMJ37.js +6 -0
- package/dist/content-typography-CnwgMJ37.js.map +1 -0
- package/dist/copyable-B7SBXJMr.js +65 -0
- package/dist/copyable-B7SBXJMr.js.map +1 -0
- package/dist/data-display-cWIRdeaf.js +1129 -0
- package/dist/data-display-cWIRdeaf.js.map +1 -0
- package/dist/date-BFNMnrS5.js +140 -0
- package/dist/date-BFNMnrS5.js.map +1 -0
- package/dist/date-picker-CA6ogMQB.js +1521 -0
- package/dist/date-picker-CA6ogMQB.js.map +1 -0
- package/dist/date-pickers-BPIKLdsD.js +224 -0
- package/dist/date-pickers-BPIKLdsD.js.map +1 -0
- package/dist/disclosure-panel-B0HFNZ9x.js +35 -0
- package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -0
- package/dist/display-CFM5myut.js +343 -0
- package/dist/display-CFM5myut.js.map +1 -0
- package/dist/dropdown-menu-BlnyHr-9.js +186 -0
- package/dist/dropdown-menu-BlnyHr-9.js.map +1 -0
- package/dist/editable-text-recipe-Bkm6wKHp.js +10 -0
- package/dist/editable-text-recipe-Bkm6wKHp.js.map +1 -0
- package/dist/favicon.svg +1 -0
- package/dist/features/activities.js +1360 -0
- package/dist/features/activities.js.map +1 -0
- package/dist/features/ai-chat.js +567 -0
- package/dist/features/ai-chat.js.map +1 -0
- package/dist/features/async-preview.js +478 -0
- package/dist/features/async-preview.js.map +1 -0
- package/dist/features/combobox.js +3 -0
- package/dist/features/comments.js +3 -0
- package/dist/features/data-view.js +519 -0
- package/dist/features/data-view.js.map +1 -0
- package/dist/features/email-composer/engine.js +2 -0
- package/dist/features/email-composer.js +1099 -0
- package/dist/features/email-composer.js.map +1 -0
- package/dist/features/event-calendar.js +711 -0
- package/dist/features/event-calendar.js.map +1 -0
- package/dist/features/filters.js +3 -0
- package/dist/features/global-search.js +593 -0
- package/dist/features/global-search.js.map +1 -0
- package/dist/features/kanban.js +425 -0
- package/dist/features/kanban.js.map +1 -0
- package/dist/features/map/images/layers-2x.png +0 -0
- package/dist/features/map/images/layers.png +0 -0
- package/dist/features/map/images/marker-icon-2x.png +0 -0
- package/dist/features/map/images/marker-icon.png +0 -0
- package/dist/features/map/images/marker-shadow.png +0 -0
- package/dist/features/map/images/spritesheet-2x.png +0 -0
- package/dist/features/map/images/spritesheet.png +0 -0
- package/dist/features/map/images/spritesheet.svg +156 -0
- package/dist/features/map/style.css +809 -0
- package/dist/features/map.js +1052 -0
- package/dist/features/map.js.map +1 -0
- package/dist/features/media-library.js +2007 -0
- package/dist/features/media-library.js.map +1 -0
- package/dist/features/mentions.js +3 -0
- package/dist/features/overlays.js +3 -0
- package/dist/features/products.js +3077 -0
- package/dist/features/products.js.map +1 -0
- package/dist/features/questionnaire.js +366 -0
- package/dist/features/questionnaire.js.map +1 -0
- package/dist/features/resource-assignment.js +317 -0
- package/dist/features/resource-assignment.js.map +1 -0
- package/dist/features/resource.js +254 -0
- package/dist/features/resource.js.map +1 -0
- package/dist/features/rich-text-editor.js +23 -0
- package/dist/features/rich-text-editor.js.map +1 -0
- package/dist/features/schema-form.js +744 -0
- package/dist/features/schema-form.js.map +1 -0
- package/dist/features/suggestions.js +149 -0
- package/dist/features/suggestions.js.map +1 -0
- package/dist/features/sync.js +136 -0
- package/dist/features/sync.js.map +1 -0
- package/dist/features/table.js +3 -0
- package/dist/features/theme-tweaker.js +2083 -0
- package/dist/features/theme-tweaker.js.map +1 -0
- package/dist/feedback-DWUkgEjR.js +233 -0
- package/dist/feedback-DWUkgEjR.js.map +1 -0
- package/dist/field-affordance-recipes-IjzPrCTw.js +17 -0
- package/dist/field-affordance-recipes-IjzPrCTw.js.map +1 -0
- package/dist/field-state-recipes-CBTRt9Bt.js +11 -0
- package/dist/field-state-recipes-CBTRt9Bt.js.map +1 -0
- package/dist/filters-BhsUtsxW.js +2203 -0
- package/dist/filters-BhsUtsxW.js.map +1 -0
- package/dist/form-field-Bn7ZH1rA.js +48 -0
- package/dist/form-field-Bn7ZH1rA.js.map +1 -0
- package/dist/form-sizing-BWs70_a2.js +100 -0
- package/dist/form-sizing-BWs70_a2.js.map +1 -0
- package/dist/format-iamDSqs2.js +110 -0
- package/dist/format-iamDSqs2.js.map +1 -0
- package/dist/forms-B7pzS25o.js +194 -0
- package/dist/forms-B7pzS25o.js.map +1 -0
- package/dist/forms-numeric-BUBxELBv.js +867 -0
- package/dist/forms-numeric-BUBxELBv.js.map +1 -0
- package/dist/header-C59QZyxV.js +452 -0
- package/dist/header-C59QZyxV.js.map +1 -0
- package/dist/hooks/use-debounce.d.ts +1 -0
- package/dist/hooks/use-debounced-callback.d.ts +40 -0
- package/dist/hooks/use-files.d.ts +48 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/useFormErrors.d.ts +7 -0
- package/dist/hooks-CM1Vp9Pe.js +88 -0
- package/dist/hooks-CM1Vp9Pe.js.map +1 -0
- package/dist/http-CLTVJc5I.js +331 -0
- package/dist/http-CLTVJc5I.js.map +1 -0
- package/dist/icon-badge-Dv0RYQwj.js +53 -0
- package/dist/icon-badge-Dv0RYQwj.js.map +1 -0
- package/dist/icon-size-B6PVwjbC.js +18 -0
- package/dist/icon-size-B6PVwjbC.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +7 -0
- package/dist/initials-format-CDoQEOd_.js +35 -0
- package/dist/initials-format-CDoQEOd_.js.map +1 -0
- package/dist/input-WwYQZJzG.js +202 -0
- package/dist/input-WwYQZJzG.js.map +1 -0
- package/dist/input-ci9fIgFH.js +20 -0
- package/dist/input-ci9fIgFH.js.map +1 -0
- package/dist/item-pJ0GsOiJ.js +257 -0
- package/dist/item-pJ0GsOiJ.js.map +1 -0
- package/dist/layout/app-shell.js +3 -0
- package/dist/layout/auth.js +3 -0
- package/dist/layout/containers.js +3 -0
- package/dist/layout/header.js +3 -0
- package/dist/layout/hooks.js +3 -0
- package/dist/layout/navigation.js +3 -0
- package/dist/layout/page.js +3 -0
- package/dist/layout/settings.js +3 -0
- package/dist/layout/sidebar.js +4 -0
- package/dist/layout/workspace.js +3 -0
- package/dist/layout.js +13 -0
- package/dist/layout.types-Cn7aUzJp.js +20 -0
- package/dist/layout.types-Cn7aUzJp.js.map +1 -0
- package/dist/lib/action-presentation.d.ts +15 -0
- package/dist/lib/affordance-geometry.generated.d.ts +27 -0
- package/dist/lib/anchored-positioning.d.ts +5 -0
- package/dist/lib/command-filter.d.ts +1 -0
- package/dist/lib/component-vocabulary.d.ts +12 -0
- package/dist/lib/editable-text-recipe.d.ts +6 -0
- package/dist/lib/email-composer.d.ts +6 -0
- package/dist/lib/field-affordance-recipes.d.ts +20 -0
- package/dist/lib/field-state-recipes.d.ts +10 -0
- package/dist/lib/format.d.ts +53 -0
- package/dist/lib/motion-recipes.d.ts +8 -0
- package/dist/lib/navigation-row-recipes.d.ts +26 -0
- package/dist/lib/overlay-anatomy-recipes.d.ts +8 -0
- package/dist/lib/row-recipes.d.ts +3 -0
- package/dist/lib/sanitize-html.d.ts +8 -0
- package/dist/lib/strings.d.ts +16 -0
- package/dist/lib/strings.js +32 -0
- package/dist/lib/strings.js.map +1 -0
- package/dist/lib/surface-recipes.d.ts +27 -0
- package/dist/lib/theme-scope.d.ts +31 -0
- package/dist/lib/token-merge.generated.d.ts +2 -0
- package/dist/lib/track-recipes.d.ts +4 -0
- package/dist/lib/ui-provider/defaults.d.ts +12 -0
- package/dist/lib/ui-provider/hooks.d.ts +13 -0
- package/dist/lib/ui-provider/index.d.ts +28 -0
- package/dist/lib/ui-provider/provider.d.ts +15 -0
- package/dist/lib/ui-provider/scale.d.ts +5 -0
- package/dist/lib/ui-provider/store.d.ts +11 -0
- package/dist/lib/ui-provider/types.d.ts +157 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +2 -0
- package/dist/map-demo-tile.svg +1 -0
- package/dist/media-gallery-DhDRgnVZ.js +200 -0
- package/dist/media-gallery-DhDRgnVZ.js.map +1 -0
- package/dist/mentions-B8Ko-fhS.js +563 -0
- package/dist/mentions-B8Ko-fhS.js.map +1 -0
- package/dist/message-COsdEvXT.js +108 -0
- package/dist/message-COsdEvXT.js.map +1 -0
- package/dist/motion-recipes-B6jKXEcN.js +27 -0
- package/dist/motion-recipes-B6jKXEcN.js.map +1 -0
- package/dist/navigation-BUIn2Qxx.js +265 -0
- package/dist/navigation-BUIn2Qxx.js.map +1 -0
- package/dist/navigation-DBEu4POU.js +267 -0
- package/dist/navigation-DBEu4POU.js.map +1 -0
- package/dist/navigation-row-recipes-GVh11KiT.js +29 -0
- package/dist/navigation-row-recipes-GVh11KiT.js.map +1 -0
- package/dist/number-BNT_BIzJ.js +269 -0
- package/dist/number-BNT_BIzJ.js.map +1 -0
- package/dist/overlay.recipes-BxW5FIfK.js +6 -0
- package/dist/overlay.recipes-BxW5FIfK.js.map +1 -0
- package/dist/overlays-B11wZka6.js +982 -0
- package/dist/overlays-B11wZka6.js.map +1 -0
- package/dist/page-BV6ioQg3.js +202 -0
- package/dist/page-BV6ioQg3.js.map +1 -0
- package/dist/page-header-DQRa0jug.js +112 -0
- package/dist/page-header-DQRa0jug.js.map +1 -0
- package/dist/pagination-C29vvt3I.js +149 -0
- package/dist/pagination-C29vvt3I.js.map +1 -0
- package/dist/popover-CoLDEg19.js +194 -0
- package/dist/popover-CoLDEg19.js.map +1 -0
- package/dist/popover-menu-GLIQTJTx.js +99 -0
- package/dist/popover-menu-GLIQTJTx.js.map +1 -0
- package/dist/popover.recipes-zgBhMlUu.js +34 -0
- package/dist/popover.recipes-zgBhMlUu.js.map +1 -0
- package/dist/primitives-DKPOGVpj.js +330 -0
- package/dist/primitives-DKPOGVpj.js.map +1 -0
- package/dist/primitives.js +7 -0
- package/dist/progress-BOe8l_FZ.js +168 -0
- package/dist/progress-BOe8l_FZ.js.map +1 -0
- package/dist/receipt-BM8xsGFy.js +113 -0
- package/dist/receipt-BM8xsGFy.js.map +1 -0
- package/dist/rich-text-B7sBAdDG.js +32 -0
- package/dist/rich-text-B7sBAdDG.js.map +1 -0
- package/dist/rich-text-editor-CoVrTiSv.js +575 -0
- package/dist/rich-text-editor-CoVrTiSv.js.map +1 -0
- package/dist/rich-text-editor.recipes-DxvOE0Lp.js +72 -0
- package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +1 -0
- package/dist/rich-text-editor.strings-BpnIQgMl.js +25 -0
- package/dist/rich-text-editor.strings-BpnIQgMl.js.map +1 -0
- package/dist/row-recipes-DL8n7t_b.js +10 -0
- package/dist/row-recipes-DL8n7t_b.js.map +1 -0
- package/dist/sanitize-html-BG9FGe-j.js +64 -0
- package/dist/sanitize-html-BG9FGe-j.js.map +1 -0
- package/dist/scroll-area-BheMQ270.js +47 -0
- package/dist/scroll-area-BheMQ270.js.map +1 -0
- package/dist/select-B2mb-qN2.js +108 -0
- package/dist/select-B2mb-qN2.js.map +1 -0
- package/dist/separator-DO0EbCEm.js +17 -0
- package/dist/separator-DO0EbCEm.js.map +1 -0
- package/dist/separator-Gk_WXH-l.js +21 -0
- package/dist/separator-Gk_WXH-l.js.map +1 -0
- package/dist/services/actions/action-adapters.d.ts +77 -0
- package/dist/services/actions/action-overlay-outlet.d.ts +3 -0
- package/dist/services/actions/action-provider.d.ts +7 -0
- package/dist/services/actions/action-scope.d.ts +3 -0
- package/dist/services/actions/action-store.d.ts +55 -0
- package/dist/services/actions/actions.strings.d.ts +2 -0
- package/dist/services/actions/actions.types.d.ts +322 -0
- package/dist/services/actions/hooks.d.ts +8 -0
- package/dist/services/actions/index.d.ts +8 -0
- package/dist/services/actions.js +811 -0
- package/dist/services/actions.js.map +1 -0
- package/dist/settings-BnCyyPOJ.js +160 -0
- package/dist/settings-BnCyyPOJ.js.map +1 -0
- package/dist/sheet-B-q914Ad.js +205 -0
- package/dist/sheet-B-q914Ad.js.map +1 -0
- package/dist/sidebar-C_2p3Tfj.js +501 -0
- package/dist/sidebar-C_2p3Tfj.js.map +1 -0
- package/dist/sidebar-DPR7fmqN.js +598 -0
- package/dist/sidebar-DPR7fmqN.js.map +1 -0
- package/dist/skeleton-CmT1ppqb.js +264 -0
- package/dist/skeleton-CmT1ppqb.js.map +1 -0
- package/dist/slot-CLF9kLrS.js +16 -0
- package/dist/slot-CLF9kLrS.js.map +1 -0
- package/dist/smart-card-CYLn46e6.js +578 -0
- package/dist/smart-card-CYLn46e6.js.map +1 -0
- package/dist/spinner-BY9HbUEh.js +78 -0
- package/dist/spinner-BY9HbUEh.js.map +1 -0
- package/dist/structure-MvKVq-oL.js +95 -0
- package/dist/structure-MvKVq-oL.js.map +1 -0
- package/dist/structure.recipes-Bqhf9oIh.js +548 -0
- package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
- package/dist/style.css +3 -0
- package/dist/surface-recipes-CQfRr-VL.js +27 -0
- package/dist/surface-recipes-CQfRr-VL.js.map +1 -0
- package/dist/table-BS39xnlq.js +1424 -0
- package/dist/table-BS39xnlq.js.map +1 -0
- package/dist/table-DnlAJ-xR.js +146 -0
- package/dist/table-DnlAJ-xR.js.map +1 -0
- package/dist/tabs-B5cNMWiP.js +187 -0
- package/dist/tabs-B5cNMWiP.js.map +1 -0
- package/dist/text-inputs-Dh9XGyiS.js +331 -0
- package/dist/text-inputs-Dh9XGyiS.js.map +1 -0
- package/dist/text.styles-BwB7vAF2.js +64 -0
- package/dist/text.styles-BwB7vAF2.js.map +1 -0
- package/dist/theme-scope-kStaAer0.js +39 -0
- package/dist/theme-scope-kStaAer0.js.map +1 -0
- package/dist/theme.css +872 -0
- package/dist/timelines-B9ICkQcV.js +446 -0
- package/dist/timelines-B9ICkQcV.js.map +1 -0
- package/dist/track-recipes-LLPNVwFg.js +10 -0
- package/dist/track-recipes-LLPNVwFg.js.map +1 -0
- package/dist/tree-BdWSaoFT.js +185 -0
- package/dist/tree-BdWSaoFT.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/locale.types.d.ts +7 -0
- package/dist/types/pagination.types.d.ts +24 -0
- package/dist/typography/rich-text.js +3 -0
- package/dist/typography-Cv8MT-82.js +96 -0
- package/dist/typography-Cv8MT-82.js.map +1 -0
- package/dist/typography.js +3 -0
- package/dist/ui-provider-CftIB6TY.js +128 -0
- package/dist/ui-provider-CftIB6TY.js.map +1 -0
- package/dist/ui-provider.js +4 -0
- package/dist/upload-D8Za5x_c.js +849 -0
- package/dist/upload-D8Za5x_c.js.map +1 -0
- package/dist/upload-queue-hIIYBLS7.js +410 -0
- package/dist/upload-queue-hIIYBLS7.js.map +1 -0
- package/dist/usage-card-DnmnJ58D.js +458 -0
- package/dist/usage-card-DnmnJ58D.js.map +1 -0
- package/dist/use-debounce-DZ_1ZBPa.js +18 -0
- package/dist/use-debounce-DZ_1ZBPa.js.map +1 -0
- package/dist/use-debounced-callback-Cx1h-hdv.js +30 -0
- package/dist/use-debounced-callback-Cx1h-hdv.js.map +1 -0
- package/dist/use-file-drop-target-BX7GnhoQ.js +39 -0
- package/dist/use-file-drop-target-BX7GnhoQ.js.map +1 -0
- package/dist/use-mobile-vaLKwgyf.js +15 -0
- package/dist/use-mobile-vaLKwgyf.js.map +1 -0
- package/dist/utils-C2EKeIw3.js +72 -0
- package/dist/utils-C2EKeIw3.js.map +1 -0
- package/dist/value-inputs-DX2dbxjj.js +824 -0
- package/dist/value-inputs-DX2dbxjj.js.map +1 -0
- package/dist/workspace-C1PZmk8L.js +402 -0
- package/dist/workspace-C1PZmk8L.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +135 -0
- package/docs/consumer-skill/examples/app-layout.tsx +31 -0
- package/docs/consumer-skill/examples/composition.tsx +37 -0
- package/docs/consumer-skill/examples/content-workflow.tsx +13 -0
- package/docs/consumer-skill/examples/destructive-confirm.tsx +42 -0
- package/docs/consumer-skill/examples/detail.tsx +27 -0
- package/docs/consumer-skill/examples/edit.tsx +61 -0
- package/docs/consumer-skill/examples/email-composer.tsx +25 -0
- package/docs/consumer-skill/examples/hierarchy-capture.tsx +25 -0
- package/docs/consumer-skill/examples/index-table.tsx +36 -0
- package/docs/consumer-skill/examples/manifest.json +108 -0
- package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
- package/docs/consumer-skill/examples/receipt.tsx +19 -0
- package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
- package/docs/consumer-skill/references/composition.md +273 -0
- package/docs/consumer-skill/references/design-contract.md +146 -0
- package/docs/consumer-skill/references/discovery.md +50 -0
- package/docs/consumer-skill/references/installation.md +83 -0
- package/docs/consumer-skill/references/integration.md +69 -0
- package/docs/consumer-skill/references/public-api.json +17750 -0
- package/docs/consumer-skill/references/review.md +74 -0
- package/docs/consumer-skill/references/theming.md +56 -0
- package/docs/consumer-skill/references/tokens.json +422 -0
- package/docs/consumer-skill/references/workflows.md +135 -0
- package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
- package/docs/consumer-skill/scripts/composition-policy.mjs +155 -0
- package/docs/consumer-skill/scripts/discovery.mjs +84 -0
- package/docs/consumer-skill/scripts/find-components.mjs +11 -0
- package/docs/consumer-skill/scripts/surface-policy.mjs +22 -0
- package/package.json +642 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activities.js","names":["_Fragment","_Fragment","useDatesConfig","cn","Button","Text","TextLink","Grid","Stack","ActionMenu","Badge","EmptyState","CommentComposer","CommentItem","useComments","MentionContent","Fragment$1","defaultEventConfig","CircleDot","defaultActivityEventConfig","Plus","Pencil","FileEdit","Trash2","Ban","Sparkles","ArrowLeftRight","UserPlus","UserMinus","Mail","MailCheck","MailOpen","MailX","MessageSquare","Check","ShieldCheck","Heart","ShoppingBag","Star","Flag","LinkIcon","AlertTriangle","resolveEventConfig","map","event","defaultActivitiesStrings","interpolate","template","v","params","key","match","defaultDateGroupLabel","iso","strings","date","isValid","isToday","isYesterday","format","locale","useActivityFeed","expandedMap","setExpandedMap","useState","isControlled","expandedIds","keyed","useMemo","seen","activities","keyBase","activity","occurrence","groups","groupByDate","out","currentLabel","currentItems","labelFor","formatDateGroupLabel","item","label","defaultExpandedSet","next","defaultExpandedIds","controlledExpandedSet","setExpanded","useCallback","currentIds","expandedByDefault","value","id","nextIds","current","onExpandedIdsChange","isExpanded","toggleExpanded","expandAll","k","collapseAll","useActivityResources","registry","setRegistry","resources","seedRef","useRef","onChangeRef","onResourcesChange","emit","register","config","update","existing","partial","remove","setAll","reset","ref","actionToneToMenuVariant","tone","ActivityActionsMenu","actions","menuActions","action","onAction","ChangeValue","hasOld","change","hasNew","ActivityChanges","changes","className","ActivityDateLabel","first","ActivityEmptyState","hint","Activity","ACTIVITY_TONE","TONE_TO_BADGE_TONE","ActivityResourceTag","palette","Icon","fallbackText","resource","interactive","onClick","inner","chipClass","ActorNode","display","currentUserId","actorId","youLabel","text","actor","href","onActorClick","renderSegments","segments","index","segment","Fragment","props","renderFallback","fallbackHeadline","actorName","before","after","ActivityHeadline","ActivityMarker","density","last","ActivityMetadataPreview","visible","metadata","hiddenCount","moreLabel","ActivityMetadataGrid","ActivityRow","eventConfig","hasChanges","hasMetadata","hasResources","hasDetails","hasCustomDetails","customDetails","hasDetailPanel","hasDescription","showSecondaryRow","showRichBody","panelIsCollapsible","detailsCollapsible","showDetailPanel","expanded","showMetadataPreview","inlineActions","headlineNode","headlineOverride","markerNode","markerOverride","markerClassName","onActivityClick","hasNestedInteractive","onResourceClick","keyboardInteractive","rowSpacing","contentPadding","itemSpacing","rowClassName","contentClassName","sourceLabel","relativeTime","absoluteTime","onExpandedChange","hideChangesLabel","showChangesLabel","jsx","ChevronDown","ChevronRight","actionsLabel","cfg","getResourceConfig","res","ActionIcon","detailsClassName","defaultFormatAbsolute","resolveRowClassName","resolveTone","eventTone","ActivityFeed","eventConfigOverride","stringsProp","_getEventLabel","useStrings","eventConfigMap","dates","resolvedLocale","feed","fmtRelative","formatRelativeTime","fmtAbsolute","formatAbsoluteTime","loading","slots","totalRendered","acc","g","renderedSoFar","isFirstGroup","gi","group","isFirstInGroup","ii","isLast","eventCfg","getSourceLabel","sourceLabelTrimmed","actionsForActivity","ctx","customRow","onActivityExpandedChange","rowClassNames","sortEntries","arr","entries","ta","a","tb","b","order","toActivityTone","toActor","hasRenderableNode","resolveEventClassName","entry","mapEventToActivity","description","ActivityLog","activityStringsProp","activityStrings","formatRelative","configuredFormatter","parsed","parseISO","formatDistanceToNow","composerState","composer","sorted","eventRowClassNames","classNames","composerBlock","composerPosition","eventDetailsCollapsible","source","eventEntry","onEventAction","actionId","onEventExpandedChange","custom","renderers","commentEntry","MessageCircle","onCommentDelete","onCommentPinToggle","onCommentReact","onCommentReply","renderEventDetails","bare","title","ariaLabel","defaultKind","record","kind","toActivityLogEntry","accessors","timestamp","comment","createActivityEventAdapter"],"sources":["../../src/components/features/activities/activities.config.ts","../../src/components/features/activities/activities.strings.ts","../../src/components/features/activities/hooks/use-activity-feed.ts","../../src/components/features/activities/hooks/use-activity-resources.ts","../../src/components/features/activities/partials/activity-actions-menu.tsx","../../src/components/features/activities/partials/activity-changes.tsx","../../src/components/features/activities/partials/activity-date-label.tsx","../../src/components/features/activities/partials/activity-empty-state.tsx","../../src/components/features/activities/partials/tone-tokens.ts","../../src/components/features/activities/partials/activity-resource-tag.tsx","../../src/components/features/activities/partials/activity-headline.tsx","../../src/components/features/activities/partials/activity-marker.tsx","../../src/components/features/activities/partials/activity-row.tsx","../../src/components/features/activities/activities-feed.tsx","../../src/components/features/activities/activity-log.tsx","../../src/components/features/activities/activity-event-adapter.ts"],"sourcesContent":["/**\n * Default per-event configuration. Consumers override individual events by\n * spreading this map and overwriting the keys they care about, e.g.:\n *\n * import { defaultActivityEventConfig } from '.';\n *\n * const eventConfig = {\n * ...defaultActivityEventConfig,\n * order_refunded: { icon: Receipt, tone: 'warning', label: 'Refunded' },\n * };\n *\n * The mass `eventConfig` prop on `<ActivityFeed />` is shallow-merged on top\n * of these defaults, so any unspecified event falls back to the library\n * default and ultimately to the neutral `defaultEvent` entry below.\n */\nimport {\n\tAlertTriangle,\n\tArrowLeftRight,\n\tBan,\n\tCheck,\n\tCircleDot,\n\tFileEdit,\n\tFlag,\n\tHeart,\n\tLinkIcon,\n\tMail,\n\tMailCheck,\n\tMailOpen,\n\tMailX,\n\tMessageSquare,\n\tPencil,\n\tPlus,\n\tShieldCheck,\n\tShoppingBag,\n\tSparkles,\n\tStar,\n\tTrash2,\n\tUserMinus,\n\tUserPlus,\n} from 'lucide-react';\n\nimport type { ActivityEventConfig, ActivityEventConfigMap } from './activities.types';\n\n/** Neutral fallback used when an event has no entry in the registry. */\nexport const defaultEventConfig: ActivityEventConfig = {\n\ticon: CircleDot,\n\ttone: 'neutral',\n};\n\nexport const defaultActivityEventConfig: ActivityEventConfigMap = {\n\t// Lifecycle\n\tcreated: { icon: Plus, tone: 'success', label: 'Created' },\n\tupdated: { icon: Pencil, tone: 'info', label: 'Updated' },\n\tedited: { icon: FileEdit, tone: 'info', label: 'Edited' },\n\tdeleted: { icon: Trash2, tone: 'destructive', label: 'Deleted' },\n\tcancelled: { icon: Ban, tone: 'destructive', label: 'Cancelled' },\n\trestored: { icon: Sparkles, tone: 'success', label: 'Restored' },\n\n\t// Status transitions\n\tstatus_changed: { icon: ArrowLeftRight, tone: 'primary', label: 'Status changed' },\n\tstatus_transition: { icon: ArrowLeftRight, tone: 'primary', label: 'Status changed' },\n\tstatus_override: { icon: ArrowLeftRight, tone: 'warning', label: 'Status overridden' },\n\n\t// People\n\tassigned: { icon: UserPlus, tone: 'info', label: 'Assigned' },\n\tunassigned: { icon: UserMinus, tone: 'destructive', label: 'Unassigned' },\n\n\t// Mail\n\tmail_sent: { icon: Mail, tone: 'info', label: 'Email sent' },\n\tmail_delivered: { icon: MailCheck, tone: 'success', label: 'Email delivered' },\n\tmail_opened: { icon: MailOpen, tone: 'info', label: 'Email opened' },\n\tmail_clicked: { icon: MailOpen, tone: 'info', label: 'Email clicked' },\n\tmail_bounced: { icon: MailX, tone: 'destructive', label: 'Email bounced' },\n\tmail_failed: { icon: MailX, tone: 'destructive', label: 'Email failed' },\n\n\t// Comments\n\tcomment_created: { icon: MessageSquare, tone: 'warning', label: 'Comment posted' },\n\tcomment_deleted: { icon: MessageSquare, tone: 'destructive', label: 'Comment deleted' },\n\n\t// Commerce\n\tpaid: { icon: Check, tone: 'success', label: 'Paid' },\n\trefunded: { icon: ArrowLeftRight, tone: 'warning', label: 'Refunded' },\n\tconfirmed: { icon: ShieldCheck, tone: 'success', label: 'Confirmed' },\n\tfavorited: { icon: Heart, tone: 'warning', label: 'Favorited' },\n\tordered: { icon: ShoppingBag, tone: 'primary', label: 'Order placed' },\n\n\t// Publishing\n\tpublished: { icon: Star, tone: 'success', label: 'Published' },\n\tflagged: { icon: Flag, tone: 'warning', label: 'Flagged' },\n\tlinked: { icon: LinkIcon, tone: 'info', label: 'Linked' },\n\n\t// Failures\n\tfailed: { icon: AlertTriangle, tone: 'destructive', label: 'Failed' },\n\thealth_check_failed: { icon: AlertTriangle, tone: 'destructive', label: 'Health check failed' },\n};\n\n/** Resolve `eventConfig[event]` with override + default fallback. */\nexport function resolveEventConfig(\n\tevent: string,\n\tmap: ActivityEventConfigMap,\n): ActivityEventConfig {\n\treturn map[event] ?? defaultEventConfig;\n}\n","/**\n * Strings for the Activities feature. Consumers override via the `strings`\n * prop on `<ActivityFeed>` / `<ActivityLog>`. Values are deep-merged\n * over these defaults — `sources` and `events` merge one level deep so a\n * consumer can override a single source/event label without rewriting the\n * whole map.\n */\nexport interface ActivitiesStrings {\n\t/** Activity surface title — usually \"Activity\". */\n\ttitle: string;\n\t/** Empty-state copy. */\n\tempty: string;\n\t/** Loading-state copy. */\n\tloading: string;\n\t/** Date-group label for today. */\n\ttoday: string;\n\t/** Date-group label for yesterday. */\n\tyesterday: string;\n\t/** Fallback label for activities without a timestamp. */\n\tundated: string;\n\t/** Replacement for actor name when `actorId === currentUserId`. */\n\tyou: string;\n\t/** Detail toggle label — collapsed state. */\n\tshowChanges: string;\n\t/** Detail toggle label — expanded state. */\n\thideChanges: string;\n\t/** aria-label for the actions menu trigger. */\n\tactionsLabel: string;\n\t/** Generic \"more\" affordance label. */\n\tmoreLabel: string;\n\t/** Map of `source` → display label. */\n\tsources: Record<string, string>;\n\t/** Map of `event` → display label. Used as a fallback for headlines. */\n\tevents: Record<string, string>;\n}\n\nexport const defaultActivitiesStrings: ActivitiesStrings = {\n\ttitle: 'Activity',\n\tempty: 'No activity yet.',\n\tloading: 'Loading activity…',\n\ttoday: 'Today',\n\tyesterday: 'Yesterday',\n\tundated: 'Undated',\n\tyou: 'You',\n\tshowChanges: 'Show details',\n\thideChanges: 'Hide details',\n\tactionsLabel: 'Activity actions',\n\tmoreLabel: 'more',\n\tsources: {\n\t\tcomment: 'Comment',\n\t\tmail: 'Mail',\n\t\tbooking_log: 'Booking log',\n\t\tactivity_log: '',\n\t\tsystem: 'System',\n\t},\n\tevents: {},\n};\n\n/** Replace `{{key}}` tokens with values from `params`. */\nexport function interpolate(\n\ttemplate: string,\n\tparams: Record<string, string | number>,\n): string {\n\treturn template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, key) => {\n\t\tconst v = params[key];\n\t\treturn v === undefined ? match : String(v);\n\t});\n}\n","/**\n * useActivityFeed — headless state machine for the Activities feature.\n *\n * Returns date-grouped activities with stable React keys, plus the expand /\n * collapse map for change-detail rows. Consumers wanting a fully custom UI\n * can call this hook directly and bypass `<ActivityFeed />`.\n */\nimport { format, isToday, isValid, isYesterday, type Locale } from 'date-fns';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport type { ActivitiesStrings } from '../activities.strings';\nimport type { ActivityItem } from '../activities.types';\n\nexport interface ActivityKeyedItem<TData = unknown> {\n\tactivity: ActivityItem<TData>;\n\tkey: string;\n}\n\nexport interface ActivityDateGroup<TData = unknown> {\n\t/** Display label. */\n\tlabel: string;\n\titems: ActivityKeyedItem<TData>[];\n}\n\nexport interface UseActivityFeedOptions<TData = unknown> {\n\tactivities: ReadonlyArray<ActivityItem<TData>>;\n\tgroupByDate?: boolean;\n\texpandedByDefault?: boolean;\n\tdefaultExpandedIds?: ReadonlyArray<string>;\n\texpandedIds?: ReadonlyArray<string>;\n\tonExpandedIdsChange?: (ids: string[]) => void;\n\tlocale?: Locale;\n\t/** Overrides this surface's own copy. */\n\tstrings: ActivitiesStrings;\n\tformatDateGroupLabel?: (\n\t\tiso: string | null,\n\t\t/** Overrides this surface's own copy. */\n\t\tstrings: ActivitiesStrings,\n\t) => string;\n}\n\nexport interface UseActivityFeedReturn<TData = unknown> {\n\tgroups: ActivityDateGroup<TData>[];\n\t/** Total number of records across all pages. */\n\ttotal: number;\n\tisExpanded: (id: string) => boolean;\n\ttoggleExpanded: (id: string) => void;\n\tsetExpanded: (id: string, value: boolean) => void;\n\texpandAll: () => void;\n\tcollapseAll: () => void;\n}\n\nfunction defaultDateGroupLabel(\n\tiso: string | null,\n\tstrings: ActivitiesStrings,\n\tlocale?: Locale,\n): string {\n\tif (!iso) return strings.undated;\n\tconst date = new Date(iso);\n\tif (!isValid(date)) return strings.undated;\n\tif (isToday(date)) return strings.today;\n\tif (isYesterday(date)) return strings.yesterday;\n\ttry {\n\t\treturn format(date, 'PPP', locale ? { locale } : undefined);\n\t} catch {\n\t\treturn iso;\n\t}\n}\n\nexport function useActivityFeed<TData = unknown>({\n\tactivities,\n\tgroupByDate = true,\n\texpandedByDefault = false,\n\tdefaultExpandedIds,\n\texpandedIds,\n\tonExpandedIdsChange,\n\tlocale,\n\tstrings,\n\tformatDateGroupLabel,\n}: UseActivityFeedOptions<TData>): UseActivityFeedReturn<TData> {\n\tconst [expandedMap, setExpandedMap] = useState<Record<string, boolean>>({});\n\tconst isControlled = expandedIds !== undefined;\n\n\tconst keyed = useMemo<ActivityKeyedItem<TData>[]>(() => {\n\t\tconst seen = new Map<string, number>();\n\t\treturn activities.map((activity) => {\n\t\t\tconst baseId = String(activity.id ?? '').trim();\n\t\t\tconst createdAt = String(activity.createdAt ?? '').trim();\n\t\t\tconst event = String(activity.event ?? '').trim();\n\t\t\tconst source = String(activity.source ?? '').trim();\n\t\t\tconst keyBase = [baseId, createdAt, event, source].join(':');\n\t\t\tconst occurrence = (seen.get(keyBase) ?? 0) + 1;\n\t\t\tseen.set(keyBase, occurrence);\n\t\t\treturn { activity, key: `${keyBase}:${occurrence}` };\n\t\t});\n\t}, [activities]);\n\n\tconst groups = useMemo<ActivityDateGroup<TData>[]>(() => {\n\t\tif (!groupByDate) {\n\t\t\treturn keyed.length > 0 ? [{ label: '', items: keyed }] : [];\n\t\t}\n\t\tconst out: ActivityDateGroup<TData>[] = [];\n\t\tlet currentLabel = '__init__';\n\t\tlet currentItems: ActivityKeyedItem<TData>[] = [];\n\n\t\tconst labelFor = (iso: string | null) =>\n\t\t\tformatDateGroupLabel\n\t\t\t\t? formatDateGroupLabel(iso, strings)\n\t\t\t\t: defaultDateGroupLabel(iso, strings, locale);\n\n\t\tfor (const item of keyed) {\n\t\t\tconst iso = item.activity.createdAt ?? null;\n\t\t\tconst label = labelFor(iso);\n\t\t\tif (label !== currentLabel) {\n\t\t\t\tif (currentItems.length > 0) {\n\t\t\t\t\tout.push({ label: currentLabel, items: currentItems });\n\t\t\t\t}\n\t\t\t\tcurrentLabel = label;\n\t\t\t\tcurrentItems = [item];\n\t\t\t} else {\n\t\t\t\tcurrentItems.push(item);\n\t\t\t}\n\t\t}\n\t\tif (currentItems.length > 0) {\n\t\t\tout.push({ label: currentLabel, items: currentItems });\n\t\t}\n\t\treturn out;\n\t}, [keyed, groupByDate, locale, strings, formatDateGroupLabel]);\n\n\tconst defaultExpandedSet = useMemo(() => {\n\t\tconst next = new Set(defaultExpandedIds ?? []);\n\t\tfor (const item of keyed) {\n\t\t\tif (item.activity.defaultExpanded === true) {\n\t\t\t\tnext.add(item.activity.id);\n\t\t\t}\n\t\t}\n\t\treturn next;\n\t}, [keyed, defaultExpandedIds]);\n\n\tconst controlledExpandedSet = useMemo(\n\t\t() => new Set(expandedIds ?? []),\n\t\t[expandedIds],\n\t);\n\n\tconst setExpanded = useCallback((id: string, value: boolean) => {\n\t\tconst currentIds = isControlled\n\t\t\t? Array.from(controlledExpandedSet)\n\t\t\t: keyed\n\t\t\t\t\t.filter((item) =>\n\t\t\t\t\t\texpandedMap[item.activity.id] ??\n\t\t\t\t\t\t\t(defaultExpandedSet.has(item.activity.id) || expandedByDefault),\n\t\t\t\t\t)\n\t\t\t\t\t.map((item) => item.activity.id);\n\t\tconst next = new Set(currentIds);\n\t\tif (value) next.add(id);\n\t\telse next.delete(id);\n\t\tconst nextIds = Array.from(next);\n\t\tif (!isControlled) {\n\t\t\tsetExpandedMap((current) => ({ ...current, [id]: value }));\n\t\t}\n\t\tonExpandedIdsChange?.(nextIds);\n\t}, [\n\t\tcontrolledExpandedSet,\n\t\tdefaultExpandedSet,\n\t\texpandedByDefault,\n\t\texpandedMap,\n\t\tisControlled,\n\t\tkeyed,\n\t\tonExpandedIdsChange,\n\t]);\n\n\tconst isExpanded = useCallback(\n\t\t(id: string) => {\n\t\t\tif (isControlled) return controlledExpandedSet.has(id);\n\t\t\treturn expandedMap[id] ?? (defaultExpandedSet.has(id) || expandedByDefault);\n\t\t},\n\t\t[\n\t\t\tcontrolledExpandedSet,\n\t\t\tdefaultExpandedSet,\n\t\t\texpandedByDefault,\n\t\t\texpandedMap,\n\t\t\tisControlled,\n\t\t],\n\t);\n\n\tconst toggleExpanded = useCallback((id: string) => {\n\t\tsetExpanded(id, !isExpanded(id));\n\t}, [isExpanded, setExpanded]);\n\n\tconst expandAll = useCallback(() => {\n\t\tconst next: Record<string, boolean> = {};\n\t\tfor (const k of keyed) next[k.activity.id] = true;\n\t\tif (!isControlled) setExpandedMap(next);\n\t\tonExpandedIdsChange?.(keyed.map((k) => k.activity.id));\n\t}, [isControlled, keyed, onExpandedIdsChange]);\n\n\tconst collapseAll = useCallback(() => {\n\t\tconst next: Record<string, boolean> = {};\n\t\tfor (const k of keyed) next[k.activity.id] = false;\n\t\tif (!isControlled) setExpandedMap(next);\n\t\tonExpandedIdsChange?.([]);\n\t}, [isControlled, keyed, onExpandedIdsChange]);\n\n\treturn {\n\t\tgroups,\n\t\ttotal: keyed.length,\n\t\tisExpanded,\n\t\ttoggleExpanded,\n\t\tsetExpanded,\n\t\texpandAll,\n\t\tcollapseAll,\n\t};\n}\n","/**\n * useActivityResources — registry hook for the rich-resource feature.\n *\n * The registry maps `key → ActivityResourceConfig`. Activity items reference\n * resources by `key`; the row renderer looks up the live config so badges,\n * icons, and links can be edited globally without touching individual rows.\n *\n * The hook re-seeds whenever the `resources` prop reference changes and emits\n * the full registry on every mutation via `onResourcesChange`. Wire that\n * callback to localStorage / a backend mutation to persist the user's\n * resource customisations across sessions.\n */\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport type {\n\tActivityResourceConfig,\n\tActivityResourceRef,\n} from '../activities.types';\n\nexport type ActivityResourceRegistry = Readonly<\n\tRecord<string, ActivityResourceConfig>\n>;\n\nexport interface UseActivityResourcesOptions {\n\tresources?: ActivityResourceRegistry;\n\tonResourcesChange?: (registry: ActivityResourceRegistry) => void;\n}\n\nexport interface UseActivityResourcesReturn {\n\tregistry: ActivityResourceRegistry;\n\t/** Look up a resource by ref or key. */\n\tget: (\n\t\tref: ActivityResourceRef | string,\n\t) => ActivityResourceConfig | undefined;\n\t/** Replace a resource entry wholesale (or insert new). */\n\tregister: (key: string, config: ActivityResourceConfig) => void;\n\t/** Shallow-merge a partial update over an existing entry. */\n\tupdate: (key: string, partial: Partial<ActivityResourceConfig>) => void;\n\t/** Remove an entry. */\n\tremove: (key: string) => void;\n\t/** Replace the entire registry. */\n\tsetAll: (registry: ActivityResourceRegistry) => void;\n\t/** Reset to the original `resources` prop (or empty if none). */\n\treset: () => void;\n}\n\nexport function useActivityResources({\n\tresources,\n\tonResourcesChange,\n}: UseActivityResourcesOptions = {}): UseActivityResourcesReturn {\n\tconst [registry, setRegistry] = useState<ActivityResourceRegistry>(\n\t\t() => resources ?? {},\n\t);\n\n\tconst seedRef = useRef(resources);\n\tuseEffect(() => {\n\t\tif (resources !== seedRef.current) {\n\t\t\tseedRef.current = resources;\n\t\t\tsetRegistry(resources ?? {});\n\t\t}\n\t}, [resources]);\n\n\tconst onChangeRef = useRef(onResourcesChange);\n\tuseEffect(() => {\n\t\tonChangeRef.current = onResourcesChange;\n\t}, [onResourcesChange]);\n\n\tconst emit = useCallback((next: ActivityResourceRegistry) => {\n\t\tonChangeRef.current?.(next);\n\t}, []);\n\n\tconst register = useCallback(\n\t\t(key: string, config: ActivityResourceConfig) => {\n\t\t\tsetRegistry((current) => {\n\t\t\t\tconst next = { ...current, [key]: config };\n\t\t\t\temit(next);\n\t\t\t\treturn next;\n\t\t\t});\n\t\t},\n\t\t[emit],\n\t);\n\n\tconst update = useCallback(\n\t\t(key: string, partial: Partial<ActivityResourceConfig>) => {\n\t\t\tsetRegistry((current) => {\n\t\t\t\tconst existing = current[key];\n\t\t\t\tif (!existing) return current;\n\t\t\t\tconst next = {\n\t\t\t\t\t...current,\n\t\t\t\t\t[key]: { ...existing, ...partial },\n\t\t\t\t};\n\t\t\t\temit(next);\n\t\t\t\treturn next;\n\t\t\t});\n\t\t},\n\t\t[emit],\n\t);\n\n\tconst remove = useCallback(\n\t\t(key: string) => {\n\t\t\tsetRegistry((current) => {\n\t\t\t\tif (!(key in current)) return current;\n\t\t\t\tconst next = { ...current };\n\t\t\t\tdelete next[key];\n\t\t\t\temit(next);\n\t\t\t\treturn next;\n\t\t\t});\n\t\t},\n\t\t[emit],\n\t);\n\n\tconst setAll = useCallback(\n\t\t(next: ActivityResourceRegistry) => {\n\t\t\tsetRegistry(next);\n\t\t\temit(next);\n\t\t},\n\t\t[emit],\n\t);\n\n\tconst reset = useCallback(() => {\n\t\tconst next = seedRef.current ?? {};\n\t\tsetRegistry(next);\n\t\temit(next);\n\t}, [emit]);\n\n\tconst get = useCallback(\n\t\t(ref: ActivityResourceRef | string) => {\n\t\t\tconst key = typeof ref === 'string' ? ref : ref.key;\n\t\t\treturn registry[key];\n\t\t},\n\t\t[registry],\n\t);\n\n\treturn { registry, get, register, update, remove, setAll, reset };\n}\n","/**\n * ActivityActionsMenu — inline overflow menu rendered on rich rows.\n *\n * Backed by the shared ActionMenu surface; each item fires the activity's\n * per-row `onClick` and forwards `actionId` through `onAction` so consumers\n * can route actions centrally.\n */\nimport {\n\tActionMenu,\n\ttype ActionMenuAction,\n} from '../../../base/action-menu';\n\nimport type { ActivityAction, ActivityItem } from '../activities.types';\n\nexport interface ActivityActionsMenuProps<TData = unknown> {\n\t/** The feed entry this row renders. */\n\tactivity: ActivityItem<TData>;\n\t/** Overflow menu for the surface as a whole. */\n\tactions: readonly ActivityAction<TData>[];\n\tonAction?: (actionId: string, activity: ActivityItem<TData>) => void;\n\t/** Display label. */\n\tlabel: string;\n}\n\nfunction actionToneToMenuVariant(tone: ActivityAction['tone']) {\n\tif (tone === 'destructive') return 'destructive';\n\tif (tone === 'primary' || tone === 'secondary') return tone;\n\treturn undefined;\n}\n\nexport function ActivityActionsMenu<TData = unknown>({\n\tactivity,\n\tactions,\n\tonAction,\n\tlabel,\n}: ActivityActionsMenuProps<TData>) {\n\tif (actions.length === 0) return null;\n\tconst menuActions: ActionMenuAction[] = actions.map((action) => ({\n\t\tid: action.id,\n\t\ticon: action.icon,\n\t\tlabel: action.label,\n\t\thref: action.href,\n\t\tdisabled: action.disabled,\n\t\tvariant: actionToneToMenuVariant(action.tone),\n\t\tonClick: () => {\n\t\t\taction.onClick?.(activity);\n\t\t\tonAction?.(action.id, activity);\n\t\t},\n\t}));\n\n\treturn (\n\t\t<ActionMenu\n\t\t\tactions={menuActions}\n\t\t\tsrText={label}\n\t\t\talign=\"end\"\n\t\t\tdensity=\"table\"\n\t\t\tcloseOnSelect\n\t\t\tlabelVisibility=\"hidden\"\n\t\t\tbuttonProps={{\n\t\t\t\tsize: 'sm',\n\t\t\t\ticonOnly: true,\n\t\t\t\tclassName: 'activity-actions-menu--component size-action-sm text-muted-foreground',\n\t\t\t}}\n\t\t/>\n\t);\n}\n","/**\n * ActivityChanges — collapsible old → new diff block.\n *\n * Each entry shows the attribute label, the previous value (line-through, on\n * a destructive tint), an arrow, and the new value (on a success tint). When\n * neither old nor new is set, falls back to `description`.\n */\nimport { Stack } from '../../../base/structure';\nimport { Text } from '../../../typography';\nimport { cn } from '../../../../lib/utils';\n\nimport type { ActivityChange } from '../activities.types';\n\nexport interface ActivityChangesProps {\n\t/** Field changes recorded by this activity. */\n\tchanges: readonly ActivityChange[];\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nfunction ChangeValue({ change }: { change: ActivityChange }) {\n\tconst hasOld = change.old !== null && change.old !== undefined;\n\tconst hasNew = change.new !== null && change.new !== undefined;\n\n\tif (!hasOld && !hasNew) {\n\t\treturn (\n\t\t\t<Text tag=\"span\">\n\t\t\t\t{change.description}\n\t\t\t</Text>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text tag=\"span\" className=\"inline-flex flex-wrap items-baseline gap-space-xs\">\n\t\t\t{!!hasOld && (\n\t\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\tclassName=\"rounded bg-destructive/10 text-destructive line-through px-1 py-px\"\n\t\t\t\t>\n\t\t\t\t\t{change.old}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{hasOld && hasNew && (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\">\n\t\t\t\t\t→\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{!!hasNew && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\tclassName=\"rounded bg-success/15 text-success px-1 py-px\"\n\t\t\t\t>\n\t\t\t\t\t{change.new}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</Text>\n\t);\n}\n\nexport function ActivityChanges({ changes, className }: ActivityChangesProps) {\n\tif (changes.length === 0) return null;\n\treturn (\n\t\t<div className={cn(\n\t\t\t\t'activity-changes--component',\n\t\t\t\t'rounded-radius border border-border/60 bg-muted/30 p-surface-xs',\n\t\t\t\tclassName,\n\t\t\t)}>\n\t\t<Stack gap=\"sm\">\n\t\t\t{changes.map((change) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={`${change.key}-${change.label}`}\n\t\t\t\t\tclassName=\"flex items-baseline gap-space-md\"\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\tclassName=\"shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{change.label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ChangeValue change={change} />\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</Stack>\n\t\t</div>\n\t);\n}\n","/**\n * ActivityDateLabel — eyebrow rendered above each date group.\n *\n * Consumers can override via `slots.renderDateLabel`. Default: small\n * uppercase eyebrow above each group, with measured top margin between groups.\n */\nimport { Text } from '../../../typography';\nimport { cn } from '../../../../lib/utils';\n\nexport interface ActivityDateLabelProps {\n\t/** Display label. */\n\tlabel: string;\n\t/** Whether this is the first row, so the timeline rail starts here. */\n\tfirst: boolean;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nexport function ActivityDateLabel({\n\tlabel,\n\tfirst,\n\tclassName,\n}: ActivityDateLabelProps) {\n\tif (label === '') return null;\n\treturn (\n\t\t<Text\n\t\t\tsize=\"xs\"\n\t\t\ttype=\"secondary\"\n\t\t\tweight=\"medium\"\n\t\t\tclassName={cn(\n\t\t\t\t'activity-date-label--component',\n\t\t\t\t'uppercase tracking-wider',\n\t\t\t\t!first && 'mt-space-md',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n","/**\n * ActivityEmptyState — neutral empty surface used when no activities are\n * available. Consumers replace via `slots.empty`.\n */\nimport { Activity } from 'lucide-react';\n\nimport { EmptyState } from '../../../blocks/data-display';\nimport { cn } from '../../../../lib/utils';\n\nexport interface ActivityEmptyStateProps {\n\t/** Surface title. */\n\ttitle: string;\n\t/** Short guidance shown beneath the control. */\n\thint?: string;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nexport function ActivityEmptyState({\n\ttitle,\n\thint,\n\tclassName,\n}: ActivityEmptyStateProps) {\n\treturn (\n\t\t<EmptyState\n\t\t\ttitle={title}\n\t\t\tdescription={hint ?? false}\n\t\t\tmedia={<Activity className=\"size-icon\" aria-hidden=\"true\" />}\n\t\t\tmediaVariant=\"icon-soft\"\n\t\t\tpadding=\"md\"\n\t\t\tclassName={cn('activity-empty-state--component', className)}\n\t\t/>\n\t);\n}\n","/**\n * Tone palettes shared by the marker, headline status segments, and the\n * resource tag. Tones map to semantic shadcn tokens — never to raw colours —\n * so a consumer rebrand at `:root` flows through the activities feature\n * automatically.\n */\nimport type { ActivityTone } from '../activities.types';\nimport type { BadgeTone } from '../../../base/badge';\n\nexport interface ActivityToneStyle {\n\t/** Filled background — used by the rich icon marker. */\n\tbg: string;\n\t/** Foreground text colour matching the bg. */\n\tfg: string;\n\t/** Solid colour used by the compact dot. */\n\tdot: string;\n\t/** Border tint used by the connector line. */\n\tline: string;\n\t/** Background for chips / tags. */\n\tchipBg: string;\n\t/** Text colour for chips / tags. */\n\tchipFg: string;\n}\n\nexport const ACTIVITY_TONE: Record<ActivityTone, ActivityToneStyle> = {\n\tprimary: {\n\t\tbg: 'bg-primary/10',\n\t\tfg: 'text-primary-accent',\n\t\tdot: 'bg-primary',\n\t\tline: 'bg-primary/30',\n\t\tchipBg: 'bg-primary/5',\n\t\tchipFg: 'text-primary-accent',\n\t},\n\tsuccess: {\n\t\tbg: 'bg-success/10',\n\t\tfg: 'text-success',\n\t\tdot: 'bg-success',\n\t\tline: 'bg-success/30',\n\t\tchipBg: 'bg-success/10',\n\t\tchipFg: 'text-success',\n\t},\n\twarning: {\n\t\tbg: 'bg-warning/10',\n\t\tfg: 'text-warning-accent',\n\t\tdot: 'bg-warning',\n\t\tline: 'bg-warning/30',\n\t\tchipBg: 'bg-warning/10',\n\t\tchipFg: 'text-warning-accent',\n\t},\n\tdestructive: {\n\t\tbg: 'bg-destructive/10',\n\t\tfg: 'text-destructive',\n\t\tdot: 'bg-destructive',\n\t\tline: 'bg-destructive/30',\n\t\tchipBg: 'bg-destructive/10',\n\t\tchipFg: 'text-destructive',\n\t},\n\tinfo: {\n\t\tbg: 'bg-info/10',\n\t\tfg: 'text-info',\n\t\tdot: 'bg-info',\n\t\tline: 'bg-info/30',\n\t\tchipBg: 'bg-info/10',\n\t\tchipFg: 'text-info',\n\t},\n\tneutral: {\n\t\tbg: 'bg-muted',\n\t\tfg: 'text-muted-foreground',\n\t\tdot: 'bg-muted-foreground/60',\n\t\tline: 'bg-border',\n\t\tchipBg: 'bg-muted',\n\t\tchipFg: 'text-muted-foreground',\n\t},\n\tsecondary: {\n\t\tbg: 'bg-muted',\n\t\tfg: 'text-muted-foreground',\n\t\tdot: 'bg-muted-foreground/60',\n\t\tline: 'bg-border',\n\t\tchipBg: 'bg-muted',\n\t\tchipFg: 'text-muted-foreground',\n\t},\n};\n\n/** Map an activity tone onto the closest base/Badge variant. */\nexport const TONE_TO_BADGE_TONE: Record<ActivityTone, BadgeTone> = {\n\tprimary: 'primary',\n\tsuccess: 'success',\n\twarning: 'warning',\n\tdestructive: 'destructive',\n\tinfo: 'info',\n\tneutral: 'secondary',\n\tsecondary: 'secondary',\n};\n","/**\n * ActivityResourceTag — chip rendering for a registered resource.\n *\n * The resource registry stores per-key `ActivityResourceConfig` (label, icon,\n * tone, badge, tags). This component renders those as a single inline chip\n * suitable for embedding into a headline. Falls back gracefully when the\n * registry has no entry — uses the segment's text/label.\n */\nimport { CircleDot } from 'lucide-react';\nimport { cn } from '../../../../lib/utils';\n\nimport { Badge } from '../../../base/badge';\nimport { Button } from '../../../base/buttons';\nimport { Text } from '../../../typography';\n\nimport type {\n\tActivityResourceConfig,\n\tActivityResourceRef,\n\tActivityTone,\n} from '../activities.types';\n\nimport { ACTIVITY_TONE, TONE_TO_BADGE_TONE } from './tone-tokens';\n\nexport interface ActivityResourceTagProps {\n\t/** The referenced resource. */\n\tresource: ActivityResourceRef;\n\t/** Configuration for this surface. */\n\tconfig?: ActivityResourceConfig;\n\t/** Fallback label if neither config nor segment text are present. */\n\tfallbackText?: string;\n\tonClick?: () => void;\n}\n\nexport function ActivityResourceTag({\n\tresource,\n\tconfig,\n\tfallbackText,\n\tonClick,\n}: ActivityResourceTagProps) {\n\tconst tone: ActivityTone = config?.tone ?? 'neutral';\n\tconst palette = ACTIVITY_TONE[tone];\n\tconst Icon = config?.icon ?? CircleDot;\n\tconst label = config?.label ?? fallbackText ?? resource.label ?? resource.key;\n\tconst interactive = typeof onClick === 'function';\n\n\tconst inner = (\n\t\t<>\n\t\t\t<Icon className={cn('size-icon-sm shrink-0', palette.fg)} />\n\t\t\t<Text tag=\"span\" weight=\"medium\" lineHeight=\"none\" className={palette.chipFg}>\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t\t{!!config?.tags && config.tags.length > 0 && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tclassName=\"ml-space-2xs border-l border-border pl-space-sm\"\n\t\t\t\t>\n\t\t\t\t\t{config.tags.join(' · ')}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{!!config?.badge && (\n\t\t\t\t<Badge\n\t\t\t\t\tinline\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttone={TONE_TO_BADGE_TONE[config.badge.tone ?? 'neutral']}\n\t\t\t\t\tclassName=\"ml-space-2xs\"\n\t\t\t\t>\n\t\t\t\t\t{config.badge.label}\n\t\t\t\t</Badge>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst chipClass = cn(\n\t\t'inline-flex items-center gap-space-xs rounded-full px-space-sm py-px align-baseline',\n\t\t'border border-border/50 shadow-none',\n\t\tpalette.chipBg,\n\t\tinteractive &&\n\t\t\t'cursor-pointer transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n\t);\n\n\tif (interactive) {\n\t\treturn (\n\t\t\t<Button\n\t\t\t\ttype=\"button\"\n\t\t\t\ttone=\"secondary\"\n\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tonClick?.();\n\t\t\t\t}}\n\t\t\t\tclassName={cn('activity-resource-tag--component', chipClass, 'h-auto rounded-full')}\n\t\t\t\ttitle={config?.note}\n\t\t\t>\n\t\t\t\t{inner}\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<span className={cn('activity-resource-tag--component', chipClass)} title={config?.note}>\n\t\t\t{inner}\n\t\t</span>\n\t);\n}\n","/**\n * ActivityHeadline — segment renderer for the headline line.\n *\n * Renders typed segments (`actor` / `field` / `value` / `status` / `resource`\n * / `text`) into mixed inline content with proper typography and tone.\n *\n * When no segments are provided, falls back to splitting `headline` around\n * the actor's name so the actor still becomes interactive when possible.\n */\nimport { Fragment, type ReactNode } from 'react';\n\nimport { Badge } from '../../../base/badge';\nimport { Button } from '../../../base/buttons';\nimport { Text, TextLink } from '../../../typography';\n\nimport type {\n\tActivityActor,\n\tActivityHeadlineSegment,\n\tActivityItem,\n\tActivityResourceConfig,\n\tActivityResourceRef,\n} from '../activities.types';\nimport { ActivityResourceTag } from './activity-resource-tag';\nimport { TONE_TO_BADGE_TONE } from './tone-tokens';\n\nexport interface ActivityHeadlineProps<TData = unknown> {\n\t/** The feed entry this row renders. */\n\tactivity: ActivityItem<TData>;\n\t/** Id of the viewing user, used to say “you” instead of their name. */\n\tcurrentUserId?: string;\n\t/** Copy substituted for the current user's own name. */\n\tyouLabel: string;\n\tonActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n\tonResourceClick?: (\n\t\t/** The referenced resource. */\n\t\tresource: ActivityResourceRef,\n\t\t/** Configuration for this surface. */\n\t\tconfig: ActivityResourceConfig | undefined,\n\t\t/** The feed entry this row renders. */\n\t\tactivity: ActivityItem<TData>,\n\t) => void;\n\t/** Live registry lookup for resource segments. */\n\tgetResourceConfig?: (\n\t\tref: ActivityResourceRef,\n\t) => ActivityResourceConfig | undefined;\n}\n\nfunction ActorNode<TData>({\n\tactorId,\n\ttext,\n\thref,\n\tactivity,\n\tyouLabel,\n\tcurrentUserId,\n\tonActorClick,\n}: {\n\tactorId?: string;\n\ttext: string;\n\thref?: string;\n\t/** The feed entry this row renders. */\n\tactivity: ActivityItem<TData>;\n\t/** Copy substituted for the current user's own name. */\n\tyouLabel: string;\n\t/** Id of the viewing user, used to say “you” instead of their name. */\n\tcurrentUserId?: string;\n\tonActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n}) {\n\tconst isYou =\n\t\tcurrentUserId !== undefined &&\n\t\tactorId !== undefined &&\n\t\tcurrentUserId === actorId;\n\tconst display = isYou ? youLabel : text;\n\tconst actor: ActivityActor = activity.actor ?? { id: actorId, name: text };\n\n\tif (href) {\n\t\treturn (\n\t\t\t<TextLink\n\t\t\t\thref={href}\n\t\t\t\tsize=\"inherit\"\n\t\t\t\tunderline={false}\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\tif (onActorClick) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tonActorClick(actor, activity);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tclassName=\"font-semibold text-foreground underline-offset-2 hover:underline\"\n\t\t\t>\n\t\t\t\t{display}\n\t\t\t</TextLink>\n\t\t);\n\t}\n\n\tif (onActorClick) {\n\t\treturn (\n\t\t\t<Button\n\t\t\t\ttype=\"button\"\n\t\t\t\ttone=\"secondary\"\n\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tonActorClick(actor, activity);\n\t\t\t\t}}\n\t\t\t\tclassName=\"h-auto rounded px-0 py-0 text-foreground underline-offset-2 hover:underline\"\n\t\t\t>\n\t\t\t\t<Text tag=\"span\" weight=\"semibold\">{display}</Text>\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text tag=\"span\" weight=\"semibold\">\n\t\t\t{display}\n\t\t</Text>\n\t);\n}\n\nfunction renderSegments<TData>(\n\tsegments: readonly ActivityHeadlineSegment[],\n\tprops: ActivityHeadlineProps<TData>,\n): ReactNode {\n\treturn segments.map((segment, index) => {\n\t\tconst key = `seg-${index}-${segment.type}`;\n\t\tswitch (segment.type) {\n\t\t\tcase 'actor':\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={key}>\n\t\t\t\t\t\t<ActorNode<TData>\n\t\t\t\t\t\t\tactorId={segment.actorId}\n\t\t\t\t\t\t\ttext={segment.text}\n\t\t\t\t\t\t\thref={segment.href}\n\t\t\t\t\t\t\tactivity={props.activity}\n\t\t\t\t\t\t\tyouLabel={props.youLabel}\n\t\t\t\t\t\t\tcurrentUserId={props.currentUserId}\n\t\t\t\t\t\t\tonActorClick={props.onActorClick}\n\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\tcase 'field':\n\t\t\tcase 'value':\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={key}>\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\">\n\t\t\t\t\t\t\t{segment.text}\n\t\t\t\t\t\t</Text>{' '}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\tcase 'status':\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={key}>\n\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\tinline\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\ttone={TONE_TO_BADGE_TONE[segment.tone ?? 'neutral']}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{segment.text}\n\t\t\t\t\t\t</Badge>{' '}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\tcase 'resource': {\n\t\t\t\tconst config = props.getResourceConfig?.(segment.resource);\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={key}>\n\t\t\t\t\t\t<ActivityResourceTag\n\t\t\t\t\t\t\tresource={segment.resource}\n\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\tfallbackText={segment.text}\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\tprops.onResourceClick\n\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\tprops.onResourceClick?.(\n\t\t\t\t\t\t\t\t\t\t\t\tsegment.resource,\n\t\t\t\t\t\t\t\t\t\t\t\tconfig,\n\t\t\t\t\t\t\t\t\t\t\t\tprops.activity,\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase 'text':\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={key}>\n\t\t\t\t\t\t<Text tag=\"span\">\n\t\t\t\t\t\t\t{segment.text}\n\t\t\t\t\t\t</Text>{' '}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t}\n\t});\n}\n\nfunction renderFallback<TData>(props: ActivityHeadlineProps<TData>): ReactNode {\n\tconst { activity } = props;\n\tconst fallbackHeadline =\n\t\tactivity.headline ?? activity.event;\n\tconst actorName = activity.actor?.name;\n\tif (!actorName || !fallbackHeadline.includes(actorName)) {\n\t\treturn (\n\t\t\t<Text tag=\"span\">\n\t\t\t\t{fallbackHeadline}\n\t\t\t</Text>\n\t\t);\n\t}\n\tconst [before, ...after] = fallbackHeadline.split(actorName);\n\treturn (\n\t\t<>\n\t\t\t{!!before && (\n\t\t\t\t<Text tag=\"span\">\n\t\t\t\t\t{before}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t<ActorNode<TData>\n\t\t\t\tactorId={activity.actor?.id}\n\t\t\t\ttext={actorName}\n\t\t\t\thref={activity.actor?.href}\n\t\t\t\tactivity={activity}\n\t\t\t\tyouLabel={props.youLabel}\n\t\t\t\tcurrentUserId={props.currentUserId}\n\t\t\t\tonActorClick={props.onActorClick}\n\t\t\t/>\n\t\t\t{after.length > 0 && (\n\t\t\t\t<Text tag=\"span\">\n\t\t\t\t\t{after.join(actorName)}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport function ActivityHeadline<TData = unknown>(\n\tprops: ActivityHeadlineProps<TData>,\n) {\n\tconst segments = props.activity.segments;\n\tif (segments && segments.length > 0) {\n\t\treturn (\n\t\t\t<span className=\"activity-headline--component leading-snug [&>span]:leading-snug\">\n\t\t\t\t{renderSegments<TData>(segments, props)}\n\t\t\t</span>\n\t\t);\n\t}\n\treturn <span className=\"activity-headline--component leading-snug\">{renderFallback<TData>(props)}</span>;\n}\n","/**\n * ActivityMarker — left-edge visual for a row.\n *\n * Density mapping:\n * - `compact` → small tone-coloured dot\n * - `default` → 22px tone-tinted square with the event icon\n * - `rich` → 28px tone-tinted circle with the event icon\n *\n * Always renders the connector line beneath unless `last` is true.\n */\nimport type { LucideIcon } from 'lucide-react';\nimport { cn } from '../../../../lib/utils';\n\nimport type { ActivityDensity, ActivityTone } from '../activities.types';\n\nimport { ACTIVITY_TONE } from './tone-tokens';\n\nexport interface ActivityMarkerProps {\n\t/** Leading glyph. */\n\ticon: LucideIcon;\n\t/** Semantic tone driving the entry's colour. */\n\ttone: ActivityTone;\n\t/** Row spacing. */\n\tdensity: ActivityDensity;\n\t/** Whether this is the final row, so the timeline rail stops here. */\n\tlast: boolean;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nexport function ActivityMarker({\n\ticon: Icon,\n\ttone,\n\tdensity,\n\tlast,\n\tclassName,\n}: ActivityMarkerProps) {\n\tconst palette = ACTIVITY_TONE[tone];\n\n\tif (density === 'compact') {\n\t\treturn (\n\t\t\t<div className={cn('activity-marker--component flex flex-col items-center', className)}>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden\n\t\t\t\t\tclassName={cn('mt-1.5 size-2 shrink-0 rounded-full', palette.dot)}\n\t\t\t\t/>\n\t\t\t\t{!last && (\n\t\t\t\t\t<span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (density === 'rich') {\n\t\treturn (\n\t\t\t<div className={cn('activity-marker--component flex flex-col items-center', className)}>\n\t\t\t\t<span\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'flex size-7 shrink-0 items-center justify-center rounded-full ring-1 ring-border/60',\n\t\t\t\t\t\tpalette.bg,\n\t\t\t\t\t\tpalette.fg,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Icon className=\"size-icon-md\" />\n\t\t\t\t</span>\n\t\t\t\t{!last && (\n\t\t\t\t\t<span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={cn('activity-marker--component flex flex-col items-center', className)}>\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'flex size-icon-lg shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\tpalette.bg,\n\t\t\t\t\tpalette.fg,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Icon className=\"size-icon-sm\" />\n\t\t\t</span>\n\t\t\t{!last && (\n\t\t\t\t<span aria-hidden className={cn('mt-1 w-px flex-1', palette.line)} />\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","/**\n * ActivityRow — single row layout used by `<ActivityFeed />`.\n *\n * Composes the marker, headline, optional description, metadata preview,\n * source badge, timestamp, and (rich-only) the change-detail block plus\n * action menu. Per-density layout follows the design-system rules:\n * compact (dot, single line) / default (icon, headline + meta line) /\n * rich (icon, full header + body + actions).\n */\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport { Fragment, type ReactNode } from 'react';\n\nimport { Badge } from '../../../base/badge';\nimport { Button } from '../../../base/buttons';\nimport { Grid, Stack } from '../../../base/structure';\nimport { Text } from '../../../typography';\nimport { cn } from '../../../../lib/utils';\n\nimport type {\n\t\tActivityAction,\n\t\tActivityActor,\n\t\tActivityDensity,\n\t\tActivityEventConfig,\n\t\tActivityItemSpacing,\n\t\tActivityItem,\n\t\tActivityResourceConfig,\n\t\tActivityResourceRef,\n\t\tActivityTone,\n} from '../activities.types';\n\nimport { ActivityActionsMenu } from './activity-actions-menu';\nimport { ActivityChanges } from './activity-changes';\nimport { ActivityHeadline } from './activity-headline';\nimport { ActivityMarker } from './activity-marker';\nimport { ActivityResourceTag } from './activity-resource-tag';\n\nfunction ActivityMetadataPreview({\n\t\tmetadata,\n\t\tmoreLabel,\n}: {\n\t\tmetadata: NonNullable<ActivityItem['metadata']>;\n\t\tmoreLabel: string;\n}) {\n\t\tconst visible = metadata.slice(0, 3);\n\t\tconst hiddenCount = metadata.length - visible.length;\n\n\t\treturn (\n\t\t\t\t<div className=\"activity-row--metadata-preview mt-space-xs flex min-w-0 flex-wrap items-center gap-x-space-sm gap-y-space-2xs\">\n\t\t\t\t\t\t{visible.map((item, index) => (\n\t\t\t\t\t\t\t\t<Fragment key={item.label}>\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\tclassName=\"inline-flex min-w-0 items-baseline gap-space-xs leading-snug\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"discrete\" className=\"shrink-0\">\n\t\t\t\t\t\t\t{item.label}:{' '}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"min-w-0 truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t{index < visible.length - 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"discrete\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"leading-snug\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{' · '}\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{hiddenCount > 0 && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\ttype=\"discrete\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"leading-snug\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t+{hiddenCount} {moreLabel}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t);\n}\n\nfunction ActivityMetadataGrid({\n\t\tmetadata,\n}: {\n\t\tmetadata: NonNullable<ActivityItem['metadata']>;\n}) {\n\t\treturn (\n\t\t\t\t<Grid columns={{ base: 1, sm: 2 }} gap=\"xs\" className=\"activity-row--metadata\">\n\t\t\t\t\t\t{metadata.map((item) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={item.label}\n\t\t\t\t\t\t\t\t\t\tclassName=\"min-w-0 rounded-radius-md border border-border/60 bg-background/70 px-space-sm py-space-xs\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"discrete\"\n\t\t\t\t\t\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"leading-snug\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mt-space-2xs min-w-0 break-words leading-snug\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\t\t\t\t</Grid>\n\t\t);\n}\n\nexport interface ActivityRowProps<TData = unknown> {\n\t\t/** The feed entry this row renders. */\n\t\tactivity: ActivityItem<TData>;\n\t\t/** Row spacing. */\n\t\tdensity: ActivityDensity;\n\t\t/** Vertical rhythm between rows. */\n\t\titemSpacing: ActivityItemSpacing;\n\t\t/** Icon, tone, and copy for this activity type. */\n\t\teventConfig: ActivityEventConfig;\n\t\t/** Semantic tone driving the entry's colour. */\n\t\ttone: ActivityTone;\n\t\t/** Whether this is the final row, so the timeline rail stops here. */\n\t\tlast: boolean;\n\t\t/** Whether the row's details are open. */\n\t\texpanded: boolean;\n\t\tonExpandedChange: (expanded: boolean) => void;\n\t\t/** Lets the row expand to show its details. */\n\t\tdetailsCollapsible?: boolean;\n\t\t/** Formatted relative time, e.g. \"2 hours ago\". */\n\t\trelativeTime: string | null;\n\t\t/** Formatted exact timestamp, shown on hover. */\n\t\tabsoluteTime: string | null;\n\t\t/** Where the activity originated — an app, integration, or API. */\n\t\tsourceLabel: string | null;\n\t\t/** Copy substituted for the current user's own name. */\n\t\tyouLabel: string;\n\t\t/** Control that reveals the change list. */\n\t\tshowChangesLabel: string;\n\t\t/** Control that collapses the change list. */\n\t\thideChangesLabel: string;\n\t\t/** Control that reveals the remaining changes. */\n\t\tmoreLabel: string;\n\t\t/** Accessible name for the row's overflow trigger. */\n\t\tactionsLabel: string;\n\t\t/** Id of the viewing user, used to say \"you\" instead of their name. */\n\t\tcurrentUserId?: string;\n\t\t/** Overflow menu for the surface as a whole. */\n\t\tactions: readonly ActivityAction<TData>[];\n\t\tonActivityClick?: (activity: ActivityItem<TData>) => void;\n\t\tonActorClick?: (actor: ActivityActor, activity: ActivityItem<TData>) => void;\n\t\tonResourceClick?: (\n\t\t\t\t/** The referenced resource. */\n\t\t\t\tresource: ActivityResourceRef,\n\t\t\t\t/** Configuration for this surface. */\n\t\t\t\tconfig: ActivityResourceConfig | undefined,\n\t\t\t\t/** The feed entry this row renders. */\n\t\t\t\tactivity: ActivityItem<TData>,\n\t\t) => void;\n\t\tonAction?: (actionId: string, activity: ActivityItem<TData>) => void;\n\t\t/** Resolves icon and link details for a referenced resource. */\n\t\tgetResourceConfig?: (\n\t\t\t\tref: ActivityResourceRef,\n\t\t) => ActivityResourceConfig | undefined;\n\t\t/** Slot override for the headline only. */\n\t\theadlineOverride?: ReactNode;\n\t\t/** Slot override for the marker only. */\n\t\tmarkerOverride?: ReactNode;\n\t\t/** Extra row detail content rendered inside the rich detail panel. */\n\t\tcustomDetails?: ReactNode;\n\t\t/** Merged onto the row. */\n\t\trowClassName?: string;\n\t\t/** Merged onto the marker. */\n\t\tmarkerClassName?: string;\n\t\t/** Merged onto the content. */\n\t\tcontentClassName?: string;\n\t\t/** Merged onto the details. */\n\t\tdetailsClassName?: string;\n}\n\nexport function ActivityRow<TData = unknown>(props: ActivityRowProps<TData>) {\n\t\tconst {\n\t\t\t\tactivity,\n\t\t\t\tdensity,\n\t\t\t\titemSpacing,\n\t\t\t\teventConfig,\n\t\t\t\ttone,\n\t\t\t\tlast,\n\t\t\t\texpanded,\n\t\t\t\tonExpandedChange,\n\t\t\t\tdetailsCollapsible,\n\t\t\t\trelativeTime,\n\t\t\t\tabsoluteTime,\n\t\t\t\tsourceLabel,\n\t\t\t\tyouLabel,\n\t\t\t\tshowChangesLabel,\n\t\t\t\thideChangesLabel,\n\t\t\t\tmoreLabel,\n\t\t\t\tactionsLabel,\n\t\t\t\tcurrentUserId,\n\t\t\t\tactions,\n\t\t\t\tonActivityClick,\n\t\t\t\tonActorClick,\n\t\t\t\tonResourceClick,\n\t\t\t\tonAction,\n\t\t\t\tgetResourceConfig,\n\t\t\t\theadlineOverride,\n\t\t\t\tmarkerOverride,\n\t\t\t\tcustomDetails,\n\t\t\t\trowClassName,\n\t\t\t\tmarkerClassName,\n\t\t\t\tcontentClassName,\n\t\t\t\tdetailsClassName,\n\t\t} = props;\n\n\t\tconst Icon = activity.iconOverride ?? eventConfig.icon;\n\t\tconst hasChanges = (activity.changes?.length ?? 0) > 0;\n\t\tconst metadata = activity.metadata ?? [];\n\t\tconst hasMetadata = metadata.length > 0;\n\t\tconst hasResources = (activity.resources?.length ?? 0) > 0;\n\t\tconst hasDetails =\n\t\t\t\tactivity.details !== undefined &&\n\t\t\t\tactivity.details !== null &&\n\t\t\t\tactivity.details !== false;\n\t\tconst hasCustomDetails =\n\t\t\t\tcustomDetails !== undefined &&\n\t\t\t\tcustomDetails !== null &&\n\t\t\t\tcustomDetails !== false;\n\t\tconst hasDetailPanel = hasMetadata || hasChanges || hasDetails || hasCustomDetails;\n\t\tconst hasDescription =\n\t\t\t\tactivity.description !== undefined &&\n\t\t\t\tactivity.description !== null &&\n\t\t\t\tactivity.description !== '';\n\t\tconst showSecondaryRow = density !== 'compact';\n\t\tconst showRichBody = density === 'rich';\n\t\tconst panelIsCollapsible = detailsCollapsible ?? (hasMetadata || hasChanges);\n\t\tconst showDetailPanel = showRichBody && hasDetailPanel && (!panelIsCollapsible || expanded);\n\t\tconst showMetadataPreview = showRichBody && hasMetadata && panelIsCollapsible && !expanded;\n\t\tconst inlineActions = actions.filter((action) => action.presentation === 'inline');\n\t\tconst menuActions = actions.filter((action) => action.presentation !== 'inline');\n\n\t\tconst headlineNode =\n\t\t\t\theadlineOverride ??\n\t\t\t\t(\n\t\t\t\t\t\t<ActivityHeadline<TData>\n\t\t\t\t\t\t\t\tactivity={activity}\n\t\t\t\t\t\t\t\tcurrentUserId={currentUserId}\n\t\t\t\t\t\t\t\tyouLabel={youLabel}\n\t\t\t\t\t\t\t\tonActorClick={onActorClick}\n\t\t\t\t\t\t\t\tonResourceClick={onResourceClick}\n\t\t\t\t\t\t\t\tgetResourceConfig={getResourceConfig}\n\t\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\tconst markerNode =\n\t\t\t\tmarkerOverride ?? (\n\t\t\t\t\t\t<ActivityMarker\n\t\t\t\t\t\t\t\ticon={Icon}\n\t\t\t\t\t\t\t\ttone={tone}\n\t\t\t\t\t\t\t\tdensity={density}\n\t\t\t\t\t\t\t\tlast={last}\n\t\t\t\t\t\t\t\tclassName={markerClassName}\n\t\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\tconst interactive = typeof onActivityClick === 'function';\n\t\tconst hasNestedInteractive = (\n\t\t\t\thasChanges ||\n\t\t\t\thasResources ||\n\t\t\t\tmenuActions.length > 0 ||\n\t\t\t\tinlineActions.length > 0 ||\n\t\t\t\ttypeof onActorClick === 'function' ||\n\t\t\t\ttypeof onResourceClick === 'function'\n\t\t);\n\t\tconst keyboardInteractive = interactive && !hasNestedInteractive;\n\n\t\tconst rowSpacing =\n\t\t\t\tdensity === 'rich'\n\t\t\t\t\t\t? 'gap-space-md py-space-xs'\n\t\t\t\t\t\t: density === 'compact'\n\t\t\t\t\t\t\t\t? 'gap-space-sm py-space-2xs'\n\t\t\t\t\t\t\t\t: 'gap-space-md py-space-2xs';\n\t\tconst contentPadding = !last\n\t\t\t\t? itemSpacing === 'compact'\n\t\t\t\t\t\t? 'pb-space-sm'\n\t\t\t\t\t\t: itemSpacing === 'relaxed'\n\t\t\t\t\t\t\t\t? 'pb-space-xl'\n\t\t\t\t\t\t\t\t: 'pb-space-md'\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'activity-row--component relative flex',\n\t\t\t\t\t\t\t\trowSpacing,\n\t\t\t\t\t\t\t\tinteractive && 'cursor-pointer rounded-radius-md hover:bg-muted/40',\n\t\t\t\t\t\t\t\trowClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={interactive ? () => onActivityClick?.(activity) : undefined}\n\t\t\t\t\t\trole={keyboardInteractive ? 'button' : undefined}\n\t\t\t\t\t\ttabIndex={keyboardInteractive ? 0 : undefined}\n\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t\tkeyboardInteractive\n\t\t\t\t\t\t\t\t\t\t? (e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonActivityClick?.(activity);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t\t{markerNode}\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'activity-row--content min-w-0 flex-1',\n\t\t\t\t\t\t\t\t\t\tcontentPadding,\n\t\t\t\t\t\t\t\t\t\tcontentClassName,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"activity-row--summary grid min-w-0 grid-cols-1 items-start gap-x-space-lg gap-y-space-sm sm:grid-cols-[minmax(0,1fr)_max-content]\">\n\t\t\t\t\t<Stack gap=\"dense\" className=\"min-w-0\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"activity-row--headline flex min-w-0 flex-wrap items-center gap-x-space-sm gap-y-space-xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"inherit\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"min-w-0 break-words [overflow-wrap:anywhere]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{headlineNode}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!!sourceLabel && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Badge inline size=\"sm\" tone=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{sourceLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t{showMetadataPreview && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ActivityMetadataPreview\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmetadata={metadata}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmoreLabel={moreLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</Stack>\n\n\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"xs\" justify={{ base: 'between', sm: 'end' }} wrap={false} className=\"activity-row--trailing w-full shrink-0 justify-self-start sm:w-auto sm:justify-self-end\">\n\t\t\t\t\t\t\t\t\t\t\t\t{!!relativeTime && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"whitespace-nowrap tabular-nums leading-snug\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={absoluteTime ?? undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{relativeTime}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{showRichBody && hasDetailPanel && panelIsCollapsible && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"size-action-sm text-muted-foreground\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonExpandedChange(!expanded);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={expanded ? hideChangesLabel : showChangesLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={expanded ? hideChangesLabel : showChangesLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={expanded}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{expanded ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ChevronDown className=\"size-icon-sm\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ChevronRight className=\"size-icon-sm\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{showRichBody && menuActions.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ActivityActionsMenu<TData>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactivity={activity}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactions={menuActions}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonAction={onAction}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={actionsLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{!!showSecondaryRow && hasDescription && (\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"div\" type=\"secondary\" className=\"mt-space-xs max-w-3xl leading-relaxed\">\n\t\t\t\t\t\t\t\t\t\t\t\t{activity.description}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{!!showRichBody && hasResources && activity.resources && (\n\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"xs\" className=\"mt-space-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t{activity.resources.map((res) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst cfg = getResourceConfig?.(res);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ActivityResourceTag\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={res.key}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresource={res}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconfig={cfg}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonResourceClick\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonResourceClick(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcfg,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactivity,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{showRichBody && inlineActions.length > 0 && (\n\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"xs\" className=\"activity-row--inline-actions mt-space-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t{inlineActions.map((action) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst ActionIcon = action.icon;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={action.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttone={action.tone === 'destructive' ? 'destructive' : 'secondary'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ActionIcon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={action.disabled}\n\t\t\t\t\t\t\t\t\tclassName=\"h-auto min-h-action-sm px-control-sm py-space-xs\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonAction?.(action.id, activity);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taction.onClick?.(activity);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{showDetailPanel && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"mt-space-sm\">\n\t\t\t\t\t\t<div className={cn(\n\t\t\t\t\t\t\t'activity-row--details rounded-radius border border-border/60 bg-card/70 p-surface shadow-xs',\n\t\t\t\t\t\t\tdetailsClassName,\n\t\t\t\t\t\t)}>\n\t\t\t\t\t\t<Stack gap=\"sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{hasMetadata && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ActivityMetadataGrid metadata={metadata} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{hasChanges && activity.changes && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ActivityChanges\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchanges={activity.changes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"border-0 bg-transparent p-0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{hasDetails && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={cn(hasChanges && 'pt-space-xs')}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{activity.details}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{hasCustomDetails && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={cn((hasChanges || hasDetails) && 'pt-space-xs')}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{customDetails}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t);\n}\n","/**\n * ActivityFeed — framework-agnostic activity timeline.\n *\n * Composition seams:\n * - `strings` — deep-partial override of every label\n * - `eventConfig` — mass-configurable per-event icon/tone/labels\n * - `slots` — replace any region (row / headline / marker /\n * dateLabel / empty / loading / header / footer)\n * - `slots.renderRow` — full per-row override\n * - `accessors` — formatRelative/Absolute, getEventLabel, …\n * - `actionsForActivity` — surface a per-row action menu (rich density)\n * - `resources` + `onResourcesChange` — registry-driven rich resource\n * tags (icons, badges, links, tags) with save\n * and restore semantics for the consumer\n *\n * Headless usage:\n * - Call `useActivityFeed({ activities, ... })` directly to drive a\n * completely custom UI against the same grouping/expand state machine.\n * - Call `useActivityResources({ resources, onResourcesChange })` to\n * drive the registry independently.\n *\n * Framework-agnostic:\n * - No router import, no i18n SDK import. Wire actor / resource navigation\n * via callbacks at the call site.\n */\nimport { format, isValid, type Locale } from 'date-fns';\nimport { useMemo, type ReactNode } from 'react';\n\nimport { Stack } from '../../base/structure';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tdefaultActivityEventConfig,\n\tresolveEventConfig,\n} from './activities.config';\nimport {\n\tdefaultActivitiesStrings,\n} from './activities.strings';\nimport type {\n\tActivityAction,\n\tActivityFeedProps,\n\tActivityItem,\n\tActivityRowClassNameValue,\n\tActivityRenderRowContext,\n\tActivityTone,\n} from './activities.types';\nimport { useActivityFeed } from './hooks/use-activity-feed';\nimport { useActivityResources } from './hooks/use-activity-resources';\nimport {\n\tActivityDateLabel,\n\tActivityEmptyState,\n\tActivityRow,\n} from './partials';\n\nfunction defaultFormatAbsolute(iso: string, locale?: Locale): string {\n\ttry {\n\t\tconst date = new Date(iso);\n\t\treturn isValid(date) ? format(date, 'PP p', locale ? { locale } : undefined) : iso;\n\t} catch {\n\t\treturn iso;\n\t}\n}\n\nfunction resolveRowClassName<TData>(\n\tvalue: ActivityRowClassNameValue<TData> | undefined,\n\tactivity: ActivityItem<TData>,\n) {\n\treturn typeof value === 'function' ? value(activity) : value;\n}\n\nfunction resolveTone<TData>(\n\tactivity: ActivityItem<TData>,\n\teventTone: ActivityTone,\n): ActivityTone {\n\treturn activity.toneOverride ?? eventTone;\n}\n\nexport function ActivityFeed<TData = unknown>(props: ActivityFeedProps<TData>) {\n\tconst {\n\t\tactivities = [],\n\t\tdensity = 'default',\n\t\titemSpacing = 'relaxed',\n\t\tgroupByDate = true,\n\t\texpandedByDefault = false,\n\t\tdetailsCollapsible,\n\t\tdefaultExpandedIds,\n\t\texpandedIds,\n\t\tonExpandedIdsChange,\n\t\tcurrentUserId,\n\t\tloading = false,\n\t\teventConfig: eventConfigOverride,\n\t\tstrings: stringsProp,\n\t\tslots,\n\t\trowClassNames,\n\t\tclassName,\n\t\tlocale,\n\t\t// accessors\n\t\tformatRelativeTime,\n\t\tformatAbsoluteTime,\n\t\tformatDateGroupLabel,\n\t\tgetEventLabel: _getEventLabel,\n\t\tgetSourceLabel,\n\t\tactionsForActivity,\n\t\t// callbacks\n\t\tonActivityClick,\n\t\tonActorClick,\n\t\tonResourceClick,\n\t\tonAction,\n\t\tonActivityExpandedChange,\n\t\t// resources\n\t\tresources,\n\t\tonResourcesChange,\n\t} = props;\n\n\tconst strings = useStrings(defaultActivitiesStrings, stringsProp);\n\n\tconst eventConfigMap = useMemo(\n\t\t() => ({ ...defaultActivityEventConfig, ...eventConfigOverride }),\n\t\t[eventConfigOverride],\n\t);\n\n\tconst registry = useActivityResources({\n\t\tresources,\n\t\tonResourcesChange,\n\t});\n\n\tconst dates = useDatesConfig();\n\tconst resolvedLocale = locale ?? dates.locale;\n\tconst feed = useActivityFeed<TData>({\n\t\tactivities,\n\t\tgroupByDate,\n\t\texpandedByDefault,\n\t\tdefaultExpandedIds,\n\t\texpandedIds,\n\t\tonExpandedIdsChange,\n\t\tlocale: resolvedLocale,\n\t\tstrings,\n\t\tformatDateGroupLabel,\n\t});\n\n\tconst fmtRelative = formatRelativeTime ?? dates.formatRelativeTime ?? ((iso: string) => iso);\n\tconst fmtAbsolute = formatAbsoluteTime ?? ((iso: string) => defaultFormatAbsolute(iso, resolvedLocale));\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div className={cn('activities-feed--component', 'px-space-md py-space-xl', className)}>\n\t\t\t\t{slots?.loading ?? (\n\t\t\t\t\t<Text type=\"secondary\" align=\"center\">\n\t\t\t\t\t\t{strings.loading}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (activities.length === 0) {\n\t\treturn (\n\t\t\t<div className={cn('activities-feed--component', 'px-space-md py-space-md', className)}>\n\t\t\t\t{slots?.empty ?? <ActivityEmptyState title={strings.empty} />}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst totalRendered = feed.groups.reduce((acc, g) => acc + g.items.length, 0);\n\tlet renderedSoFar = 0;\n\n\treturn (\n\t\t<Stack gap=\"xl\" className={cn('activities-feed--component', className)}>\n\t\t\t{!!slots?.header && <div>{slots.header}</div>}\n\n\t\t\t<div className=\"flex flex-col\">\n\t\t\t\t{feed.groups.map((group, gi) => {\n\t\t\t\t\tconst isFirstGroup = gi === 0;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div key={`${group.label}-${gi}`} className={cn(isFirstGroup ? '' : 'mt-1')}>\n\t\t\t\t\t\t\t{slots?.renderDateLabel\n\t\t\t\t\t\t\t\t? slots.renderDateLabel(group.label, isFirstGroup)\n\t\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t\t<ActivityDateLabel\n\t\t\t\t\t\t\t\t\t\tlabel={group.label}\n\t\t\t\t\t\t\t\t\t\tfirst={isFirstGroup}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div className={cn('flex flex-col', !!group.label && 'mt-space-md')}>\n\t\t\t\t\t\t\t\t{group.items.map((keyed, ii) => {\n\t\t\t\t\t\t\t\t\tconst activity = keyed.activity;\n\t\t\t\t\t\t\t\t\tconst isFirstInGroup = ii === 0;\n\t\t\t\t\t\t\t\t\tconst isLast =\n\t\t\t\t\t\t\t\t\t\t++renderedSoFar === totalRendered;\n\t\t\t\t\t\t\t\t\tconst eventCfg = resolveEventConfig(\n\t\t\t\t\t\t\t\t\t\tactivity.event,\n\t\t\t\t\t\t\t\t\t\teventConfigMap,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tconst tone = resolveTone(activity, eventCfg.tone);\n\t\t\t\t\t\t\t\t\tconst relativeTime = activity.timestamp\n\t\t\t\t\t\t\t\t\t\t?? (activity.createdAt\n\t\t\t\t\t\t\t\t\t\t\t? fmtRelative(activity.createdAt)\n\t\t\t\t\t\t\t\t\t\t\t: null);\n\t\t\t\t\t\t\t\t\tconst absoluteTime = activity.createdAt\n\t\t\t\t\t\t\t\t\t\t? fmtAbsolute(activity.createdAt)\n\t\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\t\t\tconst sourceLabel = activity.source\n\t\t\t\t\t\t\t\t\t\t? (getSourceLabel?.(activity.source)\n\t\t\t\t\t\t\t\t\t\t\t\t?? strings.sources[activity.source]\n\t\t\t\t\t\t\t\t\t\t\t\t?? eventCfg.sourceLabel\n\t\t\t\t\t\t\t\t\t\t\t\t?? null)\n\t\t\t\t\t\t\t\t\t\t: eventCfg.sourceLabel ?? null;\n\t\t\t\t\t\t\t\t\tconst sourceLabelTrimmed =\n\t\t\t\t\t\t\t\t\t\tsourceLabel && sourceLabel.trim().length > 0\n\t\t\t\t\t\t\t\t\t\t\t? sourceLabel\n\t\t\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\t\t\tconst actions: readonly ActivityAction<TData>[] =\n\t\t\t\t\t\t\t\t\t\tactionsForActivity?.(activity) ?? [];\n\n\t\t\t\t\t\t\t\t\tconst ctx: ActivityRenderRowContext<TData> = {\n\t\t\t\t\t\t\t\t\t\tdensity,\n\t\t\t\t\t\t\t\t\t\tisLast,\n\t\t\t\t\t\t\t\t\t\tisFirstInGroup,\n\t\t\t\t\t\t\t\t\t\tactivity,\n\t\t\t\t\t\t\t\t\t\teventConfig: eventCfg,\n\t\t\t\t\t\t\t\t\t\ttone,\n\t\t\t\t\t\t\t\t\t\trelativeTime,\n\t\t\t\t\t\t\t\t\t\tabsoluteTime,\n\t\t\t\t\t\t\t\t\t\tsourceLabel: sourceLabelTrimmed,\n\t\t\t\t\t\t\t\t\t\texpanded: feed.isExpanded(activity.id),\n\t\t\t\t\t\t\t\t\t\titemSpacing,\n\t\t\t\t\t\t\t\t\t\tsetExpanded: (expanded) =>\n\t\t\t\t\t\t\t\t\t\t\tfeed.setExpanded(activity.id, expanded),\n\t\t\t\t\t\t\t\t\t\ttoggleExpanded: () =>\n\t\t\t\t\t\t\t\t\t\t\tfeed.toggleExpanded(activity.id),\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tconst customDetails =\n\t\t\t\t\t\t\t\t\t\tslots?.renderDetails?.(activity, ctx);\n\n\t\t\t\t\t\t\t\t\tconst customRow = slots?.renderRow?.(activity, ctx);\n\t\t\t\t\t\t\t\t\tif (customRow !== undefined) {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<div key={keyed.key}>{customRow}</div>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst headlineOverride =\n\t\t\t\t\t\t\t\t\t\tslots?.renderHeadline?.(activity, ctx);\n\t\t\t\t\t\t\t\t\tconst markerOverride =\n\t\t\t\t\t\t\t\t\t\tslots?.renderMarker?.(activity, ctx);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ActivityRow<TData>\n\t\t\t\t\t\t\t\t\t\t\tkey={keyed.key}\n\t\t\t\t\t\t\t\t\t\t\tactivity={activity}\n\t\t\t\t\t\t\t\t\t\t\tdensity={density}\n\t\t\t\t\t\t\t\t\t\t\titemSpacing={itemSpacing}\n\t\t\t\t\t\t\t\t\t\t\teventConfig={eventCfg}\n\t\t\t\t\t\t\t\t\t\t\ttone={tone}\n\t\t\t\t\t\t\t\t\t\t\tlast={isLast}\n\t\t\t\t\t\t\t\t\t\t\texpanded={ctx.expanded}\n\t\t\t\t\t\t\t\t\t\t\tonExpandedChange={(expanded) => {\n\t\t\t\t\t\t\t\t\t\t\t\tfeed.setExpanded(activity.id, expanded);\n\t\t\t\t\t\t\t\t\t\t\t\tonActivityExpandedChange?.(activity, expanded);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tdetailsCollapsible={activity.collapsible ?? detailsCollapsible}\n\t\t\t\t\t\t\t\t\t\t\trelativeTime={relativeTime}\n\t\t\t\t\t\t\t\t\t\t\tabsoluteTime={absoluteTime}\n\t\t\t\t\t\t\t\t\t\t\tsourceLabel={sourceLabelTrimmed}\n\t\t\t\t\t\t\t\t\t\t\tyouLabel={strings.you}\n\t\t\t\t\t\t\t\t\t\t\tshowChangesLabel={strings.showChanges}\n\t\t\t\t\t\t\t\t\t\t\thideChangesLabel={strings.hideChanges}\n\t\t\t\t\t\t\t\t\t\t\tmoreLabel={strings.moreLabel}\n\t\t\t\t\t\t\t\t\t\t\tactionsLabel={strings.actionsLabel}\n\t\t\t\t\t\t\t\t\t\t\tcurrentUserId={currentUserId}\n\t\t\t\t\t\t\t\t\t\t\tactions={actions}\n\t\t\t\t\t\t\t\t\t\t\tonActivityClick={onActivityClick}\n\t\t\t\t\t\t\t\t\t\t\tonActorClick={onActorClick}\n\t\t\t\t\t\t\t\t\t\t\tonResourceClick={onResourceClick}\n\t\t\t\t\t\t\t\t\t\t\tonAction={onAction}\n\t\t\t\t\t\t\t\t\t\t\tgetResourceConfig={(ref) =>\n\t\t\t\t\t\t\t\t\t\t\t\tregistry.get(ref)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\theadlineOverride={\n\t\t\t\t\t\t\t\t\t\t\t\theadlineOverride as ReactNode | undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tmarkerOverride={\n\t\t\t\t\t\t\t\t\t\t\t\tmarkerOverride as ReactNode | undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcustomDetails={customDetails}\n\t\t\t\t\t\t\t\t\t\t\trowClassName={resolveRowClassName(rowClassNames?.row, activity)}\n\t\t\t\t\t\t\t\t\t\t\tmarkerClassName={resolveRowClassName(rowClassNames?.marker, activity)}\n\t\t\t\t\t\t\t\t\t\t\tcontentClassName={resolveRowClassName(rowClassNames?.content, activity)}\n\t\t\t\t\t\t\t\t\t\t\tdetailsClassName={resolveRowClassName(rowClassNames?.details, activity)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{!!slots?.footer && <div>{slots.footer}</div>}\n\t\t</Stack>\n\t);\n}\n\nActivityFeed.displayName = 'ActivityFeed';\n","/**\n * ActivityLog — canonical mixed-source activity surface.\n *\n * This is the single feature implementation for comments, audit events,\n * system events, domain events, inline mentions, composer chrome, row actions,\n * and collapsible details. `ActivityFeed` remains the lower-level activity-row\n * primitive inside this feature; consumers needing the full mixed log should\n * mount `ActivityLog`.\n */\nimport { MessageCircle } from 'lucide-react';\nimport { formatDistanceToNow, isValid, parseISO } from 'date-fns';\nimport { useCallback, useMemo, type ReactNode } from 'react';\n\nimport {\n\tCommentComposer,\n\tCommentItem,\n\ttype CommentUser,\n\tuseComments,\n} from '../comments';\nimport { MentionContent } from '../mentions';\nimport { useStrings } from '../../../lib/strings';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { Text } from '../../typography';\nimport { Stack } from '../../base/structure';\n\nimport { ActivityFeed } from './activities-feed';\nimport { defaultActivitiesStrings } from './activities.strings';\nimport type {\n\tActivityAction,\n\tActivityFeedSlots,\n\tActivityItem,\n\tActivityLogActivityEntry,\n\tActivityLogClassNameValue,\n\tActivityLogEntry,\n\tActivityLogProps,\n\tActivityLogRenderer,\n\tActivityRowClassNames,\n\tActivityTone,\n} from './activities.types';\nimport { ActivityMarker } from './partials/activity-marker';\n\nfunction sortEntries<T extends { timestamp?: string }>(\n\tentries: ReadonlyArray<T>,\n\torder: 'asc' | 'desc',\n): ReadonlyArray<T> {\n\tconst arr = [...entries];\n\tarr.sort((a, b) => {\n\t\tconst ta = a.timestamp ? new Date(a.timestamp).getTime() : 0;\n\t\tconst tb = b.timestamp ? new Date(b.timestamp).getTime() : 0;\n\t\treturn order === 'asc' ? ta - tb : tb - ta;\n\t});\n\treturn arr;\n}\n\nfunction toActivityTone(tone: ActivityLogActivityEntry['tone']): ActivityTone {\n\treturn tone ?? 'secondary';\n}\n\nfunction toActor(actor: ActivityLogActivityEntry['actor']) {\n\tif (!actor) return undefined;\n\treturn typeof actor === 'string' ? { name: actor } : actor;\n}\n\nfunction hasRenderableNode(value: ReactNode): boolean {\n\treturn value !== null && value !== undefined && value !== false;\n}\n\nfunction resolveEventClassName<\n\tTUser extends CommentUser,\n\tTMeta,\n\tTResource extends string,\n>(\n\tvalue: ActivityLogClassNameValue<TResource> | undefined,\n\tentry: ActivityLogEntry<TUser, TMeta, TResource> | undefined,\n) {\n\tif (!value || !entry || entry.kind === 'comment') return undefined;\n\treturn typeof value === 'function'\n\t\t? value(entry as ActivityLogActivityEntry<TResource>)\n\t\t: value;\n}\n\nfunction mapEventToActivity<TResource extends string>(\n\tentry: ActivityLogActivityEntry<TResource>,\n\tresources: ActivityLogProps<CommentUser, unknown, TResource>['resources'],\n): ActivityItem<ActivityLogActivityEntry<TResource>> {\n\tconst actor = toActor(entry.actor);\n\tconst description =\n\t\tentry.descriptionHtml ? (\n\t\t\t<MentionContent\n\t\t\t\thtml={entry.descriptionHtml}\n\t\t\t\tmentions={entry.mentions}\n\t\t\t\tresources={resources}\n\t\t\t/>\n\t\t) : entry.description;\n\n\treturn {\n\t\tid: entry.id,\n\t\tevent: entry.event ?? entry.kind,\n\t\tsource: typeof entry.label === 'string' ? entry.label : entry.kind,\n\t\tactor,\n\t\tcreatedAt: entry.timestamp,\n\t\ttimestamp: undefined,\n\t\ticonOverride: entry.icon,\n\t\ttoneOverride: toActivityTone(entry.tone),\n\t\theadline: typeof entry.headline === 'string' ? entry.headline : undefined,\n\t\tdescription,\n\t\tmetadata: entry.metadata,\n\t\tchanges: entry.changes,\n\t\tdetails: entry.details,\n\t\tcollapsible: entry.collapsible,\n\t\tdefaultExpanded: entry.defaultExpanded,\n\t\tdata: entry,\n\t\tsegments:\n\t\t\tentry.action || entry.target || entry.label || !entry.headline\n\t\t\t\t? [\n\t\t\t\t\t\t...(actor\n\t\t\t\t\t\t\t? [{ type: 'actor' as const, text: actor.name, actorId: actor.id }]\n\t\t\t\t\t\t\t: []),\n\t\t\t\t\t\t...(entry.action\n\t\t\t\t\t\t\t? [{ type: 'text' as const, text: entry.action }]\n\t\t\t\t\t\t\t: []),\n\t\t\t\t\t\t...(hasRenderableNode(entry.target)\n\t\t\t\t\t\t\t? [{ type: 'value' as const, text: String(entry.target) }]\n\t\t\t\t\t\t\t: []),\n\t\t\t\t\t\t...(!actor && !entry.action && !entry.target && entry.headline\n\t\t\t\t\t\t\t? [{ type: 'text' as const, text: String(entry.headline) }]\n\t\t\t\t\t\t\t: []),\n\t\t\t\t\t]\n\t\t\t\t: undefined,\n\t};\n}\n\nexport function ActivityLog<\n\tTUser extends CommentUser = CommentUser,\n\tTMeta = unknown,\n\tTResource extends string = string,\n>(props: ActivityLogProps<TUser, TMeta, TResource>) {\n\tconst {\n\t\tentries,\n\t\torder = 'desc',\n\t\titemSpacing = 'relaxed',\n\t\tresources,\n\t\tonResourceSearch,\n\t\tcanModerate,\n\t\tonCommentDelete,\n\t\tonCommentReact,\n\t\tonCommentReply,\n\t\tonCommentPinToggle,\n\t\tstrings,\n\t\tactivityStrings: activityStringsProp,\n\t\trenderers,\n\t\trenderEventDetails,\n\t\teventDetailsCollapsible = true,\n\t\tdefaultExpandedIds,\n\t\texpandedIds,\n\t\tonExpandedIdsChange,\n\t\tonEventExpandedChange,\n\t\tonEventAction,\n\t\tclassNames,\n\t\tcomposer,\n\t\tbare = false,\n\t\ttitle,\n\t\tgetMediaUrl,\n\t\tgetMediaName,\n\t\tgetStatusLabel,\n\t\tformatRelativeTime,\n\t\tclassName,\n\t} = props;\n\n\tconst activityStrings = useStrings(defaultActivitiesStrings, activityStringsProp);\n\tconst dates = useDatesConfig();\n\tconst formatRelative = useCallback(\n\t\t(iso: string) => {\n\t\t\tconst configuredFormatter =\n\t\t\t\tformatRelativeTime ?? dates.formatRelativeTime;\n\t\t\tif (configuredFormatter) return configuredFormatter(iso);\n\n\t\t\tconst parsed = parseISO(iso);\n\t\t\tif (!isValid(parsed)) return iso;\n\t\t\tconst locale = dates.locale;\n\t\t\treturn formatDistanceToNow(parsed, {\n\t\t\t\taddSuffix: true,\n\t\t\t\t...(locale ? { locale } : {}),\n\t\t\t});\n\t\t},\n\t\t[dates.formatRelativeTime, dates.locale, formatRelativeTime],\n\t);\n\n\tconst composerState = useComments<CommentUser, unknown, TResource>({\n\t\tonSubmit: composer?.onSubmit,\n\t\tonAfterMutate: composer?.onAfterMutate,\n\t\tonError: composer?.onError,\n\t});\n\n\tconst sorted = useMemo(\n\t\t() => sortEntries(entries, order),\n\t\t[entries, order],\n\t);\n\n\tconst activities = useMemo(\n\t\t() =>\n\t\t\tsorted.map((entry) => {\n\t\t\t\tif (entry.kind === 'comment') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tevent: 'comment',\n\t\t\t\t\t\tsource: 'comment',\n\t\t\t\t\t\tcreatedAt: entry.timestamp,\n\t\t\t\t\t\tdata: entry,\n\t\t\t\t\t} satisfies ActivityItem<ActivityLogEntry<TUser, TMeta, TResource>>;\n\t\t\t\t}\n\t\t\t\treturn mapEventToActivity(\n\t\t\t\t\tentry as ActivityLogActivityEntry<TResource>,\n\t\t\t\t\tresources,\n\t\t\t\t) as ActivityItem<ActivityLogEntry<TUser, TMeta, TResource>>;\n\t\t\t}),\n\t\t[resources, sorted],\n\t);\n\n\tconst eventRowClassNames = useMemo<\n\t\tActivityRowClassNames<ActivityLogEntry<TUser, TMeta, TResource>>\n\t>(\n\t\t() => ({\n\t\t\trow: (activity) => resolveEventClassName(classNames?.eventRow, activity.data),\n\t\t\tmarker: (activity) => resolveEventClassName(classNames?.eventMarker, activity.data),\n\t\t\tcontent: (activity) => resolveEventClassName(classNames?.eventContent, activity.data),\n\t\t\tdetails: (activity) => resolveEventClassName(classNames?.eventDetails, activity.data),\n\t\t}),\n\t\t[classNames],\n\t);\n\n\tconst composerBlock = composer?.enabled ? (\n\t\t<div className=\"activity-log--composer\">\n\t\t\t<CommentComposer<TResource>\n\t\t\t\tcontext={composer.context}\n\t\t\t\tcanComment\n\t\t\t\tsubmitting={composerState.isSubmitting}\n\t\t\t\terrors={composerState.formErrors}\n\t\t\t\tresetKey={composerState.resetKey}\n\t\t\t\tonSubmit={composerState.submit}\n\t\t\t\tresources={resources}\n\t\t\t\tonResourceSearch={onResourceSearch}\n\t\t\t\tstrings={strings}\n\t\t\t\tplaceholder={composer.placeholder}\n\t\t\t\tautoFocus={composer.autoFocus}\n\t\t\t\tinlineSubmit={composer.inlineSubmit ?? false}\n\t\t\t/>\n\t\t</div>\n\t) : null;\n\tconst composerPosition = composer?.position ?? 'top';\n\n\tconst actionsForActivity = (\n\t\tactivity: ActivityItem<ActivityLogEntry<TUser, TMeta, TResource>>,\n\t): readonly ActivityAction<ActivityLogEntry<TUser, TMeta, TResource>>[] => {\n\t\tconst entry = activity.data;\n\t\tif (!entry || entry.kind === 'comment') return [];\n\t\tconst eventEntry = entry as ActivityLogActivityEntry<TResource>;\n\t\treturn (eventEntry.actions ?? []).map((action) => ({\n\t\t\tid: action.id,\n\t\t\tlabel: action.label,\n\t\t\ticon: action.icon,\n\t\t\thref: action.href,\n\t\t\tdisabled: action.disabled,\n\t\t\ttone: action.tone,\n\t\t\tpresentation: action.presentation,\n\t\t\tonClick: () => action.onSelect?.(eventEntry),\n\t\t}));\n\t};\n\n\tconst slots: ActivityFeedSlots<ActivityLogEntry<TUser, TMeta, TResource>> = {\n\t\theader: composerPosition === 'top' ? composerBlock : undefined,\n\t\tfooter: composerPosition === 'bottom' ? composerBlock : undefined,\n\t\trenderRow: (activity, ctx) => {\n\t\t\tconst entry = activity.data;\n\t\t\tif (!entry) return undefined;\n\t\t\tconst custom = renderers?.[entry.kind] as\n\t\t\t\t| ActivityLogRenderer<TUser, TMeta, TResource>\n\t\t\t\t| undefined;\n\t\t\tif (custom) {\n\t\t\t\treturn custom(entry, {\n\t\t\t\t\tresources,\n\t\t\t\t\taccessors: {\n\t\t\t\t\t\tgetMediaUrl,\n\t\t\t\t\t\tgetMediaName,\n\t\t\t\t\t\tgetStatusLabel,\n\t\t\t\t\t\tformatRelativeTime: formatRelative,\n\t\t\t\t\t},\n\t\t\t\t\tstrings,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (entry.kind !== 'comment') return undefined;\n\t\t\tconst commentEntry = entry as Extract<\n\t\t\t\tActivityLogEntry<TUser, TMeta, TResource>,\n\t\t\t\t{ kind: 'comment' }\n\t\t\t>;\n\t\t\treturn (\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\talign=\"stretch\"\n\t\t\t\t\twrap={false}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'activity-log--comment-row relative py-space-xs',\n\t\t\t\t\t\t!ctx.isLast && (\n\t\t\t\t\t\t\tctx.itemSpacing === 'compact'\n\t\t\t\t\t\t\t\t? 'pb-space-sm'\n\t\t\t\t\t\t\t\t: ctx.itemSpacing === 'relaxed'\n\t\t\t\t\t\t\t\t\t? 'pb-space-xl'\n\t\t\t\t\t\t\t\t\t: 'pb-space-md'\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t\tdata-event-id={commentEntry.id}\n\t\t\t\t>\n\t\t\t\t\t<ActivityMarker\n\t\t\t\t\t\ticon={MessageCircle}\n\t\t\t\t\t\ttone=\"neutral\"\n\t\t\t\t\t\tdensity={ctx.density}\n\t\t\t\t\t\tlast={ctx.isLast}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"activity-log--comment min-w-0 flex-1\">\n\t\t\t\t\t\t<CommentItem<TUser, TMeta, TResource>\n\t\t\t\t\t\t\tcomment={commentEntry.comment}\n\t\t\t\t\t\t\tcanModerate={canModerate}\n\t\t\t\t\t\t\tonDelete={onCommentDelete}\n\t\t\t\t\t\t\tonPinToggle={onCommentPinToggle}\n\t\t\t\t\t\t\tonReact={onCommentReact}\n\t\t\t\t\t\t\tonReply={onCommentReply}\n\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t\tresources={resources}\n\t\t\t\t\t\t\tgetMediaUrl={getMediaUrl}\n\t\t\t\t\t\t\tgetMediaName={getMediaName}\n\t\t\t\t\t\t\tgetStatusLabel={getStatusLabel}\n\t\t\t\t\t\t\tformatRelativeTime={formatRelative}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Stack>\n\t\t\t);\n\t\t},\n\t\trenderDetails: (activity, ctx) => {\n\t\t\tconst entry = activity.data;\n\t\t\tif (!entry || entry.kind === 'comment') return null;\n\t\t\treturn renderEventDetails?.(\n\t\t\t\tentry as ActivityLogActivityEntry<TResource>,\n\t\t\t\t{\n\t\t\t\t\texpanded: ctx.expanded,\n\t\t\t\t\tsetExpanded: ctx.setExpanded,\n\t\t\t\t\trelativeTime: ctx.relativeTime,\n\t\t\t\t\tisLast: ctx.isLast,\n\t\t\t\t\tresources,\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t};\n\n\tconst inner = (\n\t\t<ActivityFeed<ActivityLogEntry<TUser, TMeta, TResource>>\n\t\t\tactivities={activities}\n\t\t\tdensity=\"rich\"\n\t\t\titemSpacing={itemSpacing}\n\t\t\tgroupByDate\n\t\t\tresources={{}}\n\t\t\tstrings={activityStringsProp}\n\t\t\tdetailsCollapsible={eventDetailsCollapsible}\n\t\t\tdefaultExpandedIds={defaultExpandedIds}\n\t\t\texpandedIds={expandedIds}\n\t\t\tonExpandedIdsChange={onExpandedIdsChange}\n\t\t\tformatRelativeTime={formatRelative}\n\t\t\tgetSourceLabel={(source) => activityStrings.sources[source] ?? source}\n\t\t\tactionsForActivity={actionsForActivity}\n\t\t\trowClassNames={eventRowClassNames}\n\t\t\tonAction={(actionId, activity) => {\n\t\t\t\tconst entry = activity.data;\n\t\t\t\tif (entry && entry.kind !== 'comment') {\n\t\t\t\t\tonEventAction?.(actionId, entry as ActivityLogActivityEntry<TResource>);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tonActivityExpandedChange={(activity, expanded) => {\n\t\t\t\tconst entry = activity.data;\n\t\t\t\tif (entry && entry.kind !== 'comment') {\n\t\t\t\t\tonEventExpandedChange?.(\n\t\t\t\t\t\tentry as ActivityLogActivityEntry<TResource>,\n\t\t\t\t\t\texpanded,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tslots={slots}\n\t\t\tclassName={cn(\n\t\t\t\t'activity-log--component',\n\t\t\t\tclassNames?.list,\n\t\t\t\tbare && className,\n\t\t\t)}\n\t\t/>\n\t);\n\n\tif (bare) {\n\t\treturn inner;\n\t}\n\n\tconst label = title ?? activityStrings.title;\n\tconst ariaLabel = typeof label === 'string' ? label : undefined;\n\n\treturn (\n\t\t<Stack\n\t\t\trender={<section />}\n\t\t\tgap=\"lg\"\n\t\t\tdata-component=\"activity-log\"\n\t\t\tdata-slot=\"activity-log\"\n\t\t\tclassName={cn('activity-log--component', className)}\n\t\t\taria-label={ariaLabel}\n\t\t>\n\t\t\t{!!label && (\n\t\t\t\t<Text weight=\"semibold\">\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{inner}\n\t\t</Stack>\n\t);\n}\n\nActivityLog.displayName = 'ActivityLog';\n","/**\n * ActivityEventAdapter — map raw event-like records into ActivityLog entries.\n *\n * This is intentionally pure and framework-agnostic. Consumers pass accessors\n * for their domain shape; the package returns the canonical ActivityLogEntry\n * shape used by the timeline.\n */\nimport type {\n\tActivityActor,\n\tActivityChange,\n\tActivityLogActivityEntry,\n\tActivityLogCommentEntry,\n\tActivityLogEntry,\n\tActivityLogEventAction,\n\tActivityTone,\n} from './activities.types';\nimport type { CommentData, CommentUser } from '../comments';\nimport type { Mention } from '../mentions';\nimport type { ReactNode } from 'react';\n\nexport interface ActivityEventAdapterAccessors<\n\tTRaw,\n\tTUser extends CommentUser = CommentUser,\n\tTMeta = unknown,\n\tTResource extends string = string,\n> {\n\tid: (record: TRaw) => string;\n\ttimestamp: (record: TRaw) => string;\n\tkind?: (record: TRaw) => ActivityLogEntry<TUser, TMeta, TResource>['kind'];\n\tevent?: (record: TRaw) => string | undefined;\n\tactor?: (record: TRaw) => string | ActivityActor | undefined;\n\ttitle?: (record: TRaw) => ReactNode;\n\taction?: (record: TRaw) => string | undefined;\n\ttarget?: (record: TRaw) => ReactNode;\n\tdescription?: (record: TRaw) => ReactNode;\n\tdescriptionHtml?: (record: TRaw) => string | undefined;\n\tmentions?: (record: TRaw) => ReadonlyArray<Mention<TResource>> | undefined;\n\tsource?: (record: TRaw) => ReactNode;\n\tstatus?: (record: TRaw) => ReactNode;\n\ttone?: (record: TRaw) => ActivityTone | undefined;\n\tmetadata?: (record: TRaw) => ReadonlyArray<{ label: string; value: ReactNode }> | undefined;\n\tchanges?: (record: TRaw) => readonly ActivityChange[] | undefined;\n\tdetails?: (record: TRaw) => ReactNode;\n\trowActions?: (record: TRaw) => ReadonlyArray<ActivityLogEventAction<TResource>> | undefined;\n\tcomment?: (record: TRaw) => CommentData<TUser, TMeta, TResource> | undefined;\n\tdata?: (record: TRaw) => unknown;\n}\n\nfunction defaultKind<TRaw>(record: TRaw) {\n\tif (typeof record === 'object' && record !== null && 'kind' in record) {\n\t\tconst kind = (record as { kind?: unknown }).kind;\n\t\tif (typeof kind === 'string') return kind;\n\t}\n\treturn 'event';\n}\n\nexport function toActivityLogEntry<\n\tTRaw,\n\tTUser extends CommentUser = CommentUser,\n\tTMeta = unknown,\n\tTResource extends string = string,\n>(\n\trecord: TRaw,\n\taccessors: ActivityEventAdapterAccessors<TRaw, TUser, TMeta, TResource>,\n): ActivityLogEntry<TUser, TMeta, TResource> {\n\tconst kind = accessors.kind?.(record) ?? defaultKind(record);\n\tconst id = accessors.id(record);\n\tconst timestamp = accessors.timestamp(record);\n\tconst comment = accessors.comment?.(record);\n\n\tif (kind === 'comment' && comment) {\n\t\treturn {\n\t\t\tid,\n\t\t\tkind: 'comment',\n\t\t\ttimestamp,\n\t\t\tcomment,\n\t\t} satisfies ActivityLogCommentEntry<TUser, TMeta, TResource>;\n\t}\n\n\treturn {\n\t\tid,\n\t\tkind: typeof kind === 'string' ? kind : 'event',\n\t\ttimestamp,\n\t\tevent: accessors.event?.(record),\n\t\tactor: accessors.actor?.(record),\n\t\taction: accessors.action?.(record),\n\t\ttarget: accessors.target?.(record) ?? accessors.status?.(record),\n\t\tlabel: accessors.source?.(record),\n\t\theadline: accessors.title?.(record),\n\t\tdescription: accessors.description?.(record),\n\t\tdescriptionHtml: accessors.descriptionHtml?.(record),\n\t\tmentions: accessors.mentions?.(record),\n\t\ttone: accessors.tone?.(record),\n\t\tmetadata: accessors.metadata?.(record),\n\t\tchanges: accessors.changes?.(record),\n\t\tdetails: accessors.details?.(record),\n\t\tactions: accessors.rowActions?.(record),\n\t\tdata: accessors.data?.(record) ?? record,\n\t} satisfies ActivityLogActivityEntry<TResource>;\n}\n\nexport function createActivityEventAdapter<\n\tTRaw,\n\tTUser extends CommentUser = CommentUser,\n\tTMeta = unknown,\n\tTResource extends string = string,\n>(\n\taccessors: ActivityEventAdapterAccessors<TRaw, TUser, TMeta, TResource>,\n) {\n\treturn (record: TRaw) =>\n\t\ttoActivityLogEntry<TRaw, TUser, TMeta, TResource>(record, accessors);\n}\n"],"mappings":"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"}
|