@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
|
@@ -183,12 +183,12 @@ export const AppHeader = React.memo(function AppHeader({
|
|
|
183
183
|
/>
|
|
184
184
|
<div className="flex-1 min-w-0">
|
|
185
185
|
{userName && (
|
|
186
|
-
<div className="text-
|
|
186
|
+
<div className="text-h4 text-ods-text-primary truncate">
|
|
187
187
|
{userName}
|
|
188
188
|
</div>
|
|
189
189
|
)}
|
|
190
190
|
{userEmail && (
|
|
191
|
-
<div className="text-
|
|
191
|
+
<div className="text-h6 text-ods-text-secondary truncate">
|
|
192
192
|
{userEmail}
|
|
193
193
|
</div>
|
|
194
194
|
)}
|
|
@@ -198,21 +198,21 @@ export const AppHeader = React.memo(function AppHeader({
|
|
|
198
198
|
{/* Menu items */}
|
|
199
199
|
<DropdownMenuItem
|
|
200
200
|
onClick={onProfile}
|
|
201
|
-
className="bg-ods-card border-b border-ods-border rounded-none px-3 py-3 hover:bg-ods-
|
|
201
|
+
className="bg-ods-card border-b border-ods-border rounded-none px-3 py-3 hover:bg-ods-card/80 focus:bg-ods-card/80 cursor-pointer"
|
|
202
202
|
>
|
|
203
203
|
<div className="flex items-center gap-2">
|
|
204
204
|
<UserIcon className="h-6 w-6 text-ods-text-primary shrink-0" />
|
|
205
|
-
<span className="text-
|
|
205
|
+
<span className="text-h4 text-ods-text-primary">Profile Settings</span>
|
|
206
206
|
</div>
|
|
207
207
|
</DropdownMenuItem>
|
|
208
208
|
|
|
209
209
|
<DropdownMenuItem
|
|
210
210
|
onClick={onLogout}
|
|
211
|
-
className="bg-ods-card rounded-none px-3 py-3 hover:bg-ods-
|
|
211
|
+
className="bg-ods-card rounded-none px-3 py-3 hover:bg-ods-card/80 focus:bg-ods-card/80 cursor-pointer"
|
|
212
212
|
>
|
|
213
213
|
<div className="flex items-center gap-2">
|
|
214
214
|
<LogOutIcon className="text-ods-error shrink-0" size={24} />
|
|
215
|
-
<span className="text-
|
|
215
|
+
<span className="text-h4 text-ods-text-primary">Log Out</span>
|
|
216
216
|
</div>
|
|
217
217
|
</DropdownMenuItem>
|
|
218
218
|
</DropdownMenuContent>
|
|
@@ -48,11 +48,11 @@ export function HeaderOrganizationFilter({
|
|
|
48
48
|
>
|
|
49
49
|
<Filter02Icon className="w-4 h-4 shrink-0 text-ods-text-secondary" />
|
|
50
50
|
<div className="flex flex-col items-start justify-center min-w-0">
|
|
51
|
-
<span className="
|
|
51
|
+
<span className="text-h5 text-ods-text-primary truncate" title={displayName}>
|
|
52
52
|
{displayName}
|
|
53
53
|
</span>
|
|
54
54
|
{deviceCount !== undefined && (
|
|
55
|
-
<span className="text-
|
|
55
|
+
<span className="text-h6 text-ods-text-secondary truncate">
|
|
56
56
|
{deviceCount.toLocaleString()} Devices
|
|
57
57
|
</span>
|
|
58
58
|
)}
|
|
@@ -133,7 +133,7 @@ export function Header({ config, platform }: HeaderProps) {
|
|
|
133
133
|
}}
|
|
134
134
|
size="small-legacy"
|
|
135
135
|
className={cn(
|
|
136
|
-
"
|
|
136
|
+
"text-h6 font-bold",
|
|
137
137
|
item.isActive && 'bg-ods-bg-hover', // Active items get subtle gray background
|
|
138
138
|
isOpen && 'bg-ods-bg-hover', // Open dropdowns get gray background
|
|
139
139
|
item.className
|
|
@@ -189,7 +189,7 @@ export function Header({ config, platform }: HeaderProps) {
|
|
|
189
189
|
}}
|
|
190
190
|
className={cn(
|
|
191
191
|
"flex justify-start w-full",
|
|
192
|
-
"
|
|
192
|
+
"text-h6 font-bold",
|
|
193
193
|
index < (item.children?.length ?? 0) - 1 && "mb-1",
|
|
194
194
|
"text-ods-text-primary", // All dropdown items use primary text color
|
|
195
195
|
child.isActive && 'bg-ods-bg-hover' // Active dropdown items get gray background
|
|
@@ -225,7 +225,7 @@ export function Header({ config, platform }: HeaderProps) {
|
|
|
225
225
|
rightIcon={item.badge}
|
|
226
226
|
size="small-legacy"
|
|
227
227
|
className={cn(
|
|
228
|
-
"
|
|
228
|
+
"text-h6 font-bold",
|
|
229
229
|
"hover:bg-ods-bg-hover focus:bg-ods-bg-hover",
|
|
230
230
|
"whitespace-nowrap",
|
|
231
231
|
"text-ods-text-primary", // All items use primary text color
|
|
@@ -249,7 +249,7 @@ export function Header({ config, platform }: HeaderProps) {
|
|
|
249
249
|
rightIcon={item.badge}
|
|
250
250
|
size="small-legacy"
|
|
251
251
|
className={cn(
|
|
252
|
-
"
|
|
252
|
+
"text-h6 font-bold",
|
|
253
253
|
"hover:bg-ods-bg-hover focus:bg-ods-bg-hover",
|
|
254
254
|
"whitespace-nowrap",
|
|
255
255
|
"text-ods-text-primary", // All items use primary text color
|
|
@@ -81,7 +81,7 @@ export const MobileBurgerMenu = React.memo(function MobileBurgerMenu({
|
|
|
81
81
|
"flex items-center gap-1 p-3 relative",
|
|
82
82
|
"transition-colors duration-200",
|
|
83
83
|
"bg-ods-card border border-ods-border rounded-md",
|
|
84
|
-
!disabled && "hover:bg-ods-hover",
|
|
84
|
+
!disabled && "hover:bg-ods-bg-hover",
|
|
85
85
|
isGridItem ? "flex-1 min-w-0" : "w-full",
|
|
86
86
|
// Active state
|
|
87
87
|
isActive && !disabled && "border-ods-accent",
|
|
@@ -102,7 +102,7 @@ export const MobileBurgerMenu = React.memo(function MobileBurgerMenu({
|
|
|
102
102
|
|
|
103
103
|
{/* Label */}
|
|
104
104
|
<span className={cn(
|
|
105
|
-
"
|
|
105
|
+
"text-h6 flex-1 text-left truncate",
|
|
106
106
|
isActive && !disabled ? "text-ods-accent" : "text-ods-text-primary"
|
|
107
107
|
)}>
|
|
108
108
|
{item.label}
|
|
@@ -204,17 +204,17 @@ export const MobileBurgerMenu = React.memo(function MobileBurgerMenu({
|
|
|
204
204
|
{/* User Info */}
|
|
205
205
|
<div className="flex-1 min-w-0 flex flex-col">
|
|
206
206
|
<div className="flex items-center gap-2">
|
|
207
|
-
<span className="
|
|
207
|
+
<span className="text-h6 text-ods-text-primary truncate">
|
|
208
208
|
{user.userName || 'User'}
|
|
209
209
|
</span>
|
|
210
210
|
{user.userRole && (
|
|
211
|
-
<span className="shrink-0 px-2 py-0.5 bg-ods-card border border-ods-border rounded-md
|
|
211
|
+
<span className="shrink-0 px-2 py-0.5 bg-ods-card border border-ods-border rounded-md text-h6 uppercase text-ods-text-primary">
|
|
212
212
|
{user.userRole}
|
|
213
213
|
</span>
|
|
214
214
|
)}
|
|
215
215
|
</div>
|
|
216
216
|
{user.userEmail && (
|
|
217
|
-
<span className="
|
|
217
|
+
<span className="text-h6 text-ods-text-secondary truncate">
|
|
218
218
|
{user.userEmail}
|
|
219
219
|
</span>
|
|
220
220
|
)}
|
|
@@ -269,12 +269,12 @@ export const MobileBurgerMenu = React.memo(function MobileBurgerMenu({
|
|
|
269
269
|
disabled={disabled}
|
|
270
270
|
className={cn(
|
|
271
271
|
"w-full flex items-center gap-1 p-3 bg-ods-card border border-ods-border rounded-md transition-colors",
|
|
272
|
-
!disabled && "hover:bg-ods-hover",
|
|
272
|
+
!disabled && "hover:bg-ods-bg-hover",
|
|
273
273
|
disabled && "cursor-not-allowed opacity-50"
|
|
274
274
|
)}
|
|
275
275
|
>
|
|
276
276
|
<Logout02Icon className="size-4 text-ods-error" />
|
|
277
|
-
<span className="
|
|
277
|
+
<span className="text-h6 flex-1 text-left text-ods-text-primary">
|
|
278
278
|
Log Out
|
|
279
279
|
</span>
|
|
280
280
|
</button>
|
|
@@ -134,7 +134,7 @@ export function MobileNavPanel({ isOpen, config }: MobileNavPanelProps) {
|
|
|
134
134
|
{config.sections.map((section, index) => (
|
|
135
135
|
<div key={index}>
|
|
136
136
|
{section.title && (
|
|
137
|
-
<div className="px-4 pt-2 pb-1 text-
|
|
137
|
+
<div className="px-4 pt-2 pb-1 text-h6 font-semibold uppercase text-ods-text-secondary">
|
|
138
138
|
{section.title}
|
|
139
139
|
</div>
|
|
140
140
|
)}
|
|
@@ -157,8 +157,8 @@ function NavigationItem({
|
|
|
157
157
|
<div className="flex items-center relative">
|
|
158
158
|
<button
|
|
159
159
|
className={cn(
|
|
160
|
-
"w-full flex items-center h-12 px-2 rounded-lg text-
|
|
161
|
-
!isSelected && "hover:bg-ods-bg-
|
|
160
|
+
"w-full flex items-center h-12 px-2 rounded-lg text-h6 transition-all duration-150 text-ods-text-primary",
|
|
161
|
+
!isSelected && "hover:bg-ods-bg-hover",
|
|
162
162
|
hasChildren && "pr-12"
|
|
163
163
|
)}
|
|
164
164
|
onClick={() => onNodeClick(node)}
|
|
@@ -175,7 +175,7 @@ function NavigationItem({
|
|
|
175
175
|
{node.name.endsWith('.md') ? node.name.replace('.md', '') : node.name}
|
|
176
176
|
</span>
|
|
177
177
|
{node.type === 'folder' && node.hasReadme && (
|
|
178
|
-
<span className="text-
|
|
178
|
+
<span className="text-h6 bg-ods-bg-surface text-ods-text-tertiary px-1.5 py-0.5 rounded mr-2">
|
|
179
179
|
README
|
|
180
180
|
</span>
|
|
181
181
|
)}
|
|
@@ -290,8 +290,8 @@ function MobileNavigationItem({
|
|
|
290
290
|
<div className="flex items-center relative">
|
|
291
291
|
<button
|
|
292
292
|
className={cn(
|
|
293
|
-
"w-full flex items-center h-11 px-2 rounded-lg text-
|
|
294
|
-
!isSelected && "hover:bg-ods-bg-
|
|
293
|
+
"w-full flex items-center h-11 px-2 rounded-lg text-h6 transition-all duration-150 text-ods-text-primary",
|
|
294
|
+
!isSelected && "hover:bg-ods-bg-hover",
|
|
295
295
|
hasChildren && "pr-11"
|
|
296
296
|
)}
|
|
297
297
|
onClick={() => onNodeClick(node)}
|
|
@@ -303,11 +303,11 @@ function MobileNavigationItem({
|
|
|
303
303
|
<FileText className="h-4 w-4" />
|
|
304
304
|
)}
|
|
305
305
|
</span>
|
|
306
|
-
<span className="text-left truncate flex-1 min-w-0
|
|
306
|
+
<span className="text-left truncate flex-1 min-w-0">
|
|
307
307
|
{node.name.endsWith('.md') ? node.name.replace('.md', '') : node.name}
|
|
308
308
|
</span>
|
|
309
309
|
{node.type === 'folder' && node.hasReadme && (
|
|
310
|
-
<span className="text-
|
|
310
|
+
<span className="text-h6 bg-ods-bg-surface text-ods-text-tertiary px-1.5 py-0.5 rounded mr-2">
|
|
311
311
|
README
|
|
312
312
|
</span>
|
|
313
313
|
)}
|
|
@@ -113,7 +113,7 @@ export function NavigationSidebar({ config, disabled = false }: NavigationSideba
|
|
|
113
113
|
{/* Backdrop scrim — only visible on tablet while the overlay is open */}
|
|
114
114
|
<div
|
|
115
115
|
className={cn(
|
|
116
|
-
"fixed inset-0 z-[40] bg-
|
|
116
|
+
"fixed inset-0 z-[40] bg-ods-overlay",
|
|
117
117
|
"hidden md:block lg:hidden",
|
|
118
118
|
"transition-opacity duration-300",
|
|
119
119
|
isOverlayOpen ? "opacity-100" : "opacity-0 pointer-events-none",
|
|
@@ -28,7 +28,7 @@ export function StickySectionNav({
|
|
|
28
28
|
onSectionClick,
|
|
29
29
|
className,
|
|
30
30
|
ribbonPosition = 'left',
|
|
31
|
-
ribbonColor = '
|
|
31
|
+
ribbonColor = 'var(--color-accent-primary)'
|
|
32
32
|
}: StickySectionNavProps) {
|
|
33
33
|
const navHeight = sections.length * 40 // 40px per item (h-10)
|
|
34
34
|
|
|
@@ -71,7 +71,7 @@ export function StickySectionNav({
|
|
|
71
71
|
className="flex-1 flex items-center gap-2 px-3 py-2 cursor-pointer relative"
|
|
72
72
|
>
|
|
73
73
|
<span className={cn(
|
|
74
|
-
"text-left
|
|
74
|
+
"text-left text-h6 transition-all duration-200",
|
|
75
75
|
activeSection === section.id
|
|
76
76
|
? "text-ods-text-primary"
|
|
77
77
|
: "text-ods-text-secondary hover:text-ods-text-primary"
|
|
@@ -206,10 +206,10 @@ export function OnboardingGuidesCatalogView({
|
|
|
206
206
|
{guides.length === 0 ? (
|
|
207
207
|
<div className="text-center py-16">
|
|
208
208
|
<GraduationCap className="h-12 w-12 text-ods-text-secondary mx-auto mb-4" />
|
|
209
|
-
<h2 className="text-ods-text-primary
|
|
209
|
+
<h2 className="text-ods-text-primary text-h3 mb-2">
|
|
210
210
|
No onboarding guides found
|
|
211
211
|
</h2>
|
|
212
|
-
<p className="text-ods-text-secondary
|
|
212
|
+
<p className="text-ods-text-secondary text-h6">
|
|
213
213
|
{activeSection !== 'all'
|
|
214
214
|
? 'No guides in this section yet.'
|
|
215
215
|
: "We're working on the onboarding library. Check back soon."}
|
|
@@ -219,9 +219,9 @@ export function OnboardingGuidesCatalogView({
|
|
|
219
219
|
<div className={isPending || isLoading ? 'opacity-60 transition-opacity space-y-10' : 'space-y-10'}>
|
|
220
220
|
{grouped.map((sec) => (
|
|
221
221
|
<section key={sec.section} className="space-y-4">
|
|
222
|
-
<h2 className="text-h3
|
|
222
|
+
<h2 className="text-h3 text-ods-text-primary flex items-center gap-2">
|
|
223
223
|
{sec.section}
|
|
224
|
-
<span className="inline-flex items-center justify-center rounded-full bg-ods-text-secondary/20 text-ods-text-secondary text-
|
|
224
|
+
<span className="inline-flex items-center justify-center rounded-full bg-ods-text-secondary/20 text-ods-text-secondary text-h6 px-2 py-0.5">
|
|
225
225
|
{sec.guides.length}
|
|
226
226
|
</span>
|
|
227
227
|
</h2>
|
|
@@ -85,7 +85,7 @@ const Pagination = ({ currentPage, totalPages, onPageChange, className }: Pagina
|
|
|
85
85
|
// Render ellipsis
|
|
86
86
|
return (
|
|
87
87
|
<li key={`ellipsis-${index}`}>
|
|
88
|
-
<span className="flex h-9 w-9 items-center justify-center text-
|
|
88
|
+
<span className="flex h-9 w-9 items-center justify-center text-h6 text-muted-foreground">
|
|
89
89
|
<MoreHorizontal className="h-4 w-4" />
|
|
90
90
|
<span className="sr-only">More pages</span>
|
|
91
91
|
</span>
|
|
@@ -147,7 +147,7 @@ const PaginationLink = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttri
|
|
|
147
147
|
<button
|
|
148
148
|
ref={ref}
|
|
149
149
|
className={cn(
|
|
150
|
-
"inline-flex items-center justify-center h-10 w-10 rounded-md border border-input bg-background text-
|
|
150
|
+
"inline-flex items-center justify-center h-10 w-10 rounded-md border border-input bg-background text-h6 transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
151
151
|
className,
|
|
152
152
|
)}
|
|
153
153
|
{...props}
|
|
@@ -107,7 +107,7 @@ export function PersistentFilterControls({
|
|
|
107
107
|
role="status"
|
|
108
108
|
aria-label="Loading filters"
|
|
109
109
|
>
|
|
110
|
-
<div className="w-4 h-4 border-2 border-ods-border border-t-
|
|
110
|
+
<div className="w-4 h-4 border-2 border-ods-border border-t-ods-accent rounded-full animate-spin" />
|
|
111
111
|
</div>
|
|
112
112
|
)}
|
|
113
113
|
</div>
|
|
@@ -20,7 +20,7 @@ import { ShellTypeValues } from './types/shell.types'
|
|
|
20
20
|
// With custom wrapper and icon class overrides
|
|
21
21
|
<ShellTypeBadge
|
|
22
22
|
shellType={ShellTypeValues.PYTHON}
|
|
23
|
-
className="bg-ods-surface
|
|
23
|
+
className="bg-ods-bg-surface px-2 py-1 rounded"
|
|
24
24
|
iconClassName="opacity-75"
|
|
25
25
|
/>
|
|
26
26
|
|
|
@@ -33,7 +33,7 @@ export const CveLink: React.FC<CveLinkProps> = ({
|
|
|
33
33
|
target="_blank"
|
|
34
34
|
rel="noopener noreferrer"
|
|
35
35
|
className={cn(
|
|
36
|
-
'inline-flex items-center gap-2
|
|
36
|
+
'inline-flex items-center gap-2 text-code text-ods-text-primary hover:text-ods-accent transition-colors group',
|
|
37
37
|
className
|
|
38
38
|
)}
|
|
39
39
|
>
|
|
@@ -136,7 +136,7 @@ export const ScriptArguments: React.FC<ScriptArgumentsProps> = ({
|
|
|
136
136
|
placeholder={valuePlaceholder}
|
|
137
137
|
disabled={disabled}
|
|
138
138
|
className={cn(
|
|
139
|
-
!arg.value && 'placeholder:text-
|
|
139
|
+
!arg.value && 'placeholder:text-ods-text-muted'
|
|
140
140
|
)}
|
|
141
141
|
/>
|
|
142
142
|
</div>
|
|
@@ -147,7 +147,7 @@ export const ScriptArguments: React.FC<ScriptArgumentsProps> = ({
|
|
|
147
147
|
onClick={() => handleDelete(arg.id)}
|
|
148
148
|
disabled={disabled}
|
|
149
149
|
aria-label="Delete argument"
|
|
150
|
-
leftIcon={<Trash2 className="size-4 md:size-6 " color="var(--
|
|
150
|
+
leftIcon={<Trash2 className="size-4 md:size-6 " color="var(--color-error)" />}
|
|
151
151
|
/>
|
|
152
152
|
</div>
|
|
153
153
|
</div>
|
|
@@ -91,7 +91,7 @@ function InfoCell({ label, value, avatar, className }: InfoCellProps) {
|
|
|
91
91
|
className="size-full object-cover"
|
|
92
92
|
/>
|
|
93
93
|
) : (
|
|
94
|
-
<div className="size-full flex items-center justify-center text-ods-text-secondary text-
|
|
94
|
+
<div className="size-full flex items-center justify-center text-ods-text-secondary text-h6">
|
|
95
95
|
{avatar.initials || getInitials(avatar.name)}
|
|
96
96
|
</div>
|
|
97
97
|
)}
|
|
@@ -100,10 +100,10 @@ function InfoCell({ label, value, avatar, className }: InfoCellProps) {
|
|
|
100
100
|
|
|
101
101
|
{/* Text content */}
|
|
102
102
|
<div className="flex flex-col min-w-0">
|
|
103
|
-
<span className="text-ods-text-primary
|
|
103
|
+
<span className="text-ods-text-primary text-h4 truncate" title={value}>
|
|
104
104
|
{value}
|
|
105
105
|
</span>
|
|
106
|
-
<span className="text-ods-text-secondary
|
|
106
|
+
<span className="text-ods-text-secondary text-h6 truncate">
|
|
107
107
|
{label}
|
|
108
108
|
</span>
|
|
109
109
|
</div>
|
|
@@ -148,11 +148,11 @@ export const ScriptInfoSection: React.FC<ScriptInfoSectionProps> = ({
|
|
|
148
148
|
{/* Header row with title and description */}
|
|
149
149
|
<div className="p-4 border-b border-ods-border">
|
|
150
150
|
<div className="flex flex-col gap-1">
|
|
151
|
-
<h3 className="text-ods-text-primary
|
|
151
|
+
<h3 className="text-ods-text-primary text-h4">
|
|
152
152
|
{headline}
|
|
153
153
|
</h3>
|
|
154
154
|
{subheadline && (
|
|
155
|
-
<p className="text-ods-text-secondary
|
|
155
|
+
<p className="text-ods-text-secondary text-h6 break-words">
|
|
156
156
|
{subheadline}
|
|
157
157
|
</p>
|
|
158
158
|
)}
|
|
@@ -39,11 +39,11 @@ const shellIconMap: Record<ShellType, ShellIconConfig> = {
|
|
|
39
39
|
},
|
|
40
40
|
[ShellTypeValues.CMD]: {
|
|
41
41
|
icon: CmdIcon,
|
|
42
|
-
props: { size: 16, color: '
|
|
42
|
+
props: { size: 16, color: 'var(--color-text-secondary)' }
|
|
43
43
|
},
|
|
44
44
|
[ShellTypeValues.BASH]: {
|
|
45
45
|
icon: BashIcon,
|
|
46
|
-
props: { size: 16, color: '
|
|
46
|
+
props: { size: 16, color: 'var(--color-text-secondary)' }
|
|
47
47
|
},
|
|
48
48
|
[ShellTypeValues.PYTHON]: {
|
|
49
49
|
icon: PythonLogoIcon,
|
|
@@ -51,21 +51,21 @@ const shellIconMap: Record<ShellType, ShellIconConfig> = {
|
|
|
51
51
|
},
|
|
52
52
|
[ShellTypeValues.NUSHELL]: {
|
|
53
53
|
icon: NushellIcon,
|
|
54
|
-
props: { size: 16, color: '
|
|
54
|
+
props: { size: 16, color: 'var(--color-text-secondary)' }
|
|
55
55
|
},
|
|
56
56
|
[ShellTypeValues.DENO]: {
|
|
57
57
|
icon: DenoIcon,
|
|
58
|
-
props: { size: 16, color: '
|
|
58
|
+
props: { size: 16, color: 'var(--color-text-secondary)' }
|
|
59
59
|
},
|
|
60
60
|
[ShellTypeValues.SHELL]: {
|
|
61
61
|
icon: ShellIcon,
|
|
62
|
-
props: { size: 16, color: '
|
|
62
|
+
props: { size: 16, color: 'var(--color-text-secondary)' }
|
|
63
63
|
}
|
|
64
64
|
} as const
|
|
65
65
|
|
|
66
66
|
const defaultIconConfig: ShellIconConfig = {
|
|
67
67
|
icon: ShellIcon,
|
|
68
|
-
props: { size: 16, color: '
|
|
68
|
+
props: { size: 16, color: 'var(--color-text-secondary)' }
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
export interface ShellTypeBadgeProps {
|
|
@@ -38,13 +38,13 @@ export const SoftwareInfo: React.FC<SoftwareInfoProps> = ({
|
|
|
38
38
|
{name}
|
|
39
39
|
</div>
|
|
40
40
|
{version && (
|
|
41
|
-
<div className="px-2 py-1 bg-ods-
|
|
41
|
+
<div className="px-2 py-1 bg-ods-bg-surface rounded text-ods-text-secondary text-h6">
|
|
42
42
|
{version}
|
|
43
43
|
</div>
|
|
44
44
|
)}
|
|
45
45
|
</div>
|
|
46
46
|
{vendor && (
|
|
47
|
-
<div className="
|
|
47
|
+
<div className="text-h6 text-ods-text-secondary">
|
|
48
48
|
{vendor}
|
|
49
49
|
</div>
|
|
50
50
|
)}
|
|
@@ -23,30 +23,30 @@ interface PricingDisplayProps {
|
|
|
23
23
|
export const PRICING_STYLES = {
|
|
24
24
|
// Comparison table style (current default)
|
|
25
25
|
comparison: {
|
|
26
|
-
priceTextSize: 'text-
|
|
26
|
+
priceTextSize: 'text-h6',
|
|
27
27
|
priceTextColor: 'text-ods-text-primary',
|
|
28
|
-
secondaryTextSize: 'text-
|
|
28
|
+
secondaryTextSize: 'text-h6',
|
|
29
29
|
secondaryTextColor: 'text-ods-text-secondary',
|
|
30
30
|
showTildePrefix: false,
|
|
31
|
-
fontFamily:
|
|
31
|
+
fontFamily: 'font-body'
|
|
32
32
|
},
|
|
33
33
|
// Vendor dropdown compact style (Figma design)
|
|
34
34
|
compact: {
|
|
35
|
-
priceTextSize: 'text-
|
|
35
|
+
priceTextSize: 'text-h6',
|
|
36
36
|
priceTextColor: 'text-ods-text-secondary',
|
|
37
|
-
secondaryTextSize: 'text-
|
|
37
|
+
secondaryTextSize: 'text-h6',
|
|
38
38
|
secondaryTextColor: 'text-ods-text-secondary',
|
|
39
39
|
showTildePrefix: true,
|
|
40
|
-
fontFamily:
|
|
40
|
+
fontFamily: 'font-body'
|
|
41
41
|
},
|
|
42
42
|
// Card style for vendor cards
|
|
43
43
|
card: {
|
|
44
|
-
priceTextSize: 'text-
|
|
44
|
+
priceTextSize: 'text-h6',
|
|
45
45
|
priceTextColor: 'text-ods-text-primary',
|
|
46
|
-
secondaryTextSize: 'text-
|
|
46
|
+
secondaryTextSize: 'text-h6',
|
|
47
47
|
secondaryTextColor: 'text-ods-text-secondary',
|
|
48
48
|
showTildePrefix: true,
|
|
49
|
-
fontFamily:
|
|
49
|
+
fontFamily: 'font-body'
|
|
50
50
|
}
|
|
51
51
|
} as const
|
|
52
52
|
|
|
@@ -10,18 +10,18 @@ export function ProfileLoadingSkeleton({ className }: ProfileLoadingSkeletonProp
|
|
|
10
10
|
<div className={cn("space-y-6", className)}>
|
|
11
11
|
{/* Header skeleton */}
|
|
12
12
|
<div className="flex items-center space-x-4">
|
|
13
|
-
<div className="h-16 w-16 bg-
|
|
13
|
+
<div className="h-16 w-16 bg-ods-skeleton rounded-full animate-pulse" />
|
|
14
14
|
<div className="space-y-2">
|
|
15
|
-
<div className="h-4 w-32 bg-
|
|
16
|
-
<div className="h-3 w-24 bg-
|
|
15
|
+
<div className="h-4 w-32 bg-ods-skeleton rounded animate-pulse" />
|
|
16
|
+
<div className="h-3 w-24 bg-ods-skeleton rounded animate-pulse" />
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
{/* Content skeleton */}
|
|
21
21
|
<div className="space-y-4">
|
|
22
|
-
<div className="h-4 w-full bg-
|
|
23
|
-
<div className="h-4 w-3/4 bg-
|
|
24
|
-
<div className="h-4 w-1/2 bg-
|
|
22
|
+
<div className="h-4 w-full bg-ods-skeleton rounded animate-pulse" />
|
|
23
|
+
<div className="h-4 w-3/4 bg-ods-skeleton rounded animate-pulse" />
|
|
24
|
+
<div className="h-4 w-1/2 bg-ods-skeleton rounded animate-pulse" />
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
27
|
)
|
|
@@ -730,7 +730,7 @@ export function RelatedContentSection({
|
|
|
730
730
|
const skeletonType = includeTypes?.[0] ?? entityType ?? 'blog_post_existing';
|
|
731
731
|
return (
|
|
732
732
|
<div className="space-y-8">
|
|
733
|
-
<h2 className="text-
|
|
733
|
+
<h2 className="text-h2 text-ods-text-primary">{title}</h2>
|
|
734
734
|
<div className={gridClassFor(columns)}>
|
|
735
735
|
{Array.from({ length: 3 }).map((_, i) => (
|
|
736
736
|
<div key={i}>{renderSkeletonForType(skeletonType, 'default', adminCampaignCard)}</div>
|
|
@@ -774,7 +774,7 @@ export function RelatedContentSection({
|
|
|
774
774
|
|
|
775
775
|
return (
|
|
776
776
|
<div className="space-y-8">
|
|
777
|
-
<h2 className="text-
|
|
777
|
+
<h2 className="text-h2 text-ods-text-primary">{title}</h2>
|
|
778
778
|
{orderedTypes.map((type) => (
|
|
779
779
|
<ContentGroup
|
|
780
780
|
key={type}
|
|
@@ -787,7 +787,7 @@ export function RelatedContentSection({
|
|
|
787
787
|
extras={extras}
|
|
788
788
|
adminCampaignCard={adminCampaignCard}
|
|
789
789
|
heading={
|
|
790
|
-
<h3 className="
|
|
790
|
+
<h3 className="text-h5 font-semibold text-ods-text-secondary">
|
|
791
791
|
{getContentRefLabelOrTitleCase(type)}
|
|
792
792
|
</h3>
|
|
793
793
|
}
|
|
@@ -27,7 +27,7 @@ export function ResultsCount({
|
|
|
27
27
|
|
|
28
28
|
return (
|
|
29
29
|
<div className="mb-6">
|
|
30
|
-
<p className="text-ods-text-secondary text-
|
|
30
|
+
<p className="text-ods-text-secondary text-h6">
|
|
31
31
|
{totalResults > 0 && (
|
|
32
32
|
<>
|
|
33
33
|
Showing {startIndex}-{endIndex} of {totalResults} {displayType}
|
|
@@ -89,7 +89,7 @@ export function DeliveryRow({
|
|
|
89
89
|
{/* Left: caption (optional) + title + subtitle + description */}
|
|
90
90
|
<div className="flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]">
|
|
91
91
|
{caption && (
|
|
92
|
-
<p className="text-
|
|
92
|
+
<p className="text-h5 text-ods-text-secondary">
|
|
93
93
|
{caption}
|
|
94
94
|
</p>
|
|
95
95
|
)}
|
|
@@ -85,7 +85,7 @@ export function DeliveryTable({ items, isLoading = false }: DeliveryTableProps)
|
|
|
85
85
|
if (items.length === 0) {
|
|
86
86
|
return (
|
|
87
87
|
<div className="bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full">
|
|
88
|
-
<p className="text-ods-text-secondary
|
|
88
|
+
<p className="text-h6 text-ods-text-secondary">
|
|
89
89
|
No tasks available
|
|
90
90
|
</p>
|
|
91
91
|
</div>
|
|
@@ -107,7 +107,7 @@ export function DevSectionView({ sectionKey, hero, preControls, children, showHe
|
|
|
107
107
|
{hero.icon}
|
|
108
108
|
{hero.title ?? section.hero.title}
|
|
109
109
|
</h1>
|
|
110
|
-
<p className="
|
|
110
|
+
<p className="text-h4 text-ods-text-secondary max-w-3xl">
|
|
111
111
|
{hero.description}
|
|
112
112
|
</p>
|
|
113
113
|
</div>
|
|
@@ -56,14 +56,14 @@ export function DocSearchResultRow({
|
|
|
56
56
|
</span>
|
|
57
57
|
<div className="min-w-0 flex-1">
|
|
58
58
|
<div
|
|
59
|
-
className={`text-
|
|
59
|
+
className={`text-h6 truncate ${
|
|
60
60
|
isHighlighted ? 'text-ods-accent' : 'text-ods-text-primary'
|
|
61
61
|
}`}
|
|
62
62
|
>
|
|
63
63
|
{result.title || result.path}
|
|
64
64
|
</div>
|
|
65
65
|
{!isGroup && result.path?.includes('/') && (
|
|
66
|
-
<div className="text-
|
|
66
|
+
<div className="text-h6 text-ods-text-secondary truncate mt-0.5">
|
|
67
67
|
{formatRelativePath(result.path)}
|
|
68
68
|
</div>
|
|
69
69
|
)}
|
|
@@ -110,7 +110,7 @@ export function LegalDocumentPage({
|
|
|
110
110
|
const inner = (
|
|
111
111
|
<PageLayout title={title} subtitle={subtitle} backButton={backCfg} titleSize="h1" titleWrap>
|
|
112
112
|
{data?.sourceFile && (
|
|
113
|
-
<p className="
|
|
113
|
+
<p className="text-h6 text-ods-text-secondary opacity-75">Source: {data.sourceFile}</p>
|
|
114
114
|
)}
|
|
115
115
|
|
|
116
116
|
<div className="flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1">
|
|
@@ -134,9 +134,9 @@ export function LegalDocumentPage({
|
|
|
134
134
|
</div>
|
|
135
135
|
) : error ? (
|
|
136
136
|
<div className="text-center space-y-4">
|
|
137
|
-
<div className="bg-
|
|
138
|
-
<p className="text-
|
|
139
|
-
<p className="text-
|
|
137
|
+
<div className="bg-ods-error-secondary border border-ods-error rounded-lg p-6">
|
|
138
|
+
<p className="text-ods-error mb-2">{errorTitle}</p>
|
|
139
|
+
<p className="text-ods-error text-h6">{error}</p>
|
|
140
140
|
</div>
|
|
141
141
|
<div className="text-ods-text-secondary">
|
|
142
142
|
<p>{errorContactPrompt}</p>
|
|
@@ -153,7 +153,7 @@ export function LegalDocumentPage({
|
|
|
153
153
|
/>
|
|
154
154
|
) : (
|
|
155
155
|
<div className="text-center text-ods-text-secondary py-16">
|
|
156
|
-
<p className="text-
|
|
156
|
+
<p className="text-h4">{emptyStateMessage}</p>
|
|
157
157
|
<p className="mt-2">
|
|
158
158
|
Please contact{' '}
|
|
159
159
|
<a href={`mailto:${contactEmail}`} className="text-ods-accent hover:underline">
|
|
@@ -69,7 +69,7 @@ export function OnboardingStepCard({
|
|
|
69
69
|
<h3 className="text-h4 text-ods-text-primary truncate" title={step.title}>
|
|
70
70
|
{step.title}
|
|
71
71
|
</h3>
|
|
72
|
-
<p className="
|
|
72
|
+
<p className="text-h6 text-ods-text-secondary truncate h-[20px]" title={step.description}>
|
|
73
73
|
{step.description}
|
|
74
74
|
</p>
|
|
75
75
|
</div>
|