@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,49 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component that renders
|
|
1
|
+
<!-- source-hash: f936efb725972b55ffa32204b6306bc7 -->
|
|
2
|
+
A client-side React component that renders styled badge tags for categorizing vendors, tools, and platform capabilities within the OpenFrame design system.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
- **VendorTagProps**: Interface defining props including type, text, styling options, and size variants
|
|
8
|
-
- **getTagContent()**: Internal function that maps vendor types to their corresponding icons, colors, and display text
|
|
6
|
+
### `VendorTagProps` Interface
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
| Prop | Type | Description |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `type` | union (14 variants) | Determines icon, label, and color scheme |
|
|
11
|
+
| `text` | `string` | Optional override for the default display label |
|
|
12
|
+
| `className` | `string` | Additional CSS classes |
|
|
13
|
+
| `size` | `'sm' \| 'md'` | Controls padding; defaults to `'md'` |
|
|
14
|
+
| `hidden` | `boolean` | Applies `invisible` class when `true` |
|
|
15
|
+
| `accentColor` | `string` | Inline color override for the icon box (open-source type only) |
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
- **Licensing**: `open-source`, `commercial`, `free`, `freemium`, `paid`, `enterprise`
|
|
14
|
-
- **Selection**: `ai`, `manual`, `openframe_selected`, `recommended`
|
|
15
|
-
- **Generic**: `classification`, `placeholder`
|
|
17
|
+
### `VendorTag` Function
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
Renders a pill-shaped tag with a small icon box and a label. The internal `getTagContent()` helper maps each `type` to its icon, default text, and text color using ODS design tokens (`ods-accent`, `ods-border`, `ods-text-primary`, etc.).
|
|
20
|
+
|
|
21
|
+
**Supported types:**
|
|
22
|
+
|
|
23
|
+
- **Licensing:** `open-source`, `commercial`, `free`, `freemium`, `paid`, `enterprise`
|
|
24
|
+
- **Platform capability:** `api`, `data`, `k8s`, `secured`
|
|
25
|
+
- **Selection state:** `ai`, `manual`, `openframe_selected`, `placeholder`
|
|
26
|
+
- **Meta:** `recommended`, `classification` (sub-dispatches on `text` value)
|
|
18
27
|
|
|
19
28
|
## Usage Example
|
|
20
29
|
|
|
21
30
|
```typescript
|
|
22
|
-
import { VendorTag } from
|
|
31
|
+
import { VendorTag } from "./vendor-tag"
|
|
23
32
|
|
|
24
|
-
// Basic
|
|
33
|
+
// Basic licensing badge
|
|
25
34
|
<VendorTag type="open-source" />
|
|
26
35
|
|
|
27
|
-
// Custom
|
|
28
|
-
<VendorTag
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
<VendorTag
|
|
44
|
-
type="classification"
|
|
45
|
-
text="openframe_selected"
|
|
46
|
-
/>
|
|
36
|
+
// Custom label with accent color override
|
|
37
|
+
<VendorTag type="open-source" text="Apache 2.0" accentColor="#e07b39" />
|
|
38
|
+
|
|
39
|
+
// Small AI-selection badge
|
|
40
|
+
<VendorTag type="ai" size="sm" />
|
|
41
|
+
|
|
42
|
+
// Platform capability tags
|
|
43
|
+
<VendorTag type="k8s" />
|
|
44
|
+
<VendorTag type="secured" text="SOC 2" />
|
|
45
|
+
|
|
46
|
+
// Classification (text drives sub-type)
|
|
47
|
+
<VendorTag type="classification" text="open_source" />
|
|
48
|
+
<VendorTag type="classification" text="openframe_selected" />
|
|
49
|
+
|
|
50
|
+
// Hidden (preserves layout space)
|
|
51
|
+
<VendorTag type="recommended" hidden />
|
|
47
52
|
```
|
|
48
53
|
|
|
49
|
-
|
|
54
|
+
**Source:** [`vendor-tag.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/vendor-tag.tsx)
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 8bdfd0b0bb8aed0edd883e829a021abf -->
|
|
2
|
+
A client-side React section component that renders a numbered list of value propositions explaining the benefits of the OpenFrame/Flamingo platform.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `WhyItMattersItem` (internal)
|
|
7
|
-
A list item component rendering a
|
|
8
|
-
- `number`
|
|
9
|
-
- `
|
|
10
|
-
-
|
|
11
|
-
- `isLast?` — omits bottom border on the final item
|
|
7
|
+
A list item component rendering a single value proposition with:
|
|
8
|
+
- **Props:** `number` (display numeral), `title`, `description`, `isLast` (controls bottom border visibility)
|
|
9
|
+
- Responsive layout: stacked on mobile (`flex-col`), side-by-side on desktop (`md:flex-row`)
|
|
10
|
+
- Hover highlight via `hover:bg-ods-bg-hover`
|
|
12
11
|
|
|
13
12
|
### `WhyItMatters` (default export)
|
|
14
13
|
The parent section component containing four hardcoded value propositions:
|
|
@@ -22,12 +21,17 @@ The parent section component containing four hardcoded value propositions:
|
|
|
22
21
|
|
|
23
22
|
## Usage Example
|
|
24
23
|
|
|
24
|
+
```vue
|
|
25
|
+
<!-- Drop into any page layout as a standalone section -->
|
|
26
|
+
```
|
|
27
|
+
|
|
25
28
|
```typescript
|
|
26
29
|
import WhyItMatters from '@/components/why-it-matters';
|
|
27
30
|
|
|
28
31
|
export default function LandingPage() {
|
|
29
32
|
return (
|
|
30
33
|
<main>
|
|
34
|
+
{/* other sections */}
|
|
31
35
|
<WhyItMatters />
|
|
32
36
|
</main>
|
|
33
37
|
);
|
|
@@ -36,7 +40,7 @@ export default function LandingPage() {
|
|
|
36
40
|
|
|
37
41
|
## Notes
|
|
38
42
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
+
- Uses `"use client"` directive — requires a Next.js App Router client boundary
|
|
44
|
+
- Styling relies on ODS design tokens (`ods-bg`, `ods-card`, `ods-border`, `ods-accent`, `ods-text-primary`) — ensure the ODS theme is configured in Tailwind
|
|
45
|
+
- `SECTION_HEADING_CLASS` is imported from [`./layout/page-heading`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/layout/page-heading.ts) for consistent section heading typography
|
|
46
|
+
- Content is currently static; extract `items` to props or a CMS if copy needs to vary per page
|
|
@@ -1,12 +1,28 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component for
|
|
1
|
+
<!-- source-hash: 5d8965c2105bee8651e70267abd0b3db -->
|
|
2
|
+
A React client component for rendering boolean values as icon-accompanied Yes/No indicators, plus a utility function for evaluating feature flag values across multiple data types.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
- **evaluateFeatureValue**: Utility function that determines boolean state from various data formats (boolean, text, number)
|
|
6
|
+
### `YesNoDisplay` (Component)
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
Renders a boolean state with an icon and label. Supports custom text override, configurable Yes/No labels, and optional CSS class extension.
|
|
9
|
+
|
|
10
|
+
| Prop | Type | Default | Description |
|
|
11
|
+
|------|------|---------|-------------|
|
|
12
|
+
| `value` | `boolean` | — | The boolean state to display |
|
|
13
|
+
| `yesText` | `string` | `"Yes"` | Label shown for truthy state |
|
|
14
|
+
| `noText` | `string` | `"No"` | Label shown for falsy state |
|
|
15
|
+
| `customText` | `string` | — | Overrides Yes/No logic; always renders with check icon |
|
|
16
|
+
| `className` | `string` | `""` | Additional CSS classes |
|
|
17
|
+
|
|
18
|
+
### `evaluateFeatureValue` (Utility)
|
|
19
|
+
|
|
20
|
+
Normalizes raw feature values (`string | null | undefined`) to a `boolean` using type-aware rules:
|
|
21
|
+
|
|
22
|
+
- **`boolean`** — matches `"true"`, `"1"`, `"yes"`, `"✓"`, `"✅"`
|
|
23
|
+
- **`text`** — emoji-aware; treats any non-empty, non-negative string as truthy
|
|
24
|
+
- **`number`** — parses float; truthy if `> 0`
|
|
25
|
+
- Null-like sentinels (`"null"`, `"n/a"`, `"none"`, `"-"`) always return `false`
|
|
10
26
|
|
|
11
27
|
## Usage Example
|
|
12
28
|
|
|
@@ -14,31 +30,20 @@ The component supports customizable yes/no text, custom text override, and flexi
|
|
|
14
30
|
import { YesNoDisplay, evaluateFeatureValue } from './yes-no-display'
|
|
15
31
|
|
|
16
32
|
// Basic boolean display
|
|
17
|
-
<YesNoDisplay value={true} />
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
customText="Premium Feature Available"
|
|
30
|
-
/>
|
|
31
|
-
|
|
32
|
-
// Evaluate feature values
|
|
33
|
-
const isEnabled = evaluateFeatureValue("✅", "text") // true
|
|
34
|
-
const isActive = evaluateFeatureValue("0", "number") // false
|
|
35
|
-
const hasFeature = evaluateFeatureValue("yes", "boolean") // true
|
|
36
|
-
|
|
37
|
-
// Use together
|
|
38
|
-
<YesNoDisplay
|
|
39
|
-
value={evaluateFeatureValue(featureData.value, featureData.type)}
|
|
40
|
-
className="my-2"
|
|
41
|
-
/>
|
|
33
|
+
<YesNoDisplay value={true} /> // ✓ Yes
|
|
34
|
+
<YesNoDisplay value={false} yesText="Enabled" noText="Disabled" />
|
|
35
|
+
|
|
36
|
+
// Custom text (always shows check icon)
|
|
37
|
+
<YesNoDisplay value={true} customText="Included in plan" />
|
|
38
|
+
|
|
39
|
+
// Evaluate raw feature flag values before rendering
|
|
40
|
+
const isEnabled = evaluateFeatureValue("✅", "text") // true
|
|
41
|
+
const hasCount = evaluateFeatureValue("42", "number") // true
|
|
42
|
+
const missing = evaluateFeatureValue("n/a", "boolean") // false
|
|
43
|
+
|
|
44
|
+
<YesNoDisplay value={isEnabled} />
|
|
42
45
|
```
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
## Source
|
|
48
|
+
|
|
49
|
+
[`yes-no-display.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/yes-no-display.tsx)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- source-hash: d20279dde85e1fcd84bfce0068c08fca -->
|
|
2
|
+
A presentational component that renders a full author profile page body — identity header (avatar, name, job title, socials), bio, expertise badges, and a slot for the authored-content rail.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `AuthorDetailViewProps`
|
|
7
|
+
|
|
8
|
+
| Prop | Type | Description |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `author` | `AuthorProfile` | Full author data object |
|
|
11
|
+
| `proxyImageUrl` | `(url: string) => string` | Optional host-level avatar URL mapper; takes precedence over the ambient runtime proxy |
|
|
12
|
+
| `children` | `React.ReactNode` | Authored-content rail slot (hub passes SSR-prefetched section; embedders pass API-backed section) |
|
|
13
|
+
| `className` | `string` | Optional wrapper class override |
|
|
14
|
+
|
|
15
|
+
### `AuthorDetailView`
|
|
16
|
+
|
|
17
|
+
The exported component. Handles:
|
|
18
|
+
|
|
19
|
+
- **Avatar proxying** — resolves through `proxyImageUrl` prop → `ChatRuntime.endpoints.imageProxyUrlPrefix` → raw URL (never throws without a provider)
|
|
20
|
+
- **Identity header** — avatar (or initial fallback), name as `<p>` (host owns `<h1>`), subtitle (`jobTitle @ company`), and social icon row
|
|
21
|
+
- **Bio** — formatted via `formatBioText`
|
|
22
|
+
- **Expertise badges** — `StatusBadge` per `knowsAbout` entry
|
|
23
|
+
- **Content slot** — renders `children` as-is beneath the profile
|
|
24
|
+
|
|
25
|
+
## Usage Example
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
// Hub usage — SSR content rail passed as children
|
|
29
|
+
<AuthorDetailView author={authorProfile}>
|
|
30
|
+
<RelatedContentSection
|
|
31
|
+
authorSlug={authorProfile.slug}
|
|
32
|
+
initialItems={ssrItems}
|
|
33
|
+
/>
|
|
34
|
+
</AuthorDetailView>
|
|
35
|
+
|
|
36
|
+
// Embed usage — custom proxy + API-backed content rail
|
|
37
|
+
<AuthorDetailView
|
|
38
|
+
author={authorProfile}
|
|
39
|
+
proxyImageUrl={(url) => `/media-proxy?src=${encodeURIComponent(url)}`}
|
|
40
|
+
>
|
|
41
|
+
<AuthoredContentSection
|
|
42
|
+
authorSlug={authorProfile.slug}
|
|
43
|
+
apiBaseUrl="https://api.example.com"
|
|
44
|
+
/>
|
|
45
|
+
</AuthorDetailView>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
> **Embed contract:** `Image` renders through the embed shim (plain `<img>` outside Next.js hosts). The component is data-in, markup-out — no internal fetches.
|
|
49
|
+
|
|
50
|
+
**Source:** [`author-detail-view.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/author-detail-view.tsx)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- source-hash: c59db722e44565f70c23008e3894c6d4 -->
|
|
2
|
+
Barrel export file that re-exports the `ShareExperienceSection` component and its associated `ShareExperienceSectionProps` type from the `share-experience-section` module.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`ShareExperienceSection`** — The main component for rendering a "share experience" UI section.
|
|
7
|
+
- **`ShareExperienceSectionProps`** — TypeScript type definition for the component's props.
|
|
8
|
+
|
|
9
|
+
## Usage Example
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import {
|
|
13
|
+
ShareExperienceSection,
|
|
14
|
+
type ShareExperienceSectionProps,
|
|
15
|
+
} from '@/components/share-experience-section'
|
|
16
|
+
|
|
17
|
+
const props: ShareExperienceSectionProps = {
|
|
18
|
+
// component-specific props
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default function Page() {
|
|
22
|
+
return <ShareExperienceSection {...props} />
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> **Source:** [`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- source-hash: aa11a1879c86772619c2a16ae6fa5a48 -->
|
|
2
|
+
A client-side React section component that renders the "Share Your Experience" CTA block used on the Flamingo case-studies page, displaying review platform cards (G2, Capterra, TrustPilot, GetApp) alongside an embedded contact form.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`ShareExperienceSection`** — Main exported component; composes the heading, subtitle, "How it works" block, review platform benefit cards, and a `ContactForm` into a unified CTA section.
|
|
7
|
+
- **`ShareExperienceSectionProps`** — Interface exposing overridable props: `title`, `subtitle`, `howItWorksTitle`, `howItWorksBody`, `contactFormProps`, and `className`.
|
|
8
|
+
- **`DEFAULT_CONTACT_FORM_PROPS`** — Pre-configured `ContactForm` defaults (prefilled reason/message, hidden fields, outline button style) matching the hub's `/case-studies` behavior; caller-supplied `contactFormProps` take precedence via spread order.
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
**Hub usage (auto-resolved context):**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
<ShareExperienceSection
|
|
16
|
+
contactFormProps={{
|
|
17
|
+
userId: currentUser.id,
|
|
18
|
+
rdtCid: rdtCid,
|
|
19
|
+
onSubmitSuccess: () => router.push('/case-studies/thank-you'),
|
|
20
|
+
}}
|
|
21
|
+
/>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Embed usage (brand-neutral override):**
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
<ShareExperienceSection
|
|
28
|
+
title="Share Your Experience"
|
|
29
|
+
subtitle="Help other IT teams make better decisions."
|
|
30
|
+
howItWorksTitle="How it works?"
|
|
31
|
+
howItWorksBody="Submit your details and we'll be in touch."
|
|
32
|
+
contactFormProps={{
|
|
33
|
+
successRedirectUrl: '/thank-you',
|
|
34
|
+
}}
|
|
35
|
+
className="my-16"
|
|
36
|
+
/>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Minimal usage (all defaults):**
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
<ShareExperienceSection />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The inner `ContactForm` submits through the ambient `EndpointsRuntime.contactUrl` proxy, so no per-call-site API wiring is required for embedded deployments behind a `/content` reverse proxy.
|
|
@@ -1,51 +1,66 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 53c5e53d9aa5256ad542ac1abea08fb2 -->
|
|
2
|
+
Renders an approval batch message UI component that displays pending AI tool calls requiring user approval, with support for both admin and client (end-user) variants, expandable tool call details, and real-time execution status tracking.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `ApprovalBatchMessage` (default export)
|
|
7
|
-
|
|
7
|
+
The main `forwardRef` component rendering a bordered card containing one or more tool call rows, explanation bullets, and Approve/Reject action buttons.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
**Key props:**
|
|
10
|
+
- `data` — batch segment data including tool calls and approval request ID
|
|
11
|
+
- `status` — `"pending"` | `"approved"` | `"rejected"` | `"cancelled"`
|
|
12
|
+
- `onApprove` / `onReject` — async callbacks receiving the `requestId`
|
|
13
|
+
- `variant` — `"admin"` (full preview, expandable args/results) or `"client"` (titles + actions only)
|
|
14
|
+
- `maxBodyHeight` — constrains tool list height with internal scroll
|
|
15
|
+
- `showExecutionStatus` — toggles per-tool execution spinner/check/cross icons
|
|
16
|
+
- `showFooterActions` — hides Approve/Reject when host owns the action row
|
|
17
|
+
- `resolvedByName` — name shown alongside the resolved status tag
|
|
18
|
+
|
|
19
|
+
### `ApprovalStatusTag`
|
|
20
|
+
Standalone badge for resolved batches. Renders a `Tag` component with icon for `approved`, `rejected`, or `cancelled` states; returns `null` while pending. Supports `inlineResolver` to embed `"by {name}"` inside the pill.
|
|
15
21
|
|
|
16
22
|
### `ToolCallRow` (internal)
|
|
17
|
-
|
|
23
|
+
Admin-only collapsible row showing tool icon, command preview, execution status icon, and expandable arguments/result block.
|
|
18
24
|
|
|
19
25
|
### `ExecutionStatusIcon` (internal)
|
|
20
|
-
|
|
21
|
-
- **Pending batch** → hidden
|
|
22
|
-
- **Approved / executing** → `DotsLoaderIcon` (spinner)
|
|
23
|
-
- **Done + success** → green `CheckCircleIcon`
|
|
24
|
-
- **Done + failure** → red `XmarkCircleIcon`
|
|
25
|
-
|
|
26
|
-
### Helper: `getArgEntries`
|
|
27
|
-
Filters tool call arguments, excluding body-level keys (via `COMMAND_BODY_KEYS`) and null/empty values.
|
|
26
|
+
Resolves the correct icon based on batch status and per-tool execution state: `DotsLoaderIcon` while queued/executing, `CheckCircleIcon` on success, `XmarkCircleIcon` on failure.
|
|
28
27
|
|
|
29
28
|
## Usage Example
|
|
30
29
|
|
|
31
30
|
```typescript
|
|
32
|
-
import { ApprovalBatchMessage } from "
|
|
31
|
+
import { ApprovalBatchMessage } from "@openframe/ui"
|
|
33
32
|
|
|
33
|
+
// Admin view — full command preview with execution tracking
|
|
34
34
|
<ApprovalBatchMessage
|
|
35
|
-
data={
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
35
|
+
data={batch.data}
|
|
36
|
+
status={batch.status}
|
|
37
|
+
variant="admin"
|
|
38
|
+
showExecutionStatus
|
|
39
|
+
maxBodyHeight={400}
|
|
40
|
+
resolvedByName="Jane Doe"
|
|
41
|
+
onApprove={async (requestId) => {
|
|
42
|
+
await approveRequest(requestId)
|
|
43
|
+
}}
|
|
44
|
+
onReject={async (requestId) => {
|
|
45
|
+
await rejectRequest(requestId)
|
|
46
46
|
}}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
/>
|
|
48
|
+
|
|
49
|
+
// Client (Fae end-user) view — titles + action buttons only
|
|
50
|
+
<ApprovalBatchMessage
|
|
51
|
+
data={batch.data}
|
|
52
|
+
status={batch.status}
|
|
53
|
+
variant="client"
|
|
54
|
+
resolvedByName="Jane Doe"
|
|
55
|
+
onApprove={handleApprove}
|
|
56
|
+
onReject={handleReject}
|
|
57
|
+
/>
|
|
58
|
+
|
|
59
|
+
// Notification tile — host owns the action row
|
|
60
|
+
<ApprovalBatchMessage
|
|
61
|
+
data={batch.data}
|
|
62
|
+
status={batch.status}
|
|
63
|
+
showFooterActions={false}
|
|
64
|
+
showExecutionStatus={false}
|
|
50
65
|
/>
|
|
51
66
|
```
|
|
@@ -1,45 +1,56 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component that renders an
|
|
1
|
+
<!-- source-hash: 3efe25cb3a6b4446309ff83a123a65c3 -->
|
|
2
|
+
A React component that renders an individual approval request card in two variants — `admin` (technician-facing, shows raw command + structured fields) and `client` (Fae end-user-facing, shows only the human-readable explanation). Both variants switch between a pending state with Approve/Reject actions and a resolved state with a status tag.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
| Export
|
|
7
|
-
|
|
8
|
-
| `ApprovalRequestMessage` | `forwardRef` component
|
|
9
|
-
| `ApprovalCardBody` | Internal
|
|
10
|
-
| `ApprovalFieldList` | Internal
|
|
6
|
+
| Export / Symbol | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `ApprovalRequestMessage` | Primary `forwardRef` component — the main export |
|
|
9
|
+
| `ApprovalCardBody` | Internal shared body (command block + fields/explanation) rendered for the `admin` variant |
|
|
10
|
+
| `ApprovalFieldList` | Internal `<dl>`-based renderer for structured `label/value` field pairs |
|
|
11
|
+
|
|
12
|
+
**Props (`ApprovalRequestMessageProps`):**
|
|
13
|
+
|
|
14
|
+
| Prop | Type | Default | Description |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| `data` | `ApprovalRequestData` | — | Command, fields, explanation, requestId |
|
|
17
|
+
| `status` | `'pending' \| 'approved' \| 'rejected' \| 'cancelled'` | `'pending'` | Controls action vs. resolved UI |
|
|
18
|
+
| `variant` | `'admin' \| 'client'` | `'admin'` | Switches between technician and end-user layout |
|
|
19
|
+
| `onApprove` | `(requestId) => Promise<void>` | — | Callback fired on Approve click |
|
|
20
|
+
| `onReject` | `(requestId) => Promise<void>` | — | Callback fired on Reject click |
|
|
21
|
+
| `resolvedByName` | `string` | — | Name shown in resolved status tag (client variant) |
|
|
22
|
+
| `assistantType` | `string` | — | Accepted for prop parity with batch card; unused internally |
|
|
11
23
|
|
|
12
24
|
## Usage Example
|
|
13
25
|
|
|
14
26
|
```typescript
|
|
15
27
|
import { ApprovalRequestMessage } from "./approval-request-message"
|
|
16
28
|
|
|
17
|
-
//
|
|
29
|
+
// Admin (technician) view — shows command block and structured fields
|
|
18
30
|
<ApprovalRequestMessage
|
|
31
|
+
variant="admin"
|
|
32
|
+
status="pending"
|
|
19
33
|
data={{
|
|
20
|
-
requestId: "
|
|
21
|
-
command: "
|
|
22
|
-
explanation: "Installing nginx on the production web server.",
|
|
34
|
+
requestId: "req_123",
|
|
35
|
+
command: "net user jdoe /domain",
|
|
23
36
|
fields: [
|
|
24
|
-
{ label: "
|
|
25
|
-
{ label: "
|
|
37
|
+
{ label: "Ticket", value: "#4821" },
|
|
38
|
+
{ label: "Requested By", value: "John Doe" },
|
|
26
39
|
],
|
|
27
40
|
}}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
onReject={async (id) => await rejectAction(id)}
|
|
41
|
+
onApprove={async (id) => await approveRequest(id)}
|
|
42
|
+
onReject={async (id) => await rejectRequest(id)}
|
|
31
43
|
/>
|
|
32
44
|
|
|
33
|
-
//
|
|
45
|
+
// Client (Fae end-user) view — shows explanation only
|
|
34
46
|
<ApprovalRequestMessage
|
|
35
|
-
|
|
47
|
+
variant="client"
|
|
36
48
|
status="approved"
|
|
49
|
+
data={{
|
|
50
|
+
requestId: "req_123",
|
|
51
|
+
command: "net user jdoe /domain",
|
|
52
|
+
explanation: "Your technician needs to look up your domain account.",
|
|
53
|
+
}}
|
|
54
|
+
resolvedByName="Alex T."
|
|
37
55
|
/>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Behavior Notes
|
|
41
|
-
|
|
42
|
-
- `status` defaults to `"pending"`; transitions to `"approved"` or `"rejected"` render a `<Tag>` with a `CheckCircle` or `XCircle` icon respectively
|
|
43
|
-
- Both `handleApprove` and `handleReject` set `isProcessing = true` during the async callback, disabling both buttons to prevent double-submission
|
|
44
|
-
- `fields` take rendering priority over `explanation` — if both are provided, only `fields` is shown
|
|
45
|
-
- The command block is scrollable (`max-h-32 overflow-y-auto`) for long commands
|
|
56
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- source-hash: c499bb92cb1ddfd48e76787dd129e08f -->
|
|
2
|
+
Renders the Chat Archive page UI, displaying date-grouped archived dialogs with conditional loading states, and supports both a standalone mode (with its own back/close header) and an embedded mode (headerless, for split layouts).
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `ChatArchivePage`
|
|
7
|
+
Main exported component that orchestrates the archive view. Conditionally renders:
|
|
8
|
+
- **Mobile header** (`ChatPanelHeaderMobile`) — back + close controls on small screens
|
|
9
|
+
- **Desktop header** — fixed-height bar with `ChatHeaderIconButton` cells for back/close
|
|
10
|
+
- **`MingoChatHistory`** — date-grouped dialog list when dialogs exist
|
|
11
|
+
- **`MingoChatHistorySkeleton`** — grouped placeholder during first-load
|
|
12
|
+
- **`ChatListEmptyState`** — archive-specific empty state with `BoxArchiveIcon`
|
|
13
|
+
|
|
14
|
+
### Props Interfaces
|
|
15
|
+
|
|
16
|
+
| Interface | Description |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `ChatArchivePageStandaloneProps` | Requires `onBack` and `onClose`; renders its own header |
|
|
19
|
+
| `ChatArchivePageEmbeddedProps` | Sets `embedded: true`; omits header and forbids `onBack`/`onClose` |
|
|
20
|
+
| `ChatArchivePageBaseProps` | Shared: `dialogs`, `onSelectDialog`, `isLoading`, `isFetching`, `hasMore`, `onLoadMore` |
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// Standalone mode (default)
|
|
26
|
+
<ChatArchivePage
|
|
27
|
+
dialogs={archivedDialogs}
|
|
28
|
+
onSelectDialog={(id) => openDialog(id)}
|
|
29
|
+
onBack={() => setView('list')}
|
|
30
|
+
onClose={() => setPanelOpen(false)}
|
|
31
|
+
isLoading={isLoadingArchive}
|
|
32
|
+
isFetching={isFetchingArchive}
|
|
33
|
+
hasMore={hasNextPage}
|
|
34
|
+
onLoadMore={fetchNextPage}
|
|
35
|
+
/>
|
|
36
|
+
|
|
37
|
+
// Embedded mode (split layout — host provides header)
|
|
38
|
+
<ChatArchivePage
|
|
39
|
+
embedded
|
|
40
|
+
dialogs={archivedDialogs}
|
|
41
|
+
onSelectDialog={(id) => openDialog(id)}
|
|
42
|
+
isLoading={isLoadingArchive}
|
|
43
|
+
/>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Loading State Precedence
|
|
47
|
+
|
|
48
|
+
```mermaid
|
|
49
|
+
graph TD
|
|
50
|
+
A{dialogs.length > 0?} -->|Yes| B[MingoChatHistory]
|
|
51
|
+
A -->|No| C{isLoading?}
|
|
52
|
+
C -->|Yes| D[MingoChatHistorySkeleton]
|
|
53
|
+
C -->|No| E{isFetching?}
|
|
54
|
+
E -->|Yes| F[null - suppress flash]
|
|
55
|
+
E -->|No| G[ChatListEmptyState]
|
|
56
|
+
```
|