@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,41 +1,41 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: f3ccd540c7acf6c008d5b4be2c760260 -->
|
|
2
|
+
Renders a single interactive row in a file manager table, displaying file/folder metadata with selection, context menu, and navigation controls.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- **Metadata columns** — file size and last modified date
|
|
11
|
-
- **Action controls** — `MoreHorizontal` context menu button (visible on hover) and a `ChevronRight` navigate-into button for folders
|
|
12
|
-
|
|
13
|
-
## Key Behaviors
|
|
14
|
-
|
|
15
|
-
| Behavior | Detail |
|
|
16
|
-
|---|---|
|
|
17
|
-
| `data-no-row-click` | Prevents checkbox and action buttons from bubbling clicks to the row handler |
|
|
18
|
-
| Context menu | Managed via `contextMenuOpen` state; closes automatically after an action |
|
|
19
|
-
| Folder vs file | Renders `ChevronRight` nav button for folders; renders an empty spacer `div` for files to preserve alignment |
|
|
20
|
-
| File extension | Parsed from `file.name` for files; `undefined` for folders |
|
|
6
|
+
- **`FileManagerTableRow`** — Primary export; a client-side React component that renders a row with checkbox, file icon, name, optional path, size, modified date, and action controls
|
|
7
|
+
- **`FileManagerContextMenu`** — Dropdown menu triggered by the `MoreHorizontal` button, scoped to the row's file type
|
|
8
|
+
- **`FileIcon`** — Displays a type/extension-aware icon alongside the file name
|
|
9
|
+
- **`data-no-row-click`** — Attribute used to prevent checkbox and action button clicks from bubbling to the row's `onClick` handler
|
|
21
10
|
|
|
22
11
|
## Usage Example
|
|
23
12
|
|
|
24
13
|
```typescript
|
|
14
|
+
import { FileManagerTableRow } from './file-manager-table-row'
|
|
15
|
+
|
|
16
|
+
const file = {
|
|
17
|
+
name: 'quarterly-report.pdf',
|
|
18
|
+
type: 'file',
|
|
19
|
+
size: '2.4 MB',
|
|
20
|
+
modified: 'Jan 15, 2025',
|
|
21
|
+
path: '/documents/reports/',
|
|
22
|
+
}
|
|
23
|
+
|
|
25
24
|
<FileManagerTableRow
|
|
26
|
-
file={
|
|
27
|
-
name: 'report.pdf',
|
|
28
|
-
type: 'file',
|
|
29
|
-
size: '2.4 MB',
|
|
30
|
-
modified: 'Jan 15, 2025',
|
|
31
|
-
path: '/documents/reports/report.pdf',
|
|
32
|
-
}}
|
|
25
|
+
file={file}
|
|
33
26
|
isSelected={false}
|
|
34
27
|
showCheckbox={true}
|
|
35
28
|
showPath={true}
|
|
36
|
-
onSelect={(checked) =>
|
|
37
|
-
onClick={() =>
|
|
38
|
-
onDoubleClick={() =>
|
|
39
|
-
|
|
29
|
+
onSelect={(checked) => console.log('selected:', checked)}
|
|
30
|
+
onClick={() => console.log('row clicked')}
|
|
31
|
+
onDoubleClick={() => console.log('open file')}
|
|
32
|
+
onContextMenu={(e) => console.log('context menu', e)}
|
|
33
|
+
onActionClick={(action) => console.log('action:', action)}
|
|
40
34
|
/>
|
|
41
|
-
```
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Behavior Notes
|
|
38
|
+
|
|
39
|
+
- Folder rows render a `ChevronRight` navigation button that triggers `onDoubleClick`; file rows render a spacer div to preserve column alignment
|
|
40
|
+
- The context menu (`MoreHorizontal` button) is hidden by default and fades in on row hover via Tailwind's `group-hover:opacity-100`
|
|
41
|
+
- Row background shifts to `ods-bg-surface` when `isSelected` is `true`
|
|
@@ -1,13 +1,29 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component that renders a file
|
|
1
|
+
<!-- source-hash: 58a15193962e4b16a60c090f4b5422d2 -->
|
|
2
|
+
A client-side React component that renders a file manager table with selection, loading skeleton states, and dynamic height calculation.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
- **
|
|
10
|
-
-
|
|
6
|
+
- **`FileManagerTable`** — Main exported component that handles file listing, multi-select, and adaptive layout
|
|
7
|
+
- **`allSelected` / `someSelected`** — Memoized booleans driving the header checkbox's checked/indeterminate state
|
|
8
|
+
- **`useLayoutEffect` + `ResizeObserver`** — Dynamically calculates and updates the table height to fill available viewport space below its top offset
|
|
9
|
+
- **Skeleton loading state** — Renders 8 placeholder rows with shimmer UI when `loading` is `true`
|
|
10
|
+
- **`FileManagerEmpty`** — Rendered when `files.length === 0`
|
|
11
|
+
- **`FileManagerTableRow`** — Per-row component receiving selection, click, double-click, and action handlers
|
|
12
|
+
|
|
13
|
+
## Props (`FileManagerTableProps`)
|
|
14
|
+
|
|
15
|
+
| Prop | Description |
|
|
16
|
+
|---|---|
|
|
17
|
+
| `files` | Array of file/folder items to display |
|
|
18
|
+
| `selectedFiles` | Array of selected file IDs |
|
|
19
|
+
| `showCheckboxes` | Toggle selection checkboxes (default: `true`) |
|
|
20
|
+
| `loading` | Shows skeleton UI when `true` (default: `false`) |
|
|
21
|
+
| `isSearchResult` | Renders file path subtitles and changes click behavior |
|
|
22
|
+
| `onSelectFile` | Called with `(id, selected)` on row checkbox change |
|
|
23
|
+
| `onSelectAll` | Called with `(checked)` on header checkbox change |
|
|
24
|
+
| `onFileClick` | Called on single-click (search result mode) |
|
|
25
|
+
| `onFolderOpen` | Called when a folder row is clicked or double-clicked |
|
|
26
|
+
| `onFileAction` | Called with `(action, fileId)` on action button interaction |
|
|
11
27
|
|
|
12
28
|
## Usage Example
|
|
13
29
|
|
|
@@ -15,32 +31,31 @@ A React component that renders a file browser table with selection, loading stat
|
|
|
15
31
|
import { FileManagerTable } from './file-manager-table'
|
|
16
32
|
|
|
17
33
|
function MyFileManager() {
|
|
18
|
-
const [files, setFiles] = useState([])
|
|
19
34
|
const [selectedFiles, setSelectedFiles] = useState<string[]>([])
|
|
20
|
-
|
|
35
|
+
|
|
36
|
+
const handleSelectFile = (id: string, selected: boolean) => {
|
|
37
|
+
setSelectedFiles(prev =>
|
|
38
|
+
selected ? [...prev, id] : prev.filter(f => f !== id)
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const handleSelectAll = (checked: boolean) => {
|
|
43
|
+
setSelectedFiles(checked ? files.map(f => f.id) : [])
|
|
44
|
+
}
|
|
21
45
|
|
|
22
46
|
return (
|
|
23
47
|
<FileManagerTable
|
|
24
48
|
files={files}
|
|
25
49
|
selectedFiles={selectedFiles}
|
|
26
|
-
loading={
|
|
27
|
-
showCheckboxes={true}
|
|
50
|
+
loading={false}
|
|
28
51
|
isSearchResult={false}
|
|
29
|
-
onSelectFile={
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}}
|
|
34
|
-
onSelectAll={(checked) => {
|
|
35
|
-
setSelectedFiles(checked ? files.map(f => f.id) : [])
|
|
36
|
-
}}
|
|
37
|
-
onFileClick={(file) => console.log('File clicked:', file)}
|
|
38
|
-
onFolderOpen={(folder) => console.log('Folder opened:', folder)}
|
|
39
|
-
onFileAction={(action, fileId) => console.log(action, fileId)}
|
|
40
|
-
className="h-full"
|
|
52
|
+
onSelectFile={handleSelectFile}
|
|
53
|
+
onSelectAll={handleSelectAll}
|
|
54
|
+
onFolderOpen={(folder) => console.log('Open folder', folder.id)}
|
|
55
|
+
onFileAction={(action, id) => console.log(action, id)}
|
|
41
56
|
/>
|
|
42
57
|
)
|
|
43
58
|
}
|
|
44
59
|
```
|
|
45
60
|
|
|
46
|
-
|
|
61
|
+
**Source:** [`file-manager-table.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/file-manager-table.tsx)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!-- source-hash: 6d0d61c6e67ca5c8a7f92541dd1a1831 -->
|
|
2
|
+
Barrel export file that re-exports all public members from the `no-data` component module and its sub-modules.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Source |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `no-data` | Core no-data component |
|
|
9
|
+
| `no-data-message` | Message sub-component |
|
|
10
|
+
| `no-data-actions` | Actions sub-component |
|
|
11
|
+
| `no-data-styles` | Style utilities/constants |
|
|
12
|
+
|
|
13
|
+
## Usage Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
// Import any no-data exports from a single entry point
|
|
17
|
+
import {
|
|
18
|
+
NoData,
|
|
19
|
+
NoDataMessage,
|
|
20
|
+
NoDataActions,
|
|
21
|
+
} from "@/components/no-data"
|
|
22
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!-- source-hash: fcf30ffdd2b06689272d48ed99f209b0 -->
|
|
2
|
+
Renders a grouped panel of static info blocks for empty-state UI, each displaying an optional icon alongside a short label.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`NoDataAction`** — A single presentational info block with an optional leading icon and label. Lays out icon-beside-label on mobile and icon-above-label on `md+` screens. Capped at 224px wide on larger viewports.
|
|
7
|
+
- **`NoDataActions`** — A container that groups multiple `NoDataAction` blocks into a shared bordered panel. Renders as a vertical stack on mobile (horizontal dividers) and a horizontal row on `md+` (vertical dividers). Accepts blocks via the `actions` prop or as `children`.
|
|
8
|
+
- **`NoDataActionsVariant`** — Re-exported type controlling the surface treatment of the group panel (e.g. `"outline"`).
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
// Using the `actions` prop
|
|
14
|
+
<NoDataActions
|
|
15
|
+
variant="outline"
|
|
16
|
+
actions={[
|
|
17
|
+
{ icon: <SearchIcon />, label: "No results found" },
|
|
18
|
+
{ icon: <FilterIcon />, label: "Try adjusting your filters" },
|
|
19
|
+
]}
|
|
20
|
+
/>
|
|
21
|
+
|
|
22
|
+
// Using children directly
|
|
23
|
+
<NoDataActions variant="outline">
|
|
24
|
+
<NoDataAction icon={<SearchIcon />} label="No results found" />
|
|
25
|
+
<NoDataAction icon={<FilterIcon />} label="Try adjusting your filters" />
|
|
26
|
+
</NoDataActions>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Both components forward refs and accept standard `HTMLDivElement` attributes. `NoDataAction` omits the native `title` attribute to avoid conflicts with the `label` prop.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- source-hash: c900a3b18fe6d2568dc0305630bbed03 -->
|
|
2
|
+
Presentational component that renders a centered, muted empty-state block composed of an optional icon, title, and description.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`NoDataMessage`** — A `forwardRef` div that vertically stacks an icon, a primary title line, and a secondary description line. All three slots are optional, enabling reduced forms such as icon-only or title-only displays.
|
|
7
|
+
- **`NoDataMessageProps`** — Extends `React.HTMLAttributes<HTMLDivElement>` (with `title` omitted to avoid conflicts) and adds `icon`, `title`, and `description` as optional `ReactNode` props.
|
|
8
|
+
|
|
9
|
+
## Usage Example
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { NoDataMessage } from "./no-data-message"
|
|
13
|
+
import { SearchIcon } from "lucide-react"
|
|
14
|
+
|
|
15
|
+
// Full form: icon + title + description
|
|
16
|
+
<NoDataMessage
|
|
17
|
+
icon={<SearchIcon />}
|
|
18
|
+
title="No results found"
|
|
19
|
+
description="Try adjusting your filters or search query."
|
|
20
|
+
/>
|
|
21
|
+
|
|
22
|
+
// Reduced form: title only
|
|
23
|
+
<NoDataMessage title="No data available" />
|
|
24
|
+
|
|
25
|
+
// With additional className
|
|
26
|
+
<NoDataMessage
|
|
27
|
+
icon={<SearchIcon />}
|
|
28
|
+
title="Nothing here yet"
|
|
29
|
+
className="my-8"
|
|
30
|
+
/>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Notes
|
|
34
|
+
|
|
35
|
+
- Icon is wrapped in a `<span>` styled via `noDataIconClasses` (16px mobile / 24px md+).
|
|
36
|
+
- Title renders at `text-h4`; description renders at `text-h6`; both use `break-words` to handle long strings gracefully.
|
|
37
|
+
- The wrapper uses `text-ods-text-secondary` for muted gray coloring and accepts all standard `div` HTML attributes via prop spreading.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- source-hash: d6a633bbb5664eb878fc526683cbcdda -->
|
|
2
|
+
Shared style atoms for the `NoData` (empty-state) component family, providing a single source of truth for icon sizing and info-block container surface styles via CVA variants.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`noDataIconClasses`** — Static class string that sizes the leading icon glyph (`16px` mobile, `24px` on `md+`) using `[&_svg]` selectors. Color is intentionally omitted so the icon inherits the current text color.
|
|
7
|
+
- **`noDataActionsVariants`** — CVA factory for the info-block group container. Currently exposes a single `outline` variant: a transparent, bordered, rounded panel with `overflow-hidden` to keep inner blocks square.
|
|
8
|
+
- **`NoDataActionsVariant`** — Extracted union type of valid `variant` values for `noDataActionsVariants`, useful for prop typing in consumer components.
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import {
|
|
14
|
+
noDataIconClasses,
|
|
15
|
+
noDataActionsVariants,
|
|
16
|
+
type NoDataActionsVariant,
|
|
17
|
+
} from "./no-data-styles"
|
|
18
|
+
|
|
19
|
+
// Apply icon sizing to any SVG-bearing element
|
|
20
|
+
<span className={noDataIconClasses}>
|
|
21
|
+
<SearchIcon />
|
|
22
|
+
</span>
|
|
23
|
+
|
|
24
|
+
// Resolve container classes (defaults to "outline" variant)
|
|
25
|
+
<div className={noDataActionsVariants()}>
|
|
26
|
+
{/* info blocks */}
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
// Explicitly pass a variant
|
|
30
|
+
const variant: NoDataActionsVariant = "outline"
|
|
31
|
+
<div className={noDataActionsVariants({ variant })}>
|
|
32
|
+
{/* info blocks */}
|
|
33
|
+
</div>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Notes
|
|
37
|
+
|
|
38
|
+
- The `outline` variant is the default; new surface looks (e.g. `ghost`, `filled`) can be added to the `variants` map without modifying consuming markup.
|
|
39
|
+
- `overflow-hidden` on the container ensures only the outermost wrapper has rounded corners — inner sibling blocks remain square-cornered.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<!-- source-hash: 3ac6cf66b806617bd33317e53dcb1dda -->
|
|
2
|
+
Composable empty-state panel component that renders a centered layout combining an optional icon/title/description message, clickable action blocks, and a footer button — each region rendered only when its inputs are provided.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `NoData` | `React.ForwardRefExoticComponent` | Main empty-state container component |
|
|
9
|
+
| `NoDataProps` | `interface` | Props extending `HTMLDivElement` attributes |
|
|
10
|
+
|
|
11
|
+
### Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Description |
|
|
14
|
+
|------|------|-------------|
|
|
15
|
+
| `icon` | `React.ReactNode` | Leading glyph (16px mobile / 24px md+) |
|
|
16
|
+
| `title` | `React.ReactNode` | Primary message line |
|
|
17
|
+
| `description` | `React.ReactNode` | Secondary message line |
|
|
18
|
+
| `actions` | `NoDataActionProps[]` | Clickable block items; hidden when empty |
|
|
19
|
+
| `buttonLabel` | `React.ReactNode` | Footer button label text |
|
|
20
|
+
| `buttonIcon` | `React.ReactNode` | Footer button leading icon |
|
|
21
|
+
| `onButtonClick` | `ButtonProps["onClick"]` | Footer button click handler |
|
|
22
|
+
| `buttonProps` | `Partial<ButtonProps>` | Extra props forwarded to the footer button |
|
|
23
|
+
| `button` | `React.ReactNode` | Fully custom footer node; overrides `buttonLabel`/`buttonIcon` |
|
|
24
|
+
|
|
25
|
+
## Usage Example
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { NoData } from "./no-data"
|
|
29
|
+
import { SearchIcon } from "lucide-react"
|
|
30
|
+
|
|
31
|
+
// Minimal — message only
|
|
32
|
+
<NoData
|
|
33
|
+
icon={<SearchIcon />}
|
|
34
|
+
title="No results found"
|
|
35
|
+
description="Try adjusting your search filters."
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
// Full layout — message + actions + footer button
|
|
39
|
+
<NoData
|
|
40
|
+
icon={<SearchIcon />}
|
|
41
|
+
title="No devices found"
|
|
42
|
+
description="Add a device to get started."
|
|
43
|
+
actions={[
|
|
44
|
+
{ label: "Import CSV", onClick: handleImport },
|
|
45
|
+
{ label: "Sync from RMM", onClick: handleSync },
|
|
46
|
+
]}
|
|
47
|
+
buttonLabel="Add Device"
|
|
48
|
+
buttonIcon={<PlusIcon />}
|
|
49
|
+
onButtonClick={handleAdd}
|
|
50
|
+
/>
|
|
51
|
+
|
|
52
|
+
// Custom footer node
|
|
53
|
+
<NoData
|
|
54
|
+
title="Nothing here yet"
|
|
55
|
+
button={<MyCustomButton />}
|
|
56
|
+
/>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Regions are conditionally rendered — `hasMessage` and `hasActions` guards ensure no empty wrappers are mounted. The footer `button` prop takes full precedence over the `buttonLabel`/`buttonIcon` convenience path.
|
|
@@ -16,7 +16,8 @@ export type PageActionButton = {
|
|
|
16
16
|
/** Click handler. Optional when `href` or `submenu` is provided. */
|
|
17
17
|
onClick?: () => void
|
|
18
18
|
icon?: React.ReactNode
|
|
19
|
-
|
|
19
|
+
/** `overlay` is media chrome only — SplitButton has no divider colour for it. */
|
|
20
|
+
variant?: Exclude<ButtonProps['variant'], 'overlay' | 'glyph'>
|
|
20
21
|
disabled?: boolean
|
|
21
22
|
/**
|
|
22
23
|
* For SplitButton actions (when `iconAction` is set): disables only the main
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Renders the header row for a query report table, displaying column
|
|
1
|
+
<!-- source-hash: b24897cd7f950e9b9cb94d49064c64a2 -->
|
|
2
|
+
Renders the header row for a query report table, displaying column labels with truncation detection and tooltip support for overflowing text.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`QueryReportTableHeader`** —
|
|
7
|
-
- **`TruncatedHeaderCell`** —
|
|
6
|
+
- **`QueryReportTableHeader`** — Primary exported component. Accepts a list of column names and renders them as a styled header row. Supports `default` and `compact` variants.
|
|
7
|
+
- **`TruncatedHeaderCell`** *(internal)* — Renders an individual header cell that dynamically checks whether its text is truncated on hover, showing a tooltip with the full value when needed.
|
|
8
8
|
|
|
9
9
|
## Props (`QueryReportTableHeaderProps`)
|
|
10
10
|
|
|
11
11
|
| Prop | Type | Description |
|
|
12
|
-
|
|
13
|
-
| `columns` | `string[]` |
|
|
14
|
-
| `columnWidth` | `number` | Fixed pixel width
|
|
15
|
-
| `variant` | `'default' \| 'compact'` |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `columns` | `string[]` | Column label strings to render |
|
|
14
|
+
| `columnWidth` | `number` | Fixed pixel width for each header cell |
|
|
15
|
+
| `variant` | `'default' \| 'compact'` | Controls padding and border styling |
|
|
16
16
|
| `className` | `string` | Optional additional CSS classes |
|
|
17
17
|
|
|
18
18
|
## Usage Example
|
|
@@ -21,16 +21,16 @@ Renders the header row for a query report table, displaying column names with ov
|
|
|
21
21
|
import { QueryReportTableHeader } from './query-report-table-header'
|
|
22
22
|
|
|
23
23
|
<QueryReportTableHeader
|
|
24
|
-
columns={['
|
|
24
|
+
columns={['Device Name', 'IP Address', 'Last Seen', 'Status']}
|
|
25
25
|
columnWidth={160}
|
|
26
26
|
variant="compact"
|
|
27
|
-
className="bg-ods-bg-surface"
|
|
28
27
|
/>
|
|
29
28
|
```
|
|
30
29
|
|
|
31
|
-
##
|
|
30
|
+
## Notes
|
|
32
31
|
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
|
|
32
|
+
- Truncation is evaluated lazily on `mouseEnter` via `scrollWidth` vs `clientWidth` comparison — avoiding unnecessary layout reads on initial render.
|
|
33
|
+
- Tooltip is only activated when truncation is detected; otherwise the `Tooltip` is forced closed (`open={false}`), preventing phantom popups on short labels.
|
|
34
|
+
- Each cell uses `shrink-0` with a fixed `width` and `height: 48` to align with table body cells.
|
|
35
|
+
|
|
36
|
+
**Source:** [`query-report-table-header.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/query-report-table-header.tsx)
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Renders a single data row in
|
|
1
|
+
<!-- source-hash: ec4a69e77e3094a0c885d241053bbfce -->
|
|
2
|
+
Renders a single data row in the `QueryReportTable`, supporting both `default` (card-style) and `compact` (flat list) visual variants with truncation-aware tooltips on overflow.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`QueryReportTableRow`** —
|
|
7
|
-
- **`TruncatedCell`** —
|
|
6
|
+
- **`QueryReportTableRow`** — Primary export. Maps over `columns` to render each cell with a fixed `columnWidth`, handling `null`/`undefined` values as `'-'`. Applies variant-specific layout (`80px` height for `default`, `56px` for `compact`).
|
|
7
|
+
- **`TruncatedCell`** *(internal)* — Wraps cell text in a `<span>` with CSS truncation. Uses `scrollWidth > clientWidth` detection on `mouseenter` to conditionally activate a tooltip showing the full value.
|
|
8
8
|
|
|
9
9
|
## Usage Example
|
|
10
10
|
|
|
11
11
|
```typescript
|
|
12
12
|
import { QueryReportTableRow } from './query-report-table-row'
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const row = { name: 'Acme Corp', status: 'Active', tickets: 42 }
|
|
15
|
+
const columns = ['name', 'status', 'tickets']
|
|
16
16
|
|
|
17
|
-
// Default (card
|
|
17
|
+
// Default (card) variant
|
|
18
18
|
<QueryReportTableRow
|
|
19
19
|
row={row}
|
|
20
20
|
columns={columns}
|
|
21
|
-
columnWidth="
|
|
22
|
-
variant="default"
|
|
21
|
+
columnWidth="160px"
|
|
23
22
|
/>
|
|
24
23
|
|
|
25
|
-
// Compact (
|
|
24
|
+
// Compact (flat list) variant
|
|
26
25
|
<QueryReportTableRow
|
|
27
26
|
row={row}
|
|
28
27
|
columns={columns}
|
|
29
|
-
columnWidth="
|
|
28
|
+
columnWidth="160px"
|
|
30
29
|
variant="compact"
|
|
31
|
-
className="my-custom-class"
|
|
32
30
|
/>
|
|
33
31
|
```
|
|
34
32
|
|
|
35
33
|
## Behavior Notes
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
| Concern | Detail |
|
|
36
|
+
|---|---|
|
|
37
|
+
| Null handling | `null` / `undefined` values render as `'-'` |
|
|
38
|
+
| Tooltip activation | Only shown when text is actually truncated (lazy-checked on hover) |
|
|
39
|
+
| Tooltip delay | 300 ms via `delayDuration` to avoid flicker on quick mouse passes |
|
|
40
|
+
| Styling | Driven by `cn()` utility; accepts an optional `className` override |
|
|
@@ -1,47 +1,62 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
1
|
+
<!-- source-hash: a98f69d0dc6115c54bf6524937839699 -->
|
|
2
2
|
A data table component for displaying query results with horizontal scrolling, CSV export, loading skeletons, and empty states.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`QueryReportTable`** — Main export. Renders a full-featured
|
|
7
|
-
- **`deriveColumns`** — Utility that infers column definitions from data and
|
|
8
|
-
- **`exportToCSV`** — Utility that serializes
|
|
9
|
-
- **`useHorizontalScrollbar`** —
|
|
10
|
-
- **`QueryReportTableHeader`** / **`QueryReportTableRow`** / **`QueryReportTableSkeleton`** — Sub-components for
|
|
11
|
-
|
|
12
|
-
## Props
|
|
13
|
-
|
|
14
|
-
| Prop | Default | Description |
|
|
15
|
-
|
|
16
|
-
| `data` |
|
|
17
|
-
| `loading` | `false` | Shows skeleton rows
|
|
18
|
-
| `variant` | `'default'
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `columnWidth` | `160` | Per-column width
|
|
22
|
-
| `
|
|
6
|
+
- **`QueryReportTable`** — Main export. Renders a full-featured tabular report view driven by dynamic row data, with automatic column derivation.
|
|
7
|
+
- **`deriveColumns`** — Utility that infers column definitions from data rows and optional `columnOrder`.
|
|
8
|
+
- **`exportToCSV`** — Utility that serializes visible columns and rows to a downloadable CSV file.
|
|
9
|
+
- **`useHorizontalScrollbar`** — Custom hook providing scroll position tracking, thumb/track refs, and pointer event handlers for a custom horizontal scrollbar.
|
|
10
|
+
- **`QueryReportTableHeader`** / **`QueryReportTableRow`** / **`QueryReportTableSkeleton`** — Sub-components for header, body rows, and loading state respectively.
|
|
11
|
+
|
|
12
|
+
## Props Summary
|
|
13
|
+
|
|
14
|
+
| Prop | Type | Default | Description |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| `data` | `object[]` | — | Row data; columns auto-derived |
|
|
17
|
+
| `loading` | `boolean` | `false` | Shows skeleton rows |
|
|
18
|
+
| `variant` | `'default' \| 'compact'` | `'default'` | Compact hides title bar, scrollbar, and edge fades |
|
|
19
|
+
| `showExport` | `boolean` | `true` | Renders "Export CSV" button when data exists |
|
|
20
|
+
| `columnOrder` | `string[]` | — | Override auto-derived column order |
|
|
21
|
+
| `columnWidth` | `number` | `160` | Per-column pixel width (also drives `minWidth`) |
|
|
22
|
+
| `exportFilename` | `string` | `'query-results'` | Base filename for CSV download |
|
|
23
|
+
| `onExport` | `() => void` | — | Callback fired after CSV export |
|
|
24
|
+
| `headerActions` | `ReactNode` | — | Slot for custom controls in the title bar |
|
|
23
25
|
|
|
24
26
|
## Usage Example
|
|
25
27
|
|
|
26
28
|
```typescript
|
|
27
|
-
import { QueryReportTable } from '
|
|
29
|
+
import { QueryReportTable } from '@/components/query-report-table'
|
|
28
30
|
|
|
29
31
|
const rows = [
|
|
30
|
-
{ device: 'DESKTOP-
|
|
31
|
-
{ device: 'LAPTOP-
|
|
32
|
+
{ device: 'DESKTOP-001', os: 'Windows 11', status: 'Online' },
|
|
33
|
+
{ device: 'LAPTOP-042', os: 'macOS 14', status: 'Offline' },
|
|
32
34
|
]
|
|
33
35
|
|
|
34
|
-
export function
|
|
36
|
+
export function DeviceReport() {
|
|
35
37
|
return (
|
|
36
38
|
<QueryReportTable
|
|
37
|
-
title="Device
|
|
39
|
+
title="Device Inventory"
|
|
38
40
|
data={rows}
|
|
39
41
|
columnOrder={['device', 'os', 'status']}
|
|
40
42
|
exportFilename="device-report"
|
|
41
43
|
onExport={() => console.log('exported')}
|
|
44
|
+
showExport
|
|
42
45
|
/>
|
|
43
46
|
)
|
|
44
47
|
}
|
|
45
48
|
```
|
|
46
49
|
|
|
47
|
-
|
|
50
|
+
**Compact mode** (no title bar, scrollbar, or edge gradients):
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
<QueryReportTable
|
|
54
|
+
data={rows}
|
|
55
|
+
variant="compact"
|
|
56
|
+
showExport={false}
|
|
57
|
+
/>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Source
|
|
61
|
+
|
|
62
|
+
[`query-report-table.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/query-report-table.tsx)
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 25bda079705407fd6be62624468764ab -->
|
|
2
|
+
Renders a deprecated column-level filter dropdown for tables, wrapping `FiltersDropdown` with a labeled trigger button and checkbox-based filter sections.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `TableColumnFilterDropdownProps`
|
|
7
7
|
| Prop | Type | Description |
|
|
8
|
-
|
|
8
|
+
|---|---|---|
|
|
9
9
|
| `columnKey` | `string` | Key used to read/write filter state |
|
|
10
10
|
| `columnLabel` | `string` | Display label and accessibility text |
|
|
11
|
-
| `filterOptions` | `FilterOption[]` | Available checkbox options |
|
|
11
|
+
| `filterOptions` | `FilterOption[]` | Available checkbox options for the column |
|
|
12
12
|
| `filters` | `TableFilters` | Current filter state across all columns |
|
|
13
|
-
| `onFilterChange` | `(filters: TableFilters) => void` | Callback
|
|
14
|
-
| `placement` | `'bottom-start' \| 'bottom-end' \| 'bottom'` | Dropdown anchor position |
|
|
15
|
-
| `dropdownClassName` | `string` | Extra class on the dropdown
|
|
13
|
+
| `onFilterChange` | `(filters: TableFilters) => void` | Callback when filters are applied or reset |
|
|
14
|
+
| `placement` | `'bottom-start' \| 'bottom-end' \| 'bottom'` | Dropdown anchor position (default: `'bottom-start'`) |
|
|
15
|
+
| `dropdownClassName` | `string` | Extra class on the dropdown (default: `'min-w-[240px]'`) |
|
|
16
16
|
|
|
17
17
|
### `TableColumnFilterDropdown`
|
|
18
|
-
Renders a
|
|
18
|
+
Renders a clickable label + `Filter02Icon` trigger. The icon turns accent-colored when one or more filters are active (`activeCount > 0`). Applies or resets filters scoped to the given `columnKey` without mutating other column filter state.
|
|
19
|
+
|
|
20
|
+
> **Deprecated:** Use `DataTableColumnFilter` from `data-table` instead.
|
|
19
21
|
|
|
20
22
|
## Usage Example
|
|
21
23
|
|
|
@@ -37,4 +39,8 @@ const [filters, setFilters] = useState<TableFilters>({})
|
|
|
37
39
|
/>
|
|
38
40
|
```
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
## Notes
|
|
43
|
+
|
|
44
|
+
- Both the interface and the component are marked `@deprecated`. Migrate to `DataTableColumnFilter` from the `data-table` package.
|
|
45
|
+
- Filter state is immutable per column: applying updates only `columnKey`'s values; resetting deletes the key without affecting sibling columns.
|
|
46
|
+
- Source: [`table-column-filter-dropdown.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/table-column-filter-dropdown.tsx)
|