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
CSS
/* 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 ;
}
/* Ensure DocSearch input can handle long queries */
.DocSearch-Input {
max-width: none ;
width: 100% ;
overflow: visible ;
text-overflow: clip ;
white-space: nowrap ;
padding-right: 50px ; /* Make room for any buttons/icons */
}
/* Ensure the search form container doesn't restrict width */
.DocSearch-Form {
width: 100% ;
max-width: none ;
overflow: visible ;
}
/* Make sure the input wrapper doesn't have any restrictions */
.DocSearch-InputWrapper {
width: 100% ;
max-width: none ;
overflow: visible ;
}
/* Ensure the modal is wide enough for long queries */
.DocSearch-Modal {
max-width: 90vw ;
}
.DocSearch-SearchBar {
max-width: none ;
z-index: 9002 ;
}
.docusaurus-openai-search .DocSearch-Dropdown {
z-index: 9001 ;
}
/* 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;
}
}