@flamingo-stack/openframe-frontend-core 0.0.439 → 0.0.440
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-RVWC4P3H.js → chunk-2BTDPDME.js} +9 -9
- package/dist/chunk-2BTDPDME.js.map +1 -0
- package/dist/{chunk-G5FALXNO.js → chunk-63TSTDME.js} +21 -21
- package/dist/chunk-63TSTDME.js.map +1 -0
- package/dist/{chunk-4ACSUJ7Q.js → chunk-6CITW5BD.js} +10 -10
- package/dist/chunk-6CITW5BD.js.map +1 -0
- package/dist/{chunk-QXYOGJQJ.js → chunk-7KDR5P23.js} +2 -2
- package/dist/{chunk-PEIR7D25.js → chunk-7KNOHGMI.js} +2 -2
- package/dist/{chunk-ZMUFTGL7.cjs → chunk-7QP65IE4.cjs} +5 -5
- package/dist/{chunk-ZMUFTGL7.cjs.map → chunk-7QP65IE4.cjs.map} +1 -1
- package/dist/{chunk-WPVBTVI3.js → chunk-AGV26PUR.js} +6 -6
- package/dist/{chunk-WPVBTVI3.js.map → chunk-AGV26PUR.js.map} +1 -1
- package/dist/{chunk-HTVVXVJL.cjs → chunk-DUQQEQ7G.cjs} +1431 -1594
- package/dist/chunk-DUQQEQ7G.cjs.map +1 -0
- package/dist/{chunk-COMBYYQY.js → chunk-FPE3SQ5D.js} +13 -13
- package/dist/chunk-FPE3SQ5D.js.map +1 -0
- package/dist/{chunk-WAGTZVQN.js → chunk-IAZ5AN2E.js} +30 -30
- package/dist/chunk-IAZ5AN2E.js.map +1 -0
- package/dist/{chunk-RQQZF6G6.cjs → chunk-IPEIOR77.cjs} +130 -130
- package/dist/chunk-IPEIOR77.cjs.map +1 -0
- package/dist/{chunk-3WJQL4DN.cjs → chunk-IZ6A6K6N.cjs} +25 -25
- package/dist/chunk-IZ6A6K6N.cjs.map +1 -0
- package/dist/{chunk-EE5NH5SH.cjs → chunk-J5NO7PAG.cjs} +3 -3
- package/dist/{chunk-EE5NH5SH.cjs.map → chunk-J5NO7PAG.cjs.map} +1 -1
- package/dist/{chunk-IAN7GUIV.cjs → chunk-JNC4LVD6.cjs} +42 -42
- package/dist/chunk-JNC4LVD6.cjs.map +1 -0
- package/dist/{chunk-VWGF6IFR.cjs → chunk-JOH5D76X.cjs} +108 -108
- package/dist/chunk-JOH5D76X.cjs.map +1 -0
- package/dist/{chunk-7WM77CSW.js → chunk-JYI4R25Q.js} +5 -5
- package/dist/chunk-JYI4R25Q.js.map +1 -0
- package/dist/{chunk-M6QGB6DC.cjs → chunk-KUXGQ2FQ.cjs} +36 -36
- package/dist/chunk-KUXGQ2FQ.cjs.map +1 -0
- package/dist/{chunk-M3LD6DNE.cjs → chunk-LFWPWIAC.cjs} +16 -16
- package/dist/{chunk-M3LD6DNE.cjs.map → chunk-LFWPWIAC.cjs.map} +1 -1
- package/dist/{chunk-R46QEE3R.cjs → chunk-LUKRPHEW.cjs} +96 -96
- package/dist/chunk-LUKRPHEW.cjs.map +1 -0
- package/dist/{chunk-IMK6RUEC.cjs → chunk-PYR4LVAF.cjs} +10 -10
- package/dist/chunk-PYR4LVAF.cjs.map +1 -0
- package/dist/{chunk-2ELBNZJ3.js → chunk-QAG357PE.js} +7 -7
- package/dist/chunk-QAG357PE.js.map +1 -0
- package/dist/{chunk-N2TJ3HAM.cjs → chunk-QO6MCQYE.cjs} +9 -9
- package/dist/chunk-QO6MCQYE.cjs.map +1 -0
- package/dist/{chunk-EGRZHR7J.js → chunk-SM26C2L7.js} +9 -9
- package/dist/chunk-SM26C2L7.js.map +1 -0
- package/dist/{chunk-AUJXLVXA.cjs → chunk-TAQMYVO6.cjs} +42 -42
- package/dist/{chunk-AUJXLVXA.cjs.map → chunk-TAQMYVO6.cjs.map} +1 -1
- package/dist/{chunk-C3FH53AP.cjs → chunk-UFBUQO7Z.cjs} +19 -19
- package/dist/{chunk-C3FH53AP.cjs.map → chunk-UFBUQO7Z.cjs.map} +1 -1
- package/dist/{chunk-F7YVI54P.js → chunk-W3JZXLJ2.js} +10 -10
- package/dist/chunk-W3JZXLJ2.js.map +1 -0
- package/dist/{chunk-WZ6TCAYQ.cjs → chunk-XMCVUYKC.cjs} +14 -14
- package/dist/chunk-XMCVUYKC.cjs.map +1 -0
- package/dist/{chunk-P7PISHM5.js → chunk-Y3NFB6HR.js} +5 -5
- package/dist/chunk-Y3NFB6HR.js.map +1 -0
- package/dist/{chunk-PBTY7AH5.js → chunk-YZJUHEPZ.js} +95 -95
- package/dist/chunk-YZJUHEPZ.js.map +1 -0
- package/dist/{chunk-NQQ4NLUT.js → chunk-ZQYFDYWV.js} +4298 -4461
- package/dist/chunk-ZQYFDYWV.js.map +1 -0
- package/dist/components/case-studies/index.cjs +15 -15
- package/dist/components/case-studies/index.cjs.map +1 -1
- package/dist/components/case-studies/index.js +9 -9
- package/dist/components/case-studies/index.js.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/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/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +262 -256
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +117 -111
- package/dist/components/index.js.map +1 -1
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/pricing-display.d.ts +9 -9
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/toast/index.cjs +5 -5
- package/dist/components/toast/index.cjs.map +1 -1
- package/dist/components/toast/index.js +5 -5
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/ui/bullet-list.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +73 -73
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +24 -24
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +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 +3 -0
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +3 -3
- package/dist/tailwind.config.cjs +38 -5
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +38 -5
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +5 -0
- package/src/components/.footer.md +2 -2
- package/src/components/announcement-bar.tsx +1 -1
- package/src/components/authors/author-detail-view.tsx +3 -3
- package/src/components/calendar.tsx +2 -2
- package/src/components/case-studies/share-experience-section.tsx +5 -5
- package/src/components/categories-cart.tsx +6 -6
- package/src/components/category-card.tsx +5 -5
- package/src/components/chart.tsx +3 -3
- package/src/components/chat/approval-request-message.tsx +2 -5
- package/src/components/chat/chat-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 +5 -8
- package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
- package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
- package/src/components/chat/entity-cards/dispatch.tsx +1 -1
- package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
- package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
- package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
- package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
- package/src/components/chat/entity-cards/program-card.tsx +12 -12
- package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
- package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
- package/src/components/chat/error-message-display.tsx +2 -2
- package/src/components/chat/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 +3 -5
- package/src/components/chat/utils/.chip-action-class.md +1 -1
- package/src/components/chat/utils/.chip-styles.md +2 -2
- package/src/components/chat/utils/chip-action-class.ts +1 -1
- package/src/components/chat/utils/chip-styles.ts +2 -2
- package/src/components/chat/utils/compact-card-classes.ts +3 -3
- package/src/components/command.tsx +3 -3
- package/src/components/comment-card.tsx +1 -1
- package/src/components/contact/contact-form.tsx +9 -9
- package/src/components/context-menu.tsx +5 -5
- package/src/components/date-time-picker.tsx +2 -2
- package/src/components/docs/doc-viewer.tsx +4 -4
- package/src/components/embeds/figma-embed.tsx +2 -2
- package/src/components/embeds/file-download-card.tsx +2 -2
- package/src/components/embeds/google-sheets-viewer.tsx +1 -1
- package/src/components/embeds/linkedin-embed-client.tsx +3 -3
- package/src/components/embeds/og-link-preview.tsx +14 -14
- package/src/components/embeds/pdf-viewer.tsx +1 -1
- package/src/components/embeds/reddit-embed-client.tsx +9 -9
- package/src/components/embeds/twitter-embed-client.tsx +9 -9
- package/src/components/empty-state.tsx +5 -5
- package/src/components/faq/faq-section.tsx +1 -1
- package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
- package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
- package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
- package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
- package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
- package/src/components/features/array-entry-manager.tsx +7 -7
- package/src/components/features/auth-providers-list.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/changelog-manager.tsx +10 -10
- package/src/components/features/command-box.tsx +2 -2
- package/src/components/features/entity-summary-editor.tsx +3 -3
- package/src/components/features/figma-prototype-viewer.tsx +9 -9
- package/src/components/features/filters-dropdown.tsx +2 -2
- package/src/components/features/highlight-config-section.tsx +3 -3
- package/src/components/features/highlight-video-combined-section.tsx +2 -2
- package/src/components/features/highlight-video-preview.tsx +2 -2
- package/src/components/features/highlight-video-section.tsx +9 -9
- package/src/components/features/media-gallery-manager.tsx +14 -14
- package/src/components/features/og-editor-preview.tsx +4 -4
- package/src/components/features/os-type-badge-group.tsx +1 -1
- package/src/components/features/os-type-badge.tsx +2 -2
- package/src/components/features/platform-badge.tsx +4 -4
- package/src/components/features/policy-configuration-panel.tsx +6 -6
- package/src/components/features/provider-button.tsx +1 -1
- package/src/components/features/push-button-selector.tsx +21 -21
- package/src/components/features/release-media-manager.tsx +16 -16
- package/src/components/features/section-selector.tsx +8 -8
- package/src/components/features/select-button.tsx +4 -4
- package/src/components/features/seo-editor-preview.tsx +20 -20
- package/src/components/features/social-links-manager.tsx +3 -3
- package/src/components/features/start-with-openframe-button.tsx +3 -3
- package/src/components/features/status-filter-component.tsx +1 -1
- package/src/components/features/tags-selector.tsx +6 -6
- package/src/components/features/transcript-summary-editor.tsx +9 -9
- package/src/components/features/video-bites-strip.tsx +1 -1
- package/src/components/features/video-ratio-tabs.tsx +1 -1
- package/src/components/features/video-source-selector.tsx +7 -7
- package/src/components/features/video.tsx +1 -1
- package/src/components/features/waitlist-form.tsx +3 -3
- package/src/components/filter-chip.tsx +13 -13
- package/src/components/footer.tsx +3 -3
- package/src/components/form.tsx +2 -2
- package/src/components/hero-image-uploader.tsx +3 -3
- package/src/components/image-cropper.tsx +2 -2
- package/src/components/layout/page-container.tsx +6 -6
- package/src/components/layout/page-heading.tsx +1 -1
- package/src/components/loading/card-skeleton.tsx +2 -2
- package/src/components/loading/category-card-skeleton.tsx +1 -1
- package/src/components/loading/margin-report-skeleton.tsx +22 -22
- package/src/components/loading/openmsp-heartbeat.tsx +1 -1
- package/src/components/loading/page-layout-skeleton.tsx +83 -83
- package/src/components/loading/unified-skeleton.tsx +1 -1
- package/src/components/loading/users-grid-skeleton.tsx +2 -2
- package/src/components/logs-list.tsx +8 -8
- package/src/components/media-carousel.tsx +7 -7
- package/src/components/metric-value.tsx +2 -2
- package/src/components/msp-display.tsx +8 -2
- package/src/components/navigation/app-header.tsx +6 -6
- package/src/components/navigation/header-organization-filter.tsx +2 -2
- package/src/components/navigation/header.tsx +4 -4
- package/src/components/navigation/mobile-burger-menu.tsx +7 -7
- package/src/components/navigation/mobile-nav-panel.tsx +1 -1
- package/src/components/navigation/multi-level-navigation.tsx +7 -7
- package/src/components/navigation/navigation-sidebar.tsx +1 -1
- package/src/components/navigation/sticky-section-nav.tsx +2 -2
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
- package/src/components/pagination.tsx +2 -2
- package/src/components/persistent-filter-controls.tsx +1 -1
- package/src/components/platform/.ShellTypeBadge.md +1 -1
- package/src/components/platform/CveLink.tsx +1 -1
- package/src/components/platform/ScriptArguments.tsx +2 -2
- package/src/components/platform/ScriptInfoSection.tsx +5 -5
- package/src/components/platform/ShellTypeBadge.tsx +6 -6
- package/src/components/platform/SoftwareInfo.tsx +2 -2
- package/src/components/pricing-display.tsx +9 -9
- package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
- package/src/components/related-content/related-content-section.tsx +3 -3
- package/src/components/results-count.tsx +1 -1
- package/src/components/shared/delivery/delivery-row.tsx +1 -1
- package/src/components/shared/delivery/delivery-table.tsx +1 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
- package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
- package/src/components/shared/product-release/product-release-card.tsx +14 -14
- package/src/components/shared/product-release/release-detail-page.tsx +16 -16
- package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
- package/src/components/smooth-accordion.tsx +1 -1
- package/src/components/social-icon-row.tsx +1 -1
- package/src/components/sonner.tsx +5 -5
- package/src/components/steps.tsx +3 -3
- package/src/components/tickets/help-center-create-form.tsx +1 -1
- package/src/components/tickets/help-center-list.tsx +1 -1
- package/src/components/tickets/ticket-center.tsx +2 -2
- package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
- package/src/components/tickets/ticket-open-form.tsx +6 -6
- package/src/components/ui/.title-content-block.md +1 -1
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +3 -3
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/allowed-domains-input.tsx +3 -3
- package/src/components/ui/autocomplete.tsx +3 -3
- package/src/components/ui/badge.tsx +2 -2
- package/src/components/ui/brand-association-card.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +3 -3
- package/src/components/ui/bullet-list.tsx +2 -2
- package/src/components/ui/button/button.tsx +1 -1
- package/src/components/ui/card.tsx +4 -4
- package/src/components/ui/checkbox-with-description.tsx +1 -1
- package/src/components/ui/chevron-button.tsx +1 -1
- package/src/components/ui/content-loader.tsx +16 -16
- package/src/components/ui/cursor-pagination.tsx +1 -1
- package/src/components/ui/date-picker.tsx +2 -2
- package/src/components/ui/device-card-compact.tsx +2 -2
- package/src/components/ui/device-card.tsx +3 -3
- package/src/components/ui/dialog.tsx +3 -3
- package/src/components/ui/drawer.tsx +4 -4
- package/src/components/ui/dropdown-menu.tsx +6 -6
- package/src/components/ui/error-state.tsx +9 -9
- package/src/components/ui/fade-preview.tsx +1 -1
- package/src/components/ui/field-wrapper.tsx +1 -1
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
- package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
- package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
- package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
- package/src/components/ui/file-upload.tsx +9 -9
- package/src/components/ui/filter-pill-row.tsx +1 -1
- package/src/components/ui/floating-tooltip.tsx +1 -1
- package/src/components/ui/highlight-card.tsx +1 -1
- package/src/components/ui/hover-dropdown.tsx +1 -1
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/info-row.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +5 -5
- package/src/components/ui/markdown-editor.tsx +4 -5
- package/src/components/ui/menubar.tsx +7 -7
- package/src/components/ui/modal-v2.tsx +1 -1
- package/src/components/ui/modal.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +8 -8
- package/src/components/ui/page-loader.tsx +6 -6
- package/src/components/ui/phone-input.tsx +1 -1
- package/src/components/ui/progress-bar.tsx +5 -5
- package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
- package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
- package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/release-changelog-section.tsx +2 -2
- package/src/components/ui/rich-markdown-renderer.tsx +6 -6
- package/src/components/ui/search-input.tsx +7 -7
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/service-card.tsx +4 -4
- package/src/components/ui/sheet.tsx +3 -3
- package/src/components/ui/simple-markdown-renderer.tsx +4 -4
- package/src/components/ui/square-avatar.tsx +9 -5
- package/src/components/ui/status-badge.tsx +11 -11
- package/src/components/ui/status-indicator.tsx +6 -6
- package/src/components/ui/tab-content.tsx +1 -1
- package/src/components/ui/tab-navigation.tsx +2 -2
- package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
- package/src/components/ui/table/table-description-cell.tsx +1 -1
- package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
- package/src/components/ui/table/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/tag-search-input.tsx +1 -1
- package/src/components/ui/tag.tsx +23 -23
- package/src/components/ui/tags-input.tsx +2 -2
- package/src/components/ui/ticket-status-tag.tsx +1 -1
- package/src/components/ui/toaster.tsx +8 -8
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/user-display.tsx +12 -6
- package/src/components/user-summary-stub.tsx +4 -4
- package/src/components/vendor-display-button.tsx +2 -2
- package/src/components/vendor-icon.tsx +1 -1
- package/src/components/vendor-tag.tsx +9 -10
- package/src/components/yes-no-display.tsx +3 -3
- package/src/styles/ods-colors.css +2 -0
- package/tailwind.config.ts +49 -4
- package/dist/chunk-2ELBNZJ3.js.map +0 -1
- package/dist/chunk-3WJQL4DN.cjs.map +0 -1
- package/dist/chunk-4ACSUJ7Q.js.map +0 -1
- package/dist/chunk-7WM77CSW.js.map +0 -1
- package/dist/chunk-COMBYYQY.js.map +0 -1
- package/dist/chunk-EGRZHR7J.js.map +0 -1
- package/dist/chunk-F7YVI54P.js.map +0 -1
- package/dist/chunk-G5FALXNO.js.map +0 -1
- package/dist/chunk-HTVVXVJL.cjs.map +0 -1
- package/dist/chunk-IAN7GUIV.cjs.map +0 -1
- package/dist/chunk-IMK6RUEC.cjs.map +0 -1
- package/dist/chunk-M6QGB6DC.cjs.map +0 -1
- package/dist/chunk-N2TJ3HAM.cjs.map +0 -1
- package/dist/chunk-NQQ4NLUT.js.map +0 -1
- package/dist/chunk-P7PISHM5.js.map +0 -1
- package/dist/chunk-PBTY7AH5.js.map +0 -1
- package/dist/chunk-R46QEE3R.cjs.map +0 -1
- package/dist/chunk-RQQZF6G6.cjs.map +0 -1
- package/dist/chunk-RVWC4P3H.js.map +0 -1
- package/dist/chunk-VWGF6IFR.cjs.map +0 -1
- package/dist/chunk-WAGTZVQN.js.map +0 -1
- package/dist/chunk-WZ6TCAYQ.cjs.map +0 -1
- package/dist/components/accordion.d.ts +0 -8
- package/dist/components/accordion.d.ts.map +0 -1
- package/dist/components/alert-dialog.d.ts +0 -21
- package/dist/components/alert-dialog.d.ts.map +0 -1
- package/dist/components/alert.d.ts +0 -9
- package/dist/components/alert.d.ts.map +0 -1
- package/dist/components/badge.d.ts +0 -10
- package/dist/components/badge.d.ts.map +0 -1
- package/dist/components/breadcrumb.d.ts +0 -20
- package/dist/components/breadcrumb.d.ts.map +0 -1
- package/dist/components/chevron-button.d.ts +0 -14
- package/dist/components/chevron-button.d.ts.map +0 -1
- package/dist/components/dialog.d.ts +0 -29
- package/dist/components/dialog.d.ts.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -28
- package/dist/components/dropdown-menu.d.ts.map +0 -1
- package/dist/components/input.d.ts +0 -8
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/label.d.ts +0 -6
- package/dist/components/label.d.ts.map +0 -1
- package/dist/components/menubar.d.ts +0 -34
- package/dist/components/menubar.d.ts.map +0 -1
- package/dist/components/navigation-menu.d.ts +0 -13
- package/dist/components/navigation-menu.d.ts.map +0 -1
- package/dist/components/select.d.ts +0 -14
- package/dist/components/select.d.ts.map +0 -1
- package/dist/components/sidebar.d.ts +0 -67
- package/dist/components/sidebar.d.ts.map +0 -1
- package/dist/components/square-avatar.d.ts +0 -21
- package/dist/components/square-avatar.d.ts.map +0 -1
- package/dist/components/table.d.ts +0 -11
- package/dist/components/table.d.ts.map +0 -1
- package/dist/components/tabs.d.ts +0 -18
- package/dist/components/tabs.d.ts.map +0 -1
- package/dist/components/toggle.d.ts +0 -13
- package/dist/components/toggle.d.ts.map +0 -1
- package/src/components/.accordion.md +0 -42
- package/src/components/.alert-dialog.md +0 -58
- package/src/components/.alert.md +0 -43
- package/src/components/.badge.md +0 -40
- package/src/components/.breadcrumb.md +0 -54
- package/src/components/.chevron-button.md +0 -46
- package/src/components/.dialog.md +0 -60
- package/src/components/.dropdown-menu.md +0 -51
- package/src/components/.input.md +0 -40
- package/src/components/.label.md +0 -41
- package/src/components/.menubar.md +0 -49
- package/src/components/.navigation-menu.md +0 -44
- package/src/components/.select.md +0 -54
- package/src/components/.sidebar.md +0 -58
- package/src/components/.square-avatar.md +0 -42
- package/src/components/.table.md +0 -51
- package/src/components/.tabs.md +0 -38
- package/src/components/.toggle.md +0 -49
- package/src/components/accordion.tsx +0 -56
- package/src/components/alert-dialog.tsx +0 -141
- package/src/components/alert.tsx +0 -59
- package/src/components/badge.tsx +0 -30
- package/src/components/breadcrumb.tsx +0 -115
- package/src/components/chevron-button.tsx +0 -68
- package/src/components/dialog.tsx +0 -150
- package/src/components/dropdown-menu.tsx +0 -200
- package/src/components/input.tsx +0 -39
- package/src/components/label.tsx +0 -19
- package/src/components/menubar.tsx +0 -236
- package/src/components/navigation-menu.tsx +0 -128
- package/src/components/select.tsx +0 -160
- package/src/components/sidebar.tsx +0 -764
- package/src/components/square-avatar.tsx +0 -61
- package/src/components/table.tsx +0 -72
- package/src/components/tabs.tsx +0 -65
- package/src/components/toggle.tsx +0 -45
- /package/dist/{chunk-QXYOGJQJ.js.map → chunk-7KDR5P23.js.map} +0 -0
- /package/dist/{chunk-PEIR7D25.js.map → chunk-7KNOHGMI.js.map} +0 -0
|
@@ -329,21 +329,21 @@ export function FileUpload({
|
|
|
329
329
|
<FileIcon className="size-6 text-ods-text-secondary" />
|
|
330
330
|
</div>
|
|
331
331
|
<div className="flex-1 min-w-0">
|
|
332
|
-
<p className="text-
|
|
332
|
+
<p className="text-h4 text-ods-text-primary truncate" title={entry.fileName}>
|
|
333
333
|
{entry.fileName}
|
|
334
334
|
</p>
|
|
335
335
|
<div className="flex items-center gap-[var(--spacing-system-xsf)]">
|
|
336
|
-
<span className="text-
|
|
336
|
+
<span className="text-h6 text-ods-text-secondary">
|
|
337
337
|
{formatFileSize(entry.fileSize)}
|
|
338
338
|
</span>
|
|
339
339
|
{entry.status === "uploading" && (
|
|
340
|
-
<span className="flex items-center gap-[var(--spacing-system-xxs)] text-
|
|
340
|
+
<span className="flex items-center gap-[var(--spacing-system-xxs)] text-h6 text-ods-text-secondary">
|
|
341
341
|
<Loader2 className="size-3 animate-spin" />
|
|
342
342
|
Uploading...
|
|
343
343
|
</span>
|
|
344
344
|
)}
|
|
345
345
|
{entry.status === "error" && (
|
|
346
|
-
<span className="text-
|
|
346
|
+
<span className="text-h6 text-ods-error">
|
|
347
347
|
{entry.error || "Upload failed"}
|
|
348
348
|
</span>
|
|
349
349
|
)}
|
|
@@ -380,10 +380,10 @@ export function FileUpload({
|
|
|
380
380
|
<FileIcon className="size-6 text-ods-text-secondary" />
|
|
381
381
|
</div>
|
|
382
382
|
<div className="flex-1 min-w-0">
|
|
383
|
-
<p className="text-
|
|
383
|
+
<p className="text-h4 text-ods-text-primary truncate" title={file.name}>
|
|
384
384
|
{file.name}
|
|
385
385
|
</p>
|
|
386
|
-
<p className="text-
|
|
386
|
+
<p className="text-h6 text-ods-text-secondary">
|
|
387
387
|
{formatFileSize(file.size)}
|
|
388
388
|
</p>
|
|
389
389
|
</div>
|
|
@@ -424,9 +424,9 @@ export function FileUpload({
|
|
|
424
424
|
<div className="flex items-center p-[var(--spacing-system-sf)] rounded-full bg-ods-card border border-ods-border shrink-0">
|
|
425
425
|
{icon || <ImagePlusIcon className="size-6 text-ods-text-primary" />}
|
|
426
426
|
</div>
|
|
427
|
-
<div className="flex flex-1 flex-col
|
|
428
|
-
<span className="text-
|
|
429
|
-
<span className="text-
|
|
427
|
+
<div className="flex flex-1 flex-col min-w-0">
|
|
428
|
+
<span className="text-h4 text-ods-text-primary">{label}</span>
|
|
429
|
+
<span className="text-h6 text-ods-text-secondary">{description}</span>
|
|
430
430
|
</div>
|
|
431
431
|
</button>
|
|
432
432
|
)}
|
|
@@ -63,7 +63,7 @@ export function FilterPillRow({
|
|
|
63
63
|
</Button>
|
|
64
64
|
))}
|
|
65
65
|
{countLabel && (
|
|
66
|
-
<div className="ml-auto text-
|
|
66
|
+
<div className="ml-auto text-h6 text-ods-text-secondary shrink-0">
|
|
67
67
|
{countLabel}
|
|
68
68
|
</div>
|
|
69
69
|
)}
|
|
@@ -175,7 +175,7 @@ export function FloatingTooltip({
|
|
|
175
175
|
>
|
|
176
176
|
{/* Scroll wrapper — `min-h-0` lets it shrink below content height inside
|
|
177
177
|
the max-height cap set by the `size` middleware, so tall content scrolls. */}
|
|
178
|
-
<div className="min-h-0 overflow-y-auto px-3 py-2.5 text-
|
|
178
|
+
<div className="min-h-0 overflow-y-auto px-3 py-2.5 text-h6 text-ods-text-primary whitespace-pre-line">
|
|
179
179
|
{parsedContent}
|
|
180
180
|
</div>
|
|
181
181
|
{/* Arrow element */}
|
|
@@ -41,7 +41,7 @@ export function HighlightCard({
|
|
|
41
41
|
width: `${desktopWidth}px`
|
|
42
42
|
}}
|
|
43
43
|
/>
|
|
44
|
-
<h3 className="
|
|
44
|
+
<h3 className="text-h2 text-ods-text-primary relative z-10">
|
|
45
45
|
Your{' '}
|
|
46
46
|
<span style={{ color: item.categoryColor }}>
|
|
47
47
|
{item.category}
|
|
@@ -190,7 +190,7 @@ export function HoverDropdown({
|
|
|
190
190
|
// occupies the left expanding region; the optional secondary
|
|
191
191
|
// action ("Ask") sits at the right as a sibling icon-button so
|
|
192
192
|
// its click is independent of the primary navigation.
|
|
193
|
-
const rowClass = 'group flex w-full items-center gap-1.5 pl-2 pr-1 py-1.5 rounded text-
|
|
193
|
+
const rowClass = 'group flex w-full items-center gap-1.5 pl-2 pr-1 py-1.5 rounded text-h6 text-ods-text-secondary hover:bg-ods-accent/10 transition-colors text-left'
|
|
194
194
|
const primaryClass = 'flex flex-1 items-center gap-1.5 min-w-0 hover:text-ods-accent cursor-pointer no-underline'
|
|
195
195
|
|
|
196
196
|
const secondary = item.secondaryAction ? (
|
|
@@ -147,7 +147,7 @@ export function ImageGalleryModal({
|
|
|
147
147
|
|
|
148
148
|
{/* Image Counter */}
|
|
149
149
|
{images.length > 1 && (
|
|
150
|
-
<div className="absolute bottom-4 left-1/2 -translate-x-1/2 z-[10000] px-4 py-2 rounded-full bg-black/50 text-white text-
|
|
150
|
+
<div className="absolute bottom-4 left-1/2 -translate-x-1/2 z-[10000] px-4 py-2 rounded-full bg-black/50 text-white text-h6">
|
|
151
151
|
{selectedImageIndex + 1} / {images.length}
|
|
152
152
|
</div>
|
|
153
153
|
)}
|
|
@@ -12,7 +12,7 @@ export function InfoRow({ label, value, icon }: InfoRowProps) {
|
|
|
12
12
|
<div className="text-h4 text-ods-text-primary overflow-hidden text-ellipsis whitespace-nowrap">
|
|
13
13
|
{label}
|
|
14
14
|
</div>
|
|
15
|
-
<div className="flex-1 bg-
|
|
15
|
+
<div className="flex-1 bg-ods-border h-px min-h-px min-w-px" />
|
|
16
16
|
<div className="text-h4 text-ods-text-primary overflow-hidden text-ellipsis whitespace-nowrap flex items-center gap-1">
|
|
17
17
|
{value}
|
|
18
18
|
{icon}
|
|
@@ -26,7 +26,7 @@ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>
|
|
|
26
26
|
|
|
27
27
|
const invalidBorderClasses = {
|
|
28
28
|
error: "border-ods-error hover:border-ods-error has-[:focus]:border-ods-error",
|
|
29
|
-
warning: "!border-
|
|
29
|
+
warning: "!border-ods-warning hover:!border-ods-warning has-[:focus]:!border-ods-warning",
|
|
30
30
|
} as const;
|
|
31
31
|
|
|
32
32
|
const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
|
@@ -7,14 +7,14 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
7
7
|
import { cn } from "../../utils/cn"
|
|
8
8
|
|
|
9
9
|
const labelVariants = cva(
|
|
10
|
-
"block
|
|
10
|
+
"block text-ods-text-primary",
|
|
11
11
|
{
|
|
12
12
|
variants: {
|
|
13
13
|
variant: {
|
|
14
|
-
default: "text-
|
|
15
|
-
small: "text-
|
|
16
|
-
medium: "text-
|
|
17
|
-
large: "text-
|
|
14
|
+
default: "text-h4",
|
|
15
|
+
small: "text-h6",
|
|
16
|
+
medium: "text-h6",
|
|
17
|
+
large: "text-h4"
|
|
18
18
|
},
|
|
19
19
|
spacing: {
|
|
20
20
|
default: "mb-1",
|
|
@@ -12,8 +12,8 @@ const MARKDOWN_EDITOR_STYLE_ID = "ods-markdown-editor-styles"
|
|
|
12
12
|
const mdEditorCSS = `
|
|
13
13
|
:root { --md-editor-text-color: var(--color-text-primary) !important; }
|
|
14
14
|
body .w-md-editor { background-color: var(--color-bg) !important; border: 1px solid var(--ods-system-greys-soft-grey) !important; border-radius: 6px !important; --md-editor-text-color: var(--color-text-primary) !important; --md-editor-box-shadow-color: transparent !important; box-shadow: none !important; }
|
|
15
|
-
body .w-md-editor-area, body .w-md-editor-input, body .w-md-editor-text, body .w-md-editor-text-pre, body .w-md-editor-text-input, body .w-md-editor-text-textarea { background-color: var(--color-bg-card) !important; color: var(--color-text-primary) !important; font-family:
|
|
16
|
-
body .w-md-editor-text-textarea::placeholder { color: var(--color-text-secondary) !important; font-family:
|
|
15
|
+
body .w-md-editor-area, body .w-md-editor-input, body .w-md-editor-text, body .w-md-editor-text-pre, body .w-md-editor-text-input, body .w-md-editor-text-textarea { background-color: var(--color-bg-card) !important; color: var(--color-text-primary) !important; font-family: var(--font-family-body) !important; font-size: 18px !important; font-weight: 500 !important; line-height: 24px !important; padding: 16px !important; }
|
|
16
|
+
body .w-md-editor-text-textarea::placeholder { color: var(--color-text-secondary) !important; font-family: var(--font-family-body) !important; font-size: 18px !important; font-weight: 500 !important; }
|
|
17
17
|
body .w-md-editor-text .token, body .w-md-editor-text-pre .token, body .w-md-editor-text-textarea, body .w-md-editor-text-input { color: var(--color-text-primary) !important; }
|
|
18
18
|
body .w-md-editor-text-pre *, body .w-md-editor-text-textarea *, body .w-md-editor-text-input *, body .w-md-editor-text * { color: var(--color-text-primary) !important; }
|
|
19
19
|
body .w-md-editor-text-pre .token.title, body .w-md-editor-text-pre .token.bold, body .w-md-editor-text-pre .token.code, body .w-md-editor-text-pre .token.string, body .w-md-editor-text-pre .token.keyword { color: var(--color-text-primary) !important; }
|
|
@@ -331,8 +331,7 @@ export function MarkdownEditor({
|
|
|
331
331
|
placeholder,
|
|
332
332
|
disabled,
|
|
333
333
|
style: {
|
|
334
|
-
fontFamily:
|
|
335
|
-
'DM Sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
334
|
+
fontFamily: 'var(--font-family-body)',
|
|
336
335
|
fontSize: "18px",
|
|
337
336
|
fontWeight: 500,
|
|
338
337
|
lineHeight: "24px",
|
|
@@ -345,7 +344,7 @@ export function MarkdownEditor({
|
|
|
345
344
|
)}
|
|
346
345
|
|
|
347
346
|
{uploadProgress && (
|
|
348
|
-
<p className="text-
|
|
347
|
+
<p className="text-h6 text-ods-text-secondary mt-1">{uploadProgress}</p>
|
|
349
348
|
)}
|
|
350
349
|
|
|
351
350
|
<MarkdownEditorStyles />
|
|
@@ -38,7 +38,7 @@ const MenubarTrigger = React.forwardRef<
|
|
|
38
38
|
<MenubarPrimitive.Trigger
|
|
39
39
|
ref={ref}
|
|
40
40
|
className={cn(
|
|
41
|
-
"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-
|
|
41
|
+
"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
42
42
|
className
|
|
43
43
|
)}
|
|
44
44
|
{...props}
|
|
@@ -55,7 +55,7 @@ const MenubarSubTrigger = React.forwardRef<
|
|
|
55
55
|
<MenubarPrimitive.SubTrigger
|
|
56
56
|
ref={ref}
|
|
57
57
|
className={cn(
|
|
58
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-
|
|
58
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
59
59
|
inset && "pl-8",
|
|
60
60
|
className
|
|
61
61
|
)}
|
|
@@ -116,7 +116,7 @@ const MenubarItem = React.forwardRef<
|
|
|
116
116
|
<MenubarPrimitive.Item
|
|
117
117
|
ref={ref}
|
|
118
118
|
className={cn(
|
|
119
|
-
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-
|
|
119
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
120
120
|
inset && "pl-8",
|
|
121
121
|
className
|
|
122
122
|
)}
|
|
@@ -132,7 +132,7 @@ const MenubarCheckboxItem = React.forwardRef<
|
|
|
132
132
|
<MenubarPrimitive.CheckboxItem
|
|
133
133
|
ref={ref}
|
|
134
134
|
className={cn(
|
|
135
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-
|
|
135
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
136
136
|
className
|
|
137
137
|
)}
|
|
138
138
|
checked={checked}
|
|
@@ -155,7 +155,7 @@ const MenubarRadioItem = React.forwardRef<
|
|
|
155
155
|
<MenubarPrimitive.RadioItem
|
|
156
156
|
ref={ref}
|
|
157
157
|
className={cn(
|
|
158
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-
|
|
158
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
159
159
|
className
|
|
160
160
|
)}
|
|
161
161
|
{...props}
|
|
@@ -179,7 +179,7 @@ const MenubarLabel = React.forwardRef<
|
|
|
179
179
|
<MenubarPrimitive.Label
|
|
180
180
|
ref={ref}
|
|
181
181
|
className={cn(
|
|
182
|
-
"px-2 py-1.5 text-
|
|
182
|
+
"px-2 py-1.5 text-h6 font-semibold",
|
|
183
183
|
inset && "pl-8",
|
|
184
184
|
className
|
|
185
185
|
)}
|
|
@@ -207,7 +207,7 @@ const MenubarShortcut = ({
|
|
|
207
207
|
return (
|
|
208
208
|
<span
|
|
209
209
|
className={cn(
|
|
210
|
-
"ml-auto text-
|
|
210
|
+
"ml-auto text-h6 text-muted-foreground",
|
|
211
211
|
className
|
|
212
212
|
)}
|
|
213
213
|
{...props}
|
|
@@ -80,7 +80,7 @@ const Modal = React.forwardRef<HTMLDivElement, ModalProps>(
|
|
|
80
80
|
<div
|
|
81
81
|
data-state={state}
|
|
82
82
|
className={cn(
|
|
83
|
-
"absolute inset-0 bg-
|
|
83
|
+
"absolute inset-0 bg-ods-overlay backdrop-blur-[2px] md:backdrop-blur-none",
|
|
84
84
|
"duration-200 fill-mode-forwards",
|
|
85
85
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
86
86
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
|
|
@@ -58,7 +58,7 @@ const Modal = React.forwardRef<HTMLDivElement, ModalProps>(
|
|
|
58
58
|
return (
|
|
59
59
|
<div className="fixed inset-0 z-[1300] flex items-center justify-center">
|
|
60
60
|
<div
|
|
61
|
-
className="absolute inset-0 bg-
|
|
61
|
+
className="absolute inset-0 bg-ods-overlay"
|
|
62
62
|
onClick={onClose}
|
|
63
63
|
aria-hidden="true"
|
|
64
64
|
/>
|
|
@@ -43,7 +43,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName
|
|
|
43
43
|
const NavigationMenuItem = NavigationMenuPrimitive.Item
|
|
44
44
|
|
|
45
45
|
const navigationMenuTriggerStyle = cva(
|
|
46
|
-
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-
|
|
46
|
+
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-h6 transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
const NavigationMenuTrigger = React.forwardRef<
|
|
@@ -73,7 +73,7 @@ export function OrganizationCard({
|
|
|
73
73
|
{deviceCount !== undefined && (
|
|
74
74
|
<div className="absolute top-4 right-4 flex items-center gap-2 shrink-0">
|
|
75
75
|
<Monitor className="w-4 h-4 text-ods-text-secondary" />
|
|
76
|
-
<span className="
|
|
76
|
+
<span className="text-h6 text-ods-text-secondary">
|
|
77
77
|
{deviceCount.toLocaleString()} devices
|
|
78
78
|
</span>
|
|
79
79
|
</div>
|
|
@@ -85,8 +85,8 @@ export function OrganizationCard({
|
|
|
85
85
|
className={cn(
|
|
86
86
|
"absolute top-2 right-2 h-8 w-8 rounded flex items-center justify-center z-10 transition-colors",
|
|
87
87
|
actionButton.variant === 'primary'
|
|
88
|
-
? "bg-ods-accent text-
|
|
89
|
-
: "text-ods-text-secondary hover:text-
|
|
88
|
+
? "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover"
|
|
89
|
+
: "text-ods-text-secondary hover:text-ods-error hover:bg-ods-error-secondary"
|
|
90
90
|
)}
|
|
91
91
|
onClick={handleActionClick}
|
|
92
92
|
disabled={actionButton.disabled}
|
|
@@ -104,10 +104,10 @@ export function OrganizationCard({
|
|
|
104
104
|
/>
|
|
105
105
|
|
|
106
106
|
<div className="flex-1 flex flex-col justify-center py-2 min-w-0">
|
|
107
|
-
<h3 className="
|
|
107
|
+
<h3 className="text-h3 text-ods-text-primary transition-colors truncate" title={organization.name}>
|
|
108
108
|
{organization.name}
|
|
109
109
|
</h3>
|
|
110
|
-
<p className="
|
|
110
|
+
<p className="text-h6 text-ods-text-secondary truncate" title={organization.industry || organization.tier || organization.websiteUrl || "Organization"}>
|
|
111
111
|
{organization.industry || organization.tier || organization.websiteUrl || "Organization"}
|
|
112
112
|
</p>
|
|
113
113
|
</div>
|
|
@@ -116,7 +116,7 @@ export function OrganizationCard({
|
|
|
116
116
|
{/* Description */}
|
|
117
117
|
{organization.description && (
|
|
118
118
|
<div className="w-full h-12 overflow-hidden">
|
|
119
|
-
<p className="
|
|
119
|
+
<p className="text-h4 text-ods-text-primary line-clamp-2" title={organization.description}>
|
|
120
120
|
{organization.description}
|
|
121
121
|
</p>
|
|
122
122
|
</div>
|
|
@@ -131,11 +131,11 @@ export function OrganizationCard({
|
|
|
131
131
|
{footerStats.map((stat, index) => (
|
|
132
132
|
<div key={index} className="flex items-center gap-1 flex-shrink-0">
|
|
133
133
|
{stat.icon}
|
|
134
|
-
<span className="
|
|
134
|
+
<span className="text-h6 text-ods-text-primary">
|
|
135
135
|
{typeof stat.value === 'number' ? stat.value.toLocaleString() : stat.value}
|
|
136
136
|
</span>
|
|
137
137
|
{stat.label && (
|
|
138
|
-
<span className="
|
|
138
|
+
<span className="text-h6 text-ods-text-secondary">
|
|
139
139
|
{stat.label}
|
|
140
140
|
</span>
|
|
141
141
|
)}
|
|
@@ -46,15 +46,15 @@ export function PageLoader({
|
|
|
46
46
|
<OpenFrameLogo
|
|
47
47
|
className="w-6 h-6 animate-pulse text-ods-accent"
|
|
48
48
|
upperPathColor="currentColor"
|
|
49
|
-
lowerPathColor="var(--
|
|
49
|
+
lowerPathColor="var(--color-text-tertiary)"
|
|
50
50
|
/>
|
|
51
51
|
</div>
|
|
52
52
|
)}
|
|
53
53
|
<div className="flex flex-col items-center text-center">
|
|
54
|
-
<p className="text-
|
|
54
|
+
<p className="text-h4 text-ods-text-tertiary">
|
|
55
55
|
{title}
|
|
56
56
|
</p>
|
|
57
|
-
<p className="text-
|
|
57
|
+
<p className="text-h6 text-ods-text-tertiary opacity-70 mt-1">
|
|
58
58
|
{description}
|
|
59
59
|
</p>
|
|
60
60
|
</div>
|
|
@@ -85,16 +85,16 @@ export function CompactPageLoader({
|
|
|
85
85
|
<OpenFrameLogo
|
|
86
86
|
className="w-6 h-6 animate-pulse text-ods-accent"
|
|
87
87
|
upperPathColor="currentColor"
|
|
88
|
-
lowerPathColor="var(--
|
|
88
|
+
lowerPathColor="var(--color-text-tertiary)"
|
|
89
89
|
/>
|
|
90
90
|
</div>
|
|
91
91
|
)}
|
|
92
92
|
<div className="flex flex-col items-center text-center">
|
|
93
|
-
<p className="text-
|
|
93
|
+
<p className="text-h6 text-ods-text-tertiary">
|
|
94
94
|
{title}
|
|
95
95
|
</p>
|
|
96
96
|
{description && (
|
|
97
|
-
<p className="text-
|
|
97
|
+
<p className="text-h6 text-ods-text-tertiary opacity-70 mt-1">
|
|
98
98
|
{description}
|
|
99
99
|
</p>
|
|
100
100
|
)}
|
|
@@ -114,7 +114,7 @@ export function PhoneInput({
|
|
|
114
114
|
disabled={disabled}
|
|
115
115
|
placeholder={placeholder}
|
|
116
116
|
onKeyDown={onKeyDown}
|
|
117
|
-
className={`min-w-0 flex-1 ${isInvalid ? '!border-
|
|
117
|
+
className={`min-w-0 flex-1 ${isInvalid ? '!border-ods-warning' : ''}`}
|
|
118
118
|
/>
|
|
119
119
|
</div>
|
|
120
120
|
)
|
|
@@ -56,15 +56,15 @@ export const ProgressBar: React.FC<ProgressBarProps> = ({
|
|
|
56
56
|
if (inverted) {
|
|
57
57
|
// Inverted: high values = good (green), low values = bad (red)
|
|
58
58
|
// For battery health: 100% = green, <30% = red
|
|
59
|
-
if (progress >= criticalThreshold) return "var(--
|
|
59
|
+
if (progress >= criticalThreshold) return "var(--color-success)"; // high = green
|
|
60
60
|
if (progress >= warningThreshold) return "var(--color-warning)"; // medium = warning
|
|
61
|
-
return "var(--
|
|
61
|
+
return "var(--color-error)"; // low = red
|
|
62
62
|
} else {
|
|
63
63
|
// Normal: high values = bad (red), low values = good (green)
|
|
64
64
|
// For disk usage: 100% = red, <70% = green
|
|
65
|
-
if (progress >= criticalThreshold) return "var(--
|
|
65
|
+
if (progress >= criticalThreshold) return "var(--color-error)"; // critical red
|
|
66
66
|
if (progress >= warningThreshold) return "var(--color-warning)"; // warning yellow
|
|
67
|
-
return "var(--
|
|
67
|
+
return "var(--color-success)"; // base green
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
|
|
@@ -84,7 +84,7 @@ export const ProgressBar: React.FC<ProgressBarProps> = ({
|
|
|
84
84
|
backgroundColor:
|
|
85
85
|
i < Math.round((progress / 100) * segmentCount)
|
|
86
86
|
? getColor()
|
|
87
|
-
: "var(--
|
|
87
|
+
: "var(--color-bg-surface-active)", // unfilled segments
|
|
88
88
|
}}
|
|
89
89
|
/>
|
|
90
90
|
))}
|
|
@@ -58,7 +58,7 @@ function TruncatedHeaderCell({ value, width }: { value: string; width: number })
|
|
|
58
58
|
>
|
|
59
59
|
<div
|
|
60
60
|
ref={textRef}
|
|
61
|
-
className="
|
|
61
|
+
className="text-h5 text-ods-text-secondary truncate"
|
|
62
62
|
>
|
|
63
63
|
{value}
|
|
64
64
|
</div>
|
|
@@ -45,8 +45,8 @@ export function QueryReportTableRow({
|
|
|
45
45
|
className={cn(
|
|
46
46
|
'text-ods-text-primary',
|
|
47
47
|
isCompact
|
|
48
|
-
? '
|
|
49
|
-
: '
|
|
48
|
+
? 'text-h6'
|
|
49
|
+
: 'text-h4'
|
|
50
50
|
)}
|
|
51
51
|
value={displayValue}
|
|
52
52
|
/>
|
|
@@ -62,7 +62,7 @@ export function QueryReportTable({
|
|
|
62
62
|
{/* Title bar — hidden in compact mode and when empty */}
|
|
63
63
|
{!isCompact && (title || headerActions || (showExport && data.length > 0)) && (
|
|
64
64
|
<div className="flex items-end justify-between pt-6">
|
|
65
|
-
<h2 className="
|
|
65
|
+
<h2 className="text-h2 text-ods-text-primary">
|
|
66
66
|
{title}
|
|
67
67
|
</h2>
|
|
68
68
|
<div className="flex items-center gap-3">
|
|
@@ -72,7 +72,7 @@ export function ReleaseChangelogSection({
|
|
|
72
72
|
onClick={() => setCollapsed(!collapsed)}
|
|
73
73
|
className="flex items-center justify-between w-full cursor-pointer"
|
|
74
74
|
>
|
|
75
|
-
<h2 className={`flex items-center gap-2 text-
|
|
75
|
+
<h2 className={`flex items-center gap-2 text-h2 ${isBreaking ? 'text-ods-error' : 'text-ods-text-primary'}`}>
|
|
76
76
|
{icon}
|
|
77
77
|
{title}
|
|
78
78
|
<Badge variant="secondary" className="ml-2">{entries.length}</Badge>
|
|
@@ -84,7 +84,7 @@ export function ReleaseChangelogSection({
|
|
|
84
84
|
/>
|
|
85
85
|
</button>
|
|
86
86
|
) : (
|
|
87
|
-
<h2 className={`flex items-center gap-2 text-
|
|
87
|
+
<h2 className={`flex items-center gap-2 text-h2 ${isBreaking ? 'text-ods-error' : 'text-ods-text-primary'}`}>
|
|
88
88
|
{icon}
|
|
89
89
|
{title}
|
|
90
90
|
<Badge variant="secondary" className="ml-2">{entries.length}</Badge>
|
|
@@ -713,7 +713,7 @@ const RichMarkdownInner: React.FC<InnerProps> = ({
|
|
|
713
713
|
<div className={`code-block-container border rounded-lg my-6 overflow-hidden ${
|
|
714
714
|
isDarkMode
|
|
715
715
|
? 'bg-ods-card border-ods-border'
|
|
716
|
-
: 'bg-ods-bg-
|
|
716
|
+
: 'bg-ods-bg-surface border-ods-border'
|
|
717
717
|
}`}>
|
|
718
718
|
<div className={`code-header border-b px-4 py-2 ${
|
|
719
719
|
isDarkMode
|
|
@@ -734,7 +734,7 @@ const RichMarkdownInner: React.FC<InnerProps> = ({
|
|
|
734
734
|
fontSize: '14px',
|
|
735
735
|
fontFamily: "'JetBrains Mono', 'SF Mono', Consolas, monospace",
|
|
736
736
|
background: 'transparent',
|
|
737
|
-
color: isDarkMode ? 'var(--
|
|
737
|
+
color: isDarkMode ? 'var(--color-text-primary)' : 'var(--color-text-primary)'
|
|
738
738
|
}}
|
|
739
739
|
{...props}
|
|
740
740
|
>
|
|
@@ -751,7 +751,7 @@ const RichMarkdownInner: React.FC<InnerProps> = ({
|
|
|
751
751
|
className={`font-mono text-[0.9em] px-1.5 py-0.5 rounded border ${
|
|
752
752
|
isDarkMode
|
|
753
753
|
? 'bg-ods-card text-ods-text-primary border-ods-border'
|
|
754
|
-
: 'bg-ods-bg-
|
|
754
|
+
: 'bg-ods-bg-surface text-ods-text-primary border-ods-border'
|
|
755
755
|
}`}
|
|
756
756
|
{...props}
|
|
757
757
|
>
|
|
@@ -821,7 +821,7 @@ const RichMarkdownInner: React.FC<InnerProps> = ({
|
|
|
821
821
|
|
|
822
822
|
// Style blockquotes
|
|
823
823
|
blockquote: ({ children }: any) => (
|
|
824
|
-
<blockquote className={`border-l-4 border-
|
|
824
|
+
<blockquote className={`border-l-4 border-ods-accent ml-0 pl-6 my-8 py-4 rounded-r-lg ${
|
|
825
825
|
isDarkMode
|
|
826
826
|
? 'bg-[#1F1F1F]'
|
|
827
827
|
: 'bg-[#F8F9FA]'
|
|
@@ -1013,7 +1013,7 @@ const RichMarkdownInner: React.FC<InnerProps> = ({
|
|
|
1013
1013
|
return (
|
|
1014
1014
|
<span className="text-ods-accent cursor-not-allowed">
|
|
1015
1015
|
{children}
|
|
1016
|
-
<sup className="ml-1 text-xs font-bold text-
|
|
1016
|
+
<sup className="ml-1 text-xs font-bold text-ods-error">[BROKEN]</sup>
|
|
1017
1017
|
</span>
|
|
1018
1018
|
);
|
|
1019
1019
|
}
|
|
@@ -1136,7 +1136,7 @@ const RichMarkdownInner: React.FC<InnerProps> = ({
|
|
|
1136
1136
|
</div>
|
|
1137
1137
|
),
|
|
1138
1138
|
thead: ({ children }: any) => (
|
|
1139
|
-
<thead className={isDarkMode ? 'bg-ods-bg-
|
|
1139
|
+
<thead className={isDarkMode ? 'bg-ods-bg-surface' : 'bg-ods-bg-surface'}>
|
|
1140
1140
|
{children}
|
|
1141
1141
|
</thead>
|
|
1142
1142
|
),
|
|
@@ -326,19 +326,19 @@ export function SearchInput({
|
|
|
326
326
|
)}
|
|
327
327
|
<div className="min-w-0 flex-1">
|
|
328
328
|
<div className={cn(
|
|
329
|
-
"text-
|
|
329
|
+
"text-h6 truncate",
|
|
330
330
|
isHighlighted ? "text-ods-accent" : "text-ods-text-primary"
|
|
331
331
|
)} title={result.title}>
|
|
332
332
|
{result.title}
|
|
333
333
|
</div>
|
|
334
334
|
{result.description && (
|
|
335
|
-
<div className="text-
|
|
335
|
+
<div className="text-h6 text-ods-text-secondary truncate mt-0.5" title={result.description}>
|
|
336
336
|
{result.description}
|
|
337
337
|
</div>
|
|
338
338
|
)}
|
|
339
339
|
</div>
|
|
340
340
|
{result.type && (
|
|
341
|
-
<span className="flex-shrink-0 text-
|
|
341
|
+
<span className="flex-shrink-0 text-h6 text-ods-text-muted uppercase">
|
|
342
342
|
{result.type}
|
|
343
343
|
</span>
|
|
344
344
|
)}
|
|
@@ -370,7 +370,7 @@ export function SearchInput({
|
|
|
370
370
|
const renderDropdownContent = () => {
|
|
371
371
|
if (isLoading) {
|
|
372
372
|
return (
|
|
373
|
-
<div className="px-4 py-3 text-ods-text-secondary text-
|
|
373
|
+
<div className="px-4 py-3 text-ods-text-secondary text-h6">
|
|
374
374
|
Loading...
|
|
375
375
|
</div>
|
|
376
376
|
)
|
|
@@ -378,7 +378,7 @@ export function SearchInput({
|
|
|
378
378
|
|
|
379
379
|
if (flatResults.length === 0) {
|
|
380
380
|
return (
|
|
381
|
-
<div className="px-4 py-3 text-ods-text-secondary text-
|
|
381
|
+
<div className="px-4 py-3 text-ods-text-secondary text-h6">
|
|
382
382
|
{emptyResultsText}
|
|
383
383
|
</div>
|
|
384
384
|
)
|
|
@@ -388,7 +388,7 @@ export function SearchInput({
|
|
|
388
388
|
let globalIndex = 0
|
|
389
389
|
return Array.from(groups.entries()).map(([groupLabel, groupResults]) => (
|
|
390
390
|
<div key={groupLabel}>
|
|
391
|
-
<div className="px-4 py-2 text-
|
|
391
|
+
<div className="px-4 py-2 text-h6 font-semibold text-ods-text-secondary uppercase bg-ods-bg">
|
|
392
392
|
{groupLabel}
|
|
393
393
|
</div>
|
|
394
394
|
{groupResults.map((result) => {
|
|
@@ -451,7 +451,7 @@ export function SearchInput({
|
|
|
451
451
|
className={cn(
|
|
452
452
|
"flex items-center h-8 px-2",
|
|
453
453
|
"bg-ods-card border border-ods-border rounded-[6px]",
|
|
454
|
-
"
|
|
454
|
+
"text-h5 text-ods-text-secondary",
|
|
455
455
|
"hover:bg-ods-bg-hover transition-colors cursor-pointer",
|
|
456
456
|
)}
|
|
457
457
|
aria-label={`${hiddenCount} more selected filters`}
|
|
@@ -137,7 +137,7 @@ const SelectLabel = React.forwardRef<
|
|
|
137
137
|
>(({ className, ...props }, ref) => (
|
|
138
138
|
<SelectPrimitive.Label
|
|
139
139
|
ref={ref}
|
|
140
|
-
className={cn("py-1.5 pl-8 pr-2 text-
|
|
140
|
+
className={cn("py-1.5 pl-8 pr-2 text-h6 font-semibold", className)}
|
|
141
141
|
{...props}
|
|
142
142
|
/>
|
|
143
143
|
))
|