@flamingo-stack/openframe-frontend-core 0.0.212 → 0.0.213-snapshot.20260528174436
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-QKFBZLIR.js → chunk-5OWDOFKK.js} +2 -2
- package/dist/chunk-CZR7ARBA.js +698 -0
- package/dist/chunk-CZR7ARBA.js.map +1 -0
- package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
- package/dist/chunk-HICZPTRR.js.map +1 -0
- package/dist/{chunk-5BNWGK6D.js → chunk-HWY35EAK.js} +3 -3
- package/dist/{chunk-VTUIMMHO.cjs → chunk-IZL2KEH6.cjs} +26 -26
- package/dist/{chunk-VTUIMMHO.cjs.map → chunk-IZL2KEH6.cjs.map} +1 -1
- package/dist/{chunk-ZFBLC5GV.cjs → chunk-KDNGUYZM.cjs} +17 -17
- package/dist/{chunk-ZFBLC5GV.cjs.map → chunk-KDNGUYZM.cjs.map} +1 -1
- package/dist/chunk-OZ3GH6OQ.cjs +698 -0
- package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
- package/dist/{chunk-3E5ANY55.js → chunk-UKND27XC.js} +410 -544
- package/dist/chunk-UKND27XC.js.map +1 -0
- package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
- package/dist/chunk-WT5JV2GS.cjs.map +1 -0
- package/dist/{chunk-WI76ZUBE.cjs → chunk-YZUUFTIK.cjs} +545 -679
- package/dist/chunk-YZUUFTIK.cjs.map +1 -0
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
- package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +5 -4
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +4 -3
- package/dist/components/contact/index.cjs +6 -5
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +5 -4
- package/dist/components/features/index.cjs +5 -4
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +4 -3
- package/dist/components/features/notifications/index.d.ts +2 -2
- package/dist/components/features/notifications/index.d.ts.map +1 -1
- package/dist/components/features/notifications/notifications-context.d.ts +16 -1
- package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
- package/dist/components/features/notifications/types.d.ts +4 -0
- package/dist/components/features/notifications/types.d.ts.map +1 -1
- package/dist/components/index.cjs +55 -54
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +7 -6
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +5 -4
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +4 -3
- package/dist/components/tickets/index.cjs +66 -65
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +6 -5
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/index.cjs +5 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +4 -3
- package/dist/embed-shims/index.cjs +3 -3
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +4 -4
- package/dist/hooks/index.cjs +3 -2
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/index.cjs +5 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -3
- package/dist/nats/index.cjs +28 -346
- package/dist/nats/index.cjs.map +1 -1
- package/dist/nats/index.d.ts +3 -0
- package/dist/nats/index.d.ts.map +1 -1
- package/dist/nats/index.js +30 -346
- package/dist/nats/index.js.map +1 -1
- package/dist/nats/nats-provider.d.ts +28 -0
- package/dist/nats/nats-provider.d.ts.map +1 -0
- package/dist/nats/nats.d.ts +1 -0
- package/dist/nats/nats.d.ts.map +1 -1
- package/dist/nats/shared-connection.d.ts +73 -0
- package/dist/nats/shared-connection.d.ts.map +1 -0
- package/dist/nats/use-nats-subscription.d.ts +18 -0
- package/dist/nats/use-nats-subscription.d.ts.map +1 -0
- 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/hooks/use-jetstream-dialog-subscription.ts +60 -207
- package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
- 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/features/notifications/index.ts +2 -1
- package/src/components/features/notifications/notifications-context.tsx +104 -6
- package/src/components/features/notifications/types.ts +5 -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/navigation/app-header.tsx +7 -9
- 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/nats/index.ts +3 -0
- package/src/nats/nats-provider.tsx +146 -0
- package/src/nats/nats.ts +2 -0
- package/src/nats/shared-connection.ts +285 -0
- package/src/nats/use-nats-subscription.ts +99 -0
- 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-3E5ANY55.js.map +0 -1
- package/dist/chunk-EH3RWVF3.cjs.map +0 -1
- package/dist/chunk-UYQOPC57.js.map +0 -1
- package/dist/chunk-WI76ZUBE.cjs.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-QKFBZLIR.js.map → chunk-5OWDOFKK.js.map} +0 -0
- /package/dist/{chunk-5BNWGK6D.js.map → chunk-HWY35EAK.js.map} +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- source-hash: e6e63274e2215026ef420402aa7a9e8f -->
|
|
2
|
+
A self-contained, reusable contact form component that supports both standard contact submission and custom ticket-creation flows via configurable props. It handles field visibility toggling, attachment staging, Zod validation, and dual submit paths (built-in API vs. caller-provided handler).
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
**Exported Types**
|
|
7
|
+
- `ContactFormHideableField` — Union type of the six fields that can be suppressed from the UI (`name`, `email`, `companySize`, `referralSource`, `helpCategory`, `message`)
|
|
8
|
+
- `ContactFormProps` — Full prop interface covering attribution, pre-fill, layout, submission, and slot customization
|
|
9
|
+
|
|
10
|
+
**Main Export**
|
|
11
|
+
- `ContactForm` — The primary form component
|
|
12
|
+
|
|
13
|
+
**Internal Hooks Used**
|
|
14
|
+
- `useForm` (react-hook-form) + `zodResolver` against `ContactSchema`
|
|
15
|
+
- `useContactSubmission` — built-in `/api/contact` submit path with toast + redirect
|
|
16
|
+
- `useChatAttachments` — file staging shared with the chat composer
|
|
17
|
+
- `useState` — tracks in-flight state for the custom submit path
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// Standard contact page — built-in submit flow
|
|
23
|
+
<ContactForm
|
|
24
|
+
userId={user?.id}
|
|
25
|
+
helpCategoryOptions={appConfig.contact.contactReasons}
|
|
26
|
+
rdtCid={getStoredRedditClickId()}
|
|
27
|
+
onSubmitSuccess={clearStoredRedditClickId}
|
|
28
|
+
/>
|
|
29
|
+
|
|
30
|
+
// Ticket creation — custom submit, hidden fields, extra Subject input
|
|
31
|
+
<ContactForm
|
|
32
|
+
hideFields={['name', 'email', 'companySize', 'referralSource', 'helpCategory']}
|
|
33
|
+
defaultValues={{ name: user.name, email: user.email, helpCategory: 'Support' }}
|
|
34
|
+
attachmentsEnabled
|
|
35
|
+
extraTopField={<SubjectInput value={subject} onChange={setSubject} />}
|
|
36
|
+
submitLabel="Open ticket"
|
|
37
|
+
onCustomSubmit={async (data, attachments) => {
|
|
38
|
+
await actions.submitTicket({ ...data, subject, attachments })
|
|
39
|
+
}}
|
|
40
|
+
/>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> **Note:** When hiding `name`, `email`, or `helpCategory`, you **must** supply their values via `defaultValues` — Zod still validates them even when the fields are not rendered. Hidden `<input type="hidden">` elements ensure react-hook-form includes them in the submit payload.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- source-hash: 29826720baf088c1409fbd30046713a4 -->
|
|
2
|
+
Re-exports the `ContactForm` component along with its associated TypeScript types from the `contact-form` module.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `ContactForm` | Component | The main contact form component |
|
|
9
|
+
| `ContactFormProps` | Type | Props interface for the `ContactForm` component |
|
|
10
|
+
| `ContactFormHideableField` | Type | Type representing fields that can be hidden in the form |
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import {
|
|
16
|
+
ContactForm,
|
|
17
|
+
type ContactFormProps,
|
|
18
|
+
type ContactFormHideableField,
|
|
19
|
+
} from '@/components/contact-form'
|
|
20
|
+
|
|
21
|
+
const hiddenFields: ContactFormHideableField[] = ['phone', 'company']
|
|
22
|
+
|
|
23
|
+
const props: ContactFormProps = {
|
|
24
|
+
onSubmit: (data) => console.log(data),
|
|
25
|
+
hideFields: hiddenFields,
|
|
26
|
+
}
|
|
27
|
+
```
|
|
@@ -1,53 +1,44 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component for managing arrays of
|
|
1
|
+
<!-- source-hash: 9a66a790bb4e14efee7ac5e9ffc0cfb8 -->
|
|
2
|
+
A generic, reusable React component for managing arrays of objects with inline add, edit, remove, and multi-line paste support. Supports both immediate and deferred (save-gated) change modes.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- **State Management** - Handles both immediate updates and draft mode with dirty state tracking
|
|
9
|
-
- **Paste Handling** - Smart multi-line paste support for bulk entry addition
|
|
6
|
+
### `ArrayEntryManager<T>`
|
|
7
|
+
A generic client component that renders a labeled list of editable input entries backed by a typed array.
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { ArrayEntryManager } from './array-entry-manager';
|
|
15
|
-
import { Github } from 'lucide-react';
|
|
9
|
+
**Props:**
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
| Prop | Type | Description |
|
|
12
|
+
|------|------|-------------|
|
|
13
|
+
| `title` | `ReactNode` | Section label; supports strings or badge components |
|
|
14
|
+
| `items` | `T[]` | Array of objects to manage |
|
|
15
|
+
| `onChange` | `(items: T[]) => void` | Called on change (immediate) or save (deferred) |
|
|
16
|
+
| `fieldKey` | `keyof T` | Object key to bind each input to |
|
|
17
|
+
| `requireSave` | `boolean` | When `true`, buffers edits locally until "Save" is clicked |
|
|
18
|
+
| `onDirtyChange` | `(isDirty: boolean) => void` | Notifies parent of unsaved changes |
|
|
19
|
+
| `renderLabel` | `(item: T, index: number) => ReactNode` | Custom renderer above each input |
|
|
20
|
+
| `isSaving` | `boolean` | Shows spinner on the save button during async operations |
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
**Behaviors:**
|
|
23
|
+
- **Draft mode** (`requireSave=true`): edits are buffered in local state; `onChange` fires only on explicit save
|
|
24
|
+
- **Immediate mode** (`requireSave=false`): every edit calls `onChange` directly
|
|
25
|
+
- **Multi-line paste**: pasting newline-separated values auto-creates multiple entries
|
|
26
|
+
- **Add at top**: new items are prepended for better UX
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
setIsSaving(true);
|
|
28
|
-
// Save to API
|
|
29
|
-
await saveReleases(items);
|
|
30
|
-
setIsSaving(false);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<ArrayEntryManager
|
|
35
|
-
title="GitHub Releases"
|
|
36
|
-
items={releases}
|
|
37
|
-
onChange={handleSave}
|
|
38
|
-
fieldKey="github_release_url"
|
|
39
|
-
placeholder="https://github.com/owner/repo/releases/tag/v1.0.0"
|
|
40
|
-
emptyMessage="No releases configured"
|
|
41
|
-
addButtonText="Add Release"
|
|
42
|
-
icon={<Github className="h-5 w-5" />}
|
|
43
|
-
requireSave={true}
|
|
44
|
-
isSaving={isSaving}
|
|
45
|
-
renderLabel={(item, index) =>
|
|
46
|
-
item.version && <span className="badge">{item.version}</span>
|
|
47
|
-
}
|
|
48
|
-
/>
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
```
|
|
28
|
+
## Usage Example
|
|
52
29
|
|
|
53
|
-
|
|
30
|
+
```typescript
|
|
31
|
+
<ArrayEntryManager<{ github_release_url: string }>
|
|
32
|
+
title="Release URLs"
|
|
33
|
+
items={releaseUrls}
|
|
34
|
+
onChange={setReleaseUrls}
|
|
35
|
+
fieldKey="github_release_url"
|
|
36
|
+
placeholder="https://github.com/org/repo/releases/tag/v1.0.0"
|
|
37
|
+
emptyMessage="No release URLs configured."
|
|
38
|
+
addButtonText="Add URL"
|
|
39
|
+
saveButtonText="Save URLs"
|
|
40
|
+
requireSave={true}
|
|
41
|
+
onDirtyChange={(dirty) => setHasUnsavedChanges(dirty)}
|
|
42
|
+
isSaving={isSaving}
|
|
43
|
+
/>
|
|
44
|
+
```
|
|
@@ -1,12 +1,35 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: 2cb028936365715865c9571d3df0261e -->
|
|
2
|
+
A reusable React component for managing a dynamic list of changelog entries, supporting add, remove, expand/collapse, and optional per-entry visibility toggling.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### `ChangelogManager` (default export)
|
|
7
|
+
|
|
8
|
+
A controlled list manager rendered as a collapsible accordion of `ChangelogEntry` items.
|
|
9
|
+
|
|
10
|
+
**Props (`ChangelogManagerProps`):**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Description |
|
|
13
|
+
|------|------|-------------|
|
|
14
|
+
| `title` | `string` | Section label displayed above the entry list |
|
|
15
|
+
| `entries` | `ChangelogEntry[]` | Controlled array of changelog entries |
|
|
16
|
+
| `onChange` | `(entries: ChangelogEntry[]) => void` | Callback fired on any mutation |
|
|
17
|
+
| `className` | `string?` | Optional wrapper class override |
|
|
18
|
+
| `expandAll` | `boolean?` | When `true`, expands all items (e.g. post-AI enrichment) |
|
|
19
|
+
| `showVisibilityToggle` | `boolean?` | Renders a per-entry `Eye`/`EyeOff` toggle; used by investor updates |
|
|
20
|
+
|
|
21
|
+
**Internal state:**
|
|
22
|
+
- `expandedIndices` — `Set<number>` tracking which accordion items are open
|
|
23
|
+
|
|
24
|
+
**Key functions:**
|
|
25
|
+
|
|
26
|
+
| Function | Behavior |
|
|
27
|
+
|----------|----------|
|
|
28
|
+
| `addEntry()` | Appends a blank entry and auto-expands it |
|
|
29
|
+
| `removeEntry(index)` | Removes entry and adjusts the expanded indices set |
|
|
30
|
+
| `updateEntry(index, field, value)` | Immutably updates a single field on an entry |
|
|
31
|
+
| `toggleExpanded(index)` | Toggles accordion open/close state |
|
|
32
|
+
| `toggleVisibility(index)` | Flips `visibility` between `'public'` and `'internal'` |
|
|
10
33
|
|
|
11
34
|
## Usage Example
|
|
12
35
|
|
|
@@ -14,20 +37,23 @@ A client-side React component for managing changelog entries with expandable/col
|
|
|
14
37
|
import { ChangelogManager } from './changelog-manager';
|
|
15
38
|
import type { ChangelogEntry } from '../../types/product-release';
|
|
16
39
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
40
|
+
const [entries, setEntries] = useState<ChangelogEntry[]>([]);
|
|
41
|
+
|
|
42
|
+
// Basic product release changelog
|
|
43
|
+
<ChangelogManager
|
|
44
|
+
title="What's New"
|
|
45
|
+
entries={entries}
|
|
46
|
+
onChange={setEntries}
|
|
47
|
+
/>
|
|
48
|
+
|
|
49
|
+
// Investor update with visibility control + auto-expand after AI fill
|
|
50
|
+
<ChangelogManager
|
|
51
|
+
title="Highlights"
|
|
52
|
+
entries={entries}
|
|
53
|
+
onChange={setEntries}
|
|
54
|
+
showVisibilityToggle
|
|
55
|
+
expandAll={aiEnrichmentComplete}
|
|
56
|
+
/>
|
|
31
57
|
```
|
|
32
58
|
|
|
33
|
-
|
|
59
|
+
> **Note:** `showVisibilityToggle` is intended for investor update flows. Leave it unset for standard product release changelogs to preserve their default UX. New entries default to `visibility: 'public'` when the toggle is enabled.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A React component that
|
|
1
|
+
<!-- source-hash: 25788d62c9b251ff8382443ab8b6fcff -->
|
|
2
|
+
A client-side React component that renders all four standard changelog sections (Features Added, Bugs Fixed, Improvements, Breaking Changes) as a unified, styled panel by composing multiple `ChangelogManager` instances.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
6
|
+
- **`ChangelogSectionsManager`** — Main exported component that groups and renders all changelog sections in a single card layout
|
|
7
|
+
- **`ChangelogSectionsManagerProps`** — Interface defining per-section entry arrays, change handlers, optional `className`, and `expandAll` flag
|
|
8
|
+
- **`expandAll`** — Boolean prop that expands all entries across all sections simultaneously, intended for use after AI enrichment populates fields
|
|
9
9
|
|
|
10
10
|
## Usage Example
|
|
11
11
|
|
|
@@ -13,27 +13,22 @@ A React component that organizes and manages changelog entries across four disti
|
|
|
13
13
|
import { ChangelogSectionsManager } from './changelog-sections-manager';
|
|
14
14
|
import type { ChangelogEntry } from '../../types/product-release';
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const [breaking, setBreaking] = useState<ChangelogEntry[]>([]);
|
|
16
|
+
const [featuresAdded, setFeaturesAdded] = useState<ChangelogEntry[]>([]);
|
|
17
|
+
const [bugsFixed, setBugsFixed] = useState<ChangelogEntry[]>([]);
|
|
18
|
+
const [improvements, setImprovements] = useState<ChangelogEntry[]>([]);
|
|
19
|
+
const [breakingChanges, setBreakingChanges] = useState<ChangelogEntry[]>([]);
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
className="my-4"
|
|
34
|
-
/>
|
|
35
|
-
);
|
|
36
|
-
}
|
|
21
|
+
<ChangelogSectionsManager
|
|
22
|
+
featuresAdded={featuresAdded}
|
|
23
|
+
bugsFixed={bugsFixed}
|
|
24
|
+
improvements={improvements}
|
|
25
|
+
breakingChanges={breakingChanges}
|
|
26
|
+
onFeaturesAddedChange={setFeaturesAdded}
|
|
27
|
+
onBugsFixedChange={setBugsFixed}
|
|
28
|
+
onImprovementsChange={setImprovements}
|
|
29
|
+
onBreakingChangesChange={setBreakingChanges}
|
|
30
|
+
expandAll={aiEnrichmentComplete}
|
|
31
|
+
/>
|
|
37
32
|
```
|
|
38
33
|
|
|
39
|
-
|
|
34
|
+
Each section delegates entry management (add, edit, remove) to its own `ChangelogManager` instance while sharing the `expandAll` state, keeping the parent component's state management straightforward with one array and one setter per section.
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
A
|
|
1
|
+
<!-- source-hash: b7d1c615d3d37a540958daff7feed5f3 -->
|
|
2
|
+
A reusable React component for displaying command strings in a styled monospace box with optional title and configurable action buttons.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
### Interfaces
|
|
7
|
+
|
|
8
|
+
| Interface | Description |
|
|
9
|
+
|-----------|-------------|
|
|
10
|
+
| `CommandBoxAction` | Defines a button with `label`, `onClick`, optional `variant`, `icon`, `disabled`, and `loading` states |
|
|
11
|
+
| `CommandBoxProps` | Component props including `command` (required), `title`, `primaryAction`, `secondaryAction`, layout classes, and `maxLines` |
|
|
12
|
+
|
|
13
|
+
### Exports
|
|
14
|
+
|
|
15
|
+
- **`CommandBox`** — Main component rendering the command display box
|
|
16
|
+
- **`CommandBoxAction`** — Interface for action button configuration
|
|
17
|
+
- **`CommandBoxProps`** — Interface for component props
|
|
10
18
|
|
|
11
19
|
## Usage Example
|
|
12
20
|
|
|
@@ -14,34 +22,29 @@ A unified React component for displaying commands with optional title and config
|
|
|
14
22
|
import { CommandBox } from '@flamingo/ui-kit/components/features'
|
|
15
23
|
import { Copy, Play } from 'lucide-react'
|
|
16
24
|
|
|
17
|
-
// Basic command display with copy action
|
|
18
25
|
<CommandBox
|
|
19
|
-
title="
|
|
20
|
-
command="
|
|
21
|
-
|
|
22
|
-
label: 'Copy',
|
|
23
|
-
onClick: () => navigator.clipboard.writeText(command),
|
|
24
|
-
icon: <Copy className="w-4 h-4" />,
|
|
25
|
-
variant: 'primary'
|
|
26
|
-
}}
|
|
27
|
-
/>
|
|
28
|
-
|
|
29
|
-
// Multi-line command with line limiting
|
|
30
|
-
<CommandBox
|
|
31
|
-
command="curl -L https://example.com/install.sh | bash -s -- --config production"
|
|
32
|
-
maxLines={2}
|
|
26
|
+
title="Device Add Command"
|
|
27
|
+
command="curl -L https://example.com/install.sh | bash"
|
|
28
|
+
maxLines={3}
|
|
33
29
|
primaryAction={{
|
|
34
30
|
label: 'Copy Command',
|
|
35
|
-
onClick:
|
|
36
|
-
|
|
31
|
+
onClick: () => navigator.clipboard.writeText(command),
|
|
32
|
+
icon: <Copy className="w-5 h-5" />,
|
|
33
|
+
variant: 'accent'
|
|
37
34
|
}}
|
|
38
35
|
secondaryAction={{
|
|
39
|
-
label: '
|
|
40
|
-
onClick:
|
|
41
|
-
icon: <Play className="w-
|
|
42
|
-
|
|
36
|
+
label: 'Run on Machine',
|
|
37
|
+
onClick: handleRun,
|
|
38
|
+
icon: <Play className="w-5 h-5" />,
|
|
39
|
+
variant: 'outline',
|
|
40
|
+
loading: isRunning
|
|
43
41
|
}}
|
|
44
42
|
/>
|
|
45
43
|
```
|
|
46
44
|
|
|
47
|
-
|
|
45
|
+
## Notes
|
|
46
|
+
|
|
47
|
+
- **Line clamping** uses a static `lineClampClasses` map (`1–6`) to ensure Tailwind generates the correct `line-clamp-*` classes at build time. Set `maxLines={0}` (default) for unlimited display.
|
|
48
|
+
- **Button layout** stacks vertically on mobile and aligns right horizontally on `md+` screens.
|
|
49
|
+
- Secondary action renders before the primary action visually, consistent with standard UI conventions.
|
|
50
|
+
- `variant` defaults to `'accent'` for primary and `'outline'` for secondary if not specified.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- source-hash: 87dfd7f5b94bff0f44ed579685785b88 -->
|
|
2
|
+
Reusable editor component for entity summary fields with AI generation badges and confidence score display.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
**`EntitySummaryEditor`** — Default export. A controlled textarea editor with optional AI metadata indicators.
|
|
7
|
+
|
|
8
|
+
**`EntitySummaryEditorProps`** — TypeScript interface defining all configurable props:
|
|
9
|
+
|
|
10
|
+
| Prop | Type | Default | Description |
|
|
11
|
+
|------|------|---------|-------------|
|
|
12
|
+
| `summary` | `string` | `''` | Controlled text value |
|
|
13
|
+
| `onSummaryChange` | `(value: string) => void` | required | Change handler |
|
|
14
|
+
| `isAIGenerated` | `boolean` | `false` | Shows AI Generated badge |
|
|
15
|
+
| `summaryConfidence` | `number \| null` | — | Confidence score (0–100) |
|
|
16
|
+
| `label` | `string` | `'Summary (Markdown supported)'` | Field label |
|
|
17
|
+
| `helperText` | `string` | `'Entity summary...'` | Subtext below label |
|
|
18
|
+
| `placeholder` | `string` | `'Brief summary...'` | Textarea placeholder |
|
|
19
|
+
| `minHeight` | `number` | `200` | Minimum height in px |
|
|
20
|
+
| `disabled` | `boolean` | `false` | Disables the textarea |
|
|
21
|
+
| `className` | `string` | `''` | Container class override |
|
|
22
|
+
|
|
23
|
+
## Usage Example
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { EntitySummaryEditor } from './entity-summary-editor';
|
|
27
|
+
|
|
28
|
+
function ReleaseForm() {
|
|
29
|
+
const [summary, setSummary] = React.useState('');
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<EntitySummaryEditor
|
|
33
|
+
summary={summary}
|
|
34
|
+
onSummaryChange={setSummary}
|
|
35
|
+
isAIGenerated={true}
|
|
36
|
+
summaryConfidence={87}
|
|
37
|
+
label="Release Summary (Markdown supported)"
|
|
38
|
+
helperText="Displayed on release cards and detail page."
|
|
39
|
+
placeholder="Describe this release..."
|
|
40
|
+
minHeight={240}
|
|
41
|
+
/>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
When `isAIGenerated` is `true`, a `Sparkles` icon badge renders next to the label. When `summaryConfidence` is provided, `ConfidenceBadge` renders inline showing the AI confidence percentage.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<!-- source-hash: e2ba951ef60128447d27416a00b1a586 -->
|
|
2
|
+
Renders the video block for entity detail pages, combining full video, highlight video, AI-generated summary, and video bites into a unified tabbed layout.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `EntityVideoSection` (default export)
|
|
7
|
+
Main component that orchestrates the video display logic:
|
|
8
|
+
- **Tab UI** — renders "Full Video" / "Highlights" tabs when both a full video and highlight video are present; falls back to a single `<Video>` when only one exists
|
|
9
|
+
- **YouTube precedence** — resolves `youtubeUrl` vs `mainVideoUrl` priority at this level, keeping `<Video>` as a single-source-per-render primitive
|
|
10
|
+
- **Video summary** — renders an AI-generated markdown summary via injected `MarkdownRenderer`
|
|
11
|
+
- **Video bites grid** — delegates to `<VideoBitesDisplay>` when `videoBites` are provided
|
|
12
|
+
- **Null guard** — returns `null` when no video, summary, or bites are present
|
|
13
|
+
|
|
14
|
+
### `EntityVideoSectionProps`
|
|
15
|
+
Full interface for controlling content and behavior:
|
|
16
|
+
|
|
17
|
+
| Prop | Type | Description |
|
|
18
|
+
|------|------|-------------|
|
|
19
|
+
| `youtubeUrl` | `string \| null` | YouTube URL (takes priority over `mainVideoUrl`) |
|
|
20
|
+
| `mainVideoUrl` | `string \| null` | Uploaded video URL |
|
|
21
|
+
| `highlightVideoUrl` | `string \| null` | AI-generated highlight clip |
|
|
22
|
+
| `captionsUrl` | `string \| null` | HTTPS URL to a VTT captions file |
|
|
23
|
+
| `MarkdownRenderer` | `ComponentType` | Injected renderer for summary markdown |
|
|
24
|
+
| `priority` | `boolean` | LCP hint for eager poster loading |
|
|
25
|
+
| `srtContent` | `string \| null` | Deprecated — use `captionsUrl` |
|
|
26
|
+
|
|
27
|
+
## Usage Example
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { EntityVideoSection } from './entity-video-section';
|
|
31
|
+
import { MarkdownRenderer } from '@/components/markdown-renderer';
|
|
32
|
+
|
|
33
|
+
export function TalkDetailPage({ talk }) {
|
|
34
|
+
return (
|
|
35
|
+
<EntityVideoSection
|
|
36
|
+
youtubeUrl={talk.youtubeUrl}
|
|
37
|
+
mainVideoUrl={talk.videoUrl}
|
|
38
|
+
highlightVideoUrl={talk.highlightUrl}
|
|
39
|
+
highlightVideoThumbnail={talk.highlightThumb}
|
|
40
|
+
mainVideoPoster={talk.posterUrl}
|
|
41
|
+
title={talk.title}
|
|
42
|
+
videoSummary={talk.aiSummary}
|
|
43
|
+
videoBites={talk.bites}
|
|
44
|
+
bitesTitle="Key Moments"
|
|
45
|
+
captionsUrl={talk.captionsUrl}
|
|
46
|
+
MarkdownRenderer={MarkdownRenderer}
|
|
47
|
+
priority
|
|
48
|
+
/>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
@@ -1,45 +1,64 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: d8463fe41098681892c9956a4d6c77ce -->
|
|
2
|
+
Renders an interactive Figma prototype viewer component with responsive layout, automatic device detection, section navigation, and scaled iframe embedding for both desktop and mobile viewports.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
6
|
+
### Interfaces & Types
|
|
7
|
+
- **`FigmaPrototypeViewerConfig`** — Main configuration object; accepts file keys (per-device or legacy single), sections, dimensions, starting points, and UI class overrides
|
|
8
|
+
- **`FigmaPrototypeSection`** — Defines a navigable prototype section with separate desktop/mobile node IDs
|
|
9
|
+
- **`UnifiedState`** — Consolidated state shape covering view mode, iframe lifecycle, scaling, UI visibility flags, and navigation
|
|
10
|
+
- **`ViewMode`** — `'DESKTOP' | 'MOBILE' | 'MOBILE_TOUCH'`
|
|
11
|
+
- **`IframeState`** — `'INITIAL' | 'LOADING' | 'READY' | 'RELOADING' | 'SLEEP_RECOVERY'`
|
|
12
|
+
|
|
13
|
+
### Core Functions
|
|
14
|
+
- **`getViewMode(screenWidth, isTouchDevice)`** — Derives current `ViewMode` from screen width against the 768px breakpoint
|
|
15
|
+
- **`calculateScaling(viewMode, containerDimensions, config?)`** — Computes `scale`, `marginX/Y`, and `scaledDimensions` to fit content without upscaling
|
|
16
|
+
- **`resolveFileKey(config, viewMode)`** — Picks the correct Figma file key via env vars → per-device config → legacy `fileKey`
|
|
17
|
+
- **`resolveStartingPoint(config, viewMode, section?)`** — Resolves the initial prototype node via env vars → config → first section fallback
|
|
18
|
+
- **`generateEmbedUrl(...)`** — Builds the `embed.figma.com/proto` URL with all required query parameters
|
|
19
|
+
- **`renderUnifiedUI(state, handlers, config, iframeRef)`** — Pure render function producing the full component JSX from state
|
|
20
|
+
|
|
21
|
+
### Environment Variable Overrides
|
|
22
|
+
Content dimensions and file keys can be set at the environment level:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
NEXT_PUBLIC_FIGMA_MOBILE_FILE_KEY
|
|
26
|
+
NEXT_PUBLIC_FIGMA_DESKTOP_FILE_KEY
|
|
27
|
+
NEXT_PUBLIC_FIGMA_MOBILE_STARTING_POINT
|
|
28
|
+
NEXT_PUBLIC_FIGMA_DESKTOP_STARTING_POINT
|
|
29
|
+
NEXT_PUBLIC_FIGMA_MOBILE_WIDTH / _HEIGHT
|
|
30
|
+
NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH / _HEIGHT
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Priority order: **env vars → config props → defaults**
|
|
12
34
|
|
|
13
35
|
## Usage Example
|
|
14
36
|
|
|
15
37
|
```typescript
|
|
16
38
|
import { FigmaPrototypeViewer } from './figma-prototype-viewer'
|
|
39
|
+
import type { FigmaPrototypeViewerConfig } from './figma-prototype-viewer'
|
|
17
40
|
|
|
18
|
-
const config = {
|
|
19
|
-
title:
|
|
20
|
-
desktopFileKey:
|
|
21
|
-
mobileFileKey:
|
|
41
|
+
const config: FigmaPrototypeViewerConfig = {
|
|
42
|
+
title: 'Onboarding Flow',
|
|
43
|
+
desktopFileKey: 'abc123XYZ',
|
|
44
|
+
mobileFileKey: 'xyz789ABC',
|
|
45
|
+
desktopStartingPoint: '1:23',
|
|
46
|
+
mobileStartingPoint: '4:56',
|
|
22
47
|
sections: [
|
|
23
48
|
{
|
|
24
|
-
id:
|
|
25
|
-
number:
|
|
26
|
-
title:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
49
|
+
id: 'sign-up',
|
|
50
|
+
number: '01',
|
|
51
|
+
title: 'Sign Up',
|
|
52
|
+
description: 'New user registration flow',
|
|
53
|
+
startingNodeId: '1:23',
|
|
54
|
+
mobileStartingNodeId: '4:56',
|
|
55
|
+
},
|
|
30
56
|
],
|
|
57
|
+
mobileContentDimensions: { width: 343, height: 600 },
|
|
31
58
|
desktopContentDimensions: { width: 944, height: 600 },
|
|
32
|
-
mobileContentDimensions: { width: 343, height: 600 }
|
|
33
59
|
}
|
|
34
60
|
|
|
35
|
-
function PrototypePage() {
|
|
36
|
-
return
|
|
37
|
-
<FigmaPrototypeViewer
|
|
38
|
-
config={config}
|
|
39
|
-
onSectionClick={(sectionId) => console.log('Section changed:', sectionId)}
|
|
40
|
-
/>
|
|
41
|
-
)
|
|
61
|
+
export default function PrototypePage() {
|
|
62
|
+
return <FigmaPrototypeViewer config={config} />
|
|
42
63
|
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
The component automatically detects device capabilities, manages iframe states (loading, ready, reloading), and provides smooth transitions between sections. Environment variables can override config settings for deployment flexibility.
|
|
64
|
+
```
|