@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
|
@@ -222,7 +222,7 @@ export function WaitlistForm({
|
|
|
222
222
|
onKeyDown={handleKeyDown}
|
|
223
223
|
/>
|
|
224
224
|
{showPhoneWarning && (
|
|
225
|
-
<p className="text-h6 absolute bottom-0 left-0 translate-y-full text-ods-warning truncate" title={invalidPhoneHint}>
|
|
225
|
+
<p className="text-h6 absolute bottom-0 left-0 translate-y-full text-[var(--ods-attention-yellow-warning)] truncate" title={invalidPhoneHint}>
|
|
226
226
|
{invalidPhoneHint}
|
|
227
227
|
</p>
|
|
228
228
|
)}
|
|
@@ -245,7 +245,7 @@ export function WaitlistForm({
|
|
|
245
245
|
{consentText}{' View our '}
|
|
246
246
|
<a
|
|
247
247
|
href={termsOfServiceUrl || '#'}
|
|
248
|
-
className="text-
|
|
248
|
+
className="text-[var(--color-accent-primary)] underline"
|
|
249
249
|
target="_blank"
|
|
250
250
|
rel="noopener noreferrer"
|
|
251
251
|
onClick={(e) => e.stopPropagation()}
|
|
@@ -255,7 +255,7 @@ export function WaitlistForm({
|
|
|
255
255
|
{' and '}
|
|
256
256
|
<a
|
|
257
257
|
href={privacyPolicyUrl || '#'}
|
|
258
|
-
className="text-
|
|
258
|
+
className="text-[var(--color-accent-primary)] underline"
|
|
259
259
|
target="_blank"
|
|
260
260
|
rel="noopener noreferrer"
|
|
261
261
|
onClick={(e) => e.stopPropagation()}
|
|
@@ -30,7 +30,7 @@ export function FilterChip({
|
|
|
30
30
|
const baseClasses = cn(
|
|
31
31
|
"inline-flex items-center justify-center rounded-full font-medium transition-all duration-200 shrink-0 group cursor-pointer",
|
|
32
32
|
"hover:shadow-md hover:scale-105 focus:outline-none focus:ring-2 focus:ring-offset-2",
|
|
33
|
-
"font-
|
|
33
|
+
"font-['DM_Sans'] leading-none",
|
|
34
34
|
// Size variants - enhanced mobile sizing for better visibility and touch targets
|
|
35
35
|
size === 'sm'
|
|
36
36
|
? "text-sm pl-3 pr-3 py-1 md:text-sm md:pl-3 md:pr-3 md:py-1"
|
|
@@ -43,14 +43,14 @@ export function FilterChip({
|
|
|
43
43
|
|
|
44
44
|
const variantClasses = {
|
|
45
45
|
// Legacy variants (for backward compatibility)
|
|
46
|
-
selected: "bg-
|
|
47
|
-
unselected: "bg-
|
|
48
|
-
info: "bg-ods-border text-
|
|
49
|
-
|
|
46
|
+
selected: "bg-[#2A2A2A] text-[#E8E8E8] border border-[#FFC008] hover:bg-ods-border hover:border-[#FFD951] focus:ring-[#FFC008] focus:ring-offset-[#161616]",
|
|
47
|
+
unselected: "bg-[#2A2A2A] text-[#CCCCCC] border border-[#4A4A4A] hover:bg-ods-border hover:border-[#5A5A5A] hover:text-ods-text-primary focus:ring-[#4A4A4A] focus:ring-offset-[#161616]",
|
|
48
|
+
info: "bg-ods-border text-[#CCCCCC] border border-[#5A5A5A] cursor-default hover:scale-100 hover:shadow-none focus:ring-[#5A5A5A] focus:ring-offset-[#161616]",
|
|
49
|
+
|
|
50
50
|
// New subtle selected variants - same backgrounds/text, only border colors different
|
|
51
|
-
category: "bg-
|
|
52
|
-
subcategory: "bg-
|
|
53
|
-
tag: "bg-
|
|
51
|
+
category: "bg-[#2A2A2A] text-[#E8E8E8] border border-[#FFC008]/40 hover:bg-ods-border hover:border-[#FFC008]/60 hover:text-ods-text-primary focus:ring-[#FFC008]/40 focus:ring-offset-[#161616]",
|
|
52
|
+
subcategory: "bg-[#2A2A2A] text-[#E8E8E8] border border-[#FFC008]/60 hover:bg-ods-border hover:border-[#FFC008]/80 hover:text-ods-text-primary focus:ring-[#FFC008]/60 focus:ring-offset-[#161616]",
|
|
53
|
+
tag: "bg-[#2A2A2A] text-ods-text-primary border border-[#FFC008]/20 hover:bg-ods-border hover:border-[#FFC008]/30 hover:text-ods-text-primary focus:ring-[#FFC008]/20 focus:ring-offset-[#161616]",
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
return (
|
|
@@ -67,7 +67,7 @@ export function FilterChip({
|
|
|
67
67
|
aria-disabled={disabled}
|
|
68
68
|
>
|
|
69
69
|
<span className={cn(
|
|
70
|
-
"truncate font-
|
|
70
|
+
"truncate font-['DM_Sans'] font-medium leading-none text-center",
|
|
71
71
|
size === 'sm' ? "max-w-[100px] md:max-w-[120px]" : "max-w-[120px] md:max-w-[140px]"
|
|
72
72
|
)} title={label}>
|
|
73
73
|
{label}
|
|
@@ -86,12 +86,12 @@ export function FilterChip({
|
|
|
86
86
|
"transition-all duration-200 shrink-0",
|
|
87
87
|
"group-hover:scale-110 focus:outline-none focus:ring-2 focus:ring-offset-1",
|
|
88
88
|
variant === 'category'
|
|
89
|
-
? "hover:bg-
|
|
89
|
+
? "hover:bg-[#4A4A4A] text-[#E8E8E8] focus:ring-[#E8E8E8] focus:ring-offset-[#2A2A2A]"
|
|
90
90
|
: variant === 'subcategory'
|
|
91
|
-
? "hover:bg-
|
|
91
|
+
? "hover:bg-[#4A4A4A] text-[#E8E8E8] focus:ring-[#E8E8E8] focus:ring-offset-[#2A2A2A]"
|
|
92
92
|
: variant === 'tag'
|
|
93
|
-
? "hover:bg-
|
|
94
|
-
: "hover:bg-
|
|
93
|
+
? "hover:bg-[#4A4A4A] text-[#E8E8E8] focus:ring-[#E8E8E8] focus:ring-offset-[#2A2A2A]"
|
|
94
|
+
: "hover:bg-[#4A4A4A] text-[#E8E8E8] focus:ring-[#E8E8E8] focus:ring-offset-[#2A2A2A]",
|
|
95
95
|
disabled && "opacity-50 cursor-not-allowed hover:scale-100"
|
|
96
96
|
)}
|
|
97
97
|
aria-label={`Remove ${label} filter`}
|
|
@@ -27,7 +27,7 @@ interface FooterConfig {
|
|
|
27
27
|
belowDescriptionContent?: React.ReactNode // Custom content below description
|
|
28
28
|
moveDescriptionToRight?: boolean // Move description and belowDescriptionContent to right column
|
|
29
29
|
keepBelowDescriptionLeft?: boolean // Keep belowDescriptionContent on left even when moveDescriptionToRight is true
|
|
30
|
-
backgroundColor?: string // ODS background color (e.g., 'bg-ods-card', 'bg-ods-
|
|
30
|
+
backgroundColor?: string // ODS background color (e.g., 'bg-ods-bg-card', 'bg-ods-system-greys-black')
|
|
31
31
|
social?: {
|
|
32
32
|
github?: string
|
|
33
33
|
twitter?: string
|
|
@@ -71,7 +71,7 @@ export function Footer({ config, renderLink }: FooterProps) {
|
|
|
71
71
|
*/
|
|
72
72
|
function UniversalFooter({ config, renderLink }: { config: FooterConfig; renderLink?: (link: FooterLink) => React.ReactNode }) {
|
|
73
73
|
const defaultRenderLink = (link: FooterLink) => (
|
|
74
|
-
<a href={link.href} className="font-body font-medium text-md md:text-md leading-[1.33] text-ods-text-primary hover:text-ods-accent transition-colors">
|
|
74
|
+
<a href={link.href} className="font-body font-medium text-md md:text-md leading-[1.33] text-ods-text-primary hover:text-ods-accent-primary transition-colors">
|
|
75
75
|
{link.label}
|
|
76
76
|
</a>
|
|
77
77
|
)
|
|
@@ -79,7 +79,7 @@ function UniversalFooter({ config, renderLink }: { config: FooterConfig; renderL
|
|
|
79
79
|
const linkRenderer = renderLink || defaultRenderLink
|
|
80
80
|
|
|
81
81
|
return (
|
|
82
|
-
<footer className={`w-full flex flex-col justify-center items-center ${config.backgroundColor || 'bg-ods-card'} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-[44] border-t border-ods-border`}>
|
|
82
|
+
<footer className={`w-full flex flex-col justify-center items-center ${config.backgroundColor || 'bg-ods-bg-card'} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-[44] border-t border-ods-border`}>
|
|
83
83
|
<div className="w-full grid grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8 items-start">
|
|
84
84
|
|
|
85
85
|
{/* Column 1: Logo and optionally description */}
|
package/src/components/form.tsx
CHANGED
|
@@ -112,7 +112,7 @@ const FormDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttribu
|
|
|
112
112
|
({ className, ...props }, ref) => {
|
|
113
113
|
const { formDescriptionId } = useFormField()
|
|
114
114
|
|
|
115
|
-
return <p ref={ref} id={formDescriptionId} className={cn("text-
|
|
115
|
+
return <p ref={ref} id={formDescriptionId} className={cn("text-sm text-muted-foreground", className)} {...props} />
|
|
116
116
|
},
|
|
117
117
|
)
|
|
118
118
|
FormDescription.displayName = "FormDescription"
|
|
@@ -127,7 +127,7 @@ const FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
return (
|
|
130
|
-
<p ref={ref} id={formMessageId} className={cn("text-
|
|
130
|
+
<p ref={ref} id={formMessageId} className={cn("text-sm font-medium text-destructive", className)} {...props}>
|
|
131
131
|
{body}
|
|
132
132
|
</p>
|
|
133
133
|
)
|
|
@@ -158,9 +158,9 @@ export function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height =
|
|
|
158
158
|
) : (
|
|
159
159
|
<>
|
|
160
160
|
<ImageIcon className="h-12 w-12 text-ods-text-secondary" />
|
|
161
|
-
<span className="text-ods-text-primary text-
|
|
162
|
-
<span className="text-ods-text-secondary text-
|
|
163
|
-
<span className="text-ods-text-secondary text-
|
|
161
|
+
<span className="text-ods-text-primary font-['DM_Sans'] text-[16px] font-medium mt-2">Upload cover image</span>
|
|
162
|
+
<span className="text-ods-text-secondary font-['DM_Sans'] text-[14px] mt-1">Click to upload or drag and drop</span>
|
|
163
|
+
<span className="text-ods-text-secondary font-['DM_Sans'] text-[12px]">PNG, JPEG, WebP, GIF up to 5MB</span>
|
|
164
164
|
</>
|
|
165
165
|
)}
|
|
166
166
|
</div>
|
|
@@ -213,7 +213,7 @@ export const ImageCropper: React.FC<ImageCropperProps> = ({
|
|
|
213
213
|
<div className="flex flex-col gap-4">
|
|
214
214
|
{/* Zoom */}
|
|
215
215
|
<div className="flex items-center gap-3">
|
|
216
|
-
<span className="min-w-[60px] text-
|
|
216
|
+
<span className="min-w-[60px] text-sm">Zoom</span>
|
|
217
217
|
<Slider
|
|
218
218
|
min={1}
|
|
219
219
|
max={3}
|
|
@@ -226,7 +226,7 @@ export const ImageCropper: React.FC<ImageCropperProps> = ({
|
|
|
226
226
|
</div>
|
|
227
227
|
{/* Rotate */}
|
|
228
228
|
<div className="flex items-center gap-3">
|
|
229
|
-
<span className="min-w-[60px] text-
|
|
229
|
+
<span className="min-w-[60px] text-sm">Rotate</span>
|
|
230
230
|
<Slider
|
|
231
231
|
min={0}
|
|
232
232
|
max={360}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as React from "react"
|
|
2
|
+
|
|
3
|
+
import { cn } from "../utils/cn"
|
|
4
|
+
|
|
5
|
+
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
6
|
+
/** When true, renders red error border & ring */
|
|
7
|
+
invalid?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Input = React.forwardRef<HTMLInputElement, InputProps>(({ className, type, invalid = false, ...props }, ref) => {
|
|
11
|
+
return (
|
|
12
|
+
<input
|
|
13
|
+
type={type}
|
|
14
|
+
className={cn(
|
|
15
|
+
// Layout & spacing identical to VendorSelector
|
|
16
|
+
"flex w-full min-h-[60px] rounded-lg border p-2",
|
|
17
|
+
// Typography
|
|
18
|
+
"text-h4",
|
|
19
|
+
// File input adjustments
|
|
20
|
+
"ring-offset-background file:border-0 file:bg-transparent file:text-h4",
|
|
21
|
+
// Focus & disabled states
|
|
22
|
+
"placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ods-accent/20 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:bg-ods-bg",
|
|
23
|
+
// Animations & touch UX
|
|
24
|
+
"transition-colors duration-200 touch-manipulation",
|
|
25
|
+
// Theme palette
|
|
26
|
+
"bg-ods-card border-ods-border text-ods-text-primary placeholder:text-ods-text-secondary hover:border-ods-accent/30 focus:border-ods-accent",
|
|
27
|
+
// Ensure proper cursor/stacking
|
|
28
|
+
"cursor-text relative z-10",
|
|
29
|
+
invalid && "border-red-500 focus-visible:ring-red-500",
|
|
30
|
+
className
|
|
31
|
+
)}
|
|
32
|
+
ref={ref}
|
|
33
|
+
{...props}
|
|
34
|
+
/>
|
|
35
|
+
)
|
|
36
|
+
})
|
|
37
|
+
Input.displayName = "Input"
|
|
38
|
+
|
|
39
|
+
export { Input }
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import * as LabelPrimitive from "@radix-ui/react-label"
|
|
5
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
|
+
|
|
7
|
+
import { cn } from "../utils/cn"
|
|
8
|
+
|
|
9
|
+
const labelVariants = cva("h4 text-ods-text-primary font-['DM_Sans'] text-[14px] mb-2 font-semibold uppercase tracking-[-0.02em] leading-[1.3] line-clamp-2 text-sm md:text")
|
|
10
|
+
|
|
11
|
+
const Label = React.forwardRef<
|
|
12
|
+
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
13
|
+
React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>
|
|
14
|
+
>(({ className, ...props }, ref) => (
|
|
15
|
+
<LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />
|
|
16
|
+
))
|
|
17
|
+
Label.displayName = LabelPrimitive.Root.displayName
|
|
18
|
+
|
|
19
|
+
export { Label }
|
|
@@ -248,14 +248,14 @@ function renderAdvancedPageContainer({
|
|
|
248
248
|
|
|
249
249
|
{/* Title */}
|
|
250
250
|
{title && (
|
|
251
|
-
<h1 className="text-h2 text-ods-text-primary">
|
|
251
|
+
<h1 className="text-h2 tracking-[-0.64px] text-ods-text-primary">
|
|
252
252
|
{title}
|
|
253
253
|
</h1>
|
|
254
254
|
)}
|
|
255
255
|
|
|
256
256
|
{/* Subtitle */}
|
|
257
257
|
{subtitle && (
|
|
258
|
-
<div className="text-
|
|
258
|
+
<div className="text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]">
|
|
259
259
|
{subtitle}
|
|
260
260
|
</div>
|
|
261
261
|
)}
|
|
@@ -286,12 +286,12 @@ function renderAdvancedPageContainer({
|
|
|
286
286
|
)}
|
|
287
287
|
|
|
288
288
|
{title && (
|
|
289
|
-
<h1 className="text-h2 text-ods-text-primary">
|
|
289
|
+
<h1 className="text-h2 tracking-[-0.48px] text-ods-text-primary">
|
|
290
290
|
{title}
|
|
291
291
|
</h1>
|
|
292
292
|
)}
|
|
293
293
|
{subtitle && (
|
|
294
|
-
<div className="text-
|
|
294
|
+
<div className="text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]">
|
|
295
295
|
{subtitle}
|
|
296
296
|
</div>
|
|
297
297
|
)}
|
|
@@ -322,7 +322,7 @@ function renderAdvancedPageContainer({
|
|
|
322
322
|
)}
|
|
323
323
|
|
|
324
324
|
{title && (
|
|
325
|
-
<h1 className="text-
|
|
325
|
+
<h1 className="text-[32px] font-['Azeret_Mono:SemiBold',_sans-serif] font-semibold text-ods-text-primary tracking-[-0.64px]">
|
|
326
326
|
{title}
|
|
327
327
|
</h1>
|
|
328
328
|
)}
|
|
@@ -350,7 +350,7 @@ function renderAdvancedPageContainer({
|
|
|
350
350
|
</h1>
|
|
351
351
|
)}
|
|
352
352
|
{subtitle && (
|
|
353
|
-
<div className="text-
|
|
353
|
+
<div className="text-ods-text-secondary font-['DM_Sans'] font-medium text-[16px]">
|
|
354
354
|
{subtitle}
|
|
355
355
|
</div>
|
|
356
356
|
)}
|
|
@@ -22,7 +22,7 @@ export const PAGE_HEADING_CLASS = 'text-h1 text-ods-text-primary'
|
|
|
22
22
|
export const SECTION_HEADING_CLASS = 'text-h2 text-ods-text-primary'
|
|
23
23
|
|
|
24
24
|
const DESCRIPTION_CLASS =
|
|
25
|
-
"mt-6 max-w-[640px] font-
|
|
25
|
+
"mt-6 max-w-[640px] font-['DM_Sans'] text-[16px] md:text-[18px] leading-[24px] md:leading-[28px] text-ods-text-secondary"
|
|
26
26
|
|
|
27
27
|
export interface PageHeadingProps {
|
|
28
28
|
/** Heading content — plain text or nodes (e.g. an accent <span>). */
|
|
@@ -177,10 +177,10 @@ function BlogCardContent({ showActions, showMetadata }: { showActions: boolean;
|
|
|
177
177
|
</div>
|
|
178
178
|
|
|
179
179
|
{/* Date and reading time section - matches BlogMeta right side */}
|
|
180
|
-
<div className="flex items-center gap-3 text-
|
|
180
|
+
<div className="flex items-center gap-3 text-[#767676] shrink-0">
|
|
181
181
|
<TextSkeleton.Caption className="w-12" />
|
|
182
182
|
{/* Separator dot */}
|
|
183
|
-
<div className="w-1 h-1 bg-
|
|
183
|
+
<div className="w-1 h-1 bg-[#767676] rounded-full"></div>
|
|
184
184
|
<TextSkeleton.Caption className="w-16" />
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
@@ -10,7 +10,7 @@ export function CategoryCardSkeleton({ className }: CategoryCardSkeletonProps) {
|
|
|
10
10
|
return (
|
|
11
11
|
<article
|
|
12
12
|
className={cn(
|
|
13
|
-
'bg-
|
|
13
|
+
'bg-[#1A1A1A] border border-[#424242] rounded-[12px] p-8 flex flex-col min-w-0 box-border',
|
|
14
14
|
className,
|
|
15
15
|
)}
|
|
16
16
|
role="status"
|
|
@@ -15,8 +15,8 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
15
15
|
<div className="max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10">
|
|
16
16
|
{/* Header */}
|
|
17
17
|
<div className="space-y-3">
|
|
18
|
-
<div className="h-10 w-72 bg-
|
|
19
|
-
<div className="h-4 w-80 bg-
|
|
18
|
+
<div className="h-10 w-72 bg-[#2A2A2A] rounded" />
|
|
19
|
+
<div className="h-4 w-80 bg-[#2A2A2A] rounded" />
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
{/* Summary cards */}
|
|
@@ -30,10 +30,10 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
30
30
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
31
31
|
{/* MSP profile skeleton */}
|
|
32
32
|
<div className="bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse">
|
|
33
|
-
<div className="w-14 h-14 rounded-lg bg-
|
|
33
|
+
<div className="w-14 h-14 rounded-lg bg-[#2A2A2A]" />
|
|
34
34
|
<div className="flex-1 space-y-2">
|
|
35
|
-
<div className="h-4 bg-
|
|
36
|
-
<div className="h-3 bg-
|
|
35
|
+
<div className="h-4 bg-[#2A2A2A] rounded w-3/4" />
|
|
36
|
+
<div className="h-3 bg-[#2A2A2A] rounded w-1/2" />
|
|
37
37
|
</div>
|
|
38
38
|
</div>
|
|
39
39
|
|
|
@@ -41,15 +41,15 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
41
41
|
<div className="bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse">
|
|
42
42
|
<div className="flex items-center justify-between gap-4">
|
|
43
43
|
<div className="flex items-center gap-2">
|
|
44
|
-
<div className="w-10 h-10 rounded-lg bg-
|
|
44
|
+
<div className="w-10 h-10 rounded-lg bg-[#2A2A2A]" />
|
|
45
45
|
<div className="space-y-1">
|
|
46
|
-
<div className="h-4 w-32 bg-
|
|
47
|
-
<div className="h-3 w-20 bg-
|
|
46
|
+
<div className="h-4 w-32 bg-[#2A2A2A] rounded" />
|
|
47
|
+
<div className="h-3 w-20 bg-[#2A2A2A] rounded" />
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
50
|
-
<div className="h-6 w-36 bg-
|
|
50
|
+
<div className="h-6 w-36 bg-[#2A2A2A] rounded" />
|
|
51
51
|
</div>
|
|
52
|
-
<div className="h-4 w-40 bg-
|
|
52
|
+
<div className="h-4 w-40 bg-[#2A2A2A] rounded mt-4" />
|
|
53
53
|
</div>
|
|
54
54
|
</div>
|
|
55
55
|
|
|
@@ -59,10 +59,10 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
59
59
|
<div key={idx} className="bg-ods-card border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse">
|
|
60
60
|
{/* list header */}
|
|
61
61
|
<div className="flex items-center justify-between px-6 py-4">
|
|
62
|
-
<div className="h-6 w-40 bg-
|
|
62
|
+
<div className="h-6 w-40 bg-[#2A2A2A] rounded" />
|
|
63
63
|
<div className="flex items-center gap-2">
|
|
64
|
-
<div className="h-5 w-20 bg-
|
|
65
|
-
<div className="h-4 w-10 bg-
|
|
64
|
+
<div className="h-5 w-20 bg-[#2A2A2A] rounded" />
|
|
65
|
+
<div className="h-4 w-10 bg-[#2A2A2A] rounded" />
|
|
66
66
|
</div>
|
|
67
67
|
</div>
|
|
68
68
|
|
|
@@ -72,16 +72,16 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
72
72
|
<div key={j} className="bg-ods-bg border border-ods-border rounded-lg px-4 py-3 flex items-center justify-between">
|
|
73
73
|
{/* left section: icon + text */}
|
|
74
74
|
<div className="flex items-center gap-3 min-w-0">
|
|
75
|
-
<div className="w-12 h-12 bg-
|
|
75
|
+
<div className="w-12 h-12 bg-[#2A2A2A] rounded-lg flex-shrink-0" />
|
|
76
76
|
<div className="flex flex-col min-w-0">
|
|
77
|
-
<div className="h-4 w-32 bg-
|
|
78
|
-
<div className="hidden md:block h-3 w-24 bg-
|
|
77
|
+
<div className="h-4 w-32 bg-[#2A2A2A] rounded" />
|
|
78
|
+
<div className="hidden md:block h-3 w-24 bg-[#2A2A2A] rounded mt-1" />
|
|
79
79
|
</div>
|
|
80
80
|
</div>
|
|
81
81
|
{/* right addon: cost text */}
|
|
82
82
|
<div className="flex items-center gap-1 flex-shrink-0">
|
|
83
|
-
<div className="h-4 w-16 bg-
|
|
84
|
-
<div className="h-3 w-8 bg-
|
|
83
|
+
<div className="h-4 w-16 bg-[#2A2A2A] rounded" />
|
|
84
|
+
<div className="h-3 w-8 bg-[#2A2A2A] rounded" />
|
|
85
85
|
</div>
|
|
86
86
|
</div>
|
|
87
87
|
))}
|
|
@@ -91,7 +91,7 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
91
91
|
</div>
|
|
92
92
|
|
|
93
93
|
{/* Strategic Recommendations header placeholder */}
|
|
94
|
-
<div className="h-6 w-60 bg-
|
|
94
|
+
<div className="h-6 w-60 bg-[#2A2A2A] rounded" />
|
|
95
95
|
|
|
96
96
|
{/* Recommendations grid */}
|
|
97
97
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
@@ -105,11 +105,11 @@ export function MarginReportSkeleton({ animate = true, description, overlayConte
|
|
|
105
105
|
{/* Section header */}
|
|
106
106
|
<div className="flex items-start gap-6">
|
|
107
107
|
<div className="flex-1 space-y-2 min-w-0">
|
|
108
|
-
<div className="h-8 w-72 bg-
|
|
109
|
-
<div className="h-4 w-3/4 bg-
|
|
108
|
+
<div className="h-8 w-72 bg-[#2A2A2A] rounded" />
|
|
109
|
+
<div className="h-4 w-3/4 bg-[#2A2A2A] rounded" />
|
|
110
110
|
</div>
|
|
111
111
|
{/* Logo placeholder */}
|
|
112
|
-
<div className="w-12 h-12 bg-
|
|
112
|
+
<div className="w-12 h-12 bg-[#2A2A2A] rounded-md shrink-0" />
|
|
113
113
|
</div>
|
|
114
114
|
|
|
115
115
|
{/* Value cards grid */}
|
|
@@ -35,7 +35,7 @@ export function OpenmspHeartbeatLoader({ className = '', progress = 0, label, ba
|
|
|
35
35
|
<div className="flex flex-col items-center justify-center w-128">
|
|
36
36
|
{/* Progress text */}
|
|
37
37
|
<h2 className="mt-2 text-ods-accent text-center font-bold">
|
|
38
|
-
{progress != undefined && progress > 0 ? Math.floor(progress) : 0}% <span className="text-
|
|
38
|
+
{progress != undefined && progress > 0 ? Math.floor(progress) : 0}% <span className="text-sm text-ods-text-secondary">/100%</span>
|
|
39
39
|
</h2>
|
|
40
40
|
|
|
41
41
|
{/* Progress text */}
|