@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
|
@@ -257,7 +257,7 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
257
257
|
const hasImage = !!resolvedImageUrl
|
|
258
258
|
const isFallbackImage = resolvedImageUrl === fallbackImage
|
|
259
259
|
const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage
|
|
260
|
-
const bgColor = useImageEdgeColor(resolvedImageUrl ?? null, 'var(--
|
|
260
|
+
const bgColor = useImageEdgeColor(resolvedImageUrl ?? null, 'var(--ods-bg-secondary)')
|
|
261
261
|
|
|
262
262
|
const renderSkeleton = () => isCompact ? (
|
|
263
263
|
<div className="my-4">
|
|
@@ -359,13 +359,13 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
359
359
|
<div className="my-4">
|
|
360
360
|
<a href={effectiveData.url} target="_blank" rel="noopener noreferrer"
|
|
361
361
|
className="flex flex-row items-center gap-3 border border-ods-border rounded-lg overflow-hidden bg-ods-card hover:border-ods-accent transition-all duration-200 group px-4 py-3">
|
|
362
|
-
<div className="w-8 h-8 bg-ods-bg-
|
|
362
|
+
<div className="w-8 h-8 bg-ods-bg-secondary rounded-lg flex items-center justify-center flex-shrink-0">
|
|
363
363
|
<Favicon src={faviconSrc} size="w-5 h-5" />
|
|
364
364
|
</div>
|
|
365
365
|
<div className="flex-1 min-w-0">
|
|
366
|
-
<h3 className="text-
|
|
366
|
+
<h3 className="font-sans text-sm font-semibold text-ods-text-primary group-hover:text-ods-accent transition-colors truncate">{title}</h3>
|
|
367
367
|
{description && (
|
|
368
|
-
<p className="text-
|
|
368
|
+
<p className="font-sans text-xs text-ods-text-secondary truncate">{description}</p>
|
|
369
369
|
)}
|
|
370
370
|
</div>
|
|
371
371
|
<ExternalLinkIcon size={14} />
|
|
@@ -381,13 +381,13 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
381
381
|
{renderImage()}
|
|
382
382
|
</div>
|
|
383
383
|
<div className="flex-1 p-3 flex flex-col justify-center min-w-0">
|
|
384
|
-
<h3 className="text-
|
|
384
|
+
<h3 className="font-sans text-sm font-semibold text-ods-text-primary overflow-hidden group-hover:text-ods-accent transition-colors"
|
|
385
385
|
style={{ display: '-webkit-box', WebkitLineClamp: 1, WebkitBoxOrient: 'vertical' }}>{title}</h3>
|
|
386
386
|
{description && (
|
|
387
|
-
<p className="text-
|
|
387
|
+
<p className="font-sans text-xs text-ods-text-secondary overflow-hidden mt-1"
|
|
388
388
|
style={{ display: '-webkit-box', WebkitLineClamp: 2, WebkitBoxOrient: 'vertical' }}>{description}</p>
|
|
389
389
|
)}
|
|
390
|
-
<div className="text-
|
|
390
|
+
<div className="text-xs text-ods-text-secondary mt-1 truncate">{effectiveData.siteName || ogDomain}</div>
|
|
391
391
|
</div>
|
|
392
392
|
</a>
|
|
393
393
|
</div>
|
|
@@ -399,13 +399,13 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
399
399
|
<div className="my-6">
|
|
400
400
|
<a href={effectiveData.url} target="_blank" rel="noopener noreferrer"
|
|
401
401
|
className="flex items-center gap-3 border border-ods-border rounded-lg overflow-hidden bg-ods-card hover:border-ods-accent transition-all duration-200 group px-4 py-3">
|
|
402
|
-
<div className="w-10 h-10 bg-ods-bg-
|
|
402
|
+
<div className="w-10 h-10 bg-ods-bg-secondary rounded-lg flex items-center justify-center flex-shrink-0">
|
|
403
403
|
<Favicon src={faviconSrc} />
|
|
404
404
|
</div>
|
|
405
405
|
<div className="flex-1 min-w-0">
|
|
406
|
-
<h3 className="
|
|
406
|
+
<h3 className="font-sans font-semibold text-ods-text-primary text-base group-hover:text-ods-accent transition-colors truncate">{title}</h3>
|
|
407
407
|
{description && (
|
|
408
|
-
<p className="text-
|
|
408
|
+
<p className="font-sans text-sm text-ods-text-secondary truncate">{description}</p>
|
|
409
409
|
)}
|
|
410
410
|
</div>
|
|
411
411
|
<ExternalLinkIcon />
|
|
@@ -426,14 +426,14 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
426
426
|
<img src={logoSrc} alt={publicationName || ''} className="w-6 h-6 rounded object-contain flex-shrink-0 mt-0.5"
|
|
427
427
|
onError={(e) => { (e.target as HTMLImageElement).style.display = 'none' }} />
|
|
428
428
|
<div className="flex-1 min-w-0">
|
|
429
|
-
<h3 className="
|
|
429
|
+
<h3 className="font-sans font-semibold text-ods-text-primary text-base overflow-hidden group-hover:text-ods-accent transition-colors h-[2.5rem] leading-[1.25rem] mb-2"
|
|
430
430
|
style={{ display: '-webkit-box', WebkitLineClamp: 2, WebkitBoxOrient: 'vertical' }}>{title}</h3>
|
|
431
431
|
{description && (
|
|
432
|
-
<p className="text-
|
|
432
|
+
<p className="font-sans text-sm text-ods-text-secondary overflow-hidden h-[2.5rem] leading-[1.25rem] mb-2"
|
|
433
433
|
style={{ display: '-webkit-box', WebkitLineClamp: 2, WebkitBoxOrient: 'vertical' }}>{description}</p>
|
|
434
434
|
)}
|
|
435
|
-
<div className="flex items-center gap-2 text-
|
|
436
|
-
<span>{effectiveData.siteName}</span>
|
|
435
|
+
<div className="flex items-center gap-2 text-xs text-ods-text-secondary">
|
|
436
|
+
<span className="font-medium">{effectiveData.siteName}</span>
|
|
437
437
|
<span>•</span>
|
|
438
438
|
<span className="truncate">{ogDomain}</span>
|
|
439
439
|
</div>
|
|
@@ -31,7 +31,7 @@ export function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfV
|
|
|
31
31
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
|
32
32
|
<div className="flex items-center gap-2 min-w-0">
|
|
33
33
|
<AdobePdfIcon className="w-5 h-5 shrink-0" />
|
|
34
|
-
<h2 className="text-
|
|
34
|
+
<h2 className="text-xl font-semibold text-ods-text-primary truncate">{displayName}</h2>
|
|
35
35
|
</div>
|
|
36
36
|
<div className="flex items-center gap-2 w-full sm:w-auto">
|
|
37
37
|
<Button
|
|
@@ -206,14 +206,14 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
206
206
|
</div>
|
|
207
207
|
|
|
208
208
|
<div className="text-center">
|
|
209
|
-
<p className="text-ods-text-secondary text-
|
|
209
|
+
<p className="text-ods-text-secondary text-sm mb-4">
|
|
210
210
|
This Reddit post could not be loaded. It may have been deleted, made private, or the subreddit may be restricted.
|
|
211
211
|
</p>
|
|
212
212
|
<a
|
|
213
213
|
href={url}
|
|
214
214
|
target="_blank"
|
|
215
215
|
rel="noopener noreferrer"
|
|
216
|
-
className="inline-flex items-center space-x-2 px-4 py-2 bg-[#FF4500] text-white rounded-md text-
|
|
216
|
+
className="inline-flex items-center space-x-2 px-4 py-2 bg-[#FF4500] text-white rounded-md text-sm font-medium hover:bg-[#E03D00] transition-colors"
|
|
217
217
|
>
|
|
218
218
|
<RedditIcon />
|
|
219
219
|
<span>View on Reddit</span>
|
|
@@ -479,8 +479,8 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
479
479
|
<RedditProfilePic username={redditData.author} />
|
|
480
480
|
</div>
|
|
481
481
|
<div>
|
|
482
|
-
<p className="text-ods-text-primary
|
|
483
|
-
<div className="flex items-center space-x-2 text-ods-text-secondary text-
|
|
482
|
+
<p className="text-ods-text-primary font-medium">r/{redditData.subreddit}</p>
|
|
483
|
+
<div className="flex items-center space-x-2 text-ods-text-secondary text-sm">
|
|
484
484
|
<UserIcon />
|
|
485
485
|
<span>u/{redditData.author}</span>
|
|
486
486
|
<ClockIcon />
|
|
@@ -493,13 +493,13 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
493
493
|
|
|
494
494
|
{/* Content - Matching Twitter Style */}
|
|
495
495
|
<div className="p-4">
|
|
496
|
-
<h3 className="text-ods-text-primary text-
|
|
496
|
+
<h3 className="text-ods-text-primary font-semibold text-lg mb-3 leading-tight">
|
|
497
497
|
{redditData.title}
|
|
498
498
|
</h3>
|
|
499
499
|
|
|
500
500
|
{redditData.selftext && (
|
|
501
501
|
<div
|
|
502
|
-
className="text-ods-text-secondary text-
|
|
502
|
+
className="text-ods-text-secondary text-sm leading-relaxed mb-4 overflow-hidden"
|
|
503
503
|
style={{ maxHeight: `${maxWidth - 200}px` }}
|
|
504
504
|
>
|
|
505
505
|
<p className="whitespace-pre-wrap">
|
|
@@ -517,7 +517,7 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
517
517
|
)}
|
|
518
518
|
|
|
519
519
|
{/* Stats - Matching Twitter Style */}
|
|
520
|
-
<div className="flex items-center space-x-6 text-ods-text-secondary text-
|
|
520
|
+
<div className="flex items-center space-x-6 text-ods-text-secondary text-sm">
|
|
521
521
|
<div className="flex items-center space-x-1">
|
|
522
522
|
<ArrowUpIcon />
|
|
523
523
|
<span>{formatNumber(redditData.ups)} upvotes</span>
|
|
@@ -530,12 +530,12 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
530
530
|
</div>
|
|
531
531
|
|
|
532
532
|
{/* Footer - Matching Twitter Style */}
|
|
533
|
-
<div className="px-4 py-3 bg-ods-bg-
|
|
533
|
+
<div className="px-4 py-3 bg-ods-bg-secondary border-t border-ods-border">
|
|
534
534
|
<a
|
|
535
535
|
href={url}
|
|
536
536
|
target="_blank"
|
|
537
537
|
rel="noopener noreferrer"
|
|
538
|
-
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-
|
|
538
|
+
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-sm font-medium"
|
|
539
539
|
>
|
|
540
540
|
<ExternalLinkIcon />
|
|
541
541
|
<span>View on Reddit</span>
|
|
@@ -148,14 +148,14 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
148
148
|
</div>
|
|
149
149
|
|
|
150
150
|
<div className="text-center">
|
|
151
|
-
<p className="text-ods-text-secondary text-
|
|
151
|
+
<p className="text-ods-text-secondary text-sm mb-4">
|
|
152
152
|
This tweet could not be loaded. It may have been deleted, made private, or the account may be suspended.
|
|
153
153
|
</p>
|
|
154
154
|
<a
|
|
155
155
|
href={url}
|
|
156
156
|
target="_blank"
|
|
157
157
|
rel="noopener noreferrer"
|
|
158
|
-
className="inline-flex items-center space-x-2 px-4 py-2 bg-ods-bg-
|
|
158
|
+
className="inline-flex items-center space-x-2 px-4 py-2 bg-ods-bg-secondary text-ods-text-primary rounded-md text-sm font-medium hover:bg-ods-bg-tertiary transition-colors"
|
|
159
159
|
>
|
|
160
160
|
<XIcon />
|
|
161
161
|
<span>View on X</span>
|
|
@@ -228,8 +228,8 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
228
228
|
/>
|
|
229
229
|
</div>
|
|
230
230
|
<div>
|
|
231
|
-
<p className="text-ods-text-primary
|
|
232
|
-
<div className="flex items-center space-x-2 text-ods-text-secondary text-
|
|
231
|
+
<p className="text-ods-text-primary font-medium">@{username}</p>
|
|
232
|
+
<div className="flex items-center space-x-2 text-ods-text-secondary text-sm">
|
|
233
233
|
<UserIcon />
|
|
234
234
|
<span>{tweetData.author_name}</span>
|
|
235
235
|
<ClockIcon />
|
|
@@ -244,7 +244,7 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
244
244
|
<div className="p-4">
|
|
245
245
|
{tweetText && (
|
|
246
246
|
<div
|
|
247
|
-
className="text-ods-text-secondary text-
|
|
247
|
+
className="text-ods-text-secondary text-sm leading-relaxed mb-4 overflow-hidden"
|
|
248
248
|
style={{ maxHeight: `${maxWidth - 200}px` }}
|
|
249
249
|
>
|
|
250
250
|
<p className="whitespace-pre-wrap">
|
|
@@ -264,7 +264,7 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
264
264
|
href={link.url}
|
|
265
265
|
target="_blank"
|
|
266
266
|
rel="noopener noreferrer"
|
|
267
|
-
className="inline-flex items-center space-x-2 text-[#1DA1F2] hover:text-ods-accent transition-colors text-
|
|
267
|
+
className="inline-flex items-center space-x-2 text-[#1DA1F2] hover:text-ods-accent transition-colors text-sm"
|
|
268
268
|
>
|
|
269
269
|
<ExternalLinkIcon />
|
|
270
270
|
<span className="underline">{link.text}</span>
|
|
@@ -274,7 +274,7 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
274
274
|
)}
|
|
275
275
|
|
|
276
276
|
{/* Stats */}
|
|
277
|
-
<div className="flex items-center space-x-6 text-ods-text-secondary text-
|
|
277
|
+
<div className="flex items-center space-x-6 text-ods-text-secondary text-sm">
|
|
278
278
|
<div className="flex items-center space-x-1">
|
|
279
279
|
<HeartIcon />
|
|
280
280
|
<span>Likes</span>
|
|
@@ -291,12 +291,12 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
291
291
|
</div>
|
|
292
292
|
|
|
293
293
|
{/* Footer */}
|
|
294
|
-
<div className="px-4 py-3 bg-ods-bg-
|
|
294
|
+
<div className="px-4 py-3 bg-ods-bg-secondary border-t border-ods-border">
|
|
295
295
|
<a
|
|
296
296
|
href={url}
|
|
297
297
|
target="_blank"
|
|
298
298
|
rel="noopener noreferrer"
|
|
299
|
-
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-
|
|
299
|
+
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-sm font-medium"
|
|
300
300
|
>
|
|
301
301
|
<ExternalLinkIcon />
|
|
302
302
|
<span>View on X</span>
|
|
@@ -163,12 +163,12 @@ export function EmptyState({
|
|
|
163
163
|
</div>
|
|
164
164
|
|
|
165
165
|
{/* Title */}
|
|
166
|
-
<h2 className="mb-2 md:mb-3 text-
|
|
166
|
+
<h2 className="mb-2 md:mb-3 text-lg md:text-xl font-semibold font-['DM_Sans'] text-ods-text-primary tracking-[-0.02em]">
|
|
167
167
|
{displayTitle}
|
|
168
168
|
</h2>
|
|
169
169
|
|
|
170
170
|
{/* Description */}
|
|
171
|
-
<p className="mb-4 md:mb-8 max-w-md text-
|
|
171
|
+
<p className="mb-4 md:mb-8 max-w-md text-sm font-medium font-['DM_Sans'] text-ods-text-secondary leading-[1.43em]">
|
|
172
172
|
{displayDescription}
|
|
173
173
|
</p>
|
|
174
174
|
|
|
@@ -178,8 +178,8 @@ export function EmptyState({
|
|
|
178
178
|
<Button
|
|
179
179
|
onClick={smartCTA.action}
|
|
180
180
|
className={ctaVariant === 'primary'
|
|
181
|
-
? "w-full bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover transition-all duration-150 font-
|
|
182
|
-
: "w-full bg-transparent border border-ods-border text-ods-text-primary hover:border-ods-accent hover:text-ods-accent transition-all duration-150 font-
|
|
181
|
+
? "w-full bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover transition-all duration-150 font-['DM_Sans'] font-medium"
|
|
182
|
+
: "w-full bg-transparent border border-ods-border text-ods-text-primary hover:border-ods-accent hover:text-ods-accent transition-all duration-150 font-['DM_Sans'] font-medium"
|
|
183
183
|
}
|
|
184
184
|
>
|
|
185
185
|
{smartCTA.text}
|
|
@@ -193,7 +193,7 @@ export function EmptyState({
|
|
|
193
193
|
<Button
|
|
194
194
|
onClick={onGoBack}
|
|
195
195
|
variant="outline"
|
|
196
|
-
className="w-full transition-all duration-150 font-
|
|
196
|
+
className="w-full transition-all duration-150 font-['DM_Sans'] font-medium"
|
|
197
197
|
>
|
|
198
198
|
{backButtonText}
|
|
199
199
|
</Button>
|
|
@@ -272,7 +272,7 @@ function GroupedFaqList({
|
|
|
272
272
|
aria-current={isActive ? 'true' : undefined}
|
|
273
273
|
onClick={(e) => handleJump(e, group.slug as string)}
|
|
274
274
|
className={cn(
|
|
275
|
-
"rounded-full border px-4 py-2 text-
|
|
275
|
+
"rounded-full border px-4 py-2 text-sm font-medium font-['DM_Sans'] transition-colors",
|
|
276
276
|
isActive
|
|
277
277
|
? 'border-ods-text-primary bg-ods-card text-ods-text-primary'
|
|
278
278
|
: 'border-ods-border bg-ods-card text-ods-text-secondary hover:border-ods-text-secondary hover:text-ods-text-primary',
|
|
@@ -141,7 +141,7 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
141
141
|
{title}
|
|
142
142
|
</h3>
|
|
143
143
|
{description && (
|
|
144
|
-
<p className="text-ods-text-secondary text-
|
|
144
|
+
<p className="text-ods-text-secondary text-sm font-['DM_Sans'] mt-1">
|
|
145
145
|
{description}
|
|
146
146
|
</p>
|
|
147
147
|
)}
|
|
@@ -154,12 +154,12 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
154
154
|
<div className="flex items-center justify-between">
|
|
155
155
|
<label
|
|
156
156
|
htmlFor="ai-enrich-custom-instructions"
|
|
157
|
-
className="text-
|
|
157
|
+
className="text-sm font-medium text-ods-text-primary font-['DM_Sans']"
|
|
158
158
|
>
|
|
159
159
|
{customInstructionsLabel}
|
|
160
160
|
</label>
|
|
161
161
|
{customInstructionsMaxLength !== undefined && (
|
|
162
|
-
<span className="text-
|
|
162
|
+
<span className="text-xs text-ods-text-secondary font-['DM_Sans']">
|
|
163
163
|
{(customInstructions ?? '').length}/{customInstructionsMaxLength}
|
|
164
164
|
</span>
|
|
165
165
|
)}
|
|
@@ -175,7 +175,7 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
175
175
|
className="resize-y"
|
|
176
176
|
/>
|
|
177
177
|
{customInstructionsHelperText && (
|
|
178
|
-
<p className="text-
|
|
178
|
+
<p className="text-xs text-ods-text-secondary font-['DM_Sans']">
|
|
179
179
|
{customInstructionsHelperText}
|
|
180
180
|
</p>
|
|
181
181
|
)}
|
|
@@ -217,7 +217,7 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
217
217
|
{/* Disabled message with unfilled fields */}
|
|
218
218
|
{shouldDisable && !loading && (
|
|
219
219
|
<div className="space-y-2">
|
|
220
|
-
<p className="text-ods-text-secondary text-
|
|
220
|
+
<p className="text-ods-text-secondary text-sm font-['DM_Sans']">
|
|
221
221
|
{disabledMessage}
|
|
222
222
|
</p>
|
|
223
223
|
{unfilledFields.length > 0 && (
|
|
@@ -225,9 +225,9 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
225
225
|
{unfilledFields.map(field => (
|
|
226
226
|
<span
|
|
227
227
|
key={field.key}
|
|
228
|
-
className="inline-flex items-center gap-1 px-2 py-0.5 text-
|
|
228
|
+
className="inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[--ods-flamingo-cyan-base]/10 text-[--ods-flamingo-cyan-base]/70 font-['DM_Sans']"
|
|
229
229
|
>
|
|
230
|
-
<span className="w-1.5 h-1.5 rounded-full bg-ods-flamingo-cyan/50" />
|
|
230
|
+
<span className="w-1.5 h-1.5 rounded-full bg-[--ods-flamingo-cyan-base]/50" />
|
|
231
231
|
{field.label}
|
|
232
232
|
</span>
|
|
233
233
|
))}
|
|
@@ -238,9 +238,9 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
238
238
|
|
|
239
239
|
{/* Loading state with status message */}
|
|
240
240
|
{loading && statusMessage && (
|
|
241
|
-
<div className="flex items-center gap-3 p-3 rounded-lg bg-ods-
|
|
241
|
+
<div className="flex items-center gap-3 p-3 rounded-lg bg-ods-card-secondary">
|
|
242
242
|
<Loader2 className="h-5 w-5 text-ods-accent animate-spin" />
|
|
243
|
-
<span className="text-
|
|
243
|
+
<span className="text-sm text-ods-text-primary font-['DM_Sans']">
|
|
244
244
|
{statusMessage}
|
|
245
245
|
</span>
|
|
246
246
|
</div>
|
|
@@ -252,16 +252,16 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
252
252
|
{/* Status indicator - simple and clean */}
|
|
253
253
|
<div className={cn(
|
|
254
254
|
'flex items-center gap-3 p-3 rounded-lg',
|
|
255
|
-
status === 'success' ? 'bg-ods-success/10' : 'bg-ods-error/10'
|
|
255
|
+
status === 'success' ? 'bg-[--ods-attention-green-success]/10' : 'bg-[--ods-attention-red-error]/10'
|
|
256
256
|
)}>
|
|
257
257
|
{status === 'success' ? (
|
|
258
|
-
<CheckCircle className="h-5 w-5 text-ods-success" />
|
|
258
|
+
<CheckCircle className="h-5 w-5 text-[--ods-attention-green-success]" />
|
|
259
259
|
) : (
|
|
260
|
-
<AlertCircle className="h-5 w-5 text-ods-error" />
|
|
260
|
+
<AlertCircle className="h-5 w-5 text-[--ods-attention-red-error]" />
|
|
261
261
|
)}
|
|
262
262
|
<span className={cn(
|
|
263
|
-
'text-
|
|
264
|
-
status === 'success' ? 'text-ods-success' : 'text-ods-error'
|
|
263
|
+
'text-sm font-medium',
|
|
264
|
+
status === 'success' ? 'text-[--ods-attention-green-success]' : 'text-[--ods-attention-red-error]'
|
|
265
265
|
)}>
|
|
266
266
|
{statusMessage || (status === 'success' ? 'Enrichment complete' : 'Enrichment failed')}
|
|
267
267
|
</span>
|
|
@@ -21,15 +21,15 @@ export const AIRequiredBadge: React.FC<AIRequiredBadgeProps> = ({
|
|
|
21
21
|
return (
|
|
22
22
|
<span
|
|
23
23
|
className={cn(
|
|
24
|
-
'inline-flex items-center gap-1
|
|
25
|
-
'bg-ods-flamingo-cyan/10 text-ods-flamingo-cyan',
|
|
26
|
-
size === 'sm' && 'ml-2 px-2 py-0.5',
|
|
27
|
-
size === 'md' && 'ml-2 px-2.5 py-1',
|
|
24
|
+
'inline-flex items-center gap-1 font-medium rounded-full',
|
|
25
|
+
'bg-[--ods-flamingo-cyan-base]/10 text-[--ods-flamingo-cyan-base]',
|
|
26
|
+
size === 'sm' && 'ml-2 px-2 py-0.5 text-xs',
|
|
27
|
+
size === 'md' && 'ml-2 px-2.5 py-1 text-sm',
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
>
|
|
31
31
|
<SparklesIcon size={size === 'sm' ? 12 : 14} color="var(--ods-flamingo-cyan-base)" />
|
|
32
|
-
<span className="font-
|
|
32
|
+
<span className="font-['DM_Sans']">AI-required</span>
|
|
33
33
|
</span>
|
|
34
34
|
)
|
|
35
35
|
}
|
|
@@ -22,18 +22,18 @@ const statusConfig = {
|
|
|
22
22
|
label: 'Ready',
|
|
23
23
|
},
|
|
24
24
|
loading: {
|
|
25
|
-
color: 'text-ods-flamingo-cyan',
|
|
26
|
-
bgColor: 'bg-ods-flamingo-cyan/10',
|
|
25
|
+
color: 'text-[var(--ods-flamingo-cyan-base)]',
|
|
26
|
+
bgColor: 'bg-[var(--ods-flamingo-cyan-base)]/10',
|
|
27
27
|
label: 'Processing...',
|
|
28
28
|
},
|
|
29
29
|
success: {
|
|
30
|
-
color: 'text-
|
|
31
|
-
bgColor: 'bg-
|
|
30
|
+
color: 'text-green-500',
|
|
31
|
+
bgColor: 'bg-green-500/10',
|
|
32
32
|
label: 'Enriched',
|
|
33
33
|
},
|
|
34
34
|
error: {
|
|
35
|
-
color: 'text-
|
|
36
|
-
bgColor: 'bg-
|
|
35
|
+
color: 'text-red-500',
|
|
36
|
+
bgColor: 'bg-red-500/10',
|
|
37
37
|
label: 'Failed',
|
|
38
38
|
},
|
|
39
39
|
}
|
|
@@ -71,7 +71,7 @@ export const AIStatusIndicator: React.FC<AIStatusIndicatorProps> = ({
|
|
|
71
71
|
/>
|
|
72
72
|
<span
|
|
73
73
|
className={cn(
|
|
74
|
-
'text-
|
|
74
|
+
'text-sm font-medium',
|
|
75
75
|
confidence !== undefined && status === 'success'
|
|
76
76
|
? getConfidenceTextClass(confidence)
|
|
77
77
|
: config.color
|
|
@@ -82,7 +82,7 @@ export const AIStatusIndicator: React.FC<AIStatusIndicatorProps> = ({
|
|
|
82
82
|
{confidenceLabel && status === 'success' && (
|
|
83
83
|
<span
|
|
84
84
|
className={cn(
|
|
85
|
-
'text-
|
|
85
|
+
'text-xs px-2 py-0.5 rounded-full border',
|
|
86
86
|
getConfidenceBorderClass(confidence),
|
|
87
87
|
getConfidenceTextClass(confidence)
|
|
88
88
|
)}
|
|
@@ -21,13 +21,13 @@ export const AIWarningsSection: React.FC<AIWarningsSectionProps> = ({
|
|
|
21
21
|
return (
|
|
22
22
|
<div
|
|
23
23
|
className={cn(
|
|
24
|
-
'rounded-lg border border-
|
|
24
|
+
'rounded-lg border border-yellow-500/30 bg-yellow-500/10 p-4',
|
|
25
25
|
className
|
|
26
26
|
)}
|
|
27
27
|
>
|
|
28
28
|
<div className="flex items-start gap-2">
|
|
29
29
|
<svg
|
|
30
|
-
className="w-5 h-5 text-
|
|
30
|
+
className="w-5 h-5 text-yellow-500 flex-shrink-0 mt-0.5"
|
|
31
31
|
fill="none"
|
|
32
32
|
viewBox="0 0 24 24"
|
|
33
33
|
stroke="currentColor"
|
|
@@ -40,14 +40,14 @@ export const AIWarningsSection: React.FC<AIWarningsSectionProps> = ({
|
|
|
40
40
|
/>
|
|
41
41
|
</svg>
|
|
42
42
|
<div className="flex-1">
|
|
43
|
-
<h4 className="text-
|
|
43
|
+
<h4 className="text-sm font-semibold text-yellow-500 mb-2">
|
|
44
44
|
{title}
|
|
45
45
|
</h4>
|
|
46
46
|
<ul className="space-y-1">
|
|
47
47
|
{warnings.map((warning, index) => (
|
|
48
48
|
<li
|
|
49
49
|
key={index}
|
|
50
|
-
className="text-
|
|
50
|
+
className="text-sm text-yellow-500/80 list-disc list-inside"
|
|
51
51
|
>
|
|
52
52
|
{warning}
|
|
53
53
|
</li>
|
|
@@ -19,9 +19,9 @@ export interface ConfidenceBadgeProps {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const sizeStyles = {
|
|
22
|
-
sm: 'text-
|
|
23
|
-
md: 'text-
|
|
24
|
-
lg: 'text-
|
|
22
|
+
sm: 'text-xs px-1.5 py-0.5',
|
|
23
|
+
md: 'text-sm px-2 py-1',
|
|
24
|
+
lg: 'text-base px-3 py-1.5',
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export const ConfidenceBadge: React.FC<ConfidenceBadgeProps> = ({
|
|
@@ -45,7 +45,7 @@ export const ConfidenceBadge: React.FC<ConfidenceBadgeProps> = ({
|
|
|
45
45
|
return (
|
|
46
46
|
<span
|
|
47
47
|
className={cn(
|
|
48
|
-
'inline-flex items-center gap-1 rounded-full border',
|
|
48
|
+
'inline-flex items-center gap-1 rounded-full border font-medium',
|
|
49
49
|
sizeStyles[size],
|
|
50
50
|
borderClass,
|
|
51
51
|
textClass,
|
|
@@ -124,7 +124,7 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
124
124
|
return (
|
|
125
125
|
<div className={`space-y-3 ${className}`}>
|
|
126
126
|
<div className="flex items-center justify-between">
|
|
127
|
-
<Label className="text-
|
|
127
|
+
<Label className="text-[14px] text-ods-text-primary">{title}</Label>
|
|
128
128
|
<div className="flex items-center gap-2">
|
|
129
129
|
{requireSave && isDirty && (
|
|
130
130
|
<Button
|
|
@@ -133,7 +133,7 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
133
133
|
onClick={handleSave}
|
|
134
134
|
disabled={isSaving}
|
|
135
135
|
leftIcon={isSaving ? <Loader2 className="h-4 w-4 animate-spin" /> : <Save className="h-4 w-4" />}
|
|
136
|
-
className="text-
|
|
136
|
+
className="font-['DM_Sans'] text-[14px] bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover"
|
|
137
137
|
>
|
|
138
138
|
{isSaving ? 'Saving...' : saveButtonText}
|
|
139
139
|
</Button>
|
|
@@ -144,7 +144,7 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
144
144
|
size="small-legacy"
|
|
145
145
|
onClick={addItem}
|
|
146
146
|
leftIcon={<Plus className="h-4 w-4" />}
|
|
147
|
-
className="text-
|
|
147
|
+
className="font-['DM_Sans'] text-[14px]"
|
|
148
148
|
>
|
|
149
149
|
{addButtonText}
|
|
150
150
|
</Button>
|
|
@@ -152,7 +152,7 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
152
152
|
</div>
|
|
153
153
|
|
|
154
154
|
{workingItems.map((item, index) => (
|
|
155
|
-
<div key={index} className="flex items-center gap-3 p-3 bg-ods-bg-
|
|
155
|
+
<div key={index} className="flex items-center gap-3 p-3 bg-ods-bg-secondary rounded-lg border border-ods-border">
|
|
156
156
|
{icon && (
|
|
157
157
|
<div className="w-8 h-8 flex items-center justify-center">
|
|
158
158
|
{icon}
|
|
@@ -176,7 +176,7 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
176
176
|
variant="transparent"
|
|
177
177
|
size="icon"
|
|
178
178
|
onClick={() => removeItem(index)}
|
|
179
|
-
className="text-ods-error hover:bg-ods-error-secondary"
|
|
179
|
+
className="text-ods-attention-red-error hover:bg-ods-attention-red-error-secondary"
|
|
180
180
|
>
|
|
181
181
|
<Trash2 className="h-4 w-4" />
|
|
182
182
|
</Button>
|
|
@@ -184,8 +184,8 @@ export function ArrayEntryManager<T extends { [key: string]: any }>({
|
|
|
184
184
|
))}
|
|
185
185
|
|
|
186
186
|
{workingItems.length === 0 && (
|
|
187
|
-
<div className="text-center py-4 px-4 bg-ods-bg-
|
|
188
|
-
<p className="text-ods-text-secondary text-
|
|
187
|
+
<div className="text-center py-4 px-4 bg-ods-bg-secondary border border-ods-border rounded-lg">
|
|
188
|
+
<p className="text-ods-text-secondary text-sm font-['DM_Sans']">
|
|
189
189
|
{emptyMessage}
|
|
190
190
|
</p>
|
|
191
191
|
</div>
|
|
@@ -50,7 +50,7 @@ export function AuthProvidersList({
|
|
|
50
50
|
<div className="absolute inset-0 flex items-center">
|
|
51
51
|
<div className="w-full border-t border-ods-border" />
|
|
52
52
|
</div>
|
|
53
|
-
<div className="relative flex justify-center text-
|
|
53
|
+
<div className="relative flex justify-center text-sm">
|
|
54
54
|
<span className="px-2 bg-ods-card text-ods-text-secondary">{dividerText}</span>
|
|
55
55
|
</div>
|
|
56
56
|
</div>
|
|
@@ -77,7 +77,7 @@ export function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprov
|
|
|
77
77
|
/>
|
|
78
78
|
))}
|
|
79
79
|
{ticket.assignees.length > MAX_VISIBLE_ASSIGNEES && (
|
|
80
|
-
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-bg text-
|
|
80
|
+
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-bg text-xs font-medium text-ods-text-secondary">
|
|
81
81
|
+{ticket.assignees.length - MAX_VISIBLE_ASSIGNEES}
|
|
82
82
|
</div>
|
|
83
83
|
)}
|
|
@@ -89,7 +89,7 @@ export function ChangelogManager({
|
|
|
89
89
|
return (
|
|
90
90
|
<div className={`space-y-3 ${className}`}>
|
|
91
91
|
<div className="flex items-center justify-between">
|
|
92
|
-
<Label className="text-
|
|
92
|
+
<Label className="text-[14px] text-ods-text-primary">
|
|
93
93
|
{title}
|
|
94
94
|
</Label>
|
|
95
95
|
<Button
|
|
@@ -98,7 +98,7 @@ export function ChangelogManager({
|
|
|
98
98
|
size="small-legacy"
|
|
99
99
|
onClick={addEntry}
|
|
100
100
|
leftIcon={<Plus className="h-4 w-4" />}
|
|
101
|
-
className="text-
|
|
101
|
+
className="font-['DM_Sans'] text-[14px]"
|
|
102
102
|
>
|
|
103
103
|
Add Entry
|
|
104
104
|
</Button>
|
|
@@ -109,7 +109,7 @@ export function ChangelogManager({
|
|
|
109
109
|
const hasContent = entry.title.trim().length > 0;
|
|
110
110
|
|
|
111
111
|
return (
|
|
112
|
-
<div key={index} className="bg-ods-bg-
|
|
112
|
+
<div key={index} className="bg-ods-bg-secondary rounded-lg border border-ods-border overflow-hidden">
|
|
113
113
|
{/* Header - always visible */}
|
|
114
114
|
<div className="flex items-center gap-3 p-3">
|
|
115
115
|
<Button
|
|
@@ -124,11 +124,11 @@ export function ChangelogManager({
|
|
|
124
124
|
|
|
125
125
|
<div className="flex-1 min-w-0">
|
|
126
126
|
{hasContent ? (
|
|
127
|
-
<p className="text-
|
|
127
|
+
<p className="font-['DM_Sans'] font-medium text-[14px] text-ods-text-primary truncate">
|
|
128
128
|
{entry.title}
|
|
129
129
|
</p>
|
|
130
130
|
) : (
|
|
131
|
-
<p className="text-
|
|
131
|
+
<p className="font-['DM_Sans'] font-medium text-[14px] text-ods-text-secondary italic">
|
|
132
132
|
New entry (click to edit)
|
|
133
133
|
</p>
|
|
134
134
|
)}
|
|
@@ -160,7 +160,7 @@ export function ChangelogManager({
|
|
|
160
160
|
variant="transparent"
|
|
161
161
|
size="icon"
|
|
162
162
|
onClick={() => removeEntry(index)}
|
|
163
|
-
className="text-
|
|
163
|
+
className="text-red-400 hover:text-red-300 hover:bg-red-400/10 shrink-0"
|
|
164
164
|
>
|
|
165
165
|
<Trash2 className="h-4 w-4" />
|
|
166
166
|
</Button>
|
|
@@ -171,7 +171,7 @@ export function ChangelogManager({
|
|
|
171
171
|
<div className="px-3 pb-3 space-y-3 border-t border-ods-border pt-3">
|
|
172
172
|
{/* Title */}
|
|
173
173
|
<div className="space-y-1">
|
|
174
|
-
<Label className="text-
|
|
174
|
+
<Label className="text-[12px] text-ods-text-secondary">Title *</Label>
|
|
175
175
|
<Input
|
|
176
176
|
placeholder="e.g., New dark mode theme support"
|
|
177
177
|
value={entry.title}
|
|
@@ -183,7 +183,7 @@ export function ChangelogManager({
|
|
|
183
183
|
|
|
184
184
|
{/* Description */}
|
|
185
185
|
<div className="space-y-1">
|
|
186
|
-
<Label className="text-
|
|
186
|
+
<Label className="text-[12px] text-ods-text-secondary">Description</Label>
|
|
187
187
|
<Textarea
|
|
188
188
|
placeholder="Detailed explanation of the change..."
|
|
189
189
|
value={entry.description || ''}
|
|
@@ -199,8 +199,8 @@ export function ChangelogManager({
|
|
|
199
199
|
})}
|
|
200
200
|
|
|
201
201
|
{entries.length === 0 && (
|
|
202
|
-
<div className="text-center py-4 px-4 bg-ods-bg-
|
|
203
|
-
<p className="text-ods-text-secondary text-
|
|
202
|
+
<div className="text-center py-4 px-4 bg-ods-bg-secondary border border-ods-border rounded-lg">
|
|
203
|
+
<p className="text-ods-text-secondary text-sm font-['DM_Sans']">
|
|
204
204
|
No entries added. Click "Add Entry" to create {title.toLowerCase()}.
|
|
205
205
|
</p>
|
|
206
206
|
</div>
|