@flamingo-stack/openframe-frontend-core 0.0.439-snapshot.20260717095442 → 0.0.439
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-QAG357PE.js → chunk-2ELBNZJ3.js} +7 -7
- package/dist/chunk-2ELBNZJ3.js.map +1 -0
- package/dist/{chunk-IZ6A6K6N.cjs → chunk-3WJQL4DN.cjs} +25 -25
- package/dist/chunk-3WJQL4DN.cjs.map +1 -0
- package/dist/{chunk-6CITW5BD.js → chunk-4ACSUJ7Q.js} +10 -10
- package/dist/chunk-4ACSUJ7Q.js.map +1 -0
- package/dist/{chunk-JYI4R25Q.js → chunk-7WM77CSW.js} +5 -5
- package/dist/chunk-7WM77CSW.js.map +1 -0
- package/dist/{chunk-TAQMYVO6.cjs → chunk-AUJXLVXA.cjs} +42 -42
- package/dist/{chunk-TAQMYVO6.cjs.map → chunk-AUJXLVXA.cjs.map} +1 -1
- package/dist/{chunk-UFBUQO7Z.cjs → chunk-C3FH53AP.cjs} +19 -19
- package/dist/{chunk-UFBUQO7Z.cjs.map → chunk-C3FH53AP.cjs.map} +1 -1
- package/dist/{chunk-FPE3SQ5D.js → chunk-COMBYYQY.js} +13 -13
- package/dist/chunk-COMBYYQY.js.map +1 -0
- package/dist/{chunk-J5NO7PAG.cjs → chunk-EE5NH5SH.cjs} +3 -3
- package/dist/{chunk-J5NO7PAG.cjs.map → chunk-EE5NH5SH.cjs.map} +1 -1
- package/dist/{chunk-SM26C2L7.js → chunk-EGRZHR7J.js} +9 -9
- package/dist/chunk-EGRZHR7J.js.map +1 -0
- package/dist/{chunk-W3JZXLJ2.js → chunk-F7YVI54P.js} +10 -10
- package/dist/chunk-F7YVI54P.js.map +1 -0
- package/dist/{chunk-63TSTDME.js → chunk-G5FALXNO.js} +21 -21
- package/dist/chunk-G5FALXNO.js.map +1 -0
- package/dist/{chunk-DUQQEQ7G.cjs → chunk-HTVVXVJL.cjs} +1594 -1431
- package/dist/chunk-HTVVXVJL.cjs.map +1 -0
- package/dist/{chunk-JNC4LVD6.cjs → chunk-IAN7GUIV.cjs} +42 -42
- package/dist/chunk-IAN7GUIV.cjs.map +1 -0
- package/dist/{chunk-PYR4LVAF.cjs → chunk-IMK6RUEC.cjs} +10 -10
- package/dist/chunk-IMK6RUEC.cjs.map +1 -0
- package/dist/{chunk-LFWPWIAC.cjs → chunk-M3LD6DNE.cjs} +16 -16
- package/dist/{chunk-LFWPWIAC.cjs.map → chunk-M3LD6DNE.cjs.map} +1 -1
- package/dist/{chunk-KUXGQ2FQ.cjs → chunk-M6QGB6DC.cjs} +36 -36
- package/dist/chunk-M6QGB6DC.cjs.map +1 -0
- package/dist/{chunk-QO6MCQYE.cjs → chunk-N2TJ3HAM.cjs} +9 -9
- package/dist/chunk-N2TJ3HAM.cjs.map +1 -0
- package/dist/{chunk-ZQYFDYWV.js → chunk-NQQ4NLUT.js} +4461 -4298
- package/dist/chunk-NQQ4NLUT.js.map +1 -0
- package/dist/{chunk-Y3NFB6HR.js → chunk-P7PISHM5.js} +5 -5
- package/dist/chunk-P7PISHM5.js.map +1 -0
- package/dist/{chunk-YZJUHEPZ.js → chunk-PBTY7AH5.js} +95 -95
- package/dist/chunk-PBTY7AH5.js.map +1 -0
- package/dist/{chunk-7KNOHGMI.js → chunk-PEIR7D25.js} +2 -2
- package/dist/{chunk-7KDR5P23.js → chunk-QXYOGJQJ.js} +2 -2
- package/dist/{chunk-LUKRPHEW.cjs → chunk-R46QEE3R.cjs} +96 -96
- package/dist/chunk-R46QEE3R.cjs.map +1 -0
- package/dist/{chunk-IPEIOR77.cjs → chunk-RQQZF6G6.cjs} +130 -130
- package/dist/chunk-RQQZF6G6.cjs.map +1 -0
- package/dist/{chunk-2BTDPDME.js → chunk-RVWC4P3H.js} +9 -9
- package/dist/chunk-RVWC4P3H.js.map +1 -0
- package/dist/{chunk-JOH5D76X.cjs → chunk-VWGF6IFR.cjs} +108 -108
- package/dist/chunk-VWGF6IFR.cjs.map +1 -0
- package/dist/{chunk-IAZ5AN2E.js → chunk-WAGTZVQN.js} +30 -30
- package/dist/chunk-WAGTZVQN.js.map +1 -0
- package/dist/{chunk-AGV26PUR.js → chunk-WPVBTVI3.js} +6 -6
- package/dist/{chunk-AGV26PUR.js.map → chunk-WPVBTVI3.js.map} +1 -1
- package/dist/{chunk-XMCVUYKC.cjs → chunk-WZ6TCAYQ.cjs} +14 -14
- package/dist/chunk-WZ6TCAYQ.cjs.map +1 -0
- package/dist/{chunk-7QP65IE4.cjs → chunk-ZMUFTGL7.cjs} +5 -5
- package/dist/{chunk-7QP65IE4.cjs.map → chunk-ZMUFTGL7.cjs.map} +1 -1
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/alert-dialog.d.ts +21 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert.d.ts +9 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/case-studies/index.cjs +15 -15
- package/dist/components/case-studies/index.cjs.map +1 -1
- package/dist/components/case-studies/index.js +9 -9
- package/dist/components/case-studies/index.js.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/index.js +3 -3
- package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
- package/dist/components/chevron-button.d.ts +14 -0
- package/dist/components/chevron-button.d.ts.map +1 -0
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/dialog.d.ts +29 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/dropdown-menu.d.ts +28 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +256 -262
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +111 -117
- package/dist/components/index.js.map +1 -1
- package/dist/components/input.d.ts +8 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/label.d.ts +6 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/menubar.d.ts +34 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/navigation-menu.d.ts +13 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/pricing-display.d.ts +9 -9
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/select.d.ts +14 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/sidebar.d.ts +67 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/square-avatar.d.ts +21 -0
- package/dist/components/square-avatar.d.ts.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/tabs.d.ts +18 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/toast/index.cjs +5 -5
- package/dist/components/toast/index.cjs.map +1 -1
- package/dist/components/toast/index.js +5 -5
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/toggle.d.ts +13 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/ui/bullet-list.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +73 -73
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +24 -24
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +4 -4
- package/dist/components/ui/index.js +3 -3
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts +0 -3
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +3 -3
- package/dist/tailwind.config.cjs +5 -38
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +5 -38
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +0 -5
- package/src/components/.accordion.md +42 -0
- package/src/components/.alert-dialog.md +58 -0
- package/src/components/.alert.md +43 -0
- package/src/components/.badge.md +40 -0
- package/src/components/.breadcrumb.md +54 -0
- package/src/components/.chevron-button.md +46 -0
- package/src/components/.dialog.md +60 -0
- package/src/components/.dropdown-menu.md +51 -0
- package/src/components/.footer.md +2 -2
- package/src/components/.input.md +40 -0
- package/src/components/.label.md +41 -0
- package/src/components/.menubar.md +49 -0
- package/src/components/.navigation-menu.md +44 -0
- package/src/components/.select.md +54 -0
- package/src/components/.sidebar.md +58 -0
- package/src/components/.square-avatar.md +42 -0
- package/src/components/.table.md +51 -0
- package/src/components/.tabs.md +38 -0
- package/src/components/.toggle.md +49 -0
- package/src/components/accordion.tsx +56 -0
- package/src/components/alert-dialog.tsx +141 -0
- package/src/components/alert.tsx +59 -0
- package/src/components/announcement-bar.tsx +1 -1
- package/src/components/authors/author-detail-view.tsx +3 -3
- package/src/components/badge.tsx +30 -0
- package/src/components/breadcrumb.tsx +115 -0
- package/src/components/calendar.tsx +2 -2
- package/src/components/case-studies/share-experience-section.tsx +5 -5
- package/src/components/categories-cart.tsx +6 -6
- package/src/components/category-card.tsx +5 -5
- package/src/components/chart.tsx +3 -3
- package/src/components/chat/approval-request-message.tsx +5 -2
- package/src/components/chat/chat-attachment-bar.tsx +3 -3
- package/src/components/chat/chat-message-enhanced.tsx +1 -1
- package/src/components/chat/chat-message-list.tsx +1 -1
- package/src/components/chat/chat-message-row.tsx +3 -3
- package/src/components/chat/chat-quick-action.tsx +1 -1
- package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
- package/src/components/chat/chat-sidebar.tsx +6 -6
- package/src/components/chat/chat-typing-indicator.tsx +1 -1
- package/src/components/chat/context-compaction-display.tsx +1 -1
- package/src/components/chat/embeddable-chat.tsx +3 -3
- package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
- package/src/components/chat/entity-cards/blog-card.tsx +8 -5
- package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
- package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
- package/src/components/chat/entity-cards/dispatch.tsx +1 -1
- package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
- package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
- package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
- package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
- package/src/components/chat/entity-cards/program-card.tsx +12 -12
- package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
- package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
- package/src/components/chat/error-message-display.tsx +2 -2
- package/src/components/chat/mingo-info-card.tsx +2 -2
- package/src/components/chat/model-display.tsx +7 -7
- package/src/components/chat/quick-action-chip.tsx +1 -1
- package/src/components/chat/source-action-button.tsx +2 -2
- package/src/components/chat/tool-call-blocks.tsx +5 -3
- package/src/components/chat/utils/.chip-action-class.md +1 -1
- package/src/components/chat/utils/.chip-styles.md +2 -2
- package/src/components/chat/utils/chip-action-class.ts +1 -1
- package/src/components/chat/utils/chip-styles.ts +2 -2
- package/src/components/chat/utils/compact-card-classes.ts +3 -3
- package/src/components/chevron-button.tsx +68 -0
- package/src/components/command.tsx +3 -3
- package/src/components/comment-card.tsx +1 -1
- package/src/components/contact/contact-form.tsx +9 -9
- package/src/components/context-menu.tsx +5 -5
- package/src/components/date-time-picker.tsx +2 -2
- package/src/components/dialog.tsx +150 -0
- package/src/components/docs/doc-viewer.tsx +4 -4
- package/src/components/dropdown-menu.tsx +200 -0
- package/src/components/embeds/figma-embed.tsx +2 -2
- package/src/components/embeds/file-download-card.tsx +2 -2
- package/src/components/embeds/google-sheets-viewer.tsx +1 -1
- package/src/components/embeds/linkedin-embed-client.tsx +3 -3
- package/src/components/embeds/og-link-preview.tsx +14 -14
- package/src/components/embeds/pdf-viewer.tsx +1 -1
- package/src/components/embeds/reddit-embed-client.tsx +9 -9
- package/src/components/embeds/twitter-embed-client.tsx +9 -9
- package/src/components/empty-state.tsx +5 -5
- package/src/components/faq/faq-section.tsx +1 -1
- package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
- package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
- package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
- package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
- package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
- package/src/components/features/array-entry-manager.tsx +7 -7
- package/src/components/features/auth-providers-list.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/changelog-manager.tsx +10 -10
- package/src/components/features/command-box.tsx +2 -2
- package/src/components/features/entity-summary-editor.tsx +3 -3
- package/src/components/features/figma-prototype-viewer.tsx +9 -9
- package/src/components/features/filters-dropdown.tsx +2 -2
- package/src/components/features/highlight-config-section.tsx +3 -3
- package/src/components/features/highlight-video-combined-section.tsx +2 -2
- package/src/components/features/highlight-video-preview.tsx +2 -2
- package/src/components/features/highlight-video-section.tsx +9 -9
- package/src/components/features/media-gallery-manager.tsx +14 -14
- package/src/components/features/og-editor-preview.tsx +4 -4
- package/src/components/features/os-type-badge-group.tsx +1 -1
- package/src/components/features/os-type-badge.tsx +2 -2
- package/src/components/features/platform-badge.tsx +4 -4
- package/src/components/features/policy-configuration-panel.tsx +6 -6
- package/src/components/features/provider-button.tsx +1 -1
- package/src/components/features/push-button-selector.tsx +21 -21
- package/src/components/features/release-media-manager.tsx +16 -16
- package/src/components/features/section-selector.tsx +8 -8
- package/src/components/features/select-button.tsx +4 -4
- package/src/components/features/seo-editor-preview.tsx +20 -20
- package/src/components/features/social-links-manager.tsx +3 -3
- package/src/components/features/start-with-openframe-button.tsx +3 -3
- package/src/components/features/status-filter-component.tsx +1 -1
- package/src/components/features/tags-selector.tsx +6 -6
- package/src/components/features/transcript-summary-editor.tsx +9 -9
- package/src/components/features/video-bites-strip.tsx +1 -1
- package/src/components/features/video-ratio-tabs.tsx +1 -1
- package/src/components/features/video-source-selector.tsx +7 -7
- package/src/components/features/video.tsx +1 -1
- package/src/components/features/waitlist-form.tsx +3 -3
- package/src/components/filter-chip.tsx +13 -13
- package/src/components/footer.tsx +3 -3
- package/src/components/form.tsx +2 -2
- package/src/components/hero-image-uploader.tsx +3 -3
- package/src/components/image-cropper.tsx +2 -2
- package/src/components/input.tsx +39 -0
- package/src/components/label.tsx +19 -0
- package/src/components/layout/page-container.tsx +6 -6
- package/src/components/layout/page-heading.tsx +1 -1
- package/src/components/loading/card-skeleton.tsx +2 -2
- package/src/components/loading/category-card-skeleton.tsx +1 -1
- package/src/components/loading/margin-report-skeleton.tsx +22 -22
- package/src/components/loading/openmsp-heartbeat.tsx +1 -1
- package/src/components/loading/page-layout-skeleton.tsx +83 -83
- package/src/components/loading/unified-skeleton.tsx +1 -1
- package/src/components/loading/users-grid-skeleton.tsx +2 -2
- package/src/components/logs-list.tsx +8 -8
- package/src/components/media-carousel.tsx +7 -7
- package/src/components/menubar.tsx +236 -0
- package/src/components/metric-value.tsx +2 -2
- package/src/components/msp-display.tsx +2 -8
- package/src/components/navigation/app-header.tsx +6 -6
- package/src/components/navigation/header-organization-filter.tsx +2 -2
- package/src/components/navigation/header.tsx +4 -4
- package/src/components/navigation/mobile-burger-menu.tsx +7 -7
- package/src/components/navigation/mobile-nav-panel.tsx +1 -1
- package/src/components/navigation/multi-level-navigation.tsx +7 -7
- package/src/components/navigation/navigation-sidebar.tsx +1 -1
- package/src/components/navigation/sticky-section-nav.tsx +2 -2
- package/src/components/navigation-menu.tsx +128 -0
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
- package/src/components/pagination.tsx +2 -2
- package/src/components/persistent-filter-controls.tsx +1 -1
- package/src/components/platform/.ShellTypeBadge.md +1 -1
- package/src/components/platform/CveLink.tsx +1 -1
- package/src/components/platform/ScriptArguments.tsx +2 -2
- package/src/components/platform/ScriptInfoSection.tsx +5 -5
- package/src/components/platform/ShellTypeBadge.tsx +6 -6
- package/src/components/platform/SoftwareInfo.tsx +2 -2
- package/src/components/pricing-display.tsx +9 -9
- package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
- package/src/components/related-content/related-content-section.tsx +3 -3
- package/src/components/results-count.tsx +1 -1
- package/src/components/select.tsx +160 -0
- package/src/components/shared/delivery/delivery-row.tsx +1 -1
- package/src/components/shared/delivery/delivery-table.tsx +1 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
- package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
- package/src/components/shared/product-release/product-release-card.tsx +14 -14
- package/src/components/shared/product-release/release-detail-page.tsx +16 -16
- package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
- package/src/components/sidebar.tsx +764 -0
- package/src/components/smooth-accordion.tsx +1 -1
- package/src/components/social-icon-row.tsx +1 -1
- package/src/components/sonner.tsx +5 -5
- package/src/components/square-avatar.tsx +61 -0
- package/src/components/steps.tsx +3 -3
- package/src/components/table.tsx +72 -0
- package/src/components/tabs.tsx +65 -0
- package/src/components/tickets/help-center-create-form.tsx +1 -1
- package/src/components/tickets/help-center-list.tsx +1 -1
- package/src/components/tickets/ticket-center.tsx +2 -2
- package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
- package/src/components/tickets/ticket-open-form.tsx +6 -6
- package/src/components/toggle.tsx +45 -0
- package/src/components/ui/.title-content-block.md +1 -1
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +3 -3
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/allowed-domains-input.tsx +3 -3
- package/src/components/ui/autocomplete.tsx +3 -3
- package/src/components/ui/badge.tsx +2 -2
- package/src/components/ui/brand-association-card.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +3 -3
- package/src/components/ui/bullet-list.tsx +2 -2
- package/src/components/ui/button/button.tsx +1 -1
- package/src/components/ui/card.tsx +4 -4
- package/src/components/ui/checkbox-with-description.tsx +1 -1
- package/src/components/ui/chevron-button.tsx +1 -1
- package/src/components/ui/content-loader.tsx +16 -16
- package/src/components/ui/cursor-pagination.tsx +1 -1
- package/src/components/ui/date-picker.tsx +2 -2
- package/src/components/ui/device-card-compact.tsx +2 -2
- package/src/components/ui/device-card.tsx +3 -3
- package/src/components/ui/dialog.tsx +3 -3
- package/src/components/ui/drawer.tsx +4 -4
- package/src/components/ui/dropdown-menu.tsx +6 -6
- package/src/components/ui/error-state.tsx +9 -9
- package/src/components/ui/fade-preview.tsx +1 -1
- package/src/components/ui/field-wrapper.tsx +1 -1
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
- package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
- package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
- package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
- package/src/components/ui/file-upload.tsx +9 -9
- package/src/components/ui/filter-pill-row.tsx +1 -1
- package/src/components/ui/floating-tooltip.tsx +1 -1
- package/src/components/ui/highlight-card.tsx +1 -1
- package/src/components/ui/hover-dropdown.tsx +1 -1
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/info-row.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +5 -5
- package/src/components/ui/markdown-editor.tsx +5 -4
- package/src/components/ui/menubar.tsx +7 -7
- package/src/components/ui/modal-v2.tsx +1 -1
- package/src/components/ui/modal.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +8 -8
- package/src/components/ui/page-loader.tsx +6 -6
- package/src/components/ui/phone-input.tsx +1 -1
- package/src/components/ui/progress-bar.tsx +5 -5
- package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
- package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
- package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/release-changelog-section.tsx +2 -2
- package/src/components/ui/rich-markdown-renderer.tsx +6 -6
- package/src/components/ui/search-input.tsx +7 -7
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/service-card.tsx +4 -4
- package/src/components/ui/sheet.tsx +3 -3
- package/src/components/ui/simple-markdown-renderer.tsx +4 -4
- package/src/components/ui/square-avatar.tsx +5 -9
- package/src/components/ui/status-badge.tsx +11 -11
- package/src/components/ui/status-indicator.tsx +6 -6
- package/src/components/ui/tab-content.tsx +1 -1
- package/src/components/ui/tab-navigation.tsx +2 -2
- package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
- package/src/components/ui/table/table-description-cell.tsx +1 -1
- package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
- package/src/components/ui/table/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/tag-search-input.tsx +1 -1
- package/src/components/ui/tag.tsx +23 -23
- package/src/components/ui/tags-input.tsx +2 -2
- package/src/components/ui/ticket-status-tag.tsx +1 -1
- package/src/components/ui/toaster.tsx +8 -8
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/user-display.tsx +6 -12
- package/src/components/user-summary-stub.tsx +4 -4
- package/src/components/vendor-display-button.tsx +2 -2
- package/src/components/vendor-icon.tsx +1 -1
- package/src/components/vendor-tag.tsx +10 -9
- package/src/components/yes-no-display.tsx +3 -3
- package/src/styles/ods-colors.css +0 -2
- package/tailwind.config.ts +4 -49
- package/dist/chunk-2BTDPDME.js.map +0 -1
- package/dist/chunk-63TSTDME.js.map +0 -1
- package/dist/chunk-6CITW5BD.js.map +0 -1
- package/dist/chunk-DUQQEQ7G.cjs.map +0 -1
- package/dist/chunk-FPE3SQ5D.js.map +0 -1
- package/dist/chunk-IAZ5AN2E.js.map +0 -1
- package/dist/chunk-IPEIOR77.cjs.map +0 -1
- package/dist/chunk-IZ6A6K6N.cjs.map +0 -1
- package/dist/chunk-JNC4LVD6.cjs.map +0 -1
- package/dist/chunk-JOH5D76X.cjs.map +0 -1
- package/dist/chunk-JYI4R25Q.js.map +0 -1
- package/dist/chunk-KUXGQ2FQ.cjs.map +0 -1
- package/dist/chunk-LUKRPHEW.cjs.map +0 -1
- package/dist/chunk-PYR4LVAF.cjs.map +0 -1
- package/dist/chunk-QAG357PE.js.map +0 -1
- package/dist/chunk-QO6MCQYE.cjs.map +0 -1
- package/dist/chunk-SM26C2L7.js.map +0 -1
- package/dist/chunk-W3JZXLJ2.js.map +0 -1
- package/dist/chunk-XMCVUYKC.cjs.map +0 -1
- package/dist/chunk-Y3NFB6HR.js.map +0 -1
- package/dist/chunk-YZJUHEPZ.js.map +0 -1
- package/dist/chunk-ZQYFDYWV.js.map +0 -1
- /package/dist/{chunk-7KNOHGMI.js.map → chunk-PEIR7D25.js.map} +0 -0
- /package/dist/{chunk-7KDR5P23.js.map → chunk-QXYOGJQJ.js.map} +0 -0
|
@@ -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-sm 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-sm font-medium 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-[#FFC008] 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-
|
|
23
|
+
className="bg-ods-surface-secondary 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 text-
|
|
36
|
+
'inline-flex items-center gap-2 font-medium text-[18px] leading-[20px] text-ods-text-primary font-mono 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-[#888]'
|
|
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(--ods-attention-red-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-sm font-medium">
|
|
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 text-
|
|
103
|
+
<span className="text-ods-text-primary font-['DM_Sans'] text-[14px] leading-[20px] md:text-[18px] md:leading-[24px] font-medium truncate" title={value}>
|
|
104
104
|
{value}
|
|
105
105
|
</span>
|
|
106
|
-
<span className="text-ods-text-secondary text-
|
|
106
|
+
<span className="text-ods-text-secondary font-['DM_Sans'] text-[12px] leading-[16px] md:text-[14px] md:leading-[20px] font-medium 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 text-
|
|
151
|
+
<h3 className="text-ods-text-primary font-['DM_Sans'] text-[14px] leading-[20px] md:text-[18px] md:leading-[24px] font-medium">
|
|
152
152
|
{headline}
|
|
153
153
|
</h3>
|
|
154
154
|
{subheadline && (
|
|
155
|
-
<p className="text-ods-text-secondary text-
|
|
155
|
+
<p className="text-ods-text-secondary font-['DM_Sans'] text-[12px] leading-[16px] md:text-[14px] md:leading-[20px] font-medium 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: '#888888' }
|
|
43
43
|
},
|
|
44
44
|
[ShellTypeValues.BASH]: {
|
|
45
45
|
icon: BashIcon,
|
|
46
|
-
props: { size: 16, color: '
|
|
46
|
+
props: { size: 16, color: '#888888' }
|
|
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: '#888888' }
|
|
55
55
|
},
|
|
56
56
|
[ShellTypeValues.DENO]: {
|
|
57
57
|
icon: DenoIcon,
|
|
58
|
-
props: { size: 16, color: '
|
|
58
|
+
props: { size: 16, color: '#888888' }
|
|
59
59
|
},
|
|
60
60
|
[ShellTypeValues.SHELL]: {
|
|
61
61
|
icon: ShellIcon,
|
|
62
|
-
props: { size: 16, color: '
|
|
62
|
+
props: { size: 16, color: '#888888' }
|
|
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: '#888888' }
|
|
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-system-greys-soft-grey-action rounded text-ods-text-secondary font-['DM_Sans'] font-normal text-[16px] leading-[20px]">
|
|
42
42
|
{version}
|
|
43
43
|
</div>
|
|
44
44
|
)}
|
|
45
45
|
</div>
|
|
46
46
|
{vendor && (
|
|
47
|
-
<div className="text-
|
|
47
|
+
<div className="font-['DM_Sans'] font-normal text-[16px] leading-[16px] 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-[16px]',
|
|
27
27
|
priceTextColor: 'text-ods-text-primary',
|
|
28
|
-
secondaryTextSize: 'text-
|
|
28
|
+
secondaryTextSize: 'text-[16px]',
|
|
29
29
|
secondaryTextColor: 'text-ods-text-secondary',
|
|
30
30
|
showTildePrefix: false,
|
|
31
|
-
fontFamily:
|
|
31
|
+
fontFamily: "font-['DM_Sans']"
|
|
32
32
|
},
|
|
33
33
|
// Vendor dropdown compact style (Figma design)
|
|
34
34
|
compact: {
|
|
35
|
-
priceTextSize: 'text-
|
|
35
|
+
priceTextSize: 'text-[12px]',
|
|
36
36
|
priceTextColor: 'text-ods-text-secondary',
|
|
37
|
-
secondaryTextSize: 'text-
|
|
37
|
+
secondaryTextSize: 'text-[12px]',
|
|
38
38
|
secondaryTextColor: 'text-ods-text-secondary',
|
|
39
39
|
showTildePrefix: true,
|
|
40
|
-
fontFamily:
|
|
40
|
+
fontFamily: "font-['DM_Sans']"
|
|
41
41
|
},
|
|
42
42
|
// Card style for vendor cards
|
|
43
43
|
card: {
|
|
44
|
-
priceTextSize: 'text-
|
|
44
|
+
priceTextSize: 'text-[14px]',
|
|
45
45
|
priceTextColor: 'text-ods-text-primary',
|
|
46
|
-
secondaryTextSize: 'text-
|
|
46
|
+
secondaryTextSize: 'text-[14px]',
|
|
47
47
|
secondaryTextColor: 'text-ods-text-secondary',
|
|
48
48
|
showTildePrefix: true,
|
|
49
|
-
fontFamily:
|
|
49
|
+
fontFamily: "font-['DM_Sans']"
|
|
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-gray-200 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-gray-200 rounded animate-pulse" />
|
|
16
|
+
<div className="h-3 w-24 bg-gray-200 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-gray-200 rounded animate-pulse" />
|
|
23
|
+
<div className="h-4 w-3/4 bg-gray-200 rounded animate-pulse" />
|
|
24
|
+
<div className="h-4 w-1/2 bg-gray-200 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-2xl font-bold 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-2xl font-bold 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="text-
|
|
790
|
+
<h3 className="font-['Azeret_Mono'] text-[14px] font-semibold uppercase text-ods-text-secondary tracking-wider">
|
|
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-sm font-['DM_Sans']">
|
|
31
31
|
{totalResults > 0 && (
|
|
32
32
|
<>
|
|
33
33
|
Showing {startIndex}-{endIndex} of {totalResults} {displayType}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import * as SelectPrimitive from "@radix-ui/react-select"
|
|
5
|
+
import { Check, ChevronDown, ChevronUp } from "lucide-react"
|
|
6
|
+
|
|
7
|
+
import { cn } from "../utils/cn"
|
|
8
|
+
|
|
9
|
+
const Select = SelectPrimitive.Root
|
|
10
|
+
|
|
11
|
+
const SelectGroup = SelectPrimitive.Group
|
|
12
|
+
|
|
13
|
+
const SelectValue = SelectPrimitive.Value
|
|
14
|
+
|
|
15
|
+
const SelectTrigger = React.forwardRef<
|
|
16
|
+
React.ElementRef<typeof SelectPrimitive.Trigger>,
|
|
17
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>
|
|
18
|
+
>(({ className, children, ...props }, ref) => (
|
|
19
|
+
<SelectPrimitive.Trigger
|
|
20
|
+
ref={ref}
|
|
21
|
+
className={cn(
|
|
22
|
+
"flex h-10 w-full items-center justify-between rounded-md border border-ods-border bg-ods-card px-3 py-2 text-h4 placeholder:text-ods-text-secondary focus:outline-none focus:ring-2 focus:ring-ods-accent focus:ring-offset-2 disabled:cursor-not-allowed disabled:bg-ods-bg [&>span]:line-clamp-1",
|
|
23
|
+
className
|
|
24
|
+
)}
|
|
25
|
+
{...props}
|
|
26
|
+
>
|
|
27
|
+
{children}
|
|
28
|
+
<SelectPrimitive.Icon asChild>
|
|
29
|
+
<ChevronDown className="h-4 w-4 opacity-50" />
|
|
30
|
+
</SelectPrimitive.Icon>
|
|
31
|
+
</SelectPrimitive.Trigger>
|
|
32
|
+
))
|
|
33
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName
|
|
34
|
+
|
|
35
|
+
const SelectScrollUpButton = React.forwardRef<
|
|
36
|
+
React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,
|
|
37
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>
|
|
38
|
+
>(({ className, ...props }, ref) => (
|
|
39
|
+
<SelectPrimitive.ScrollUpButton
|
|
40
|
+
ref={ref}
|
|
41
|
+
className={cn(
|
|
42
|
+
"flex cursor-default items-center justify-center py-1",
|
|
43
|
+
className
|
|
44
|
+
)}
|
|
45
|
+
{...props}
|
|
46
|
+
>
|
|
47
|
+
<ChevronUp className="h-4 w-4" />
|
|
48
|
+
</SelectPrimitive.ScrollUpButton>
|
|
49
|
+
))
|
|
50
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName
|
|
51
|
+
|
|
52
|
+
const SelectScrollDownButton = React.forwardRef<
|
|
53
|
+
React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,
|
|
54
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>
|
|
55
|
+
>(({ className, ...props }, ref) => (
|
|
56
|
+
<SelectPrimitive.ScrollDownButton
|
|
57
|
+
ref={ref}
|
|
58
|
+
className={cn(
|
|
59
|
+
"flex cursor-default items-center justify-center py-1",
|
|
60
|
+
className
|
|
61
|
+
)}
|
|
62
|
+
{...props}
|
|
63
|
+
>
|
|
64
|
+
<ChevronDown className="h-4 w-4" />
|
|
65
|
+
</SelectPrimitive.ScrollDownButton>
|
|
66
|
+
))
|
|
67
|
+
SelectScrollDownButton.displayName =
|
|
68
|
+
SelectPrimitive.ScrollDownButton.displayName
|
|
69
|
+
|
|
70
|
+
const SelectContent = React.forwardRef<
|
|
71
|
+
React.ElementRef<typeof SelectPrimitive.Content>,
|
|
72
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>
|
|
73
|
+
>(({ className, children, position = "popper", ...props }, ref) => (
|
|
74
|
+
<SelectPrimitive.Portal>
|
|
75
|
+
<SelectPrimitive.Content
|
|
76
|
+
ref={ref}
|
|
77
|
+
className={cn(
|
|
78
|
+
"relative z-[1400] max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
79
|
+
position === "popper" &&
|
|
80
|
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
81
|
+
className
|
|
82
|
+
)}
|
|
83
|
+
position={position}
|
|
84
|
+
{...props}
|
|
85
|
+
>
|
|
86
|
+
<SelectScrollUpButton />
|
|
87
|
+
<SelectPrimitive.Viewport
|
|
88
|
+
className={cn(
|
|
89
|
+
"p-1",
|
|
90
|
+
position === "popper" &&
|
|
91
|
+
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
92
|
+
)}
|
|
93
|
+
>
|
|
94
|
+
{children}
|
|
95
|
+
</SelectPrimitive.Viewport>
|
|
96
|
+
<SelectScrollDownButton />
|
|
97
|
+
</SelectPrimitive.Content>
|
|
98
|
+
</SelectPrimitive.Portal>
|
|
99
|
+
))
|
|
100
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName
|
|
101
|
+
|
|
102
|
+
const SelectLabel = React.forwardRef<
|
|
103
|
+
React.ElementRef<typeof SelectPrimitive.Label>,
|
|
104
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>
|
|
105
|
+
>(({ className, ...props }, ref) => (
|
|
106
|
+
<SelectPrimitive.Label
|
|
107
|
+
ref={ref}
|
|
108
|
+
className={cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)}
|
|
109
|
+
{...props}
|
|
110
|
+
/>
|
|
111
|
+
))
|
|
112
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName
|
|
113
|
+
|
|
114
|
+
const SelectItem = React.forwardRef<
|
|
115
|
+
React.ElementRef<typeof SelectPrimitive.Item>,
|
|
116
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>
|
|
117
|
+
>(({ className, children, ...props }, ref) => (
|
|
118
|
+
<SelectPrimitive.Item
|
|
119
|
+
ref={ref}
|
|
120
|
+
className={cn(
|
|
121
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h4 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
122
|
+
className
|
|
123
|
+
)}
|
|
124
|
+
{...props}
|
|
125
|
+
>
|
|
126
|
+
<span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
127
|
+
<SelectPrimitive.ItemIndicator>
|
|
128
|
+
<Check className="h-4 w-4" />
|
|
129
|
+
</SelectPrimitive.ItemIndicator>
|
|
130
|
+
</span>
|
|
131
|
+
|
|
132
|
+
<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
|
|
133
|
+
</SelectPrimitive.Item>
|
|
134
|
+
))
|
|
135
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName
|
|
136
|
+
|
|
137
|
+
const SelectSeparator = React.forwardRef<
|
|
138
|
+
React.ElementRef<typeof SelectPrimitive.Separator>,
|
|
139
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>
|
|
140
|
+
>(({ className, ...props }, ref) => (
|
|
141
|
+
<SelectPrimitive.Separator
|
|
142
|
+
ref={ref}
|
|
143
|
+
className={cn("-mx-1 my-1 h-px bg-muted", className)}
|
|
144
|
+
{...props}
|
|
145
|
+
/>
|
|
146
|
+
))
|
|
147
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName
|
|
148
|
+
|
|
149
|
+
export {
|
|
150
|
+
Select,
|
|
151
|
+
SelectGroup,
|
|
152
|
+
SelectValue,
|
|
153
|
+
SelectTrigger,
|
|
154
|
+
SelectContent,
|
|
155
|
+
SelectLabel,
|
|
156
|
+
SelectItem,
|
|
157
|
+
SelectSeparator,
|
|
158
|
+
SelectScrollUpButton,
|
|
159
|
+
SelectScrollDownButton,
|
|
160
|
+
}
|
|
@@ -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-xs font-medium uppercase tracking-wider 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-
|
|
88
|
+
<p className="text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium">
|
|
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="text-
|
|
110
|
+
<p className="font-['DM_Sans'] font-medium text-[18px] leading-[28px] 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-sm font-medium leading-5 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-xs leading-4 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="text-
|
|
113
|
+
<p className="font-['DM_Sans'] text-sm 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-red-900/20 border border-red-700 rounded-lg p-6">
|
|
138
|
+
<p className="text-red-400 mb-2">{errorTitle}</p>
|
|
139
|
+
<p className="text-red-300 text-sm">{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-xl">{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="text-
|
|
72
|
+
<p className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate h-[20px]" title={step.description}>
|
|
73
73
|
{step.description}
|
|
74
74
|
</p>
|
|
75
75
|
</div>
|
|
@@ -13,7 +13,7 @@ export interface ProductReleaseCardSkeletonProps {
|
|
|
13
13
|
|
|
14
14
|
export function ProductReleaseCardSkeleton({ className, size = 'lg' }: ProductReleaseCardSkeletonProps) {
|
|
15
15
|
// ----- LG branch — must match ProductReleaseCard size='lg'.
|
|
16
|
-
// Same outer frame (`bg-ods-
|
|
16
|
+
// Same outer frame (`bg-ods-system-greys-black border border-ods-border …
|
|
17
17
|
// p-6 gap-4`). Inner: hero (16:9 cover + version pill + title + summary),
|
|
18
18
|
// changelog strip placeholder, metadata-grid footer (4 cells via grid).
|
|
19
19
|
// Heights chosen to match the loaded card's rendered metrics so the
|
|
@@ -25,14 +25,14 @@ export function ProductReleaseCardSkeleton({ className, size = 'lg' }: ProductRe
|
|
|
25
25
|
return (
|
|
26
26
|
<div
|
|
27
27
|
className={cn(
|
|
28
|
-
'bg-ods-
|
|
28
|
+
'bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden',
|
|
29
29
|
'flex flex-col p-6 gap-4',
|
|
30
30
|
'animate-pulse',
|
|
31
31
|
className,
|
|
32
32
|
)}
|
|
33
33
|
>
|
|
34
34
|
{/* HERO — placeholders use `bg-ods-border` (#3a3a3a) so they
|
|
35
|
-
contrast against the card's `bg-ods-
|
|
35
|
+
contrast against the card's `bg-ods-system-greys-black`
|
|
36
36
|
(#212121) container. The metadata grid cells below use
|
|
37
37
|
`bg-ods-card` containers so `bg-ods-bg` placeholders work
|
|
38
38
|
there, but in the hero the card IS `bg-ods-card`-equivalent —
|