@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,49 +1,53 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Renders a styled
|
|
1
|
+
<!-- source-hash: 4625c3e196ab2432605ea8116cf40c08 -->
|
|
2
|
+
Renders a styled ticket status badge that maps any status string variant (backend enum, chat lowercase, dialog alias) to a canonical display with correct color, label, and icon.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### Types & Exports
|
|
7
|
-
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
- **`TicketStatus`** — Union type of canonical status values: `ACTIVE | AI_ASSISTANCE | TECH_REQUIRED | ON_HOLD | RESOLVED | ARCHIVED`
|
|
8
|
+
- **`TicketStatusKind`** — Backend kind enum including `CUSTOM`
|
|
9
|
+
- **`TicketStatusInput`** — Shape for raw ticket status fields from the backend (status, statusKind, statusName, statusColor)
|
|
10
|
+
- **`TicketStatusTagProps`** — Full props interface for the tag component
|
|
11
11
|
|
|
12
12
|
### Utility Functions
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
- **`resolveTicketStatus(status)`** — Normalizes any alias (e.g. `ACTION_REQUIRED`, `open`, `active`) to a canonical `TicketStatus` or `null`
|
|
14
|
+
- **`getTicketStatusConfig(status)`** — Returns label, variant, and optional icon for any status string
|
|
15
|
+
- **`getTicketStatusTag(status)`** — Drop-in replacement for legacy `getTicketStatusTag` utility
|
|
16
|
+
- **`kindToCanonicalStatus(kind)`** — Maps a backend kind to its canonical status
|
|
17
|
+
- **`usesCanonicalStatusStyle(kind)`** — Returns `true` for kinds that use system styling over backend color
|
|
18
|
+
- **`resolveStatusTagProps(input)`** — Resolves a `TicketStatusInput` into `TicketStatusTag` props
|
|
18
19
|
|
|
19
20
|
### Component
|
|
20
|
-
- **`TicketStatusTag`** —
|
|
21
|
+
- **`TicketStatusTag`** — Renders a `Tag` with optional icon, custom hex color with derived hover/active states, and an optional inline dropdown (via `ActionsMenuDropdown`) for in-place status changes
|
|
21
22
|
|
|
22
23
|
## Usage Example
|
|
23
24
|
|
|
24
25
|
```typescript
|
|
25
|
-
// Basic
|
|
26
|
-
<TicketStatusTag status="
|
|
27
|
-
|
|
28
|
-
// With
|
|
29
|
-
<TicketStatusTag
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
// Basic display
|
|
27
|
+
<TicketStatusTag status="RESOLVED" />
|
|
28
|
+
|
|
29
|
+
// With custom backend color and label override
|
|
30
|
+
<TicketStatusTag
|
|
31
|
+
status="TECH_REQUIRED"
|
|
32
|
+
label="Waiting on Client"
|
|
33
|
+
color="#F59E0B"
|
|
34
|
+
/>
|
|
35
|
+
|
|
36
|
+
// Inline status changer with dropdown
|
|
37
|
+
<TicketStatusTag
|
|
38
|
+
status={ticket.status}
|
|
39
|
+
options={statusOptions}
|
|
40
|
+
onSelect={(id) => updateStatus(ticket.id, id)}
|
|
41
|
+
isPending={isUpdating}
|
|
42
|
+
/>
|
|
43
|
+
|
|
44
|
+
// Resolve from raw backend fields
|
|
45
|
+
const props = resolveStatusTagProps({
|
|
46
|
+
statusKind: 'CUSTOM',
|
|
47
|
+
statusName: 'Escalated',
|
|
48
|
+
statusColor: '#DC2626',
|
|
49
|
+
})
|
|
50
|
+
<TicketStatusTag {...props} />
|
|
40
51
|
```
|
|
41
52
|
|
|
42
|
-
|
|
43
|
-
| Status | Variant | Icon |
|
|
44
|
-
|--------|---------|------|
|
|
45
|
-
| `ACTIVE` | `success` | — |
|
|
46
|
-
| `TECH_REQUIRED` | `warning` | — |
|
|
47
|
-
| `ON_HOLD` | `error` | — |
|
|
48
|
-
| `RESOLVED` | `outline` | ✅ CheckCircle |
|
|
49
|
-
| `ARCHIVED` | `grey` | — |
|
|
53
|
+
**Source:** [`ticket-status-tag.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-status-tag.tsx)
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
1
|
+
<!-- source-hash: 698030c9d57a6d286851413d58aa0855 -->
|
|
2
2
|
A client-side toast notification system built on top of [Sonner](https://sonner.emilkowal.ski/), providing styled toast components with variant support, progress indicators, and a specialized command approval flow.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Type | Description |
|
|
7
7
|
|--------|------|-------------|
|
|
8
|
-
| `Toaster` | Component | Root provider
|
|
8
|
+
| `Toaster` | Component | Root provider component; wraps `SonnerToaster` with unstyled defaults and injects the `toast-progress` keyframe animation |
|
|
9
9
|
| `ToastCard` | Component | Standard toast card with title, description, colored dot indicator, dismiss button, and animated progress bar |
|
|
10
|
-
| `CommandApprovalToast` | Component | Expandable toast with
|
|
11
|
-
| `showToast` | Function | Imperative helper to fire a `ToastCard`
|
|
10
|
+
| `CommandApprovalToast` | Component | Expandable toast for AI/tool command approvals with approve/reject actions and optional `ToolIcon` |
|
|
11
|
+
| `showToast` | Function | Imperative helper to fire a `ToastCard`; accepts a plain string or `ShowToastOptions` |
|
|
12
12
|
| `showCommandApprovalToast` | Function | Imperative helper to fire a `CommandApprovalToast` |
|
|
13
13
|
| `ToastVariant` | Type | `'default' \| 'success' \| 'warning' \| 'error' \| 'info'` |
|
|
14
|
+
| `dotColorByVariant` | Constant | Maps each variant to an ODS background color class for the status dot |
|
|
15
|
+
| `progressColorByVariant` | Constant | Maps each variant to an ODS background color class for the progress bar |
|
|
14
16
|
|
|
15
17
|
## Usage Example
|
|
16
18
|
|
|
17
|
-
**Mount the provider once
|
|
19
|
+
**Mount the provider once at the app root:**
|
|
18
20
|
|
|
19
21
|
```typescript
|
|
20
22
|
import { Toaster } from '@/components/toaster'
|
|
@@ -34,24 +36,28 @@ export default function RootLayout({ children }) {
|
|
|
34
36
|
```typescript
|
|
35
37
|
import { showToast } from '@/components/toaster'
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
// Simple string shorthand
|
|
40
|
+
showToast('Settings saved')
|
|
38
41
|
|
|
39
|
-
//
|
|
40
|
-
showToast(
|
|
42
|
+
// With variant and description
|
|
43
|
+
showToast({
|
|
44
|
+
title: 'Connection failed',
|
|
45
|
+
description: 'Could not reach the server.',
|
|
46
|
+
variant: 'error',
|
|
47
|
+
duration: 6000,
|
|
48
|
+
})
|
|
41
49
|
```
|
|
42
50
|
|
|
43
|
-
**Request command approval
|
|
51
|
+
**Request command approval from the AI agent flow:**
|
|
44
52
|
|
|
45
53
|
```typescript
|
|
46
54
|
import { showCommandApprovalToast } from '@/components/toaster'
|
|
47
55
|
|
|
48
56
|
showCommandApprovalToast({
|
|
49
|
-
command: '
|
|
57
|
+
command: 'rm -rf /var/log/old-logs',
|
|
50
58
|
toolType: 'terminal',
|
|
51
|
-
approvalDescription: 'This will
|
|
59
|
+
approvalDescription: 'This will permanently delete log files.',
|
|
52
60
|
onApprove: () => executeCommand(),
|
|
53
|
-
onReject: () =>
|
|
61
|
+
onReject: () => console.log('Rejected'),
|
|
54
62
|
})
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
> `CommandApprovalToast` defaults to `duration: Infinity` so it persists until the technician explicitly approves or rejects the action.
|
|
63
|
+
```
|
|
@@ -1,46 +1,47 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 4d4ada9c1e880bd6f3eb0ca0077d3b94 -->
|
|
2
|
+
A client-side toggle button component built on Radix UI's `TogglePrimitive`, styled with `class-variance-authority` and OpenFrame design system tokens.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`
|
|
7
|
-
- **`
|
|
8
|
-
- **Variant Types:**
|
|
9
|
-
- `variant`: `"default"` | `"outline"`
|
|
10
|
-
- `size`: `"default"` | `"sm"` | `"lg"`
|
|
6
|
+
- **`toggleVariants`** — CVA variant config defining styles for `variant` (`default`, `outline`) and `size` (`default`, `sm`, `lg`) combinations, using ODS design tokens (`ods-accent`, `ods-border`, `ods-focus`, etc.)
|
|
7
|
+
- **`Toggle`** — A forwarded-ref React component wrapping `TogglePrimitive.Root` with variant-aware class merging via `cn`
|
|
11
8
|
|
|
12
9
|
## Usage Example
|
|
13
10
|
|
|
14
11
|
```typescript
|
|
15
|
-
import { Toggle } from "
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
pressed={pressed}
|
|
37
|
-
onPressedChange={setPressed}
|
|
38
|
-
>
|
|
39
|
-
Custom toggle
|
|
40
|
-
</Toggle>
|
|
41
|
-
</div>
|
|
42
|
-
)
|
|
43
|
-
}
|
|
12
|
+
import { Toggle } from "@/components/ui/toggle"
|
|
13
|
+
import { Bold } from "lucide-react"
|
|
14
|
+
|
|
15
|
+
// Default toggle
|
|
16
|
+
<Toggle aria-label="Toggle bold">
|
|
17
|
+
<Bold className="h-4 w-4" />
|
|
18
|
+
</Toggle>
|
|
19
|
+
|
|
20
|
+
// Outline variant, small size
|
|
21
|
+
<Toggle variant="outline" size="sm" aria-label="Toggle italic">
|
|
22
|
+
Italic
|
|
23
|
+
</Toggle>
|
|
24
|
+
|
|
25
|
+
// Controlled toggle with pressed state
|
|
26
|
+
<Toggle
|
|
27
|
+
pressed={isActive}
|
|
28
|
+
onPressedChange={setIsActive}
|
|
29
|
+
variant="outline"
|
|
30
|
+
>
|
|
31
|
+
Active
|
|
32
|
+
</Toggle>
|
|
44
33
|
```
|
|
45
34
|
|
|
46
|
-
|
|
35
|
+
## Variants
|
|
36
|
+
|
|
37
|
+
| Prop | Options | Default |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `variant` | `default`, `outline` | `default` |
|
|
40
|
+
| `size` | `default`, `sm`, `lg` | `default` |
|
|
41
|
+
|
|
42
|
+
## Notes
|
|
43
|
+
|
|
44
|
+
- Marked `"use client"` — compatible with Next.js App Router
|
|
45
|
+
- Inherits all Radix `TogglePrimitive.Root` props (including `pressed`, `onPressedChange`, `defaultPressed`)
|
|
46
|
+
- Active state styling (`data-[state=on]`) uses `ods-accent` background automatically
|
|
47
|
+
- Source: [`components/ui/toggle.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/components/ui/toggle.tsx)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Accessible tooltip component built on Radix UI primitives,
|
|
1
|
+
<!-- source-hash: ad1dda63b330dd9dfa95d0d9610631e5 -->
|
|
2
|
+
Accessible tooltip component built on Radix UI primitives, with portal-aware rendering that inherits the active stacking context (e.g. inside drawers) and falls back to `document.body`.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Type | Description |
|
|
7
|
-
|
|
8
|
-
| `TooltipProvider` | Component |
|
|
9
|
-
| `Tooltip` | Component | Root
|
|
10
|
-
| `TooltipTrigger` | Component |
|
|
11
|
-
| `TooltipContent` | Component | Styled content panel
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `TooltipProvider` | Component | Radix `Provider` wrapper; manages tooltip open/close delays globally |
|
|
9
|
+
| `Tooltip` | Component | Radix `Root`; controls open state for a single tooltip |
|
|
10
|
+
| `TooltipTrigger` | Component | Radix `Trigger`; wraps the element that activates the tooltip |
|
|
11
|
+
| `TooltipContent` | Component | Styled content panel; portals into the active container via `usePortalContainer` |
|
|
12
12
|
|
|
13
13
|
## Usage Example
|
|
14
14
|
|
|
@@ -20,15 +20,15 @@ import {
|
|
|
20
20
|
TooltipTrigger,
|
|
21
21
|
} from "@/components/ui/tooltip"
|
|
22
22
|
|
|
23
|
-
export function
|
|
23
|
+
export function InfoButton() {
|
|
24
24
|
return (
|
|
25
25
|
<TooltipProvider>
|
|
26
26
|
<Tooltip>
|
|
27
27
|
<TooltipTrigger asChild>
|
|
28
|
-
<button
|
|
28
|
+
<button aria-label="More info">ℹ️</button>
|
|
29
29
|
</TooltipTrigger>
|
|
30
30
|
<TooltipContent side="top">
|
|
31
|
-
|
|
31
|
+
This action cannot be undone.
|
|
32
32
|
</TooltipContent>
|
|
33
33
|
</Tooltip>
|
|
34
34
|
</TooltipProvider>
|
|
@@ -38,6 +38,9 @@ export function ActionButton() {
|
|
|
38
38
|
|
|
39
39
|
## Notes
|
|
40
40
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
41
|
+
- **Portal targeting** — `usePortalContainer` pipes the tooltip into a drawer or sheet's DOM node when one is active, preventing z-index clipping. Falls back to `document.body` when no container context is provided.
|
|
42
|
+
- **Height constraint** — `max-h` is bound to `--radix-popper-available-height`, so oversized content scrolls rather than overflows the viewport.
|
|
43
|
+
- **Animations** — Entry/exit transitions are driven by Radix `data-state` and `data-side` attributes via Tailwind `animate-in`/`animate-out` utilities.
|
|
44
|
+
- **`sideOffset`** — Defaults to `4px`; can be overridden per instance via props.
|
|
45
|
+
|
|
46
|
+
**Source:** [`tooltip.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/tooltip.tsx)
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 93b65bad78f61892d6bffdfdb828ce09 -->
|
|
2
|
+
Defines shared Tailwind CSS style atoms consumed by `Button` and `SplitButton` components, establishing a single source of truth for surface colors, border styles, and split-divider colors across all button variants.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`buttonSurfaceClasses`** —
|
|
7
|
-
- **`outlineBorderClasses`** — Shared border string applied to `outline` variant
|
|
8
|
-
- **`splitDividerColorClasses`** —
|
|
6
|
+
- **`buttonSurfaceClasses`** — Record mapping each variant (`accent`, `outline`, `transparent`, `destructive`, `warning`) to Tailwind utility strings covering background, text, hover, active, and both `disabled:` / `aria-disabled:` states.
|
|
7
|
+
- **`outlineBorderClasses`** — Shared border string applied exclusively to the `outline` variant across all interactive states.
|
|
8
|
+
- **`splitDividerColorClasses`** — Record mapping each variant to its border color for the vertical seam separating the main and icon halves in split-button layouts.
|
|
9
9
|
- **`ButtonSurfaceVariant`** — Derived union type (`"accent" | "outline" | "transparent" | "destructive" | "warning"`) inferred from `buttonSurfaceClasses` keys.
|
|
10
10
|
|
|
11
|
+
> **`disabled:` vs `aria-disabled:`** — Both states are always paired. `disabled:` targets native `<button disabled>` elements; `aria-disabled:` handles `<a aria-disabled="true">` anchors, which do not support the CSS `:disabled` pseudo-class.
|
|
12
|
+
|
|
11
13
|
## Usage Example
|
|
12
14
|
|
|
13
15
|
```typescript
|
|
@@ -18,18 +20,15 @@ import {
|
|
|
18
20
|
type ButtonSurfaceVariant,
|
|
19
21
|
} from "./button-styles"
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// Combine with border classes for the outline variant
|
|
28
|
-
const outlineButtonClass = `${buttonSurfaceClasses.outline} ${outlineBorderClasses}`
|
|
23
|
+
function getButtonClasses(variant: ButtonSurfaceVariant): string {
|
|
24
|
+
const surface = buttonSurfaceClasses[variant]
|
|
25
|
+
const border = variant === "outline" ? ` ${outlineBorderClasses}` : ""
|
|
26
|
+
return `${surface}${border}`
|
|
27
|
+
}
|
|
29
28
|
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
// → "border-ods-accent-active"
|
|
33
|
-
```
|
|
29
|
+
// "accent" → bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover …
|
|
30
|
+
getButtonClasses("accent")
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
// Split-button divider color for "destructive"
|
|
33
|
+
const divider = splitDividerColorClasses["destructive"] // "border-ods-error-active"
|
|
34
|
+
```
|
|
@@ -1,53 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: d5a003b7cf74c407be223ae980cad122 -->
|
|
2
|
+
Flexible, multi-variant button component supporting standard buttons, links, split-icon layouts, and loading states via a unified `Button` interface.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`
|
|
7
|
-
- **`
|
|
8
|
-
- **`
|
|
9
|
-
- **`
|
|
10
|
-
- **`ButtonProps`** — Full interface including `href`, `linkProps`, `leftIcon`, `rightIcon`, `splitIcon`, `loading`, and deprecated `size="small-legacy"`.
|
|
6
|
+
- **`buttonVariants`** — CVA variant map defining styles for `variant` (`accent`, `outline`, `transparent`, `destructive`, `warning`), `size` (`default`, `small`, `small-legacy`, `compact`, `icon`, `icon-sm`), `fullWidth`, and `noPaddingX`.
|
|
7
|
+
- **`splitShellVariants` / `splitSlotVariants`** — CVA helpers for the split-icon layout, where a vertical divider separates main content from a trailing icon area within a single click target.
|
|
8
|
+
- **`Spinner`** — Internal SVG spinner rendered absolutely during `loading` state, preserving button dimensions.
|
|
9
|
+
- **`Button`** — Primary export. A `forwardRef` component that auto-selects rendering strategy: `<Slot>` (`asChild`), `<Link>` (`href` / `linkProps`), split layout (`splitIcon`), or a plain `<button>`.
|
|
11
10
|
|
|
12
|
-
##
|
|
11
|
+
## Props
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
| Prop | Type | Notes |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `variant` | `accent` \| `outline` \| `transparent` \| `destructive` \| `warning` | Defaults to `accent` |
|
|
16
|
+
| `size` | `default` \| `small` \| `compact` \| `icon` \| `icon-sm` | `small-legacy` deprecated |
|
|
17
|
+
| `href` / `linkProps` | `string` / object | Renders as `<Link>`; `linkProps` wins over `href` |
|
|
18
|
+
| `splitIcon` | `ReactNode` | Triggers split layout (default/small sizes only) |
|
|
19
|
+
| `loading` | `boolean` | Hides content, shows spinner; implies `disabled` |
|
|
20
|
+
| `asChild` | `boolean` | Delegates rendering to child via Radix `Slot` |
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
<Button href="https://flamingo.run" openInNewTab>
|
|
22
|
-
Learn More
|
|
23
|
-
</Button>
|
|
22
|
+
## Usage Example
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
```typescript
|
|
25
|
+
// Standard accent button with loading state
|
|
26
|
+
<Button variant="accent" loading={isSubmitting} onClick={handleSubmit}>
|
|
27
|
+
Save Changes
|
|
28
28
|
</Button>
|
|
29
29
|
|
|
30
|
-
//
|
|
31
|
-
<Button splitIcon={<ChevronDownIcon />} variant="outline">
|
|
32
|
-
|
|
30
|
+
// Link button with split icon
|
|
31
|
+
<Button href="/dashboard" splitIcon={<ChevronDownIcon />} variant="outline">
|
|
32
|
+
Dashboard
|
|
33
33
|
</Button>
|
|
34
34
|
|
|
35
|
-
//
|
|
36
|
-
<Button
|
|
37
|
-
|
|
35
|
+
// Icon-only ghost button
|
|
36
|
+
<Button variant="transparent" size="icon-sm" aria-label="Share">
|
|
37
|
+
<ShareIcon />
|
|
38
38
|
</Button>
|
|
39
39
|
|
|
40
|
-
// Render as child (asChild
|
|
41
|
-
<Button asChild variant="
|
|
42
|
-
<a href="
|
|
40
|
+
// Render as child (asChild)
|
|
41
|
+
<Button asChild variant="outline">
|
|
42
|
+
<a href="https://openframe.ai">Learn More</a>
|
|
43
43
|
</Button>
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
| Prop | Options |
|
|
49
|
-
|---|---|
|
|
50
|
-
| `variant` | `accent` · `outline` · `transparent` · `destructive` · `warning` |
|
|
51
|
-
| `size` | `default` · `small` · `icon` · `small-legacy` *(deprecated)* |
|
|
52
|
-
| `fullWidth` | `true` / `false` |
|
|
53
|
-
| `noPaddingX` | `true` / `false` |
|
|
46
|
+
**Source:** [`button.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/button.tsx)
|
|
@@ -1,48 +1,71 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 35b1020cbe4e7f93380a44a0312c0736 -->
|
|
2
|
+
A dual-interactive button component that renders two independent clickable halves — a main action half and an icon half — separated by a 1px variant-colored divider seam.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
### `SplitButton` (default export)
|
|
7
|
+
|
|
8
|
+
A `React.forwardRef` component wrapping both halves in a `role="group"` div. Each half independently supports button or link (`<a>`) rendering.
|
|
9
|
+
|
|
10
|
+
### `Half` (internal)
|
|
11
|
+
|
|
12
|
+
Renders either a Next.js `<Link>` or a `<button>` depending on whether an `href` is provided. Applies `splitHalfVariants` CVA classes for consistent styling.
|
|
13
|
+
|
|
14
|
+
### `splitHalfVariants`
|
|
15
|
+
|
|
16
|
+
CVA configuration controlling appearance via:
|
|
17
|
+
- **`variant`**: `accent` | `outline` | `transparent` | `destructive` | `warning`
|
|
18
|
+
- **`size`**: `default` | `small`
|
|
19
|
+
- **`side`**: `main` | `icon` (controls rounding and divider border)
|
|
20
|
+
- **`soloOnMobile`**: hides the icon half on small screens when `iconAction.openInNewTab` is `true`
|
|
21
|
+
|
|
22
|
+
## Key Props
|
|
23
|
+
|
|
24
|
+
| Prop | Type | Description |
|
|
25
|
+
|------|------|-------------|
|
|
26
|
+
| `iconAction` | `SplitButtonIconAction` | Required. Icon half config (icon, aria-label, href/onClick) |
|
|
27
|
+
| `variant` | `SplitButtonVariant` | Visual style; defaults to `"accent"` |
|
|
28
|
+
| `disabled` | `boolean` | Disables both halves |
|
|
29
|
+
| `mainDisabled` | `boolean` | Disables only the main half |
|
|
30
|
+
| `fullWidth` | `boolean` | Stretches the main half; icon half stays fixed-width |
|
|
31
|
+
| `openInNewTab` | `boolean` | Opens main link in new tab; also triggers `soloOnMobile` |
|
|
11
32
|
|
|
12
33
|
## Usage Example
|
|
13
34
|
|
|
14
35
|
```typescript
|
|
15
36
|
import { SplitButton } from "./split-button"
|
|
16
|
-
import { ChevronDownIcon,
|
|
37
|
+
import { ChevronDownIcon, ExternalLinkIcon } from "lucide-react"
|
|
17
38
|
|
|
18
|
-
//
|
|
39
|
+
// Button + icon-action as two independent targets
|
|
19
40
|
<SplitButton
|
|
20
41
|
variant="accent"
|
|
21
42
|
size="default"
|
|
22
|
-
|
|
23
|
-
leftIcon={<PlusIcon />}
|
|
24
|
-
groupAriaLabel="Create ticket actions"
|
|
43
|
+
onClick={() => handleSave()}
|
|
25
44
|
iconAction={{
|
|
26
45
|
icon: <ChevronDownIcon />,
|
|
27
|
-
"aria-label": "More
|
|
28
|
-
onClick: () =>
|
|
46
|
+
"aria-label": "More save options",
|
|
47
|
+
onClick: () => openDropdown(),
|
|
29
48
|
}}
|
|
30
49
|
>
|
|
31
|
-
|
|
50
|
+
Save
|
|
32
51
|
</SplitButton>
|
|
33
52
|
|
|
34
|
-
//
|
|
53
|
+
// Link main half + new-tab icon half (icon hides on mobile)
|
|
35
54
|
<SplitButton
|
|
36
|
-
variant="
|
|
37
|
-
|
|
55
|
+
variant="outline"
|
|
56
|
+
href="/dashboard"
|
|
38
57
|
iconAction={{
|
|
39
|
-
icon: <
|
|
40
|
-
"aria-label": "
|
|
41
|
-
|
|
58
|
+
icon: <ExternalLinkIcon />,
|
|
59
|
+
"aria-label": "Open in new tab",
|
|
60
|
+
href: "/dashboard",
|
|
61
|
+
openInNewTab: true,
|
|
42
62
|
}}
|
|
63
|
+
groupAriaLabel="Dashboard navigation"
|
|
43
64
|
>
|
|
44
|
-
|
|
65
|
+
Dashboard
|
|
45
66
|
</SplitButton>
|
|
46
67
|
```
|
|
47
68
|
|
|
48
|
-
> **
|
|
69
|
+
> **Note:** For a single-target button with a decorative trailing icon, use `<Button splitIcon>` instead. `SplitButton` is specifically for two independently interactive halves.
|
|
70
|
+
|
|
71
|
+
**Source:** [`split-button.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/split-button.tsx)
|
|
@@ -14,6 +14,19 @@ export const buttonSurfaceClasses = {
|
|
|
14
14
|
"bg-ods-error text-ods-text-on-accent hover:bg-ods-error-hover active:bg-ods-error-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
|
|
15
15
|
warning:
|
|
16
16
|
"bg-ods-warning text-ods-text-on-accent hover:bg-ods-warning-hover active:bg-ods-warning-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
|
|
17
|
+
// A self-contained glyph (play badge, unmute glyph) that already carries its
|
|
18
|
+
// own scrim: no button surface at all, in any state. Distinct from
|
|
19
|
+
// `transparent`, whose hover/active fills would paint a rectangle behind the
|
|
20
|
+
// glyph — which is why call sites were undoing them with
|
|
21
|
+
// `hover:bg-transparent active:bg-transparent`.
|
|
22
|
+
glyph:
|
|
23
|
+
"bg-transparent text-ods-text-primary hover:bg-transparent active:bg-transparent disabled:bg-transparent disabled:text-ods-text-disabled aria-disabled:bg-transparent aria-disabled:text-ods-text-disabled",
|
|
24
|
+
// Chrome that sits ON media (video cards, image lightboxes): a scrim disc so
|
|
25
|
+
// the glyph stays legible over an arbitrary frame. Promoted to a variant
|
|
26
|
+
// because the walkthrough card, its theater and the bite cards were each
|
|
27
|
+
// stacking the same classes at the call site.
|
|
28
|
+
overlay:
|
|
29
|
+
"rounded-full bg-ods-overlay text-ods-text-primary backdrop-blur-sm hover:text-ods-accent active:text-ods-accent-active disabled:text-ods-text-disabled aria-disabled:text-ods-text-disabled",
|
|
17
30
|
} as const
|
|
18
31
|
|
|
19
32
|
export const outlineBorderClasses =
|
|
@@ -26,6 +26,8 @@ const buttonVariants = cva(
|
|
|
26
26
|
transparent: buttonSurfaceClasses.transparent,
|
|
27
27
|
destructive: buttonSurfaceClasses.destructive,
|
|
28
28
|
warning: buttonSurfaceClasses.warning,
|
|
29
|
+
glyph: buttonSurfaceClasses.glyph,
|
|
30
|
+
overlay: buttonSurfaceClasses.overlay,
|
|
29
31
|
},
|
|
30
32
|
size: {
|
|
31
33
|
default: "py-[var(--spacing-system-sf)] px-[var(--spacing-system-m)] text-h3 md:h-12 h-10",
|
|
@@ -48,6 +50,9 @@ const buttonVariants = cva(
|
|
|
48
50
|
// metadata rather than CTAs — author-page social rows, share rows.
|
|
49
51
|
// Pair with variant="transparent" for the ghost treatment.
|
|
50
52
|
"icon-sm": "p-[var(--spacing-system-xxs)] h-8 w-8 [&_svg]:h-4 [&_svg]:w-4",
|
|
53
|
+
// Bare 56px media glyph (play / unmute over video). A size variant so
|
|
54
|
+
// hosts stop re-implementing a <button> to escape the 20px svg cap.
|
|
55
|
+
"icon-glyph": "p-0 h-14 w-14 [&_svg]:h-14 [&_svg]:w-14",
|
|
51
56
|
},
|
|
52
57
|
fullWidth: {
|
|
53
58
|
true: "w-full",
|