@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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 94e0936a6cceaca9424e86e63a789870 -->
|
|
2
|
+
Renders the Flamingo brand logo as a scalable SVG icon React component, supporting customizable size, color, and standard SVG props.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `FlamingoLogoIconProps`
|
|
7
|
+
Extends `SVGProps<SVGSVGElement>` (excluding `width` and `height`) with:
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `className` | `string` | `""` | CSS class for the SVG element |
|
|
12
|
+
| `size` | `number` | `24` | Width and height in pixels |
|
|
13
|
+
| `color` | `string` | `"currentColor"` | Fill color for all SVG paths |
|
|
14
|
+
|
|
15
|
+
### `FlamingoLogoIcon`
|
|
16
|
+
Functional React component rendering the full Flamingo wordmark (flamingo bird + "flamingo" logotype) in a `416×120` viewBox, scaled uniformly via the `size` prop.
|
|
17
|
+
|
|
18
|
+
## Usage Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { FlamingoLogoIcon } from "./flamingo-logo-icon";
|
|
22
|
+
|
|
23
|
+
// Default usage (24px, inherits text color)
|
|
24
|
+
<FlamingoLogoIcon />
|
|
25
|
+
|
|
26
|
+
// Custom size and color
|
|
27
|
+
<FlamingoLogoIcon size={48} color="#FF6B6B" />
|
|
28
|
+
|
|
29
|
+
// With Tailwind CSS class
|
|
30
|
+
<FlamingoLogoIcon size={32} className="text-pink-500" />
|
|
31
|
+
|
|
32
|
+
// Pass-through SVG props
|
|
33
|
+
<FlamingoLogoIcon
|
|
34
|
+
size={40}
|
|
35
|
+
color="white"
|
|
36
|
+
aria-label="Flamingo"
|
|
37
|
+
role="img"
|
|
38
|
+
/>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **Note:** The `viewBox` is fixed at `0 0 416 120` (a wide, horizontal lockup). The `size` prop controls the rendered pixel dimensions uniformly, so the output will appear letterboxed. For layout-filling use cases, omit `size` and control dimensions via `className` with explicit `w-` / `h-` utilities.
|
|
@@ -1,43 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: d821433e4362b660ede768aab0cf80db -->
|
|
2
|
+
Provides two composable page layout wrappers — `PageShell` for wide layouts and `ArticleDetailLayout` for readable article-width pages — both rendering a centered `<main>` with configurable content boxes.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
| Export | Max Width |
|
|
7
|
-
|
|
8
|
-
| `PageShell` | 1920px |
|
|
9
|
-
| `ArticleDetailLayout` | 1280px |
|
|
6
|
+
| Export | Max Width | Padding Strategy |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `PageShell` | `1920px` | CSS custom properties (`--page-shell-*` vars via `ods-page-shell.css`) |
|
|
9
|
+
| `ArticleDetailLayout` | `1280px` | Fixed: `px-6 md:px-20 py-6 md:py-10` |
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- `children` — page content (no additional layout wrappers needed)
|
|
13
|
-
- `schemas?` — optional JSON-LD `<script>` elements (breadcrumbs, article schema, etc.)
|
|
11
|
+
### `LayoutProps`
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
| Prop | Type | Description |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `children` | `React.ReactNode` | Page content |
|
|
16
|
+
| `schemas` | `React.ReactNode` | Optional JSON-LD `<script>` elements (breadcrumbs, article schema) |
|
|
17
|
+
| `contentClassName` | `string` | Per-instance Tailwind override on the inner content box |
|
|
16
18
|
|
|
17
19
|
## Usage Example
|
|
18
20
|
|
|
19
21
|
```typescript
|
|
20
|
-
// Wide
|
|
21
|
-
import { PageShell } from '
|
|
22
|
+
// Wide dashboard / list page
|
|
23
|
+
import { PageShell } from './article-detail-layout';
|
|
22
24
|
|
|
23
|
-
export default function
|
|
25
|
+
export default function DashboardPage() {
|
|
24
26
|
return (
|
|
25
|
-
<PageShell>
|
|
26
|
-
<
|
|
27
|
+
<PageShell schemas={<script type="application/ld+json">{...}</script>}>
|
|
28
|
+
<MyDashboardContent />
|
|
27
29
|
</PageShell>
|
|
28
30
|
);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
//
|
|
32
|
-
import { ArticleDetailLayout } from '
|
|
33
|
+
// Blog post / release note / case study
|
|
34
|
+
import { ArticleDetailLayout } from './article-detail-layout';
|
|
33
35
|
|
|
34
|
-
export default function
|
|
36
|
+
export default function BlogPostPage() {
|
|
35
37
|
return (
|
|
36
|
-
<ArticleDetailLayout
|
|
37
|
-
|
|
38
|
+
<ArticleDetailLayout
|
|
39
|
+
contentClassName="py-16" // overrides default vertical padding
|
|
40
|
+
schemas={<ArticleSchema />}
|
|
41
|
+
>
|
|
42
|
+
<BlogPostContent />
|
|
38
43
|
</ArticleDetailLayout>
|
|
39
44
|
);
|
|
40
45
|
}
|
|
41
46
|
```
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
## Notes
|
|
49
|
+
|
|
50
|
+
- `PageShell` intentionally omits `min-h-screen` — the root `app/layout.tsx` already manages viewport height via a `flex min-h-screen flex-col` / `flex-1` chain; adding it here would create dead space in sibling-content layouts.
|
|
51
|
+
- `PageShell` padding is controlled by CSS custom properties set on any ancestor element — no prop threading or context required.
|
|
52
|
+
- `ArticleDetailLayout` does **not** participate in the `--page-shell-*` var system; its spacing is self-contained and fixed by default.
|
|
53
|
+
|
|
54
|
+
**Source:** [`article-detail-layout.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/article-detail-layout.tsx)
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 81afde4015f7335e53f265e0e5802d4d -->
|
|
2
|
+
A unified page container component that supports both a legacy layout pattern and an advanced UI pattern with variant-based layouts, headers, back buttons, and configurable actions.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
- **`
|
|
6
|
+
- **`PageContainer`** – Main exported component. Detects which interface is in use via `isAdvancedProps()` and delegates to the appropriate renderer.
|
|
7
|
+
- **`LegacyPageContainerProps`** – Backward-compatible interface for full-width background sections with configurable max-width and padding.
|
|
8
|
+
- **`AdvancedPageContainerProps`** – Modern interface supporting `variant`, `title`, `subtitle`, `backButton`, `headerActions`, `actions`, and `menuActions`.
|
|
9
|
+
- **`renderLegacyPageContainer`** – Preserves original layout behavior with configurable `as` element, background, and padding.
|
|
10
|
+
- **`renderAdvancedPageContainer`** – Renders variant-aware layouts (`list`, `detail`, `form`, `content`) with responsive headers and mobile-fixed action bars.
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
- **`PageContainer`** — Auto-detects prop interface via `isAdvancedProps()` type guard and delegates to the appropriate renderer
|
|
11
|
-
|
|
12
|
-
### Internal Renderers
|
|
13
|
-
- **`renderLegacyPageContainer`** — Wraps content in a configurable semantic element (`section`, `div`, `main`, `article`) with optional full-width background
|
|
14
|
-
- **`renderAdvancedPageContainer`** — Renders variant-aware layout (`list` | `detail` | `form` | `content`) with header, back button, title, subtitle, and `PageActions`
|
|
12
|
+
> **Deprecated:** Use `PageLayout` from `'../layout/page-layout'` instead.
|
|
15
13
|
|
|
16
14
|
## Usage Example
|
|
17
15
|
|
|
@@ -21,25 +19,29 @@ Unified page container component that supports both legacy layout patterns and a
|
|
|
21
19
|
<h1>Content</h1>
|
|
22
20
|
</PageContainer>
|
|
23
21
|
|
|
24
|
-
// Advanced
|
|
22
|
+
// Advanced — detail page with back button and actions
|
|
25
23
|
<PageContainer
|
|
26
|
-
variant="
|
|
27
|
-
title="
|
|
28
|
-
subtitle="
|
|
29
|
-
|
|
24
|
+
variant="detail"
|
|
25
|
+
title="Ticket #1234"
|
|
26
|
+
subtitle="Open · High Priority"
|
|
27
|
+
backButton={{ label: 'Back to Tickets', onClick: () => router.back() }}
|
|
28
|
+
actions={[
|
|
29
|
+
{ label: 'Save', onClick: handleSave, variant: 'primary' },
|
|
30
|
+
{ label: 'Cancel', onClick: handleCancel },
|
|
31
|
+
]}
|
|
30
32
|
>
|
|
31
|
-
<
|
|
33
|
+
<TicketDetail />
|
|
32
34
|
</PageContainer>
|
|
33
35
|
|
|
34
|
-
// Advanced
|
|
36
|
+
// Advanced — list page with header actions
|
|
35
37
|
<PageContainer
|
|
36
|
-
variant="
|
|
37
|
-
title="
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
variant="list"
|
|
39
|
+
title="Devices"
|
|
40
|
+
headerActions={<SearchBar />}
|
|
41
|
+
actions={[{ label: 'Add Device', onClick: handleAdd, icon: PlusIcon }]}
|
|
40
42
|
>
|
|
41
|
-
<
|
|
43
|
+
<DeviceTable />
|
|
42
44
|
</PageContainer>
|
|
43
45
|
```
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
**Source:** [`page-container.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/page-container.tsx)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!-- source-hash: ec06a9a2f14fb05a94b7ed963648a5fb -->
|
|
2
|
+
Renders a canonical page-level heading (`<h1>` or `<h2>`) with an optional description paragraph, serving as the single source of truth for the ODS `text-h1`/`text-h2` typography tokens across the library.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `PAGE_HEADING_CLASS` | `string` | Tailwind class string for the ODS `text-h1` token (40/48/56px, Azeret Mono semibold) |
|
|
9
|
+
| `SECTION_HEADING_CLASS` | `string` | Tailwind class string for the ODS `text-h2` sub-title token (24/32/32px) |
|
|
10
|
+
| `PageHeadingProps` | `interface` | Props for the `PageHeading` component |
|
|
11
|
+
| `PageHeading` | `function` | Unified heading component rendering the heading element + optional description |
|
|
12
|
+
|
|
13
|
+
### `PageHeadingProps`
|
|
14
|
+
|
|
15
|
+
| Prop | Type | Default | Description |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| `children` | `ReactNode` | — | Heading content; plain text or nodes |
|
|
18
|
+
| `as` | `'h1' \| 'h2'` | `'h1'` | Semantic heading level |
|
|
19
|
+
| `description` | `ReactNode` | — | Supporting copy rendered as a `<p>` |
|
|
20
|
+
| `className` | `string` | — | Extra classes merged onto the heading |
|
|
21
|
+
| `descriptionClassName` | `string` | — | Extra classes merged onto the description `<p>` |
|
|
22
|
+
|
|
23
|
+
## Usage Example
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { PageHeading, PAGE_HEADING_CLASS, SECTION_HEADING_CLASS } from './page-heading'
|
|
27
|
+
|
|
28
|
+
// Standard page title with description
|
|
29
|
+
<PageHeading description="Manage your connected devices and configurations.">
|
|
30
|
+
Devices
|
|
31
|
+
</PageHeading>
|
|
32
|
+
|
|
33
|
+
// Section heading when an h1 already exists above (e.g. hero)
|
|
34
|
+
<PageHeading as="h2" description="Filter by status or region.">
|
|
35
|
+
Active Endpoints
|
|
36
|
+
</PageHeading>
|
|
37
|
+
|
|
38
|
+
// With an accent span and extra margin class
|
|
39
|
+
<PageHeading className="mt-8">
|
|
40
|
+
Welcome to <span className="text-accent">OpenFrame</span>
|
|
41
|
+
</PageHeading>
|
|
42
|
+
|
|
43
|
+
// Apply the token class directly without the component (rare cases)
|
|
44
|
+
<h2 className={PAGE_HEADING_CLASS}>Custom Heading</h2>
|
|
45
|
+
<h3 className={SECTION_HEADING_CLASS}>Custom Section</h3>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
> **Never hardcode pixel sizes or re-assert letter-spacing** for page or section headings — use `<PageHeading>` or the exported class constants. See the [source](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/page-heading.tsx) for full implementation details.
|
|
@@ -1,50 +1,55 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 44f28568881e9535e5366a847627bff9 -->
|
|
2
|
+
Canonical page chrome component for OpenFrame surfaces, providing a consistent layout container with an optional header (`TitleBlock`), spacing, and action slots.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `PageLayout` (default export)
|
|
7
|
-
Main layout
|
|
7
|
+
Main layout wrapper that composes a `TitleBlock` header and a flex content area. The header renders conditionally when any of `title`, `subtitle`, `image`, `backButton`, `actions`, `selector`, or `loading` are provided (and `showHeader` is not `false`).
|
|
8
|
+
|
|
9
|
+
### `PageLayoutProps`
|
|
8
10
|
|
|
9
11
|
| Prop | Type | Default | Description |
|
|
10
|
-
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `subtitle` | `string` | — | Secondary heading |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| `title` | `string` | — | Page title text |
|
|
14
|
+
| `subtitle` | `string` | — | Subtitle text below title |
|
|
14
15
|
| `image` | `{ src, alt? }` | — | Header image |
|
|
15
16
|
| `backButton` | `{ label?, onClick }` | — | Back navigation button |
|
|
16
17
|
| `actions` | `PageActionButton[]` | — | Action buttons rendered in the header |
|
|
17
|
-
| `actionsVariant` | `'icon-buttons' \| 'primary-buttons' \| 'menu-primary'` | `'icon-buttons'` |
|
|
18
|
-
| `menuActions` | `ActionsMenuGroup[]` | — | Grouped
|
|
18
|
+
| `actionsVariant` | `'icon-buttons' \| 'primary-buttons' \| 'menu-primary'` | `'icon-buttons'` | Action button display style |
|
|
19
|
+
| `menuActions` | `ActionsMenuGroup[]` | — | Grouped menu actions |
|
|
19
20
|
| `selector` | `ReactNode` | — | Desktop-only slot (e.g. `TabSelector`) |
|
|
20
|
-
| `headerVariant` | `'plain' \| 'card'` | — |
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
| `headerVariant` | `'plain' \| 'card'` | — | Adds card chrome on mobile when `'card'` |
|
|
22
|
+
| `titleSize` | `'h1' \| 'h2'` | `'h2'` | Title typography size |
|
|
23
|
+
| `titleAdornment` | `ReactNode` | — | Inline node next to the title (e.g. a status tag) |
|
|
24
|
+
| `loading` | `boolean` | — | Renders skeleton bars at stable header height |
|
|
25
|
+
| `titleWrap` | `boolean` | `false` | Allows long titles to wrap instead of truncating |
|
|
26
|
+
| `showHeader` | `boolean` | `true` | Suppresses the entire header block |
|
|
27
|
+
| `className` | `string` | — | Applied to the outer wrapper |
|
|
28
|
+
| `contentClassName` | `string` | — | Applied to the content area |
|
|
28
29
|
|
|
29
30
|
## Usage Example
|
|
30
31
|
|
|
31
32
|
```typescript
|
|
32
33
|
import { PageLayout } from './page-layout'
|
|
33
34
|
|
|
34
|
-
export
|
|
35
|
+
export function MyPage() {
|
|
35
36
|
return (
|
|
36
37
|
<PageLayout
|
|
37
|
-
title="
|
|
38
|
-
subtitle="Manage your
|
|
39
|
-
|
|
40
|
-
actions={[{ label: 'Save', onClick: handleSave }]}
|
|
38
|
+
title="Devices"
|
|
39
|
+
subtitle="Manage your connected devices"
|
|
40
|
+
actions={[{ label: 'Add Device', onClick: handleAdd }]}
|
|
41
41
|
actionsVariant="primary-buttons"
|
|
42
|
-
headerVariant="
|
|
42
|
+
headerVariant="plain"
|
|
43
43
|
>
|
|
44
|
-
<
|
|
44
|
+
<DeviceList />
|
|
45
45
|
</PageLayout>
|
|
46
46
|
)
|
|
47
47
|
}
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
>
|
|
50
|
+
> ⛔️ **Frozen component** — this file is locked by design. Do not modify markup, CSS, or props without explicit human sign-off. See the file header for the full freeze rationale and sanctioned exceptions.
|
|
51
|
+
|
|
52
|
+
## Re-exports
|
|
53
|
+
|
|
54
|
+
- `TitleBlock`, `TITLE_BLOCK_MIN_HEIGHT`, `TitleBlockProps` — from `./title-block`
|
|
55
|
+
- `PageActionButton` — from `../ui/page-actions`
|
|
@@ -1,42 +1,61 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 35e8c14f44c16d1c08ed20917e13456c -->
|
|
2
|
+
Renders the title/subtitle/back-button/actions chrome block used by `PageLayout`. This component is **frozen** — it defines the canonical page header baseline across all OpenFrame pages and must not be structurally modified without explicit human sign-off.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
### `TitleBlock` (default export)
|
|
7
|
+
Primary component rendering the full page title chrome. Accepts the following props:
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| `title` | `string` | — | Page title text |
|
|
12
|
+
| `subtitle` | `string` | — | Secondary descriptor |
|
|
13
|
+
| `image` | `{ src, alt? }` | — | Entity image rendered beside title |
|
|
14
|
+
| `backButton` | `{ label?, onClick }` | — | Back navigation (desktop-only) |
|
|
15
|
+
| `actions` | `PageActionButton[]` | — | Action buttons rendered inline with title |
|
|
16
|
+
| `actionsVariant` | `'icon-buttons' \| 'primary-buttons' \| 'menu-primary'` | `'icon-buttons'` | Action button style |
|
|
17
|
+
| `menuActions` | `ActionsMenuGroup[]` | — | Overflow menu action groups |
|
|
18
|
+
| `selector` | `ReactNode` | — | Desktop-only slot (e.g. `TabSelector`) |
|
|
19
|
+
| `variant` | `'plain' \| 'card'` | `'plain'` | Visual container style |
|
|
20
|
+
| `titleSize` | `'h1' \| 'h2'` | `'h2'` | Title typography size |
|
|
21
|
+
| `titleAdornment` | `ReactNode` | — | Inline node after title (e.g. status `Tag`) |
|
|
22
|
+
| `loading` | `boolean` | — | Swaps title/subtitle text for skeleton bars |
|
|
23
|
+
| `titleWrap` | `boolean` | `false` | Allows multi-line title instead of truncation |
|
|
24
|
+
|
|
25
|
+
### `TitleTextSkeleton`
|
|
26
|
+
Internal component rendering inline skeleton bars that preserve line-box height during loading state — the header remains pixel-identical in height whether loaded or loading.
|
|
27
|
+
|
|
28
|
+
### `TITLE_BLOCK_MIN_HEIGHT`
|
|
29
|
+
Exported Tailwind class string (`'min-h-11 md:min-h-12'`) ensuring consistent header height regardless of whether action buttons are present. Reusable by other page chrome components.
|
|
9
30
|
|
|
10
31
|
## Usage Example
|
|
11
32
|
|
|
12
33
|
```typescript
|
|
13
|
-
import { TitleBlock } from '
|
|
34
|
+
import { TitleBlock } from '@/components/layout/title-block'
|
|
14
35
|
|
|
15
|
-
// Basic usage
|
|
36
|
+
// Basic usage — frozen h2 baseline
|
|
16
37
|
<TitleBlock
|
|
17
38
|
title="Devices"
|
|
18
|
-
subtitle="
|
|
39
|
+
subtitle="All managed endpoints"
|
|
19
40
|
backButton={{ label: 'Back', onClick: () => router.back() }}
|
|
20
|
-
actions={[
|
|
21
|
-
{ label: 'Add Device', icon: PlusIcon, onClick: handleAdd },
|
|
22
|
-
]}
|
|
41
|
+
actions={[{ label: 'Add Device', onClick: handleAdd }]}
|
|
23
42
|
actionsVariant="primary-buttons"
|
|
24
43
|
/>
|
|
25
44
|
|
|
26
|
-
//
|
|
45
|
+
// Help Center page — sanctioned h1 override
|
|
27
46
|
<TitleBlock
|
|
28
|
-
title="
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
actions={[{ label: 'Edit', icon: EditIcon, onClick: handleEdit }]}
|
|
33
|
-
menuActions={[{ label: 'More', items: [...] }]}
|
|
34
|
-
selector={<TabSelector tabs={tabs} />}
|
|
47
|
+
title="Getting Started"
|
|
48
|
+
titleSize="h1"
|
|
49
|
+
titleAdornment={<Tag variant="info">New</Tag>}
|
|
50
|
+
titleWrap
|
|
35
51
|
/>
|
|
36
|
-
```
|
|
37
52
|
|
|
38
|
-
|
|
53
|
+
// Loading skeleton (height preserved)
|
|
54
|
+
<TitleBlock
|
|
55
|
+
title="Releases"
|
|
56
|
+
subtitle="Recent updates"
|
|
57
|
+
loading
|
|
58
|
+
/>
|
|
59
|
+
```
|
|
39
60
|
|
|
40
|
-
|
|
41
|
-
- Back button is hidden on mobile (`hidden md:inline-flex`)
|
|
42
|
-
- Title truncates with `title` attribute tooltip when content overflows
|
|
61
|
+
> **Note:** This component is intentionally frozen. New page chrome designs must be implemented as separate components. See the in-file freeze notice for full rationale and the list of sanctioned exceptions. Source: [`title-block.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/components/layout/title-block.tsx)
|
|
@@ -1,54 +1,47 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 496defa565da946c17804f2b3bb78de3 -->
|
|
2
|
+
Unified card skeleton component providing consistent loading states for the four card types used across the application (`vendor`, `blog`, `category`, `alternative`).
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Description |
|
|
7
|
-
|
|
7
|
+
|---|---|
|
|
8
8
|
| `CardSkeleton` | Single card skeleton with variant-based layout rendering |
|
|
9
9
|
| `CardSkeletonGrid` | Responsive grid of `CardSkeleton` instances for list loading states |
|
|
10
|
-
| `
|
|
10
|
+
| `VendorCardContent` | Internal — logo, title, description, stats, and tag area |
|
|
11
|
+
| `BlogCardContent` | Internal — OG image, title, chips, description, author, and metadata footer |
|
|
12
|
+
| `CategoryCardContent` | Internal — icon grid, title, description, and action button |
|
|
13
|
+
| `AlternativeCardContent` | Internal — avatar, title, description, and optional action button |
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
### `CardSkeletonProps`
|
|
13
16
|
|
|
14
|
-
|
|
|
15
|
-
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
17
|
+
| Prop | Type | Default | Description |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| `variant` | `'vendor' \| 'blog' \| 'category' \| 'alternative'` | `'vendor'` | Selects the matching card layout |
|
|
20
|
+
| `showActions` | `boolean` | `true` | Renders action button area |
|
|
21
|
+
| `showMetadata` | `boolean` | `true` | Renders footer metadata row |
|
|
22
|
+
| `containerClassName` | `string` | — | Overrides default card background and border classes |
|
|
23
|
+
| `className` | `string` | — | Appended to the card container |
|
|
20
24
|
|
|
21
25
|
## Usage Example
|
|
22
26
|
|
|
23
27
|
```typescript
|
|
24
|
-
import { CardSkeleton, CardSkeletonGrid } from "
|
|
28
|
+
import { CardSkeleton, CardSkeletonGrid } from "@/components/skeletons/card-skeleton"
|
|
25
29
|
|
|
26
|
-
// Single
|
|
27
|
-
<CardSkeleton variant="vendor"
|
|
30
|
+
// Single vendor card loading state
|
|
31
|
+
<CardSkeleton variant="vendor" />
|
|
28
32
|
|
|
29
|
-
//
|
|
30
|
-
<
|
|
31
|
-
variant="blog"
|
|
32
|
-
count={4}
|
|
33
|
-
showActions={false}
|
|
34
|
-
showMetadata
|
|
35
|
-
className="my-8"
|
|
36
|
-
/>
|
|
33
|
+
// Blog card without metadata footer
|
|
34
|
+
<CardSkeleton variant="blog" showMetadata={false} />
|
|
37
35
|
|
|
38
|
-
//
|
|
36
|
+
// Grid of 9 vendor skeletons
|
|
37
|
+
<CardSkeletonGrid count={9} variant="vendor" />
|
|
38
|
+
|
|
39
|
+
// Grid of blog skeletons with custom container style
|
|
39
40
|
<CardSkeletonGrid
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
containerClassName="bg-
|
|
41
|
+
count={4}
|
|
42
|
+
variant="blog"
|
|
43
|
+
containerClassName="bg-white border border-gray-200"
|
|
43
44
|
/>
|
|
44
45
|
```
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
| Prop | Type | Default | Description |
|
|
49
|
-
|------|------|---------|-------------|
|
|
50
|
-
| `variant` | `'vendor' \| 'blog' \| 'category' \| 'alternative'` | `'vendor'` | Card layout to replicate |
|
|
51
|
-
| `showActions` | `boolean` | `true` | Renders action button placeholder |
|
|
52
|
-
| `showMetadata` | `boolean` | `true` | Renders footer metadata placeholder |
|
|
53
|
-
| `containerClassName` | `string` | `bg-ods-card border border-ods-border` | Overrides card container background and border |
|
|
54
|
-
| `count` *(grid only)* | `number` | `6` | Number of skeleton cards to render |
|
|
47
|
+
> Grid column counts are variant-aware: `vendor` uses a 3-column layout at `lg`, `blog` uses 2-column at `md`, `category` uses 4-column at `lg`, and `alternative` is always single-column.
|
|
@@ -1,41 +1,43 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 345b2538bd8f070fb84d13df78fe015f -->
|
|
2
|
+
Loading state placeholder for a category card UI component, rendering animated skeletons for icons, text, and a button while content is being fetched.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
- **TextSkeleton** - Imported text-specific skeleton components for headings and body text
|
|
6
|
+
- **`CategoryCardSkeleton`** — Main export. Renders an `<article>` with `role="status"` and `aria-label` for accessibility compliance during loading states.
|
|
7
|
+
- **`UnifiedSkeleton`** — Used for circular icon placeholders (10 items) and the rectangular arrow button placeholder.
|
|
8
|
+
- **`TextSkeleton.Heading` / `TextSkeleton.Body`** — Specialized text skeleton variants for the card's title and description lines.
|
|
10
9
|
|
|
11
10
|
## Usage Example
|
|
12
11
|
|
|
13
12
|
```typescript
|
|
14
13
|
import { CategoryCardSkeleton } from './category-card-skeleton'
|
|
15
14
|
|
|
16
|
-
// Basic usage
|
|
15
|
+
// Basic usage in a loading state
|
|
17
16
|
function CategoryGrid() {
|
|
18
|
-
const [loading, setLoading] = useState(true)
|
|
19
|
-
const [categories, setCategories] = useState([])
|
|
20
|
-
|
|
21
17
|
return (
|
|
22
18
|
<div className="grid grid-cols-3 gap-4">
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<CategoryCard key={category.id} {...category} />
|
|
31
|
-
))
|
|
32
|
-
)}
|
|
19
|
+
{isLoading
|
|
20
|
+
? Array.from({ length: 6 }).map((_, i) => (
|
|
21
|
+
<CategoryCardSkeleton key={i} />
|
|
22
|
+
))
|
|
23
|
+
: categories.map((cat) => (
|
|
24
|
+
<CategoryCard key={cat.id} {...cat} />
|
|
25
|
+
))}
|
|
33
26
|
</div>
|
|
34
27
|
)
|
|
35
28
|
}
|
|
36
29
|
|
|
37
|
-
// With custom
|
|
38
|
-
<CategoryCardSkeleton className="
|
|
30
|
+
// With custom className override
|
|
31
|
+
<CategoryCardSkeleton className="col-span-2 border-dashed" />
|
|
39
32
|
```
|
|
40
33
|
|
|
41
|
-
|
|
34
|
+
## Structure
|
|
35
|
+
|
|
36
|
+
| Region | Skeleton Element |
|
|
37
|
+
|---|---|
|
|
38
|
+
| Icons row | 10 × circular `UnifiedSkeleton` (40×40px) |
|
|
39
|
+
| Heading | `TextSkeleton.Heading` at 75% width |
|
|
40
|
+
| Body lines | 2 × `TextSkeleton.Body` at 50% / 100% width |
|
|
41
|
+
| Arrow button | Rectangular `UnifiedSkeleton` (48×48px, 6px radius) |
|
|
42
|
+
|
|
43
|
+
**Source:** [`flamingo-stack/openframe-oss-lib`](https://github.com/flamingo-stack/openframe-oss-lib)
|
|
@@ -1,27 +1,35 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Loading skeleton
|
|
1
|
+
<!-- source-hash: 54aa570e451e331c157161933707661b -->
|
|
2
|
+
Loading skeleton components that mirror the exact layout of `DeviceCard` to prevent layout shifts during data fetching.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `DeviceCardSkeleton`
|
|
7
|
-
A single animated placeholder card
|
|
7
|
+
A single animated placeholder card replicating the three-row structure of `DeviceCard`:
|
|
8
8
|
- **Row 1:** Device icon + device name + more button
|
|
9
9
|
- **Row 2:** OS badge + organization icon + organization name
|
|
10
10
|
- **Row 3:** Status badge + last seen timestamp
|
|
11
11
|
|
|
12
|
+
Uses `animate-pulse` on placeholder elements and matches exact dimensions to eliminate layout jumps.
|
|
13
|
+
|
|
12
14
|
| Prop | Type | Description |
|
|
13
15
|
|------|------|-------------|
|
|
14
|
-
| `className` | `string
|
|
16
|
+
| `className` | `string` | Optional additional CSS classes |
|
|
15
17
|
|
|
16
18
|
### `DeviceCardSkeletonGrid`
|
|
17
|
-
|
|
19
|
+
A responsive grid wrapper that renders `count` skeleton cards, matching the `DevicesGrid` column layout.
|
|
18
20
|
|
|
19
21
|
| Prop | Type | Default | Description |
|
|
20
22
|
|------|------|---------|-------------|
|
|
21
|
-
| `count` | `number
|
|
22
|
-
| `className` | `string
|
|
23
|
+
| `count` | `number` | `12` | Number of skeleton cards to render |
|
|
24
|
+
| `className` | `string` | — | Optional additional CSS classes |
|
|
25
|
+
|
|
26
|
+
**Responsive breakpoints:**
|
|
23
27
|
|
|
24
|
-
|
|
28
|
+
| Breakpoint | Columns |
|
|
29
|
+
|-----------|---------|
|
|
30
|
+
| Mobile | 1 |
|
|
31
|
+
| `md` (tablet) | 2 |
|
|
32
|
+
| `lg` (desktop) | 4 |
|
|
25
33
|
|
|
26
34
|
## Usage Example
|
|
27
35
|
|
|
@@ -29,19 +37,18 @@ Renders a responsive grid of `DeviceCardSkeleton` instances, matching the `Devic
|
|
|
29
37
|
// Single skeleton card
|
|
30
38
|
import { DeviceCardSkeleton } from "./device-card-skeleton"
|
|
31
39
|
|
|
32
|
-
function
|
|
33
|
-
return <DeviceCardSkeleton
|
|
40
|
+
function DevicePanel({ isLoading }: { isLoading: boolean }) {
|
|
41
|
+
if (isLoading) return <DeviceCardSkeleton />
|
|
42
|
+
return <DeviceCard />
|
|
34
43
|
}
|
|
35
44
|
|
|
36
|
-
//
|
|
45
|
+
// Skeleton grid during list fetch
|
|
37
46
|
import { DeviceCardSkeletonGrid } from "./device-card-skeleton"
|
|
38
47
|
|
|
39
48
|
function DevicesPage({ isLoading, devices }) {
|
|
40
|
-
if (isLoading) {
|
|
41
|
-
return <DeviceCardSkeletonGrid count={8} />
|
|
42
|
-
}
|
|
49
|
+
if (isLoading) return <DeviceCardSkeletonGrid count={8} />
|
|
43
50
|
return <DevicesGrid devices={devices} />
|
|
44
51
|
}
|
|
45
52
|
```
|
|
46
53
|
|
|
47
|
-
|
|
54
|
+
**Source:** [`device-card-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/device-card-skeleton.tsx)
|