@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-H6DFCF44.cjs → chunk-22AED5IC.cjs} +82 -82
- package/dist/{chunk-H6DFCF44.cjs.map → chunk-22AED5IC.cjs.map} +1 -1
- package/dist/{chunk-MGKCS6KS.js → chunk-3WCARCI4.js} +2 -2
- package/dist/{chunk-LNKWY74S.cjs → chunk-4HL6UENH.cjs} +5 -5
- package/dist/{chunk-LNKWY74S.cjs.map → chunk-4HL6UENH.cjs.map} +1 -1
- package/dist/{chunk-Y3Y2DLNO.js → chunk-6UGYBCEN.js} +3 -3
- package/dist/{chunk-BBUEY73L.js → chunk-7I5B5PQ4.js} +6269 -5339
- package/dist/chunk-7I5B5PQ4.js.map +1 -0
- package/dist/{chunk-PSPWT2Q5.js → chunk-7LWXWXEY.js} +4 -4
- package/dist/{chunk-M7O74OWG.cjs → chunk-ACOU5YJI.cjs} +31 -31
- package/dist/{chunk-M7O74OWG.cjs.map → chunk-ACOU5YJI.cjs.map} +1 -1
- package/dist/{chunk-INDFIVDV.cjs → chunk-AHGSN4AT.cjs} +12 -12
- package/dist/{chunk-INDFIVDV.cjs.map → chunk-AHGSN4AT.cjs.map} +1 -1
- package/dist/{chunk-VTSRDC4W.js → chunk-CKC3EAYT.js} +2 -2
- package/dist/{chunk-SASR7SK5.js → chunk-GZK7FWJJ.js} +20 -4
- package/dist/chunk-GZK7FWJJ.js.map +1 -0
- package/dist/{chunk-ZRANZNEA.js → chunk-JJE5TUZK.js} +2 -2
- package/dist/{chunk-66BNAFO6.js → chunk-JQIUBFHL.js} +4 -4
- package/dist/{chunk-MMCBQJKE.cjs → chunk-KUBJHB6I.cjs} +11 -11
- package/dist/{chunk-MMCBQJKE.cjs.map → chunk-KUBJHB6I.cjs.map} +1 -1
- package/dist/{chunk-ZV6E3U3C.cjs → chunk-MRGTMMJ3.cjs} +30 -30
- package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-MRGTMMJ3.cjs.map} +1 -1
- package/dist/{chunk-OZJN54R5.cjs → chunk-NWVKG7QC.cjs} +37 -37
- package/dist/{chunk-OZJN54R5.cjs.map → chunk-NWVKG7QC.cjs.map} +1 -1
- package/dist/{chunk-AN47EIIJ.cjs → chunk-PHTSSHIQ.cjs} +59 -59
- package/dist/{chunk-AN47EIIJ.cjs.map → chunk-PHTSSHIQ.cjs.map} +1 -1
- package/dist/{chunk-N2JZ33V7.cjs → chunk-RUA3OXSJ.cjs} +26 -26
- package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RUA3OXSJ.cjs.map} +1 -1
- package/dist/{chunk-LK623WCC.cjs → chunk-RZPF7MJ2.cjs} +9 -9
- package/dist/{chunk-LK623WCC.cjs.map → chunk-RZPF7MJ2.cjs.map} +1 -1
- package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
- package/dist/chunk-STYA77PH.cjs.map +1 -0
- package/dist/{chunk-JUJY3HQS.cjs → chunk-U37UTLP7.cjs} +19 -19
- package/dist/{chunk-JUJY3HQS.cjs.map → chunk-U37UTLP7.cjs.map} +1 -1
- package/dist/{chunk-2DIOV7BR.js → chunk-UPN6EFOM.js} +4 -4
- package/dist/{chunk-OWMLWJQY.cjs → chunk-VPVOJD5X.cjs} +2432 -1502
- package/dist/chunk-VPVOJD5X.cjs.map +1 -0
- package/dist/{chunk-4SMRQ4SN.js → chunk-WBL5Y4PS.js} +3 -3
- package/dist/{chunk-FP4H6Y5O.js → chunk-WPYPSIY2.js} +3 -3
- package/dist/{chunk-R5WJJL4V.js → chunk-X5X43HFV.js} +5 -5
- package/dist/{chunk-DEHZ5CTC.js → chunk-XTWKDMCG.js} +2 -2
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/captions-url.cjs +12 -0
- package/dist/components/features/captions-url.cjs.map +1 -0
- package/dist/components/features/captions-url.js +10 -0
- package/dist/components/features/captions-url.js.map +1 -0
- package/dist/components/features/card-hit-layer.d.ts +40 -0
- package/dist/components/features/card-hit-layer.d.ts.map +1 -0
- package/dist/components/features/floating-walkthrough-video.d.ts +71 -0
- package/dist/components/features/floating-walkthrough-video.d.ts.map +1 -0
- package/dist/components/features/index.cjs +11 -3
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.d.ts +4 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +12 -4
- package/dist/components/features/use-walkthrough-video.d.ts +16 -0
- package/dist/components/features/use-walkthrough-video.d.ts.map +1 -0
- package/dist/components/features/video-bites-strip.d.ts.map +1 -1
- package/dist/components/features/video-center-badge.d.ts.map +1 -1
- package/dist/components/features/video-hover-preview.d.ts +68 -0
- package/dist/components/features/video-hover-preview.d.ts.map +1 -0
- package/dist/components/features/video.d.ts +78 -40
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/form.d.ts +0 -1
- package/dist/components/form.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +21 -21
- package/dist/components/help-center-pages/index.js +12 -12
- package/dist/components/index.cjs +163 -155
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +18 -10
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/related-content/index.cjs +4 -4
- package/dist/components/related-content/index.js +3 -3
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/button/button-styles.d.ts +2 -0
- package/dist/components/ui/button/button-styles.d.ts.map +1 -1
- package/dist/components/ui/button/button.d.ts +2 -2
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -50
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/components/ui/page-actions.d.ts +2 -1
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/index.cjs +27 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +28 -4
- package/dist/types/supabase.d.ts +80 -0
- package/dist/types/supabase.d.ts.map +1 -1
- package/dist/types/video-processing.d.ts +1 -1
- package/dist/types/video-processing.d.ts.map +1 -1
- package/dist/utils/announcement-storage.d.ts +1 -1
- package/dist/utils/announcement-storage.d.ts.map +1 -1
- package/dist/utils/dismiss-cookie.d.ts +27 -0
- package/dist/utils/dismiss-cookie.d.ts.map +1 -0
- package/dist/utils/dismissal-storage.d.ts +19 -0
- package/dist/utils/dismissal-storage.d.ts.map +1 -0
- package/dist/utils/index.cjs +48 -10
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +41 -11
- package/dist/utils/index.js.map +1 -1
- package/package.json +8 -2
- package/src/.index.md +39 -32
- package/src/.platform-domains.md +65 -0
- package/src/assets/.fae-avatar.md +33 -0
- package/src/assets/.index.md +15 -9
- package/src/components/.agent-mark.md +31 -0
- package/src/components/.announcement-bar.md +47 -35
- package/src/components/.calendar.md +19 -15
- package/src/components/.categories-cart.md +34 -30
- package/src/components/.category-card.md +33 -33
- package/src/components/.chart.md +38 -40
- package/src/components/.command.md +47 -23
- package/src/components/.comment-card.md +31 -26
- package/src/components/.content-loading-container.md +45 -20
- package/src/components/.context-menu.md +45 -31
- package/src/components/.date-time-picker.md +36 -30
- package/src/components/.empty-state.md +31 -31
- package/src/components/.faq-accordion.md +20 -30
- package/src/components/.filter-chip.md +36 -33
- package/src/components/.footer-waitlist-button.md +27 -21
- package/src/components/.footer.md +39 -24
- package/src/components/.form.md +32 -20
- package/src/components/.hero-image-uploader.md +35 -31
- package/src/components/.icon-display.md +53 -0
- package/src/components/.image-cropper.md +34 -33
- package/src/components/.index.md +25 -29
- package/src/components/.logs-list.md +27 -23
- package/src/components/.media-carousel.md +47 -26
- package/src/components/.metric-value.md +27 -24
- package/src/components/.msp-display.md +29 -23
- package/src/components/.open-source-features.md +23 -26
- package/src/components/.pagination.md +44 -39
- package/src/components/.persistent-filter-controls.md +61 -28
- package/src/components/.pricing-display.md +34 -33
- package/src/components/.results-count.md +33 -20
- package/src/components/.smooth-accordion.md +24 -20
- package/src/components/.social-icon-row.md +33 -21
- package/src/components/.sonner.md +40 -25
- package/src/components/.steps.md +39 -25
- package/src/components/.tool-icon.md +34 -21
- package/src/components/.unified-filter-logic.md +32 -36
- package/src/components/.user-display.md +33 -28
- package/src/components/.user-summary-stub.md +40 -33
- package/src/components/.vendor-display-button.md +17 -15
- package/src/components/.vendor-icon.md +17 -25
- package/src/components/.vendor-tag.md +39 -34
- package/src/components/.why-it-matters.md +15 -11
- package/src/components/.yes-no-display.md +36 -31
- package/src/components/authors/.author-detail-view.md +50 -0
- package/src/components/case-studies/.index.md +26 -0
- package/src/components/case-studies/.share-experience-section.md +45 -0
- package/src/components/chat/.approval-batch-message.md +48 -33
- package/src/components/chat/.approval-request-message.md +37 -26
- package/src/components/chat/.chat-archive-page.md +56 -0
- package/src/components/chat/.chat-attachment-bar.md +32 -40
- package/src/components/chat/.chat-composer.md +43 -0
- package/src/components/chat/.chat-container.md +41 -25
- package/src/components/chat/.chat-context-memory-bar.md +53 -0
- package/src/components/chat/.chat-context-picker.md +89 -0
- package/src/components/chat/.chat-header-icon-button.md +43 -0
- package/src/components/chat/.chat-header-search-field.md +51 -0
- package/src/components/chat/.chat-input.md +63 -30
- package/src/components/chat/.chat-list-empty-state.md +44 -0
- package/src/components/chat/.chat-message-enhanced.md +29 -31
- package/src/components/chat/.chat-message-list.md +34 -44
- package/src/components/chat/.chat-message-row.md +56 -0
- package/src/components/chat/.chat-message-skeleton.md +32 -26
- package/src/components/chat/.chat-panel-header-mobile.md +46 -0
- package/src/components/chat/.chat-panel-header.md +80 -0
- package/src/components/chat/.chat-sidebar-skeleton.md +31 -30
- package/src/components/chat/.chat-sidebar.md +36 -29
- package/src/components/chat/.chat-ticket-list.md +38 -23
- package/src/components/chat/.chat-typing-indicator.md +37 -19
- package/src/components/chat/.context-compaction-display.md +19 -15
- package/src/components/chat/.context-items-list.md +57 -0
- package/src/components/chat/.embeddable-chat.md +57 -66
- package/src/components/chat/.error-message-display.md +40 -22
- package/src/components/chat/.guide-mode-banner.md +41 -0
- package/src/components/chat/.guide-welcome.md +43 -0
- package/src/components/chat/.index.md +26 -21
- package/src/components/chat/.mingo-chat-history.md +63 -0
- package/src/components/chat/.mingo-chat-modals.md +44 -0
- package/src/components/chat/.mingo-history-rail.md +63 -0
- package/src/components/chat/.mingo-info-card.md +59 -0
- package/src/components/chat/.mingo-onboarding-card.md +21 -27
- package/src/components/chat/.mingo-welcome.md +60 -0
- package/src/components/chat/.model-display.md +33 -25
- package/src/components/chat/.msp-organization-card-skeleton.md +44 -0
- package/src/components/chat/.msp-organization-card.md +51 -0
- package/src/components/chat/.nav-link-anchor-via-runtime.md +36 -25
- package/src/components/chat/.quick-action-chip.md +60 -0
- package/src/components/chat/.quick-action-marquee.md +53 -0
- package/src/components/chat/.quick-action-wall.md +68 -0
- package/src/components/chat/.remark-mention-chips.md +41 -0
- package/src/components/chat/.slash-command-suggestions.md +30 -36
- package/src/components/chat/.source-action-button.md +28 -25
- package/src/components/chat/.tool-call-blocks.md +18 -30
- package/src/components/chat/.tool-execution-display.md +29 -34
- package/src/components/chat/entity-cards/.admin-content-card.md +29 -22
- package/src/components/chat/entity-cards/.blog-card.md +44 -33
- package/src/components/chat/entity-cards/.blog-image-placeholder.md +20 -18
- package/src/components/chat/entity-cards/.case-study-card.md +24 -33
- package/src/components/chat/entity-cards/.chat-ticket-item.md +39 -22
- package/src/components/chat/entity-cards/.customer-interview-card.md +29 -32
- package/src/components/chat/entity-cards/.data-room-doc-card.md +21 -22
- package/src/components/chat/entity-cards/.dispatch.md +41 -24
- package/src/components/chat/entity-cards/.entity-author-card.md +36 -33
- package/src/components/chat/entity-cards/.entity-portrait-card.md +47 -0
- package/src/components/chat/entity-cards/.generic-entity-card.md +26 -25
- package/src/components/chat/entity-cards/.github-activity-card.md +35 -41
- package/src/components/chat/entity-cards/.hubspot-ticket-card.md +22 -28
- package/src/components/chat/entity-cards/.index.md +33 -44
- package/src/components/chat/entity-cards/.investor-update-card.md +36 -25
- package/src/components/chat/entity-cards/.onboarding-guide-card.md +20 -29
- package/src/components/chat/entity-cards/.product-release-card-defaults.md +26 -19
- package/src/components/chat/entity-cards/.program-card.md +30 -33
- package/src/components/chat/entity-cards/.roadmap-card.md +40 -31
- package/src/components/chat/entity-cards/.roadmap-vote-button.md +33 -36
- package/src/components/chat/entity-cards/.slack-message-card.md +31 -32
- package/src/components/chat/entity-cards/.use-cover-image-fallback.md +47 -0
- package/src/components/chat/entity-cards/.use-entity-card-link.md +51 -0
- package/src/components/chat/entity-cards/.use-entity-card-placeholder.md +47 -0
- package/src/components/chat/entity-cards/.what-i-shipped-card.md +43 -0
- package/src/components/chat/hooks/.index.md +33 -30
- package/src/components/chat/hooks/.use-chat-card-item.md +30 -17
- package/src/components/chat/hooks/.use-chat-dialog-manager.md +59 -0
- package/src/components/chat/hooks/.use-chat-identity.md +37 -25
- package/src/components/chat/hooks/.use-chunk-catchup.md +53 -36
- package/src/components/chat/hooks/.use-empty-state-config.md +39 -0
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +65 -30
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
- package/src/components/chat/hooks/.use-nats-dialog-subscription.md +66 -50
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +58 -31
- package/src/components/chat/hooks/.use-scripted-stream.md +46 -0
- package/src/components/chat/hooks/.use-slash-commands.md +32 -25
- package/src/components/chat/hooks/.use-sse-chat-adapter.md +32 -21
- package/src/components/chat/hooks/.use-unified-chat.md +45 -35
- package/src/components/chat/types/.api.types.md +49 -41
- package/src/components/chat/types/.chat.types.md +56 -34
- package/src/components/chat/types/.component.types.md +36 -36
- package/src/components/chat/types/.context-item.types.md +61 -0
- package/src/components/chat/types/.index.md +32 -17
- package/src/components/chat/types/.message.types.md +44 -45
- package/src/components/chat/types/.network.types.md +46 -46
- package/src/components/chat/types/.processing.types.md +49 -37
- package/src/components/chat/types/.unified-chat-state.types.md +41 -26
- package/src/components/chat/types/entities/.content-ref.md +20 -31
- package/src/components/chat/types/entities/.investor-update.md +14 -16
- package/src/components/chat/types/entities/.onboarding-guide.md +35 -34
- package/src/components/chat/types/entities/.program-types.md +55 -43
- package/src/components/chat/utils/.chip-action-class.md +17 -19
- package/src/components/chat/utils/.chip-styles.md +18 -18
- package/src/components/chat/utils/.chunk-parser.md +48 -37
- package/src/components/chat/utils/.compact-card-classes.md +33 -35
- package/src/components/chat/utils/.execute-navigation.md +49 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +9 -12
- package/src/components/chat/utils/.history-merge.md +65 -0
- package/src/components/chat/utils/.icon-library.md +33 -31
- package/src/components/chat/utils/.icon-registry.md +44 -0
- package/src/components/chat/utils/.index.md +37 -33
- package/src/components/chat/utils/.is-cross-origin-url.md +26 -22
- package/src/components/chat/utils/.message-segment-accumulator.md +46 -25
- package/src/components/chat/utils/.nav-anchor-props.md +29 -34
- package/src/components/chat/utils/.nav-click-handler.md +29 -33
- package/src/components/chat/utils/.process-historical-messages.md +29 -33
- package/src/components/chat/utils/.scripted-stream.md +52 -0
- package/src/components/chat/utils/.source-row-cta.md +32 -31
- package/src/components/chat/utils/.tool-call-helpers.md +25 -17
- package/src/components/contact/.contact-form.md +24 -19
- package/src/components/docs/.doc-navigation-context.md +49 -0
- package/src/components/docs/.doc-viewer.md +64 -0
- package/src/components/docs/.docs-hub-page.md +49 -0
- package/src/components/docs/.index.md +51 -0
- package/src/components/docs/.skeletons.md +47 -0
- package/src/components/docs/.use-docs-resolve-link.md +61 -0
- package/src/components/docs/.use-document-tree.md +83 -0
- package/src/components/docs/.use-scroll-spy.md +58 -0
- package/src/components/embeds/.embed-container.md +45 -0
- package/src/components/embeds/.embed-iframe.md +51 -0
- package/src/components/embeds/.figma-embed.md +43 -0
- package/src/components/embeds/.file-download-card.md +47 -0
- package/src/components/embeds/.google-sheets-viewer.md +40 -0
- package/src/components/embeds/.index.md +58 -0
- package/src/components/embeds/.linkedin-embed-client.md +50 -0
- package/src/components/embeds/.markdown-image.md +40 -0
- package/src/components/embeds/.og-link-preview.md +54 -0
- package/src/components/embeds/.pdf-viewer.md +43 -0
- package/src/components/embeds/.reddit-embed-client.md +40 -0
- package/src/components/embeds/.rich-markdown-runtime.md +53 -0
- package/src/components/embeds/.twitter-embed-client.md +44 -0
- package/src/components/faq/.faq-document-page.md +68 -0
- package/src/components/faq/.faq-section.md +55 -0
- package/src/components/faq/.index.md +29 -0
- package/src/components/faq/.json-ld.md +48 -0
- package/src/components/features/.array-entry-manager.md +32 -24
- package/src/components/features/.auth-providers-list.md +33 -32
- package/src/components/features/.captions-url.md +43 -0
- package/src/components/features/.cards-strip.md +48 -0
- package/src/components/features/.changelog-manager.md +17 -20
- package/src/components/features/.command-box.md +11 -16
- package/src/components/features/.entity-summary-editor.md +20 -15
- package/src/components/features/.entity-tag-badges.md +43 -0
- package/src/components/features/.entity-video-section.md +31 -41
- package/src/components/features/.figma-prototype-viewer.md +55 -37
- package/src/components/features/.filters-dropdown.md +14 -13
- package/src/components/features/.highlight-config-section.md +19 -16
- package/src/components/features/.highlight-video-combined-section.md +28 -19
- package/src/components/features/.highlight-video-preview.md +13 -11
- package/src/components/features/.highlight-video-section.md +26 -22
- package/src/components/features/.index.md +40 -36
- package/src/components/features/.media-gallery-manager.md +37 -35
- package/src/components/features/.mux-origins.md +46 -0
- package/src/components/features/.og-editor-preview.md +29 -24
- package/src/components/features/.os-type-badge-group.md +26 -18
- package/src/components/features/.os-type-badge.md +41 -24
- package/src/components/features/.paths-display.md +42 -25
- package/src/components/features/.platform-badge.md +26 -17
- package/src/components/features/.policy-configuration-panel.md +33 -31
- package/src/components/features/.provider-button.md +29 -20
- package/src/components/features/.push-button-selector.md +39 -41
- package/src/components/features/.release-media-manager.md +41 -34
- package/src/components/features/.section-selector.md +27 -16
- package/src/components/features/.select-button.md +21 -32
- package/src/components/features/.seo-editor-preview.md +49 -36
- package/src/components/features/.social-links-manager.md +40 -18
- package/src/components/features/.start-with-openframe-button.md +30 -32
- package/src/components/features/.status-filter-component.md +29 -38
- package/src/components/features/.tags-selector.md +25 -29
- package/src/components/features/.transcript-summary-editor.md +24 -18
- package/src/components/features/.use-video-warmup.md +47 -0
- package/src/components/features/.video-bites-display.md +36 -37
- package/src/components/features/.video-bites-shared.md +44 -0
- package/src/components/features/.video-bites-strip.md +63 -0
- package/src/components/features/.video-center-badge.md +38 -0
- package/src/components/features/.video-ratio-tabs.md +38 -31
- package/src/components/features/.video-source-selector.md +24 -27
- package/src/components/features/.video.md +35 -27
- package/src/components/features/.waitlist-form.md +39 -33
- package/src/components/features/.warning-block.md +53 -0
- package/src/components/features/ai-enrich/.AIEnrichSection.md +24 -25
- package/src/components/features/ai-enrich/.AIRequiredBadge.md +22 -21
- package/src/components/features/ai-enrich/.AIStatusIndicator.md +42 -35
- package/src/components/features/ai-enrich/.AIWarningsSection.md +23 -20
- package/src/components/features/ai-enrich/.ConfidenceBadge.md +35 -20
- package/src/components/features/auth/.auth-benefits-panel.md +48 -0
- package/src/components/features/auth/.auth-branding.md +51 -0
- package/src/components/features/auth/.auth-shell.md +51 -0
- package/src/components/features/auth/.back-to-login-link.md +48 -0
- package/src/components/features/auth/.complete-account-form.md +45 -0
- package/src/components/features/auth/.create-organization-form.md +53 -0
- package/src/components/features/auth/.index.md +48 -0
- package/src/components/features/auth/.invite-link-invalid-modal.md +42 -0
- package/src/components/features/auth/.login-form.md +42 -0
- package/src/components/features/auth/.openframe-sso-login-form.md +46 -0
- package/src/components/features/auth/.openframe-sso-signup-form.md +51 -0
- package/src/components/features/auth/.password-reset-form.md +57 -0
- package/src/components/features/auth/.sso-auth-shell.md +35 -0
- package/src/components/features/auth/.sso-providers.md +42 -0
- package/src/components/features/auth/.terms-agreement-label.md +28 -0
- package/src/components/features/board/.board-column-header.md +24 -18
- package/src/components/features/board/.board-column.md +32 -32
- package/src/components/features/board/.board-ticket-approval.md +42 -0
- package/src/components/features/board/.board.md +38 -38
- package/src/components/features/board/.index.md +35 -38
- package/src/components/features/board/.ticket-card.md +33 -36
- package/src/components/features/board/.types.md +38 -31
- package/src/components/features/card-hit-layer.tsx +84 -0
- package/src/components/features/floating-walkthrough-video.tsx +891 -0
- package/src/components/features/index.ts +4 -0
- package/src/components/features/notifications/.approval-request-notification-tile.md +45 -0
- package/src/components/features/notifications/.index.md +35 -31
- package/src/components/features/notifications/.notification-drawer.md +32 -19
- package/src/components/features/notifications/.notification-popups.md +51 -0
- package/src/components/features/notifications/.notification-tile.md +43 -27
- package/src/components/features/notifications/.notifications-context.md +42 -45
- package/src/components/features/notifications/.types.md +51 -31
- package/src/components/features/ticket-status-config-list/.ticket-status-config-list.md +51 -0
- package/src/components/features/time-tracker/.index.md +48 -0
- package/src/components/features/time-tracker/.time-tracker-context.md +55 -0
- package/src/components/features/time-tracker/.time-tracker-header-button.md +51 -0
- package/src/components/features/time-tracker/.time-tracker-panel.md +58 -0
- package/src/components/features/time-tracker/.types.md +51 -0
- package/src/components/features/time-tracker/.use-tracker-clock.md +32 -0
- package/src/components/features/use-walkthrough-video.ts +70 -0
- package/src/components/features/video-bites-strip.tsx +46 -146
- package/src/components/features/video-center-badge.tsx +11 -2
- package/src/components/features/video-hover-preview.tsx +201 -0
- package/src/components/features/video.tsx +368 -73
- package/src/components/help-center-pages/.delivery-page.md +51 -0
- package/src/components/help-center-pages/.index.md +51 -0
- package/src/components/help-center-pages/.onboarding-guides-catalog-page.md +53 -0
- package/src/components/help-center-pages/.product-releases-list-page.md +51 -0
- package/src/components/help-center-pages/.roadmap-page.md +46 -0
- package/src/components/icons/.figma-icon.md +13 -7
- package/src/components/icons/.index.md +26 -22
- package/src/components/icons/.vendor-directory-icon.md +30 -18
- package/src/components/icons/.x-logo.md +26 -10
- package/src/components/icons-v2-generated/.index.md +30 -41
- package/src/components/icons-v2-generated/brand-logos/.index.md +25 -19
- package/src/components/icons-v2-generated/communication/.index.md +26 -30
- package/src/components/icons-v2-generated/logos/.flamingo-logo-icon.md +41 -0
- package/src/components/layout/.article-detail-layout.md +32 -21
- package/src/components/layout/.page-container.md +25 -23
- package/src/components/layout/.page-heading.md +48 -0
- package/src/components/layout/.page-layout.md +30 -25
- package/src/components/layout/.title-block.md +43 -24
- package/src/components/loading/.card-skeleton.md +28 -35
- package/src/components/loading/.category-card-skeleton.md +25 -23
- package/src/components/loading/.device-card-skeleton.md +22 -15
- package/src/components/loading/.margin-report-skeleton.md +30 -35
- package/src/components/loading/.openmsp-heartbeat.md +30 -32
- package/src/components/loading/.organization-card-skeleton.md +22 -25
- package/src/components/loading/.organization-icon-skeleton.md +39 -27
- package/src/components/loading/.page-layout-skeleton.md +50 -28
- package/src/components/loading/.unified-skeleton.md +37 -40
- package/src/components/loading/.users-grid-skeleton.md +19 -38
- package/src/components/navigation/.app-header.md +35 -28
- package/src/components/navigation/.app-layout-context.md +48 -0
- package/src/components/navigation/.app-layout-drawer.md +56 -0
- package/src/components/navigation/.app-layout.md +24 -23
- package/src/components/navigation/.header-mingo-button.md +46 -0
- package/src/components/navigation/.header-organization-filter.md +32 -18
- package/src/components/navigation/.header.md +24 -31
- package/src/components/navigation/.index.md +36 -50
- package/src/components/navigation/.mingo-ai-button.md +41 -0
- package/src/components/navigation/.mobile-burger-menu.md +29 -29
- package/src/components/navigation/.mobile-nav-panel.md +41 -49
- package/src/components/navigation/.multi-level-navigation.md +76 -0
- package/src/components/navigation/.navigation-sidebar-item.md +14 -14
- package/src/components/navigation/.navigation-sidebar.md +30 -23
- package/src/components/navigation/.sliding-sidebar.md +30 -25
- package/src/components/navigation/.sticky-section-nav.md +23 -21
- package/src/components/onboarding-guides/.index.md +40 -0
- package/src/components/onboarding-guides/.onboarding-guide-detail-view.md +55 -0
- package/src/components/onboarding-guides/.onboarding-guides-catalog-skeleton.md +33 -0
- package/src/components/onboarding-guides/.onboarding-guides-catalog-view.md +50 -0
- package/src/components/onboarding-guides/hooks/.use-onboarding-guides.md +54 -0
- package/src/components/platform/.CveLink.md +28 -17
- package/src/components/platform/.ScriptArguments.md +18 -23
- package/src/components/platform/.ScriptInfoSection.md +27 -21
- package/src/components/platform/.ShellTypeBadge.md +34 -18
- package/src/components/platform/.SoftwareInfo.md +23 -21
- package/src/components/platform/.ToolBadge.md +18 -16
- package/src/components/profile/.ProfileLoadingSkeleton.md +24 -23
- package/src/components/related-content/.index.md +41 -0
- package/src/components/related-content/.related-content-section.md +62 -0
- package/src/components/shared/.article-author-byline.md +56 -0
- package/src/components/shared/.detail-page-skeleton.md +32 -43
- package/src/components/shared/.media-gallery-strip.md +43 -0
- package/src/components/shared/delivery/.delivery-lists.md +20 -19
- package/src/components/shared/delivery/.delivery-row.md +24 -20
- package/src/components/shared/delivery/.delivery-table.md +20 -22
- package/src/components/shared/dev-section/.dev-card-row.md +28 -36
- package/src/components/shared/dev-section/.dev-section-page.md +36 -25
- package/src/components/shared/dev-section/.dev-section-view.md +32 -22
- package/src/components/shared/doc-search/.doc-search-bar.md +58 -0
- package/src/components/shared/doc-search/.doc-search-result-row.md +50 -0
- package/src/components/shared/doc-search/.format-relative-path.md +30 -0
- package/src/components/shared/doc-search/.index.md +46 -0
- package/src/components/shared/doc-search/.map-doc-search-results.md +44 -0
- package/src/components/shared/doc-search/.resolve-search-result-action.md +52 -0
- package/src/components/shared/doc-search/.types.md +49 -0
- package/src/components/shared/doc-search/.use-doc-search.md +66 -0
- package/src/components/shared/legal-document/.legal-document-page.md +26 -20
- package/src/components/shared/legal-document/.use-legal-docs.md +36 -30
- package/src/components/shared/onboarding/.onboarding-step-card.md +24 -16
- package/src/components/shared/onboarding/.onboarding-walkthrough.md +42 -28
- package/src/components/shared/product-release/.index.md +33 -24
- package/src/components/shared/product-release/.product-release-card-skeleton.md +22 -28
- package/src/components/shared/product-release/.product-release-card.md +28 -29
- package/src/components/shared/product-release/.product-releases-view.md +49 -0
- package/src/components/shared/product-release/.release-detail-page.md +30 -15
- package/src/components/shared/roadmap/.index.md +29 -24
- package/src/components/shared/roadmap/.roadmap-grid.md +43 -54
- package/src/components/shared/roadmap/.roadmap-view.md +41 -0
- package/src/components/shared/roadmap/.use-roadmap-voting.md +27 -17
- package/src/components/switch.tsx +1 -1
- package/src/components/tickets/.help-center-card.md +32 -28
- package/src/components/tickets/.help-center-create-form.md +34 -22
- package/src/components/tickets/.help-center-list.md +36 -25
- package/src/components/tickets/.index.md +30 -45
- package/src/components/tickets/.ticket-center.md +31 -38
- package/src/components/tickets/.ticket-detail-drawer.md +20 -30
- package/src/components/tickets/.ticket-open-form.md +24 -26
- package/src/components/tickets/.ticket-reply-composer.md +51 -0
- package/src/components/tickets/.ticket-row.md +26 -11
- package/src/components/tickets/.types.md +56 -38
- package/src/components/tickets/hooks/.use-ticket-actions.md +60 -47
- package/src/components/tickets/hooks/.use-ticket-engagements.md +27 -27
- package/src/components/tickets/hooks/.use-tickets-list.md +24 -30
- package/src/components/ui/.accordion.md +28 -21
- package/src/components/ui/.actions-menu.md +36 -54
- package/src/components/ui/.ai-generated-badge.md +25 -0
- package/src/components/ui/.alert-dialog.md +21 -16
- package/src/components/ui/.alert.md +30 -25
- package/src/components/ui/.allowed-domains-input.md +26 -15
- package/src/components/ui/.announcement-bar-view.md +46 -0
- package/src/components/ui/.autocomplete.md +40 -27
- package/src/components/ui/.badge.md +34 -31
- package/src/components/ui/.brand-association-card.md +22 -18
- package/src/components/ui/.breadcrumb.md +18 -14
- package/src/components/ui/.bullet-list.md +35 -23
- package/src/components/ui/.card.md +47 -30
- package/src/components/ui/.checkbox-block.md +34 -22
- package/src/components/ui/.checkbox-with-description.md +18 -20
- package/src/components/ui/.chevron-button.md +29 -29
- package/src/components/ui/.circular-progress.md +30 -41
- package/src/components/ui/.color-preset-select.md +54 -0
- package/src/components/ui/.color-swatch.md +37 -0
- package/src/components/ui/.content-loader.md +34 -27
- package/src/components/ui/.crossfade-panels.md +50 -0
- package/src/components/ui/.cursor-pagination.md +38 -26
- package/src/components/ui/.dashboard-info-card.md +46 -27
- package/src/components/ui/.date-picker.md +52 -36
- package/src/components/ui/.device-card-compact.md +23 -20
- package/src/components/ui/.device-card.md +39 -30
- package/src/components/ui/.dialog.md +14 -14
- package/src/components/ui/.drawer.md +45 -39
- package/src/components/ui/.dropdown-button.md +41 -33
- package/src/components/ui/.dropdown-menu.md +40 -23
- package/src/components/ui/.duration-input.md +41 -0
- package/src/components/ui/.entity-image.md +32 -28
- package/src/components/ui/.error-state.md +30 -26
- package/src/components/ui/.fade-preview.md +44 -0
- package/src/components/ui/.field-wrapper.md +34 -23
- package/src/components/ui/.file-upload.md +30 -18
- package/src/components/ui/.filter-modal.md +30 -32
- package/src/components/ui/.filter-pill-row.md +58 -0
- package/src/components/ui/.floating-tooltip.md +27 -32
- package/src/components/ui/.hidden-tags-popup.md +18 -20
- package/src/components/ui/.highlight-card.md +36 -23
- package/src/components/ui/.honeypot-field.md +41 -0
- package/src/components/ui/.hover-dropdown.md +44 -31
- package/src/components/ui/.image-gallery-modal.md +28 -30
- package/src/components/ui/.image-uploader.md +39 -22
- package/src/components/ui/.index.md +33 -31
- package/src/components/ui/.info-card-row.md +50 -0
- package/src/components/ui/.info-card.md +27 -20
- package/src/components/ui/.info-row.md +30 -24
- package/src/components/ui/.info-section.md +63 -0
- package/src/components/ui/.input.md +29 -28
- package/src/components/ui/.label.md +34 -26
- package/src/components/ui/.markdown-editor.md +26 -25
- package/src/components/ui/.marquee-wall.md +64 -0
- package/src/components/ui/.menubar.md +50 -16
- package/src/components/ui/.modal-v2.md +41 -27
- package/src/components/ui/.modal.md +22 -19
- package/src/components/ui/.more-actions-menu.md +30 -24
- package/src/components/ui/.navigation-menu.md +40 -25
- package/src/components/ui/.organization-card.md +46 -27
- package/src/components/ui/.page-actions.md +55 -41
- package/src/components/ui/.page-loader.md +40 -23
- package/src/components/ui/.password-input.md +30 -0
- package/src/components/ui/.phone-input.md +20 -22
- package/src/components/ui/.portal-container.md +43 -0
- package/src/components/ui/.progress-bar.md +40 -27
- package/src/components/ui/.release-changelog-section.md +32 -26
- package/src/components/ui/.rich-markdown-renderer.md +45 -0
- package/src/components/ui/.scroll-fade.md +56 -0
- package/src/components/ui/.search-input.md +55 -37
- package/src/components/ui/.select.md +25 -26
- package/src/components/ui/.service-card.md +25 -19
- package/src/components/ui/.sheet.md +21 -21
- package/src/components/ui/.simple-markdown-renderer.md +36 -24
- package/src/components/ui/.slack-channel-chip.md +49 -0
- package/src/components/ui/.square-avatar.md +29 -26
- package/src/components/ui/.stacked-rows-panel.md +61 -0
- package/src/components/ui/.status-badge.md +30 -24
- package/src/components/ui/.status-indicator.md +35 -21
- package/src/components/ui/.tab-content.md +34 -22
- package/src/components/ui/.tab-navigation.md +40 -50
- package/src/components/ui/.tab-selector.md +48 -31
- package/src/components/ui/.tabs.md +34 -21
- package/src/components/ui/.tag-search-input.md +20 -20
- package/src/components/ui/.tag-select-dropdown.md +59 -0
- package/src/components/ui/.tag.md +25 -43
- package/src/components/ui/.tags-input.md +31 -31
- package/src/components/ui/.textarea.md +32 -30
- package/src/components/ui/.ticket-attachments-list.md +36 -29
- package/src/components/ui/.ticket-info-section.md +37 -42
- package/src/components/ui/.ticket-status-config-row.md +66 -0
- package/src/components/ui/.ticket-status-tag.md +39 -35
- package/src/components/ui/.toaster.md +21 -15
- package/src/components/ui/.toggle.md +38 -37
- package/src/components/ui/.tooltip.md +16 -13
- package/src/components/ui/button/.button-styles.md +17 -18
- package/src/components/ui/button/.button.md +30 -37
- package/src/components/ui/button/.split-button.md +46 -23
- package/src/components/ui/button/button-styles.ts +13 -0
- package/src/components/ui/button/button.tsx +5 -0
- package/src/components/ui/data-table/.data-table-body.md +50 -35
- package/src/components/ui/data-table/.data-table-empty.md +17 -33
- package/src/components/ui/data-table/.data-table-header.md +43 -40
- package/src/components/ui/data-table/.data-table-row.md +31 -31
- package/src/components/ui/data-table/.types.md +23 -28
- package/src/components/ui/file-manager/.file-manager-breadcrumb.md +16 -24
- package/src/components/ui/file-manager/.file-manager-empty.md +23 -15
- package/src/components/ui/file-manager/.file-manager-skeleton.md +34 -36
- package/src/components/ui/file-manager/.file-manager-table-row.md +29 -29
- package/src/components/ui/file-manager/.file-manager-table.md +39 -24
- package/src/components/ui/no-data/.index.md +22 -0
- package/src/components/ui/no-data/.no-data-actions.md +29 -0
- package/src/components/ui/no-data/.no-data-message.md +37 -0
- package/src/components/ui/no-data/.no-data-styles.md +39 -0
- package/src/components/ui/no-data/.no-data.md +59 -0
- package/src/components/ui/page-actions.tsx +2 -1
- package/src/components/ui/query-report-table/.query-report-table-header.md +15 -15
- package/src/components/ui/query-report-table/.query-report-table-row.md +16 -16
- package/src/components/ui/query-report-table/.query-report-table.md +39 -24
- package/src/components/ui/table/.table-column-filter-dropdown.md +15 -9
- package/src/components/ui/table/.table-description-cell.md +13 -12
- package/src/components/ui/table/.table-empty-state.md +19 -20
- package/src/components/ui/table/.table-row.md +30 -20
- package/src/components/ui/table/.table-skeleton.md +32 -27
- package/src/components/ui/table/.table-timestamp-cell.md +24 -23
- package/src/components/ui/table/.table.md +43 -30
- package/src/components/ui/table/.types.md +49 -45
- package/src/components/ui/table/.use-table-motion.md +45 -0
- package/src/contexts/.chat-runtime-context.md +55 -26
- package/src/contexts/.endpoints-runtime-context.md +40 -44
- package/src/embed-shims/.next-navigation.md +38 -31
- package/src/hooks/.api-hooks.md +28 -21
- package/src/hooks/.index.md +30 -25
- package/src/hooks/.use-authed-image-src.md +38 -0
- package/src/hooks/.use-contact-submission.md +35 -36
- package/src/hooks/.use-humanity-signals.md +47 -0
- package/src/hooks/.use-near-viewport.md +30 -30
- package/src/hooks/.use-og-placeholder-url.md +57 -0
- package/src/hooks/.use-scroll-to-hash.md +46 -0
- package/src/hooks/.use-self-fetch.md +52 -0
- package/src/hooks/state/.flatten-schema.md +37 -29
- package/src/hooks/ui/.index.md +37 -25
- package/src/hooks/ui/.use-auto-limit-tags.md +55 -38
- package/src/hooks/ui/.use-deferred-error.md +44 -0
- package/src/hooks/ui/.use-focus-trap.md +59 -0
- package/src/hooks/ui/.use-header-height.md +37 -0
- package/src/hooks/ui/.use-horizontal-scrollbar.md +25 -34
- package/src/hooks/ui/.use-marquee-engine.md +73 -0
- package/src/hooks/ui/.use-notification-permission.md +49 -0
- package/src/hooks/ui/.use-reset-on-page-hidden.md +40 -0
- package/src/hooks/ui/.use-suppress-clone-focus.md +41 -0
- package/src/nats/.index.md +39 -0
- package/src/nats/.nats-provider.md +46 -0
- package/src/nats/.nats.md +38 -28
- package/src/nats/.shared-connection.md +56 -0
- package/src/nats/.use-nats-subscription.md +57 -0
- package/src/stories/.ActionsMenu.stories.md +57 -0
- package/src/stories/.Alert.stories.md +46 -0
- package/src/stories/.AnnouncementBar.stories.md +59 -32
- package/src/stories/.AppLayoutDrawer.stories.md +60 -0
- package/src/stories/.AppLayoutSidebar.stories.md +45 -0
- package/src/stories/.ApprovalBatchMessage.stories.md +46 -0
- package/src/stories/.ApprovalBatchMessageClient.stories.md +55 -0
- package/src/stories/.ApprovalRequestMessage.stories.md +50 -0
- package/src/stories/.ApprovalRequestMessageClient.stories.md +41 -0
- package/src/stories/.BlogCard.stories.md +52 -0
- package/src/stories/.Board.stories.md +25 -20
- package/src/stories/.Button.stories.md +35 -40
- package/src/stories/.CampaignCardAdmin.stories.md +38 -0
- package/src/stories/.CardsStrip.stories.md +39 -0
- package/src/stories/.CaseStudyCard.stories.md +41 -0
- package/src/stories/.ChatContainer.stories.md +41 -0
- package/src/stories/.ChatInlineVideoPill.stories.md +36 -0
- package/src/stories/.ChatMessageEnhanced.stories.md +51 -0
- package/src/stories/.ChatMingoInfoCards.stories.md +30 -0
- package/src/stories/.ChatTicketList.stories.md +38 -22
- package/src/stories/.ChatTypingIndicator.stories.md +47 -0
- package/src/stories/.CheckboxBlock.stories.md +34 -35
- package/src/stories/.ContextCompactionDisplay.stories.md +28 -0
- package/src/stories/.CustomerInterviewCard.stories.md +36 -0
- package/src/stories/.DashboardInfoCard.stories.md +40 -33
- package/src/stories/.DataRoomDocCard.stories.md +42 -0
- package/src/stories/.DataTable.stories.md +37 -32
- package/src/stories/.DatePicker.stories.md +34 -30
- package/src/stories/.EmbeddableChat.stories.md +45 -28
- package/src/stories/.EmptyState.stories.md +55 -0
- package/src/stories/.ErrorMessageDisplay.stories.md +45 -0
- package/src/stories/.FilterModal.stories.md +28 -22
- package/src/stories/.GenericEntityCard.stories.md +50 -0
- package/src/stories/.GitHubActivityCard.stories.md +41 -0
- package/src/stories/.GuideWelcome.stories.md +38 -0
- package/src/stories/.Header.stories.md +32 -22
- package/src/stories/.HubspotTicketCard.stories.md +41 -0
- package/src/stories/.InfoCard.stories.md +37 -26
- package/src/stories/.InfoCardRow.stories.md +48 -0
- package/src/stories/.InfoSection.stories.md +55 -0
- package/src/stories/.Input.stories.md +45 -35
- package/src/stories/.InvestorUpdateCard.stories.md +41 -0
- package/src/stories/.MarqueeWall.stories.md +53 -0
- package/src/stories/.MingoAiButton.stories.md +31 -0
- package/src/stories/.MingoChatModals.stories.md +47 -0
- package/src/stories/.MingoInfoCard.stories.md +50 -0
- package/src/stories/.MingoOnboardingCard.stories.md +19 -19
- package/src/stories/.MingoWelcome.stories.md +41 -0
- package/src/stories/.MobileNavPanel.stories.md +52 -0
- package/src/stories/.Modal.stories.md +19 -16
- package/src/stories/.MspOrganizationCard.stories.md +45 -0
- package/src/stories/.NotificationDrawer.stories.md +39 -28
- package/src/stories/.OSTypeBadge.stories.md +34 -25
- package/src/stories/.OnboardingGuideCard.stories.md +41 -0
- package/src/stories/.PageActions.stories.md +21 -21
- package/src/stories/.PageContainer.stories.md +29 -24
- package/src/stories/.PageLayout.stories.md +18 -35
- package/src/stories/.PolicyConfigurationPanel.stories.md +58 -0
- package/src/stories/.ProductReleaseCard.stories.md +39 -0
- package/src/stories/.ProgramCard.stories.md +51 -0
- package/src/stories/.QuickActionChip.stories.md +59 -0
- package/src/stories/.QuickActionMarquee.stories.md +51 -0
- package/src/stories/.QuickActionWall.stories.md +58 -0
- package/src/stories/.RoadmapCard.stories.md +41 -0
- package/src/stories/.ShellTypeBadge.stories.md +42 -22
- package/src/stories/.SlackMessageCard.stories.md +42 -0
- package/src/stories/.SlashCommandSuggestions.stories.md +21 -31
- package/src/stories/.SplitButton.stories.md +23 -25
- package/src/stories/.StackedRowsPanel.stories.md +65 -0
- package/src/stories/.TabSelector.stories.md +26 -38
- package/src/stories/.Tag.stories.md +32 -27
- package/src/stories/.ThinkingDisplay.stories.md +43 -0
- package/src/stories/.TicketCard.stories.md +60 -0
- package/src/stories/.TicketInfoSection.stories.md +28 -20
- package/src/stories/.TimeTracker.stories.md +35 -0
- package/src/stories/.Toaster.stories.md +26 -20
- package/src/stories/.ToolBadge.stories.md +34 -24
- package/src/stories/.ToolExecutionDisplay.stories.md +22 -20
- package/src/stories/.ToolExecutionDisplayClient.stories.md +33 -0
- package/src/stories/.VideoBitesStrip.stories.md +37 -0
- package/src/stories/.WarningBlock.stories.md +51 -0
- package/src/stories/__fixtures__/.chat-card-decorator.md +39 -0
- package/src/stories/__fixtures__/.chat-cards.md +57 -0
- package/src/stories/auth/.CompleteAccount.stories.md +36 -0
- package/src/stories/auth/.CreateOrganization.stories.md +52 -0
- package/src/stories/auth/.InviteLinkInvalid.stories.md +21 -0
- package/src/stories/auth/.Login.stories.md +32 -0
- package/src/stories/auth/.OpenFrameSso.stories.md +58 -0
- package/src/stories/auth/.PasswordReset.stories.md +49 -0
- package/src/styles/ods-interaction-states.css +32 -0
- package/src/types/.announcement.md +67 -35
- package/src/types/.blog.md +44 -41
- package/src/types/.case-study.md +31 -17
- package/src/types/.content-ref.md +37 -0
- package/src/types/.customer-interview.md +38 -38
- package/src/types/.doc-source.md +87 -0
- package/src/types/.entity-author.md +53 -0
- package/src/types/.entity-platform.md +40 -0
- package/src/types/.index.md +23 -17
- package/src/types/.marketing.md +32 -35
- package/src/types/.navigation.md +31 -19
- package/src/types/.os.types.md +30 -31
- package/src/types/.permissions.md +49 -35
- package/src/types/.platform.md +44 -28
- package/src/types/.product-release.md +59 -42
- package/src/types/.shell.types.md +46 -30
- package/src/types/.supabase.md +43 -29
- package/src/types/.tool.types.md +43 -23
- package/src/types/.video-processing.md +40 -31
- package/src/types/supabase.ts +80 -0
- package/src/types/video-processing.ts +1 -0
- package/src/utils/.announcement-storage.md +49 -17
- package/src/utils/.app-config.md +22 -18
- package/src/utils/.brand-marks.md +46 -0
- package/src/utils/.cn.md +40 -29
- package/src/utils/.color-analysis.md +34 -25
- package/src/utils/.common.md +43 -23
- package/src/utils/.content-href.md +64 -0
- package/src/utils/.content-ref-groups.md +51 -0
- package/src/utils/.date-utils.md +46 -35
- package/src/utils/.doc-path-utils.md +38 -0
- package/src/utils/.doc-tree-nav.md +51 -0
- package/src/utils/.embed-authed-fetch.md +48 -32
- package/src/utils/.embed-content-fetch.md +36 -0
- package/src/utils/.embed-url-converters.md +52 -0
- package/src/utils/.extract-items.md +49 -0
- package/src/utils/.faq-anchor.md +48 -0
- package/src/utils/.format.md +73 -55
- package/src/utils/.humanity-signals.md +59 -0
- package/src/utils/.index.md +73 -31
- package/src/utils/.list-url.md +43 -0
- package/src/utils/.markdown-section-extractor.md +57 -0
- package/src/utils/.markdown-to-plain.md +51 -0
- package/src/utils/.media-carousel-utils-stub.md +42 -31
- package/src/utils/.ods-color-utils.md +84 -43
- package/src/utils/.og-placeholder.md +45 -0
- package/src/utils/.page-header-constants.md +26 -0
- package/src/utils/.platform-config.md +34 -34
- package/src/utils/.release-badge.md +47 -0
- package/src/utils/.release-cover.md +45 -0
- package/src/utils/.same-page-hash-nav.md +45 -0
- package/src/utils/.scroll-into-view.md +32 -25
- package/src/utils/.seo-description.md +37 -0
- package/src/utils/.seo-title.md +25 -0
- package/src/utils/.social-embed-cache.md +37 -0
- package/src/utils/.source-icons.md +30 -34
- package/src/utils/.suggestion-url.md +46 -0
- package/src/utils/.tool-utils.md +39 -24
- package/src/utils/.tree-builder.md +64 -0
- package/src/utils/.video-bite-id.md +42 -0
- package/src/utils/announcement-storage.ts +9 -18
- package/src/utils/dev-sections/.dev-section-param-keys.md +51 -0
- package/src/utils/dev-sections/.openframe-dev-sections.md +40 -28
- package/src/utils/dismiss-cookie.ts +55 -0
- package/src/utils/dismissal-storage.ts +38 -0
- package/src/utils/index.ts +3 -0
- package/dist/chunk-BBUEY73L.js.map +0 -1
- package/dist/chunk-G3UN2DXU.cjs.map +0 -1
- package/dist/chunk-OWMLWJQY.cjs.map +0 -1
- package/dist/chunk-SASR7SK5.js.map +0 -1
- package/src/components/chat/utils/.onboarding-icons.md +0 -28
- package/src/hooks/.use-og-placeholder.md +0 -51
- /package/dist/{chunk-MGKCS6KS.js.map → chunk-3WCARCI4.js.map} +0 -0
- /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-6UGYBCEN.js.map} +0 -0
- /package/dist/{chunk-PSPWT2Q5.js.map → chunk-7LWXWXEY.js.map} +0 -0
- /package/dist/{chunk-VTSRDC4W.js.map → chunk-CKC3EAYT.js.map} +0 -0
- /package/dist/{chunk-ZRANZNEA.js.map → chunk-JJE5TUZK.js.map} +0 -0
- /package/dist/{chunk-66BNAFO6.js.map → chunk-JQIUBFHL.js.map} +0 -0
- /package/dist/{chunk-2DIOV7BR.js.map → chunk-UPN6EFOM.js.map} +0 -0
- /package/dist/{chunk-4SMRQ4SN.js.map → chunk-WBL5Y4PS.js.map} +0 -0
- /package/dist/{chunk-FP4H6Y5O.js.map → chunk-WPYPSIY2.js.map} +0 -0
- /package/dist/{chunk-R5WJJL4V.js.map → chunk-X5X43HFV.js.map} +0 -0
- /package/dist/{chunk-DEHZ5CTC.js.map → chunk-XTWKDMCG.js.map} +0 -0
|
@@ -1,39 +1,56 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 662d570ca898ee06d2fcb44e45351ac9 -->
|
|
2
|
+
Dispatches canonical chat card types to their corresponding React components, serving as the lib-portable rendering layer for inline entity cards within the chat shell.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
### Types
|
|
7
|
-
- **`ChatCardDispatchExtras`** — Host-supplied builders for hub-specific derived props (program configs, product-release prop builder, OG placeholder URL generator)
|
|
8
|
-
- **`ChatCardRenderOptions`** — Per-render options including `baseRoute`, `chipBasePlatform`, `extras`, and the pre-computed `isNewTab` flag
|
|
6
|
+
### Types & Interfaces
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
- **`
|
|
12
|
-
- **`
|
|
13
|
-
- **`SlackChatCard`** — Maps channel name from metadata and renders `SlackMessageCard`
|
|
14
|
-
- **`DataRoomDocChatCard`** — Renders `DataRoomDocCard` with provenance badge resolved via `getSourceLabel`; intentionally falls back to `"Document"` (never `"Data room"`) to avoid false sensitivity labeling
|
|
15
|
-
- **`GenericFinancialChatCard`** — Renders `GenericEntityCard` with badge, color scheme, optional facts list, and subtitle
|
|
16
|
-
- **`ChatInlineVideoPill`** — Inline pill span for video references (non-block contexts)
|
|
8
|
+
- **`ChatCardDispatchExtras`** — Host-supplied builder functions for hub-dependent card props (program configs, product-release props, OG placeholder URLs)
|
|
9
|
+
- **`ChatCardRenderOptions`** — Per-card render options including `baseRoute`, `isNewTab`, `extras`, and `discuss` action
|
|
10
|
+
- **`CardDiscussAction`** — Action descriptor for the "Ask Mingo"/"Display" affordance in card menus
|
|
17
11
|
|
|
18
|
-
###
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
12
|
+
### Internal Components
|
|
13
|
+
|
|
14
|
+
- **`GitHubChatCard`** — Renders GitHub activity cards (commits, PRs, PR reviews) using `MingoInfoCard` with kind-specific icons and review state color variants
|
|
15
|
+
- **`githubKindIcon(kind)`** — Maps `GitHubActivityKind` to the appropriate icon component
|
|
16
|
+
- **`reviewStateToVariant(state)`** — Converts PR review state to a `MingoInfoCardStatus` variant (`success`, `error`, `warning`, `grey`)
|
|
17
|
+
|
|
18
|
+
### Public Entry Points
|
|
19
|
+
|
|
20
|
+
- **`renderChatInlineEntityCard(ref, opts)`** — Top-level dispatch function; hoists video refs to block cards, otherwise renders compact inline cards
|
|
21
|
+
- **`ChatCardLoader`** — Fetch + skeleton + render component for fetch-mode entries
|
|
22
|
+
|
|
23
|
+
### Registry
|
|
24
|
+
|
|
25
|
+
- **`CHAT_CARD_REGISTRY`** — Central map of document types to their card component and skeleton, enabling O(1) dispatch without nested conditionals
|
|
22
26
|
|
|
23
27
|
## Usage Example
|
|
24
28
|
|
|
25
29
|
```typescript
|
|
26
|
-
//
|
|
30
|
+
// Rendering an inline entity card from chat context
|
|
31
|
+
import { renderChatInlineEntityCard } from './dispatch'
|
|
32
|
+
|
|
27
33
|
const card = renderChatInlineEntityCard(chatRef, {
|
|
28
|
-
isNewTab:
|
|
29
|
-
baseRoute: '/
|
|
30
|
-
chipBasePlatform: 'hub',
|
|
34
|
+
isNewTab: false,
|
|
35
|
+
baseRoute: '/hub',
|
|
31
36
|
extras: {
|
|
32
|
-
|
|
33
|
-
buildProductReleaseCardProps: (release) => ({
|
|
34
|
-
|
|
37
|
+
buildOgPlaceholderUrl: (title) => `/api/og?title=${encodeURIComponent(title)}`,
|
|
38
|
+
buildProductReleaseCardProps: (release) => ({ /* hub-derived props */ }),
|
|
39
|
+
programConfigs: {
|
|
40
|
+
podcast: podcastConfig,
|
|
41
|
+
webinar: webinarConfig,
|
|
42
|
+
},
|
|
35
43
|
},
|
|
36
44
|
})
|
|
37
45
|
```
|
|
38
46
|
|
|
39
|
-
|
|
47
|
+
## Adding a New Card Type
|
|
48
|
+
|
|
49
|
+
1. Implement a `size='sm'` branch + skeleton in `./<card>.tsx` (pure presentation, accepts `href` + `targetPlatform`)
|
|
50
|
+
2. Add one entry to `CHAT_CARD_REGISTRY`
|
|
51
|
+
|
|
52
|
+
## Related Files
|
|
53
|
+
|
|
54
|
+
- [`chat-ref.types.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/types/chat-ref.types.ts) — `ChatRef` shape
|
|
55
|
+
- [`nav-click-handler.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/utils/nav-click-handler.ts) — `handleChatNavClick`
|
|
56
|
+
- [`product-release-card-defaults.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/cards/product-release-card-defaults.ts) — Fallback prop builder
|
|
@@ -1,51 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Renders author and publication metadata as a bordered grid card, matching the visual
|
|
1
|
+
<!-- source-hash: 5bff6cdc476cf1a4ab5b1da3aac188eb -->
|
|
2
|
+
Renders author and publication metadata as a bordered grid card, matching the visual layout used on release detail pages. Supports 1–4 cells with responsive column sizing.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
### `EntityAuthorCard` (default export)
|
|
7
|
+
Main composer component. Renders a bordered grid with optional extra cells, a publication date cell, and an author cell. Returns `null` when `author` is empty unless `renderEmptyAuthor` is set.
|
|
8
|
+
|
|
9
|
+
### `EntityMetadataValueCell`
|
|
10
|
+
Standalone value cell: large `text-h4` label (uppercase by default) above a secondary `DM_Sans` 14px descriptor. Used for Type, Status, Date, or custom `extraCells`.
|
|
11
|
+
|
|
12
|
+
### `EntityMetadataAuthorCell`
|
|
13
|
+
Avatar + name + role label cell. Wraps the name in a link only when both `authorHref` and a real (non-placeholder) name are present — prevents linking placeholder text like "Unknown Author".
|
|
14
|
+
|
|
15
|
+
### `EMPTY_AUTHOR_PLACEHOLDER`
|
|
16
|
+
Exported constant (`full_name: '—'`, `job_title: 'Unknown'`) used by catalog grids that require a fixed skeleton shape when no author is available.
|
|
17
|
+
|
|
18
|
+
### `EntityAuthorCardProps`
|
|
19
|
+
Full prop interface. Key props:
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `author` | `EntityAuthor \| null` | Author data |
|
|
24
|
+
| `publishedAt` | `string \| Date \| null` | Triggers 2-cell (Published + Author) layout |
|
|
25
|
+
| `extraCells` | `Array<{value, label, uppercase?}>` | Prepended value cells (e.g. Section, Step) |
|
|
26
|
+
| `authorHref` | `string` | Link URL for author name |
|
|
27
|
+
| `renderEmptyAuthor` | `boolean` | Force render with placeholder when author is absent |
|
|
13
28
|
|
|
14
29
|
## Usage Example
|
|
15
30
|
|
|
16
31
|
```typescript
|
|
17
|
-
//
|
|
32
|
+
// Two-cell: Published + Author
|
|
18
33
|
<EntityAuthorCard
|
|
19
|
-
author={{ full_name: '
|
|
20
|
-
/>
|
|
21
|
-
|
|
22
|
-
// With publication date (2-cell grid)
|
|
23
|
-
<EntityAuthorCard
|
|
24
|
-
author={{ full_name: 'Ada Lovelace', avatar_url: null, job_title: null }}
|
|
34
|
+
author={{ full_name: 'Jane Doe', avatar_url: '/avatar.jpg', job_title: 'Engineer' }}
|
|
25
35
|
publishedAt="2024-06-01"
|
|
26
|
-
|
|
27
|
-
roleLabel="Contributor"
|
|
36
|
+
authorHref="/authors/jane-doe"
|
|
28
37
|
/>
|
|
29
38
|
|
|
30
|
-
//
|
|
39
|
+
// Four-cell: Section + Step + Published + Author
|
|
31
40
|
<EntityAuthorCard
|
|
32
|
-
author={author}
|
|
33
|
-
publishedAt={guide.
|
|
41
|
+
author={guide.author}
|
|
42
|
+
publishedAt={guide.published_at}
|
|
34
43
|
extraCells={[
|
|
35
|
-
{ value: '
|
|
36
|
-
{ value: '3',
|
|
44
|
+
{ value: 'Setup', label: 'Section' },
|
|
45
|
+
{ value: '3', label: 'Step' },
|
|
37
46
|
]}
|
|
38
|
-
/>
|
|
39
|
-
|
|
40
|
-
// Skeleton-safe: render even when author is absent
|
|
41
|
-
<EntityAuthorCard
|
|
42
|
-
author={null}
|
|
43
47
|
renderEmptyAuthor
|
|
44
48
|
/>
|
|
45
|
-
```
|
|
46
49
|
|
|
47
|
-
|
|
50
|
+
// Author-only (no date), placeholder fallback
|
|
51
|
+
<EntityAuthorCard author={null} renderEmptyAuthor />
|
|
52
|
+
```
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
- Grid columns (`md:grid-cols-1` → `md:grid-cols-4`) are computed at render time so Tailwind JIT picks up the literal class strings at build.
|
|
51
|
-
- Invalid date strings from `formatDate` are silently suppressed — the Published cell is hidden rather than showing `"Invalid Date"`.
|
|
54
|
+
**Source:** [`entity-author-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/entity-author-card.tsx)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!-- source-hash: 04c12d798410d197c90950258dda5c3e -->
|
|
2
|
+
Shared portrait-density card anatomy used by all entity card types (`size="portrait"`), encoding media zone, title zone, and footer zone layout exactly once to prevent per-card drift.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Interfaces
|
|
7
|
+
|
|
8
|
+
- **`EntityPortraitPerson`** — Author/person data: `name`, optional `avatarUrl`, `subtitle`, and `iconOverlayUrl` (small round overlay on avatar bottom-right, e.g. MSP company icon)
|
|
9
|
+
- **`EntityPortraitCardProps`** — Full card props: `href`, `typeLabel` (content-type chip), `imageUrl`, `placeholderUrl`, `title`, `titleClassName` (typography override per entity), `person`, and `className`
|
|
10
|
+
|
|
11
|
+
### Component
|
|
12
|
+
|
|
13
|
+
- **`EntityPortraitCard`** — Renders three fixed anatomical zones inside a hover-styled `Card`:
|
|
14
|
+
- **Media zone** (`aspect-[1200/630]`): Wide covers fill `object-cover`; non-wide covers (e.g. square podcast art) render `object-contain` on an edge-sampled background color via `useImageEdgeColor`
|
|
15
|
+
- **Title zone** (`h-[72px]`): Optional `StatusBadge` eyebrow chip + 2- or 3-line clamped title with per-entity `titleClassName`
|
|
16
|
+
- **Footer zone** (`h-[60px]`): Avatar (or initial fallback) + name + subtitle, with optional `iconOverlayUrl` overlay
|
|
17
|
+
|
|
18
|
+
### Constants
|
|
19
|
+
|
|
20
|
+
- **`MIN_WIDE_RATIO`** (`1.3`) — Aspect ratio threshold distinguishing wide OG-style covers from square/portrait artwork
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { EntityPortraitCard } from './entity-portrait-card'
|
|
26
|
+
|
|
27
|
+
<EntityPortraitCard
|
|
28
|
+
href="/case-studies/acme-corp"
|
|
29
|
+
typeLabel="Case Study"
|
|
30
|
+
imageUrl="https://cdn.example.com/covers/acme-1200x630.jpg"
|
|
31
|
+
placeholderUrl="https://cdn.example.com/og-fallback.jpg"
|
|
32
|
+
imageAlt="Acme Corp case study cover"
|
|
33
|
+
title="How Acme Corp reduced IT tickets by 60%"
|
|
34
|
+
person={{
|
|
35
|
+
name: "Jane Smith",
|
|
36
|
+
avatarUrl: "https://cdn.example.com/avatars/jane.jpg",
|
|
37
|
+
subtitle: "IT Director, Acme Corp",
|
|
38
|
+
iconOverlayUrl: "https://cdn.example.com/logos/acme-icon.png",
|
|
39
|
+
}}
|
|
40
|
+
/>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Notes
|
|
44
|
+
|
|
45
|
+
- The `typeLabel` prop should be omitted on single-type rails (all cards are the same content type) and passed only on mixed-type rails
|
|
46
|
+
- Cover image resolution follows the shared `useCoverImageFallback` chain: real image → `placeholderUrl` → hidden
|
|
47
|
+
- The footer zone renders an empty fixed-height box even when `person` is `null`, preserving baseline alignment across a rail
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A pure-presentation React component that renders a compact, reusable entity card for chat
|
|
1
|
+
<!-- source-hash: bb992ce717c9d3fc2ce3e4ae967ccebd -->
|
|
2
|
+
A pure-presentation React component that renders a compact, reusable entity/document card for chat interfaces, supporting optional links, status badges, key-value facts, and a loading skeleton state.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `GenericEntityCard`
|
|
7
|
-
Main card component. Renders as an `<a>`
|
|
7
|
+
Main card component. Renders as an `<a>` (with `anchorProps` or derived `href`) or a static `<span>` when no URL is available. Displays title, optional badge, subtitle, preview text, fact rows, and a formatted date.
|
|
8
8
|
|
|
9
9
|
### `GenericEntityCardSkeleton`
|
|
10
|
-
|
|
10
|
+
Shimmer/placeholder version of the card for loading states, matching the layout of the full card.
|
|
11
11
|
|
|
12
12
|
### Interfaces
|
|
13
13
|
|
|
@@ -15,48 +15,49 @@ Animated placeholder component that mirrors the layout of `GenericEntityCard` fo
|
|
|
15
15
|
|---|---|
|
|
16
16
|
| `GenericEntityCardItem` | Data shape for the card content |
|
|
17
17
|
| `GenericEntityCardAnchorProps` | Pre-composed anchor element props (href, target, rel, onClick) |
|
|
18
|
-
| `GenericEntityCardProps` | Combined props for
|
|
18
|
+
| `GenericEntityCardProps` | Combined props for `GenericEntityCard` |
|
|
19
19
|
|
|
20
20
|
### `GenericEntityCardItem` Fields
|
|
21
21
|
|
|
22
22
|
| Field | Type | Description |
|
|
23
23
|
|---|---|---|
|
|
24
|
+
| `id` | `string` | Unique identifier |
|
|
24
25
|
| `title` | `string` | Primary heading |
|
|
25
|
-
| `preview` | `string \| null` |
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
26
|
+
| `preview` | `string \| null` | 2-line clamped body text |
|
|
27
|
+
| `url` | `string \| null` | Link target (sanitized via `safeHref`) |
|
|
28
|
+
| `subtitle` | `string \| null` | Monospace secondary line |
|
|
29
|
+
| `badge` | `{ text, scheme? } \| null` | Status badge with color scheme |
|
|
30
|
+
| `facts` | `Array<{ label, value }>` | Inline key-value pairs |
|
|
31
|
+
| `dateUpdated` | `string \| number \| null` | Formatted as local UTC date |
|
|
31
32
|
|
|
32
33
|
## Usage Example
|
|
33
34
|
|
|
34
35
|
```typescript
|
|
35
36
|
import { GenericEntityCard, GenericEntityCardSkeleton } from './generic-entity-card'
|
|
36
37
|
|
|
37
|
-
//
|
|
38
|
+
// With external link controlled by parent
|
|
38
39
|
<GenericEntityCard
|
|
39
40
|
item={{
|
|
40
41
|
id: 'ticket-42',
|
|
41
|
-
title: 'Printer offline
|
|
42
|
-
subtitle: 'TKT-
|
|
43
|
-
preview: 'User reports printer is unreachable since 9am.',
|
|
42
|
+
title: 'Printer offline – HQ Floor 2',
|
|
43
|
+
subtitle: 'TKT-00042',
|
|
44
44
|
badge: { text: 'Open', scheme: 'warning' },
|
|
45
|
+
preview: 'User reports printer is not responding since 09:00.',
|
|
45
46
|
facts: [{ label: 'Priority', value: 'High' }],
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
url: 'https://psa.example.com/tickets/42',
|
|
48
|
+
dateUpdated: '2024-06-01T09:00:00Z',
|
|
48
49
|
}}
|
|
49
|
-
/>
|
|
50
|
-
|
|
51
|
-
// Custom anchor props (e.g. SPA router navigation)
|
|
52
|
-
<GenericEntityCard
|
|
53
|
-
item={item}
|
|
54
50
|
anchorProps={{
|
|
55
|
-
href: '/tickets/42',
|
|
56
|
-
|
|
51
|
+
href: 'https://psa.example.com/tickets/42',
|
|
52
|
+
target: '_blank',
|
|
53
|
+
rel: 'noopener noreferrer',
|
|
57
54
|
}}
|
|
58
55
|
/>
|
|
59
56
|
|
|
60
57
|
// Loading state
|
|
61
58
|
<GenericEntityCardSkeleton />
|
|
62
|
-
```
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Source
|
|
62
|
+
|
|
63
|
+
[`generic-entity-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/generic-entity-card.tsx)
|
|
@@ -1,51 +1,50 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A pure-presentation React component that renders GitHub activity
|
|
1
|
+
<!-- source-hash: 76bf0c6e541cd02e03174f0063150c97 -->
|
|
2
|
+
A pure-presentation React component that renders GitHub activity (commits, pull requests, and PR reviews) as a unified visual card in two layout variants: a horizontal `row` for list views and a `compact` inline card for chat markers.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
###
|
|
6
|
+
### `GitHubActivityCard`
|
|
7
|
+
Main export. Renders a `GitHubActivityItem` in either `"row"` or `"compact"` variant. Accepts an optional `anchorProps` bundle from the caller (e.g., a `useNavLink` hook) to control navigation without internal routing logic.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
| `GitHubActivityCard` | Component | Main card renderer supporting `row` and `compact` variants |
|
|
11
|
-
| `GitHubActivityCardSkeleton` | Component | Animated loading placeholder matching both variants |
|
|
12
|
-
| `GitHubActivityCardAnchorProps` | Interface | Pre-composed `<a>` prop bundle passed from caller navigation hooks |
|
|
13
|
-
| `GitHubActivityCardProps` | Interface | Full props shape for `GitHubActivityCard` |
|
|
9
|
+
### `GitHubActivityCardSkeleton`
|
|
10
|
+
Loading placeholder matching the layout of `GitHubActivityCard` for both variants.
|
|
14
11
|
|
|
15
|
-
###
|
|
12
|
+
### Exported Utilities
|
|
16
13
|
|
|
17
|
-
|
|
|
18
|
-
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `parseGithubTitle` | Parses bracket-prefixed tags (e.g. `[Review:APPROVED]`) from titles without regex backtracking |
|
|
24
|
-
| `ReviewStateBadge` | Renders a color-coded badge for PR review states (`APPROVED`, `CHANGES_REQUESTED`, etc.) |
|
|
14
|
+
| Function | Description |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `kindLabel(kind)` | Maps `GitHubActivityKind` → `"Commit"` / `"PR"` / `"Review"` |
|
|
17
|
+
| `formatActivityId(id, kind)` | Shortens a SHA to 7 chars or prefixes PR/review IDs with `#` |
|
|
18
|
+
| `parseGithubTitle(title, kind)` | Strips bracket prefix tags (e.g., `[Review:APPROVED]`), returns display text and `PrReviewState` |
|
|
19
|
+
| `reviewStateLabel(state)` | Maps `PrReviewState` → human label (`"Approved"`, `"Changes"`, etc.) |
|
|
25
20
|
|
|
26
21
|
## Usage Example
|
|
27
22
|
|
|
28
23
|
```typescript
|
|
29
|
-
import { GitHubActivityCard
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
24
|
+
import { GitHubActivityCard } from './github-activity-card'
|
|
25
|
+
import type { GitHubActivityItem } from '../types/entities/github-activity'
|
|
26
|
+
|
|
27
|
+
const item: GitHubActivityItem = {
|
|
28
|
+
kind: 'pull_request',
|
|
29
|
+
id: '42',
|
|
30
|
+
title: 'Fix auth token refresh',
|
|
31
|
+
repo: 'flamingo-stack/openframe-oss-lib',
|
|
32
|
+
url: 'https://github.com/flamingo-stack/openframe-oss-lib/pull/42',
|
|
33
|
+
dateUpdated: '2024-11-01T12:00:00Z',
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Compact card (chat inline)
|
|
37
|
+
<GitHubActivityCard item={item} variant="compact" />
|
|
38
|
+
|
|
39
|
+
// Row with caller-controlled navigation
|
|
43
40
|
<GitHubActivityCard
|
|
41
|
+
item={item}
|
|
44
42
|
variant="row"
|
|
45
|
-
item={activityItem}
|
|
46
43
|
anchorProps={{
|
|
47
|
-
href:
|
|
48
|
-
|
|
44
|
+
href: item.url,
|
|
45
|
+
target: '_blank',
|
|
46
|
+
rel: 'noopener noreferrer',
|
|
47
|
+
onClick: (e) => handleNav(e),
|
|
49
48
|
}}
|
|
50
49
|
/>
|
|
51
50
|
|
|
@@ -53,9 +52,4 @@ import { GitHubActivityCard, GitHubActivityCardSkeleton } from './github-activit
|
|
|
53
52
|
<GitHubActivityCardSkeleton variant="row" />
|
|
54
53
|
```
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
| Variant | Use Case |
|
|
59
|
-
|---------|----------|
|
|
60
|
-
| `compact` | Chat inline markers (`[card://github_commit:<sha>]`) |
|
|
61
|
-
| `row` | Activity list rows in employee detail views |
|
|
55
|
+
**Source:** [`github-activity-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/github-activity-card.tsx)
|
|
@@ -1,53 +1,47 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: fa39082d0ecd56100a736a21747fae80 -->
|
|
2
|
+
Unified presentation component for rendering HubSpot ticket data as a card or inline row, with no internal navigation logic — link behavior is fully delegated to the caller via `anchorProps`.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `HubspotTicketCard`
|
|
7
|
-
|
|
8
|
-
- **`compact`** (default)
|
|
9
|
-
- **`row
|
|
10
|
-
|
|
11
|
-
Accepts an `anchorProps` bundle for caller-controlled navigation (e.g. from a runtime hook), falling back to a plain `<a>` using `item.url`, or a static `<span>` if no URL is available.
|
|
7
|
+
Primary export. Renders a `HubspotTicketItem` in one of two layouts:
|
|
8
|
+
- **`compact`** (default): Full card with title, priority/status badges, customer email, preview text, company, and date. Links via `anchorProps`, a derived `href`, or renders as a static `<span>` if no URL is available.
|
|
9
|
+
- **`row`**: Minimal inline layout — title, preview snippet, status badge, and date — suited for list or table rows.
|
|
12
10
|
|
|
13
11
|
### `HubspotTicketCardSkeleton`
|
|
14
|
-
|
|
12
|
+
Loading placeholder matching the `compact` or `row` layout with animated pulse shimmer blocks.
|
|
13
|
+
|
|
14
|
+
### Helper functions
|
|
15
15
|
|
|
16
|
-
### Helper Functions
|
|
17
16
|
| Function | Purpose |
|
|
18
17
|
|---|---|
|
|
19
|
-
| `formatToken` | Normalizes `
|
|
20
|
-
| `priorityScheme` | Maps `URGENT/HIGH/MEDIUM/
|
|
21
|
-
| `statusScheme` | Maps `CLOSED/OPEN
|
|
18
|
+
| `formatToken` | Normalizes `SNAKE_CASE` enum strings to `Title case` for display |
|
|
19
|
+
| `priorityScheme` | Maps `URGENT / HIGH / MEDIUM / …` to badge color variants |
|
|
20
|
+
| `statusScheme` | Maps `CLOSED / OPEN / …` to badge color variants |
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
### Interfaces
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
item: HubspotTicketItem // Ticket data shape
|
|
28
|
-
variant?: 'row' | 'compact' // Layout mode (default: 'compact')
|
|
29
|
-
className?: string
|
|
30
|
-
anchorProps?: HubspotTicketCardAnchorProps // Caller-controlled <a> props
|
|
31
|
-
}
|
|
32
|
-
```
|
|
24
|
+
- **`HubspotTicketCardAnchorProps`** — `href`, optional `target`, `rel`, and `onClick` passed through to the rendered `<a>`.
|
|
25
|
+
- **`HubspotTicketCardProps`** — `item`, `variant`, `className`, `anchorProps`.
|
|
33
26
|
|
|
34
27
|
## Usage Example
|
|
35
28
|
|
|
36
29
|
```typescript
|
|
37
|
-
// Compact card
|
|
30
|
+
// Compact card driven by caller-composed anchor props
|
|
38
31
|
<HubspotTicketCard
|
|
39
|
-
item={
|
|
32
|
+
item={ticketItem}
|
|
33
|
+
variant="compact"
|
|
40
34
|
anchorProps={{
|
|
41
|
-
href:
|
|
35
|
+
href: ticketItem.url,
|
|
42
36
|
target: '_blank',
|
|
43
37
|
rel: 'noopener noreferrer',
|
|
44
|
-
onClick: (e) => handleTicketClick(e,
|
|
38
|
+
onClick: (e) => handleTicketClick(e, ticketItem.id),
|
|
45
39
|
}}
|
|
46
40
|
/>
|
|
47
41
|
|
|
48
|
-
// Inline row variant (e.g. inside a list)
|
|
49
|
-
<HubspotTicketCard item={
|
|
42
|
+
// Inline row variant (e.g. inside a search result list)
|
|
43
|
+
<HubspotTicketCard item={ticketItem} variant="row" />
|
|
50
44
|
|
|
51
|
-
//
|
|
45
|
+
// Skeleton while data loads
|
|
52
46
|
<HubspotTicketCardSkeleton variant="compact" />
|
|
53
47
|
```
|
|
@@ -1,66 +1,55 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Barrel
|
|
1
|
+
<!-- source-hash: 791f7cf08b31a1737cab8b5f7f5f9512 -->
|
|
2
|
+
Barrel file that consolidates all chat-surface entity card components, primitives, and utilities into a single import path for consumers.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### Supporting Primitives
|
|
7
|
-
- **`EntityAuthorCard`** —
|
|
8
|
-
- **`
|
|
7
|
+
- **`EntityAuthorCard`** — Author display card with metadata cells (`EntityMetadataValueCell`, `EntityMetadataAuthorCell`)
|
|
8
|
+
- **`EntityPortraitCard`** — Portrait-style entity card with person data
|
|
9
|
+
- **`BlogImagePlaceholder`** — Placeholder component for blog cover images
|
|
10
|
+
- **`useCoverImageFallback` / `hideOnError`** — Hook and utility for cover image error handling
|
|
9
11
|
- **`AdminContentCard`** — Admin-facing content card
|
|
12
|
+
- **`WhatIShippedCard`** — Shipped-item card with skeleton loader
|
|
10
13
|
|
|
11
|
-
###
|
|
12
|
-
- **`BlockCard`** —
|
|
13
|
-
- **`
|
|
14
|
-
- **`
|
|
14
|
+
### Chat Surface Cards
|
|
15
|
+
- **`BlockCard`**, **`ChatTicketItem`**, **`ChatVideoEntityCard`** — Flat inline chat cards
|
|
16
|
+
- **`ProductReleaseCard`** — Release card with size variants and prop builders (`defaultBuildProductReleaseCardProps`, `buildProductReleaseCardProps`)
|
|
17
|
+
- **`BlogCard`**, **`CaseStudyCard`**, **`CustomerInterviewCard`**, **`InvestorUpdateCard`** — Content-type cards with skeleton loaders
|
|
18
|
+
- **`OnboardingGuideCard`**, **`RoadmapCard`**, **`GitHubActivityCard`**, **`SlackMessageCard`** — Operational entity cards
|
|
19
|
+
- **`HubspotTicketCard`**, **`DataRoomDocCard`**, **`ProgramCard`**, **`CampaignCardAdmin`**, **`GenericEntityCard`** — Integration and generic cards
|
|
15
20
|
|
|
16
|
-
###
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
| `BlogCard` | `BlogCardSkeleton` | — |
|
|
20
|
-
| `CaseStudyCard` | `CaseStudyCardSkeleton` | — |
|
|
21
|
-
| `CustomerInterviewCard` | `CustomerInterviewCardSkeleton` | — |
|
|
22
|
-
| `InvestorUpdateCard` | `InvestorUpdateCardSkeleton` | — |
|
|
23
|
-
| `OnboardingGuideCard` | `OnboardingGuideCardSkeleton` | — |
|
|
24
|
-
| `RoadmapCard` | `RoadmapCardSkeleton` | Includes `VoteType` + `RoadmapVoteButton` |
|
|
25
|
-
| `GitHubActivityCard` | `GitHubActivityCardSkeleton` | — |
|
|
26
|
-
| `SlackMessageCard` | `SlackMessageCardSkeleton` | — |
|
|
27
|
-
| `HubspotTicketCard` | `HubspotTicketCardSkeleton` | — |
|
|
28
|
-
| `DataRoomDocCard` | `DataRoomDocCardSkeleton` | — |
|
|
29
|
-
| `ProgramCard` | `ProgramCardSkeleton` | — |
|
|
30
|
-
| `CampaignCardAdmin` | `CampaignCardAdminSkeleton` | — |
|
|
31
|
-
| `GenericEntityCard` | `GenericEntityCardSkeleton` | Fallback catch-all |
|
|
21
|
+
### Dispatch System
|
|
22
|
+
- **`renderChatInlineEntityCard`** — Function that resolves and renders the correct card for a given entity type
|
|
23
|
+
- **`ChatCardLoader`** — Component wrapper driven by `CHAT_CARD_REGISTRY` in `dispatch.tsx`
|
|
32
24
|
|
|
33
|
-
###
|
|
34
|
-
- **`
|
|
35
|
-
- **`
|
|
25
|
+
### Utilities
|
|
26
|
+
- **`programItemToStripProfile`** — Adapter converting program items to strip profile format
|
|
27
|
+
- **`TaskTypeIcon`**, **`RoadmapVoteButton`** — Shared UI primitives used across card types
|
|
36
28
|
|
|
37
29
|
## Usage Example
|
|
38
30
|
|
|
39
31
|
```typescript
|
|
40
|
-
// Single import replaces per-directory imports
|
|
41
32
|
import {
|
|
42
33
|
BlogCard,
|
|
43
34
|
BlogCardSkeleton,
|
|
44
|
-
|
|
35
|
+
ProductReleaseCard,
|
|
36
|
+
buildProductReleaseCardProps,
|
|
45
37
|
ChatCardLoader,
|
|
46
38
|
renderChatInlineEntityCard,
|
|
47
39
|
type BlogCardProps,
|
|
48
|
-
|
|
49
|
-
} from '@/components/entity-cards'
|
|
40
|
+
} from '@openframe/lib/entity-cards'
|
|
50
41
|
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
</NavLinkAnchor>
|
|
57
|
-
)
|
|
58
|
-
}
|
|
42
|
+
// Render a blog card — consumer provides the anchor wrapper
|
|
43
|
+
const props: BlogCardProps = { href: '/blog/my-post', title: 'Hello', coverUrl: '...' }
|
|
44
|
+
;<NavLinkAnchor href={props.href}>
|
|
45
|
+
<BlogCard {...props} />
|
|
46
|
+
</NavLinkAnchor>
|
|
59
47
|
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
// Dispatch a card by entity type in a chat surface
|
|
49
|
+
renderChatInlineEntityCard({ type: 'blog', entity: blogEntity }, options)
|
|
50
|
+
|
|
51
|
+
// Build rich product release card props
|
|
52
|
+
const cardProps = buildProductReleaseCardProps(release, { size: 'lg' })
|
|
64
53
|
```
|
|
65
54
|
|
|
66
|
-
> **Design contract:** All cards in this directory are
|
|
55
|
+
> **Design contract:** All cards in this directory are pure-presentation components — they accept a pre-resolved `href` and entity data as props and contain no internal navigation logic. Consumers are responsible for wrapping cards with their own anchor components (`NavLinkAnchor` or `NavLinkAnchorViaRuntime`).
|