@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,28 +1,29 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 90ecdb57b252e70aaadc1195c206d309 -->
|
|
2
|
+
A reusable card component for displaying admin content items (articles, posts, resources) with a cover image, metadata, platform badges, and action slots.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `AdminContentCard`
|
|
7
|
-
|
|
7
|
+
The primary exported component rendering a styled card with hover animations and dynamic image handling.
|
|
8
8
|
|
|
9
9
|
### `AdminContentCardProps`
|
|
10
10
|
| Prop | Type | Description |
|
|
11
11
|
|------|------|-------------|
|
|
12
12
|
| `imageUrl` | `string \| null` | Primary cover image URL |
|
|
13
|
-
| `placeholderUrl` | `string \| null` | Fallback image URL when `imageUrl` is
|
|
14
|
-
| `title` | `string` |
|
|
15
|
-
| `summary` | `string \| null` |
|
|
13
|
+
| `placeholderUrl` | `string \| null` | Fallback image URL when `imageUrl` is absent or fails |
|
|
14
|
+
| `title` | `string` | Card heading and image alt text |
|
|
15
|
+
| `summary` | `string \| null` | Optional description (2-line clamp) |
|
|
16
16
|
| `subtitle` | `string \| null` | Secondary line (e.g. customer name) |
|
|
17
|
-
| `platforms` | `PlatformInfo[]` | Renders
|
|
18
|
-
| `badges` | `ReactNode` | Additional status badges
|
|
19
|
-
| `meta` | `ReactNode` | Date,
|
|
20
|
-
| `actions` | `ReactNode` |
|
|
21
|
-
| `className` | `string` |
|
|
17
|
+
| `platforms` | `PlatformInfo[]` | Renders `PlatformBadge` entries |
|
|
18
|
+
| `badges` | `ReactNode` | Additional status/info badges |
|
|
19
|
+
| `meta` | `ReactNode` | Date, view count, or other metadata |
|
|
20
|
+
| `actions` | `ReactNode` | Action buttons pinned to the card footer |
|
|
21
|
+
| `className` | `string` | Additional CSS classes |
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
23
|
+
**Image handling:**
|
|
24
|
+
- Falls back from `imageUrl` → `placeholderUrl` → plain background on error
|
|
25
|
+
- Shows a pulse skeleton while the image loads
|
|
26
|
+
- Applies `useImageEdgeColor` to fill the 3:2 image container background with the image's edge color
|
|
26
27
|
|
|
27
28
|
## Usage Example
|
|
28
29
|
|
|
@@ -30,14 +31,20 @@ Main exported component. Renders an `<article>` card with a 3:2 aspect-ratio cov
|
|
|
30
31
|
import { AdminContentCard } from './admin-content-card'
|
|
31
32
|
|
|
32
33
|
<AdminContentCard
|
|
33
|
-
imageUrl="https://cdn.example.com/cover.
|
|
34
|
-
placeholderUrl="https://cdn.example.com/og-placeholder.
|
|
35
|
-
title="
|
|
34
|
+
imageUrl="https://cdn.example.com/post-cover.jpg"
|
|
35
|
+
placeholderUrl="https://cdn.example.com/og-placeholder.jpg"
|
|
36
|
+
title="Automating Patch Management with Flamingo"
|
|
36
37
|
subtitle="Acme Corp"
|
|
37
|
-
summary="
|
|
38
|
-
platforms={[{
|
|
39
|
-
badges={<span className="badge">
|
|
40
|
-
meta={<span>
|
|
38
|
+
summary="A walkthrough of OpenFrame's patch automation workflows for MSPs."
|
|
39
|
+
platforms={[{ platform_id: 'ninja', name: 'NinjaRMM' }]}
|
|
40
|
+
badges={<span className="badge">Featured</span>}
|
|
41
|
+
meta={<span>Apr 2025 · 1.2k views</span>}
|
|
41
42
|
actions={<button>Edit</button>}
|
|
42
43
|
/>
|
|
43
|
-
```
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Notes
|
|
47
|
+
|
|
48
|
+
- Uses ODS (OpenFrame Design System) tokens (`ods-border`, `ods-accent`, etc.) for theming
|
|
49
|
+
- Image scaling on hover via `group-hover:scale-[1.03]` requires the parent to carry Tailwind's `group` class (applied internally on `<article>`)
|
|
50
|
+
- View source: [`admin-content-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/admin-content-card.tsx)
|
|
@@ -1,52 +1,63 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Pure presentation component for rendering blog post cards in
|
|
1
|
+
<!-- source-hash: c1cd88e3bedb3ff138c2d63ba69b758b -->
|
|
2
|
+
Pure presentation component for rendering blog post cards in three density modes: full vertical (`default`), compact horizontal (`sm`), and portrait strip (`portrait`).
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `BlogCard`
|
|
7
|
-
Main
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Main component that renders a `BlogPostSummary` in one of three layouts. All click/navigation logic is deferred to the caller via `href` and optional `target`/`rel` props.
|
|
8
|
+
|
|
9
|
+
| Size | Layout | Use Case |
|
|
10
|
+
|------|--------|----------|
|
|
11
|
+
| `default` | Full vertical card with cover image, title, summary, author/date footer, and view count | Blog index grids |
|
|
12
|
+
| `sm` | Compact horizontal (~80px) with thumbnail, title, category, summary | Chat inline rendering |
|
|
13
|
+
| `portrait` | Delegates to `EntityPortraitCard` | Mixed-type content rails |
|
|
14
|
+
|
|
15
|
+
**Image fallback chain:** `post.featured_image` → `placeholderUrl` (caller-resolved via `useOgPlaceholderUrl`) → `bg-ods-bg` slot background.
|
|
10
16
|
|
|
11
17
|
### `BlogCardSkeleton`
|
|
12
|
-
Loading placeholder
|
|
18
|
+
Loading placeholder mirroring the shape of each density. Accepts the same `size` prop.
|
|
19
|
+
|
|
20
|
+
## Key Props
|
|
13
21
|
|
|
14
|
-
### `BlogCardProps`
|
|
15
22
|
| Prop | Type | Description |
|
|
16
|
-
|
|
17
|
-
| `post` | `BlogPostSummary` | Post data
|
|
18
|
-
| `href` | `string` | Resolved detail URL
|
|
23
|
+
|------|------|-------------|
|
|
24
|
+
| `post` | `BlogPostSummary` | Post data |
|
|
25
|
+
| `href` | `string` | Resolved detail URL (caller provides) |
|
|
19
26
|
| `target` | `'_blank'` | Opens in new tab (set by chat dispatch) |
|
|
20
|
-
| `placeholderUrl` | `string \| null` | Fallback image when `featured_image` is
|
|
21
|
-
| `size` | `'default' \| 'sm'` | Card density
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
|
|
25
|
-
**Image fallback chain:** `post.featured_image` → `placeholderUrl` → `bg-ods-bg` background slot
|
|
27
|
+
| `placeholderUrl` | `string \| null` | Fallback image when `featured_image` is absent |
|
|
28
|
+
| `size` | `'default' \| 'sm' \| 'portrait'` | Card density |
|
|
29
|
+
| `showTypeBadge` | `boolean` | Renders content-type chip in portrait mode |
|
|
30
|
+
| `hasEmbeddedVideo` | `boolean` | Shows "Video" badge in `sm` mode |
|
|
31
|
+
| `priority` | `boolean` | Passes Next.js `priority` to the cover `<Image>` |
|
|
26
32
|
|
|
27
33
|
## Usage Example
|
|
28
34
|
|
|
29
35
|
```typescript
|
|
30
|
-
// Default
|
|
36
|
+
// Default vertical card (hub context)
|
|
37
|
+
<NavLinkAnchor href={buildContentURL(post)}>
|
|
38
|
+
<BlogCard
|
|
39
|
+
post={post}
|
|
40
|
+
href={buildContentURL(post)}
|
|
41
|
+
placeholderUrl={useOgPlaceholderUrl(post.title)}
|
|
42
|
+
size="default"
|
|
43
|
+
priority={isAboveFold}
|
|
44
|
+
/>
|
|
45
|
+
</NavLinkAnchor>
|
|
46
|
+
|
|
47
|
+
// Compact card for chat inline
|
|
31
48
|
<BlogCard
|
|
32
|
-
post={
|
|
33
|
-
href={
|
|
34
|
-
placeholderUrl={useOgPlaceholder(post)}
|
|
35
|
-
size="default"
|
|
36
|
-
priority={true}
|
|
37
|
-
/>
|
|
38
|
-
|
|
39
|
-
// Compact card for chat-inline rendering
|
|
40
|
-
<BlogCard
|
|
41
|
-
post={blogPostSummary}
|
|
42
|
-
href={detailUrl}
|
|
49
|
+
post={post}
|
|
50
|
+
href={resolvedUrl}
|
|
43
51
|
target="_blank"
|
|
44
52
|
rel="noopener noreferrer"
|
|
45
53
|
size="sm"
|
|
46
|
-
hasEmbeddedVideo={
|
|
47
|
-
placeholderUrl={staticFallbackUrl}
|
|
54
|
+
hasEmbeddedVideo={post.has_video}
|
|
48
55
|
/>
|
|
49
56
|
|
|
50
|
-
// Skeleton
|
|
51
|
-
<BlogCardSkeleton size="
|
|
52
|
-
```
|
|
57
|
+
// Skeleton during load
|
|
58
|
+
<BlogCardSkeleton size="default" />
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
> **No click logic lives here.** Callers wrap with `<NavLinkAnchor>` (hub) or `<NavLinkAnchorViaRuntime>` (lib) as appropriate.
|
|
62
|
+
|
|
63
|
+
**Source:** [`blog-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/blog-card.tsx)
|
|
@@ -1,39 +1,41 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 97c4c0581bb8cb14e23dddcdae3af6f4 -->
|
|
2
|
+
Renders a blog post cover image with graceful error handling — returns `null` when no URL is provided and silently hides broken images on load failure.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
### `BlogImagePlaceholder`
|
|
7
|
-
A client-side React component that wraps a cover image in an HTML phrasing-content–safe `<span>`. Key behaviors:
|
|
6
|
+
### `BlogImagePlaceholder` (exported function component)
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
| Prop | Type | Description |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `imageUrl` | `string \| null` | Pre-resolved cover/OG image URL; component renders nothing if `null` |
|
|
11
|
+
| `title` | `string` | Used in the `alt` attribute for accessibility |
|
|
12
|
+
| `className` | `string?` | Optional additional CSS classes |
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**Notable implementation details:**
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
| `title` | `string` | Used for the `alt` attribute |
|
|
20
|
-
| `className` | `string` | Optional extra Tailwind classes |
|
|
16
|
+
- Uses `<span className="block">` instead of `<div>` to satisfy HTML phrasing-content rules when rendered inside a markdown `<p>` element (e.g., chat shell's compact `BlogCard` fallback)
|
|
17
|
+
- Bypasses `next/image` in favor of a plain `<img>` tag — appropriate here since the URL is a dynamically-generated placeholder with a query string where Next.js loader config adds no value
|
|
18
|
+
- `onError` hides the broken image element, allowing the parent's `bg-ods-bg` background to show through cleanly
|
|
21
19
|
|
|
22
20
|
## Usage Example
|
|
23
21
|
|
|
24
22
|
```typescript
|
|
25
23
|
import { BlogImagePlaceholder } from './blog-image-placeholder'
|
|
26
24
|
|
|
27
|
-
//
|
|
25
|
+
// With a resolved OG placeholder URL
|
|
28
26
|
<BlogImagePlaceholder
|
|
29
|
-
imageUrl="https://og.
|
|
27
|
+
imageUrl="https://example.com/og-image.png?title=My+Post"
|
|
30
28
|
title="My Post"
|
|
31
29
|
className="rounded-lg"
|
|
32
30
|
/>
|
|
33
31
|
|
|
34
|
-
//
|
|
32
|
+
// Renders nothing when imageUrl is null
|
|
35
33
|
<BlogImagePlaceholder
|
|
36
34
|
imageUrl={null}
|
|
37
35
|
title="Draft Post"
|
|
38
36
|
/>
|
|
39
|
-
```
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Source
|
|
40
|
+
|
|
41
|
+
[`blog-image-placeholder.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/blog-image-placeholder.tsx)
|
|
@@ -1,58 +1,49 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Pure presentation component for
|
|
1
|
+
<!-- source-hash: d3c2c6a2b8511d1b5bb1d570d788eed4 -->
|
|
2
|
+
Pure presentation component for rendering MSP case study cards in three density variants: `default` (vertical detail), `sm` (compact horizontal for chat-inline), and `portrait` (rail/strip layout via `EntityPortraitCard`).
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `CaseStudyCard`
|
|
7
|
-
|
|
8
|
-
- **`default` size**: Full vertical layout with OG-ratio cover image (`1200×630`), title, and author/MSP attribution with avatar stack.
|
|
9
|
-
- **`sm` size**: Compact horizontal layout for embedding in chat threads.
|
|
7
|
+
The primary export. Renders a case study in one of three layouts based on the `size` prop. Contains no click logic — callers supply `href` directly and wrap with their own anchor. Image resolution follows the fallback chain: `study.featured_image` → `placeholderUrl` → `bg-ods-bg` background.
|
|
10
8
|
|
|
11
9
|
### `CaseStudyCardSkeleton`
|
|
12
|
-
Loading placeholder that mirrors the
|
|
10
|
+
Loading placeholder that mirrors the real card's layout zones for each density. The `default` and `portrait` variants share the same skeleton shape (media aspect ratio → 72px title zone → 60px person footer).
|
|
13
11
|
|
|
14
|
-
###
|
|
15
|
-
```text
|
|
16
|
-
study.featured_image → placeholderUrl (from useOgPlaceholder) → bg-ods-bg background
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Key Props (`CaseStudyCardProps`)
|
|
12
|
+
### Props (`CaseStudyCardProps`)
|
|
20
13
|
|
|
21
14
|
| Prop | Type | Description |
|
|
22
|
-
|
|
15
|
+
|---|---|---|
|
|
23
16
|
| `study` | `CaseStudy` | Case study data object |
|
|
24
|
-
| `href` | `string` | Resolved detail URL (caller-
|
|
25
|
-
| `target` | `'_blank'` |
|
|
26
|
-
| `placeholderUrl` | `string \| null` | OG
|
|
27
|
-
| `size` | `'default' \| 'sm'` | Card density
|
|
17
|
+
| `href` | `string` | Resolved detail URL (caller-supplied) |
|
|
18
|
+
| `target` | `'_blank'` | Optional new-tab behavior |
|
|
19
|
+
| `placeholderUrl` | `string \| null` | OG placeholder when `featured_image` is absent |
|
|
20
|
+
| `size` | `'default' \| 'sm' \| 'portrait'` | Card density variant |
|
|
21
|
+
| `showTypeBadge` | `boolean` | Portrait only — shows "Case Study" chip in mixed-type rails |
|
|
28
22
|
|
|
29
23
|
## Usage Example
|
|
30
24
|
|
|
31
25
|
```typescript
|
|
32
26
|
import { CaseStudyCard, CaseStudyCardSkeleton } from './case-study-card'
|
|
33
|
-
import {
|
|
27
|
+
import { useOgPlaceholderUrl } from '../hooks/use-og-placeholder-url'
|
|
34
28
|
|
|
35
|
-
function
|
|
36
|
-
const placeholderUrl =
|
|
29
|
+
function CaseStudyRail({ studies, isLoading }) {
|
|
30
|
+
const placeholderUrl = useOgPlaceholderUrl({ aspect: 'wide' })
|
|
37
31
|
|
|
38
|
-
if (
|
|
32
|
+
if (isLoading) {
|
|
33
|
+
return <CaseStudyCardSkeleton size="portrait" />
|
|
34
|
+
}
|
|
39
35
|
|
|
40
|
-
return (
|
|
36
|
+
return studies.map((study) => (
|
|
41
37
|
<CaseStudyCard
|
|
38
|
+
key={study.id}
|
|
42
39
|
study={study}
|
|
43
40
|
href={`/case-studies/${study.slug}`}
|
|
41
|
+
size="portrait"
|
|
42
|
+
showTypeBadge={false}
|
|
44
43
|
placeholderUrl={placeholderUrl}
|
|
45
|
-
size="default"
|
|
46
44
|
/>
|
|
47
|
-
)
|
|
45
|
+
))
|
|
48
46
|
}
|
|
47
|
+
```
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
<CaseStudyCard
|
|
52
|
-
study={study}
|
|
53
|
-
href={`/case-studies/${study.slug}`}
|
|
54
|
-
target="_blank"
|
|
55
|
-
rel="noopener noreferrer"
|
|
56
|
-
size="sm"
|
|
57
|
-
/>
|
|
58
|
-
```
|
|
49
|
+
**Source:** [`case-study-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/case-study-card.tsx)
|
|
@@ -1,40 +1,57 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: ad593d628549abcee57e9fe3d784a504 -->
|
|
2
|
+
A React client component that renders a single ticket row inside a chat/support panel, supporting interactive, loading skeleton, and linked-work states.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
###
|
|
7
|
-
Data interface for the ticket row:
|
|
8
|
-
- `id`, `title`, `ticketNumber` — core identifiers
|
|
9
|
-
- `status` — accepts any known format (`ACTIVE`, `active`, `ACTION_REQUIRED`, etc.)
|
|
10
|
-
- `statusLabel?` — overrides the badge text while preserving status variant/icon (e.g. HubSpot pipeline stage labels)
|
|
11
|
-
- `linkedTaskLabel?` — when set, renders a wrench-icon "linked work" chip indicating an in-flight delivery task
|
|
12
|
-
- `category?`, `timeAgo?` — optional subtitle fields joined with `•`
|
|
6
|
+
### Interfaces
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
- **`ChatTicketItemData`** — Data model for a ticket row, including `id`, `title`, `ticketNumber`, `status`, `statusLabel`, `statusKind`, `statusColor`, `category`, `timeAgo`, and optional `linkedTaskLabel` (renders a wrench-icon chip when present).
|
|
9
|
+
- **`ChatTicketItemProps`** — Props for the component; extends `HTMLButtonElement` attributes (excluding native `onClick`), accepting `ticket`, a typed `onClick(ticketId: string)` callback, and `isLoading`.
|
|
16
10
|
|
|
17
|
-
###
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
11
|
+
### Component
|
|
12
|
+
|
|
13
|
+
- **`ChatTicketItem`** — A `forwardRef` button component with three render states:
|
|
14
|
+
- **Loading** (`isLoading=true`): Renders an `aria-hidden` skeleton placeholder sized to match a real row.
|
|
15
|
+
- **No data** (`ticket` is `undefined`): Returns `null`.
|
|
16
|
+
- **Populated**: Renders the ticket title, a subtitle line joining `ticketNumber`, `category`, and `timeAgo` with bullet separators, an optional linked-work `Tag` chip (hidden on `sm` and below), a `TicketStatusTag`, and a chevron navigation indicator.
|
|
23
17
|
|
|
24
18
|
## Usage Example
|
|
25
19
|
|
|
26
20
|
```typescript
|
|
21
|
+
import { ChatTicketItem } from './chat-ticket-item'
|
|
22
|
+
|
|
23
|
+
// Loading state
|
|
24
|
+
<ChatTicketItem isLoading />
|
|
25
|
+
|
|
26
|
+
// Populated state
|
|
27
27
|
<ChatTicketItem
|
|
28
28
|
ticket={{
|
|
29
|
-
id: '
|
|
30
|
-
title: '
|
|
29
|
+
id: 'TKT-001',
|
|
30
|
+
title: 'VPN not connecting after Windows update',
|
|
31
31
|
ticketNumber: '#1042',
|
|
32
32
|
status: 'ACTION_REQUIRED',
|
|
33
|
-
|
|
34
|
-
category: 'Email',
|
|
33
|
+
category: 'Network',
|
|
35
34
|
timeAgo: '2h ago',
|
|
36
35
|
linkedTaskLabel: 'Waiting on version release',
|
|
37
36
|
}}
|
|
38
37
|
onClick={(ticketId) => router.push(`/tickets/${ticketId}`)}
|
|
39
38
|
/>
|
|
40
|
-
|
|
39
|
+
|
|
40
|
+
// With custom HubSpot pipeline stage label
|
|
41
|
+
<ChatTicketItem
|
|
42
|
+
ticket={{
|
|
43
|
+
id: 'TKT-002',
|
|
44
|
+
title: 'Email sync issue',
|
|
45
|
+
ticketNumber: '#1043',
|
|
46
|
+
status: 'ACTIVE',
|
|
47
|
+
statusLabel: 'Waiting on contact',
|
|
48
|
+
}}
|
|
49
|
+
onClick={(id) => console.log('opened', id)}
|
|
50
|
+
/>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- Status resolution delegates to `resolveStatusTagProps` and `resolveTicketStatus`, allowing any status string format (`ACTIVE`, `active`, `ACTION_REQUIRED`, etc.).
|
|
56
|
+
- The linked-work chip (`linkedTaskLabel`) is hidden on small screens via `hidden sm:inline-flex` to prevent row crowding.
|
|
57
|
+
- Focus styles explicitly suppress the post-click outline ring using `focus:outline-none focus:bg-ods-bg-hover` while preserving keyboard-nav visibility via `focus-visible:ring-2`.
|
|
@@ -1,53 +1,50 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Pure presentation component for
|
|
1
|
+
<!-- source-hash: be03f9107f1ebb36349ea65aa7f3ebeb -->
|
|
2
|
+
Pure presentation component for rendering customer interview content in three density modes: `default` (full card), `sm` (compact horizontal for chat-inline), and `portrait` (rail/strip layout).
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
+
### `CustomerInterviewCardProps`
|
|
7
|
+
| Prop | Type | Description |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `interview` | `CustomerInterview` | Data model for the interview |
|
|
10
|
+
| `href` | `string` | Resolved detail URL — no click logic inside the card |
|
|
11
|
+
| `target` | `'_blank'` | Optional new-tab behavior |
|
|
12
|
+
| `targetPlatform` | `string \| null` | Passed to `useEntityCardLink` for platform-aware link resolution |
|
|
13
|
+
| `placeholderUrl` | `string \| null` | OG image fallback when `featured_image` is absent |
|
|
14
|
+
| `size` | `'default' \| 'sm' \| 'portrait'` | Render density |
|
|
15
|
+
| `showTypeBadge` | `boolean` | Portrait mode only — renders the "Customer Interview" chip (default: `true`) |
|
|
16
|
+
|
|
6
17
|
### `CustomerInterviewCard`
|
|
7
|
-
Main
|
|
18
|
+
Main export. Delegates link resolution to `useEntityCardLink` and placeholder generation to `useEntityCardPlaceholder`. Branches render path by `size`:
|
|
19
|
+
- **`default`** — Full card with 1200×630 aspect image, title, summary, and avatar footer with MSP icon overlay
|
|
20
|
+
- **`sm`** — Compact horizontal layout with square thumbnail and video indicator icon
|
|
21
|
+
- **`portrait`** — Delegates entirely to `EntityPortraitCard`
|
|
8
22
|
|
|
9
23
|
### `CustomerInterviewCardSkeleton`
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
### `CustomerInterviewCardProps`
|
|
13
|
-
```typescript
|
|
14
|
-
interface CustomerInterviewCardProps {
|
|
15
|
-
interview: CustomerInterview // Core interview data
|
|
16
|
-
href: string // Resolved detail URL (caller-provided)
|
|
17
|
-
target?: '_blank' // Opens in new tab when set
|
|
18
|
-
rel?: 'noopener noreferrer'
|
|
19
|
-
placeholderUrl?: string | null // Fallback OG image when featured_image is absent
|
|
20
|
-
size?: 'default' | 'sm' // 'sm' = compact horizontal (chat-inline)
|
|
21
|
-
className?: string
|
|
22
|
-
}
|
|
23
|
-
```
|
|
24
|
+
Loading placeholder matching each density's layout zones, with `animate-pulse` shimmer.
|
|
24
25
|
|
|
25
26
|
## Usage Example
|
|
26
27
|
|
|
27
28
|
```typescript
|
|
28
|
-
|
|
29
|
+
import { CustomerInterviewCard, CustomerInterviewCardSkeleton } from './customer-interview-card'
|
|
30
|
+
|
|
31
|
+
// Default full card
|
|
29
32
|
<CustomerInterviewCard
|
|
30
33
|
interview={interviewData}
|
|
31
|
-
href=
|
|
32
|
-
|
|
34
|
+
href="/interviews/acme-corp-story"
|
|
35
|
+
size="default"
|
|
36
|
+
showTypeBadge={false}
|
|
33
37
|
/>
|
|
34
38
|
|
|
35
|
-
// Compact
|
|
39
|
+
// Compact chat-inline variant
|
|
36
40
|
<CustomerInterviewCard
|
|
37
41
|
interview={interviewData}
|
|
38
|
-
href=
|
|
42
|
+
href="/interviews/acme-corp-story"
|
|
39
43
|
target="_blank"
|
|
40
44
|
rel="noopener noreferrer"
|
|
41
45
|
size="sm"
|
|
42
46
|
/>
|
|
43
47
|
|
|
44
|
-
//
|
|
45
|
-
<CustomerInterviewCardSkeleton size="
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Size Variants
|
|
49
|
-
|
|
50
|
-
| Variant | Layout | Use Case |
|
|
51
|
-
|---------|--------|----------|
|
|
52
|
-
| `default` | Vertical card with 1200×630 aspect image, summary, and author row | Grid/list pages |
|
|
53
|
-
| `sm` | Compact horizontal row with thumbnail + text column | Chat-inline embeds (Mingo AI / Fae) |
|
|
48
|
+
// Loading state
|
|
49
|
+
<CustomerInterviewCardSkeleton size="default" />
|
|
50
|
+
```
|
|
@@ -1,47 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 9352fa2f2f4a64170a613a49640d8f24 -->
|
|
2
|
+
Presentational inline-chat card for Data Room and OpenFrame-docs document references. Renders `[card://data_room_doc:<id>]` and `[card://markdown:<id>]` markers with a shared UI surface — only the `baseRoute` differs between document sources.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `DataRoomDocCard`
|
|
7
|
-
Primary card component.
|
|
7
|
+
Primary card component. Conditionally renders as an interactive `<a>` element (when `anchorProps` is provided) or a static `<span>` (non-interactive fallback). Displays document title, source badge, optional file path, and a two-line preview excerpt.
|
|
8
8
|
|
|
9
9
|
### `DataRoomDocCardSkeleton`
|
|
10
|
-
Loading state placeholder
|
|
10
|
+
Loading state placeholder that mirrors the card's layout with shimmer-style placeholder spans for title, badge, path, and preview lines.
|
|
11
11
|
|
|
12
|
-
###
|
|
13
|
-
Prop bundle interface for pre-composed anchor attributes (`href`, `target`, `rel`, `onClick`). URL composition and routing decisions are handled by the consumer, not this component.
|
|
12
|
+
### Types
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
| `
|
|
19
|
-
| `badgeText` | `string` | Required. Consumer-resolved source label (e.g. "Data Room", "Knowledge Base") |
|
|
20
|
-
| `anchorProps` | `DataRoomDocCardAnchorProps?` | When omitted, card renders non-interactive |
|
|
21
|
-
| `className` | `string?` | Additional CSS classes |
|
|
14
|
+
| Export | Description |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `DataRoomDocCardProps` | Card props: `item`, `badgeText` (required), optional `anchorProps` and `className` |
|
|
17
|
+
| `DataRoomDocCardAnchorProps` | Subset of `<a>` props: `href`, `target`, `rel`, `onClick` |
|
|
22
18
|
|
|
23
19
|
## Usage Example
|
|
24
20
|
|
|
25
21
|
```typescript
|
|
26
|
-
|
|
22
|
+
import { DataRoomDocCard, DataRoomDocCardSkeleton } from './data-room-doc-card'
|
|
23
|
+
|
|
24
|
+
// Interactive card — consumer resolves routing and badge label
|
|
27
25
|
<DataRoomDocCard
|
|
28
|
-
item={{ title: 'Onboarding Guide', path: '/docs/onboarding.md', preview: 'Step-by-step...' }}
|
|
29
|
-
badgeText=
|
|
26
|
+
item={{ title: 'Onboarding Guide', path: '/docs/onboarding.md', preview: 'Step-by-step setup...' }}
|
|
27
|
+
badgeText="Knowledge Base"
|
|
30
28
|
anchorProps={{
|
|
31
|
-
href: '/
|
|
29
|
+
href: '/knowledge-base/42',
|
|
32
30
|
target: '_blank',
|
|
33
31
|
rel: 'noopener noreferrer',
|
|
32
|
+
onClick: (e) => trackCardClick(e),
|
|
34
33
|
}}
|
|
35
34
|
/>
|
|
36
35
|
|
|
37
|
-
//
|
|
36
|
+
// Static (no link available)
|
|
38
37
|
<DataRoomDocCard
|
|
39
|
-
item={{ title: '
|
|
40
|
-
badgeText="
|
|
38
|
+
item={{ title: 'Restricted Doc', path: '/data-room/secret.pdf' }}
|
|
39
|
+
badgeText="Data Room"
|
|
41
40
|
/>
|
|
42
41
|
|
|
43
|
-
//
|
|
42
|
+
// Loading state
|
|
44
43
|
<DataRoomDocCardSkeleton />
|
|
45
44
|
```
|
|
46
45
|
|
|
47
|
-
> **Design note:** `badgeText` is required (no default) to prevent silent mislabeling — a
|
|
46
|
+
> **Design note:** `badgeText` is required (no default) to prevent silent mislabeling — a card from `openframe-docs` silently falling back to `"Data Room"` would falsely imply internal/private provenance to end-users. The consumer must explicitly resolve and pass the correct label.
|