@flamingo-stack/openframe-frontend-core 0.0.481 → 0.0.482-snapshot.20260725230219
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-FP4H6Y5O.js → chunk-3VMCJK7A.js} +3 -3
- package/dist/{chunk-OWMLWJQY.cjs → chunk-5YFXUXOV.cjs} +2432 -1502
- package/dist/chunk-5YFXUXOV.cjs.map +1 -0
- package/dist/{chunk-4SMRQ4SN.js → chunk-6U7HIZSW.js} +3 -3
- package/dist/{chunk-MMCBQJKE.cjs → chunk-AZZQLEKY.cjs} +11 -11
- package/dist/{chunk-MMCBQJKE.cjs.map → chunk-AZZQLEKY.cjs.map} +1 -1
- package/dist/{chunk-OZJN54R5.cjs → chunk-CG5OX6WF.cjs} +37 -37
- package/dist/{chunk-OZJN54R5.cjs.map → chunk-CG5OX6WF.cjs.map} +1 -1
- package/dist/{chunk-LK623WCC.cjs → chunk-DYLIBE6I.cjs} +9 -9
- package/dist/{chunk-LK623WCC.cjs.map → chunk-DYLIBE6I.cjs.map} +1 -1
- package/dist/{chunk-AN47EIIJ.cjs → chunk-FEQW64Q5.cjs} +59 -59
- package/dist/{chunk-AN47EIIJ.cjs.map → chunk-FEQW64Q5.cjs.map} +1 -1
- package/dist/{chunk-66BNAFO6.js → chunk-FIRIO2NB.js} +4 -4
- package/dist/{chunk-MGKCS6KS.js → chunk-GWJNTDXR.js} +2 -2
- package/dist/{chunk-SASR7SK5.js → chunk-GZK7FWJJ.js} +20 -4
- package/dist/chunk-GZK7FWJJ.js.map +1 -0
- package/dist/{chunk-DEHZ5CTC.js → chunk-HAJQWSSU.js} +2 -2
- package/dist/{chunk-JUJY3HQS.cjs → chunk-JBC5DAI5.cjs} +19 -19
- package/dist/{chunk-JUJY3HQS.cjs.map → chunk-JBC5DAI5.cjs.map} +1 -1
- package/dist/{chunk-VTSRDC4W.js → chunk-JKRX3JHT.js} +2 -2
- package/dist/{chunk-M7O74OWG.cjs → chunk-KDXEKD3K.cjs} +31 -31
- package/dist/{chunk-M7O74OWG.cjs.map → chunk-KDXEKD3K.cjs.map} +1 -1
- package/dist/{chunk-Y3Y2DLNO.js → chunk-LT2PU6SK.js} +3 -3
- package/dist/{chunk-R5WJJL4V.js → chunk-RDCAJDX7.js} +5 -5
- package/dist/{chunk-N2JZ33V7.cjs → chunk-RFMH6MLM.cjs} +26 -26
- package/dist/{chunk-N2JZ33V7.cjs.map → chunk-RFMH6MLM.cjs.map} +1 -1
- package/dist/{chunk-BBUEY73L.js → chunk-RJ4OJWT5.js} +6269 -5339
- package/dist/chunk-RJ4OJWT5.js.map +1 -0
- package/dist/{chunk-G3UN2DXU.cjs → chunk-STYA77PH.cjs} +20 -4
- package/dist/chunk-STYA77PH.cjs.map +1 -0
- package/dist/{chunk-PSPWT2Q5.js → chunk-T2S7A5IU.js} +4 -4
- package/dist/{chunk-INDFIVDV.cjs → chunk-UAFJX7YV.cjs} +12 -12
- package/dist/{chunk-INDFIVDV.cjs.map → chunk-UAFJX7YV.cjs.map} +1 -1
- package/dist/{chunk-H6DFCF44.cjs → chunk-UO7TF67V.cjs} +82 -82
- package/dist/{chunk-H6DFCF44.cjs.map → chunk-UO7TF67V.cjs.map} +1 -1
- package/dist/{chunk-LNKWY74S.cjs → chunk-UTIW7O7R.cjs} +5 -5
- package/dist/{chunk-LNKWY74S.cjs.map → chunk-UTIW7O7R.cjs.map} +1 -1
- package/dist/{chunk-2DIOV7BR.js → chunk-WIITTL5I.js} +4 -4
- package/dist/{chunk-ZRANZNEA.js → chunk-Y37XYIWA.js} +2 -2
- package/dist/{chunk-ZV6E3U3C.cjs → chunk-ZN56E4FX.cjs} +30 -30
- package/dist/{chunk-ZV6E3U3C.cjs.map → chunk-ZN56E4FX.cjs.map} +1 -1
- 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 +25 -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 +44 -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-FP4H6Y5O.js.map → chunk-3VMCJK7A.js.map} +0 -0
- /package/dist/{chunk-4SMRQ4SN.js.map → chunk-6U7HIZSW.js.map} +0 -0
- /package/dist/{chunk-66BNAFO6.js.map → chunk-FIRIO2NB.js.map} +0 -0
- /package/dist/{chunk-MGKCS6KS.js.map → chunk-GWJNTDXR.js.map} +0 -0
- /package/dist/{chunk-DEHZ5CTC.js.map → chunk-HAJQWSSU.js.map} +0 -0
- /package/dist/{chunk-VTSRDC4W.js.map → chunk-JKRX3JHT.js.map} +0 -0
- /package/dist/{chunk-Y3Y2DLNO.js.map → chunk-LT2PU6SK.js.map} +0 -0
- /package/dist/{chunk-R5WJJL4V.js.map → chunk-RDCAJDX7.js.map} +0 -0
- /package/dist/{chunk-PSPWT2Q5.js.map → chunk-T2S7A5IU.js.map} +0 -0
- /package/dist/{chunk-2DIOV7BR.js.map → chunk-WIITTL5I.js.map} +0 -0
- /package/dist/{chunk-ZRANZNEA.js.map → chunk-Y37XYIWA.js.map} +0 -0
|
@@ -1,25 +1,24 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A client-side React component
|
|
1
|
+
<!-- source-hash: 9d7d8b6fd8b5c3617d4c8d6239c931f0 -->
|
|
2
|
+
A client-side React component providing a drag-and-drop / click-to-upload image input with preview, validation, and loading states, wrapped in a `FieldWrapper` for consistent field labeling and error display.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- **`formatSize(bytes)`** — Utility that formats a byte count as a human-readable `KB`/`MB` string.
|
|
9
|
-
- **`matchesAccept(file, accept)`** — Validates a `File` against an `accept` string (MIME types and extensions).
|
|
6
|
+
### `ImageUploader` (main export)
|
|
7
|
+
The primary component. Renders an empty dropzone or image preview depending on whether `value` is set.
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
**Key behaviors:**
|
|
10
|
+
- **Empty state** — shows a labeled dropzone with click, keyboard (`Enter`/`Space`), and drag-and-drop support
|
|
11
|
+
- **Preview state** — displays the uploaded image with overlay action buttons (replace / remove)
|
|
12
|
+
- **Loading state** — renders a spinner overlay (on preview) or centered spinner (on empty dropzone)
|
|
13
|
+
- **Validation** — enforces `accept` MIME/extension matching and `maxSize` before calling `onChange`
|
|
14
|
+
- **Auth-aware image rendering** — uses `useAuthedImageSrc` to resolve gateway URLs requiring `Authorization` headers
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
| `maxSize` | `number` | Max file size in bytes. Default: 25 MB |
|
|
20
|
-
| `aspectRatio` | `string` | CSS aspect-ratio override (e.g. `"16 / 9"`) |
|
|
21
|
-
| `loading` | `boolean` | Shows spinner overlay and disables interaction |
|
|
22
|
-
| `error` | `string` | External error message (internal validation errors take precedence) |
|
|
16
|
+
### `ActionIconButton` (internal)
|
|
17
|
+
Small icon button rendered over the image preview for replace/remove actions. Propagation-safe (`e.stopPropagation()`).
|
|
18
|
+
|
|
19
|
+
### Helpers (internal)
|
|
20
|
+
- `formatSize(bytes)` — formats byte counts as `KB`/`MB` strings
|
|
21
|
+
- `matchesAccept(file, accept)` — validates a `File` against an `accept` attribute pattern
|
|
23
22
|
|
|
24
23
|
## Usage Example
|
|
25
24
|
|
|
@@ -27,12 +26,15 @@ A client-side React component that renders a drag-and-drop / click-to-upload ima
|
|
|
27
26
|
import { ImageUploader } from "@/components/ui/image-uploader"
|
|
28
27
|
import { useState } from "react"
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
function CoverImageField() {
|
|
31
30
|
const [imageUrl, setImageUrl] = useState<string | undefined>()
|
|
31
|
+
const [uploading, setUploading] = useState(false)
|
|
32
32
|
|
|
33
33
|
const handleChange = async (file: File) => {
|
|
34
|
+
setUploading(true)
|
|
34
35
|
const url = await uploadToStorage(file) // your upload logic
|
|
35
36
|
setImageUrl(url)
|
|
37
|
+
setUploading(false)
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
return (
|
|
@@ -40,14 +42,29 @@ export function CoverImageField() {
|
|
|
40
42
|
value={imageUrl}
|
|
41
43
|
onChange={handleChange}
|
|
42
44
|
onRemove={() => setImageUrl(undefined)}
|
|
43
|
-
aspectRatio="16 / 9"
|
|
44
|
-
maxSize={5 * 1024 * 1024} // 5 MB
|
|
45
45
|
fieldLabel="Cover Image"
|
|
46
|
-
label="Upload a cover photo"
|
|
47
46
|
description="Click or drag and drop"
|
|
47
|
+
maxSize={10 * 1024 * 1024} // 10 MB
|
|
48
|
+
aspectRatio="16 / 9"
|
|
49
|
+
loading={uploading}
|
|
48
50
|
/>
|
|
49
51
|
)
|
|
50
52
|
}
|
|
51
53
|
```
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
## Props Summary
|
|
56
|
+
|
|
57
|
+
| Prop | Type | Default | Description |
|
|
58
|
+
|---|---|---|---|
|
|
59
|
+
| `value` | `string` | — | Current image URL; presence triggers preview state |
|
|
60
|
+
| `onChange` | `(file: File) => void` | required | Called after validation passes |
|
|
61
|
+
| `onRemove` | `() => void` | — | Shows remove button when provided |
|
|
62
|
+
| `maxSize` | `number` | `25MB` | Max file size in bytes |
|
|
63
|
+
| `accept` | `string` | `"image/*"` | MIME types or extensions |
|
|
64
|
+
| `aspectRatio` | `string` | — | CSS aspect-ratio (overrides fixed height) |
|
|
65
|
+
| `objectFit` | `string` | `"cover"` | Preview image fit mode |
|
|
66
|
+
| `loading` | `boolean` | `false` | Spinner overlay + disables interaction |
|
|
67
|
+
| `disabled` | `boolean` | `false` | Disables all interaction |
|
|
68
|
+
| `dropzoneClassName` | `string` | — | Override dropzone sizing/styles |
|
|
69
|
+
|
|
70
|
+
**Source:** [`image-uploader.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/image-uploader.tsx)
|
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Central barrel export file for the
|
|
1
|
+
<!-- source-hash: f088145dd2b6ba6e8e59ee78bce57fe6 -->
|
|
2
|
+
Central barrel export file for the `ui-kit` component library, re-exporting all UI components organized by category for consumption by other packages or applications.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| **Media / Upload** | `FileUpload`, `ImageUploader`, `MediaTypeSelector` |
|
|
22
|
-
| **Misc** | `FloatingTooltip`, `TruncateText`, `CircularProgress`, `Skeleton`, `Slider` |
|
|
6
|
+
Exports are grouped into the following categories:
|
|
7
|
+
|
|
8
|
+
- **UI Components** — form inputs (`input`, `select`, `checkbox`, `textarea`, `date-picker`), display primitives (`button`, `card`, `badge`, `label`), and specialized inputs (`tags-input`, `phone-input`, `password-input`, `markdown-editor`)
|
|
9
|
+
- **Layout** — `modal`, `modal-v2`, `dialog`, `drawer`, `sheet`, `alert-dialog`, `aspect-ratio`, `separator`
|
|
10
|
+
- **Navigation** — `accordion`, `breadcrumb`, `dropdown-menu`, `navigation-menu`, `tabs`, `tab-navigation`
|
|
11
|
+
- **Feedback** — `alert`, `toaster`, `progress`, `skeleton`, `status-badge`, `status-indicator`
|
|
12
|
+
- **Table** — `Table`, `TableRow`, `TableCell`, `TableHeader`, `TableEmptyState`, `TableTimestampCell`, `TableDescriptionCell` with full TypeScript types
|
|
13
|
+
- **QueryReportTable** — `QueryReportTable`, `deriveColumns`, `exportToCSV` for dynamic osquery result rendering
|
|
14
|
+
- **DataTable** — headless TanStack Table-based replacement for legacy `Table`
|
|
15
|
+
- **Pagination** — `CursorPagination`, `CursorPaginationSimple`
|
|
16
|
+
- **Chat & Layout** — `chat`, `list-page-layout`, `page-container`, `page-heading`, `page-layout`, `article-detail-layout`
|
|
17
|
+
- **Search & Filters** — `search-input`, `filter-list`, `filter-checkbox-item`, `tag-key-value-filter`, `hidden-tags-popup`
|
|
18
|
+
- **Ticket** — `ticket-status-tag`, `ticket-note-card`, `ticket-attachments-list`, `assignee-dropdown`
|
|
19
|
+
- **Markdown** — `markdown-editor`, `simple-markdown-renderer`, `RichMarkdownRenderer`
|
|
20
|
+
- **File Upload** — `file-upload`, `image-uploader`
|
|
23
21
|
|
|
24
22
|
## Usage Example
|
|
25
23
|
|
|
@@ -27,26 +25,30 @@ Organized into the following categories:
|
|
|
27
25
|
import {
|
|
28
26
|
Button,
|
|
29
27
|
Input,
|
|
30
|
-
Select,
|
|
31
28
|
Table,
|
|
32
29
|
TableRow,
|
|
33
30
|
TableCell,
|
|
34
31
|
CursorPagination,
|
|
35
|
-
StatusBadge,
|
|
36
32
|
QueryReportTable,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
function DeviceTable({ data, pagination }) {
|
|
41
|
-
const columns = deriveColumns(data)
|
|
33
|
+
RichMarkdownRenderer,
|
|
34
|
+
StatusBadge,
|
|
35
|
+
} from '@openframe/ui-kit'
|
|
42
36
|
|
|
37
|
+
// Use any exported component directly
|
|
38
|
+
function MyPage() {
|
|
43
39
|
return (
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
|
|
40
|
+
<div>
|
|
41
|
+
<Input placeholder="Search..." />
|
|
42
|
+
<Button variant="primary">Submit</Button>
|
|
43
|
+
<StatusBadge status="active" />
|
|
44
|
+
<CursorPagination {...paginationProps} />
|
|
45
|
+
</div>
|
|
48
46
|
)
|
|
49
47
|
}
|
|
50
48
|
```
|
|
51
49
|
|
|
52
|
-
> **Note:** This file is marked `"use client"
|
|
50
|
+
> **Note:** This file is marked `"use client"`, meaning all exported components are React Client Components compatible with Next.js App Router.
|
|
51
|
+
|
|
52
|
+
## Source
|
|
53
|
+
|
|
54
|
+
[`index.ts`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/index.ts)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!-- source-hash: 54d3ba316f38a78a9a5a24c3b644ec8d -->
|
|
2
|
+
A responsive card component that displays a lead section alongside two stat cells in a structured row layout, adapting from a stacked column on mobile to a horizontal row on desktop.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `InfoCardRow` | Component | Main card row with a lead section and two stat cells |
|
|
9
|
+
| `StatCell` | Internal Component | Individual stat cell rendering title, caption, and optional icon |
|
|
10
|
+
| `InfoCardRowSection` | Interface | Shape for each section: `title`, `caption`, and optional `icon` |
|
|
11
|
+
| `InfoCardRowProps` | Interface | Props for `InfoCardRow`: `lead`, `stats` (tuple of 2), `className` |
|
|
12
|
+
|
|
13
|
+
## Usage Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { InfoCardRow } from './info-card-row'
|
|
17
|
+
import { ServerIcon, CpuIcon, MemoryIcon } from './icons'
|
|
18
|
+
|
|
19
|
+
export function DeviceStats() {
|
|
20
|
+
return (
|
|
21
|
+
<InfoCardRow
|
|
22
|
+
lead={{
|
|
23
|
+
title: 'DESKTOP-ABC123',
|
|
24
|
+
caption: 'Windows 11 Pro',
|
|
25
|
+
icon: <ServerIcon />,
|
|
26
|
+
}}
|
|
27
|
+
stats={[
|
|
28
|
+
{
|
|
29
|
+
title: 'CPU Usage',
|
|
30
|
+
caption: '42%',
|
|
31
|
+
icon: <CpuIcon />,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: 'Memory',
|
|
35
|
+
caption: '8.2 GB',
|
|
36
|
+
icon: <MemoryIcon />,
|
|
37
|
+
},
|
|
38
|
+
]}
|
|
39
|
+
className="my-4"
|
|
40
|
+
/>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Layout Behavior
|
|
46
|
+
|
|
47
|
+
- **Mobile:** Lead section stacks above the two stat cells (column direction); icons render inline next to captions
|
|
48
|
+
- **Desktop (`md:`):** All three sections sit side-by-side (row direction); icons float to the right of text
|
|
49
|
+
|
|
50
|
+
**Source:** [`packages/ui/info-card-row.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/packages/ui/info-card-row.tsx)
|
|
@@ -1,41 +1,48 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 5f25c6a1147c0ccc8f2e18178114f0c9 -->
|
|
2
|
+
A composable card component for displaying structured key-value metadata, optional progress bars, and a footer section — used for surfacing device, asset, or service detail summaries in the OpenFrame UI.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `InfoCard` | Component | Root card with header, items, progress, and footer |
|
|
9
|
+
| `InfoCardData` | Interface | Data shape for the full card |
|
|
10
|
+
| `InfoCardFooterData` | Interface | Footer section with icon, text, logo, and link |
|
|
11
|
+
| `InfoCardValueRow` | Internal Component | Single label–value row with optional copy-to-clipboard |
|
|
12
|
+
| `InfoCardFooter` | Internal Component | Sticky footer with divider, icon, logo, and external link |
|
|
13
|
+
|
|
14
|
+
**Sub-features:**
|
|
15
|
+
- `copyable` items show a `Copy01Icon` that toggles to `CheckIcon` on success via `useCopyToClipboard`
|
|
16
|
+
- `value` accepts `string | string[]` — arrays render as stacked rows sharing the same label
|
|
17
|
+
- `progress` delegates to `ProgressBar` with warning/critical thresholds and inverted mode
|
|
18
|
+
- Footer `link` auto-strips the protocol for display if no custom label is provided
|
|
10
19
|
|
|
11
20
|
## Usage Example
|
|
12
21
|
|
|
13
22
|
```typescript
|
|
14
|
-
import { InfoCard } from '
|
|
23
|
+
import { InfoCard } from '@openframe/ui'
|
|
15
24
|
|
|
16
|
-
// Basic usage with copyable values and progress bar
|
|
17
25
|
<InfoCard
|
|
18
26
|
data={{
|
|
19
|
-
title:
|
|
20
|
-
subtitle:
|
|
21
|
-
icon: <ServerIcon />,
|
|
27
|
+
title: 'workstation-42',
|
|
28
|
+
subtitle: 'macOS Sonoma 14.5',
|
|
22
29
|
items: [
|
|
23
|
-
{ label:
|
|
24
|
-
{ label:
|
|
30
|
+
{ label: 'IP', value: '192.168.1.10', copyable: true },
|
|
31
|
+
{ label: 'Tags', value: ['managed', 'prod'] },
|
|
25
32
|
],
|
|
26
33
|
progress: {
|
|
27
|
-
value:
|
|
34
|
+
value: 78,
|
|
28
35
|
warningThreshold: 70,
|
|
29
36
|
criticalThreshold: 90,
|
|
30
|
-
|
|
37
|
+
},
|
|
38
|
+
footer: {
|
|
39
|
+
text: 'CrowdStrike Falcon',
|
|
40
|
+
link: { href: 'https://falcon.crowdstrike.com' },
|
|
31
41
|
},
|
|
32
42
|
}}
|
|
33
|
-
className="max-w-sm"
|
|
34
43
|
/>
|
|
35
44
|
```
|
|
36
45
|
|
|
37
|
-
##
|
|
46
|
+
## Source
|
|
38
47
|
|
|
39
|
-
-
|
|
40
|
-
- The progress bar supports `inverted` mode where high values are treated as healthy (green) and low values as critical (red)
|
|
41
|
-
- Copy state resets automatically via the `useCopyToClipboard` hook, toggling between a copy and check icon
|
|
48
|
+
[`info-card.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/info-card.tsx)
|
|
@@ -1,40 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: baa2e6475e99010ef2b5ec8a6a1c5209 -->
|
|
2
|
+
A client-side React component that renders a labeled row with a dotted/line separator between a label and its value, optionally accompanied by an icon.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
6
|
### `InfoRow`
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
A presentational component that displays a key-value pair in a horizontal layout with a flexible spacer line between them.
|
|
9
|
+
|
|
10
|
+
**Props (`InfoRowProps`):**
|
|
8
11
|
|
|
9
12
|
| Prop | Type | Required | Description |
|
|
10
13
|
|------|------|----------|-------------|
|
|
11
|
-
| `label` | `string` | ✅ | Left-
|
|
12
|
-
| `value` | `string` | ✅ | Right-
|
|
14
|
+
| `label` | `string` | ✅ | Left-side label text |
|
|
15
|
+
| `value` | `string` | ✅ | Right-side value text |
|
|
13
16
|
| `icon` | `React.ReactNode` | ❌ | Optional icon rendered inline after the value |
|
|
14
17
|
|
|
15
18
|
## Usage Example
|
|
16
19
|
|
|
17
20
|
```typescript
|
|
18
21
|
import { InfoRow } from "@/components/info-row"
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
import { CheckCircleIcon } from "lucide-react"
|
|
23
|
+
|
|
24
|
+
// Basic usage
|
|
25
|
+
<InfoRow label="Status" value="Active" />
|
|
26
|
+
|
|
27
|
+
// With an icon
|
|
28
|
+
<InfoRow
|
|
29
|
+
label="Connection"
|
|
30
|
+
value="Online"
|
|
31
|
+
icon={<CheckCircleIcon className="w-4 h-4 text-green-500" />}
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
// Stacked in a detail panel
|
|
35
|
+
<div className="flex flex-col gap-2">
|
|
36
|
+
<InfoRow label="Hostname" value="workstation-01.local" />
|
|
37
|
+
<InfoRow label="OS" value="Windows 11 Pro" />
|
|
38
|
+
<InfoRow label="Last Seen" value="2 minutes ago" />
|
|
39
|
+
</div>
|
|
34
40
|
```
|
|
35
41
|
|
|
36
|
-
##
|
|
42
|
+
## Notes
|
|
37
43
|
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
44
|
+
- Marked as `"use client"` — must run in a browser context.
|
|
45
|
+
- Both label and value truncate with ellipsis (`text-ellipsis`) on overflow, making it safe for long strings in constrained layouts.
|
|
46
|
+
- The separator line (`flex-1 bg-ods-border h-px`) expands to fill available space, creating a consistent aligned layout regardless of label/value length.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- source-hash: 9804263cca4b069c3d9eafabbce30ff3 -->
|
|
2
|
+
A labeled info card component that renders a vertical stack of `label ── value` rows inside a bordered card, supporting plain text, assignee pickers, status dropdowns, and arbitrary custom content as row values.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Exported Types
|
|
7
|
+
|
|
8
|
+
| Type | Description |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `InfoSectionTextValue` | Plain text value with optional avatar, icon, click handler, or link |
|
|
11
|
+
| `InfoSectionAssigneeValue` | Inline assignee picker (wraps `AssigneeDropdownProps`) |
|
|
12
|
+
| `InfoSectionStatusValue` | Inline status dropdown (wraps `TicketStatusTagProps`) |
|
|
13
|
+
| `InfoSectionCustomValue` | Arbitrary `React.ReactNode` content |
|
|
14
|
+
| `InfoSectionValue` | Union of all four value types |
|
|
15
|
+
| `InfoSectionRow` | Single row with `id`, `label`, and `value` |
|
|
16
|
+
| `InfoSectionProps` | Component props: optional `title`, `rows`, `className` |
|
|
17
|
+
|
|
18
|
+
### Internal Components
|
|
19
|
+
|
|
20
|
+
- **`TextValue`** — Renders text values with optional leading icon, trailing avatar, link (`href`), or button (`onClick`)
|
|
21
|
+
- **`RowValue`** — Switches on `value.type` to delegate to `AssigneeDropdown`, `TicketStatusTag`, `TextValue`, or custom content
|
|
22
|
+
|
|
23
|
+
### Main Export
|
|
24
|
+
|
|
25
|
+
- **`InfoSection`** — The card container; renders an optional caption and maps `rows` into label/divider/value triplets
|
|
26
|
+
|
|
27
|
+
## Usage Example
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { InfoSection } from './info-section'
|
|
31
|
+
import { UserIcon } from 'lucide-react'
|
|
32
|
+
|
|
33
|
+
<InfoSection
|
|
34
|
+
title="Ticket Details"
|
|
35
|
+
rows={[
|
|
36
|
+
{
|
|
37
|
+
id: 'status',
|
|
38
|
+
label: 'Status',
|
|
39
|
+
value: { type: 'status', status: 'open', options: [...], onSelect: handleSelect },
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'assignee',
|
|
43
|
+
label: 'Assignee',
|
|
44
|
+
value: { type: 'assignee', options: [...], onSelect: handleAssign },
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'org',
|
|
48
|
+
label: 'Organization',
|
|
49
|
+
value: {
|
|
50
|
+
text: 'Acme Corp',
|
|
51
|
+
imageSrc: '/acme.png',
|
|
52
|
+
icon: <UserIcon />,
|
|
53
|
+
href: '/orgs/acme',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: 'notes',
|
|
58
|
+
label: 'Notes',
|
|
59
|
+
value: { type: 'custom', content: <NotesBadge count={3} /> },
|
|
60
|
+
},
|
|
61
|
+
]}
|
|
62
|
+
/>
|
|
63
|
+
```
|
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A client-side input component
|
|
1
|
+
<!-- source-hash: ca32f59bb9a8668d4454172d11f1c7cd -->
|
|
2
|
+
A client-side React input component with support for labels, validation states, adornments, loading indicators, and range slider rendering.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
- **`Input`** —
|
|
7
|
-
- **`InputProps`** — Interface
|
|
8
|
-
- **`invalidBorderClasses`** — Tailwind
|
|
9
|
-
- **`FieldWrapper`** — Wraps the input with
|
|
10
|
-
|
|
11
|
-
## Behavior Notes
|
|
12
|
-
|
|
13
|
-
- **Range type** renders a styled slider without borders or adornments; still supports `label` via `FieldWrapper`
|
|
14
|
-
- **`loading`** replaces `endAdornment` with a spinning `Loader2` icon
|
|
15
|
-
- **`isInvalid`** is derived from either the `invalid` prop or a truthy `error` string
|
|
16
|
-
- Autofill background override applied via `-webkit-box-shadow` hack for consistent theming
|
|
6
|
+
- **`Input`** — A `forwardRef` component extending `React.InputHTMLAttributes<HTMLInputElement>` with additional props for UI composition and validation feedback.
|
|
7
|
+
- **`InputProps`** — Interface extending native input attributes with fields: `invalid`, `startAdornment`, `endAdornment`, `label`, `error`, `errorVariant`, and `loading`.
|
|
8
|
+
- **`invalidBorderClasses`** — Internal map of Tailwind border classes applied per invalid variant (`"error"` | `"warning"`).
|
|
9
|
+
- **`FieldWrapper`** — Wraps the input with a label and status message when `label` or `error` props are provided.
|
|
17
10
|
|
|
18
11
|
## Usage Example
|
|
19
12
|
|
|
20
13
|
```typescript
|
|
21
|
-
|
|
14
|
+
import { Input } from "@/components/ui/input";
|
|
15
|
+
import { Search } from "lucide-react";
|
|
16
|
+
|
|
17
|
+
// Basic with label and validation
|
|
22
18
|
<Input
|
|
23
19
|
label="Email"
|
|
24
|
-
type="email"
|
|
25
20
|
placeholder="you@example.com"
|
|
26
21
|
error="Invalid email address"
|
|
27
22
|
errorVariant="error"
|
|
28
23
|
/>
|
|
29
24
|
|
|
30
|
-
//
|
|
25
|
+
// With adornments and loading state
|
|
31
26
|
<Input
|
|
32
27
|
label="Search"
|
|
33
|
-
startAdornment={<
|
|
34
|
-
loading={
|
|
35
|
-
placeholder="Search
|
|
28
|
+
startAdornment={<Search />}
|
|
29
|
+
loading={isSearching}
|
|
30
|
+
placeholder="Search..."
|
|
36
31
|
/>
|
|
37
32
|
|
|
38
|
-
//
|
|
33
|
+
// Warning variant (invalid border without error severity)
|
|
34
|
+
<Input
|
|
35
|
+
label="Username"
|
|
36
|
+
error="Username is already taken"
|
|
37
|
+
errorVariant="warning"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
// Range slider (stripped-down rendering, no border/adornments)
|
|
39
41
|
<Input
|
|
40
42
|
type="range"
|
|
41
43
|
label="Volume"
|
|
42
44
|
min={0}
|
|
43
45
|
max={100}
|
|
44
|
-
defaultValue={50}
|
|
45
46
|
/>
|
|
47
|
+
```
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
```
|
|
49
|
+
## Notes
|
|
50
|
+
|
|
51
|
+
- `"error"` and `"warning"` variants both mark the field visually invalid (colored border); `"success"` and `"muted"` are informational only.
|
|
52
|
+
- `type="range"` receives a separate rendering path with a custom slider style and no wrapper chrome.
|
|
53
|
+
- The `loading` prop takes precedence over `endAdornment` — both will not render simultaneously.
|
|
54
|
+
- Autofill background override is handled via webkit-specific CSS to preserve theme colors.
|
|
@@ -1,37 +1,45 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 75ae35fff31d350f71633d4b8075a1d7 -->
|
|
2
|
+
Accessible label component built on Radix UI's `LabelPrimitive`, styled with `class-variance-authority` (CVA) to support multiple size and spacing variants.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
### `labelVariants`
|
|
7
|
+
CVA configuration defining two variant axes:
|
|
8
|
+
|
|
9
|
+
| Axis | Options | Default |
|
|
10
|
+
|------|---------|---------|
|
|
11
|
+
| `variant` | `default`, `small`, `medium`, `large` | `default` |
|
|
12
|
+
| `spacing` | `default`, `tight`, `normal`, `loose` | `default` |
|
|
13
|
+
|
|
14
|
+
### `Label`
|
|
15
|
+
A `forwardRef` wrapper around `LabelPrimitive.Root` that merges CVA-generated classes with any additional `className` passed by the consumer.
|
|
8
16
|
|
|
9
17
|
## Usage Example
|
|
10
18
|
|
|
11
19
|
```typescript
|
|
12
20
|
import { Label } from "./label"
|
|
13
21
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<textarea id="description" />
|
|
32
|
-
</div>
|
|
33
|
-
)
|
|
34
|
-
}
|
|
22
|
+
// Default label
|
|
23
|
+
<Label htmlFor="email">Email address</Label>
|
|
24
|
+
|
|
25
|
+
// Small label with tight spacing
|
|
26
|
+
<Label htmlFor="username" variant="small" spacing="tight">
|
|
27
|
+
Username
|
|
28
|
+
</Label>
|
|
29
|
+
|
|
30
|
+
// Large label with loose spacing
|
|
31
|
+
<Label htmlFor="bio" variant="large" spacing="loose">
|
|
32
|
+
Biography
|
|
33
|
+
</Label>
|
|
34
|
+
|
|
35
|
+
// With custom class override
|
|
36
|
+
<Label htmlFor="name" className="text-red-500">
|
|
37
|
+
Required Field
|
|
38
|
+
</Label>
|
|
35
39
|
```
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- Rendered as a client component (`"use client"`).
|
|
44
|
+
- Inherits all native `<label>` accessibility behaviours from Radix UI, including automatic association with form controls via `htmlFor`.
|
|
45
|
+
- Extend or override styles via the `className` prop; CVA classes are merged using the `cn` utility.
|