@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
|
@@ -9,9 +9,6 @@ interface SquareAvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
9
9
|
src?: string;
|
|
10
10
|
alt?: string;
|
|
11
11
|
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
12
|
-
/** Exact pixel size (width & height). Overrides the `size` bucket dimensions —
|
|
13
|
-
* for callers with a numeric-px API (e.g. UserDisplay/MSPDisplay). */
|
|
14
|
-
sizePx?: number;
|
|
15
12
|
fallback?: string;
|
|
16
13
|
variant?: 'square' | 'round';
|
|
17
14
|
/** Override the initials-fallback styling (font size/color). Merged over the
|
|
@@ -21,7 +18,7 @@ interface SquareAvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
21
18
|
}
|
|
22
19
|
|
|
23
20
|
const SquareAvatar = React.memo(React.forwardRef<HTMLDivElement, SquareAvatarProps>(
|
|
24
|
-
({ className, src, alt, size = 'md',
|
|
21
|
+
({ className, src, alt, size = 'md', fallback, variant = 'square', initialsClassName, ...props }, ref) => {
|
|
25
22
|
const sizeClasses = {
|
|
26
23
|
sm: 'h-8 w-8',
|
|
27
24
|
md: 'h-10 w-10',
|
|
@@ -29,7 +26,7 @@ const SquareAvatar = React.memo(React.forwardRef<HTMLDivElement, SquareAvatarPro
|
|
|
29
26
|
xl: 'h-16 w-16'
|
|
30
27
|
};
|
|
31
28
|
|
|
32
|
-
const
|
|
29
|
+
const sizePx = {
|
|
33
30
|
sm: 32,
|
|
34
31
|
md: 40,
|
|
35
32
|
lg: 48,
|
|
@@ -45,11 +42,10 @@ const SquareAvatar = React.memo(React.forwardRef<HTMLDivElement, SquareAvatarPro
|
|
|
45
42
|
<div
|
|
46
43
|
className={cn(
|
|
47
44
|
"relative flex items-center justify-center shrink-0 overflow-hidden border border-ods-border bg-ods-bg",
|
|
48
|
-
|
|
45
|
+
sizeClasses[size],
|
|
49
46
|
variantClasses[variant],
|
|
50
47
|
className
|
|
51
48
|
)}
|
|
52
|
-
style={sizePx === undefined ? style : { width: sizePx, height: sizePx, ...style }}
|
|
53
49
|
ref={ref}
|
|
54
50
|
{...props}
|
|
55
51
|
>
|
|
@@ -75,8 +71,8 @@ const SquareAvatar = React.memo(React.forwardRef<HTMLDivElement, SquareAvatarPro
|
|
|
75
71
|
className="absolute -inset-px h-[calc(100%+2px)] w-[calc(100%+2px)] max-w-none object-cover"
|
|
76
72
|
src={src}
|
|
77
73
|
alt={alt || ''}
|
|
78
|
-
width={sizePx
|
|
79
|
-
height={sizePx
|
|
74
|
+
width={sizePx[size]}
|
|
75
|
+
height={sizePx[size]}
|
|
80
76
|
onError={(e) => {
|
|
81
77
|
e.currentTarget.style.display = 'none';
|
|
82
78
|
const el = e.currentTarget.previousElementSibling as HTMLElement;
|
|
@@ -5,26 +5,26 @@ import { cn } from '../../utils/cn';
|
|
|
5
5
|
import { cva, type VariantProps } from 'class-variance-authority';
|
|
6
6
|
|
|
7
7
|
const statusBadgeVariants = cva(
|
|
8
|
-
"inline-flex items-center justify-center rounded",
|
|
8
|
+
"inline-flex items-center justify-center rounded font-mono font-medium uppercase tracking-wide",
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
11
11
|
variant: {
|
|
12
|
-
card: "px-3 py-1.5 text-
|
|
13
|
-
button: "px-2 py-0.5 text-
|
|
12
|
+
card: "px-3 py-1.5 text-sm",
|
|
13
|
+
button: "px-2 py-0.5 text-[10px] leading-none",
|
|
14
14
|
},
|
|
15
15
|
colorScheme: {
|
|
16
16
|
cyan: "bg-[var(--ods-flamingo-cyan-base)] text-ods-text-on-accent",
|
|
17
17
|
pink: "bg-[var(--ods-flamingo-pink-base)] text-ods-text-on-accent",
|
|
18
|
-
yellow: "bg-ods-
|
|
19
|
-
green: "bg-ods-
|
|
20
|
-
purple: "bg-ods-flamingo-
|
|
21
|
-
success: "bg-ods-success-secondary text-ods-success",
|
|
22
|
-
error: "bg-ods-error-secondary text-ods-error",
|
|
23
|
-
warning: "bg-ods-warning-secondary text-ods-warning",
|
|
24
|
-
default: "bg-ods-bg-
|
|
18
|
+
yellow: "bg-[var(--ods-flamingo-yellow-base)] text-ods-text-on-accent border border-[var(--ods-system-greys-black)]",
|
|
19
|
+
green: "bg-[var(--ods-flamingo-green-base)] text-ods-text-on-accent",
|
|
20
|
+
purple: "bg-[var(--ods-flamingo-purple-base)] text-ods-text-on-accent",
|
|
21
|
+
success: "bg-[var(--ods-attention-green-success-secondary)] text-[var(--ods-attention-green-success)]",
|
|
22
|
+
error: "bg-[var(--ods-attention-red-error-secondary)] text-[var(--ods-attention-red-error)]",
|
|
23
|
+
warning: "bg-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)]",
|
|
24
|
+
default: "bg-ods-bg-secondary text-ods-text-primary",
|
|
25
25
|
// Border-only variants (no background) - for task type badges
|
|
26
26
|
accentBorder: "bg-transparent border-2 text-ods-accent border-ods-accent",
|
|
27
|
-
errorBorder: "bg-transparent border-2 text-ods-error border-ods-error",
|
|
27
|
+
errorBorder: "bg-transparent border-2 text-[var(--ods-attention-red-error)] border-[var(--ods-attention-red-error)]",
|
|
28
28
|
whiteBorder: "bg-transparent border-2 text-ods-text-primary border-ods-text-primary",
|
|
29
29
|
},
|
|
30
30
|
},
|
|
@@ -10,15 +10,15 @@ export function StatusIndicator({ status, label, href }: StatusIndicatorProps) {
|
|
|
10
10
|
const getStatusColor = (status: string) => {
|
|
11
11
|
switch (status) {
|
|
12
12
|
case 'success':
|
|
13
|
-
return 'bg-
|
|
13
|
+
return 'bg-green-400 text-green-400';
|
|
14
14
|
case 'pending':
|
|
15
|
-
return 'bg-
|
|
15
|
+
return 'bg-orange-400 text-orange-400';
|
|
16
16
|
case 'error':
|
|
17
|
-
return 'bg-
|
|
17
|
+
return 'bg-red-400 text-red-400';
|
|
18
18
|
case 'missing':
|
|
19
|
-
return 'bg-
|
|
19
|
+
return 'bg-orange-400 text-orange-400';
|
|
20
20
|
default:
|
|
21
|
-
return 'bg-
|
|
21
|
+
return 'bg-gray-400 text-gray-400';
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
|
|
@@ -28,7 +28,7 @@ export function StatusIndicator({ status, label, href }: StatusIndicatorProps) {
|
|
|
28
28
|
const content = (
|
|
29
29
|
<div className="flex items-center gap-1.5">
|
|
30
30
|
<div className={`h-3 w-3 rounded-full ${dotColor}`} />
|
|
31
|
-
<span className={`text-
|
|
31
|
+
<span className={`text-xs font-['DM_Sans'] font-medium ${textColor}`}>
|
|
32
32
|
{label}
|
|
33
33
|
</span>
|
|
34
34
|
</div>
|
|
@@ -31,7 +31,7 @@ export function TabContent({
|
|
|
31
31
|
) : (
|
|
32
32
|
<div className={cn(minHeight, "flex items-center justify-center")}>
|
|
33
33
|
<div className="text-center">
|
|
34
|
-
<h3 className="text-
|
|
34
|
+
<h3 className="text-lg font-semibold text-ods-text-primary mb-2">
|
|
35
35
|
{emptyStateTitle}
|
|
36
36
|
</h3>
|
|
37
37
|
<p className="text-ods-text-secondary">
|
|
@@ -247,7 +247,7 @@ export function TabNavigation({
|
|
|
247
247
|
"absolute right-0 top-[-3px] w-3 h-3 rounded-full border-2 border-ods-bg",
|
|
248
248
|
tab.indicator === 'error' && 'bg-ods-error',
|
|
249
249
|
tab.indicator === 'warning' && 'bg-ods-accent',
|
|
250
|
-
tab.indicator === 'success' && 'bg-
|
|
250
|
+
tab.indicator === 'success' && 'bg-green-500'
|
|
251
251
|
)} />
|
|
252
252
|
)}
|
|
253
253
|
</div>
|
|
@@ -258,7 +258,7 @@ export function TabNavigation({
|
|
|
258
258
|
"w-3 h-3 shrink-0 rounded-full border-2 border-ods-bg",
|
|
259
259
|
tab.indicator === 'error' && 'bg-ods-error',
|
|
260
260
|
tab.indicator === 'warning' && 'bg-ods-accent',
|
|
261
|
-
tab.indicator === 'success' && 'bg-
|
|
261
|
+
tab.indicator === 'success' && 'bg-green-500'
|
|
262
262
|
)} />
|
|
263
263
|
) : null}
|
|
264
264
|
|
|
@@ -42,7 +42,7 @@ export function TableColumnFilterDropdown({
|
|
|
42
42
|
className="flex items-center gap-1.5 rounded px-1 py-0.5 cursor-pointer hover:bg-ods-bg-active transition-all duration-200"
|
|
43
43
|
aria-label={`Filter by ${columnLabel}`}
|
|
44
44
|
>
|
|
45
|
-
<span className="text-
|
|
45
|
+
<span className="font-medium text-[12px] leading-[16px] uppercase text-ods-text-secondary select-none">
|
|
46
46
|
{columnLabel}
|
|
47
47
|
</span>
|
|
48
48
|
<Filter02Icon
|
|
@@ -33,7 +33,7 @@ export function TableDescriptionCell({
|
|
|
33
33
|
<div className="flex flex-col justify-center">
|
|
34
34
|
<span
|
|
35
35
|
className={cn(
|
|
36
|
-
"text-
|
|
36
|
+
"font-['DM_Sans'] font-medium text-[16px] leading-[20px] text-ods-text-secondary break-words",
|
|
37
37
|
maxLines === 1 && "truncate",
|
|
38
38
|
maxLines === 2 && "line-clamp-2",
|
|
39
39
|
maxLines === 3 && "line-clamp-3",
|
|
@@ -74,7 +74,7 @@ export function TableTimestampCell({
|
|
|
74
74
|
<span className="text-h4 text-ods-text-primary truncate">
|
|
75
75
|
{displayTimestamp}
|
|
76
76
|
</span>
|
|
77
|
-
<span className="text-
|
|
77
|
+
<span className="font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate">
|
|
78
78
|
{idLabel ? `${idLabel}: ${id}` : id}
|
|
79
79
|
</span>
|
|
80
80
|
</div>
|
|
@@ -203,7 +203,7 @@ export function Table<T = any>({
|
|
|
203
203
|
{/* Toolbar for bulk actions */}
|
|
204
204
|
{showToolbar && bulkActions && selectedRows.length > 0 && (
|
|
205
205
|
<div className="flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2">
|
|
206
|
-
<span className="text-ods-text-secondary text-
|
|
206
|
+
<span className="text-ods-text-secondary text-sm">
|
|
207
207
|
{selectedRows.length} item{selectedRows.length !== 1 ? 's' : ''} selected
|
|
208
208
|
</span>
|
|
209
209
|
<div className="flex gap-2">
|
|
@@ -213,7 +213,7 @@ export function Table<T = any>({
|
|
|
213
213
|
onClick={() => action.onClick(selectedRows)}
|
|
214
214
|
disabled={action.requiresSelection && selectedRows.length === 0}
|
|
215
215
|
className={cn(
|
|
216
|
-
"px-3 py-1.5 text-
|
|
216
|
+
"px-3 py-1.5 text-sm rounded border transition-colors",
|
|
217
217
|
"bg-ods-card border-ods-border hover:bg-ods-bg-active text-ods-text-primary",
|
|
218
218
|
action.className
|
|
219
219
|
)}
|
|
@@ -39,7 +39,7 @@ const TabsTrigger = React.forwardRef<
|
|
|
39
39
|
<TabsPrimitive.Trigger
|
|
40
40
|
ref={ref}
|
|
41
41
|
className={cn(
|
|
42
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-
|
|
42
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
43
43
|
className
|
|
44
44
|
)}
|
|
45
45
|
{...props}
|
|
@@ -177,7 +177,7 @@ export function TagSearchInput<T = string>({
|
|
|
177
177
|
className={cn(
|
|
178
178
|
"flex items-center h-8 px-2",
|
|
179
179
|
"bg-ods-card border border-ods-border rounded-[6px]",
|
|
180
|
-
"text-
|
|
180
|
+
"font-mono text-[14px] font-medium leading-5 text-ods-text-secondary uppercase tracking-[-0.28px]",
|
|
181
181
|
"hover:bg-ods-bg-hover transition-colors cursor-pointer",
|
|
182
182
|
)}
|
|
183
183
|
>
|
|
@@ -16,54 +16,54 @@ const tagVariants = cva(
|
|
|
16
16
|
// is the Figma "Feature Item" chip (48px, h3 bold body label) used by
|
|
17
17
|
// chip groups acting as tabs (OpenFrame categories).
|
|
18
18
|
size: {
|
|
19
|
-
default: "text-h5 h-8 gap-[var(--spacing-system-
|
|
19
|
+
default: "text-h5 h-8 gap-[var(--spacing-system-xxs)] p-[var(--spacing-system-xsf)]",
|
|
20
20
|
large: "text-h3 font-bold h-12 gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]",
|
|
21
21
|
},
|
|
22
22
|
variant: {
|
|
23
23
|
primary: [
|
|
24
|
-
"bg-ods-
|
|
25
|
-
"hover:bg-ods-
|
|
24
|
+
"bg-[var(--ods-open-yellow-base)] text-[var(--ods-system-greys-black)]",
|
|
25
|
+
"hover:bg-[var(--ods-open-yellow-hover)] active:bg-[var(--ods-open-yellow-action)]",
|
|
26
26
|
],
|
|
27
27
|
outline: [
|
|
28
|
-
"bg-ods-
|
|
29
|
-
"hover:bg-ods-
|
|
30
|
-
"active:bg-ods-
|
|
28
|
+
"bg-[var(--ods-system-greys-black)] text-[var(--ods-system-greys-white)] border border-[var(--ods-system-greys-soft-grey)]",
|
|
29
|
+
"hover:bg-[var(--ods-system-greys-black-hover)] hover:border-[var(--ods-system-greys-soft-grey-hover)]",
|
|
30
|
+
"active:bg-[var(--ods-system-greys-black-action)] active:border-[var(--ods-system-greys-soft-grey-action)]",
|
|
31
31
|
],
|
|
32
32
|
success: [
|
|
33
|
-
"bg-ods-success-secondary text-ods-success",
|
|
34
|
-
"hover:bg-
|
|
33
|
+
"bg-[var(--ods-attention-green-success-secondary)] text-[var(--ods-attention-green-success)]",
|
|
34
|
+
"hover:bg-[#385029] active:bg-[#425a33]",
|
|
35
35
|
],
|
|
36
36
|
warning: [
|
|
37
|
-
"bg-ods-warning-secondary text-ods-warning",
|
|
38
|
-
"hover:bg-
|
|
37
|
+
"bg-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)]",
|
|
38
|
+
"hover:bg-[#544729] active:bg-[#5e5133]",
|
|
39
39
|
],
|
|
40
40
|
error: [
|
|
41
|
-
"bg-ods-error-secondary text-ods-error",
|
|
42
|
-
"hover:bg-
|
|
41
|
+
"bg-[var(--ods-attention-red-error-secondary)] text-[var(--ods-attention-red-error)]",
|
|
42
|
+
"hover:bg-[#542b2b] active:bg-[#5e3535]",
|
|
43
43
|
],
|
|
44
44
|
critical: [
|
|
45
|
-
"bg-ods-error text-ods-error-secondary",
|
|
46
|
-
"hover:bg-ods-error-hover active:bg-ods-error-
|
|
45
|
+
"bg-[var(--ods-attention-red-error)] text-[var(--ods-attention-red-error-secondary)]",
|
|
46
|
+
"hover:bg-[var(--ods-attention-red-error-hover)] active:bg-[var(--ods-attention-red-error-action)]",
|
|
47
47
|
],
|
|
48
48
|
grey: [
|
|
49
|
-
"bg-ods-
|
|
50
|
-
"hover:bg-ods-
|
|
49
|
+
"bg-[var(--ods-system-greys-soft-grey)] text-[var(--ods-system-greys-grey)]",
|
|
50
|
+
"hover:bg-[var(--ods-system-greys-soft-grey-hover)] active:bg-[var(--ods-system-greys-soft-grey-action)]",
|
|
51
51
|
],
|
|
52
52
|
// Active/selected chip state (Figma "Feature Item" active): pink
|
|
53
53
|
// border + pink-secondary fill. A dedicated variant (not appended
|
|
54
54
|
// utilities) so its own hover rules win — the outline variant's
|
|
55
55
|
// hover:bg/hover:border would otherwise repaint an active chip grey.
|
|
56
56
|
selected: [
|
|
57
|
-
"bg-ods-flamingo-pink-secondary text-ods-
|
|
58
|
-
"hover:bg-ods-flamingo-pink-secondary-hover hover:border-ods-flamingo-pink",
|
|
59
|
-
"active:bg-ods-flamingo-pink-secondary-
|
|
57
|
+
"bg-[var(--ods-flamingo-pink-secondary)] text-[var(--ods-system-greys-white)] border border-[var(--ods-flamingo-pink-base)]",
|
|
58
|
+
"hover:bg-[var(--ods-flamingo-pink-secondary-hover)] hover:border-[var(--ods-flamingo-pink-base)]",
|
|
59
|
+
"active:bg-[var(--ods-flamingo-pink-secondary-action)]",
|
|
60
60
|
],
|
|
61
61
|
// Cyan twin of `selected` (Mingo's accent) — same active-chip skin in the
|
|
62
62
|
// cyan theme so agent chip groups can match their own accent.
|
|
63
63
|
selectedCyan: [
|
|
64
|
-
"bg-ods-flamingo-cyan-secondary text-ods-
|
|
65
|
-
"hover:bg-ods-flamingo-cyan-secondary-hover hover:border-ods-flamingo-cyan",
|
|
66
|
-
"active:bg-ods-flamingo-cyan-secondary-
|
|
64
|
+
"bg-[var(--ods-flamingo-cyan-secondary)] text-[var(--ods-system-greys-white)] border border-[var(--ods-flamingo-cyan-base)]",
|
|
65
|
+
"hover:bg-[var(--ods-flamingo-cyan-secondary-hover)] hover:border-[var(--ods-flamingo-cyan-base)]",
|
|
66
|
+
"active:bg-[var(--ods-flamingo-cyan-secondary-action)]",
|
|
67
67
|
],
|
|
68
68
|
// Matches the EntityTagBadges / StatusBadge tag skin (ods-card + ods-border,
|
|
69
69
|
// mono uppercase) so the tag-editor chips render identically to the public
|
|
@@ -82,7 +82,7 @@ const tagVariants = cva(
|
|
|
82
82
|
)
|
|
83
83
|
|
|
84
84
|
const disabledTagClasses = [
|
|
85
|
-
"bg-ods-
|
|
85
|
+
"bg-[var(--ods-system-greys-soft-grey)] text-[var(--ods-system-greys-grey)]",
|
|
86
86
|
"border-transparent",
|
|
87
87
|
"cursor-not-allowed",
|
|
88
88
|
"pointer-events-none",
|
|
@@ -66,7 +66,7 @@ export function TagsInput({
|
|
|
66
66
|
return (
|
|
67
67
|
<div className={cn("space-y-2", className)}>
|
|
68
68
|
{label && (
|
|
69
|
-
<label className="text-
|
|
69
|
+
<label className="font-['DM_Sans'] text-[16px] font-medium text-ods-text-primary">
|
|
70
70
|
{label}
|
|
71
71
|
</label>
|
|
72
72
|
)}
|
|
@@ -121,7 +121,7 @@ export function TagsInput({
|
|
|
121
121
|
)}
|
|
122
122
|
|
|
123
123
|
{maxTags && (
|
|
124
|
-
<p className="text-
|
|
124
|
+
<p className="text-xs text-ods-text-secondary">
|
|
125
125
|
{value.length}/{maxTags} tags
|
|
126
126
|
</p>
|
|
127
127
|
)}
|
|
@@ -42,7 +42,7 @@ const STATUS_CONFIG: Record<TicketStatus, TicketStatusConfig> = {
|
|
|
42
42
|
RESOLVED: {
|
|
43
43
|
label: 'Resolved',
|
|
44
44
|
variant: 'outline',
|
|
45
|
-
icon: <CheckCircleIcon size={16} color="var(--
|
|
45
|
+
icon: <CheckCircleIcon size={16} color="var(--ods-attention-green-success)" />,
|
|
46
46
|
},
|
|
47
47
|
ARCHIVED: {
|
|
48
48
|
label: 'Archived',
|
|
@@ -59,12 +59,12 @@ function ToastHeader({
|
|
|
59
59
|
<span className={cn('size-[9px] rounded-full', dotColorByVariant[variant])} />
|
|
60
60
|
</div>
|
|
61
61
|
|
|
62
|
-
<div className="flex min-w-0 flex-1 flex-col justify-center">
|
|
62
|
+
<div className="flex min-w-0 flex-1 flex-col justify-center font-['DM_Sans'] font-medium">
|
|
63
63
|
{title ? (
|
|
64
|
-
<p className="truncate pr-5 text-
|
|
64
|
+
<p className="truncate pr-5 text-[18px] leading-6 text-ods-text-primary" title={typeof title === 'string' ? title : undefined}>{title}</p>
|
|
65
65
|
) : null}
|
|
66
66
|
{description ? (
|
|
67
|
-
<p className="text-
|
|
67
|
+
<p className="text-[14px] leading-5 text-ods-text-secondary line-clamp-3" title={typeof description === 'string' ? description : undefined}>{description}</p>
|
|
68
68
|
) : null}
|
|
69
69
|
</div>
|
|
70
70
|
|
|
@@ -206,7 +206,7 @@ export function CommandApprovalToast({
|
|
|
206
206
|
>
|
|
207
207
|
<div className="overflow-hidden">
|
|
208
208
|
<div className="flex h-11 w-full items-center gap-2 border-b border-ods-border bg-ods-card px-3 py-2">
|
|
209
|
-
<p className="min-w-0 flex-1 truncate text-
|
|
209
|
+
<p className="min-w-0 flex-1 truncate font-['DM_Sans'] text-[14px] font-medium leading-5 text-ods-text-primary" title={command}>
|
|
210
210
|
{command}
|
|
211
211
|
</p>
|
|
212
212
|
{toolType ? <ToolIcon toolType={toolType} size={16} /> : null}
|
|
@@ -214,7 +214,7 @@ export function CommandApprovalToast({
|
|
|
214
214
|
|
|
215
215
|
<div className="flex flex-col gap-2 bg-ods-bg p-3">
|
|
216
216
|
{approvalDescription ? (
|
|
217
|
-
<p className="text-
|
|
217
|
+
<p className="font-['DM_Sans'] text-[14px] font-medium leading-5 text-ods-text-secondary">
|
|
218
218
|
{approvalDescription}
|
|
219
219
|
</p>
|
|
220
220
|
) : null}
|
|
@@ -223,7 +223,7 @@ export function CommandApprovalToast({
|
|
|
223
223
|
type="button"
|
|
224
224
|
onClick={handleApprove}
|
|
225
225
|
tabIndex={expanded ? 0 : -1}
|
|
226
|
-
className="flex flex-1 items-center justify-center rounded-md bg-ods-accent px-2 py-2 text-
|
|
226
|
+
className="flex flex-1 items-center justify-center rounded-md bg-ods-accent px-2 py-2 font-['Azeret_Mono'] text-[14px] font-medium uppercase tracking-[-0.28px] text-ods-text-on-accent transition-colors hover:bg-ods-accent-hover active:bg-ods-accent-active"
|
|
227
227
|
>
|
|
228
228
|
{approveLabel}
|
|
229
229
|
</button>
|
|
@@ -231,7 +231,7 @@ export function CommandApprovalToast({
|
|
|
231
231
|
type="button"
|
|
232
232
|
onClick={handleReject}
|
|
233
233
|
tabIndex={expanded ? 0 : -1}
|
|
234
|
-
className="flex flex-1 items-center justify-center rounded-md border border-ods-border bg-ods-card px-2 py-2 text-
|
|
234
|
+
className="flex flex-1 items-center justify-center rounded-md border border-ods-border bg-ods-card px-2 py-2 font-['Azeret_Mono'] text-[14px] font-medium uppercase tracking-[-0.28px] text-ods-text-primary transition-colors hover:bg-ods-bg-hover"
|
|
235
235
|
>
|
|
236
236
|
{rejectLabel}
|
|
237
237
|
</button>
|
|
@@ -244,7 +244,7 @@ export function CommandApprovalToast({
|
|
|
244
244
|
<button
|
|
245
245
|
type="button"
|
|
246
246
|
onClick={() => setExpanded(true)}
|
|
247
|
-
className="flex w-full items-center gap-2 bg-ods-card px-3 py-2 text-left text-
|
|
247
|
+
className="flex w-full items-center gap-2 bg-ods-card px-3 py-2 text-left font-['DM_Sans'] text-[14px] font-medium leading-5 text-ods-text-primary transition-colors hover:bg-ods-bg-hover"
|
|
248
248
|
aria-expanded={false}
|
|
249
249
|
>
|
|
250
250
|
<span className="flex-1">Show Command</span>
|
|
@@ -6,7 +6,7 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
6
6
|
import { cn } from "../../utils/cn"
|
|
7
7
|
|
|
8
8
|
const toggleVariants = cva(
|
|
9
|
-
"inline-flex items-center justify-center rounded-md text-
|
|
9
|
+
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors hover:bg-ods-bg-hover hover:text-ods-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-ods-accent data-[state=on]:text-ods-text-on-accent",
|
|
10
10
|
{
|
|
11
11
|
variants: {
|
|
12
12
|
variant: {
|
|
@@ -26,7 +26,7 @@ const TooltipContent = React.forwardRef<
|
|
|
26
26
|
className={cn(
|
|
27
27
|
// `max-h` uses Radix's available-height var so tall content scrolls inside
|
|
28
28
|
// the tooltip instead of overflowing off-screen (only engages on overflow).
|
|
29
|
-
"z-[1400] max-h-[var(--radix-popper-available-height)] overflow-y-auto rounded-md bg-ods-card border border-ods-border px-3 py-2 text-
|
|
29
|
+
"z-[1400] max-h-[var(--radix-popper-available-height)] overflow-y-auto rounded-md bg-ods-card border border-ods-border px-3 py-2 text-sm text-ods-text-primary shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",
|
|
30
30
|
className
|
|
31
31
|
)}
|
|
32
32
|
{...props}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { cn } from "../utils/cn";
|
|
5
|
-
import {
|
|
6
|
-
import { SquareAvatar } from './ui/square-avatar';
|
|
5
|
+
import { SquareAvatar } from './square-avatar';
|
|
7
6
|
|
|
8
7
|
interface UserDisplayProps {
|
|
9
8
|
name: string;
|
|
@@ -26,23 +25,18 @@ interface UserDisplayProps {
|
|
|
26
25
|
export function UserDisplay({ name, avatarUrl, subtitle, size = 32, shape = 'square', compact = false, className }: UserDisplayProps) {
|
|
27
26
|
return (
|
|
28
27
|
<div className={cn('flex items-center gap-2 min-w-0', className)}>
|
|
29
|
-
<SquareAvatar
|
|
30
|
-
src={avatarUrl ? getProxiedImageUrl(avatarUrl) || avatarUrl : undefined}
|
|
31
|
-
fallback={name}
|
|
32
|
-
alt={name}
|
|
33
|
-
sizePx={size}
|
|
34
|
-
variant={shape}
|
|
35
|
-
/>
|
|
28
|
+
<SquareAvatar src={avatarUrl ?? undefined} fallbackName={name} size={size} shape={shape} />
|
|
36
29
|
<div className="min-w-0 flex-1">
|
|
37
30
|
<p className={cn(
|
|
38
|
-
"text-ods-text-primary truncate",
|
|
39
|
-
compact ? 'text-
|
|
31
|
+
"font-['DM_Sans'] text-ods-text-primary truncate",
|
|
32
|
+
compact ? 'text-xs leading-4 font-medium' : 'text-lg leading-[22px]',
|
|
40
33
|
)}>
|
|
41
34
|
{name}
|
|
42
35
|
</p>
|
|
43
36
|
{subtitle && (
|
|
44
37
|
<span className={cn(
|
|
45
|
-
"
|
|
38
|
+
"font-['DM_Sans'] text-ods-text-secondary truncate block",
|
|
39
|
+
compact ? 'text-xs leading-4 font-medium' : 'text-md leading-[16px]',
|
|
46
40
|
)}>
|
|
47
41
|
{subtitle}
|
|
48
42
|
</span>
|
|
@@ -196,7 +196,7 @@ export function UserSummary({
|
|
|
196
196
|
{/* top part */}
|
|
197
197
|
{authProviders && authProviders.length > 0 && (
|
|
198
198
|
<div className="flex items-center gap-2">
|
|
199
|
-
<span className="text-
|
|
199
|
+
<span className="text-xs text-ods-text-secondary whitespace-nowrap select-none">
|
|
200
200
|
Authorized by
|
|
201
201
|
</span>
|
|
202
202
|
<div className="flex items-center gap-2">
|
|
@@ -211,7 +211,7 @@ export function UserSummary({
|
|
|
211
211
|
|
|
212
212
|
{/* bottom part - Edit button would go here */}
|
|
213
213
|
{showEditButton && (
|
|
214
|
-
<div className="text-
|
|
214
|
+
<div className="text-xs text-ods-text-secondary">Edit Profile</div>
|
|
215
215
|
)}
|
|
216
216
|
</div>
|
|
217
217
|
)}
|
|
@@ -223,7 +223,7 @@ export function UserSummary({
|
|
|
223
223
|
<div className="flex md:hidden items-center justify-between w-full gap-4">
|
|
224
224
|
{authProviders && authProviders.length > 0 && (
|
|
225
225
|
<div className="flex items-center gap-2">
|
|
226
|
-
<span className="text-
|
|
226
|
+
<span className="text-xs text-ods-text-secondary whitespace-nowrap select-none">Authorized by</span>
|
|
227
227
|
<div className="flex items-center gap-2">
|
|
228
228
|
{authProviders.map((p) => (
|
|
229
229
|
<div key={p} className="flex items-center justify-center w-4 h-4">
|
|
@@ -235,7 +235,7 @@ export function UserSummary({
|
|
|
235
235
|
)}
|
|
236
236
|
|
|
237
237
|
{showEditButton && (
|
|
238
|
-
<div className="text-
|
|
238
|
+
<div className="text-xs text-ods-text-secondary">Edit Profile</div>
|
|
239
239
|
)}
|
|
240
240
|
</div>
|
|
241
241
|
)}
|
|
@@ -50,7 +50,7 @@ export function VendorDisplayButton({ vendor, onClick, variant = 'default', exte
|
|
|
50
50
|
</span>
|
|
51
51
|
</div>
|
|
52
52
|
)}
|
|
53
|
-
<span className="text-
|
|
53
|
+
<span className="text-sm font-medium text-ods-text-primary">
|
|
54
54
|
{vendor.title}
|
|
55
55
|
</span>
|
|
56
56
|
</button>
|
|
@@ -75,7 +75,7 @@ export function VendorDisplayButton({ vendor, onClick, variant = 'default', exte
|
|
|
75
75
|
</div>
|
|
76
76
|
) : (
|
|
77
77
|
<div className="w-8 h-8 bg-ods-border border border-ods-border rounded-lg flex items-center justify-center flex-shrink-0">
|
|
78
|
-
<span className="text-ods-text-primary text-
|
|
78
|
+
<span className="text-ods-text-primary text-[12px] font-medium">
|
|
79
79
|
{vendor.title.charAt(0)}
|
|
80
80
|
</span>
|
|
81
81
|
</div>
|
|
@@ -80,7 +80,7 @@ export function VendorIcon({
|
|
|
80
80
|
/>
|
|
81
81
|
) : (
|
|
82
82
|
<div className={cn(
|
|
83
|
-
'flex items-center justify-center text-
|
|
83
|
+
'flex items-center justify-center text-xs font-medium uppercase',
|
|
84
84
|
backgroundStyle === 'white' ? 'text-[#333333]' : 'text-ods-text-secondary'
|
|
85
85
|
)}>
|
|
86
86
|
{vendor.title?.substring(0, 2) || '??'}
|
|
@@ -70,7 +70,7 @@ export function VendorTag({
|
|
|
70
70
|
className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0"
|
|
71
71
|
style={accentColor ? { backgroundColor: accentColor } : undefined}
|
|
72
72
|
>
|
|
73
|
-
<OpenSourceIcon width={10} height={10} className="text-
|
|
73
|
+
<OpenSourceIcon width={10} height={10} className="text-[#1A1A1A]" />
|
|
74
74
|
</div>
|
|
75
75
|
)
|
|
76
76
|
}
|
|
@@ -125,7 +125,7 @@ export function VendorTag({
|
|
|
125
125
|
text: text || "Free",
|
|
126
126
|
icon: (
|
|
127
127
|
<div className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0">
|
|
128
|
-
<span className="text-
|
|
128
|
+
<span className="text-[#1A1A1A] text-[8px] font-bold">$</span>
|
|
129
129
|
</div>
|
|
130
130
|
)
|
|
131
131
|
}
|
|
@@ -134,7 +134,7 @@ export function VendorTag({
|
|
|
134
134
|
text: text || "Freemium",
|
|
135
135
|
icon: (
|
|
136
136
|
<div className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0">
|
|
137
|
-
<span className="text-
|
|
137
|
+
<span className="text-[#1A1A1A] text-[8px] font-bold">$</span>
|
|
138
138
|
</div>
|
|
139
139
|
)
|
|
140
140
|
}
|
|
@@ -152,7 +152,7 @@ export function VendorTag({
|
|
|
152
152
|
text: text || "Enterprise",
|
|
153
153
|
icon: (
|
|
154
154
|
<div className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0">
|
|
155
|
-
<span className="text-
|
|
155
|
+
<span className="text-[#1A1A1A] text-[8px] font-bold">E</span>
|
|
156
156
|
</div>
|
|
157
157
|
)
|
|
158
158
|
}
|
|
@@ -161,7 +161,7 @@ export function VendorTag({
|
|
|
161
161
|
text: text || "Recommended",
|
|
162
162
|
icon: (
|
|
163
163
|
<div className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0">
|
|
164
|
-
<span className="text-
|
|
164
|
+
<span className="text-[#1A1A1A] text-[8px] font-bold">★</span>
|
|
165
165
|
</div>
|
|
166
166
|
)
|
|
167
167
|
}
|
|
@@ -174,7 +174,7 @@ export function VendorTag({
|
|
|
174
174
|
text: "Open Source",
|
|
175
175
|
icon: (
|
|
176
176
|
<div className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0">
|
|
177
|
-
<OpenSourceIcon width={10} height={10} className="text-
|
|
177
|
+
<OpenSourceIcon width={10} height={10} className="text-[#1A1A1A]" />
|
|
178
178
|
</div>
|
|
179
179
|
)
|
|
180
180
|
}
|
|
@@ -198,7 +198,7 @@ export function VendorTag({
|
|
|
198
198
|
text: text || "Classification",
|
|
199
199
|
icon: (
|
|
200
200
|
<div className="w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0">
|
|
201
|
-
<span className="text-
|
|
201
|
+
<span className="text-[#1A1A1A] text-[8px] font-bold">C</span>
|
|
202
202
|
</div>
|
|
203
203
|
)
|
|
204
204
|
}
|
|
@@ -222,8 +222,9 @@ export function VendorTag({
|
|
|
222
222
|
<div className={cn(baseClasses, className, hidden && "invisible")}>
|
|
223
223
|
{icon}
|
|
224
224
|
<span className={cn(
|
|
225
|
-
"
|
|
226
|
-
textColor ? textColor : "text-ods-text-primary"
|
|
225
|
+
"font-mono font-semibold uppercase",
|
|
226
|
+
textColor ? textColor : "text-ods-text-primary",
|
|
227
|
+
size === 'sm' ? "text-[10px]" : "text-xs"
|
|
227
228
|
)}>
|
|
228
229
|
{displayText}
|
|
229
230
|
</span>
|
|
@@ -22,7 +22,7 @@ export function YesNoDisplay({
|
|
|
22
22
|
return (
|
|
23
23
|
<div className={`flex items-center gap-2 ${className}`}>
|
|
24
24
|
<LucideCheckCircleIcon className="h-6 w-6" />
|
|
25
|
-
<span className="text-ods-text-primary text-
|
|
25
|
+
<span className="text-ods-text-primary text-[16px]">{customText}</span>
|
|
26
26
|
</div>
|
|
27
27
|
)
|
|
28
28
|
}
|
|
@@ -32,7 +32,7 @@ export function YesNoDisplay({
|
|
|
32
32
|
return (
|
|
33
33
|
<div className={`flex items-center gap-2 ${className}`}>
|
|
34
34
|
<LucideCheckCircleIcon className="h-6 w-6" />
|
|
35
|
-
<span className="text-ods-text-primary text-
|
|
35
|
+
<span className="text-ods-text-primary text-[16px]">{yesText}</span>
|
|
36
36
|
</div>
|
|
37
37
|
)
|
|
38
38
|
}
|
|
@@ -40,7 +40,7 @@ export function YesNoDisplay({
|
|
|
40
40
|
return (
|
|
41
41
|
<div className={`flex items-center gap-2 ${className}`}>
|
|
42
42
|
<XCircleIcon className="h-6 w-6" />
|
|
43
|
-
<span className="text-ods-text-secondary text-
|
|
43
|
+
<span className="text-ods-text-secondary text-[16px]">{noText}</span>
|
|
44
44
|
</div>
|
|
45
45
|
)
|
|
46
46
|
}
|