@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.
- package/dist/applet/vite.cjs +5 -0
- package/dist/applet/vite.cjs.map +1 -1
- package/dist/applet/vite.mjs +5 -0
- package/dist/applet/vite.mjs.map +1 -1
- package/dist/bichat/index.cjs +104 -17
- package/dist/bichat/index.cjs.map +1 -1
- package/dist/bichat/index.css +10 -0
- package/dist/bichat/index.css.map +1 -1
- package/dist/bichat/index.d.cts +1 -0
- package/dist/bichat/index.d.ts +1 -0
- package/dist/bichat/index.mjs +104 -17
- package/dist/bichat/index.mjs.map +1 -1
- package/dist/bichat/styles.css +10 -0
- package/dist/bichat/tailwind.cjs +10 -0
- package/dist/bichat/tailwind.cjs.map +1 -1
- package/dist/bichat/tailwind.mjs +10 -0
- package/dist/bichat/tailwind.mjs.map +1 -1
- package/package.json +1 -1
- package/tailwind/compiled.css +1 -1
package/dist/bichat/index.css
CHANGED
|
@@ -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":"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","names":[]}
|
package/dist/bichat/index.d.cts
CHANGED
|
@@ -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
|
*/
|
package/dist/bichat/index.d.ts
CHANGED
|
@@ -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
|
*/
|
package/dist/bichat/index.mjs
CHANGED
|
@@ -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
|
|
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 === "
|
|
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(
|
|
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({
|