@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,26 +1,25 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A controlled search input component that combines inline tag
|
|
1
|
+
<!-- source-hash: bcb66dcc5b0a6be0721e936daa39f1ef -->
|
|
2
|
+
A controlled search input component that combines inline tag display with a text search field, supporting overflow handling for tags that exceed available width.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `TagSearchOption<T>`
|
|
7
|
-
Generic interface representing a selectable tag with a `label` string and typed `
|
|
7
|
+
Generic interface representing a selectable tag with a `label` (display string) and `value` (typed payload, defaults to `string`).
|
|
8
8
|
|
|
9
9
|
### `TagSearchInputProps<T>`
|
|
10
|
-
Full
|
|
11
|
-
- `tags` / `searchValue` — controlled state
|
|
12
|
-
- `
|
|
13
|
-
- `limitTags` — `number | "auto"` (
|
|
10
|
+
Full prop interface for the component, including:
|
|
11
|
+
- `tags` / `searchValue` — controlled state for active tags and input text
|
|
12
|
+
- `onTagRemove` / `onSearchChange` / `onClearAll` — mutation callbacks
|
|
13
|
+
- `limitTags` — `number | "auto"` controlling visible tag count (defaults to `"auto"` for width-based calculation)
|
|
14
14
|
- `renderTag` / `getLimitTagsText` — render customization slots
|
|
15
|
-
- `onSubmit` / `onKeyDown` — keyboard event hooks
|
|
16
15
|
|
|
17
16
|
### `TagSearchInput<T>`
|
|
18
|
-
The main generic component. Renders a styled input
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
17
|
+
The main generic component. Renders a styled input row with:
|
|
18
|
+
- A pinned **search icon** (left)
|
|
19
|
+
- A **middle zone** containing visible tags, an overflow `+N` badge, and the text input
|
|
20
|
+
- A pinned **clear-all button** (right, conditional)
|
|
21
|
+
- A **`HiddenTagsPopup`** anchored below the `+N` badge for overflow tags
|
|
22
|
+
- Off-screen **measurement containers** used by `useAutoLimitTags` to compute visible tag count
|
|
24
23
|
|
|
25
24
|
## Usage Example
|
|
26
25
|
|
|
@@ -28,9 +27,9 @@ The main generic component. Renders a styled input container with:
|
|
|
28
27
|
import { TagSearchInput, TagSearchOption } from "./tag-search-input"
|
|
29
28
|
|
|
30
29
|
const options: TagSearchOption<number>[] = [
|
|
31
|
-
{ label: "
|
|
32
|
-
{ label: "
|
|
33
|
-
{ label: "
|
|
30
|
+
{ label: "Billing", value: 1 },
|
|
31
|
+
{ label: "Networking", value: 2 },
|
|
32
|
+
{ label: "Security", value: 3 },
|
|
34
33
|
]
|
|
35
34
|
|
|
36
35
|
function FilterBar() {
|
|
@@ -42,12 +41,13 @@ function FilterBar() {
|
|
|
42
41
|
tags={tags}
|
|
43
42
|
searchValue={search}
|
|
44
43
|
onSearchChange={setSearch}
|
|
45
|
-
onTagRemove={(
|
|
44
|
+
onTagRemove={(id) => setTags((prev) => prev.filter((t) => t.value !== id))}
|
|
46
45
|
onClearAll={() => { setTags([]); setSearch("") }}
|
|
47
46
|
onSubmit={(val) => console.log("submitted:", val)}
|
|
48
47
|
limitTags="auto"
|
|
49
|
-
placeholder="Filter devices..."
|
|
50
48
|
/>
|
|
51
49
|
)
|
|
52
50
|
}
|
|
53
|
-
```
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Source:** [`tag-search-input.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/tag-search-input.tsx)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<!-- source-hash: eb8b620b4c2ca28727d63d877a8d803a -->
|
|
2
|
+
A multi-select tag picker rendered as a button-triggered Radix UI popover, featuring inline search/filter, checkable tag rows, optional inline tag creation, and per-row delete actions.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `TagSelectDropdown`
|
|
7
|
+
The main exported component. Opens a popover containing:
|
|
8
|
+
- **Search input** — filters options in real time; `Enter` triggers creation when applicable
|
|
9
|
+
- **Option list** — selected tags float to the top, each row shows a check icon when active and a hover-revealed trash icon when `onDelete` is provided
|
|
10
|
+
- **Create row** — appears when the search query doesn't match any existing tag; enforces `maxCreateLength` with an inline error
|
|
11
|
+
|
|
12
|
+
### Interfaces
|
|
13
|
+
|
|
14
|
+
| Export | Purpose |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `TagSelectOption` | `{ id: string; label: string }` — shape of each selectable tag |
|
|
17
|
+
| `TagSelectDropdownProps` | Full prop surface for the dropdown |
|
|
18
|
+
|
|
19
|
+
### Key Props
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Description |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `options` | `TagSelectOption[]` | All available tags |
|
|
24
|
+
| `selectedIds` | `string[]` | IDs of currently selected tags |
|
|
25
|
+
| `onChange` | `(ids: string[]) => void` | Called with next full selection on toggle |
|
|
26
|
+
| `onCreate` | `(name: string) => void` | Enables inline creation row when provided |
|
|
27
|
+
| `onDelete` | `(id: string) => void` | Enables per-row trash button when provided |
|
|
28
|
+
| `maxCreateLength` | `number` | Optional character cap for new tag names |
|
|
29
|
+
| `isCreating` / `isDeleting` | `boolean` | Disables create/delete buttons during async ops |
|
|
30
|
+
|
|
31
|
+
## Usage Example
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import { TagSelectDropdown, TagSelectOption } from './tag-select-dropdown'
|
|
35
|
+
|
|
36
|
+
const ALL_TAGS: TagSelectOption[] = [
|
|
37
|
+
{ id: '1', label: 'Urgent' },
|
|
38
|
+
{ id: '2', label: 'Billing' },
|
|
39
|
+
{ id: '3', label: 'Hardware' },
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
function TagPicker() {
|
|
43
|
+
const [selected, setSelected] = React.useState<string[]>(['1'])
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<TagSelectDropdown
|
|
47
|
+
options={ALL_TAGS}
|
|
48
|
+
selectedIds={selected}
|
|
49
|
+
onChange={setSelected}
|
|
50
|
+
onCreate={(name) => console.log('Create tag:', name)}
|
|
51
|
+
onDelete={(id) => console.log('Delete tag:', id)}
|
|
52
|
+
maxCreateLength={30}
|
|
53
|
+
triggerLabel="Add Tags"
|
|
54
|
+
/>
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
> Selected tag chips are rendered by the caller — this component only manages the picker UI and fires `onChange` with the updated ID array.
|
|
@@ -1,58 +1,40 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 7790074c969073b4d437a54cd0ebac37 -->
|
|
2
|
+
A polymorphic chip/tag UI component with multiple visual variants, sizes, and optional icon/close button support.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`
|
|
7
|
-
- **`
|
|
8
|
-
- **`
|
|
9
|
-
|
|
10
|
-
### Variants
|
|
11
|
-
|
|
12
|
-
| Variant | Use Case |
|
|
13
|
-
|---------|----------|
|
|
14
|
-
| `primary` | Default yellow highlight |
|
|
15
|
-
| `outline` | Dark background with border |
|
|
16
|
-
| `success` | Green success state |
|
|
17
|
-
| `warning` | Yellow warning state |
|
|
18
|
-
| `error` | Red soft error state |
|
|
19
|
-
| `critical` | Solid red critical alert |
|
|
20
|
-
| `grey` | Neutral/muted state |
|
|
21
|
-
|
|
22
|
-
### Props
|
|
23
|
-
|
|
24
|
-
| Prop | Type | Description |
|
|
25
|
-
|------|------|-------------|
|
|
26
|
-
| `label` | `React.ReactNode` | Required tag text or content |
|
|
27
|
-
| `variant` | `TagVariant` | Visual style (default: `primary`) |
|
|
28
|
-
| `icon` | `React.ReactNode` | Optional leading icon |
|
|
29
|
-
| `onClose` | `() => void` | Renders dismiss button when provided |
|
|
30
|
-
| `disabled` | `boolean` | Applies disabled styling and prevents interaction |
|
|
31
|
-
| `labelClassName` | `string` | Additional classes for the label span |
|
|
6
|
+
- **`tagVariants`** — `cva` variant config defining two sizes (`default` 32px, `large` 48px) and nine visual variants: `primary`, `outline`, `success`, `warning`, `error`, `critical`, `grey`, `selected`, `selectedCyan`, and `badge`.
|
|
7
|
+
- **`TagProps`** — Interface extending `HTMLAttributes<HTMLDivElement>` with `label`, optional `icon`, `onClose`, `disabled`, `labelClassName`, and `as` (root element override).
|
|
8
|
+
- **`Tag`** — The main component. Renders an icon slot, a truncating label, and an optional close button with `XmarkCircleIcon`.
|
|
32
9
|
|
|
33
10
|
## Usage Example
|
|
34
11
|
|
|
35
12
|
```typescript
|
|
13
|
+
import { Tag } from "./tag"
|
|
14
|
+
|
|
36
15
|
// Basic tag
|
|
37
16
|
<Tag label="Active" variant="success" />
|
|
38
17
|
|
|
39
|
-
// With icon and close
|
|
18
|
+
// With icon and close handler
|
|
40
19
|
<Tag
|
|
41
|
-
label="
|
|
42
|
-
variant="
|
|
43
|
-
icon={<
|
|
44
|
-
onClose={() =>
|
|
20
|
+
label="Billing"
|
|
21
|
+
variant="outline"
|
|
22
|
+
icon={<BillingIcon />}
|
|
23
|
+
onClose={() => handleRemove("billing")}
|
|
45
24
|
/>
|
|
46
25
|
|
|
26
|
+
// Large selected chip (e.g. tab group)
|
|
27
|
+
<Tag label="Monitoring" variant="selected" size="large" />
|
|
28
|
+
|
|
29
|
+
// Inline tag inside paragraph content (avoids invalid div-in-p hydration)
|
|
30
|
+
<Tag label="Beta" variant="badge" as="span" />
|
|
31
|
+
|
|
47
32
|
// Disabled state
|
|
48
|
-
<Tag
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/>
|
|
33
|
+
<Tag label="Archived" variant="grey" disabled />
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Notes
|
|
53
37
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
</div>
|
|
58
|
-
```
|
|
38
|
+
- The `as` prop accepts `'div'` (default) or `'span'` — use `'span'` when the tag appears inside phrasing content (e.g. `<p>`) to avoid invalid HTML and hydration errors.
|
|
39
|
+
- `disabled` applies pointer-events-none and muted styling via `disabledTagClasses` and sets `aria-disabled`.
|
|
40
|
+
- The close `<button>` calls `e.stopPropagation()` before invoking `onClose`, preventing unintended parent click handlers from firing.
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component
|
|
1
|
+
<!-- source-hash: 9db0eafa66563a94111378c7cb3be888 -->
|
|
2
|
+
A client-side React component for managing a list of string tags with add/remove functionality, keyboard support, and optional tag limits.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
### `TagsInput` (exported function)
|
|
7
|
+
|
|
8
|
+
A controlled input component that renders a text field with an "Add" button, a collection of removable badge tags, and an optional tag counter.
|
|
9
|
+
|
|
10
|
+
**Props (`TagsInputProps`):**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Default | Description |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| `value` | `string[]` | `[]` | Current list of tags (controlled) |
|
|
15
|
+
| `onChange` | `(tags: string[]) => void` | — | Callback fired when tags change |
|
|
16
|
+
| `placeholder` | `string` | `"Add a tag..."` | Input placeholder text |
|
|
17
|
+
| `className` | `string` | — | Wrapper `div` class override |
|
|
18
|
+
| `disabled` | `boolean` | `false` | Disables input and remove buttons |
|
|
19
|
+
| `maxTags` | `number` | — | Maximum number of allowed tags |
|
|
20
|
+
| `inputClassName` | `string` | — | Additional classes for the `Input` |
|
|
21
|
+
| `badgeClassName` | `string` | — | Additional classes for each `Badge` |
|
|
22
|
+
| `label` | `string` | — | Optional label rendered above the input |
|
|
23
|
+
|
|
24
|
+
**Behaviors:**
|
|
25
|
+
- Duplicate tags are silently rejected
|
|
26
|
+
- Tags are added via the **Add** button or by pressing `Enter`
|
|
27
|
+
- Input and Add button are automatically disabled when `maxTags` is reached
|
|
28
|
+
- A `{current}/{max} tags` counter is shown when `maxTags` is set
|
|
11
29
|
|
|
12
30
|
## Usage Example
|
|
13
31
|
|
|
14
32
|
```typescript
|
|
15
|
-
import { TagsInput } from "
|
|
33
|
+
import { TagsInput } from "@/components/ui/tags-input"
|
|
16
34
|
import { useState } from "react"
|
|
17
35
|
|
|
18
|
-
function MyForm() {
|
|
19
|
-
const [tags, setTags] = useState<string[]>([])
|
|
36
|
+
export function MyForm() {
|
|
37
|
+
const [tags, setTags] = useState<string[]>(["typescript", "react"])
|
|
20
38
|
|
|
21
39
|
return (
|
|
22
40
|
<TagsInput
|
|
41
|
+
label="Technologies"
|
|
23
42
|
value={tags}
|
|
24
43
|
onChange={setTags}
|
|
25
|
-
|
|
26
|
-
placeholder="Add a skill..."
|
|
44
|
+
placeholder="Add a technology..."
|
|
27
45
|
maxTags={5}
|
|
28
|
-
className="w-full"
|
|
29
|
-
badgeClassName="bg-blue-100 text-blue-800"
|
|
30
|
-
/>
|
|
31
|
-
)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// With initial tags
|
|
35
|
-
function PrefilledTags() {
|
|
36
|
-
const [technologies, setTechnologies] = useState([
|
|
37
|
-
"React", "TypeScript", "Node.js"
|
|
38
|
-
])
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<TagsInput
|
|
42
|
-
value={technologies}
|
|
43
|
-
onChange={setTechnologies}
|
|
44
|
-
placeholder="Add technology..."
|
|
45
|
-
disabled={false}
|
|
46
46
|
/>
|
|
47
47
|
)
|
|
48
48
|
}
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
**Source:** [`tags-input.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/tags-input.tsx)
|
|
@@ -1,52 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A client-side textarea component
|
|
1
|
+
<!-- source-hash: c699d2d9dc6f460390da123be652dd71 -->
|
|
2
|
+
A client-side textarea component with optional label, error state, and start/end icon adornments. Supports both a bare layout (border on the `<textarea>` itself) and an adorned layout (border lifted onto a `<label>` wrapper) that auto-sizes via CSS `field-sizing: content`.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `Textarea` | `React.ForwardRefExoticComponent` | Main textarea with full design-system styling |
|
|
9
|
+
| `TextareaProps` | `interface` | Extends `React.TextareaHTMLAttributes<HTMLTextAreaElement>` |
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|------|------|-------------|
|
|
11
|
-
| `invalid` | `boolean` | Renders red error border/ring |
|
|
12
|
-
| `label` | `string` | Label text above the textarea |
|
|
13
|
-
| `error` | `string` | Error message below the textarea |
|
|
14
|
-
| `endIcon` | `React.ReactNode` | Icon rendered at the right edge |
|
|
15
|
-
| `endIconAsButton` | `boolean` | Wraps `endIcon` in a styled `<button>` |
|
|
16
|
-
| `endIconButtonProps` | `ButtonHTMLAttributes` | Extra props for the end-icon button |
|
|
11
|
+
### `TextareaProps` notable fields
|
|
17
12
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
| Prop | Type | Default | Description |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| `invalid` | `boolean` | `false` | Renders red error border and ring |
|
|
16
|
+
| `label` | `string` | — | Label rendered above the field |
|
|
17
|
+
| `error` | `string` | — | Error message below the field; also sets invalid state |
|
|
18
|
+
| `startIcon` | `ReactNode` | — | Adornment at the left edge (renders verbatim) |
|
|
19
|
+
| `endIcon` | `ReactNode` | — | Adornment at the right edge |
|
|
20
|
+
| `endIconAsButton` | `boolean` | `false` | Wraps `endIcon` in a styled `<button>` |
|
|
21
|
+
| `endIconButtonProps` | `ButtonHTMLAttributes` | — | Extra props for the end-icon button |
|
|
22
|
+
| `hideBorder` | `boolean` | `false` | Suppresses border/bg/radius (outer container owns chrome) |
|
|
21
23
|
|
|
22
24
|
## Usage Example
|
|
23
25
|
|
|
24
26
|
```typescript
|
|
25
|
-
|
|
27
|
+
import { Textarea } from "@openframe-oss-lib/ui"
|
|
28
|
+
import { SendIcon, PlusIcon } from "lucide-react"
|
|
29
|
+
|
|
30
|
+
// Basic textarea with validation
|
|
26
31
|
<Textarea
|
|
27
32
|
label="Message"
|
|
28
|
-
placeholder="Type your message
|
|
33
|
+
placeholder="Type your message…"
|
|
29
34
|
error="Message is required"
|
|
30
35
|
/>
|
|
31
36
|
|
|
32
|
-
//
|
|
37
|
+
// Composer-style with start + end icons
|
|
33
38
|
<Textarea
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
placeholder="Ask anything…"
|
|
40
|
+
startIcon={<PlusIcon />}
|
|
36
41
|
endIcon={<SendIcon />}
|
|
37
42
|
endIconAsButton
|
|
38
43
|
endIconButtonProps={{
|
|
39
|
-
|
|
44
|
+
"aria-label": "Send message",
|
|
40
45
|
onClick: handleSend,
|
|
41
|
-
disabled:
|
|
46
|
+
disabled: isPending,
|
|
42
47
|
}}
|
|
48
|
+
hideBorder
|
|
43
49
|
/>
|
|
50
|
+
```
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
onChange={(e) => setValue(e.target.value)}
|
|
49
|
-
disabled
|
|
50
|
-
rows={4}
|
|
51
|
-
/>
|
|
52
|
-
```
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
[`textarea.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/textarea.tsx)
|
|
@@ -1,45 +1,52 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Renders a
|
|
1
|
+
<!-- source-hash: f1475c50075c22f933c4db727027b907 -->
|
|
2
|
+
Renders a bordered list of ticket file attachments with optional thumbnail previews, delete, and download actions.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- **`
|
|
6
|
+
### Interfaces
|
|
7
|
+
|
|
8
|
+
- **`TicketAttachment`** — Describes a single attachment entry:
|
|
9
|
+
- `id` — Unique identifier
|
|
10
|
+
- `fileName` — Display name
|
|
11
|
+
- `fileSize` — Human-readable size string
|
|
12
|
+
- `thumbnailSrc?` — Optional image preview URL
|
|
13
|
+
- `onDownload?` — Callback to trigger file download
|
|
14
|
+
- `onDelete?` — When provided, renders a trash button before the download button
|
|
15
|
+
|
|
16
|
+
- **`TicketAttachmentsListProps`** — Component props:
|
|
17
|
+
- `attachments` — Array of `TicketAttachment` objects
|
|
18
|
+
- `className?` — Optional wrapper class override
|
|
19
|
+
- `size?` — `'default'` (full-row layout) | `'compact'` (reduced padding/icons for in-message rendering)
|
|
20
|
+
|
|
21
|
+
### Component
|
|
22
|
+
|
|
23
|
+
- **`TicketAttachmentsList`** — Returns `null` if the attachment array is empty. Renders each attachment as a row with a thumbnail (via `SquareAvatar`) or a generic `FileIcon` fallback, filename, file size, and optional delete/download buttons.
|
|
9
24
|
|
|
10
25
|
## Usage Example
|
|
11
26
|
|
|
12
27
|
```typescript
|
|
13
|
-
import { TicketAttachmentsList
|
|
28
|
+
import { TicketAttachmentsList } from "@openframe-oss-lib/components"
|
|
14
29
|
|
|
15
|
-
const attachments
|
|
30
|
+
const attachments = [
|
|
16
31
|
{
|
|
17
|
-
id: "1",
|
|
32
|
+
id: "att-1",
|
|
18
33
|
fileName: "screenshot.png",
|
|
19
|
-
fileSize: "
|
|
34
|
+
fileSize: "142 KB",
|
|
20
35
|
thumbnailSrc: "https://cdn.example.com/thumb.png",
|
|
21
|
-
onDownload: () =>
|
|
36
|
+
onDownload: () => downloadFile("att-1"),
|
|
37
|
+
onDelete: () => deleteAttachment("att-1"),
|
|
22
38
|
},
|
|
23
39
|
{
|
|
24
|
-
id: "2",
|
|
25
|
-
fileName: "
|
|
26
|
-
fileSize: "
|
|
27
|
-
onDownload: () =>
|
|
40
|
+
id: "att-2",
|
|
41
|
+
fileName: "report.pdf",
|
|
42
|
+
fileSize: "1.2 MB",
|
|
43
|
+
onDownload: () => downloadFile("att-2"),
|
|
28
44
|
},
|
|
29
45
|
]
|
|
30
46
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
)
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Notes
|
|
42
|
-
|
|
43
|
-
- Returns `null` when the `attachments` array is empty — safe to render unconditionally
|
|
44
|
-
- Long filenames are truncated with CSS and exposed via the `title` attribute for full visibility on hover
|
|
45
|
-
- Download button only renders when `onDownload` is provided
|
|
47
|
+
// Full-row layout (e.g. ticket detail panel)
|
|
48
|
+
<TicketAttachmentsList attachments={attachments} />
|
|
49
|
+
|
|
50
|
+
// Compact layout (e.g. inside a conversation message)
|
|
51
|
+
<TicketAttachmentsList attachments={attachments} size="compact" />
|
|
52
|
+
```
|
|
@@ -1,56 +1,51 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A collapsible ticket information panel that displays key ticket metadata (organization, assignee, device, status) in a header row, with an expandable section revealing
|
|
1
|
+
<!-- source-hash: 7ac50b47361449080e2ba3874b959c5f -->
|
|
2
|
+
A collapsible ticket information panel that displays key ticket metadata (organization, assignee, device, status) in a compact header row, with an expandable section revealing description, attachments, tags, and notes.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `TicketInfoSection`
|
|
7
|
-
|
|
7
|
+
The main exported component rendering a two-state panel:
|
|
8
|
+
- **Collapsed:** Header grid showing organization avatar, assignee dropdown (or unassigned state), device info, status tag, and expand toggle.
|
|
9
|
+
- **Expanded:** Reveals created date, markdown description, file attachments, tag chips, and a full notes section with add/edit/delete support.
|
|
8
10
|
|
|
9
11
|
### `InfoCell` (internal)
|
|
10
|
-
|
|
12
|
+
A small layout primitive rendering a value + label pair with an optional icon. Renders the value as a clickable `<button>` when an `onClick` handler is provided.
|
|
11
13
|
|
|
12
14
|
### `TicketInfoSectionProps`
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
| `organization` | `{ name, imageSrc? }` | Org name and avatar |
|
|
18
|
-
| `device` | `{ name, icon?, onClick? }` | Device name with optional navigation |
|
|
19
|
-
| `status` | `string` | Rendered via `TicketStatusTag` |
|
|
20
|
-
| `assigned` | `AssignedConfig` | Assignee dropdown config |
|
|
21
|
-
| `expanded` | `boolean` | Controls expanded section visibility |
|
|
22
|
-
| `onExpand` | `() => void` | Expand/collapse toggle handler |
|
|
23
|
-
| `description` | `string` | Markdown/HTML content |
|
|
24
|
-
| `attachments` | `TicketAttachment[]` | Downloadable file list |
|
|
25
|
-
| `tags` | `string[]` | Label tags |
|
|
26
|
-
| `notes` | `TicketNote[]` | Notes with add/edit/delete handlers |
|
|
15
|
+
The full prop interface, including:
|
|
16
|
+
- `statusOptions` / `onStatusSelect` / `isStatusPending` — inline status changer
|
|
17
|
+
- `assigned` — nested object powering the `AssigneeDropdown`
|
|
18
|
+
- `attachments`, `tags`, `notes`, `onAddNote`, `onEditNote`, `onDeleteNote` — expanded-view content
|
|
27
19
|
|
|
28
20
|
## Usage Example
|
|
29
21
|
|
|
30
22
|
```typescript
|
|
31
23
|
import { TicketInfoSection } from "./ticket-info-section"
|
|
32
24
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
25
|
+
<TicketInfoSection
|
|
26
|
+
organization={{ name: "Acme Corp", imageSrc: "/logos/acme.png" }}
|
|
27
|
+
device={{ name: "MacBook Pro", onClick: () => router.push("/devices/123") }}
|
|
28
|
+
status="open"
|
|
29
|
+
statusLabel="Open"
|
|
30
|
+
statusOptions={[
|
|
31
|
+
{ id: "open", label: "Open" },
|
|
32
|
+
{ id: "closed", label: "Closed" },
|
|
33
|
+
]}
|
|
34
|
+
onStatusSelect={(id) => updateStatus(id)}
|
|
35
|
+
assigned={{
|
|
36
|
+
currentAssignee: { id: "u1", name: "Jane Smith" },
|
|
37
|
+
options: assigneeList,
|
|
38
|
+
onAssign: (userId) => assignTicket(userId),
|
|
39
|
+
}}
|
|
40
|
+
expanded={isExpanded}
|
|
41
|
+
onExpand={() => setIsExpanded((v) => !v)}
|
|
42
|
+
description="## Issue\nUser cannot log in after password reset."
|
|
43
|
+
tags={["network", "priority-high"]}
|
|
44
|
+
notes={ticketNotes}
|
|
45
|
+
onAddNote={(text) => addNote(text)}
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Source
|
|
50
|
+
|
|
51
|
+
[`ticket-info-section.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-info-section.tsx)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<!-- source-hash: af0402d9923c0e0c41315794a7eff4a9 -->
|
|
2
|
+
A client-side React component that renders a single row in a ticket status configuration UI, supporting both system-defined and custom ticket statuses with drag-and-drop reordering, color picking, and delete controls.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `TicketStatusConfigRow`
|
|
7
|
+
The primary exported component. Renders a row containing:
|
|
8
|
+
- **Drag handle** — interactive for custom rows, decorative/disabled for system rows
|
|
9
|
+
- **Name input** — editable for custom, read-only for system rows
|
|
10
|
+
- **Color controls** — `ColorPresetSelect` and `ColorPickerInput` shown only for custom rows with color support
|
|
11
|
+
- **Live preview** — `TicketStatusTag` reflecting current name and color
|
|
12
|
+
- **Action button** — info tooltip icon for system rows; delete button (with optional disabled state tooltip) for custom rows
|
|
13
|
+
|
|
14
|
+
### `WithLeftTooltip` (internal)
|
|
15
|
+
A touch-aware tooltip wrapper that ensures only one tooltip is open at a time via a module-level `dismissOpenTooltip` ref. Renders children unchanged when no `content` is provided.
|
|
16
|
+
|
|
17
|
+
### `TicketStatusConfigRowProps`
|
|
18
|
+
The full props interface, key fields:
|
|
19
|
+
|
|
20
|
+
| Prop | Description |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `variant` | `'system'` or `'custom'` — controls editability and available actions |
|
|
23
|
+
| `statusKey` | Canonical key forwarded to `TicketStatusTag` |
|
|
24
|
+
| `onColorChange` | Callback receiving `{ color, preset? }` |
|
|
25
|
+
| `dragHandleProps` / `dragHandleAttributes` | From `@dnd-kit/core` for drag-and-drop |
|
|
26
|
+
| `deleteDisabledReason` | Shown as tooltip when delete is disabled |
|
|
27
|
+
| `isDragging` | Applies visual feedback during drag |
|
|
28
|
+
|
|
29
|
+
## Usage Example
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { TicketStatusConfigRow } from './ticket-status-config-row'
|
|
33
|
+
|
|
34
|
+
// Custom row with color picker and delete
|
|
35
|
+
<TicketStatusConfigRow
|
|
36
|
+
variant="custom"
|
|
37
|
+
statusKey="row-uuid-123"
|
|
38
|
+
name={statusName}
|
|
39
|
+
onNameChange={setStatusName}
|
|
40
|
+
color={color}
|
|
41
|
+
presetKey={preset}
|
|
42
|
+
onColorChange={({ color, preset }) => {
|
|
43
|
+
setColor(color)
|
|
44
|
+
setPreset(preset)
|
|
45
|
+
}}
|
|
46
|
+
onDelete={handleDelete}
|
|
47
|
+
deleteDisabled={isOnlyStatus}
|
|
48
|
+
deleteDisabledReason="At least one status is required"
|
|
49
|
+
dragHandleProps={listeners}
|
|
50
|
+
dragHandleAttributes={attributes}
|
|
51
|
+
isDragging={isDragging}
|
|
52
|
+
/>
|
|
53
|
+
|
|
54
|
+
// System row (read-only, no delete)
|
|
55
|
+
<TicketStatusConfigRow
|
|
56
|
+
variant="system"
|
|
57
|
+
statusKey="RESOLVED"
|
|
58
|
+
name="Resolved"
|
|
59
|
+
systemTooltip="Built-in status — cannot be removed"
|
|
60
|
+
systemTagVariant="outline"
|
|
61
|
+
/>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Source
|
|
65
|
+
|
|
66
|
+
[`ticket-status-config-row.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ticket-status-config-row.tsx)
|