@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482
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-H6DFCF44.cjs → chunk-22AED5IC.cjs} +82 -82
- package/dist/{chunk-H6DFCF44.cjs.map → chunk-22AED5IC.cjs.map} +1 -1
- package/dist/{chunk-MGKCS6KS.js → chunk-3WCARCI4.js} +2 -2
- package/dist/{chunk-LNKWY74S.cjs → chunk-4HL6UENH.cjs} +5 -5
- package/dist/{chunk-LNKWY74S.cjs.map → chunk-4HL6UENH.cjs.map} +1 -1
- package/dist/{chunk-Y3Y2DLNO.js → chunk-6UGYBCEN.js} +3 -3
- package/dist/{chunk-BBUEY73L.js → chunk-7I5B5PQ4.js} +6269 -5339
- package/dist/chunk-7I5B5PQ4.js.map +1 -0
- package/dist/{chunk-PSPWT2Q5.js → chunk-7LWXWXEY.js} +4 -4
- package/dist/{chunk-M7O74OWG.cjs → chunk-ACOU5YJI.cjs} +31 -31
- package/dist/{chunk-M7O74OWG.cjs.map → chunk-ACOU5YJI.cjs.map} +1 -1
- package/dist/{chunk-INDFIVDV.cjs → chunk-AHGSN4AT.cjs} +12 -12
- package/dist/{chunk-INDFIVDV.cjs.map → chunk-AHGSN4AT.cjs.map} +1 -1
- package/dist/{chunk-VTSRDC4W.js → chunk-CKC3EAYT.js} +2 -2
- package/dist/{chunk-SASR7SK5.js → chunk-GZK7FWJJ.js} +20 -4
- package/dist/chunk-GZK7FWJJ.js.map +1 -0
- package/dist/{chunk-ZRANZNEA.js → chunk-JJE5TUZK.js} +2 -2
- package/dist/{chunk-66BNAFO6.js → chunk-JQIUBFHL.js} +4 -4
- package/dist/{chunk-MMCBQJKE.cjs → chunk-KUBJHB6I.cjs} +11 -11
- package/dist/{chunk-MMCBQJKE.cjs.map → chunk-KUBJHB6I.cjs.map} +1 -1
- package/dist/{chunk-ZV6E3U3C.cjs → chunk-MRGTMMJ3.cjs} +30 -30
- package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-MRGTMMJ3.cjs.map} +1 -1
- package/dist/{chunk-OZJN54R5.cjs → chunk-NWVKG7QC.cjs} +37 -37
- package/dist/{chunk-OZJN54R5.cjs.map → chunk-NWVKG7QC.cjs.map} +1 -1
- package/dist/{chunk-AN47EIIJ.cjs → chunk-PHTSSHIQ.cjs} +59 -59
- package/dist/{chunk-AN47EIIJ.cjs.map → chunk-PHTSSHIQ.cjs.map} +1 -1
- package/dist/{chunk-N2JZ33V7.cjs → chunk-RUA3OXSJ.cjs} +26 -26
- package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RUA3OXSJ.cjs.map} +1 -1
- package/dist/{chunk-LK623WCC.cjs → chunk-RZPF7MJ2.cjs} +9 -9
- package/dist/{chunk-LK623WCC.cjs.map → chunk-RZPF7MJ2.cjs.map} +1 -1
- package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
- package/dist/chunk-STYA77PH.cjs.map +1 -0
- package/dist/{chunk-JUJY3HQS.cjs → chunk-U37UTLP7.cjs} +19 -19
- package/dist/{chunk-JUJY3HQS.cjs.map → chunk-U37UTLP7.cjs.map} +1 -1
- package/dist/{chunk-2DIOV7BR.js → chunk-UPN6EFOM.js} +4 -4
- package/dist/{chunk-OWMLWJQY.cjs → chunk-VPVOJD5X.cjs} +2432 -1502
- package/dist/chunk-VPVOJD5X.cjs.map +1 -0
- package/dist/{chunk-4SMRQ4SN.js → chunk-WBL5Y4PS.js} +3 -3
- package/dist/{chunk-FP4H6Y5O.js → chunk-WPYPSIY2.js} +3 -3
- package/dist/{chunk-R5WJJL4V.js → chunk-X5X43HFV.js} +5 -5
- package/dist/{chunk-DEHZ5CTC.js → chunk-XTWKDMCG.js} +2 -2
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/captions-url.cjs +12 -0
- package/dist/components/features/captions-url.cjs.map +1 -0
- package/dist/components/features/captions-url.js +10 -0
- package/dist/components/features/captions-url.js.map +1 -0
- package/dist/components/features/card-hit-layer.d.ts +40 -0
- package/dist/components/features/card-hit-layer.d.ts.map +1 -0
- package/dist/components/features/floating-walkthrough-video.d.ts +71 -0
- package/dist/components/features/floating-walkthrough-video.d.ts.map +1 -0
- package/dist/components/features/index.cjs +11 -3
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.d.ts +4 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +12 -4
- package/dist/components/features/use-walkthrough-video.d.ts +16 -0
- package/dist/components/features/use-walkthrough-video.d.ts.map +1 -0
- package/dist/components/features/video-bites-strip.d.ts.map +1 -1
- package/dist/components/features/video-center-badge.d.ts.map +1 -1
- package/dist/components/features/video-hover-preview.d.ts +68 -0
- package/dist/components/features/video-hover-preview.d.ts.map +1 -0
- package/dist/components/features/video.d.ts +78 -40
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/form.d.ts +0 -1
- package/dist/components/form.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +21 -21
- package/dist/components/help-center-pages/index.js +12 -12
- package/dist/components/index.cjs +163 -155
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +18 -10
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/related-content/index.cjs +4 -4
- package/dist/components/related-content/index.js +3 -3
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/button/button-styles.d.ts +2 -0
- package/dist/components/ui/button/button-styles.d.ts.map +1 -1
- package/dist/components/ui/button/button.d.ts +2 -2
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -50
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/components/ui/page-actions.d.ts +2 -1
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/index.cjs +27 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +28 -4
- package/dist/types/supabase.d.ts +80 -0
- package/dist/types/supabase.d.ts.map +1 -1
- package/dist/types/video-processing.d.ts +1 -1
- package/dist/types/video-processing.d.ts.map +1 -1
- package/dist/utils/announcement-storage.d.ts +1 -1
- package/dist/utils/announcement-storage.d.ts.map +1 -1
- package/dist/utils/dismiss-cookie.d.ts +27 -0
- package/dist/utils/dismiss-cookie.d.ts.map +1 -0
- package/dist/utils/dismissal-storage.d.ts +19 -0
- package/dist/utils/dismissal-storage.d.ts.map +1 -0
- package/dist/utils/index.cjs +48 -10
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +41 -11
- package/dist/utils/index.js.map +1 -1
- package/package.json +8 -2
- package/src/.index.md +39 -32
- package/src/.platform-domains.md +65 -0
- package/src/assets/.fae-avatar.md +33 -0
- package/src/assets/.index.md +15 -9
- package/src/components/.agent-mark.md +31 -0
- package/src/components/.announcement-bar.md +47 -35
- package/src/components/.calendar.md +19 -15
- package/src/components/.categories-cart.md +34 -30
- package/src/components/.category-card.md +33 -33
- package/src/components/.chart.md +38 -40
- package/src/components/.command.md +47 -23
- package/src/components/.comment-card.md +31 -26
- package/src/components/.content-loading-container.md +45 -20
- package/src/components/.context-menu.md +45 -31
- package/src/components/.date-time-picker.md +36 -30
- package/src/components/.empty-state.md +31 -31
- package/src/components/.faq-accordion.md +20 -30
- package/src/components/.filter-chip.md +36 -33
- package/src/components/.footer-waitlist-button.md +27 -21
- package/src/components/.footer.md +39 -24
- package/src/components/.form.md +32 -20
- package/src/components/.hero-image-uploader.md +35 -31
- package/src/components/.icon-display.md +53 -0
- package/src/components/.image-cropper.md +34 -33
- package/src/components/.index.md +25 -29
- package/src/components/.logs-list.md +27 -23
- package/src/components/.media-carousel.md +47 -26
- package/src/components/.metric-value.md +27 -24
- package/src/components/.msp-display.md +29 -23
- package/src/components/.open-source-features.md +23 -26
- package/src/components/.pagination.md +44 -39
- package/src/components/.persistent-filter-controls.md +61 -28
- package/src/components/.pricing-display.md +34 -33
- package/src/components/.results-count.md +33 -20
- package/src/components/.smooth-accordion.md +24 -20
- package/src/components/.social-icon-row.md +33 -21
- package/src/components/.sonner.md +40 -25
- package/src/components/.steps.md +39 -25
- package/src/components/.tool-icon.md +34 -21
- package/src/components/.unified-filter-logic.md +32 -36
- package/src/components/.user-display.md +33 -28
- package/src/components/.user-summary-stub.md +40 -33
- package/src/components/.vendor-display-button.md +17 -15
- package/src/components/.vendor-icon.md +17 -25
- package/src/components/.vendor-tag.md +39 -34
- package/src/components/.why-it-matters.md +15 -11
- package/src/components/.yes-no-display.md +36 -31
- package/src/components/authors/.author-detail-view.md +50 -0
- package/src/components/case-studies/.index.md +26 -0
- package/src/components/case-studies/.share-experience-section.md +45 -0
- package/src/components/chat/.approval-batch-message.md +48 -33
- package/src/components/chat/.approval-request-message.md +37 -26
- package/src/components/chat/.chat-archive-page.md +56 -0
- package/src/components/chat/.chat-attachment-bar.md +32 -40
- package/src/components/chat/.chat-composer.md +43 -0
- package/src/components/chat/.chat-container.md +41 -25
- package/src/components/chat/.chat-context-memory-bar.md +53 -0
- package/src/components/chat/.chat-context-picker.md +89 -0
- package/src/components/chat/.chat-header-icon-button.md +43 -0
- package/src/components/chat/.chat-header-search-field.md +51 -0
- package/src/components/chat/.chat-input.md +63 -30
- package/src/components/chat/.chat-list-empty-state.md +44 -0
- package/src/components/chat/.chat-message-enhanced.md +29 -31
- package/src/components/chat/.chat-message-list.md +34 -44
- package/src/components/chat/.chat-message-row.md +56 -0
- package/src/components/chat/.chat-message-skeleton.md +32 -26
- package/src/components/chat/.chat-panel-header-mobile.md +46 -0
- package/src/components/chat/.chat-panel-header.md +80 -0
- package/src/components/chat/.chat-sidebar-skeleton.md +31 -30
- package/src/components/chat/.chat-sidebar.md +36 -29
- package/src/components/chat/.chat-ticket-list.md +38 -23
- package/src/components/chat/.chat-typing-indicator.md +37 -19
- package/src/components/chat/.context-compaction-display.md +19 -15
- package/src/components/chat/.context-items-list.md +57 -0
- package/src/components/chat/.embeddable-chat.md +57 -66
- package/src/components/chat/.error-message-display.md +40 -22
- package/src/components/chat/.guide-mode-banner.md +41 -0
- package/src/components/chat/.guide-welcome.md +43 -0
- package/src/components/chat/.index.md +26 -21
- package/src/components/chat/.mingo-chat-history.md +63 -0
- package/src/components/chat/.mingo-chat-modals.md +44 -0
- package/src/components/chat/.mingo-history-rail.md +63 -0
- package/src/components/chat/.mingo-info-card.md +59 -0
- package/src/components/chat/.mingo-onboarding-card.md +21 -27
- package/src/components/chat/.mingo-welcome.md +60 -0
- package/src/components/chat/.model-display.md +33 -25
- package/src/components/chat/.msp-organization-card-skeleton.md +44 -0
- package/src/components/chat/.msp-organization-card.md +51 -0
- package/src/components/chat/.nav-link-anchor-via-runtime.md +36 -25
- package/src/components/chat/.quick-action-chip.md +60 -0
- package/src/components/chat/.quick-action-marquee.md +53 -0
- package/src/components/chat/.quick-action-wall.md +68 -0
- package/src/components/chat/.remark-mention-chips.md +41 -0
- package/src/components/chat/.slash-command-suggestions.md +30 -36
- package/src/components/chat/.source-action-button.md +28 -25
- package/src/components/chat/.tool-call-blocks.md +18 -30
- package/src/components/chat/.tool-execution-display.md +29 -34
- package/src/components/chat/entity-cards/.admin-content-card.md +29 -22
- package/src/components/chat/entity-cards/.blog-card.md +44 -33
- package/src/components/chat/entity-cards/.blog-image-placeholder.md +20 -18
- package/src/components/chat/entity-cards/.case-study-card.md +24 -33
- package/src/components/chat/entity-cards/.chat-ticket-item.md +39 -22
- package/src/components/chat/entity-cards/.customer-interview-card.md +29 -32
- package/src/components/chat/entity-cards/.data-room-doc-card.md +21 -22
- package/src/components/chat/entity-cards/.dispatch.md +41 -24
- package/src/components/chat/entity-cards/.entity-author-card.md +36 -33
- package/src/components/chat/entity-cards/.entity-portrait-card.md +47 -0
- package/src/components/chat/entity-cards/.generic-entity-card.md +26 -25
- package/src/components/chat/entity-cards/.github-activity-card.md +35 -41
- package/src/components/chat/entity-cards/.hubspot-ticket-card.md +22 -28
- package/src/components/chat/entity-cards/.index.md +33 -44
- package/src/components/chat/entity-cards/.investor-update-card.md +36 -25
- package/src/components/chat/entity-cards/.onboarding-guide-card.md +20 -29
- package/src/components/chat/entity-cards/.product-release-card-defaults.md +26 -19
- package/src/components/chat/entity-cards/.program-card.md +30 -33
- package/src/components/chat/entity-cards/.roadmap-card.md +40 -31
- package/src/components/chat/entity-cards/.roadmap-vote-button.md +33 -36
- package/src/components/chat/entity-cards/.slack-message-card.md +31 -32
- package/src/components/chat/entity-cards/.use-cover-image-fallback.md +47 -0
- package/src/components/chat/entity-cards/.use-entity-card-link.md +51 -0
- package/src/components/chat/entity-cards/.use-entity-card-placeholder.md +47 -0
- package/src/components/chat/entity-cards/.what-i-shipped-card.md +43 -0
- package/src/components/chat/hooks/.index.md +33 -30
- package/src/components/chat/hooks/.use-chat-card-item.md +30 -17
- package/src/components/chat/hooks/.use-chat-dialog-manager.md +59 -0
- package/src/components/chat/hooks/.use-chat-identity.md +37 -25
- package/src/components/chat/hooks/.use-chunk-catchup.md +53 -36
- package/src/components/chat/hooks/.use-empty-state-config.md +39 -0
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +65 -30
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
- package/src/components/chat/hooks/.use-nats-dialog-subscription.md +66 -50
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +58 -31
- package/src/components/chat/hooks/.use-scripted-stream.md +46 -0
- package/src/components/chat/hooks/.use-slash-commands.md +32 -25
- package/src/components/chat/hooks/.use-sse-chat-adapter.md +32 -21
- package/src/components/chat/hooks/.use-unified-chat.md +45 -35
- package/src/components/chat/types/.api.types.md +49 -41
- package/src/components/chat/types/.chat.types.md +56 -34
- package/src/components/chat/types/.component.types.md +36 -36
- package/src/components/chat/types/.context-item.types.md +61 -0
- package/src/components/chat/types/.index.md +32 -17
- package/src/components/chat/types/.message.types.md +44 -45
- package/src/components/chat/types/.network.types.md +46 -46
- package/src/components/chat/types/.processing.types.md +49 -37
- package/src/components/chat/types/.unified-chat-state.types.md +41 -26
- package/src/components/chat/types/entities/.content-ref.md +20 -31
- package/src/components/chat/types/entities/.investor-update.md +14 -16
- package/src/components/chat/types/entities/.onboarding-guide.md +35 -34
- package/src/components/chat/types/entities/.program-types.md +55 -43
- package/src/components/chat/utils/.chip-action-class.md +17 -19
- package/src/components/chat/utils/.chip-styles.md +18 -18
- package/src/components/chat/utils/.chunk-parser.md +48 -37
- package/src/components/chat/utils/.compact-card-classes.md +33 -35
- package/src/components/chat/utils/.execute-navigation.md +49 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +9 -12
- package/src/components/chat/utils/.history-merge.md +65 -0
- package/src/components/chat/utils/.icon-library.md +33 -31
- package/src/components/chat/utils/.icon-registry.md +44 -0
- package/src/components/chat/utils/.index.md +37 -33
- package/src/components/chat/utils/.is-cross-origin-url.md +26 -22
- package/src/components/chat/utils/.message-segment-accumulator.md +46 -25
- package/src/components/chat/utils/.nav-anchor-props.md +29 -34
- package/src/components/chat/utils/.nav-click-handler.md +29 -33
- package/src/components/chat/utils/.process-historical-messages.md +29 -33
- package/src/components/chat/utils/.scripted-stream.md +52 -0
- package/src/components/chat/utils/.source-row-cta.md +32 -31
- package/src/components/chat/utils/.tool-call-helpers.md +25 -17
- package/src/components/contact/.contact-form.md +24 -19
- package/src/components/docs/.doc-navigation-context.md +49 -0
- package/src/components/docs/.doc-viewer.md +64 -0
- package/src/components/docs/.docs-hub-page.md +49 -0
- package/src/components/docs/.index.md +51 -0
- package/src/components/docs/.skeletons.md +47 -0
- package/src/components/docs/.use-docs-resolve-link.md +61 -0
- package/src/components/docs/.use-document-tree.md +83 -0
- package/src/components/docs/.use-scroll-spy.md +58 -0
- package/src/components/embeds/.embed-container.md +45 -0
- package/src/components/embeds/.embed-iframe.md +51 -0
- package/src/components/embeds/.figma-embed.md +43 -0
- package/src/components/embeds/.file-download-card.md +47 -0
- package/src/components/embeds/.google-sheets-viewer.md +40 -0
- package/src/components/embeds/.index.md +58 -0
- package/src/components/embeds/.linkedin-embed-client.md +50 -0
- package/src/components/embeds/.markdown-image.md +40 -0
- package/src/components/embeds/.og-link-preview.md +54 -0
- package/src/components/embeds/.pdf-viewer.md +43 -0
- package/src/components/embeds/.reddit-embed-client.md +40 -0
- package/src/components/embeds/.rich-markdown-runtime.md +53 -0
- package/src/components/embeds/.twitter-embed-client.md +44 -0
- package/src/components/faq/.faq-document-page.md +68 -0
- package/src/components/faq/.faq-section.md +55 -0
- package/src/components/faq/.index.md +29 -0
- package/src/components/faq/.json-ld.md +48 -0
- package/src/components/features/.array-entry-manager.md +32 -24
- package/src/components/features/.auth-providers-list.md +33 -32
- package/src/components/features/.captions-url.md +43 -0
- package/src/components/features/.cards-strip.md +48 -0
- package/src/components/features/.changelog-manager.md +17 -20
- package/src/components/features/.command-box.md +11 -16
- package/src/components/features/.entity-summary-editor.md +20 -15
- package/src/components/features/.entity-tag-badges.md +43 -0
- package/src/components/features/.entity-video-section.md +31 -41
- package/src/components/features/.figma-prototype-viewer.md +55 -37
- package/src/components/features/.filters-dropdown.md +14 -13
- package/src/components/features/.highlight-config-section.md +19 -16
- package/src/components/features/.highlight-video-combined-section.md +28 -19
- package/src/components/features/.highlight-video-preview.md +13 -11
- package/src/components/features/.highlight-video-section.md +26 -22
- package/src/components/features/.index.md +40 -36
- package/src/components/features/.media-gallery-manager.md +37 -35
- package/src/components/features/.mux-origins.md +46 -0
- package/src/components/features/.og-editor-preview.md +29 -24
- package/src/components/features/.os-type-badge-group.md +26 -18
- package/src/components/features/.os-type-badge.md +41 -24
- package/src/components/features/.paths-display.md +42 -25
- package/src/components/features/.platform-badge.md +26 -17
- package/src/components/features/.policy-configuration-panel.md +33 -31
- package/src/components/features/.provider-button.md +29 -20
- package/src/components/features/.push-button-selector.md +39 -41
- package/src/components/features/.release-media-manager.md +41 -34
- package/src/components/features/.section-selector.md +27 -16
- package/src/components/features/.select-button.md +21 -32
- package/src/components/features/.seo-editor-preview.md +49 -36
- package/src/components/features/.social-links-manager.md +40 -18
- package/src/components/features/.start-with-openframe-button.md +30 -32
- package/src/components/features/.status-filter-component.md +29 -38
- package/src/components/features/.tags-selector.md +25 -29
- package/src/components/features/.transcript-summary-editor.md +24 -18
- package/src/components/features/.use-video-warmup.md +47 -0
- package/src/components/features/.video-bites-display.md +36 -37
- package/src/components/features/.video-bites-shared.md +44 -0
- package/src/components/features/.video-bites-strip.md +63 -0
- package/src/components/features/.video-center-badge.md +38 -0
- package/src/components/features/.video-ratio-tabs.md +38 -31
- package/src/components/features/.video-source-selector.md +24 -27
- package/src/components/features/.video.md +35 -27
- package/src/components/features/.waitlist-form.md +39 -33
- package/src/components/features/.warning-block.md +53 -0
- package/src/components/features/ai-enrich/.AIEnrichSection.md +24 -25
- package/src/components/features/ai-enrich/.AIRequiredBadge.md +22 -21
- package/src/components/features/ai-enrich/.AIStatusIndicator.md +42 -35
- package/src/components/features/ai-enrich/.AIWarningsSection.md +23 -20
- package/src/components/features/ai-enrich/.ConfidenceBadge.md +35 -20
- package/src/components/features/auth/.auth-benefits-panel.md +48 -0
- package/src/components/features/auth/.auth-branding.md +51 -0
- package/src/components/features/auth/.auth-shell.md +51 -0
- package/src/components/features/auth/.back-to-login-link.md +48 -0
- package/src/components/features/auth/.complete-account-form.md +45 -0
- package/src/components/features/auth/.create-organization-form.md +53 -0
- package/src/components/features/auth/.index.md +48 -0
- package/src/components/features/auth/.invite-link-invalid-modal.md +42 -0
- package/src/components/features/auth/.login-form.md +42 -0
- package/src/components/features/auth/.openframe-sso-login-form.md +46 -0
- package/src/components/features/auth/.openframe-sso-signup-form.md +51 -0
- package/src/components/features/auth/.password-reset-form.md +57 -0
- package/src/components/features/auth/.sso-auth-shell.md +35 -0
- package/src/components/features/auth/.sso-providers.md +42 -0
- package/src/components/features/auth/.terms-agreement-label.md +28 -0
- package/src/components/features/board/.board-column-header.md +24 -18
- package/src/components/features/board/.board-column.md +32 -32
- package/src/components/features/board/.board-ticket-approval.md +42 -0
- package/src/components/features/board/.board.md +38 -38
- package/src/components/features/board/.index.md +35 -38
- package/src/components/features/board/.ticket-card.md +33 -36
- package/src/components/features/board/.types.md +38 -31
- package/src/components/features/card-hit-layer.tsx +84 -0
- package/src/components/features/floating-walkthrough-video.tsx +891 -0
- package/src/components/features/index.ts +4 -0
- package/src/components/features/notifications/.approval-request-notification-tile.md +45 -0
- package/src/components/features/notifications/.index.md +35 -31
- package/src/components/features/notifications/.notification-drawer.md +32 -19
- package/src/components/features/notifications/.notification-popups.md +51 -0
- package/src/components/features/notifications/.notification-tile.md +43 -27
- package/src/components/features/notifications/.notifications-context.md +42 -45
- package/src/components/features/notifications/.types.md +51 -31
- package/src/components/features/ticket-status-config-list/.ticket-status-config-list.md +51 -0
- package/src/components/features/time-tracker/.index.md +48 -0
- package/src/components/features/time-tracker/.time-tracker-context.md +55 -0
- package/src/components/features/time-tracker/.time-tracker-header-button.md +51 -0
- package/src/components/features/time-tracker/.time-tracker-panel.md +58 -0
- package/src/components/features/time-tracker/.types.md +51 -0
- package/src/components/features/time-tracker/.use-tracker-clock.md +32 -0
- package/src/components/features/use-walkthrough-video.ts +70 -0
- package/src/components/features/video-bites-strip.tsx +46 -146
- package/src/components/features/video-center-badge.tsx +11 -2
- package/src/components/features/video-hover-preview.tsx +201 -0
- package/src/components/features/video.tsx +368 -73
- package/src/components/help-center-pages/.delivery-page.md +51 -0
- package/src/components/help-center-pages/.index.md +51 -0
- package/src/components/help-center-pages/.onboarding-guides-catalog-page.md +53 -0
- package/src/components/help-center-pages/.product-releases-list-page.md +51 -0
- package/src/components/help-center-pages/.roadmap-page.md +46 -0
- package/src/components/icons/.figma-icon.md +13 -7
- package/src/components/icons/.index.md +26 -22
- package/src/components/icons/.vendor-directory-icon.md +30 -18
- package/src/components/icons/.x-logo.md +26 -10
- package/src/components/icons-v2-generated/.index.md +30 -41
- package/src/components/icons-v2-generated/brand-logos/.index.md +25 -19
- package/src/components/icons-v2-generated/communication/.index.md +26 -30
- package/src/components/icons-v2-generated/logos/.flamingo-logo-icon.md +41 -0
- package/src/components/layout/.article-detail-layout.md +32 -21
- package/src/components/layout/.page-container.md +25 -23
- package/src/components/layout/.page-heading.md +48 -0
- package/src/components/layout/.page-layout.md +30 -25
- package/src/components/layout/.title-block.md +43 -24
- package/src/components/loading/.card-skeleton.md +28 -35
- package/src/components/loading/.category-card-skeleton.md +25 -23
- package/src/components/loading/.device-card-skeleton.md +22 -15
- package/src/components/loading/.margin-report-skeleton.md +30 -35
- package/src/components/loading/.openmsp-heartbeat.md +30 -32
- package/src/components/loading/.organization-card-skeleton.md +22 -25
- package/src/components/loading/.organization-icon-skeleton.md +39 -27
- package/src/components/loading/.page-layout-skeleton.md +50 -28
- package/src/components/loading/.unified-skeleton.md +37 -40
- package/src/components/loading/.users-grid-skeleton.md +19 -38
- package/src/components/navigation/.app-header.md +35 -28
- package/src/components/navigation/.app-layout-context.md +48 -0
- package/src/components/navigation/.app-layout-drawer.md +56 -0
- package/src/components/navigation/.app-layout.md +24 -23
- package/src/components/navigation/.header-mingo-button.md +46 -0
- package/src/components/navigation/.header-organization-filter.md +32 -18
- package/src/components/navigation/.header.md +24 -31
- package/src/components/navigation/.index.md +36 -50
- package/src/components/navigation/.mingo-ai-button.md +41 -0
- package/src/components/navigation/.mobile-burger-menu.md +29 -29
- package/src/components/navigation/.mobile-nav-panel.md +41 -49
- package/src/components/navigation/.multi-level-navigation.md +76 -0
- package/src/components/navigation/.navigation-sidebar-item.md +14 -14
- package/src/components/navigation/.navigation-sidebar.md +30 -23
- package/src/components/navigation/.sliding-sidebar.md +30 -25
- package/src/components/navigation/.sticky-section-nav.md +23 -21
- package/src/components/onboarding-guides/.index.md +40 -0
- package/src/components/onboarding-guides/.onboarding-guide-detail-view.md +55 -0
- package/src/components/onboarding-guides/.onboarding-guides-catalog-skeleton.md +33 -0
- package/src/components/onboarding-guides/.onboarding-guides-catalog-view.md +50 -0
- package/src/components/onboarding-guides/hooks/.use-onboarding-guides.md +54 -0
- package/src/components/platform/.CveLink.md +28 -17
- package/src/components/platform/.ScriptArguments.md +18 -23
- package/src/components/platform/.ScriptInfoSection.md +27 -21
- package/src/components/platform/.ShellTypeBadge.md +34 -18
- package/src/components/platform/.SoftwareInfo.md +23 -21
- package/src/components/platform/.ToolBadge.md +18 -16
- package/src/components/profile/.ProfileLoadingSkeleton.md +24 -23
- package/src/components/related-content/.index.md +41 -0
- package/src/components/related-content/.related-content-section.md +62 -0
- package/src/components/shared/.article-author-byline.md +56 -0
- package/src/components/shared/.detail-page-skeleton.md +32 -43
- package/src/components/shared/.media-gallery-strip.md +43 -0
- package/src/components/shared/delivery/.delivery-lists.md +20 -19
- package/src/components/shared/delivery/.delivery-row.md +24 -20
- package/src/components/shared/delivery/.delivery-table.md +20 -22
- package/src/components/shared/dev-section/.dev-card-row.md +28 -36
- package/src/components/shared/dev-section/.dev-section-page.md +36 -25
- package/src/components/shared/dev-section/.dev-section-view.md +32 -22
- package/src/components/shared/doc-search/.doc-search-bar.md +58 -0
- package/src/components/shared/doc-search/.doc-search-result-row.md +50 -0
- package/src/components/shared/doc-search/.format-relative-path.md +30 -0
- package/src/components/shared/doc-search/.index.md +46 -0
- package/src/components/shared/doc-search/.map-doc-search-results.md +44 -0
- package/src/components/shared/doc-search/.resolve-search-result-action.md +52 -0
- package/src/components/shared/doc-search/.types.md +49 -0
- package/src/components/shared/doc-search/.use-doc-search.md +66 -0
- package/src/components/shared/legal-document/.legal-document-page.md +26 -20
- package/src/components/shared/legal-document/.use-legal-docs.md +36 -30
- package/src/components/shared/onboarding/.onboarding-step-card.md +24 -16
- package/src/components/shared/onboarding/.onboarding-walkthrough.md +42 -28
- package/src/components/shared/product-release/.index.md +33 -24
- package/src/components/shared/product-release/.product-release-card-skeleton.md +22 -28
- package/src/components/shared/product-release/.product-release-card.md +28 -29
- package/src/components/shared/product-release/.product-releases-view.md +49 -0
- package/src/components/shared/product-release/.release-detail-page.md +30 -15
- package/src/components/shared/roadmap/.index.md +29 -24
- package/src/components/shared/roadmap/.roadmap-grid.md +43 -54
- package/src/components/shared/roadmap/.roadmap-view.md +41 -0
- package/src/components/shared/roadmap/.use-roadmap-voting.md +27 -17
- package/src/components/switch.tsx +1 -1
- package/src/components/tickets/.help-center-card.md +32 -28
- package/src/components/tickets/.help-center-create-form.md +34 -22
- package/src/components/tickets/.help-center-list.md +36 -25
- package/src/components/tickets/.index.md +30 -45
- package/src/components/tickets/.ticket-center.md +31 -38
- package/src/components/tickets/.ticket-detail-drawer.md +20 -30
- package/src/components/tickets/.ticket-open-form.md +24 -26
- package/src/components/tickets/.ticket-reply-composer.md +51 -0
- package/src/components/tickets/.ticket-row.md +26 -11
- package/src/components/tickets/.types.md +56 -38
- package/src/components/tickets/hooks/.use-ticket-actions.md +60 -47
- package/src/components/tickets/hooks/.use-ticket-engagements.md +27 -27
- package/src/components/tickets/hooks/.use-tickets-list.md +24 -30
- package/src/components/ui/.accordion.md +28 -21
- package/src/components/ui/.actions-menu.md +36 -54
- package/src/components/ui/.ai-generated-badge.md +25 -0
- package/src/components/ui/.alert-dialog.md +21 -16
- package/src/components/ui/.alert.md +30 -25
- package/src/components/ui/.allowed-domains-input.md +26 -15
- package/src/components/ui/.announcement-bar-view.md +46 -0
- package/src/components/ui/.autocomplete.md +40 -27
- package/src/components/ui/.badge.md +34 -31
- package/src/components/ui/.brand-association-card.md +22 -18
- package/src/components/ui/.breadcrumb.md +18 -14
- package/src/components/ui/.bullet-list.md +35 -23
- package/src/components/ui/.card.md +47 -30
- package/src/components/ui/.checkbox-block.md +34 -22
- package/src/components/ui/.checkbox-with-description.md +18 -20
- package/src/components/ui/.chevron-button.md +29 -29
- package/src/components/ui/.circular-progress.md +30 -41
- package/src/components/ui/.color-preset-select.md +54 -0
- package/src/components/ui/.color-swatch.md +37 -0
- package/src/components/ui/.content-loader.md +34 -27
- package/src/components/ui/.crossfade-panels.md +50 -0
- package/src/components/ui/.cursor-pagination.md +38 -26
- package/src/components/ui/.dashboard-info-card.md +46 -27
- package/src/components/ui/.date-picker.md +52 -36
- package/src/components/ui/.device-card-compact.md +23 -20
- package/src/components/ui/.device-card.md +39 -30
- package/src/components/ui/.dialog.md +14 -14
- package/src/components/ui/.drawer.md +45 -39
- package/src/components/ui/.dropdown-button.md +41 -33
- package/src/components/ui/.dropdown-menu.md +40 -23
- package/src/components/ui/.duration-input.md +41 -0
- package/src/components/ui/.entity-image.md +32 -28
- package/src/components/ui/.error-state.md +30 -26
- package/src/components/ui/.fade-preview.md +44 -0
- package/src/components/ui/.field-wrapper.md +34 -23
- package/src/components/ui/.file-upload.md +30 -18
- package/src/components/ui/.filter-modal.md +30 -32
- package/src/components/ui/.filter-pill-row.md +58 -0
- package/src/components/ui/.floating-tooltip.md +27 -32
- package/src/components/ui/.hidden-tags-popup.md +18 -20
- package/src/components/ui/.highlight-card.md +36 -23
- package/src/components/ui/.honeypot-field.md +41 -0
- package/src/components/ui/.hover-dropdown.md +44 -31
- package/src/components/ui/.image-gallery-modal.md +28 -30
- package/src/components/ui/.image-uploader.md +39 -22
- package/src/components/ui/.index.md +33 -31
- package/src/components/ui/.info-card-row.md +50 -0
- package/src/components/ui/.info-card.md +27 -20
- package/src/components/ui/.info-row.md +30 -24
- package/src/components/ui/.info-section.md +63 -0
- package/src/components/ui/.input.md +29 -28
- package/src/components/ui/.label.md +34 -26
- package/src/components/ui/.markdown-editor.md +26 -25
- package/src/components/ui/.marquee-wall.md +64 -0
- package/src/components/ui/.menubar.md +50 -16
- package/src/components/ui/.modal-v2.md +41 -27
- package/src/components/ui/.modal.md +22 -19
- package/src/components/ui/.more-actions-menu.md +30 -24
- package/src/components/ui/.navigation-menu.md +40 -25
- package/src/components/ui/.organization-card.md +46 -27
- package/src/components/ui/.page-actions.md +55 -41
- package/src/components/ui/.page-loader.md +40 -23
- package/src/components/ui/.password-input.md +30 -0
- package/src/components/ui/.phone-input.md +20 -22
- package/src/components/ui/.portal-container.md +43 -0
- package/src/components/ui/.progress-bar.md +40 -27
- package/src/components/ui/.release-changelog-section.md +32 -26
- package/src/components/ui/.rich-markdown-renderer.md +45 -0
- package/src/components/ui/.scroll-fade.md +56 -0
- package/src/components/ui/.search-input.md +55 -37
- package/src/components/ui/.select.md +25 -26
- package/src/components/ui/.service-card.md +25 -19
- package/src/components/ui/.sheet.md +21 -21
- package/src/components/ui/.simple-markdown-renderer.md +36 -24
- package/src/components/ui/.slack-channel-chip.md +49 -0
- package/src/components/ui/.square-avatar.md +29 -26
- package/src/components/ui/.stacked-rows-panel.md +61 -0
- package/src/components/ui/.status-badge.md +30 -24
- package/src/components/ui/.status-indicator.md +35 -21
- package/src/components/ui/.tab-content.md +34 -22
- package/src/components/ui/.tab-navigation.md +40 -50
- package/src/components/ui/.tab-selector.md +48 -31
- package/src/components/ui/.tabs.md +34 -21
- package/src/components/ui/.tag-search-input.md +20 -20
- package/src/components/ui/.tag-select-dropdown.md +59 -0
- package/src/components/ui/.tag.md +25 -43
- package/src/components/ui/.tags-input.md +31 -31
- package/src/components/ui/.textarea.md +32 -30
- package/src/components/ui/.ticket-attachments-list.md +36 -29
- package/src/components/ui/.ticket-info-section.md +37 -42
- package/src/components/ui/.ticket-status-config-row.md +66 -0
- package/src/components/ui/.ticket-status-tag.md +39 -35
- package/src/components/ui/.toaster.md +21 -15
- package/src/components/ui/.toggle.md +38 -37
- package/src/components/ui/.tooltip.md +16 -13
- package/src/components/ui/button/.button-styles.md +17 -18
- package/src/components/ui/button/.button.md +30 -37
- package/src/components/ui/button/.split-button.md +46 -23
- package/src/components/ui/button/button-styles.ts +13 -0
- package/src/components/ui/button/button.tsx +5 -0
- package/src/components/ui/data-table/.data-table-body.md +50 -35
- package/src/components/ui/data-table/.data-table-empty.md +17 -33
- package/src/components/ui/data-table/.data-table-header.md +43 -40
- package/src/components/ui/data-table/.data-table-row.md +31 -31
- package/src/components/ui/data-table/.types.md +23 -28
- package/src/components/ui/file-manager/.file-manager-breadcrumb.md +16 -24
- package/src/components/ui/file-manager/.file-manager-empty.md +23 -15
- package/src/components/ui/file-manager/.file-manager-skeleton.md +34 -36
- package/src/components/ui/file-manager/.file-manager-table-row.md +29 -29
- package/src/components/ui/file-manager/.file-manager-table.md +39 -24
- package/src/components/ui/no-data/.index.md +22 -0
- package/src/components/ui/no-data/.no-data-actions.md +29 -0
- package/src/components/ui/no-data/.no-data-message.md +37 -0
- package/src/components/ui/no-data/.no-data-styles.md +39 -0
- package/src/components/ui/no-data/.no-data.md +59 -0
- package/src/components/ui/page-actions.tsx +2 -1
- package/src/components/ui/query-report-table/.query-report-table-header.md +15 -15
- package/src/components/ui/query-report-table/.query-report-table-row.md +16 -16
- package/src/components/ui/query-report-table/.query-report-table.md +39 -24
- package/src/components/ui/table/.table-column-filter-dropdown.md +15 -9
- package/src/components/ui/table/.table-description-cell.md +13 -12
- package/src/components/ui/table/.table-empty-state.md +19 -20
- package/src/components/ui/table/.table-row.md +30 -20
- package/src/components/ui/table/.table-skeleton.md +32 -27
- package/src/components/ui/table/.table-timestamp-cell.md +24 -23
- package/src/components/ui/table/.table.md +43 -30
- package/src/components/ui/table/.types.md +49 -45
- package/src/components/ui/table/.use-table-motion.md +45 -0
- package/src/contexts/.chat-runtime-context.md +55 -26
- package/src/contexts/.endpoints-runtime-context.md +40 -44
- package/src/embed-shims/.next-navigation.md +38 -31
- package/src/hooks/.api-hooks.md +28 -21
- package/src/hooks/.index.md +30 -25
- package/src/hooks/.use-authed-image-src.md +38 -0
- package/src/hooks/.use-contact-submission.md +35 -36
- package/src/hooks/.use-humanity-signals.md +47 -0
- package/src/hooks/.use-near-viewport.md +30 -30
- package/src/hooks/.use-og-placeholder-url.md +57 -0
- package/src/hooks/.use-scroll-to-hash.md +46 -0
- package/src/hooks/.use-self-fetch.md +52 -0
- package/src/hooks/state/.flatten-schema.md +37 -29
- package/src/hooks/ui/.index.md +37 -25
- package/src/hooks/ui/.use-auto-limit-tags.md +55 -38
- package/src/hooks/ui/.use-deferred-error.md +44 -0
- package/src/hooks/ui/.use-focus-trap.md +59 -0
- package/src/hooks/ui/.use-header-height.md +37 -0
- package/src/hooks/ui/.use-horizontal-scrollbar.md +25 -34
- package/src/hooks/ui/.use-marquee-engine.md +73 -0
- package/src/hooks/ui/.use-notification-permission.md +49 -0
- package/src/hooks/ui/.use-reset-on-page-hidden.md +40 -0
- package/src/hooks/ui/.use-suppress-clone-focus.md +41 -0
- package/src/nats/.index.md +39 -0
- package/src/nats/.nats-provider.md +46 -0
- package/src/nats/.nats.md +38 -28
- package/src/nats/.shared-connection.md +56 -0
- package/src/nats/.use-nats-subscription.md +57 -0
- package/src/stories/.ActionsMenu.stories.md +57 -0
- package/src/stories/.Alert.stories.md +46 -0
- package/src/stories/.AnnouncementBar.stories.md +59 -32
- package/src/stories/.AppLayoutDrawer.stories.md +60 -0
- package/src/stories/.AppLayoutSidebar.stories.md +45 -0
- package/src/stories/.ApprovalBatchMessage.stories.md +46 -0
- package/src/stories/.ApprovalBatchMessageClient.stories.md +55 -0
- package/src/stories/.ApprovalRequestMessage.stories.md +50 -0
- package/src/stories/.ApprovalRequestMessageClient.stories.md +41 -0
- package/src/stories/.BlogCard.stories.md +52 -0
- package/src/stories/.Board.stories.md +25 -20
- package/src/stories/.Button.stories.md +35 -40
- package/src/stories/.CampaignCardAdmin.stories.md +38 -0
- package/src/stories/.CardsStrip.stories.md +39 -0
- package/src/stories/.CaseStudyCard.stories.md +41 -0
- package/src/stories/.ChatContainer.stories.md +41 -0
- package/src/stories/.ChatInlineVideoPill.stories.md +36 -0
- package/src/stories/.ChatMessageEnhanced.stories.md +51 -0
- package/src/stories/.ChatMingoInfoCards.stories.md +30 -0
- package/src/stories/.ChatTicketList.stories.md +38 -22
- package/src/stories/.ChatTypingIndicator.stories.md +47 -0
- package/src/stories/.CheckboxBlock.stories.md +34 -35
- package/src/stories/.ContextCompactionDisplay.stories.md +28 -0
- package/src/stories/.CustomerInterviewCard.stories.md +36 -0
- package/src/stories/.DashboardInfoCard.stories.md +40 -33
- package/src/stories/.DataRoomDocCard.stories.md +42 -0
- package/src/stories/.DataTable.stories.md +37 -32
- package/src/stories/.DatePicker.stories.md +34 -30
- package/src/stories/.EmbeddableChat.stories.md +45 -28
- package/src/stories/.EmptyState.stories.md +55 -0
- package/src/stories/.ErrorMessageDisplay.stories.md +45 -0
- package/src/stories/.FilterModal.stories.md +28 -22
- package/src/stories/.GenericEntityCard.stories.md +50 -0
- package/src/stories/.GitHubActivityCard.stories.md +41 -0
- package/src/stories/.GuideWelcome.stories.md +38 -0
- package/src/stories/.Header.stories.md +32 -22
- package/src/stories/.HubspotTicketCard.stories.md +41 -0
- package/src/stories/.InfoCard.stories.md +37 -26
- package/src/stories/.InfoCardRow.stories.md +48 -0
- package/src/stories/.InfoSection.stories.md +55 -0
- package/src/stories/.Input.stories.md +45 -35
- package/src/stories/.InvestorUpdateCard.stories.md +41 -0
- package/src/stories/.MarqueeWall.stories.md +53 -0
- package/src/stories/.MingoAiButton.stories.md +31 -0
- package/src/stories/.MingoChatModals.stories.md +47 -0
- package/src/stories/.MingoInfoCard.stories.md +50 -0
- package/src/stories/.MingoOnboardingCard.stories.md +19 -19
- package/src/stories/.MingoWelcome.stories.md +41 -0
- package/src/stories/.MobileNavPanel.stories.md +52 -0
- package/src/stories/.Modal.stories.md +19 -16
- package/src/stories/.MspOrganizationCard.stories.md +45 -0
- package/src/stories/.NotificationDrawer.stories.md +39 -28
- package/src/stories/.OSTypeBadge.stories.md +34 -25
- package/src/stories/.OnboardingGuideCard.stories.md +41 -0
- package/src/stories/.PageActions.stories.md +21 -21
- package/src/stories/.PageContainer.stories.md +29 -24
- package/src/stories/.PageLayout.stories.md +18 -35
- package/src/stories/.PolicyConfigurationPanel.stories.md +58 -0
- package/src/stories/.ProductReleaseCard.stories.md +39 -0
- package/src/stories/.ProgramCard.stories.md +51 -0
- package/src/stories/.QuickActionChip.stories.md +59 -0
- package/src/stories/.QuickActionMarquee.stories.md +51 -0
- package/src/stories/.QuickActionWall.stories.md +58 -0
- package/src/stories/.RoadmapCard.stories.md +41 -0
- package/src/stories/.ShellTypeBadge.stories.md +42 -22
- package/src/stories/.SlackMessageCard.stories.md +42 -0
- package/src/stories/.SlashCommandSuggestions.stories.md +21 -31
- package/src/stories/.SplitButton.stories.md +23 -25
- package/src/stories/.StackedRowsPanel.stories.md +65 -0
- package/src/stories/.TabSelector.stories.md +26 -38
- package/src/stories/.Tag.stories.md +32 -27
- package/src/stories/.ThinkingDisplay.stories.md +43 -0
- package/src/stories/.TicketCard.stories.md +60 -0
- package/src/stories/.TicketInfoSection.stories.md +28 -20
- package/src/stories/.TimeTracker.stories.md +35 -0
- package/src/stories/.Toaster.stories.md +26 -20
- package/src/stories/.ToolBadge.stories.md +34 -24
- package/src/stories/.ToolExecutionDisplay.stories.md +22 -20
- package/src/stories/.ToolExecutionDisplayClient.stories.md +33 -0
- package/src/stories/.VideoBitesStrip.stories.md +37 -0
- package/src/stories/.WarningBlock.stories.md +51 -0
- package/src/stories/__fixtures__/.chat-card-decorator.md +39 -0
- package/src/stories/__fixtures__/.chat-cards.md +57 -0
- package/src/stories/auth/.CompleteAccount.stories.md +36 -0
- package/src/stories/auth/.CreateOrganization.stories.md +52 -0
- package/src/stories/auth/.InviteLinkInvalid.stories.md +21 -0
- package/src/stories/auth/.Login.stories.md +32 -0
- package/src/stories/auth/.OpenFrameSso.stories.md +58 -0
- package/src/stories/auth/.PasswordReset.stories.md +49 -0
- package/src/styles/ods-interaction-states.css +32 -0
- package/src/types/.announcement.md +67 -35
- package/src/types/.blog.md +44 -41
- package/src/types/.case-study.md +31 -17
- package/src/types/.content-ref.md +37 -0
- package/src/types/.customer-interview.md +38 -38
- package/src/types/.doc-source.md +87 -0
- package/src/types/.entity-author.md +53 -0
- package/src/types/.entity-platform.md +40 -0
- package/src/types/.index.md +23 -17
- package/src/types/.marketing.md +32 -35
- package/src/types/.navigation.md +31 -19
- package/src/types/.os.types.md +30 -31
- package/src/types/.permissions.md +49 -35
- package/src/types/.platform.md +44 -28
- package/src/types/.product-release.md +59 -42
- package/src/types/.shell.types.md +46 -30
- package/src/types/.supabase.md +43 -29
- package/src/types/.tool.types.md +43 -23
- package/src/types/.video-processing.md +40 -31
- package/src/types/supabase.ts +80 -0
- package/src/types/video-processing.ts +1 -0
- package/src/utils/.announcement-storage.md +49 -17
- package/src/utils/.app-config.md +22 -18
- package/src/utils/.brand-marks.md +46 -0
- package/src/utils/.cn.md +40 -29
- package/src/utils/.color-analysis.md +34 -25
- package/src/utils/.common.md +43 -23
- package/src/utils/.content-href.md +64 -0
- package/src/utils/.content-ref-groups.md +51 -0
- package/src/utils/.date-utils.md +46 -35
- package/src/utils/.doc-path-utils.md +38 -0
- package/src/utils/.doc-tree-nav.md +51 -0
- package/src/utils/.embed-authed-fetch.md +48 -32
- package/src/utils/.embed-content-fetch.md +36 -0
- package/src/utils/.embed-url-converters.md +52 -0
- package/src/utils/.extract-items.md +49 -0
- package/src/utils/.faq-anchor.md +48 -0
- package/src/utils/.format.md +73 -55
- package/src/utils/.humanity-signals.md +59 -0
- package/src/utils/.index.md +73 -31
- package/src/utils/.list-url.md +43 -0
- package/src/utils/.markdown-section-extractor.md +57 -0
- package/src/utils/.markdown-to-plain.md +51 -0
- package/src/utils/.media-carousel-utils-stub.md +42 -31
- package/src/utils/.ods-color-utils.md +84 -43
- package/src/utils/.og-placeholder.md +45 -0
- package/src/utils/.page-header-constants.md +26 -0
- package/src/utils/.platform-config.md +34 -34
- package/src/utils/.release-badge.md +47 -0
- package/src/utils/.release-cover.md +45 -0
- package/src/utils/.same-page-hash-nav.md +45 -0
- package/src/utils/.scroll-into-view.md +32 -25
- package/src/utils/.seo-description.md +37 -0
- package/src/utils/.seo-title.md +25 -0
- package/src/utils/.social-embed-cache.md +37 -0
- package/src/utils/.source-icons.md +30 -34
- package/src/utils/.suggestion-url.md +46 -0
- package/src/utils/.tool-utils.md +39 -24
- package/src/utils/.tree-builder.md +64 -0
- package/src/utils/.video-bite-id.md +42 -0
- package/src/utils/announcement-storage.ts +9 -18
- package/src/utils/dev-sections/.dev-section-param-keys.md +51 -0
- package/src/utils/dev-sections/.openframe-dev-sections.md +40 -28
- package/src/utils/dismiss-cookie.ts +55 -0
- package/src/utils/dismissal-storage.ts +38 -0
- package/src/utils/index.ts +3 -0
- package/dist/chunk-BBUEY73L.js.map +0 -1
- package/dist/chunk-G3UN2DXU.cjs.map +0 -1
- package/dist/chunk-OWMLWJQY.cjs.map +0 -1
- package/dist/chunk-SASR7SK5.js.map +0 -1
- package/src/components/chat/utils/.onboarding-icons.md +0 -28
- package/src/hooks/.use-og-placeholder.md +0 -51
- /package/dist/{chunk-MGKCS6KS.js.map → chunk-3WCARCI4.js.map} +0 -0
- /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-6UGYBCEN.js.map} +0 -0
- /package/dist/{chunk-PSPWT2Q5.js.map → chunk-7LWXWXEY.js.map} +0 -0
- /package/dist/{chunk-VTSRDC4W.js.map → chunk-CKC3EAYT.js.map} +0 -0
- /package/dist/{chunk-ZRANZNEA.js.map → chunk-JJE5TUZK.js.map} +0 -0
- /package/dist/{chunk-66BNAFO6.js.map → chunk-JQIUBFHL.js.map} +0 -0
- /package/dist/{chunk-2DIOV7BR.js.map → chunk-UPN6EFOM.js.map} +0 -0
- /package/dist/{chunk-4SMRQ4SN.js.map → chunk-WBL5Y4PS.js.map} +0 -0
- /package/dist/{chunk-FP4H6Y5O.js.map → chunk-WPYPSIY2.js.map} +0 -0
- /package/dist/{chunk-R5WJJL4V.js.map → chunk-X5X43HFV.js.map} +0 -0
- /package/dist/{chunk-DEHZ5CTC.js.map → chunk-XTWKDMCG.js.map} +0 -0
|
@@ -1,39 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Scrollable list component that renders a collection of
|
|
1
|
+
<!-- source-hash: 9b003d4a0319d2d06cb32bc530f883ab -->
|
|
2
|
+
Scrollable list component that renders a collection of chat ticket items with scroll-fade shadow overlays, loading skeleton states, and empty-state handling.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `ChatTicketList` | `React.forwardRef` component | Main list container with scroll-fade behavior |
|
|
9
|
+
| `ChatTicketListProps` | Interface | Props extending `HTMLAttributes<HTMLDivElement>` |
|
|
10
|
+
| `ChatTicketItemData` | Re-exported type | Ticket data shape from `chat-ticket-item` |
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
### Props
|
|
11
13
|
|
|
12
|
-
| Prop | Type | Description |
|
|
13
|
-
|
|
14
|
-
| `tickets` | `ChatTicketItemData[]` | Array of ticket data to render |
|
|
15
|
-
| `onTicketClick` | `(ticketId: string) => void` |
|
|
16
|
-
| `
|
|
14
|
+
| Prop | Type | Default | Description |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| `tickets` | `ChatTicketItemData[]` | — | Array of ticket data to render |
|
|
17
|
+
| `onTicketClick` | `(ticketId: string) => void` | — | Click handler passed to each item |
|
|
18
|
+
| `isLoading` | `boolean` | `false` | Renders skeleton placeholders instead of tickets |
|
|
19
|
+
| `skeletonCount` | `number` | `5` | Number of skeleton rows during loading |
|
|
20
|
+
|
|
21
|
+
### Behavior
|
|
22
|
+
|
|
23
|
+
- Uses `useScrollFade` to track scroll position and conditionally apply top/bottom fade overlays via `ScrollFadeOverlay`
|
|
24
|
+
- Border radius on the list container dynamically toggles based on whether top/bottom fades are active
|
|
25
|
+
- Returns `null` when `tickets` is empty (no empty state UI)
|
|
17
26
|
|
|
18
27
|
## Usage Example
|
|
19
28
|
|
|
20
29
|
```typescript
|
|
21
30
|
import { ChatTicketList } from './chat-ticket-list'
|
|
31
|
+
import type { ChatTicketItemData } from './chat-ticket-list'
|
|
22
32
|
|
|
23
|
-
const tickets = [
|
|
24
|
-
{ id: 'TKT-001', title: '
|
|
33
|
+
const tickets: ChatTicketItemData[] = [
|
|
34
|
+
{ id: 'TKT-001', title: 'Cannot connect to VPN', status: 'open' },
|
|
25
35
|
{ id: 'TKT-002', title: 'Printer offline', status: 'pending' },
|
|
26
36
|
]
|
|
27
37
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
38
|
+
// Normal render
|
|
39
|
+
<ChatTicketList
|
|
40
|
+
tickets={tickets}
|
|
41
|
+
onTicketClick={(id) => router.push(`/tickets/${id}`)}
|
|
42
|
+
/>
|
|
43
|
+
|
|
44
|
+
// Loading state
|
|
45
|
+
<ChatTicketList
|
|
46
|
+
tickets={[]}
|
|
47
|
+
isLoading
|
|
48
|
+
skeletonCount={3}
|
|
49
|
+
/>
|
|
37
50
|
```
|
|
38
51
|
|
|
39
|
-
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
[`chat-ticket-list.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chat-ticket-list.tsx)
|
|
@@ -1,34 +1,52 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component that
|
|
1
|
+
<!-- source-hash: de0eae2f35b8c3403f32c0ec87aeb062 -->
|
|
2
|
+
A React component that renders an animated three-dot typing indicator for chat interfaces, with configurable size, optional label text, and customizable dot styling.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### `ChatTypingIndicator`
|
|
7
|
+
|
|
8
|
+
A `forwardRef` component accepting `ChatTypingIndicatorProps`:
|
|
9
|
+
|
|
10
|
+
| Prop | Type | Default | Description |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Controls dot and container dimensions |
|
|
13
|
+
| `showText` | `boolean` | `false` | Toggles "Assistant is typing" label |
|
|
14
|
+
| `dotClassName` | `string` | `undefined` | Overrides default dot color (`bg-ods-text-primary`) |
|
|
15
|
+
| `className` | `string` | `undefined` | Additional classes for the root element |
|
|
16
|
+
|
|
17
|
+
**Animation:** Uses an injected `dotPulse` keyframe (`scale` + `opacity` pulse over 1.4s) with staggered delays — `0ms`, `200ms`, `400ms` — across the three dots.
|
|
18
|
+
|
|
19
|
+
**Size variants:**
|
|
20
|
+
|
|
21
|
+
| Size | Dot | Container height |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `sm` | `w-1 h-1` | `h-4` |
|
|
24
|
+
| `md` | `w-1.5 h-1.5` | `h-6` |
|
|
25
|
+
| `lg` | `w-2 h-2` | `h-8` |
|
|
10
26
|
|
|
11
27
|
## Usage Example
|
|
12
28
|
|
|
13
29
|
```typescript
|
|
14
|
-
import { ChatTypingIndicator } from
|
|
30
|
+
import { ChatTypingIndicator } from "./chat-typing-indicator"
|
|
15
31
|
|
|
16
|
-
//
|
|
32
|
+
// Default medium indicator
|
|
17
33
|
<ChatTypingIndicator />
|
|
18
34
|
|
|
19
|
-
//
|
|
20
|
-
<ChatTypingIndicator
|
|
21
|
-
size="lg"
|
|
22
|
-
showText={true}
|
|
23
|
-
className="my-4"
|
|
24
|
-
/>
|
|
35
|
+
// Large with label
|
|
36
|
+
<ChatTypingIndicator size="lg" showText />
|
|
25
37
|
|
|
26
|
-
// Custom dot
|
|
27
|
-
<ChatTypingIndicator
|
|
28
|
-
size="
|
|
38
|
+
// Custom dot color
|
|
39
|
+
<ChatTypingIndicator
|
|
40
|
+
size="sm"
|
|
29
41
|
dotClassName="bg-blue-500"
|
|
30
|
-
showText={true}
|
|
31
42
|
/>
|
|
43
|
+
|
|
44
|
+
// Inside a chat message bubble
|
|
45
|
+
<div className="chat-bubble">
|
|
46
|
+
<ChatTypingIndicator showText dotClassName="bg-ods-brand-primary" />
|
|
47
|
+
</div>
|
|
32
48
|
```
|
|
33
49
|
|
|
34
|
-
The component
|
|
50
|
+
> **Note:** The component injects a `<style>` tag via `dangerouslySetInnerHTML` to define the `dotPulse` keyframe. Ensure your CSP allows inline styles if applicable.
|
|
51
|
+
|
|
52
|
+
**Source:** [`chat-typing-indicator.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chat-typing-indicator.tsx)
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 4ea3d14913c5982b17e29bcfa31d3441 -->
|
|
2
|
+
A React component that displays the status of context compaction (summarization) for AI chat interfaces, showing either an in-progress or completed state.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
**`ContextCompactionDisplay`** — A `forwardRef` component that renders a styled status banner indicating whether context summarization is in progress or has completed.
|
|
7
|
+
|
|
8
|
+
| Status | Label | Icon |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `started` | "Context limit reached. Summarizing earlier messages." | `DotsLoaderIcon` (animated) |
|
|
11
|
+
| *(any other)* | "Earlier context summarized." | `CheckCircleIcon` (success) |
|
|
12
|
+
|
|
13
|
+
**Props** (`ContextCompactionDisplayProps`):
|
|
14
|
+
- `status` — Controls which state is displayed (`'started'` or completed)
|
|
15
|
+
- `className` — Optional class overrides merged via `cn()`
|
|
16
|
+
- Forwards all other `HTMLDivElement` props and the `ref`
|
|
9
17
|
|
|
10
18
|
## Usage Example
|
|
11
19
|
|
|
@@ -14,23 +22,19 @@ import { ContextCompactionDisplay } from "./context-compaction-display"
|
|
|
14
22
|
|
|
15
23
|
// In-progress state
|
|
16
24
|
<ContextCompactionDisplay status="started" />
|
|
17
|
-
// Renders: "Context limit reached. Summarizing earlier messages." + spinner
|
|
18
25
|
|
|
19
26
|
// Completed state
|
|
20
27
|
<ContextCompactionDisplay status="completed" />
|
|
21
|
-
// Renders: "Earlier context summarized." + check icon
|
|
22
28
|
|
|
23
29
|
// With custom className
|
|
24
30
|
<ContextCompactionDisplay
|
|
25
|
-
status="
|
|
26
|
-
className="
|
|
31
|
+
status="started"
|
|
32
|
+
className="mt-2 mx-4"
|
|
27
33
|
/>
|
|
28
34
|
```
|
|
29
35
|
|
|
30
|
-
##
|
|
36
|
+
## Notes
|
|
31
37
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
| `className` | `string` | Optional additional CSS classes |
|
|
36
|
-
| `ref` | `React.Ref<HTMLDivElement>` | Forwarded ref to the root `div` |
|
|
38
|
+
- Styled with ODS design tokens (`bg-ods-card`, `border-ods-border`, `text-ods-text-secondary`, `text-ods-success`) — ensure your project includes the OpenFrame Design System token definitions.
|
|
39
|
+
- The `displayName` is explicitly set to `"ContextCompactionDisplay"` for better React DevTools visibility.
|
|
40
|
+
- Source: [`context-compaction-display.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/context-compaction-display.tsx)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!-- source-hash: 849d337b5d84f9474942d4af95de653f -->
|
|
2
|
+
Shared building blocks for the **items level** of the entity-context picker (Figma 31:29102). Provides row chrome, skeleton placeholders, a scrollable list with scroll-driven pagination, and an error boundary — consumed by `ChatContextPickerConfig.renderItems` in the host application.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `CONTEXT_ROW_CLASS` | `string` | Tailwind classes for a standard menu row |
|
|
9
|
+
| `CONTEXT_ICON_CLASS` | `string` | Responsive 16px→24px icon wrapper |
|
|
10
|
+
| `CONTEXT_LABEL_CLASS` | `string` | Truncating h4 label slot |
|
|
11
|
+
| `CONTEXT_BACK_CLASS` | `string` | Back-navigation row classes |
|
|
12
|
+
| `CONTEXT_STATE_CLASS` | `string` | Empty/error state prose classes |
|
|
13
|
+
| `ContextMenuRow` | Component | Icon + label + optional trailing slot button primitive |
|
|
14
|
+
| `ContextItemsSkeleton` | Component | Suspense / load-more placeholder rows |
|
|
15
|
+
| `ContextItemsList` | Component | Scrollable `role="listbox"` with selection state, limit enforcement, and scroll-driven pagination |
|
|
16
|
+
| `ContextErrorBoundary` | Class Component | Catches failed host fetches; auto-resets on `resetKey` change |
|
|
17
|
+
|
|
18
|
+
## Usage Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import {
|
|
22
|
+
ContextItemsList,
|
|
23
|
+
ContextErrorBoundary,
|
|
24
|
+
ContextItemsSkeleton,
|
|
25
|
+
} from './context-items-list'
|
|
26
|
+
|
|
27
|
+
function MyPickerItems({ query }: { query: string }) {
|
|
28
|
+
const { items, hasMore, fetchNextPage, isFetchingNextPage } = useMyItems(query)
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<ContextErrorBoundary
|
|
32
|
+
resetKey={`device:${query}`}
|
|
33
|
+
fallback={(retry) => (
|
|
34
|
+
<button onClick={retry}>Failed to load — retry</button>
|
|
35
|
+
)}
|
|
36
|
+
>
|
|
37
|
+
<React.Suspense fallback={<ContextItemsSkeleton count={5} />}>
|
|
38
|
+
<ContextItemsList
|
|
39
|
+
items={items}
|
|
40
|
+
selectedKeys={selectedKeys}
|
|
41
|
+
onToggle={handleToggle}
|
|
42
|
+
atLimit={selectedKeys.size >= 5}
|
|
43
|
+
hasMore={hasMore}
|
|
44
|
+
onLoadMore={fetchNextPage}
|
|
45
|
+
loadingMore={isFetchingNextPage}
|
|
46
|
+
emptyLabel="No devices found"
|
|
47
|
+
/>
|
|
48
|
+
</React.Suspense>
|
|
49
|
+
</ContextErrorBoundary>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Notes:**
|
|
55
|
+
- `ContextErrorBoundary.resetKey` should encode both the entity type and current search query so errors clear automatically on navigation or new searches. Pair the `retry` callback with your data library's cache-reset (e.g. react-query's `queryClient.resetQueries`) to ensure the fetch actually re-runs.
|
|
56
|
+
- The list caps height at `min(340px, 45vh)` to stay inside bottom-anchored popovers on short viewports.
|
|
57
|
+
- Source: [`context-items-list.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/context-items-list.tsx)
|
|
@@ -1,81 +1,72 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Portable,
|
|
1
|
+
<!-- source-hash: 6d1785ee322c618d61267609c25a54fb -->
|
|
2
|
+
Portable, library-safe chat panel component that strips all hub-specific dependencies and routes navigation, identity, and transport decisions through a unified `useRequiredChatRuntime()` hook, enabling embedding in any host application.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
| `SKELETON_ROW_VARIANTS` | Constant | Deterministic width palette for loading skeleton rows |
|
|
13
|
-
| `FALLBACK_TOP_RETRIEVED` | Constant | Number of fallback source chips shown when the model cites no sources (default: `3`) |
|
|
14
|
-
|
|
15
|
-
## Usage Example
|
|
6
|
+
### `EmbeddableChat` (default export)
|
|
7
|
+
The primary component rendering a full-featured AI chat panel with:
|
|
8
|
+
- **Controlled/uncontrolled open state** via `open`, `defaultOpen`, and `onOpenChange` props
|
|
9
|
+
- **Dual-mode support** — Guide (SSE/RAG) and Mingo (NATS/agent) modes with an in-panel toggle
|
|
10
|
+
- **Injected Mingo state** via `mingoState` for host-managed transport (survives panel unmounting)
|
|
11
|
+
- **Preview/marketing mode** via `previewMode` — renders a non-interactive visual mock
|
|
16
12
|
|
|
13
|
+
### `EmbeddableChatProps`
|
|
17
14
|
```typescript
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// Controlled open state
|
|
34
|
-
<EmbeddableChat
|
|
35
|
-
open={isOpen}
|
|
36
|
-
onOpenChange={setIsOpen}
|
|
37
|
-
showInternalTrigger={false}
|
|
38
|
-
/>
|
|
15
|
+
interface EmbeddableChatProps {
|
|
16
|
+
open?: boolean
|
|
17
|
+
onOpenChange?: (open: boolean) => void
|
|
18
|
+
defaultOpen?: boolean
|
|
19
|
+
showInternalTrigger?: boolean
|
|
20
|
+
previewMode?: boolean
|
|
21
|
+
modes?: UseUnifiedChatModes // Guide + Mingo transport config
|
|
22
|
+
mingoState?: UnifiedChatState // Host-injected Mingo state
|
|
23
|
+
mingoDialogCapabilities?: { ... } // Rename/archive/restore capabilities
|
|
24
|
+
extras?: ChatCardDispatchExtras // Entity card builder overrides
|
|
25
|
+
enabledRagTableIds?: ReadonlyArray<string> | null
|
|
26
|
+
suggestedQueries?: ReadonlyArray<string> | null
|
|
27
|
+
baseRoute?: string
|
|
28
|
+
chipBasePlatform?: string
|
|
29
|
+
}
|
|
39
30
|
```
|
|
40
31
|
|
|
41
|
-
|
|
32
|
+
### Key Runtime Dependencies
|
|
33
|
+
- **`useRequiredChatRuntime()`** — provides `user`, `source`, and navigation context (replaces hub's `useAuth`, `currentPlatform`, `useNavLink`)
|
|
34
|
+
- **`useUnifiedChat()`** — orchestrates Guide/Mingo mode switching and transport adapters
|
|
35
|
+
- **`useSseChatAdapter()`** — SSE transport for Guide mode (replaces `useDocChat`)
|
|
36
|
+
- **`NavLinkAnchorViaRuntime`** — runtime-aware link rendering (replaces hub's `NavLinkAnchor`)
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
|---|---|
|
|
45
|
-
| `useAuth()` | `useRequiredChatRuntime().user` |
|
|
46
|
-
| `currentPlatform()` | `useRequiredChatRuntime().source` |
|
|
47
|
-
| `useNavLink` / `NavLinkAnchor` | `handleChatNavClick` + `NavLinkAnchorViaRuntime` |
|
|
48
|
-
| `useDocChat(source)` | `useSseChatAdapter()` (source from runtime) |
|
|
49
|
-
## Agent mode (OpenFrame AI agents — Fae / Mingo)
|
|
50
|
-
|
|
51
|
-
Reuse the SAME `<EmbeddableChat>` to render a global OpenFrame AI agent. No new
|
|
52
|
-
component, no agent-specific render path — an "agent mode" just OVERRIDES the
|
|
53
|
-
empty-state URL so the chat fetches the agent's display config (greeting +
|
|
54
|
-
suggested prompts + source chips) from the public `/api/ai-agents/[slug]`
|
|
55
|
-
endpoint, which is byte-compatible with the `EmptyStateConfig` wire shape
|
|
56
|
-
(`{ greeting, suggestedQueries, enabledRagTableIds }`).
|
|
38
|
+
## Usage Example
|
|
57
39
|
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
```typescript
|
|
41
|
+
import { EmbeddableChat } from '@openframe/lib'
|
|
42
|
+
import { HubRuntimeProvider } from './hub-runtime-provider'
|
|
60
43
|
|
|
61
|
-
|
|
62
|
-
|
|
44
|
+
function App() {
|
|
45
|
+
return (
|
|
46
|
+
<HubRuntimeProvider>
|
|
47
|
+
<EmbeddableChat
|
|
48
|
+
showInternalTrigger
|
|
49
|
+
modes={{
|
|
50
|
+
guide: { tableIdForDocumentType: (type) => myTableMap[type] ?? null },
|
|
51
|
+
mingo: { natsConfig: myNatsConfig, fetchDialogs: fetchDialogs }
|
|
52
|
+
}}
|
|
53
|
+
enabledRagTableIds={['kb_articles', 'tickets']}
|
|
54
|
+
suggestedQueries={['How do I reset a password?', 'Show open tickets']}
|
|
55
|
+
extras={{ buildProgramCardProps: myBuilder }}
|
|
56
|
+
/>
|
|
57
|
+
</HubRuntimeProvider>
|
|
58
|
+
)
|
|
59
|
+
}
|
|
63
60
|
```
|
|
64
61
|
|
|
65
|
-
|
|
66
|
-
wiring — the component falls back to a built-in default route. Resolution order
|
|
67
|
-
for the agent display-config route (highest → lowest precedence):
|
|
62
|
+
## Drawer Behavior
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
| Constant | Value | Description |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `DRAWER_DEFAULT_WIDTH_RATIO` | `0.5` | 50% of viewport width on desktop |
|
|
67
|
+
| `DRAWER_WIDTH_KEY` | `mingo-chat-width-v3` | `localStorage` key for persisted width |
|
|
68
|
+
| `DRAWER_DEFAULT_WIDTH_PX` | `750` | SSR fallback before viewport is known |
|
|
72
69
|
|
|
73
|
-
|
|
74
|
-
`runtime.endpoints.aiAgentConfigUrl` (or the prop) to their absolute proxied
|
|
75
|
-
path. Every other chat route (`chatStreamUrl`, `commandsUrl`, …) comes from
|
|
76
|
-
`runtime.endpoints` and is likewise overridable.
|
|
70
|
+
## Source
|
|
77
71
|
|
|
78
|
-
|
|
79
|
-
(the chat route derives `source` from the deployment, not the client) — the
|
|
80
|
-
agent customizes the greeting + suggested-prompt chips, not the corpus. In mingo
|
|
81
|
-
mode, `mingoWelcome` still owns its own welcome surface.
|
|
72
|
+
[`embeddable-chat.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/embeddable-chat.tsx) · [OpenFrame OSS Lib](https://github.com/flamingo-stack/openframe-oss-lib) · Community: [OpenMSP Slack](https://join.slack.com/t/openmsp/shared_invite/zt-36bl7mx0h-3~U2nFH6nqHqoTPXMaHEHA)
|
|
@@ -1,39 +1,57 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: ef8653f94f0fdc48eb37fc59aa16aeb7 -->
|
|
2
|
+
Collapsible error/warning/info message component that displays a title with an optional expandable details section, supporting three severity types with distinct icon tinting.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
### `ErrorMessageDisplay`
|
|
7
|
+
A `forwardRef` component that renders an alert card with:
|
|
8
|
+
- **`title`** — Always-visible summary text (truncated when collapsed)
|
|
9
|
+
- **`details`** — Optional expandable body text; when omitted, the card is non-interactive
|
|
10
|
+
- **`type`** — Severity level controlling icon color: `"error"` (default) | `"warning"` | `"info"`
|
|
11
|
+
- **`className`** — Additional CSS classes merged via `cn`
|
|
12
|
+
|
|
13
|
+
### `iconTint`
|
|
14
|
+
Internal map from `type` to ODS color tokens:
|
|
15
|
+
| Type | Token |
|
|
16
|
+
|---|---|
|
|
17
|
+
| `error` | `text-ods-error` |
|
|
18
|
+
| `warning` | `text-ods-warning` |
|
|
19
|
+
| `info` | `text-ods-text-secondary` |
|
|
20
|
+
|
|
21
|
+
### Internal Hooks & Sub-components
|
|
22
|
+
- **`useCollapsible`** — Provides animated `containerStyle` and `innerRef` for smooth height transitions
|
|
23
|
+
- **`ExpandChevron`** — Chevron icon that rotates based on `expanded` state
|
|
24
|
+
- **`AlertCircleIcon`** — 16px alert icon tinted by severity type
|
|
11
25
|
|
|
12
26
|
## Usage Example
|
|
13
27
|
|
|
14
28
|
```typescript
|
|
15
29
|
import { ErrorMessageDisplay } from "./error-message-display"
|
|
16
30
|
|
|
17
|
-
//
|
|
18
|
-
<ErrorMessageDisplay
|
|
31
|
+
// Simple non-interactive error
|
|
32
|
+
<ErrorMessageDisplay
|
|
33
|
+
type="error"
|
|
19
34
|
title="Authentication failed"
|
|
20
35
|
/>
|
|
21
36
|
|
|
22
|
-
//
|
|
23
|
-
<ErrorMessageDisplay
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
37
|
+
// Expandable warning with details
|
|
38
|
+
<ErrorMessageDisplay
|
|
39
|
+
type="warning"
|
|
40
|
+
title="Rate limit approaching"
|
|
41
|
+
details="You have used 90% of your API quota. Requests may be throttled after midnight UTC."
|
|
27
42
|
/>
|
|
28
43
|
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
details="Email format is invalid. Please enter a valid email address."
|
|
44
|
+
// Info message with custom class
|
|
45
|
+
<ErrorMessageDisplay
|
|
46
|
+
type="info"
|
|
47
|
+
title="Scheduled maintenance window"
|
|
48
|
+
details="The service will be unavailable from 02:00–04:00 UTC on Saturday."
|
|
49
|
+
className="mt-4"
|
|
36
50
|
/>
|
|
37
51
|
```
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
## Accessibility
|
|
54
|
+
|
|
55
|
+
- `aria-expanded` is set on the toggle button only when `details` is present
|
|
56
|
+
- `aria-label` dynamically switches between `"Expand details"` / `"Collapse details"`
|
|
57
|
+
- Button is `disabled` when no details exist, preventing keyboard interaction
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 2df823f019c629ff7f91356377ab1d22 -->
|
|
2
|
+
A full-bleed accent banner component that indicates when a chat session is running in Guide Mode, displaying a compass icon, label, and optional help tooltip.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `GuideModeBanner`
|
|
7
|
+
|
|
8
|
+
The primary exported component. Renders a fixed-height (`h-8`) yellow accent strip intended to appear below a chat header.
|
|
9
|
+
|
|
10
|
+
| Prop | Type | Default | Description |
|
|
11
|
+
|------|------|---------|-------------|
|
|
12
|
+
| `label` | `React.ReactNode` | `'Guide Mode Chat'` | Banner label text (rendered uppercase via `text-h5` style) |
|
|
13
|
+
| `tooltip` | `React.ReactNode \| null` | Default explanation string | Help icon tooltip copy; pass `null` to hide the help icon entirely |
|
|
14
|
+
| `className` | `string` | — | Additional CSS classes merged via `cn()` |
|
|
15
|
+
|
|
16
|
+
**Visual structure:**
|
|
17
|
+
- **Leading:** `CompassIcon` (16px)
|
|
18
|
+
- **Center:** Truncated label paragraph
|
|
19
|
+
- **Trailing:** `QuestionCircleIcon` button with a `TooltipProvider` (hidden when `tooltip` is `null`)
|
|
20
|
+
|
|
21
|
+
## Usage Example
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Default — shows all three elements with built-in copy
|
|
25
|
+
<GuideModeBanner />
|
|
26
|
+
|
|
27
|
+
// Custom label only
|
|
28
|
+
<GuideModeBanner label="Exploration Mode" />
|
|
29
|
+
|
|
30
|
+
// Hide the help icon entirely
|
|
31
|
+
<GuideModeBanner tooltip={null} />
|
|
32
|
+
|
|
33
|
+
// Fully custom
|
|
34
|
+
<GuideModeBanner
|
|
35
|
+
label="Read-Only Session"
|
|
36
|
+
tooltip="This session cannot modify any devices or run scripts."
|
|
37
|
+
className="opacity-90"
|
|
38
|
+
/>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **Note:** This component is a Client Component (`'use client'`). It maps to Figma node `7532:328222` and uses ODS design tokens (`bg-ods-accent`, `text-ods-text-on-accent`) for theming. The tooltip uses `delayDuration={0}` for immediate display.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- source-hash: e233b47b6ba8c30b077620a42a9735ba -->
|
|
2
|
+
Guide-mode chat empty state component that renders a centered greeting (icon, title, optional subtitle) and a pinned quick-action chip wall above the composer, sharing a single scrollable region with scroll-fade affordances.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `GuideQuickAction`
|
|
7
|
+
Interface for individual quick-action chips, supporting labels, prompt text, icon resolution (glyph name or URL), and accent tints (`'fae'` → pink, `'mingo'` → cyan).
|
|
8
|
+
|
|
9
|
+
### `GuideWelcomeProps`
|
|
10
|
+
Full props interface for the `GuideWelcome` component, including identity icon override, subtitle loading state, quick-action callbacks, and agent slug for row-cap behavior in `QuickActionWall`.
|
|
11
|
+
|
|
12
|
+
### `GuideWelcome`
|
|
13
|
+
Primary export. Renders:
|
|
14
|
+
- **Scroll region** — greeting (icon + title + subtitle/skeleton) and `children` (slash-command onboarding list) share one `overflow-y-auto` container with `ScrollFadeOverlay` top/bottom edge fades.
|
|
15
|
+
- **Identity icon** — uses `<EntityIcon>` when `icon.name` or `icon.url` is set; falls back to the default `<MingoIcon>` with cyan accents.
|
|
16
|
+
- **Subtitle** — renders admin copy when present, a `<Skeleton>` while `subtitleLoading` is true, or nothing by default.
|
|
17
|
+
- **Quick-action wall** — pinned below the scroll region via `<QuickActionWall>` in BRICK marquee mode (up to 4 rows, hover-pause, drag-scroll, left/right edge fades).
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { GuideWelcome, type GuideQuickAction } from './guide-welcome'
|
|
23
|
+
|
|
24
|
+
const actions: GuideQuickAction[] = [
|
|
25
|
+
{ id: '1', label: 'Reset a password', iconName: 'key', accent: 'cyan' },
|
|
26
|
+
{ id: '2', label: 'Check device health', prompt: 'Run a full device health check', accent: 'cyan' },
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
<GuideWelcome
|
|
30
|
+
title="IT Support Assistant"
|
|
31
|
+
subtitle="Ask me anything about your devices or accounts."
|
|
32
|
+
icon={{ name: 'robot' }}
|
|
33
|
+
quickActions={actions}
|
|
34
|
+
onQuickAction={(action) => sendPrompt(action.prompt ?? action.label)}
|
|
35
|
+
onQuickActionHover={(action) => previewInComposer(action.prompt ?? action.label)}
|
|
36
|
+
onQuickActionHoverEnd={() => restoreComposer()}
|
|
37
|
+
agentSlug="mingo"
|
|
38
|
+
>
|
|
39
|
+
<SlashCommandList />
|
|
40
|
+
</GuideWelcome>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Source:** [`guide-welcome.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/guide-welcome.tsx)
|