@iota-uz/sdk 0.4.40 → 0.4.42

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.
@@ -81,6 +81,11 @@
81
81
  --bichat-color-border: var(--bichat-color-gray-200);
82
82
  --bichat-color-border-subtle: var(--bichat-color-gray-100);
83
83
  --bichat-color-border-strong: var(--bichat-color-gray-300);
84
+ --bichat-color-border-brand: var(--bichat-color-primary-500);
85
+ --bichat-color-border-danger: var(--bichat-color-error-500);
86
+ --bichat-color-border-warning: var(--bichat-color-warning-500);
87
+ --bichat-color-border-success: var(--bichat-color-success-500);
88
+ --bichat-color-border-disabled: var(--bichat-color-gray-200);
84
89
  --bichat-color-accent: var(--bichat-color-primary-600);
85
90
  --bichat-color-accent-hover: var(--bichat-color-primary-700);
86
91
  --bichat-color-accent-muted: var(--bichat-color-primary-100);
@@ -214,6 +219,11 @@
214
219
  --bichat-color-border: var(--bichat-color-gray-700);
215
220
  --bichat-color-border-subtle: var(--bichat-color-gray-800);
216
221
  --bichat-color-border-strong: var(--bichat-color-gray-600);
222
+ --bichat-color-border-brand: var(--bichat-color-primary-400);
223
+ --bichat-color-border-danger: var(--bichat-color-error-600);
224
+ --bichat-color-border-warning: var(--bichat-color-warning-500);
225
+ --bichat-color-border-success: var(--bichat-color-success-600);
226
+ --bichat-color-border-disabled: var(--bichat-color-gray-800);
217
227
  --bichat-color-accent-muted: var(--bichat-color-primary-900);
218
228
  --bichat-color-user-bubble-bg: var(--bichat-color-primary-700);
