@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,20 +1,22 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories for the `NotificationDrawer` feature, providing interactive
|
|
1
|
+
<!-- source-hash: f63f316c3ca0b7f0616cd692ac686468 -->
|
|
2
|
+
Storybook stories file for the `NotificationDrawer` feature, providing visual documentation and interactive playground stories for notification tiles, drawer states, and approval workflows.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
| Export | Description |
|
|
7
|
-
|
|
8
|
-
| `AllTileVariants` | Static preview of all
|
|
9
|
-
| `
|
|
10
|
-
| `
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `AllTileVariants` | Story | Static preview of all notification tile variants (`default`, `success`, `error`, `warning`, `info`) |
|
|
9
|
+
| `SeverityIconAndImage` | Story | Demonstrates the `severity` field (`INFO`, `WARNING`, `DANGER`) with image, icon, and dot fallback states |
|
|
10
|
+
| `LiveTile` | Story | Animated tile showing the 4-second progress bar + dismiss UX before settling into resting state |
|
|
11
|
+
| `DrawerEmpty` | Story | `NotificationDrawer` rendered with no notifications (empty state) |
|
|
12
|
+
| `DrawerWithSeedData` | Story | Drawer pre-seeded with `SEED` data covering all approval resolution states: pending, approved, rejected, cancelled |
|
|
13
|
+
| `AutoOpen` | Helper | Internal component that calls `useNotifications().open()` on mount to auto-expand the drawer in stories |
|
|
14
|
+
| `approvalSeed` | Helper | Factory function generating `Notification` objects for approval-request tiles in a given resolution state |
|
|
13
15
|
|
|
14
16
|
## Usage Example
|
|
15
17
|
|
|
16
18
|
```typescript
|
|
17
|
-
// Minimal
|
|
19
|
+
// Minimal provider + drawer setup (mirrors DrawerEmpty story)
|
|
18
20
|
import {
|
|
19
21
|
NotificationsProvider,
|
|
20
22
|
NotificationDrawer,
|
|
@@ -24,32 +26,41 @@ import {
|
|
|
24
26
|
function App() {
|
|
25
27
|
return (
|
|
26
28
|
<NotificationsProvider
|
|
27
|
-
initialNotifications={
|
|
29
|
+
initialNotifications={SEED}
|
|
28
30
|
onHistoryClick={() => router.push('/notifications')}
|
|
29
|
-
|
|
31
|
+
historyHref="/notifications"
|
|
32
|
+
renderTile={renderApprovalTile}
|
|
30
33
|
>
|
|
31
34
|
<NotificationDrawer />
|
|
32
|
-
<FireButton />
|
|
33
35
|
</NotificationsProvider>
|
|
34
36
|
);
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
// Fire a notification from any realtime source
|
|
40
|
+
function RealtimeListener() {
|
|
38
41
|
const { addNotification } = useNotifications();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
socket.on('alert', (event) => {
|
|
45
|
+
addNotification({
|
|
46
|
+
id: event.id,
|
|
47
|
+
severity: 'WARNING',
|
|
48
|
+
type: 'Disk Space Warning',
|
|
49
|
+
icon: <AlertTriangleIcon size={16} />,
|
|
50
|
+
title: event.device,
|
|
51
|
+
description: event.message,
|
|
52
|
+
createdAt: Date.now(),
|
|
53
|
+
read: false,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}, [addNotification]);
|
|
57
|
+
|
|
58
|
+
return null;
|
|
52
59
|
}
|
|
53
60
|
```
|
|
54
61
|
|
|
55
|
-
|
|
62
|
+
## Notes
|
|
63
|
+
|
|
64
|
+
- Mount `<NotificationsProvider>` once at the app root; the bell button in `AppHeader` toggles the drawer automatically.
|
|
65
|
+
- The `severity` field (`INFO` | `WARNING` | `DANGER`) overrides `variant` for color; `imageUrl` takes priority over `icon`, which falls back to a severity dot.
|
|
66
|
+
- Source: [`NotificationDrawer.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/NotificationDrawer.stories.tsx)
|
|
@@ -1,34 +1,43 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook
|
|
1
|
+
<!-- source-hash: f7b466b1e3952004dc2b4484708db888 -->
|
|
2
|
+
Storybook stories for the `OSTypeBadge`, `OSTypeIcon`, and `OSTypeLabel` components, covering OS type rendering, alias normalization, display modes, and sizing variants.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `Default` / `Windows` / `MacOS` / `Linux` | `Story` | Basic OS badge rendering per platform |
|
|
9
|
+
| `Darwin` / `Ubuntu` | `Story` | Alias normalization (e.g. `"Darwin"` → macOS, `"Ubuntu"` → Linux) |
|
|
10
|
+
| `IconOnly` / `LabelOnly` | `Story` | Display mode variants |
|
|
11
|
+
| `LargeIcon` | `Story` | Custom icon sizing via Tailwind class |
|
|
12
|
+
| `Unknown` | `Story` | Graceful fallback for undefined OS type |
|
|
13
|
+
| `AllOSTypes` | `Story` | Side-by-side comparison of all three platforms |
|
|
14
|
+
| `Aliases` | `Story` | Normalization showcase for `Darwin`, `win32`, `Ubuntu`, `Fedora` |
|
|
15
|
+
| `Icons` / `IconSizes` | `IconStory` | `OSTypeIcon` standalone stories with size variants |
|
|
16
|
+
| `Labels` | `LabelStory` | `OSTypeLabel` standalone story |
|
|
11
17
|
|
|
12
18
|
## Usage Example
|
|
13
19
|
|
|
14
20
|
```typescript
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
</div>
|
|
30
|
-
),
|
|
31
|
-
};
|
|
21
|
+
// Full badge (icon + label)
|
|
22
|
+
<OSTypeBadge osType="Darwin" /> // normalizes → macOS
|
|
23
|
+
<OSTypeBadge osType="win32" /> // normalizes → Windows
|
|
24
|
+
|
|
25
|
+
// Icon only
|
|
26
|
+
<OSTypeBadge osType="linux" iconOnly />
|
|
27
|
+
<OSTypeIcon osType="linux" size="w-6 h-6" />
|
|
28
|
+
|
|
29
|
+
// Label only
|
|
30
|
+
<OSTypeBadge osType="macos" labelOnly />
|
|
31
|
+
<OSTypeLabel osType="macos" />
|
|
32
|
+
|
|
33
|
+
// Unknown / missing type (renders fallback)
|
|
34
|
+
<OSTypeBadge osType={undefined} labelOnly />
|
|
32
35
|
```
|
|
33
36
|
|
|
34
|
-
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- The `meta` object configures three separate Storybook entries: `Features/OSTypeBadge`, `Features/OSTypeIcon`, and `Features/OSTypeLabel`.
|
|
40
|
+
- `osType` accepts case-insensitive strings and platform aliases sourced from Fleet MDM, OpenFrame RMM, and similar integrations.
|
|
41
|
+
- `iconSize` / `size` accept Tailwind width/height classes (e.g. `"w-6 h-6"`).
|
|
42
|
+
|
|
43
|
+
**Source:** [`OSTypeBadge.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/OSTypeBadge.stories.tsx)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 158823868f1a6fa08bcd360e6e3fc0c6 -->
|
|
2
|
+
Storybook stories for the `OnboardingGuideCard` component, covering all three display densities used across the MSP platform UI.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `meta` | Storybook metadata — registers the component under `Chat/EntityCards/OnboardingGuideCard` with fullscreen layout |
|
|
9
|
+
| `ChatInlineSm` | Compact `sm` size story, matches the `size="sm"` + `displayAction: true` output from the chat dispatcher |
|
|
10
|
+
| `Default` | Horizontal step-card layout at the `default` density |
|
|
11
|
+
| `Catalog` | Full hero + author grid layout at the `catalog` density |
|
|
12
|
+
|
|
13
|
+
## Usage Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
// Render the chat-inline variant directly in your component
|
|
17
|
+
import { OnboardingGuideCard } from '../components/chat/entity-cards'
|
|
18
|
+
import { onboardingGuide } from './__fixtures__/chat-cards'
|
|
19
|
+
|
|
20
|
+
<OnboardingGuideCard
|
|
21
|
+
guide={onboardingGuide}
|
|
22
|
+
href={`/guides/${onboardingGuide.slug}`}
|
|
23
|
+
size="sm"
|
|
24
|
+
target="_blank"
|
|
25
|
+
rel="noopener noreferrer"
|
|
26
|
+
/>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Size Variants
|
|
30
|
+
|
|
31
|
+
| Size | Use Case |
|
|
32
|
+
|---|---|
|
|
33
|
+
| `sm` | Chat-inline compact — always used by the chat dispatcher |
|
|
34
|
+
| `default` | Horizontal step-card — standard page embeds |
|
|
35
|
+
| `catalog` | Hero + author grid — browse/catalog views |
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- All stories are wrapped in `ChatColumnDecorator` to simulate the chat column width constraint.
|
|
40
|
+
- The `sm` story mirrors the exact props the chat dispatch layer injects at runtime (`size="sm"`, `displayAction: true`).
|
|
41
|
+
- Fixture data is sourced from [`__fixtures__/chat-cards`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/stories/__fixtures__/chat-cards.ts).
|
|
@@ -1,39 +1,41 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories
|
|
1
|
+
<!-- source-hash: c2ab0103ae9c6603a7acd3db11530c37 -->
|
|
2
|
+
Storybook stories for the `PageActions` UI component, covering all layout variants, responsive behaviors, and interactive states.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
### Stories
|
|
7
7
|
|
|
8
8
|
| Story | Variant | Description |
|
|
9
9
|
|---|---|---|
|
|
10
|
-
| `IconButtons` | `icon-buttons` | Icon
|
|
11
|
-
| `PrimaryButtons` | `primary-buttons` | Accent + outline buttons
|
|
10
|
+
| `IconButtons` | `icon-buttons` | Icon-labeled buttons; collapses to dropdown on mobile |
|
|
11
|
+
| `PrimaryButtons` | `primary-buttons` | Accent + outline buttons; fixed bottom bar on mobile |
|
|
12
12
|
| `PrimaryButtonsWithIcons` | `primary-buttons` | Primary buttons with leading icons |
|
|
13
|
-
| `SinglePrimaryButton` | `primary-buttons` | Single accent
|
|
14
|
-
| `SingleIconButton` | `icon-buttons` | Single icon button (
|
|
15
|
-
| `ThreeIconButtons` | `icon-buttons` | Three
|
|
16
|
-
| `WithStates` | `primary-buttons` |
|
|
17
|
-
| `MenuPrimary` | `menu-primary` | `...`
|
|
18
|
-
| `MenuPrimaryLoading` | `menu-primary` |
|
|
19
|
-
| `MobileOnlyActions` | `icon-buttons` |
|
|
20
|
-
| `LinkActions` | `menu-primary` |
|
|
21
|
-
| `SplitButtonWithMenu` | `menu-primary` |
|
|
22
|
-
| `SplitButtonTwoActions` | `menu-primary` |
|
|
13
|
+
| `SinglePrimaryButton` | `primary-buttons` | Single accent button |
|
|
14
|
+
| `SingleIconButton` | `icon-buttons` | Single icon button (no dropdown collapse on mobile) |
|
|
15
|
+
| `ThreeIconButtons` | `icon-buttons` | Three icon buttons |
|
|
16
|
+
| `WithStates` | `primary-buttons` | Loading and disabled button states |
|
|
17
|
+
| `MenuPrimary` | `menu-primary` | `...` dropdown menu + primary button |
|
|
18
|
+
| `MenuPrimaryLoading` | `menu-primary` | Primary button in loading state |
|
|
19
|
+
| `MobileOnlyActions` | `icon-buttons` | Actions hidden on desktop via `showOnlyMobile` |
|
|
20
|
+
| `LinkActions` | `menu-primary` | Actions rendered as Next.js `<Link>` via `href` |
|
|
21
|
+
| `SplitButtonWithMenu` | `menu-primary` | Primary button with chevron submenu |
|
|
22
|
+
| `SplitButtonTwoActions` | `menu-primary` | Two independently clickable button halves via `iconAction` |
|
|
23
23
|
|
|
24
24
|
## Usage Example
|
|
25
25
|
|
|
26
26
|
```typescript
|
|
27
|
-
|
|
27
|
+
import { PageActions } from '../components/ui/page-actions'
|
|
28
|
+
import { PlusCircleIcon, PlayCircleIcon, PenEditIcon } from '../components/icons-v2-generated'
|
|
29
|
+
|
|
30
|
+
// icon-buttons variant (e.g. list pages)
|
|
28
31
|
<PageActions
|
|
29
32
|
variant="icon-buttons"
|
|
30
33
|
actions={[
|
|
31
34
|
{ label: 'Add Script', onClick: handleAdd, icon: <PlusCircleIcon size={24} /> },
|
|
32
|
-
{ label: 'Edit Categories', onClick: handleEdit, icon: <ColorsIcon size={24} /> },
|
|
33
35
|
]}
|
|
34
36
|
/>
|
|
35
37
|
|
|
36
|
-
// menu-primary with split button and
|
|
38
|
+
// menu-primary variant with split button and submenu
|
|
37
39
|
<PageActions
|
|
38
40
|
variant="menu-primary"
|
|
39
41
|
actions={[
|
|
@@ -42,7 +44,6 @@ Storybook stories file for the `PageActions` component, documenting all interact
|
|
|
42
44
|
variant: 'outline',
|
|
43
45
|
submenu: [
|
|
44
46
|
{ id: 'cmd', label: 'CMD', onClick: openCmd, icon: <TerminalIcon size={24} /> },
|
|
45
|
-
{ id: 'powershell', label: 'Power Shell', onClick: openPs, icon: <TerminalIcon size={24} /> },
|
|
46
47
|
],
|
|
47
48
|
},
|
|
48
49
|
]}
|
|
@@ -50,11 +51,10 @@ Storybook stories file for the `PageActions` component, documenting all interact
|
|
|
50
51
|
{
|
|
51
52
|
items: [
|
|
52
53
|
{ id: 'edit', label: 'Edit Device', onClick: handleEdit, icon: <PenEditIcon size={24} /> },
|
|
53
|
-
{ id: 'delete', label: 'Delete Device', onClick: handleDelete, icon: <TrashIcon size={24} /> },
|
|
54
54
|
],
|
|
55
55
|
},
|
|
56
56
|
]}
|
|
57
57
|
/>
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
Pair with `PageContainer`'s `headerActions` prop for consistent page-level layouts. See the full source at [`PageActions.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/PageActions.stories.tsx).
|
|
@@ -1,25 +1,18 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories for the `PageContainer` layout component, covering legacy and advanced
|
|
1
|
+
<!-- source-hash: 6f5a95b06338851dcc16b8ce6b05192a -->
|
|
2
|
+
Storybook stories for the `PageContainer` layout component, covering legacy usage patterns and all advanced variants (list, detail, form, content) with header and padding configurations.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`Legacy`** — Basic container with full-width background
|
|
7
|
-
- **`LegacyCustomBackground`** / **`LegacyContentWidthBackground`** — Legacy mode with custom background and content-width
|
|
8
|
-
- **`ListPage`** / **`ListPageMultipleActions`** — List variant with title, subtitle, and action buttons
|
|
9
|
-
- **`DetailPage`** / **`DetailPageWithActions`** — Detail variant with back button
|
|
10
|
-
- **`FormPage`** — Form variant with cancel/
|
|
11
|
-
- **`ContentPage`** — Generic content
|
|
12
|
-
- **`CustomHeaderContent`**
|
|
13
|
-
- **`
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
| Control | Options |
|
|
18
|
-
|---------|---------|
|
|
19
|
-
| `variant` | `list`, `detail`, `form`, `content` |
|
|
20
|
-
| `padding` | `none`, `sm`, `md`, `lg` |
|
|
21
|
-
| `background` | `default`, `card`, `transparent` |
|
|
22
|
-
| `showHeader` | `boolean` |
|
|
6
|
+
- **`Legacy`** — Basic container with full-width background using className-based styling
|
|
7
|
+
- **`LegacyCustomBackground`** / **`LegacyContentWidthBackground`** — Legacy mode with custom background and scoped content-width background
|
|
8
|
+
- **`ListPage`** / **`ListPageMultipleActions`** — List variant with title, subtitle, and one or more action buttons
|
|
9
|
+
- **`DetailPage`** / **`DetailPageWithActions`** — Detail variant with back button and optional action buttons
|
|
10
|
+
- **`FormPage`** — Form variant with cancel back button and draft/publish actions
|
|
11
|
+
- **`ContentPage`** — Generic content variant with title
|
|
12
|
+
- **`CustomHeaderContent`** — List variant using a fully custom `headerContent` ReactNode
|
|
13
|
+
- **`WithHeaderActions`** — List variant combining `headerActions` slot with standard `actions` array
|
|
14
|
+
- **`HiddenHeader`** — Content variant with `showHeader: false`
|
|
15
|
+
- **`WithPaddingAndBackground`** — Demonstrates `padding` (`lg`) and `background` (`card`) props
|
|
23
16
|
|
|
24
17
|
## Usage Example
|
|
25
18
|
|
|
@@ -30,21 +23,33 @@ Storybook stories for the `PageContainer` layout component, covering legacy and
|
|
|
30
23
|
title="Devices"
|
|
31
24
|
subtitle="24 devices found"
|
|
32
25
|
actions={[
|
|
33
|
-
{ label: 'Add Device', onClick: handleAdd, icon: <Plus />, variant: '
|
|
26
|
+
{ label: 'Add Device', onClick: handleAdd, icon: <Plus className="w-5 h-5" />, variant: 'accent' },
|
|
34
27
|
]}
|
|
35
28
|
>
|
|
36
|
-
<
|
|
29
|
+
<DeviceList />
|
|
37
30
|
</PageContainer>
|
|
38
31
|
|
|
39
32
|
// Detail page with back navigation
|
|
40
33
|
<PageContainer
|
|
41
34
|
variant="detail"
|
|
42
35
|
title="Device Details"
|
|
36
|
+
subtitle="MacBook Pro — Online"
|
|
43
37
|
backButton={{ label: 'Back to Devices', onClick: handleBack }}
|
|
44
38
|
actions={[
|
|
45
|
-
{ label: 'Delete', onClick: handleDelete, variant: 'outline' }
|
|
39
|
+
{ label: 'Delete', onClick: handleDelete, icon: <Trash2 className="w-5 h-5" />, variant: 'outline' },
|
|
46
40
|
]}
|
|
47
41
|
>
|
|
48
|
-
<
|
|
42
|
+
<DeviceDetail />
|
|
49
43
|
</PageContainer>
|
|
50
|
-
```
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Configurable Controls
|
|
47
|
+
|
|
48
|
+
| Prop | Type | Options |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| `variant` | select | `list`, `detail`, `form`, `content` |
|
|
51
|
+
| `padding` | select | `none`, `sm`, `md`, `lg` |
|
|
52
|
+
| `background` | select | `default`, `card`, `transparent` |
|
|
53
|
+
| `showHeader` | boolean | `true` / `false` |
|
|
54
|
+
|
|
55
|
+
**Source:** [`PageContainer.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/PageContainer.stories.tsx)
|
|
@@ -1,60 +1,43 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Storybook stories for the `PageLayout` component, covering
|
|
1
|
+
<!-- source-hash: b09fa95f839417d0e19c0699fdf0b67c -->
|
|
2
|
+
Storybook stories for the `PageLayout` component, covering layout variants including title-only, subtitle/image combinations, mobile responsive behavior, and action button configurations.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Description |
|
|
7
|
-
|
|
8
|
-
| `TitleOnly` |
|
|
9
|
-
| `WithSubtitleAndImage` | Full
|
|
10
|
-
| `MobileActionsMenu` |
|
|
11
|
-
| `WithSubtitleOnly` | Title + one-line
|
|
12
|
-
| `WithImageOnly` | Branded entity header
|
|
13
|
-
| `WithSelector` |
|
|
14
|
-
| `WithSelectorMobile` | `WithSelector` at mobile viewport — selector hidden, only `…` dropdown remains |
|
|
15
|
-
| `LongTitleTruncates` |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `TitleOnly` | Baseline header with title and content, no extras |
|
|
9
|
+
| `WithSubtitleAndImage` | Full org detail page with thumbnail, subtitle, back button, and icon-button actions |
|
|
10
|
+
| `MobileActionsMenu` | `WithSubtitleAndImage` at mobile viewport — actions collapse into a `…` dropdown |
|
|
11
|
+
| `WithSubtitleOnly` | Title + one-line subtitle with primary-button actions, no image |
|
|
12
|
+
| `WithImageOnly` | Branded entity header with thumbnail, no subtitle |
|
|
13
|
+
| `WithSelector` | Adds a desktop-only `TabSelector` (table/grid toggle) before action buttons |
|
|
14
|
+
| `WithSelectorMobile` | `WithSelector` at mobile viewport — selector is hidden, only `…` dropdown remains |
|
|
15
|
+
| `LongTitleTruncates` | Validates ellipsis truncation for overflowing titles and subtitles |
|
|
16
16
|
|
|
17
17
|
## Usage Example
|
|
18
18
|
|
|
19
19
|
```typescript
|
|
20
|
-
// Minimal
|
|
20
|
+
// Minimal title-only layout
|
|
21
21
|
<PageLayout title="Devices">
|
|
22
22
|
<Table data={devices} columns={columns} rowKey="id" />
|
|
23
23
|
</PageLayout>
|
|
24
24
|
|
|
25
|
-
// Full
|
|
25
|
+
// Full org detail layout with image, subtitle, back button, and actions
|
|
26
26
|
<PageLayout
|
|
27
27
|
title="TechFlow Solutions"
|
|
28
28
|
subtitle="techflow.com • Software Development"
|
|
29
|
-
image={{ src: logoSrc, alt: 'TechFlow logo' }}
|
|
29
|
+
image={{ src: logoSrc, alt: 'TechFlow Solutions logo' }}
|
|
30
30
|
backButton={{ label: 'Back to Organizations', onClick: handleBack }}
|
|
31
31
|
actionsVariant="icon-buttons"
|
|
32
32
|
actions={[
|
|
33
33
|
{ label: 'Archive Organization', onClick: handleArchive, variant: 'outline', icon: <BoxArchiveIcon size={24} /> },
|
|
34
|
-
{ label: 'Edit Organization', onClick: handleEdit, variant: 'outline', icon: <PenEditIcon size={24} />
|
|
34
|
+
{ label: 'Edit Organization', onClick: handleEdit, variant: 'outline', icon: <PenEditIcon size={24} /> },
|
|
35
35
|
]}
|
|
36
36
|
>
|
|
37
37
|
<Table data={devices} columns={columns} rowKey="id" />
|
|
38
38
|
</PageLayout>
|
|
39
|
-
|
|
40
|
-
// With desktop tab selector (hidden on mobile)
|
|
41
|
-
<PageLayout
|
|
42
|
-
title="Devices"
|
|
43
|
-
actionsVariant="icon-buttons"
|
|
44
|
-
actions={[{ label: 'Add Device', onClick: fn(), variant: 'outline', icon: <PlusCircleIcon size={24} /> }]}
|
|
45
|
-
selector={
|
|
46
|
-
<TabSelector
|
|
47
|
-
value={view}
|
|
48
|
-
onValueChange={setView}
|
|
49
|
-
items={[
|
|
50
|
-
{ id: 'table', label: '', icon: <TableCellIcon size={24} /> },
|
|
51
|
-
{ id: 'grid', label: '', icon: <GridLayoutIcon size={24} /> },
|
|
52
|
-
]}
|
|
53
|
-
/>
|
|
54
|
-
}
|
|
55
|
-
>
|
|
56
|
-
<Table data={devices} columns={columns} rowKey="id" />
|
|
57
|
-
</PageLayout>
|
|
58
39
|
```
|
|
59
40
|
|
|
60
|
-
**`actionsVariant` options:** `icon-buttons` (
|
|
41
|
+
**`actionsVariant` options:** `icon-buttons` (outline buttons that collapse to `…` on mobile) · `primary-buttons` (always visible) · `menu-primary`.
|
|
42
|
+
|
|
43
|
+
**Source:** [`PageLayout.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/PageLayout.stories.tsx)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!-- source-hash: 26e88f6d6986aabc12b20690300de3c7 -->
|
|
2
|
+
Storybook stories for the `PolicyConfigurationPanel` component, demonstrating AI guardrails permission configuration UI in read-only and interactive edit modes.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `ReadOnly` | Panel in view-only mode — approval levels rendered as static text, no dropdowns |
|
|
9
|
+
| `EditMode` | Interactive story with per-policy and bulk category approval dropdowns; state updates mirror the OpenFrame guardrails editor hook |
|
|
10
|
+
| `GroupedPolicySections` | Composes multiple `PolicyConfigurationPanel` instances under labeled group headings (e.g., "Device Management", "Data Access") |
|
|
11
|
+
| `applyPolicyLevel` | Helper that immutably updates a single policy's `ApprovalLevel` within a category list |
|
|
12
|
+
| `applyCategoryLevel` | Helper that bulk-applies an `ApprovalLevel` to every policy in a given category |
|
|
13
|
+
|
|
14
|
+
**Sample fixture data** covers three device-action categories (`Device Actions`, `Remote Access`, `Scripts & Automation`) and one data-access category (`Read Access`), referencing tools such as `OPENFRAME_RMM`, `FLEET_MDM`, `MESHCENTRAL`, and `OSQUERY`.
|
|
15
|
+
|
|
16
|
+
## Usage Example
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
// Replicate the EditMode story locally
|
|
20
|
+
import { useState } from 'react'
|
|
21
|
+
import { PolicyConfigurationPanel } from '../components/features/policy-configuration-panel'
|
|
22
|
+
import type { ApprovalLevel, PermissionCategory } from '../types/permissions'
|
|
23
|
+
|
|
24
|
+
function GuardrailsTab({ categories }: { categories: PermissionCategory[] }) {
|
|
25
|
+
const [cats, setCats] = useState(categories)
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<PolicyConfigurationPanel
|
|
29
|
+
categories={cats}
|
|
30
|
+
editMode={true}
|
|
31
|
+
onPolicyPermissionChange={(categoryId, policyId, level) =>
|
|
32
|
+
setCats(prev =>
|
|
33
|
+
prev.map(c =>
|
|
34
|
+
c.id !== categoryId ? c : {
|
|
35
|
+
...c,
|
|
36
|
+
policies: c.policies.map(p =>
|
|
37
|
+
p.id === policyId ? { ...p, approvalLevel: level } : p
|
|
38
|
+
),
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
onCategoryPermissionChange={(categoryId, level) =>
|
|
44
|
+
setCats(prev =>
|
|
45
|
+
prev.map(c =>
|
|
46
|
+
c.id !== categoryId ? c : {
|
|
47
|
+
...c,
|
|
48
|
+
policies: c.policies.map(p => ({ ...p, approvalLevel: level })),
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
/>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Source:** [`PolicyConfigurationPanel.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/PolicyConfigurationPanel.stories.tsx)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- source-hash: 290738d76bac6ec31d0611cc77b0adc1 -->
|
|
2
|
+
Storybook stories for `ProductReleaseCard`, covering the `product_release` doc type at two density variants (`sm` and `lg`) used across chat inline views and catalog/release pages.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `ChatInlineSm` | Compact `sm` density card for inline chat display |
|
|
9
|
+
| `ChatInlineSmWithVideoCover` | Compact `sm` card with `hasVideoCover` enabled |
|
|
10
|
+
| `Large` | Rich `lg` density card with hero cover, version pill, changelog stats, and a 4-cell metadata grid footer |
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { ProductReleaseCard } from '../components/chat/entity-cards'
|
|
16
|
+
import { productReleaseSmProps, productReleaseLgProps } from './__fixtures__/chat-cards'
|
|
17
|
+
import { makeAnchorProps } from './__fixtures__/chat-card-decorator'
|
|
18
|
+
|
|
19
|
+
// Compact inline chat card
|
|
20
|
+
<ProductReleaseCard
|
|
21
|
+
{...productReleaseSmProps}
|
|
22
|
+
size="sm"
|
|
23
|
+
anchorProps={makeAnchorProps('/releases/2-5-0')}
|
|
24
|
+
/>
|
|
25
|
+
|
|
26
|
+
// Rich catalog/release page card
|
|
27
|
+
<ProductReleaseCard
|
|
28
|
+
{...productReleaseLgProps}
|
|
29
|
+
size="lg"
|
|
30
|
+
anchorProps={makeAnchorProps('/releases/2-5-0')}
|
|
31
|
+
/>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Notes
|
|
35
|
+
|
|
36
|
+
- Both densities share a **flat prop signature** — no `item` wrapper object required.
|
|
37
|
+
- The `lg` variant is intended for `/releases`, the DevCenter tab, and investor-update related-content sections.
|
|
38
|
+
- Stories are wrapped in `ChatColumnDecorator` to simulate the chat column layout context.
|
|
39
|
+
- Source: [`ProductReleaseCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ProductReleaseCard.stories.tsx)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!-- source-hash: abf8ccf174f6c325f8b6a86c8368e747 -->
|
|
2
|
+
Storybook stories for the `ProgramCard` component, covering the three supported program doc types (`podcast`, `webinar`, `event`) at both `sm` (chat-dispatch) and `default` (catalog page) sizes.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `ProgramCard` | Generic card component for program-type content entities |
|
|
9
|
+
| `DEFAULT_PROGRAM_CONFIGS` | Pre-built safe minimum configs per doc type (`podcast`, `webinar`, `event`) |
|
|
10
|
+
| `ChatColumnDecorator` | Storybook decorator that wraps stories in a chat column layout |
|
|
11
|
+
| `podcastItem` / `webinarItem` / `eventItem` | Fixture data for each program type |
|
|
12
|
+
|
|
13
|
+
## Stories
|
|
14
|
+
|
|
15
|
+
| Story | Size | Notes |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `PodcastSm` | `sm` | Chat-dispatch rendering for podcast cards |
|
|
18
|
+
| `WebinarSm` | `sm` | Chat-dispatch rendering for webinar cards |
|
|
19
|
+
| `EventSm` | `sm` | Chat-dispatch rendering for event cards |
|
|
20
|
+
| `PodcastDefault` | `default` | Full density; used on the podcast catalog page, not inline in chat |
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { ProgramCard } from '../components/chat/entity-cards'
|
|
26
|
+
import { DEFAULT_PROGRAM_CONFIGS } from '../components/chat/entity-cards/program-card-defaults'
|
|
27
|
+
|
|
28
|
+
// Minimal chat-safe rendering (sm size used by chat dispatch)
|
|
29
|
+
<ProgramCard
|
|
30
|
+
config={DEFAULT_PROGRAM_CONFIGS.podcast}
|
|
31
|
+
item={podcastItem}
|
|
32
|
+
size="sm"
|
|
33
|
+
href={`/podcasts/${podcastItem.id}`}
|
|
34
|
+
target="_blank"
|
|
35
|
+
rel="noopener noreferrer"
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
// Override config per type for full catalog rendering
|
|
39
|
+
<ProgramCard
|
|
40
|
+
config={{ ...DEFAULT_PROGRAM_CONFIGS.podcast, ...customCatalogConfig }}
|
|
41
|
+
item={podcastItem}
|
|
42
|
+
size="default"
|
|
43
|
+
href={`/podcasts/${podcastItem.id}`}
|
|
44
|
+
/>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
> **Note:** `DEFAULT_PROGRAM_CONFIGS[type]` ships a safe minimum config for compact chat rendering. Embedders can override per type with a full catalog config via the `config` prop.
|
|
48
|
+
|
|
49
|
+
## Source
|
|
50
|
+
|
|
51
|
+
[`ProgramCard.stories.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ProgramCard.stories.tsx)
|