@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
package/src/types/.blog.md
CHANGED
|
@@ -1,41 +1,65 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 8148802670f3c4122204649c0bccdbcd -->
|
|
2
|
+
Type definitions for the Flamingo blog system, covering database models, form data, query options, SEO analysis, and filtering structures used across the blog feature.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `BlogPost` | Interface | Core database model with SEO fields, relationships, and raw API response structure |
|
|
9
|
+
| `BlogStatus` | Union Type | Post lifecycle states: `draft`, `ai_drafted`, `published`, `ai_published`, `scheduled`, `archived` |
|
|
10
|
+
| `Platform` | Type | String alias for platform identifiers (fetched dynamically from DB) |
|
|
11
|
+
| `CreateBlogPostData` | Interface | Payload shape for creating new posts including platforms, categories, and tags |
|
|
12
|
+
| `UpdateBlogPostData` | Interface | Partial update payload for existing posts |
|
|
13
|
+
| `GetBlogPostsOptions` | Interface | Query filters including pagination, sorting, platform, and search |
|
|
14
|
+
| `BlogPostStats` | Interface | Dashboard aggregates with per-platform post counts |
|
|
15
|
+
| `SEOAnalysisResult` | Interface | Scored SEO breakdown with keyword density, suggestions, errors, and warnings |
|
|
16
|
+
| `BlogPagination` | Interface | Paginated response wrapping `BlogPostSummary` records |
|
|
17
|
+
| `BlogPostSummary` | Interface | Lightweight post projection for listing pages |
|
|
18
|
+
| `BlogFilters` | Interface | Filter options (categories + tags) for sidebar filtering UI |
|
|
14
19
|
|
|
15
20
|
## Usage Example
|
|
16
21
|
|
|
17
22
|
```typescript
|
|
18
|
-
import {
|
|
23
|
+
import type {
|
|
24
|
+
BlogPost,
|
|
25
|
+
CreateBlogPostData,
|
|
26
|
+
GetBlogPostsOptions,
|
|
27
|
+
SEOAnalysisResult
|
|
28
|
+
} from './blog'
|
|
19
29
|
|
|
20
|
-
//
|
|
30
|
+
// Fetch options with filtering and pagination
|
|
31
|
+
const options: GetBlogPostsOptions = {
|
|
32
|
+
platform: 'flamingo',
|
|
33
|
+
status: 'published',
|
|
34
|
+
page: 1,
|
|
35
|
+
pageSize: 10,
|
|
36
|
+
sortBy: 'published_at',
|
|
37
|
+
sortOrder: 'desc',
|
|
38
|
+
search: 'automation'
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Create post payload
|
|
21
42
|
const newPost: CreateBlogPostData = {
|
|
22
|
-
title:
|
|
23
|
-
slug:
|
|
24
|
-
content:
|
|
25
|
-
author_id:
|
|
26
|
-
status:
|
|
27
|
-
platforms: [
|
|
43
|
+
title: 'Getting Started with OpenFrame',
|
|
44
|
+
slug: 'getting-started-openframe',
|
|
45
|
+
content: '...',
|
|
46
|
+
author_id: 'user-123',
|
|
47
|
+
status: 'draft',
|
|
48
|
+
platforms: ['flamingo', 'openframe'],
|
|
28
49
|
categories: [1, 3],
|
|
29
|
-
tags: [5
|
|
30
|
-
}
|
|
50
|
+
tags: [5]
|
|
51
|
+
}
|
|
31
52
|
|
|
32
|
-
//
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
// SEO result from analysis service
|
|
54
|
+
const seo: SEOAnalysisResult = {
|
|
55
|
+
overall_score: 82,
|
|
56
|
+
title_score: 90,
|
|
57
|
+
meta_description_score: 75,
|
|
58
|
+
content_score: 85,
|
|
59
|
+
readability_score: 78,
|
|
60
|
+
keyword_density: { 'openframe': 0.03 },
|
|
61
|
+
suggestions: ['Add more internal links'],
|
|
62
|
+
errors: [],
|
|
63
|
+
warnings: ['Meta description slightly short']
|
|
64
|
+
}
|
|
41
65
|
```
|
package/src/types/.case-study.md
CHANGED
|
@@ -1,38 +1,55 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 347abba356d14a3c4bf7cf70892add4e -->
|
|
2
|
+
Defines TypeScript interfaces and types for the Case Study content entity within the Flamingo/OpenMSP platform, following the same structural pattern as `blog.ts`.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `CaseStudy` | `interface` | Full case study record with all fields, relations, and metadata |
|
|
9
|
+
| `CreateCaseStudyData` | `interface` | Payload shape for creating a new case study |
|
|
10
|
+
| `UpdateCaseStudyData` | `type` | Partial version of `CreateCaseStudyData` for updates |
|
|
11
|
+
| `CaseStudyFilters` | `interface` | Query filter options for listing/searching case studies |
|
|
12
|
+
| `CaseStudyListResponse` | `interface` | Paginated response wrapper for case study arrays |
|
|
11
13
|
|
|
12
14
|
## Usage Example
|
|
13
15
|
|
|
14
16
|
```typescript
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
import type {
|
|
18
|
+
CaseStudy,
|
|
19
|
+
CreateCaseStudyData,
|
|
20
|
+
CaseStudyFilters,
|
|
21
|
+
CaseStudyListResponse
|
|
22
|
+
} from './case-study'
|
|
23
|
+
|
|
24
|
+
// Create a new case study
|
|
25
|
+
const payload: CreateCaseStudyData = {
|
|
26
|
+
title: 'How Acme IT Reduced Ticket Volume by 40%',
|
|
27
|
+
slug: 'acme-it-ticket-reduction',
|
|
28
|
+
status: 'draft',
|
|
29
|
+
author_id: 'uuid-author',
|
|
30
|
+
platforms: ['uuid-platform-1'],
|
|
31
|
+
tags: [1, 2],
|
|
32
|
+
challenge: 'High volume of repetitive L1 tickets...',
|
|
33
|
+
solution: 'Deployed Mingo AI with automated triage...',
|
|
34
|
+
results: '40% reduction in ticket volume in 30 days.',
|
|
35
|
+
testimonial_video_url: 'https://www.youtube.com/watch?v=EXAMPLE',
|
|
28
36
|
}
|
|
29
37
|
|
|
30
|
-
//
|
|
38
|
+
// Filter published case studies by industry
|
|
31
39
|
const filters: CaseStudyFilters = {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
limit: 10
|
|
40
|
+
industry: 'healthcare',
|
|
41
|
+
status: 'published',
|
|
42
|
+
limit: 10,
|
|
43
|
+
offset: 0,
|
|
37
44
|
}
|
|
38
|
-
|
|
45
|
+
|
|
46
|
+
// Typed paginated response
|
|
47
|
+
const response: CaseStudyListResponse = await fetchCaseStudies(filters)
|
|
48
|
+
console.log(response.count, response.data)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Notes
|
|
52
|
+
|
|
53
|
+
- **Video fields**: `testimonial_video_url` (YouTube, preferred) and `main_video_url` (uploaded fallback) follow the same `ENTITY_FIELD_CONFIG` convention used across `customer_interviews`, `webinars`, `podcasts`, and `investor_updates`.
|
|
54
|
+
- **MSP relation**: Company, industry, and testimonial data are resolved indirectly via `user.msp_id`, not stored directly on the case study.
|
|
55
|
+
- `video_source_type` is deprecated — consumers should detect source from URL presence instead.
|
|
@@ -1,52 +1,74 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
|
|
1
|
+
<!-- source-hash: 110781f95cc87ef6269255e1ff54d089 -->
|
|
2
|
+
Brief description: Defines TypeScript types and interfaces for the Customer Interview content module, covering the full lifecycle from creation and AI processing to publishing and analytics within the Flamingo/OpenFrame platform.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
- **`CustomerInterviewFilters`** - Query filtering by platform, industry, status, and search terms
|
|
16
|
-
|
|
17
|
-
### AI Processing
|
|
18
|
-
The interface tracks AI processing states for:
|
|
19
|
-
- Transcript generation (AssemblyAI integration)
|
|
20
|
-
- Summary extraction with bullet points and gist
|
|
21
|
-
- Video clip identification (TwelveLabs integration)
|
|
22
|
-
- Speaker identification with confidence scoring
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `CustomerInterview` | Interface | Core entity representing a recorded customer interview with all fields including video, AI processing state, SEO, and relations |
|
|
9
|
+
| `CustomerInterviewConfig` | Interface | Per-interview configuration options (highlight video duration, subtitle burning) |
|
|
10
|
+
| `CreateCustomerInterviewData` | Interface | Input shape for creating a new interview record |
|
|
11
|
+
| `UpdateCustomerInterviewData` | Type alias | Partial version of `CreateCustomerInterviewData` for patch updates |
|
|
12
|
+
| `CustomerInterviewFilters` | Interface | Query filter options for listing interviews (platform, industry, search, pagination) |
|
|
13
|
+
| `CustomerInterviewListResponse` | Interface | Paginated response wrapper for interview list queries |
|
|
14
|
+
| Re-exports | Types | `VideoTeaser`, `Speaker`, `VideoClip`, `TranscriptWord`, `SpeakerMapping`, `ExcludedRange` from `./video-processing` for backwards compatibility |
|
|
23
15
|
|
|
24
16
|
## Usage Example
|
|
25
17
|
|
|
26
18
|
```typescript
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
19
|
+
import type {
|
|
20
|
+
CustomerInterview,
|
|
21
|
+
CreateCustomerInterviewData,
|
|
22
|
+
CustomerInterviewFilters,
|
|
23
|
+
CustomerInterviewListResponse
|
|
24
|
+
} from './customer-interview'
|
|
25
|
+
|
|
26
|
+
// Creating a new interview
|
|
27
|
+
const payload: CreateCustomerInterviewData = {
|
|
28
|
+
title: 'How Acme IT Scaled Support with Flamingo',
|
|
29
|
+
slug: 'acme-it-flamingo-interview',
|
|
30
|
+
status: 'draft',
|
|
31
|
+
author_id: 'user-uuid-123',
|
|
32
|
+
platforms: ['platform-uuid-abc'],
|
|
33
|
+
user_id: 'customer-uuid-456',
|
|
34
|
+
main_video_url: 'https://cdn.example.com/interviews/acme.mp4',
|
|
35
|
+
config: {
|
|
36
|
+
highlight_target_duration_seconds: 120,
|
|
37
|
+
skipSubtitleBurning: false
|
|
38
|
+
},
|
|
39
|
+
custom_instructions: 'Focus on ROI and ticket volume reduction metrics.'
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Filtering interviews for a listing page
|
|
46
43
|
const filters: CustomerInterviewFilters = {
|
|
47
|
-
platform:
|
|
48
|
-
status:
|
|
49
|
-
|
|
50
|
-
limit:
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
platform: 'all',
|
|
45
|
+
status: 'completed',
|
|
46
|
+
search: 'managed services',
|
|
47
|
+
limit: 12,
|
|
48
|
+
offset: 0
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Consuming a list response
|
|
52
|
+
async function fetchInterviews(
|
|
53
|
+
filters: CustomerInterviewFilters
|
|
54
|
+
): Promise<CustomerInterviewListResponse> {
|
|
55
|
+
const response = await api.get('/interviews', { params: filters })
|
|
56
|
+
return response.data
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Checking AI processing state
|
|
60
|
+
function isReadyToPublish(interview: CustomerInterview): boolean {
|
|
61
|
+
return (
|
|
62
|
+
interview.ai_transcript_status === 'completed' &&
|
|
63
|
+
interview.ai_summary_status === 'completed' &&
|
|
64
|
+
interview.status === 'draft'
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Notes
|
|
70
|
+
|
|
71
|
+
- AI processing fields (`ai_transcript_status`, `ai_summary_status`, `ai_clips_status`) follow a `pending → processing → completed | failed` lifecycle driven by **AssemblyAI** (transcription) and **TwelveLabs** (video understanding).
|
|
72
|
+
- `speaker_mapping` maps AssemblyAI speaker labels (e.g. `"A"`, `"B"`) to real `UserProfile` identities resolved during transcription.
|
|
73
|
+
- `incentive_excluded_ranges` stores timestamp ranges where promotional/incentive language was detected and should be excluded from highlight clip generation.
|
|
74
|
+
- Relations (`user`, `msp`, `author`, `case_study`, `platforms`) are populated only when explicitly joined — treat them as optional at the call site.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- source-hash: e2c52b22632b1213075a4266559e9a2b -->
|
|
2
|
+
Shared wire types for the Delivery (ClickUp bug-fixes & enhancements) surface, used by both the hub's `/api/delivery*` routes and the lib's `DeliveryTable`/`DeliveryLists`/`DeliverySection` components.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `DeliveryItem` | `interface` | Canonical shape for a single ClickUp task (bug or enhancement) |
|
|
9
|
+
| `DeliveryResponse` | `interface` | API response envelope splitting items into `completed` and `inProgress` buckets |
|
|
10
|
+
| `TASK_TYPE_LABELS` | `const` | Maps ClickUp task types to display badge labels (`Request` → `ENHANCEMENT`, `Bug` → `BUG-FIX`) |
|
|
11
|
+
| `TASK_TYPE_TEXT_COLORS` | `const` | Maps task types to ODS CSS token classes (attention-red for bugs) |
|
|
12
|
+
|
|
13
|
+
### `DeliveryItem` Notable Fields
|
|
14
|
+
|
|
15
|
+
| Field | Type | Notes |
|
|
16
|
+
|-------|------|-------|
|
|
17
|
+
| `customItemId` | `number \| null` | ClickUp `custom_item_id` used to render a `TaskTypeIcon` instead of initials fallback |
|
|
18
|
+
| `listNames` | `string[]` | All ClickUp lists the task belongs to; falls back to a single-element array |
|
|
19
|
+
| `dateClosed` | `number \| null` | Unix timestamp; `null` when task is still open |
|
|
20
|
+
|
|
21
|
+
## Usage Example
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import {
|
|
25
|
+
DeliveryItem,
|
|
26
|
+
DeliveryResponse,
|
|
27
|
+
TASK_TYPE_LABELS,
|
|
28
|
+
TASK_TYPE_TEXT_COLORS,
|
|
29
|
+
} from '@your-lib/types/delivery';
|
|
30
|
+
|
|
31
|
+
// Consuming an API response
|
|
32
|
+
const response: DeliveryResponse = await fetch('/api/delivery').then(r => r.json());
|
|
33
|
+
|
|
34
|
+
// Rendering a badge label and color
|
|
35
|
+
function getTaskBadge(item: DeliveryItem) {
|
|
36
|
+
const label = TASK_TYPE_LABELS[item.taskType as keyof typeof TASK_TYPE_LABELS] ?? item.taskType;
|
|
37
|
+
const color = TASK_TYPE_TEXT_COLORS[item.taskType as keyof typeof TASK_TYPE_TEXT_COLORS] ?? '';
|
|
38
|
+
return { label, color };
|
|
39
|
+
}
|
|
40
|
+
```
|
package/src/types/.employee.md
CHANGED
|
@@ -1,42 +1,36 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Defines TypeScript interfaces for employee data structures used
|
|
1
|
+
<!-- source-hash: c1dd04b1f059ffd424cb55cea9d504ed -->
|
|
2
|
+
Defines TypeScript interfaces for employee data structures used across the Flamingo platform for managing and displaying employee information.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
| Interface | Description |
|
|
7
|
+
|-----------|-------------|
|
|
8
|
+
| `Employee` | Full employee record including identity, role, and optional location |
|
|
9
|
+
| `EmployeeResponse` | API response wrapper containing a success flag and array of `Employee` records |
|
|
10
|
+
| `EmployeeProfileData` | Slim profile subset used for display contexts (excludes `id`, `about`, `location_country`) |
|
|
9
11
|
|
|
10
12
|
## Usage Example
|
|
11
13
|
|
|
12
14
|
```typescript
|
|
13
15
|
import { Employee, EmployeeResponse, EmployeeProfileData } from './employee';
|
|
14
16
|
|
|
15
|
-
//
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
success: true,
|
|
29
|
-
data: [newEmployee]
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// Profile update data
|
|
33
|
-
const profileUpdate: EmployeeProfileData = {
|
|
34
|
-
full_name: "John Smith",
|
|
35
|
-
department: "IT Support",
|
|
36
|
-
avatar_url: "https://example.com/new-avatar.jpg",
|
|
37
|
-
role: "senior_technician",
|
|
38
|
-
job_title: "Lead Support Engineer"
|
|
17
|
+
// Typing an API response
|
|
18
|
+
const response: EmployeeResponse = await fetchEmployees();
|
|
19
|
+
if (response.success) {
|
|
20
|
+
const employees: Employee[] = response.data;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Using the profile subset for UI display
|
|
24
|
+
const profile: EmployeeProfileData = {
|
|
25
|
+
full_name: 'Jane Doe',
|
|
26
|
+
department: 'Engineering',
|
|
27
|
+
avatar_url: 'https://cdn.example.com/avatars/jane.png',
|
|
28
|
+
role: 'admin',
|
|
29
|
+
job_title: 'Senior Engineer',
|
|
39
30
|
};
|
|
40
31
|
```
|
|
41
32
|
|
|
42
|
-
|
|
33
|
+
## Notes
|
|
34
|
+
|
|
35
|
+
- `location_country` is the only optional field on `Employee` — all other fields are required.
|
|
36
|
+
- `EmployeeProfileData` is a strict subset of `Employee`, suitable for profile cards or directory listings where sensitive/verbose fields (`about`, `id`) are not needed.
|
package/src/types/.index.md
CHANGED
|
@@ -1,55 +1,41 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Centralized
|
|
1
|
+
<!-- source-hash: 2dec9acc6154e0160c391613c83b192e -->
|
|
2
|
+
Centralized barrel export file for all type definitions in the `@flamingo/ui-kit` package, providing a single import entry point for platform, application, and domain types.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
**
|
|
18
|
-
|
|
19
|
-
- `
|
|
20
|
-
- `faq`, `report`, `stack` - Documentation and reporting types
|
|
21
|
-
|
|
22
|
-
**System Integration**
|
|
23
|
-
- `slack`, `luma` - Third-party service integration types
|
|
24
|
-
- `tool.types`, `shell.types`, `os.types` - System and tooling types
|
|
25
|
-
- `navigation` - UI navigation and routing types
|
|
26
|
-
- `marketing`, `waitlist` - Marketing and lead generation types
|
|
6
|
+
| Export Group | Modules |
|
|
7
|
+
|---|---|
|
|
8
|
+
| **Core Platform** | `announcement`, `categories`, `category`, `media`, `platform` |
|
|
9
|
+
| **Database & API** | `supabase` |
|
|
10
|
+
| **Authentication** | `auth` |
|
|
11
|
+
| **Content** | `blog`, `case-study`, `customer-interview`, `luma`, `product-release`, `delivery`, `vendor`, `video-processing` |
|
|
12
|
+
| **User & Profile** | `employee`, `profile`, `team`, `user` |
|
|
13
|
+
| **Communication** | `slack`, `waitlist` |
|
|
14
|
+
| **Business Logic** | `faq`, `report`, `stack` |
|
|
15
|
+
| **Navigation** | `navigation` |
|
|
16
|
+
| **Tools & Shell** | `tool.types`, `shell.types`, `os.types` |
|
|
17
|
+
| **Marketing & Access** | `marketing`, `access-code-cohorts`, `icons`, `permissions`, `tmcg` |
|
|
18
|
+
|
|
19
|
+
> **Note:** `platform` uses named re-exports (`export type { ... }`) to avoid conflicts with internal types, exposing only `LegacyPlatform`, `PlatformFilter`, `PlatformName`, `PlatformOption`, `PlatformRecord`, `PlatformSettings`, and `PlatformStats`.
|
|
27
20
|
|
|
28
21
|
## Usage Example
|
|
29
22
|
|
|
30
23
|
```typescript
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
// Import any type directly from the package root
|
|
25
|
+
import type {
|
|
26
|
+
PlatformSettings,
|
|
27
|
+
Category,
|
|
28
|
+
BlogPost,
|
|
35
29
|
UserProfile,
|
|
36
|
-
|
|
37
|
-
} from '@flamingo/ui-kit
|
|
38
|
-
|
|
39
|
-
//
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// Use combined types across modules
|
|
50
|
-
interface DashboardProps {
|
|
51
|
-
platform: PlatformName
|
|
52
|
-
user: UserProfile
|
|
53
|
-
featuredContent: BlogPost[]
|
|
54
|
-
}
|
|
55
|
-
```
|
|
30
|
+
NavigationItem,
|
|
31
|
+
} from '@flamingo/ui-kit'
|
|
32
|
+
|
|
33
|
+
// No need to reach into individual type files
|
|
34
|
+
const config: PlatformSettings = { /* ... */ }
|
|
35
|
+
const nav: NavigationItem[] = []
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- Prefer importing from `@flamingo/ui-kit` directly rather than deep-importing individual type modules (e.g., `@flamingo/ui-kit/types/platform`).
|
|
41
|
+
- `categories` also uses named exports to selectively expose `Category`, `CategoryCardProps`, and `RealCategoryCardProps`.
|
package/src/types/.marketing.md
CHANGED
|
@@ -1,60 +1,65 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Defines
|
|
1
|
+
<!-- source-hash: f0baaf40642c975086a4698fa70728a9 -->
|
|
2
|
+
Brief description: Defines all TypeScript interfaces, types, and enums for the Flamingo Marketing AI system, covering campaigns, AI-generated content, media assets, social accounts, scheduled posts, approvals, and usage tracking.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
- Support for various content sources (product releases, blog posts, case studies)
|
|
6
|
+
### Campaign Types
|
|
7
|
+
- **`MarketingCampaign`** — Core campaign entity with content seed fields (`content_source_type`, `content_source_id`, `custom_instructions`)
|
|
8
|
+
- **`CreateCampaignInput`** / **`UpdateCampaignInput`** — Input shapes for campaign mutations
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
- `
|
|
13
|
-
-
|
|
14
|
-
-
|
|
10
|
+
### Content Types
|
|
11
|
+
- **`ContentType`** — `'blog_post' | 'social_post' | 'ad_copy' | 'email'`
|
|
12
|
+
- **`ContentStatus`** — Lifecycle states from `'draft'` through `'published'`
|
|
13
|
+
- **`AIContent`** — Generated text content with publishing, override, and URL injection fields
|
|
14
|
+
- **`CreateAIContentInput`** — Input for creating AI-generated content records
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
16
|
+
### Media Types
|
|
17
|
+
- **`MediaType`** — `'image' | 'video' | 'figma_export'`
|
|
18
|
+
- **`MediaProvider`** — Supported AI providers: `dalle`, `flux-pro`, `kling-v2.5`, `luma-ray2`, and more
|
|
19
|
+
- **`AIMedia`** — Media asset entity including storage paths, dimensions, Figma integration, and publish overrides
|
|
20
|
+
- **`MediaDimensions`** — Width, height, and aspect ratio descriptor
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
- `
|
|
23
|
-
-
|
|
24
|
-
-
|
|
22
|
+
### Social & Scheduling Types
|
|
23
|
+
- **`SocialChannel`** — `'slack' | 'linkedin' | 'facebook' | 'instagram' | 'twitter' | 'youtube'`
|
|
24
|
+
- **`SocialAccount`** / **`CreateSocialAccountInput`** — OAuth account records with encrypted tokens
|
|
25
|
+
- **`ScheduledPost`** / **`CreateScheduledPostInput`** — Post scheduling with retry tracking
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
27
|
+
### Approval & Usage Types
|
|
28
|
+
- **`ContentApproval`** — Approval workflow for content, media, and campaigns
|
|
29
|
+
- **`AIUsage`** / **`TrackAIUsageInput`** — Cost and token tracking per AI service and operation
|
|
30
|
+
- **`AIService`** — `'anthropic' | 'openai' | 'replicate' | 'figma' | 'google'`
|
|
31
|
+
|
|
32
|
+
### Aggregate & Source Types
|
|
33
|
+
- **`CampaignWithDetails`** — Campaign bundled with its content and media arrays
|
|
34
|
+
- **`CampaignStats`** / **`AIUsageSummary`** — Dashboard-level rollup statistics
|
|
35
|
+
- **`ContentSourceType`** — Union of 11 seed content origins (`product_release`, `blog_post_seed`, `event`, `podcast`, etc.)
|
|
36
|
+
- **`URLInjectionPreference`** — `'none' | 'in_post' | 'as_comment'`
|
|
30
37
|
|
|
31
38
|
## Usage Example
|
|
32
39
|
|
|
33
40
|
```typescript
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
future_blog_social_account_id: 456,
|
|
41
|
-
goals: ["increase awareness", "drive signups"]
|
|
42
|
-
};
|
|
41
|
+
import type {
|
|
42
|
+
CreateCampaignInput,
|
|
43
|
+
AIContent,
|
|
44
|
+
ContentType,
|
|
45
|
+
URLInjectionPreference,
|
|
46
|
+
} from './marketing';
|
|
43
47
|
|
|
44
|
-
//
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
// Create a campaign seeded from a product release
|
|
49
|
+
const newCampaign: CreateCampaignInput = {
|
|
50
|
+
name: 'Q3 Product Launch',
|
|
51
|
+
content_source_type: 'product_release',
|
|
52
|
+
content_source_id: 42,
|
|
53
|
+
custom_instructions: 'Emphasize enterprise features and ROI',
|
|
54
|
+
start_date: '2025-07-01',
|
|
51
55
|
};
|
|
52
56
|
|
|
53
|
-
//
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
social_account_id:
|
|
58
|
-
|
|
57
|
+
// Type-safe AI content with URL injection preference
|
|
58
|
+
const socialPost: Partial<AIContent> = {
|
|
59
|
+
content_type: 'social_post' as ContentType,
|
|
60
|
+
status: 'draft',
|
|
61
|
+
social_account_id: 7,
|
|
62
|
+
url_injection_preference: 'as_comment' as URLInjectionPreference,
|
|
63
|
+
selected_for_publish: false,
|
|
59
64
|
};
|
|
60
65
|
```
|