UNPKG

docusaurus-openai-search

Version:

AI-powered search plugin for Docusaurus - extends Algolia search with intelligent keyword generation and RAG-based answers

1,443 lines (1,231 loc) 35 kB
/* AI-enhanced Search Bar Styles */ .docusaurus-openai-search { /* Use Docusaurus font family and color */ font-family: var(--ifm-font-family-base); color: var(--ifm-font-color-base); } /* AI Search Header */ .docusaurus-openai-search .ai-search-header { display: flex; justify-content: center; padding: 12px 0; } .docusaurus-openai-search .ai-search-button-header { display: flex; align-items: center; justify-content: center; width: 100%; padding: 12px 8px; border-radius: var(--ifm-button-border-radius); border: none; background: var(--docsearch-highlight-color, var(--ifm-color-primary)); color: var(--ifm-color-white); font-weight: var(--ifm-font-weight-bold); font-size: var(--ifm-font-size-base); cursor: pointer; transition: all var(--ifm-transition-fast) ease; } .docusaurus-openai-search .ai-search-button-header:hover { opacity: 0.9; } .docusaurus-openai-search .ai-search-button-header svg { margin-right: 8px; } /* Z-index fixes for modal layering */ .docusaurus-openai-search .DocSearch-Container, .docusaurus-openai-search .DocSearch-Modal { z-index: 9000 !important; } /* Ensure DocSearch input can handle long queries */ .DocSearch-Input { max-width: none !important; width: 100% !important; overflow: visible !important; text-overflow: clip !important; white-space: nowrap !important; padding-right: 50px !important; /* Make room for any buttons/icons */ } /* Ensure the search form container doesn't restrict width */ .DocSearch-Form { width: 100% !important; max-width: none !important; overflow: visible !important; } /* Make sure the input wrapper doesn't have any restrictions */ .DocSearch-InputWrapper { width: 100% !important; max-width: none !important; overflow: visible !important; } /* Ensure the modal is wide enough for long queries */ .DocSearch-Modal { max-width: 90vw !important; } .DocSearch-SearchBar { max-width: none !important; z-index: 9002 !important; } .docusaurus-openai-search .DocSearch-Dropdown { z-index: 9001 !important; } /* AI Modal Styles */ .docusaurus-openai-search .ai-modal-overlay { position: fixed; inset: 0; background-color: var(--docsearch-container-background, rgba(0, 0, 0, 0.4)); display: flex; justify-content: center; align-items: center; z-index: 9999; padding: 24px; backdrop-filter: blur(2px); } .docusaurus-openai-search .ai-modal-content { background-color: var(--docsearch-modal-background, var(--ifm-background-color)); border-radius: var(--ifm-card-border-radius); box-shadow: var(--ifm-global-shadow-md); width: 100%; max-width: 850px; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; margin: 24px 0; } .docusaurus-openai-search .ai-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--ifm-color-emphasis-200); background-color: var(--ifm-background-surface-color); } .docusaurus-openai-search .ai-modal-header h3 { margin: 0; font-size: 1.5rem; font-weight: var(--ifm-font-weight-bold); padding: 4px 8px; color: var(--ifm-color-emphasis-900); } .docusaurus-openai-search .ai-modal-close { background: none; border: none; cursor: pointer; color: var(--ifm-color-secondary-darkest); display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; transition: all var(--ifm-transition-fast); font-size: 24px; padding: 0; } .docusaurus-openai-search .ai-modal-close:hover { background-color: var(--ifm-color-emphasis-200); color: var(--ifm-color-emphasis-700); } .docusaurus-openai-search .ai-modal-body { flex: 1; display: flex; flex-direction: column; overflow-y: auto; } .docusaurus-openai-search .ai-question { padding: 12px 16px; background-color: var(--ifm-color-emphasis-100); border-bottom: 1px solid var(--ifm-color-emphasis-200); font-weight: var(--ifm-font-weight-semibold); } .docusaurus-openai-search .ai-answer { padding: 12px 16px; overflow-y: auto; flex: 1; } /* Week 2 Enhancement: Confidence indicators and validation styles */ .docusaurus-openai-search .ai-validation-section { margin-bottom: 16px; padding: 12px 16px; background-color: var(--ifm-color-emphasis-100); border-radius: var(--ifm-card-border-radius); border: 1px solid var(--ifm-color-emphasis-200); } .docusaurus-openai-search .ai-confidence { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: var(--ifm-button-border-radius); font-size: 0.875rem; font-weight: var(--ifm-font-weight-semibold); margin-bottom: 12px; } .docusaurus-openai-search .ai-confidence-high { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; } .docusaurus-openai-search .ai-confidence-medium { background-color: #fff3cd; color: #856404; border: 1px solid #ffeaa7; } .docusaurus-openai-search .ai-confidence-low { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } .docusaurus-openai-search .ai-confidence-label { opacity: 0.8; } .docusaurus-openai-search .ai-confidence-value { font-weight: var(--ifm-font-weight-bold); } .docusaurus-openai-search .ai-quality-indicators { display: flex; flex-wrap: wrap; gap: 8px; } .docusaurus-openai-search .ai-quality-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; background-color: var(--ifm-color-primary-lightest); color: var(--ifm-color-primary-darkest); border-radius: var(--ifm-button-border-radius); font-size: 0.75rem; font-weight: var(--ifm-font-weight-medium); border: 1px solid var(--ifm-color-primary-lighter); } .docusaurus-openai-search .ai-badge-icon { font-size: 0.875rem; } .docusaurus-openai-search .ai-has-code { background-color: #e7f3ff; color: #0969da; border-color: #b6d9f7; } .docusaurus-openai-search .ai-has-steps { background-color: #f0f9ff; color: #0969da; border-color: #c2e7ff; } .docusaurus-openai-search .ai-has-sources { background-color: #ecfdf5; color: #059669; border-color: #a7f3d0; } /* Stage 3: Enhancement indicators */ .docusaurus-openai-search .ai-enhancement-indicators { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; } .docusaurus-openai-search .ai-enhancement-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; background-color: var(--ifm-color-secondary-lightest); color: var(--ifm-color-secondary-dark); border: 1px solid var(--ifm-color-secondary-light); border-radius: var(--ifm-button-border-radius); font-size: 0.75rem; font-weight: var(--ifm-font-weight-semibold); } .docusaurus-openai-search .ai-finetuned-model { background-color: #e8f5e8; color: #2d5a2d; border: 1px solid #a5d6a5; } .docusaurus-openai-search .ai-recursive-enhanced { background-color: #f0f8ff; color: #1e3a8a; border: 1px solid #93c5fd; } .docusaurus-openai-search .ai-docs-analyzed { background-color: #fef3c7; color: #92400e; border: 1px solid #fbbf24; } .docusaurus-openai-search .ai-not-found { margin-top: 1rem; } .docusaurus-openai-search .ai-help-text { margin-top: 0.5rem; font-size: 0.9rem; color: var(--ifm-color-secondary-darkest); opacity: 0.8; } /* Dark theme adjustments */ [data-theme='dark'] .docusaurus-openai-search .ai-validation-section { background-color: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-emphasis-300); } [data-theme='dark'] .docusaurus-openai-search .ai-confidence-high { background-color: #0f5132; color: #d1e7dd; border-color: #146c43; } [data-theme='dark'] .docusaurus-openai-search .ai-confidence-medium { background-color: #664d03; color: #fff3cd; border-color: #b58900; } [data-theme='dark'] .docusaurus-openai-search .ai-confidence-low { background-color: #58151c; color: #f8d7da; border-color: #842029; } [data-theme='dark'] .docusaurus-openai-search .ai-quality-badge { background-color: var(--ifm-color-emphasis-300); color: var(--ifm-color-secondary-lighter); border-color: var(--ifm-color-emphasis-400); } [data-theme='dark'] .docusaurus-openai-search .ai-has-code { background-color: #0d2d4e; color: #79c0ff; border-color: #1f6feb; } [data-theme='dark'] .docusaurus-openai-search .ai-has-steps { background-color: #0d2d4e; color: #79c0ff; border-color: #1f6feb; } [data-theme='dark'] .docusaurus-openai-search .ai-has-sources { background-color: #0d3a2e; color: #56d364; border-color: #238636; } /* Stage 3: Dark theme enhancement indicators */ [data-theme='dark'] .docusaurus-openai-search .ai-enhancement-badge { background-color: var(--ifm-color-emphasis-300); color: var(--ifm-color-secondary-lighter); border-color: var(--ifm-color-emphasis-400); } [data-theme='dark'] .docusaurus-openai-search .ai-finetuned-model { background-color: #1a3a1a; color: #a8d4a8; border-color: #4d7c4d; } [data-theme='dark'] .docusaurus-openai-search .ai-recursive-enhanced { background-color: #1a2e4a; color: #7dd3fc; border-color: #0ea5e9; } [data-theme='dark'] .docusaurus-openai-search .ai-docs-analyzed { background-color: #4a3c1a; color: #fbbf24; border-color: #d97706; } /* Week 3 Enhancement: Query analysis and feedback styles */ .docusaurus-openai-search .ai-feedback-section { margin-top: 24px; padding: 16px; background-color: var(--ifm-color-emphasis-100); border-radius: var(--ifm-card-border-radius); border: 1px solid var(--ifm-color-emphasis-200); } .docusaurus-openai-search .ai-query-analysis { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--ifm-color-emphasis-200); } .docusaurus-openai-search .ai-analysis-info { display: flex; align-items: center; gap: 8px; font-size: 0.875rem; } .docusaurus-openai-search .ai-analysis-label { color: var(--ifm-color-secondary-darkest); font-weight: var(--ifm-font-weight-medium); } .docusaurus-openai-search .ai-query-type { display: inline-flex; align-items: center; padding: 2px 8px; background-color: var(--ifm-color-primary-lightest); color: var(--ifm-color-primary-darkest); border-radius: var(--ifm-button-border-radius); font-size: 0.75rem; font-weight: var(--ifm-font-weight-medium); text-transform: capitalize; } .docusaurus-openai-search .ai-query-type-how-to { background-color: #e7f3ff; color: #0969da; } .docusaurus-openai-search .ai-query-type-what-is { background-color: #f0f9ff; color: #0284c7; } .docusaurus-openai-search .ai-query-type-troubleshooting { background-color: #fef3c7; color: #d97706; } .docusaurus-openai-search .ai-query-type-configuration { background-color: #ecfdf5; color: #059669; } .docusaurus-openai-search .ai-query-type-api-reference { background-color: #f3e8ff; color: #7c3aed; } .docusaurus-openai-search .ai-analysis-separator { color: var(--ifm-color-emphasis-400); } .docusaurus-openai-search .ai-complexity { font-size: 0.75rem; color: var(--ifm-color-secondary-dark); text-transform: capitalize; } .docusaurus-openai-search .ai-feedback-container { text-align: center; } .docusaurus-openai-search .ai-feedback-question { font-size: 0.9rem; color: var(--ifm-color-emphasis-800); margin-bottom: 12px; font-weight: var(--ifm-font-weight-medium); } .docusaurus-openai-search .ai-feedback-buttons { display: flex; justify-content: center; gap: 8px; } .docusaurus-openai-search .ai-feedback-btn { display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; border: 1px solid var(--ifm-color-emphasis-300); background-color: var(--ifm-background-color); color: var(--ifm-color-emphasis-800); border-radius: var(--ifm-button-border-radius); font-size: 0.875rem; cursor: pointer; transition: all var(--ifm-transition-fast); } .docusaurus-openai-search .ai-feedback-btn:hover { background-color: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-emphasis-400); } .docusaurus-openai-search .ai-feedback-helpful:hover { background-color: #d4edda; border-color: #c3e6cb; color: #155724; } .docusaurus-openai-search .ai-feedback-somewhat:hover { background-color: #fff3cd; border-color: #ffeaa7; color: #856404; } .docusaurus-openai-search .ai-feedback-not-helpful:hover { background-color: #f8d7da; border-color: #f5c6cb; color: #721c24; } .docusaurus-openai-search .ai-feedback-thanks { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 8px 16px; background-color: #d4edda; color: #155724; border-radius: var(--ifm-button-border-radius); font-size: 0.875rem; font-weight: var(--ifm-font-weight-medium); } .docusaurus-openai-search .ai-feedback-icon { font-weight: bold; font-size: 1rem; } /* Dark theme adjustments for Week 3 features */ [data-theme='dark'] .docusaurus-openai-search .ai-feedback-section { background-color: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-emphasis-300); } [data-theme='dark'] .docusaurus-openai-search .ai-query-analysis { border-bottom-color: var(--ifm-color-emphasis-300); } [data-theme='dark'] .docusaurus-openai-search .ai-query-type-how-to { background-color: #0d2d4e; color: #79c0ff; } [data-theme='dark'] .docusaurus-openai-search .ai-query-type-what-is { background-color: #0d2d4e; color: #58a6ff; } [data-theme='dark'] .docusaurus-openai-search .ai-query-type-troubleshooting { background-color: #4d3800; color: #ffd60a; } [data-theme='dark'] .docusaurus-openai-search .ai-query-type-configuration { background-color: #0d3a2e; color: #56d364; } [data-theme='dark'] .docusaurus-openai-search .ai-query-type-api-reference { background-color: #3d1a78; color: #d2a8ff; } [data-theme='dark'] .docusaurus-openai-search .ai-feedback-btn { background-color: var(--ifm-color-emphasis-300); border-color: var(--ifm-color-emphasis-400); color: var(--ifm-color-secondary-lighter); } [data-theme='dark'] .docusaurus-openai-search .ai-feedback-btn:hover { background-color: var(--ifm-color-emphasis-400); } [data-theme='dark'] .docusaurus-openai-search .ai-feedback-helpful:hover { background-color: #0f5132; color: #d1e7dd; border-color: #146c43; } [data-theme='dark'] .docusaurus-openai-search .ai-feedback-somewhat:hover { background-color: #664d03; color: #fff3cd; border-color: #b58900; } [data-theme='dark'] .docusaurus-openai-search .ai-feedback-not-helpful:hover { background-color: #58151c; color: #f8d7da; border-color: #842029; } [data-theme='dark'] .docusaurus-openai-search .ai-feedback-thanks { background-color: #0f5132; color: #d1e7dd; } .docusaurus-openai-search .ai-response { margin: 12px 0; } .docusaurus-openai-search .ai-response-text { max-width: 100%; overflow-x: auto; } .docusaurus-openai-search .ai-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 32px; text-align: center; color: var(--ifm-color-secondary-darkest); } .docusaurus-openai-search .ai-loading-spinner { display: inline-block; width: 32px; height: 32px; border: var(--ifm-global-border-width) solid var(--ifm-color-emphasis-200); border-radius: 50%; border-top-color: var(--ifm-color-primary); animation: ai-spin var(--ifm-transition-slow) ease-in-out infinite; margin-bottom: 12px; } @keyframes ai-spin { to { transform: rotate(360deg); } } /* Use Docusaurus admonition classes for errors and warnings */ .docusaurus-openai-search .admonition { margin: 24px 0; } .docusaurus-openai-search .ai-error-actions { margin: 12px 0; } .docusaurus-openai-search .ai-search-links { margin-top: 24px; text-align: left; padding: 0 16px; } .docusaurus-openai-search .ai-search-links ul { list-style-type: none; padding-left: 8px; margin: 16px 0; } .docusaurus-openai-search .ai-search-links li { margin-bottom: 16px; padding: 4px 0; } /* Search footer styling */ .docusaurus-openai-search .ai-search-footer { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-top: 1px solid var(--ifm-color-emphasis-200); } .docusaurus-openai-search .ai-search-footer-left { font-size: 0.875rem; } .docusaurus-openai-search .ai-search-see-all { color: var(--ifm-link-color); text-decoration: var(--ifm-link-decoration); } .docusaurus-openai-search .ai-search-see-all:hover { color: var(--ifm-link-hover-color); text-decoration: var(--ifm-link-hover-decoration); } .docusaurus-openai-search .ai-modal-footer { padding: 12px 16px; border-top: 1px solid var(--ifm-color-emphasis-200); color: var(--ifm-color-secondary-darkest); font-size: 0.875rem; text-align: center; background-color: var(--ifm-background-surface-color); margin-top: 16px; } /* Responsive Adjustments */ @media (max-width: 768px) { .docusaurus-openai-search .ai-modal-content { max-height: 100vh; margin: 0; border-radius: 0; width: 100%; } .docusaurus-openai-search .ai-modal-overlay { padding: 0; } } /* Code block styling - let Docusaurus handle most of it */ .markdown-body pre { background-color: var(--ifm-code-background); border-radius: 5px; color: var(--ifm-color-primary); padding: 16px; overflow: auto; margin-bottom: 16px; } .markdown-body code { font-family: var(--ifm-font-family-monospace); font-size: 0.9em; padding: 0.2em 0.4em; border-radius: 3px; background-color: var(--ifm-code-background); } .markdown-body pre code { padding: 0; background-color: transparent; border-radius: 0; font-size: 0.9em; line-height: 1.5; white-space: pre; color: inherit; } /* AI Loading Progress */ .ai-loading-status { margin-top: 16px; width: 100%; max-width: 400px; } .ai-progress-bar { width: 100%; height: 4px; background-color: var(--ifm-color-emphasis-200); border-radius: 2px; overflow: hidden; margin: 12px 0; } .ai-progress-fill { height: 100%; background-color: var(--ifm-color-primary); transition: width 0.3s ease; } .ai-step-message { font-size: 1rem; margin-bottom: 8px; font-weight: var(--ifm-font-weight-semibold); } /* P4-002: Loading state for markdown components */ .ai-loading-markdown { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; text-align: center; opacity: 0.8; } .ai-loading-markdown .ai-loading-spinner { width: 24px; height: 24px; margin-bottom: 1rem; } .ai-loading-markdown p { margin: 0; color: var(--ifm-color-emphasis-700); font-size: 0.9rem; } /* Remove all the redundant custom admonition styles and custom CSS variables */ /* AI Progress Details */ .ai-progress-details { margin-top: 20px; text-align: left; width: 100%; max-width: 500px; } .ai-keywords-section { margin-bottom: 16px; } .ai-keywords-section strong { display: block; margin-bottom: 8px; color: var(--ifm-color-emphasis-700); } .ai-keywords-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; } .ai-keyword-item { background-color: var(--ifm-color-primary-lightest); color: var(--ifm-color-primary-darker); padding: 4px 12px; border-radius: 16px; font-size: 0.875rem; border: 1px solid var(--ifm-color-primary-light); } .ai-documents-section { margin-top: 16px; } .ai-documents-section strong { display: block; margin-bottom: 8px; color: var(--ifm-color-emphasis-700); } .ai-document-links { list-style: none; padding: 0; margin: 8px 0 0 0; } .ai-document-link-item { margin-bottom: 4px; font-size: 0.875rem; } .ai-document-link-item a { color: var(--ifm-link-color); text-decoration: none; transition: color 0.2s ease; } .ai-document-link-item a:hover { color: var(--ifm-link-hover-color); text-decoration: underline; } .ai-document-link-more { font-style: italic; color: var(--ifm-color-secondary-darkest); font-size: 0.875rem; margin-top: 4px; } /* P3-001: Error Boundary Styles */ .error-boundary { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 0, 0, 0.8); backdrop-filter: blur(4px); font-family: var(--ifm-font-family-base); } .error-boundary-content { background: var(--ifm-background-color); border-radius: 8px; padding: 2rem; max-width: 600px; width: 90%; max-height: 80vh; overflow-y: auto; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); border: 1px solid var(--ifm-color-emphasis-200); } .error-boundary-header { text-align: center; margin-bottom: 2rem; } .error-boundary-title { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin: 0 0 1rem 0; color: var(--ifm-color-danger); font-size: 1.5rem; font-weight: 600; } .error-boundary-icon { color: var(--ifm-color-danger); } .error-boundary-description { color: var(--ifm-color-secondary); margin: 0; line-height: 1.6; } .error-boundary-actions { display: flex; gap: 1rem; justify-content: center; margin-bottom: 2rem; flex-wrap: wrap; } .error-boundary-button { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; border: none; border-radius: 6px; font-size: 0.875rem; font-weight: 500; cursor: pointer; transition: all 0.2s; text-decoration: none; } .error-boundary-button--primary { background: var(--ifm-color-primary); color: var(--ifm-color-primary-contrast-background); } .error-boundary-button--primary:hover { background: var(--ifm-color-primary-dark); } .error-boundary-button--secondary { background: var(--ifm-color-secondary); color: var(--ifm-color-secondary-contrast-background); } .error-boundary-button--secondary:hover { background: var(--ifm-color-secondary-dark); } .error-boundary-max-retries { text-align: center; } .error-boundary-max-retries p { margin: 0 0 1rem 0; color: var(--ifm-color-warning); } .error-boundary-details { margin-bottom: 2rem; } .error-boundary-details-toggle { background: transparent; border: 1px solid var(--ifm-color-emphasis-300); color: var(--ifm-color-content); padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; font-size: 0.875rem; transition: all 0.2s; } .error-boundary-details-toggle:hover { background: var(--ifm-color-emphasis-100); } .error-boundary-details-content { margin-top: 1rem; padding: 1rem; background: var(--ifm-color-emphasis-100); border-radius: 4px; border: 1px solid var(--ifm-color-emphasis-200); } .error-boundary-error-info h4 { margin: 0 0 0.5rem 0; color: var(--ifm-color-emphasis-800); font-size: 0.875rem; font-weight: 600; } .error-boundary-error-message, .error-boundary-stack-trace, .error-boundary-component-stack { background: var(--ifm-color-emphasis-200); padding: 1rem; border-radius: 4px; margin: 0.5rem 0 1rem 0; overflow-x: auto; font-family: var(--ifm-font-family-monospace); font-size: 0.75rem; line-height: 1.4; color: var(--ifm-color-emphasis-800); white-space: pre-wrap; word-break: break-word; } .error-boundary-footer { text-align: center; border-top: 1px solid var(--ifm-color-emphasis-200); padding-top: 1rem; } .error-boundary-help-text { margin: 0; color: var(--ifm-color-secondary); font-size: 0.875rem; } /* Dark theme adjustments */ [data-theme='dark'] .error-boundary-content { background: var(--ifm-background-color); border-color: var(--ifm-color-emphasis-300); } [data-theme='dark'] .error-boundary-details-content { background: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-emphasis-300); } [data-theme='dark'] .error-boundary-error-message, [data-theme='dark'] .error-boundary-stack-trace, [data-theme='dark'] .error-boundary-component-stack { background: var(--ifm-color-emphasis-300); color: var(--ifm-color-emphasis-900); } /* Responsive adjustments */ @media (max-width: 768px) { .error-boundary-content { padding: 1.5rem; width: 95%; } .error-boundary-actions { flex-direction: column; align-items: center; } .error-boundary-button { width: 100%; justify-content: center; } } /* Week 3 Enhancement: Query analysis and feedback styling */ .docusaurus-openai-search .ai-document-link-more { margin-top: 8px; font-size: 0.875rem; color: var(--ifm-color-emphasis-600); font-style: italic; } /* Stage 2: Multi-source search styling */ .docusaurus-openai-search .ai-search-sources-section { margin-top: 24px; padding: 16px; background-color: var(--ifm-color-emphasis-100); border-radius: var(--ifm-card-border-radius); border: 1px solid var(--ifm-color-emphasis-200); } .docusaurus-openai-search .ai-search-sources-title { margin: 0 0 16px 0; font-size: 1.125rem; font-weight: var(--ifm-font-weight-semibold); color: var(--ifm-color-emphasis-900); } .docusaurus-openai-search .ai-search-aggregation-metrics { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding: 8px 12px; background-color: var(--ifm-color-emphasis-200); border-radius: var(--ifm-button-border-radius); font-size: 0.875rem; } .docusaurus-openai-search .ai-search-total-sources { font-weight: var(--ifm-font-weight-semibold); color: var(--ifm-color-emphasis-800); } .docusaurus-openai-search .ai-search-confidence-score { font-weight: var(--ifm-font-weight-bold); color: var(--ifm-color-primary-dark); } .docusaurus-openai-search .ai-search-sources-list { display: flex; flex-direction: column; gap: 12px; } .docusaurus-openai-search .ai-search-source-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background-color: var(--ifm-background-surface-color); border-radius: var(--ifm-card-border-radius); border: 1px solid var(--ifm-color-emphasis-300); transition: all var(--ifm-transition-fast); } .docusaurus-openai-search .ai-search-source-item:hover { background-color: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-primary-light); } .docusaurus-openai-search .ai-search-source-item a { flex: 1; color: var(--ifm-color-primary-dark); text-decoration: none; font-weight: var(--ifm-font-weight-medium); font-size: 0.875rem; } .docusaurus-openai-search .ai-search-source-item a:hover { text-decoration: underline; color: var(--ifm-color-primary-darker); } .docusaurus-openai-search .ai-search-source-author { font-size: 0.75rem; color: var(--ifm-color-emphasis-600); margin-left: auto; } .docusaurus-openai-search .ai-search-source-timestamp { font-size: 0.75rem; color: var(--ifm-color-emphasis-500); margin-left: 8px; } /* Stage 2: Source type indicators */ .docusaurus-openai-search .ai-search-source-indicator { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: var(--ifm-button-border-radius); font-size: 0.75rem; font-weight: var(--ifm-font-weight-semibold); white-space: nowrap; flex-shrink: 0; } .docusaurus-openai-search .ai-search-source-documentation { background-color: #e3f2fd; color: #1565c0; border: 1px solid #bbdefb; } .docusaurus-openai-search .ai-search-source-github { background-color: #f3e5f5; color: #7b1fa2; border: 1px solid #e1bee7; } .docusaurus-openai-search .ai-search-source-blog { background-color: #fff3e0; color: #ef6c00; border: 1px solid #ffcc02; } .docusaurus-openai-search .ai-search-source-changelog { background-color: #e8f5e8; color: #2e7d32; border: 1px solid #c8e6c9; } /* Stage 2: Multi-source search progress indicators */ .docusaurus-openai-search .ai-search-source-progress { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .docusaurus-openai-search .ai-search-source-progress-item { display: flex; align-items: center; gap: 4px; padding: 2px 6px; border-radius: var(--ifm-button-border-radius); font-size: 0.75rem; background-color: var(--ifm-color-emphasis-200); color: var(--ifm-color-emphasis-700); } .docusaurus-openai-search .ai-search-source-progress-item.active { background-color: var(--ifm-color-primary-light); color: var(--ifm-color-primary-dark); } .docusaurus-openai-search .ai-search-source-progress-item.complete { background-color: var(--ifm-color-success-light); color: var(--ifm-color-success-dark); } /* Stage 2: Dark theme support for multi-source indicators */ [data-theme='dark'] .docusaurus-openai-search .ai-search-sources-section { background-color: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-emphasis-400); } [data-theme='dark'] .docusaurus-openai-search .ai-search-aggregation-metrics { background-color: var(--ifm-color-emphasis-300); } [data-theme='dark'] .docusaurus-openai-search .ai-search-source-item { background-color: var(--ifm-color-emphasis-300); border-color: var(--ifm-color-emphasis-500); } [data-theme='dark'] .docusaurus-openai-search .ai-search-source-item:hover { background-color: var(--ifm-color-emphasis-400); border-color: var(--ifm-color-primary); } [data-theme='dark'] .docusaurus-openai-search .ai-search-source-documentation { background-color: #1e3a8a; color: #93c5fd; border-color: #3b82f6; } [data-theme='dark'] .docusaurus-openai-search .ai-search-source-github { background-color: #581c87; color: #d8b4fe; border-color: #8b5cf6; } [data-theme='dark'] .docusaurus-openai-search .ai-search-source-blog { background-color: #9a3412; color: #fdba74; border-color: #f97316; } [data-theme='dark'] .docusaurus-openai-search .ai-search-source-changelog { background-color: #14532d; color: #86efac; border-color: #22c55e; } /* Stage 2: Responsive design for multi-source indicators */ @media (max-width: 768px) { .docusaurus-openai-search .ai-search-aggregation-metrics { flex-direction: column; gap: 8px; } .docusaurus-openai-search .ai-search-source-item { flex-direction: column; align-items: flex-start; gap: 8px; } .docusaurus-openai-search .ai-search-source-indicator { align-self: flex-start; } .docusaurus-openai-search .ai-search-source-author, .docusaurus-openai-search .ai-search-source-timestamp { margin-left: 0; } } /* Week 6: Follow-up questions styling */ .docusaurus-openai-search .ai-follow-up-section { margin-top: 24px; padding: 16px; background-color: var(--ifm-color-emphasis-100); border-radius: var(--ifm-card-border-radius); border: 1px solid var(--ifm-color-emphasis-200); } .docusaurus-openai-search .ai-follow-up-title { margin: 0 0 16px 0; font-size: 1rem; font-weight: var(--ifm-font-weight-semibold); color: var(--ifm-color-emphasis-900); display: flex; align-items: center; gap: 8px; } .docusaurus-openai-search .ai-follow-up-title:before { content: "💡"; font-size: 1.2rem; } .docusaurus-openai-search .ai-follow-up-questions { display: flex; flex-direction: column; gap: 8px; } .docusaurus-openai-search .ai-follow-up-question { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background-color: var(--ifm-background-surface-color); border: 1px solid var(--ifm-color-emphasis-300); border-radius: var(--ifm-button-border-radius); color: var(--ifm-color-primary-dark); text-align: left; cursor: pointer; transition: all var(--ifm-transition-fast); font-size: 0.875rem; font-weight: var(--ifm-font-weight-medium); width: 100%; } .docusaurus-openai-search .ai-follow-up-question:hover { background-color: var(--ifm-color-primary-lightest); border-color: var(--ifm-color-primary-light); color: var(--ifm-color-primary-darker); transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .docusaurus-openai-search .ai-follow-up-question:active { transform: translateY(0); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } .docusaurus-openai-search .ai-follow-up-icon { font-size: 1rem; flex-shrink: 0; opacity: 0.8; } /* Week 6: Conversation history (for debugging) */ .docusaurus-openai-search .ai-conversation-history { margin-top: 16px; padding: 12px; background-color: var(--ifm-color-emphasis-200); border-radius: var(--ifm-card-border-radius); border: 1px solid var(--ifm-color-emphasis-300); font-size: 0.75rem; color: var(--ifm-color-emphasis-700); } .docusaurus-openai-search .ai-conversation-history h4 { margin: 0 0 8px 0; font-size: 0.875rem; font-weight: var(--ifm-font-weight-semibold); } .docusaurus-openai-search .ai-history-turn { margin-bottom: 8px; padding: 6px 8px; background-color: var(--ifm-background-surface-color); border-radius: 4px; } .docusaurus-openai-search .ai-history-query { font-weight: var(--ifm-font-weight-semibold); color: var(--ifm-color-primary-dark); } .docusaurus-openai-search .ai-history-answer { margin-top: 2px; opacity: 0.8; } /* Week 6: Session indicator */ .docusaurus-openai-search .ai-session-indicator { display: inline-flex; align-items: center; gap: 4px; padding: 2px 6px; background-color: var(--ifm-color-success-lightest); color: var(--ifm-color-success-dark); border-radius: var(--ifm-button-border-radius); font-size: 0.75rem; font-weight: var(--ifm-font-weight-medium); margin-left: 8px; } .docusaurus-openai-search .ai-session-indicator:before { content: "🔄"; font-size: 0.75rem; } /* Week 6: Dark theme support for intelligence layer features */ [data-theme='dark'] .docusaurus-openai-search .ai-follow-up-section { background-color: var(--ifm-color-emphasis-200); border-color: var(--ifm-color-emphasis-400); } [data-theme='dark'] .docusaurus-openai-search .ai-follow-up-question { background-color: var(--ifm-color-emphasis-300); border-color: var(--ifm-color-emphasis-500); color: var(--ifm-color-primary-light); } [data-theme='dark'] .docusaurus-openai-search .ai-follow-up-question:hover { background-color: var(--ifm-color-emphasis-400); border-color: var(--ifm-color-primary); color: var(--ifm-color-primary-lighter); } [data-theme='dark'] .docusaurus-openai-search .ai-conversation-history { background-color: var(--ifm-color-emphasis-300); border-color: var(--ifm-color-emphasis-500); } [data-theme='dark'] .docusaurus-openai-search .ai-history-turn { background-color: var(--ifm-color-emphasis-400); } [data-theme='dark'] .docusaurus-openai-search .ai-session-indicator { background-color: var(--ifm-color-success-dark); color: var(--ifm-color-success-lightest); } /* Week 6: Responsive design for follow-up questions */ @media (max-width: 768px) { .docusaurus-openai-search .ai-follow-up-question { padding: 10px 12px; font-size: 0.8rem; } .docusaurus-openai-search .ai-follow-up-title { font-size: 0.9rem; } }