@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,42 +1,47 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 81dec73c1b378eb59ab6833dce65f1b7 -->
|
|
2
|
+
Public barrel index for the `chat` UI component library. Aggregates and re-exports all chat-related components, hooks, utilities, types, and entity cards for downstream consumption as a single import surface.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
| Export | Description |
|
|
7
|
-
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
| `ChatAttachmentAddButton
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
| `
|
|
17
|
-
|
|
|
6
|
+
| Export Group | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| **Core Chat UI** | `ChatContainer`, `ChatInput`, `ChatComposer`, `ChatMessageEnhanced`, `ChatMessageList`, `ChatMessageRow` |
|
|
9
|
+
| **AI Interaction** | `ThinkingDisplay`, `ToolExecutionDisplay`, `ToolCallBlocks`, `ApprovalRequestMessage`, `ApprovalBatchMessage` |
|
|
10
|
+
| **Mingo / Guide** | `MingoOnboardingCard`, `MingoWelcome`, `GuideWelcome`, `GuideModeTooltip`, `MingoChatHistory`, `MingoHistoryRail` |
|
|
11
|
+
| **Context & Memory** | `ChatContextPicker`, `ChatContextMemoryBar`, `ContextItemsList`, `ContextCompactionDisplay` |
|
|
12
|
+
| **Quick Actions** | `QuickActionChip`, `QuickActionMarquee`, `QuickActionWall` |
|
|
13
|
+
| **Attachments** | `ChatAttachmentAddButton`, `ChatAttachmentChipStrip`, `CHAT_ATTACHMENT_MIME_TYPES` |
|
|
14
|
+
| **Entity Cards** | Full set of entity cards and supporting primitives via `./entity-cards` |
|
|
15
|
+
| **Remark Plugins** | `remarkCardLinks`, `remarkMentionChips` |
|
|
16
|
+
| **Orchestrator** | `EmbeddableChat` — root-level chat orchestrator, portable across host apps |
|
|
17
|
+
| **Primitives** | `hooks`, `utils`, `types`, `ChatRef` |
|
|
18
18
|
|
|
19
19
|
## Usage Example
|
|
20
20
|
|
|
21
21
|
```typescript
|
|
22
|
-
//
|
|
22
|
+
// Single import surface — no deep path imports needed
|
|
23
23
|
import {
|
|
24
24
|
EmbeddableChat,
|
|
25
|
+
ChatContainer,
|
|
26
|
+
ChatInput,
|
|
27
|
+
MingoWelcome,
|
|
28
|
+
QuickActionChip,
|
|
25
29
|
ChatAttachmentAddButton,
|
|
26
30
|
CHAT_ATTACHMENT_MIME_TYPES,
|
|
31
|
+
remarkCardLinks,
|
|
27
32
|
type ChatRef,
|
|
28
33
|
type EmbeddableChatProps,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
function AppRoot() {
|
|
32
|
-
const chatRef = useRef<ChatRef>(null)
|
|
34
|
+
type StagedAttachment,
|
|
35
|
+
} from '@openframe/chat'
|
|
33
36
|
|
|
37
|
+
// Mount the full chat orchestrator at your app root
|
|
38
|
+
function App() {
|
|
34
39
|
return (
|
|
35
40
|
<ChatRuntimeContext.Provider value={runtime}>
|
|
36
|
-
<EmbeddableChat
|
|
41
|
+
<EmbeddableChat userId="usr_123" tenantId="msp_456" />
|
|
37
42
|
</ChatRuntimeContext.Provider>
|
|
38
43
|
)
|
|
39
44
|
}
|
|
40
45
|
```
|
|
41
46
|
|
|
42
|
-
> **Note:** This
|
|
47
|
+
> **Note:** This module is marked `'use client'` — all exports are React Client Components intended for browser rendering only. Mount `EmbeddableChat` once at the root after providing a `ChatRuntimeContext.Provider`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- source-hash: 5f18f183bb0da99f376729304439764e -->
|
|
2
|
+
Renders a scrollable, date-grouped list of Mingo AI chat dialogs with support for row actions, unread badges, owner avatars, infinite scroll, skeleton loading states, and empty state handling.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `MingoChatHistoryProps` | Primary props interface for the list component |
|
|
9
|
+
| `MingoChatHistory` *(default export implied)* | Root scrollable dialog list with grouped sections |
|
|
10
|
+
| `MingoChatHistoryRow` | Individual dialog row with title, unread badge, avatar, and actions menu |
|
|
11
|
+
| `MingoChatHistorySkeleton` | Animated pulse placeholder shown during initial page load |
|
|
12
|
+
| `groupDialogs` | Pure utility that buckets dialogs into **Today / Yesterday / Older** groups |
|
|
13
|
+
| `DialogGroup` | Internal type representing a labeled group of `DialogItem` entries |
|
|
14
|
+
|
|
15
|
+
## Usage Example
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import {
|
|
19
|
+
MingoChatHistory,
|
|
20
|
+
MingoChatHistorySkeleton,
|
|
21
|
+
} from '@openframe/oss-lib'
|
|
22
|
+
import type { DialogItem } from '@openframe/oss-lib'
|
|
23
|
+
|
|
24
|
+
const dialogs: DialogItem[] = [
|
|
25
|
+
{
|
|
26
|
+
id: 'abc-123',
|
|
27
|
+
title: 'Network outage triage',
|
|
28
|
+
timestamp: new Date(),
|
|
29
|
+
unreadMessagesCount: 3,
|
|
30
|
+
owner: { name: 'Ada Lovelace', avatarUrl: 'https://cdn.example.com/ada.png' },
|
|
31
|
+
},
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
// Show skeleton while loading the first page
|
|
35
|
+
if (isLoading) return <MingoChatHistorySkeleton />
|
|
36
|
+
|
|
37
|
+
// Render the list once data arrives
|
|
38
|
+
return (
|
|
39
|
+
<MingoChatHistory
|
|
40
|
+
dialogs={dialogs}
|
|
41
|
+
activeDialogId="abc-123"
|
|
42
|
+
searchQuery={query}
|
|
43
|
+
hasMore={hasNextPage}
|
|
44
|
+
isLoadingMore={isFetchingNextPage}
|
|
45
|
+
onSelectDialog={(id) => router.push(`/chat/${id}`)}
|
|
46
|
+
onRequestRename={(dialog) => openRenameModal(dialog)}
|
|
47
|
+
onRequestArchive={(dialog) => openArchiveModal(dialog)}
|
|
48
|
+
onLoadMore={fetchNextPage}
|
|
49
|
+
/>
|
|
50
|
+
)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Behavior Notes
|
|
54
|
+
|
|
55
|
+
- **Date grouping** is computed client-side from `dialog.timestamp` (accepts both `string` and `Date`); dialogs without a timestamp fall into **Older**.
|
|
56
|
+
- **Infinite scroll** is driven by an Intersection Observer on a bottom sentinel; `onLoadMore` fires automatically when it enters the viewport.
|
|
57
|
+
- **Search** is server-side — the list renders whatever `dialogs` the host provides and uses `searchQuery` only to render the correct empty-state message.
|
|
58
|
+
- **Active row** renders an amber accent bar and yellow title text per the ODS design spec.
|
|
59
|
+
- The `⋯` actions menu is desktop-only (hidden on touch via `max-md:hidden`) and stays visible while the Radix dropdown is open via controlled `menuOpen` state.
|
|
60
|
+
|
|
61
|
+
## Source
|
|
62
|
+
|
|
63
|
+
[`mingo-chat-history.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-chat-history.tsx)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- source-hash: 84980ba72f1825d869b36d8a7a15c4e7 -->
|
|
2
|
+
Provides three chat management modals — Rename, Archive, and Unarchive — plus a composite `ChatDialogModals` component that renders all three together, driven by target dialog state.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `RenameChatModal` | Modal with a controlled text input to rename a chat; seeds from `initialName` on open, fires `onSave` with the trimmed value |
|
|
9
|
+
| `ArchiveChatModal` | Destructive confirmation modal to hide a chat from the current list |
|
|
10
|
+
| `UnarchiveChatModal` | Confirmation modal to restore an archived chat back to the current list |
|
|
11
|
+
| `ChatDialogModals` | Composite wrapper rendering all three modals; pairs with `useChatDialogManager` which produces the expected prop shape |
|
|
12
|
+
|
|
13
|
+
## Usage Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
// Standalone modal usage
|
|
17
|
+
<RenameChatModal
|
|
18
|
+
isOpen={isOpen}
|
|
19
|
+
initialName="Support Session"
|
|
20
|
+
onClose={() => setIsOpen(false)}
|
|
21
|
+
onSave={(newName) => updateChatName(chatId, newName)}
|
|
22
|
+
/>
|
|
23
|
+
|
|
24
|
+
// Composite usage with useChatDialogManager
|
|
25
|
+
const dialogManager = useChatDialogManager()
|
|
26
|
+
|
|
27
|
+
<ChatDialogModals
|
|
28
|
+
renameTarget={dialogManager.renameTarget}
|
|
29
|
+
setRenameTarget={dialogManager.setRenameTarget}
|
|
30
|
+
onConfirmRename={(name) => renameChat(name)}
|
|
31
|
+
archiveTarget={dialogManager.archiveTarget}
|
|
32
|
+
setArchiveTarget={dialogManager.setArchiveTarget}
|
|
33
|
+
onConfirmArchive={() => archiveChat()}
|
|
34
|
+
restoreTarget={dialogManager.restoreTarget}
|
|
35
|
+
setRestoreTarget={dialogManager.setRestoreTarget}
|
|
36
|
+
onConfirmRestore={() => restoreChat()}
|
|
37
|
+
/>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Notes
|
|
41
|
+
|
|
42
|
+
- All modals are capped at `600px` width on `md+` breakpoints via `ModalV2`.
|
|
43
|
+
- `RenameChatModal` re-seeds the input via `useEffect` whenever `isOpen` or `initialName` changes, safely handling different chats sharing the same modal instance.
|
|
44
|
+
- Button styles (`cancelBtn`, `saveBtn`, `dangerBtn`) follow the Figma `button-full` spec: full-width, DM Sans Bold 18px, `rounded-md`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- source-hash: 91ed9862c8dd8b9c0d7182ce412e2488 -->
|
|
2
|
+
Persistent left-rail component for the wide (split) Mingo layout that displays the chat history list alongside the active conversation panel.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `MingoHistoryRail` (default export)
|
|
7
|
+
|
|
8
|
+
The root component renders a vertical flex column containing three logical zones:
|
|
9
|
+
|
|
10
|
+
- **"Start New Chat" button** — always pinned at top when `onNewChat` is provided
|
|
11
|
+
- **Scope selector** (`TabSelector`) — toggles between "My Chats" / "All Chats" when both `scope` and `onScopeChange` are provided; hidden on load error
|
|
12
|
+
- **Content area** — renders one of four mutually exclusive states:
|
|
13
|
+
- `loadError` → error message with optional retry button
|
|
14
|
+
- `isLoadingHistory` → `MingoChatHistorySkeleton`
|
|
15
|
+
- Dialogs present or active search → `MingoChatHistory`
|
|
16
|
+
- Empty, no search → `ChatListEmptyState`
|
|
17
|
+
|
|
18
|
+
### `MingoHistoryScope`
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
export type MingoHistoryScope = 'my' | 'all'
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Union type controlling whether the rail lists only the current user's dialogs (`'my'`) or all tenant-admin dialogs (`'all'`).
|
|
25
|
+
|
|
26
|
+
### `MingoHistoryRailProps`
|
|
27
|
+
|
|
28
|
+
Full prop interface. Key props:
|
|
29
|
+
|
|
30
|
+
| Prop | Type | Description |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `dialogs` | `ReadonlyArray<DialogItem>` | Pre-sorted (newest-first) dialog list |
|
|
33
|
+
| `activeDialogId` | `string` | Highlights the currently open chat |
|
|
34
|
+
| `scope` / `onScopeChange` | `MingoHistoryScope` / handler | Opt-in ownership filter; host owns state |
|
|
35
|
+
| `isLoadingHistory` | `boolean` | Shows skeleton on first page load |
|
|
36
|
+
| `loadError` | `boolean` | Triggers error + retry UI |
|
|
37
|
+
| `hasMore` / `onLoadMore` | `boolean` / handler | Cursor-based pagination |
|
|
38
|
+
|
|
39
|
+
## Usage Example
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
<MingoHistoryRail
|
|
43
|
+
dialogs={dialogs}
|
|
44
|
+
activeDialogId={activeId}
|
|
45
|
+
onSelectDialog={(id) => setActiveId(id)}
|
|
46
|
+
onNewChat={() => setActiveId(undefined)}
|
|
47
|
+
onRequestRename={(dialog) => openRenameModal(dialog)}
|
|
48
|
+
onRequestArchive={(dialog) => openArchiveModal(dialog)}
|
|
49
|
+
scope={scope}
|
|
50
|
+
onScopeChange={setScope}
|
|
51
|
+
searchQuery={searchQuery}
|
|
52
|
+
hasMore={hasMore}
|
|
53
|
+
isLoadingMore={isFetchingMore}
|
|
54
|
+
onLoadMore={fetchNextPage}
|
|
55
|
+
isLoadingHistory={isLoading}
|
|
56
|
+
loadError={isError}
|
|
57
|
+
onRetry={refetch}
|
|
58
|
+
/>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Source
|
|
62
|
+
|
|
63
|
+
[`mingo-history-rail.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-history-rail.tsx)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<!-- source-hash: 511a5004fe6fe4628e28098d4d2873fa -->
|
|
2
|
+
A React component that renders an inline-safe information card designed for use inside chat message paragraphs, using only phrasing-content elements (`<span>`, `<a>`, `<button>`, `<img>`) to remain valid within `<p>` tags.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Exports
|
|
7
|
+
|
|
8
|
+
- **`MingoInfoCard`** — Primary card component rendering title, optional description, leading media, status pill, and overflow menu
|
|
9
|
+
- **`CardMedia`** *(internal)* — 40px leading media slot supporting avatar images (with initials fallback) or icon glyphs
|
|
10
|
+
- **`MingoInfoCardProps`** — Full prop interface for the card
|
|
11
|
+
- **`MingoInfoCardStatus`** — Shape for the status pill (`label` + `variant`)
|
|
12
|
+
- **`MingoInfoCardAnchorProps`** — Anchor-prop bundle (`href`, `target`, `rel`, `onClick`) for navigation mode
|
|
13
|
+
|
|
14
|
+
### Content Region Modes
|
|
15
|
+
|
|
16
|
+
| Condition | Rendered as |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `anchorProps` supplied | `<a>` (takes precedence) |
|
|
19
|
+
| `onClick` supplied | `<button type="button">` |
|
|
20
|
+
| Neither | `<span>` (static) |
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { MingoInfoCard } from '@openframe/ui'
|
|
26
|
+
|
|
27
|
+
// Static card with avatar and status pill
|
|
28
|
+
<MingoInfoCard
|
|
29
|
+
imageSrc="https://cdn.example.com/avatar.png"
|
|
30
|
+
imageAlt="Jane Doe"
|
|
31
|
+
title="Jane Doe"
|
|
32
|
+
description="Senior Technician"
|
|
33
|
+
status={{ label: 'Online', variant: 'success' }}
|
|
34
|
+
/>
|
|
35
|
+
|
|
36
|
+
// Navigable card with icon and overflow menu
|
|
37
|
+
<MingoInfoCard
|
|
38
|
+
icon={<ServerIcon size={24} />}
|
|
39
|
+
title="Prod Server"
|
|
40
|
+
description="192.168.1.1"
|
|
41
|
+
anchorProps={{ href: '/devices/42', target: '_blank' }}
|
|
42
|
+
menuGroups={[
|
|
43
|
+
{
|
|
44
|
+
items: [
|
|
45
|
+
{ label: 'View details', onClick: handleView },
|
|
46
|
+
{ label: 'Restart', onClick: handleRestart },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
]}
|
|
50
|
+
/>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- The `imageSrc` avatar gracefully degrades to initials (via `getFirstLastInitials`) on image load failure
|
|
56
|
+
- The `⋯` menu button is always a sibling of the content anchor — never nested — preserving valid HTML
|
|
57
|
+
- Status pill reuses `tagVariants` for colour consistency without introducing block-level `<div>` elements
|
|
58
|
+
|
|
59
|
+
**Source:** [`mingo-info-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-info-card.tsx)
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 5c7bea0689601e74e88dd84bfa270626 -->
|
|
2
|
+
A React client component that renders a single onboarding/slash-command row card for the Mingo AI chat empty-state list. Supports optional icons, slash-command labels, descriptions, and inline action buttons, rendering as either an interactive `<button>` or a static `<div>` depending on props.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### Interfaces
|
|
7
7
|
|
|
8
8
|
- **`MingoOnboardingCardAction`** — Defines a single action button with `id`, `label`, and `onClick` handler
|
|
9
|
-
- **`MingoOnboardingCardProps`** — Full
|
|
9
|
+
- **`MingoOnboardingCardProps`** — Full prop surface for the card: `icon`, `title`, `slashCommand`, `description`, `actions`, `onClick`, `className`
|
|
10
10
|
|
|
11
11
|
### Component
|
|
12
12
|
|
|
13
|
-
- **`MingoOnboardingCard`** —
|
|
13
|
+
- **`MingoOnboardingCard`** — Main export. Conditionally renders as a `<button>` (when `onClick` is set and `actions` is empty) or a `<div>` (when `actions` are present or no `onClick` is provided). Action buttons use `e.stopPropagation()` to prevent card-level click conflicts.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Rendering Behavior
|
|
16
16
|
|
|
17
|
-
| Condition |
|
|
18
|
-
|
|
17
|
+
| Condition | Root element |
|
|
18
|
+
|---|---|
|
|
19
|
+
| `actions` provided (non-empty) | `<div>` (non-interactive) |
|
|
19
20
|
| `onClick` set, no `actions` | `<button>` with hover/focus styles |
|
|
20
|
-
|
|
|
21
|
-
| Neither | Static `<div>` |
|
|
21
|
+
| Neither | `<div>` |
|
|
22
22
|
|
|
23
23
|
## Usage Example
|
|
24
24
|
|
|
@@ -28,35 +28,29 @@ import {
|
|
|
28
28
|
MingoOnboardingCardAction,
|
|
29
29
|
} from './mingo-onboarding-card'
|
|
30
30
|
|
|
31
|
-
// Static card with
|
|
31
|
+
// Static card with description
|
|
32
32
|
<MingoOnboardingCard
|
|
33
33
|
icon={<SearchIcon />}
|
|
34
|
-
title="Search
|
|
34
|
+
title="Search tickets"
|
|
35
35
|
slashCommand="/search"
|
|
36
|
-
description="Find
|
|
36
|
+
description="Find tickets by keyword or ID"
|
|
37
|
+
onClick={() => console.log('card clicked')}
|
|
37
38
|
/>
|
|
38
39
|
|
|
39
|
-
//
|
|
40
|
-
<MingoOnboardingCard
|
|
41
|
-
icon={<RoadmapIcon />}
|
|
42
|
-
title="View Roadmap"
|
|
43
|
-
slashCommand="/roadmap"
|
|
44
|
-
onClick={() => router.push('/roadmap')}
|
|
45
|
-
/>
|
|
46
|
-
|
|
47
|
-
// Card with action chips (renders as <div>)
|
|
40
|
+
// Card with inline action buttons (renders as non-interactive div)
|
|
48
41
|
const actions: MingoOnboardingCardAction[] = [
|
|
49
|
-
{ id: 'recent', label: 'Recent', onClick: () =>
|
|
50
|
-
{ id: 'search', label: 'Search', onClick: (e) =>
|
|
42
|
+
{ id: 'recent', label: 'Recent', onClick: (e) => handleRecent(e) },
|
|
43
|
+
{ id: 'search', label: 'Search', onClick: (e) => handleSearch(e) },
|
|
51
44
|
]
|
|
52
45
|
|
|
53
46
|
<MingoOnboardingCard
|
|
54
47
|
icon={<TicketIcon />}
|
|
55
|
-
title="
|
|
56
|
-
slashCommand="/
|
|
57
|
-
description="Browse and manage open tickets"
|
|
48
|
+
title="Roadmap"
|
|
49
|
+
slashCommand="/roadmap"
|
|
58
50
|
actions={actions}
|
|
59
51
|
/>
|
|
60
52
|
```
|
|
61
53
|
|
|
62
|
-
>
|
|
54
|
+
> Cards are designed to be stacked in a `rounded-md` container. The `border-b` divider on each card and `last:border-b-0` keep the visual frame clean without a trailing border.
|
|
55
|
+
|
|
56
|
+
**Source:** [`mingo-onboarding-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-onboarding-card.tsx)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!-- source-hash: 9eec10a801d679d0ee1d460966bca7a5 -->
|
|
2
|
+
Mingo's chat empty-state screen, rendering a greeting, feature grid, optional "New to OpenFrame?" promo notification, and quick-action chips for new and returning users.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Exported Types
|
|
7
|
+
|
|
8
|
+
- **`MingoWelcomePromo`** — Config object (`title`, `description`) for the one-time "New to OpenFrame?" notification card. Pass `null` to suppress.
|
|
9
|
+
- **`MingoQuickAction`** — Descriptor for an extra quick-action chip: `id`, `label`, optional `icon`, `variant` (`'primary'` | `'outline'`), `onClick`, and a `prompt` string previewed on hover.
|
|
10
|
+
- **`MingoWelcomeProps`** — Full props surface for `MingoWelcome`.
|
|
11
|
+
|
|
12
|
+
### Main Export
|
|
13
|
+
|
|
14
|
+
- **`MingoWelcome`** — Primary empty-state component. Handles three distinct states:
|
|
15
|
+
- **New user** — Greeting, feature grid, optional promo notification, and quick-action chips.
|
|
16
|
+
- **Returning user** — Replaces greeting/grid with `dialogHistory` content; chips remain pinned.
|
|
17
|
+
- **Loading / Error** — Renders `MingoChatHistorySkeleton` or a retry block while history resolves.
|
|
18
|
+
|
|
19
|
+
### Key Behaviors
|
|
20
|
+
|
|
21
|
+
- **Promo persistence** — Dismissal stored in `localStorage` or `sessionStorage` (SSR-safe; hydrated after mount).
|
|
22
|
+
- **Scroll-fade affordances** — Uses `useScrollFade` to show 48 px edge gradients when content overflows the scrollable greeting/grid region.
|
|
23
|
+
- **Pinned region gating** — The promo and chips are suppressed while `isLoadingHistory` or `loadError` is active (avoids misleadingly showing the new-user layout).
|
|
24
|
+
|
|
25
|
+
## Usage Example
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import {
|
|
29
|
+
MingoWelcome,
|
|
30
|
+
MingoWelcomeProps,
|
|
31
|
+
MingoQuickAction,
|
|
32
|
+
} from '@openframe-oss-lib/components/mingo/mingo-welcome'
|
|
33
|
+
|
|
34
|
+
const quickActions: MingoQuickAction[] = [
|
|
35
|
+
{
|
|
36
|
+
id: 'run-diagnostic',
|
|
37
|
+
label: 'Run Diagnostic',
|
|
38
|
+
variant: 'outline',
|
|
39
|
+
prompt: 'Run a full system diagnostic and summarize the results.',
|
|
40
|
+
onClick: () => console.log('diagnostic triggered'),
|
|
41
|
+
},
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
export function MingoChatPanel() {
|
|
45
|
+
return (
|
|
46
|
+
<MingoWelcome
|
|
47
|
+
subtitle="What can I help you with today?"
|
|
48
|
+
quickActions={quickActions}
|
|
49
|
+
onQuickActionHover={(action) => previewPrompt(action.prompt ?? action.label)}
|
|
50
|
+
onQuickActionHoverEnd={() => clearPreview()}
|
|
51
|
+
onStartGuideChat={() => switchToGuideMode()}
|
|
52
|
+
hasExistingChats={false}
|
|
53
|
+
isLoadingHistory={false}
|
|
54
|
+
promoStorage="local"
|
|
55
|
+
/>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Source:** [`mingo-welcome.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/mingo-welcome.tsx)
|
|
@@ -1,46 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Renders an inline pill showing the AI provider icon, model name, and token usage
|
|
1
|
+
<!-- source-hash: 5ec42a1329af78781e4ae04ac5e8abe8 -->
|
|
2
|
+
Renders an inline pill showing the AI model provider icon, model name, and token usage, with an optional hover card that breaks down token consumption across sub-models (rewriter, classifier, summarizer).
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
| Export
|
|
7
|
-
|
|
8
|
-
| `ModelDisplay` |
|
|
9
|
-
| `
|
|
10
|
-
| `
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `ModelDisplay` | `React.forwardRef` component | Primary display pill with provider icon, model name, token counter, and hover breakdown card |
|
|
9
|
+
| `ModelDisplaySkeleton` | `React.forwardRef` component | Loading placeholder that mirrors `ModelDisplay` layout to prevent layout shift |
|
|
10
|
+
| `BreakdownRow` | Internal component | Single row in the hover card showing input/output token counts for one model call |
|
|
11
|
+
| `getProviderIcon` | Helper function | Maps provider string (`anthropic`, `openai`, `google`, etc.) to the matching grey logo icon |
|
|
12
|
+
| `formatTokenCount` | Helper function | Formats raw token integers to human-readable strings (`1.2K`, `200M`) |
|
|
13
13
|
|
|
14
14
|
## Usage Example
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// Minimal — inline pill only (no hover card)
|
|
17
|
+
// Basic pill — shows provider icon + name only
|
|
20
18
|
<ModelDisplay
|
|
21
19
|
provider="anthropic"
|
|
22
20
|
modelName="claude-opus-4-5"
|
|
23
21
|
displayName="Claude Opus"
|
|
24
|
-
usedTokens={12_400}
|
|
25
|
-
contextWindow={200_000}
|
|
26
22
|
/>
|
|
27
23
|
|
|
28
|
-
// With
|
|
24
|
+
// With token usage counter (renders once contextWindow is known)
|
|
25
|
+
<ModelDisplay
|
|
26
|
+
provider="openai"
|
|
27
|
+
modelName="gpt-4o"
|
|
28
|
+
usedTokens={12340}
|
|
29
|
+
contextWindow={128000}
|
|
30
|
+
inputTokens={10000}
|
|
31
|
+
outputTokens={2340}
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
// With sub-model breakdown (enables hover card)
|
|
29
35
|
<ModelDisplay
|
|
30
36
|
provider="anthropic"
|
|
31
37
|
modelName="claude-opus-4-5"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
hitRatePct={34}
|
|
38
|
+
usedTokens={15000}
|
|
39
|
+
contextWindow={200000}
|
|
40
|
+
inputTokens={12000}
|
|
41
|
+
outputTokens={3000}
|
|
42
|
+
hitRatePct={42}
|
|
38
43
|
breakdown={{
|
|
39
|
-
haikuRewriter: { input:
|
|
40
|
-
haikuClassifier: { input:
|
|
41
|
-
haikuSummarizer: { input:
|
|
44
|
+
haikuRewriter: { input: 500, output: 200 },
|
|
45
|
+
haikuClassifier: { input: 300, output: 100 },
|
|
46
|
+
haikuSummarizer: { input: 1200, output: 400 },
|
|
42
47
|
}}
|
|
43
48
|
/>
|
|
49
|
+
|
|
50
|
+
// Skeleton during loading — opt-in token tail placeholder
|
|
51
|
+
<ModelDisplaySkeleton showTokens />
|
|
44
52
|
```
|
|
45
53
|
|
|
46
|
-
|
|
54
|
+
The hover card only mounts when at least one `breakdown` sub-model row (`haikuRewriter`, `haikuClassifier`, `haikuSummarizer`) is present, avoiding unnecessary accessibility chrome on surfaces that don't capture cross-call usage.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- source-hash: c9249823535d22722e2d0a1620a2ff31 -->
|
|
2
|
+
Loading placeholder that mirrors the layout of `MspOrganizationCard` — preserving dimensions during data fetch to prevent layout shift on the welcome screen.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `MspOrganizationCardSkeleton`
|
|
7
|
+
|
|
8
|
+
A shimmer placeholder component that replicates the visual structure of `MspOrganizationCard` with three skeleton blocks:
|
|
9
|
+
|
|
10
|
+
- **Logo placeholder** — 48×48px square (left)
|
|
11
|
+
- **Text placeholders** — title line (60% width) and website line (40% width) stacked vertically
|
|
12
|
+
- **Action button placeholder** — 48×48px square (right)
|
|
13
|
+
|
|
14
|
+
### `MspOrganizationCardSkeletonProps`
|
|
15
|
+
|
|
16
|
+
| Prop | Type | Description |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| `className` | `string` (optional) | Appended to the root element for layout overrides |
|
|
19
|
+
|
|
20
|
+
## Usage Example
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import { MspOrganizationCardSkeleton } from './msp-organization-card-skeleton'
|
|
24
|
+
|
|
25
|
+
// Show while tenant data is loading
|
|
26
|
+
function WelcomeScreen() {
|
|
27
|
+
const { data, isLoading } = useTenantInfo()
|
|
28
|
+
|
|
29
|
+
if (isLoading) {
|
|
30
|
+
return <MspOrganizationCardSkeleton />
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return <MspOrganizationCard {...data} />
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// With a custom class override
|
|
37
|
+
<MspOrganizationCardSkeleton className="my-4 max-w-sm" />
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Notes
|
|
41
|
+
|
|
42
|
+
- Rendered as a client component (`'use client'`)
|
|
43
|
+
- Uses the same container dimensions and spacing tokens (`--spacing-system-m`) as `MspOrganizationCard`, ensuring a seamless swap once data resolves
|
|
44
|
+
- Source: [`msp-organization-card-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/msp-organization-card-skeleton.tsx)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!-- source-hash: d24890257e6931aa4965bfc927c49767 -->
|
|
2
|
+
Renders a horizontal card identifying the MSP organization managing a user's IT, designed for AI Assistant welcome screens.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
**`MspOrganizationCard`** — Primary export. Composes a square org logo (`SquareAvatar`), a title/website text block, and an optional external-link button into a styled card matching Figma spec `openframe — fae-chat` (node 1:5540).
|
|
7
|
+
|
|
8
|
+
**`MspOrganizationCardProps`** — Interface defining all accepted props:
|
|
9
|
+
|
|
10
|
+
| Prop | Type | Description |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| `name` | `string` | Organization name; used in default title and avatar fallback |
|
|
13
|
+
| `website` | `string?` | Displayed beneath the title |
|
|
14
|
+
| `logoUrl` | `string?` | Logo URL; falls back to initials when absent |
|
|
15
|
+
| `title` | `React.ReactNode?` | Overrides the default "Your IT is managed by {name}" title |
|
|
16
|
+
| `href` | `string?` | Renders trailing action as `<a target="_blank">` |
|
|
17
|
+
| `onOpenWebsite` | `() => void?` | Click handler when `href` is not provided |
|
|
18
|
+
| `className` | `string?` | Appended to the root element |
|
|
19
|
+
|
|
20
|
+
**Trailing action priority:** `href` (anchor) → `onOpenWebsite` (button) → hidden.
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// With a direct link (renders as anchor)
|
|
26
|
+
<MspOrganizationCard
|
|
27
|
+
name="TechFlow IT"
|
|
28
|
+
website="www.techflow.com"
|
|
29
|
+
logoUrl="https://cdn.example.com/techflow-logo.png"
|
|
30
|
+
href="https://www.techflow.com"
|
|
31
|
+
/>
|
|
32
|
+
|
|
33
|
+
// With a click handler
|
|
34
|
+
<MspOrganizationCard
|
|
35
|
+
name="TechFlow IT"
|
|
36
|
+
website="www.techflow.com"
|
|
37
|
+
onOpenWebsite={() => router.push('/org-info')}
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
// Custom title, no action button
|
|
41
|
+
<MspOrganizationCard
|
|
42
|
+
name="TechFlow IT"
|
|
43
|
+
title={<strong>Supported by TechFlow IT</strong>}
|
|
44
|
+
/>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
|
|
49
|
+
- Uses an inset `ring-1` instead of `border` to preserve the 80px frame height matching Figma's inside-aligned stroke.
|
|
50
|
+
- Styles are driven by ODS design tokens (`--spacing-system-m`, `ods-bg`, `ods-border`, `ods-text-primary`).
|
|
51
|
+
- Source: [`msp-organization-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/msp-organization-card.tsx)
|