@flamingo-stack/openframe-frontend-core 0.0.438 → 0.0.439-snapshot.20260717095442
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-RVWC4P3H.js → chunk-2BTDPDME.js} +9 -9
- package/dist/chunk-2BTDPDME.js.map +1 -0
- package/dist/{chunk-5D5SJOLE.js → chunk-63TSTDME.js} +21 -21
- package/dist/chunk-63TSTDME.js.map +1 -0
- package/dist/{chunk-4ACSUJ7Q.js → chunk-6CITW5BD.js} +10 -10
- package/dist/chunk-6CITW5BD.js.map +1 -0
- package/dist/{chunk-QXYOGJQJ.js → chunk-7KDR5P23.js} +2 -2
- package/dist/{chunk-ZEY7A3MP.js → chunk-7KNOHGMI.js} +2 -2
- package/dist/{chunk-PCMDRDYX.cjs → chunk-7QP65IE4.cjs} +5 -5
- package/dist/{chunk-PCMDRDYX.cjs.map → chunk-7QP65IE4.cjs.map} +1 -1
- package/dist/{chunk-XFSDFO6U.js → chunk-AGV26PUR.js} +6 -6
- package/dist/{chunk-XFSDFO6U.js.map → chunk-AGV26PUR.js.map} +1 -1
- package/dist/{chunk-2DCP2TIF.cjs → chunk-DUQQEQ7G.cjs} +2892 -2579
- package/dist/chunk-DUQQEQ7G.cjs.map +1 -0
- package/dist/{chunk-W2PRXXUD.js → chunk-FPE3SQ5D.js} +13 -13
- package/dist/chunk-FPE3SQ5D.js.map +1 -0
- package/dist/{chunk-POFDZH2C.js → chunk-IAZ5AN2E.js} +30 -30
- package/dist/chunk-IAZ5AN2E.js.map +1 -0
- package/dist/{chunk-H2TQ44VD.cjs → chunk-IPEIOR77.cjs} +130 -130
- package/dist/chunk-IPEIOR77.cjs.map +1 -0
- package/dist/{chunk-6R5SZPAQ.cjs → chunk-IZ6A6K6N.cjs} +25 -25
- package/dist/chunk-IZ6A6K6N.cjs.map +1 -0
- package/dist/{chunk-EE5NH5SH.cjs → chunk-J5NO7PAG.cjs} +3 -3
- package/dist/{chunk-EE5NH5SH.cjs.map → chunk-J5NO7PAG.cjs.map} +1 -1
- package/dist/{chunk-WF7VGEYR.cjs → chunk-JNC4LVD6.cjs} +42 -42
- package/dist/chunk-JNC4LVD6.cjs.map +1 -0
- package/dist/{chunk-CMP56RUC.cjs → chunk-JOH5D76X.cjs} +108 -108
- package/dist/chunk-JOH5D76X.cjs.map +1 -0
- package/dist/{chunk-KBFQF4AV.js → chunk-JYI4R25Q.js} +5 -5
- package/dist/chunk-JYI4R25Q.js.map +1 -0
- package/dist/{chunk-YKP2F2NC.cjs → chunk-KUXGQ2FQ.cjs} +36 -36
- package/dist/chunk-KUXGQ2FQ.cjs.map +1 -0
- package/dist/{chunk-SYTL2VIU.cjs → chunk-LFWPWIAC.cjs} +16 -16
- package/dist/{chunk-SYTL2VIU.cjs.map → chunk-LFWPWIAC.cjs.map} +1 -1
- package/dist/{chunk-DTYPYYKD.cjs → chunk-LUKRPHEW.cjs} +96 -96
- package/dist/chunk-LUKRPHEW.cjs.map +1 -0
- package/dist/{chunk-IMK6RUEC.cjs → chunk-PYR4LVAF.cjs} +10 -10
- package/dist/chunk-PYR4LVAF.cjs.map +1 -0
- package/dist/{chunk-LR6A67KZ.js → chunk-QAG357PE.js} +7 -7
- package/dist/chunk-QAG357PE.js.map +1 -0
- package/dist/{chunk-N2TJ3HAM.cjs → chunk-QO6MCQYE.cjs} +9 -9
- package/dist/chunk-QO6MCQYE.cjs.map +1 -0
- package/dist/{chunk-RTHOCS3S.js → chunk-SM26C2L7.js} +9 -9
- package/dist/chunk-SM26C2L7.js.map +1 -0
- package/dist/{chunk-B5SGPIJ4.cjs → chunk-TAQMYVO6.cjs} +42 -42
- package/dist/{chunk-B5SGPIJ4.cjs.map → chunk-TAQMYVO6.cjs.map} +1 -1
- package/dist/{chunk-X66KRL5G.cjs → chunk-UFBUQO7Z.cjs} +19 -19
- package/dist/{chunk-X66KRL5G.cjs.map → chunk-UFBUQO7Z.cjs.map} +1 -1
- package/dist/{chunk-D5RTZ2WN.js → chunk-W3JZXLJ2.js} +10 -10
- package/dist/chunk-W3JZXLJ2.js.map +1 -0
- package/dist/{chunk-VYG2CJFJ.cjs → chunk-XMCVUYKC.cjs} +14 -14
- package/dist/chunk-XMCVUYKC.cjs.map +1 -0
- package/dist/{chunk-A25RPWYF.js → chunk-Y3NFB6HR.js} +5 -5
- package/dist/chunk-Y3NFB6HR.js.map +1 -0
- package/dist/{chunk-44HNH57W.js → chunk-YZJUHEPZ.js} +95 -95
- package/dist/chunk-YZJUHEPZ.js.map +1 -0
- package/dist/{chunk-6ETVJ5ON.js → chunk-ZQYFDYWV.js} +6726 -6413
- package/dist/chunk-ZQYFDYWV.js.map +1 -0
- package/dist/components/case-studies/index.cjs +15 -15
- package/dist/components/case-studies/index.cjs.map +1 -1
- package/dist/components/case-studies/index.js +9 -9
- package/dist/components/case-studies/index.js.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/chat-archive-page.d.ts +28 -8
- package/dist/components/chat/chat-archive-page.d.ts.map +1 -1
- package/dist/components/chat/chat-header-icon-button.d.ts +6 -2
- package/dist/components/chat/chat-header-icon-button.d.ts.map +1 -1
- package/dist/components/chat/chat-header-search-field.d.ts +25 -0
- package/dist/components/chat/chat-header-search-field.d.ts.map +1 -0
- package/dist/components/chat/chat-list-empty-state.d.ts +20 -0
- package/dist/components/chat/chat-list-empty-state.d.ts.map +1 -0
- package/dist/components/chat/chat-panel-header.d.ts +19 -9
- package/dist/components/chat/chat-panel-header.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.d.ts +15 -6
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts +2 -0
- package/dist/components/chat/hooks/use-chat-dialog-manager.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +6 -4
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +2 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +7 -5
- package/dist/components/chat/mingo-chat-history.d.ts +5 -10
- package/dist/components/chat/mingo-chat-history.d.ts.map +1 -1
- package/dist/components/chat/mingo-history-rail.d.ts +54 -0
- package/dist/components/chat/mingo-history-rail.d.ts.map +1 -0
- package/dist/components/chat/mingo-welcome.d.ts +6 -25
- package/dist/components/chat/mingo-welcome.d.ts.map +1 -1
- package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +263 -255
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +121 -113
- package/dist/components/index.js.map +1 -1
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/pricing-display.d.ts +9 -9
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/toast/index.cjs +5 -5
- package/dist/components/toast/index.cjs.map +1 -1
- package/dist/components/toast/index.js +5 -5
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/ui/bullet-list.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +73 -73
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +24 -24
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +6 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +7 -5
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts +3 -0
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +6 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -5
- package/dist/tailwind.config.cjs +38 -5
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +38 -5
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +5 -0
- package/src/components/.footer.md +2 -2
- package/src/components/announcement-bar.tsx +1 -1
- package/src/components/authors/author-detail-view.tsx +3 -3
- package/src/components/calendar.tsx +2 -2
- package/src/components/case-studies/share-experience-section.tsx +5 -5
- package/src/components/categories-cart.tsx +6 -6
- package/src/components/category-card.tsx +5 -5
- package/src/components/chart.tsx +3 -3
- package/src/components/chat/approval-request-message.tsx +2 -5
- package/src/components/chat/chat-archive-page.tsx +89 -73
- package/src/components/chat/chat-attachment-bar.tsx +3 -3
- package/src/components/chat/chat-header-icon-button.tsx +12 -5
- package/src/components/chat/chat-header-search-field.tsx +144 -0
- package/src/components/chat/chat-list-empty-state.tsx +44 -0
- package/src/components/chat/chat-message-enhanced.tsx +1 -1
- package/src/components/chat/chat-message-list.tsx +1 -1
- package/src/components/chat/chat-message-row.tsx +3 -3
- package/src/components/chat/chat-panel-header.tsx +76 -29
- package/src/components/chat/chat-quick-action.tsx +1 -1
- package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
- package/src/components/chat/chat-sidebar.tsx +6 -6
- package/src/components/chat/chat-typing-indicator.tsx +1 -1
- package/src/components/chat/context-compaction-display.tsx +1 -1
- package/src/components/chat/embeddable-chat.tsx +551 -128
- package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
- package/src/components/chat/entity-cards/blog-card.tsx +5 -8
- package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
- package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
- package/src/components/chat/entity-cards/dispatch.tsx +1 -1
- package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
- package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
- package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
- package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
- package/src/components/chat/entity-cards/program-card.tsx +12 -12
- package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
- package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
- package/src/components/chat/error-message-display.tsx +2 -2
- package/src/components/chat/guide-welcome.tsx +4 -4
- package/src/components/chat/hooks/use-chat-dialog-manager.ts +59 -5
- package/src/components/chat/index.ts +2 -0
- package/src/components/chat/mingo-chat-history.tsx +46 -100
- package/src/components/chat/mingo-history-rail.tsx +161 -0
- package/src/components/chat/mingo-info-card.tsx +2 -2
- package/src/components/chat/mingo-welcome.tsx +17 -98
- package/src/components/chat/model-display.tsx +7 -7
- package/src/components/chat/quick-action-chip.tsx +1 -1
- package/src/components/chat/source-action-button.tsx +2 -2
- package/src/components/chat/tool-call-blocks.tsx +3 -5
- package/src/components/chat/utils/.chip-action-class.md +1 -1
- package/src/components/chat/utils/.chip-styles.md +2 -2
- package/src/components/chat/utils/chip-action-class.ts +1 -1
- package/src/components/chat/utils/chip-styles.ts +2 -2
- package/src/components/chat/utils/compact-card-classes.ts +3 -3
- package/src/components/command.tsx +3 -3
- package/src/components/comment-card.tsx +1 -1
- package/src/components/contact/contact-form.tsx +9 -9
- package/src/components/context-menu.tsx +5 -5
- package/src/components/date-time-picker.tsx +2 -2
- package/src/components/docs/doc-viewer.tsx +4 -4
- package/src/components/embeds/figma-embed.tsx +2 -2
- package/src/components/embeds/file-download-card.tsx +2 -2
- package/src/components/embeds/google-sheets-viewer.tsx +1 -1
- package/src/components/embeds/linkedin-embed-client.tsx +3 -3
- package/src/components/embeds/og-link-preview.tsx +14 -14
- package/src/components/embeds/pdf-viewer.tsx +1 -1
- package/src/components/embeds/reddit-embed-client.tsx +9 -9
- package/src/components/embeds/twitter-embed-client.tsx +9 -9
- package/src/components/empty-state.tsx +5 -5
- package/src/components/faq/faq-section.tsx +1 -1
- package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
- package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
- package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
- package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
- package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
- package/src/components/features/array-entry-manager.tsx +7 -7
- package/src/components/features/auth-providers-list.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/changelog-manager.tsx +10 -10
- package/src/components/features/command-box.tsx +2 -2
- package/src/components/features/entity-summary-editor.tsx +3 -3
- package/src/components/features/figma-prototype-viewer.tsx +9 -9
- package/src/components/features/filters-dropdown.tsx +2 -2
- package/src/components/features/highlight-config-section.tsx +3 -3
- package/src/components/features/highlight-video-combined-section.tsx +2 -2
- package/src/components/features/highlight-video-preview.tsx +2 -2
- package/src/components/features/highlight-video-section.tsx +9 -9
- package/src/components/features/media-gallery-manager.tsx +14 -14
- package/src/components/features/og-editor-preview.tsx +4 -4
- package/src/components/features/os-type-badge-group.tsx +1 -1
- package/src/components/features/os-type-badge.tsx +2 -2
- package/src/components/features/platform-badge.tsx +4 -4
- package/src/components/features/policy-configuration-panel.tsx +6 -6
- package/src/components/features/provider-button.tsx +1 -1
- package/src/components/features/push-button-selector.tsx +21 -21
- package/src/components/features/release-media-manager.tsx +16 -16
- package/src/components/features/section-selector.tsx +8 -8
- package/src/components/features/select-button.tsx +4 -4
- package/src/components/features/seo-editor-preview.tsx +20 -20
- package/src/components/features/social-links-manager.tsx +3 -3
- package/src/components/features/start-with-openframe-button.tsx +3 -3
- package/src/components/features/status-filter-component.tsx +1 -1
- package/src/components/features/tags-selector.tsx +6 -6
- package/src/components/features/transcript-summary-editor.tsx +9 -9
- package/src/components/features/video-bites-strip.tsx +1 -1
- package/src/components/features/video-ratio-tabs.tsx +1 -1
- package/src/components/features/video-source-selector.tsx +7 -7
- package/src/components/features/video.tsx +1 -1
- package/src/components/features/waitlist-form.tsx +3 -3
- package/src/components/filter-chip.tsx +13 -13
- package/src/components/footer.tsx +3 -3
- package/src/components/form.tsx +2 -2
- package/src/components/hero-image-uploader.tsx +3 -3
- package/src/components/image-cropper.tsx +2 -2
- package/src/components/layout/page-container.tsx +6 -6
- package/src/components/layout/page-heading.tsx +1 -1
- package/src/components/loading/card-skeleton.tsx +2 -2
- package/src/components/loading/category-card-skeleton.tsx +1 -1
- package/src/components/loading/margin-report-skeleton.tsx +22 -22
- package/src/components/loading/openmsp-heartbeat.tsx +1 -1
- package/src/components/loading/page-layout-skeleton.tsx +83 -83
- package/src/components/loading/unified-skeleton.tsx +1 -1
- package/src/components/loading/users-grid-skeleton.tsx +2 -2
- package/src/components/logs-list.tsx +8 -8
- package/src/components/media-carousel.tsx +7 -7
- package/src/components/metric-value.tsx +2 -2
- package/src/components/msp-display.tsx +8 -2
- package/src/components/navigation/app-header.tsx +6 -6
- package/src/components/navigation/header-organization-filter.tsx +2 -2
- package/src/components/navigation/header.tsx +4 -4
- package/src/components/navigation/mobile-burger-menu.tsx +7 -7
- package/src/components/navigation/mobile-nav-panel.tsx +1 -1
- package/src/components/navigation/multi-level-navigation.tsx +7 -7
- package/src/components/navigation/navigation-sidebar.tsx +1 -1
- package/src/components/navigation/sticky-section-nav.tsx +2 -2
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
- package/src/components/pagination.tsx +2 -2
- package/src/components/persistent-filter-controls.tsx +1 -1
- package/src/components/platform/.ShellTypeBadge.md +1 -1
- package/src/components/platform/CveLink.tsx +1 -1
- package/src/components/platform/ScriptArguments.tsx +2 -2
- package/src/components/platform/ScriptInfoSection.tsx +5 -5
- package/src/components/platform/ShellTypeBadge.tsx +6 -6
- package/src/components/platform/SoftwareInfo.tsx +2 -2
- package/src/components/pricing-display.tsx +9 -9
- package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
- package/src/components/related-content/related-content-section.tsx +3 -3
- package/src/components/results-count.tsx +1 -1
- package/src/components/shared/delivery/delivery-row.tsx +1 -1
- package/src/components/shared/delivery/delivery-table.tsx +1 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
- package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
- package/src/components/shared/product-release/product-release-card.tsx +14 -14
- package/src/components/shared/product-release/release-detail-page.tsx +16 -16
- package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
- package/src/components/smooth-accordion.tsx +1 -1
- package/src/components/social-icon-row.tsx +1 -1
- package/src/components/sonner.tsx +5 -5
- package/src/components/steps.tsx +3 -3
- package/src/components/tickets/help-center-create-form.tsx +1 -1
- package/src/components/tickets/help-center-list.tsx +1 -1
- package/src/components/tickets/ticket-center.tsx +2 -2
- package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
- package/src/components/tickets/ticket-open-form.tsx +6 -6
- package/src/components/ui/.title-content-block.md +1 -1
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +3 -3
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/allowed-domains-input.tsx +3 -3
- package/src/components/ui/autocomplete.tsx +3 -3
- package/src/components/ui/badge.tsx +2 -2
- package/src/components/ui/brand-association-card.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +3 -3
- package/src/components/ui/bullet-list.tsx +2 -2
- package/src/components/ui/button/button.tsx +1 -1
- package/src/components/ui/card.tsx +4 -4
- package/src/components/ui/checkbox-with-description.tsx +1 -1
- package/src/components/ui/chevron-button.tsx +1 -1
- package/src/components/ui/content-loader.tsx +16 -16
- package/src/components/ui/cursor-pagination.tsx +1 -1
- package/src/components/ui/date-picker.tsx +2 -2
- package/src/components/ui/device-card-compact.tsx +2 -2
- package/src/components/ui/device-card.tsx +3 -3
- package/src/components/ui/dialog.tsx +3 -3
- package/src/components/ui/drawer.tsx +4 -4
- package/src/components/ui/dropdown-menu.tsx +6 -6
- package/src/components/ui/error-state.tsx +9 -9
- package/src/components/ui/fade-preview.tsx +1 -1
- package/src/components/ui/field-wrapper.tsx +1 -1
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
- package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
- package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
- package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
- package/src/components/ui/file-upload.tsx +9 -9
- package/src/components/ui/filter-pill-row.tsx +1 -1
- package/src/components/ui/floating-tooltip.tsx +1 -1
- package/src/components/ui/highlight-card.tsx +1 -1
- package/src/components/ui/hover-dropdown.tsx +1 -1
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/info-row.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +5 -5
- package/src/components/ui/markdown-editor.tsx +4 -5
- package/src/components/ui/menubar.tsx +7 -7
- package/src/components/ui/modal-v2.tsx +1 -1
- package/src/components/ui/modal.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +8 -8
- package/src/components/ui/page-loader.tsx +6 -6
- package/src/components/ui/phone-input.tsx +1 -1
- package/src/components/ui/progress-bar.tsx +5 -5
- package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
- package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
- package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/release-changelog-section.tsx +2 -2
- package/src/components/ui/rich-markdown-renderer.tsx +6 -6
- package/src/components/ui/search-input.tsx +7 -7
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/service-card.tsx +4 -4
- package/src/components/ui/sheet.tsx +3 -3
- package/src/components/ui/simple-markdown-renderer.tsx +4 -4
- package/src/components/ui/square-avatar.tsx +9 -5
- package/src/components/ui/status-badge.tsx +11 -11
- package/src/components/ui/status-indicator.tsx +6 -6
- package/src/components/ui/tab-content.tsx +1 -1
- package/src/components/ui/tab-navigation.tsx +2 -2
- package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
- package/src/components/ui/table/table-description-cell.tsx +1 -1
- package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
- package/src/components/ui/table/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/tag-search-input.tsx +1 -1
- package/src/components/ui/tag.tsx +23 -23
- package/src/components/ui/tags-input.tsx +2 -2
- package/src/components/ui/ticket-status-tag.tsx +1 -1
- package/src/components/ui/toaster.tsx +8 -8
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/user-display.tsx +12 -6
- package/src/components/user-summary-stub.tsx +4 -4
- package/src/components/vendor-display-button.tsx +2 -2
- package/src/components/vendor-icon.tsx +1 -1
- package/src/components/vendor-tag.tsx +9 -10
- package/src/components/yes-no-display.tsx +3 -3
- package/src/stories/MingoWelcome.stories.tsx +2 -11
- package/src/styles/ods-colors.css +2 -0
- package/tailwind.config.ts +49 -4
- package/dist/chunk-2DCP2TIF.cjs.map +0 -1
- package/dist/chunk-44HNH57W.js.map +0 -1
- package/dist/chunk-4ACSUJ7Q.js.map +0 -1
- package/dist/chunk-5D5SJOLE.js.map +0 -1
- package/dist/chunk-6ETVJ5ON.js.map +0 -1
- package/dist/chunk-6R5SZPAQ.cjs.map +0 -1
- package/dist/chunk-A25RPWYF.js.map +0 -1
- package/dist/chunk-CMP56RUC.cjs.map +0 -1
- package/dist/chunk-D5RTZ2WN.js.map +0 -1
- package/dist/chunk-DTYPYYKD.cjs.map +0 -1
- package/dist/chunk-H2TQ44VD.cjs.map +0 -1
- package/dist/chunk-IMK6RUEC.cjs.map +0 -1
- package/dist/chunk-KBFQF4AV.js.map +0 -1
- package/dist/chunk-LR6A67KZ.js.map +0 -1
- package/dist/chunk-N2TJ3HAM.cjs.map +0 -1
- package/dist/chunk-POFDZH2C.js.map +0 -1
- package/dist/chunk-RTHOCS3S.js.map +0 -1
- package/dist/chunk-RVWC4P3H.js.map +0 -1
- package/dist/chunk-VYG2CJFJ.cjs.map +0 -1
- package/dist/chunk-W2PRXXUD.js.map +0 -1
- package/dist/chunk-WF7VGEYR.cjs.map +0 -1
- package/dist/chunk-YKP2F2NC.cjs.map +0 -1
- package/dist/components/accordion.d.ts +0 -8
- package/dist/components/accordion.d.ts.map +0 -1
- package/dist/components/alert-dialog.d.ts +0 -21
- package/dist/components/alert-dialog.d.ts.map +0 -1
- package/dist/components/alert.d.ts +0 -9
- package/dist/components/alert.d.ts.map +0 -1
- package/dist/components/badge.d.ts +0 -10
- package/dist/components/badge.d.ts.map +0 -1
- package/dist/components/breadcrumb.d.ts +0 -20
- package/dist/components/breadcrumb.d.ts.map +0 -1
- package/dist/components/chevron-button.d.ts +0 -14
- package/dist/components/chevron-button.d.ts.map +0 -1
- package/dist/components/dialog.d.ts +0 -29
- package/dist/components/dialog.d.ts.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -28
- package/dist/components/dropdown-menu.d.ts.map +0 -1
- package/dist/components/input.d.ts +0 -8
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/label.d.ts +0 -6
- package/dist/components/label.d.ts.map +0 -1
- package/dist/components/menubar.d.ts +0 -34
- package/dist/components/menubar.d.ts.map +0 -1
- package/dist/components/navigation-menu.d.ts +0 -13
- package/dist/components/navigation-menu.d.ts.map +0 -1
- package/dist/components/select.d.ts +0 -14
- package/dist/components/select.d.ts.map +0 -1
- package/dist/components/sidebar.d.ts +0 -67
- package/dist/components/sidebar.d.ts.map +0 -1
- package/dist/components/square-avatar.d.ts +0 -21
- package/dist/components/square-avatar.d.ts.map +0 -1
- package/dist/components/table.d.ts +0 -11
- package/dist/components/table.d.ts.map +0 -1
- package/dist/components/tabs.d.ts +0 -18
- package/dist/components/tabs.d.ts.map +0 -1
- package/dist/components/toggle.d.ts +0 -13
- package/dist/components/toggle.d.ts.map +0 -1
- package/src/components/.accordion.md +0 -42
- package/src/components/.alert-dialog.md +0 -58
- package/src/components/.alert.md +0 -43
- package/src/components/.badge.md +0 -40
- package/src/components/.breadcrumb.md +0 -54
- package/src/components/.chevron-button.md +0 -46
- package/src/components/.dialog.md +0 -60
- package/src/components/.dropdown-menu.md +0 -51
- package/src/components/.input.md +0 -40
- package/src/components/.label.md +0 -41
- package/src/components/.menubar.md +0 -49
- package/src/components/.navigation-menu.md +0 -44
- package/src/components/.select.md +0 -54
- package/src/components/.sidebar.md +0 -58
- package/src/components/.square-avatar.md +0 -42
- package/src/components/.table.md +0 -51
- package/src/components/.tabs.md +0 -38
- package/src/components/.toggle.md +0 -49
- package/src/components/accordion.tsx +0 -56
- package/src/components/alert-dialog.tsx +0 -141
- package/src/components/alert.tsx +0 -59
- package/src/components/badge.tsx +0 -30
- package/src/components/breadcrumb.tsx +0 -115
- package/src/components/chevron-button.tsx +0 -68
- package/src/components/dialog.tsx +0 -150
- package/src/components/dropdown-menu.tsx +0 -200
- package/src/components/input.tsx +0 -39
- package/src/components/label.tsx +0 -19
- package/src/components/menubar.tsx +0 -236
- package/src/components/navigation-menu.tsx +0 -128
- package/src/components/select.tsx +0 -160
- package/src/components/sidebar.tsx +0 -764
- package/src/components/square-avatar.tsx +0 -61
- package/src/components/table.tsx +0 -72
- package/src/components/tabs.tsx +0 -65
- package/src/components/toggle.tsx +0 -45
- /package/dist/{chunk-QXYOGJQJ.js.map → chunk-7KDR5P23.js.map} +0 -0
- /package/dist/{chunk-ZEY7A3MP.js.map → chunk-7KNOHGMI.js.map} +0 -0
|
@@ -97,27 +97,27 @@ export function AdminContentCard({
|
|
|
97
97
|
/>
|
|
98
98
|
</>
|
|
99
99
|
) : (
|
|
100
|
-
<div className="absolute inset-0 bg-ods-
|
|
100
|
+
<div className="absolute inset-0 bg-ods-bg" />
|
|
101
101
|
)}
|
|
102
102
|
</div>
|
|
103
103
|
|
|
104
104
|
{/* Content */}
|
|
105
105
|
<div className="flex flex-1 flex-col gap-3 p-5">
|
|
106
106
|
{/* Title */}
|
|
107
|
-
<h3 className="
|
|
107
|
+
<h3 className="text-h3 text-ods-text-primary line-clamp-2 break-words">
|
|
108
108
|
{title}
|
|
109
109
|
</h3>
|
|
110
110
|
|
|
111
111
|
{/* Subtitle (optional) */}
|
|
112
112
|
{subtitle && (
|
|
113
|
-
<p className="
|
|
113
|
+
<p className="text-h6 text-ods-text-secondary truncate">
|
|
114
114
|
{subtitle}
|
|
115
115
|
</p>
|
|
116
116
|
)}
|
|
117
117
|
|
|
118
118
|
{/* Summary */}
|
|
119
119
|
{summary && (
|
|
120
|
-
<p className="
|
|
120
|
+
<p className="text-h6 text-ods-text-secondary line-clamp-2">
|
|
121
121
|
{summary}
|
|
122
122
|
</p>
|
|
123
123
|
)}
|
|
@@ -138,7 +138,7 @@ export function AdminContentCard({
|
|
|
138
138
|
|
|
139
139
|
{/* Meta row */}
|
|
140
140
|
{meta && (
|
|
141
|
-
<div className="flex items-center gap-3 text-
|
|
141
|
+
<div className="flex items-center gap-3 text-h6 text-ods-text-secondary">
|
|
142
142
|
{meta}
|
|
143
143
|
</div>
|
|
144
144
|
)}
|
|
@@ -161,7 +161,7 @@ export function BlogCard({
|
|
|
161
161
|
</span>
|
|
162
162
|
<span className={COMPACT_CARD_TEXT_COL}>
|
|
163
163
|
<span className={cn(COMPACT_CARD_TITLE_ROW, 'gap-1.5')}>
|
|
164
|
-
<span className={cn(COMPACT_CARD_TITLE,
|
|
164
|
+
<span className={cn(COMPACT_CARD_TITLE, 'font-body')}>
|
|
165
165
|
{post.title}
|
|
166
166
|
</span>
|
|
167
167
|
{hasEmbeddedVideo ? (
|
|
@@ -257,9 +257,7 @@ export function BlogCard({
|
|
|
257
257
|
<div className="mb-3 flex items-center min-h-[50.4px] md:min-h-[56px] lg:min-h-[61.6px]">
|
|
258
258
|
<h3
|
|
259
259
|
className={cn(
|
|
260
|
-
|
|
261
|
-
'text-lg md:text-xl lg:text-[22px]',
|
|
262
|
-
'leading-[1.4] tracking-[-0.02em]',
|
|
260
|
+
'text-h3 text-ods-text-primary',
|
|
263
261
|
'line-clamp-2',
|
|
264
262
|
'transition-colors duration-300 ease-out',
|
|
265
263
|
'group-hover:text-ods-accent',
|
|
@@ -272,16 +270,15 @@ export function BlogCard({
|
|
|
272
270
|
<div className="mb-3 flex items-center min-h-[42px] md:min-h-[45px] lg:min-h-[48px]">
|
|
273
271
|
<p
|
|
274
272
|
className={cn(
|
|
275
|
-
|
|
276
|
-
'
|
|
277
|
-
'leading-[1.5] line-clamp-2',
|
|
273
|
+
'text-h6 text-ods-text-primary',
|
|
274
|
+
'line-clamp-2',
|
|
278
275
|
)}
|
|
279
276
|
>
|
|
280
277
|
{post.summary || ''}
|
|
281
278
|
</p>
|
|
282
279
|
</div>
|
|
283
280
|
|
|
284
|
-
<div className="mt-auto flex items-center justify-between gap-2 text-
|
|
281
|
+
<div className="mt-auto flex items-center justify-between gap-2 text-h6 text-ods-text-secondary">
|
|
285
282
|
<div className="flex items-center gap-2 min-w-0">
|
|
286
283
|
{post.author_avatar ? (
|
|
287
284
|
<Image
|
|
@@ -205,14 +205,14 @@ export function CaseStudyCard({
|
|
|
205
205
|
<Image
|
|
206
206
|
src={study.user.avatar_url}
|
|
207
207
|
alt={study.user?.full_name || 'User'}
|
|
208
|
-
className="w-12 h-12 rounded-full object-cover bg-ods-
|
|
208
|
+
className="w-12 h-12 rounded-full object-cover bg-ods-bg border border-ods-border"
|
|
209
209
|
width={48}
|
|
210
210
|
height={48}
|
|
211
211
|
unoptimized
|
|
212
212
|
/>
|
|
213
213
|
) : (
|
|
214
|
-
<div className="w-12 h-12 rounded-full bg-ods-
|
|
215
|
-
<span className="text-ods-text-secondary
|
|
214
|
+
<div className="w-12 h-12 rounded-full bg-ods-bg border border-ods-border flex items-center justify-center">
|
|
215
|
+
<span className="text-ods-text-secondary text-h4">
|
|
216
216
|
{(study.user?.full_name || 'A').charAt(0).toUpperCase()}
|
|
217
217
|
</span>
|
|
218
218
|
</div>
|
|
@@ -231,11 +231,11 @@ export function CaseStudyCard({
|
|
|
231
231
|
)}
|
|
232
232
|
</div>
|
|
233
233
|
<div className="min-w-0 flex-1">
|
|
234
|
-
<p className="
|
|
234
|
+
<p className="text-h6 text-ods-text-primary truncate">
|
|
235
235
|
{study.user?.full_name || 'Anonymous'}
|
|
236
236
|
{study.msp?.name && <span className="text-ods-text-secondary"> • {study.msp.name}</span>}
|
|
237
237
|
</p>
|
|
238
|
-
<p className="
|
|
238
|
+
<p className="text-h6 text-ods-text-secondary truncate">
|
|
239
239
|
{study.user?.job_title || ' '}
|
|
240
240
|
</p>
|
|
241
241
|
</div>
|
|
@@ -129,7 +129,7 @@ const ChatTicketItem = React.forwardRef<HTMLButtonElement, ChatTicketItemProps>(
|
|
|
129
129
|
<Tag
|
|
130
130
|
label={ticket.linkedTaskLabel}
|
|
131
131
|
variant="outline"
|
|
132
|
-
icon={<WrenchIcon size={14} color="var(--
|
|
132
|
+
icon={<WrenchIcon size={14} color="var(--color-text-secondary)" />}
|
|
133
133
|
className="shrink-0 hidden sm:inline-flex"
|
|
134
134
|
/>
|
|
135
135
|
)}
|
|
@@ -129,7 +129,7 @@ export function CustomerInterviewCard({
|
|
|
129
129
|
) : null}
|
|
130
130
|
{interview.main_video_url ? (
|
|
131
131
|
<span className="absolute inset-0 flex items-center justify-center bg-black/30">
|
|
132
|
-
<Video className="h-4 w-4 text-
|
|
132
|
+
<Video className="h-4 w-4 text-ods-text-on-dark" />
|
|
133
133
|
</span>
|
|
134
134
|
) : null}
|
|
135
135
|
</span>
|
|
@@ -193,7 +193,7 @@ export function CustomerInterviewCard({
|
|
|
193
193
|
{interview.main_video_url && (
|
|
194
194
|
<div className="absolute inset-0 bg-black/40 flex items-center justify-center">
|
|
195
195
|
<div className="w-16 h-16 rounded-full bg-ods-accent/90 flex items-center justify-center">
|
|
196
|
-
<Video className="w-8 h-8 text-
|
|
196
|
+
<Video className="w-8 h-8 text-ods-text-on-accent" />
|
|
197
197
|
</div>
|
|
198
198
|
</div>
|
|
199
199
|
)}
|
|
@@ -206,14 +206,14 @@ export function CustomerInterviewCard({
|
|
|
206
206
|
</div>
|
|
207
207
|
|
|
208
208
|
<div className="shrink-0">
|
|
209
|
-
<h3 className="
|
|
209
|
+
<h3 className="text-h3 text-ods-text-primary line-clamp-2 break-words">
|
|
210
210
|
{interview.title}
|
|
211
211
|
</h3>
|
|
212
212
|
</div>
|
|
213
213
|
|
|
214
214
|
{interview.video_summary && (
|
|
215
215
|
<div className="shrink-0">
|
|
216
|
-
<p className="
|
|
216
|
+
<p className="text-h6 text-ods-text-secondary line-clamp-3">
|
|
217
217
|
{interview.video_summary}
|
|
218
218
|
</p>
|
|
219
219
|
</div>
|
|
@@ -226,11 +226,11 @@ export function CustomerInterviewCard({
|
|
|
226
226
|
<img
|
|
227
227
|
src={interview.user.avatar_url}
|
|
228
228
|
alt={interview.user?.full_name || 'Customer'}
|
|
229
|
-
className="w-12 h-12 rounded-full object-cover bg-ods-
|
|
229
|
+
className="w-12 h-12 rounded-full object-cover bg-ods-bg border border-ods-border"
|
|
230
230
|
/>
|
|
231
231
|
) : (
|
|
232
|
-
<div className="w-12 h-12 rounded-full bg-ods-
|
|
233
|
-
<span className="text-ods-text-secondary
|
|
232
|
+
<div className="w-12 h-12 rounded-full bg-ods-bg border border-ods-border flex items-center justify-center">
|
|
233
|
+
<span className="text-ods-text-secondary text-h4">
|
|
234
234
|
{(interview.user?.full_name || 'A').charAt(0).toUpperCase()}
|
|
235
235
|
</span>
|
|
236
236
|
</div>
|
|
@@ -246,11 +246,11 @@ export function CustomerInterviewCard({
|
|
|
246
246
|
)}
|
|
247
247
|
</div>
|
|
248
248
|
<div className="min-w-0 flex-1">
|
|
249
|
-
<p className="
|
|
249
|
+
<p className="text-h6 text-ods-text-primary truncate">
|
|
250
250
|
{interview.user?.full_name || 'Anonymous'}
|
|
251
251
|
{interview.msp?.name && <span className="text-ods-text-secondary"> • {interview.msp.name}</span>}
|
|
252
252
|
</p>
|
|
253
|
-
<p className="
|
|
253
|
+
<p className="text-h6 text-ods-text-secondary truncate">
|
|
254
254
|
{interview.user?.job_title || ' '}
|
|
255
255
|
</p>
|
|
256
256
|
</div>
|
|
@@ -64,14 +64,14 @@ export function DataRoomDocCard({ item, className, badgeText, anchorProps }: Dat
|
|
|
64
64
|
<StatusBadge text={badgeText} variant="button" colorScheme="cyan" className="shrink-0" />
|
|
65
65
|
</span>
|
|
66
66
|
{item.path ? (
|
|
67
|
-
<span className="flex min-w-0 items-center gap-1 text-
|
|
67
|
+
<span className="flex min-w-0 items-center gap-1 text-h6 text-ods-text-secondary">
|
|
68
68
|
<span className="shrink-0 text-ods-text-secondary/70">Path:</span>
|
|
69
69
|
<span className="min-w-0 truncate font-mono">{item.path}</span>
|
|
70
70
|
</span>
|
|
71
71
|
) : null}
|
|
72
72
|
{item.preview ? (
|
|
73
73
|
<span className="flex min-w-0">
|
|
74
|
-
<span className="line-clamp-2 whitespace-pre-wrap break-words text-
|
|
74
|
+
<span className="line-clamp-2 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary">
|
|
75
75
|
{item.preview}
|
|
76
76
|
</span>
|
|
77
77
|
</span>
|
|
@@ -523,7 +523,7 @@ function ChatCardWithDiscuss({
|
|
|
523
523
|
{!onDiscuss && !useDisplay ? <span /> : null}
|
|
524
524
|
{idDisplay ? (
|
|
525
525
|
<span
|
|
526
|
-
className="inline-flex items-center gap-1 text-
|
|
526
|
+
className="inline-flex items-center gap-1 text-code shrink-0 text-ods-text-secondary opacity-60 hover:opacity-100 hover:text-ods-text-primary transition-opacity"
|
|
527
527
|
title={`${sourceLabel} · ${chatRef.id}`}
|
|
528
528
|
>
|
|
529
529
|
<SourceIcon className="h-3 w-3 shrink-0" />
|
|
@@ -91,7 +91,7 @@ export function EntityMetadataValueCell({
|
|
|
91
91
|
<p className="text-h4 text-ods-text-primary">
|
|
92
92
|
{uppercase ? value.toLocaleUpperCase() : value}
|
|
93
93
|
</p>
|
|
94
|
-
<p className="
|
|
94
|
+
<p className="text-h6 text-ods-text-secondary">
|
|
95
95
|
{label}
|
|
96
96
|
</p>
|
|
97
97
|
</div>
|
|
@@ -131,7 +131,7 @@ export function EntityMetadataAuthorCell({
|
|
|
131
131
|
<div className="flex flex-col gap-0 flex-1 min-w-0">
|
|
132
132
|
{/* title = full-name tooltip on truncation (carried over from the
|
|
133
133
|
release page's cell when it adopted this shared one). */}
|
|
134
|
-
<p className="text-h3
|
|
134
|
+
<p className="text-h3 text-ods-text-primary truncate" title={fullName}>
|
|
135
135
|
{authorHref && trimmedName ? (
|
|
136
136
|
<Link href={authorHref} className="hover:text-ods-accent transition-colors">
|
|
137
137
|
{fullName}
|
|
@@ -140,7 +140,7 @@ export function EntityMetadataAuthorCell({
|
|
|
140
140
|
fullName
|
|
141
141
|
)}
|
|
142
142
|
</p>
|
|
143
|
-
<p className="
|
|
143
|
+
<p className="text-h6 text-ods-text-secondary">
|
|
144
144
|
{author.job_title || roleLabel}
|
|
145
145
|
</p>
|
|
146
146
|
</div>
|
|
@@ -102,7 +102,7 @@ export function EntityPortraitCard({
|
|
|
102
102
|
|
|
103
103
|
// Edge-sampled slot fill for non-wide covers — the SAME hook/fallback the
|
|
104
104
|
// media/news cards use (og-link-preview.tsx).
|
|
105
|
-
const edgeColor = useImageEdgeColor(isWide === false ? src : null, 'var(--
|
|
105
|
+
const edgeColor = useImageEdgeColor(isWide === false ? src : null, 'var(--color-bg-surface)')
|
|
106
106
|
|
|
107
107
|
return (
|
|
108
108
|
<a href={href} target={target} rel={rel} className={cn('block h-full', className)} aria-label={`Open ${title}`}>
|
|
@@ -168,7 +168,7 @@ export function EntityPortraitCard({
|
|
|
168
168
|
/>
|
|
169
169
|
) : (
|
|
170
170
|
<div className="w-12 h-12 rounded-full bg-ods-bg border border-ods-border flex items-center justify-center">
|
|
171
|
-
<span className="text-ods-text-secondary
|
|
171
|
+
<span className="text-ods-text-secondary text-h4">
|
|
172
172
|
{person.name.charAt(0).toUpperCase()}
|
|
173
173
|
</span>
|
|
174
174
|
</div>
|
|
@@ -187,9 +187,9 @@ export function EntityPortraitCard({
|
|
|
187
187
|
)}
|
|
188
188
|
</div>
|
|
189
189
|
<div className="flex flex-col min-w-0">
|
|
190
|
-
<span className="
|
|
190
|
+
<span className="text-h6 font-bold text-ods-text-primary truncate">{person.name}</span>
|
|
191
191
|
{person.subtitle && (
|
|
192
|
-
<span className="
|
|
192
|
+
<span className="text-h6 text-ods-text-secondary truncate">{person.subtitle}</span>
|
|
193
193
|
)}
|
|
194
194
|
</div>
|
|
195
195
|
</div>
|
|
@@ -67,19 +67,19 @@ export function GenericEntityCard({ item, className, anchorProps }: GenericEntit
|
|
|
67
67
|
) : null}
|
|
68
68
|
</span>
|
|
69
69
|
{item.subtitle ? (
|
|
70
|
-
<span className="flex min-w-0 items-center gap-1 text-
|
|
70
|
+
<span className="flex min-w-0 items-center gap-1 text-h6 text-ods-text-secondary">
|
|
71
71
|
<span className="min-w-0 truncate font-mono">{item.subtitle}</span>
|
|
72
72
|
</span>
|
|
73
73
|
) : null}
|
|
74
74
|
{item.preview ? (
|
|
75
75
|
<span className="flex min-w-0">
|
|
76
|
-
<span className="line-clamp-2 whitespace-pre-wrap break-words text-
|
|
76
|
+
<span className="line-clamp-2 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary">
|
|
77
77
|
{item.preview}
|
|
78
78
|
</span>
|
|
79
79
|
</span>
|
|
80
80
|
) : null}
|
|
81
81
|
{item.facts && item.facts.length > 0 ? (
|
|
82
|
-
<span className="flex flex-wrap items-center gap-x-3 gap-y-0.5 min-w-0 text-
|
|
82
|
+
<span className="flex flex-wrap items-center gap-x-3 gap-y-0.5 min-w-0 text-h6">
|
|
83
83
|
{item.facts.map((f, i) => (
|
|
84
84
|
<span key={i} className="inline-flex items-center gap-1 min-w-0 truncate">
|
|
85
85
|
<span className="text-ods-text-secondary/70 shrink-0">{f.label}:</span>
|
|
@@ -130,23 +130,23 @@ export function parseGithubTitle(title: string, kind: GitHubActivityKind): { dis
|
|
|
130
130
|
const REVIEW_STATE_STYLE: Record<PrReviewState, { label: string; className: string }> = {
|
|
131
131
|
APPROVED: {
|
|
132
132
|
label: 'Approved',
|
|
133
|
-
className: 'bg-
|
|
133
|
+
className: 'bg-ods-success-secondary text-ods-success',
|
|
134
134
|
},
|
|
135
135
|
CHANGES_REQUESTED: {
|
|
136
136
|
label: 'Changes',
|
|
137
|
-
className: 'bg-
|
|
137
|
+
className: 'bg-ods-error-secondary text-ods-error',
|
|
138
138
|
},
|
|
139
139
|
COMMENTED: {
|
|
140
140
|
label: 'Comment',
|
|
141
|
-
className: 'bg-ods-bg-
|
|
141
|
+
className: 'bg-ods-bg-surface text-ods-text-primary',
|
|
142
142
|
},
|
|
143
143
|
DISMISSED: {
|
|
144
144
|
label: 'Dismissed',
|
|
145
|
-
className: 'bg-ods-bg-
|
|
145
|
+
className: 'bg-ods-bg-surface text-ods-text-secondary',
|
|
146
146
|
},
|
|
147
147
|
PENDING: {
|
|
148
148
|
label: 'Pending',
|
|
149
|
-
className: 'bg-
|
|
149
|
+
className: 'bg-ods-warning-secondary text-ods-warning',
|
|
150
150
|
},
|
|
151
151
|
}
|
|
152
152
|
|
|
@@ -160,7 +160,7 @@ function ReviewStateBadge({ state, className = '' }: { state: PrReviewState; cla
|
|
|
160
160
|
const { label, className: paint } = REVIEW_STATE_STYLE[state] ?? REVIEW_STATE_STYLE.COMMENTED
|
|
161
161
|
return (
|
|
162
162
|
<span
|
|
163
|
-
className={`inline-flex items-center rounded px-1.5 py-0.5
|
|
163
|
+
className={`inline-flex items-center rounded px-1.5 py-0.5 text-h5 shrink-0 ${paint} ${className}`}
|
|
164
164
|
>
|
|
165
165
|
{label}
|
|
166
166
|
</span>
|
|
@@ -198,17 +198,17 @@ export function GitHubActivityCard({ item, variant = 'compact', className, ancho
|
|
|
198
198
|
<div className={`flex items-center gap-3 min-w-0 ${className ?? ''}`}>
|
|
199
199
|
<span className="flex items-center gap-2 w-28 shrink-0">
|
|
200
200
|
{kindIcon(kind, 'h-3.5 w-3.5')}
|
|
201
|
-
<code className="text-ods-text-secondary
|
|
201
|
+
<code className="text-ods-text-secondary text-code truncate">{idLabel}</code>
|
|
202
202
|
</span>
|
|
203
|
-
<span className="flex items-center gap-2 text-ods-text-primary text-
|
|
203
|
+
<span className="flex items-center gap-2 text-ods-text-primary text-h6 flex-1 min-w-0">
|
|
204
204
|
{reviewState ? <ReviewStateBadge state={reviewState} /> : null}
|
|
205
205
|
<span className="truncate">{primaryText}</span>
|
|
206
206
|
</span>
|
|
207
207
|
{repo ? (
|
|
208
|
-
<span className="
|
|
208
|
+
<span className="text-code text-ods-text-secondary truncate max-w-[240px] shrink-0">{repo}</span>
|
|
209
209
|
) : null}
|
|
210
210
|
{dateText ? (
|
|
211
|
-
<span className="text-ods-text-secondary text-
|
|
211
|
+
<span className="text-ods-text-secondary text-h6 w-24 shrink-0 text-right">{dateText}</span>
|
|
212
212
|
) : null}
|
|
213
213
|
</div>
|
|
214
214
|
)
|
|
@@ -216,7 +216,7 @@ export function GitHubActivityCard({ item, variant = 'compact', className, ancho
|
|
|
216
216
|
|
|
217
217
|
const metaParts: React.ReactNode[] = []
|
|
218
218
|
metaParts.push(
|
|
219
|
-
<span key="kind" className="
|
|
219
|
+
<span key="kind" className="text-h6 uppercase">{kindLabel(kind)}</span>,
|
|
220
220
|
)
|
|
221
221
|
if (idLabel) metaParts.push(<code key="id" className="font-mono">{idLabel}</code>)
|
|
222
222
|
if (repo) metaParts.push(<span key="repo" className="font-mono truncate">{repo}</span>)
|
|
@@ -70,15 +70,15 @@ export function HubspotTicketCard({ item, variant = 'compact', className, anchor
|
|
|
70
70
|
if (variant === 'row') {
|
|
71
71
|
return (
|
|
72
72
|
<div className={`flex items-center gap-3 min-w-0 ${className ?? ''}`}>
|
|
73
|
-
<span className="text-ods-text-primary text-
|
|
73
|
+
<span className="text-ods-text-primary text-h6 truncate max-w-[260px] shrink-0">{item.title}</span>
|
|
74
74
|
{item.preview ? (
|
|
75
|
-
<span className="text-ods-text-secondary text-
|
|
75
|
+
<span className="text-ods-text-secondary text-h6 flex-1 min-w-0 truncate">{item.preview}</span>
|
|
76
76
|
) : null}
|
|
77
77
|
{statusText ? (
|
|
78
78
|
<StatusBadge text={statusText} variant="button" colorScheme={statusScheme(item.status)} />
|
|
79
79
|
) : null}
|
|
80
80
|
{dateText ? (
|
|
81
|
-
<span className="text-ods-text-secondary text-
|
|
81
|
+
<span className="text-ods-text-secondary text-h6 w-24 shrink-0 text-right">{dateText}</span>
|
|
82
82
|
) : null}
|
|
83
83
|
</div>
|
|
84
84
|
)
|
|
@@ -116,13 +116,13 @@ export function HubspotTicketCard({ item, variant = 'compact', className, anchor
|
|
|
116
116
|
) : null}
|
|
117
117
|
</span>
|
|
118
118
|
{item.customerEmail ? (
|
|
119
|
-
<span className="flex min-w-0 items-center gap-1 text-
|
|
119
|
+
<span className="flex min-w-0 items-center gap-1 text-h6 text-ods-text-secondary">
|
|
120
120
|
<span className="shrink-0 text-ods-text-secondary/70">From:</span>
|
|
121
121
|
<span className="min-w-0 truncate">{item.customerEmail}</span>
|
|
122
122
|
</span>
|
|
123
123
|
) : null}
|
|
124
124
|
<span className="flex min-w-0">
|
|
125
|
-
<span className="line-clamp-4 whitespace-pre-wrap break-words text-
|
|
125
|
+
<span className="line-clamp-4 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary">
|
|
126
126
|
{item.preview || <span className="italic text-ods-text-secondary/60">No description provided.</span>}
|
|
127
127
|
</span>
|
|
128
128
|
</span>
|
|
@@ -129,7 +129,7 @@ export function InvestorUpdateCard({
|
|
|
129
129
|
{update.title || `Update #${update.update_number ?? '?'}`}
|
|
130
130
|
</span>
|
|
131
131
|
{update.update_number ? (
|
|
132
|
-
<span className="shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-
|
|
132
|
+
<span className="shrink-0 rounded bg-ods-accent/10 px-1.5 py-0.5 text-h6 text-ods-accent">
|
|
133
133
|
#{update.update_number}
|
|
134
134
|
</span>
|
|
135
135
|
) : null}
|
|
@@ -83,7 +83,7 @@ function stripMarkdownPreview(text: string): string {
|
|
|
83
83
|
const HORIZONTAL_SIZE_TOKENS = {
|
|
84
84
|
default: {
|
|
85
85
|
padding: 'p-4',
|
|
86
|
-
step: 'w-8 h-8 text-
|
|
86
|
+
step: 'w-8 h-8 text-h6',
|
|
87
87
|
title: 'text-h5',
|
|
88
88
|
summaryClamp: 'line-clamp-2',
|
|
89
89
|
},
|
|
@@ -92,7 +92,7 @@ const HORIZONTAL_SIZE_TOKENS = {
|
|
|
92
92
|
export function OnboardingGuideCardSkeleton({ size = 'default' }: { size?: 'catalog' | 'default' | 'sm' }) {
|
|
93
93
|
if (size === 'catalog') {
|
|
94
94
|
return (
|
|
95
|
-
<div className="bg-ods-
|
|
95
|
+
<div className="bg-ods-card border border-ods-border rounded-lg overflow-hidden flex flex-col p-6 gap-4 animate-pulse">
|
|
96
96
|
<div className="flex flex-col md:flex-row gap-4 md:gap-6">
|
|
97
97
|
<div className="w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" />
|
|
98
98
|
<div className="flex-1 min-w-0 flex flex-col">
|
|
@@ -235,7 +235,7 @@ export function OnboardingGuideCard({
|
|
|
235
235
|
rel={rel}
|
|
236
236
|
prefetch={false}
|
|
237
237
|
className={cn(
|
|
238
|
-
'group block no-underline bg-ods-
|
|
238
|
+
'group block no-underline bg-ods-card',
|
|
239
239
|
'border border-ods-border rounded-lg overflow-hidden',
|
|
240
240
|
'transition-all duration-300 ease-out',
|
|
241
241
|
'transform hover:translate-y-[-2px]',
|
|
@@ -266,11 +266,11 @@ export function OnboardingGuideCard({
|
|
|
266
266
|
)}
|
|
267
267
|
{hasVideoCover && coverImage && (
|
|
268
268
|
<span className="absolute inset-0 flex items-center justify-center bg-black/30">
|
|
269
|
-
<Play className="w-10 h-10 text-
|
|
269
|
+
<Play className="w-10 h-10 text-ods-text-on-dark" fill="white" />
|
|
270
270
|
</span>
|
|
271
271
|
)}
|
|
272
272
|
{durationLabel && (
|
|
273
|
-
<span className="absolute bottom-2 right-2 inline-flex items-center gap-1 px-2 py-1 rounded bg-black/60 text-
|
|
273
|
+
<span className="absolute bottom-2 right-2 inline-flex items-center gap-1 px-2 py-1 rounded bg-black/60 text-ods-text-on-dark text-code">
|
|
274
274
|
<Clock className="w-3 h-3" />
|
|
275
275
|
{durationLabel}
|
|
276
276
|
</span>
|
|
@@ -280,12 +280,12 @@ export function OnboardingGuideCard({
|
|
|
280
280
|
|
|
281
281
|
<div className="flex-1 min-w-0 flex flex-col">
|
|
282
282
|
<div className="min-h-[60px] md:min-h-[72px] flex items-start mb-3">
|
|
283
|
-
<h3 className="
|
|
283
|
+
<h3 className="text-h2 text-ods-text-primary line-clamp-2">
|
|
284
284
|
{guide.title}
|
|
285
285
|
</h3>
|
|
286
286
|
</div>
|
|
287
287
|
<div className="min-h-[46px] md:min-h-[52px]">
|
|
288
|
-
<p className="
|
|
288
|
+
<p className="text-h6 text-ods-text-secondary line-clamp-2">
|
|
289
289
|
{stripMarkdownPreview(guide.video_summary || guide.content || '')}
|
|
290
290
|
</p>
|
|
291
291
|
</div>
|
|
@@ -339,18 +339,18 @@ export function OnboardingGuideCard({
|
|
|
339
339
|
)}
|
|
340
340
|
{hasVideoCover && compactCover && (
|
|
341
341
|
<span className="absolute inset-0 flex items-center justify-center bg-black/30">
|
|
342
|
-
<Play className="h-4 w-4 text-
|
|
342
|
+
<Play className="h-4 w-4 text-ods-text-on-dark" fill="white" />
|
|
343
343
|
</span>
|
|
344
344
|
)}
|
|
345
345
|
</span>
|
|
346
346
|
<span className={COMPACT_CARD_TEXT_COL}>
|
|
347
347
|
<span className={COMPACT_CARD_TITLE_ROW}>
|
|
348
|
-
<span className={cn(COMPACT_CARD_TITLE,
|
|
348
|
+
<span className={cn(COMPACT_CARD_TITLE, 'font-heading')}>
|
|
349
349
|
{guide.title}
|
|
350
350
|
</span>
|
|
351
351
|
</span>
|
|
352
352
|
<span className={COMPACT_CARD_META_ROW_BOX}>
|
|
353
|
-
<span className="truncate text-
|
|
353
|
+
<span className="truncate text-h6 text-ods-accent">
|
|
354
354
|
{subtitleParts.join(' · ')}
|
|
355
355
|
</span>
|
|
356
356
|
</span>
|
|
@@ -390,12 +390,12 @@ export function OnboardingGuideCard({
|
|
|
390
390
|
</span>
|
|
391
391
|
<span className="flex flex-col gap-0.5 flex-1 min-w-0">
|
|
392
392
|
<span className={`block ${t.title} text-ods-text-primary truncate`}>{guide.title}</span>
|
|
393
|
-
<span className="inline-flex items-center gap-1
|
|
393
|
+
<span className="inline-flex items-center gap-1 text-h6 text-ods-text-secondary">
|
|
394
394
|
<GraduationCap className="h-3 w-3 shrink-0" />
|
|
395
395
|
<span className="truncate">{guide.section}</span>
|
|
396
396
|
</span>
|
|
397
397
|
{summary && (
|
|
398
|
-
<span className={`
|
|
398
|
+
<span className={`text-h6 text-ods-text-secondary ${t.summaryClamp}`}>
|
|
399
399
|
{summary}
|
|
400
400
|
</span>
|
|
401
401
|
)}
|
|
@@ -329,18 +329,18 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
329
329
|
)}
|
|
330
330
|
{config.type === 'podcast' && !isScheduled && compactCover && (
|
|
331
331
|
<span className="absolute inset-0 flex items-center justify-center bg-black/30">
|
|
332
|
-
<Play className="w-4 h-4 text-
|
|
332
|
+
<Play className="w-4 h-4 text-ods-text-on-dark" fill="white" />
|
|
333
333
|
</span>
|
|
334
334
|
)}
|
|
335
335
|
</span>
|
|
336
336
|
<span className={COMPACT_CARD_TEXT_COL}>
|
|
337
337
|
<span className={COMPACT_CARD_TITLE_ROW}>
|
|
338
|
-
<span className={cn(COMPACT_CARD_TITLE,
|
|
338
|
+
<span className={cn(COMPACT_CARD_TITLE, 'font-heading')}>
|
|
339
339
|
{item.title}
|
|
340
340
|
</span>
|
|
341
341
|
</span>
|
|
342
342
|
<span className={COMPACT_CARD_META_ROW_BOX}>
|
|
343
|
-
<span className="truncate text-
|
|
343
|
+
<span className="truncate text-h6 text-ods-accent">
|
|
344
344
|
{subtitleParts.join(' · ')}
|
|
345
345
|
</span>
|
|
346
346
|
</span>
|
|
@@ -365,7 +365,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
365
365
|
return (
|
|
366
366
|
<>
|
|
367
367
|
<Clock className="w-4 h-4 text-ods-text-secondary" />
|
|
368
|
-
<span className="font-
|
|
368
|
+
<span className="font-body text-ods-text-secondary">
|
|
369
369
|
{formatDurationCompact((item as any).duration_seconds)}
|
|
370
370
|
</span>
|
|
371
371
|
</>
|
|
@@ -373,7 +373,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
373
373
|
}
|
|
374
374
|
if (config.type === 'event' && 'location_name' in item) {
|
|
375
375
|
return (
|
|
376
|
-
<span className="font-
|
|
376
|
+
<span className="font-body text-ods-text-secondary">
|
|
377
377
|
{(item as any).location_name || 'Location TBD'}
|
|
378
378
|
</span>
|
|
379
379
|
)
|
|
@@ -384,12 +384,12 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
384
384
|
return (
|
|
385
385
|
<>
|
|
386
386
|
<Video className="w-4 h-4 text-ods-text-secondary" />
|
|
387
|
-
<span className="font-
|
|
387
|
+
<span className="font-body text-ods-text-secondary">
|
|
388
388
|
{formatTimeWithTimezone(webinarItem.start_at, webinarItem.timezone ?? null)}
|
|
389
389
|
{duration && ` · ${duration}`}
|
|
390
390
|
</span>
|
|
391
391
|
{webinarItem.timezone && (
|
|
392
|
-
<span className="
|
|
392
|
+
<span className="text-h6 text-ods-text-secondary">
|
|
393
393
|
({webinarItem.timezone})
|
|
394
394
|
</span>
|
|
395
395
|
)}
|
|
@@ -415,7 +415,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
415
415
|
/>
|
|
416
416
|
{config.type === 'podcast' && !isScheduled && (
|
|
417
417
|
<div className="absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity rounded-lg">
|
|
418
|
-
<Play className="w-10 h-10 text-
|
|
418
|
+
<Play className="w-10 h-10 text-ods-text-on-dark" fill="white" />
|
|
419
419
|
</div>
|
|
420
420
|
)}
|
|
421
421
|
</div>
|
|
@@ -423,12 +423,12 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
423
423
|
)}
|
|
424
424
|
|
|
425
425
|
<div className="flex-1 min-w-0 flex flex-col">
|
|
426
|
-
<h3 className="
|
|
426
|
+
<h3 className="text-h2 text-ods-text-primary mb-3 min-h-[3rem] md:min-h-[3.5rem] line-clamp-2 flex items-center">
|
|
427
427
|
{item.title}
|
|
428
428
|
</h3>
|
|
429
429
|
|
|
430
430
|
<div className="flex flex-col md:flex-row md:items-center gap-2 md:gap-4 mb-4">
|
|
431
|
-
<span className="
|
|
431
|
+
<span className="text-h6" style={{ color: accentColor }}>
|
|
432
432
|
{dateFormat}
|
|
433
433
|
</span>
|
|
434
434
|
{renderMeta ? (
|
|
@@ -447,7 +447,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
447
447
|
</div>
|
|
448
448
|
|
|
449
449
|
<div className="flex-1">
|
|
450
|
-
<p className="
|
|
450
|
+
<p className="text-h6 text-ods-text-secondary line-clamp-3 min-h-[4.5rem]">
|
|
451
451
|
{item.description}
|
|
452
452
|
</p>
|
|
453
453
|
</div>
|
|
@@ -494,7 +494,7 @@ export function ProgramCard<T extends BaseProgramItem>({
|
|
|
494
494
|
<div className="p-6 pt-0 mt-auto">
|
|
495
495
|
<div className="pt-4 border-t border-ods-border">
|
|
496
496
|
<span
|
|
497
|
-
className="inline-flex items-center gap-2 px-4 py-2 rounded-md border border-ods-accent text-ods-accent text-
|
|
497
|
+
className="inline-flex items-center gap-2 px-4 py-2 rounded-md border border-ods-accent text-ods-accent text-h6"
|
|
498
498
|
aria-hidden="true"
|
|
499
499
|
>
|
|
500
500
|
View {config.labels.singular} Details
|