@flamingo-stack/openframe-frontend-core 0.0.204 → 0.0.205
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/dist/{chunk-4CWSZPXH.cjs → chunk-24KCAECR.cjs} +9 -9
- package/dist/{chunk-4CWSZPXH.cjs.map → chunk-24KCAECR.cjs.map} +1 -1
- package/dist/chunk-27APPAJN.cjs +24 -0
- package/dist/chunk-27APPAJN.cjs.map +1 -0
- package/dist/{chunk-UC43NICZ.cjs → chunk-664KA5FI.cjs} +2 -35
- package/dist/chunk-664KA5FI.cjs.map +1 -0
- package/dist/chunk-6RZYJICV.cjs +24 -0
- package/dist/chunk-6RZYJICV.cjs.map +1 -0
- package/dist/chunk-7L4DWM7P.js +24 -0
- package/dist/chunk-7L4DWM7P.js.map +1 -0
- package/dist/chunk-BZFW3FOF.cjs +21 -0
- package/dist/chunk-BZFW3FOF.cjs.map +1 -0
- package/dist/{chunk-N57KWHDB.js → chunk-CIPO6DXK.js} +5 -5
- package/dist/chunk-EL5YVPD5.js +21 -0
- package/dist/chunk-EL5YVPD5.js.map +1 -0
- package/dist/{chunk-ARQ4XP64.cjs → chunk-FDCFI7YT.cjs} +40080 -31492
- package/dist/chunk-FDCFI7YT.cjs.map +1 -0
- package/dist/chunk-G7UE6RKV.cjs +121 -0
- package/dist/chunk-G7UE6RKV.cjs.map +1 -0
- package/dist/{chunk-25LVV26X.cjs → chunk-JUZGUQMX.cjs} +178 -50
- package/dist/chunk-JUZGUQMX.cjs.map +1 -0
- package/dist/{chunk-SZPJ5R5B.js → chunk-KSOOKNBG.js} +1 -34
- package/dist/chunk-KSOOKNBG.js.map +1 -0
- package/dist/{chunk-RMB5DVED.cjs → chunk-KUZGEA7U.cjs} +83 -66
- package/dist/chunk-KUZGEA7U.cjs.map +1 -0
- package/dist/chunk-LXC6P2EO.js +63 -0
- package/dist/chunk-LXC6P2EO.js.map +1 -0
- package/dist/chunk-MJNXIEV2.js +24 -0
- package/dist/chunk-MJNXIEV2.js.map +1 -0
- package/dist/{chunk-CPXLQ57U.js → chunk-MVGGXOFA.js} +37 -20
- package/dist/chunk-MVGGXOFA.js.map +1 -0
- package/dist/{chunk-LY34ORX6.js → chunk-O55ZUAX7.js} +39920 -31332
- package/dist/chunk-O55ZUAX7.js.map +1 -0
- package/dist/chunk-OHPI2HRK.js +47 -0
- package/dist/chunk-OHPI2HRK.js.map +1 -0
- package/dist/chunk-PLJLE4A4.js +121 -0
- package/dist/chunk-PLJLE4A4.js.map +1 -0
- package/dist/{chunk-XGL5FKIK.js → chunk-SCN5WFIZ.js} +148 -20
- package/dist/chunk-SCN5WFIZ.js.map +1 -0
- package/dist/chunk-WBR7H6E3.cjs +47 -0
- package/dist/chunk-WBR7H6E3.cjs.map +1 -0
- package/dist/chunk-XL4V2PYG.cjs +63 -0
- package/dist/chunk-XL4V2PYG.cjs.map +1 -0
- package/dist/components/announcement-bar.d.ts.map +1 -1
- package/dist/components/chat/chat-attachment-bar.d.ts +66 -0
- package/dist/components/chat/chat-attachment-bar.d.ts.map +1 -0
- package/dist/components/chat/chat-container.d.ts +21 -1
- package/dist/components/chat/chat-container.d.ts.map +1 -1
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/chat-panel-context.d.ts +9 -0
- package/dist/components/chat/chat-panel-context.d.ts.map +1 -0
- package/dist/components/chat/chat-ticket-list.d.ts +1 -1
- package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.d.ts +42 -0
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/admin-content-card.d.ts +34 -0
- package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/block-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/blog-card.d.ts +30 -0
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts +26 -0
- package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts +33 -0
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/case-study-card.d.ts +20 -0
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -0
- package/dist/components/chat/{chat-video-entity-card.d.ts → entity-cards/chat-video-entity-card.d.ts} +1 -1
- package/dist/components/chat/entity-cards/chat-video-entity-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts +19 -0
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/data-room-doc-card.d.ts +47 -0
- package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts +119 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/entity-author-card.d.ts +87 -0
- package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts +42 -0
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/github-activity-card.d.ts +37 -0
- package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts +28 -0
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/index.d.ts +32 -0
- package/dist/components/chat/entity-cards/index.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/investor-update-card.d.ts +19 -0
- package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +20 -0
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts +21 -0
- package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/product-release-card.d.ts +12 -0
- package/dist/components/chat/entity-cards/product-release-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/program-card-defaults.d.ts +32 -0
- package/dist/components/chat/entity-cards/program-card-defaults.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/program-card.d.ts +37 -0
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/roadmap-card.d.ts +28 -0
- package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts +12 -0
- package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/slack-message-card.d.ts +28 -0
- package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/task-type-icon.d.ts +6 -0
- package/dist/components/chat/entity-cards/task-type-icon.d.ts.map +1 -0
- package/dist/components/chat/hooks/index.d.ts +10 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts +5 -0
- package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat-attachments.d.ts +33 -0
- package/dist/components/chat/hooks/use-chat-attachments.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat-card-item.d.ts +7 -0
- package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat-identity.d.ts +44 -0
- package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat.d.ts +30 -0
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-close-on-navigation.d.ts +2 -0
- package/dist/components/chat/hooks/use-close-on-navigation.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-embedded-chat.d.ts +174 -0
- package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-proxied-image-url.d.ts +18 -0
- package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-slash-commands.d.ts +32 -0
- package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-sse.d.ts +57 -0
- package/dist/components/chat/hooks/use-sse.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +393 -0
- package/dist/components/chat/index.cjs.map +1 -0
- package/dist/components/chat/index.d.ts +5 -3
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +393 -0
- package/dist/components/chat/index.js.map +1 -0
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts +33 -0
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -0
- package/dist/components/chat/source-action-button.d.ts +39 -0
- package/dist/components/chat/source-action-button.d.ts.map +1 -0
- package/dist/components/chat/types/chat.types.d.ts +36 -0
- package/dist/components/chat/types/chat.types.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +56 -11
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/entities/blog.d.ts +14 -0
- package/dist/components/chat/types/entities/blog.d.ts.map +1 -0
- package/dist/components/chat/types/entities/case-study.d.ts +10 -0
- package/dist/components/chat/types/entities/case-study.d.ts.map +1 -0
- package/dist/components/chat/types/entities/content-ref.d.ts +23 -0
- package/dist/components/chat/types/entities/content-ref.d.ts.map +1 -0
- package/dist/components/chat/types/entities/customer-interview.d.ts +10 -0
- package/dist/components/chat/types/entities/customer-interview.d.ts.map +1 -0
- package/dist/components/chat/types/entities/data-room-doc.d.ts +37 -0
- package/dist/components/chat/types/entities/data-room-doc.d.ts.map +1 -0
- package/dist/components/chat/types/entities/github-activity.d.ts +29 -0
- package/dist/components/chat/types/entities/github-activity.d.ts.map +1 -0
- package/dist/components/chat/types/entities/hubspot-ticket.d.ts +39 -0
- package/dist/components/chat/types/entities/hubspot-ticket.d.ts.map +1 -0
- package/dist/components/chat/types/entities/index.d.ts +28 -0
- package/dist/components/chat/types/entities/index.d.ts.map +1 -0
- package/dist/components/chat/types/entities/investor-update.d.ts +83 -0
- package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -0
- package/dist/components/chat/types/entities/onboarding-guide.d.ts +79 -0
- package/dist/components/chat/types/entities/onboarding-guide.d.ts.map +1 -0
- package/dist/components/chat/types/entities/program-types.d.ts +303 -0
- package/dist/components/chat/types/entities/program-types.d.ts.map +1 -0
- package/dist/components/chat/types/entities/roadmap-item.d.ts +41 -0
- package/dist/components/chat/types/entities/roadmap-item.d.ts.map +1 -0
- package/dist/components/chat/types/entities/slack-message.d.ts +28 -0
- package/dist/components/chat/types/entities/slack-message.d.ts.map +1 -0
- package/dist/components/chat/types/index.d.ts +1 -0
- package/dist/components/chat/types/index.d.ts.map +1 -1
- package/dist/components/chat/utils/agent-status-message.d.ts +18 -0
- package/dist/components/chat/utils/agent-status-message.d.ts.map +1 -0
- package/dist/components/chat/utils/auto-continuation-directive.d.ts +38 -0
- package/dist/components/chat/utils/auto-continuation-directive.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-attachment-markdown.d.ts +114 -0
- package/dist/components/chat/utils/chat-attachment-markdown.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-authed-fetch.d.ts +13 -0
- package/dist/components/chat/utils/chat-authed-fetch.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-nav-resolution.d.ts +72 -0
- package/dist/components/chat/utils/chat-nav-resolution.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts +43 -0
- package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts.map +1 -0
- package/dist/components/chat/utils/chip-action-class.d.ts +16 -0
- package/dist/components/chat/utils/chip-action-class.d.ts.map +1 -0
- package/dist/components/chat/utils/chip-styles.d.ts +32 -0
- package/dist/components/chat/utils/chip-styles.d.ts.map +1 -0
- package/dist/components/chat/utils/clickup-task-type-utils.d.ts +38 -0
- package/dist/components/chat/utils/clickup-task-type-utils.d.ts.map +1 -0
- package/dist/components/chat/utils/compact-card-classes.d.ts +50 -0
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -0
- package/dist/components/chat/utils/decide-new-tab.d.ts +39 -0
- package/dist/components/chat/utils/decide-new-tab.d.ts.map +1 -0
- package/dist/components/chat/utils/external-app-urls.d.ts +14 -0
- package/dist/components/chat/utils/external-app-urls.d.ts.map +1 -0
- package/dist/components/chat/utils/flatten-assistant-content.d.ts +25 -0
- package/dist/components/chat/utils/flatten-assistant-content.d.ts.map +1 -0
- package/dist/components/chat/utils/icon-registry.d.ts +67 -0
- package/dist/components/chat/utils/icon-registry.d.ts.map +1 -0
- package/dist/components/chat/utils/index.d.ts +21 -0
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/is-cross-origin-url.d.ts +22 -0
- package/dist/components/chat/utils/is-cross-origin-url.d.ts.map +1 -0
- package/dist/components/chat/utils/nav-anchor-props.d.ts +54 -0
- package/dist/components/chat/utils/nav-anchor-props.d.ts.map +1 -0
- package/dist/components/chat/utils/nav-click-handler.d.ts +51 -0
- package/dist/components/chat/utils/nav-click-handler.d.ts.map +1 -0
- package/dist/components/chat/utils/scroll-anchor.d.ts +30 -0
- package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -0
- package/dist/components/chat/utils/slash-dispatch-utils.d.ts +109 -0
- package/dist/components/chat/utils/slash-dispatch-utils.d.ts.map +1 -0
- package/dist/components/chat/utils/source-icons.d.ts +8 -0
- package/dist/components/chat/utils/source-icons.d.ts.map +1 -0
- package/dist/components/chat/utils/source-row-cta.d.ts +111 -0
- package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -0
- package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
- package/dist/components/features/index.cjs +12 -6
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +11 -5
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/icons/index.cjs +3 -3
- package/dist/components/icons/index.js +2 -2
- package/dist/components/index.cjs +274 -8
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +273 -7
- package/dist/components/interactive-wrapper.d.ts +3 -3
- package/dist/components/navigation/index.cjs +12 -6
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +11 -5
- package/dist/components/resizable.d.ts +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card.d.ts +19 -12
- package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts +2 -4
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/ui/button/button.d.ts +13 -0
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/entity-image.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +71 -70
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +6 -5
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/hover-dropdown.d.ts +66 -0
- package/dist/components/ui/hover-dropdown.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +276 -6
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +278 -8
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/contexts/chat-runtime-context.d.ts +109 -0
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -0
- package/dist/contexts/endpoints-runtime-context.d.ts +28 -0
- package/dist/contexts/endpoints-runtime-context.d.ts.map +1 -0
- package/dist/contexts/index.cjs +30 -0
- package/dist/contexts/index.cjs.map +1 -0
- package/dist/contexts/index.d.ts +26 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/contexts/index.js +30 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/contexts/use-outer-or-default.d.ts +29 -0
- package/dist/contexts/use-outer-or-default.d.ts.map +1 -0
- package/dist/embed-shims/index.cjs +51 -0
- package/dist/embed-shims/index.cjs.map +1 -0
- package/dist/embed-shims/index.d.ts +31 -0
- package/dist/embed-shims/index.d.ts.map +1 -0
- package/dist/embed-shims/index.js +51 -0
- package/dist/embed-shims/index.js.map +1 -0
- package/dist/embed-shims/next-dynamic.cjs +12 -0
- package/dist/embed-shims/next-dynamic.cjs.map +1 -0
- package/dist/embed-shims/next-dynamic.d.ts +47 -0
- package/dist/embed-shims/next-dynamic.d.ts.map +1 -0
- package/dist/embed-shims/next-dynamic.js +12 -0
- package/dist/embed-shims/next-dynamic.js.map +1 -0
- package/dist/embed-shims/next-image.cjs +12 -0
- package/dist/embed-shims/next-image.cjs.map +1 -0
- package/dist/embed-shims/next-image.d.ts +28 -0
- package/dist/embed-shims/next-image.d.ts.map +1 -0
- package/dist/embed-shims/next-image.js +12 -0
- package/dist/embed-shims/next-image.js.map +1 -0
- package/dist/embed-shims/next-link.cjs +14 -0
- package/dist/embed-shims/next-link.cjs.map +1 -0
- package/dist/embed-shims/next-link.d.ts +22 -0
- package/dist/embed-shims/next-link.d.ts.map +1 -0
- package/dist/embed-shims/next-link.js +14 -0
- package/dist/embed-shims/next-link.js.map +1 -0
- package/dist/embed-shims/next-navigation.cjs +30 -0
- package/dist/embed-shims/next-navigation.cjs.map +1 -0
- package/dist/embed-shims/next-navigation.d.ts +46 -0
- package/dist/embed-shims/next-navigation.d.ts.map +1 -0
- package/dist/embed-shims/next-navigation.js +30 -0
- package/dist/embed-shims/next-navigation.js.map +1 -0
- package/dist/hooks/index.cjs +10 -4
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +9 -3
- package/dist/hooks/use-access-code-integration.d.ts +48 -0
- package/dist/hooks/use-access-code-integration.d.ts.map +1 -0
- package/dist/hooks/use-contact-submission.d.ts.map +1 -1
- package/dist/hooks/use-og-placeholder.d.ts +31 -0
- package/dist/hooks/use-og-placeholder.d.ts.map +1 -0
- package/dist/hooks/use-toast.d.ts +1 -1
- package/dist/index.cjs +367 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +378 -18
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/access-code-client.d.ts +21 -37
- package/dist/utils/access-code-client.d.ts.map +1 -1
- package/dist/utils/cn.d.ts +0 -27
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/color-analysis.d.ts +33 -0
- package/dist/utils/color-analysis.d.ts.map +1 -0
- package/dist/utils/date-formatters.d.ts +16 -5
- package/dist/utils/date-formatters.d.ts.map +1 -1
- package/dist/utils/fetch-priority.d.ts +3 -0
- package/dist/utils/fetch-priority.d.ts.map +1 -0
- package/dist/utils/format.d.ts +192 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/image-proxy.d.ts +67 -2
- package/dist/utils/image-proxy.d.ts.map +1 -1
- package/dist/utils/index.cjs +1274 -155
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +19 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1200 -157
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/local-storage-adapter.d.ts +46 -0
- package/dist/utils/local-storage-adapter.d.ts.map +1 -0
- package/dist/utils/source-icons.d.ts +78 -0
- package/dist/utils/source-icons.d.ts.map +1 -0
- package/package.json +29 -2
- package/src/components/announcement-bar.tsx +26 -4
- package/src/components/categories-cart.tsx +1 -1
- package/src/components/chat/chat-attachment-bar.tsx +323 -0
- package/src/components/chat/chat-container.tsx +39 -5
- package/src/components/chat/chat-input.tsx +7 -1
- package/src/components/chat/chat-message-enhanced.tsx +32 -22
- package/src/components/chat/chat-message-list.tsx +53 -4
- package/src/components/chat/chat-panel-context.tsx +37 -0
- package/src/components/chat/chat-ticket-list.tsx +1 -1
- package/src/components/chat/embeddable-chat.tsx +1106 -0
- package/src/components/chat/entity-cards/admin-content-card.tsx +155 -0
- package/src/components/chat/entity-cards/blog-card.tsx +259 -0
- package/src/components/chat/entity-cards/blog-image-placeholder.tsx +52 -0
- package/src/components/chat/entity-cards/campaign-card-admin.tsx +113 -0
- package/src/components/chat/entity-cards/case-study-card.tsx +192 -0
- package/src/components/chat/{chat-ticket-item.tsx → entity-cards/chat-ticket-item.tsx} +2 -2
- package/src/components/chat/{chat-video-entity-card.tsx → entity-cards/chat-video-entity-card.tsx} +2 -2
- package/src/components/chat/entity-cards/customer-interview-card.tsx +211 -0
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +120 -0
- package/src/components/chat/entity-cards/dispatch.tsx +1093 -0
- package/src/components/chat/entity-cards/entity-author-card.tsx +193 -0
- package/src/components/chat/entity-cards/generic-entity-card.tsx +144 -0
- package/src/components/chat/entity-cards/github-activity-card.tsx +305 -0
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +205 -0
- package/src/components/chat/entity-cards/index.ts +125 -0
- package/src/components/chat/entity-cards/investor-update-card.tsx +150 -0
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +326 -0
- package/src/components/chat/entity-cards/product-release-card-defaults.ts +57 -0
- package/src/components/chat/entity-cards/product-release-card.tsx +19 -0
- package/src/components/chat/entity-cards/program-card-defaults.ts +62 -0
- package/src/components/chat/entity-cards/program-card.tsx +451 -0
- package/src/components/chat/entity-cards/roadmap-card.tsx +356 -0
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +54 -0
- package/src/components/chat/entity-cards/slack-message-card.tsx +182 -0
- package/src/components/chat/entity-cards/task-type-icon.tsx +60 -0
- package/src/components/chat/hooks/index.ts +22 -0
- package/src/components/chat/hooks/use-chat-attachment-image-gallery.tsx +114 -0
- package/src/components/chat/hooks/use-chat-attachments.ts +429 -0
- package/src/components/chat/hooks/use-chat-card-item.ts +102 -0
- package/src/components/chat/hooks/use-chat-identity.ts +139 -0
- package/src/components/chat/hooks/use-chat.ts +501 -0
- package/src/components/chat/hooks/use-close-on-navigation.ts +87 -0
- package/src/components/chat/hooks/use-embedded-chat.ts +1023 -0
- package/src/components/chat/hooks/use-proxied-image-url.ts +31 -0
- package/src/components/chat/hooks/use-slash-commands.ts +106 -0
- package/src/components/chat/hooks/use-sse.ts +143 -0
- package/src/components/chat/index.ts +30 -4
- package/src/components/chat/nav-link-anchor-via-runtime.tsx +72 -0
- package/src/components/chat/source-action-button.tsx +120 -0
- package/src/components/chat/types/chat.types.ts +61 -0
- package/src/components/chat/types/component.types.ts +57 -11
- package/src/components/chat/types/entities/blog.ts +27 -0
- package/src/components/chat/types/entities/case-study.ts +14 -0
- package/src/components/chat/types/entities/content-ref.ts +23 -0
- package/src/components/chat/types/entities/customer-interview.ts +15 -0
- package/src/components/chat/types/entities/data-room-doc.ts +37 -0
- package/src/components/chat/types/entities/github-activity.ts +36 -0
- package/src/components/chat/types/entities/hubspot-ticket.ts +39 -0
- package/src/components/chat/types/entities/index.ts +28 -0
- package/src/components/chat/types/entities/investor-update.ts +100 -0
- package/src/components/chat/types/entities/onboarding-guide.ts +101 -0
- package/src/components/chat/types/entities/program-types.ts +433 -0
- package/src/components/chat/types/entities/roadmap-item.ts +42 -0
- package/src/components/chat/types/entities/slack-message.ts +28 -0
- package/src/components/chat/types/index.ts +1 -0
- package/src/components/chat/utils/agent-status-message.ts +52 -0
- package/src/components/chat/utils/auto-continuation-directive.ts +70 -0
- package/src/components/chat/utils/chat-attachment-markdown.ts +190 -0
- package/src/components/chat/utils/chat-authed-fetch.ts +73 -0
- package/src/components/chat/utils/chat-nav-resolution.ts +151 -0
- package/src/components/chat/utils/chat-proxy-auth-storage.ts +148 -0
- package/src/components/chat/utils/chip-action-class.ts +19 -0
- package/src/components/chat/utils/chip-styles.ts +51 -0
- package/src/components/chat/utils/clickup-task-type-utils.ts +59 -0
- package/src/components/chat/utils/compact-card-classes.ts +97 -0
- package/src/components/chat/utils/decide-new-tab.ts +57 -0
- package/src/components/chat/utils/external-app-urls.ts +19 -0
- package/src/components/chat/utils/flatten-assistant-content.ts +35 -0
- package/src/components/chat/utils/icon-registry.ts +297 -0
- package/src/components/chat/utils/index.ts +133 -0
- package/src/components/chat/utils/is-cross-origin-url.ts +28 -0
- package/src/components/chat/utils/nav-anchor-props.ts +78 -0
- package/src/components/chat/utils/nav-click-handler.ts +81 -0
- package/src/components/chat/utils/scroll-anchor.ts +35 -0
- package/src/components/chat/utils/slash-dispatch-utils.ts +183 -0
- package/src/components/chat/utils/source-icons.ts +14 -0
- package/src/components/chat/utils/source-row-cta.ts +215 -0
- package/src/components/empty-state.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/figma-prototype-viewer.tsx +2 -1
- package/src/components/features/media-gallery-manager.tsx +1 -1
- package/src/components/features/parallax-image-showcase.tsx +1 -1
- package/src/components/features/release-media-manager.tsx +1 -1
- package/src/components/features/seo-editor-preview.tsx +1 -1
- package/src/components/features/video.tsx +54 -3
- package/src/components/footer-waitlist-button.tsx +1 -1
- package/src/components/navigation/header.tsx +1 -1
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +8 -44
- package/src/components/shared/product-release/product-release-card.tsx +31 -116
- package/src/components/shared/product-release/release-detail-page.tsx +12 -16
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/button/button.tsx +41 -11
- package/src/components/ui/button/split-button.tsx +1 -1
- package/src/components/ui/dashboard-info-card.tsx +2 -3
- package/src/components/ui/data-table/data-table-row.tsx +1 -1
- package/src/components/ui/entity-image.tsx +2 -8
- package/src/components/ui/hover-dropdown.tsx +258 -0
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/markdown-editor.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +1 -1
- package/src/components/ui/simple-markdown-renderer.tsx +53 -5
- package/src/components/ui/square-avatar.tsx +3 -12
- package/src/components/ui/tab-navigation.tsx +1 -1
- package/src/components/ui/table/table-row.tsx +1 -1
- package/src/components/unified-filter-logic.tsx +1 -1
- package/src/components/unified-pagination.tsx +1 -1
- package/src/components/user-summary-stub.tsx +1 -1
- package/src/components/vendor-display-button.tsx +1 -1
- package/src/components/vendor-icon.tsx +1 -1
- package/src/contexts/chat-runtime-context.tsx +163 -0
- package/src/contexts/endpoints-runtime-context.tsx +68 -0
- package/src/contexts/index.ts +38 -0
- package/src/contexts/use-outer-or-default.ts +42 -0
- package/src/embed-shims/index.ts +42 -0
- package/src/embed-shims/next-dynamic.tsx +70 -0
- package/src/embed-shims/next-image.tsx +114 -0
- package/src/embed-shims/next-link.tsx +91 -0
- package/src/embed-shims/next-navigation.tsx +201 -0
- package/src/hooks/index.ts +9 -0
- package/src/hooks/state/use-api-params.ts +1 -1
- package/src/hooks/state/use-query-params.ts +1 -1
- package/src/hooks/use-access-code-integration.ts +107 -0
- package/src/hooks/use-contact-submission.ts +7 -3
- package/src/hooks/use-og-placeholder.ts +45 -0
- package/src/stories/OnboardingStepCard.stories.tsx +140 -0
- package/src/styles/chat-animations.css +65 -0
- package/src/styles/index.css +1 -0
- package/src/utils/access-code-client.ts +32 -75
- package/src/utils/cn.ts +0 -65
- package/src/utils/color-analysis.ts +205 -0
- package/src/utils/date-formatters.ts +54 -11
- package/src/utils/fetch-priority.ts +41 -0
- package/src/utils/format.ts +525 -1
- package/src/utils/image-proxy.ts +127 -7
- package/src/utils/index.ts +145 -5
- package/src/utils/local-storage-adapter.ts +105 -0
- package/src/utils/source-icons.ts +219 -0
- package/dist/chunk-25LVV26X.cjs.map +0 -1
- package/dist/chunk-ARQ4XP64.cjs.map +0 -1
- package/dist/chunk-CPXLQ57U.js.map +0 -1
- package/dist/chunk-LY34ORX6.js.map +0 -1
- package/dist/chunk-RMB5DVED.cjs.map +0 -1
- package/dist/chunk-SZPJ5R5B.js.map +0 -1
- package/dist/chunk-UC43NICZ.cjs.map +0 -1
- package/dist/chunk-XGL5FKIK.js.map +0 -1
- package/dist/components/chat/block-card.d.ts.map +0 -1
- package/dist/components/chat/chat-ticket-item.d.ts.map +0 -1
- package/dist/components/chat/chat-video-entity-card.d.ts.map +0 -1
- package/dist/utils/dynamic-icons.d.ts +0 -26
- package/dist/utils/dynamic-icons.d.ts.map +0 -1
- package/dist/utils/format-relative-time.d.ts +0 -21
- package/dist/utils/format-relative-time.d.ts.map +0 -1
- package/src/utils/.dynamic-icons.md +0 -30
- package/src/utils/.format-relative-time.md +0 -36
- package/src/utils/dynamic-icons.tsx +0 -120
- package/src/utils/format-relative-time.ts +0 -52
- /package/dist/{chunk-N57KWHDB.js.map → chunk-CIPO6DXK.js.map} +0 -0
- /package/dist/components/chat/{block-card.d.ts → entity-cards/block-card.d.ts} +0 -0
- /package/dist/components/chat/{chat-ticket-item.d.ts → entity-cards/chat-ticket-item.d.ts} +0 -0
- /package/src/components/chat/{block-card.tsx → entity-cards/block-card.tsx} +0 -0
|
@@ -62,13 +62,16 @@ const ChatContainer = React.forwardRef<HTMLDivElement, ChatContainerProps>(
|
|
|
62
62
|
ChatContainer.displayName = "ChatContainer"
|
|
63
63
|
|
|
64
64
|
const ChatHeader = React.forwardRef<HTMLDivElement, ChatHeaderProps>(
|
|
65
|
-
({ className, userName = 'Grace "Fae" Meadows', userTitle = "Your Personal Assistant", userAvatar, userIcon, onSettingsClick, onNewChat, onClose, onBack, showNewChat = false, connectionStatus = 'disconnected', serverUrl = null, headerActions, ticketInfo, ...props }, ref) => {
|
|
65
|
+
({ className, userName = 'Grace "Fae" Meadows', userTitle = "Your Personal Assistant", userAvatar, userIcon, onSettingsClick, onNewChat, onClose, onBack, showNewChat = false, connectionStatus = 'disconnected', serverUrl = null, headerActions, ticketInfo, fullWidth = false, ...props }, ref) => {
|
|
66
66
|
const cardClasses = "rounded-md bg-ods-card shadow-[0_18px_48px_rgba(0,0,0,0.45)] border border-ods-border ring-1 ring-black/20"
|
|
67
67
|
return (
|
|
68
68
|
<div
|
|
69
69
|
ref={ref}
|
|
70
70
|
className={cn(
|
|
71
|
-
|
|
71
|
+
// `fullWidth` drops the centered-narrow content column for
|
|
72
|
+
// chats hosted in side panels where 600px would float in
|
|
73
|
+
// the middle of a wider container.
|
|
74
|
+
fullWidth ? "relative w-full" : "relative mx-auto w-full max-w-ods-content-narrow",
|
|
72
75
|
className
|
|
73
76
|
)}
|
|
74
77
|
{...props}
|
|
@@ -180,8 +183,29 @@ const ChatContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDi
|
|
|
180
183
|
)
|
|
181
184
|
ChatContent.displayName = "ChatContent"
|
|
182
185
|
|
|
183
|
-
|
|
184
|
-
|
|
186
|
+
/**
|
|
187
|
+
* `ChatFooter` props.
|
|
188
|
+
*
|
|
189
|
+
* Layout API:
|
|
190
|
+
* - `fullWidth` (preferred) — drop the inner-wrapper
|
|
191
|
+
* `max-w-ods-content-narrow` so the footer fills the parent.
|
|
192
|
+
* - `contentClassName` (legacy escape hatch) — explicit class names
|
|
193
|
+
* applied to the inner wrapper. Use only when `fullWidth` is too
|
|
194
|
+
* coarse (e.g. custom max-w value).
|
|
195
|
+
*/
|
|
196
|
+
export interface ChatFooterProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
197
|
+
/** Same `fullWidth` semantics as `ChatHeaderProps.fullWidth` — drops
|
|
198
|
+
* the inner wrapper's `max-w-ods-content-narrow` so the footer
|
|
199
|
+
* spans the full parent width. */
|
|
200
|
+
fullWidth?: boolean
|
|
201
|
+
/** @deprecated Prefer `fullWidth` for the full-panel-width use case.
|
|
202
|
+
* This prop remains supported for callers that need a NON-binary
|
|
203
|
+
* override (custom max-w value, custom padding, etc.). */
|
|
204
|
+
contentClassName?: string
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const ChatFooter = React.forwardRef<HTMLDivElement, ChatFooterProps>(
|
|
208
|
+
({ className, contentClassName, fullWidth = false, children, ...props }, ref) => {
|
|
185
209
|
return (
|
|
186
210
|
<div
|
|
187
211
|
ref={ref}
|
|
@@ -191,7 +215,17 @@ const ChatFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDiv
|
|
|
191
215
|
)}
|
|
192
216
|
{...props}
|
|
193
217
|
>
|
|
194
|
-
<div
|
|
218
|
+
<div
|
|
219
|
+
className={cn(
|
|
220
|
+
// `fullWidth=true` opts out of the centered-narrow column;
|
|
221
|
+
// `fullWidth=false` (default) preserves the legacy 600px
|
|
222
|
+
// max-width. `contentClassName` is appended last so a
|
|
223
|
+
// legacy caller passing it can still tweak after the
|
|
224
|
+
// fullWidth decision.
|
|
225
|
+
fullWidth ? "w-full" : "mx-auto w-full max-w-ods-content-narrow",
|
|
226
|
+
contentClassName
|
|
227
|
+
)}
|
|
228
|
+
>
|
|
195
229
|
{children}
|
|
196
230
|
</div>
|
|
197
231
|
</div>
|
|
@@ -33,6 +33,7 @@ const ChatInput = forwardRef<ChatInputRef, ChatInputProps>(
|
|
|
33
33
|
reserveAvatarOffset: _reserveAvatarOffset,
|
|
34
34
|
disabled = false,
|
|
35
35
|
autoFocus = false,
|
|
36
|
+
fullWidth = false,
|
|
36
37
|
...inputProps
|
|
37
38
|
} = rest
|
|
38
39
|
|
|
@@ -291,7 +292,12 @@ const ChatInput = forwardRef<ChatInputRef, ChatInputProps>(
|
|
|
291
292
|
return (
|
|
292
293
|
<div
|
|
293
294
|
className={cn(
|
|
294
|
-
|
|
295
|
+
// `fullWidth=true` drops the centered-narrow content column
|
|
296
|
+
// for chats hosted in side panels; default preserves the
|
|
297
|
+
// legacy 600px max-width for existing consumers.
|
|
298
|
+
fullWidth
|
|
299
|
+
? "w-full flex-shrink-0"
|
|
300
|
+
: "mx-auto w-full max-w-ods-content-narrow flex-shrink-0",
|
|
295
301
|
className,
|
|
296
302
|
)}
|
|
297
303
|
>
|
|
@@ -12,7 +12,7 @@ import { ThinkingDisplay } from "./thinking-display"
|
|
|
12
12
|
import { SimpleMarkdownRenderer } from "../ui/simple-markdown-renderer"
|
|
13
13
|
import type { ChatRef } from "./chat-ref.types"
|
|
14
14
|
import { remarkCardLinks } from "./remark-card-links"
|
|
15
|
-
import { BlockCard, type BlockCardProps } from "./block-card"
|
|
15
|
+
import { BlockCard, type BlockCardProps } from "./entity-cards/block-card"
|
|
16
16
|
import type { MessageSegment, MessageContent, ChatMessageEnhancedProps } from "./types"
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -292,28 +292,38 @@ const ChatMessageEnhanced = forwardRef<HTMLDivElement, ChatMessageEnhancedProps>
|
|
|
292
292
|
)}
|
|
293
293
|
{...props}
|
|
294
294
|
>
|
|
295
|
-
{/*
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
{assistantIcon && !avatar ? (
|
|
301
|
-
<div className="flex items-center justify-center w-12 h-12 rounded-full bg-ods-accent">
|
|
302
|
-
{assistantIcon}
|
|
303
|
-
</div>
|
|
304
|
-
) : (
|
|
305
|
-
<SquareAvatar
|
|
306
|
-
{...avatarProps}
|
|
307
|
-
className={cn(avatarProps.className, "w-12 h-12")}
|
|
308
|
-
/>
|
|
309
|
-
)}
|
|
310
|
-
</div>
|
|
311
|
-
)}
|
|
312
|
-
|
|
313
|
-
{/* Message Content - full width */}
|
|
295
|
+
{/* Message Content — full panel width.
|
|
296
|
+
Avatar is INLINE in the name row below (2025-2026 chat
|
|
297
|
+
pattern — Claude.ai, ChatGPT, Gemini, Perplexity).
|
|
298
|
+
Legacy hanging-avatar layout (`absolute -left-16`) wasted
|
|
299
|
+
64px of gutter and clipped in narrow panels. */}
|
|
314
300
|
<div className="flex flex-col gap-[var(--spacing-system-xxs)] min-w-0">
|
|
315
|
-
{/* Name
|
|
316
|
-
|
|
301
|
+
{/* Avatar + Name + Timestamp Row.
|
|
302
|
+
Sizing rationale (per design-token measurements):
|
|
303
|
+
- Name uses `text-h3` = 14px mobile / 18px desktop.
|
|
304
|
+
- Avatar uses `SquareAvatar size="sm"` = 32px — the
|
|
305
|
+
canonical primitive at the smallest preset, giving a
|
|
306
|
+
~1.78x ratio against the 18px name text (Material
|
|
307
|
+
Design 3 + Apple HIG inline-avatar standard).
|
|
308
|
+
- Gap is `var(--spacing-system-xs)` = 8px, the standard
|
|
309
|
+
inline-component separator across this design system.
|
|
310
|
+
For the `assistantIcon` branch (host supplies a JSX icon
|
|
311
|
+
like the Mingo logo), the wrapper matches `SquareAvatar
|
|
312
|
+
size="sm"` (h-8 w-8 = 32px) so BOTH branches present at
|
|
313
|
+
the same visual weight. Host-supplied icons render
|
|
314
|
+
inside via `flex items-center justify-center` — they
|
|
315
|
+
should be sized at ~50-60% of the wrapper (h-4 w-4 =
|
|
316
|
+
16px works well for a 32px circle). */}
|
|
317
|
+
<div className="flex items-center gap-[var(--spacing-system-xs)]">
|
|
318
|
+
{showAvatar && !isSystem && !isUser && (
|
|
319
|
+
assistantIcon && !avatar ? (
|
|
320
|
+
<div className="flex items-center justify-center h-8 w-8 rounded-full bg-ods-accent flex-shrink-0">
|
|
321
|
+
{assistantIcon}
|
|
322
|
+
</div>
|
|
323
|
+
) : (
|
|
324
|
+
<SquareAvatar {...avatarProps} />
|
|
325
|
+
)
|
|
326
|
+
)}
|
|
317
327
|
<span className={cn(
|
|
318
328
|
"text-h3 !font-mono !font-medium flex-1",
|
|
319
329
|
authorType === 'system' ? "text-ods-open-yellow" :
|
|
@@ -97,6 +97,7 @@ const ChatMessageList = forwardRef<HTMLDivElement, ChatMessageListProps>(
|
|
|
97
97
|
isTyping = false,
|
|
98
98
|
autoScroll = true,
|
|
99
99
|
showAvatars = true,
|
|
100
|
+
fullWidth = false,
|
|
100
101
|
contentClassName,
|
|
101
102
|
assistantType,
|
|
102
103
|
assistantIcon,
|
|
@@ -180,12 +181,53 @@ const ChatMessageList = forwardRef<HTMLDivElement, ChatMessageListProps>(
|
|
|
180
181
|
const hasNewUser = newSlice.some((m) => m.role === 'user')
|
|
181
182
|
if (hasNewUser) {
|
|
182
183
|
void scrollToBottom({ animation: 'instant', ignoreEscapes: true })
|
|
184
|
+
|
|
185
|
+
// Image-attachment growth follow-up: if the new user message
|
|
186
|
+
// carries inline `<img>` elements (chat-attachment markdown
|
|
187
|
+
// emits `` which the markdown
|
|
188
|
+
// renderer turns into `<img>` / Next.js `<Image>`), those
|
|
189
|
+
// images load AFTER the initial paint. Each image-load grows
|
|
190
|
+
// the bubble height, but `useStickToBottom`'s `resize:
|
|
191
|
+
// 'smooth'` spring sometimes loses anchor under rapid
|
|
192
|
+
// resize events from Next.js Image's progressive
|
|
193
|
+
// dimensioning (observed: scroll lands 50-100px short of
|
|
194
|
+
// bottom — exactly one image-load short).
|
|
195
|
+
//
|
|
196
|
+
// Fix: after the initial scrollToBottom snaps, scan the
|
|
197
|
+
// content area for `<img>` elements that haven't loaded
|
|
198
|
+
// yet, and attach one-time `load` handlers that re-trigger
|
|
199
|
+
// `scrollToBottom`. Idempotent — runs for any image,
|
|
200
|
+
// affects only the new-user-message diff (effect dep is
|
|
201
|
+
// `messages`).
|
|
202
|
+
//
|
|
203
|
+
// `requestAnimationFrame` so the DOM has the new bubble
|
|
204
|
+
// before we query. Without rAF the new-message `<img>`s
|
|
205
|
+
// haven't been committed yet — querySelectorAll returns
|
|
206
|
+
// an empty set.
|
|
207
|
+
requestAnimationFrame(() => {
|
|
208
|
+
const el = contentRef.current
|
|
209
|
+
if (!el) return
|
|
210
|
+
const imgs = el.querySelectorAll('img')
|
|
211
|
+
imgs.forEach((img) => {
|
|
212
|
+
if (img.complete) return
|
|
213
|
+
const onLoad = () => {
|
|
214
|
+
img.removeEventListener('load', onLoad)
|
|
215
|
+
img.removeEventListener('error', onLoad)
|
|
216
|
+
// `ignoreEscapes: true` because the user may have
|
|
217
|
+
// accidentally moved scroll during the image-load
|
|
218
|
+
// window; we want their fresh send to be visible.
|
|
219
|
+
void scrollToBottom({ animation: 'instant', ignoreEscapes: true })
|
|
220
|
+
}
|
|
221
|
+
img.addEventListener('load', onLoad, { once: true })
|
|
222
|
+
img.addEventListener('error', onLoad, { once: true })
|
|
223
|
+
})
|
|
224
|
+
})
|
|
183
225
|
}
|
|
184
226
|
// Assistant-only new messages → the library's resize-watch
|
|
185
227
|
// already keeps the bottom locked when the user hasn't
|
|
186
228
|
// escaped. No explicit call needed; spring animation runs.
|
|
187
229
|
}
|
|
188
|
-
}, [autoScroll, messages, dialogId, scrollToBottom])
|
|
230
|
+
}, [autoScroll, messages, dialogId, scrollToBottom, contentRef])
|
|
189
231
|
|
|
190
232
|
// ---- Prepend anchoring (load-older) ------------------------------
|
|
191
233
|
// The library doesn't preserve user position when content prepends
|
|
@@ -432,7 +474,12 @@ const ChatMessageList = forwardRef<HTMLDivElement, ChatMessageListProps>(
|
|
|
432
474
|
<div
|
|
433
475
|
ref={setContentRef}
|
|
434
476
|
className={cn(
|
|
435
|
-
|
|
477
|
+
// `fullWidth=true` drops the centered-narrow column for
|
|
478
|
+
// side-panel hosts (e.g. multi-platform-hub Mingo). Same
|
|
479
|
+
// semantics as ChatHeader / ChatInput / ChatFooter.
|
|
480
|
+
fullWidth
|
|
481
|
+
? "flex w-full flex-col pb-[var(--spacing-system-xs)] min-w-0"
|
|
482
|
+
: "mx-auto flex w-full max-w-ods-content-narrow flex-col pb-[var(--spacing-system-xs)] min-w-0",
|
|
436
483
|
contentClassName ?? "px-[var(--spacing-system-m)]",
|
|
437
484
|
)}
|
|
438
485
|
style={{ minHeight: '100%' }}
|
|
@@ -478,7 +525,9 @@ const ChatMessageList = forwardRef<HTMLDivElement, ChatMessageListProps>(
|
|
|
478
525
|
{showStreamingLoader && (
|
|
479
526
|
<div
|
|
480
527
|
className={cn(
|
|
481
|
-
|
|
528
|
+
fullWidth
|
|
529
|
+
? "w-full flex items-center gap-[var(--spacing-system-xxs)] py-[var(--spacing-system-xs)]"
|
|
530
|
+
: "mx-auto w-full max-w-ods-content-narrow flex items-center gap-[var(--spacing-system-xxs)] py-[var(--spacing-system-xs)]",
|
|
482
531
|
contentClassName ?? "px-[var(--spacing-system-m)]",
|
|
483
532
|
)}
|
|
484
533
|
style={{ color: 'var(--color-text-muted)' }}
|
|
@@ -499,7 +548,7 @@ const ChatMessageList = forwardRef<HTMLDivElement, ChatMessageListProps>(
|
|
|
499
548
|
{pendingApprovals && pendingApprovals.length > 0 && (
|
|
500
549
|
<div className={cn(
|
|
501
550
|
"border-t border-ods-border bg-ods-bg/95 backdrop-blur-sm",
|
|
502
|
-
"mx-auto w-full max-w-ods-content-narrow",
|
|
551
|
+
fullWidth ? "w-full" : "mx-auto w-full max-w-ods-content-narrow",
|
|
503
552
|
contentClassName ?? "px-[var(--spacing-system-m)]",
|
|
504
553
|
)}>
|
|
505
554
|
<ChatMessageEnhanced
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Chat-panel-local context.
|
|
5
|
+
*
|
|
6
|
+
* The chat shell (EmbeddableChat) provides a small set of panel-level
|
|
7
|
+
* affordances that descendants — including inline cards rendered via
|
|
8
|
+
* the dispatcher — may want to consume WITHOUT prop drilling:
|
|
9
|
+
*
|
|
10
|
+
* - `closeChat()` — close the chat panel. Inline cards trigger this
|
|
11
|
+
* ONLY when their navigation is same-tab (so new-tab clicks leave
|
|
12
|
+
* the chat open while the new tab loads).
|
|
13
|
+
*
|
|
14
|
+
* Why context vs prop drilling: the card dispatch has 7+ wrappers
|
|
15
|
+
* (BlogCard, ProgramCard, DataRoomDocCard, …). Threading `onClose`
|
|
16
|
+
* through every wrapper signature would touch every card type for one
|
|
17
|
+
* UX behavior — not worth the churn. Context is opt-in at the
|
|
18
|
+
* provider level and zero-cost when not consumed.
|
|
19
|
+
*
|
|
20
|
+
* Defaults to `null` when no provider is mounted (e.g. tests, or a
|
|
21
|
+
* card rendered outside the panel) — consumers MUST handle `null`.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { createContext, useContext } from 'react'
|
|
25
|
+
|
|
26
|
+
export interface ChatPanelHandle {
|
|
27
|
+
/** Close the chat panel. Called by inline cards' nav click handler
|
|
28
|
+
* ONLY when the resolved navigation is same-tab. */
|
|
29
|
+
closeChat: () => void
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const ChatPanelContext = createContext<ChatPanelHandle | null>(null)
|
|
33
|
+
|
|
34
|
+
/** Optional consumer — returns `null` when no provider mounted. */
|
|
35
|
+
export function useChatPanel(): ChatPanelHandle | null {
|
|
36
|
+
return useContext(ChatPanelContext)
|
|
37
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from 'react'
|
|
4
4
|
import { cn } from '../../utils/cn'
|
|
5
|
-
import { ChatTicketItem, type ChatTicketItemData } from './chat-ticket-item'
|
|
5
|
+
import { ChatTicketItem, type ChatTicketItemData } from './entity-cards/chat-ticket-item'
|
|
6
6
|
|
|
7
7
|
export interface ChatTicketListProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
8
|
tickets: ChatTicketItemData[]
|