@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,44 +1,47 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Accessible pagination component
|
|
1
|
+
<!-- source-hash: ed302fbaa512fab595b516fa57c425ad -->
|
|
2
|
+
Accessible, client-side pagination component that renders page navigation with smart ellipsis logic and a set of composable sub-components for building custom pagination UIs.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Type | Description |
|
|
7
|
-
|
|
8
|
-
| `Pagination` | Component |
|
|
9
|
-
| `PaginationContent` |
|
|
10
|
-
| `PaginationItem` |
|
|
11
|
-
| `PaginationLink` |
|
|
12
|
-
| `PaginationEllipsis` |
|
|
13
|
-
| `PaginationPrevious` |
|
|
14
|
-
| `PaginationNext` |
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
| Prop | Type | Description |
|
|
19
|
-
|------|------|-------------|
|
|
20
|
-
| `currentPage` | `number` | Active page (1-based) |
|
|
21
|
-
| `totalPages` | `number` | Total number of pages |
|
|
22
|
-
| `onPageChange` | `(page: number) => void` | Callback fired on page selection |
|
|
23
|
-
| `className` | `string?` | Optional extra classes on the `<nav>` |
|
|
24
|
-
|
|
25
|
-
**Windowing logic:** shows up to 5 page buttons — always including first and last — with ellipsis (`-1`/`-2` sentinels) filling gaps in between.
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `Pagination` | Component | Full-featured pagination with built-in page number generation, ellipsis, and prev/next controls |
|
|
9
|
+
| `PaginationContent` | `forwardRef` | Flex container (`<ul>`) for pagination items |
|
|
10
|
+
| `PaginationItem` | `forwardRef` | Wrapper `<li>` for individual pagination elements |
|
|
11
|
+
| `PaginationLink` | `forwardRef` | Styled `<button>` for individual page links |
|
|
12
|
+
| `PaginationEllipsis` | `forwardRef` | `<span>` rendering a `MoreHorizontal` icon with screen-reader text |
|
|
13
|
+
| `PaginationPrevious` | `forwardRef` | Previous-page `<button>` with `ChevronLeft` icon |
|
|
14
|
+
| `PaginationNext` | `forwardRef` | Next-page `<button>` with `ChevronRight` icon |
|
|
15
|
+
|
|
16
|
+
**Page number algorithm:** Shows up to 5 pages. For larger sets it always renders the first and last page, up to 3 middle pages around the current page, and inserts ellipsis (`-1`/`-2` sentinel values) where gaps exist.
|
|
26
17
|
|
|
27
18
|
## Usage Example
|
|
28
19
|
|
|
20
|
+
**Simple controlled pagination:**
|
|
21
|
+
|
|
29
22
|
```typescript
|
|
30
|
-
// High-level component
|
|
31
23
|
import { Pagination } from "@/components/pagination"
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
export function MyList() {
|
|
26
|
+
const [page, setPage] = React.useState(1)
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
<ItemList page={page} />
|
|
31
|
+
<Pagination
|
|
32
|
+
currentPage={page}
|
|
33
|
+
totalPages={20}
|
|
34
|
+
onPageChange={setPage}
|
|
35
|
+
className="mt-4"
|
|
36
|
+
/>
|
|
37
|
+
</>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
38
40
|
```
|
|
39
41
|
|
|
42
|
+
**Composable low-level API:**
|
|
43
|
+
|
|
40
44
|
```typescript
|
|
41
|
-
// Composable primitives for custom layouts
|
|
42
45
|
import {
|
|
43
46
|
PaginationContent,
|
|
44
47
|
PaginationItem,
|
|
@@ -48,14 +51,16 @@ import {
|
|
|
48
51
|
PaginationEllipsis,
|
|
49
52
|
} from "@/components/pagination"
|
|
50
53
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
export function CustomPagination() {
|
|
55
|
+
return (
|
|
56
|
+
<nav aria-label="pagination">
|
|
57
|
+
<PaginationContent>
|
|
58
|
+
<PaginationItem><PaginationPrevious onClick={() => {}} /></PaginationItem>
|
|
59
|
+
<PaginationItem><PaginationLink>1</PaginationLink></PaginationItem>
|
|
60
|
+
<PaginationItem><PaginationEllipsis /></PaginationItem>
|
|
61
|
+
<PaginationItem><PaginationNext onClick={() => {}} /></PaginationItem>
|
|
62
|
+
</PaginationContent>
|
|
63
|
+
</nav>
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
```
|
|
@@ -1,41 +1,74 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: cfbf70162648ccd3e632dabc1ca9e692 -->
|
|
2
|
+
Wrapper components that keep filter controls visible but visually disabled during loading states, with smooth transitions and full accessibility support.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `PersistentFilterControls` | Base wrapper; handles opacity, pointer-events, ARIA attributes, and a spinning loader indicator |
|
|
9
|
+
| `PersistentSearchContainer` | Wraps search inputs; keeps interaction enabled (`preventInteraction=false`) during loading |
|
|
10
|
+
| `PersistentSidebar` | Wraps desktop sidebar filters; sticky-positioned, `0.5` disabled opacity |
|
|
11
|
+
| `PersistentMobileDropdown` | Wraps mobile dropdown filters; hidden on `lg+`, `0.7` disabled opacity |
|
|
12
|
+
|
|
13
|
+
## Props — `PersistentFilterControls`
|
|
14
|
+
|
|
15
|
+
| Prop | Type | Default | Description |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| `isLoading` | `boolean` | — | Triggers the disabled visual state |
|
|
18
|
+
| `children` | `ReactNode` | — | Filter control components to wrap |
|
|
19
|
+
| `className` | `string` | — | Additional Tailwind/CSS classes |
|
|
20
|
+
| `disabledOpacity` | `number` | `0.6` | Opacity when loading (0–1) |
|
|
21
|
+
| `transitionDuration` | `number` | `300` | Transition duration in milliseconds |
|
|
22
|
+
| `preventInteraction` | `boolean` | `true` | Applies `pointer-events-none` during loading |
|
|
10
23
|
|
|
11
24
|
## Usage Example
|
|
12
25
|
|
|
13
26
|
```typescript
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
27
|
+
import {
|
|
28
|
+
PersistentFilterControls,
|
|
29
|
+
PersistentSearchContainer,
|
|
30
|
+
PersistentSidebar,
|
|
31
|
+
PersistentMobileDropdown,
|
|
32
|
+
} from "./persistent-filter-controls"
|
|
33
|
+
|
|
34
|
+
// Granular per-control usage
|
|
35
|
+
function FilterLayout({ isLoading }: { isLoading: boolean }) {
|
|
36
|
+
return (
|
|
37
|
+
<>
|
|
38
|
+
{/* Search stays interactive during loading */}
|
|
39
|
+
<PersistentSearchContainer isLoading={isLoading}>
|
|
40
|
+
<SearchInput />
|
|
41
|
+
</PersistentSearchContainer>
|
|
20
42
|
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
</
|
|
43
|
+
{/* Sidebar fully disabled at 50% opacity */}
|
|
44
|
+
<PersistentSidebar isLoading={isLoading}>
|
|
45
|
+
<CategoryFilterSidebar />
|
|
46
|
+
</PersistentSidebar>
|
|
25
47
|
|
|
26
|
-
|
|
27
|
-
<
|
|
48
|
+
{/* Mobile dropdown, hidden on desktop */}
|
|
49
|
+
<PersistentMobileDropdown isLoading={isLoading}>
|
|
50
|
+
<MobileFilterDropdown />
|
|
51
|
+
</PersistentMobileDropdown>
|
|
52
|
+
</>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Or use the base component with custom settings
|
|
57
|
+
<PersistentFilterControls
|
|
28
58
|
isLoading={isLoading}
|
|
29
|
-
|
|
59
|
+
disabledOpacity={0.4}
|
|
60
|
+
transitionDuration={200}
|
|
61
|
+
preventInteraction
|
|
30
62
|
>
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
</PersistentSidebar>
|
|
34
|
-
|
|
35
|
-
// Mobile dropdown with automatic responsive hiding
|
|
36
|
-
<PersistentMobileDropdown isLoading={isLoading}>
|
|
37
|
-
<FilterDropdown />
|
|
38
|
-
</PersistentMobileDropdown>
|
|
63
|
+
<CustomFilterPanel />
|
|
64
|
+
</PersistentFilterControls>
|
|
39
65
|
```
|
|
40
66
|
|
|
41
|
-
|
|
67
|
+
## Accessibility
|
|
68
|
+
|
|
69
|
+
- `role="region"` with `aria-label="Filter controls"` and `aria-busy` on the outer wrapper
|
|
70
|
+
- `role="status"` with `aria-live="polite"` on a visually hidden (`sr-only`) element announces loading to screen readers
|
|
71
|
+
- A visible spinning indicator (`animate-spin`) is rendered at `top-2 right-2` during loading
|
|
72
|
+
- Keyboard navigation and screen reader access are preserved even when `pointer-events-none` is applied
|
|
73
|
+
|
|
74
|
+
**Source:** [`persistent-filter-controls.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/persistent-filter-controls.tsx)
|
|
@@ -1,50 +1,51 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: e8ca3b7bdcdb12ce459c31a0b64a34bd -->
|
|
2
|
+
Renders pricing data consistently across comparison tables, vendor cards, and dropdowns, supporting both structured `StructuredPricingItem` arrays and legacy string formats.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
###
|
|
7
|
-
- **`PricingDisplay`** - Main component for rendering pricing with configurable styles
|
|
8
|
-
- **`PRICING_STYLES`** - Predefined style configurations (comparison, compact, card)
|
|
9
|
-
- **`formatPricingForDisplay`** - Utility function for preprocessing pricing strings
|
|
6
|
+
### Exports
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
- **`
|
|
13
|
-
-
|
|
14
|
-
-
|
|
8
|
+
- **`PricingDisplay`** — Primary component that renders pricing with configurable styling. Accepts structured pricing data (single item, array, or legacy string) and a `styleConfig`.
|
|
9
|
+
- **`PRICING_STYLES`** — Predefined style config constants for three layout contexts:
|
|
10
|
+
- `comparison` — Default; no tilde prefix, primary text color
|
|
11
|
+
- `compact` — Vendor dropdowns; shows tilde prefix (`~$`), secondary text color
|
|
12
|
+
- `card` — Vendor cards; shows tilde prefix, mixed primary/secondary colors
|
|
13
|
+
- **`formatPricingForDisplay`** — Pass-through utility for pre-processing pricing strings (currently identity function).
|
|
15
14
|
|
|
16
|
-
###
|
|
17
|
-
|
|
18
|
-
- **`
|
|
15
|
+
### Internal
|
|
16
|
+
|
|
17
|
+
- **`LegacyPricingDisplay`** — Handles backward-compatible string input, parsing comma-separated, pipe-separated, multi-cycle (`/$`), and single-price formats.
|
|
18
|
+
- **`formatPriceValue`** — Normalizes `number | 'Free' | 'Contact'` to a display string, optionally prefixed with `~`.
|
|
19
|
+
|
|
20
|
+
### Interfaces
|
|
21
|
+
|
|
22
|
+
| Interface | Purpose |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `PricingStyleConfig` | Font size, color, tilde prefix, and font-family tokens |
|
|
25
|
+
| `PricingDisplayProps` | Component props; `pricing` accepts array, single item, or string |
|
|
19
26
|
|
|
20
27
|
## Usage Example
|
|
21
28
|
|
|
22
29
|
```typescript
|
|
23
30
|
import { PricingDisplay, PRICING_STYLES } from './pricing-display'
|
|
24
31
|
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
ranges: [{ min:
|
|
28
|
-
}
|
|
32
|
+
// Structured pricing (preferred)
|
|
33
|
+
<PricingDisplay
|
|
34
|
+
pricing={[{ ranges: [{ min: 29, unit: 'device/month' }] }]}
|
|
35
|
+
styleConfig={PRICING_STYLES.card}
|
|
36
|
+
/>
|
|
29
37
|
|
|
30
|
-
//
|
|
31
|
-
<PricingDisplay
|
|
38
|
+
// Legacy string input (backward compatible)
|
|
39
|
+
<PricingDisplay
|
|
40
|
+
pricing="$29/device/month, $299/device/year"
|
|
41
|
+
styleConfig={PRICING_STYLES.comparison}
|
|
42
|
+
/>
|
|
32
43
|
|
|
33
|
-
//
|
|
34
|
-
<PricingDisplay
|
|
35
|
-
pricing={
|
|
44
|
+
// Compact dropdown style with tilde prefix → renders "~$29/device/month"
|
|
45
|
+
<PricingDisplay
|
|
46
|
+
pricing={structuredItem}
|
|
36
47
|
styleConfig={PRICING_STYLES.compact}
|
|
37
|
-
className="my-2"
|
|
38
48
|
/>
|
|
39
|
-
|
|
40
|
-
// Legacy string support
|
|
41
|
-
<PricingDisplay pricing="$25/user/month" />
|
|
42
|
-
|
|
43
|
-
// Multiple pricing tiers
|
|
44
|
-
<PricingDisplay pricing={[
|
|
45
|
-
{ ranges: [{ min: 10, unit: 'device/month' }] },
|
|
46
|
-
{ ranges: [{ min: 120, unit: 'device/year' }] }
|
|
47
|
-
]} />
|
|
48
49
|
```
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
**Source:** [`pricing-display.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/pricing-display.tsx)
|
|
@@ -1,42 +1,55 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component that displays
|
|
1
|
+
<!-- source-hash: 6cbebdb8e5cb24d3a740b0dfd374352c -->
|
|
2
|
+
A client-side React component that displays paginated result counts with optional sorting context for vendor or post listings.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
- **`ResultsCount`** - Main component that renders the results count display with optional sorting message
|
|
6
|
+
**`ResultsCountProps`** — Interface defining component inputs:
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
| Prop | Type | Description |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| `currentPage` | `number` | Active page number (1-based) |
|
|
11
|
+
| `pageSize` | `number` | Number of results per page |
|
|
12
|
+
| `totalResults` | `number` | Total count across all pages |
|
|
13
|
+
| `resultType` | `'vendors' \| 'posts'` | Controls singular/plural label |
|
|
14
|
+
| `sortingMessage` | `string` (optional) | Accent-colored sort context appended to count |
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
- `pageSize`: Number of items per page
|
|
13
|
-
- `totalResults`: Total number of available results
|
|
14
|
-
- `resultType`: Type of content being displayed ('vendors' or 'posts')
|
|
15
|
-
- `sortingMessage`: Optional message about current sorting method
|
|
16
|
+
**`ResultsCount`** — Functional component that computes the visible result range and renders a summary string. Returns `null` when `totalResults` is `0`.
|
|
16
17
|
|
|
17
18
|
## Usage Example
|
|
18
19
|
|
|
19
20
|
```typescript
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// Basic usage for vendor listings
|
|
21
|
+
// Basic pagination count
|
|
23
22
|
<ResultsCount
|
|
24
23
|
currentPage={2}
|
|
25
24
|
pageSize={20}
|
|
26
|
-
totalResults={
|
|
25
|
+
totalResults={85}
|
|
27
26
|
resultType="vendors"
|
|
28
27
|
/>
|
|
29
|
-
//
|
|
28
|
+
// → "Showing 21-40 of 85 vendors"
|
|
30
29
|
|
|
31
|
-
// With sorting
|
|
30
|
+
// With sorting context
|
|
32
31
|
<ResultsCount
|
|
33
32
|
currentPage={1}
|
|
34
33
|
pageSize={10}
|
|
35
|
-
totalResults={
|
|
34
|
+
totalResults={1}
|
|
36
35
|
resultType="posts"
|
|
37
|
-
sortingMessage="sorted by
|
|
36
|
+
sortingMessage="sorted by relevance"
|
|
37
|
+
/>
|
|
38
|
+
// → "Showing 1-1 of 1 post • sorted by relevance"
|
|
39
|
+
|
|
40
|
+
// Returns null — renders nothing
|
|
41
|
+
<ResultsCount
|
|
42
|
+
currentPage={1}
|
|
43
|
+
pageSize={10}
|
|
44
|
+
totalResults={0}
|
|
45
|
+
resultType="vendors"
|
|
38
46
|
/>
|
|
39
|
-
// Output: "Showing 1-10 of 45 posts • sorted by date"
|
|
40
47
|
```
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
## Notes
|
|
50
|
+
|
|
51
|
+
- Range is computed as `startIndex = (currentPage - 1) * pageSize + 1` and `endIndex = Math.min(currentPage * pageSize, totalResults)`, preventing out-of-bounds display on the last page.
|
|
52
|
+
- Automatically handles singular/plural labeling (`vendor` vs `vendors`, `post` vs `posts`).
|
|
53
|
+
- `sortingMessage` renders in accent color (`text-ods-accent`) prefixed with a bullet separator.
|
|
54
|
+
|
|
55
|
+
**Source:** [`results-count.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/results-count.tsx)
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 2029770a635d305e72ad9b7c24b00f02 -->
|
|
2
|
+
A set of animated accordion components built on top of `@radix-ui/react-accordion`, providing smooth height and opacity transitions using `ResizeObserver` for dynamic content measurement.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
| Export | Type | Description |
|
|
7
|
-
|
|
8
|
-
| `SmoothAccordion` | Component | Re-export of `AccordionPrimitive.Root`
|
|
9
|
-
| `SmoothAccordionItem` | `forwardRef` Component |
|
|
10
|
-
| `SmoothAccordionTrigger` | `forwardRef` Component |
|
|
11
|
-
| `SmoothAccordionContent` | `forwardRef` Component |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `SmoothAccordion` | Component | Re-export of `AccordionPrimitive.Root` for convenience |
|
|
9
|
+
| `SmoothAccordionItem` | `forwardRef` Component | Wrapper around `AccordionPrimitive.Item` with border reset |
|
|
10
|
+
| `SmoothAccordionTrigger` | `forwardRef` Component | Trigger header with label text and animated `ChevronButton` |
|
|
11
|
+
| `SmoothAccordionContent` | `forwardRef` Component | Content panel with `ResizeObserver`-driven smooth animation |
|
|
12
|
+
|
|
13
|
+
### `SmoothAccordionTrigger` Props
|
|
14
|
+
|
|
15
|
+
| Prop | Type | Description |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `label` | `React.ReactNode` | Content rendered as the accordion header |
|
|
18
|
+
| `className` | `string?` | Additional CSS classes |
|
|
19
|
+
|
|
20
|
+
### `SmoothAccordionContent` Animation
|
|
21
|
+
|
|
22
|
+
Uses `ResizeObserver` to measure `scrollHeight` dynamically, animating `max-height` and `opacity` over `0.35s`. Height resets to `0px` after the close transition ends to avoid residual spacing.
|
|
12
23
|
|
|
13
24
|
## Usage Example
|
|
14
25
|
|
|
@@ -24,18 +35,16 @@ export function FAQ() {
|
|
|
24
35
|
return (
|
|
25
36
|
<SmoothAccordion type="single" collapsible>
|
|
26
37
|
<SmoothAccordionItem value="item-1">
|
|
27
|
-
<SmoothAccordionTrigger label="What is
|
|
38
|
+
<SmoothAccordionTrigger label="What is OpenFrame?" />
|
|
28
39
|
<SmoothAccordionContent>
|
|
29
|
-
|
|
30
|
-
proprietary software with open-source alternatives.
|
|
40
|
+
OpenFrame is a unified AI-driven MSP platform.
|
|
31
41
|
</SmoothAccordionContent>
|
|
32
42
|
</SmoothAccordionItem>
|
|
33
43
|
|
|
34
44
|
<SmoothAccordionItem value="item-2">
|
|
35
|
-
<SmoothAccordionTrigger label="
|
|
45
|
+
<SmoothAccordionTrigger label="How does Mingo AI work?" />
|
|
36
46
|
<SmoothAccordionContent>
|
|
37
|
-
|
|
38
|
-
into a single AI-driven interface.
|
|
47
|
+
Mingo AI automates IT support operations across the stack.
|
|
39
48
|
</SmoothAccordionContent>
|
|
40
49
|
</SmoothAccordionItem>
|
|
41
50
|
</SmoothAccordion>
|
|
@@ -43,11 +52,6 @@ export function FAQ() {
|
|
|
43
52
|
}
|
|
44
53
|
```
|
|
45
54
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
`SmoothAccordionContent` avoids Radix's default CSS variable approach by:
|
|
55
|
+
> **Note:** The `data-state` prop injected by Radix UI controls open/closed animation state. No additional state management is required by the consumer.
|
|
49
56
|
|
|
50
|
-
|
|
51
|
-
2. **Observing** dynamic content resize with a `ResizeObserver`
|
|
52
|
-
3. **Animating** `max-height` and `opacity` over `0.35s ease-in-out`
|
|
53
|
-
4. **Resetting** `maxHeight` to `0` after the close transition ends to prevent residual spacing
|
|
57
|
+
**Source:** [`smooth-accordion.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/smooth-accordion.tsx)
|
|
@@ -1,43 +1,55 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A client-side React component that renders a horizontal row of social media icon buttons with
|
|
1
|
+
<!-- source-hash: 61507385ae20de6e7a2be68effe9807c -->
|
|
2
|
+
A client-side React component that renders a horizontal row of social media icon buttons, supporting both link-based navigation and action callbacks with optional compact and grouped layouts.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
###
|
|
7
|
-
|
|
8
|
-
- **`
|
|
6
|
+
### Types
|
|
7
|
+
|
|
8
|
+
- **`SocialLink`** — Discriminated union type ensuring each entry has either an `href` (anchor) or `onClick` (action callback), never both or neither. Supports `visibility` (`"external"` | `"internal"`) for grouping.
|
|
9
|
+
- **`SocialIconRowProps`** — Component props including `links`, `variant`, `compact`, and `groupByVisibility`.
|
|
9
10
|
|
|
10
11
|
### Functions
|
|
11
|
-
- **`renderSocialIcon(platform)`** — Maps a platform string to its corresponding icon component. Supports: `github`, `twitter`/`x`, `reddit`, `linkedin`, `luma`, `whatsapp`, `website`/`web`/`url`, `slack`, `discord`, `telegram`, `youtube`/`yt`, `instagram`/`ig`, `facebook`/`fb`. Falls back to `GlobeIcon` for unknown platforms.
|
|
12
|
-
- **`SocialIconRow`** — Main exported component rendering a flex row of icon buttons, each wrapped in an accessible anchor tag.
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
13
|
+
- **`renderSocialIcon(platform)`** — Maps a platform string (case-insensitive) to the corresponding icon component. Falls back to `GlobeIcon` for unknown platforms. Supported platforms: `github`, `twitter`/`x`, `reddit`, `linkedin`, `luma`, `whatsapp`, `email`/`mail`, `website`/`web`/`url`, `slack`, `discord`, `telegram`, `youtube`/`yt`, `instagram`/`ig`, `facebook`/`fb`, `copy`.
|
|
14
|
+
- **`SocialIconRow`** — Main exported component.
|
|
15
|
+
|
|
16
|
+
### Props
|
|
17
|
+
|
|
18
|
+
| Prop | Type | Default | Description |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| `links` | `SocialLink[]` | GitHub, LinkedIn, Facebook | Array of social link definitions |
|
|
21
|
+
| `variant` | `"accent"` \| `"outline"` \| `"transparent"` \| `"destructive"` | `"outline"` / `"transparent"` | Button variant; defaults to `"transparent"` in compact mode |
|
|
22
|
+
| `compact` | `boolean` | `false` | 32px ghost icon buttons with tight `gap-2` for metadata/identity rows |
|
|
23
|
+
| `groupByVisibility` | `boolean` | `false` | Splits external and internal links with a divider when both groups are present |
|
|
17
24
|
|
|
18
25
|
## Usage Example
|
|
19
26
|
|
|
20
27
|
```typescript
|
|
21
|
-
|
|
28
|
+
import { SocialIconRow } from './social-icon-row';
|
|
29
|
+
|
|
30
|
+
// Default full-width card row
|
|
22
31
|
<SocialIconRow />
|
|
23
32
|
|
|
24
|
-
//
|
|
33
|
+
// Compact author header row with custom links
|
|
25
34
|
<SocialIconRow
|
|
26
|
-
|
|
35
|
+
compact
|
|
27
36
|
links={[
|
|
28
|
-
{ platform: 'github', href: 'https://github.com/
|
|
29
|
-
{ platform: '
|
|
30
|
-
{
|
|
37
|
+
{ platform: 'github', href: 'https://github.com/flamingo-stack/openframe-oss-lib', label: 'GitHub' },
|
|
38
|
+
{ platform: 'twitter', href: 'https://x.com/flamingo_run', label: 'X' },
|
|
39
|
+
{
|
|
40
|
+
platform: 'copy',
|
|
41
|
+
label: 'Copy link',
|
|
42
|
+
onClick: () => navigator.clipboard.writeText(window.location.href),
|
|
43
|
+
},
|
|
31
44
|
]}
|
|
32
|
-
className="mt-4"
|
|
33
45
|
/>
|
|
34
46
|
|
|
35
|
-
//
|
|
47
|
+
// Grouped: external links / divider / internal-only links
|
|
36
48
|
<SocialIconRow
|
|
37
|
-
|
|
49
|
+
groupByVisibility
|
|
38
50
|
links={[
|
|
39
|
-
{ platform: 'linkedin', href: 'https://linkedin.com/company/flamingo.run' },
|
|
40
|
-
{ platform: '
|
|
51
|
+
{ platform: 'linkedin', href: 'https://linkedin.com/company/flamingo.run', visibility: 'external' },
|
|
52
|
+
{ platform: 'slack', href: 'https://join.slack.com/...', visibility: 'internal' },
|
|
41
53
|
]}
|
|
42
54
|
/>
|
|
43
55
|
```
|
|
@@ -1,41 +1,56 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: ffdc48f7d697e19cf2af3c404ef4db8b -->
|
|
2
|
+
A pre-configured wrapper around the [Sonner](https://sonner.emilkowal.ski/) toast library, styled with OpenFrame Design System (`ods-*`) tokens and fixed to dark theme, bottom-right position.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`Toaster`** -
|
|
7
|
-
|
|
6
|
+
- **`Toaster`** — Drop-in toast container component. Accepts all native `Sonner` props via spread, with ODS-themed defaults pre-applied.
|
|
7
|
+
|
|
8
|
+
## ODS Token Mapping
|
|
9
|
+
|
|
10
|
+
| Toast Part | Tokens Applied |
|
|
11
|
+
|---|---|
|
|
12
|
+
| Base toast | `ods-card`, `ods-text-primary`, `ods-border` |
|
|
13
|
+
| Description | `ods-text-secondary` |
|
|
14
|
+
| Action button | `ods-accent`, `ods-text-on-accent` |
|
|
15
|
+
| Cancel button | `ods-bg-surface`, `ods-text-secondary` |
|
|
16
|
+
| Error variant | `ods-error-secondary`, `ods-error` border |
|
|
17
|
+
| Success variant | `ods-success-secondary`, `ods-success` border |
|
|
8
18
|
|
|
9
19
|
## Usage Example
|
|
10
20
|
|
|
21
|
+
Mount once at the app root (e.g. layout), then trigger toasts anywhere:
|
|
22
|
+
|
|
11
23
|
```typescript
|
|
12
|
-
|
|
13
|
-
import {
|
|
24
|
+
// app/layout.tsx
|
|
25
|
+
import { Toaster } from "@/components/ui/sonner"
|
|
14
26
|
|
|
15
|
-
|
|
16
|
-
function App() {
|
|
27
|
+
export default function RootLayout({ children }) {
|
|
17
28
|
return (
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
<html>
|
|
30
|
+
<body>
|
|
31
|
+
{children}
|
|
32
|
+
<Toaster />
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
22
35
|
)
|
|
23
36
|
}
|
|
37
|
+
```
|
|
24
38
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
39
|
+
```typescript
|
|
40
|
+
// anywhere in the app
|
|
41
|
+
import { toast } from "sonner"
|
|
29
42
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
43
|
+
toast.success("Device synced successfully.")
|
|
44
|
+
toast.error("Failed to connect to endpoint.")
|
|
45
|
+
toast("Ticket #1042 updated.", { description: "Priority changed to High." })
|
|
46
|
+
```
|
|
33
47
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
48
|
+
Override defaults by passing props directly to `<Toaster>`:
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
<Toaster position="top-center" duration={3000} />
|
|
39
52
|
```
|
|
40
53
|
|
|
41
|
-
|
|
54
|
+
## Source
|
|
55
|
+
|
|
56
|
+
[`sonner.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/sonner.tsx)
|