@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,35 +1,40 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories for the `Board` component,
|
|
1
|
+
<!-- source-hash: 8939b0ce480239cfb76e028389e4824d -->
|
|
2
|
+
Storybook stories for the `Board` component, covering all major interaction states including drag-and-drop, column types, pagination, loading, and empty states.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
| `CustomColumns` | Fully custom columns proving column color is decoupled from `TicketStatus` |
|
|
11
|
-
| `Collapsible` | Columns with collapse toggle persisted to `localStorage` via `collapseStorageKey` |
|
|
12
|
-
| `Pagination` | Demonstrates `onLoadMore` with a 600ms simulated delay, appending 10 tickets per page from a pool of 50 |
|
|
13
|
-
| `InitialLoading` | All columns start in `isLoading` skeleton state, resolving to seeded data after 1 second |
|
|
14
|
-
| `Empty` | Empty columns to verify the drop placeholder render |
|
|
6
|
+
### Seed Data Helpers
|
|
7
|
+
- **`ASSIGNEES`** — Static array of mock users with `id`, `initials`, and `name`
|
|
8
|
+
- **`baseTicket(i, status, overrides)`** — Factory function generating a `BoardTicket` from index, status string, and optional overrides
|
|
9
|
+
- **`buildSeedColumns()`** — Builds five canonical status columns (`ACTIVE`, `TECH_REQUIRED`, `ON_HOLD`, `RESOLVED`, `ARCHIVED`) with seeded tickets
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
### State Management Helper
|
|
12
|
+
- **`applyChange(columns, change)`** — Immutably applies a `BoardChange` (drag-and-drop result) to column state, handling `afterTicketId` and `beforeTicketId` insertion points
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
### Exported Stories
|
|
15
|
+
|
|
16
|
+
| Story | Description |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `Default` | Five canonical-status columns with full DnD wired up |
|
|
19
|
+
| `SystemAndCustom` | Mixed system + custom columns; AI-Assistance refuses drops, Resolved tickets are pinned |
|
|
20
|
+
| `CustomColumns` | Fully custom columns decoupled from `TicketStatus` (Backlog, In Review, Blocked, Done) |
|
|
21
|
+
| `Collapsible` | Column collapse/expand with `localStorage` persistence via `collapseStorageKey` |
|
|
22
|
+
| `Pagination` | One column loads 10 of 50 tickets; `onLoadMore` appends pages after a 600ms simulated delay |
|
|
23
|
+
| `InitialLoading` | All columns start in `isLoading` skeleton state, resolving to seed data after 1 second |
|
|
24
|
+
| `Empty` | All columns empty to verify the drop placeholder rendering |
|
|
20
25
|
|
|
21
26
|
## Usage Example
|
|
22
27
|
|
|
23
28
|
```typescript
|
|
24
|
-
// Minimal
|
|
29
|
+
// Minimal controlled Board with DnD
|
|
25
30
|
const [columns, setColumns] = React.useState(buildSeedColumns())
|
|
26
31
|
|
|
27
32
|
<Board
|
|
28
33
|
columns={columns}
|
|
29
34
|
onChange={change => setColumns(prev => applyChange(prev, change))}
|
|
30
|
-
|
|
31
|
-
onAddTicket={
|
|
32
|
-
collapseStorageKey="my-board-collapse"
|
|
33
|
-
onLoadMore={columnId => fetchNextPage(columnId)}
|
|
35
|
+
getTicketHref={id => `/tickets/${id}`}
|
|
36
|
+
onAddTicket={columnId => console.log('add to', columnId)}
|
|
34
37
|
/>
|
|
35
|
-
```
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Source:** [`Board.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/Board.stories.tsx)
|
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories for the `Button`
|
|
1
|
+
<!-- source-hash: 9800f8a45e8e63abbb33c1772baecc99 -->
|
|
2
|
+
Storybook stories for the `Button` component, covering all variants, sizes, states, icon configurations, and link behaviors used in the OpenFrame UI library.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
|
6
|
+
| Export | Description |
|
|
7
7
|
|---|---|
|
|
8
|
-
| `Accent
|
|
9
|
-
| `SizeDefault
|
|
10
|
-
| `IconOnly
|
|
11
|
-
| `Disabled
|
|
12
|
-
| `SplitIcon
|
|
13
|
-
| `AsLink
|
|
14
|
-
| `AllVariants
|
|
15
|
-
|
|
16
|
-
**Controls exposed via `argTypes`:** `variant`, `size`, `fullWidth`, `disabled`, `loading`
|
|
8
|
+
| `Accent`, `Outline`, `Transparent`, `Destructive`, `Warning` | Individual variant stories |
|
|
9
|
+
| `SizeDefault`, `SizeSmall`, `SizeCompact` | Size variant stories |
|
|
10
|
+
| `IconOnly`, `WithLeftIcon`, `WithRightIcon`, `WithBothIcons` | Icon placement stories |
|
|
11
|
+
| `Disabled`, `Loading`, `FullWidth` | State stories |
|
|
12
|
+
| `SplitIcon`, `SplitIconOutline`, `SplitIconAsLink`, `SplitIconSmall` | Split icon button stories |
|
|
13
|
+
| `AsLink`, `ExternalLink` | Anchor/navigation stories |
|
|
14
|
+
| `AllVariants`, `AllSizes`, `IconButtonGrid`, `WithIconsShowcase`, `StatesShowcase`, `NotificationCounters` | Composite showcase stories |
|
|
17
15
|
|
|
18
16
|
## Usage Example
|
|
19
17
|
|
|
20
18
|
```typescript
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export const MyStory: Story = {
|
|
25
|
-
args: {
|
|
26
|
-
children: 'Click me',
|
|
27
|
-
variant: 'accent',
|
|
28
|
-
size: 'default',
|
|
29
|
-
loading: false,
|
|
30
|
-
disabled: false,
|
|
31
|
-
},
|
|
19
|
+
// Individual story — renders an accent button
|
|
20
|
+
export const Accent: Story = {
|
|
21
|
+
args: { children: 'Button', variant: 'accent' },
|
|
32
22
|
};
|
|
33
23
|
|
|
34
|
-
//
|
|
35
|
-
export const
|
|
36
|
-
args: {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
// Composite showcase — renders all variants in normal, disabled, and loading states
|
|
25
|
+
export const AllVariants: Story = {
|
|
26
|
+
args: { children: 'Button' },
|
|
27
|
+
render: () => {
|
|
28
|
+
const variants = ['accent', 'outline', 'transparent', 'destructive', 'warning'] as const;
|
|
29
|
+
return (
|
|
30
|
+
<div style={{ display: 'grid', gridTemplateColumns: 'auto auto auto', gap: '1rem' }}>
|
|
31
|
+
{variants.map((variant) => (
|
|
32
|
+
<React.Fragment key={variant}>
|
|
33
|
+
<Button variant={variant}>{variant}</Button>
|
|
34
|
+
<Button variant={variant} disabled>{variant}</Button>
|
|
35
|
+
<Button variant={variant} loading>{variant}</Button>
|
|
36
|
+
</React.Fragment>
|
|
37
|
+
))}
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
41
40
|
},
|
|
42
41
|
};
|
|
42
|
+
```
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
leftIcon: <Trash2 />,
|
|
50
|
-
'aria-label': 'Delete item',
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
```
|
|
44
|
+
## Controlled Args
|
|
45
|
+
|
|
46
|
+
The Storybook `argTypes` panel exposes interactive controls for `variant` (`accent` | `outline` | `transparent` | `destructive` | `warning`), `size` (`default` | `small` | `compact` | `icon`), `fullWidth`, `disabled`, and `loading`.
|
|
47
|
+
|
|
48
|
+
**Source:** [`Button.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/Button.stories.tsx)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!-- source-hash: 62d0fd5af004b0935685d20d4d932ddc -->
|
|
2
|
+
Storybook stories for the `CampaignCardAdmin` chat-inline entity card, covering default display and edge cases where optional fields (description, goals) are absent.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `Default` | `Story` | Full campaign card with name, start date, goal count, and description |
|
|
9
|
+
| `NoDescription` | `Story` | Campaign card with `description` set to `null` |
|
|
10
|
+
| `NoGoals` | `Story` | Campaign card with an empty `goals` array |
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { CampaignCardAdmin } from '../components/chat/entity-cards'
|
|
16
|
+
import { campaignItem } from './__fixtures__/chat-cards'
|
|
17
|
+
import { makeAnchorProps } from './__fixtures__/chat-card-decorator'
|
|
18
|
+
|
|
19
|
+
// Render the card in your chat UI
|
|
20
|
+
<CampaignCardAdmin
|
|
21
|
+
campaign={campaignItem}
|
|
22
|
+
anchorProps={makeAnchorProps('/admin/campaigns/' + campaignItem.id)}
|
|
23
|
+
/>
|
|
24
|
+
|
|
25
|
+
// Handle missing optional fields gracefully
|
|
26
|
+
<CampaignCardAdmin
|
|
27
|
+
campaign={{ ...campaignItem, description: null, goals: [] }}
|
|
28
|
+
anchorProps={makeAnchorProps('/admin/campaigns/' + campaignItem.id)}
|
|
29
|
+
/>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
- Wrapped in `ChatColumnDecorator` to simulate the constrained chat column layout.
|
|
35
|
+
- This is the **chat-only projection** of the `marketing_campaign` doc type — delete/manage actions belong to the hub's full admin card.
|
|
36
|
+
- Stories live under the `Chat/EntityCards/CampaignCardAdmin` Storybook path.
|
|
37
|
+
|
|
38
|
+
**Source:** [`CampaignCardAdmin.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/CampaignCardAdmin.stories.tsx)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- source-hash: f14c97ac08b17c846941af692b1556a9 -->
|
|
2
|
+
Storybook story file for the `CardsStrip` component, covering chevron navigation, mixed card types, marquee auto-scroll, overflow edge cases, and custom cell width variants using real entity card fixtures.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `CaseStudiesChevrons` | Chevron-nav strip of 7 uniform case-study cards with `autoScroll={false}` (Figma 3905:77388) |
|
|
9
|
+
| `MixedCardTypes` | Strip mixing `CaseStudyCard`, `BlogCard`, and `CustomerInterviewCard` to verify row alignment |
|
|
10
|
+
| `MarqueeOptIn` | Default marquee mode; documents clone accessibility contract (aria-hidden, tabindex suppression, click passthrough) |
|
|
11
|
+
| `TwoItemsNoOverflow` | Edge case — fewer items than viewport width, so no clones, chevrons, or marquee activate |
|
|
12
|
+
| `CustomCellWidth` | Demonstrates `cardWidthDesktop`/`cardWidthMobile` overrides for compact layouts |
|
|
13
|
+
|
|
14
|
+
All stories use **organic children mode** (plain JSX children, no strip-side registration). The render-prop mode is covered by `VideoBitesStrip.stories.tsx`.
|
|
15
|
+
|
|
16
|
+
## Usage Example
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
// Chevron strip — pass autoScroll={false} for entity strips
|
|
20
|
+
<CardsStrip title="Case Studies" autoScroll={false}>
|
|
21
|
+
{caseStudies.map(study => (
|
|
22
|
+
<CaseStudyCard key={study.slug} study={study} href={`/case-studies/${study.slug}`} />
|
|
23
|
+
))}
|
|
24
|
+
</CardsStrip>
|
|
25
|
+
|
|
26
|
+
// Marquee strip — omit autoScroll (engine default is true)
|
|
27
|
+
<CardsStrip title="Case Studies">
|
|
28
|
+
{caseStudies.map(study => (
|
|
29
|
+
<CaseStudyCard key={study.slug} study={study} href={`/case-studies/${study.slug}`} />
|
|
30
|
+
))}
|
|
31
|
+
</CardsStrip>
|
|
32
|
+
|
|
33
|
+
// Custom cell widths
|
|
34
|
+
<CardsStrip title="Compact Row" autoScroll={false} cardWidthDesktop={320} cardWidthMobile={280}>
|
|
35
|
+
{/* cards */}
|
|
36
|
+
</CardsStrip>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
> **Guidance:** Always pass `autoScroll={false}` for chevron-style entity strips. The engine defaults to `autoScroll={true}` for the marquee/bites contract — omitting it in an entity strip will silently enable marquee behavior.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 75ac7c181bdd6e2ff693703757ed5c57 -->
|
|
2
|
+
Storybook stories for `CaseStudyCard`, covering both the compact chat-inline (`sm`) and full catalog grid (`default`) size variants of the `case_study` entity card.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `meta` | `Meta<CaseStudyCard>` | Storybook metadata — registers the component under `Chat/EntityCards/CaseStudyCard` with fullscreen layout |
|
|
9
|
+
| `ChatInlineSm` | `Story` | Renders the compact card variant used inline within chat messages |
|
|
10
|
+
| `Default` | `Story` | Renders the full catalog grid card variant |
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { CaseStudyCard } from '../components/chat/entity-cards'
|
|
16
|
+
import { caseStudy } from './__fixtures__/chat-cards'
|
|
17
|
+
|
|
18
|
+
// Compact chat-inline variant
|
|
19
|
+
<CaseStudyCard
|
|
20
|
+
study={caseStudy}
|
|
21
|
+
href={`/case-studies/${caseStudy.slug}`}
|
|
22
|
+
size="sm"
|
|
23
|
+
target="_blank"
|
|
24
|
+
rel="noopener noreferrer"
|
|
25
|
+
/>
|
|
26
|
+
|
|
27
|
+
// Full catalog grid variant
|
|
28
|
+
<CaseStudyCard
|
|
29
|
+
study={caseStudy}
|
|
30
|
+
href={`/case-studies/${caseStudy.slug}`}
|
|
31
|
+
size="default"
|
|
32
|
+
target="_blank"
|
|
33
|
+
rel="noopener noreferrer"
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- Both stories are wrapped in `ChatColumnDecorator` to simulate the chat column layout context.
|
|
40
|
+
- The `CaseStudyCard` supports two sizes: `"sm"` (chat-inline compact) and `"default"` (catalog grid). Both render a user + MSP badge overlay.
|
|
41
|
+
- Fixture data is sourced from [`__fixtures__/chat-cards`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/stories/__fixtures__/chat-cards.ts).
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 292551494d3d57529210cbc9d678d8e9 -->
|
|
2
|
+
Storybook stories for the `ChatContainer` composite component, demonstrating the full Fae client-facing chat shell across layout and state variants.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`FaeChatShell`** — Internal interactive wrapper that composes `ChatContainer`, `ChatHeader`, `ChatContent`, `ChatFooter`, `ChatMessageList`, `ChatInput`, `QuickActionWall`, and `ModelDisplay` into a working chat UI. Manages local message state and simulates user message submission.
|
|
7
|
+
- **`FAE_MESSAGES`** — Sample conversation seed data pre-populating the message list with a realistic Fae/user exchange.
|
|
8
|
+
- **`SAMPLE_QUICK_ACTIONS`** — Three quick-action chips (`Computer slow`, `Check updates`, `Internet problems`) used in the `QuickActionWall`.
|
|
9
|
+
|
|
10
|
+
### Exported Stories
|
|
11
|
+
|
|
12
|
+
| Story | Description |
|
|
13
|
+
|---|---|
|
|
14
|
+
| `Fae` | Default Fae chat shell with no extras |
|
|
15
|
+
| `FaeWithTicket` | Header shows active ticket info row |
|
|
16
|
+
| `ClientChatWithMspOrganization` | MSP branding bar rendered in header |
|
|
17
|
+
| `ClientChatMspOrganizationLoading` | MSP branding slot in skeleton/loading state |
|
|
18
|
+
| `FaeFullWidth` | Drops centered column; fills full container width |
|
|
19
|
+
| `FaeBareHeader` | Strips card chrome from header for embedded contexts |
|
|
20
|
+
| `FaeModelLoading` | `ModelDisplaySkeleton` shown while model metadata resolves |
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// Render the default Fae story in isolation
|
|
26
|
+
import { Fae } from './ChatContainer.stories'
|
|
27
|
+
|
|
28
|
+
// In a test or custom harness:
|
|
29
|
+
<Fae.render />
|
|
30
|
+
|
|
31
|
+
// Or control FaeChatShell props directly:
|
|
32
|
+
<FaeChatShell
|
|
33
|
+
withTicketInfo
|
|
34
|
+
fullWidth
|
|
35
|
+
modelLoading={false}
|
|
36
|
+
/>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Source
|
|
40
|
+
|
|
41
|
+
[`ChatContainer.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ChatContainer.stories.tsx)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- source-hash: b79b2c8f9f7df800c6a753d097091a12 -->
|
|
2
|
+
Storybook stories for `ChatInlineVideoPill`, an inline span component that renders a video reference pill inside chat assistant message paragraphs.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `ChatInlineVideoPill` | Local component | Inline `<span>` pill showing a play icon and truncated video title |
|
|
9
|
+
| `Default` | `Story` | Standard pill with a short, readable title |
|
|
10
|
+
| `LongTitleTruncates` | `Story` | Validates truncation at `max-w-[220px]` for long titles |
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
// The component is defined inline in dispatch.tsx (~line 318-326)
|
|
16
|
+
// and is reproduced here for isolated story rendering:
|
|
17
|
+
function ChatInlineVideoPill({ title }: { title: string }) {
|
|
18
|
+
return (
|
|
19
|
+
<span className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs align-middle bg-ods-card border border-ods-border text-ods-text-primary">
|
|
20
|
+
<span aria-hidden="true" className="text-ods-text-secondary">▶</span>
|
|
21
|
+
<span className="truncate max-w-[220px]">{title}</span>
|
|
22
|
+
</span>
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Design Notes
|
|
28
|
+
|
|
29
|
+
- **Inline-only** — unlike all other entity cards, this component has no card wrapper, Ask/Display affordance, or block-level container. It sits directly within `<p>` text flow.
|
|
30
|
+
- **Video hoisting** — the actual video player is extracted from the paragraph by the chat pre-scan pipeline and rendered above the assistant turn. This pill acts as a inline sentinel/reference marker.
|
|
31
|
+
- **Truncation** — titles are capped at `max-w-[220px]` to prevent line wrapping of surrounding paragraph text.
|
|
32
|
+
- **Decorator** — stories wrap the pill in a realistic `<p>` context via `ChatColumnDecorator` to verify inline flow renders correctly alongside surrounding prose.
|
|
33
|
+
|
|
34
|
+
## Source
|
|
35
|
+
|
|
36
|
+
[`ChatInlineVideoPill.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ChatInlineVideoPill.stories.tsx)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!-- source-hash: 97c4cee0a62454c372bae94dd2deb03b -->
|
|
2
|
+
Storybook story file for `ChatMessageEnhanced`, providing interactive visual documentation for the primary chat message renderer used across Mingo (admin) and Fae (client) chat interfaces.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `AssistantFae` | `Story` | Fae assistant message with pink mono name and timestamp |
|
|
9
|
+
| `AssistantMingo` | `Story` | Mingo assistant message with cyan mono name |
|
|
10
|
+
| `UserMessage` | `Story` | User-authored message with grey mono name |
|
|
11
|
+
| `FaeConversationTyping` | `Story` | Multi-message Fae flow showing greeting → user request → typing indicator |
|
|
12
|
+
| `FaeConversationApproved` | `Story` | Fae flow with a resolved `approval_request` segment (APPROVED pill) |
|
|
13
|
+
| `PendingApprovalSegment` | `Story` | Client approval card with live Approve/Reject buttons |
|
|
14
|
+
| `AllSegmentTypes` | `Story` | Single message rendering all segment types: `thinking`, `text`, `tool_execution`, `context_compaction`, `error` |
|
|
15
|
+
|
|
16
|
+
## Usage Example
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
// Render a Fae assistant message with an approval segment
|
|
20
|
+
<ChatMessageEnhanced
|
|
21
|
+
role="assistant"
|
|
22
|
+
name="Fae"
|
|
23
|
+
approvalVariant="client"
|
|
24
|
+
timestamp={new Date()}
|
|
25
|
+
content={[
|
|
26
|
+
{ type: "text", text: "Just need your quick approval here." },
|
|
27
|
+
{
|
|
28
|
+
type: "approval_request",
|
|
29
|
+
data: {
|
|
30
|
+
command: "brew install --cask slack",
|
|
31
|
+
requestId: "req-1",
|
|
32
|
+
approvalType: "CLIENT",
|
|
33
|
+
explanation: "Install Slack via Homebrew Cask on macOS",
|
|
34
|
+
},
|
|
35
|
+
status: "pending",
|
|
36
|
+
onApprove: () => {},
|
|
37
|
+
onReject: () => {},
|
|
38
|
+
},
|
|
39
|
+
]}
|
|
40
|
+
/>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Notes
|
|
44
|
+
|
|
45
|
+
- **`at247()`** — pins story timestamps to `2:47 PM` so snapshot tests are deterministic; today-dated messages render time-only via `formatMessageTimestamp`.
|
|
46
|
+
- **`panelDecorator`** — wraps each story in a `640px` container with the system background token, matching the `ChatMessageList` host context.
|
|
47
|
+
- **`FaeConversationTyping` / `FaeConversationApproved`** — composite render functions that reproduce the full Fae desktop-app flow matching the Figma `fae-approval-block` spec.
|
|
48
|
+
|
|
49
|
+
## Source
|
|
50
|
+
|
|
51
|
+
[`ChatMessageEnhanced.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ChatMessageEnhanced.stories.tsx)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!-- source-hash: 72bc4b44eb59f863ebc8b29a59c67d77 -->
|
|
2
|
+
Storybook stories file that documents and visually demonstrates `MingoInfoCard` variants for in-chat entity cards, mirroring the field mapping (icon, status pill, description, overflow menu) from the `CHAT_CARD_REGISTRY` dispatch for each integrated source type.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`meta`** — Storybook `Meta` config registering stories under `Chat/ChatMingoInfoCards`, with `fullscreen` layout and a `ChatColumnDecorator` wrapper that reproduces the in-chat column context.
|
|
7
|
+
- **`openMenu`** — Shared factory that builds the standardized "⋯" overflow menu with `Ask Mingo` (Mingo logo) and `Open Details` (eye icon + ↗ new-tab side button) actions.
|
|
8
|
+
- **`HubspotTicket`** — Story covering `hubspot_ticket` registry types; demonstrates status pill variants (`warning` → Open, `success` → Closed, `grey` → other) and missing-description/status edge cases.
|
|
9
|
+
- **`GithubActivity`** — Story covering `github_commit`, `github_pull_request`, and `github_pr_review` types; shows per-kind icon switching and review-state pills (`success` → Approved, `error` → Changes, `grey` → Comment/neutral).
|
|
10
|
+
- **`SlackMessage`** — Story covering `slack_message`; demonstrates the no-pill pattern with author + channel in the title and message preview as description.
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
// Reproduce the HubSpot ticket card outside Storybook
|
|
16
|
+
import { MingoInfoCard } from '../components/chat/mingo-info-card'
|
|
17
|
+
import { TagIcon } from '../components/icons-v2-generated/shopping/tag-icon'
|
|
18
|
+
|
|
19
|
+
<MingoInfoCard
|
|
20
|
+
title="Login page returns 500 after SSO redirect"
|
|
21
|
+
description="Customer cannot sign in via Google SSO since this morning…"
|
|
22
|
+
icon={<TagIcon size={24} />}
|
|
23
|
+
status={{ label: 'Open', variant: 'warning' }}
|
|
24
|
+
anchorProps={{ href: 'https://app.hubspot.com/contacts/0/ticket/123' }}
|
|
25
|
+
menuGroups={openMenu('https://app.hubspot.com/contacts/0/ticket/123')}
|
|
26
|
+
menuAriaLabel="Ticket actions"
|
|
27
|
+
/>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Source:** [`ChatMingoInfoCards.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ChatMingoInfoCards.stories.tsx)
|
|
@@ -1,33 +1,49 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories for the `ChatTicketList` component, providing visual test cases
|
|
1
|
+
<!-- source-hash: abdfb61054ac90989111840ada6a1cca -->
|
|
2
|
+
Storybook stories for the `ChatTicketList` component, providing interactive visual test cases covering ticket states, scroll fading behavior, and loading skeletons.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `Default` | Five mock tickets spanning all common statuses |
|
|
9
|
+
| `SingleTicket` | Minimal single-ticket render |
|
|
10
|
+
| `AllStatuses` | Four tickets demonstrating `ACTIVE`, `ON_HOLD`, `TECH_REQUIRED`, and `RESOLVED` states |
|
|
11
|
+
| `ScrollFading` | 15 tickets in a 400px container to showcase scroll-edge fade effect |
|
|
12
|
+
| `ScrollFadingCompact` | Same dataset in a tighter 280px container for more pronounced fading |
|
|
13
|
+
| `Loading` | Empty tickets array with `isLoading: true` to render skeleton placeholder rows |
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
**Helpers**
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
| `SingleTicket` | Only the first ticket rendered |
|
|
17
|
-
| `AllStatuses` | First 4 tickets showing each distinct status |
|
|
18
|
-
| `ScrollFading` | 15 tickets in a 400px container to demonstrate scroll fade |
|
|
19
|
-
| `ScrollFadingCompact` | 15 tickets in a 280px container for more pronounced fade |
|
|
17
|
+
- `mockTickets` — five representative `ChatTicketItemData` fixtures covering the four ticket statuses
|
|
18
|
+
- `manyTickets` — extends `mockTickets` to 15 entries across diverse categories (Email, Security, Onboarding, Infrastructure, etc.)
|
|
19
|
+
- `constrainedDecorator(height?)` — wraps each story in a max-width 600px flex container; accepts an optional fixed height to trigger scrollable overflow
|
|
20
20
|
|
|
21
21
|
## Usage Example
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
//
|
|
24
|
+
// Render the scroll-fading story locally in Storybook
|
|
25
|
+
import { ScrollFading } from "./ChatTicketList.stories";
|
|
26
|
+
|
|
27
|
+
// Or compose the component directly with the same fixture data
|
|
25
28
|
import { ChatTicketList } from "../components/chat/chat-ticket-list";
|
|
29
|
+
import type { ChatTicketItemData } from "../components/chat/entity-cards/chat-ticket-item";
|
|
30
|
+
|
|
31
|
+
const tickets: ChatTicketItemData[] = [
|
|
32
|
+
{
|
|
33
|
+
id: "1",
|
|
34
|
+
title: "Printer not working",
|
|
35
|
+
ticketNumber: "1002",
|
|
36
|
+
status: "ACTIVE",
|
|
37
|
+
category: "Hardware Issue",
|
|
38
|
+
timeAgo: "2 hours",
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
<ChatTicketList
|
|
43
|
+
tickets={tickets}
|
|
44
|
+
isLoading={false}
|
|
45
|
+
onTicketClick={(id) => console.log("clicked", id)}
|
|
46
|
+
/>;
|
|
47
|
+
```
|
|
26
48
|
|
|
27
|
-
|
|
28
|
-
<ChatTicketList
|
|
29
|
-
tickets={manyTickets}
|
|
30
|
-
onTicketClick={(ticket) => console.log(ticket)}
|
|
31
|
-
/>
|
|
32
|
-
</div>
|
|
33
|
-
```
|
|
49
|
+
**Source:** [`ChatTicketList.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ChatTicketList.stories.tsx)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!-- source-hash: 794302ba2da5741b5cee3d5040b87f88 -->
|
|
2
|
+
Storybook stories for `ChatTypingIndicator`, documenting the animated three-dot typing indicator component across its size variants and configuration options.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `Default` | `Story` | Medium-size dots, no label (baseline render) |
|
|
9
|
+
| `Small` | `Story` | `size="sm"` — matches `ChatInput` in-flight state |
|
|
10
|
+
| `Large` | `Story` | `size="lg"` large dot variant |
|
|
11
|
+
| `WithText` | `Story` | Includes "Assistant is typing" label via `showText: true` |
|
|
12
|
+
| `MutedDots` | `Story` | Overrides dot color using `dotClassName` |
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { ChatTypingIndicator } from "../components/chat/chat-typing-indicator";
|
|
18
|
+
|
|
19
|
+
// Default medium dots
|
|
20
|
+
<ChatTypingIndicator />
|
|
21
|
+
|
|
22
|
+
// Small — used inside ChatInput while send is in flight
|
|
23
|
+
<ChatTypingIndicator size="sm" />
|
|
24
|
+
|
|
25
|
+
// With label and custom dot color
|
|
26
|
+
<ChatTypingIndicator
|
|
27
|
+
size="lg"
|
|
28
|
+
showText={true}
|
|
29
|
+
dotClassName="bg-ods-text-secondary"
|
|
30
|
+
/>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Props Reference
|
|
34
|
+
|
|
35
|
+
| Prop | Values | Description |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `size` | `"sm"` \| `"md"` \| `"lg"` | Controls dot size; defaults to `"md"` |
|
|
38
|
+
| `showText` | `boolean` | Renders "Assistant is typing" label alongside dots |
|
|
39
|
+
| `dotClassName` | `string` | Tailwind class override for dot color (e.g., `bg-ods-text-secondary`) |
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- Component is rendered under the message header as the Fae assistant streams a reply
|
|
44
|
+
- The `sm` size variant is also embedded within `<ChatInput>` during pending send state
|
|
45
|
+
- Stories are wrapped in a `400px` max-width container with `var(--color-bg)` background to simulate real chat UI context
|
|
46
|
+
|
|
47
|
+
**Source:** [`ChatTypingIndicator.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ChatTypingIndicator.stories.tsx)
|