219
229
  --bichat-color-assistant-bubble-bg: var(--bichat-color-gray-800);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ui/src/bichat/styles.css"],"sourcesContent":["/**\n * BI-Chat UI Styles\n * Comprehensive CSS variable system for theming and customization\n */\n\n/* =============================================================================\n CSS Variables - Design Tokens\n ============================================================================= */\n\n:root,\n:host {\n /* -------------------------------------------------------------------------\n Spacing Scale\n ------------------------------------------------------------------------- */\n --bichat-spacing-0: 0;\n --bichat-spacing-px: 1px;\n --bichat-spacing-0_5: 0.125rem;\n --bichat-spacing-1: 0.25rem;\n --bichat-spacing-1_5: 0.375rem;\n --bichat-spacing-2: 0.5rem;\n --bichat-spacing-2_5: 0.625rem;\n --bichat-spacing-3: 0.75rem;\n --bichat-spacing-3_5: 0.875rem;\n --bichat-spacing-4: 1rem;\n --bichat-spacing-5: 1.25rem;\n --bichat-spacing-6: 1.5rem;\n --bichat-spacing-7: 1.75rem;\n --bichat-spacing-8: 2rem;\n --bichat-spacing-9: 2.25rem;\n --bichat-spacing-10: 2.5rem;\n --bichat-spacing-12: 3rem;\n --bichat-spacing-14: 3.5rem;\n --bichat-spacing-16: 4rem;\n\n /* Semantic spacing aliases */\n --bichat-spacing-xs: var(--bichat-spacing-1);\n --bichat-spacing-sm: var(--bichat-spacing-2);\n --bichat-spacing-md: var(--bichat-spacing-4);\n --bichat-spacing-lg: var(--bichat-spacing-6);\n --bichat-spacing-xl: var(--bichat-spacing-8);\n --bichat-spacing-2xl: var(--bichat-spacing-12);\n\n /* -------------------------------------------------------------------------\n Color Palette - Gray Scale\n ------------------------------------------------------------------------- */\n --bichat-color-gray-50: #f9fafb;\n --bichat-color-gray-100: #f3f4f6;\n --bichat-color-gray-200: #e5e7eb;\n --bichat-color-gray-300: #d1d5db;\n --bichat-color-gray-400: #9ca3af;\n --bichat-color-gray-500: #6b7280;\n --bichat-color-gray-600: #4b5563;\n --bichat-color-gray-700: #374151;\n --bichat-color-gray-800: #1f2937;\n --bichat-color-gray-900: #111827;\n --bichat-color-gray-950: #030712;\n\n /* -------------------------------------------------------------------------\n Color Palette - Primary (Blue)\n ------------------------------------------------------------------------- */\n --bichat-color-primary-50: #eff6ff;\n --bichat-color-primary-100: #dbeafe;\n --bichat-color-primary-200: #bfdbfe;\n --bichat-color-primary-300: #93c5fd;\n --bichat-color-primary-400: #60a5fa;\n --bichat-color-primary-500: #3b82f6;\n --bichat-color-primary-600: #2563eb;\n --bichat-color-primary-700: #1d4ed8;\n --bichat-color-primary-800: #1e40af;\n --bichat-color-primary-900: #1e3a8a;\n --bichat-color-primary-950: #172554;\n\n /* -------------------------------------------------------------------------\n Color Palette - Semantic Colors\n ------------------------------------------------------------------------- */\n --bichat-color-success-50: #f0fdf4;\n --bichat-color-success-500: #22c55e;\n --bichat-color-success-600: #16a34a;\n --bichat-color-success-700: #15803d;\n\n --bichat-color-error-50: #fef2f2;\n --bichat-color-error-500: #ef4444;\n --bichat-color-error-600: #dc2626;\n --bichat-color-error-700: #b91c1c;\n\n --bichat-color-warning-50: #fffbeb;\n --bichat-color-warning-500: #f59e0b;\n --bichat-color-warning-600: #d97706;\n --bichat-color-warning-700: #b45309;\n\n --bichat-color-info-50: #eff6ff;\n --bichat-color-info-500: #3b82f6;\n --bichat-color-info-600: #2563eb;\n --bichat-color-info-700: #1d4ed8;\n\n /* -------------------------------------------------------------------------\n Semantic Color Tokens (Light Mode)\n ------------------------------------------------------------------------- */\n --bichat-color-bg: var(--bichat-color-gray-50);\n --bichat-color-bg-subtle: var(--bichat-color-gray-100);\n --bichat-color-bg-muted: var(--bichat-color-gray-200);\n\n --bichat-color-surface: #ffffff;\n --bichat-color-surface-raised: #ffffff;\n --bichat-color-surface-overlay: rgba(255, 255, 255, 0.9);\n\n --bichat-color-text: var(--bichat-color-gray-900);\n --bichat-color-text-secondary: var(--bichat-color-gray-600);\n --bichat-color-text-muted: var(--bichat-color-gray-500);\n --bichat-color-text-disabled: var(--bichat-color-gray-400);\n --bichat-color-text-inverse: #ffffff;\n --bichat-color-code-text: var(--bichat-color-gray-800);\n --bichat-color-code-bg: var(--bichat-color-gray-100);\n --bichat-color-text-icon: var(--bichat-color-gray-500);\n\n --bichat-color-border: var(--bichat-color-gray-200);\n --bichat-color-border-subtle: var(--bichat-color-gray-100);\n --bichat-color-border-strong: var(--bichat-color-gray-300);\n\n --bichat-color-accent: var(--bichat-color-primary-600);\n --bichat-color-accent-hover: var(--bichat-color-primary-700);\n --bichat-color-accent-muted: var(--bichat-color-primary-100);\n\n /* Chat-specific semantic tokens */\n --bichat-color-user-bubble-bg: var(--bichat-color-primary-600);\n --bichat-color-user-bubble-text: #ffffff;\n --bichat-color-user-bubble-border: transparent;\n\n --bichat-color-assistant-bubble-bg: var(--bichat-color-surface);\n --bichat-color-assistant-bubble-text: var(--bichat-color-text);\n --bichat-color-assistant-bubble-border: var(--bichat-color-border);\n\n --bichat-color-system-bubble-bg: var(--bichat-color-bg-subtle);\n --bichat-color-system-bubble-text: var(--bichat-color-text-secondary);\n\n --bichat-color-input-bg: var(--bichat-color-surface);\n --bichat-color-input-text: var(--bichat-color-text);\n --bichat-color-input-border: var(--bichat-color-border);\n --bichat-color-input-focus-border: var(--bichat-color-accent);\n --bichat-color-input-placeholder: var(--bichat-color-text-muted);\n\n /* -------------------------------------------------------------------------\n Typography\n ------------------------------------------------------------------------- */\n --bichat-font-family: 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI',\n 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n --bichat-font-family-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace;\n\n --bichat-font-size-xs: 0.75rem;\n --bichat-font-size-sm: 0.875rem;\n --bichat-font-size-base: 1rem;\n --bichat-font-size-lg: 1.125rem;\n --bichat-font-size-xl: 1.25rem;\n --bichat-font-size-2xl: 1.5rem;\n --bichat-font-size-3xl: 1.875rem;\n\n --bichat-font-weight-normal: 400;\n --bichat-font-weight-medium: 500;\n --bichat-font-weight-semibold: 600;\n --bichat-font-weight-bold: 700;\n\n --bichat-line-height-tight: 1.25;\n --bichat-line-height-normal: 1.5;\n --bichat-line-height-relaxed: 1.625;\n\n --bichat-letter-spacing-tight: -0.025em;\n --bichat-letter-spacing-normal: 0;\n --bichat-letter-spacing-wide: 0.025em;\n\n /* -------------------------------------------------------------------------\n Border Radius\n ------------------------------------------------------------------------- */\n --bichat-radius-none: 0;\n --bichat-radius-sm: 0.125rem;\n --bichat-radius-default: 0.25rem;\n --bichat-radius-md: 0.375rem;\n --bichat-radius-lg: 0.5rem;\n --bichat-radius-xl: 0.75rem;\n --bichat-radius-2xl: 1rem;\n --bichat-radius-3xl: 1.5rem;\n --bichat-radius-full: 9999px;\n\n /* Semantic radius aliases */\n --bichat-radius-bubble: var(--bichat-radius-2xl);\n --bichat-radius-bubble-tail: var(--bichat-radius-sm);\n --bichat-radius-button: var(--bichat-radius-lg);\n --bichat-radius-input: var(--bichat-radius-lg);\n --bichat-radius-card: var(--bichat-radius-xl);\n --bichat-radius-modal: var(--bichat-radius-2xl);\n\n /* -------------------------------------------------------------------------\n Shadows\n ------------------------------------------------------------------------- */\n --bichat-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --bichat-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --bichat-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);\n --bichat-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);\n --bichat-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --bichat-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n --bichat-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);\n --bichat-shadow-none: 0 0 #0000;\n\n /* Focus ring (WCAG 2.4.7 Focus Visible - high contrast for keyboard users) */\n --bichat-ring-width: 2px;\n --bichat-ring-offset: 2px;\n --bichat-ring-color: var(--bichat-color-primary-500);\n --bichat-focus-ring: 0 0 0 var(--bichat-ring-width) var(--bichat-ring-color);\n --bichat-focus-ring-offset: 0 0 0 var(--bichat-ring-offset) var(--bichat-color-surface);\n\n /* -------------------------------------------------------------------------\n Transitions & Animation\n ------------------------------------------------------------------------- */\n --bichat-transition-fast: 100ms;\n --bichat-transition-normal: 150ms;\n --bichat-transition-slow: 200ms;\n --bichat-transition-slower: 300ms;\n\n --bichat-ease-default: cubic-bezier(0.4, 0, 0.2, 1);\n --bichat-ease-in: cubic-bezier(0.4, 0, 1, 1);\n --bichat-ease-out: cubic-bezier(0, 0, 0.2, 1);\n --bichat-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --bichat-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n\n /* -------------------------------------------------------------------------\n Z-Index Scale\n ------------------------------------------------------------------------- */\n --bichat-z-base: 0;\n --bichat-z-dropdown: 10;\n --bichat-z-sticky: 20;\n --bichat-z-overlay: 30;\n --bichat-z-modal: 40;\n --bichat-z-popover: 50;\n --bichat-z-toast: 60;\n --bichat-z-tooltip: 70;\n\n /* -------------------------------------------------------------------------\n Component-Specific Sizes\n ------------------------------------------------------------------------- */\n --bichat-avatar-size-sm: 1.5rem;\n --bichat-avatar-size-md: 2rem;\n --bichat-avatar-size-lg: 2.5rem;\n --bichat-avatar-size-xl: 3rem;\n\n --bichat-bubble-max-width: 75%;\n --bichat-bubble-assistant-max-width: 85%;\n\n --bichat-input-min-height: 2.5rem;\n --bichat-input-max-height: 12rem;\n\n --bichat-color-chart-grid: rgba(148, 163, 184, 0.15);\n\n /* Legacy compatibility (keep for backward compat) */\n --bichat-primary: var(--bichat-color-primary-500);\n --bichat-bg: var(--bichat-color-bg);\n --bichat-text: var(--bichat-color-text);\n --bichat-border: var(--bichat-color-border);\n --bichat-bubble-user: var(--bichat-color-user-bubble-bg);\n --bichat-bubble-assistant: var(--bichat-color-assistant-bubble-bg);\n}\n\n/* =============================================================================\n Dark Mode Overrides\n ============================================================================= */\n\n/* Class-based dark mode (for Tailwind .dark class) */\n.dark,\n[data-theme=\"dark\"] {\n --bichat-color-bg: var(--bichat-color-gray-900);\n --bichat-color-bg-subtle: var(--bichat-color-gray-800);\n --bichat-color-bg-muted: var(--bichat-color-gray-700);\n\n --bichat-color-surface: var(--bichat-color-gray-800);\n --bichat-color-surface-raised: var(--bichat-color-gray-750, #2d3748);\n --bichat-color-surface-overlay: rgba(31, 41, 55, 0.9);\n\n --bichat-color-text: var(--bichat-color-gray-100);\n --bichat-color-text-secondary: var(--bichat-color-gray-300);\n --bichat-color-text-muted: var(--bichat-color-gray-400);\n --bichat-color-text-disabled: var(--bichat-color-gray-500);\n --bichat-color-code-text: var(--bichat-color-gray-200);\n --bichat-color-code-bg: var(--bichat-color-gray-800);\n --bichat-color-text-icon: var(--bichat-color-gray-400);\n\n --bichat-color-border: var(--bichat-color-gray-700);\n --bichat-color-border-subtle: var(--bichat-color-gray-800);\n --bichat-color-border-strong: var(--bichat-color-gray-600);\n\n --bichat-color-accent-muted: var(--bichat-color-primary-900);\n\n /* Chat-specific dark mode */\n --bichat-color-user-bubble-bg: var(--bichat-color-primary-700);\n --bichat-color-assistant-bubble-bg: var(--bichat-color-gray-800);\n --bichat-color-assistant-bubble-border: var(--bichat-color-gray-700);\n --bichat-color-system-bubble-bg: var(--bichat-color-gray-800);\n\n --bichat-color-input-bg: var(--bichat-color-gray-800);\n --bichat-color-input-border: var(--bichat-color-gray-700);\n\n /* Legacy compatibility */\n --bichat-bg: var(--bichat-color-bg);\n --bichat-text: var(--bichat-color-text);\n --bichat-border: var(--bichat-color-border);\n --bichat-bubble-assistant: var(--bichat-color-assistant-bubble-bg);\n\n --bichat-color-chart-grid: rgba(148, 163, 184, 0.1);\n\n /* Adjust shadows for dark mode */\n --bichat-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);\n --bichat-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.3);\n --bichat-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.4);\n}\n\n/* =============================================================================\n Base Styles\n ============================================================================= */\n\n.bichat-session {\n background-color: var(--bichat-color-bg);\n color: var(--bichat-color-text);\n font-family: var(--bichat-font-family);\n font-size: var(--bichat-font-size-base);\n line-height: var(--bichat-line-height-normal);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Buttons and button-like elements: pointer cursor; disabled: not-allowed\n :host is required when styles are injected into the applet shadow root (bi-chat-root) */\n:host button,\n:host [role=\"button\"],\n:host [role=\"tab\"],\n.bichat-session button,\n.bichat-session [role=\"button\"],\n.bichat-session [role=\"tab\"],\nbi-chat-root button,\nbi-chat-root [role=\"button\"],\nbi-chat-root [role=\"tab\"] {\n cursor: pointer;\n}\n:host button:disabled,\n:host [role=\"button\"][aria-disabled=\"true\"],\n.bichat-session button:disabled,\n.bichat-session [role=\"button\"][aria-disabled=\"true\"],\nbi-chat-root button:disabled,\nbi-chat-root [role=\"button\"][aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n\n/* Focus visible: high-contrast focus rings for keyboard navigation (WCAG 2.4.7) */\n.bichat-session button:focus-visible,\n.bichat-session a:focus-visible,\n.bichat-session input:focus-visible,\n.bichat-session textarea:focus-visible,\n.bichat-session [role=\"button\"]:focus-visible,\n.bichat-session [role=\"menuitem\"]:focus-visible,\n.bichat-session [role=\"tab\"]:focus-visible,\n.bichat-session select:focus-visible,\n.bichat-session [tabindex]:not([tabindex=\"-1\"]):focus-visible,\nbi-chat-root button:focus-visible,\nbi-chat-root a:focus-visible,\nbi-chat-root input:focus-visible,\nbi-chat-root textarea:focus-visible,\nbi-chat-root [role=\"button\"]:focus-visible,\nbi-chat-root [role=\"menuitem\"]:focus-visible,\nbi-chat-root [role=\"tab\"]:focus-visible,\nbi-chat-root select:focus-visible,\nbi-chat-root [tabindex]:not([tabindex=\"-1\"]):focus-visible {\n outline: none;\n box-shadow: var(--bichat-focus-ring-offset), var(--bichat-focus-ring);\n border-radius: inherit;\n}\n\n.dark .bichat-session button:focus-visible,\n.dark .bichat-session a:focus-visible,\n.dark .bichat-session input:focus-visible,\n.dark .bichat-session textarea:focus-visible,\n.dark .bichat-session [role=\"button\"]:focus-visible,\n.dark .bichat-session [role=\"menuitem\"]:focus-visible,\n.dark .bichat-session [role=\"tab\"]:focus-visible,\n.dark .bichat-session select:focus-visible,\n.dark .bichat-session [tabindex]:not([tabindex=\"-1\"]):focus-visible,\n.dark bi-chat-root button:focus-visible,\n.dark bi-chat-root a:focus-visible,\n.dark bi-chat-root input:focus-visible,\n.dark bi-chat-root textarea:focus-visible,\n.dark bi-chat-root [role=\"button\"]:focus-visible,\n.dark bi-chat-root [role=\"menuitem\"]:focus-visible,\n.dark bi-chat-root [role=\"tab\"]:focus-visible,\n.dark bi-chat-root select:focus-visible,\n.dark bi-chat-root [tabindex]:not([tabindex=\"-1\"]):focus-visible {\n --bichat-focus-ring: 0 0 0 var(--bichat-ring-width) var(--bichat-color-primary-400);\n}\n\n/* =============================================================================\n Scrollbar Styles\n ============================================================================= */\n\n.bichat-messages::-webkit-scrollbar {\n width: 8px;\n}\n\n.bichat-messages::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.bichat-messages::-webkit-scrollbar-thumb {\n background: var(--bichat-color-gray-300);\n border-radius: var(--bichat-radius-full);\n}\n\n.bichat-messages::-webkit-scrollbar-thumb:hover {\n background: var(--bichat-color-gray-400);\n}\n\n.dark .bichat-messages::-webkit-scrollbar-thumb {\n background: var(--bichat-color-gray-600);\n}\n\n.dark .bichat-messages::-webkit-scrollbar-thumb:hover {\n background: var(--bichat-color-gray-500);\n}\n\n/* =============================================================================\n Animations\n ============================================================================= */\n\n@keyframes bichat-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n}\n\n@keyframes bichat-bounce {\n 0%, 100% {\n transform: translateY(0);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n\n@keyframes bichat-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes bichat-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes bichat-slide-up {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.animate-pulse {\n animation: bichat-pulse 1s var(--bichat-ease-in-out) infinite;\n}\n\n.animate-bounce {\n animation: bichat-bounce 1s infinite;\n}\n\n.animate-spin {\n animation: bichat-spin 1s linear infinite;\n}\n\n.animate-fade-in {\n animation: bichat-fade-in var(--bichat-transition-normal) var(--bichat-ease-out);\n}\n\n.animate-slide-up {\n animation: bichat-slide-up var(--bichat-transition-slow) var(--bichat-ease-out);\n}\n\n/* =============================================================================\n Thinking Shimmer Animation\n ============================================================================= */\n\n.bichat-thinking-shimmer {\n -webkit-mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 20%,\n rgba(0, 0, 0, 1) 40%,\n rgba(0, 0, 0, 0.2) 50%,\n rgba(0, 0, 0, 1) 60%,\n rgba(0, 0, 0, 1) 80%\n );\n mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 20%,\n rgba(0, 0, 0, 1) 40%,\n rgba(0, 0, 0, 0.2) 50%,\n rgba(0, 0, 0, 1) 60%,\n rgba(0, 0, 0, 1) 80%\n );\n -webkit-mask-size: 300% 100%;\n mask-size: 300% 100%;\n animation: bichat-thinking-shimmer 4.5s linear infinite;\n}\n\n.dark .bichat-thinking-shimmer {\n -webkit-mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 15%,\n rgba(0, 0, 0, 1) 35%,\n rgba(0, 0, 0, 0.3) 50%,\n rgba(0, 0, 0, 1) 65%,\n rgba(0, 0, 0, 1) 85%\n );\n mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 15%,\n rgba(0, 0, 0, 1) 35%,\n rgba(0, 0, 0, 0.3) 50%,\n rgba(0, 0, 0, 1) 65%,\n rgba(0, 0, 0, 1) 85%\n );\n}\n\n@keyframes bichat-toast-progress {\n from { transform: scaleX(1); }\n to { transform: scaleX(0); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .bichat-thinking-shimmer,\n .animate-pulse,\n .animate-bounce,\n .animate-spin,\n .animate-fade-in,\n .animate-slide-up {\n animation: none;\n }\n}\n\n@keyframes bichat-thinking-shimmer {\n 0% { -webkit-mask-position: 130% 0; mask-position: 130% 0; }\n 100% { -webkit-mask-position: -30% 0; mask-position: -30% 0; }\n}\n\n/* =============================================================================\n Prose / Markdown Styles\n ============================================================================= */\n\n.prose {\n color: var(--bichat-color-text);\n font-size: var(--bichat-font-size-base);\n line-height: var(--bichat-line-height-relaxed);\n}\n\n.prose > :first-child {\n margin-top: 0;\n}\n\n.prose > :last-child {\n margin-bottom: 0;\n}\n\n.prose h1,\n.prose h2,\n.prose h3,\n.prose h4,\n.prose h5,\n.prose h6 {\n color: var(--bichat-color-text);\n font-weight: var(--bichat-font-weight-semibold);\n margin-top: 1.5em;\n margin-bottom: 0.5em;\n line-height: var(--bichat-line-height-tight);\n}\n\n.prose h1 {\n font-size: 1.625rem;\n font-weight: var(--bichat-font-weight-bold);\n}\n\n.prose h2 {\n font-size: 1.375rem;\n margin-top: 2em;\n}\n\n.prose h3 {\n font-size: var(--bichat-font-size-lg);\n font-weight: var(--bichat-font-weight-semibold);\n}\n\n.prose h4 { font-size: var(--bichat-font-size-base); }\n\n.prose > * + h2 {\n margin-top: 2em;\n}\n\n.prose p {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n\n.prose strong {\n font-weight: var(--bichat-font-weight-semibold);\n color: var(--bichat-color-text);\n}\n\n.prose code {\n background-color: var(--bichat-color-code-bg);\n color: var(--bichat-color-code-text);\n padding: 0.2em 0.5em;\n border-radius: var(--bichat-radius-md);\n border: 1px solid var(--bichat-color-border-subtle);\n font-family: var(--bichat-font-family-mono);\n font-size: 0.875em;\n}\n\n.prose pre {\n background-color: var(--bichat-color-code-bg);\n color: var(--bichat-color-gray-100);\n padding: var(--bichat-spacing-4);\n border-radius: var(--bichat-radius-lg);\n overflow-x: auto;\n margin-top: 1em;\n margin-bottom: 1em;\n font-family: var(--bichat-font-family-mono);\n font-size: var(--bichat-font-size-sm);\n line-height: var(--bichat-line-height-relaxed);\n}\n\n.prose pre code {\n background-color: transparent;\n padding: 0;\n color: inherit;\n font-size: inherit;\n border-radius: 0;\n border: none;\n}\n\n.prose a {\n color: var(--bichat-color-accent);\n text-decoration: none;\n font-weight: var(--bichat-font-weight-medium);\n}\n\n.prose a:hover {\n text-decoration: underline;\n}\n\n.prose ul,\n.prose ol {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n padding-left: 1.5em;\n}\n\n.prose ul {\n list-style-type: disc;\n}\n\n.prose ol {\n list-style-type: decimal;\n}\n\n.prose li {\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n.prose li > ul,\n.prose li > ol {\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n.prose blockquote {\n border-left: 4px solid var(--bichat-color-border-strong);\n padding-left: var(--bichat-spacing-4);\n margin-left: 0;\n font-style: italic;\n color: var(--bichat-color-text-secondary);\n}\n\n.prose hr {\n border: 0;\n border-top: 1px solid var(--bichat-color-border);\n margin: 2em 0;\n}\n\n.prose table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1em;\n margin-bottom: 1em;\n font-size: var(--bichat-font-size-sm);\n}\n\n.prose th,\n.prose td {\n border: 1px solid var(--bichat-color-border);\n padding: var(--bichat-spacing-2) var(--bichat-spacing-3);\n text-align: left;\n}\n\n.prose th {\n background-color: var(--bichat-color-bg-subtle);\n font-weight: var(--bichat-font-weight-semibold);\n}\n\n.prose tbody tr:nth-child(even) {\n background-color: var(--bichat-color-bg-subtle);\n}\n\n/* Keep rendered formulas readable within chat bubbles. */\n.markdown-content math[display='block'] {\n display: block;\n overflow-x: auto;\n overflow-y: hidden;\n padding: 0.25rem 0;\n}\n\n/* =============================================================================\n Focus Styles\n ============================================================================= */\n\n.bichat-focus-ring:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--bichat-ring-offset) var(--bichat-color-bg),\n 0 0 0 calc(var(--bichat-ring-offset) + var(--bichat-ring-width)) var(--bichat-ring-color);\n}\n\n/* =============================================================================\n Utility Classes\n ============================================================================= */\n\n.bichat-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../ui/src/bichat/styles.css"],"sourcesContent":["/**\n * BI-Chat UI Styles\n * Comprehensive CSS variable system for theming and customization\n */\n\n/* =============================================================================\n CSS Variables - Design Tokens\n ============================================================================= */\n\n:root,\n:host {\n /* -------------------------------------------------------------------------\n Spacing Scale\n ------------------------------------------------------------------------- */\n --bichat-spacing-0: 0;\n --bichat-spacing-px: 1px;\n --bichat-spacing-0_5: 0.125rem;\n --bichat-spacing-1: 0.25rem;\n --bichat-spacing-1_5: 0.375rem;\n --bichat-spacing-2: 0.5rem;\n --bichat-spacing-2_5: 0.625rem;\n --bichat-spacing-3: 0.75rem;\n --bichat-spacing-3_5: 0.875rem;\n --bichat-spacing-4: 1rem;\n --bichat-spacing-5: 1.25rem;\n --bichat-spacing-6: 1.5rem;\n --bichat-spacing-7: 1.75rem;\n --bichat-spacing-8: 2rem;\n --bichat-spacing-9: 2.25rem;\n --bichat-spacing-10: 2.5rem;\n --bichat-spacing-12: 3rem;\n --bichat-spacing-14: 3.5rem;\n --bichat-spacing-16: 4rem;\n\n /* Semantic spacing aliases */\n --bichat-spacing-xs: var(--bichat-spacing-1);\n --bichat-spacing-sm: var(--bichat-spacing-2);\n --bichat-spacing-md: var(--bichat-spacing-4);\n --bichat-spacing-lg: var(--bichat-spacing-6);\n --bichat-spacing-xl: var(--bichat-spacing-8);\n --bichat-spacing-2xl: var(--bichat-spacing-12);\n\n /* -------------------------------------------------------------------------\n Color Palette - Gray Scale\n ------------------------------------------------------------------------- */\n --bichat-color-gray-50: #f9fafb;\n --bichat-color-gray-100: #f3f4f6;\n --bichat-color-gray-200: #e5e7eb;\n --bichat-color-gray-300: #d1d5db;\n --bichat-color-gray-400: #9ca3af;\n --bichat-color-gray-500: #6b7280;\n --bichat-color-gray-600: #4b5563;\n --bichat-color-gray-700: #374151;\n --bichat-color-gray-800: #1f2937;\n --bichat-color-gray-900: #111827;\n --bichat-color-gray-950: #030712;\n\n /* -------------------------------------------------------------------------\n Color Palette - Primary (Blue)\n ------------------------------------------------------------------------- */\n --bichat-color-primary-50: #eff6ff;\n --bichat-color-primary-100: #dbeafe;\n --bichat-color-primary-200: #bfdbfe;\n --bichat-color-primary-300: #93c5fd;\n --bichat-color-primary-400: #60a5fa;\n --bichat-color-primary-500: #3b82f6;\n --bichat-color-primary-600: #2563eb;\n --bichat-color-primary-700: #1d4ed8;\n --bichat-color-primary-800: #1e40af;\n --bichat-color-primary-900: #1e3a8a;\n --bichat-color-primary-950: #172554;\n\n /* -------------------------------------------------------------------------\n Color Palette - Semantic Colors\n ------------------------------------------------------------------------- */\n --bichat-color-success-50: #f0fdf4;\n --bichat-color-success-500: #22c55e;\n --bichat-color-success-600: #16a34a;\n --bichat-color-success-700: #15803d;\n\n --bichat-color-error-50: #fef2f2;\n --bichat-color-error-500: #ef4444;\n --bichat-color-error-600: #dc2626;\n --bichat-color-error-700: #b91c1c;\n\n --bichat-color-warning-50: #fffbeb;\n --bichat-color-warning-500: #f59e0b;\n --bichat-color-warning-600: #d97706;\n --bichat-color-warning-700: #b45309;\n\n --bichat-color-info-50: #eff6ff;\n --bichat-color-info-500: #3b82f6;\n --bichat-color-info-600: #2563eb;\n --bichat-color-info-700: #1d4ed8;\n\n /* -------------------------------------------------------------------------\n Semantic Color Tokens (Light Mode)\n ------------------------------------------------------------------------- */\n --bichat-color-bg: var(--bichat-color-gray-50);\n --bichat-color-bg-subtle: var(--bichat-color-gray-100);\n --bichat-color-bg-muted: var(--bichat-color-gray-200);\n\n --bichat-color-surface: #ffffff;\n --bichat-color-surface-raised: #ffffff;\n --bichat-color-surface-overlay: rgba(255, 255, 255, 0.9);\n\n --bichat-color-text: var(--bichat-color-gray-900);\n --bichat-color-text-secondary: var(--bichat-color-gray-600);\n --bichat-color-text-muted: var(--bichat-color-gray-500);\n --bichat-color-text-disabled: var(--bichat-color-gray-400);\n --bichat-color-text-inverse: #ffffff;\n --bichat-color-code-text: var(--bichat-color-gray-800);\n --bichat-color-code-bg: var(--bichat-color-gray-100);\n --bichat-color-text-icon: var(--bichat-color-gray-500);\n\n --bichat-color-border: var(--bichat-color-gray-200);\n --bichat-color-border-subtle: var(--bichat-color-gray-100);\n --bichat-color-border-strong: var(--bichat-color-gray-300);\n --bichat-color-border-brand: var(--bichat-color-primary-500);\n --bichat-color-border-danger: var(--bichat-color-error-500);\n --bichat-color-border-warning: var(--bichat-color-warning-500);\n --bichat-color-border-success: var(--bichat-color-success-500);\n --bichat-color-border-disabled: var(--bichat-color-gray-200);\n\n --bichat-color-accent: var(--bichat-color-primary-600);\n --bichat-color-accent-hover: var(--bichat-color-primary-700);\n --bichat-color-accent-muted: var(--bichat-color-primary-100);\n\n /* Chat-specific semantic tokens */\n --bichat-color-user-bubble-bg: var(--bichat-color-primary-600);\n --bichat-color-user-bubble-text: #ffffff;\n --bichat-color-user-bubble-border: transparent;\n\n --bichat-color-assistant-bubble-bg: var(--bichat-color-surface);\n --bichat-color-assistant-bubble-text: var(--bichat-color-text);\n --bichat-color-assistant-bubble-border: var(--bichat-color-border);\n\n --bichat-color-system-bubble-bg: var(--bichat-color-bg-subtle);\n --bichat-color-system-bubble-text: var(--bichat-color-text-secondary);\n\n --bichat-color-input-bg: var(--bichat-color-surface);\n --bichat-color-input-text: var(--bichat-color-text);\n --bichat-color-input-border: var(--bichat-color-border);\n --bichat-color-input-focus-border: var(--bichat-color-accent);\n --bichat-color-input-placeholder: var(--bichat-color-text-muted);\n\n /* -------------------------------------------------------------------------\n Typography\n ------------------------------------------------------------------------- */\n --bichat-font-family: 'Gilroy', -apple-system, BlinkMacSystemFont, 'Segoe UI',\n 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n --bichat-font-family-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo,\n Consolas, 'Liberation Mono', monospace;\n\n --bichat-font-size-xs: 0.75rem;\n --bichat-font-size-sm: 0.875rem;\n --bichat-font-size-base: 1rem;\n --bichat-font-size-lg: 1.125rem;\n --bichat-font-size-xl: 1.25rem;\n --bichat-font-size-2xl: 1.5rem;\n --bichat-font-size-3xl: 1.875rem;\n\n --bichat-font-weight-normal: 400;\n --bichat-font-weight-medium: 500;\n --bichat-font-weight-semibold: 600;\n --bichat-font-weight-bold: 700;\n\n --bichat-line-height-tight: 1.25;\n --bichat-line-height-normal: 1.5;\n --bichat-line-height-relaxed: 1.625;\n\n --bichat-letter-spacing-tight: -0.025em;\n --bichat-letter-spacing-normal: 0;\n --bichat-letter-spacing-wide: 0.025em;\n\n /* -------------------------------------------------------------------------\n Border Radius\n ------------------------------------------------------------------------- */\n --bichat-radius-none: 0;\n --bichat-radius-sm: 0.125rem;\n --bichat-radius-default: 0.25rem;\n --bichat-radius-md: 0.375rem;\n --bichat-radius-lg: 0.5rem;\n --bichat-radius-xl: 0.75rem;\n --bichat-radius-2xl: 1rem;\n --bichat-radius-3xl: 1.5rem;\n --bichat-radius-full: 9999px;\n\n /* Semantic radius aliases */\n --bichat-radius-bubble: var(--bichat-radius-2xl);\n --bichat-radius-bubble-tail: var(--bichat-radius-sm);\n --bichat-radius-button: var(--bichat-radius-lg);\n --bichat-radius-input: var(--bichat-radius-lg);\n --bichat-radius-card: var(--bichat-radius-xl);\n --bichat-radius-modal: var(--bichat-radius-2xl);\n\n /* -------------------------------------------------------------------------\n Shadows\n ------------------------------------------------------------------------- */\n --bichat-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --bichat-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --bichat-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);\n --bichat-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);\n --bichat-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --bichat-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n --bichat-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);\n --bichat-shadow-none: 0 0 #0000;\n\n /* Focus ring (WCAG 2.4.7 Focus Visible - high contrast for keyboard users) */\n --bichat-ring-width: 2px;\n --bichat-ring-offset: 2px;\n --bichat-ring-color: var(--bichat-color-primary-500);\n --bichat-focus-ring: 0 0 0 var(--bichat-ring-width) var(--bichat-ring-color);\n --bichat-focus-ring-offset: 0 0 0 var(--bichat-ring-offset) var(--bichat-color-surface);\n\n /* -------------------------------------------------------------------------\n Transitions & Animation\n ------------------------------------------------------------------------- */\n --bichat-transition-fast: 100ms;\n --bichat-transition-normal: 150ms;\n --bichat-transition-slow: 200ms;\n --bichat-transition-slower: 300ms;\n\n --bichat-ease-default: cubic-bezier(0.4, 0, 0.2, 1);\n --bichat-ease-in: cubic-bezier(0.4, 0, 1, 1);\n --bichat-ease-out: cubic-bezier(0, 0, 0.2, 1);\n --bichat-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --bichat-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n\n /* -------------------------------------------------------------------------\n Z-Index Scale\n ------------------------------------------------------------------------- */\n --bichat-z-base: 0;\n --bichat-z-dropdown: 10;\n --bichat-z-sticky: 20;\n --bichat-z-overlay: 30;\n --bichat-z-modal: 40;\n --bichat-z-popover: 50;\n --bichat-z-toast: 60;\n --bichat-z-tooltip: 70;\n\n /* -------------------------------------------------------------------------\n Component-Specific Sizes\n ------------------------------------------------------------------------- */\n --bichat-avatar-size-sm: 1.5rem;\n --bichat-avatar-size-md: 2rem;\n --bichat-avatar-size-lg: 2.5rem;\n --bichat-avatar-size-xl: 3rem;\n\n --bichat-bubble-max-width: 75%;\n --bichat-bubble-assistant-max-width: 85%;\n\n --bichat-input-min-height: 2.5rem;\n --bichat-input-max-height: 12rem;\n\n --bichat-color-chart-grid: rgba(148, 163, 184, 0.15);\n\n /* Legacy compatibility (keep for backward compat) */\n --bichat-primary: var(--bichat-color-primary-500);\n --bichat-bg: var(--bichat-color-bg);\n --bichat-text: var(--bichat-color-text);\n --bichat-border: var(--bichat-color-border);\n --bichat-bubble-user: var(--bichat-color-user-bubble-bg);\n --bichat-bubble-assistant: var(--bichat-color-assistant-bubble-bg);\n}\n\n/* =============================================================================\n Dark Mode Overrides\n ============================================================================= */\n\n/* Class-based dark mode (for Tailwind .dark class) */\n.dark,\n[data-theme=\"dark\"] {\n --bichat-color-bg: var(--bichat-color-gray-900);\n --bichat-color-bg-subtle: var(--bichat-color-gray-800);\n --bichat-color-bg-muted: var(--bichat-color-gray-700);\n\n --bichat-color-surface: var(--bichat-color-gray-800);\n --bichat-color-surface-raised: var(--bichat-color-gray-750, #2d3748);\n --bichat-color-surface-overlay: rgba(31, 41, 55, 0.9);\n\n --bichat-color-text: var(--bichat-color-gray-100);\n --bichat-color-text-secondary: var(--bichat-color-gray-300);\n --bichat-color-text-muted: var(--bichat-color-gray-400);\n --bichat-color-text-disabled: var(--bichat-color-gray-500);\n --bichat-color-code-text: var(--bichat-color-gray-200);\n --bichat-color-code-bg: var(--bichat-color-gray-800);\n --bichat-color-text-icon: var(--bichat-color-gray-400);\n\n --bichat-color-border: var(--bichat-color-gray-700);\n --bichat-color-border-subtle: var(--bichat-color-gray-800);\n --bichat-color-border-strong: var(--bichat-color-gray-600);\n --bichat-color-border-brand: var(--bichat-color-primary-400);\n --bichat-color-border-danger: var(--bichat-color-error-600);\n --bichat-color-border-warning: var(--bichat-color-warning-500);\n --bichat-color-border-success: var(--bichat-color-success-600);\n --bichat-color-border-disabled: var(--bichat-color-gray-800);\n\n --bichat-color-accent-muted: var(--bichat-color-primary-900);\n\n /* Chat-specific dark mode */\n --bichat-color-user-bubble-bg: var(--bichat-color-primary-700);\n --bichat-color-assistant-bubble-bg: var(--bichat-color-gray-800);\n --bichat-color-assistant-bubble-border: var(--bichat-color-gray-700);\n --bichat-color-system-bubble-bg: var(--bichat-color-gray-800);\n\n --bichat-color-input-bg: var(--bichat-color-gray-800);\n --bichat-color-input-border: var(--bichat-color-gray-700);\n\n /* Legacy compatibility */\n --bichat-bg: var(--bichat-color-bg);\n --bichat-text: var(--bichat-color-text);\n --bichat-border: var(--bichat-color-border);\n --bichat-bubble-assistant: var(--bichat-color-assistant-bubble-bg);\n\n --bichat-color-chart-grid: rgba(148, 163, 184, 0.1);\n\n /* Adjust shadows for dark mode */\n --bichat-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);\n --bichat-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.3);\n --bichat-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.4);\n}\n\n/* =============================================================================\n Base Styles\n ============================================================================= */\n\n.bichat-session {\n background-color: var(--bichat-color-bg);\n color: var(--bichat-color-text);\n font-family: var(--bichat-font-family);\n font-size: var(--bichat-font-size-base);\n line-height: var(--bichat-line-height-normal);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Buttons and button-like elements: pointer cursor; disabled: not-allowed\n :host is required when styles are injected into the applet shadow root (bi-chat-root) */\n:host button,\n:host [role=\"button\"],\n:host [role=\"tab\"],\n.bichat-session button,\n.bichat-session [role=\"button\"],\n.bichat-session [role=\"tab\"],\nbi-chat-root button,\nbi-chat-root [role=\"button\"],\nbi-chat-root [role=\"tab\"] {\n cursor: pointer;\n}\n:host button:disabled,\n:host [role=\"button\"][aria-disabled=\"true\"],\n.bichat-session button:disabled,\n.bichat-session [role=\"button\"][aria-disabled=\"true\"],\nbi-chat-root button:disabled,\nbi-chat-root [role=\"button\"][aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n\n/* Focus visible: high-contrast focus rings for keyboard navigation (WCAG 2.4.7) */\n.bichat-session button:focus-visible,\n.bichat-session a:focus-visible,\n.bichat-session input:focus-visible,\n.bichat-session textarea:focus-visible,\n.bichat-session [role=\"button\"]:focus-visible,\n.bichat-session [role=\"menuitem\"]:focus-visible,\n.bichat-session [role=\"tab\"]:focus-visible,\n.bichat-session select:focus-visible,\n.bichat-session [tabindex]:not([tabindex=\"-1\"]):focus-visible,\nbi-chat-root button:focus-visible,\nbi-chat-root a:focus-visible,\nbi-chat-root input:focus-visible,\nbi-chat-root textarea:focus-visible,\nbi-chat-root [role=\"button\"]:focus-visible,\nbi-chat-root [role=\"menuitem\"]:focus-visible,\nbi-chat-root [role=\"tab\"]:focus-visible,\nbi-chat-root select:focus-visible,\nbi-chat-root [tabindex]:not([tabindex=\"-1\"]):focus-visible {\n outline: none;\n box-shadow: var(--bichat-focus-ring-offset), var(--bichat-focus-ring);\n border-radius: inherit;\n}\n\n.dark .bichat-session button:focus-visible,\n.dark .bichat-session a:focus-visible,\n.dark .bichat-session input:focus-visible,\n.dark .bichat-session textarea:focus-visible,\n.dark .bichat-session [role=\"button\"]:focus-visible,\n.dark .bichat-session [role=\"menuitem\"]:focus-visible,\n.dark .bichat-session [role=\"tab\"]:focus-visible,\n.dark .bichat-session select:focus-visible,\n.dark .bichat-session [tabindex]:not([tabindex=\"-1\"]):focus-visible,\n.dark bi-chat-root button:focus-visible,\n.dark bi-chat-root a:focus-visible,\n.dark bi-chat-root input:focus-visible,\n.dark bi-chat-root textarea:focus-visible,\n.dark bi-chat-root [role=\"button\"]:focus-visible,\n.dark bi-chat-root [role=\"menuitem\"]:focus-visible,\n.dark bi-chat-root [role=\"tab\"]:focus-visible,\n.dark bi-chat-root select:focus-visible,\n.dark bi-chat-root [tabindex]:not([tabindex=\"-1\"]):focus-visible {\n --bichat-focus-ring: 0 0 0 var(--bichat-ring-width) var(--bichat-color-primary-400);\n}\n\n/* =============================================================================\n Scrollbar Styles\n ============================================================================= */\n\n.bichat-messages::-webkit-scrollbar {\n width: 8px;\n}\n\n.bichat-messages::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.bichat-messages::-webkit-scrollbar-thumb {\n background: var(--bichat-color-gray-300);\n border-radius: var(--bichat-radius-full);\n}\n\n.bichat-messages::-webkit-scrollbar-thumb:hover {\n background: var(--bichat-color-gray-400);\n}\n\n.dark .bichat-messages::-webkit-scrollbar-thumb {\n background: var(--bichat-color-gray-600);\n}\n\n.dark .bichat-messages::-webkit-scrollbar-thumb:hover {\n background: var(--bichat-color-gray-500);\n}\n\n/* =============================================================================\n Animations\n ============================================================================= */\n\n@keyframes bichat-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n}\n\n@keyframes bichat-bounce {\n 0%, 100% {\n transform: translateY(0);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n\n@keyframes bichat-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes bichat-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes bichat-slide-up {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.animate-pulse {\n animation: bichat-pulse 1s var(--bichat-ease-in-out) infinite;\n}\n\n.animate-bounce {\n animation: bichat-bounce 1s infinite;\n}\n\n.animate-spin {\n animation: bichat-spin 1s linear infinite;\n}\n\n.animate-fade-in {\n animation: bichat-fade-in var(--bichat-transition-normal) var(--bichat-ease-out);\n}\n\n.animate-slide-up {\n animation: bichat-slide-up var(--bichat-transition-slow) var(--bichat-ease-out);\n}\n\n/* =============================================================================\n Thinking Shimmer Animation\n ============================================================================= */\n\n.bichat-thinking-shimmer {\n -webkit-mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 20%,\n rgba(0, 0, 0, 1) 40%,\n rgba(0, 0, 0, 0.2) 50%,\n rgba(0, 0, 0, 1) 60%,\n rgba(0, 0, 0, 1) 80%\n );\n mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 20%,\n rgba(0, 0, 0, 1) 40%,\n rgba(0, 0, 0, 0.2) 50%,\n rgba(0, 0, 0, 1) 60%,\n rgba(0, 0, 0, 1) 80%\n );\n -webkit-mask-size: 300% 100%;\n mask-size: 300% 100%;\n animation: bichat-thinking-shimmer 4.5s linear infinite;\n}\n\n.dark .bichat-thinking-shimmer {\n -webkit-mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 15%,\n rgba(0, 0, 0, 1) 35%,\n rgba(0, 0, 0, 0.3) 50%,\n rgba(0, 0, 0, 1) 65%,\n rgba(0, 0, 0, 1) 85%\n );\n mask-image: linear-gradient(\n -45deg,\n rgba(0, 0, 0, 1) 15%,\n rgba(0, 0, 0, 1) 35%,\n rgba(0, 0, 0, 0.3) 50%,\n rgba(0, 0, 0, 1) 65%,\n rgba(0, 0, 0, 1) 85%\n );\n}\n\n@keyframes bichat-toast-progress {\n from { transform: scaleX(1); }\n to { transform: scaleX(0); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .bichat-thinking-shimmer,\n .animate-pulse,\n .animate-bounce,\n .animate-spin,\n .animate-fade-in,\n .animate-slide-up {\n animation: none;\n }\n}\n\n@keyframes bichat-thinking-shimmer {\n 0% { -webkit-mask-position: 130% 0; mask-position: 130% 0; }\n 100% { -webkit-mask-position: -30% 0; mask-position: -30% 0; }\n}\n\n/* =============================================================================\n Prose / Markdown Styles\n ============================================================================= */\n\n.prose {\n color: var(--bichat-color-text);\n font-size: var(--bichat-font-size-base);\n line-height: var(--bichat-line-height-relaxed);\n}\n\n.prose > :first-child {\n margin-top: 0;\n}\n\n.prose > :last-child {\n margin-bottom: 0;\n}\n\n.prose h1,\n.prose h2,\n.prose h3,\n.prose h4,\n.prose h5,\n.prose h6 {\n color: var(--bichat-color-text);\n font-weight: var(--bichat-font-weight-semibold);\n margin-top: 1.5em;\n margin-bottom: 0.5em;\n line-height: var(--bichat-line-height-tight);\n}\n\n.prose h1 {\n font-size: 1.625rem;\n font-weight: var(--bichat-font-weight-bold);\n}\n\n.prose h2 {\n font-size: 1.375rem;\n margin-top: 2em;\n}\n\n.prose h3 {\n font-size: var(--bichat-font-size-lg);\n font-weight: var(--bichat-font-weight-semibold);\n}\n\n.prose h4 { font-size: var(--bichat-font-size-base); }\n\n.prose > * + h2 {\n margin-top: 2em;\n}\n\n.prose p {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n\n.prose strong {\n font-weight: var(--bichat-font-weight-semibold);\n color: var(--bichat-color-text);\n}\n\n.prose code {\n background-color: var(--bichat-color-code-bg);\n color: var(--bichat-color-code-text);\n padding: 0.2em 0.5em;\n border-radius: var(--bichat-radius-md);\n border: 1px solid var(--bichat-color-border-subtle);\n font-family: var(--bichat-font-family-mono);\n font-size: 0.875em;\n}\n\n.prose pre {\n background-color: var(--bichat-color-code-bg);\n color: var(--bichat-color-gray-100);\n padding: var(--bichat-spacing-4);\n border-radius: var(--bichat-radius-lg);\n overflow-x: auto;\n margin-top: 1em;\n margin-bottom: 1em;\n font-family: var(--bichat-font-family-mono);\n font-size: var(--bichat-font-size-sm);\n line-height: var(--bichat-line-height-relaxed);\n}\n\n.prose pre code {\n background-color: transparent;\n padding: 0;\n color: inherit;\n font-size: inherit;\n border-radius: 0;\n border: none;\n}\n\n.prose a {\n color: var(--bichat-color-accent);\n text-decoration: none;\n font-weight: var(--bichat-font-weight-medium);\n}\n\n.prose a:hover {\n text-decoration: underline;\n}\n\n.prose ul,\n.prose ol {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n padding-left: 1.5em;\n}\n\n.prose ul {\n list-style-type: disc;\n}\n\n.prose ol {\n list-style-type: decimal;\n}\n\n.prose li {\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n.prose li > ul,\n.prose li > ol {\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n.prose blockquote {\n border-left: 4px solid var(--bichat-color-border-strong);\n padding-left: var(--bichat-spacing-4);\n margin-left: 0;\n font-style: italic;\n color: var(--bichat-color-text-secondary);\n}\n\n.prose hr {\n border: 0;\n border-top: 1px solid var(--bichat-color-border);\n margin: 2em 0;\n}\n\n.prose table {\n width: 100%;\n border-collapse: collapse;\n margin-top: 1em;\n margin-bottom: 1em;\n font-size: var(--bichat-font-size-sm);\n}\n\n.prose th,\n.prose td {\n border: 1px solid var(--bichat-color-border);\n padding: var(--bichat-spacing-2) var(--bichat-spacing-3);\n text-align: left;\n}\n\n.prose th {\n background-color: var(--bichat-color-bg-subtle);\n font-weight: var(--bichat-font-weight-semibold);\n}\n\n.prose tbody tr:nth-child(even) {\n background-color: var(--bichat-color-bg-subtle);\n}\n\n/* Keep rendered formulas readable within chat bubbles. */\n.markdown-content math[display='block'] {\n display: block;\n overflow-x: auto;\n overflow-y: hidden;\n padding: 0.25rem 0;\n}\n\n/* =============================================================================\n Focus Styles\n ============================================================================= */\n\n.bichat-focus-ring:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--bichat-ring-offset) var(--bichat-color-bg),\n 0 0 0 calc(var(--bichat-ring-offset) + var(--bichat-ring-width)) var(--bichat-ring-color);\n}\n\n/* =============================================================================\n Utility Classes\n ============================================================================= */\n\n.bichat-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n"],"mappings":";AASA;AACA;AAIE,sBAAoB;AACpB,uBAAqB;AACrB,wBAAsB;AACtB,sBAAoB;AACpB,wBAAsB;AACtB,sBAAoB;AACpB,wBAAsB;AACtB,sBAAoB;AACpB,wBAAsB;AACtB,sBAAoB;AACpB,sBAAoB;AACpB,sBAAoB;AACpB,sBAAoB;AACpB,sBAAoB;AACpB,sBAAoB;AACpB,uBAAqB;AACrB,uBAAqB;AACrB,uBAAqB;AACrB,uBAAqB;AAGrB,uBAAqB,IAAI;AACzB,uBAAqB,IAAI;AACzB,uBAAqB,IAAI;AACzB,uBAAqB,IAAI;AACzB,uBAAqB,IAAI;AACzB,wBAAsB,IAAI;AAK1B,0BAAwB;AACxB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AAKzB,6BAA2B;AAC3B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAK5B,6BAA2B;AAC3B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAE5B,2BAAyB;AACzB,4BAA0B;AAC1B,4BAA0B;AAC1B,4BAA0B;AAE1B,6BAA2B;AAC3B,8BAA4B;AAC5B,8BAA4B;AAC5B,8BAA4B;AAE5B,0BAAwB;AACxB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AAKzB,qBAAmB,IAAI;AACvB,4BAA0B,IAAI;AAC9B,2BAAyB,IAAI;AAE7B,0BAAwB;AACxB,iCAA+B;AAC/B,kCAAgC,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAEpD,uBAAqB,IAAI;AACzB,iCAA+B,IAAI;AACnC,6BAA2B,IAAI;AAC/B,gCAA8B,IAAI;AAClC,+BAA6B;AAC7B,4BAA0B,IAAI;AAC9B,0BAAwB,IAAI;AAC5B,4BAA0B,IAAI;AAE9B,yBAAuB,IAAI;AAC3B,gCAA8B,IAAI;AAClC,gCAA8B,IAAI;AAClC,+BAA6B,IAAI;AACjC,gCAA8B,IAAI;AAClC,iCAA+B,IAAI;AACnC,iCAA+B,IAAI;AACnC,kCAAgC,IAAI;AAEpC,yBAAuB,IAAI;AAC3B,+BAA6B,IAAI;AACjC,+BAA6B,IAAI;AAGjC,iCAA+B,IAAI;AACnC,mCAAiC;AACjC,qCAAmC;AAEnC,sCAAoC,IAAI;AACxC,wCAAsC,IAAI;AAC1C,0CAAwC,IAAI;AAE5C,mCAAiC,IAAI;AACrC,qCAAmC,IAAI;AAEvC,2BAAyB,IAAI;AAC7B,6BAA2B,IAAI;AAC/B,+BAA6B,IAAI;AACjC,qCAAmC,IAAI;AACvC,oCAAkC,IAAI;AAKtC;AAAA,IAAsB,QAAQ;AAAA,IAAE,aAAa;AAAA,IAAE,kBAAkB;AAAA,IAAE,UAAU;AAAA,IAC3E,QAAQ;AAAA,IAAE,QAAQ;AAAA,IAAE,QAAQ;AAAA,IAAE,WAAW;AAAA,IAAE,WAAW;AAAA,IAAE,YAAY;AAAA,IACpE,gBAAgB;AAAA,IAAE;AACpB;AAAA,IAA2B,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,SAAS;AAAA,IAAE,KAAK;AAAA,IACvE,QAAQ;AAAA,IAAE,iBAAiB;AAAA,IAAE;AAE/B,yBAAuB;AACvB,yBAAuB;AACvB,2BAAyB;AACzB,yBAAuB;AACvB,yBAAuB;AACvB,0BAAwB;AACxB,0BAAwB;AAExB,+BAA6B;AAC7B,+BAA6B;AAC7B,iCAA+B;AAC/B,6BAA2B;AAE3B,8BAA4B;AAC5B,+BAA6B;AAC7B,gCAA8B;AAE9B,iCAA+B;AAC/B,kCAAgC;AAChC,gCAA8B;AAK9B,wBAAsB;AACtB,sBAAoB;AACpB,2BAAyB;AACzB,sBAAoB;AACpB,sBAAoB;AACpB,sBAAoB;AACpB,uBAAqB;AACrB,uBAAqB;AACrB,wBAAsB;AAGtB,0BAAwB,IAAI;AAC5B,+BAA6B,IAAI;AACjC,0BAAwB,IAAI;AAC5B,yBAAuB,IAAI;AAC3B,wBAAsB,IAAI;AAC1B,yBAAuB,IAAI;AAK3B,sBAAoB,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9C,sBAAoB,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjF,sBAAoB,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpF,sBAAoB,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtF,sBAAoB,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvF,uBAAqB,EAAE,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrD,yBAAuB,MAAM,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvD,wBAAsB,EAAE,EAAE;AAG1B,uBAAqB;AACrB,wBAAsB;AACtB,uBAAqB,IAAI;AACzB,uBAAqB,EAAE,EAAE,EAAE,IAAI,qBAAqB,IAAI;AACxD,8BAA4B,EAAE,EAAE,EAAE,IAAI,sBAAsB,IAAI;AAKhE,4BAA0B;AAC1B,8BAA4B;AAC5B,4BAA0B;AAC1B,8BAA4B;AAE5B,yBAAuB,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACjD,oBAAkB,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,qBAAmB,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AAC3C,wBAAsB,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAChD,wBAAsB,aAAa,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAKvD,mBAAiB;AACjB,uBAAqB;AACrB,qBAAmB;AACnB,sBAAoB;AACpB,oBAAkB;AAClB,sBAAoB;AACpB,oBAAkB;AAClB,sBAAoB;AAKpB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AACzB,2BAAyB;AAEzB,6BAA2B;AAC3B,uCAAqC;AAErC,6BAA2B;AAC3B,6BAA2B;AAE3B,6BAA2B,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAG/C,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,iBAAe,IAAI;AACnB,mBAAiB,IAAI;AACrB,wBAAsB,IAAI;AAC1B,6BAA2B,IAAI;AACjC;AAOA,CAAC;AACD,CAAC;AACC,qBAAmB,IAAI;AACvB,4BAA0B,IAAI;AAC9B,2BAAyB,IAAI;AAE7B,0BAAwB,IAAI;AAC5B,iCAA+B,IAAI,uBAAuB,EAAE;AAC5D,kCAAgC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAEjD,uBAAqB,IAAI;AACzB,iCAA+B,IAAI;AACnC,6BAA2B,IAAI;AAC/B,gCAA8B,IAAI;AAClC,4BAA0B,IAAI;AAC9B,0BAAwB,IAAI;AAC5B,4BAA0B,IAAI;AAE9B,yBAAuB,IAAI;AAC3B,gCAA8B,IAAI;AAClC,gCAA8B,IAAI;AAClC,+BAA6B,IAAI;AACjC,gCAA8B,IAAI;AAClC,iCAA+B,IAAI;AACnC,iCAA+B,IAAI;AACnC,kCAAgC,IAAI;AAEpC,+BAA6B,IAAI;AAGjC,iCAA+B,IAAI;AACnC,sCAAoC,IAAI;AACxC,0CAAwC,IAAI;AAC5C,mCAAiC,IAAI;AAErC,2BAAyB,IAAI;AAC7B,+BAA6B,IAAI;AAGjC,eAAa,IAAI;AACjB,iBAAe,IAAI;AACnB,mBAAiB,IAAI;AACrB,6BAA2B,IAAI;AAE/B,6BAA2B,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAG/C,sBAAoB,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjF,sBAAoB,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpF,sBAAoB,EAAE,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxF;AAMA,CAAC;AACC,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,0BAAwB;AACxB,2BAAyB;AAC3B;AAIA,MAAM;AACN,MAAM,CAAC;AACP,MAAM,CAAC;AACP,CAfC,eAee;AAChB,CAhBC,eAgBe,CAAC;AACjB,CAjBC,eAiBe,CAAC;AACjB,aAAa;AACb,aAAa,CAAC;AACd,aAAa,CAAC;AACZ,UAAQ;AACV;AACA,MAAM,MAAM;AACZ,MAAM,CAAC,YAAc,CAAC;AACtB,CAzBC,eAyBe,MAAM;AACtB,CA1BC,eA0Be,CAAC,YAAc,CAAC;AAChC,aAAa,MAAM;AACnB,aAAa,CAAC,YAAc,CAAC;AAC3B,UAAQ;AACV;AAGA,CAjCC,eAiCe,MAAM;AACtB,CAlCC,eAkCe,CAAC;AACjB,CAnCC,eAmCe,KAAK;AACrB,CApCC,eAoCe,QAAQ;AACxB,CArCC,eAqCe,CAAC,YAAc;AAC/B,CAtCC,eAsCe,CAAC,cAAgB;AACjC,CAvCC,eAuCe,CAAC,SAAW;AAC5B,CAxCC,eAwCe,MAAM;AACtB,CAzCC,eAyCe,CAAC,SAAS,KAAK,CAAC,eAAe;AAC/C,aAAa,MAAM;AACnB,aAAa,CAAC;AACd,aAAa,KAAK;AAClB,aAAa,QAAQ;AACrB,aAAa,CAAC,YAAc;AAC5B,aAAa,CAAC,cAAgB;AAC9B,aAAa,CAAC,SAAW;AACzB,aAAa,MAAM;AACnB,aAAa,CAAC,SAAS,KAAK,CAAC,eAAe;AAC1C,WAAS;AACT,cAAY,IAAI,2BAA2B,EAAE,IAAI;AACjD,iBAAe;AACjB;AAEA,CAhHC,KAgHK,CAxDL,eAwDqB,MAAM;AAC5B,CAjHC,KAiHK,CAzDL,eAyDqB,CAAC;AACvB,CAlHC,KAkHK,CA1DL,eA0DqB,KAAK;AAC3B,CAnHC,KAmHK,CA3DL,eA2DqB,QAAQ;AAC9B,CApHC,KAoHK,CA5DL,eA4DqB,CAAC,YAAc;AACrC,CArHC,KAqHK,CA7DL,eA6DqB,CAAC,cAAgB;AACvC,CAtHC,KAsHK,CA9DL,eA8DqB,CAAC,SAAW;AAClC,CAvHC,KAuHK,CA/DL,eA+DqB,MAAM;AAC5B,CAxHC,KAwHK,CAhEL,eAgEqB,CAAC,SAAS,KAAK,CAAC,eAAe;AACrD,CAzHC,KAyHK,aAAa,MAAM;AACzB,CA1HC,KA0HK,aAAa,CAAC;AACpB,CA3HC,KA2HK,aAAa,KAAK;AACxB,CA5HC,KA4HK,aAAa,QAAQ;AAC3B,CA7HC,KA6HK,aAAa,CAAC,YAAc;AAClC,CA9HC,KA8HK,aAAa,CAAC,cAAgB;AACpC,CA/HC,KA+HK,aAAa,CAAC,SAAW;AAC/B,CAhIC,KAgIK,aAAa,MAAM;AACzB,CAjIC,KAiIK,aAAa,CAAC,SAAS,KAAK,CAAC,eAAe;AAChD,uBAAqB,EAAE,EAAE,EAAE,IAAI,qBAAqB,IAAI;AAC1D;AAMA,CAAC,eAAe;AACd,SAAO;AACT;AAEA,CAJC,eAIe;AACd,cAAY;AACd;AAEA,CARC,eAQe;AACd,cAAY,IAAI;AAChB,iBAAe,IAAI;AACrB;AAEA,CAbC,eAae,yBAAyB;AACvC,cAAY,IAAI;AAClB;AAEA,CA1JC,KA0JK,CAjBL,eAiBqB;AACpB,cAAY,IAAI;AAClB;AAEA,CA9JC,KA8JK,CArBL,eAqBqB,yBAAyB;AAC7C,cAAY,IAAI;AAClB;AAMA,WAAW;AACT;AACE,aAAS;AACX;AACA;AACE,aAAS;AACX;AACF;AAEA,WAAW;AACT;AACE,eAAW,WAAW;AACtB,+BAA2B,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AACrD;AACA;AACE,eAAW,WAAW;AACtB,+BAA2B,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACrD;AACF;AAEA,WAAW;AACT;AACE,eAAW,OAAO;AACpB;AACA;AACE,eAAW,OAAO;AACpB;AACF;AAEA,WAAW;AACT;AACE,aAAS;AACX;AACA;AACE,aAAS;AACX;AACF;AAEA,WAAW;AACT;AACE,aAAS;AACT,eAAW,WAAW;AACxB;AACA;AACE,aAAS;AACT,eAAW,WAAW;AACxB;AACF;AAEA,CAAC;AACC,aAAW,aAAa,GAAG,IAAI,sBAAsB;AACvD;AAEA,CAAC;AACC,aAAW,cAAc,GAAG;AAC9B;AAEA,CAAC;AACC,aAAW,YAAY,GAAG,OAAO;AACnC;AAEA,CAAC;AACC,aAAW,eAAe,IAAI,4BAA4B,IAAI;AAChE;AAEA,CAAC;AACC,aAAW,gBAAgB,IAAI,0BAA0B,IAAI;AAC/D;AAMA,CAAC;AACC;AAAA,IAAoB;AAAA,MAClB,MAAM;AAAA,MACN,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;AAAA,MACpB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;AAAA,MACpB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG;AAAA,MACtB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;AAAA,MACpB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAEnB;AAAA,IAAY;AAAA,MACV,MADU;AAAA,MAEV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAFP;AAAA,MAGV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAHP;AAAA,MAIV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAJT;AAAA,MAKV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GALP;AAAA,MAMV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAEnB,qBAAmB,KAAK;AACxB,aAAW,KAAK;AAChB,aAAW,wBAAwB,KAAK,OAAO;AACjD;AAEA,CArQC,KAqQK,CAtBL;AAuBC;AAAA,IAAoB;AAAA,MAClB,MAAM;AAAA,MACN,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;AAAA,MACpB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;AAAA,MACpB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG;AAAA,MACtB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;AAAA,MACpB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAEnB;AAAA,IAAY;AAAA,MACV,MADU;AAAA,MAEV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAFP;AAAA,MAGV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAHP;AAAA,MAIV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAJT;AAAA,MAKV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GALP;AAAA,MAMV,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAErB;AAEA,WAAW;AACT;AAAO,eAAW,OAAO;AAAI;AAC7B;AAAK,eAAW,OAAO;AAAI;AAC7B;AAEA,QAAO,wBAAyB;AAC9B,GA/CD;AAAA,EAgDC,CAxED;AAAA,EAyEC,CArED;AAAA,EAsEC,CAlED;AAAA,EAmEC,CA/DD;AAAA,EAgEC,CA5DD;AA6DG,eAAW;AACb;AACF;AAEA,WAzDC;AA0DC;AAAK,2BAAuB,KAAK;AAAG,mBAAe,KAAK;AAAG;AAC3D;AAAO,2BAAuB,KAAK;AAAG,mBAAe,KAAK;AAAG;AAC/D;AAMA,CAAC;AACC,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACnB;AAEA,CANC,MAMM,EAAE;AACP,cAAY;AACd;AAEA,CAVC,MAUM,EAAE;AACP,iBAAe;AACjB;AAEA,CAdC,MAcM;AACP,CAfC,MAeM;AACP,CAhBC,MAgBM;AACP,CAjBC,MAiBM;AACP,CAlBC,MAkBM;AACP,CAnBC,MAmBM;AACL,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,cAAY;AACZ,iBAAe;AACf,eAAa,IAAI;AACnB;AAEA,CA3BC,MA2BM;AACL,aAAW;AACX,eAAa,IAAI;AACnB;AAEA,CAhCC,MAgCM;AACL,aAAW;AACX,cAAY;AACd;AAEA,CArCC,MAqCM;AACL,aAAW,IAAI;AACf,eAAa,IAAI;AACnB;AAEA,CA1CC,MA0CM;AAAK,aAAW,IAAI;AAA0B;AAErD,CA5CC,MA4CM,EAAE,EAAE,EAAE;AACX,cAAY;AACd;AAEA,CAhDC,MAgDM;AACL,cAAY;AACZ,iBAAe;AACjB;AAEA,CArDC,MAqDM;AACL,eAAa,IAAI;AACjB,SAAO,IAAI;AACb;AAEA,CA1DC,MA0DM;AACL,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,WAAS,MAAM;AACf,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW;AACb;AAEA,CApEC,MAoEM;AACL,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,WAAS,IAAI;AACb,iBAAe,IAAI;AACnB,cAAY;AACZ,cAAY;AACZ,iBAAe;AACf,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACnB;AAEA,CAjFC,MAiFM,IAAI;AACT,oBAAkB;AAClB,WAAS;AACT,SAAO;AACP,aAAW;AACX,iBAAe;AACf,UAAQ;AACV;AAEA,CA1FC,MA0FM;AACL,SAAO,IAAI;AACX,mBAAiB;AACjB,eAAa,IAAI;AACnB;AAEA,CAhGC,MAgGM,CAAC;AACN,mBAAiB;AACnB;AAEA,CApGC,MAoGM;AACP,CArGC,MAqGM;AACL,cAAY;AACZ,iBAAe;AACf,gBAAc;AAChB;AAEA,CA3GC,MA2GM;AACL,mBAAiB;AACnB;AAEA,CA/GC,MA+GM;AACL,mBAAiB;AACnB;AAEA,CAnHC,MAmHM;AACL,cAAY;AACZ,iBAAe;AACjB;AAEA,CAxHC,MAwHM,GAAG,EAAE;AACZ,CAzHC,MAyHM,GAAG,EAAE;AACV,cAAY;AACZ,iBAAe;AACjB;AAEA,CA9HC,MA8HM;AACL,eAAa,IAAI,MAAM,IAAI;AAC3B,gBAAc,IAAI;AAClB,eAAa;AACb,cAAY;AACZ,SAAO,IAAI;AACb;AAEA,CAtIC,MAsIM;AACL,UAAQ;AACR,cAAY,IAAI,MAAM,IAAI;AAC1B,UAAQ,IAAI;AACd;AAEA,CA5IC,MA4IM;AACL,SAAO;AACP,mBAAiB;AACjB,cAAY;AACZ,iBAAe;AACf,aAAW,IAAI;AACjB;AAEA,CApJC,MAoJM;AACP,CArJC,MAqJM;AACL,UAAQ,IAAI,MAAM,IAAI;AACtB,WAAS,IAAI,oBAAoB,IAAI;AACrC,cAAY;AACd;AAEA,CA3JC,MA2JM;AACL,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACnB;AAEA,CAhKC,MAgKM,MAAM,EAAE;AACb,oBAAkB,IAAI;AACxB;AAGA,CAAC,iBAAiB,IAAI,CAAC;AACrB,WAAS;AACT,cAAY;AACZ,cAAY;AACZ,WAAS,QAAQ;AACnB;AAMA,CAAC,iBAAiB;AAChB,WAAS;AACT,cAAY,EAAE,EAAE,EAAE,IAAI,sBAAsB,IAAI,kBAAkB,EAChE,EAAE,EAAE,EAAE,KAAK,IAAI,sBAAsB,EAAE,IAAI,sBAAsB,IAAI;AACzE;AAMA,CAAC;AACC,YAAU;AACV,SAAO;AACP,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,YAAU;AACV,QAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpB,eAAa;AACb,gBAAc;AAChB;","names":[]}
@@ -4265,6 +4265,7 @@ declare class ChatMachine {
4265
4265
  private _ensureSessionSyncAfterStream;
4266
4266
  private _finalizeSuccessfulSend;
4267
4267
  private _handleSendError;
4268
+ private _preservePartialAssistant;
4268
4269
  /**
4269
4270
  * Public entry point (no options). Calls _sendMessageCore internally.
4270
4271
  */
@@ -4265,6 +4265,7 @@ declare class ChatMachine {
4265
4265
  private _ensureSessionSyncAfterStream;
4266
4266
  private _finalizeSuccessfulSend;
4267
4267
  private _handleSendError;
4268
+ private _preservePartialAssistant;
4268
4269
  /**
4269
4270
  * Public entry point (no options). Calls _sendMessageCore internally.
4270
4271
  */
@@ -1169,6 +1169,15 @@ var RateLimiter = class {
1169
1169
  }
1170
1170
  };
1171
1171
 
1172
+ // ui/src/bichat/types/index.ts
1173
+ var MessageRole = /* @__PURE__ */ ((MessageRole2) => {
1174
+ MessageRole2["User"] = "user";
1175
+ MessageRole2["Assistant"] = "assistant";
1176
+ MessageRole2["System"] = "system";
1177
+ MessageRole2["Tool"] = "tool";
1178
+ return MessageRole2;
1179
+ })(MessageRole || {});
1180
+
1172
1181
  // ui/src/applet-devtools/enabled.ts
1173
1182
  function shouldEnableAppletDevtools() {
1174
1183
  if (typeof window === "undefined") {
@@ -1710,15 +1719,6 @@ function getSessionDebugUsage(turns) {
1710
1719
  };
1711
1720
  }
1712
1721
 
1713
- // ui/src/bichat/types/index.ts
1714
- var MessageRole = /* @__PURE__ */ ((MessageRole2) => {
1715
- MessageRole2["User"] = "user";
1716
- MessageRole2["Assistant"] = "assistant";
1717
- MessageRole2["System"] = "system";
1718
- MessageRole2["Tool"] = "tool";
1719
- return MessageRole2;
1720
- })(MessageRole || {});
1721
-
1722
1722
  // ui/src/bichat/context/chatHelpers.ts
1723
1723
  var ARTIFACT_TOOL_NAMES = /* @__PURE__ */ new Set([
1724
1724
  "code_interpreter",
@@ -2529,6 +2529,25 @@ var ChatMachine = class {
2529
2529
  return;
2530
2530
  }
2531
2531
  const prev = this.state.messaging.turns;
2532
+ const localPartialTurn = prev.slice().reverse().find((turn) => turn.assistantTurn?.id.startsWith("assistant-partial-"));
2533
+ if (localPartialTurn) {
2534
+ if (fetchedTurns.length === 0) {
2535
+ fetchedTurns = prev;
2536
+ } else {
2537
+ const correspondingIndex = fetchedTurns.findIndex(
2538
+ (turn, index) => turn.userTurn.id === localPartialTurn.userTurn.id || index === fetchedTurns.length - 1 && turn.userTurn.content === localPartialTurn.userTurn.content
2539
+ );
2540
+ if (correspondingIndex >= 0) {
2541
+ if (!fetchedTurns[correspondingIndex].assistantTurn) {
2542
+ fetchedTurns = fetchedTurns.map(
2543
+ (turn, index) => index === correspondingIndex ? { ...turn, assistantTurn: localPartialTurn.assistantTurn } : turn
2544
+ );
2545
+ }
2546
+ } else {
2547
+ fetchedTurns = [...fetchedTurns, localPartialTurn];
2548
+ }
2549
+ }
2550
+ }
2532
2551
  const hasPendingUserOnly = prev.length > 0 && !prev[prev.length - 1].assistantTurn;
2533
2552
  const patch = {};
2534
2553
  const effectivePendingQuestion = pendingQuestion === void 0 ? this.state.messaging.pendingQuestion : pendingQuestion;
@@ -2634,8 +2653,9 @@ var ChatMachine = class {
2634
2653
  this.abortController = controller;
2635
2654
  const epoch = this.viewEpoch;
2636
2655
  this._updateMessaging({ isStreaming: true });
2656
+ let accumulatedContent = "";
2637
2657
  try {
2638
- let accumulatedContent = "";
2658
+ let terminalError = null;
2639
2659
  await this.dataSource.resumeStream(
2640
2660
  sessionId,
2641
2661
  runId,
@@ -2655,13 +2675,27 @@ var ChatMachine = class {
2655
2675
  this._handleToolStart(chunk.tool);
2656
2676
  } else if (chunk.type === "tool_end" && chunk.tool) {
2657
2677
  this._handleToolEnd(chunk.tool);
2658
- } else if (chunk.type === "done" || chunk.type === "error") {
2678
+ } else if (chunk.type === "error") {
2679
+ terminalError = new Error(chunk.error || "Stream error");
2659
2680
  }
2660
2681
  },
2661
2682
  controller.signal
2662
2683
  );
2684
+ if (terminalError) {
2685
+ throw terminalError;
2686
+ }
2663
2687
  clearRunMarker(sessionId);
2664
2688
  await this._syncSessionFromServer(sessionId, true, epoch);
2689
+ } catch (err) {
2690
+ if (this._isCurrentEpoch(epoch) && !(err instanceof Error && err.name === "AbortError")) {
2691
+ this._preservePartialAssistant(accumulatedContent);
2692
+ const normalized = normalizeRPCError(err, "Failed to resume stream");
2693
+ this._updateMessaging({
2694
+ streamError: normalized.userMessage,
2695
+ streamErrorRetryable: normalized.retryable
2696
+ });
2697
+ }
2698
+ throw err;
2665
2699
  } finally {
2666
2700
  if (this.abortController === controller) {
2667
2701
  this.abortController = null;
@@ -2944,7 +2978,8 @@ var ChatMachine = class {
2944
2978
  model,
2945
2979
  tempTurnId,
2946
2980
  controller,
2947
- epoch
2981
+ epoch,
2982
+ onContent
2948
2983
  } = params;
2949
2984
  let accumulatedContent = "";
2950
2985
  let createdSessionId;
@@ -2974,6 +3009,7 @@ var ChatMachine = class {
2974
3009
  }
2975
3010
  if ((chunk.type === "chunk" || chunk.type === "content") && chunk.content) {
2976
3011
  accumulatedContent += chunk.content;
3012
+ onContent(accumulatedContent);
2977
3013
  this._updateMessaging({ streamingContent: accumulatedContent });
2978
3014
  } else if (chunk.type === "thinking" && chunk.content) {
2979
3015
  this._handleThinkingChunk(chunk.content);
@@ -3059,7 +3095,7 @@ var ChatMachine = class {
3059
3095
  this._clearStreamError();
3060
3096
  this.lastSendAttempt = null;
3061
3097
  }
3062
- _handleSendError(err, content, tempTurn, epoch) {
3098
+ _handleSendError(err, content, tempTurn, epoch, partialAssistantContent) {
3063
3099
  if (!this._isCurrentEpoch(epoch)) {
3064
3100
  return false;
3065
3101
  }
@@ -3089,13 +3125,52 @@ var ChatMachine = class {
3089
3125
  };
3090
3126
  }
3091
3127
  this._updateInput({ message: "", inputError: null });
3128
+ const turns = this._preservePartialAssistant(
3129
+ partialAssistantContent,
3130
+ tempTurn.id
3131
+ );
3092
3132
  this._updateMessaging({
3133
+ turns,
3093
3134
  streamError: normalized.userMessage,
3094
3135
  streamErrorRetryable: normalized.retryable
3095
3136
  });
3096
3137
  console.error("Send message error:", err);
3097
3138
  return false;
3098
3139
  }
3140
+ _preservePartialAssistant(content, targetTurnId) {
3141
+ if (content.trim() === "") {
3142
+ return this.state.messaging.turns;
3143
+ }
3144
+ let targetIndex = targetTurnId ? this.state.messaging.turns.findIndex((turn) => turn.id === targetTurnId) : -1;
3145
+ if (!targetTurnId) {
3146
+ for (let i = this.state.messaging.turns.length - 1; i >= 0; i--) {
3147
+ if (!this.state.messaging.turns[i].assistantTurn) {
3148
+ targetIndex = i;
3149
+ break;
3150
+ }
3151
+ }
3152
+ }
3153
+ if (targetIndex < 0) {
3154
+ return this.state.messaging.turns;
3155
+ }
3156
+ const turns = this.state.messaging.turns.map(
3157
+ (turn, index) => index === targetIndex ? {
3158
+ ...turn,
3159
+ assistantTurn: {
3160
+ id: generateTempId("assistant-partial"),
3161
+ role: "assistant" /* Assistant */,
3162
+ content,
3163
+ citations: [],
3164
+ artifacts: [],
3165
+ codeOutputs: [],
3166
+ lifecycle: "complete",
3167
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
3168
+ }
3169
+ } : turn
3170
+ );
3171
+ this._updateMessaging({ turns });
3172
+ return turns;
3173
+ }
3099
3174
  // ── Send message ────────────────────────────────────────────────────────
3100
3175
  /**
3101
3176
  * Public entry point (no options). Calls _sendMessageCore internally.
@@ -3164,6 +3239,7 @@ var ChatMachine = class {
3164
3239
  const prevTurns = this.state.messaging.turns;
3165
3240
  this._insertOptimisticTurn(prevTurns, tempTurn, replaceFromMessageID);
3166
3241
  let shouldDrainQueue = true;
3242
+ let partialAssistantContent = "";
3167
3243
  try {
3168
3244
  const { activeSessionId, shouldNavigateAfter } = await this._resolveSendSession(curSessionId, curDebugMode);
3169
3245
  this.sendingSessionId = activeSessionId || null;
@@ -3179,7 +3255,10 @@ var ChatMachine = class {
3179
3255
  model: this.state.session.model,
3180
3256
  tempTurnId: tempTurn.id,
3181
3257
  controller,
3182
- epoch
3258
+ epoch,
3259
+ onContent: (streamedContent) => {
3260
+ partialAssistantContent = streamedContent;
3261
+ }
3183
3262
  });
3184
3263
  if (!this._isCurrentEpoch(epoch)) {
3185
3264
  } else if (stopped) {
@@ -3192,8 +3271,10 @@ var ChatMachine = class {
3192
3271
  this._clearStreamError();
3193
3272
  const syncId = createdSessionId || activeSessionId;
3194
3273
  if (syncId && syncId !== "new") {
3195
- await this._syncSessionFromServer(syncId, true, epoch).catch(() => {
3196
- });
3274
+ await this._syncSessionFromServer(syncId, true, epoch).catch(
3275
+ () => {
3276
+ }
3277
+ );
3197
3278
  }
3198
3279
  } else {
3199
3280
  await this._ensureSessionSyncAfterStream(
@@ -3206,7 +3287,13 @@ var ChatMachine = class {
3206
3287
  this._finalizeSuccessfulSend(targetSessionId, shouldNavigateAfter);
3207
3288
  }
3208
3289
  } catch (err) {
3209
- shouldDrainQueue = this._handleSendError(err, content, tempTurn, epoch);
3290
+ shouldDrainQueue = this._handleSendError(
3291
+ err,
3292
+ content,
3293
+ tempTurn,
3294
+ epoch,
3295
+ partialAssistantContent
3296
+ );
3210
3297
  } finally {
3211
3298
  if (this._isCurrentEpoch(epoch)) {
3212
3299
  this._updateMessaging({