@flamingo-stack/openframe-frontend-core 0.0.439-snapshot.20260717095442 → 0.0.439
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-QAG357PE.js → chunk-2ELBNZJ3.js} +7 -7
- package/dist/chunk-2ELBNZJ3.js.map +1 -0
- package/dist/{chunk-IZ6A6K6N.cjs → chunk-3WJQL4DN.cjs} +25 -25
- package/dist/chunk-3WJQL4DN.cjs.map +1 -0
- package/dist/{chunk-6CITW5BD.js → chunk-4ACSUJ7Q.js} +10 -10
- package/dist/chunk-4ACSUJ7Q.js.map +1 -0
- package/dist/{chunk-JYI4R25Q.js → chunk-7WM77CSW.js} +5 -5
- package/dist/chunk-7WM77CSW.js.map +1 -0
- package/dist/{chunk-TAQMYVO6.cjs → chunk-AUJXLVXA.cjs} +42 -42
- package/dist/{chunk-TAQMYVO6.cjs.map → chunk-AUJXLVXA.cjs.map} +1 -1
- package/dist/{chunk-UFBUQO7Z.cjs → chunk-C3FH53AP.cjs} +19 -19
- package/dist/{chunk-UFBUQO7Z.cjs.map → chunk-C3FH53AP.cjs.map} +1 -1
- package/dist/{chunk-FPE3SQ5D.js → chunk-COMBYYQY.js} +13 -13
- package/dist/chunk-COMBYYQY.js.map +1 -0
- package/dist/{chunk-J5NO7PAG.cjs → chunk-EE5NH5SH.cjs} +3 -3
- package/dist/{chunk-J5NO7PAG.cjs.map → chunk-EE5NH5SH.cjs.map} +1 -1
- package/dist/{chunk-SM26C2L7.js → chunk-EGRZHR7J.js} +9 -9
- package/dist/chunk-EGRZHR7J.js.map +1 -0
- package/dist/{chunk-W3JZXLJ2.js → chunk-F7YVI54P.js} +10 -10
- package/dist/chunk-F7YVI54P.js.map +1 -0
- package/dist/{chunk-63TSTDME.js → chunk-G5FALXNO.js} +21 -21
- package/dist/chunk-G5FALXNO.js.map +1 -0
- package/dist/{chunk-DUQQEQ7G.cjs → chunk-HTVVXVJL.cjs} +1594 -1431
- package/dist/chunk-HTVVXVJL.cjs.map +1 -0
- package/dist/{chunk-JNC4LVD6.cjs → chunk-IAN7GUIV.cjs} +42 -42
- package/dist/chunk-IAN7GUIV.cjs.map +1 -0
- package/dist/{chunk-PYR4LVAF.cjs → chunk-IMK6RUEC.cjs} +10 -10
- package/dist/chunk-IMK6RUEC.cjs.map +1 -0
- package/dist/{chunk-LFWPWIAC.cjs → chunk-M3LD6DNE.cjs} +16 -16
- package/dist/{chunk-LFWPWIAC.cjs.map → chunk-M3LD6DNE.cjs.map} +1 -1
- package/dist/{chunk-KUXGQ2FQ.cjs → chunk-M6QGB6DC.cjs} +36 -36
- package/dist/chunk-M6QGB6DC.cjs.map +1 -0
- package/dist/{chunk-QO6MCQYE.cjs → chunk-N2TJ3HAM.cjs} +9 -9
- package/dist/chunk-N2TJ3HAM.cjs.map +1 -0
- package/dist/{chunk-ZQYFDYWV.js → chunk-NQQ4NLUT.js} +4461 -4298
- package/dist/chunk-NQQ4NLUT.js.map +1 -0
- package/dist/{chunk-Y3NFB6HR.js → chunk-P7PISHM5.js} +5 -5
- package/dist/chunk-P7PISHM5.js.map +1 -0
- package/dist/{chunk-YZJUHEPZ.js → chunk-PBTY7AH5.js} +95 -95
- package/dist/chunk-PBTY7AH5.js.map +1 -0
- package/dist/{chunk-7KNOHGMI.js → chunk-PEIR7D25.js} +2 -2
- package/dist/{chunk-7KDR5P23.js → chunk-QXYOGJQJ.js} +2 -2
- package/dist/{chunk-LUKRPHEW.cjs → chunk-R46QEE3R.cjs} +96 -96
- package/dist/chunk-R46QEE3R.cjs.map +1 -0
- package/dist/{chunk-IPEIOR77.cjs → chunk-RQQZF6G6.cjs} +130 -130
- package/dist/chunk-RQQZF6G6.cjs.map +1 -0
- package/dist/{chunk-2BTDPDME.js → chunk-RVWC4P3H.js} +9 -9
- package/dist/chunk-RVWC4P3H.js.map +1 -0
- package/dist/{chunk-JOH5D76X.cjs → chunk-VWGF6IFR.cjs} +108 -108
- package/dist/chunk-VWGF6IFR.cjs.map +1 -0
- package/dist/{chunk-IAZ5AN2E.js → chunk-WAGTZVQN.js} +30 -30
- package/dist/chunk-WAGTZVQN.js.map +1 -0
- package/dist/{chunk-AGV26PUR.js → chunk-WPVBTVI3.js} +6 -6
- package/dist/{chunk-AGV26PUR.js.map → chunk-WPVBTVI3.js.map} +1 -1
- package/dist/{chunk-XMCVUYKC.cjs → chunk-WZ6TCAYQ.cjs} +14 -14
- package/dist/chunk-WZ6TCAYQ.cjs.map +1 -0
- package/dist/{chunk-7QP65IE4.cjs → chunk-ZMUFTGL7.cjs} +5 -5
- package/dist/{chunk-7QP65IE4.cjs.map → chunk-ZMUFTGL7.cjs.map} +1 -1
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/alert-dialog.d.ts +21 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert.d.ts +9 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.d.ts.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/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/index.js +3 -3
- 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/chevron-button.d.ts +14 -0
- package/dist/components/chevron-button.d.ts.map +1 -0
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/dialog.d.ts +29 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/dropdown-menu.d.ts +28 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- 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 +256 -262
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +111 -117
- package/dist/components/index.js.map +1 -1
- package/dist/components/input.d.ts +8 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/label.d.ts +6 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/menubar.d.ts +34 -0
- package/dist/components/menubar.d.ts.map +1 -0
- 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/navigation-menu.d.ts +13 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- 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/select.d.ts +14 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/sidebar.d.ts +67 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/square-avatar.d.ts +21 -0
- package/dist/components/square-avatar.d.ts.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/tabs.d.ts +18 -0
- package/dist/components/tabs.d.ts.map +1 -0
- 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/toggle.d.ts +13 -0
- package/dist/components/toggle.d.ts.map +1 -0
- 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 +4 -4
- package/dist/components/ui/index.js +3 -3
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts +0 -3
- 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 +4 -4
- package/dist/index.js +3 -3
- package/dist/tailwind.config.cjs +5 -38
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +5 -38
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +0 -5
- package/src/components/.accordion.md +42 -0
- package/src/components/.alert-dialog.md +58 -0
- package/src/components/.alert.md +43 -0
- package/src/components/.badge.md +40 -0
- package/src/components/.breadcrumb.md +54 -0
- package/src/components/.chevron-button.md +46 -0
- package/src/components/.dialog.md +60 -0
- package/src/components/.dropdown-menu.md +51 -0
- package/src/components/.footer.md +2 -2
- package/src/components/.input.md +40 -0
- package/src/components/.label.md +41 -0
- package/src/components/.menubar.md +49 -0
- package/src/components/.navigation-menu.md +44 -0
- package/src/components/.select.md +54 -0
- package/src/components/.sidebar.md +58 -0
- package/src/components/.square-avatar.md +42 -0
- package/src/components/.table.md +51 -0
- package/src/components/.tabs.md +38 -0
- package/src/components/.toggle.md +49 -0
- package/src/components/accordion.tsx +56 -0
- package/src/components/alert-dialog.tsx +141 -0
- package/src/components/alert.tsx +59 -0
- package/src/components/announcement-bar.tsx +1 -1
- package/src/components/authors/author-detail-view.tsx +3 -3
- package/src/components/badge.tsx +30 -0
- package/src/components/breadcrumb.tsx +115 -0
- 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 +5 -2
- package/src/components/chat/chat-attachment-bar.tsx +3 -3
- 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-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 +3 -3
- package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
- package/src/components/chat/entity-cards/blog-card.tsx +8 -5
- 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/mingo-info-card.tsx +2 -2
- 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 +5 -3
- 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/chevron-button.tsx +68 -0
- 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/dialog.tsx +150 -0
- package/src/components/docs/doc-viewer.tsx +4 -4
- package/src/components/dropdown-menu.tsx +200 -0
- 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/input.tsx +39 -0
- package/src/components/label.tsx +19 -0
- 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/menubar.tsx +236 -0
- package/src/components/metric-value.tsx +2 -2
- package/src/components/msp-display.tsx +2 -8
- 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/navigation-menu.tsx +128 -0
- 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/select.tsx +160 -0
- 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/sidebar.tsx +764 -0
- 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/square-avatar.tsx +61 -0
- package/src/components/steps.tsx +3 -3
- package/src/components/table.tsx +72 -0
- package/src/components/tabs.tsx +65 -0
- 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/toggle.tsx +45 -0
- 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 +5 -4
- 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 +5 -9
- 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 +6 -12
- 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 +10 -9
- package/src/components/yes-no-display.tsx +3 -3
- package/src/styles/ods-colors.css +0 -2
- package/tailwind.config.ts +4 -49
- package/dist/chunk-2BTDPDME.js.map +0 -1
- package/dist/chunk-63TSTDME.js.map +0 -1
- package/dist/chunk-6CITW5BD.js.map +0 -1
- package/dist/chunk-DUQQEQ7G.cjs.map +0 -1
- package/dist/chunk-FPE3SQ5D.js.map +0 -1
- package/dist/chunk-IAZ5AN2E.js.map +0 -1
- package/dist/chunk-IPEIOR77.cjs.map +0 -1
- package/dist/chunk-IZ6A6K6N.cjs.map +0 -1
- package/dist/chunk-JNC4LVD6.cjs.map +0 -1
- package/dist/chunk-JOH5D76X.cjs.map +0 -1
- package/dist/chunk-JYI4R25Q.js.map +0 -1
- package/dist/chunk-KUXGQ2FQ.cjs.map +0 -1
- package/dist/chunk-LUKRPHEW.cjs.map +0 -1
- package/dist/chunk-PYR4LVAF.cjs.map +0 -1
- package/dist/chunk-QAG357PE.js.map +0 -1
- package/dist/chunk-QO6MCQYE.cjs.map +0 -1
- package/dist/chunk-SM26C2L7.js.map +0 -1
- package/dist/chunk-W3JZXLJ2.js.map +0 -1
- package/dist/chunk-XMCVUYKC.cjs.map +0 -1
- package/dist/chunk-Y3NFB6HR.js.map +0 -1
- package/dist/chunk-YZJUHEPZ.js.map +0 -1
- package/dist/chunk-ZQYFDYWV.js.map +0 -1
- /package/dist/{chunk-7KNOHGMI.js.map → chunk-PEIR7D25.js.map} +0 -0
- /package/dist/{chunk-7KDR5P23.js.map → chunk-QXYOGJQJ.js.map} +0 -0
|
@@ -132,13 +132,13 @@ export function ReleaseMediaManager({
|
|
|
132
132
|
)}
|
|
133
133
|
</div>
|
|
134
134
|
<div>
|
|
135
|
-
<h3 className="
|
|
135
|
+
<h3 className="font-['DM_Sans'] font-semibold text-ods-text-primary mb-1">
|
|
136
136
|
{uploadingIndex !== null ? 'Uploading...' : 'Upload Media'}
|
|
137
137
|
</h3>
|
|
138
|
-
<p className="text-
|
|
138
|
+
<p className="text-sm text-ods-text-secondary">
|
|
139
139
|
Drag and drop or click to select images and videos
|
|
140
140
|
</p>
|
|
141
|
-
<p className="text-
|
|
141
|
+
<p className="text-xs text-ods-text-secondary mt-1">
|
|
142
142
|
Maximum file size: 50MB
|
|
143
143
|
</p>
|
|
144
144
|
</div>
|
|
@@ -148,7 +148,7 @@ export function ReleaseMediaManager({
|
|
|
148
148
|
onClick={() => fileInputRef.current?.click()}
|
|
149
149
|
disabled={uploadingIndex !== null}
|
|
150
150
|
leftIcon={<Plus className="h-4 w-4" />}
|
|
151
|
-
className="text-
|
|
151
|
+
className="font-['DM_Sans'] text-[16px] font-bold"
|
|
152
152
|
>
|
|
153
153
|
{uploadingIndex !== null ? 'Uploading...' : 'Select Files'}
|
|
154
154
|
</Button>
|
|
@@ -168,8 +168,8 @@ export function ReleaseMediaManager({
|
|
|
168
168
|
{media.length > 0 && (
|
|
169
169
|
<div>
|
|
170
170
|
<div className="flex items-center justify-between mb-4">
|
|
171
|
-
<Label className="text-
|
|
172
|
-
<p className="text-
|
|
171
|
+
<Label className="text-[14px] text-ods-text-primary">Media Gallery ({media.length})</Label>
|
|
172
|
+
<p className="text-xs text-ods-text-secondary">Drag to reorder</p>
|
|
173
173
|
</div>
|
|
174
174
|
|
|
175
175
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
@@ -180,11 +180,11 @@ export function ReleaseMediaManager({
|
|
|
180
180
|
onDragStart={handleDragStart(index)}
|
|
181
181
|
onDragOver={handleDragOver}
|
|
182
182
|
onDrop={handleDrop(index)}
|
|
183
|
-
className="relative group border border-ods-border rounded-lg overflow-hidden hover:border-ods-accent/30 transition-colors bg-ods-bg-
|
|
183
|
+
className="relative group border border-ods-border rounded-lg overflow-hidden hover:border-ods-accent/30 transition-colors bg-ods-bg-secondary"
|
|
184
184
|
>
|
|
185
185
|
{/* Drag Handle */}
|
|
186
186
|
<div className="absolute top-2 left-2 opacity-0 group-hover:opacity-100 transition-opacity cursor-move z-10">
|
|
187
|
-
<GripVertical className="h-4 w-4 text-
|
|
187
|
+
<GripVertical className="h-4 w-4 text-white drop-shadow" />
|
|
188
188
|
</div>
|
|
189
189
|
|
|
190
190
|
{/* Delete Button */}
|
|
@@ -195,9 +195,9 @@ export function ReleaseMediaManager({
|
|
|
195
195
|
size="small-legacy"
|
|
196
196
|
onClick={() => removeMedia(index)}
|
|
197
197
|
disabled={item._uploading}
|
|
198
|
-
className="h-8 w-8 p-0 bg-
|
|
198
|
+
className="h-8 w-8 p-0 bg-red-500 hover:bg-red-600 border-red-500"
|
|
199
199
|
>
|
|
200
|
-
<Trash2 className="h-4 w-4 text-
|
|
200
|
+
<Trash2 className="h-4 w-4 text-white" />
|
|
201
201
|
</Button>
|
|
202
202
|
</div>
|
|
203
203
|
|
|
@@ -227,7 +227,7 @@ export function ReleaseMediaManager({
|
|
|
227
227
|
<div className="aspect-video bg-ods-bg flex items-center justify-center">
|
|
228
228
|
<div className="flex flex-col items-center gap-2">
|
|
229
229
|
<Loader2 className="h-8 w-8 animate-spin text-ods-accent" />
|
|
230
|
-
<span className="text-
|
|
230
|
+
<span className="text-sm text-ods-text-secondary">Uploading...</span>
|
|
231
231
|
</div>
|
|
232
232
|
</div>
|
|
233
233
|
)}
|
|
@@ -241,7 +241,7 @@ export function ReleaseMediaManager({
|
|
|
241
241
|
onValueChange={(value: any) => updateMedia(index, 'media_type', value)}
|
|
242
242
|
disabled={item._uploading}
|
|
243
243
|
>
|
|
244
|
-
<SelectTrigger className="bg-ods-bg h-8 text-
|
|
244
|
+
<SelectTrigger className="bg-ods-bg h-8 text-xs">
|
|
245
245
|
<SelectValue />
|
|
246
246
|
</SelectTrigger>
|
|
247
247
|
<SelectContent className="bg-ods-card">
|
|
@@ -258,7 +258,7 @@ export function ReleaseMediaManager({
|
|
|
258
258
|
value={item.title}
|
|
259
259
|
onChange={(e) => updateMedia(index, 'title', e.target.value)}
|
|
260
260
|
onKeyDown={(e) => e.key === 'Enter' && e.preventDefault()}
|
|
261
|
-
className="bg-ods-bg h-8 text-
|
|
261
|
+
className="bg-ods-bg h-8 text-xs"
|
|
262
262
|
disabled={item._uploading}
|
|
263
263
|
/>
|
|
264
264
|
</div>
|
|
@@ -269,12 +269,12 @@ export function ReleaseMediaManager({
|
|
|
269
269
|
)}
|
|
270
270
|
|
|
271
271
|
{media.length === 0 && (
|
|
272
|
-
<div className="text-center py-8 px-4 bg-ods-bg-
|
|
272
|
+
<div className="text-center py-8 px-4 bg-ods-bg-secondary border border-ods-border rounded-lg">
|
|
273
273
|
<ImageIcon className="h-12 w-12 text-ods-text-secondary mx-auto mb-4" />
|
|
274
|
-
<h3 className="
|
|
274
|
+
<h3 className="font-['DM_Sans'] font-semibold text-ods-text-primary mb-2">
|
|
275
275
|
No media uploaded yet
|
|
276
276
|
</h3>
|
|
277
|
-
<p className="text-
|
|
277
|
+
<p className="text-sm text-ods-text-secondary">
|
|
278
278
|
Upload your first image or video to get started
|
|
279
279
|
</p>
|
|
280
280
|
</div>
|
|
@@ -63,9 +63,9 @@ const SectionButton: React.FC<{
|
|
|
63
63
|
minHeight = layout === 'vertical' ? '96px' : '76px',
|
|
64
64
|
showDescription = true
|
|
65
65
|
}) => {
|
|
66
|
-
const titleClasses = "text-ods-text-primary"
|
|
67
|
-
const subtitleClasses = "text-ods-text-secondary"
|
|
68
|
-
const numberClasses = "text-ods-accent"
|
|
66
|
+
const titleClasses = "font-['DM_Sans'] text-ods-text-primary"
|
|
67
|
+
const subtitleClasses = "font-['DM_Sans'] text-ods-text-secondary"
|
|
68
|
+
const numberClasses = "font-['DM_Sans'] font-bold text-ods-accent"
|
|
69
69
|
|
|
70
70
|
const isDisabled = section.disabled || disabled;
|
|
71
71
|
|
|
@@ -100,13 +100,13 @@ const SectionButton: React.FC<{
|
|
|
100
100
|
</div>
|
|
101
101
|
)}
|
|
102
102
|
{section.number && (
|
|
103
|
-
<span className={cn(numberClasses, 'text-
|
|
103
|
+
<span className={cn(numberClasses, 'text-lg tracking-[-0.36px] leading-[24px] shrink-0')}>
|
|
104
104
|
{section.number}
|
|
105
105
|
</span>
|
|
106
106
|
)}
|
|
107
107
|
<div className="flex-1 text-left min-w-0">
|
|
108
108
|
<div className="flex items-center gap-2 flex-wrap">
|
|
109
|
-
<p className={cn(titleClasses, 'text-
|
|
109
|
+
<p className={cn(titleClasses, 'font-medium text-lg leading-[24px] whitespace-normal break-words')}>
|
|
110
110
|
{section.title}
|
|
111
111
|
</p>
|
|
112
112
|
{section.badge && (
|
|
@@ -118,7 +118,7 @@ const SectionButton: React.FC<{
|
|
|
118
118
|
)}
|
|
119
119
|
</div>
|
|
120
120
|
{section.description && showDescription && (
|
|
121
|
-
<p className={cn(subtitleClasses, 'text-
|
|
121
|
+
<p className={cn(subtitleClasses, 'text-sm mt-1 whitespace-normal break-words')}>
|
|
122
122
|
{section.description}
|
|
123
123
|
</p>
|
|
124
124
|
)}
|
|
@@ -134,7 +134,7 @@ const SectionButton: React.FC<{
|
|
|
134
134
|
)}
|
|
135
135
|
<div className="flex flex-col items-start justify-start flex-1 gap-1">
|
|
136
136
|
<div className="flex items-start gap-2 flex-wrap w-full">
|
|
137
|
-
<span className={cn(titleClasses, 'text-
|
|
137
|
+
<span className={cn(titleClasses, 'font-bold text-[18px] leading-[24px] tracking-[-0.36px]')} style={{ textAlign: 'left' }}>
|
|
138
138
|
{section.title}
|
|
139
139
|
</span>
|
|
140
140
|
{section.badge && (
|
|
@@ -146,7 +146,7 @@ const SectionButton: React.FC<{
|
|
|
146
146
|
)}
|
|
147
147
|
</div>
|
|
148
148
|
{section.subtitle && (
|
|
149
|
-
<div className={cn(subtitleClasses, 'text-
|
|
149
|
+
<div className={cn(subtitleClasses, 'font-medium text-[14px] leading-[20px] w-full')} style={{ textAlign: 'left' }}>
|
|
150
150
|
{section.subtitle}
|
|
151
151
|
</div>
|
|
152
152
|
)}
|
|
@@ -33,11 +33,11 @@ export const SelectButton = React.forwardRef<HTMLButtonElement, SelectButtonProp
|
|
|
33
33
|
onClick={onClick}
|
|
34
34
|
className={cn(
|
|
35
35
|
"group flex items-center md:gap-2 gap-1 h-11 md:h-16 px-3 md:px-4 py-3 rounded-[6px] border transition-colors duration-200",
|
|
36
|
-
"font-
|
|
36
|
+
"font-['DM_Sans'] text-left w-full",
|
|
37
37
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
|
|
38
38
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
39
39
|
selected
|
|
40
|
-
? "bg-ods-open-yellow-light border-ods-accent hover:bg-ods-open-yellow-light-hover active:bg-ods-open-yellow-light-action"
|
|
40
|
+
? "bg-[var(--ods-open-yellow-light)] border-ods-accent hover:bg-[var(--ods-open-yellow-light-hover)] active:bg-[var(--ods-open-yellow-light-action)]"
|
|
41
41
|
: "bg-ods-card border-ods-border hover:bg-ods-bg-hover hover:border-ods-accent active:bg-ods-bg-active active:border-ods-accent",
|
|
42
42
|
className,
|
|
43
43
|
)}
|
|
@@ -59,13 +59,13 @@ export const SelectButton = React.forwardRef<HTMLButtonElement, SelectButtonProp
|
|
|
59
59
|
)}
|
|
60
60
|
|
|
61
61
|
<span className="flex flex-1 flex-col justify-center min-w-0 overflow-hidden">
|
|
62
|
-
<span className="text-
|
|
62
|
+
<span className="md:text-[18px] text-[14px] font-medium text-ods-text-primary truncate" title={title}>
|
|
63
63
|
{title}
|
|
64
64
|
</span>
|
|
65
65
|
{description && (
|
|
66
66
|
<span
|
|
67
67
|
className={cn(
|
|
68
|
-
"text-
|
|
68
|
+
"text-[14px] font-medium leading-5 truncate hidden md:flex",
|
|
69
69
|
selected ? "text-ods-accent" : "text-ods-text-secondary",
|
|
70
70
|
)} title={description}>
|
|
71
71
|
{description}
|
|
@@ -116,7 +116,7 @@ export function SEOEditorPreview({
|
|
|
116
116
|
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
|
117
117
|
<div className="space-y-2">
|
|
118
118
|
<div className="flex items-center gap-2">
|
|
119
|
-
<Label className="text-
|
|
119
|
+
<Label className="font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary">
|
|
120
120
|
SEO Title
|
|
121
121
|
</Label>
|
|
122
122
|
{aiConfidenceSeoTitle !== undefined && (
|
|
@@ -141,14 +141,14 @@ export function SEOEditorPreview({
|
|
|
141
141
|
className="bg-ods-bg border-ods-border text-ods-text-primary"
|
|
142
142
|
/>
|
|
143
143
|
<div className="flex items-center justify-between gap-2">
|
|
144
|
-
<span className="text-
|
|
144
|
+
<span className="text-[11px] text-ods-error font-['DM_Sans']">
|
|
145
145
|
{seoTitleTooLong
|
|
146
146
|
? `Too long: search engines may truncate this title (keep it under ${SEO_TITLE_MAX_LENGTH})`
|
|
147
147
|
: ''}
|
|
148
148
|
</span>
|
|
149
149
|
<span
|
|
150
150
|
className={cn(
|
|
151
|
-
"text-
|
|
151
|
+
"text-[11px] font-['DM_Sans'] tabular-nums shrink-0",
|
|
152
152
|
seoTitleTooLong ? 'text-ods-error font-semibold' : 'text-ods-text-secondary'
|
|
153
153
|
)}
|
|
154
154
|
>
|
|
@@ -156,7 +156,7 @@ export function SEOEditorPreview({
|
|
|
156
156
|
</span>
|
|
157
157
|
</div>
|
|
158
158
|
{!seoTitle && title && (
|
|
159
|
-
<p className="text-
|
|
159
|
+
<p className="text-[11px] text-ods-accent font-['DM_Sans']">
|
|
160
160
|
Auto-populated from title
|
|
161
161
|
</p>
|
|
162
162
|
)}
|
|
@@ -164,7 +164,7 @@ export function SEOEditorPreview({
|
|
|
164
164
|
|
|
165
165
|
<div className="space-y-2">
|
|
166
166
|
<div className="flex items-center gap-2">
|
|
167
|
-
<Label className="text-
|
|
167
|
+
<Label className="font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary">
|
|
168
168
|
SEO Keywords
|
|
169
169
|
</Label>
|
|
170
170
|
{aiConfidenceSeoKeywords !== undefined && (
|
|
@@ -193,7 +193,7 @@ export function SEOEditorPreview({
|
|
|
193
193
|
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
|
194
194
|
<div className="space-y-2 flex flex-col h-full">
|
|
195
195
|
<div className="flex items-center gap-2">
|
|
196
|
-
<Label className="text-
|
|
196
|
+
<Label className="font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary">
|
|
197
197
|
SEO Description
|
|
198
198
|
</Label>
|
|
199
199
|
{aiConfidenceSeoDescription !== undefined && (
|
|
@@ -219,14 +219,14 @@ export function SEOEditorPreview({
|
|
|
219
219
|
rows={6}
|
|
220
220
|
/>
|
|
221
221
|
<div className="flex items-center justify-between gap-2">
|
|
222
|
-
<span className="text-
|
|
222
|
+
<span className="text-[11px] text-ods-error font-['DM_Sans']">
|
|
223
223
|
{seoDescriptionTooLong
|
|
224
224
|
? `Too long: search engines may truncate this description (keep it under ${SEO_DESCRIPTION_MAX_LENGTH})`
|
|
225
225
|
: ''}
|
|
226
226
|
</span>
|
|
227
227
|
<span
|
|
228
228
|
className={cn(
|
|
229
|
-
"text-
|
|
229
|
+
"text-[11px] font-['DM_Sans'] tabular-nums shrink-0",
|
|
230
230
|
seoDescriptionTooLong ? 'text-ods-error font-semibold' : 'text-ods-text-secondary'
|
|
231
231
|
)}
|
|
232
232
|
>
|
|
@@ -234,14 +234,14 @@ export function SEOEditorPreview({
|
|
|
234
234
|
</span>
|
|
235
235
|
</div>
|
|
236
236
|
{!seoDescription && summary && (
|
|
237
|
-
<p className="text-
|
|
237
|
+
<p className="text-[11px] text-ods-accent font-['DM_Sans']">
|
|
238
238
|
Auto-populated from summary
|
|
239
239
|
</p>
|
|
240
240
|
)}
|
|
241
241
|
</div>
|
|
242
242
|
|
|
243
243
|
<div className="space-y-2 flex flex-col h-full">
|
|
244
|
-
<Label className="text-
|
|
244
|
+
<Label className="font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary">
|
|
245
245
|
OG Image
|
|
246
246
|
</Label>
|
|
247
247
|
|
|
@@ -291,7 +291,7 @@ export function SEOEditorPreview({
|
|
|
291
291
|
) : (
|
|
292
292
|
<>
|
|
293
293
|
<Upload className="h-8 w-8 text-ods-text-secondary mb-2" />
|
|
294
|
-
<span className="text-
|
|
294
|
+
<span className="text-sm text-ods-text-secondary font-['DM_Sans']">
|
|
295
295
|
{onOgImageUpload ? 'Click to upload OG image' : 'No image'}
|
|
296
296
|
</span>
|
|
297
297
|
</>
|
|
@@ -312,7 +312,7 @@ export function SEOEditorPreview({
|
|
|
312
312
|
</div>
|
|
313
313
|
|
|
314
314
|
{!ogImageUrl && featuredImage && (
|
|
315
|
-
<p className="text-
|
|
315
|
+
<p className="text-[11px] text-ods-accent font-['DM_Sans']">
|
|
316
316
|
Using featured image
|
|
317
317
|
</p>
|
|
318
318
|
)}
|
|
@@ -323,7 +323,7 @@ export function SEOEditorPreview({
|
|
|
323
323
|
<div className="pt-4 border-t border-ods-border">
|
|
324
324
|
<div className="flex items-center gap-2 mb-3">
|
|
325
325
|
<Globe className="w-4 h-4 text-ods-text-secondary" />
|
|
326
|
-
<span className="text-
|
|
326
|
+
<span className="font-['DM_Sans'] text-[12px] font-medium text-ods-text-secondary">
|
|
327
327
|
Social Media Preview
|
|
328
328
|
</span>
|
|
329
329
|
</div>
|
|
@@ -344,7 +344,7 @@ export function SEOEditorPreview({
|
|
|
344
344
|
<div className="absolute inset-0 flex items-center justify-center">
|
|
345
345
|
<div className="text-center">
|
|
346
346
|
<Globe className="w-12 h-12 text-ods-text-secondary mx-auto mb-2" />
|
|
347
|
-
<p className="text-ods-text-secondary text-
|
|
347
|
+
<p className="text-ods-text-secondary text-sm font-['DM_Sans']">No preview image</p>
|
|
348
348
|
</div>
|
|
349
349
|
</div>
|
|
350
350
|
)}
|
|
@@ -355,18 +355,18 @@ export function SEOEditorPreview({
|
|
|
355
355
|
{/* Domain */}
|
|
356
356
|
<div className="flex items-center gap-1">
|
|
357
357
|
<ExternalLink className="w-3 h-3 text-ods-text-secondary" />
|
|
358
|
-
<span className="text-
|
|
358
|
+
<span className="font-['DM_Sans'] text-[11px] text-ods-text-secondary uppercase tracking-wide">
|
|
359
359
|
{domain}
|
|
360
360
|
</span>
|
|
361
361
|
</div>
|
|
362
362
|
|
|
363
363
|
{/* Title */}
|
|
364
|
-
<h3 className="text-
|
|
364
|
+
<h3 className="font-['DM_Sans'] text-[16px] font-semibold text-ods-text-primary leading-[1.3] line-clamp-2">
|
|
365
365
|
{displayTitle}
|
|
366
366
|
</h3>
|
|
367
367
|
|
|
368
368
|
{/* Description */}
|
|
369
|
-
<p className="text-
|
|
369
|
+
<p className="font-['DM_Sans'] text-[14px] text-ods-text-secondary leading-[1.4] line-clamp-3">
|
|
370
370
|
{displayDescription}
|
|
371
371
|
</p>
|
|
372
372
|
</div>
|
|
@@ -375,17 +375,17 @@ export function SEOEditorPreview({
|
|
|
375
375
|
{/* Fallback Indicators */}
|
|
376
376
|
<div className="space-y-1 mt-3">
|
|
377
377
|
{!seoTitle.trim() && title && (
|
|
378
|
-
<p className="text-
|
|
378
|
+
<p className="font-['DM_Sans'] text-[11px] text-ods-accent">
|
|
379
379
|
• Using title as SEO title
|
|
380
380
|
</p>
|
|
381
381
|
)}
|
|
382
382
|
{!seoDescription.trim() && summary && (
|
|
383
|
-
<p className="text-
|
|
383
|
+
<p className="font-['DM_Sans'] text-[11px] text-ods-accent">
|
|
384
384
|
• Using summary as SEO description
|
|
385
385
|
</p>
|
|
386
386
|
)}
|
|
387
387
|
{!ogImageUrl.trim() && featuredImage.trim() && (
|
|
388
|
-
<p className="text-
|
|
388
|
+
<p className="font-['DM_Sans'] text-[11px] text-ods-accent">
|
|
389
389
|
• Using featured image as OG image
|
|
390
390
|
</p>
|
|
391
391
|
)}
|
|
@@ -103,7 +103,7 @@ export function SocialLinksManager({
|
|
|
103
103
|
const Icon = getIcon(link, platform);
|
|
104
104
|
|
|
105
105
|
return (
|
|
106
|
-
<div key={index} className="flex items-center gap-3 p-3 bg-ods-bg-
|
|
106
|
+
<div key={index} className="flex items-center gap-3 p-3 bg-ods-bg-secondary rounded-lg border border-ods-border">
|
|
107
107
|
<div className="w-8 h-8 flex items-center justify-center">
|
|
108
108
|
{Icon}
|
|
109
109
|
</div>
|
|
@@ -156,7 +156,7 @@ export function SocialLinksManager({
|
|
|
156
156
|
variant="transparent"
|
|
157
157
|
size="icon"
|
|
158
158
|
onClick={() => removeLink(index)}
|
|
159
|
-
className="text-
|
|
159
|
+
className="text-red-400 hover:text-red-300 hover:bg-red-400/10"
|
|
160
160
|
>
|
|
161
161
|
<Trash2 className="h-4 w-4" />
|
|
162
162
|
</Button>
|
|
@@ -166,7 +166,7 @@ export function SocialLinksManager({
|
|
|
166
166
|
|
|
167
167
|
{links.length === 0 && (
|
|
168
168
|
<div className="text-center py-8 text-ods-text-secondary">
|
|
169
|
-
<p className="text-
|
|
169
|
+
<p className="text-sm">No social links added yet.</p>
|
|
170
170
|
</div>
|
|
171
171
|
)}
|
|
172
172
|
|
|
@@ -42,18 +42,18 @@ export const StartWithOpenFrameButton = React.forwardRef<
|
|
|
42
42
|
|
|
43
43
|
if (isYellow) {
|
|
44
44
|
buttonVariant = "accent";
|
|
45
|
-
modeClassName = 'bg-ods-
|
|
45
|
+
modeClassName = 'bg-[var(--ods-open-yellow-base)] hover:bg-[var(--ods-open-yellow-hover)] text-ods-text-on-accent border-[var(--ods-open-yellow-base)]';
|
|
46
46
|
iconLowerPath = "var(--ods-system-greys-white)";
|
|
47
47
|
iconUpperPath = "var(--ods-system-greys-black)";
|
|
48
48
|
} else if (isPink) {
|
|
49
49
|
buttonVariant = "accent";
|
|
50
|
-
modeClassName = 'bg-ods-flamingo-pink hover:bg-ods-flamingo-pink-hover text-ods-
|
|
50
|
+
modeClassName = 'bg-[var(--ods-flamingo-pink-base)] hover:bg-[var(--ods-flamingo-pink-hover)] text-[var(--ods-system-greys-black)] border-[var(--ods-flamingo-pink-base)]';
|
|
51
51
|
iconLowerPath = "var(--ods-system-greys-white)";
|
|
52
52
|
iconUpperPath = "var(--ods-system-greys-black)";
|
|
53
53
|
} else if (isCyan) {
|
|
54
54
|
// Cyan mode: similar to JoinWaitlistButton with custom colors
|
|
55
55
|
buttonVariant = "accent";
|
|
56
|
-
modeClassName = 'bg-ods-flamingo-cyan hover:bg-ods-flamingo-cyan-hover text-ods-
|
|
56
|
+
modeClassName = 'bg-[var(--ods-flamingo-cyan-base)] hover:bg-[var(--ods-flamingo-cyan-hover)] text-[var(--ods-system-greys-black)] border-[var(--ods-flamingo-cyan-base)]';
|
|
57
57
|
// Allow override with custom colors if provided
|
|
58
58
|
if (buttonBackgroundColor || buttonTextColor) {
|
|
59
59
|
customStyle = {
|
|
@@ -78,7 +78,7 @@ export function StatusFilterComponent({
|
|
|
78
78
|
|
|
79
79
|
{/* Optional count display */}
|
|
80
80
|
{showCount && (
|
|
81
|
-
<div className="ml-auto text-
|
|
81
|
+
<div className="ml-auto text-[12px] font-['DM_Sans'] text-ods-text-secondary shrink-0">
|
|
82
82
|
{count} items
|
|
83
83
|
</div>
|
|
84
84
|
)}
|
|
@@ -117,7 +117,7 @@ export function TagsSelector({
|
|
|
117
117
|
{getSelectedTags().map((tag) => (
|
|
118
118
|
<span
|
|
119
119
|
key={tag.id}
|
|
120
|
-
className="inline-flex items-center gap-1 pl-2.5 pr-1 py-1 rounded-md bg-ods-accent/15 border border-ods-accent/30 text-ods-text-primary text-
|
|
120
|
+
className="inline-flex items-center gap-1 pl-2.5 pr-1 py-1 rounded-md bg-ods-accent/15 border border-ods-accent/30 text-ods-text-primary text-[13px] leading-none font-medium font-['DM_Sans']"
|
|
121
121
|
>
|
|
122
122
|
{tag.name}
|
|
123
123
|
{!disabled && (
|
|
@@ -195,7 +195,7 @@ export function TagsSelector({
|
|
|
195
195
|
onClick={handleCreateTag}
|
|
196
196
|
disabled={isCreating}
|
|
197
197
|
leftIcon={isCreating ? <Loader2 className="w-3 h-3 animate-spin" /> : <Plus className="w-3 h-3" />}
|
|
198
|
-
className="w-full flex flex-row items-center gap-1.5 px-2 py-1 mb-2 h-auto rounded border-dashed border-ods-accent bg-ods-bg hover:bg-ods-card text-ods-accent !text-
|
|
198
|
+
className="w-full flex flex-row items-center gap-1.5 px-2 py-1 mb-2 h-auto rounded border-dashed border-ods-accent bg-ods-bg hover:bg-ods-card text-ods-accent font-['DM_Sans'] !text-xs !font-medium"
|
|
199
199
|
>
|
|
200
200
|
Create tag: <strong>"{searchQuery.trim()}"</strong>
|
|
201
201
|
</Button>
|
|
@@ -210,7 +210,7 @@ export function TagsSelector({
|
|
|
210
210
|
variant="outline"
|
|
211
211
|
type="button"
|
|
212
212
|
onClick={() => handleTagAdd(tag.id)}
|
|
213
|
-
className="h-auto px-2 py-0.5 rounded border-ods-border hover:border-ods-accent bg-ods-bg hover:bg-ods-card text-ods-text-primary !text-
|
|
213
|
+
className="h-auto px-2 py-0.5 rounded border-ods-border hover:border-ods-accent bg-ods-bg hover:bg-ods-card text-ods-text-primary font-['DM_Sans'] !text-xs !font-medium"
|
|
214
214
|
>
|
|
215
215
|
{tag.name}
|
|
216
216
|
</Button>
|
|
@@ -218,7 +218,7 @@ export function TagsSelector({
|
|
|
218
218
|
</div>
|
|
219
219
|
) : !canCreateNewTag ? (
|
|
220
220
|
<div className="py-4 px-4 text-center w-full">
|
|
221
|
-
<p className="text-ods-text-secondary text-
|
|
221
|
+
<p className="text-ods-text-secondary text-sm font-['DM_Sans']">
|
|
222
222
|
{searchQuery.trim() ? `No tags found for "${searchQuery}"` : "No tags available"}
|
|
223
223
|
</p>
|
|
224
224
|
</div>
|
|
@@ -230,11 +230,11 @@ export function TagsSelector({
|
|
|
230
230
|
|
|
231
231
|
{/* Tag Counter */}
|
|
232
232
|
<div className="flex items-center justify-between">
|
|
233
|
-
<div className="text-
|
|
233
|
+
<div className="text-[11px] text-ods-text-secondary font-['DM_Sans']">
|
|
234
234
|
{selectedTagIds.length} / {maxTags} tags selected
|
|
235
235
|
</div>
|
|
236
236
|
{selectedTagIds.length >= maxTags && (
|
|
237
|
-
<span className="text-
|
|
237
|
+
<span className="text-[11px] text-[--ods-attention-red-error] font-['DM_Sans']">
|
|
238
238
|
(Maximum reached)
|
|
239
239
|
</span>
|
|
240
240
|
)}
|
|
@@ -108,10 +108,10 @@ export function TranscriptSummaryEditor({
|
|
|
108
108
|
/>
|
|
109
109
|
)}
|
|
110
110
|
</div>
|
|
111
|
-
<p className="text-
|
|
111
|
+
<p className="text-xs text-ods-text-secondary mt-1">{videoSummaryHelperText}</p>
|
|
112
112
|
</div>
|
|
113
113
|
<div
|
|
114
|
-
className="rounded-lg border border-ods-border bg-ods-
|
|
114
|
+
className="rounded-lg border border-ods-border bg-ods-background-secondary overflow-hidden"
|
|
115
115
|
style={{ minHeight: `${videoSummaryMinHeight}px` }}
|
|
116
116
|
>
|
|
117
117
|
<Textarea
|
|
@@ -120,7 +120,7 @@ export function TranscriptSummaryEditor({
|
|
|
120
120
|
onChange={(e) => onVideoSummaryChange(e.target.value)}
|
|
121
121
|
placeholder={videoSummaryPlaceholder}
|
|
122
122
|
disabled={disabled}
|
|
123
|
-
className="h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 text-
|
|
123
|
+
className="h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm"
|
|
124
124
|
style={{ minHeight: `${videoSummaryMinHeight}px`, lineHeight: '1.6' }}
|
|
125
125
|
/>
|
|
126
126
|
</div>
|
|
@@ -143,10 +143,10 @@ export function TranscriptSummaryEditor({
|
|
|
143
143
|
/>
|
|
144
144
|
)}
|
|
145
145
|
</div>
|
|
146
|
-
<p className="text-
|
|
146
|
+
<p className="text-xs text-ods-text-secondary mt-1">{transcriptHelperText}</p>
|
|
147
147
|
</div>
|
|
148
148
|
<div
|
|
149
|
-
className="rounded-lg border border-ods-border bg-ods-
|
|
149
|
+
className="rounded-lg border border-ods-border bg-ods-background-secondary overflow-hidden"
|
|
150
150
|
style={{ minHeight: `${transcriptMinHeight}px` }}
|
|
151
151
|
>
|
|
152
152
|
<Textarea
|
|
@@ -155,7 +155,7 @@ export function TranscriptSummaryEditor({
|
|
|
155
155
|
onChange={(e) => onTranscriptChange(e.target.value)}
|
|
156
156
|
placeholder={transcriptPlaceholder}
|
|
157
157
|
disabled={disabled}
|
|
158
|
-
className="h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 text-
|
|
158
|
+
className="h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm"
|
|
159
159
|
style={{ minHeight: `${transcriptMinHeight}px`, lineHeight: '1.6' }}
|
|
160
160
|
/>
|
|
161
161
|
</div>
|
|
@@ -174,10 +174,10 @@ export function TranscriptSummaryEditor({
|
|
|
174
174
|
</Badge>
|
|
175
175
|
)}
|
|
176
176
|
</div>
|
|
177
|
-
<p className="text-
|
|
177
|
+
<p className="text-xs text-ods-text-secondary mt-1">{subtitlesHelperText}</p>
|
|
178
178
|
</div>
|
|
179
179
|
<div
|
|
180
|
-
className="rounded-lg border border-ods-border bg-ods-
|
|
180
|
+
className="rounded-lg border border-ods-border bg-ods-background-secondary overflow-hidden"
|
|
181
181
|
style={{ minHeight: `${subtitlesMinHeight}px` }}
|
|
182
182
|
>
|
|
183
183
|
<Textarea
|
|
@@ -186,7 +186,7 @@ export function TranscriptSummaryEditor({
|
|
|
186
186
|
onChange={(e) => onSubtitlesChange?.(e.target.value)}
|
|
187
187
|
placeholder={subtitlesPlaceholder}
|
|
188
188
|
disabled={disabled || !onSubtitlesChange}
|
|
189
|
-
className="h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 text-
|
|
189
|
+
className="h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm"
|
|
190
190
|
style={{ minHeight: `${subtitlesMinHeight}px`, lineHeight: '1.6' }}
|
|
191
191
|
/>
|
|
192
192
|
</div>
|
|
@@ -286,7 +286,7 @@ export function VideoBiteCard({
|
|
|
286
286
|
// chevron affordance. The WHOLE footer is the navigation target — it links
|
|
287
287
|
// to the entity the bite originated from. In the editor the title row is
|
|
288
288
|
// the inline title editor (edited directly on the card).
|
|
289
|
-
const titleClass = "text-
|
|
289
|
+
const titleClass = "font-['DM_Sans'] text-sm font-medium leading-5 text-ods-text-primary";
|
|
290
290
|
const overlayContent = (
|
|
291
291
|
<>
|
|
292
292
|
{titleEditable ? (
|
|
@@ -42,7 +42,7 @@ export type RatioCategory = 'portrait' | 'square' | 'landscape';
|
|
|
42
42
|
|
|
43
43
|
// Shared tab trigger class — matches `<EntityVideoSection>`'s pattern.
|
|
44
44
|
const TAB_TRIGGER_CLASS =
|
|
45
|
-
'rounded-none border-b-2 border-transparent data-[state=active]:border-ods-accent data-[state=active]:bg-transparent data-[state=active]:shadow-none px-4 py-2 text-
|
|
45
|
+
'rounded-none border-b-2 border-transparent data-[state=active]:border-ods-accent data-[state=active]:bg-transparent data-[state=active]:shadow-none px-4 py-2 text-sm text-ods-text-secondary data-[state=active]:text-ods-text-primary';
|
|
46
46
|
|
|
47
47
|
/** Grid class for each aspect ratio (admin editors — narrower columns). */
|
|
48
48
|
export const RATIO_GRID_CLASS: Record<RatioCategory, string> = {
|
|
@@ -148,7 +148,7 @@ export function VideoSourceSelector({
|
|
|
148
148
|
<div className={`space-y-4 p-6 bg-ods-card border border-ods-border rounded-lg ${className}`}>
|
|
149
149
|
{/* Section Title */}
|
|
150
150
|
{showTitle && (
|
|
151
|
-
<h3 className="text-
|
|
151
|
+
<h3 className="font-['Azeret_Mono'] text-[18px] font-semibold uppercase text-ods-text-primary flex items-center gap-2">
|
|
152
152
|
<Video className="h-5 w-5" />
|
|
153
153
|
{title}
|
|
154
154
|
</h3>
|
|
@@ -188,7 +188,7 @@ export function VideoSourceSelector({
|
|
|
188
188
|
disabled={disabled}
|
|
189
189
|
/>
|
|
190
190
|
{youtubeHelperText && (
|
|
191
|
-
<p className="text-
|
|
191
|
+
<p className="text-xs text-ods-text-secondary">
|
|
192
192
|
{youtubeHelperText}
|
|
193
193
|
</p>
|
|
194
194
|
)}
|
|
@@ -236,15 +236,15 @@ export function VideoSourceSelector({
|
|
|
236
236
|
style={{ width: `${uploadProgress}%` }}
|
|
237
237
|
/>
|
|
238
238
|
</div>
|
|
239
|
-
<span className="text-
|
|
239
|
+
<span className="text-xs text-ods-text-secondary">{uploadProgress}%</span>
|
|
240
240
|
</div>
|
|
241
|
-
<p className="text-
|
|
241
|
+
<p className="text-xs text-ods-text-secondary">{uploadMessage}</p>
|
|
242
242
|
</div>
|
|
243
243
|
)}
|
|
244
244
|
|
|
245
245
|
{/* Upload Error */}
|
|
246
246
|
{uploadError && (
|
|
247
|
-
<p className="text-
|
|
247
|
+
<p className="text-sm text-ods-attention-red-error mb-3">{uploadError}</p>
|
|
248
248
|
)}
|
|
249
249
|
|
|
250
250
|
{/* Video Preview */}
|
|
@@ -265,7 +265,7 @@ export function VideoSourceSelector({
|
|
|
265
265
|
/>
|
|
266
266
|
)
|
|
267
267
|
) : (
|
|
268
|
-
<p className="text-
|
|
268
|
+
<p className="text-sm text-ods-text-secondary italic">
|
|
269
269
|
{uploadEmptyText}
|
|
270
270
|
</p>
|
|
271
271
|
)}
|
|
@@ -332,7 +332,7 @@ function DefaultVideoPreview({ videoUrl, resolveVideoUrl, onDelete, disabled }:
|
|
|
332
332
|
className="absolute top-2 right-2 p-1.5 bg-black/60 hover:bg-black/80 rounded-full transition-colors"
|
|
333
333
|
disabled={disabled}
|
|
334
334
|
>
|
|
335
|
-
<X className="h-4 w-4 text-
|
|
335
|
+
<X className="h-4 w-4 text-white" />
|
|
336
336
|
</button>
|
|
337
337
|
</div>
|
|
338
338
|
);
|
|
@@ -931,7 +931,7 @@ function YouTubeFacadeInner({
|
|
|
931
931
|
className="absolute inset-0 w-full h-full object-cover"
|
|
932
932
|
/>
|
|
933
933
|
</picture>
|
|
934
|
-
<div className="absolute inset-0 flex items-center justify-center bg-ods-bg bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30">
|
|
934
|
+
<div className="absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30">
|
|
935
935
|
{/* THE shared center play badge (video-center-badge.tsx) — same disc
|
|
936
936
|
as strip cards / carousel thumbs / unmute chip; hero size + the
|
|
937
937
|
facade's hover-scale affordance. */}
|