@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214
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-3JWIJJ44.js → chunk-5OWDOFKK.js} +2 -2
- package/dist/{chunk-IK2X5YJU.js → chunk-HWY35EAK.js} +2 -2
- package/dist/{chunk-OTKJASSX.cjs → chunk-IZL2KEH6.cjs} +24 -24
- package/dist/{chunk-OTKJASSX.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
- package/dist/{chunk-35XIT2CF.cjs → chunk-KDNGUYZM.cjs} +17 -17
- package/dist/{chunk-35XIT2CF.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
- package/dist/{chunk-ZTJVRSN5.js → chunk-UKND27XC.js} +2 -2
- package/dist/chunk-UKND27XC.js.map +1 -0
- package/dist/{chunk-ZDF6F7ED.cjs → chunk-YZUUFTIK.cjs} +2 -2
- package/dist/chunk-YZUUFTIK.cjs.map +1 -0
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/index.cjs +49 -49
- package/dist/components/index.js +2 -2
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/tickets/index.cjs +61 -61
- package/dist/components/tickets/index.js +3 -3
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/.index.md +36 -34
- package/src/components/.alert-dialog.md +27 -23
- package/src/components/.announcement-bar.md +26 -21
- package/src/components/.breadcrumb.md +19 -15
- package/src/components/.calendar.md +24 -19
- package/src/components/.categories-cart.md +29 -24
- package/src/components/.checkbox.md +23 -25
- package/src/components/.chevron-button.md +37 -32
- package/src/components/.comment-card.md +32 -62
- package/src/components/.dialog.md +26 -26
- package/src/components/.dynamic-skeleton.md +54 -57
- package/src/components/.empty-state.md +42 -51
- package/src/components/.faq-accordion.md +27 -21
- package/src/components/.filter-chip.md +41 -24
- package/src/components/.flamingo-logo.md +20 -23
- package/src/components/.footer-waitlist-button.md +29 -22
- package/src/components/.footer.md +32 -32
- package/src/components/.icons-block.md +27 -17
- package/src/components/.image-cropper.md +41 -32
- package/src/components/.index.md +33 -39
- package/src/components/.input.md +31 -35
- package/src/components/.logs-list.md +31 -20
- package/src/components/.media-carousel.md +35 -36
- package/src/components/.open-source-features.md +33 -16
- package/src/components/.pagination.md +52 -51
- package/src/components/.provider-button.md +21 -23
- package/src/components/.select.md +31 -20
- package/src/components/.sidebar.md +34 -24
- package/src/components/.smooth-accordion.md +29 -24
- package/src/components/.social-icon-row.md +36 -32
- package/src/components/.textarea.md +25 -31
- package/src/components/.tool-icon.md +24 -26
- package/src/components/.unified-filter-logic.md +37 -30
- package/src/components/.unified-pagination.md +23 -22
- package/src/components/.user-summary-stub.md +38 -22
- package/src/components/.vendor-display-button.md +25 -25
- package/src/components/.vendor-icon.md +33 -25
- package/src/components/.why-it-matters.md +28 -25
- package/src/components/chat/.approval-batch-message.md +51 -0
- package/src/components/chat/.approval-request-message.md +35 -34
- package/src/components/chat/.chat-attachment-bar.md +64 -0
- package/src/components/chat/.chat-container.md +36 -18
- package/src/components/chat/.chat-input.md +37 -20
- package/src/components/chat/.chat-message-enhanced.md +30 -49
- package/src/components/chat/.chat-message-list.md +45 -32
- package/src/components/chat/.chat-message-skeleton.md +26 -22
- package/src/components/chat/.chat-panel-context.md +52 -0
- package/src/components/chat/.chat-ref.types.md +42 -0
- package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
- package/src/components/chat/.chat-sidebar.md +31 -26
- package/src/components/chat/.chat-ticket-list.md +39 -0
- package/src/components/chat/.context-compaction-display.md +36 -0
- package/src/components/chat/.cycling-phrase.md +52 -0
- package/src/components/chat/.embeddable-chat.md +48 -0
- package/src/components/chat/.expand-chevron.md +24 -0
- package/src/components/chat/.index.md +31 -35
- package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
- package/src/components/chat/.mingo-onboarding-card.md +62 -0
- package/src/components/chat/.model-display.md +32 -30
- package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
- package/src/components/chat/.remark-card-links.md +38 -0
- package/src/components/chat/.slash-command-suggestions.md +47 -0
- package/src/components/chat/.source-action-button.md +48 -0
- package/src/components/chat/.thinking-display.md +42 -0
- package/src/components/chat/.tool-call-blocks.md +45 -0
- package/src/components/chat/.tool-execution-display.md +44 -36
- package/src/components/chat/chat-container.tsx +1 -1
- package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
- package/src/components/chat/entity-cards/.block-card.md +47 -0
- package/src/components/chat/entity-cards/.blog-card.md +52 -0
- package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
- package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
- package/src/components/chat/entity-cards/.case-study-card.md +58 -0
- package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
- package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
- package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
- package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
- package/src/components/chat/entity-cards/.dispatch.md +39 -0
- package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
- package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
- package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
- package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
- package/src/components/chat/entity-cards/.index.md +66 -0
- package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
- package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
- package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
- package/src/components/chat/entity-cards/.product-release-card.md +29 -0
- package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
- package/src/components/chat/entity-cards/.program-card.md +59 -0
- package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
- package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
- package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
- package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
- package/src/components/chat/hooks/.index.md +36 -21
- package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
- package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
- package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
- package/src/components/chat/hooks/.use-chat-identity.md +45 -0
- package/src/components/chat/hooks/.use-chat.md +58 -0
- package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
- package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
- package/src/components/chat/hooks/.use-collapsible.md +48 -0
- package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
- package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
- package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
- package/src/components/chat/hooks/.use-slash-commands.md +46 -0
- package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
- package/src/components/chat/hooks/.use-sse.md +60 -0
- package/src/components/chat/hooks/.use-unified-chat.md +57 -0
- package/src/components/chat/types/.api.types.md +52 -38
- package/src/components/chat/types/.chat.types.md +43 -34
- package/src/components/chat/types/.component.types.md +47 -48
- package/src/components/chat/types/.index.md +20 -27
- package/src/components/chat/types/.message.types.md +58 -48
- package/src/components/chat/types/.network.types.md +57 -31
- package/src/components/chat/types/.processing.types.md +49 -31
- package/src/components/chat/types/.unified-chat-state.types.md +41 -0
- package/src/components/chat/types/entities/.blog.md +43 -0
- package/src/components/chat/types/entities/.case-study.md +26 -0
- package/src/components/chat/types/entities/.content-ref.md +41 -0
- package/src/components/chat/types/entities/.customer-interview.md +28 -0
- package/src/components/chat/types/entities/.data-room-doc.md +36 -0
- package/src/components/chat/types/entities/.github-activity.md +43 -0
- package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
- package/src/components/chat/types/entities/.index.md +42 -0
- package/src/components/chat/types/entities/.investor-update.md +45 -0
- package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
- package/src/components/chat/types/entities/.program-types.md +57 -0
- package/src/components/chat/types/entities/.roadmap-item.md +58 -0
- package/src/components/chat/types/entities/.slack-message.md +35 -0
- package/src/components/chat/utils/.agent-status-message.md +45 -0
- package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
- package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
- package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
- package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
- package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
- package/src/components/chat/utils/.chip-action-class.md +34 -0
- package/src/components/chat/utils/.chip-styles.md +46 -0
- package/src/components/chat/utils/.chunk-parser.md +38 -28
- package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
- package/src/components/chat/utils/.compact-card-classes.md +62 -0
- package/src/components/chat/utils/.decide-new-tab.md +51 -0
- package/src/components/chat/utils/.external-app-urls.md +29 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
- package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
- package/src/components/chat/utils/.icon-registry.md +46 -0
- package/src/components/chat/utils/.index.md +37 -32
- package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
- package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
- package/src/components/chat/utils/.nav-anchor-props.md +44 -0
- package/src/components/chat/utils/.nav-click-handler.md +47 -0
- package/src/components/chat/utils/.onboarding-icons.md +28 -0
- package/src/components/chat/utils/.process-historical-messages.md +46 -35
- package/src/components/chat/utils/.scroll-anchor.md +40 -0
- package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
- package/src/components/chat/utils/.source-icons.md +35 -0
- package/src/components/chat/utils/.source-row-cta.md +54 -0
- package/src/components/chat/utils/.tool-call-helpers.md +42 -0
- package/src/components/contact/.contact-form.md +43 -0
- package/src/components/contact/.index.md +27 -0
- package/src/components/features/.array-entry-manager.md +36 -45
- package/src/components/features/.changelog-manager.md +47 -21
- package/src/components/features/.changelog-sections-manager.md +21 -26
- package/src/components/features/.command-box.md +31 -28
- package/src/components/features/.entity-summary-editor.md +46 -0
- package/src/components/features/.entity-video-section.md +51 -0
- package/src/components/features/.figma-prototype-viewer.md +48 -29
- package/src/components/features/.filters-dropdown.md +33 -46
- package/src/components/features/.highlight-config-section.md +42 -0
- package/src/components/features/.highlight-generation-section.md +46 -0
- package/src/components/features/.highlight-video-combined-section.md +47 -0
- package/src/components/features/.highlight-video-preview.md +44 -0
- package/src/components/features/.highlight-video-section.md +47 -0
- package/src/components/features/.index.md +40 -66
- package/src/components/features/.media-gallery-manager.md +48 -38
- package/src/components/features/.more-about-button.md +22 -19
- package/src/components/features/.og-editor-preview.md +40 -36
- package/src/components/features/.parallax-image-showcase.md +33 -26
- package/src/components/features/.paths-display.md +42 -43
- package/src/components/features/.platform-badge.md +37 -36
- package/src/components/features/.platform-filter.md +23 -16
- package/src/components/features/.policy-configuration-panel.md +48 -56
- package/src/components/features/.provider-button.md +33 -36
- package/src/components/features/.push-button-selector.md +40 -29
- package/src/components/features/.release-media-manager.md +46 -31
- package/src/components/features/.section-selector.md +26 -31
- package/src/components/features/.select-button.md +35 -25
- package/src/components/features/.seo-editor-preview.md +41 -44
- package/src/components/features/.social-links-manager.md +25 -19
- package/src/components/features/.start-with-openframe-button.md +37 -29
- package/src/components/features/.status-filter-component.md +36 -20
- package/src/components/features/.tags-selector.md +40 -24
- package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
- package/src/components/features/.transcribe-summarize-section.md +48 -0
- package/src/components/features/.transcript-summary-editor.md +53 -0
- package/src/components/features/.video-bites-display.md +46 -0
- package/src/components/features/.video-clips-section.md +41 -0
- package/src/components/features/.video-ratio-tabs.md +56 -0
- package/src/components/features/.video-source-selector.md +60 -0
- package/src/components/features/.video.md +44 -0
- package/src/components/features/.waitlist-form.md +60 -0
- package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
- package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
- package/src/components/features/board/.board-column-header.md +38 -0
- package/src/components/features/board/.board-column.md +43 -0
- package/src/components/features/board/.board.md +51 -0
- package/src/components/features/board/.color-utils.md +26 -0
- package/src/components/features/board/.index.md +56 -0
- package/src/components/features/board/.ticket-card-skeleton.md +38 -0
- package/src/components/features/board/.ticket-card.md +47 -0
- package/src/components/features/board/.types.md +45 -0
- package/src/components/features/board/.use-board-collapse.md +34 -0
- package/src/components/features/notifications/.index.md +57 -0
- package/src/components/features/notifications/.notification-drawer.md +34 -0
- package/src/components/features/notifications/.notification-tile.md +39 -0
- package/src/components/features/notifications/.notifications-context.md +73 -0
- package/src/components/features/notifications/.types.md +45 -0
- package/src/components/icons/.about-icon.md +20 -28
- package/src/components/icons/.ai-robot-icon.md +15 -17
- package/src/components/icons/.bash-icon.md +16 -23
- package/src/components/icons/.buildings-icon.md +10 -24
- package/src/components/icons/.capterra-icon.md +30 -26
- package/src/components/icons/.carta-icon.md +29 -0
- package/src/components/icons/.clickup-icon.md +26 -0
- package/src/components/icons/.cmd-icon.md +15 -22
- package/src/components/icons/.coins-icon.md +17 -25
- package/src/components/icons/.community-hub-icon.md +19 -25
- package/src/components/icons/.community-icon.md +24 -21
- package/src/components/icons/.compare-icon.md +32 -19
- package/src/components/icons/.copy-icon.md +29 -15
- package/src/components/icons/.custom-external-link-icon.md +19 -17
- package/src/components/icons/.custom-fork-icon.md +32 -21
- package/src/components/icons/.custom-license-icon.md +29 -25
- package/src/components/icons/.custom-star-icon.md +20 -28
- package/src/components/icons/.custom-time-icon.md +21 -22
- package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
- package/src/components/icons/.dashboard-icon.md +13 -18
- package/src/components/icons/.deno-icon.md +16 -23
- package/src/components/icons/.donut-icon.md +12 -23
- package/src/components/icons/.double-chevron-icon.md +28 -36
- package/src/components/icons/.elestio-logo.md +13 -23
- package/src/components/icons/.empty-vendor-icon.md +16 -18
- package/src/components/icons/.explore-categories-icon.md +18 -29
- package/src/components/icons/.eye-icon.md +16 -26
- package/src/components/icons/.facebook-icon.md +9 -20
- package/src/components/icons/.figma-icon.md +8 -17
- package/src/components/icons/.filter-icon.md +15 -17
- package/src/components/icons/.flamingo-logo.md +28 -27
- package/src/components/icons/.folder-shield-icon.md +28 -19
- package/src/components/icons/.g2-icon.md +22 -21
- package/src/components/icons/.getapp-icon.md +25 -21
- package/src/components/icons/.github-icon.md +13 -25
- package/src/components/icons/.globe-icon.md +14 -19
- package/src/components/icons/.google-gemini-icon.md +16 -19
- package/src/components/icons/.google-logo.md +15 -21
- package/src/components/icons/.grid-view-icon.md +30 -19
- package/src/components/icons/.hamburger-icon.md +22 -20
- package/src/components/icons/.hand-dollar-icon.md +24 -34
- package/src/components/icons/.hotel-icon.md +27 -21
- package/src/components/icons/.icon-utils.md +28 -29
- package/src/components/icons/.image-icon.md +15 -22
- package/src/components/icons/.index.md +25 -28
- package/src/components/icons/.info-circle-icon.md +29 -30
- package/src/components/icons/.instagram-icon.md +10 -24
- package/src/components/icons/.jump-in-icon.md +18 -18
- package/src/components/icons/.linux-icon.md +18 -18
- package/src/components/icons/.log-out-icon.md +15 -23
- package/src/components/icons/.logs-icon.md +14 -23
- package/src/components/icons/.margin-crisis-icon.md +21 -20
- package/src/components/icons/.menu-icon.md +18 -19
- package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
- package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
- package/src/components/icons/.mlg-logo.md +18 -16
- package/src/components/icons/.moon-icon.md +32 -22
- package/src/components/icons/.ms-icon.md +30 -19
- package/src/components/icons/.nushell-icon.md +7 -21
- package/src/components/icons/.open-source-icon.md +19 -23
- package/src/components/icons/.openai-icon.md +9 -24
- package/src/components/icons/.openframe-ai-icons.md +25 -26
- package/src/components/icons/.openframe-logo.md +28 -22
- package/src/components/icons/.openframe-text.md +24 -27
- package/src/components/icons/.openmsp-logo.md +26 -23
- package/src/components/icons/.pilot-icon.md +23 -0
- package/src/components/icons/.powershell-icon.md +17 -22
- package/src/components/icons/.python-icon.md +16 -23
- package/src/components/icons/.queries-icon.md +13 -21
- package/src/components/icons/.reddit-icon.md +28 -24
- package/src/components/icons/.remote-control-icon.md +13 -17
- package/src/components/icons/.script-icon.md +27 -19
- package/src/components/icons/.search-icon.md +21 -21
- package/src/components/icons/.send-icon.md +14 -16
- package/src/components/icons/.settings-icon.md +30 -19
- package/src/components/icons/.shape-circle-dash-icon.md +16 -21
- package/src/components/icons/.shell-icon.md +15 -19
- package/src/components/icons/.shield-check-icon.md +18 -31
- package/src/components/icons/.shield-key-icon.md +25 -25
- package/src/components/icons/.shield-lock-icon.md +8 -18
- package/src/components/icons/.slack-icon.md +28 -32
- package/src/components/icons/.sparkles-icon.md +18 -23
- package/src/components/icons/.sso-configuration-icon.md +29 -16
- package/src/components/icons/.sun-icon.md +20 -18
- package/src/components/icons/.table-view-icon.md +17 -19
- package/src/components/icons/.telegram-icon.md +8 -22
- package/src/components/icons/.thumbs-down-icon.md +10 -19
- package/src/components/icons/.thumbs-up-icon.md +8 -17
- package/src/components/icons/.tool-directory-icons.md +24 -28
- package/src/components/icons/.trustpilot-icon.md +25 -22
- package/src/components/icons/.user-icon.md +26 -28
- package/src/components/icons/.users-group-icon.md +28 -24
- package/src/components/icons/.vendor-showcase-icons.md +21 -29
- package/src/components/icons/.vendors-icon.md +18 -22
- package/src/components/icons/.whatsapp-icon.md +30 -14
- package/src/components/icons/.x-icon.md +18 -23
- package/src/components/icons/.x-logo.md +13 -38
- package/src/components/icons/.youtube-icon.md +8 -19
- package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
- package/src/components/icons-v2-generated/.index.md +52 -0
- package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
- package/src/components/icons-v2-generated/arrows/.index.md +39 -0
- package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
- package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
- package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
- package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
- package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
- package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
- package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
- package/src/components/icons-v2-generated/buildings/.index.md +48 -0
- package/src/components/icons-v2-generated/charts/.index.md +40 -0
- package/src/components/icons-v2-generated/clothes/.index.md +48 -0
- package/src/components/icons-v2-generated/coding/.index.md +42 -0
- package/src/components/icons-v2-generated/communication/.index.md +39 -0
- package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
- package/src/components/icons-v2-generated/design/.index.md +39 -0
- package/src/components/icons-v2-generated/devices/.index.md +38 -0
- package/src/components/icons-v2-generated/documents/.index.md +38 -0
- package/src/components/icons-v2-generated/finance/.index.md +34 -0
- package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
- package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
- package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
- package/src/components/icons-v2-generated/health/.index.md +40 -0
- package/src/components/icons-v2-generated/household/.index.md +45 -0
- package/src/components/icons-v2-generated/interface/.index.md +36 -0
- package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
- package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
- package/src/components/icons-v2-generated/number/.index.md +41 -0
- package/src/components/icons-v2-generated/school/.index.md +37 -0
- package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
- package/src/components/icons-v2-generated/security/.index.md +39 -0
- package/src/components/icons-v2-generated/shopping/.index.md +42 -0
- package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
- package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
- package/src/components/icons-v2-generated/sport/.index.md +41 -0
- package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
- package/src/components/icons-v2-generated/users/.index.md +45 -0
- package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
- package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
- package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
- package/src/components/layout/.article-detail-layout.md +43 -0
- package/src/components/layout/.back-button.md +40 -0
- package/src/components/layout/.list-page-layout.md +35 -26
- package/src/components/layout/.page-container.md +27 -38
- package/src/components/layout/.page-layout.md +50 -0
- package/src/components/layout/.title-block.md +42 -0
- package/src/components/loading/.card-skeleton.md +38 -29
- package/src/components/loading/.device-card-skeleton.md +29 -25
- package/src/components/loading/.index.md +39 -46
- package/src/components/loading/.margin-report-skeleton.md +45 -34
- package/src/components/loading/.organization-card-skeleton.md +39 -44
- package/src/components/loading/.page-layout-skeleton.md +34 -45
- package/src/components/loading/.unified-skeleton.md +62 -36
- package/src/components/navigation/.app-header.md +40 -29
- package/src/components/navigation/.app-layout.md +25 -26
- package/src/components/navigation/.header-global-search.md +34 -37
- package/src/components/navigation/.header-organization-filter.md +23 -22
- package/src/components/navigation/.header.md +31 -35
- package/src/components/navigation/.mobile-burger-menu.md +39 -47
- package/src/components/navigation/.mobile-nav-panel.md +51 -32
- package/src/components/navigation/.navigation-sidebar-header.md +36 -0
- package/src/components/navigation/.navigation-sidebar-item.md +45 -0
- package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
- package/src/components/navigation/.navigation-sidebar.md +33 -34
- package/src/components/navigation/.sliding-sidebar.md +52 -41
- package/src/components/navigation/.sticky-section-nav.md +56 -48
- package/src/components/platform/.ScriptArguments.md +39 -25
- package/src/components/platform/.ScriptInfoSection.md +30 -26
- package/src/components/platform/.ShellTypeBadge.md +18 -13
- package/src/components/platform/.SoftwareInfo.md +23 -27
- package/src/components/platform/.SoftwareSourceBadge.md +28 -19
- package/src/components/platform/.ToolBadge.md +25 -26
- package/src/components/providers/.theme-provider.md +52 -0
- package/src/components/shared/delivery/.delivery-lists.md +39 -0
- package/src/components/shared/delivery/.delivery-row.md +41 -0
- package/src/components/shared/delivery/.delivery-table.md +41 -0
- package/src/components/shared/delivery/.index.md +38 -0
- package/src/components/shared/dev-section/.dev-card-row.md +60 -0
- package/src/components/shared/dev-section/.dev-section-page.md +48 -0
- package/src/components/shared/dev-section/.dev-section-view.md +43 -0
- package/src/components/shared/dev-section/.index.md +38 -0
- package/src/components/shared/legal-document/.index.md +40 -0
- package/src/components/shared/legal-document/.legal-document-page.md +50 -0
- package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
- package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
- package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
- package/src/components/shared/product-release/.index.md +28 -30
- package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
- package/src/components/shared/product-release/.product-release-card.md +45 -27
- package/src/components/shared/product-release/.release-detail-page.md +23 -24
- package/src/components/shared/roadmap/.index.md +37 -0
- package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
- package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
- package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
- package/src/components/tickets/.help-center-card.md +51 -0
- package/src/components/tickets/.help-center-create-form.md +38 -0
- package/src/components/tickets/.help-center-list.md +40 -0
- package/src/components/tickets/.index.md +65 -0
- package/src/components/tickets/.ticket-center.md +51 -0
- package/src/components/tickets/.ticket-detail-drawer.md +48 -0
- package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
- package/src/components/tickets/.ticket-open-form.md +50 -0
- package/src/components/tickets/.ticket-row.md +30 -0
- package/src/components/tickets/.types.md +57 -0
- package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
- package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
- package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
- package/src/components/ui/.actions-menu.md +66 -41
- package/src/components/ui/.alert-dialog.md +29 -26
- package/src/components/ui/.allowed-domains-input.md +29 -21
- package/src/components/ui/.assignee-dropdown.md +45 -0
- package/src/components/ui/.autocomplete.md +47 -41
- package/src/components/ui/.benefit-card.md +51 -36
- package/src/components/ui/.brand-association-card.md +30 -27
- package/src/components/ui/.breadcrumb.md +17 -15
- package/src/components/ui/.checkbox-block.md +39 -35
- package/src/components/ui/.checkbox-with-description.md +23 -16
- package/src/components/ui/.checkbox.md +31 -23
- package/src/components/ui/.circular-progress.md +49 -19
- package/src/components/ui/.content-loader.md +32 -20
- package/src/components/ui/.cursor-pagination.md +41 -52
- package/src/components/ui/.dashboard-info-card.md +33 -26
- package/src/components/ui/.date-picker.md +27 -25
- package/src/components/ui/.device-card-compact.md +28 -29
- package/src/components/ui/.device-card.md +27 -27
- package/src/components/ui/.dialog.md +25 -16
- package/src/components/ui/.drawer.md +86 -0
- package/src/components/ui/.dropdown-button.md +45 -0
- package/src/components/ui/.entity-image.md +46 -0
- package/src/components/ui/.error-state.md +41 -28
- package/src/components/ui/.feature-card.md +35 -31
- package/src/components/ui/.feature-list.md +48 -0
- package/src/components/ui/.field-wrapper.md +47 -0
- package/src/components/ui/.file-upload.md +42 -0
- package/src/components/ui/.filter-checkbox-item.md +43 -0
- package/src/components/ui/.filter-list.md +57 -0
- package/src/components/ui/.filter-modal.md +59 -0
- package/src/components/ui/.floating-tooltip.md +43 -26
- package/src/components/ui/.hidden-tags-popup.md +49 -0
- package/src/components/ui/.hover-dropdown.md +54 -0
- package/src/components/ui/.image-gallery-modal.md +41 -34
- package/src/components/ui/.image-uploader.md +53 -0
- package/src/components/ui/.index.md +40 -34
- package/src/components/ui/.info-card.md +31 -31
- package/src/components/ui/.info-row.md +31 -27
- package/src/components/ui/.input-trigger.md +44 -0
- package/src/components/ui/.input.md +37 -31
- package/src/components/ui/.markdown-editor.md +57 -0
- package/src/components/ui/.modal-v2.md +51 -0
- package/src/components/ui/.modal.md +32 -31
- package/src/components/ui/.more-actions-menu.md +45 -38
- package/src/components/ui/.organization-card.md +31 -37
- package/src/components/ui/.page-actions.md +44 -54
- package/src/components/ui/.phone-input.md +54 -0
- package/src/components/ui/.progress-bar.md +35 -27
- package/src/components/ui/.radio-group.md +39 -27
- package/src/components/ui/.release-changelog-section.md +34 -34
- package/src/components/ui/.search-input.md +48 -0
- package/src/components/ui/.select.md +54 -34
- package/src/components/ui/.service-card.md +42 -40
- package/src/components/ui/.sheet.md +27 -18
- package/src/components/ui/.simple-markdown-renderer.md +29 -31
- package/src/components/ui/.sort-column-item.md +42 -0
- package/src/components/ui/.square-avatar.md +34 -24
- package/src/components/ui/.status-badge.md +26 -38
- package/src/components/ui/.switch.md +22 -35
- package/src/components/ui/.tab-navigation.md +56 -53
- package/src/components/ui/.tab-selector.md +40 -0
- package/src/components/ui/.tag-key-value-filter.md +56 -0
- package/src/components/ui/.tag-search-input.md +53 -0
- package/src/components/ui/.tag.md +49 -31
- package/src/components/ui/.tags-manager.md +60 -0
- package/src/components/ui/.textarea.md +44 -34
- package/src/components/ui/.ticket-attachments-list.md +45 -0
- package/src/components/ui/.ticket-detail-section.md +29 -0
- package/src/components/ui/.ticket-info-section.md +56 -0
- package/src/components/ui/.ticket-note-card.md +53 -0
- package/src/components/ui/.ticket-notes-section.md +54 -0
- package/src/components/ui/.ticket-status-tag.md +49 -0
- package/src/components/ui/.title-content-block.md +25 -26
- package/src/components/ui/.toaster.md +40 -28
- package/src/components/ui/.tooltip.md +22 -11
- package/src/components/ui/.truncate-text.md +39 -0
- package/src/components/ui/button/.button-styles.md +35 -0
- package/src/components/ui/button/.button.md +53 -0
- package/src/components/ui/button/.split-button.md +48 -0
- package/src/components/ui/data-table/.data-table-body.md +48 -0
- package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
- package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
- package/src/components/ui/data-table/.data-table-empty.md +43 -0
- package/src/components/ui/data-table/.data-table-header.md +55 -0
- package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
- package/src/components/ui/data-table/.data-table-row-count.md +43 -0
- package/src/components/ui/data-table/.data-table-row.md +47 -0
- package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
- package/src/components/ui/data-table/.data-table.md +47 -0
- package/src/components/ui/data-table/.index.md +55 -0
- package/src/components/ui/data-table/.types.md +54 -0
- package/src/components/ui/data-table/.use-data-table.md +45 -0
- package/src/components/ui/data-table/.utils.md +38 -0
- package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
- package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
- package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
- package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
- package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
- package/src/components/ui/file-manager/.file-manager.md +35 -31
- package/src/components/ui/query-report-table/.index.md +43 -0
- package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
- package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
- package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
- package/src/components/ui/query-report-table/.query-report-table.md +47 -0
- package/src/components/ui/query-report-table/.types.md +41 -0
- package/src/components/ui/query-report-table/.utils.md +35 -0
- package/src/components/ui/table/.index.md +27 -48
- package/src/components/ui/table/.table-cell.md +18 -27
- package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
- package/src/components/ui/table/.table-description-cell.md +24 -14
- package/src/components/ui/table/.table-empty-state.md +21 -22
- package/src/components/ui/table/.table-header.md +25 -40
- package/src/components/ui/table/.table-row.md +22 -40
- package/src/components/ui/table/.table-skeleton.md +33 -26
- package/src/components/ui/table/.table-timestamp-cell.md +26 -16
- package/src/components/ui/table/.table.md +39 -59
- package/src/components/ui/table/.types.md +44 -36
- package/src/components/ui/table/.utils.md +18 -20
- package/src/contexts/.chat-runtime-context.md +54 -0
- package/src/contexts/.endpoints-runtime-context.md +58 -0
- package/src/contexts/.index.md +53 -0
- package/src/contexts/.use-outer-or-default.md +36 -0
- package/src/embed-shims/.index.md +45 -0
- package/src/embed-shims/.next-dynamic.md +43 -0
- package/src/embed-shims/.next-image.md +45 -0
- package/src/embed-shims/.next-link.md +59 -0
- package/src/embed-shims/.next-navigation.md +59 -0
- package/src/hooks/.index.md +34 -29
- package/src/hooks/.use-access-code-integration.md +49 -0
- package/src/hooks/.use-contact-submission.md +37 -26
- package/src/hooks/.use-copy-to-clipboard.md +42 -0
- package/src/hooks/.use-near-viewport.md +44 -0
- package/src/hooks/.use-og-placeholder.md +51 -0
- package/src/hooks/.use-toast.md +36 -35
- package/src/hooks/state/.use-api-params.md +29 -46
- package/src/hooks/state/.use-query-params.md +37 -33
- package/src/hooks/ui/.index.md +33 -32
- package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
- package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
- package/src/hooks/ui/.use-image-edge-color.md +42 -0
- package/src/hooks/ui/.use-media-query.md +33 -25
- package/src/hooks/ui/.use-search.md +51 -0
- package/src/nats/.nats.md +49 -28
- package/src/schemas/.contact-schema.md +45 -0
- package/src/stories/.AnnouncementBar.stories.md +45 -0
- package/src/stories/.AppLayout.stories.md +20 -21
- package/src/stories/.Autocomplete.stories.md +48 -34
- package/src/stories/.Board.stories.md +35 -0
- package/src/stories/.Button.stories.md +36 -33
- package/src/stories/.ChatTicketList.stories.md +33 -0
- package/src/stories/.CheckboxBlock.stories.md +40 -28
- package/src/stories/.ContentLoader.stories.md +47 -0
- package/src/stories/.DashboardInfoCard.stories.md +57 -0
- package/src/stories/.DataTable.stories.md +41 -0
- package/src/stories/.DatePicker.stories.md +66 -52
- package/src/stories/.DeviceCard.stories.md +41 -40
- package/src/stories/.DeviceCardCompact.stories.md +41 -0
- package/src/stories/.DotsLoaderIcon.stories.md +36 -0
- package/src/stories/.Drawer.stories.md +58 -0
- package/src/stories/.EmbeddableChat.stories.md +41 -0
- package/src/stories/.FileManager.stories.md +41 -0
- package/src/stories/.FileManagerActionBar.stories.md +38 -0
- package/src/stories/.FileUpload.stories.md +53 -0
- package/src/stories/.FilterList.stories.md +54 -0
- package/src/stories/.FilterModal.stories.md +72 -0
- package/src/stories/.FiltersDropdown.stories.md +57 -0
- package/src/stories/.Header.stories.md +48 -0
- package/src/stories/.ImageUploader.stories.md +49 -0
- package/src/stories/.InfoCard.stories.md +54 -0
- package/src/stories/.Input.stories.md +48 -30
- package/src/stories/.ListPageLayout.stories.md +56 -43
- package/src/stories/.MingoOnboardingCard.stories.md +42 -0
- package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
- package/src/stories/.Modal.stories.md +40 -31
- package/src/stories/.NotificationDrawer.stories.md +55 -0
- package/src/stories/.OnboardingStepCard.stories.md +41 -0
- package/src/stories/.OrganizationCard.stories.md +61 -0
- package/src/stories/.PageActions.stories.md +52 -49
- package/src/stories/.PageContainer.stories.md +41 -35
- package/src/stories/.PageLayout.stories.md +60 -0
- package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
- package/src/stories/.PhoneInput.stories.md +53 -0
- package/src/stories/.QueryReportTable.stories.md +44 -0
- package/src/stories/.RadioGroup.stories.md +46 -0
- package/src/stories/.RadioGroupBlock.stories.md +45 -0
- package/src/stories/.Select.stories.md +29 -15
- package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
- package/src/stories/.SplitButton.stories.md +62 -0
- package/src/stories/.TabNavigation.stories.md +47 -38
- package/src/stories/.TabSelector.stories.md +65 -0
- package/src/stories/.Table.stories.md +38 -46
- package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
- package/src/stories/.Tag.stories.md +43 -32
- package/src/stories/.TagKeyValueFilter.stories.md +44 -0
- package/src/stories/.TagSearchInput.stories.md +61 -0
- package/src/stories/.Textarea.stories.md +49 -26
- package/src/stories/.Theme.stories.md +41 -0
- package/src/stories/.TicketAttachmentsList.stories.md +39 -0
- package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
- package/src/stories/.TicketInfoSection.stories.md +40 -0
- package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
- package/src/stories/.TicketNotesSection.stories.md +50 -0
- package/src/stories/.Toaster.stories.md +40 -0
- package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
- package/src/stories/.Tooltip.stories.md +41 -0
- package/src/stories/.UserSummary.stories.md +41 -0
- package/src/stories/.WaitlistForm.stories.md +42 -0
- package/src/stories/BlogCard.stories.tsx +61 -0
- package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
- package/src/stories/CaseStudyCard.stories.tsx +42 -0
- package/src/stories/ChatContainer.stories.tsx +186 -0
- package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
- package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
- package/src/stories/DataRoomDocCard.stories.tsx +52 -0
- package/src/stories/GenericEntityCard.stories.tsx +66 -0
- package/src/stories/GitHubActivityCard.stories.tsx +61 -0
- package/src/stories/HubspotTicketCard.stories.tsx +98 -0
- package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
- package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
- package/src/stories/ProductReleaseCard.stories.tsx +61 -0
- package/src/stories/ProgramCard.stories.tsx +79 -0
- package/src/stories/RoadmapCard.stories.tsx +75 -0
- package/src/stories/SlackMessageCard.stories.tsx +41 -0
- package/src/stories/__fixtures__/chat-cards.ts +604 -0
- package/src/types/.blog.md +53 -29
- package/src/types/.case-study.md +44 -27
- package/src/types/.customer-interview.md +66 -44
- package/src/types/.delivery.md +40 -0
- package/src/types/.employee.md +24 -30
- package/src/types/.index.md +33 -47
- package/src/types/.marketing.md +49 -44
- package/src/types/.navigation.md +33 -25
- package/src/types/.os.types.md +32 -27
- package/src/types/.platform.md +31 -28
- package/src/types/.product-release.md +65 -38
- package/src/types/.supabase.md +37 -29
- package/src/types/.team.md +41 -33
- package/src/types/.video-processing.md +54 -0
- package/src/types/.waitlist.md +40 -36
- package/src/utils/.access-code-client.md +37 -36
- package/src/utils/.cn.md +31 -23
- package/src/utils/.color-analysis.md +35 -0
- package/src/utils/.country-phone-utils.md +39 -0
- package/src/utils/.date-formatters.md +19 -18
- package/src/utils/.embed-authed-fetch.md +39 -0
- package/src/utils/.embed-proxy-auth-storage.md +38 -0
- package/src/utils/.fetch-priority.md +41 -0
- package/src/utils/.format.md +74 -25
- package/src/utils/.generic-domain-utils.md +42 -0
- package/src/utils/.image-proxy.md +59 -23
- package/src/utils/.index.md +42 -49
- package/src/utils/.local-storage-adapter.md +50 -0
- package/src/utils/.ods-color-utils.md +55 -38
- package/src/utils/.platform-config.md +45 -25
- package/src/utils/.scroll-into-view.md +40 -0
- package/src/utils/.source-icons.md +53 -0
- package/src/utils/.sse-decision-frame.md +46 -0
- package/src/utils/dev-sections/.index.md +34 -0
- package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
- package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
- package/dist/chunk-ZTJVRSN5.js.map +0 -1
- package/src/components/.card.md +0 -42
- package/src/components/.contact-button.md +0 -30
- package/src/components/.drawer.md +0 -46
- package/src/components/.fixed-layout-container.md +0 -47
- package/src/components/.footer-waitlist-card.md +0 -29
- package/src/components/.join-waitlist-cta.md +0 -29
- package/src/components/.sheet.md +0 -47
- package/src/components/.sliding-panel.md +0 -48
- package/src/components/.tooltip.md +0 -48
- package/src/components/.use-mobile.md +0 -42
- package/src/components/.vendor-compact-card.md +0 -66
- package/src/components/.x-button.md +0 -42
- package/src/components/features/.github-repo-button.md +0 -40
- package/src/components/features/.organization-icon.md +0 -47
- package/src/components/features/.organization-selector.md +0 -45
- package/src/components/icons/.fleet-icon.md +0 -39
- package/src/components/icons/.meshcentral-icon.md +0 -35
- package/src/components/icons/.refresh-icon.md +0 -34
- package/src/components/icons/.tactical-icon.md +0 -35
- package/src/components/ui/.button.md +0 -69
- package/src/components/ui/.log-table-row.md +0 -47
- package/src/components/ui/.selectable-device-card.md +0 -46
- package/src/hooks/.api-hooks-stub.md +0 -45
- package/src/hooks/api/.use-product-releases.md +0 -53
- package/src/stories/.OrganizationSelector.stories.md +0 -42
- package/src/stories/.SelectableDeviceCard.stories.md +0 -30
- package/src/utils/.lite-youtube-embed-stub.md +0 -37
- package/src/utils/.lite-youtube-embed.md +0 -33
- /package/dist/{chunk-3JWIJJ44.js.map → chunk-5OWDOFKK.js.map} +0 -0
- /package/dist/{chunk-IK2X5YJU.js.map → chunk-HWY35EAK.js.map} +0 -0
|
@@ -1,43 +1,52 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: aae524b6903a622a00d4f048e78ca2ef -->
|
|
2
|
+
Skeleton loading components for the chat sidebar UI, providing animated placeholder states while chat dialog data is being fetched.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `ChatSidebarSkeleton` | `React.ForwardRefExoticComponent` | Full sidebar skeleton with optional new chat button and configurable dialog count |
|
|
9
|
+
| `DialogListItemSkeleton` | `React.ForwardRefExoticComponent` | Individual chat list item skeleton with animated title, timestamp, and chevron placeholders |
|
|
10
|
+
|
|
11
|
+
### Props
|
|
12
|
+
|
|
13
|
+
**`ChatSidebarSkeletonProps`**
|
|
14
|
+
|
|
15
|
+
| Prop | Type | Default | Description |
|
|
16
|
+
|------|------|---------|-------------|
|
|
17
|
+
| `className` | `string` | — | Additional CSS classes |
|
|
18
|
+
| `dialogCount` | `number` | `8` | Number of skeleton dialog items to render |
|
|
19
|
+
| `showNewChatButton` | `boolean` | `true` | Toggle the disabled "Start New Chat" button header |
|
|
20
|
+
|
|
21
|
+
**`DialogListItemSkeletonProps`**
|
|
22
|
+
|
|
23
|
+
| Prop | Type | Default | Description |
|
|
24
|
+
|------|------|---------|-------------|
|
|
25
|
+
| `className` | `string` | — | Additional CSS classes |
|
|
8
26
|
|
|
9
27
|
## Usage Example
|
|
10
28
|
|
|
11
29
|
```typescript
|
|
12
|
-
import { ChatSidebarSkeleton } from
|
|
30
|
+
import { ChatSidebarSkeleton, DialogListItemSkeleton } from "./chat-sidebar-skeleton"
|
|
31
|
+
|
|
32
|
+
// Full sidebar skeleton during data load
|
|
33
|
+
function ChatLayout() {
|
|
34
|
+
const { dialogs, isLoading } = useDialogs()
|
|
13
35
|
|
|
14
|
-
function ChatInterface() {
|
|
15
|
-
const { data: dialogs, isLoading } = useDialogs()
|
|
16
|
-
|
|
17
36
|
if (isLoading) {
|
|
18
37
|
return (
|
|
19
|
-
<ChatSidebarSkeleton
|
|
20
|
-
dialogCount={5}
|
|
38
|
+
<ChatSidebarSkeleton
|
|
39
|
+
dialogCount={5}
|
|
21
40
|
showNewChatButton={true}
|
|
22
|
-
className="shadow-lg"
|
|
23
41
|
/>
|
|
24
42
|
)
|
|
25
43
|
}
|
|
26
|
-
|
|
44
|
+
|
|
27
45
|
return <ChatSidebar dialogs={dialogs} />
|
|
28
46
|
}
|
|
29
47
|
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
function DialogList({ dialogs, isLoadingMore }) {
|
|
34
|
-
return (
|
|
35
|
-
<div>
|
|
36
|
-
{dialogs.map(dialog => <DialogItem key={dialog.id} {...dialog} />)}
|
|
37
|
-
{isLoadingMore && <DialogListItemSkeleton />}
|
|
38
|
-
</div>
|
|
39
|
-
)
|
|
48
|
+
// Standalone skeleton item for custom lists
|
|
49
|
+
function CustomList() {
|
|
50
|
+
return <DialogListItemSkeleton className="opacity-50" />
|
|
40
51
|
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
The component uses the OpenFrame Design System (ODS) classes for consistent theming and includes pulse animations for a polished loading experience. Both components are forwardRef-enabled for advanced ref patterns.
|
|
52
|
+
```
|
|
@@ -1,43 +1,48 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: eca198ef18bcc431169bc6caeb87161d -->
|
|
2
|
+
A sidebar component for chat navigation that displays a list of dialogs, supports infinite scroll pagination, and provides controls for creating new chats.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- **
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
6
|
+
### `ChatSidebar`
|
|
7
|
+
The main container component that renders the sidebar with:
|
|
8
|
+
- **New Chat button** — triggers `onNewChat` callback
|
|
9
|
+
- **Dialog list** — scrollable list with infinite scroll via `IntersectionObserver`
|
|
10
|
+
- **Empty state** — shown when no dialogs exist and no `children` are provided
|
|
11
|
+
- **Custom content slot** — renders `children` instead of the dialog list when provided
|
|
12
|
+
- **Loading skeleton** — displays `ChatSidebarSkeleton` when `isLoading` is true and no dialogs are present
|
|
13
|
+
|
|
14
|
+
### `DialogListItem`
|
|
15
|
+
A single chat entry in the sidebar list. Displays:
|
|
16
|
+
- Chat title (truncated with tooltip)
|
|
17
|
+
- Formatted timestamp (`MM/DD/YYYY, HH:MM`)
|
|
18
|
+
- Unread message badge (capped at `99+`) or a chevron arrow when no unread messages exist
|
|
19
|
+
- Active state with accent border and background highlight
|
|
18
20
|
|
|
19
21
|
## Usage Example
|
|
20
22
|
|
|
21
23
|
```typescript
|
|
22
|
-
import { ChatSidebar } from
|
|
24
|
+
import { ChatSidebar } from "./chat-sidebar"
|
|
23
25
|
|
|
24
|
-
function
|
|
25
|
-
const [dialogs, setDialogs] = useState([])
|
|
26
|
-
const [activeDialogId, setActiveDialogId] = useState(null)
|
|
27
|
-
|
|
26
|
+
function App() {
|
|
28
27
|
return (
|
|
29
28
|
<ChatSidebar
|
|
30
|
-
dialogs={
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
onLoadMore={() => console.log('Loading more dialogs')}
|
|
29
|
+
dialogs={[
|
|
30
|
+
{ id: "1", title: "Network Issue", timestamp: new Date(), unreadMessagesCount: 3 },
|
|
31
|
+
{ id: "2", title: "Server Setup", timestamp: new Date() },
|
|
32
|
+
]}
|
|
33
|
+
activeDialogId="1"
|
|
36
34
|
isLoading={false}
|
|
35
|
+
isCreatingDialog={false}
|
|
36
|
+
hasNextPage={true}
|
|
37
37
|
isFetchingNextPage={false}
|
|
38
|
+
onNewChat={() => console.log("New chat")}
|
|
39
|
+
onDialogSelect={(id) => console.log("Selected:", id)}
|
|
40
|
+
onLoadMore={() => fetchNextPage()}
|
|
38
41
|
/>
|
|
39
42
|
)
|
|
40
43
|
}
|
|
41
44
|
```
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
## Infinite Scroll
|
|
47
|
+
|
|
48
|
+
Pagination is handled automatically using an `IntersectionObserver` anchored to the bottom of the scroll container. When the sentinel element enters the viewport and `hasNextPage` is `true`, `onLoadMore` is called. Skeleton items are shown while `isFetchingNextPage` is active.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- source-hash: 6e8a04ae19bb53e1b3779c86e3a511c1 -->
|
|
2
|
+
Scrollable list component that renders a collection of `ChatTicketItem` cards with dynamic edge-fade masking based on scroll position.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`ChatTicketList`** — `forwardRef` component that wraps a scrollable ticket list with fade-in/out gradient masks at the top and bottom edges to indicate overflow content
|
|
7
|
+
- **`getMask(top, bottom)`** — Pure utility that computes a CSS `linear-gradient` mask string based on whether the scroll container has hidden content above or below
|
|
8
|
+
- **`updateFade`** — Scroll handler that compares `scrollTop`, `scrollHeight`, and `clientHeight` to toggle `fadeTop`/`fadeBottom` state, also triggered via `useLayoutEffect` when the ticket count changes
|
|
9
|
+
|
|
10
|
+
## Props
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Description |
|
|
13
|
+
|------|------|-------------|
|
|
14
|
+
| `tickets` | `ChatTicketItemData[]` | Array of ticket data to render |
|
|
15
|
+
| `onTicketClick` | `(ticketId: string) => void` | Optional click handler passed to each item |
|
|
16
|
+
| `className` | `string` | Additional CSS classes |
|
|
17
|
+
|
|
18
|
+
## Usage Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { ChatTicketList } from './chat-ticket-list'
|
|
22
|
+
|
|
23
|
+
const tickets = [
|
|
24
|
+
{ id: 'TKT-001', title: 'VPN not connecting', status: 'open' },
|
|
25
|
+
{ id: 'TKT-002', title: 'Printer offline', status: 'pending' },
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
function ChatSidebar() {
|
|
29
|
+
return (
|
|
30
|
+
<ChatTicketList
|
|
31
|
+
tickets={tickets}
|
|
32
|
+
onTicketClick={(id) => console.log('Selected ticket:', id)}
|
|
33
|
+
className="max-h-96"
|
|
34
|
+
/>
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
> Returns `null` when `tickets` is empty. Border radius and top/bottom borders are conditionally removed at scroll edges to visually blend with the fade mask.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- source-hash: 4f36d6b4b32c3b253b88e445f6e633a8 -->
|
|
2
|
+
A display component that shows context compaction status in a styled card, indicating either an in-progress summarization or a completed one.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`ContextCompactionDisplay`** — A forwarded-ref `div` component that renders a status banner with a label and icon based on the `status` prop
|
|
7
|
+
- **`status`** — Accepts `'started'` (in-progress) or any other value (completed), driving both the label text and icon displayed
|
|
8
|
+
- **Icons** — Uses `DotsLoaderIcon` for in-progress state and `CheckCircleIcon` for completed state
|
|
9
|
+
|
|
10
|
+
## Usage Example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { ContextCompactionDisplay } from "./context-compaction-display"
|
|
14
|
+
|
|
15
|
+
// In-progress state
|
|
16
|
+
<ContextCompactionDisplay status="started" />
|
|
17
|
+
// Renders: "Context limit reached. Summarizing earlier messages." + spinner
|
|
18
|
+
|
|
19
|
+
// Completed state
|
|
20
|
+
<ContextCompactionDisplay status="completed" />
|
|
21
|
+
// Renders: "Earlier context summarized." + check icon
|
|
22
|
+
|
|
23
|
+
// With custom className
|
|
24
|
+
<ContextCompactionDisplay
|
|
25
|
+
status="done"
|
|
26
|
+
className="my-2 w-full"
|
|
27
|
+
/>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Props
|
|
31
|
+
|
|
32
|
+
| Prop | Type | Description |
|
|
33
|
+
|------|------|-------------|
|
|
34
|
+
| `status` | `string` | `'started'` shows loader; any other value shows check icon |
|
|
35
|
+
| `className` | `string` | Optional additional CSS classes |
|
|
36
|
+
| `ref` | `React.Ref<HTMLDivElement>` | Forwarded ref to the root `div` |
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- source-hash: 9194bff6a46e5277230795354c61e35e -->
|
|
2
|
+
A React component that renders a terminal-style cycling text animation, morphing through a list of words character-by-character with a blinking block cursor.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `CyclingPhrase`
|
|
7
|
+
The default export. Cycles through `words` indefinitely using a left-to-right character overwrite morph — each character position transitions from the current word to the next, then holds before advancing.
|
|
8
|
+
|
|
9
|
+
### `CyclingPhraseProps`
|
|
10
|
+
|
|
11
|
+
| Prop | Type | Default | Description |
|
|
12
|
+
|------|------|---------|-------------|
|
|
13
|
+
| `words` | `readonly string[]` | — | Words to cycle through |
|
|
14
|
+
| `className` | `string` | — | Applied to outer `<span>` |
|
|
15
|
+
| `charMs` | `number` | `60` | Milliseconds per character during morph |
|
|
16
|
+
| `holdMs` | `number` | `4500` | Milliseconds to hold fully-typed word |
|
|
17
|
+
|
|
18
|
+
### State Machine
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
stateDiagram-v2
|
|
22
|
+
[*] --> Morphing
|
|
23
|
+
Morphing --> Holding: cursor >= maxLen
|
|
24
|
+
Holding --> Morphing: after holdMs
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Usage Example
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { CyclingPhrase } from "./cycling-phrase"
|
|
31
|
+
|
|
32
|
+
export function StatusBanner() {
|
|
33
|
+
return (
|
|
34
|
+
<p>
|
|
35
|
+
Mingo is{" "}
|
|
36
|
+
<CyclingPhrase
|
|
37
|
+
words={["Thinking", "Analyzing", "Vibing"]}
|
|
38
|
+
charMs={60}
|
|
39
|
+
holdMs={3000}
|
|
40
|
+
className="font-mono text-yellow-400"
|
|
41
|
+
/>
|
|
42
|
+
</p>
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
|
|
49
|
+
- **Layout stable**: width is pinned to the longest word using an invisible placeholder `<span>`, preventing layout shift as words change length.
|
|
50
|
+
- **Accessible**: visible text uses `aria-live="polite"`; the cursor block and placeholder are `aria-hidden`.
|
|
51
|
+
- **Style injection**: `BLINK_KEYFRAMES` is injected via `dangerouslySetInnerHTML` once per render tree — safe for multiple instances since CSS `@keyframes` rules are idempotent.
|
|
52
|
+
- A static `...` suffix always follows the word.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!-- source-hash: c87e4b417e41397ff1753b0ea0848f78 -->
|
|
2
|
+
Portable, lib-safe port of the hub's `<GlobalAskAI>` chat panel component, decoupled from all hub-only imports by routing navigation, identity, and transport decisions through a `useRequiredChatRuntime()` context hook.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `EmbeddableChat` | Component | Main embeddable chat panel with controlled/uncontrolled open state |
|
|
9
|
+
| `EmbeddableChatProps` | Interface | Full prop surface for the component |
|
|
10
|
+
| `dispatchSlashCommandAction` | Function | Maps slash-command action IDs (`browse`, `search`, `find`, `display`) to `ChatInputRef` mutations |
|
|
11
|
+
| `resolveChipIcon` | Function | Resolves a `ChatSource` to a Lucide icon via the icon registry |
|
|
12
|
+
| `SKELETON_ROW_VARIANTS` | Constant | Deterministic width palette for loading skeleton rows |
|
|
13
|
+
| `FALLBACK_TOP_RETRIEVED` | Constant | Number of fallback source chips shown when the model cites no sources (default: `3`) |
|
|
14
|
+
|
|
15
|
+
## Usage Example
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
// Host wires the runtime once at root
|
|
19
|
+
<HubRuntimeProvider source="hub" user={currentUser}>
|
|
20
|
+
<EmbeddableChat
|
|
21
|
+
emptyStateGreeting="How can I help you today?"
|
|
22
|
+
suggestedQueries={['How do I reset a password?', 'Show open tickets']}
|
|
23
|
+
enabledRagTableIds={enabledTableIds}
|
|
24
|
+
modes={{
|
|
25
|
+
guide: { tableIdForDocumentType },
|
|
26
|
+
mingo: { agentId: 'mingo-agent' },
|
|
27
|
+
}}
|
|
28
|
+
defaultActiveMode="guide"
|
|
29
|
+
extras={{ buildProgramProps, buildProductReleaseProps }}
|
|
30
|
+
/>
|
|
31
|
+
</HubRuntimeProvider>
|
|
32
|
+
|
|
33
|
+
// Controlled open state
|
|
34
|
+
<EmbeddableChat
|
|
35
|
+
open={isOpen}
|
|
36
|
+
onOpenChange={setIsOpen}
|
|
37
|
+
showInternalTrigger={false}
|
|
38
|
+
/>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Runtime Substitutions
|
|
42
|
+
|
|
43
|
+
| Hub Original | Lib Replacement |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `useAuth()` | `useRequiredChatRuntime().user` |
|
|
46
|
+
| `currentPlatform()` | `useRequiredChatRuntime().source` |
|
|
47
|
+
| `useNavLink` / `NavLinkAnchor` | `handleChatNavClick` + `NavLinkAnchorViaRuntime` |
|
|
48
|
+
| `useDocChat(source)` | `useSseChatAdapter()` (source from runtime) |
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!-- source-hash: 53782aa07fbb1aeb83e2d663969c62b0 -->
|
|
2
|
+
A simple animated chevron icon component that rotates 180° when an expanded state is active, commonly used for accordion and collapsible UI elements.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`ExpandChevronProps`** — Interface accepting:
|
|
7
|
+
- `expanded: boolean` — Controls rotation state of the chevron
|
|
8
|
+
- `className?: string` — Optional class overrides
|
|
9
|
+
- **`ExpandChevron`** — Client component rendering a `Chevron02DownIcon` with a smooth 200ms CSS transition
|
|
10
|
+
|
|
11
|
+
## Usage Example
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { ExpandChevron } from "./expand-chevron"
|
|
15
|
+
|
|
16
|
+
// Collapsed state (chevron points down)
|
|
17
|
+
<ExpandChevron expanded={false} />
|
|
18
|
+
|
|
19
|
+
// Expanded state (chevron rotates 180° to point up)
|
|
20
|
+
<ExpandChevron expanded={true} />
|
|
21
|
+
|
|
22
|
+
// With custom class
|
|
23
|
+
<ExpandChevron expanded={isOpen} className="text-ods-text-primary" />
|
|
24
|
+
```
|
|
@@ -1,46 +1,42 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 4f91f1efeb0b18cbf93d3b4ed385c331 -->
|
|
2
|
+
Central barrel export for the `chat` UI package — re-exports every public component, hook, utility, type, and constant from the chat feature module, making the entire surface area available via a single import path.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `EmbeddableChat` | Top-level chat orchestrator; mount once at the app root inside a `ChatRuntimeContext.Provider` |
|
|
9
|
+
| `ChatRef` | Type for imperative chat handle refs |
|
|
10
|
+
| `remarkCardLinks` | Remark plugin for rendering card-style links in chat messages |
|
|
11
|
+
| `NavLinkAnchorViaRuntime` | Runtime-aware navigation anchor component |
|
|
12
|
+
| `SourceActionButton` | Action button with configurable density for source references |
|
|
13
|
+
| `ChatAttachmentAddButton` / `ChatAttachmentChipStrip` | Attachment UI with MIME type constants and upload concurrency limits |
|
|
14
|
+
| `entity-cards` | Suite of 12+ refactored entity card components |
|
|
15
|
+
| `hooks` | All chat-related React hooks |
|
|
16
|
+
| `utils` | Chat utility functions |
|
|
17
|
+
| `types` | Shared chat types and constants |
|
|
16
18
|
|
|
17
19
|
## Usage Example
|
|
18
20
|
|
|
19
21
|
```typescript
|
|
20
|
-
// Import
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
// Import anything from the chat package via this single entry point
|
|
23
|
+
import {
|
|
24
|
+
EmbeddableChat,
|
|
25
|
+
ChatAttachmentAddButton,
|
|
26
|
+
CHAT_ATTACHMENT_MIME_TYPES,
|
|
27
|
+
type ChatRef,
|
|
28
|
+
type EmbeddableChatProps,
|
|
29
|
+
} from '@flamingo/chat'
|
|
30
|
+
|
|
31
|
+
function AppRoot() {
|
|
32
|
+
const chatRef = useRef<ChatRef>(null)
|
|
30
33
|
|
|
31
|
-
// Import hooks for state management
|
|
32
|
-
import { useChatMessages, useChatInput } from '@/components/chat'
|
|
33
|
-
|
|
34
|
-
function MyChat() {
|
|
35
|
-
const { messages, addMessage } = useChatMessages()
|
|
36
|
-
const { input, handleSend } = useChatInput()
|
|
37
|
-
|
|
38
34
|
return (
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
<ChatInput value={input} onSend={handleSend} />
|
|
43
|
-
</ChatContainer>
|
|
35
|
+
<ChatRuntimeContext.Provider value={runtime}>
|
|
36
|
+
<EmbeddableChat ref={chatRef} />
|
|
37
|
+
</ChatRuntimeContext.Provider>
|
|
44
38
|
)
|
|
45
39
|
}
|
|
46
|
-
```
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **Note:** This file is marked `'use client'` — all exports are React Client Components or client-safe utilities, intended for browser rendering in Next.js App Router environments.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!-- source-hash: 494a22f9a73827cd16b9d05722b58535 -->
|
|
2
|
+
Skeleton loading components for `MingoOnboardingCard` and its list container, providing pixel-accurate placeholder UI while slash-command data is fetched from `/api/docs/commands`.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `MingoOnboardingCardSkeleton` | Component | Single-row skeleton matching the live `MingoOnboardingCard` layout — icon slot, title bar, slash-command bar, description lines, and action chips |
|
|
9
|
+
| `MingoOnboardingListSkeleton` | Component | Wraps multiple `MingoOnboardingCardSkeleton` rows in the same bordered container used by the resolved list |
|
|
10
|
+
| `MingoOnboardingCardSkeletonProps` | Interface | Props for controlling bar widths, description line count, and chip configuration per card |
|
|
11
|
+
| `MingoOnboardingListSkeletonProps` | Interface | Props for row count and container className |
|
|
12
|
+
| `ROW_VARIANTS` | Constant | Deterministic width palette cycled by index — prevents uniform appearance without `Math.random` jitter on re-mount |
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Drop-in list skeleton while data loads
|
|
18
|
+
import { MingoOnboardingListSkeleton } from './mingo-onboarding-card-skeleton'
|
|
19
|
+
|
|
20
|
+
function SlashCommandPanel() {
|
|
21
|
+
const { data, isLoading } = useSlashCommands()
|
|
22
|
+
|
|
23
|
+
if (isLoading) {
|
|
24
|
+
return <MingoOnboardingListSkeleton rows={6} />
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return <MingoOnboardingList commands={data} />
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Single card skeleton with custom widths
|
|
31
|
+
import { MingoOnboardingCardSkeleton } from './mingo-onboarding-card-skeleton'
|
|
32
|
+
|
|
33
|
+
<MingoOnboardingCardSkeleton
|
|
34
|
+
titleWidth="w-44"
|
|
35
|
+
slashWidth="w-28"
|
|
36
|
+
descriptionLines={1}
|
|
37
|
+
chipWidths={['w-16', 'w-20']} // Pass [] to hide chip row
|
|
38
|
+
/>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- Wrap `MingoOnboardingCardSkeleton` rows in a `rounded-md border border-ods-border overflow-hidden` container to replicate the divider behaviour — each row's `border-b last:border-b-0` forms a 1px separator matching the live list.
|
|
44
|
+
- `MingoOnboardingListSkeleton` sets `role="status"`, `aria-label`, and `aria-busy` for accessible loading state announcement.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<!-- source-hash: 86ac59c4c1438a33b694f4b3fbba9291 -->
|
|
2
|
+
A chat empty-state onboarding card component that renders a single slash-command or feature row, supporting optional action buttons, icons, and interactive/non-interactive modes.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Interfaces
|
|
7
|
+
|
|
8
|
+
- **`MingoOnboardingCardAction`** — Defines a single action button with `id`, `label`, and `onClick` handler
|
|
9
|
+
- **`MingoOnboardingCardProps`** — Full card configuration including `icon`, `title`, `slashCommand`, `description`, `actions`, `onClick`, and `className`
|
|
10
|
+
|
|
11
|
+
### Component
|
|
12
|
+
|
|
13
|
+
- **`MingoOnboardingCard`** — Root component that conditionally renders as a `<button>` (when `onClick` is set and no `actions`) or a `<div>` (when `actions` are present or no `onClick`)
|
|
14
|
+
|
|
15
|
+
### Behavior Logic
|
|
16
|
+
|
|
17
|
+
| Condition | Rendered Element |
|
|
18
|
+
|-----------|-----------------|
|
|
19
|
+
| `onClick` set, no `actions` | `<button>` with hover/focus styles |
|
|
20
|
+
| `actions` present | `<div>` with per-action `<button>` chips |
|
|
21
|
+
| Neither | Static `<div>` |
|
|
22
|
+
|
|
23
|
+
## Usage Example
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import {
|
|
27
|
+
MingoOnboardingCard,
|
|
28
|
+
MingoOnboardingCardAction,
|
|
29
|
+
} from './mingo-onboarding-card'
|
|
30
|
+
|
|
31
|
+
// Static card with slash command
|
|
32
|
+
<MingoOnboardingCard
|
|
33
|
+
icon={<SearchIcon />}
|
|
34
|
+
title="Search Knowledge Base"
|
|
35
|
+
slashCommand="/search"
|
|
36
|
+
description="Find articles, runbooks, and past tickets"
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
// Interactive card (renders as <button>)
|
|
40
|
+
<MingoOnboardingCard
|
|
41
|
+
icon={<RoadmapIcon />}
|
|
42
|
+
title="View Roadmap"
|
|
43
|
+
slashCommand="/roadmap"
|
|
44
|
+
onClick={() => router.push('/roadmap')}
|
|
45
|
+
/>
|
|
46
|
+
|
|
47
|
+
// Card with action chips (renders as <div>)
|
|
48
|
+
const actions: MingoOnboardingCardAction[] = [
|
|
49
|
+
{ id: 'recent', label: 'Recent', onClick: () => fetchRecent() },
|
|
50
|
+
{ id: 'search', label: 'Search', onClick: (e) => { e.stopPropagation(); openSearch() } },
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
<MingoOnboardingCard
|
|
54
|
+
icon={<TicketIcon />}
|
|
55
|
+
title="Tickets"
|
|
56
|
+
slashCommand="/tickets"
|
|
57
|
+
description="Browse and manage open tickets"
|
|
58
|
+
actions={actions}
|
|
59
|
+
/>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
> **Note:** Stack multiple cards inside a `rounded-md` container — the `last:border-b-0` rule automatically removes the bottom divider from the final card, keeping the visual frame clean.
|
|
@@ -1,44 +1,46 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 75472e90962007832fb7ea753283d69c -->
|
|
2
|
+
Renders an inline pill showing the AI provider icon, model name, and token usage against the context window. When per-call token breakdown data is available, a hover card expands to show input/output splits across the answer model and any auxiliary Haiku sub-agents (rewriter, classifier, summarizer), plus an optional prompt-cache hit rate.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
| Export / Function | Description |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `ModelDisplay` | Primary `forwardRef` component rendering the inline token pill and optional hover card breakdown |
|
|
9
|
+
| `BreakdownRow` | Internal helper rendering a single `label / X in / Y out` row in the hover card |
|
|
10
|
+
| `getProviderIcon` | Maps provider string (`anthropic`, `openai`, `google`, etc.) to the corresponding grey logo icon |
|
|
11
|
+
| `formatTokenCount` | Formats raw token integers to human-readable strings (`1.2K`, `200M`, etc.) |
|
|
12
|
+
| `hasAnyBreakdownRow` | Guards hover card rendering — returns `true` only when at least one Haiku sub-agent row exists |
|
|
10
13
|
|
|
11
14
|
## Usage Example
|
|
12
15
|
|
|
13
16
|
```typescript
|
|
14
17
|
import { ModelDisplay } from './model-display';
|
|
15
18
|
|
|
16
|
-
//
|
|
17
|
-
<ModelDisplay
|
|
18
|
-
provider="anthropic"
|
|
19
|
-
modelName="claude-
|
|
19
|
+
// Minimal — inline pill only (no hover card)
|
|
20
|
+
<ModelDisplay
|
|
21
|
+
provider="anthropic"
|
|
22
|
+
modelName="claude-opus-4-5"
|
|
23
|
+
displayName="Claude Opus"
|
|
24
|
+
usedTokens={12_400}
|
|
25
|
+
contextWindow={200_000}
|
|
20
26
|
/>
|
|
21
27
|
|
|
22
|
-
// With
|
|
23
|
-
<ModelDisplay
|
|
24
|
-
provider="
|
|
25
|
-
modelName="
|
|
26
|
-
displayName="
|
|
28
|
+
// With full breakdown — activates hover card on mouse-over
|
|
29
|
+
<ModelDisplay
|
|
30
|
+
provider="anthropic"
|
|
31
|
+
modelName="claude-opus-4-5"
|
|
32
|
+
displayName="Claude Opus"
|
|
33
|
+
usedTokens={18_750}
|
|
34
|
+
contextWindow={200_000}
|
|
35
|
+
inputTokens={15_200}
|
|
36
|
+
outputTokens={3_550}
|
|
37
|
+
hitRatePct={34}
|
|
38
|
+
breakdown={{
|
|
39
|
+
haikuRewriter: { input: 420, output: 80 },
|
|
40
|
+
haikuClassifier: { input: 310, output: 45 },
|
|
41
|
+
haikuSummarizer: { input: 1100, output: 200 },
|
|
42
|
+
}}
|
|
27
43
|
/>
|
|
28
|
-
|
|
29
|
-
// With additional styling
|
|
30
|
-
<ModelDisplay
|
|
31
|
-
provider="google"
|
|
32
|
-
modelName="gemini-pro"
|
|
33
|
-
className="text-lg font-bold"
|
|
34
|
-
/>
|
|
35
|
-
|
|
36
|
-
// Supported provider strings
|
|
37
|
-
const providers = [
|
|
38
|
-
'anthropic', 'claude', // Claude icon
|
|
39
|
-
'openai', // OpenAI icon
|
|
40
|
-
'google', 'gemini', 'google-gemini', 'google_gemini' // Gemini icon
|
|
41
|
-
];
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
The
|
|
46
|
+
> **Note:** The `usedTokens` / `contextWindow` tail renders as soon as `contextWindow` is available, intentionally showing `—/200K tokens used` before the first usage frame arrives so users can see model capacity without waiting for streaming to begin.
|