@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flamingo-stack/openframe-frontend-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.482",
|
|
4
4
|
"description": "Shared design system and components for all Flamingo platforms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -120,6 +120,12 @@
|
|
|
120
120
|
"require": "./dist/components/features/mux-origins.cjs",
|
|
121
121
|
"default": "./dist/components/features/mux-origins.js"
|
|
122
122
|
},
|
|
123
|
+
"./components/features/captions-url": {
|
|
124
|
+
"types": "./dist/components/features/captions-url.d.ts",
|
|
125
|
+
"import": "./dist/components/features/captions-url.js",
|
|
126
|
+
"require": "./dist/components/features/captions-url.cjs",
|
|
127
|
+
"default": "./dist/components/features/captions-url.js"
|
|
128
|
+
},
|
|
123
129
|
"./components/features/video-bites-shared": {
|
|
124
130
|
"types": "./dist/components/features/video-bites-shared.d.ts",
|
|
125
131
|
"import": "./dist/components/features/video-bites-shared.js",
|
|
@@ -367,7 +373,7 @@
|
|
|
367
373
|
},
|
|
368
374
|
"devDependencies": {
|
|
369
375
|
"@biomejs/biome": "2.4.4",
|
|
370
|
-
"@hookform/resolvers": "
|
|
376
|
+
"@hookform/resolvers": "~5.2.2",
|
|
371
377
|
"@storybook/nextjs-vite": "^10.1.11",
|
|
372
378
|
"@svgr/cli": "^8.1.0",
|
|
373
379
|
"@testing-library/jest-dom": "^6.9.1",
|
package/src/.index.md
CHANGED
|
@@ -1,43 +1,50 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 862fd90b3a9c67e41d15d6c3cc9b05fe -->
|
|
2
|
+
The main barrel export file for the `@flamingo/ui-kit` package, re-exporting all public components, hooks, utilities, and types from their respective submodules into a single entry point.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
| `onboarding` | `./components/shared/onboarding` | Onboarding flow components |
|
|
15
|
-
| `LogsList` | `./components/logs-list` | Renders a list of log entries |
|
|
16
|
-
| `LogSeverityDot` | `./components/log-severity-dot` | Visual severity indicator dot for logs |
|
|
17
|
-
| `ToolIcon` | `./components/tool-icon` | Icon component for tool representations |
|
|
18
|
-
| `logs.types` | `./types/logs.types` | TypeScript types for log data structures |
|
|
19
|
-
| `hooks` | `./hooks` | Shared React hooks |
|
|
20
|
-
| `utils` | `./utils` | Utility/helper functions |
|
|
21
|
-
| `types` | `./types` | Global TypeScript type definitions |
|
|
22
|
-
| `assets` | `./assets` | Static assets (images, SVGs, fonts) |
|
|
6
|
+
**Component Exports**
|
|
7
|
+
- `./components/ui` — Base UI primitives
|
|
8
|
+
- `./components/features` — Feature-specific components
|
|
9
|
+
- `./components/icons` — Icon set
|
|
10
|
+
- `./components/navigation` — Navigation components
|
|
11
|
+
- `./components/platform` — Platform-level components
|
|
12
|
+
- `./components/chat` — Chat components and payload types
|
|
13
|
+
- `./components/shared/onboarding` — Onboarding flow components
|
|
23
14
|
|
|
24
|
-
|
|
15
|
+
**Named Component Exports**
|
|
16
|
+
- `LogsList` — Renders a list of log entries
|
|
17
|
+
- `LogSeverityDot` — Visual indicator for log severity levels
|
|
18
|
+
- `ToolIcon` — Icon component for tool representations
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
**Non-Component Exports**
|
|
21
|
+
- `./hooks` — Shared React hooks
|
|
22
|
+
- `./utils` — Utility functions
|
|
23
|
+
- `./types` — CMS domain types (canonical source)
|
|
24
|
+
- `./types/logs.types` — Log-specific type definitions
|
|
25
|
+
- `./assets` — Static assets
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
import { ChatWindow, ChatMessage } from '@flamingo/ui-kit'
|
|
27
|
+
**Disambiguation Block**
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
import { LogsList, LogSeverityDot } from '@flamingo/ui-kit'
|
|
29
|
+
Explicit `export type` re-exports for CMS domain types that would otherwise be silently dropped by TypeScript (`TS2308`) due to naming conflicts with identically-named types in `./components/chat`. The following are explicitly resolved to their `./types` (CMS) origin:
|
|
35
30
|
|
|
36
|
-
|
|
37
|
-
import type { LogEntry } from '@flamingo/ui-kit'
|
|
31
|
+
`BlogAuthor`, `BlogCategory`, `BlogPost`, `BlogPostSummary`, `CaseStudy`, `CustomerInterview`, and related filter/response/config shapes.
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
## Usage Example
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// Consuming the full kit from the barrel
|
|
37
|
+
import {
|
|
38
|
+
LogsList,
|
|
39
|
+
LogSeverityDot,
|
|
40
|
+
ToolIcon,
|
|
41
|
+
type BlogPost,
|
|
42
|
+
type CaseStudy,
|
|
43
|
+
type CustomerInterview,
|
|
44
|
+
} from '@flamingo/ui-kit'
|
|
45
|
+
|
|
46
|
+
// Chat subpath still exposes its own payload variants
|
|
47
|
+
import type { BlogPost as ChatBlogPost } from '@flamingo/ui-kit/components/chat'
|
|
41
48
|
```
|
|
42
49
|
|
|
43
|
-
>
|
|
50
|
+
> **Note:** If you need the chat-specific payload variants of `BlogPost`, `CaseStudy`, etc., import them directly from the `@flamingo/ui-kit/components/chat` subpath rather than the root barrel to avoid ambiguity.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!-- source-hash: 788b2f31d1bae5bb48d44855c468c228 -->
|
|
2
|
+
Defines the single source of truth for all platform domain registrations and derives host resolution, cookie base-domain sets, URL normalization, and preview detection from one central registry table.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Types & Registry
|
|
7
|
+
|
|
8
|
+
- **`PlatformDomainKey`** — Union of `PlatformName` plus the forward-only `'openframe-dashboard'`
|
|
9
|
+
- **`PlatformDomainEntry`** — Shape of each registry row: `key`, `defaultUrl`, `envVar`, optional `aliasHostnames`, optional `pseudo` flag
|
|
10
|
+
- **`PLATFORM_DOMAINS`** — Readonly registry array; ordering is load-bearing (`flamingo` must precede `flamingo-teaser` and `universal`)
|
|
11
|
+
|
|
12
|
+
### URL Resolution
|
|
13
|
+
|
|
14
|
+
- **`getPlatformProductionUrl(platform)`** — Returns the effective URL: env override → `defaultUrl` → flamingo fallback; always scheme-safe
|
|
15
|
+
- **`ensureScheme(url)`** — Normalizes bare-host or protocol-relative env overrides to `https://`; exported as the single owner of this rule
|
|
16
|
+
- **`byKey(key)`** — Looks up a registry entry by platform key
|
|
17
|
+
|
|
18
|
+
### Host Utilities
|
|
19
|
+
|
|
20
|
+
- **`hostOf(value)`** — Parses a URL to its lowercase, port-stripped hostname; returns `null` on failure
|
|
21
|
+
- **`expandWwwApex(host)`** — Expands a host to its `www.`/apex pair for reverse matching
|
|
22
|
+
- **`toRegistrableBaseDomain(host)`** — Extracts the registrable base domain (e.g. `flamingo.run`)
|
|
23
|
+
- **`getPlatformByHostname(hostname)`** — Reverse resolves a hostname to a platform key (first-wins, non-pseudo only)
|
|
24
|
+
|
|
25
|
+
### Preview Detection
|
|
26
|
+
|
|
27
|
+
- **`isPreviewEnv()`** — Checks `VERCEL_ENV === 'preview'`
|
|
28
|
+
- **`isPreviewHost(hostname)`** — Checks for `*.vercel.app` suffix
|
|
29
|
+
|
|
30
|
+
### Cookie SSO
|
|
31
|
+
|
|
32
|
+
- **`getAllPlatformBaseDomains()`** — ⚠️ Non-pure. Returns the cross-subdomain SSO cookie domain set; branches on localhost, Vercel preview, and production
|
|
33
|
+
|
|
34
|
+
## Usage Example
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import {
|
|
38
|
+
getPlatformProductionUrl,
|
|
39
|
+
getPlatformByHostname,
|
|
40
|
+
getAllPlatformBaseDomains,
|
|
41
|
+
ensureScheme,
|
|
42
|
+
} from './platform-domains'
|
|
43
|
+
|
|
44
|
+
// Resolve the effective URL for a platform (env override or default)
|
|
45
|
+
const url = getPlatformProductionUrl('openframe')
|
|
46
|
+
// → 'https://openframe.ai' (or NEXT_PUBLIC_OPENFRAME_URL if set)
|
|
47
|
+
|
|
48
|
+
// Normalize a bare-host env override
|
|
49
|
+
ensureScheme('hub.openframe.ai')
|
|
50
|
+
// → 'https://hub.openframe.ai'
|
|
51
|
+
|
|
52
|
+
// Reverse-resolve an incoming request hostname to a platform key
|
|
53
|
+
getPlatformByHostname('www.openframe.ai')
|
|
54
|
+
// → 'openframe'
|
|
55
|
+
|
|
56
|
+
// Get all cookie base domains for cross-hub SSO (client-side only)
|
|
57
|
+
getAllPlatformBaseDomains()
|
|
58
|
+
// → ['.flamingo.run', 'flamingo.run', '.openframe.ai', 'openframe.ai', ...]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Notes
|
|
62
|
+
|
|
63
|
+
- **Edge-safe and pure** — no React, no Node builtins, no `server-only`; safe in middleware (`proxy.ts`), `'use client'` providers, and `server-only` modules simultaneously
|
|
64
|
+
- **Compile-time guards** — `satisfies` checks enforce bidirectional consistency between `PLATFORM_DOMAINS` and `ENV_OVERRIDES`; a missing or stale env var fails the build
|
|
65
|
+
- **Ordering invariant** — `flamingo` must appear before `flamingo-teaser` and `universal` in the registry; a module-load self-check enforces this at runtime
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!-- source-hash: 9af84fb2f937986a14b04c717b822451 -->
|
|
2
|
+
Base64-encoded PNG data URI for Fae's avatar — the AI helpdesk agent's brand mark, self-contained for zero-asset-serving dependency.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `FAE_AVATAR_DATA_URI` | `string` | Base64 PNG data URI (160×160px, ~37 KB) representing Fae's avatar mark |
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { FAE_AVATAR_DATA_URI } from './fae-avatar';
|
|
14
|
+
|
|
15
|
+
// Use directly in an <img> tag — no CDN or host assets needed
|
|
16
|
+
const avatar = document.createElement('img');
|
|
17
|
+
avatar.src = FAE_AVATAR_DATA_URI;
|
|
18
|
+
avatar.alt = 'Fae avatar';
|
|
19
|
+
document.body.appendChild(avatar);
|
|
20
|
+
|
|
21
|
+
// Or in React/Vue component props
|
|
22
|
+
<AgentMark src={FAE_AVATAR_DATA_URI} alt="Fae" />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
- **Self-contained**: The full PNG is inlined as a `data:image/png;base64,...` URI, so no external hosting or asset pipeline is required.
|
|
28
|
+
- **Fae-specific**: Fae has no separate vector icon — this avatar IS the brand mark (see `AgentMark` component).
|
|
29
|
+
- **Source spec**: 160×160 PNG, approximately 37 KB before base64 encoding.
|
|
30
|
+
|
|
31
|
+
## Source
|
|
32
|
+
|
|
33
|
+
[`fae-avatar.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/fae-avatar.ts)
|
package/src/assets/.index.md
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 0b3ff07887f7e19514fd9f0b3902113d -->
|
|
2
|
+
Barrel export file that aggregates and re-exports all assets from the `assets` module, including static resources and the Fae avatar component.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`assets`**
|
|
6
|
+
- **`assets`** — An empty, frozen constant object (`as const`) serving as a namespace placeholder for future static assets (fonts, icons, etc.)
|
|
7
|
+
- **`fae-avatar`** — Re-exports everything from the `./fae-avatar` module
|
|
7
8
|
|
|
8
9
|
## Usage Example
|
|
9
10
|
|
|
10
11
|
```typescript
|
|
11
|
-
import { assets } from '
|
|
12
|
+
import { assets, FaeAvatar } from '@openframe-oss-lib/assets';
|
|
12
13
|
|
|
13
|
-
//
|
|
14
|
-
|
|
14
|
+
// Use re-exported Fae avatar
|
|
15
|
+
<FaeAvatar size="md" />;
|
|
15
16
|
|
|
16
|
-
//
|
|
17
|
-
//
|
|
17
|
+
// Access the assets namespace (reserved for future use)
|
|
18
|
+
console.log(assets); // {}
|
|
18
19
|
```
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
## Notes
|
|
22
|
+
|
|
23
|
+
- The `assets` object is intentionally empty and typed `as const` — it acts as a stable, extensible namespace for future platform utilities and static assets (e.g., fonts, images).
|
|
24
|
+
- All public exports from `./fae-avatar` are surfaced directly from this index, making it the single entry point for asset-related imports.
|
|
25
|
+
|
|
26
|
+
**Source:** [`assets/index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/assets/index.ts)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!-- source-hash: a03e06ae468a977ee1c26dabab767bac -->
|
|
2
|
+
Renders the visual mark (glyph) for either the Mingo or Fae AI agent — the single source of truth for how each agent is visually represented. Mingo renders as a vector icon; Fae renders as an avatar image bundled as a base64 data URI so no host asset is required.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`AgentName`** — Union type `'fae' | 'mingo'` identifying supported agents.
|
|
7
|
+
- **`AgentMarkProps`** — Props interface controlling which agent to render, sizing classes, and an optional Fae avatar source override.
|
|
8
|
+
- **`AgentMark`** — Main component. Delegates to `MingoIcon` for Mingo and an `<img>` tag for Fae. Both branches are decorative (no accessible text).
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { AgentMark } from '@flamingo-stack/openframe-oss-lib';
|
|
14
|
+
|
|
15
|
+
// Render Mingo's vector mark at 20×20
|
|
16
|
+
<AgentMark agent="mingo" className="w-5 h-5" />
|
|
17
|
+
|
|
18
|
+
// Render Fae's bundled avatar at 20×20
|
|
19
|
+
<AgentMark agent="fae" className="w-5 h-5" />
|
|
20
|
+
|
|
21
|
+
// Override Fae's avatar with a hosted asset
|
|
22
|
+
<AgentMark
|
|
23
|
+
agent="fae"
|
|
24
|
+
className="w-5 h-5"
|
|
25
|
+
faeAvatarSrc="https://cdn.example.com/fae-avatar.png"
|
|
26
|
+
/>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> **Note:** `className` controls all sizing and positioning. The component renders only the glyph — wrapping, backgrounds, and layout are the caller's responsibility.
|
|
30
|
+
|
|
31
|
+
**Source:** [`agent-mark.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/agent-mark.tsx)
|
|
@@ -1,42 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: bce846e08704bc1bed6ac9dfbae8c900 -->
|
|
2
|
+
Renders the platform-wide announcement bar in both SSR (Next.js) and client-only (Vite/CRA embed) modes, handling fetch, dismissal state, animations, and XSS-safe CTA navigation.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
## Usage
|
|
6
|
+
### `AnnouncementBar` (default export)
|
|
7
|
+
The primary component accepting these props (`AnnouncementBarProps`):
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Description |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| `initialAnnouncement` | `Announcement \| null \| undefined` | SSR-seeded announcement; omit for client-only self-fetch |
|
|
12
|
+
| `previewMode` | `boolean` | Admin draft preview — disables fetch, storage, and dismiss |
|
|
13
|
+
| `dismissible` | `boolean` | Whether the user can dismiss the bar |
|
|
14
|
+
| `className` | `string` | Optional wrapper class |
|
|
15
|
+
|
|
16
|
+
### Internal Utilities Used
|
|
17
|
+
- **`useSelfFetch`** — visibility-driven revalidation (refocuses after 60s stale); no polling
|
|
18
|
+
- **`useEndpointsRuntime`** — resolves `announcementsUrl`; absent provider = silent no-op
|
|
19
|
+
- **`isAnnouncementDismissed` / `dismissAnnouncement`** — cookie-based dismissal SSOT
|
|
20
|
+
- **`pickReadableTextColor`** — selects `theme-light` / `theme-dark` ODS scope from background color
|
|
21
|
+
- **`EntityIcon`** — renders uploaded image URL or library glyph by name
|
|
22
|
+
- **`AnnouncementBarView`** — pure presentational shell (44px strip, `text-h6`, compact CTA)
|
|
23
|
+
|
|
24
|
+
## Usage Example
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
// SSR mode (Next.js layout — zero flash, no CLS)
|
|
28
|
+
import { AnnouncementBar } from '@openframe/ui';
|
|
29
|
+
|
|
30
|
+
export default async function RootLayout({ children }) {
|
|
31
|
+
const announcement = await resolveAnnouncement(); // server-side
|
|
32
|
+
return (
|
|
33
|
+
<html>
|
|
34
|
+
<body>
|
|
35
|
+
<AnnouncementBar initialAnnouncement={announcement} />
|
|
36
|
+
{children}
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
25
41
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<AnnouncementBar initialAnnouncement={announcementOrNull} />
|
|
42
|
+
// Client-only mode (Vite / CRA embed — self-fetches from provider URL)
|
|
43
|
+
import { AnnouncementBar, EndpointsRuntimeProvider } from '@openframe/ui';
|
|
29
44
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
45
|
+
function App() {
|
|
46
|
+
return (
|
|
47
|
+
<EndpointsRuntimeProvider announcementsUrl="/api/announcements">
|
|
48
|
+
<AnnouncementBar />
|
|
49
|
+
</EndpointsRuntimeProvider>
|
|
50
|
+
);
|
|
36
51
|
}
|
|
37
|
-
|
|
38
|
-
<EndpointsRuntimeContext.Provider value={endpointsRuntime}>
|
|
39
|
-
<AnnouncementBar />
|
|
40
|
-
<main>{/* app content */}</main>
|
|
41
|
-
</EndpointsRuntimeContext.Provider>
|
|
42
52
|
```
|
|
53
|
+
|
|
54
|
+
> **Design freeze notice:** The bar's visual spec (44px height, `text-h6`, 20/24px icon, compact CTA, ghost-icon dismiss) is owner-approved and must not be altered without explicit written sign-off. See [`ui/announcement-bar-view.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/ui/announcement-bar-view.tsx) for the full warning.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A styled calendar component wrapping `react-day-picker`'s `DayPicker` with Flamingo
|
|
1
|
+
<!-- source-hash: 7de87dc45992b08ca9f6ea49ee42b409 -->
|
|
2
|
+
A styled calendar component wrapping `react-day-picker`'s `DayPicker` with Flamingo's design system tokens, Tailwind utility classes, and Lucide navigation icons.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`Calendar`** —
|
|
7
|
-
- **`CalendarProps`** — Re-exported type alias for `React.ComponentProps<typeof DayPicker>`, allowing full passthrough of
|
|
8
|
-
-
|
|
6
|
+
- **`Calendar`** — Primary export; a configured `DayPicker` wrapper with pre-applied `classNames` for layout, selection states, range highlighting, and navigation
|
|
7
|
+
- **`CalendarProps`** — Re-exported type alias for `React.ComponentProps<typeof DayPicker>`, allowing full passthrough of `react-day-picker` props
|
|
8
|
+
- **Chevron navigation** — Uses `ChevronLeft` from `lucide-react` via the `components.Chevron` slot override
|
|
9
9
|
|
|
10
10
|
## Usage Example
|
|
11
11
|
|
|
@@ -14,31 +14,32 @@ import { Calendar } from "@/components/calendar"
|
|
|
14
14
|
import { useState } from "react"
|
|
15
15
|
|
|
16
16
|
export function DatePicker() {
|
|
17
|
-
const [
|
|
17
|
+
const [date, setDate] = useState<Date | undefined>(undefined)
|
|
18
18
|
|
|
19
19
|
return (
|
|
20
20
|
<Calendar
|
|
21
21
|
mode="single"
|
|
22
|
-
selected={
|
|
23
|
-
onSelect={
|
|
24
|
-
showOutsideDays={
|
|
22
|
+
selected={date}
|
|
23
|
+
onSelect={setDate}
|
|
24
|
+
showOutsideDays={true}
|
|
25
25
|
/>
|
|
26
26
|
)
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
|
-
//
|
|
31
|
+
// Range selection example
|
|
32
32
|
import { DateRange } from "react-day-picker"
|
|
33
33
|
|
|
34
|
-
export function
|
|
35
|
-
const [range, setRange] = useState<DateRange>()
|
|
34
|
+
export function DateRangePicker() {
|
|
35
|
+
const [range, setRange] = useState<DateRange | undefined>(undefined)
|
|
36
36
|
|
|
37
37
|
return (
|
|
38
38
|
<Calendar
|
|
39
39
|
mode="range"
|
|
40
40
|
selected={range}
|
|
41
41
|
onSelect={setRange}
|
|
42
|
+
numberOfMonths={2}
|
|
42
43
|
/>
|
|
43
44
|
)
|
|
44
45
|
}
|
|
@@ -46,6 +47,9 @@ export function RangePicker() {
|
|
|
46
47
|
|
|
47
48
|
## Notes
|
|
48
49
|
|
|
49
|
-
- `showOutsideDays` defaults to `true
|
|
50
|
-
-
|
|
51
|
-
-
|
|
50
|
+
- `showOutsideDays` defaults to `true` — days from adjacent months are visible but styled with `text-muted-foreground`
|
|
51
|
+
- All `classNames` props are merged via spread (`...classNames`), so individual class overrides are supported
|
|
52
|
+
- Uses `buttonVariants` from the internal button primitive for consistent focus/hover states on nav and day cells
|
|
53
|
+
- The `Chevron` component override uses `ChevronLeft` for both directions; swap to conditional `ChevronRight` if directional icons are needed
|
|
54
|
+
|
|
55
|
+
**Source:** [`calendar.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/calendar.tsx)
|
|
@@ -1,42 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 6da745f71200af5947581734733c0a33 -->
|
|
2
|
+
A card component that renders a single vendor category with its associated vendor icons, subcategory count, and product count, linking to a filtered vendor listing page.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Key Behaviors
|
|
15
|
-
|
|
16
|
-
| State | Behavior |
|
|
17
|
-
|-------|----------|
|
|
18
|
-
| `isLoading: true` | Renders 20 animated pulse skeleton placeholders |
|
|
19
|
-
| Vendors present | Renders `VendorIcon` components in grayscale/muted style |
|
|
20
|
-
| No vendors | Renders 6 grey placeholder icon blocks |
|
|
21
|
-
|
|
22
|
-
- Navigates to `/vendors?category={slug}` on click
|
|
23
|
-
- Highlights border and arrow button in `#FFC008` (Flamingo yellow) on hover
|
|
24
|
-
- Applies left/right gradient overlays to fade the vendor icon row
|
|
6
|
+
**`CategoriesCart`** (`RealCategoryCardProps`) — Main exported component with props:
|
|
7
|
+
- `category` — Category object with `slug`, `name`, and `description`
|
|
8
|
+
- `vendors` — Array of vendor objects to display as icon thumbnails
|
|
9
|
+
- `vendorCount` — Total product count displayed in the subtitle
|
|
10
|
+
- `subcategoryCount` — Total subcategory count displayed in the subtitle
|
|
11
|
+
- `isLoading` — Toggles animated skeleton placeholders for vendor icons
|
|
12
|
+
- `className` — Optional additional CSS classes
|
|
25
13
|
|
|
26
14
|
## Usage Example
|
|
27
15
|
|
|
28
16
|
```typescript
|
|
29
17
|
import { CategoriesCart } from './categories-cart';
|
|
30
18
|
|
|
19
|
+
const category = {
|
|
20
|
+
slug: 'security',
|
|
21
|
+
name: 'Security',
|
|
22
|
+
description: 'Endpoint protection, SIEM, and threat detection tools.',
|
|
23
|
+
};
|
|
24
|
+
|
|
31
25
|
<CategoriesCart
|
|
32
|
-
category={
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}}
|
|
37
|
-
vendors={[{ id: '1', name: 'NinjaRMM', logo: '/logos/ninja.png' }]}
|
|
38
|
-
vendorCount={12}
|
|
39
|
-
subcategoryCount={3}
|
|
26
|
+
category={category}
|
|
27
|
+
vendors={vendorList}
|
|
28
|
+
vendorCount={42}
|
|
29
|
+
subcategoryCount={8}
|
|
40
30
|
isLoading={false}
|
|
41
31
|
/>
|
|
42
|
-
```
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Rendering States
|
|
35
|
+
|
|
36
|
+
| State | Behavior |
|
|
37
|
+
|---|---|
|
|
38
|
+
| `isLoading: true` | 20 pulsing skeleton rectangles replace vendor icons |
|
|
39
|
+
| `vendors.length > 0` | Renders grayscale `VendorIcon` thumbnails in a scrollable row |
|
|
40
|
+
| `vendors.length === 0` | 6 muted placeholder squares with inner icon stubs |
|
|
41
|
+
|
|
42
|
+
Vendor icons are displayed inside a horizontally clipped row with left/right gradient fade overlays for a soft scroll-edge effect. The entire card is wrapped in a `Link` that navigates to `/vendors?category={slug}`.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
**Source:** [`categories-cart.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/categories-cart.tsx)
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React card component
|
|
1
|
+
<!-- source-hash: 0c73c0168a5cf11103870e0bcf2eb7ff -->
|
|
2
|
+
A client-side React card component for displaying a product category with its metadata, icon grid, and a navigation button.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### `CategoryCard`
|
|
7
|
+
|
|
8
|
+
A presentational card component that renders category information in a structured layout.
|
|
9
|
+
|
|
10
|
+
**Props (`CategoryCardProps`):**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Description |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `name` | `string` | Category display name |
|
|
15
|
+
| `description` | `string` | Short description text |
|
|
16
|
+
| `categoryCount` | `number` | Number of subcategories |
|
|
17
|
+
| `productCount` | `number` | Number of products in the category |
|
|
18
|
+
| `icons` | `React.ReactNode[]` | Optional array of icon nodes; renders 10 skeleton placeholders if empty |
|
|
10
19
|
|
|
11
20
|
## Usage Example
|
|
12
21
|
|
|
13
22
|
```typescript
|
|
14
|
-
import { CategoryCard } from
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
function CategoryGrid() {
|
|
18
|
-
const icons = [
|
|
19
|
-
<DatabaseIcon key="db" />,
|
|
20
|
-
<ServerIcon key="server" />,
|
|
21
|
-
<CloudIcon key="cloud" />
|
|
22
|
-
];
|
|
23
|
+
import { CategoryCard } from "./category-card";
|
|
24
|
+
import { ServerIcon, DatabaseIcon } from "lucide-react";
|
|
23
25
|
|
|
26
|
+
export default function Page() {
|
|
24
27
|
return (
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
/>
|
|
33
|
-
|
|
34
|
-
{/* Card without custom icons - will show 10 placeholder icons */}
|
|
35
|
-
<CategoryCard
|
|
36
|
-
name="Security Tools"
|
|
37
|
-
description="Essential security and monitoring solutions"
|
|
38
|
-
categoryCount={3}
|
|
39
|
-
productCount={15}
|
|
40
|
-
/>
|
|
41
|
-
</div>
|
|
28
|
+
<CategoryCard
|
|
29
|
+
name="Infrastructure"
|
|
30
|
+
description="Tools for managing servers, networking, and cloud resources."
|
|
31
|
+
categoryCount={5}
|
|
32
|
+
productCount={42}
|
|
33
|
+
icons={[<ServerIcon />, <DatabaseIcon />]}
|
|
34
|
+
/>
|
|
42
35
|
);
|
|
43
36
|
}
|
|
44
37
|
```
|
|
45
38
|
|
|
46
|
-
|
|
39
|
+
## Notes
|
|
40
|
+
|
|
41
|
+
- **Client Component** — marked with `"use client"` for React interactivity.
|
|
42
|
+
- **Icon grid** — renders up to the provided icons; falls back to 10 skeleton placeholder slots when `icons` is empty or omitted.
|
|
43
|
+
- **Navigation button** — includes an accessible `aria-label` using the category `name`; intended to trigger navigation to a category detail view (wire up an `onClick` or wrap in a link as needed).
|
|
44
|
+
- Styled with OpenDS design tokens (`ods-*`) for consistent theming across the OpenFrame UI.
|
|
45
|
+
|
|
46
|
+
**Source:** [`category-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/category-card.tsx)
|