@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-H6DFCF44.cjs → chunk-22AED5IC.cjs} +82 -82
- package/dist/{chunk-H6DFCF44.cjs.map → chunk-22AED5IC.cjs.map} +1 -1
- package/dist/{chunk-MGKCS6KS.js → chunk-3WCARCI4.js} +2 -2
- package/dist/{chunk-LNKWY74S.cjs → chunk-4HL6UENH.cjs} +5 -5
- package/dist/{chunk-LNKWY74S.cjs.map → chunk-4HL6UENH.cjs.map} +1 -1
- package/dist/{chunk-Y3Y2DLNO.js → chunk-6UGYBCEN.js} +3 -3
- package/dist/{chunk-BBUEY73L.js → chunk-7I5B5PQ4.js} +6269 -5339
- package/dist/chunk-7I5B5PQ4.js.map +1 -0
- package/dist/{chunk-PSPWT2Q5.js → chunk-7LWXWXEY.js} +4 -4
- package/dist/{chunk-M7O74OWG.cjs → chunk-ACOU5YJI.cjs} +31 -31
- package/dist/{chunk-M7O74OWG.cjs.map → chunk-ACOU5YJI.cjs.map} +1 -1
- package/dist/{chunk-INDFIVDV.cjs → chunk-AHGSN4AT.cjs} +12 -12
- package/dist/{chunk-INDFIVDV.cjs.map → chunk-AHGSN4AT.cjs.map} +1 -1
- package/dist/{chunk-VTSRDC4W.js → chunk-CKC3EAYT.js} +2 -2
- package/dist/{chunk-SASR7SK5.js → chunk-GZK7FWJJ.js} +20 -4
- package/dist/chunk-GZK7FWJJ.js.map +1 -0
- package/dist/{chunk-ZRANZNEA.js → chunk-JJE5TUZK.js} +2 -2
- package/dist/{chunk-66BNAFO6.js → chunk-JQIUBFHL.js} +4 -4
- package/dist/{chunk-MMCBQJKE.cjs → chunk-KUBJHB6I.cjs} +11 -11
- package/dist/{chunk-MMCBQJKE.cjs.map → chunk-KUBJHB6I.cjs.map} +1 -1
- package/dist/{chunk-ZV6E3U3C.cjs → chunk-MRGTMMJ3.cjs} +30 -30
- package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-MRGTMMJ3.cjs.map} +1 -1
- package/dist/{chunk-OZJN54R5.cjs → chunk-NWVKG7QC.cjs} +37 -37
- package/dist/{chunk-OZJN54R5.cjs.map → chunk-NWVKG7QC.cjs.map} +1 -1
- package/dist/{chunk-AN47EIIJ.cjs → chunk-PHTSSHIQ.cjs} +59 -59
- package/dist/{chunk-AN47EIIJ.cjs.map → chunk-PHTSSHIQ.cjs.map} +1 -1
- package/dist/{chunk-N2JZ33V7.cjs → chunk-RUA3OXSJ.cjs} +26 -26
- package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RUA3OXSJ.cjs.map} +1 -1
- package/dist/{chunk-LK623WCC.cjs → chunk-RZPF7MJ2.cjs} +9 -9
- package/dist/{chunk-LK623WCC.cjs.map → chunk-RZPF7MJ2.cjs.map} +1 -1
- package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
- package/dist/chunk-STYA77PH.cjs.map +1 -0
- package/dist/{chunk-JUJY3HQS.cjs → chunk-U37UTLP7.cjs} +19 -19
- package/dist/{chunk-JUJY3HQS.cjs.map → chunk-U37UTLP7.cjs.map} +1 -1
- package/dist/{chunk-2DIOV7BR.js → chunk-UPN6EFOM.js} +4 -4
- package/dist/{chunk-OWMLWJQY.cjs → chunk-VPVOJD5X.cjs} +2432 -1502
- package/dist/chunk-VPVOJD5X.cjs.map +1 -0
- package/dist/{chunk-4SMRQ4SN.js → chunk-WBL5Y4PS.js} +3 -3
- package/dist/{chunk-FP4H6Y5O.js → chunk-WPYPSIY2.js} +3 -3
- package/dist/{chunk-R5WJJL4V.js → chunk-X5X43HFV.js} +5 -5
- package/dist/{chunk-DEHZ5CTC.js → chunk-XTWKDMCG.js} +2 -2
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/captions-url.cjs +12 -0
- package/dist/components/features/captions-url.cjs.map +1 -0
- package/dist/components/features/captions-url.js +10 -0
- package/dist/components/features/captions-url.js.map +1 -0
- package/dist/components/features/card-hit-layer.d.ts +40 -0
- package/dist/components/features/card-hit-layer.d.ts.map +1 -0
- package/dist/components/features/floating-walkthrough-video.d.ts +71 -0
- package/dist/components/features/floating-walkthrough-video.d.ts.map +1 -0
- package/dist/components/features/index.cjs +11 -3
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.d.ts +4 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +12 -4
- package/dist/components/features/use-walkthrough-video.d.ts +16 -0
- package/dist/components/features/use-walkthrough-video.d.ts.map +1 -0
- package/dist/components/features/video-bites-strip.d.ts.map +1 -1
- package/dist/components/features/video-center-badge.d.ts.map +1 -1
- package/dist/components/features/video-hover-preview.d.ts +68 -0
- package/dist/components/features/video-hover-preview.d.ts.map +1 -0
- package/dist/components/features/video.d.ts +78 -40
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/form.d.ts +0 -1
- package/dist/components/form.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +21 -21
- package/dist/components/help-center-pages/index.js +12 -12
- package/dist/components/index.cjs +163 -155
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +18 -10
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/related-content/index.cjs +4 -4
- package/dist/components/related-content/index.js +3 -3
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/button/button-styles.d.ts +2 -0
- package/dist/components/ui/button/button-styles.d.ts.map +1 -1
- package/dist/components/ui/button/button.d.ts +2 -2
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -50
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/components/ui/page-actions.d.ts +2 -1
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/index.cjs +27 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +28 -4
- package/dist/types/supabase.d.ts +80 -0
- package/dist/types/supabase.d.ts.map +1 -1
- package/dist/types/video-processing.d.ts +1 -1
- package/dist/types/video-processing.d.ts.map +1 -1
- package/dist/utils/announcement-storage.d.ts +1 -1
- package/dist/utils/announcement-storage.d.ts.map +1 -1
- package/dist/utils/dismiss-cookie.d.ts +27 -0
- package/dist/utils/dismiss-cookie.d.ts.map +1 -0
- package/dist/utils/dismissal-storage.d.ts +19 -0
- package/dist/utils/dismissal-storage.d.ts.map +1 -0
- package/dist/utils/index.cjs +48 -10
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +41 -11
- package/dist/utils/index.js.map +1 -1
- package/package.json +8 -2
- package/src/.index.md +39 -32
- package/src/.platform-domains.md +65 -0
- package/src/assets/.fae-avatar.md +33 -0
- package/src/assets/.index.md +15 -9
- package/src/components/.agent-mark.md +31 -0
- package/src/components/.announcement-bar.md +47 -35
- package/src/components/.calendar.md +19 -15
- package/src/components/.categories-cart.md +34 -30
- package/src/components/.category-card.md +33 -33
- package/src/components/.chart.md +38 -40
- package/src/components/.command.md +47 -23
- package/src/components/.comment-card.md +31 -26
- package/src/components/.content-loading-container.md +45 -20
- package/src/components/.context-menu.md +45 -31
- package/src/components/.date-time-picker.md +36 -30
- package/src/components/.empty-state.md +31 -31
- package/src/components/.faq-accordion.md +20 -30
- package/src/components/.filter-chip.md +36 -33
- package/src/components/.footer-waitlist-button.md +27 -21
- package/src/components/.footer.md +39 -24
- package/src/components/.form.md +32 -20
- package/src/components/.hero-image-uploader.md +35 -31
- package/src/components/.icon-display.md +53 -0
- package/src/components/.image-cropper.md +34 -33
- package/src/components/.index.md +25 -29
- package/src/components/.logs-list.md +27 -23
- package/src/components/.media-carousel.md +47 -26
- package/src/components/.metric-value.md +27 -24
- package/src/components/.msp-display.md +29 -23
- package/src/components/.open-source-features.md +23 -26
- package/src/components/.pagination.md +44 -39
- package/src/components/.persistent-filter-controls.md +61 -28
- package/src/components/.pricing-display.md +34 -33
- package/src/components/.results-count.md +33 -20
- package/src/components/.smooth-accordion.md +24 -20
- package/src/components/.social-icon-row.md +33 -21
- package/src/components/.sonner.md +40 -25
- package/src/components/.steps.md +39 -25
- package/src/components/.tool-icon.md +34 -21
- package/src/components/.unified-filter-logic.md +32 -36
- package/src/components/.user-display.md +33 -28
- package/src/components/.user-summary-stub.md +40 -33
- package/src/components/.vendor-display-button.md +17 -15
- package/src/components/.vendor-icon.md +17 -25
- package/src/components/.vendor-tag.md +39 -34
- package/src/components/.why-it-matters.md +15 -11
- package/src/components/.yes-no-display.md +36 -31
- package/src/components/authors/.author-detail-view.md +50 -0
- package/src/components/case-studies/.index.md +26 -0
- package/src/components/case-studies/.share-experience-section.md +45 -0
- package/src/components/chat/.approval-batch-message.md +48 -33
- package/src/components/chat/.approval-request-message.md +37 -26
- package/src/components/chat/.chat-archive-page.md +56 -0
- package/src/components/chat/.chat-attachment-bar.md +32 -40
- package/src/components/chat/.chat-composer.md +43 -0
- package/src/components/chat/.chat-container.md +41 -25
- package/src/components/chat/.chat-context-memory-bar.md +53 -0
- package/src/components/chat/.chat-context-picker.md +89 -0
- package/src/components/chat/.chat-header-icon-button.md +43 -0
- package/src/components/chat/.chat-header-search-field.md +51 -0
- package/src/components/chat/.chat-input.md +63 -30
- package/src/components/chat/.chat-list-empty-state.md +44 -0
- package/src/components/chat/.chat-message-enhanced.md +29 -31
- package/src/components/chat/.chat-message-list.md +34 -44
- package/src/components/chat/.chat-message-row.md +56 -0
- package/src/components/chat/.chat-message-skeleton.md +32 -26
- package/src/components/chat/.chat-panel-header-mobile.md +46 -0
- package/src/components/chat/.chat-panel-header.md +80 -0
- package/src/components/chat/.chat-sidebar-skeleton.md +31 -30
- package/src/components/chat/.chat-sidebar.md +36 -29
- package/src/components/chat/.chat-ticket-list.md +38 -23
- package/src/components/chat/.chat-typing-indicator.md +37 -19
- package/src/components/chat/.context-compaction-display.md +19 -15
- package/src/components/chat/.context-items-list.md +57 -0
- package/src/components/chat/.embeddable-chat.md +57 -66
- package/src/components/chat/.error-message-display.md +40 -22
- package/src/components/chat/.guide-mode-banner.md +41 -0
- package/src/components/chat/.guide-welcome.md +43 -0
- package/src/components/chat/.index.md +26 -21
- package/src/components/chat/.mingo-chat-history.md +63 -0
- package/src/components/chat/.mingo-chat-modals.md +44 -0
- package/src/components/chat/.mingo-history-rail.md +63 -0
- package/src/components/chat/.mingo-info-card.md +59 -0
- package/src/components/chat/.mingo-onboarding-card.md +21 -27
- package/src/components/chat/.mingo-welcome.md +60 -0
- package/src/components/chat/.model-display.md +33 -25
- package/src/components/chat/.msp-organization-card-skeleton.md +44 -0
- package/src/components/chat/.msp-organization-card.md +51 -0
- package/src/components/chat/.nav-link-anchor-via-runtime.md +36 -25
- package/src/components/chat/.quick-action-chip.md +60 -0
- package/src/components/chat/.quick-action-marquee.md +53 -0
- package/src/components/chat/.quick-action-wall.md +68 -0
- package/src/components/chat/.remark-mention-chips.md +41 -0
- package/src/components/chat/.slash-command-suggestions.md +30 -36
- package/src/components/chat/.source-action-button.md +28 -25
- package/src/components/chat/.tool-call-blocks.md +18 -30
- package/src/components/chat/.tool-execution-display.md +29 -34
- package/src/components/chat/entity-cards/.admin-content-card.md +29 -22
- package/src/components/chat/entity-cards/.blog-card.md +44 -33
- package/src/components/chat/entity-cards/.blog-image-placeholder.md +20 -18
- package/src/components/chat/entity-cards/.case-study-card.md +24 -33
- package/src/components/chat/entity-cards/.chat-ticket-item.md +39 -22
- package/src/components/chat/entity-cards/.customer-interview-card.md +29 -32
- package/src/components/chat/entity-cards/.data-room-doc-card.md +21 -22
- package/src/components/chat/entity-cards/.dispatch.md +41 -24
- package/src/components/chat/entity-cards/.entity-author-card.md +36 -33
- package/src/components/chat/entity-cards/.entity-portrait-card.md +47 -0
- package/src/components/chat/entity-cards/.generic-entity-card.md +26 -25
- package/src/components/chat/entity-cards/.github-activity-card.md +35 -41
- package/src/components/chat/entity-cards/.hubspot-ticket-card.md +22 -28
- package/src/components/chat/entity-cards/.index.md +33 -44
- package/src/components/chat/entity-cards/.investor-update-card.md +36 -25
- package/src/components/chat/entity-cards/.onboarding-guide-card.md +20 -29
- package/src/components/chat/entity-cards/.product-release-card-defaults.md +26 -19
- package/src/components/chat/entity-cards/.program-card.md +30 -33
- package/src/components/chat/entity-cards/.roadmap-card.md +40 -31
- package/src/components/chat/entity-cards/.roadmap-vote-button.md +33 -36
- package/src/components/chat/entity-cards/.slack-message-card.md +31 -32
- package/src/components/chat/entity-cards/.use-cover-image-fallback.md +47 -0
- package/src/components/chat/entity-cards/.use-entity-card-link.md +51 -0
- package/src/components/chat/entity-cards/.use-entity-card-placeholder.md +47 -0
- package/src/components/chat/entity-cards/.what-i-shipped-card.md +43 -0
- package/src/components/chat/hooks/.index.md +33 -30
- package/src/components/chat/hooks/.use-chat-card-item.md +30 -17
- package/src/components/chat/hooks/.use-chat-dialog-manager.md +59 -0
- package/src/components/chat/hooks/.use-chat-identity.md +37 -25
- package/src/components/chat/hooks/.use-chunk-catchup.md +53 -36
- package/src/components/chat/hooks/.use-empty-state-config.md +39 -0
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +65 -30
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +55 -36
- package/src/components/chat/hooks/.use-nats-dialog-subscription.md +66 -50
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +58 -31
- package/src/components/chat/hooks/.use-scripted-stream.md +46 -0
- package/src/components/chat/hooks/.use-slash-commands.md +32 -25
- package/src/components/chat/hooks/.use-sse-chat-adapter.md +32 -21
- package/src/components/chat/hooks/.use-unified-chat.md +45 -35
- package/src/components/chat/types/.api.types.md +49 -41
- package/src/components/chat/types/.chat.types.md +56 -34
- package/src/components/chat/types/.component.types.md +36 -36
- package/src/components/chat/types/.context-item.types.md +61 -0
- package/src/components/chat/types/.index.md +32 -17
- package/src/components/chat/types/.message.types.md +44 -45
- package/src/components/chat/types/.network.types.md +46 -46
- package/src/components/chat/types/.processing.types.md +49 -37
- package/src/components/chat/types/.unified-chat-state.types.md +41 -26
- package/src/components/chat/types/entities/.content-ref.md +20 -31
- package/src/components/chat/types/entities/.investor-update.md +14 -16
- package/src/components/chat/types/entities/.onboarding-guide.md +35 -34
- package/src/components/chat/types/entities/.program-types.md +55 -43
- package/src/components/chat/utils/.chip-action-class.md +17 -19
- package/src/components/chat/utils/.chip-styles.md +18 -18
- package/src/components/chat/utils/.chunk-parser.md +48 -37
- package/src/components/chat/utils/.compact-card-classes.md +33 -35
- package/src/components/chat/utils/.execute-navigation.md +49 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +9 -12
- package/src/components/chat/utils/.history-merge.md +65 -0
- package/src/components/chat/utils/.icon-library.md +33 -31
- package/src/components/chat/utils/.icon-registry.md +44 -0
- package/src/components/chat/utils/.index.md +37 -33
- package/src/components/chat/utils/.is-cross-origin-url.md +26 -22
- package/src/components/chat/utils/.message-segment-accumulator.md +46 -25
- package/src/components/chat/utils/.nav-anchor-props.md +29 -34
- package/src/components/chat/utils/.nav-click-handler.md +29 -33
- package/src/components/chat/utils/.process-historical-messages.md +29 -33
- package/src/components/chat/utils/.scripted-stream.md +52 -0
- package/src/components/chat/utils/.source-row-cta.md +32 -31
- package/src/components/chat/utils/.tool-call-helpers.md +25 -17
- package/src/components/contact/.contact-form.md +24 -19
- package/src/components/docs/.doc-navigation-context.md +49 -0
- package/src/components/docs/.doc-viewer.md +64 -0
- package/src/components/docs/.docs-hub-page.md +49 -0
- package/src/components/docs/.index.md +51 -0
- package/src/components/docs/.skeletons.md +47 -0
- package/src/components/docs/.use-docs-resolve-link.md +61 -0
- package/src/components/docs/.use-document-tree.md +83 -0
- package/src/components/docs/.use-scroll-spy.md +58 -0
- package/src/components/embeds/.embed-container.md +45 -0
- package/src/components/embeds/.embed-iframe.md +51 -0
- package/src/components/embeds/.figma-embed.md +43 -0
- package/src/components/embeds/.file-download-card.md +47 -0
- package/src/components/embeds/.google-sheets-viewer.md +40 -0
- package/src/components/embeds/.index.md +58 -0
- package/src/components/embeds/.linkedin-embed-client.md +50 -0
- package/src/components/embeds/.markdown-image.md +40 -0
- package/src/components/embeds/.og-link-preview.md +54 -0
- package/src/components/embeds/.pdf-viewer.md +43 -0
- package/src/components/embeds/.reddit-embed-client.md +40 -0
- package/src/components/embeds/.rich-markdown-runtime.md +53 -0
- package/src/components/embeds/.twitter-embed-client.md +44 -0
- package/src/components/faq/.faq-document-page.md +68 -0
- package/src/components/faq/.faq-section.md +55 -0
- package/src/components/faq/.index.md +29 -0
- package/src/components/faq/.json-ld.md +48 -0
- package/src/components/features/.array-entry-manager.md +32 -24
- package/src/components/features/.auth-providers-list.md +33 -32
- package/src/components/features/.captions-url.md +43 -0
- package/src/components/features/.cards-strip.md +48 -0
- package/src/components/features/.changelog-manager.md +17 -20
- package/src/components/features/.command-box.md +11 -16
- package/src/components/features/.entity-summary-editor.md +20 -15
- package/src/components/features/.entity-tag-badges.md +43 -0
- package/src/components/features/.entity-video-section.md +31 -41
- package/src/components/features/.figma-prototype-viewer.md +55 -37
- package/src/components/features/.filters-dropdown.md +14 -13
- package/src/components/features/.highlight-config-section.md +19 -16
- package/src/components/features/.highlight-video-combined-section.md +28 -19
- package/src/components/features/.highlight-video-preview.md +13 -11
- package/src/components/features/.highlight-video-section.md +26 -22
- package/src/components/features/.index.md +40 -36
- package/src/components/features/.media-gallery-manager.md +37 -35
- package/src/components/features/.mux-origins.md +46 -0
- package/src/components/features/.og-editor-preview.md +29 -24
- package/src/components/features/.os-type-badge-group.md +26 -18
- package/src/components/features/.os-type-badge.md +41 -24
- package/src/components/features/.paths-display.md +42 -25
- package/src/components/features/.platform-badge.md +26 -17
- package/src/components/features/.policy-configuration-panel.md +33 -31
- package/src/components/features/.provider-button.md +29 -20
- package/src/components/features/.push-button-selector.md +39 -41
- package/src/components/features/.release-media-manager.md +41 -34
- package/src/components/features/.section-selector.md +27 -16
- package/src/components/features/.select-button.md +21 -32
- package/src/components/features/.seo-editor-preview.md +49 -36
- package/src/components/features/.social-links-manager.md +40 -18
- package/src/components/features/.start-with-openframe-button.md +30 -32
- package/src/components/features/.status-filter-component.md +29 -38
- package/src/components/features/.tags-selector.md +25 -29
- package/src/components/features/.transcript-summary-editor.md +24 -18
- package/src/components/features/.use-video-warmup.md +47 -0
- package/src/components/features/.video-bites-display.md +36 -37
- package/src/components/features/.video-bites-shared.md +44 -0
- package/src/components/features/.video-bites-strip.md +63 -0
- package/src/components/features/.video-center-badge.md +38 -0
- package/src/components/features/.video-ratio-tabs.md +38 -31
- package/src/components/features/.video-source-selector.md +24 -27
- package/src/components/features/.video.md +35 -27
- package/src/components/features/.waitlist-form.md +39 -33
- package/src/components/features/.warning-block.md +53 -0
- package/src/components/features/ai-enrich/.AIEnrichSection.md +24 -25
- package/src/components/features/ai-enrich/.AIRequiredBadge.md +22 -21
- package/src/components/features/ai-enrich/.AIStatusIndicator.md +42 -35
- package/src/components/features/ai-enrich/.AIWarningsSection.md +23 -20
- package/src/components/features/ai-enrich/.ConfidenceBadge.md +35 -20
- package/src/components/features/auth/.auth-benefits-panel.md +48 -0
- package/src/components/features/auth/.auth-branding.md +51 -0
- package/src/components/features/auth/.auth-shell.md +51 -0
- package/src/components/features/auth/.back-to-login-link.md +48 -0
- package/src/components/features/auth/.complete-account-form.md +45 -0
- package/src/components/features/auth/.create-organization-form.md +53 -0
- package/src/components/features/auth/.index.md +48 -0
- package/src/components/features/auth/.invite-link-invalid-modal.md +42 -0
- package/src/components/features/auth/.login-form.md +42 -0
- package/src/components/features/auth/.openframe-sso-login-form.md +46 -0
- package/src/components/features/auth/.openframe-sso-signup-form.md +51 -0
- package/src/components/features/auth/.password-reset-form.md +57 -0
- package/src/components/features/auth/.sso-auth-shell.md +35 -0
- package/src/components/features/auth/.sso-providers.md +42 -0
- package/src/components/features/auth/.terms-agreement-label.md +28 -0
- package/src/components/features/board/.board-column-header.md +24 -18
- package/src/components/features/board/.board-column.md +32 -32
- package/src/components/features/board/.board-ticket-approval.md +42 -0
- package/src/components/features/board/.board.md +38 -38
- package/src/components/features/board/.index.md +35 -38
- package/src/components/features/board/.ticket-card.md +33 -36
- package/src/components/features/board/.types.md +38 -31
- package/src/components/features/card-hit-layer.tsx +84 -0
- package/src/components/features/floating-walkthrough-video.tsx +891 -0
- package/src/components/features/index.ts +4 -0
- package/src/components/features/notifications/.approval-request-notification-tile.md +45 -0
- package/src/components/features/notifications/.index.md +35 -31
- package/src/components/features/notifications/.notification-drawer.md +32 -19
- package/src/components/features/notifications/.notification-popups.md +51 -0
- package/src/components/features/notifications/.notification-tile.md +43 -27
- package/src/components/features/notifications/.notifications-context.md +42 -45
- package/src/components/features/notifications/.types.md +51 -31
- package/src/components/features/ticket-status-config-list/.ticket-status-config-list.md +51 -0
- package/src/components/features/time-tracker/.index.md +48 -0
- package/src/components/features/time-tracker/.time-tracker-context.md +55 -0
- package/src/components/features/time-tracker/.time-tracker-header-button.md +51 -0
- package/src/components/features/time-tracker/.time-tracker-panel.md +58 -0
- package/src/components/features/time-tracker/.types.md +51 -0
- package/src/components/features/time-tracker/.use-tracker-clock.md +32 -0
- package/src/components/features/use-walkthrough-video.ts +70 -0
- package/src/components/features/video-bites-strip.tsx +46 -146
- package/src/components/features/video-center-badge.tsx +11 -2
- package/src/components/features/video-hover-preview.tsx +201 -0
- package/src/components/features/video.tsx +368 -73
- package/src/components/help-center-pages/.delivery-page.md +51 -0
- package/src/components/help-center-pages/.index.md +51 -0
- package/src/components/help-center-pages/.onboarding-guides-catalog-page.md +53 -0
- package/src/components/help-center-pages/.product-releases-list-page.md +51 -0
- package/src/components/help-center-pages/.roadmap-page.md +46 -0
- package/src/components/icons/.figma-icon.md +13 -7
- package/src/components/icons/.index.md +26 -22
- package/src/components/icons/.vendor-directory-icon.md +30 -18
- package/src/components/icons/.x-logo.md +26 -10
- package/src/components/icons-v2-generated/.index.md +30 -41
- package/src/components/icons-v2-generated/brand-logos/.index.md +25 -19
- package/src/components/icons-v2-generated/communication/.index.md +26 -30
- package/src/components/icons-v2-generated/logos/.flamingo-logo-icon.md +41 -0
- package/src/components/layout/.article-detail-layout.md +32 -21
- package/src/components/layout/.page-container.md +25 -23
- package/src/components/layout/.page-heading.md +48 -0
- package/src/components/layout/.page-layout.md +30 -25
- package/src/components/layout/.title-block.md +43 -24
- package/src/components/loading/.card-skeleton.md +28 -35
- package/src/components/loading/.category-card-skeleton.md +25 -23
- package/src/components/loading/.device-card-skeleton.md +22 -15
- package/src/components/loading/.margin-report-skeleton.md +30 -35
- package/src/components/loading/.openmsp-heartbeat.md +30 -32
- package/src/components/loading/.organization-card-skeleton.md +22 -25
- package/src/components/loading/.organization-icon-skeleton.md +39 -27
- package/src/components/loading/.page-layout-skeleton.md +50 -28
- package/src/components/loading/.unified-skeleton.md +37 -40
- package/src/components/loading/.users-grid-skeleton.md +19 -38
- package/src/components/navigation/.app-header.md +35 -28
- package/src/components/navigation/.app-layout-context.md +48 -0
- package/src/components/navigation/.app-layout-drawer.md +56 -0
- package/src/components/navigation/.app-layout.md +24 -23
- package/src/components/navigation/.header-mingo-button.md +46 -0
- package/src/components/navigation/.header-organization-filter.md +32 -18
- package/src/components/navigation/.header.md +24 -31
- package/src/components/navigation/.index.md +36 -50
- package/src/components/navigation/.mingo-ai-button.md +41 -0
- package/src/components/navigation/.mobile-burger-menu.md +29 -29
- package/src/components/navigation/.mobile-nav-panel.md +41 -49
- package/src/components/navigation/.multi-level-navigation.md +76 -0
- package/src/components/navigation/.navigation-sidebar-item.md +14 -14
- package/src/components/navigation/.navigation-sidebar.md +30 -23
- package/src/components/navigation/.sliding-sidebar.md +30 -25
- package/src/components/navigation/.sticky-section-nav.md +23 -21
- package/src/components/onboarding-guides/.index.md +40 -0
- package/src/components/onboarding-guides/.onboarding-guide-detail-view.md +55 -0
- package/src/components/onboarding-guides/.onboarding-guides-catalog-skeleton.md +33 -0
- package/src/components/onboarding-guides/.onboarding-guides-catalog-view.md +50 -0
- package/src/components/onboarding-guides/hooks/.use-onboarding-guides.md +54 -0
- package/src/components/platform/.CveLink.md +28 -17
- package/src/components/platform/.ScriptArguments.md +18 -23
- package/src/components/platform/.ScriptInfoSection.md +27 -21
- package/src/components/platform/.ShellTypeBadge.md +34 -18
- package/src/components/platform/.SoftwareInfo.md +23 -21
- package/src/components/platform/.ToolBadge.md +18 -16
- package/src/components/profile/.ProfileLoadingSkeleton.md +24 -23
- package/src/components/related-content/.index.md +41 -0
- package/src/components/related-content/.related-content-section.md +62 -0
- package/src/components/shared/.article-author-byline.md +56 -0
- package/src/components/shared/.detail-page-skeleton.md +32 -43
- package/src/components/shared/.media-gallery-strip.md +43 -0
- package/src/components/shared/delivery/.delivery-lists.md +20 -19
- package/src/components/shared/delivery/.delivery-row.md +24 -20
- package/src/components/shared/delivery/.delivery-table.md +20 -22
- package/src/components/shared/dev-section/.dev-card-row.md +28 -36
- package/src/components/shared/dev-section/.dev-section-page.md +36 -25
- package/src/components/shared/dev-section/.dev-section-view.md +32 -22
- package/src/components/shared/doc-search/.doc-search-bar.md +58 -0
- package/src/components/shared/doc-search/.doc-search-result-row.md +50 -0
- package/src/components/shared/doc-search/.format-relative-path.md +30 -0
- package/src/components/shared/doc-search/.index.md +46 -0
- package/src/components/shared/doc-search/.map-doc-search-results.md +44 -0
- package/src/components/shared/doc-search/.resolve-search-result-action.md +52 -0
- package/src/components/shared/doc-search/.types.md +49 -0
- package/src/components/shared/doc-search/.use-doc-search.md +66 -0
- package/src/components/shared/legal-document/.legal-document-page.md +26 -20
- package/src/components/shared/legal-document/.use-legal-docs.md +36 -30
- package/src/components/shared/onboarding/.onboarding-step-card.md +24 -16
- package/src/components/shared/onboarding/.onboarding-walkthrough.md +42 -28
- package/src/components/shared/product-release/.index.md +33 -24
- package/src/components/shared/product-release/.product-release-card-skeleton.md +22 -28
- package/src/components/shared/product-release/.product-release-card.md +28 -29
- package/src/components/shared/product-release/.product-releases-view.md +49 -0
- package/src/components/shared/product-release/.release-detail-page.md +30 -15
- package/src/components/shared/roadmap/.index.md +29 -24
- package/src/components/shared/roadmap/.roadmap-grid.md +43 -54
- package/src/components/shared/roadmap/.roadmap-view.md +41 -0
- package/src/components/shared/roadmap/.use-roadmap-voting.md +27 -17
- package/src/components/switch.tsx +1 -1
- package/src/components/tickets/.help-center-card.md +32 -28
- package/src/components/tickets/.help-center-create-form.md +34 -22
- package/src/components/tickets/.help-center-list.md +36 -25
- package/src/components/tickets/.index.md +30 -45
- package/src/components/tickets/.ticket-center.md +31 -38
- package/src/components/tickets/.ticket-detail-drawer.md +20 -30
- package/src/components/tickets/.ticket-open-form.md +24 -26
- package/src/components/tickets/.ticket-reply-composer.md +51 -0
- package/src/components/tickets/.ticket-row.md +26 -11
- package/src/components/tickets/.types.md +56 -38
- package/src/components/tickets/hooks/.use-ticket-actions.md +60 -47
- package/src/components/tickets/hooks/.use-ticket-engagements.md +27 -27
- package/src/components/tickets/hooks/.use-tickets-list.md +24 -30
- package/src/components/ui/.accordion.md +28 -21
- package/src/components/ui/.actions-menu.md +36 -54
- package/src/components/ui/.ai-generated-badge.md +25 -0
- package/src/components/ui/.alert-dialog.md +21 -16
- package/src/components/ui/.alert.md +30 -25
- package/src/components/ui/.allowed-domains-input.md +26 -15
- package/src/components/ui/.announcement-bar-view.md +46 -0
- package/src/components/ui/.autocomplete.md +40 -27
- package/src/components/ui/.badge.md +34 -31
- package/src/components/ui/.brand-association-card.md +22 -18
- package/src/components/ui/.breadcrumb.md +18 -14
- package/src/components/ui/.bullet-list.md +35 -23
- package/src/components/ui/.card.md +47 -30
- package/src/components/ui/.checkbox-block.md +34 -22
- package/src/components/ui/.checkbox-with-description.md +18 -20
- package/src/components/ui/.chevron-button.md +29 -29
- package/src/components/ui/.circular-progress.md +30 -41
- package/src/components/ui/.color-preset-select.md +54 -0
- package/src/components/ui/.color-swatch.md +37 -0
- package/src/components/ui/.content-loader.md +34 -27
- package/src/components/ui/.crossfade-panels.md +50 -0
- package/src/components/ui/.cursor-pagination.md +38 -26
- package/src/components/ui/.dashboard-info-card.md +46 -27
- package/src/components/ui/.date-picker.md +52 -36
- package/src/components/ui/.device-card-compact.md +23 -20
- package/src/components/ui/.device-card.md +39 -30
- package/src/components/ui/.dialog.md +14 -14
- package/src/components/ui/.drawer.md +45 -39
- package/src/components/ui/.dropdown-button.md +41 -33
- package/src/components/ui/.dropdown-menu.md +40 -23
- package/src/components/ui/.duration-input.md +41 -0
- package/src/components/ui/.entity-image.md +32 -28
- package/src/components/ui/.error-state.md +30 -26
- package/src/components/ui/.fade-preview.md +44 -0
- package/src/components/ui/.field-wrapper.md +34 -23
- package/src/components/ui/.file-upload.md +30 -18
- package/src/components/ui/.filter-modal.md +30 -32
- package/src/components/ui/.filter-pill-row.md +58 -0
- package/src/components/ui/.floating-tooltip.md +27 -32
- package/src/components/ui/.hidden-tags-popup.md +18 -20
- package/src/components/ui/.highlight-card.md +36 -23
- package/src/components/ui/.honeypot-field.md +41 -0
- package/src/components/ui/.hover-dropdown.md +44 -31
- package/src/components/ui/.image-gallery-modal.md +28 -30
- package/src/components/ui/.image-uploader.md +39 -22
- package/src/components/ui/.index.md +33 -31
- package/src/components/ui/.info-card-row.md +50 -0
- package/src/components/ui/.info-card.md +27 -20
- package/src/components/ui/.info-row.md +30 -24
- package/src/components/ui/.info-section.md +63 -0
- package/src/components/ui/.input.md +29 -28
- package/src/components/ui/.label.md +34 -26
- package/src/components/ui/.markdown-editor.md +26 -25
- package/src/components/ui/.marquee-wall.md +64 -0
- package/src/components/ui/.menubar.md +50 -16
- package/src/components/ui/.modal-v2.md +41 -27
- package/src/components/ui/.modal.md +22 -19
- package/src/components/ui/.more-actions-menu.md +30 -24
- package/src/components/ui/.navigation-menu.md +40 -25
- package/src/components/ui/.organization-card.md +46 -27
- package/src/components/ui/.page-actions.md +55 -41
- package/src/components/ui/.page-loader.md +40 -23
- package/src/components/ui/.password-input.md +30 -0
- package/src/components/ui/.phone-input.md +20 -22
- package/src/components/ui/.portal-container.md +43 -0
- package/src/components/ui/.progress-bar.md +40 -27
- package/src/components/ui/.release-changelog-section.md +32 -26
- package/src/components/ui/.rich-markdown-renderer.md +45 -0
- package/src/components/ui/.scroll-fade.md +56 -0
- package/src/components/ui/.search-input.md +55 -37
- package/src/components/ui/.select.md +25 -26
- package/src/components/ui/.service-card.md +25 -19
- package/src/components/ui/.sheet.md +21 -21
- package/src/components/ui/.simple-markdown-renderer.md +36 -24
- package/src/components/ui/.slack-channel-chip.md +49 -0
- package/src/components/ui/.square-avatar.md +29 -26
- package/src/components/ui/.stacked-rows-panel.md +61 -0
- package/src/components/ui/.status-badge.md +30 -24
- package/src/components/ui/.status-indicator.md +35 -21
- package/src/components/ui/.tab-content.md +34 -22
- package/src/components/ui/.tab-navigation.md +40 -50
- package/src/components/ui/.tab-selector.md +48 -31
- package/src/components/ui/.tabs.md +34 -21
- package/src/components/ui/.tag-search-input.md +20 -20
- package/src/components/ui/.tag-select-dropdown.md +59 -0
- package/src/components/ui/.tag.md +25 -43
- package/src/components/ui/.tags-input.md +31 -31
- package/src/components/ui/.textarea.md +32 -30
- package/src/components/ui/.ticket-attachments-list.md +36 -29
- package/src/components/ui/.ticket-info-section.md +37 -42
- package/src/components/ui/.ticket-status-config-row.md +66 -0
- package/src/components/ui/.ticket-status-tag.md +39 -35
- package/src/components/ui/.toaster.md +21 -15
- package/src/components/ui/.toggle.md +38 -37
- package/src/components/ui/.tooltip.md +16 -13
- package/src/components/ui/button/.button-styles.md +17 -18
- package/src/components/ui/button/.button.md +30 -37
- package/src/components/ui/button/.split-button.md +46 -23
- package/src/components/ui/button/button-styles.ts +13 -0
- package/src/components/ui/button/button.tsx +5 -0
- package/src/components/ui/data-table/.data-table-body.md +50 -35
- package/src/components/ui/data-table/.data-table-empty.md +17 -33
- package/src/components/ui/data-table/.data-table-header.md +43 -40
- package/src/components/ui/data-table/.data-table-row.md +31 -31
- package/src/components/ui/data-table/.types.md +23 -28
- package/src/components/ui/file-manager/.file-manager-breadcrumb.md +16 -24
- package/src/components/ui/file-manager/.file-manager-empty.md +23 -15
- package/src/components/ui/file-manager/.file-manager-skeleton.md +34 -36
- package/src/components/ui/file-manager/.file-manager-table-row.md +29 -29
- package/src/components/ui/file-manager/.file-manager-table.md +39 -24
- package/src/components/ui/no-data/.index.md +22 -0
- package/src/components/ui/no-data/.no-data-actions.md +29 -0
- package/src/components/ui/no-data/.no-data-message.md +37 -0
- package/src/components/ui/no-data/.no-data-styles.md +39 -0
- package/src/components/ui/no-data/.no-data.md +59 -0
- package/src/components/ui/page-actions.tsx +2 -1
- package/src/components/ui/query-report-table/.query-report-table-header.md +15 -15
- package/src/components/ui/query-report-table/.query-report-table-row.md +16 -16
- package/src/components/ui/query-report-table/.query-report-table.md +39 -24
- package/src/components/ui/table/.table-column-filter-dropdown.md +15 -9
- package/src/components/ui/table/.table-description-cell.md +13 -12
- package/src/components/ui/table/.table-empty-state.md +19 -20
- package/src/components/ui/table/.table-row.md +30 -20
- package/src/components/ui/table/.table-skeleton.md +32 -27
- package/src/components/ui/table/.table-timestamp-cell.md +24 -23
- package/src/components/ui/table/.table.md +43 -30
- package/src/components/ui/table/.types.md +49 -45
- package/src/components/ui/table/.use-table-motion.md +45 -0
- package/src/contexts/.chat-runtime-context.md +55 -26
- package/src/contexts/.endpoints-runtime-context.md +40 -44
- package/src/embed-shims/.next-navigation.md +38 -31
- package/src/hooks/.api-hooks.md +28 -21
- package/src/hooks/.index.md +30 -25
- package/src/hooks/.use-authed-image-src.md +38 -0
- package/src/hooks/.use-contact-submission.md +35 -36
- package/src/hooks/.use-humanity-signals.md +47 -0
- package/src/hooks/.use-near-viewport.md +30 -30
- package/src/hooks/.use-og-placeholder-url.md +57 -0
- package/src/hooks/.use-scroll-to-hash.md +46 -0
- package/src/hooks/.use-self-fetch.md +52 -0
- package/src/hooks/state/.flatten-schema.md +37 -29
- package/src/hooks/ui/.index.md +37 -25
- package/src/hooks/ui/.use-auto-limit-tags.md +55 -38
- package/src/hooks/ui/.use-deferred-error.md +44 -0
- package/src/hooks/ui/.use-focus-trap.md +59 -0
- package/src/hooks/ui/.use-header-height.md +37 -0
- package/src/hooks/ui/.use-horizontal-scrollbar.md +25 -34
- package/src/hooks/ui/.use-marquee-engine.md +73 -0
- package/src/hooks/ui/.use-notification-permission.md +49 -0
- package/src/hooks/ui/.use-reset-on-page-hidden.md +40 -0
- package/src/hooks/ui/.use-suppress-clone-focus.md +41 -0
- package/src/nats/.index.md +39 -0
- package/src/nats/.nats-provider.md +46 -0
- package/src/nats/.nats.md +38 -28
- package/src/nats/.shared-connection.md +56 -0
- package/src/nats/.use-nats-subscription.md +57 -0
- package/src/stories/.ActionsMenu.stories.md +57 -0
- package/src/stories/.Alert.stories.md +46 -0
- package/src/stories/.AnnouncementBar.stories.md +59 -32
- package/src/stories/.AppLayoutDrawer.stories.md +60 -0
- package/src/stories/.AppLayoutSidebar.stories.md +45 -0
- package/src/stories/.ApprovalBatchMessage.stories.md +46 -0
- package/src/stories/.ApprovalBatchMessageClient.stories.md +55 -0
- package/src/stories/.ApprovalRequestMessage.stories.md +50 -0
- package/src/stories/.ApprovalRequestMessageClient.stories.md +41 -0
- package/src/stories/.BlogCard.stories.md +52 -0
- package/src/stories/.Board.stories.md +25 -20
- package/src/stories/.Button.stories.md +35 -40
- package/src/stories/.CampaignCardAdmin.stories.md +38 -0
- package/src/stories/.CardsStrip.stories.md +39 -0
- package/src/stories/.CaseStudyCard.stories.md +41 -0
- package/src/stories/.ChatContainer.stories.md +41 -0
- package/src/stories/.ChatInlineVideoPill.stories.md +36 -0
- package/src/stories/.ChatMessageEnhanced.stories.md +51 -0
- package/src/stories/.ChatMingoInfoCards.stories.md +30 -0
- package/src/stories/.ChatTicketList.stories.md +38 -22
- package/src/stories/.ChatTypingIndicator.stories.md +47 -0
- package/src/stories/.CheckboxBlock.stories.md +34 -35
- package/src/stories/.ContextCompactionDisplay.stories.md +28 -0
- package/src/stories/.CustomerInterviewCard.stories.md +36 -0
- package/src/stories/.DashboardInfoCard.stories.md +40 -33
- package/src/stories/.DataRoomDocCard.stories.md +42 -0
- package/src/stories/.DataTable.stories.md +37 -32
- package/src/stories/.DatePicker.stories.md +34 -30
- package/src/stories/.EmbeddableChat.stories.md +45 -28
- package/src/stories/.EmptyState.stories.md +55 -0
- package/src/stories/.ErrorMessageDisplay.stories.md +45 -0
- package/src/stories/.FilterModal.stories.md +28 -22
- package/src/stories/.GenericEntityCard.stories.md +50 -0
- package/src/stories/.GitHubActivityCard.stories.md +41 -0
- package/src/stories/.GuideWelcome.stories.md +38 -0
- package/src/stories/.Header.stories.md +32 -22
- package/src/stories/.HubspotTicketCard.stories.md +41 -0
- package/src/stories/.InfoCard.stories.md +37 -26
- package/src/stories/.InfoCardRow.stories.md +48 -0
- package/src/stories/.InfoSection.stories.md +55 -0
- package/src/stories/.Input.stories.md +45 -35
- package/src/stories/.InvestorUpdateCard.stories.md +41 -0
- package/src/stories/.MarqueeWall.stories.md +53 -0
- package/src/stories/.MingoAiButton.stories.md +31 -0
- package/src/stories/.MingoChatModals.stories.md +47 -0
- package/src/stories/.MingoInfoCard.stories.md +50 -0
- package/src/stories/.MingoOnboardingCard.stories.md +19 -19
- package/src/stories/.MingoWelcome.stories.md +41 -0
- package/src/stories/.MobileNavPanel.stories.md +52 -0
- package/src/stories/.Modal.stories.md +19 -16
- package/src/stories/.MspOrganizationCard.stories.md +45 -0
- package/src/stories/.NotificationDrawer.stories.md +39 -28
- package/src/stories/.OSTypeBadge.stories.md +34 -25
- package/src/stories/.OnboardingGuideCard.stories.md +41 -0
- package/src/stories/.PageActions.stories.md +21 -21
- package/src/stories/.PageContainer.stories.md +29 -24
- package/src/stories/.PageLayout.stories.md +18 -35
- package/src/stories/.PolicyConfigurationPanel.stories.md +58 -0
- package/src/stories/.ProductReleaseCard.stories.md +39 -0
- package/src/stories/.ProgramCard.stories.md +51 -0
- package/src/stories/.QuickActionChip.stories.md +59 -0
- package/src/stories/.QuickActionMarquee.stories.md +51 -0
- package/src/stories/.QuickActionWall.stories.md +58 -0
- package/src/stories/.RoadmapCard.stories.md +41 -0
- package/src/stories/.ShellTypeBadge.stories.md +42 -22
- package/src/stories/.SlackMessageCard.stories.md +42 -0
- package/src/stories/.SlashCommandSuggestions.stories.md +21 -31
- package/src/stories/.SplitButton.stories.md +23 -25
- package/src/stories/.StackedRowsPanel.stories.md +65 -0
- package/src/stories/.TabSelector.stories.md +26 -38
- package/src/stories/.Tag.stories.md +32 -27
- package/src/stories/.ThinkingDisplay.stories.md +43 -0
- package/src/stories/.TicketCard.stories.md +60 -0
- package/src/stories/.TicketInfoSection.stories.md +28 -20
- package/src/stories/.TimeTracker.stories.md +35 -0
- package/src/stories/.Toaster.stories.md +26 -20
- package/src/stories/.ToolBadge.stories.md +34 -24
- package/src/stories/.ToolExecutionDisplay.stories.md +22 -20
- package/src/stories/.ToolExecutionDisplayClient.stories.md +33 -0
- package/src/stories/.VideoBitesStrip.stories.md +37 -0
- package/src/stories/.WarningBlock.stories.md +51 -0
- package/src/stories/__fixtures__/.chat-card-decorator.md +39 -0
- package/src/stories/__fixtures__/.chat-cards.md +57 -0
- package/src/stories/auth/.CompleteAccount.stories.md +36 -0
- package/src/stories/auth/.CreateOrganization.stories.md +52 -0
- package/src/stories/auth/.InviteLinkInvalid.stories.md +21 -0
- package/src/stories/auth/.Login.stories.md +32 -0
- package/src/stories/auth/.OpenFrameSso.stories.md +58 -0
- package/src/stories/auth/.PasswordReset.stories.md +49 -0
- package/src/styles/ods-interaction-states.css +32 -0
- package/src/types/.announcement.md +67 -35
- package/src/types/.blog.md +44 -41
- package/src/types/.case-study.md +31 -17
- package/src/types/.content-ref.md +37 -0
- package/src/types/.customer-interview.md +38 -38
- package/src/types/.doc-source.md +87 -0
- package/src/types/.entity-author.md +53 -0
- package/src/types/.entity-platform.md +40 -0
- package/src/types/.index.md +23 -17
- package/src/types/.marketing.md +32 -35
- package/src/types/.navigation.md +31 -19
- package/src/types/.os.types.md +30 -31
- package/src/types/.permissions.md +49 -35
- package/src/types/.platform.md +44 -28
- package/src/types/.product-release.md +59 -42
- package/src/types/.shell.types.md +46 -30
- package/src/types/.supabase.md +43 -29
- package/src/types/.tool.types.md +43 -23
- package/src/types/.video-processing.md +40 -31
- package/src/types/supabase.ts +80 -0
- package/src/types/video-processing.ts +1 -0
- package/src/utils/.announcement-storage.md +49 -17
- package/src/utils/.app-config.md +22 -18
- package/src/utils/.brand-marks.md +46 -0
- package/src/utils/.cn.md +40 -29
- package/src/utils/.color-analysis.md +34 -25
- package/src/utils/.common.md +43 -23
- package/src/utils/.content-href.md +64 -0
- package/src/utils/.content-ref-groups.md +51 -0
- package/src/utils/.date-utils.md +46 -35
- package/src/utils/.doc-path-utils.md +38 -0
- package/src/utils/.doc-tree-nav.md +51 -0
- package/src/utils/.embed-authed-fetch.md +48 -32
- package/src/utils/.embed-content-fetch.md +36 -0
- package/src/utils/.embed-url-converters.md +52 -0
- package/src/utils/.extract-items.md +49 -0
- package/src/utils/.faq-anchor.md +48 -0
- package/src/utils/.format.md +73 -55
- package/src/utils/.humanity-signals.md +59 -0
- package/src/utils/.index.md +73 -31
- package/src/utils/.list-url.md +43 -0
- package/src/utils/.markdown-section-extractor.md +57 -0
- package/src/utils/.markdown-to-plain.md +51 -0
- package/src/utils/.media-carousel-utils-stub.md +42 -31
- package/src/utils/.ods-color-utils.md +84 -43
- package/src/utils/.og-placeholder.md +45 -0
- package/src/utils/.page-header-constants.md +26 -0
- package/src/utils/.platform-config.md +34 -34
- package/src/utils/.release-badge.md +47 -0
- package/src/utils/.release-cover.md +45 -0
- package/src/utils/.same-page-hash-nav.md +45 -0
- package/src/utils/.scroll-into-view.md +32 -25
- package/src/utils/.seo-description.md +37 -0
- package/src/utils/.seo-title.md +25 -0
- package/src/utils/.social-embed-cache.md +37 -0
- package/src/utils/.source-icons.md +30 -34
- package/src/utils/.suggestion-url.md +46 -0
- package/src/utils/.tool-utils.md +39 -24
- package/src/utils/.tree-builder.md +64 -0
- package/src/utils/.video-bite-id.md +42 -0
- package/src/utils/announcement-storage.ts +9 -18
- package/src/utils/dev-sections/.dev-section-param-keys.md +51 -0
- package/src/utils/dev-sections/.openframe-dev-sections.md +40 -28
- package/src/utils/dismiss-cookie.ts +55 -0
- package/src/utils/dismissal-storage.ts +38 -0
- package/src/utils/index.ts +3 -0
- package/dist/chunk-BBUEY73L.js.map +0 -1
- package/dist/chunk-G3UN2DXU.cjs.map +0 -1
- package/dist/chunk-OWMLWJQY.cjs.map +0 -1
- package/dist/chunk-SASR7SK5.js.map +0 -1
- package/src/components/chat/utils/.onboarding-icons.md +0 -28
- package/src/hooks/.use-og-placeholder.md +0 -51
- /package/dist/{chunk-MGKCS6KS.js.map → chunk-3WCARCI4.js.map} +0 -0
- /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-6UGYBCEN.js.map} +0 -0
- /package/dist/{chunk-PSPWT2Q5.js.map → chunk-7LWXWXEY.js.map} +0 -0
- /package/dist/{chunk-VTSRDC4W.js.map → chunk-CKC3EAYT.js.map} +0 -0
- /package/dist/{chunk-ZRANZNEA.js.map → chunk-JJE5TUZK.js.map} +0 -0
- /package/dist/{chunk-66BNAFO6.js.map → chunk-JQIUBFHL.js.map} +0 -0
- /package/dist/{chunk-2DIOV7BR.js.map → chunk-UPN6EFOM.js.map} +0 -0
- /package/dist/{chunk-4SMRQ4SN.js.map → chunk-WBL5Y4PS.js.map} +0 -0
- /package/dist/{chunk-FP4H6Y5O.js.map → chunk-WPYPSIY2.js.map} +0 -0
- /package/dist/{chunk-R5WJJL4V.js.map → chunk-X5X43HFV.js.map} +0 -0
- /package/dist/{chunk-DEHZ5CTC.js.map → chunk-XTWKDMCG.js.map} +0 -0
|
@@ -1,54 +1,49 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A full-page loading skeleton for the Margin Report view, rendering
|
|
1
|
+
<!-- source-hash: 748f0d8dedeec3d8bb5c7d5b38cb4fb6 -->
|
|
2
|
+
A full-page loading skeleton for the Margin Report view, rendering placeholder shimmer blocks that mirror the report's layout sections while data is being fetched.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|--------|------|-------------|
|
|
8
|
-
| `MarginReportSkeleton` | `React.FC` | Main skeleton component with pulse animation and optional overlay |
|
|
9
|
-
| `MarginReportSkeletonProps` | `interface` | Props contract for the skeleton component |
|
|
6
|
+
### `MarginReportSkeleton`
|
|
10
7
|
|
|
11
|
-
|
|
8
|
+
Main export. Renders a multi-section skeleton layout matching the Margin Report structure.
|
|
9
|
+
|
|
10
|
+
**Props (`MarginReportSkeletonProps`):**
|
|
12
11
|
|
|
13
12
|
| Prop | Type | Default | Description |
|
|
14
|
-
|
|
15
|
-
| `animate` | `boolean` | `true` | Toggles
|
|
16
|
-
| `description` | `React.ReactNode` | — |
|
|
17
|
-
| `overlayContent` | `React.ReactNode` | — | Node rendered in a centered fixed overlay (e.g. button, spinner) |
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
```
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| `animate` | `boolean` | `true` | Toggles Tailwind `animate-pulse` shimmer |
|
|
15
|
+
| `description` | `React.ReactNode` | — | Text shown above the overlay content |
|
|
16
|
+
| `overlayContent` | `React.ReactNode` | — | Node rendered in a centered fixed overlay (e.g. CTA button, spinner) |
|
|
17
|
+
|
|
18
|
+
**Skeleton sections rendered (in order):**
|
|
19
|
+
|
|
20
|
+
1. **Header** — title and subtitle placeholders
|
|
21
|
+
2. **Summary cards** — 3-column grid of `h-32` blocks
|
|
22
|
+
3. **MSP Profile & Report Info** — 2-column card row with icon + text shimmer
|
|
23
|
+
4. **Vendor solution lists** — Commercial Stack / Open-Source Stack columns, each with 5 vendor rows (icon + name + cost placeholders)
|
|
24
|
+
5. **Strategic Recommendations** — section heading + 3-column card grid
|
|
25
|
+
6. **OpenFrame value section** — header with logo + 3-column value card grid
|
|
26
|
+
7. **CTA Overlay** — conditionally renders a semi-transparent overlay with `overlayContent` fixed-centered on screen
|
|
29
27
|
|
|
30
28
|
## Usage Example
|
|
31
29
|
|
|
32
30
|
```typescript
|
|
33
|
-
|
|
31
|
+
import { MarginReportSkeleton } from './margin-report-skeleton';
|
|
32
|
+
|
|
33
|
+
// Basic shimmer while loading
|
|
34
34
|
<MarginReportSkeleton />
|
|
35
35
|
|
|
36
|
-
//
|
|
36
|
+
// With overlay CTA (e.g. prompt user to generate report)
|
|
37
37
|
<MarginReportSkeleton
|
|
38
|
-
animate={
|
|
39
|
-
description="
|
|
38
|
+
animate={true}
|
|
39
|
+
description="Your margin report is ready to generate."
|
|
40
40
|
overlayContent={
|
|
41
|
-
<
|
|
42
|
-
Generate Report
|
|
43
|
-
</Button>
|
|
41
|
+
<button onClick={handleGenerate}>Generate Report</button>
|
|
44
42
|
}
|
|
45
43
|
/>
|
|
46
44
|
|
|
47
|
-
//
|
|
48
|
-
<MarginReportSkeleton
|
|
49
|
-
description="Calculating your margins…"
|
|
50
|
-
overlayContent={<Spinner size="lg" />}
|
|
51
|
-
/>
|
|
45
|
+
// Static (no animation) for testing/screenshots
|
|
46
|
+
<MarginReportSkeleton animate={false} />
|
|
52
47
|
```
|
|
53
48
|
|
|
54
|
-
|
|
49
|
+
**Source:** [`margin-report-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/margin-report-skeleton.tsx)
|
|
@@ -1,47 +1,45 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: da03f70685b81a05475fa7db2ce0079d -->
|
|
2
|
+
A full-screen loading component that displays an animated heartbeat logo with progress tracking, designed for long-running background operations like report generation.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
### `OpenmspHeartbeatLoader`
|
|
7
|
+
|
|
8
|
+
A React client component that renders a centered loading screen with:
|
|
9
|
+
|
|
10
|
+
- **Heartbeat animation** — inline `@keyframes` CSS (`heartbeatInline`) simulating a lub-dub double-beat pulse on the OpenMSP logo, avoiding Tailwind purge issues
|
|
11
|
+
- **`OpenmspLogo`** — branded logo with customized bubble colors, scaled responsively (`w-16`/`h-16` → `w-24`/`h-24`)
|
|
12
|
+
- **Progress indicator** — displays integer percentage (0–100) with secondary `/100%` label
|
|
13
|
+
- **Status label** — configurable message defaulting to `"Processing…"`
|
|
14
|
+
- **User reassurance message** — informs users they can navigate away safely
|
|
15
|
+
|
|
16
|
+
### Props
|
|
17
|
+
|
|
18
|
+
| Prop | Type | Default | Description |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| `className` | `string` | `''` | Additional CSS classes for the outer container |
|
|
21
|
+
| `progress` | `number` | `0` | Completion percentage (0–100) |
|
|
22
|
+
| `label` | `string` | `"Processing…"` | Status message shown below progress |
|
|
23
|
+
| `barWidth` | `string` | `'w-128'` | Tailwind width class for the content column |
|
|
12
24
|
|
|
13
25
|
## Usage Example
|
|
14
26
|
|
|
15
27
|
```typescript
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<OpenmspHeartbeatLoader
|
|
21
|
-
progress={45}
|
|
22
|
-
label="Analyzing data..."
|
|
23
|
-
/>
|
|
24
|
-
|
|
25
|
-
// With custom styling and progress bar width
|
|
26
|
-
<OpenmspHeartbeatLoader
|
|
27
|
-
className="bg-gray-100"
|
|
28
|
-
progress={75}
|
|
29
|
-
label="Generating final report..."
|
|
30
|
-
barWidth="w-96"
|
|
31
|
-
/>
|
|
32
|
-
|
|
33
|
-
// In a report generation flow
|
|
34
|
-
function ReportGenerator() {
|
|
35
|
-
const [progress, setProgress] = useState(0);
|
|
36
|
-
const [status, setStatus] = useState("Initializing...");
|
|
28
|
+
import { OpenmspHeartbeatLoader } from './openmsp-heartbeat';
|
|
29
|
+
|
|
30
|
+
export default function ReportPage() {
|
|
31
|
+
const [progress, setProgress] = React.useState(42);
|
|
37
32
|
|
|
38
33
|
return (
|
|
39
|
-
<OpenmspHeartbeatLoader
|
|
34
|
+
<OpenmspHeartbeatLoader
|
|
40
35
|
progress={progress}
|
|
41
|
-
label=
|
|
36
|
+
label="Generating your MSP report…"
|
|
37
|
+
barWidth="w-96"
|
|
42
38
|
/>
|
|
43
39
|
);
|
|
44
40
|
}
|
|
45
41
|
```
|
|
46
42
|
|
|
47
|
-
|
|
43
|
+
## Source
|
|
44
|
+
|
|
45
|
+
[`openmsp-heartbeat.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/openmsp-heartbeat.tsx)
|
|
@@ -1,46 +1,43 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Loading skeleton component that
|
|
1
|
+
<!-- source-hash: 42afed7b963d9c8db89ec0c7a70f20ee -->
|
|
2
|
+
Loading skeleton component that replicates the exact layout and dimensions of an `OrganizationCard`, preventing layout shifts during data fetching.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `OrganizationCardSkeleton`
|
|
7
7
|
Single card skeleton with three configurable sections:
|
|
8
|
-
- **Header** — 60×60px org logo placeholder + title
|
|
9
|
-
- **Description** — Fixed 48px height
|
|
10
|
-
- **Footer** — Two
|
|
8
|
+
- **Header** — 60×60px org logo placeholder + title + subtitle text skeletons
|
|
9
|
+
- **Description** — Fixed 48px height, two-line body text skeletons (toggled via `showDescription`)
|
|
10
|
+
- **Footer** — Two icon+stat pairs and a tag/badge placeholder (toggled via `showFooter`)
|
|
11
11
|
|
|
12
12
|
### `OrganizationCardSkeletonGrid`
|
|
13
|
-
Renders a responsive grid of `OrganizationCardSkeleton` instances
|
|
14
|
-
- Mobile: 1 column | Tablet (`md`): 2 columns | Desktop (`lg`): 3 columns
|
|
13
|
+
Renders a responsive grid of `OrganizationCardSkeleton` instances. Defaults to 12 cards across a 1→2→3 column responsive layout.
|
|
15
14
|
|
|
16
15
|
### `OrganizationCardSkeletonProps`
|
|
16
|
+
|
|
17
17
|
| Prop | Type | Default | Description |
|
|
18
|
-
|
|
19
|
-
| `className` | `string` | — | Additional CSS classes |
|
|
20
|
-
| `containerClassName` | `string` | — | Overrides
|
|
21
|
-
| `showFooter` | `boolean` | `true` | Renders
|
|
22
|
-
| `showDescription` | `boolean` | `true` | Renders description area |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| `className` | `string` | — | Additional CSS classes on the card |
|
|
20
|
+
| `containerClassName` | `string` | — | Overrides background/border of the card container |
|
|
21
|
+
| `showFooter` | `boolean` | `true` | Renders the stats/badge footer row |
|
|
22
|
+
| `showDescription` | `boolean` | `true` | Renders the description area |
|
|
23
23
|
|
|
24
24
|
## Usage Example
|
|
25
25
|
|
|
26
26
|
```typescript
|
|
27
|
-
// Single card
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
// Single skeleton card
|
|
28
|
+
import { OrganizationCardSkeleton } from "./organization-card-skeleton"
|
|
29
|
+
|
|
30
|
+
<OrganizationCardSkeleton showFooter={true} showDescription={true} />
|
|
31
|
+
|
|
32
|
+
// Grid skeleton while fetching a list
|
|
33
|
+
import { OrganizationCardSkeletonGrid } from "./organization-card-skeleton"
|
|
32
34
|
|
|
33
|
-
// Full grid skeleton during data load
|
|
34
35
|
<OrganizationCardSkeletonGrid
|
|
35
36
|
count={9}
|
|
36
37
|
showFooter={true}
|
|
37
38
|
showDescription={false}
|
|
38
|
-
className="my-
|
|
39
|
+
className="my-6"
|
|
39
40
|
/>
|
|
41
|
+
```
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
<OrganizationCardSkeleton
|
|
43
|
-
containerClassName="bg-gray-900 border border-gray-700"
|
|
44
|
-
showFooter={false}
|
|
45
|
-
/>
|
|
46
|
-
```
|
|
43
|
+
> Both components set `role="status"` and `aria-label` for screen reader accessibility during loading states.
|
|
@@ -1,41 +1,53 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 45999614de7204fe66e3d0b2ca239d81 -->
|
|
2
|
+
Loading skeleton component that renders a placeholder for `OrganizationIcon`/`VendorIcon` during async data fetching, preventing layout shifts by matching the icon's exact dimensions and styling.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### `OrganizationIconSkeletonProps`
|
|
7
|
+
| Prop | Type | Default | Description |
|
|
8
|
+
|------|------|---------|-------------|
|
|
9
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'l' \| 'xl'` | `'md'` | Pixel size variant (24px–64px) |
|
|
10
|
+
| `className` | `string` | `''` | Additional Tailwind/CSS classes |
|
|
11
|
+
| `showBackground` | `boolean` | `true` | Toggles the container background and border |
|
|
12
|
+
| `backgroundStyle` | `'dark' \| 'light' \| 'white'` | `'dark'` | Background color variant |
|
|
13
|
+
|
|
14
|
+
### `OrganizationIconSkeleton`
|
|
15
|
+
The exported functional component. Renders an animated pulse placeholder (`animate-pulse`) sized to match the target icon exactly.
|
|
16
|
+
|
|
17
|
+
**Size → class mapping:**
|
|
18
|
+
|
|
19
|
+
| Size | Class | Pixels |
|
|
20
|
+
|------|-------|--------|
|
|
21
|
+
| `xs` | `w-6 h-6` | 24px |
|
|
22
|
+
| `sm` | `w-8 h-8` | 32px |
|
|
23
|
+
| `md` | `w-10 h-10` | 40px |
|
|
24
|
+
| `lg` | `w-12 h-12` | 48px |
|
|
25
|
+
| `l` | `w-14 h-14` | 56px |
|
|
26
|
+
| `xl` | `w-16 h-16` | 64px |
|
|
10
27
|
|
|
11
28
|
## Usage Example
|
|
12
29
|
|
|
13
30
|
```typescript
|
|
14
|
-
|
|
31
|
+
// Default — organizations table / dashboard
|
|
32
|
+
<OrganizationIconSkeleton size="md" />
|
|
15
33
|
|
|
16
|
-
//
|
|
17
|
-
<OrganizationIconSkeleton />
|
|
34
|
+
// Devices table
|
|
35
|
+
<OrganizationIconSkeleton size="sm" />
|
|
18
36
|
|
|
19
|
-
//
|
|
20
|
-
<OrganizationIconSkeleton size="
|
|
37
|
+
// Detail / profile view
|
|
38
|
+
<OrganizationIconSkeleton size="xl" backgroundStyle="light" />
|
|
21
39
|
|
|
22
|
-
//
|
|
23
|
-
<OrganizationIconSkeleton
|
|
24
|
-
size="xl"
|
|
25
|
-
backgroundStyle="white"
|
|
26
|
-
className="shadow-sm"
|
|
27
|
-
/>
|
|
40
|
+
// Icon-only, no background container
|
|
41
|
+
<OrganizationIconSkeleton size="sm" showBackground={false} />
|
|
28
42
|
|
|
29
|
-
//
|
|
30
|
-
<OrganizationIconSkeleton
|
|
31
|
-
size="lg"
|
|
32
|
-
|
|
43
|
+
// White card background with extra margin
|
|
44
|
+
<OrganizationIconSkeleton
|
|
45
|
+
size="lg"
|
|
46
|
+
backgroundStyle="white"
|
|
47
|
+
className="mr-3"
|
|
33
48
|
/>
|
|
34
|
-
|
|
35
|
-
// Loading list with multiple skeletons
|
|
36
|
-
{Array.from({ length: 3 }).map((_, i) => (
|
|
37
|
-
<OrganizationIconSkeleton key={i} size="md" />
|
|
38
|
-
))}
|
|
39
49
|
```
|
|
40
50
|
|
|
41
|
-
|
|
51
|
+
## Source
|
|
52
|
+
|
|
53
|
+
[`organization-icon-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/organization-icon-skeleton.tsx)
|
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: faa2b999162e0192fd42b39cf2569ca0 -->
|
|
2
|
+
Provides skeleton UI components that mirror real page layout elements (announcement bar, header, hero, sidebar, article, vendor detail) during loading states, built with Tailwind CSS and animated pulse effects.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Description |
|
|
7
|
-
|
|
8
|
-
| `AnnouncementBarSkeleton` |
|
|
9
|
-
| `HeaderSkeleton` | Sticky header with logo, nav links, and action
|
|
10
|
-
| `HeroSkeleton` | Full-width hero section with title, subtitle, and CTA
|
|
7
|
+
|---|---|
|
|
8
|
+
| `AnnouncementBarSkeleton` | Skeleton for top announcement bars with logo, text, and close button |
|
|
9
|
+
| `HeaderSkeleton` | Sticky header skeleton with logo, nav links, and action buttons (responsive) |
|
|
10
|
+
| `HeroSkeleton` | Full-width hero section skeleton with title, subtitle, and CTA |
|
|
11
11
|
| `SearchContainerSkeleton` | Search input with optional filter chip row |
|
|
12
|
-
| `CategorySidebarSkeleton` |
|
|
12
|
+
| `CategorySidebarSkeleton` | File-tree sidebar skeleton mimicking `MultiLevelNavigation` with folder/file icons and badges |
|
|
13
13
|
| `BreadcrumbSkeleton` | Horizontal breadcrumb trail with separator dots |
|
|
14
|
-
| `ResultsHeaderSkeleton` | Results count
|
|
15
|
-
| `TwoColumnLayoutSkeleton` |
|
|
16
|
-
| `ArticleLayoutSkeleton` | Full article
|
|
17
|
-
| `VendorDetailLayoutSkeleton` | Vendor detail page with breadcrumb, hero logo/title
|
|
14
|
+
| `ResultsHeaderSkeleton` | Results count / sort bar skeleton |
|
|
15
|
+
| `TwoColumnLayoutSkeleton` | Composable two-column grid (sidebar + main), supports left/right sidebar position |
|
|
16
|
+
| `ArticleLayoutSkeleton` | Full article skeleton: tags, title, metadata, featured image, and 12 body paragraphs |
|
|
17
|
+
| `VendorDetailLayoutSkeleton` | Vendor detail page skeleton with breadcrumb, hero logo/title, and responsive layout |
|
|
18
|
+
|
|
19
|
+
### Props
|
|
20
|
+
|
|
21
|
+
| Component | Key Props |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `SearchContainerSkeleton` | `showFilters?: boolean`, `className?: string` |
|
|
24
|
+
| `TwoColumnLayoutSkeleton` | `sidebarContent?: ReactNode`, `mainContent?: ReactNode`, `sidebarPosition?: 'left' \| 'right'` |
|
|
25
|
+
| All others | `className?: string` |
|
|
18
26
|
|
|
19
27
|
## Usage Example
|
|
20
28
|
|
|
@@ -23,24 +31,38 @@ import {
|
|
|
23
31
|
HeaderSkeleton,
|
|
24
32
|
TwoColumnLayoutSkeleton,
|
|
25
33
|
CategorySidebarSkeleton,
|
|
34
|
+
ArticleLayoutSkeleton,
|
|
26
35
|
} from "./page-layout-skeleton"
|
|
27
36
|
|
|
28
|
-
// Drop-in loading state
|
|
29
|
-
function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
// Drop-in page loading state
|
|
38
|
+
function CatalogPageSkeleton() {
|
|
39
|
+
return (
|
|
40
|
+
<>
|
|
41
|
+
<HeaderSkeleton />
|
|
42
|
+
<TwoColumnLayoutSkeleton
|
|
43
|
+
sidebarPosition="left"
|
|
44
|
+
sidebarContent={<CategorySidebarSkeleton />}
|
|
45
|
+
// mainContent defaults to <CardSkeletonGrid count={6} />
|
|
46
|
+
/>
|
|
47
|
+
</>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Slot in a custom main area
|
|
52
|
+
function ArticlePage() {
|
|
53
|
+
return (
|
|
54
|
+
<TwoColumnLayoutSkeleton
|
|
55
|
+
mainContent={<ArticleLayoutSkeleton />}
|
|
56
|
+
sidebarPosition="right"
|
|
57
|
+
/>
|
|
58
|
+
)
|
|
42
59
|
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
|
|
64
|
+
- All skeletons use `bg-ods-skeleton` / `bg-ods-border` design tokens and `animate-pulse` for consistent motion.
|
|
65
|
+
- `TwoColumnLayoutSkeleton` defaults to `CategorySidebarSkeleton` + `CardSkeletonGrid` when no children are provided.
|
|
66
|
+
- `CategorySidebarSkeleton` hard-codes 11 navigation items to closely mirror the actual `MultiLevelNavigation` shape, including README badges and chevron icons.
|
|
43
67
|
|
|
44
|
-
|
|
45
|
-
<SearchContainerSkeleton showFilters={false} className="my-4" />
|
|
46
|
-
```
|
|
68
|
+
**Source:** [`page-layout-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/page-layout-skeleton.tsx)
|
|
@@ -1,40 +1,39 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 2711fbf4f1f9d8e6410975aacc0cd4de -->
|
|
2
|
+
A unified skeleton loading component library providing accessible, animated placeholder elements for content loading states across the application.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
### `UnifiedSkeleton`
|
|
7
|
-
|
|
6
|
+
### `UnifiedSkeleton`
|
|
7
|
+
Base skeleton component accepting:
|
|
8
|
+
- `variant` — Shape style: `default` (rounded), `text` (rounded-sm), `circular`, `rectangular`
|
|
9
|
+
- `width` / `height` — Custom dimensions; defaults to full width with variant-based height
|
|
10
|
+
- `animate` — Toggles pulse animation; respects `prefers-reduced-motion` via `motion-reduce:animate-none`
|
|
11
|
+
- `aria-label` — Screen reader label (defaults to `"Loading content"`)
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
| `variant` | `'default' \| 'text' \| 'circular' \| 'rectangular'` | `'default'` | Shape/border-radius style |
|
|
12
|
-
| `width` | `string \| number` | — | Custom width override |
|
|
13
|
-
| `height` | `string \| number` | — | Custom height override |
|
|
14
|
-
| `animate` | `boolean` | `true` | Toggle pulse animation (respects `prefers-reduced-motion`) |
|
|
15
|
-
| `aria-label` | `string` | `"Loading content"` | Screen reader label |
|
|
16
|
-
|
|
17
|
-
### `TextSkeleton` namespace
|
|
13
|
+
### `TextSkeleton`
|
|
14
|
+
Namespace of text-specific variants:
|
|
18
15
|
| Export | Use Case |
|
|
19
|
-
|
|
20
|
-
| `TextSkeleton.Heading` | H1/H2 placeholders
|
|
21
|
-
| `TextSkeleton.Subheading` | H3/H4 placeholders
|
|
22
|
-
| `TextSkeleton.Body` | Paragraph text
|
|
23
|
-
| `TextSkeleton.Caption` |
|
|
16
|
+
|---|---|
|
|
17
|
+
| `TextSkeleton.Heading` | H1/H2 placeholders |
|
|
18
|
+
| `TextSkeleton.Subheading` | H3/H4 placeholders |
|
|
19
|
+
| `TextSkeleton.Body` | Paragraph text |
|
|
20
|
+
| `TextSkeleton.Caption` | Captions and metadata |
|
|
24
21
|
|
|
25
|
-
### `InteractiveSkeleton`
|
|
22
|
+
### `InteractiveSkeleton`
|
|
23
|
+
UI control placeholders:
|
|
26
24
|
| Export | Use Case |
|
|
27
|
-
|
|
28
|
-
| `InteractiveSkeleton.Button` |
|
|
29
|
-
| `InteractiveSkeleton.Input` |
|
|
30
|
-
| `InteractiveSkeleton.Chip` |
|
|
25
|
+
|---|---|
|
|
26
|
+
| `InteractiveSkeleton.Button` | CTA buttons |
|
|
27
|
+
| `InteractiveSkeleton.Input` | Form fields |
|
|
28
|
+
| `InteractiveSkeleton.Chip` | Filter chips |
|
|
31
29
|
|
|
32
|
-
### `MediaSkeleton`
|
|
30
|
+
### `MediaSkeleton`
|
|
31
|
+
Media and icon placeholders:
|
|
33
32
|
| Export | Use Case |
|
|
34
|
-
|
|
35
|
-
| `MediaSkeleton.Avatar` |
|
|
36
|
-
| `MediaSkeleton.CardImage` |
|
|
37
|
-
| `MediaSkeleton.Icon` |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `MediaSkeleton.Avatar` | Profile images (`sm`/`md`/`lg`) |
|
|
35
|
+
| `MediaSkeleton.CardImage` | OG-ratio card images (1200×630) |
|
|
36
|
+
| `MediaSkeleton.Icon` | Icons (`sm`/`md`/`lg`) |
|
|
38
37
|
|
|
39
38
|
## Usage Example
|
|
40
39
|
|
|
@@ -46,24 +45,22 @@ import {
|
|
|
46
45
|
MediaSkeleton,
|
|
47
46
|
} from "./unified-skeleton"
|
|
48
47
|
|
|
49
|
-
//
|
|
50
|
-
<UnifiedSkeleton variant="rectangular"
|
|
48
|
+
// Custom skeleton
|
|
49
|
+
<UnifiedSkeleton variant="rectangular" width={200} height={100} />
|
|
51
50
|
|
|
52
51
|
// Composing a card loading state
|
|
53
|
-
function
|
|
52
|
+
function CardSkeleton() {
|
|
54
53
|
return (
|
|
55
|
-
<div className="flex gap-3 p-4">
|
|
56
|
-
<MediaSkeleton.
|
|
57
|
-
<div className="flex-
|
|
58
|
-
<
|
|
59
|
-
<TextSkeleton.
|
|
60
|
-
<TextSkeleton.Caption className="w-1/2" />
|
|
54
|
+
<div className="flex flex-col gap-3 p-4">
|
|
55
|
+
<MediaSkeleton.CardImage />
|
|
56
|
+
<div className="flex items-center gap-2">
|
|
57
|
+
<MediaSkeleton.Avatar size="sm" />
|
|
58
|
+
<TextSkeleton.Subheading className="w-48" />
|
|
61
59
|
</div>
|
|
60
|
+
<TextSkeleton.Body />
|
|
61
|
+
<TextSkeleton.Body className="w-3/4" />
|
|
62
62
|
<InteractiveSkeleton.Button />
|
|
63
63
|
</div>
|
|
64
64
|
)
|
|
65
65
|
}
|
|
66
|
-
|
|
67
|
-
// Disable animation (e.g. for snapshot tests)
|
|
68
|
-
<UnifiedSkeleton animate={false} aria-label="Loading ticket list" />
|
|
69
66
|
```
|
|
@@ -1,45 +1,26 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A skeleton
|
|
1
|
+
<!-- source-hash: b6ac8db23428c76629b002b2787c23ba -->
|
|
2
|
+
A loading skeleton placeholder for the users data grid, rendering an animated pulsing table with header columns and configurable blank rows while user data is being fetched.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`UsersGridSkeleton`**
|
|
7
|
-
- **`Props`**
|
|
8
|
-
- `rows` - Number of skeleton rows to display (defaults to 10)
|
|
9
|
-
- `className` - Optional additional CSS classes for styling
|
|
10
|
-
|
|
11
|
-
## Features
|
|
12
|
-
|
|
13
|
-
- **Responsive Design**: Horizontal scroll for mobile compatibility with `overflow-x-auto`
|
|
14
|
-
- **Pulse Animation**: Built-in `animate-pulse` class for loading feedback
|
|
15
|
-
- **Fixed Structure**: Matches actual users grid with 5 columns (Name, Email, Role, Created, Last Sign-In)
|
|
16
|
-
- **Customizable Rows**: Configurable number of skeleton rows based on expected data size
|
|
17
|
-
- **Theme Integration**: Uses ODS (design system) color tokens and styling
|
|
6
|
+
- **`UsersGridSkeleton`** — Default export component that renders a full-width table skeleton with five fixed columns: Name, Email, Role, Created, and Last Sign-In.
|
|
7
|
+
- **`Props`** — Interface accepting `rows` (number of skeleton rows to render, defaults to `10`) and an optional `className` for style overrides.
|
|
18
8
|
|
|
19
9
|
## Usage Example
|
|
20
10
|
|
|
21
11
|
```typescript
|
|
22
|
-
import { UsersGridSkeleton } from
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
function AdminPanel() {
|
|
38
|
-
return (
|
|
39
|
-
<UsersGridSkeleton
|
|
40
|
-
rows={5}
|
|
41
|
-
className="shadow-lg"
|
|
42
|
-
/>
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
|
-
```
|
|
12
|
+
import { UsersGridSkeleton } from "./users-grid-skeleton"
|
|
13
|
+
|
|
14
|
+
// Default: 10 skeleton rows
|
|
15
|
+
<UsersGridSkeleton />
|
|
16
|
+
|
|
17
|
+
// Custom row count and additional styling
|
|
18
|
+
<UsersGridSkeleton rows={5} className="mt-4" />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Notes
|
|
22
|
+
|
|
23
|
+
- Uses `animate-pulse` for the loading shimmer effect via Tailwind CSS.
|
|
24
|
+
- Columns are statically defined as `['Name', 'Email', 'Role', 'Created', 'Last Sign-In']` — matching the expected shape of the users table.
|
|
25
|
+
- Each skeleton cell renders a full-width `h-4` bar using the `ods-border` design token, consistent with the OpenFrame design system.
|
|
26
|
+
- The `cn` utility (from [`utils/cn`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/utils/cn.ts)) merges class names, allowing external `className` overrides without conflicts.
|