@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,16 +1,14 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Defines the shared TypeScript wire types for the onboarding guide feature, covering the full row shape returned by `/api/onboarding-guides` and the chat onboarding-guide card. These types are intentionally client-safe — DAL mutations stay hub-side.
|
|
1
|
+
<!-- source-hash: 7b39d1e6bf453026c3f2a4c5ea757aff -->
|
|
2
|
+
Wire-shape type definitions for the chat onboarding-guide card and `/api/onboarding-guides` API responses, including entity structure, filter parameters, and list/section summary response shapes.
|
|
5
3
|
|
|
6
4
|
## Key Components
|
|
7
5
|
|
|
8
|
-
| Export |
|
|
9
|
-
|
|
10
|
-
| `OnboardingGuide` | `interface` | Full row shape
|
|
11
|
-
| `OnboardingGuideFilters` | `interface` | Query parameters for
|
|
12
|
-
| `OnboardingGuideListResponse` | `interface` | Paginated list response wrapping `OnboardingGuide[]` with a total
|
|
13
|
-
| `OnboardingGuideSectionSummary` | `interface` |
|
|
6
|
+
| Export | Kind | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `OnboardingGuide` | `interface` | Full entity row shape with content, video pipeline, SEO, workflow, and audit fields |
|
|
9
|
+
| `OnboardingGuideFilters` | `interface` | Query filter parameters for listing/searching guides |
|
|
10
|
+
| `OnboardingGuideListResponse` | `interface` | Paginated list response wrapping `OnboardingGuide[]` with a total count |
|
|
11
|
+
| `OnboardingGuideSectionSummary` | `interface` | Aggregated section metadata — section name, order, and guide count |
|
|
14
12
|
|
|
15
13
|
## Usage Example
|
|
16
14
|
|
|
@@ -19,32 +17,35 @@ import type {
|
|
|
19
17
|
OnboardingGuide,
|
|
20
18
|
OnboardingGuideFilters,
|
|
21
19
|
OnboardingGuideListResponse,
|
|
20
|
+
OnboardingGuideSectionSummary,
|
|
22
21
|
} from './onboarding-guide';
|
|
23
22
|
|
|
24
|
-
// Fetch guides
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
23
|
+
// Fetch guides with filters
|
|
24
|
+
const filters: OnboardingGuideFilters = {
|
|
25
|
+
status: 'published',
|
|
26
|
+
section: 'getting-started',
|
|
27
|
+
platform: 'openframe',
|
|
28
|
+
limit: 10,
|
|
29
|
+
offset: 0,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const response: OnboardingGuideListResponse = await fetch(
|
|
33
|
+
`/api/onboarding-guides?${new URLSearchParams(filters as Record<string, string>)}`
|
|
34
|
+
).then((r) => r.json());
|
|
35
|
+
|
|
36
|
+
// Access guide fields
|
|
37
|
+
const guide: OnboardingGuide = response.data[0];
|
|
38
|
+
const videoUrl = guide.main_video_url ?? guide.youtube_url;
|
|
39
|
+
const platforms = guide.onboarding_guide_platforms?.filter((p) => p.is_featured);
|
|
40
|
+
|
|
41
|
+
// Section summary
|
|
42
|
+
const summary: OnboardingGuideSectionSummary = {
|
|
43
|
+
section: guide.section,
|
|
44
|
+
section_order: guide.section_order,
|
|
45
|
+
count: response.count,
|
|
46
|
+
};
|
|
44
47
|
```
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
> **Note:** Server-side DAL methods (`createOnboardingGuide`, `updateOnboardingGuide`, `resolvePublicPlatformScope`) remain hub-side. Only the row type and filter/response shapes are exported from this module.
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
- **Multi-platform**: `onboarding_guide_platforms` is a junction array; a single guide can be featured across multiple platforms with independent `featured_order` values.
|
|
50
|
-
- **Ordering**: Use `section_order` + `step_order` together for deterministic sort within a section.
|
|
51
|
+
**Source:** [`onboarding-guide.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/onboarding-guide.ts)
|
|
@@ -1,57 +1,69 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Defines the
|
|
1
|
+
<!-- source-hash: 10cd7a28cb940588c11a2ef95de5ce12 -->
|
|
2
|
+
Defines the core TypeScript types and interfaces for the Unified Program System, which provides a single generic abstraction layer for handling events, podcasts, and webinars across public and admin surfaces.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
6
|
+
### Host & Author Types
|
|
7
|
+
- **`ProgramHost`** — Host/speaker info (name, avatar, role) sourced from provider sync (Luma, Podbean, Livestorm)
|
|
8
|
+
- **`ProgramAuthorRef`** — Client-safe author subset from `profiles` FK join; excludes email for public payloads
|
|
9
|
+
- **`programItemToStripProfile()`** — Resolves a `VideoBiteStripProfile` from an item's author or first host; routes through `toStripProfile` as SSoT
|
|
10
|
+
|
|
11
|
+
### Database Row Types
|
|
12
|
+
- **`LumaEventRow`** — Raw row from `luma_events`
|
|
13
|
+
- **`PodcastEpisodeRow`** — Raw row from `podcast_episodes` (includes video/audio override fields)
|
|
14
|
+
- **`WebinarRow`** — Raw row from `webinars` (includes Livestorm recording and override fields)
|
|
15
|
+
|
|
16
|
+
### Program Item Interfaces
|
|
17
|
+
- **`BaseProgramItem`** — Common shape all program items implement (`id`, `title`, `cover_url`, `date`, `hosts`, etc.)
|
|
18
|
+
- **`EventItem`** — Extends base with location, geo, and Luma-specific fields
|
|
19
|
+
- **`PodcastItem`** — Extends base with audio/video URLs, AI processing, and SEO fields
|
|
20
|
+
- **`WebinarItem`** — Extends base with Livestorm recording, AI processing, and SEO fields
|
|
21
|
+
|
|
22
|
+
### Configuration Types
|
|
23
|
+
- **`ProgramType`** — `'event' | 'podcast' | 'webinar'`
|
|
24
|
+
- **`ProgramLabels`** — Display strings (singular, plural, section headers, empty states)
|
|
25
|
+
- **`ProgramConfig<T>`** — Core configuration object driving generic component behavior (table name, API endpoint, routing, icons, sort order)
|
|
26
|
+
|
|
27
|
+
### Response Types
|
|
28
|
+
- **`ProgramListResponse<T>`** — Paginated list result
|
|
29
|
+
- **`ProgramItemResponse<T>`** — Single item with optional media
|
|
30
|
+
- **`ProgramMedia`** — Associated media records (image/video/audio)
|
|
20
31
|
|
|
21
32
|
## Usage Example
|
|
22
33
|
|
|
23
34
|
```typescript
|
|
24
35
|
import type {
|
|
25
36
|
ProgramConfig,
|
|
26
|
-
|
|
37
|
+
PodcastItem,
|
|
27
38
|
ProgramLabels,
|
|
28
39
|
} from './program-types';
|
|
29
|
-
import {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
detailRoute: '/events',
|
|
39
|
-
externalLinkLabel: 'View on Luma',
|
|
40
|
-
icon: <CalendarDays />,
|
|
41
|
-
sortOrder: 'asc',
|
|
42
|
-
labels: {
|
|
43
|
-
singular: 'Event',
|
|
44
|
-
plural: 'Events',
|
|
45
|
-
upcoming: 'Next Event',
|
|
46
|
-
upcomingSection: 'Upcoming Events',
|
|
47
|
-
archive: 'Past Events',
|
|
48
|
-
empty: 'No events yet',
|
|
49
|
-
},
|
|
40
|
+
import { MicIcon } from 'lucide-react';
|
|
41
|
+
|
|
42
|
+
const podcastLabels: ProgramLabels = {
|
|
43
|
+
singular: 'Episode',
|
|
44
|
+
plural: 'Episodes',
|
|
45
|
+
upcoming: 'Latest Episode',
|
|
46
|
+
upcomingSection: 'Latest Episodes',
|
|
47
|
+
archive: 'All Episodes',
|
|
48
|
+
empty: 'No episodes yet',
|
|
50
49
|
};
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
const podcastConfig: ProgramConfig<PodcastItem> = {
|
|
52
|
+
type: 'podcast',
|
|
53
|
+
labels: podcastLabels,
|
|
54
|
+
dateField: 'published_at',
|
|
55
|
+
table: 'podcast_episodes',
|
|
56
|
+
apiEndpoint: '/api/podcasts',
|
|
57
|
+
icon: <MicIcon />,
|
|
58
|
+
externalLinkLabel: 'Listen on Podbean',
|
|
59
|
+
detailRoute: '/podcasts',
|
|
60
|
+
sortOrder: 'desc',
|
|
61
|
+
};
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
// Resolve a strip profile for video-bites overlay
|
|
64
|
+
const profile = programItemToStripProfile({
|
|
65
|
+
author: { full_name: 'Jane Doe', avatar_url: '/jane.png' },
|
|
66
|
+
hosts: [{ name: 'Fallback Host', role: 'team_member' }],
|
|
67
|
+
});
|
|
68
|
+
// → resolves from author first; falls back to first host
|
|
69
|
+
```
|
|
@@ -1,34 +1,32 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Defines and exports a single shared Tailwind CSS class string for chip-density action buttons used across the
|
|
1
|
+
<!-- source-hash: c8729430311476480b1576febdfc94b2 -->
|
|
2
|
+
Defines and exports a single shared Tailwind CSS class string for chip-density action buttons used across the empty-state chip's action row and the `<DisplayChipAction>` popover.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`CHIP_ACTION_BUTTON_CLASS`** — A
|
|
6
|
+
- **`CHIP_ACTION_BUTTON_CLASS`** — A frozen CSS utility string combining text, background, border, spacing, and focus-ring styles for sub-`small` density action buttons (Recent / Search / Find / Display / Submit / Cancel).
|
|
7
7
|
|
|
8
8
|
## Usage Example
|
|
9
9
|
|
|
10
10
|
```typescript
|
|
11
11
|
import { CHIP_ACTION_BUTTON_CLASS } from './chip-action-class'
|
|
12
12
|
|
|
13
|
-
// Apply to a button element
|
|
14
|
-
<button
|
|
15
|
-
Recent
|
|
16
|
-
</button>
|
|
13
|
+
// Apply to a native button element
|
|
14
|
+
<button class={CHIP_ACTION_BUTTON_CLASS}>Recent</button>
|
|
17
15
|
|
|
18
|
-
//
|
|
19
|
-
<
|
|
20
|
-
Search
|
|
21
|
-
</button>
|
|
16
|
+
// Or spread into a component's class prop
|
|
17
|
+
<ActionButton class={CHIP_ACTION_BUTTON_CLASS}>Search</ActionButton>
|
|
22
18
|
```
|
|
23
19
|
|
|
24
20
|
## Design Notes
|
|
25
21
|
|
|
26
|
-
| Property | Value
|
|
27
|
-
|
|
28
|
-
| Font size | `text-h6`
|
|
29
|
-
| Padding | `px-2 py-1`
|
|
30
|
-
| Colors | `ods-text-
|
|
31
|
-
|
|
|
32
|
-
|
|
|
22
|
+
| Property | Value / Intent |
|
|
23
|
+
|---|---|
|
|
24
|
+
| Font size | `text-h6` (~11px) — below UI-Kit `Button size="small"` |
|
|
25
|
+
| Padding | `px-2 py-1` — chip-density, not standard button sizing |
|
|
26
|
+
| Colors | ODS semantic tokens (`ods-text-*`, `ods-card-hover`, `ods-border`) |
|
|
27
|
+
| Focus ring | `focus-visible:ring-2` with `ods-focus` token — keyboard accessible |
|
|
28
|
+
| Background | `bg-transparent` base, `ods-card-hover` on hover |
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
The constant prevents Tailwind class strings from drifting independently across the two call sites. Any styling change is made once here and propagates uniformly.
|
|
31
|
+
|
|
32
|
+
**Source:** [`chip-action-class.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chip-action-class.ts)
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: d45a902b18f3712e1b2aeac789ac6496 -->
|
|
2
|
+
Shared className generator for the chat-adjacent UI family, producing consistent Tailwind/ODS class strings for source chips, inline entity-card pills, and search-result dropdown rows.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `ChipClassOptions` (interface)
|
|
7
7
|
|
|
8
8
|
| Property | Type | Description |
|
|
9
|
-
|
|
10
|
-
| `tone` | `'primary' \| 'secondary'` |
|
|
11
|
-
| `density` | `'chip' \| 'list-row' \| 'card-row'` |
|
|
12
|
-
| `extra` | `string` |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `tone` | `'primary' \| 'secondary'` | Resting text color — `primary` reads as content, `secondary` as metadata |
|
|
11
|
+
| `density` | `'chip' \| 'list-row' \| 'card-row'` | Size/padding variant. Defaults to `'chip'` |
|
|
12
|
+
| `extra` | `string` | Extra classes appended verbatim (e.g. `cursor-pointer`) |
|
|
13
13
|
|
|
14
|
-
### `chatChipClass(options)`
|
|
14
|
+
### `chatChipClass(options: ChipClassOptions): string`
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Returns a composed Tailwind class string. All three density variants share border, hover transition, and accent treatment so they read as the same ODS family — only the size and frame differ.
|
|
17
17
|
|
|
18
|
-
|
|
|
19
|
-
|
|
20
|
-
| `chip` | `px-2 py-0.5 text-h6` |
|
|
21
|
-
| `list-row` | `px-3 py-2 text-sm` |
|
|
22
|
-
| `card-row` | `px-2 py-1 text-h6` | no
|
|
18
|
+
| `density` | Sizing | Frame |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| `'chip'` | `px-2 py-0.5 text-h6` | Border + card bg + rounded |
|
|
21
|
+
| `'list-row'` | `px-3 py-2 text-sm` | Border + card bg + rounded |
|
|
22
|
+
| `'card-row'` | `px-2 py-1 text-h6` | No border, no bg (sits under a card frame) |
|
|
23
23
|
|
|
24
24
|
## Usage Example
|
|
25
25
|
|
|
26
26
|
```typescript
|
|
27
27
|
import { chatChipClass } from './chip-styles'
|
|
28
28
|
|
|
29
|
-
// Citation chip
|
|
29
|
+
// Citation chip below an assistant turn
|
|
30
30
|
const citationClass = chatChipClass({ tone: 'secondary' })
|
|
31
31
|
|
|
32
|
-
// Search dropdown row
|
|
33
|
-
const
|
|
32
|
+
// Search-bar dropdown row with click affordance
|
|
33
|
+
const searchRowClass = chatChipClass({
|
|
34
34
|
tone: 'primary',
|
|
35
35
|
density: 'list-row',
|
|
36
36
|
extra: 'cursor-pointer w-full',
|
|
37
37
|
})
|
|
38
38
|
|
|
39
|
-
// Tracking strip
|
|
39
|
+
// Tracking strip inside a card frame (no border/bg)
|
|
40
40
|
const cardRowClass = chatChipClass({
|
|
41
41
|
tone: 'secondary',
|
|
42
42
|
density: 'card-row',
|
|
43
43
|
})
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
**Source:** [`chip-styles.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chip-styles.ts)
|
|
@@ -1,51 +1,62 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Utilities for parsing raw NATS message chunks into typed, structured action objects consumed by the
|
|
1
|
+
<!-- source-hash: c8c1cef3b3966f8791e7003c4f74429f -->
|
|
2
|
+
Utilities for parsing raw NATS message chunks into typed, structured action objects consumed by the OpenFrame chat pipeline.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
### `parseChunkToAction(chunk)`
|
|
7
|
-
|
|
6
|
+
### `parseChunkToAction(chunk: unknown): ParsedChunkAction | null`
|
|
7
|
+
The primary export. Accepts an untyped NATS chunk, inspects its `type` field against `MESSAGE_TYPE` constants, and returns a discriminated `ParsedChunkAction` union or `null` for unrecognized types. Handles the full message lifecycle including:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- **Lifecycle signals:** `message_start`, `message_end`, `dialog_closed`
|
|
10
|
+
- **Content:** `text`, `thinking`, `system`, `direct_message`
|
|
11
|
+
- **Tool execution:** `tool_execution` (both `EXECUTING_TOOL` and `EXECUTED_TOOL` states)
|
|
12
|
+
- **Approval flow:** `approval_request`, `approval_batch`, `approval_result`
|
|
13
|
+
- **Metadata & telemetry:** `metadata`, `token_usage`, `context_compaction_start/end`
|
|
14
|
+
- **Error handling:** `error`
|
|
15
|
+
|
|
16
|
+
### `normalizeToolCalls(raw: unknown): PendingToolCallData[]` *(internal)*
|
|
17
|
+
Safely coerces an untyped array into `PendingToolCallData[]`, filtering non-objects and providing safe defaults for all fields.
|
|
18
|
+
|
|
19
|
+
### Predicate helpers
|
|
20
|
+
Lightweight type guards for fast chunk classification without full parsing:
|
|
21
|
+
|
|
22
|
+
| Function | Returns `true` when |
|
|
10
23
|
|---|---|
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `approval_request` / `approval_batch` | Single or multi-tool approval flows |
|
|
16
|
-
| `approval_result` | Approval outcome |
|
|
17
|
-
| `token_usage` | Token consumption stats |
|
|
18
|
-
| `context_compaction_start/end` | Context window management |
|
|
19
|
-
| `direct_message` | Owner-attributed messages |
|
|
20
|
-
| `dialog_closed` | Session termination |
|
|
21
|
-
|
|
22
|
-
Returns `null` for unknown or malformed chunks.
|
|
23
|
-
|
|
24
|
-
### `normalizeToolCalls(raw)` *(internal)*
|
|
25
|
-
Coerces an unknown array into `PendingToolCallData[]`, safely defaulting missing fields and enforcing correct types.
|
|
26
|
-
|
|
27
|
-
### Guard Helpers
|
|
28
|
-
Lightweight boolean checks for common chunk classifications:
|
|
29
|
-
|
|
30
|
-
- `isControlChunk(chunk)` — start/end signals
|
|
31
|
-
- `isErrorChunk(chunk)` — error type
|
|
32
|
-
- `isMetadataChunk(chunk)` — AI metadata
|
|
33
|
-
- `extractTextFromChunk(chunk)` — returns text content or `null`
|
|
24
|
+
| `isControlChunk` | `MESSAGE_START` or `MESSAGE_END` |
|
|
25
|
+
| `isErrorChunk` | `ERROR` type |
|
|
26
|
+
| `isMetadataChunk` | `AI_METADATA` type |
|
|
27
|
+
| `extractTextFromChunk` | `TEXT` type — returns the string or `null` |
|
|
34
28
|
|
|
35
29
|
## Usage Example
|
|
36
30
|
|
|
37
31
|
```typescript
|
|
38
|
-
import {
|
|
32
|
+
import {
|
|
33
|
+
parseChunkToAction,
|
|
34
|
+
isControlChunk,
|
|
35
|
+
isErrorChunk,
|
|
36
|
+
} from './chunk-parser'
|
|
39
37
|
|
|
40
|
-
//
|
|
41
|
-
const
|
|
38
|
+
// Parse an incoming NATS chunk
|
|
39
|
+
const action = parseChunkToAction(rawChunk)
|
|
42
40
|
|
|
43
|
-
if (
|
|
44
|
-
|
|
41
|
+
if (action?.action === 'text') {
|
|
42
|
+
appendToTranscript(action.text)
|
|
43
|
+
} else if (action?.action === 'approval_batch') {
|
|
44
|
+
promptUserApproval(action.toolCalls)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
if (
|
|
49
|
-
|
|
47
|
+
// Fast-path guards before full parse
|
|
48
|
+
if (isErrorChunk(rawChunk)) {
|
|
49
|
+
handleError()
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
if (isControlChunk(rawChunk)) {
|
|
52
|
+
resetStreamState()
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Notes
|
|
57
|
+
|
|
58
|
+
- All field access is defensive — missing or wrong-typed properties fall back to safe defaults rather than throwing.
|
|
59
|
+
- `approval_result` accepts both `resolvedByName` and `displayName` so realtime NATS chunks and GraphQL history replays produce identical output shapes.
|
|
60
|
+
- `contextItems` on `message_request` back-fills `label` from `id` to satisfy the required `ChatContextItem` contract when no label is present on the wire.
|
|
61
|
+
|
|
62
|
+
**Source:** [`https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chunk-parser.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/chunk-parser.ts)
|
|
@@ -1,30 +1,41 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Single source of truth for compact card Tailwind class constants and URL safety
|
|
1
|
+
<!-- source-hash: ad42c4031c2afe62a64d7457c6018d7e -->
|
|
2
|
+
Single source of truth for compact card Tailwind class constants and URL safety validation used across chat-inline `size='sm'` card frames.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
###
|
|
6
|
+
### Constants
|
|
7
7
|
|
|
8
8
|
| Export | Purpose |
|
|
9
|
-
|
|
10
|
-
| `COMPACT_CARD_OUTER` | Interactive anchor
|
|
11
|
-
| `COMPACT_CARD_OUTER_STATIC` | Non-interactive span
|
|
12
|
-
| `COMPACT_CARD_SKELETON_OUTER` |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `COMPACT_CARD_OUTER` | Interactive anchor frame with hover/transition styles |
|
|
11
|
+
| `COMPACT_CARD_OUTER_STATIC` | Non-interactive span frame (`cursor-default`, no hover) |
|
|
12
|
+
| `COMPACT_CARD_SKELETON_OUTER` | Skeleton frame with `animate-pulse` |
|
|
13
13
|
| `COMPACT_CARD_IMAGE_SLOT` | 56×56 cover image container |
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `COMPACT_CARD_TEXT_COL` | Flex column wrapper for
|
|
17
|
-
| `COMPACT_CARD_TITLE_ROW` | Fixed 20px
|
|
18
|
-
| `COMPACT_CARD_META_ROW_BOX` | Fixed 16px
|
|
19
|
-
| `COMPACT_CARD_TITLE` | Bold 14px/20px
|
|
20
|
-
| `COMPACT_CARD_SUBTITLE` | 11px
|
|
21
|
-
| `COMPACT_CARD_SUMMARY` | 11px
|
|
14
|
+
| `COMPACT_CARD_SKELETON_IMAGE_SLOT` | 56×56 placeholder for skeleton state |
|
|
15
|
+
| `COMPACT_CARD_ICON_SLOT` | 56×56 icon container (cards without a cover image) |
|
|
16
|
+
| `COMPACT_CARD_TEXT_COL` | Flex column wrapper for title/subtitle/meta rows |
|
|
17
|
+
| `COMPACT_CARD_TITLE_ROW` | Fixed 20px title row container |
|
|
18
|
+
| `COMPACT_CARD_META_ROW_BOX` | Fixed 16px subtitle/summary row container |
|
|
19
|
+
| `COMPACT_CARD_TITLE` | Bold 14px/20px leading title text |
|
|
20
|
+
| `COMPACT_CARD_SUBTITLE` | 11px secondary text |
|
|
21
|
+
| `COMPACT_CARD_SUMMARY` | 11px secondary text at 80% opacity |
|
|
22
22
|
| `COMPACT_CARD_META_ROW` | Multi-part 11px metadata row |
|
|
23
|
-
| `COMPACT_CARD_ROW_FILLER` | Non-breaking space to preserve row height |
|
|
23
|
+
| `COMPACT_CARD_ROW_FILLER` | Non-breaking space to preserve 16px row height |
|
|
24
24
|
|
|
25
25
|
### Functions
|
|
26
26
|
|
|
27
|
-
**`safeHref(url)`** — Validates a URL before use in an `<a href>`.
|
|
27
|
+
**`safeHref(url)`** — Validates a URL before use in an `<a href>`. Returns the original string only if it passes all safety checks, otherwise `null`.
|
|
28
|
+
|
|
29
|
+
Allowed:
|
|
30
|
+
- `http:`, `https:`, `mailto:` schemes
|
|
31
|
+
- Same-origin paths starting with `/` (not `//`)
|
|
32
|
+
- Hash fragments starting with `#`
|
|
33
|
+
|
|
34
|
+
Rejected:
|
|
35
|
+
- Control/zero-width/line-separator characters
|
|
36
|
+
- Unknown schemes (`javascript:`, `data:`, etc.)
|
|
37
|
+
- Bare scheme-only strings
|
|
38
|
+
- `http`/`https` URLs with no hostname
|
|
28
39
|
|
|
29
40
|
## Usage Example
|
|
30
41
|
|
|
@@ -40,23 +51,10 @@ import {
|
|
|
40
51
|
|
|
41
52
|
const href = safeHref(card.url)
|
|
42
53
|
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<div className={COMPACT_CARD_IMAGE_SLOT}>...</div>
|
|
48
|
-
<span className={COMPACT_CARD_TITLE}>{card.title}</span>
|
|
49
|
-
<span className={COMPACT_CARD_SUBTITLE}>{card.subtitle}</span>
|
|
50
|
-
</a>
|
|
51
|
-
)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Non-interactive fallback
|
|
55
|
-
return (
|
|
56
|
-
<span className={COMPACT_CARD_OUTER_STATIC}>
|
|
57
|
-
...
|
|
58
|
-
</span>
|
|
59
|
-
)
|
|
54
|
+
// Renders an interactive anchor if href is safe, otherwise a static span
|
|
55
|
+
const outerClass = href ? COMPACT_CARD_OUTER : COMPACT_CARD_OUTER_STATIC
|
|
56
|
+
const Wrapper = href ? 'a' : 'span'
|
|
57
|
+
const wrapperProps = href ? { href } : {}
|
|
60
58
|
```
|
|
61
59
|
|
|
62
|
-
> Card-specific
|
|
60
|
+
> **Card-specific variation** (play overlays, pill badges, status indicators) lives inside each individual card component. These constants govern only the shared outer frame — uniform across all compact card types.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!-- source-hash: 2635bcbc16b7313a29642d0f68f41942 -->
|
|
2
|
+
Unified navigation execution primitive that centralizes all navigation actions — new-tab vs. same-tab, internal vs. external, embed vs. host, and runtime/router/window fallback chain — into a single module consumed by every interactive surface in the library.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Interfaces
|
|
7
|
+
|
|
8
|
+
- **`NavClickEvent`** — Minimal structural mouse-event interface (subset of `React.MouseEvent`) so chip buttons and tiles can call the handler without casting.
|
|
9
|
+
- **`ExecuteNavigationClickArgs`** — Arguments for the click-handler form: event, runtime, `href`, optional `path`, `targetPlatform`, and `fallbackNavigate`.
|
|
10
|
+
- **`ExecuteNavigationImperativeArgs`** — Arguments for the imperative form: same as above minus the event.
|
|
11
|
+
|
|
12
|
+
### Functions
|
|
13
|
+
|
|
14
|
+
- **`runNavigation`** *(internal)* — Core decision engine. Computes new-tab vs. same-tab, routes same-page hash anchors through `navigateSamePageHash`, delegates to `runtime.navigation.navigate`, and falls back to `fallbackNavigate` or `window.location.assign`.
|
|
15
|
+
- **`executeNavigation`** — Click-handler form. Skips modifier/non-primary clicks (returning `false` so the browser handles them natively), calls `preventDefault`, then delegates to `runNavigation`. Returns `true` when it took action.
|
|
16
|
+
- **`executeNavigationImperative`** — Imperative form for buttons, list rows, and post-action redirects. Same decision tree, no event/modifier logic.
|
|
17
|
+
|
|
18
|
+
## Usage Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// Click-handler form (anchor / chip)
|
|
22
|
+
import { executeNavigation } from './execute-navigation'
|
|
23
|
+
|
|
24
|
+
function ChatCard({ href, runtime }) {
|
|
25
|
+
return (
|
|
26
|
+
<a
|
|
27
|
+
href={href}
|
|
28
|
+
onClick={(event) =>
|
|
29
|
+
executeNavigation({ event, runtime, href, targetPlatform: 'web' })
|
|
30
|
+
}
|
|
31
|
+
>
|
|
32
|
+
Open
|
|
33
|
+
</a>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Imperative form (button / post-submit redirect)
|
|
38
|
+
import { executeNavigationImperative } from './execute-navigation'
|
|
39
|
+
|
|
40
|
+
function handleFormSuccess(runtime, href) {
|
|
41
|
+
executeNavigationImperative({
|
|
42
|
+
runtime,
|
|
43
|
+
href,
|
|
44
|
+
fallbackNavigate: router.push, // useRouter().push
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
> **No runtime?** Pass `null` — the module skips the new-tab/embed decision and falls back to `window.location.assign` (or your `fallbackNavigate`). Safe for surfaces like announcement bars that have no `ChatRuntimeContext`.
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Extracts incomplete message state from the last historical assistant message
|
|
1
|
+
<!-- source-hash: d829899f7bd3695292f7399c706c0b38 -->
|
|
2
|
+
Extracts incomplete message state from the last historical assistant message, enabling the realtime chunk processor to resume building messages across reconnected sessions.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `extractIncompleteMessageState(lastMessage)`
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Inspects a `ProcessedMessage` and returns resumable state if any in-progress segments are found.
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `lastMessage` — A `ProcessedMessage` or `undefined`
|
|
11
12
|
|
|
12
|
-
Returns `undefined` if the message is complete or
|
|
13
|
+
**Returns:** An object with optional `existingSegments`, `pendingApprovals`, and `executingTools`, or `undefined` if the message is complete or ineligible.
|
|
13
14
|
|
|
14
15
|
**Incomplete state detection by segment type:**
|
|
15
16
|
|
|
@@ -17,7 +18,7 @@ Returns `undefined` if the message is complete or not an assistant message with
|
|
|
17
18
|
|---|---|
|
|
18
19
|
| `tool_execution` | Status is `EXECUTING_TOOL` |
|
|
19
20
|
| `approval_request` | Status is `pending` with a `requestId` |
|
|
20
|
-
| `approval_batch` | Not `rejected`
|
|
21
|
+
| `approval_batch` | Not `rejected` and not all tool calls have `done` executions |
|
|
21
22
|
| `context_compaction` | Status is `started` |
|
|
22
23
|
|
|
23
24
|
## Usage Example
|
|
@@ -29,7 +30,7 @@ const lastMessage = conversationHistory.at(-1)
|
|
|
29
30
|
const incompleteState = extractIncompleteMessageState(lastMessage)
|
|
30
31
|
|
|
31
32
|
if (incompleteState) {
|
|
32
|
-
|
|
33
|
+
initializeRealtimeChunkProcessor({
|
|
33
34
|
existingSegments: incompleteState.existingSegments,
|
|
34
35
|
pendingApprovals: incompleteState.pendingApprovals,
|
|
35
36
|
executingTools: incompleteState.executingTools,
|
|
@@ -37,8 +38,4 @@ if (incompleteState) {
|
|
|
37
38
|
}
|
|
38
39
|
```
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- Only processes assistant messages with structured (`MessageSegment[]`) content — string content is ignored
|
|
43
|
-
- `pendingApprovals` and `executingTools` maps are omitted from the return value when empty, reducing unnecessary initialization overhead
|
|
44
|
-
- The `approval_batch` logic ensures post-approval `EXECUTED_TOOL` chunks can correctly merge into the batch segment via `applyExecutionToBatch`
|
|
41
|
+
**Source:** [`extract-incomplete-message-state.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/extract-incomplete-message-state.ts)
|