@flamingo-stack/openframe-frontend-core 0.0.439 → 0.0.440
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-RVWC4P3H.js → chunk-2BTDPDME.js} +9 -9
- package/dist/chunk-2BTDPDME.js.map +1 -0
- package/dist/{chunk-G5FALXNO.js → chunk-63TSTDME.js} +21 -21
- package/dist/chunk-63TSTDME.js.map +1 -0
- package/dist/{chunk-4ACSUJ7Q.js → chunk-6CITW5BD.js} +10 -10
- package/dist/chunk-6CITW5BD.js.map +1 -0
- package/dist/{chunk-QXYOGJQJ.js → chunk-7KDR5P23.js} +2 -2
- package/dist/{chunk-PEIR7D25.js → chunk-7KNOHGMI.js} +2 -2
- package/dist/{chunk-ZMUFTGL7.cjs → chunk-7QP65IE4.cjs} +5 -5
- package/dist/{chunk-ZMUFTGL7.cjs.map → chunk-7QP65IE4.cjs.map} +1 -1
- package/dist/{chunk-WPVBTVI3.js → chunk-AGV26PUR.js} +6 -6
- package/dist/{chunk-WPVBTVI3.js.map → chunk-AGV26PUR.js.map} +1 -1
- package/dist/{chunk-HTVVXVJL.cjs → chunk-DUQQEQ7G.cjs} +1431 -1594
- package/dist/chunk-DUQQEQ7G.cjs.map +1 -0
- package/dist/{chunk-COMBYYQY.js → chunk-FPE3SQ5D.js} +13 -13
- package/dist/chunk-FPE3SQ5D.js.map +1 -0
- package/dist/{chunk-WAGTZVQN.js → chunk-IAZ5AN2E.js} +30 -30
- package/dist/chunk-IAZ5AN2E.js.map +1 -0
- package/dist/{chunk-RQQZF6G6.cjs → chunk-IPEIOR77.cjs} +130 -130
- package/dist/chunk-IPEIOR77.cjs.map +1 -0
- package/dist/{chunk-3WJQL4DN.cjs → chunk-IZ6A6K6N.cjs} +25 -25
- package/dist/chunk-IZ6A6K6N.cjs.map +1 -0
- package/dist/{chunk-EE5NH5SH.cjs → chunk-J5NO7PAG.cjs} +3 -3
- package/dist/{chunk-EE5NH5SH.cjs.map → chunk-J5NO7PAG.cjs.map} +1 -1
- package/dist/{chunk-IAN7GUIV.cjs → chunk-JNC4LVD6.cjs} +42 -42
- package/dist/chunk-JNC4LVD6.cjs.map +1 -0
- package/dist/{chunk-VWGF6IFR.cjs → chunk-JOH5D76X.cjs} +108 -108
- package/dist/chunk-JOH5D76X.cjs.map +1 -0
- package/dist/{chunk-7WM77CSW.js → chunk-JYI4R25Q.js} +5 -5
- package/dist/chunk-JYI4R25Q.js.map +1 -0
- package/dist/{chunk-M6QGB6DC.cjs → chunk-KUXGQ2FQ.cjs} +36 -36
- package/dist/chunk-KUXGQ2FQ.cjs.map +1 -0
- package/dist/{chunk-M3LD6DNE.cjs → chunk-LFWPWIAC.cjs} +16 -16
- package/dist/{chunk-M3LD6DNE.cjs.map → chunk-LFWPWIAC.cjs.map} +1 -1
- package/dist/{chunk-R46QEE3R.cjs → chunk-LUKRPHEW.cjs} +96 -96
- package/dist/chunk-LUKRPHEW.cjs.map +1 -0
- package/dist/{chunk-IMK6RUEC.cjs → chunk-PYR4LVAF.cjs} +10 -10
- package/dist/chunk-PYR4LVAF.cjs.map +1 -0
- package/dist/{chunk-2ELBNZJ3.js → chunk-QAG357PE.js} +7 -7
- package/dist/chunk-QAG357PE.js.map +1 -0
- package/dist/{chunk-N2TJ3HAM.cjs → chunk-QO6MCQYE.cjs} +9 -9
- package/dist/chunk-QO6MCQYE.cjs.map +1 -0
- package/dist/{chunk-EGRZHR7J.js → chunk-SM26C2L7.js} +9 -9
- package/dist/chunk-SM26C2L7.js.map +1 -0
- package/dist/{chunk-AUJXLVXA.cjs → chunk-TAQMYVO6.cjs} +42 -42
- package/dist/{chunk-AUJXLVXA.cjs.map → chunk-TAQMYVO6.cjs.map} +1 -1
- package/dist/{chunk-C3FH53AP.cjs → chunk-UFBUQO7Z.cjs} +19 -19
- package/dist/{chunk-C3FH53AP.cjs.map → chunk-UFBUQO7Z.cjs.map} +1 -1
- package/dist/{chunk-F7YVI54P.js → chunk-W3JZXLJ2.js} +10 -10
- package/dist/chunk-W3JZXLJ2.js.map +1 -0
- package/dist/{chunk-WZ6TCAYQ.cjs → chunk-XMCVUYKC.cjs} +14 -14
- package/dist/chunk-XMCVUYKC.cjs.map +1 -0
- package/dist/{chunk-P7PISHM5.js → chunk-Y3NFB6HR.js} +5 -5
- package/dist/chunk-Y3NFB6HR.js.map +1 -0
- package/dist/{chunk-PBTY7AH5.js → chunk-YZJUHEPZ.js} +95 -95
- package/dist/chunk-YZJUHEPZ.js.map +1 -0
- package/dist/{chunk-NQQ4NLUT.js → chunk-ZQYFDYWV.js} +4298 -4461
- package/dist/chunk-ZQYFDYWV.js.map +1 -0
- package/dist/components/case-studies/index.cjs +15 -15
- package/dist/components/case-studies/index.cjs.map +1 -1
- package/dist/components/case-studies/index.js +9 -9
- package/dist/components/case-studies/index.js.map +1 -1
- package/dist/components/chat/approval-request-message.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/index.js +3 -3
- package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
- package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +262 -256
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +117 -111
- package/dist/components/index.js.map +1 -1
- package/dist/components/msp-display.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/pricing-display.d.ts +9 -9
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/toast/index.cjs +5 -5
- package/dist/components/toast/index.cjs.map +1 -1
- package/dist/components/toast/index.js +5 -5
- package/dist/components/toast/index.js.map +1 -1
- package/dist/components/ui/bullet-list.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +73 -73
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +24 -24
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +4 -4
- package/dist/components/ui/index.js +3 -3
- package/dist/components/ui/markdown-editor.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts +3 -0
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/components/user-display.d.ts.map +1 -1
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +3 -3
- package/dist/tailwind.config.cjs +38 -5
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +38 -5
- package/dist/tailwind.config.js.map +1 -1
- package/package.json +1 -1
- package/src/ODS_TOKEN_RULES.md +5 -0
- package/src/components/.footer.md +2 -2
- package/src/components/announcement-bar.tsx +1 -1
- package/src/components/authors/author-detail-view.tsx +3 -3
- package/src/components/calendar.tsx +2 -2
- package/src/components/case-studies/share-experience-section.tsx +5 -5
- package/src/components/categories-cart.tsx +6 -6
- package/src/components/category-card.tsx +5 -5
- package/src/components/chart.tsx +3 -3
- package/src/components/chat/approval-request-message.tsx +2 -5
- package/src/components/chat/chat-attachment-bar.tsx +3 -3
- package/src/components/chat/chat-message-enhanced.tsx +1 -1
- package/src/components/chat/chat-message-list.tsx +1 -1
- package/src/components/chat/chat-message-row.tsx +3 -3
- package/src/components/chat/chat-quick-action.tsx +1 -1
- package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
- package/src/components/chat/chat-sidebar.tsx +6 -6
- package/src/components/chat/chat-typing-indicator.tsx +1 -1
- package/src/components/chat/context-compaction-display.tsx +1 -1
- package/src/components/chat/embeddable-chat.tsx +3 -3
- package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
- package/src/components/chat/entity-cards/blog-card.tsx +5 -8
- package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
- package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
- package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
- package/src/components/chat/entity-cards/dispatch.tsx +1 -1
- package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
- package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
- package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
- package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
- package/src/components/chat/entity-cards/program-card.tsx +12 -12
- package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
- package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
- package/src/components/chat/error-message-display.tsx +2 -2
- package/src/components/chat/mingo-info-card.tsx +2 -2
- package/src/components/chat/model-display.tsx +7 -7
- package/src/components/chat/quick-action-chip.tsx +1 -1
- package/src/components/chat/source-action-button.tsx +2 -2
- package/src/components/chat/tool-call-blocks.tsx +3 -5
- package/src/components/chat/utils/.chip-action-class.md +1 -1
- package/src/components/chat/utils/.chip-styles.md +2 -2
- package/src/components/chat/utils/chip-action-class.ts +1 -1
- package/src/components/chat/utils/chip-styles.ts +2 -2
- package/src/components/chat/utils/compact-card-classes.ts +3 -3
- package/src/components/command.tsx +3 -3
- package/src/components/comment-card.tsx +1 -1
- package/src/components/contact/contact-form.tsx +9 -9
- package/src/components/context-menu.tsx +5 -5
- package/src/components/date-time-picker.tsx +2 -2
- package/src/components/docs/doc-viewer.tsx +4 -4
- package/src/components/embeds/figma-embed.tsx +2 -2
- package/src/components/embeds/file-download-card.tsx +2 -2
- package/src/components/embeds/google-sheets-viewer.tsx +1 -1
- package/src/components/embeds/linkedin-embed-client.tsx +3 -3
- package/src/components/embeds/og-link-preview.tsx +14 -14
- package/src/components/embeds/pdf-viewer.tsx +1 -1
- package/src/components/embeds/reddit-embed-client.tsx +9 -9
- package/src/components/embeds/twitter-embed-client.tsx +9 -9
- package/src/components/empty-state.tsx +5 -5
- package/src/components/faq/faq-section.tsx +1 -1
- package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
- package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
- package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
- package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
- package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
- package/src/components/features/array-entry-manager.tsx +7 -7
- package/src/components/features/auth-providers-list.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/changelog-manager.tsx +10 -10
- package/src/components/features/command-box.tsx +2 -2
- package/src/components/features/entity-summary-editor.tsx +3 -3
- package/src/components/features/figma-prototype-viewer.tsx +9 -9
- package/src/components/features/filters-dropdown.tsx +2 -2
- package/src/components/features/highlight-config-section.tsx +3 -3
- package/src/components/features/highlight-video-combined-section.tsx +2 -2
- package/src/components/features/highlight-video-preview.tsx +2 -2
- package/src/components/features/highlight-video-section.tsx +9 -9
- package/src/components/features/media-gallery-manager.tsx +14 -14
- package/src/components/features/og-editor-preview.tsx +4 -4
- package/src/components/features/os-type-badge-group.tsx +1 -1
- package/src/components/features/os-type-badge.tsx +2 -2
- package/src/components/features/platform-badge.tsx +4 -4
- package/src/components/features/policy-configuration-panel.tsx +6 -6
- package/src/components/features/provider-button.tsx +1 -1
- package/src/components/features/push-button-selector.tsx +21 -21
- package/src/components/features/release-media-manager.tsx +16 -16
- package/src/components/features/section-selector.tsx +8 -8
- package/src/components/features/select-button.tsx +4 -4
- package/src/components/features/seo-editor-preview.tsx +20 -20
- package/src/components/features/social-links-manager.tsx +3 -3
- package/src/components/features/start-with-openframe-button.tsx +3 -3
- package/src/components/features/status-filter-component.tsx +1 -1
- package/src/components/features/tags-selector.tsx +6 -6
- package/src/components/features/transcript-summary-editor.tsx +9 -9
- package/src/components/features/video-bites-strip.tsx +1 -1
- package/src/components/features/video-ratio-tabs.tsx +1 -1
- package/src/components/features/video-source-selector.tsx +7 -7
- package/src/components/features/video.tsx +1 -1
- package/src/components/features/waitlist-form.tsx +3 -3
- package/src/components/filter-chip.tsx +13 -13
- package/src/components/footer.tsx +3 -3
- package/src/components/form.tsx +2 -2
- package/src/components/hero-image-uploader.tsx +3 -3
- package/src/components/image-cropper.tsx +2 -2
- package/src/components/layout/page-container.tsx +6 -6
- package/src/components/layout/page-heading.tsx +1 -1
- package/src/components/loading/card-skeleton.tsx +2 -2
- package/src/components/loading/category-card-skeleton.tsx +1 -1
- package/src/components/loading/margin-report-skeleton.tsx +22 -22
- package/src/components/loading/openmsp-heartbeat.tsx +1 -1
- package/src/components/loading/page-layout-skeleton.tsx +83 -83
- package/src/components/loading/unified-skeleton.tsx +1 -1
- package/src/components/loading/users-grid-skeleton.tsx +2 -2
- package/src/components/logs-list.tsx +8 -8
- package/src/components/media-carousel.tsx +7 -7
- package/src/components/metric-value.tsx +2 -2
- package/src/components/msp-display.tsx +8 -2
- package/src/components/navigation/app-header.tsx +6 -6
- package/src/components/navigation/header-organization-filter.tsx +2 -2
- package/src/components/navigation/header.tsx +4 -4
- package/src/components/navigation/mobile-burger-menu.tsx +7 -7
- package/src/components/navigation/mobile-nav-panel.tsx +1 -1
- package/src/components/navigation/multi-level-navigation.tsx +7 -7
- package/src/components/navigation/navigation-sidebar.tsx +1 -1
- package/src/components/navigation/sticky-section-nav.tsx +2 -2
- package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
- package/src/components/pagination.tsx +2 -2
- package/src/components/persistent-filter-controls.tsx +1 -1
- package/src/components/platform/.ShellTypeBadge.md +1 -1
- package/src/components/platform/CveLink.tsx +1 -1
- package/src/components/platform/ScriptArguments.tsx +2 -2
- package/src/components/platform/ScriptInfoSection.tsx +5 -5
- package/src/components/platform/ShellTypeBadge.tsx +6 -6
- package/src/components/platform/SoftwareInfo.tsx +2 -2
- package/src/components/pricing-display.tsx +9 -9
- package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
- package/src/components/related-content/related-content-section.tsx +3 -3
- package/src/components/results-count.tsx +1 -1
- package/src/components/shared/delivery/delivery-row.tsx +1 -1
- package/src/components/shared/delivery/delivery-table.tsx +1 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
- package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
- package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
- package/src/components/shared/product-release/product-release-card.tsx +14 -14
- package/src/components/shared/product-release/release-detail-page.tsx +16 -16
- package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
- package/src/components/smooth-accordion.tsx +1 -1
- package/src/components/social-icon-row.tsx +1 -1
- package/src/components/sonner.tsx +5 -5
- package/src/components/steps.tsx +3 -3
- package/src/components/tickets/help-center-create-form.tsx +1 -1
- package/src/components/tickets/help-center-list.tsx +1 -1
- package/src/components/tickets/ticket-center.tsx +2 -2
- package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
- package/src/components/tickets/ticket-open-form.tsx +6 -6
- package/src/components/ui/.title-content-block.md +1 -1
- package/src/components/ui/accordion.tsx +2 -2
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +3 -3
- package/src/components/ui/alert.tsx +2 -2
- package/src/components/ui/allowed-domains-input.tsx +3 -3
- package/src/components/ui/autocomplete.tsx +3 -3
- package/src/components/ui/badge.tsx +2 -2
- package/src/components/ui/brand-association-card.tsx +2 -2
- package/src/components/ui/breadcrumb.tsx +3 -3
- package/src/components/ui/bullet-list.tsx +2 -2
- package/src/components/ui/button/button.tsx +1 -1
- package/src/components/ui/card.tsx +4 -4
- package/src/components/ui/checkbox-with-description.tsx +1 -1
- package/src/components/ui/chevron-button.tsx +1 -1
- package/src/components/ui/content-loader.tsx +16 -16
- package/src/components/ui/cursor-pagination.tsx +1 -1
- package/src/components/ui/date-picker.tsx +2 -2
- package/src/components/ui/device-card-compact.tsx +2 -2
- package/src/components/ui/device-card.tsx +3 -3
- package/src/components/ui/dialog.tsx +3 -3
- package/src/components/ui/drawer.tsx +4 -4
- package/src/components/ui/dropdown-menu.tsx +6 -6
- package/src/components/ui/error-state.tsx +9 -9
- package/src/components/ui/fade-preview.tsx +1 -1
- package/src/components/ui/field-wrapper.tsx +1 -1
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
- package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
- package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
- package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
- package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
- package/src/components/ui/file-upload.tsx +9 -9
- package/src/components/ui/filter-pill-row.tsx +1 -1
- package/src/components/ui/floating-tooltip.tsx +1 -1
- package/src/components/ui/highlight-card.tsx +1 -1
- package/src/components/ui/hover-dropdown.tsx +1 -1
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/info-row.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +5 -5
- package/src/components/ui/markdown-editor.tsx +4 -5
- package/src/components/ui/menubar.tsx +7 -7
- package/src/components/ui/modal-v2.tsx +1 -1
- package/src/components/ui/modal.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/navigation-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +8 -8
- package/src/components/ui/page-loader.tsx +6 -6
- package/src/components/ui/phone-input.tsx +1 -1
- package/src/components/ui/progress-bar.tsx +5 -5
- package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
- package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
- package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
- package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
- package/src/components/ui/release-changelog-section.tsx +2 -2
- package/src/components/ui/rich-markdown-renderer.tsx +6 -6
- package/src/components/ui/search-input.tsx +7 -7
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/service-card.tsx +4 -4
- package/src/components/ui/sheet.tsx +3 -3
- package/src/components/ui/simple-markdown-renderer.tsx +4 -4
- package/src/components/ui/square-avatar.tsx +9 -5
- package/src/components/ui/status-badge.tsx +11 -11
- package/src/components/ui/status-indicator.tsx +6 -6
- package/src/components/ui/tab-content.tsx +1 -1
- package/src/components/ui/tab-navigation.tsx +2 -2
- package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
- package/src/components/ui/table/table-description-cell.tsx +1 -1
- package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
- package/src/components/ui/table/table.tsx +2 -2
- package/src/components/ui/tabs.tsx +1 -1
- package/src/components/ui/tag-search-input.tsx +1 -1
- package/src/components/ui/tag.tsx +23 -23
- package/src/components/ui/tags-input.tsx +2 -2
- package/src/components/ui/ticket-status-tag.tsx +1 -1
- package/src/components/ui/toaster.tsx +8 -8
- package/src/components/ui/toggle.tsx +1 -1
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/components/user-display.tsx +12 -6
- package/src/components/user-summary-stub.tsx +4 -4
- package/src/components/vendor-display-button.tsx +2 -2
- package/src/components/vendor-icon.tsx +1 -1
- package/src/components/vendor-tag.tsx +9 -10
- package/src/components/yes-no-display.tsx +3 -3
- package/src/styles/ods-colors.css +2 -0
- package/tailwind.config.ts +49 -4
- package/dist/chunk-2ELBNZJ3.js.map +0 -1
- package/dist/chunk-3WJQL4DN.cjs.map +0 -1
- package/dist/chunk-4ACSUJ7Q.js.map +0 -1
- package/dist/chunk-7WM77CSW.js.map +0 -1
- package/dist/chunk-COMBYYQY.js.map +0 -1
- package/dist/chunk-EGRZHR7J.js.map +0 -1
- package/dist/chunk-F7YVI54P.js.map +0 -1
- package/dist/chunk-G5FALXNO.js.map +0 -1
- package/dist/chunk-HTVVXVJL.cjs.map +0 -1
- package/dist/chunk-IAN7GUIV.cjs.map +0 -1
- package/dist/chunk-IMK6RUEC.cjs.map +0 -1
- package/dist/chunk-M6QGB6DC.cjs.map +0 -1
- package/dist/chunk-N2TJ3HAM.cjs.map +0 -1
- package/dist/chunk-NQQ4NLUT.js.map +0 -1
- package/dist/chunk-P7PISHM5.js.map +0 -1
- package/dist/chunk-PBTY7AH5.js.map +0 -1
- package/dist/chunk-R46QEE3R.cjs.map +0 -1
- package/dist/chunk-RQQZF6G6.cjs.map +0 -1
- package/dist/chunk-RVWC4P3H.js.map +0 -1
- package/dist/chunk-VWGF6IFR.cjs.map +0 -1
- package/dist/chunk-WAGTZVQN.js.map +0 -1
- package/dist/chunk-WZ6TCAYQ.cjs.map +0 -1
- package/dist/components/accordion.d.ts +0 -8
- package/dist/components/accordion.d.ts.map +0 -1
- package/dist/components/alert-dialog.d.ts +0 -21
- package/dist/components/alert-dialog.d.ts.map +0 -1
- package/dist/components/alert.d.ts +0 -9
- package/dist/components/alert.d.ts.map +0 -1
- package/dist/components/badge.d.ts +0 -10
- package/dist/components/badge.d.ts.map +0 -1
- package/dist/components/breadcrumb.d.ts +0 -20
- package/dist/components/breadcrumb.d.ts.map +0 -1
- package/dist/components/chevron-button.d.ts +0 -14
- package/dist/components/chevron-button.d.ts.map +0 -1
- package/dist/components/dialog.d.ts +0 -29
- package/dist/components/dialog.d.ts.map +0 -1
- package/dist/components/dropdown-menu.d.ts +0 -28
- package/dist/components/dropdown-menu.d.ts.map +0 -1
- package/dist/components/input.d.ts +0 -8
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/label.d.ts +0 -6
- package/dist/components/label.d.ts.map +0 -1
- package/dist/components/menubar.d.ts +0 -34
- package/dist/components/menubar.d.ts.map +0 -1
- package/dist/components/navigation-menu.d.ts +0 -13
- package/dist/components/navigation-menu.d.ts.map +0 -1
- package/dist/components/select.d.ts +0 -14
- package/dist/components/select.d.ts.map +0 -1
- package/dist/components/sidebar.d.ts +0 -67
- package/dist/components/sidebar.d.ts.map +0 -1
- package/dist/components/square-avatar.d.ts +0 -21
- package/dist/components/square-avatar.d.ts.map +0 -1
- package/dist/components/table.d.ts +0 -11
- package/dist/components/table.d.ts.map +0 -1
- package/dist/components/tabs.d.ts +0 -18
- package/dist/components/tabs.d.ts.map +0 -1
- package/dist/components/toggle.d.ts +0 -13
- package/dist/components/toggle.d.ts.map +0 -1
- package/src/components/.accordion.md +0 -42
- package/src/components/.alert-dialog.md +0 -58
- package/src/components/.alert.md +0 -43
- package/src/components/.badge.md +0 -40
- package/src/components/.breadcrumb.md +0 -54
- package/src/components/.chevron-button.md +0 -46
- package/src/components/.dialog.md +0 -60
- package/src/components/.dropdown-menu.md +0 -51
- package/src/components/.input.md +0 -40
- package/src/components/.label.md +0 -41
- package/src/components/.menubar.md +0 -49
- package/src/components/.navigation-menu.md +0 -44
- package/src/components/.select.md +0 -54
- package/src/components/.sidebar.md +0 -58
- package/src/components/.square-avatar.md +0 -42
- package/src/components/.table.md +0 -51
- package/src/components/.tabs.md +0 -38
- package/src/components/.toggle.md +0 -49
- package/src/components/accordion.tsx +0 -56
- package/src/components/alert-dialog.tsx +0 -141
- package/src/components/alert.tsx +0 -59
- package/src/components/badge.tsx +0 -30
- package/src/components/breadcrumb.tsx +0 -115
- package/src/components/chevron-button.tsx +0 -68
- package/src/components/dialog.tsx +0 -150
- package/src/components/dropdown-menu.tsx +0 -200
- package/src/components/input.tsx +0 -39
- package/src/components/label.tsx +0 -19
- package/src/components/menubar.tsx +0 -236
- package/src/components/navigation-menu.tsx +0 -128
- package/src/components/select.tsx +0 -160
- package/src/components/sidebar.tsx +0 -764
- package/src/components/square-avatar.tsx +0 -61
- package/src/components/table.tsx +0 -72
- package/src/components/tabs.tsx +0 -65
- package/src/components/toggle.tsx +0 -45
- /package/dist/{chunk-QXYOGJQJ.js.map → chunk-7KDR5P23.js.map} +0 -0
- /package/dist/{chunk-PEIR7D25.js.map → chunk-7KNOHGMI.js.map} +0 -0
|
@@ -27,7 +27,7 @@ const ContextMenuSubTrigger = React.forwardRef<
|
|
|
27
27
|
<ContextMenuPrimitive.SubTrigger
|
|
28
28
|
ref={ref}
|
|
29
29
|
className={cn(
|
|
30
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-
|
|
30
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
31
31
|
inset && "pl-8",
|
|
32
32
|
className
|
|
33
33
|
)}
|
|
@@ -80,7 +80,7 @@ const ContextMenuItem = React.forwardRef<
|
|
|
80
80
|
<ContextMenuPrimitive.Item
|
|
81
81
|
ref={ref}
|
|
82
82
|
className={cn(
|
|
83
|
-
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-
|
|
83
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
84
84
|
inset && "pl-8",
|
|
85
85
|
className
|
|
86
86
|
)}
|
|
@@ -96,7 +96,7 @@ const ContextMenuCheckboxItem = React.forwardRef<
|
|
|
96
96
|
<ContextMenuPrimitive.CheckboxItem
|
|
97
97
|
ref={ref}
|
|
98
98
|
className={cn(
|
|
99
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-
|
|
99
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
100
100
|
className
|
|
101
101
|
)}
|
|
102
102
|
checked={checked}
|
|
@@ -120,7 +120,7 @@ const ContextMenuRadioItem = React.forwardRef<
|
|
|
120
120
|
<ContextMenuPrimitive.RadioItem
|
|
121
121
|
ref={ref}
|
|
122
122
|
className={cn(
|
|
123
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-
|
|
123
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
124
124
|
className
|
|
125
125
|
)}
|
|
126
126
|
{...props}
|
|
@@ -144,7 +144,7 @@ const ContextMenuLabel = React.forwardRef<
|
|
|
144
144
|
<ContextMenuPrimitive.Label
|
|
145
145
|
ref={ref}
|
|
146
146
|
className={cn(
|
|
147
|
-
"px-2 py-1.5 text-
|
|
147
|
+
"px-2 py-1.5 text-h6 font-semibold text-foreground",
|
|
148
148
|
inset && "pl-8",
|
|
149
149
|
className
|
|
150
150
|
)}
|
|
@@ -25,7 +25,7 @@ const inputClassName = cn(
|
|
|
25
25
|
"disabled:cursor-not-allowed disabled:opacity-50 touch-manipulation",
|
|
26
26
|
// Admin theme colors
|
|
27
27
|
"bg-ods-card border-ods-border text-ods-text-primary",
|
|
28
|
-
"placeholder:text-
|
|
28
|
+
"placeholder:text-ods-text-muted focus-visible:ring-ods-accent",
|
|
29
29
|
"md:text-sm text-base" // Mobile zoom prevention
|
|
30
30
|
);
|
|
31
31
|
|
|
@@ -44,7 +44,7 @@ export function DateTimePicker({
|
|
|
44
44
|
return (
|
|
45
45
|
<div className={cn("space-y-2", className)}>
|
|
46
46
|
{label && (
|
|
47
|
-
<Label className="
|
|
47
|
+
<Label className="text-h5 font-semibold text-ods-text-secondary">
|
|
48
48
|
{label}
|
|
49
49
|
</Label>
|
|
50
50
|
)}
|
|
@@ -291,7 +291,7 @@ function DocViewerContent({
|
|
|
291
291
|
{error && (
|
|
292
292
|
<div className="flex justify-center">
|
|
293
293
|
<div className="rounded-lg border bg-ods-card p-8 text-center max-w-md border-ods-border">
|
|
294
|
-
<h2 className="text-
|
|
294
|
+
<h2 className="text-h3 text-ods-text-primary">
|
|
295
295
|
Error Loading Documents
|
|
296
296
|
</h2>
|
|
297
297
|
<p className="mt-2 text-ods-text-secondary">{error}. Please try again later.</p>
|
|
@@ -322,7 +322,7 @@ function DocViewerContent({
|
|
|
322
322
|
<PersistentSidebar isLoading={false}>
|
|
323
323
|
<div className="hidden lg:block">
|
|
324
324
|
<div className="space-y-4">
|
|
325
|
-
<h3 className="text-
|
|
325
|
+
<h3 className="text-h5 font-semibold text-ods-text-secondary">
|
|
326
326
|
{sidebarLabel}
|
|
327
327
|
</h3>
|
|
328
328
|
<MultiLevelNavigation
|
|
@@ -369,7 +369,7 @@ function DocViewerContent({
|
|
|
369
369
|
renderSkeleton(selectedNodeDocType)
|
|
370
370
|
) : !content ? (
|
|
371
371
|
<div className="text-center py-16">
|
|
372
|
-
<p className="text-
|
|
372
|
+
<p className="text-h4 text-ods-text-secondary">{resolvedEmptyText}</p>
|
|
373
373
|
</div>
|
|
374
374
|
) : (
|
|
375
375
|
renderedContent
|
|
@@ -406,7 +406,7 @@ function DocViewerContent({
|
|
|
406
406
|
!isLoadingContent && (
|
|
407
407
|
<div className="hidden lg:block">
|
|
408
408
|
<div className="sticky top-24">
|
|
409
|
-
<h3 className="text-
|
|
409
|
+
<h3 className="text-h5 font-semibold text-ods-text-secondary mb-4">
|
|
410
410
|
ON THIS PAGE
|
|
411
411
|
</h3>
|
|
412
412
|
<StickySectionNav
|
|
@@ -57,7 +57,7 @@ function SlidesViewToggle({
|
|
|
57
57
|
key={key}
|
|
58
58
|
value={key}
|
|
59
59
|
aria-label={label}
|
|
60
|
-
className={`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-
|
|
60
|
+
className={`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-h6 transition-colors ${
|
|
61
61
|
active
|
|
62
62
|
? 'bg-ods-accent text-ods-text-on-accent'
|
|
63
63
|
: 'text-ods-text-secondary hover:text-ods-text-primary hover:bg-ods-bg-hover'
|
|
@@ -106,7 +106,7 @@ export function FigmaEmbed({ url, title, height, loading = 'lazy' }: FigmaEmbedP
|
|
|
106
106
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
|
107
107
|
<div className="flex items-center gap-2 min-w-0">
|
|
108
108
|
<FigmaIcon className="w-5 h-5 shrink-0" />
|
|
109
|
-
<span className="
|
|
109
|
+
<span className="text-h6 font-semibold text-ods-text-primary truncate">
|
|
110
110
|
{heading}
|
|
111
111
|
</span>
|
|
112
112
|
</div>
|
|
@@ -30,10 +30,10 @@ export function FileDownloadCard({
|
|
|
30
30
|
<div className="bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4">
|
|
31
31
|
<FileText className="w-16 h-16 text-ods-text-secondary mx-auto" />
|
|
32
32
|
<div>
|
|
33
|
-
<h3 className="text-
|
|
33
|
+
<h3 className="text-h3 text-ods-text-primary">
|
|
34
34
|
{fileName || 'File'}
|
|
35
35
|
</h3>
|
|
36
|
-
<div className="flex items-center justify-center gap-3 mt-2 text-
|
|
36
|
+
<div className="flex items-center justify-center gap-3 mt-2 text-h6 text-ods-text-secondary">
|
|
37
37
|
{mimeType && <span>{mimeType}</span>}
|
|
38
38
|
{typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}
|
|
39
39
|
</div>
|
|
@@ -30,7 +30,7 @@ export function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleShee
|
|
|
30
30
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
|
31
31
|
<div className="flex items-center gap-2 min-w-0">
|
|
32
32
|
<GoogleSheetsIcon className="w-5 h-5 shrink-0" />
|
|
33
|
-
<h2 className="text-
|
|
33
|
+
<h2 className="text-h3 text-ods-text-primary truncate">{displayName}</h2>
|
|
34
34
|
</div>
|
|
35
35
|
<Button
|
|
36
36
|
variant="outline"
|
|
@@ -46,7 +46,7 @@ export function LinkedInEmbedClient({ url, height = 600 }: LinkedInEmbedProps) {
|
|
|
46
46
|
href={url}
|
|
47
47
|
target="_blank"
|
|
48
48
|
rel="noopener noreferrer"
|
|
49
|
-
className="inline-flex items-center space-x-2 px-4 py-2 bg-ods-card border border-ods-border text-ods-text-primary rounded-md text-
|
|
49
|
+
className="inline-flex items-center space-x-2 px-4 py-2 bg-ods-card border border-ods-border text-ods-text-primary rounded-md text-h6 hover:bg-ods-bg-hover transition-colors"
|
|
50
50
|
>
|
|
51
51
|
<LinkedinIcon className="w-4 h-4" />
|
|
52
52
|
<span>View on LinkedIn</span>
|
|
@@ -84,12 +84,12 @@ export function LinkedInEmbedClient({ url, height = 600 }: LinkedInEmbedProps) {
|
|
|
84
84
|
onLoad={() => setLoaded(true)}
|
|
85
85
|
/>
|
|
86
86
|
</div>
|
|
87
|
-
<div className="px-4 py-3 bg-ods-bg-
|
|
87
|
+
<div className="px-4 py-3 bg-ods-bg-surface border-t border-ods-border">
|
|
88
88
|
<a
|
|
89
89
|
href={url}
|
|
90
90
|
target="_blank"
|
|
91
91
|
rel="noopener noreferrer"
|
|
92
|
-
className="inline-flex items-center space-x-2 text-ods-accent hover:text-ods-accent/80 transition-colors text-
|
|
92
|
+
className="inline-flex items-center space-x-2 text-ods-accent hover:text-ods-accent/80 transition-colors text-h6"
|
|
93
93
|
>
|
|
94
94
|
<ExternalLink className="w-4 h-4" />
|
|
95
95
|
<span>View on LinkedIn</span>
|
|
@@ -257,7 +257,7 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
257
257
|
const hasImage = !!resolvedImageUrl
|
|
258
258
|
const isFallbackImage = resolvedImageUrl === fallbackImage
|
|
259
259
|
const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage
|
|
260
|
-
const bgColor = useImageEdgeColor(resolvedImageUrl ?? null, 'var(--
|
|
260
|
+
const bgColor = useImageEdgeColor(resolvedImageUrl ?? null, 'var(--color-bg-surface)')
|
|
261
261
|
|
|
262
262
|
const renderSkeleton = () => isCompact ? (
|
|
263
263
|
<div className="my-4">
|
|
@@ -359,13 +359,13 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
359
359
|
<div className="my-4">
|
|
360
360
|
<a href={effectiveData.url} target="_blank" rel="noopener noreferrer"
|
|
361
361
|
className="flex flex-row items-center gap-3 border border-ods-border rounded-lg overflow-hidden bg-ods-card hover:border-ods-accent transition-all duration-200 group px-4 py-3">
|
|
362
|
-
<div className="w-8 h-8 bg-ods-bg-
|
|
362
|
+
<div className="w-8 h-8 bg-ods-bg-surface rounded-lg flex items-center justify-center flex-shrink-0">
|
|
363
363
|
<Favicon src={faviconSrc} size="w-5 h-5" />
|
|
364
364
|
</div>
|
|
365
365
|
<div className="flex-1 min-w-0">
|
|
366
|
-
<h3 className="
|
|
366
|
+
<h3 className="text-h6 font-semibold text-ods-text-primary group-hover:text-ods-accent transition-colors truncate">{title}</h3>
|
|
367
367
|
{description && (
|
|
368
|
-
<p className="
|
|
368
|
+
<p className="text-h6 text-ods-text-secondary truncate">{description}</p>
|
|
369
369
|
)}
|
|
370
370
|
</div>
|
|
371
371
|
<ExternalLinkIcon size={14} />
|
|
@@ -381,13 +381,13 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
381
381
|
{renderImage()}
|
|
382
382
|
</div>
|
|
383
383
|
<div className="flex-1 p-3 flex flex-col justify-center min-w-0">
|
|
384
|
-
<h3 className="
|
|
384
|
+
<h3 className="text-h6 font-semibold text-ods-text-primary overflow-hidden group-hover:text-ods-accent transition-colors"
|
|
385
385
|
style={{ display: '-webkit-box', WebkitLineClamp: 1, WebkitBoxOrient: 'vertical' }}>{title}</h3>
|
|
386
386
|
{description && (
|
|
387
|
-
<p className="
|
|
387
|
+
<p className="text-h6 text-ods-text-secondary overflow-hidden mt-1"
|
|
388
388
|
style={{ display: '-webkit-box', WebkitLineClamp: 2, WebkitBoxOrient: 'vertical' }}>{description}</p>
|
|
389
389
|
)}
|
|
390
|
-
<div className="text-
|
|
390
|
+
<div className="text-h6 text-ods-text-secondary mt-1 truncate">{effectiveData.siteName || ogDomain}</div>
|
|
391
391
|
</div>
|
|
392
392
|
</a>
|
|
393
393
|
</div>
|
|
@@ -399,13 +399,13 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
399
399
|
<div className="my-6">
|
|
400
400
|
<a href={effectiveData.url} target="_blank" rel="noopener noreferrer"
|
|
401
401
|
className="flex items-center gap-3 border border-ods-border rounded-lg overflow-hidden bg-ods-card hover:border-ods-accent transition-all duration-200 group px-4 py-3">
|
|
402
|
-
<div className="w-10 h-10 bg-ods-bg-
|
|
402
|
+
<div className="w-10 h-10 bg-ods-bg-surface rounded-lg flex items-center justify-center flex-shrink-0">
|
|
403
403
|
<Favicon src={faviconSrc} />
|
|
404
404
|
</div>
|
|
405
405
|
<div className="flex-1 min-w-0">
|
|
406
|
-
<h3 className="
|
|
406
|
+
<h3 className="text-h6 font-semibold text-ods-text-primary group-hover:text-ods-accent transition-colors truncate">{title}</h3>
|
|
407
407
|
{description && (
|
|
408
|
-
<p className="
|
|
408
|
+
<p className="text-h6 text-ods-text-secondary truncate">{description}</p>
|
|
409
409
|
)}
|
|
410
410
|
</div>
|
|
411
411
|
<ExternalLinkIcon />
|
|
@@ -426,14 +426,14 @@ export const OGLinkPreview: React.FC<OGLinkPreviewProps> = ({
|
|
|
426
426
|
<img src={logoSrc} alt={publicationName || ''} className="w-6 h-6 rounded object-contain flex-shrink-0 mt-0.5"
|
|
427
427
|
onError={(e) => { (e.target as HTMLImageElement).style.display = 'none' }} />
|
|
428
428
|
<div className="flex-1 min-w-0">
|
|
429
|
-
<h3 className="
|
|
429
|
+
<h3 className="text-h6 font-semibold text-ods-text-primary overflow-hidden group-hover:text-ods-accent transition-colors h-[2.5rem] mb-2"
|
|
430
430
|
style={{ display: '-webkit-box', WebkitLineClamp: 2, WebkitBoxOrient: 'vertical' }}>{title}</h3>
|
|
431
431
|
{description && (
|
|
432
|
-
<p className="
|
|
432
|
+
<p className="text-h6 text-ods-text-secondary overflow-hidden h-[2.5rem] mb-2"
|
|
433
433
|
style={{ display: '-webkit-box', WebkitLineClamp: 2, WebkitBoxOrient: 'vertical' }}>{description}</p>
|
|
434
434
|
)}
|
|
435
|
-
<div className="flex items-center gap-2 text-
|
|
436
|
-
<span
|
|
435
|
+
<div className="flex items-center gap-2 text-h6 text-ods-text-secondary">
|
|
436
|
+
<span>{effectiveData.siteName}</span>
|
|
437
437
|
<span>•</span>
|
|
438
438
|
<span className="truncate">{ogDomain}</span>
|
|
439
439
|
</div>
|
|
@@ -31,7 +31,7 @@ export function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfV
|
|
|
31
31
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
|
32
32
|
<div className="flex items-center gap-2 min-w-0">
|
|
33
33
|
<AdobePdfIcon className="w-5 h-5 shrink-0" />
|
|
34
|
-
<h2 className="text-
|
|
34
|
+
<h2 className="text-h3 text-ods-text-primary truncate">{displayName}</h2>
|
|
35
35
|
</div>
|
|
36
36
|
<div className="flex items-center gap-2 w-full sm:w-auto">
|
|
37
37
|
<Button
|
|
@@ -206,14 +206,14 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
206
206
|
</div>
|
|
207
207
|
|
|
208
208
|
<div className="text-center">
|
|
209
|
-
<p className="text-ods-text-secondary text-
|
|
209
|
+
<p className="text-ods-text-secondary text-h6 mb-4">
|
|
210
210
|
This Reddit post could not be loaded. It may have been deleted, made private, or the subreddit may be restricted.
|
|
211
211
|
</p>
|
|
212
212
|
<a
|
|
213
213
|
href={url}
|
|
214
214
|
target="_blank"
|
|
215
215
|
rel="noopener noreferrer"
|
|
216
|
-
className="inline-flex items-center space-x-2 px-4 py-2 bg-[#FF4500] text-white rounded-md text-
|
|
216
|
+
className="inline-flex items-center space-x-2 px-4 py-2 bg-[#FF4500] text-white rounded-md text-h6 hover:bg-[#E03D00] transition-colors"
|
|
217
217
|
>
|
|
218
218
|
<RedditIcon />
|
|
219
219
|
<span>View on Reddit</span>
|
|
@@ -479,8 +479,8 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
479
479
|
<RedditProfilePic username={redditData.author} />
|
|
480
480
|
</div>
|
|
481
481
|
<div>
|
|
482
|
-
<p className="text-ods-text-primary
|
|
483
|
-
<div className="flex items-center space-x-2 text-ods-text-secondary text-
|
|
482
|
+
<p className="text-ods-text-primary text-h6">r/{redditData.subreddit}</p>
|
|
483
|
+
<div className="flex items-center space-x-2 text-ods-text-secondary text-h6">
|
|
484
484
|
<UserIcon />
|
|
485
485
|
<span>u/{redditData.author}</span>
|
|
486
486
|
<ClockIcon />
|
|
@@ -493,13 +493,13 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
493
493
|
|
|
494
494
|
{/* Content - Matching Twitter Style */}
|
|
495
495
|
<div className="p-4">
|
|
496
|
-
<h3 className="text-ods-text-primary
|
|
496
|
+
<h3 className="text-ods-text-primary text-h3 mb-3">
|
|
497
497
|
{redditData.title}
|
|
498
498
|
</h3>
|
|
499
499
|
|
|
500
500
|
{redditData.selftext && (
|
|
501
501
|
<div
|
|
502
|
-
className="text-ods-text-secondary text-
|
|
502
|
+
className="text-ods-text-secondary text-h6 mb-4 overflow-hidden"
|
|
503
503
|
style={{ maxHeight: `${maxWidth - 200}px` }}
|
|
504
504
|
>
|
|
505
505
|
<p className="whitespace-pre-wrap">
|
|
@@ -517,7 +517,7 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
517
517
|
)}
|
|
518
518
|
|
|
519
519
|
{/* Stats - Matching Twitter Style */}
|
|
520
|
-
<div className="flex items-center space-x-6 text-ods-text-secondary text-
|
|
520
|
+
<div className="flex items-center space-x-6 text-ods-text-secondary text-h6">
|
|
521
521
|
<div className="flex items-center space-x-1">
|
|
522
522
|
<ArrowUpIcon />
|
|
523
523
|
<span>{formatNumber(redditData.ups)} upvotes</span>
|
|
@@ -530,12 +530,12 @@ export function RedditEmbedClient({ url, maxWidth = 700 }: RedditEmbedProps) {
|
|
|
530
530
|
</div>
|
|
531
531
|
|
|
532
532
|
{/* Footer - Matching Twitter Style */}
|
|
533
|
-
<div className="px-4 py-3 bg-ods-bg-
|
|
533
|
+
<div className="px-4 py-3 bg-ods-bg-surface border-t border-ods-border">
|
|
534
534
|
<a
|
|
535
535
|
href={url}
|
|
536
536
|
target="_blank"
|
|
537
537
|
rel="noopener noreferrer"
|
|
538
|
-
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-
|
|
538
|
+
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-h6"
|
|
539
539
|
>
|
|
540
540
|
<ExternalLinkIcon />
|
|
541
541
|
<span>View on Reddit</span>
|
|
@@ -148,14 +148,14 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
148
148
|
</div>
|
|
149
149
|
|
|
150
150
|
<div className="text-center">
|
|
151
|
-
<p className="text-ods-text-secondary text-
|
|
151
|
+
<p className="text-ods-text-secondary text-h6 mb-4">
|
|
152
152
|
This tweet could not be loaded. It may have been deleted, made private, or the account may be suspended.
|
|
153
153
|
</p>
|
|
154
154
|
<a
|
|
155
155
|
href={url}
|
|
156
156
|
target="_blank"
|
|
157
157
|
rel="noopener noreferrer"
|
|
158
|
-
className="inline-flex items-center space-x-2 px-4 py-2 bg-ods-bg-
|
|
158
|
+
className="inline-flex items-center space-x-2 px-4 py-2 bg-ods-bg-surface text-ods-text-primary rounded-md text-h6 hover:bg-ods-bg-active transition-colors"
|
|
159
159
|
>
|
|
160
160
|
<XIcon />
|
|
161
161
|
<span>View on X</span>
|
|
@@ -228,8 +228,8 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
228
228
|
/>
|
|
229
229
|
</div>
|
|
230
230
|
<div>
|
|
231
|
-
<p className="text-ods-text-primary
|
|
232
|
-
<div className="flex items-center space-x-2 text-ods-text-secondary text-
|
|
231
|
+
<p className="text-ods-text-primary text-h6">@{username}</p>
|
|
232
|
+
<div className="flex items-center space-x-2 text-ods-text-secondary text-h6">
|
|
233
233
|
<UserIcon />
|
|
234
234
|
<span>{tweetData.author_name}</span>
|
|
235
235
|
<ClockIcon />
|
|
@@ -244,7 +244,7 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
244
244
|
<div className="p-4">
|
|
245
245
|
{tweetText && (
|
|
246
246
|
<div
|
|
247
|
-
className="text-ods-text-secondary text-
|
|
247
|
+
className="text-ods-text-secondary text-h6 mb-4 overflow-hidden"
|
|
248
248
|
style={{ maxHeight: `${maxWidth - 200}px` }}
|
|
249
249
|
>
|
|
250
250
|
<p className="whitespace-pre-wrap">
|
|
@@ -264,7 +264,7 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
264
264
|
href={link.url}
|
|
265
265
|
target="_blank"
|
|
266
266
|
rel="noopener noreferrer"
|
|
267
|
-
className="inline-flex items-center space-x-2 text-[#1DA1F2] hover:text-ods-accent transition-colors text-
|
|
267
|
+
className="inline-flex items-center space-x-2 text-[#1DA1F2] hover:text-ods-accent transition-colors text-h6"
|
|
268
268
|
>
|
|
269
269
|
<ExternalLinkIcon />
|
|
270
270
|
<span className="underline">{link.text}</span>
|
|
@@ -274,7 +274,7 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
274
274
|
)}
|
|
275
275
|
|
|
276
276
|
{/* Stats */}
|
|
277
|
-
<div className="flex items-center space-x-6 text-ods-text-secondary text-
|
|
277
|
+
<div className="flex items-center space-x-6 text-ods-text-secondary text-h6">
|
|
278
278
|
<div className="flex items-center space-x-1">
|
|
279
279
|
<HeartIcon />
|
|
280
280
|
<span>Likes</span>
|
|
@@ -291,12 +291,12 @@ export function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }: TwitterEmbe
|
|
|
291
291
|
</div>
|
|
292
292
|
|
|
293
293
|
{/* Footer */}
|
|
294
|
-
<div className="px-4 py-3 bg-ods-bg-
|
|
294
|
+
<div className="px-4 py-3 bg-ods-bg-surface border-t border-ods-border">
|
|
295
295
|
<a
|
|
296
296
|
href={url}
|
|
297
297
|
target="_blank"
|
|
298
298
|
rel="noopener noreferrer"
|
|
299
|
-
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-
|
|
299
|
+
className="inline-flex items-center space-x-2 text-ods-accent hover:opacity-80 transition-colors text-h6"
|
|
300
300
|
>
|
|
301
301
|
<ExternalLinkIcon />
|
|
302
302
|
<span>View on X</span>
|
|
@@ -163,12 +163,12 @@ export function EmptyState({
|
|
|
163
163
|
</div>
|
|
164
164
|
|
|
165
165
|
{/* Title */}
|
|
166
|
-
<h2 className="mb-2 md:mb-3 text-
|
|
166
|
+
<h2 className="mb-2 md:mb-3 text-h3 text-ods-text-primary">
|
|
167
167
|
{displayTitle}
|
|
168
168
|
</h2>
|
|
169
169
|
|
|
170
170
|
{/* Description */}
|
|
171
|
-
<p className="mb-4 md:mb-8 max-w-md text-
|
|
171
|
+
<p className="mb-4 md:mb-8 max-w-md text-h6 text-ods-text-secondary">
|
|
172
172
|
{displayDescription}
|
|
173
173
|
</p>
|
|
174
174
|
|
|
@@ -178,8 +178,8 @@ export function EmptyState({
|
|
|
178
178
|
<Button
|
|
179
179
|
onClick={smartCTA.action}
|
|
180
180
|
className={ctaVariant === 'primary'
|
|
181
|
-
? "w-full bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover transition-all duration-150 font-
|
|
182
|
-
: "w-full bg-transparent border border-ods-border text-ods-text-primary hover:border-ods-accent hover:text-ods-accent transition-all duration-150 font-
|
|
181
|
+
? "w-full bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover transition-all duration-150 font-body font-medium"
|
|
182
|
+
: "w-full bg-transparent border border-ods-border text-ods-text-primary hover:border-ods-accent hover:text-ods-accent transition-all duration-150 font-body font-medium"
|
|
183
183
|
}
|
|
184
184
|
>
|
|
185
185
|
{smartCTA.text}
|
|
@@ -193,7 +193,7 @@ export function EmptyState({
|
|
|
193
193
|
<Button
|
|
194
194
|
onClick={onGoBack}
|
|
195
195
|
variant="outline"
|
|
196
|
-
className="w-full transition-all duration-150 font-
|
|
196
|
+
className="w-full transition-all duration-150 font-body font-medium"
|
|
197
197
|
>
|
|
198
198
|
{backButtonText}
|
|
199
199
|
</Button>
|
|
@@ -272,7 +272,7 @@ function GroupedFaqList({
|
|
|
272
272
|
aria-current={isActive ? 'true' : undefined}
|
|
273
273
|
onClick={(e) => handleJump(e, group.slug as string)}
|
|
274
274
|
className={cn(
|
|
275
|
-
"rounded-full border px-4 py-2 text-
|
|
275
|
+
"rounded-full border px-4 py-2 text-h6 transition-colors",
|
|
276
276
|
isActive
|
|
277
277
|
? 'border-ods-text-primary bg-ods-card text-ods-text-primary'
|
|
278
278
|
: 'border-ods-border bg-ods-card text-ods-text-secondary hover:border-ods-text-secondary hover:text-ods-text-primary',
|
|
@@ -141,7 +141,7 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
141
141
|
{title}
|
|
142
142
|
</h3>
|
|
143
143
|
{description && (
|
|
144
|
-
<p className="text-ods-text-secondary text-
|
|
144
|
+
<p className="text-ods-text-secondary text-h6 mt-1">
|
|
145
145
|
{description}
|
|
146
146
|
</p>
|
|
147
147
|
)}
|
|
@@ -154,12 +154,12 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
154
154
|
<div className="flex items-center justify-between">
|
|
155
155
|
<label
|
|
156
156
|
htmlFor="ai-enrich-custom-instructions"
|
|
157
|
-
className="text-
|
|
157
|
+
className="text-h6 text-ods-text-primary"
|
|
158
158
|
>
|
|
159
159
|
{customInstructionsLabel}
|
|
160
160
|
</label>
|
|
161
161
|
{customInstructionsMaxLength !== undefined && (
|
|
162
|
-
<span className="text-
|
|
162
|
+
<span className="text-h6 text-ods-text-secondary">
|
|
163
163
|
{(customInstructions ?? '').length}/{customInstructionsMaxLength}
|
|
164
164
|
</span>
|
|
165
165
|
)}
|
|
@@ -175,7 +175,7 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
175
175
|
className="resize-y"
|
|
176
176
|
/>
|
|
177
177
|
{customInstructionsHelperText && (
|
|
178
|
-
<p className="text-
|
|
178
|
+
<p className="text-h6 text-ods-text-secondary">
|
|
179
179
|
{customInstructionsHelperText}
|
|
180
180
|
</p>
|
|
181
181
|
)}
|
|
@@ -217,7 +217,7 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
217
217
|
{/* Disabled message with unfilled fields */}
|
|
218
218
|
{shouldDisable && !loading && (
|
|
219
219
|
<div className="space-y-2">
|
|
220
|
-
<p className="text-ods-text-secondary text-
|
|
220
|
+
<p className="text-ods-text-secondary text-h6">
|
|
221
221
|
{disabledMessage}
|
|
222
222
|
</p>
|
|
223
223
|
{unfilledFields.length > 0 && (
|
|
@@ -225,9 +225,9 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
225
225
|
{unfilledFields.map(field => (
|
|
226
226
|
<span
|
|
227
227
|
key={field.key}
|
|
228
|
-
className="inline-flex items-center gap-1 px-2 py-0.5 text-
|
|
228
|
+
className="inline-flex items-center gap-1 px-2 py-0.5 text-h6 rounded-full bg-ods-flamingo-cyan/10 text-ods-flamingo-cyan/70"
|
|
229
229
|
>
|
|
230
|
-
<span className="w-1.5 h-1.5 rounded-full bg-
|
|
230
|
+
<span className="w-1.5 h-1.5 rounded-full bg-ods-flamingo-cyan/50" />
|
|
231
231
|
{field.label}
|
|
232
232
|
</span>
|
|
233
233
|
))}
|
|
@@ -238,9 +238,9 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
238
238
|
|
|
239
239
|
{/* Loading state with status message */}
|
|
240
240
|
{loading && statusMessage && (
|
|
241
|
-
<div className="flex items-center gap-3 p-3 rounded-lg bg-ods-
|
|
241
|
+
<div className="flex items-center gap-3 p-3 rounded-lg bg-ods-bg-surface">
|
|
242
242
|
<Loader2 className="h-5 w-5 text-ods-accent animate-spin" />
|
|
243
|
-
<span className="text-
|
|
243
|
+
<span className="text-h6 text-ods-text-primary">
|
|
244
244
|
{statusMessage}
|
|
245
245
|
</span>
|
|
246
246
|
</div>
|
|
@@ -252,16 +252,16 @@ export const AIEnrichSection: React.FC<AIEnrichSectionProps> = ({
|
|
|
252
252
|
{/* Status indicator - simple and clean */}
|
|
253
253
|
<div className={cn(
|
|
254
254
|
'flex items-center gap-3 p-3 rounded-lg',
|
|
255
|
-
status === 'success' ? 'bg-
|
|
255
|
+
status === 'success' ? 'bg-ods-success/10' : 'bg-ods-error/10'
|
|
256
256
|
)}>
|
|
257
257
|
{status === 'success' ? (
|
|
258
|
-
<CheckCircle className="h-5 w-5 text-
|
|
258
|
+
<CheckCircle className="h-5 w-5 text-ods-success" />
|
|
259
259
|
) : (
|
|
260
|
-
<AlertCircle className="h-5 w-5 text-
|
|
260
|
+
<AlertCircle className="h-5 w-5 text-ods-error" />
|
|
261
261
|
)}
|
|
262
262
|
<span className={cn(
|
|
263
|
-
'text-
|
|
264
|
-
status === 'success' ? 'text-
|
|
263
|
+
'text-h6',
|
|
264
|
+
status === 'success' ? 'text-ods-success' : 'text-ods-error'
|
|
265
265
|
)}>
|
|
266
266
|
{statusMessage || (status === 'success' ? 'Enrichment complete' : 'Enrichment failed')}
|
|
267
267
|
</span>
|
|
@@ -21,15 +21,15 @@ export const AIRequiredBadge: React.FC<AIRequiredBadgeProps> = ({
|
|
|
21
21
|
return (
|
|
22
22
|
<span
|
|
23
23
|
className={cn(
|
|
24
|
-
'inline-flex items-center gap-1
|
|
25
|
-
'bg-
|
|
26
|
-
size === 'sm' && 'ml-2 px-2 py-0.5
|
|
27
|
-
size === 'md' && 'ml-2 px-2.5 py-1
|
|
24
|
+
'inline-flex items-center gap-1 text-h6 rounded-full',
|
|
25
|
+
'bg-ods-flamingo-cyan/10 text-ods-flamingo-cyan',
|
|
26
|
+
size === 'sm' && 'ml-2 px-2 py-0.5',
|
|
27
|
+
size === 'md' && 'ml-2 px-2.5 py-1',
|
|
28
28
|
className
|
|
29
29
|
)}
|
|
30
30
|
>
|
|
31
31
|
<SparklesIcon size={size === 'sm' ? 12 : 14} color="var(--ods-flamingo-cyan-base)" />
|
|
32
|
-
<span className="font-
|
|
32
|
+
<span className="font-body">AI-required</span>
|
|
33
33
|
</span>
|
|
34
34
|
)
|
|
35
35
|
}
|
|
@@ -22,18 +22,18 @@ const statusConfig = {
|
|
|
22
22
|
label: 'Ready',
|
|
23
23
|
},
|
|
24
24
|
loading: {
|
|
25
|
-
color: 'text-
|
|
26
|
-
bgColor: 'bg-
|
|
25
|
+
color: 'text-ods-flamingo-cyan',
|
|
26
|
+
bgColor: 'bg-ods-flamingo-cyan/10',
|
|
27
27
|
label: 'Processing...',
|
|
28
28
|
},
|
|
29
29
|
success: {
|
|
30
|
-
color: 'text-
|
|
31
|
-
bgColor: 'bg-
|
|
30
|
+
color: 'text-ods-success',
|
|
31
|
+
bgColor: 'bg-ods-success/10',
|
|
32
32
|
label: 'Enriched',
|
|
33
33
|
},
|
|
34
34
|
error: {
|
|
35
|
-
color: 'text-
|
|
36
|
-
bgColor: 'bg-
|
|
35
|
+
color: 'text-ods-error',
|
|
36
|
+
bgColor: 'bg-ods-error/10',
|
|
37
37
|
label: 'Failed',
|
|
38
38
|
},
|
|
39
39
|
}
|
|
@@ -71,7 +71,7 @@ export const AIStatusIndicator: React.FC<AIStatusIndicatorProps> = ({
|
|
|
71
71
|
/>
|
|
72
72
|
<span
|
|
73
73
|
className={cn(
|
|
74
|
-
'text-
|
|
74
|
+
'text-h6',
|
|
75
75
|
confidence !== undefined && status === 'success'
|
|
76
76
|
? getConfidenceTextClass(confidence)
|
|
77
77
|
: config.color
|
|
@@ -82,7 +82,7 @@ export const AIStatusIndicator: React.FC<AIStatusIndicatorProps> = ({
|
|
|
82
82
|
{confidenceLabel && status === 'success' && (
|
|
83
83
|
<span
|
|
84
84
|
className={cn(
|
|
85
|
-
'text-
|
|
85
|
+
'text-h6 px-2 py-0.5 rounded-full border',
|
|
86
86
|
getConfidenceBorderClass(confidence),
|
|
87
87
|
getConfidenceTextClass(confidence)
|
|
88
88
|
)}
|
|
@@ -21,13 +21,13 @@ export const AIWarningsSection: React.FC<AIWarningsSectionProps> = ({
|
|
|
21
21
|
return (
|
|
22
22
|
<div
|
|
23
23
|
className={cn(
|
|
24
|
-
'rounded-lg border border-
|
|
24
|
+
'rounded-lg border border-ods-warning/30 bg-ods-warning/10 p-4',
|
|
25
25
|
className
|
|
26
26
|
)}
|
|
27
27
|
>
|
|
28
28
|
<div className="flex items-start gap-2">
|
|
29
29
|
<svg
|
|
30
|
-
className="w-5 h-5 text-
|
|
30
|
+
className="w-5 h-5 text-ods-warning flex-shrink-0 mt-0.5"
|
|
31
31
|
fill="none"
|
|
32
32
|
viewBox="0 0 24 24"
|
|
33
33
|
stroke="currentColor"
|
|
@@ -40,14 +40,14 @@ export const AIWarningsSection: React.FC<AIWarningsSectionProps> = ({
|
|
|
40
40
|
/>
|
|
41
41
|
</svg>
|
|
42
42
|
<div className="flex-1">
|
|
43
|
-
<h4 className="text-
|
|
43
|
+
<h4 className="text-h6 font-semibold text-ods-warning mb-2">
|
|
44
44
|
{title}
|
|
45
45
|
</h4>
|
|
46
46
|
<ul className="space-y-1">
|
|
47
47
|
{warnings.map((warning, index) => (
|
|
48
48
|
<li
|
|
49
49
|
key={index}
|
|
50
|
-
className="text-
|
|
50
|
+
className="text-h6 text-ods-warning/80 list-disc list-inside"
|
|
51
51
|
>
|
|
52
52
|
{warning}
|
|
53
53
|
</li>
|