@omniloy/sofia-sdk 0.0.9 → 0.0.10
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/legacy/webcomponents.es.js +699 -193
- package/dist/legacy/webcomponents.umd.js +699 -193
- package/dist/tailor/webcomponents.es.js +712 -191
- package/dist/tailor/webcomponents.umd.js +712 -191
- package/dist/webcomponents.es.js +707 -189
- package/dist/webcomponents.umd.js +707 -189
- package/package.json +1 -1
|
@@ -12431,6 +12431,9 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12431
12431
|
const Dictionary$5 = "قاموس";
|
|
12432
12432
|
const Copilot$4 = "امساعد الطيار";
|
|
12433
12433
|
const Reasoning$4 = "التفكير";
|
|
12434
|
+
const Language$5 = "اللغة";
|
|
12435
|
+
const Chat$6 = "الدردشة";
|
|
12436
|
+
const Sources$4 = "المصادر";
|
|
12434
12437
|
const ar = {
|
|
12435
12438
|
Add: Add$4,
|
|
12436
12439
|
"Ask Omniscribe assistant": "اسأل مساعد أومنيسكريب",
|
|
@@ -12444,6 +12447,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12444
12447
|
"Error searching for devices": "حدث خطأ أثناء البحث عن الأجهزة",
|
|
12445
12448
|
"Fill out report": "املأ التقرير",
|
|
12446
12449
|
"Generate report": "إنشاء تقرير",
|
|
12450
|
+
"Generating patient summary": "مرحباً! امنحني بضع ثوان لإنشاء ملخص المريض.",
|
|
12447
12451
|
"Hello Doctor, I'm your personal assistant. How can I help you today?": "مرحباً يا دكتور، أنا مساعدك الشخصي. كيف يمكنني مساعدتك اليوم؟",
|
|
12448
12452
|
History: History$4,
|
|
12449
12453
|
"I'd like to see a summary of the patient's chart": "أود أن أرى ملخصًا لمخطط المريض",
|
|
@@ -12479,7 +12483,6 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12479
12483
|
"Wrong Word": "كلمة خاطئة",
|
|
12480
12484
|
"Wrong Words": "كلمات خاطئة",
|
|
12481
12485
|
"You must grant microphone permissions": "يجب منح أذونات الميكروفون",
|
|
12482
|
-
"See list of sources": "عرض قائمة المصادر",
|
|
12483
12486
|
"My source library": "مكتبة المصادر",
|
|
12484
12487
|
"Specify the sources and resources that should guide the AI's responses.": "تشير إلى المصادر والموارد التي ينبغي أن تُوجِّه استجابات الذكاء الاصطناعي.",
|
|
12485
12488
|
"My specialty": "تخصصي",
|
|
@@ -12574,15 +12577,17 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12574
12577
|
"SofIA Scribe": "سوفيا سكرايب",
|
|
12575
12578
|
"Microphone options": "خيارات الميكروفون",
|
|
12576
12579
|
"Select the input microphone": "حدد ميكروفون الإدخال",
|
|
12577
|
-
"Select the input microphone to ensure proper functioning
|
|
12578
|
-
|
|
12579
|
-
"Select the
|
|
12580
|
+
"Select the input microphone to ensure proper functioning": "حدد ميكروفون الإدخال لضمان التشغيل السليم",
|
|
12581
|
+
Language: Language$5,
|
|
12582
|
+
"Select the language options.": "حدد خيارات اللغة.",
|
|
12580
12583
|
"Select the interface language and the language in which the clinical note is generated": "حدد لغة الواجهة واللغة التي يتم بها إنشاء الملاحظة السريرية.",
|
|
12581
12584
|
"Select the language for audio transcription": "حدد اللغة التي سيتم بها نسخ المحادثة مع المريض.",
|
|
12582
12585
|
"Clinical note template": "قالب الملاحظة السريرية",
|
|
12583
|
-
"Customize the clinical note
|
|
12586
|
+
"Customize the clinical note depending on the report you are filling out.": "خصص الملاحظة السريرية حسب التقرير الذي تقوم بملؤه.",
|
|
12584
12587
|
"Clinical dictionary": "قاموس سريري",
|
|
12585
12588
|
"Customize clinical language and medication format": "خصص اللغة السريرية وتنسيق الأدوية.",
|
|
12589
|
+
Chat: Chat$6,
|
|
12590
|
+
"Customize the patient summary and chat sources.": "خصص ملخص المريض ومصادر الدردشة.",
|
|
12586
12591
|
"No custom words added yet": "لا توجد كلمات مخصصة مضافة بعد",
|
|
12587
12592
|
"Custom version": "نسخة مخصصة",
|
|
12588
12593
|
"Word or phrase (e.g: ibuprofeno)": "كلمة أو عبارة (على سبيل المثال: ibuprofeno)",
|
|
@@ -12593,7 +12598,19 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12593
12598
|
"Customize how to generate section": 'خصص كيفية توليد قسم "{sectionName}". مثال: "دائماً أضف التاريخ" أو "استخدم مصطلحات تقنية"',
|
|
12594
12599
|
"Save changes": "حفظ التغييرات",
|
|
12595
12600
|
"{count} characters": "{count} حرف",
|
|
12596
|
-
"Sending...": "جارٍ الإرسال..."
|
|
12601
|
+
"Sending...": "جارٍ الإرسال...",
|
|
12602
|
+
"Show patient summary first": "إظهار ملخص المريض أولاً",
|
|
12603
|
+
"Patient summary customization": "تخصيص ملخص المريض",
|
|
12604
|
+
Sources: Sources$4,
|
|
12605
|
+
"Select the sources you want the AI to use for reasoning": "اختر المصادر التي تريد أن تستخدمها الذكي الاصطناعي للتفكير",
|
|
12606
|
+
"Don't leave out relevant information...": "لا تترك المعلومات ذات الصلة...",
|
|
12607
|
+
"File is too large. Maximum size is 5MB": "الملف كبير جداً. الحد الأقصى للحجم هو 5 ميجابايت",
|
|
12608
|
+
"Maximum number of files is 5": "العدد الأقصى للملفات هو 5",
|
|
12609
|
+
"Attach file": "إرفاق ملف",
|
|
12610
|
+
"Error processing file": "خطأ في معالجة الملف",
|
|
12611
|
+
"Unsupported file format": "تنسيق الملف غير مدعوم",
|
|
12612
|
+
"{count} documents": "{count} مستندات",
|
|
12613
|
+
"{count} images": "{count} صور"
|
|
12597
12614
|
};
|
|
12598
12615
|
const Add$3 = "Add";
|
|
12599
12616
|
const Configuration$4 = "Configuration";
|
|
@@ -12640,6 +12657,11 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12640
12657
|
const Dictionary$4 = "Dictionary";
|
|
12641
12658
|
const Copilot$3 = "Copilot";
|
|
12642
12659
|
const Reasoning$3 = "Reasoning";
|
|
12660
|
+
const Language$4 = "Language";
|
|
12661
|
+
const Chat$5 = "Chat";
|
|
12662
|
+
const Sources$3 = "Sources";
|
|
12663
|
+
const Enabled$1 = "Enabled";
|
|
12664
|
+
const Disabled$1 = "Disabled";
|
|
12643
12665
|
const en = {
|
|
12644
12666
|
Add: Add$3,
|
|
12645
12667
|
"Ask Omniscribe assistant": "Ask Omniscribe assistant",
|
|
@@ -12653,6 +12675,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12653
12675
|
"Error searching for devices": "Error searching for devices",
|
|
12654
12676
|
"Fill out report": "Fill out report",
|
|
12655
12677
|
"Generate report": "Generate report",
|
|
12678
|
+
"Generating patient summary": "Hello! Give me a few seconds to generate the patient summary.",
|
|
12656
12679
|
"Hello Doctor, I'm your personal assistant. How can I help you today?": "Hello Doctor, I'm your personal assistant. How can I help you today?",
|
|
12657
12680
|
History: History$3,
|
|
12658
12681
|
"I'd like to see a summary of the patient's chart": "I'd like to see a summary of the patient's chart",
|
|
@@ -12688,7 +12711,6 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12688
12711
|
"Wrong Word": "Wrong Word",
|
|
12689
12712
|
"Wrong Words": "Wrong Words",
|
|
12690
12713
|
"You must grant microphone permissions": "You must grant microphone permissions",
|
|
12691
|
-
"See list of sources": "See list of sources",
|
|
12692
12714
|
"My source library": "My source library",
|
|
12693
12715
|
"Specify the sources and resources that should guide the AI's responses.": "Specify the sources and resources that should guide the AI's responses.",
|
|
12694
12716
|
"My specialty": "My specialty",
|
|
@@ -12783,15 +12805,17 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12783
12805
|
"SofIA Scribe": "SofIA Scribe",
|
|
12784
12806
|
"Microphone options": "Microphone options",
|
|
12785
12807
|
"Select the input microphone": "Select the input microphone",
|
|
12786
|
-
"Select the input microphone to ensure proper functioning
|
|
12787
|
-
|
|
12788
|
-
"Select the
|
|
12808
|
+
"Select the input microphone to ensure proper functioning": "Select the input microphone to ensure proper functioning.",
|
|
12809
|
+
Language: Language$4,
|
|
12810
|
+
"Select the language options.": "Select the language options.",
|
|
12789
12811
|
"Select the interface language and the language in which the clinical note is generated": "Select the interface language and the language in which the clinical note is generated.",
|
|
12790
12812
|
"Select the language for audio transcription": "Select the language for audio transcription.",
|
|
12791
12813
|
"Clinical note template": "Clinical note template",
|
|
12792
|
-
"Customize the clinical note
|
|
12814
|
+
"Customize the clinical note depending on the report you are filling out.": "Customize the clinical note depending on the report you are filling out.",
|
|
12793
12815
|
"Clinical dictionary": "Clinical dictionary",
|
|
12794
12816
|
"Customize clinical language and medication format": "Customize clinical language and medication format.",
|
|
12817
|
+
Chat: Chat$5,
|
|
12818
|
+
"Customize the patient summary and chat sources.": "Customize the patient summary and chat sources.",
|
|
12795
12819
|
"No custom words added yet": "No custom words added yet",
|
|
12796
12820
|
"Custom version": "Custom version",
|
|
12797
12821
|
"Word or phrase (e.g: ibuprofen)": "Word or phrase (e.g: ibuprofen)",
|
|
@@ -12803,7 +12827,21 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12803
12827
|
"Customize how to generate section": 'Customize how to generate the "{sectionName}" section. Example: "Always include date" or "Use technical terminology"',
|
|
12804
12828
|
"Save changes": "Save changes",
|
|
12805
12829
|
"{count} characters": "{count} characters",
|
|
12806
|
-
"Sending...": "Sending..."
|
|
12830
|
+
"Sending...": "Sending...",
|
|
12831
|
+
"Show patient summary first": "Show patient summary first",
|
|
12832
|
+
"Patient summary customization": "Patient summary customization",
|
|
12833
|
+
Sources: Sources$3,
|
|
12834
|
+
"Select the sources you want the AI to use for reasoning": "Select the sources you want the AI to use for reasoning",
|
|
12835
|
+
"Don't leave out relevant information...": "Don't leave out relevant information...",
|
|
12836
|
+
Enabled: Enabled$1,
|
|
12837
|
+
Disabled: Disabled$1,
|
|
12838
|
+
"File is too large. Maximum size is 5MB": "File is too large. Maximum size is 5MB",
|
|
12839
|
+
"Maximum number of files is 5": "Maximum number of files is 5",
|
|
12840
|
+
"Attach file": "Attach file",
|
|
12841
|
+
"Error processing file": "Error processing file",
|
|
12842
|
+
"Unsupported file format": "Unsupported file format",
|
|
12843
|
+
"{count} documents": "{count} documents",
|
|
12844
|
+
"{count} images": "{count} images"
|
|
12807
12845
|
};
|
|
12808
12846
|
const Add$2 = "Añadir";
|
|
12809
12847
|
const Configuration$3 = "Configuración";
|
|
@@ -12850,6 +12888,11 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12850
12888
|
const Dictionary$3 = "Diccionario";
|
|
12851
12889
|
const Copilot$2 = "Copilot";
|
|
12852
12890
|
const Reasoning$2 = "Razonamiento";
|
|
12891
|
+
const Language$3 = "Idioma";
|
|
12892
|
+
const Chat$4 = "Chat";
|
|
12893
|
+
const Sources$2 = "Fuentes";
|
|
12894
|
+
const Enabled = "Activado";
|
|
12895
|
+
const Disabled = "Desactivado";
|
|
12853
12896
|
const es = {
|
|
12854
12897
|
Add: Add$2,
|
|
12855
12898
|
"Ask Omniscribe assistant": "Pregunta al asistente Omniscribe",
|
|
@@ -12863,6 +12906,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12863
12906
|
"Error searching for devices": "Error al buscar dispositivos",
|
|
12864
12907
|
"Fill out report": "Rellenar informe",
|
|
12865
12908
|
"Generate report": "Generar informe",
|
|
12909
|
+
"Generating patient summary": "¡Hola! Dame unos segundos para generar el resumen del paciente.",
|
|
12866
12910
|
"Hello Doctor, I'm your personal assistant. How can I help you today?": "Hola doctor, soy su asistente personal. ¿En qué le puedo ayudar hoy?",
|
|
12867
12911
|
History: History$2,
|
|
12868
12912
|
"I'd like to see a summary of the patient's chart": "Quiero ver el resumen de la ficha del paciente",
|
|
@@ -12898,7 +12942,6 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12898
12942
|
"Wrong Word": "Palabra Incorrecta",
|
|
12899
12943
|
"Wrong Words": "Palabras Incorrectas",
|
|
12900
12944
|
"You must grant microphone permissions": "Debes conceder permisos de micrófono",
|
|
12901
|
-
"See list of sources": "Ver Lista de fuentes",
|
|
12902
12945
|
"My source library": "Mi librería de fuentes",
|
|
12903
12946
|
"Specify the sources and resources that should guide the AI's responses.": "Indica las fuentes y recursos que deben orientar las respuestas de la IA.",
|
|
12904
12947
|
"My specialty": "Mi especialidad",
|
|
@@ -12993,15 +13036,17 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
12993
13036
|
"SofIA Scribe": "SofIA Escriba",
|
|
12994
13037
|
"Microphone options": "Opciones de micrófono",
|
|
12995
13038
|
"Select the input microphone": "Selecciona el micrófono de entrada",
|
|
12996
|
-
"Select the input microphone to ensure proper functioning
|
|
12997
|
-
|
|
12998
|
-
"Select the
|
|
13039
|
+
"Select the input microphone to ensure proper functioning": "Seleccione el micrófono de entrada para asegurar el buen funcionamiento.",
|
|
13040
|
+
Language: Language$3,
|
|
13041
|
+
"Select the language options.": "Seleccione las opciones de idioma.",
|
|
12999
13042
|
"Select the interface language and the language in which the clinical note is generated": "Selecciona el idioma de la interfaz y en el que se genera la nota clínica.",
|
|
13000
13043
|
"Select the language for audio transcription": "Selecciona el idioma en el que grabará la conversación con el paciente.",
|
|
13001
13044
|
"Clinical note template": "Plantilla de nota clínica",
|
|
13002
|
-
"Customize the clinical note
|
|
13045
|
+
"Customize the clinical note depending on the report you are filling out.": "Personalice la nota clínica dependiendo del informe que esté rellenando.",
|
|
13003
13046
|
"Clinical dictionary": "Diccionario clínico",
|
|
13004
|
-
"Customize clinical language and medication format": "
|
|
13047
|
+
"Customize clinical language and medication format": "Personalice el lenguaje clínico y el formato de los medicamentos.",
|
|
13048
|
+
Chat: Chat$4,
|
|
13049
|
+
"Customize the patient summary and chat sources.": "Personalice el resumen del paciente y las fuentes del chat.",
|
|
13005
13050
|
"No custom words added yet": "No se han añadido palabras personalizadas aún",
|
|
13006
13051
|
"Custom version": "Versión personalizada",
|
|
13007
13052
|
"Word or phrase (e.g: ibuprofeno)": "Palabra o frase (ej: ibuprofeno)",
|
|
@@ -13013,7 +13058,21 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13013
13058
|
"Customize how to generate section": 'Personaliza cómo generar la sección "{sectionName}". Ejemplo: "Incluye siempre la fecha" o "Usa terminología técnica"',
|
|
13014
13059
|
"Save changes": "Guardar cambios",
|
|
13015
13060
|
"{count} characters": "{count} caracteres",
|
|
13016
|
-
"Sending...": "Enviando..."
|
|
13061
|
+
"Sending...": "Enviando...",
|
|
13062
|
+
"Show patient summary first": "Lo primero que quiero ver es el resumen del paciente.",
|
|
13063
|
+
"Patient summary customization": "Personalización del resumen del paciente",
|
|
13064
|
+
Sources: Sources$2,
|
|
13065
|
+
"Select the sources you want the AI to use for reasoning": "Seleccione las fuentes que quiera que la IA use para razonar",
|
|
13066
|
+
"Don't leave out relevant information...": "No te dejes información relevante...",
|
|
13067
|
+
Enabled,
|
|
13068
|
+
Disabled,
|
|
13069
|
+
"File is too large. Maximum size is 5MB": "El archivo es muy grande. El tamaño máximo es 5MB",
|
|
13070
|
+
"Maximum number of files is 5": "El número máximo de archivos es 5",
|
|
13071
|
+
"Attach file": "Adjuntar archivo",
|
|
13072
|
+
"Error processing file": "Ha habido un error al procesar el fichero",
|
|
13073
|
+
"Unsupported file format": "Fichero no soportado",
|
|
13074
|
+
"{count} documents": "{count} documentos",
|
|
13075
|
+
"{count} images": "{count} imágenes"
|
|
13017
13076
|
};
|
|
13018
13077
|
const Add$1 = "जोड़ें";
|
|
13019
13078
|
const Configuration$2 = "कॉन्फ़िगरेशन";
|
|
@@ -13060,6 +13119,9 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13060
13119
|
const Dictionary$2 = "शब्दकोश";
|
|
13061
13120
|
const Copilot$1 = "कोपायलट";
|
|
13062
13121
|
const Reasoning$1 = "तर्क";
|
|
13122
|
+
const Language$2 = "भाषा";
|
|
13123
|
+
const Chat$3 = "चैट";
|
|
13124
|
+
const Sources$1 = "स्रोत";
|
|
13063
13125
|
const hi = {
|
|
13064
13126
|
Add: Add$1,
|
|
13065
13127
|
"Ask Omniscribe assistant": "Omniscribe सहायक से पूछें",
|
|
@@ -13073,6 +13135,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13073
13135
|
"Error searching for devices": "उपकरण खोजने में त्रुटि",
|
|
13074
13136
|
"Fill out report": "रिपोर्ट भरें",
|
|
13075
13137
|
"Generate report": "रिपोर्ट बनाएं",
|
|
13138
|
+
"Generating patient summary": "नमस्ते! मुझे रोगी का सारांश तैयार करने के लिए कुछ सेकंड दें।",
|
|
13076
13139
|
"Hello Doctor, I'm your personal assistant. How can I help you today?": "नमस्ते डॉक्टर, मैं आपका निजी सहायक हूँ। आज मैं आपकी कैसे मदद कर सकता हूँ?",
|
|
13077
13140
|
History: History$1,
|
|
13078
13141
|
"I'd like to see a summary of the patient's chart": "मैं रोगी के चार्ट का सारांश देखना चाहूंगा",
|
|
@@ -13108,7 +13171,6 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13108
13171
|
"Wrong Word": "गलत शब्द",
|
|
13109
13172
|
"Wrong Words": "गलत शब्द",
|
|
13110
13173
|
"You must grant microphone permissions": "आपको माइक्रोफ़ोन की अनुमति देनी होगी",
|
|
13111
|
-
"See list of sources": "स्रोतों की सूची देखें",
|
|
13112
13174
|
"My source library": "मेरी स्रोत लाइब्रेरी",
|
|
13113
13175
|
"Specify the sources and resources that should guide the AI's responses.": "उन स्रोतों और संसाधनों को निर्दिष्ट करें जो AI की प्रतिक्रियाओं का मार्गदर्शन करें।",
|
|
13114
13176
|
"My specialty": "मेरी विशेषज्ञता",
|
|
@@ -13203,15 +13265,17 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13203
13265
|
"SofIA Scribe": "SofIA Scribe",
|
|
13204
13266
|
"Microphone options": "माइक्रोफोन विकल्प",
|
|
13205
13267
|
"Select the input microphone": "इनपुट माइक्रोफोन का चयन करें",
|
|
13206
|
-
"Select the input microphone to ensure proper functioning
|
|
13207
|
-
|
|
13208
|
-
"Select the
|
|
13268
|
+
"Select the input microphone to ensure proper functioning": "समुचित कार्य को सुनिश्चित करने के लिए इनपुट माइक्रोफोन का चयन करें",
|
|
13269
|
+
Language: Language$2,
|
|
13270
|
+
"Select the language options.": "भाषा विकल्प चुनें।",
|
|
13209
13271
|
"Select the interface language and the language in which the clinical note is generated": "इंटरफ़ेस भाषा और उस भाषा का चयन करें जिसमें नैदानिक नोट उत्पन्न होता है।",
|
|
13210
13272
|
"Select the language for audio transcription": "ऑडियो प्रतिलेखन के लिए भाषा का चयन करें।",
|
|
13211
13273
|
"Clinical note template": "नैदानिक नोट टेम्पलेट",
|
|
13212
|
-
"Customize the clinical note
|
|
13274
|
+
"Customize the clinical note depending on the report you are filling out.": "आप जो रिपोर्ट भर रहे हैं, उसके आधार पर नैदानिक नोट को अनुकूलित करें।",
|
|
13213
13275
|
"Clinical dictionary": "नैदानिक शब्दकोश",
|
|
13214
13276
|
"Customize clinical language and medication format": "नैदानिक भाषा और दवा प्रारूप को अनुकूलित करें।",
|
|
13277
|
+
Chat: Chat$3,
|
|
13278
|
+
"Customize the patient summary and chat sources.": "रोगी सारांश और चैट स्रोतों को अनुकूलित करें।",
|
|
13215
13279
|
"No custom words added yet": "अभी तक कोई कस्टम शब्द नहीं जोड़ा गया है",
|
|
13216
13280
|
"Custom version": "कस्टम संस्करण",
|
|
13217
13281
|
"Word or phrase (e.g: ibuprofen)": "शब्द या वाक्यांश (जैसे: ibuprofen)",
|
|
@@ -13223,7 +13287,19 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13223
13287
|
"Customize how to generate section": '"{sectionName}" अनुभाग कैसे उत्पन्न करें, इसे अनुकूलित करें। उदाहरण: "हमेशा तारीख शामिल करें" या "तकनीकी शब्दावली का उपयोग करें"',
|
|
13224
13288
|
"Save changes": "परिवर्तन सहेजें",
|
|
13225
13289
|
"{count} characters": "{count} वर्ण",
|
|
13226
|
-
"Sending...": "भेजा जा रहा है..."
|
|
13290
|
+
"Sending...": "भेजा जा रहा है...",
|
|
13291
|
+
"Show patient summary first": "पहले रोगी सारांश दिखाएं",
|
|
13292
|
+
"Patient summary customization": "रोगी सारांश अनुकूलन",
|
|
13293
|
+
Sources: Sources$1,
|
|
13294
|
+
"Select the sources you want the AI to use for reasoning": "वे स्रोत चुनें जिन्हें आप चाहते हैं कि AI तर्क के लिए उपयोग करे",
|
|
13295
|
+
"Don't leave out relevant information...": "प्रासंगिक जानकारी को न छोड़ें...",
|
|
13296
|
+
"File is too large. Maximum size is 5MB": "फ़ाइल बहुत बड़ी है। अधिकतम आकार 5MB है",
|
|
13297
|
+
"Maximum number of files is 5": "फ़ाइलों की अधिकतम संख्या 5 है",
|
|
13298
|
+
"Attach file": "फ़ाइल संलग्न करें",
|
|
13299
|
+
"Error processing file": "फ़ाइल प्रोसेसिंग में त्रुटि",
|
|
13300
|
+
"Unsupported file format": "असमर्थित फ़ाइल प्रारूप",
|
|
13301
|
+
"{count} documents": "{count} दस्तावेज़",
|
|
13302
|
+
"{count} images": "{count} चित्र"
|
|
13227
13303
|
};
|
|
13228
13304
|
const Add = "Tambahkan";
|
|
13229
13305
|
const Configuration$1 = "Konfigurasi";
|
|
@@ -13270,6 +13346,9 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13270
13346
|
const Dictionary$1 = "Kamus";
|
|
13271
13347
|
const Copilot = "Copilot";
|
|
13272
13348
|
const Reasoning = "Penalaran";
|
|
13349
|
+
const Language$1 = "Bahasa";
|
|
13350
|
+
const Chat$2 = "Chat";
|
|
13351
|
+
const Sources = "Sumber";
|
|
13273
13352
|
const id = {
|
|
13274
13353
|
Add,
|
|
13275
13354
|
"Ask Omniscribe assistant": "Tanya asisten Omniscribe",
|
|
@@ -13283,6 +13362,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13283
13362
|
"Error searching for devices": "Kesalahan saat mencari perangkat",
|
|
13284
13363
|
"Fill out report": "Isi laporan",
|
|
13285
13364
|
"Generate report": "Menghasilkan laporan",
|
|
13365
|
+
"Generating patient summary": "Halo! Beri saya beberapa detik untuk membuat ringkasan pasien.",
|
|
13286
13366
|
"Hello Doctor, I'm your personal assistant. How can I help you today?": "Halo Dokter, saya asisten pribadi Anda. Bagaimana saya bisa membantu Anda hari ini?",
|
|
13287
13367
|
History,
|
|
13288
13368
|
"I'd like to see a summary of the patient's chart": "Saya ingin melihat ringkasan grafik pasien",
|
|
@@ -13318,7 +13398,6 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13318
13398
|
"Wrong Word": "Kata yang salah",
|
|
13319
13399
|
"Wrong Words": "Kata-kata yang salah",
|
|
13320
13400
|
"You must grant microphone permissions": "Anda harus memberikan izin mikrofon",
|
|
13321
|
-
"See list of sources": "Lihat Daftar Sumber",
|
|
13322
13401
|
"My source library": "Perpustakaan Sumber Saya",
|
|
13323
13402
|
"Specify the sources and resources that should guide the AI's responses.": "Menunjukkan sumber dan sumber daya yang seharusnya memandu respons AI.",
|
|
13324
13403
|
"My specialty": "Spesialisasi Saya",
|
|
@@ -13413,15 +13492,17 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13413
13492
|
"SofIA Scribe": "SofIA Juru Tulis",
|
|
13414
13493
|
"Microphone options": "Opsi mikrofon",
|
|
13415
13494
|
"Select the input microphone": "Pilih mikrofon input",
|
|
13416
|
-
"Select the input microphone to ensure proper functioning
|
|
13417
|
-
|
|
13418
|
-
"Select the
|
|
13495
|
+
"Select the input microphone to ensure proper functioning": "Pilih mikrofon input untuk memastikan fungsi yang tepat.",
|
|
13496
|
+
Language: Language$1,
|
|
13497
|
+
"Select the language options.": "Pilih opsi bahasa.",
|
|
13419
13498
|
"Select the interface language and the language in which the clinical note is generated": "Pilih bahasa antarmuka dan bahasa di mana catatan klinis dihasilkan.",
|
|
13420
13499
|
"Select the language for audio transcription": "Pilih bahasa untuk transkripsi audio.",
|
|
13421
13500
|
"Clinical note template": "Template catatan klinis",
|
|
13422
|
-
"Customize the clinical note
|
|
13501
|
+
"Customize the clinical note depending on the report you are filling out.": "Sesuaikan catatan klinis tergantung pada laporan yang Anda isi.",
|
|
13423
13502
|
"Clinical dictionary": "Kamus klinis",
|
|
13424
13503
|
"Customize clinical language and medication format": "Sesuaikan bahasa klinis dan format pengobatan.",
|
|
13504
|
+
Chat: Chat$2,
|
|
13505
|
+
"Customize the patient summary and chat sources.": "Sesuaikan ringkasan pasien dan sumber chat.",
|
|
13425
13506
|
"No custom words added yet": "Belum ada kata kustom yang ditambahkan",
|
|
13426
13507
|
"Custom version": "Versi kustom",
|
|
13427
13508
|
"Word or phrase (e.g: ibuprofeno)": "Kata atau frasa (mis: ibuprofeno)",
|
|
@@ -13432,7 +13513,19 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
13432
13513
|
"Customize how to generate section": 'Sesuaikan cara membuat bagian "{sectionName}". Contoh: "Selalu sertakan tanggal" atau "Gunakan terminologi teknis"',
|
|
13433
13514
|
"Save changes": "Simpan perubahan",
|
|
13434
13515
|
"{count} characters": "{count} karakter",
|
|
13435
|
-
"Sending...": "Mengirim..."
|
|
13516
|
+
"Sending...": "Mengirim...",
|
|
13517
|
+
"Show patient summary first": "Tampilkan ringkasan pasien terlebih dahulu",
|
|
13518
|
+
"Patient summary customization": "Penyesuaian ringkasan pasien",
|
|
13519
|
+
Sources,
|
|
13520
|
+
"Select the sources you want the AI to use for reasoning": "Pilih sumber yang ingin Anda gunakan AI untuk penalaran",
|
|
13521
|
+
"Don't leave out relevant information...": "Jangan tinggalkan informasi yang relevan...",
|
|
13522
|
+
"File is too large. Maximum size is 5MB": "File terlalu besar. Ukuran maksimum adalah 5MB",
|
|
13523
|
+
"Maximum number of files is 5": "Jumlah file maksimum adalah 5",
|
|
13524
|
+
"Attach file": "Lampirkan file",
|
|
13525
|
+
"Error processing file": "Kesalahan memproses file",
|
|
13526
|
+
"Unsupported file format": "Format file tidak didukung",
|
|
13527
|
+
"{count} documents": "{count} dokumen",
|
|
13528
|
+
"{count} images": "{count} gambar"
|
|
13436
13529
|
};
|
|
13437
13530
|
var LanguageCode;
|
|
13438
13531
|
(function(LanguageCode2) {
|
|
@@ -15995,7 +16088,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
15995
16088
|
getAdapter,
|
|
15996
16089
|
mergeConfig: mergeConfig$1
|
|
15997
16090
|
} = axios;
|
|
15998
|
-
const version$1 = "0.0.
|
|
16091
|
+
const version$1 = "0.0.10";
|
|
15999
16092
|
const handleApiError = async (error) => {
|
|
16000
16093
|
return Promise.reject(error);
|
|
16001
16094
|
};
|
|
@@ -16186,6 +16279,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16186
16279
|
SettingsApiKeys2["template"] = "template";
|
|
16187
16280
|
SettingsApiKeys2["baseTemplate"] = "baseTemplate";
|
|
16188
16281
|
SettingsApiKeys2["templateId"] = "templateId";
|
|
16282
|
+
SettingsApiKeys2["summary"] = "summary";
|
|
16189
16283
|
})(SettingsApiKeys || (SettingsApiKeys = {}));
|
|
16190
16284
|
const SettingsApi = {
|
|
16191
16285
|
updateSetting: async (key, value) => {
|
|
@@ -16249,7 +16343,8 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16249
16343
|
[SettingsApiKeys.sources]: profileResponse.sources,
|
|
16250
16344
|
[SettingsApiKeys.availableSources]: profileResponse.availableSources,
|
|
16251
16345
|
[SettingsApiKeys.template]: profileResponse.template,
|
|
16252
|
-
[SettingsApiKeys.baseTemplate]: profileResponse.baseTemplate
|
|
16346
|
+
[SettingsApiKeys.baseTemplate]: profileResponse.baseTemplate,
|
|
16347
|
+
[SettingsApiKeys.summary]: profileResponse.summary
|
|
16253
16348
|
};
|
|
16254
16349
|
return mappedResponse;
|
|
16255
16350
|
}
|
|
@@ -16556,6 +16651,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16556
16651
|
const [sources, setSources] = React.useState(null);
|
|
16557
16652
|
const [availableSources, setAvailableSources] = React.useState([]);
|
|
16558
16653
|
const [preferredMicrophone, setPreferredMicrophone] = React.useState(null);
|
|
16654
|
+
const [summary, setSummary] = React.useState(null);
|
|
16559
16655
|
const [templateCustomizations, setTemplateCustomizations] = React.useState({});
|
|
16560
16656
|
const [baseTemplate, setBaseTemplate] = React.useState({});
|
|
16561
16657
|
const [customTemplate, setCustomTemplate] = React.useState(null);
|
|
@@ -16594,12 +16690,14 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16594
16690
|
};
|
|
16595
16691
|
}
|
|
16596
16692
|
}
|
|
16693
|
+
const newSummary = (profile == null ? void 0 : profile[SettingsApiKeys.summary]) || null;
|
|
16597
16694
|
setDictionary(newDictionary);
|
|
16598
16695
|
setLanguage(newLanguage);
|
|
16599
16696
|
setTranscriptionLanguage(newTranscriptionLanguage);
|
|
16600
16697
|
setSources(newSources);
|
|
16601
16698
|
setAvailableSources(newAvailableSources);
|
|
16602
16699
|
setPreferredMicrophone(newPreferredMicrophone);
|
|
16700
|
+
setSummary(newSummary);
|
|
16603
16701
|
setCustomTemplate(newCustomTemplate);
|
|
16604
16702
|
setBaseTemplate(newBaseTemplate);
|
|
16605
16703
|
const cache = SettingsCache.getInstance();
|
|
@@ -16680,6 +16778,21 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16680
16778
|
logger.settingsError("Error updating sources:", error);
|
|
16681
16779
|
}
|
|
16682
16780
|
}, []);
|
|
16781
|
+
const updateSummary = React.useCallback(async (summary2) => {
|
|
16782
|
+
try {
|
|
16783
|
+
setSummary(summary2);
|
|
16784
|
+
await SettingsApi.updateSetting(SettingsApiKeys.summary, summary2);
|
|
16785
|
+
} catch (error) {
|
|
16786
|
+
logger.settingsError("Error updating summary:", error);
|
|
16787
|
+
}
|
|
16788
|
+
}, []);
|
|
16789
|
+
const sendSummaryMessage = React.useCallback(() => {
|
|
16790
|
+
if (!summary || !summary.isEnabled) {
|
|
16791
|
+
return;
|
|
16792
|
+
}
|
|
16793
|
+
const event = new CustomEvent("sendSummaryMessage");
|
|
16794
|
+
window.dispatchEvent(event);
|
|
16795
|
+
}, [summary]);
|
|
16683
16796
|
const updatePreferredMicrophone = React.useCallback(async (microphone) => {
|
|
16684
16797
|
try {
|
|
16685
16798
|
setPreferredMicrophone(microphone);
|
|
@@ -16757,6 +16870,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16757
16870
|
templateId: profile[SettingsApiKeys.templateId]
|
|
16758
16871
|
} : null;
|
|
16759
16872
|
const newBaseTemplate = (profile == null ? void 0 : profile[SettingsApiKeys.baseTemplate]) ? profile == null ? void 0 : profile[SettingsApiKeys.baseTemplate] : {};
|
|
16873
|
+
const newSummary = (profile == null ? void 0 : profile[SettingsApiKeys.summary]) || null;
|
|
16760
16874
|
const microphoneData = profile == null ? void 0 : profile[SettingsApiKeys.preferredMicrophone];
|
|
16761
16875
|
let newPreferredMicrophone = null;
|
|
16762
16876
|
if (microphoneData) {
|
|
@@ -16778,6 +16892,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16778
16892
|
setSources(newSources);
|
|
16779
16893
|
setAvailableSources(newAvailableSources);
|
|
16780
16894
|
setPreferredMicrophone(newPreferredMicrophone);
|
|
16895
|
+
setSummary(newSummary);
|
|
16781
16896
|
setCustomTemplate(newCustomTemplate);
|
|
16782
16897
|
setBaseTemplate(newBaseTemplate);
|
|
16783
16898
|
const cache = SettingsCache.getInstance();
|
|
@@ -16862,6 +16977,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16862
16977
|
sources,
|
|
16863
16978
|
availableSources,
|
|
16864
16979
|
preferredMicrophone,
|
|
16980
|
+
summary,
|
|
16865
16981
|
isLoading,
|
|
16866
16982
|
templateId,
|
|
16867
16983
|
toolArgs,
|
|
@@ -16875,6 +16991,8 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16875
16991
|
updateTranscriptionLanguage,
|
|
16876
16992
|
updateSources,
|
|
16877
16993
|
updatePreferredMicrophone,
|
|
16994
|
+
updateSummary,
|
|
16995
|
+
sendSummaryMessage,
|
|
16878
16996
|
updateTemplateCustomizations,
|
|
16879
16997
|
updateBaseTemplate,
|
|
16880
16998
|
updateSettings,
|
|
@@ -16887,6 +17005,7 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16887
17005
|
sources,
|
|
16888
17006
|
availableSources,
|
|
16889
17007
|
preferredMicrophone,
|
|
17008
|
+
summary,
|
|
16890
17009
|
isLoading,
|
|
16891
17010
|
templateId,
|
|
16892
17011
|
toolArgs,
|
|
@@ -16900,6 +17019,8 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
16900
17019
|
updateTranscriptionLanguage,
|
|
16901
17020
|
updateSources,
|
|
16902
17021
|
updatePreferredMicrophone,
|
|
17022
|
+
updateSummary,
|
|
17023
|
+
sendSummaryMessage,
|
|
16903
17024
|
updateTemplateCustomizations,
|
|
16904
17025
|
updateBaseTemplate,
|
|
16905
17026
|
updateSettings,
|
|
@@ -93909,7 +94030,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
93909
94030
|
};
|
|
93910
94031
|
});
|
|
93911
94032
|
}
|
|
93912
|
-
function AssistantMessage({ message, isLoading, handleRegenerate, isLastAiMessage = false
|
|
94033
|
+
function AssistantMessage({ message, isLoading, handleRegenerate, isLastAiMessage = false }) {
|
|
93913
94034
|
var _a2;
|
|
93914
94035
|
const [isHovered, setIsHovered] = reactExports.useState(false);
|
|
93915
94036
|
const { appointmentData, runId } = useLangGraphContext();
|
|
@@ -93927,7 +94048,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
93927
94048
|
const hasActualContent = contentString.length > 0;
|
|
93928
94049
|
if (!isLastMessage && !isToolResult && !contentString.length && !message.content && !reasoning)
|
|
93929
94050
|
return null;
|
|
93930
|
-
return jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-message-container", onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: isToolResult ? jsxRuntimeExports.jsx(ToolResult, { message }) : jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-message-calls-container", children: [isLastMessage && isLoading &&
|
|
94051
|
+
return jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-message-container", onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: isToolResult ? jsxRuntimeExports.jsx(ToolResult, { message }) : jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-message-calls-container", children: [isLastMessage && isLoading && contentString.length === 0 && jsxRuntimeExports.jsx(AssistantMessageLoading, {}), contentString.length > 0 && jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-markdown-container", children: jsxRuntimeExports.jsx(MarkdownText, { children: contentString }) }), jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: hasAnthropicToolCalls && isLastMessage && jsxRuntimeExports.jsx(ToolCalls, { toolCalls: anthropicStreamedToolCalls }) || hasToolCalls && isLastMessage && jsxRuntimeExports.jsx(ToolCalls, { toolCalls: message.tool_calls }) }), jsxRuntimeExports.jsx(CustomComponent, { message, thread }), hasActualContent && jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-commands-container", children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta == null ? void 0 : meta.branch, branchOptions: meta == null ? void 0 : meta.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { disabled: hasAnthropicToolCalls && isLastMessage || hasToolCalls, content: contentString, isLoading, isAiMessage: true, handleRegenerate: () => handleRegenerate(parentCheckpoint), isLastMessage: isLastAiMessage, isHovered, runId: runId || void 0 })] })] }) });
|
|
93931
94052
|
}
|
|
93932
94053
|
const textareaVariants = cva("omniscribe_textarea-general", {
|
|
93933
94054
|
variants: {
|
|
@@ -93945,6 +94066,98 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
93945
94066
|
return jsxRuntimeExports.jsx("textarea", __spreadValues({ ref, "data-slot": "textarea", className: textareaVariants({ variant, className }) }, props));
|
|
93946
94067
|
});
|
|
93947
94068
|
Textarea.displayName = "Textarea";
|
|
94069
|
+
const MessageImagesContext = reactExports.createContext(void 0);
|
|
94070
|
+
const MessageImagesProvider = ({ children }) => {
|
|
94071
|
+
const [messageImages, setMessageImagesMap] = reactExports.useState(/* @__PURE__ */ new Map());
|
|
94072
|
+
const messageImagesRef = reactExports.useRef(messageImages);
|
|
94073
|
+
reactExports.useEffect(() => {
|
|
94074
|
+
messageImagesRef.current = messageImages;
|
|
94075
|
+
});
|
|
94076
|
+
reactExports.useEffect(() => {
|
|
94077
|
+
return () => {
|
|
94078
|
+
messageImagesRef.current.forEach((images) => {
|
|
94079
|
+
images.forEach((image2) => {
|
|
94080
|
+
if (image2.previewUrl) {
|
|
94081
|
+
URL.revokeObjectURL(image2.previewUrl);
|
|
94082
|
+
}
|
|
94083
|
+
});
|
|
94084
|
+
});
|
|
94085
|
+
};
|
|
94086
|
+
}, []);
|
|
94087
|
+
const setMessageImages = reactExports.useCallback((messageId, images) => {
|
|
94088
|
+
setMessageImagesMap((prev) => {
|
|
94089
|
+
const newMap = new Map(prev);
|
|
94090
|
+
newMap.set(messageId, images);
|
|
94091
|
+
return newMap;
|
|
94092
|
+
});
|
|
94093
|
+
}, []);
|
|
94094
|
+
const getMessageImages = reactExports.useCallback((messageId) => {
|
|
94095
|
+
return messageImages.get(messageId) || [];
|
|
94096
|
+
}, [messageImages]);
|
|
94097
|
+
const clearMessageImages = reactExports.useCallback((messageId) => {
|
|
94098
|
+
const images = messageImages.get(messageId);
|
|
94099
|
+
if (images) {
|
|
94100
|
+
images.forEach((image2) => {
|
|
94101
|
+
if (image2.previewUrl) {
|
|
94102
|
+
URL.revokeObjectURL(image2.previewUrl);
|
|
94103
|
+
}
|
|
94104
|
+
});
|
|
94105
|
+
}
|
|
94106
|
+
setMessageImagesMap((prev) => {
|
|
94107
|
+
const newMap = new Map(prev);
|
|
94108
|
+
newMap.delete(messageId);
|
|
94109
|
+
return newMap;
|
|
94110
|
+
});
|
|
94111
|
+
}, [messageImages]);
|
|
94112
|
+
const value = reactExports.useMemo(() => ({
|
|
94113
|
+
messageImages,
|
|
94114
|
+
setMessageImages,
|
|
94115
|
+
getMessageImages,
|
|
94116
|
+
clearMessageImages
|
|
94117
|
+
}), [messageImages, setMessageImages, getMessageImages, clearMessageImages]);
|
|
94118
|
+
return jsxRuntimeExports.jsx(MessageImagesContext.Provider, { value, children });
|
|
94119
|
+
};
|
|
94120
|
+
const useMessageImages = () => {
|
|
94121
|
+
const context = reactExports.useContext(MessageImagesContext);
|
|
94122
|
+
if (!context) {
|
|
94123
|
+
throw new Error("useMessageImages must be used within a MessageImagesProvider");
|
|
94124
|
+
}
|
|
94125
|
+
return context;
|
|
94126
|
+
};
|
|
94127
|
+
const DocumentIcon = ({ width = 24, height = 24, className }) => {
|
|
94128
|
+
return jsxRuntimeExports.jsxs("svg", { fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", width, height, viewBox: "0 0 24 24", className, children: [jsxRuntimeExports.jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), jsxRuntimeExports.jsx("polyline", { points: "14 2 14 8 20 8" }), jsxRuntimeExports.jsx("line", { x1: "16", y1: "13", x2: "8", y2: "13" }), jsxRuntimeExports.jsx("line", { x1: "16", y1: "17", x2: "8", y2: "17" }), jsxRuntimeExports.jsx("polyline", { points: "10 9 9 9 8 9" })] });
|
|
94129
|
+
};
|
|
94130
|
+
const MessageImages = ({ uploadedFiles, className = "" }) => {
|
|
94131
|
+
const [loadedImages, setLoadedImages] = reactExports.useState(/* @__PURE__ */ new Set());
|
|
94132
|
+
const [failedImages, setFailedImages] = reactExports.useState(/* @__PURE__ */ new Set());
|
|
94133
|
+
const { formatMessage: formatMessage2 } = useIntl();
|
|
94134
|
+
const handleImageLoad = (index2) => {
|
|
94135
|
+
setLoadedImages((prev) => new Set(prev).add(index2));
|
|
94136
|
+
};
|
|
94137
|
+
const handleImageError = (index2) => {
|
|
94138
|
+
setFailedImages((prev) => new Set(prev).add(index2));
|
|
94139
|
+
};
|
|
94140
|
+
if (uploadedFiles.length === 0) {
|
|
94141
|
+
return null;
|
|
94142
|
+
}
|
|
94143
|
+
const imageFiles = uploadedFiles.filter((file) => file.type === "image");
|
|
94144
|
+
const documentFiles = uploadedFiles.filter((file) => file.type === "document");
|
|
94145
|
+
if (imageFiles.length === 0 && documentFiles.length === 0) {
|
|
94146
|
+
return null;
|
|
94147
|
+
}
|
|
94148
|
+
return jsxRuntimeExports.jsxs("div", { className: `omniscribe_message-files ${className}`, children: [imageFiles.length > 0 && jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-images", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_message-images-grid", children: imageFiles.map((file, index2) => {
|
|
94149
|
+
const imageUrl = file.previewUrl;
|
|
94150
|
+
if (!imageUrl) {
|
|
94151
|
+
return jsxRuntimeExports.jsx("div", { className: "omniscribe_message-image-error", title: "Image could not be displayed", children: jsxRuntimeExports.jsx("span", { children: "📷" }) }, file.id);
|
|
94152
|
+
}
|
|
94153
|
+
const isLoaded = loadedImages.has(index2);
|
|
94154
|
+
const hasFailed = failedImages.has(index2);
|
|
94155
|
+
return jsxRuntimeExports.jsxs("div", { className: `omniscribe_message-image-container ${imageFiles.length > 1 ? "omniscribe_message-image-container-multiple" : "omniscribe_message-image-container-single"}`, children: [!isLoaded && !hasFailed && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-image-loading", children: jsxRuntimeExports.jsx("span", { children: "Loading..." }) }), hasFailed ? jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-image-error", title: "Failed to load image", children: [jsxRuntimeExports.jsx("span", { children: "📷" }), jsxRuntimeExports.jsx("small", { children: "Image unavailable" })] }) : jsxRuntimeExports.jsx("img", { src: imageUrl, alt: `Attached image ${index2 + 1}`, className: "omniscribe_message-image", onLoad: () => handleImageLoad(index2), onError: () => handleImageError(index2), title: `Image ${index2 + 1}`, style: { display: isLoaded ? "block" : "none" } }), imageFiles.length > 1 && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-image-counter", children: index2 + 1 })] }, file.id);
|
|
94156
|
+
}) }), imageFiles.length > 1 && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-images-count", children: formatMessage2({ id: "{count} images", defaultMessage: "{count} images" }, { count: imageFiles.length }) })] }), documentFiles.length > 0 && jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-documents", children: [documentFiles.map((file) => jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-document", title: `Document: ${file.file.name}`, children: [jsxRuntimeExports.jsx(DocumentIcon, { width: 24, height: 24 }), jsxRuntimeExports.jsx("div", { className: "omniscribe_message-document-info", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_message-document-name", children: file.file.name || "Unknown file" }) })] }, file.id)), documentFiles.length > 1 && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-documents-count", children: formatMessage2({
|
|
94157
|
+
id: "{count} documents",
|
|
94158
|
+
defaultMessage: "{count} documents"
|
|
94159
|
+
}, { count: documentFiles.length }) })] })] });
|
|
94160
|
+
};
|
|
93948
94161
|
function EditableContent({ value, setValue, onSubmit, chatHistoryOpen = false }) {
|
|
93949
94162
|
const handleKeyDown = (e) => {
|
|
93950
94163
|
if ((e.metaKey || e.ctrlKey) && e.key === "Enter") {
|
|
@@ -93963,6 +94176,9 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
93963
94176
|
const [isEditing, setIsEditing] = reactExports.useState(false);
|
|
93964
94177
|
const [value, setValue] = reactExports.useState("");
|
|
93965
94178
|
const contentString = getContentString(message.content);
|
|
94179
|
+
const { getMessageImages } = useMessageImages();
|
|
94180
|
+
const messageImages = getMessageImages(message.id || "");
|
|
94181
|
+
const hasMessageFiles = messageImages.length > 0;
|
|
93966
94182
|
const handleSubmitEdit = () => {
|
|
93967
94183
|
setIsEditing(false);
|
|
93968
94184
|
const newMessage = { type: "human", content: value };
|
|
@@ -93980,7 +94196,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
93980
94196
|
}
|
|
93981
94197
|
});
|
|
93982
94198
|
};
|
|
93983
|
-
return jsxRuntimeExports.jsx("div", { className: `omniscribe_human-message-container ${isEditing ? "omniscribe_human-message-container-editing" : "omniscribe_human-message-container-no-editing"}`, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-subcontainer ${isEditing && "omniscribe_human-message-subcontainer-editing"}`, children: [isEditing ? jsxRuntimeExports.jsx(EditableContent, { value, setValue, onSubmit: handleSubmitEdit, chatHistoryOpen }) : jsxRuntimeExports.jsx("p", { className: "omniscribe_human-message-content-text", children: contentString }), jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-command-container ${isEditing && "omniscribe_human-message-command-container-editing"}`, children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta == null ? void 0 : meta.branch, branchOptions: meta == null ? void 0 : meta.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { isLoading, content: contentString, isEditing, setIsEditing: (c2) => {
|
|
94199
|
+
return jsxRuntimeExports.jsx("div", { className: `omniscribe_human-message-container ${isEditing ? "omniscribe_human-message-container-editing" : "omniscribe_human-message-container-no-editing"}`, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-subcontainer ${isEditing && "omniscribe_human-message-subcontainer-editing"}`, children: [isEditing ? jsxRuntimeExports.jsx(EditableContent, { value, setValue, onSubmit: handleSubmitEdit, chatHistoryOpen }) : jsxRuntimeExports.jsxs("div", { className: "omniscribe_human-message-content", children: [hasMessageFiles && jsxRuntimeExports.jsx(MessageImages, { uploadedFiles: messageImages }), jsxRuntimeExports.jsx("p", { className: "omniscribe_human-message-content-text", children: contentString })] }), jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-command-container ${isEditing && "omniscribe_human-message-command-container-editing"}`, children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta == null ? void 0 : meta.branch, branchOptions: meta == null ? void 0 : meta.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { isLoading, content: contentString, isEditing, setIsEditing: (c2) => {
|
|
93984
94200
|
if (c2) {
|
|
93985
94201
|
setValue(contentString);
|
|
93986
94202
|
}
|
|
@@ -94513,7 +94729,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
94513
94729
|
};
|
|
94514
94730
|
return jsxRuntimeExports.jsx("div", { className, style: gradient, children });
|
|
94515
94731
|
};
|
|
94516
|
-
const PredefinedQuestions = ({ handleSubmit, messages }) => {
|
|
94732
|
+
const PredefinedQuestions = ({ handleSubmit, messages, isAutoSendingSummary }) => {
|
|
94517
94733
|
const contentClassName = "text-p omniscribe_predefined-questions-content";
|
|
94518
94734
|
const { formatMessage: formatMessage2 } = useIntl();
|
|
94519
94735
|
const data = [
|
|
@@ -94523,54 +94739,16 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
94523
94739
|
}),
|
|
94524
94740
|
formatMessage2({ id: "What shouldn't I overlook today?" })
|
|
94525
94741
|
];
|
|
94742
|
+
if (isAutoSendingSummary || messages > 0) {
|
|
94743
|
+
return null;
|
|
94744
|
+
}
|
|
94526
94745
|
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_predefined-questions-container", children: [jsxRuntimeExports.jsx("span", { className: "text-p-semi omniscribe_predefined-questions-span omniscribe_predefined-title", children: formatMessage2({
|
|
94527
94746
|
id: "Hello Doctor, I'm your personal assistant. How can I help you today?"
|
|
94528
|
-
}) }),
|
|
94529
|
-
};
|
|
94530
|
-
const MousePointerClickIcon = ({ className, width = 24, height = 24 }) => {
|
|
94531
|
-
return jsxRuntimeExports.jsx("svg", { width, height, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", className, children: jsxRuntimeExports.jsx("path", { d: "M14 4.1L12 6M5.1 8l-2.9-.8M6 12l-1.9 2M7.2 2.2L8 5.1M9.037 9.69a.498.498 0 01.653-.653l11 4.5a.5.5 0 01-.074.949l-4.349 1.041a1 1 0 00-.74.739l-1.04 4.35a.5.5 0 01-.95.074z" }) });
|
|
94532
|
-
};
|
|
94533
|
-
const sleep = async (ms) => {
|
|
94534
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
94747
|
+
}) }), data.map((text2) => jsxRuntimeExports.jsx("div", { className: "omniscribe_predefined-questions-msg-container whitespace-wrap", children: jsxRuntimeExports.jsx(GradientBox, { children: jsxRuntimeExports.jsx(Button, { onClick: (e) => handleSubmit(e, text2), className: contentClassName, rounded: "omniscribe_predefined-questions-btn-rounded", whitespace: "", variant: "empty", size: "empty", children: text2 }) }) }, text2))] });
|
|
94535
94748
|
};
|
|
94536
|
-
const
|
|
94537
|
-
const [show, setShow] = reactExports.useState(false);
|
|
94538
|
-
const popupRef = reactExports.useRef(null);
|
|
94539
|
-
const { dragHandlers, dragStyle } = useDraggable(!visible);
|
|
94540
|
-
const handleCloseModal = async () => {
|
|
94541
|
-
setShow(false);
|
|
94542
|
-
await sleep(350);
|
|
94543
|
-
setModalVisible(false);
|
|
94544
|
-
};
|
|
94545
|
-
const handleOverlayClick = (e) => {
|
|
94546
|
-
if (e.target === e.currentTarget) {
|
|
94547
|
-
handleCloseModal();
|
|
94548
|
-
}
|
|
94549
|
-
};
|
|
94550
|
-
reactExports.useEffect(() => {
|
|
94551
|
-
if (visible)
|
|
94552
|
-
setTimeout(() => setShow(true), 10);
|
|
94553
|
-
}, [visible]);
|
|
94554
|
-
if (!visible)
|
|
94555
|
-
return null;
|
|
94556
|
-
return jsxRuntimeExports.jsx("div", { className: "omniscribe_modal-overlay", onClick: handleOverlayClick, children: jsxRuntimeExports.jsx("div", { className: `omniscribe_modal-container ${show ? "omniscribe_modal-container-show" : "omniscribe_modal-container-hide"} ${className} ${scroll ? "omniscribe_modal-container-scroll" : ""}`, ref: popupRef, onClick: (e) => e.stopPropagation(), style: dragStyle, children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_modal-subcontainer", children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_modal-title-container", onMouseDown: dragHandlers.onMouseDown, children: [jsxRuntimeExports.jsx("h2", { className: "omniscribe_modal-title", children: title }), jsxRuntimeExports.jsx("button", { id: "closeModalDictionaryButton", className: "omniscribe_modal-button", "aria-label": "Cerrar", onClick: handleCloseModal, children: jsxRuntimeExports.jsx(XIcon, { strokeWidth: 4 }) })] }), children] }) }) });
|
|
94557
|
-
};
|
|
94558
|
-
const cn = (...classes) => {
|
|
94559
|
-
return classes.filter(Boolean).join(" ");
|
|
94560
|
-
};
|
|
94561
|
-
const SourcesModal = ({ isOpen, onClose, sources, selectedSources, onToggleSource, onSave, onSelectAll, setModalVisible, isSaving = false }) => {
|
|
94749
|
+
const SummaryLoading = () => {
|
|
94562
94750
|
const { formatMessage: formatMessage2 } = useIntl();
|
|
94563
|
-
|
|
94564
|
-
return null;
|
|
94565
|
-
return jsxRuntimeExports.jsx(Modal, { setModalVisible, className: "omniscribe_modal-sources", visible: isOpen, title: formatMessage2({ id: "My source library" }), children: jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_header_description", children: [jsxRuntimeExports.jsx(MousePointerClickIcon, { width: 16, height: 16, className: "omniscribe_icon_blue" }), formatMessage2({
|
|
94566
|
-
id: `Specify the sources and resources that should guide the AI's responses.`
|
|
94567
|
-
})] }), jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_filter_section", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_filter_buttons", children: jsxRuntimeExports.jsx(Button, { className: "omniscribe_button_all", onClick: onSelectAll, children: formatMessage2({ id: "All" }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_sources_count", children: formatMessage2({
|
|
94568
|
-
id: "sourcesSelected",
|
|
94569
|
-
defaultMessage: "{selected} of {total} selected"
|
|
94570
|
-
}, {
|
|
94571
|
-
selected: selectedSources.length,
|
|
94572
|
-
total: sources.length
|
|
94573
|
-
}) })] }), jsxRuntimeExports.jsx("div", { className: "omniscribe_sources_container scrollbar-pretty", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_sources_list", children: sources.map((source) => jsxRuntimeExports.jsx("div", { onClick: () => onToggleSource(source), className: cn("omniscribe_source_item", selectedSources.some((s2) => s2.url === source.url) && "omniscribe_source_item_selected"), children: jsxRuntimeExports.jsx("div", { className: "omniscribe_source_content", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_source_title_container", children: jsxRuntimeExports.jsx("a", { href: source.url, target: "_blank", rel: "noopener noreferrer", onClick: (e) => e.stopPropagation(), className: "omniscribe_source_link", children: formatMessage2({ id: source.title }) }) }) }) }, source.title)) }) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_footer", children: [jsxRuntimeExports.jsx(Button, { className: "omniscribe_button_outline", onClick: onClose, disabled: isSaving, children: formatMessage2({ id: "Cancel" }) }), jsxRuntimeExports.jsx(Button, { className: "omniscribe_button_primary", onClick: onSave, disabled: isSaving, children: isSaving ? formatMessage2({ id: "Saving" }) : formatMessage2({ id: "Save" }) })] })] })] }) });
|
|
94751
|
+
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_auto-summary-container", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_auto-summary-text", children: formatMessage2({ id: "Generating patient summary" }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_auto-summary-loading", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_loading-dots", children: jsxRuntimeExports.jsx("span", {}) }) })] });
|
|
94574
94752
|
};
|
|
94575
94753
|
var ChatSourceCategory;
|
|
94576
94754
|
(function(ChatSourceCategory2) {
|
|
@@ -94578,9 +94756,6 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
94578
94756
|
ChatSourceCategory2["DrugInfoDomains"] = "drug_info_domains";
|
|
94579
94757
|
ChatSourceCategory2["MedicalResearchDomains"] = "medical_research_domains";
|
|
94580
94758
|
})(ChatSourceCategory || (ChatSourceCategory = {}));
|
|
94581
|
-
const BookTextIcon = ({ className, width = 16, height = 16, stroke = "currentColor" }) => {
|
|
94582
|
-
return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M2.66699 13V2.99998C2.66699 2.55795 2.84259 2.13403 3.15515 1.82147C3.46771 1.50891 3.89163 1.33331 4.33366 1.33331H12.667C12.8438 1.33331 13.0134 1.40355 13.1384 1.52858C13.2634 1.6536 13.3337 1.82317 13.3337 1.99998V14C13.3337 14.1768 13.2634 14.3464 13.1384 14.4714C13.0134 14.5964 12.8438 14.6666 12.667 14.6666H4.33366C3.89163 14.6666 3.46771 14.4911 3.15515 14.1785C2.84259 13.8659 2.66699 13.442 2.66699 13ZM2.66699 13C2.66699 12.558 2.84259 12.134 3.15515 11.8215C3.46771 11.5089 3.89163 11.3333 4.33366 11.3333H13.3337", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M5.33301 8.66667L7.99967 4L10.6663 8.66667", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M6.06641 7.33331H9.86641", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
|
|
94583
|
-
};
|
|
94584
94759
|
class InputValidator {
|
|
94585
94760
|
// JSON Validation
|
|
94586
94761
|
static validateJson(input) {
|
|
@@ -95311,55 +95486,51 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95311
95486
|
const human_readable = `${weekday}, ${dayFormatted} ${monthName} ${year} ${hourFormatted}:${minuteFormatted} ${gmtOffset}`;
|
|
95312
95487
|
return `${iso_local} (${human_readable})`;
|
|
95313
95488
|
};
|
|
95314
|
-
const
|
|
95315
|
-
return
|
|
95316
|
-
};
|
|
95317
|
-
const getCurrentResponseMessages = (messages) => {
|
|
95318
|
-
let lastHumanIndex = -1;
|
|
95319
|
-
for (let index2 = messages.length - 1; index2 >= 0; index2 -= 1) {
|
|
95320
|
-
if (messages[index2].type === "human") {
|
|
95321
|
-
lastHumanIndex = index2;
|
|
95322
|
-
break;
|
|
95323
|
-
}
|
|
95324
|
-
}
|
|
95325
|
-
return messages.slice(lastHumanIndex + 1);
|
|
95326
|
-
};
|
|
95327
|
-
const currentResponseHasContent = (messages) => {
|
|
95328
|
-
return getCurrentResponseMessages(messages).some((msg) => {
|
|
95329
|
-
if (msg.type !== "ai")
|
|
95330
|
-
return false;
|
|
95331
|
-
return hasMessageContent(msg);
|
|
95332
|
-
});
|
|
95489
|
+
const CloseIcon = ({ width = 24, height = 24, className }) => {
|
|
95490
|
+
return jsxRuntimeExports.jsxs("svg", { fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", width, height, viewBox: "0 0 24 24", className, children: [jsxRuntimeExports.jsx("path", { d: "M18 6L6 18" }), jsxRuntimeExports.jsx("path", { d: "M6 6l12 12" })] });
|
|
95333
95491
|
};
|
|
95334
|
-
const
|
|
95335
|
-
if (
|
|
95492
|
+
const FilePreview = ({ files, onRemove, chatHistoryOpen = false }) => {
|
|
95493
|
+
if (files.length === 0)
|
|
95336
95494
|
return null;
|
|
95337
|
-
const
|
|
95338
|
-
|
|
95495
|
+
const imageFiles = files.filter((f2) => f2.type === "image");
|
|
95496
|
+
const documentFiles = files.filter((f2) => f2.type === "document");
|
|
95497
|
+
return jsxRuntimeExports.jsxs("div", { className: `omniscribe_file-preview-container ${chatHistoryOpen ? "omniscribe_file-preview-container-history-open" : ""}`, children: [documentFiles.map((file) => jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-preview-document", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_file-preview-document-icon", children: jsxRuntimeExports.jsx(DocumentIcon, { width: 24, height: 24 }) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-preview-document-info", children: [jsxRuntimeExports.jsx("span", { className: "omniscribe_file-preview-document-title", children: file.file.name }), jsxRuntimeExports.jsx("span", { className: "omniscribe_file-preview-document-type", children: getFileExtension(file.file.name).toUpperCase() })] }), jsxRuntimeExports.jsx("button", { type: "button", className: "omniscribe_file-preview-remove-btn", onClick: () => onRemove(file.id), "aria-label": "Remove file", children: jsxRuntimeExports.jsx(CloseIcon, { width: 12, height: 12 }) })] }, file.id)), imageFiles.map((file) => jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-preview-image", children: [file.previewUrl ? jsxRuntimeExports.jsx("img", { src: file.previewUrl, alt: file.file.name, className: "omniscribe_file-preview-image-img" }) : jsxRuntimeExports.jsx("div", { className: "omniscribe_file-preview-image-placeholder" }), jsxRuntimeExports.jsx("button", { type: "button", className: "omniscribe_file-preview-remove-btn omniscribe_file-preview-remove-btn--image", onClick: () => onRemove(file.id), "aria-label": "Remove image", children: jsxRuntimeExports.jsx(CloseIcon, { width: 10, height: 10 }) })] }, file.id))] });
|
|
95339
95498
|
};
|
|
95340
|
-
|
|
95341
|
-
const
|
|
95499
|
+
function getFileExtension(filename) {
|
|
95500
|
+
const parts = filename.split(".");
|
|
95501
|
+
return parts.length > 1 ? parts[parts.length - 1] : "";
|
|
95502
|
+
}
|
|
95503
|
+
const WarningIcon = ({ className, width = 24, height = 24, strokeWidth = 2 }) => {
|
|
95504
|
+
return jsxRuntimeExports.jsxs("svg", { fill: "none", width, height, viewBox: "0 0 24 24", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth, className, children: [jsxRuntimeExports.jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }), jsxRuntimeExports.jsx("path", { d: "M12 9v4" }), jsxRuntimeExports.jsx("path", { d: "m12 17 .01 0" })] });
|
|
95505
|
+
};
|
|
95506
|
+
function FileLimitBanner({ message, onClose, isVisible }) {
|
|
95342
95507
|
reactExports.useEffect(() => {
|
|
95343
|
-
|
|
95344
|
-
|
|
95345
|
-
|
|
95346
|
-
|
|
95508
|
+
if (isVisible) {
|
|
95509
|
+
const timer = setTimeout(() => {
|
|
95510
|
+
onClose();
|
|
95511
|
+
}, 5e3);
|
|
95512
|
+
return () => clearTimeout(timer);
|
|
95347
95513
|
}
|
|
95348
|
-
|
|
95349
|
-
|
|
95350
|
-
|
|
95351
|
-
|
|
95352
|
-
|
|
95353
|
-
|
|
95354
|
-
|
|
95355
|
-
|
|
95356
|
-
|
|
95357
|
-
|
|
95358
|
-
|
|
95359
|
-
|
|
95360
|
-
|
|
95361
|
-
|
|
95362
|
-
|
|
95514
|
+
}, [isVisible]);
|
|
95515
|
+
if (!isVisible)
|
|
95516
|
+
return null;
|
|
95517
|
+
return jsxRuntimeExports.jsx("div", { className: "omniscribe_file-limit-banner", children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-limit-banner-content", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_file-limit-banner-icon", children: jsxRuntimeExports.jsx(WarningIcon, { width: 20, height: 20 }) }), jsxRuntimeExports.jsx("span", { className: "omniscribe_file-limit-banner-message", children: message }), jsxRuntimeExports.jsx("button", { className: "omniscribe_file-limit-banner-close", onClick: onClose, type: "button", children: jsxRuntimeExports.jsx(XIcon, {}) })] }) });
|
|
95518
|
+
}
|
|
95519
|
+
const MAX_FILES = 5;
|
|
95520
|
+
const MAX_FILE_SIZE = 5 * 1024 * 1024;
|
|
95521
|
+
const SUPPORTED_FILE_TYPES = [
|
|
95522
|
+
// Images
|
|
95523
|
+
"image/jpeg",
|
|
95524
|
+
"image/jpg",
|
|
95525
|
+
"image/png",
|
|
95526
|
+
"image/gif",
|
|
95527
|
+
"image/webp",
|
|
95528
|
+
// 'image/svg+xml', // Removed: SVG can contain malicious JavaScript
|
|
95529
|
+
// Documents
|
|
95530
|
+
"application/pdf"
|
|
95531
|
+
];
|
|
95532
|
+
const isFileTypeSupported = (fileType) => {
|
|
95533
|
+
return SUPPORTED_FILE_TYPES.includes(fileType) || fileType.startsWith("image/");
|
|
95363
95534
|
};
|
|
95364
95535
|
function StickyToBottomContent(props) {
|
|
95365
95536
|
const context = useStickToBottomContext();
|
|
@@ -95372,6 +95543,23 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95372
95543
|
return null;
|
|
95373
95544
|
return jsxRuntimeExports.jsxs(Button, { variant: "outline", className: props.className, onClick: () => scrollToBottom(), children: [jsxRuntimeExports.jsx(ArrowDownIcon, { className: "omniscribe_thread-down-btn" }), jsxRuntimeExports.jsx("span", { children: formatMessage2({ id: "Scroll down" }) })] });
|
|
95374
95545
|
}
|
|
95546
|
+
function getAutoSummarySessionKey(patientId, doctorId) {
|
|
95547
|
+
const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
95548
|
+
return `sofia-auto-summary:${patientId != null ? patientId : ""}:${doctorId != null ? doctorId : ""}:${today}`;
|
|
95549
|
+
}
|
|
95550
|
+
function isAutoSummarySent(patientId, doctorId) {
|
|
95551
|
+
try {
|
|
95552
|
+
return sessionStorage.getItem(getAutoSummarySessionKey(patientId, doctorId)) === "true";
|
|
95553
|
+
} catch (e) {
|
|
95554
|
+
return false;
|
|
95555
|
+
}
|
|
95556
|
+
}
|
|
95557
|
+
function markAutoSummarySent(patientId, doctorId) {
|
|
95558
|
+
try {
|
|
95559
|
+
sessionStorage.setItem(getAutoSummarySessionKey(patientId, doctorId), "true");
|
|
95560
|
+
} catch (e) {
|
|
95561
|
+
}
|
|
95562
|
+
}
|
|
95375
95563
|
const Thread = () => {
|
|
95376
95564
|
const { appointmentData, chatHistoryOpen } = useLangGraphContext();
|
|
95377
95565
|
const { disableAllActions } = useApiConfigContext();
|
|
@@ -95383,27 +95571,32 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95383
95571
|
});
|
|
95384
95572
|
const chatApi = useChatApi();
|
|
95385
95573
|
const stream = useStreamContext();
|
|
95386
|
-
const { availableSources, sources: settingsSources,
|
|
95574
|
+
const { availableSources, sources: settingsSources, summary } = useSettingsContext();
|
|
95387
95575
|
const messages = stream.messages;
|
|
95388
95576
|
const isLoading = stream.isLoading;
|
|
95389
|
-
const { firstTokenReceived, setFirstTokenReceived } = useMessageLoadingState(messages);
|
|
95390
95577
|
const lastError = reactExports.useRef(void 0);
|
|
95391
95578
|
const textareaRef = reactExports.useRef(null);
|
|
95392
|
-
const
|
|
95393
|
-
const
|
|
95579
|
+
const fileInputRef = reactExports.useRef(null);
|
|
95580
|
+
const handleSubmitRef = reactExports.useRef(null);
|
|
95581
|
+
const [uploadedFiles, setUploadedFiles] = reactExports.useState([]);
|
|
95582
|
+
const [showFileLimitBanner, setShowFileLimitBanner] = reactExports.useState(false);
|
|
95583
|
+
const [bannerMessage, setBannerMessage] = reactExports.useState("");
|
|
95584
|
+
const uploadedFilesRef = reactExports.useRef([]);
|
|
95585
|
+
const formatMessageRef = reactExports.useRef(null);
|
|
95586
|
+
const autoSummaryLoadingStarted = reactExports.useRef(false);
|
|
95587
|
+
const [autoSummaryCancelled, setAutoSummaryCancelled] = reactExports.useState(false);
|
|
95588
|
+
const [isAutoSendingSummary, setIsAutoSendingSummary] = reactExports.useState(false);
|
|
95394
95589
|
const [inputIsValid, setInputIsValid] = reactExports.useState(() => InputValidator.validate(input.value, { maxLength: inputMaxLength }).isValid);
|
|
95590
|
+
reactExports.useEffect(() => {
|
|
95591
|
+
uploadedFilesRef.current = uploadedFiles;
|
|
95592
|
+
}, [uploadedFiles]);
|
|
95395
95593
|
const [selectedSources, setSelectedSources] = reactExports.useState(() => Array.isArray(settingsSources) ? settingsSources : availableSources);
|
|
95396
95594
|
const { setToastState } = useToastContext();
|
|
95397
|
-
const
|
|
95398
|
-
|
|
95399
|
-
|
|
95400
|
-
|
|
95401
|
-
|
|
95402
|
-
setSelectedSources([]);
|
|
95403
|
-
} else {
|
|
95404
|
-
setSelectedSources([...availableSources]);
|
|
95405
|
-
}
|
|
95406
|
-
};
|
|
95595
|
+
const { setMessageImages } = useMessageImages();
|
|
95596
|
+
reactExports.useEffect(() => {
|
|
95597
|
+
const sources = Array.isArray(settingsSources) ? settingsSources : availableSources;
|
|
95598
|
+
setSelectedSources(sources);
|
|
95599
|
+
}, [settingsSources, availableSources]);
|
|
95407
95600
|
const handleTranscriptionUpdate = (text2) => {
|
|
95408
95601
|
const newText = input.value.length ? `${input.value} ${text2}` : text2;
|
|
95409
95602
|
input.setValue(newText);
|
|
@@ -95413,20 +95606,108 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95413
95606
|
input.onChange(e);
|
|
95414
95607
|
setInputIsValid(InputValidator.validate(e.target.value, { maxLength: inputMaxLength }).isValid);
|
|
95415
95608
|
};
|
|
95416
|
-
const
|
|
95417
|
-
|
|
95609
|
+
const handleAttachClick = () => {
|
|
95610
|
+
var _a2;
|
|
95611
|
+
(_a2 = fileInputRef.current) == null ? void 0 : _a2.click();
|
|
95612
|
+
};
|
|
95613
|
+
const handleFileSelect = async (e) => {
|
|
95614
|
+
const files = e.target.files;
|
|
95615
|
+
if (!files)
|
|
95418
95616
|
return;
|
|
95419
|
-
|
|
95420
|
-
|
|
95421
|
-
|
|
95422
|
-
|
|
95423
|
-
|
|
95424
|
-
|
|
95425
|
-
|
|
95426
|
-
|
|
95617
|
+
const filesArray = Array.from(files);
|
|
95618
|
+
const totalFiles = uploadedFiles.length + filesArray.length;
|
|
95619
|
+
const oversizedFiles = filesArray.filter((file) => file.size > MAX_FILE_SIZE);
|
|
95620
|
+
const hasOversizedFiles = oversizedFiles.length > 0;
|
|
95621
|
+
const unsupportedFiles = filesArray.filter((file) => !isFileTypeSupported(file.type));
|
|
95622
|
+
const hasUnsupportedFiles = unsupportedFiles.length > 0;
|
|
95623
|
+
const exceedsFileCount = totalFiles > MAX_FILES;
|
|
95624
|
+
let message = "";
|
|
95625
|
+
if (hasUnsupportedFiles) {
|
|
95626
|
+
message = formatMessage2({ id: "Unsupported file format" });
|
|
95627
|
+
} else if (hasOversizedFiles) {
|
|
95628
|
+
message = formatMessage2({ id: "File is too large. Maximum size is 5MB" });
|
|
95629
|
+
} else if (exceedsFileCount) {
|
|
95630
|
+
message = formatMessage2({ id: "Maximum number of files is 5" });
|
|
95631
|
+
}
|
|
95632
|
+
if (hasUnsupportedFiles || hasOversizedFiles || exceedsFileCount) {
|
|
95633
|
+
setBannerMessage(message);
|
|
95634
|
+
setShowFileLimitBanner(true);
|
|
95635
|
+
if (fileInputRef.current) {
|
|
95636
|
+
fileInputRef.current.value = "";
|
|
95637
|
+
}
|
|
95638
|
+
return;
|
|
95639
|
+
}
|
|
95640
|
+
const newFiles = [];
|
|
95641
|
+
for (const file of filesArray) {
|
|
95642
|
+
try {
|
|
95643
|
+
const isImage = file.type.startsWith("image/");
|
|
95644
|
+
const uploadedFile = {
|
|
95645
|
+
id: v4(),
|
|
95646
|
+
file,
|
|
95647
|
+
type: isImage ? "image" : "document"
|
|
95648
|
+
};
|
|
95649
|
+
if (isImage) {
|
|
95650
|
+
uploadedFile.previewUrl = URL.createObjectURL(file);
|
|
95651
|
+
}
|
|
95652
|
+
const base64Data = await fileToBase64(file);
|
|
95653
|
+
uploadedFile.processedData = isImage ? {
|
|
95654
|
+
type: "image",
|
|
95655
|
+
source_type: "base64",
|
|
95656
|
+
data: base64Data,
|
|
95657
|
+
mime_type: file.type
|
|
95658
|
+
} : {
|
|
95659
|
+
type: "file",
|
|
95660
|
+
source_type: "base64",
|
|
95661
|
+
data: base64Data,
|
|
95662
|
+
mime_type: file.type,
|
|
95663
|
+
filename: file.name
|
|
95664
|
+
};
|
|
95665
|
+
newFiles.push(uploadedFile);
|
|
95666
|
+
} catch (error) {
|
|
95667
|
+
logger.error("Failed to process file:", file.name, error);
|
|
95668
|
+
newFiles.forEach((f2) => {
|
|
95669
|
+
if (f2.previewUrl) {
|
|
95670
|
+
URL.revokeObjectURL(f2.previewUrl);
|
|
95671
|
+
}
|
|
95672
|
+
});
|
|
95673
|
+
setBannerMessage(formatMessage2({ id: "Error processing file" }));
|
|
95674
|
+
setShowFileLimitBanner(true);
|
|
95675
|
+
if (fileInputRef.current) {
|
|
95676
|
+
fileInputRef.current.value = "";
|
|
95677
|
+
}
|
|
95678
|
+
return;
|
|
95679
|
+
}
|
|
95680
|
+
}
|
|
95681
|
+
setUploadedFiles((prev) => [...prev, ...newFiles]);
|
|
95682
|
+
if (fileInputRef.current) {
|
|
95683
|
+
fileInputRef.current.value = "";
|
|
95427
95684
|
}
|
|
95428
95685
|
};
|
|
95429
|
-
const
|
|
95686
|
+
const handleFileRemove = (id2) => {
|
|
95687
|
+
setUploadedFiles((prev) => {
|
|
95688
|
+
const fileToRemove = prev.find((f2) => f2.id === id2);
|
|
95689
|
+
if (fileToRemove == null ? void 0 : fileToRemove.previewUrl) {
|
|
95690
|
+
URL.revokeObjectURL(fileToRemove.previewUrl);
|
|
95691
|
+
}
|
|
95692
|
+
return prev.filter((f2) => f2.id !== id2);
|
|
95693
|
+
});
|
|
95694
|
+
};
|
|
95695
|
+
const fileToBase64 = (file) => {
|
|
95696
|
+
return new Promise((resolve, reject) => {
|
|
95697
|
+
const reader = new FileReader();
|
|
95698
|
+
reader.onload = () => {
|
|
95699
|
+
const base64String = reader.result;
|
|
95700
|
+
const base64Data = base64String.split(",")[1];
|
|
95701
|
+
resolve(base64Data);
|
|
95702
|
+
};
|
|
95703
|
+
reader.onerror = (error) => {
|
|
95704
|
+
logger.error("Failed to read file:", file.name, error);
|
|
95705
|
+
reject(new Error(`Failed to read file: ${file.name}`));
|
|
95706
|
+
};
|
|
95707
|
+
reader.readAsDataURL(file);
|
|
95708
|
+
});
|
|
95709
|
+
};
|
|
95710
|
+
const handleSubmit = (e, predefinedText, isAutoSummary) => {
|
|
95430
95711
|
var _a2;
|
|
95431
95712
|
e.preventDefault();
|
|
95432
95713
|
const inputValidation = input.validate();
|
|
@@ -95435,19 +95716,21 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95435
95716
|
return;
|
|
95436
95717
|
if (predefinedText && !InputValidator.validate(predefinedText).isValid)
|
|
95437
95718
|
return;
|
|
95438
|
-
setFirstTokenReceived(false);
|
|
95439
95719
|
const newHumanMessage = {
|
|
95440
|
-
id: v4(),
|
|
95720
|
+
id: isAutoSummary ? `${DO_NOT_RENDER_ID_PREFIX}${v4()}` : v4(),
|
|
95441
95721
|
type: "human",
|
|
95442
95722
|
content: predefinedText != null ? predefinedText : input.value
|
|
95443
95723
|
};
|
|
95724
|
+
if (uploadedFiles.length > 0) {
|
|
95725
|
+
setMessageImages(newHumanMessage.id || "", uploadedFiles);
|
|
95726
|
+
}
|
|
95444
95727
|
const toolMessages = ensureToolCallsHaveResponses(stream.messages);
|
|
95445
95728
|
const _b = ((_a2 = appointmentData == null ? void 0 : appointmentData.patientData) == null ? void 0 : _a2.extraData) || {}, { patient_medical_notes, medical_practice } = _b, restOfExtraData = __objRest(_b, ["patient_medical_notes", "medical_practice"]);
|
|
95446
95729
|
const newPatientData = {
|
|
95447
95730
|
info: restOfExtraData,
|
|
95448
95731
|
"Full Name:": "Sam Test",
|
|
95449
95732
|
"Birth Date:": "01/01/1990",
|
|
95450
|
-
"
|
|
95733
|
+
"Mobile:": "600000006",
|
|
95451
95734
|
"Address:": "456 Avenida Inventada, Ciudad Y",
|
|
95452
95735
|
patientId: appointmentData == null ? void 0 : appointmentData.patientId,
|
|
95453
95736
|
doctorId: appointmentData == null ? void 0 : appointmentData.doctorId
|
|
@@ -95470,8 +95753,9 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95470
95753
|
logger.warn(`Unknown source category: ${source.category} for source: ${source.title}`);
|
|
95471
95754
|
}
|
|
95472
95755
|
});
|
|
95756
|
+
const messageFiles = uploadedFiles.map((file) => file.processedData).filter(Boolean);
|
|
95473
95757
|
const data = {
|
|
95474
|
-
values: {
|
|
95758
|
+
values: __spreadValues({
|
|
95475
95759
|
messages: [...toolMessages, newHumanMessage],
|
|
95476
95760
|
drug_info_domains: drugInfoDomains,
|
|
95477
95761
|
clinical_guidelines_domains: clinicalGuidelinesDomains,
|
|
@@ -95482,8 +95766,9 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95482
95766
|
medical_practice: medical_practice != null ? medical_practice : "Atención Primaria",
|
|
95483
95767
|
patient_medical_notes,
|
|
95484
95768
|
doctor_id: appointmentData == null ? void 0 : appointmentData.doctorId,
|
|
95485
|
-
current_datetime: getCurrentDateTime()
|
|
95486
|
-
|
|
95769
|
+
current_datetime: getCurrentDateTime(),
|
|
95770
|
+
prompt_summary: (summary == null ? void 0 : summary.isEnabled) ? (summary == null ? void 0 : summary.prompt) || "" : ""
|
|
95771
|
+
}, messageFiles.length > 0 && { files: messageFiles }),
|
|
95487
95772
|
options: {
|
|
95488
95773
|
streamMode: ["values"],
|
|
95489
95774
|
optimisticValues: (prev) => {
|
|
@@ -95500,9 +95785,9 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95500
95785
|
};
|
|
95501
95786
|
chatApi.submitMessages(stream, data);
|
|
95502
95787
|
input.reset();
|
|
95788
|
+
setUploadedFiles([]);
|
|
95503
95789
|
};
|
|
95504
95790
|
const handleRegenerate = (parentCheckpoint) => {
|
|
95505
|
-
setFirstTokenReceived(false);
|
|
95506
95791
|
const data = {
|
|
95507
95792
|
values: void 0,
|
|
95508
95793
|
options: {
|
|
@@ -95537,6 +95822,53 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95537
95822
|
} catch (e) {
|
|
95538
95823
|
}
|
|
95539
95824
|
}, [stream.error, formatMessage2, setToastState]);
|
|
95825
|
+
reactExports.useEffect(() => {
|
|
95826
|
+
handleSubmitRef.current = handleSubmit;
|
|
95827
|
+
formatMessageRef.current = formatMessage2;
|
|
95828
|
+
}, [handleSubmit, formatMessage2]);
|
|
95829
|
+
reactExports.useEffect(() => {
|
|
95830
|
+
const patientId = appointmentData == null ? void 0 : appointmentData.patientId;
|
|
95831
|
+
const doctorId = appointmentData == null ? void 0 : appointmentData.doctorId;
|
|
95832
|
+
if (!isAutoSummarySent(patientId, doctorId) && !isLoading && (summary == null ? void 0 : summary.isEnabled) && handleSubmitRef.current && formatMessageRef.current) {
|
|
95833
|
+
markAutoSummarySent(patientId, doctorId);
|
|
95834
|
+
autoSummaryLoadingStarted.current = false;
|
|
95835
|
+
setAutoSummaryCancelled(false);
|
|
95836
|
+
setIsAutoSendingSummary(true);
|
|
95837
|
+
const summaryMessage = formatMessageRef.current({
|
|
95838
|
+
id: "I'd like to see a summary of the patient's chart"
|
|
95839
|
+
});
|
|
95840
|
+
handleSubmitRef.current({ preventDefault: () => {
|
|
95841
|
+
} }, summaryMessage, true);
|
|
95842
|
+
}
|
|
95843
|
+
}, [
|
|
95844
|
+
isLoading,
|
|
95845
|
+
summary == null ? void 0 : summary.isEnabled,
|
|
95846
|
+
appointmentData == null ? void 0 : appointmentData.patientId,
|
|
95847
|
+
appointmentData == null ? void 0 : appointmentData.doctorId
|
|
95848
|
+
]);
|
|
95849
|
+
reactExports.useEffect(() => {
|
|
95850
|
+
if (isAutoSendingSummary && !isLoading && messages.length > 0) {
|
|
95851
|
+
const hasAIResponseWithContent = messages.some((msg) => msg.type === "ai" && msg.content && String(msg.content).trim().length > 0);
|
|
95852
|
+
if (hasAIResponseWithContent) {
|
|
95853
|
+
setIsAutoSendingSummary(false);
|
|
95854
|
+
}
|
|
95855
|
+
}
|
|
95856
|
+
}, [isAutoSendingSummary, isLoading, messages]);
|
|
95857
|
+
reactExports.useEffect(() => {
|
|
95858
|
+
if (!isAutoSendingSummary)
|
|
95859
|
+
return;
|
|
95860
|
+
if (isLoading) {
|
|
95861
|
+
autoSummaryLoadingStarted.current = true;
|
|
95862
|
+
return;
|
|
95863
|
+
}
|
|
95864
|
+
if (autoSummaryLoadingStarted.current) {
|
|
95865
|
+
const hasAIResponseWithContent = messages.some((msg) => msg.type === "ai" && msg.content && String(msg.content).trim().length > 0);
|
|
95866
|
+
if (!hasAIResponseWithContent) {
|
|
95867
|
+
setAutoSummaryCancelled(true);
|
|
95868
|
+
setIsAutoSendingSummary(false);
|
|
95869
|
+
}
|
|
95870
|
+
}
|
|
95871
|
+
}, [isAutoSendingSummary, isLoading, messages]);
|
|
95540
95872
|
reactExports.useEffect(() => {
|
|
95541
95873
|
const sources = Array.isArray(settingsSources) ? settingsSources : availableSources;
|
|
95542
95874
|
setSelectedSources(sources);
|
|
@@ -95547,21 +95879,36 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95547
95879
|
textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;
|
|
95548
95880
|
}
|
|
95549
95881
|
}, [input.value]);
|
|
95550
|
-
|
|
95882
|
+
reactExports.useEffect(() => {
|
|
95883
|
+
return () => {
|
|
95884
|
+
uploadedFilesRef.current.forEach((file) => {
|
|
95885
|
+
if (file.previewUrl) {
|
|
95886
|
+
URL.revokeObjectURL(file.previewUrl);
|
|
95887
|
+
}
|
|
95888
|
+
});
|
|
95889
|
+
};
|
|
95890
|
+
}, []);
|
|
95891
|
+
const renderedMessages = reactExports.useMemo(() => {
|
|
95551
95892
|
const filteredMessages = messages.filter((m2) => {
|
|
95552
95893
|
var _a2;
|
|
95553
95894
|
return !((_a2 = m2.id) == null ? void 0 : _a2.startsWith(DO_NOT_RENDER_ID_PREFIX));
|
|
95554
95895
|
});
|
|
95555
|
-
const
|
|
95556
|
-
|
|
95557
|
-
|
|
95896
|
+
const finalMessages = autoSummaryCancelled ? filteredMessages.filter((msg) => {
|
|
95897
|
+
if (msg.type === "human")
|
|
95898
|
+
return true;
|
|
95899
|
+
const aiIndex = filteredMessages.indexOf(msg);
|
|
95900
|
+
const hasHumanBefore = filteredMessages.slice(0, aiIndex).some((m2) => m2.type === "human");
|
|
95901
|
+
return hasHumanBefore;
|
|
95902
|
+
}) : filteredMessages;
|
|
95903
|
+
const lastHumanIndex = finalMessages.map((m2, i2) => m2.type === "human" ? i2 : -1).filter((i2) => i2 !== -1).pop();
|
|
95904
|
+
const lastAiIndex = finalMessages.map((m2, i2) => m2.type === "ai" ? i2 : -1).filter((i2) => i2 !== -1).pop();
|
|
95905
|
+
return finalMessages.map((message, index2) => {
|
|
95558
95906
|
const isLastHuman = message.type === "human" && index2 === lastHumanIndex;
|
|
95559
95907
|
const isLastAi = message.type === "ai" && index2 === lastAiIndex;
|
|
95560
|
-
return message.type === "human" ? jsxRuntimeExports.jsx(HumanMessage, { message, isLoading, isLastHumanMessage: isLastHuman, chatHistoryOpen }, message.id || `${message.type}-${index2}`) : jsxRuntimeExports.jsx(AssistantMessage, { message, isLoading, handleRegenerate, isLastAiMessage: isLastAi
|
|
95908
|
+
return message.type === "human" ? jsxRuntimeExports.jsx(HumanMessage, { message, isLoading, isLastHumanMessage: isLastHuman, chatHistoryOpen }, message.id || `${message.type}-${index2}`) : jsxRuntimeExports.jsx(AssistantMessage, { message, isLoading, handleRegenerate, isLastAiMessage: isLastAi }, message.id || `${message.type}-${index2}`);
|
|
95561
95909
|
});
|
|
95562
|
-
}, [messages, isLoading,
|
|
95563
|
-
|
|
95564
|
-
}), side: "top", children: jsxRuntimeExports.jsx(Button, { variant: "ghost", onClick: () => setIsSourcesModalOpen(true), disabled: !availableSources.length, style: { marginInline: "4px" }, children: jsxRuntimeExports.jsx(BookTextIcon, { width: 16, height: 16, stroke: selectedSources.length > 0 ? "#105bdb" : "#2b303aff" }) }) }) : jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-no-sources" }), jsxRuntimeExports.jsx(Textarea, { ref: textareaRef, rows: 1, value: input.value, variant: "secondary", onChange: handleInputChange, onKeyDown: (e) => {
|
|
95910
|
+
}, [messages, isLoading, handleRegenerate, chatHistoryOpen]);
|
|
95911
|
+
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(FileLimitBanner, { message: bannerMessage, isVisible: showFileLimitBanner, onClose: () => setShowFileLimitBanner(false) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-container ", children: [jsxRuntimeExports.jsx("div", { className: `omniscribe_thread-container-history-cont ${chatHistoryOpen && "omniscribe_thread-container-history-cont-open"}`, children: jsxRuntimeExports.jsx("div", { className: `omniscribe_thread-container-history-subcont ${chatHistoryOpen ? "omniscribe_thread-container-history-subcont-open" : "omniscribe_thread-container-history-subcont-close"}`, children: jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-container-history-content", children: jsxRuntimeExports.jsx(ThreadHistory, { chatHistoryOpen, newDisabled: disableAllActions || isLoading }) }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-content-container", children: jsxRuntimeExports.jsx(StickToBottom, { className: "omniscribe_thread-stick-to-bottom", children: jsxRuntimeExports.jsx(StickyToBottomContent, { className: "omniscribe_thread-stick-to-bottom-content no-scrollbar", contentClassName: "omniscribe_thread-stick-to-bottom-content-class", content: jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: isAutoSendingSummary ? jsxRuntimeExports.jsx(SummaryLoading, {}) : jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(PredefinedQuestions, { handleSubmit, messages: renderedMessages.length, isAutoSendingSummary: false }), renderedMessages] }) }), footer: jsxRuntimeExports.jsxs("div", { className: `omniscribe_thread-footer-container ${chatHistoryOpen ? "omniscribe_footer-size-decrease" : ""}`, children: [jsxRuntimeExports.jsx(ScrollToBottom$1, { className: "omniscribe_thread-footer-scroll-to-bottom" }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-container", children: [uploadedFiles.length > 0 && jsxRuntimeExports.jsx(FilePreview, { files: uploadedFiles, onRemove: handleFileRemove, chatHistoryOpen }), jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "omniscribe_thread-footer-form", children: [jsxRuntimeExports.jsx("input", { ref: fileInputRef, type: "file", multiple: true, accept: "image/*,.pdf", onChange: handleFileSelect, style: { display: "none" } }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-content", children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-left-btns", children: [jsxRuntimeExports.jsx(Tooltip, { message: formatMessage2({ id: "Attach file" }), side: "top", children: jsxRuntimeExports.jsx("button", { type: "button", className: "omniscribe_thread-attach-btn", onClick: handleAttachClick, disabled: uploadedFiles.length >= MAX_FILES, children: jsxRuntimeExports.jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: jsxRuntimeExports.jsx("path", { d: "M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48" }) }) }) }), jsxRuntimeExports.jsx(Textarea, { ref: textareaRef, rows: 1, value: input.value, variant: "secondary", onChange: handleInputChange, onKeyDown: (e) => {
|
|
95565
95912
|
if (e.key === "Enter" && !e.shiftKey && !e.metaKey) {
|
|
95566
95913
|
e.preventDefault();
|
|
95567
95914
|
const el = e.target;
|
|
@@ -95572,12 +95919,12 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
95572
95919
|
id: "Write your question..."
|
|
95573
95920
|
}) })] }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-btns-container", children: [jsxRuntimeExports.jsx(MicrophoneButton, { onTextUpdate: handleTranscriptionUpdate }), stream.isLoading ? jsxRuntimeExports.jsx(Button, { onClick: () => stream.stop(), children: jsxRuntimeExports.jsx(SquareIcon, {}) }, "stop") : jsxRuntimeExports.jsx(Button, { type: "submit", size: "sm", className: "omniscribe_thread-footer-form-btn", disabled: disableAllActions || isLoading || !input.value.length || !inputIsValid, children: formatMessage2({
|
|
95574
95921
|
id: "Send"
|
|
95575
|
-
}) })] })] }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-footer-info", children: formatMessage2({
|
|
95922
|
+
}) })] })] })] })] }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-footer-info", children: formatMessage2({
|
|
95576
95923
|
id: "SofIA may make mistakes. Consider checking important information."
|
|
95577
|
-
}) })] }) }) }) })
|
|
95924
|
+
}) })] }) }) }) })] })] });
|
|
95578
95925
|
};
|
|
95579
|
-
const Chat = () => {
|
|
95580
|
-
return jsxRuntimeExports.jsx(Thread, {});
|
|
95926
|
+
const Chat$1 = () => {
|
|
95927
|
+
return jsxRuntimeExports.jsx(MessageImagesProvider, { children: jsxRuntimeExports.jsx(Thread, {}) });
|
|
95581
95928
|
};
|
|
95582
95929
|
const Toast = () => {
|
|
95583
95930
|
const { message, visible, setToastState, title, variation, duration } = useToastContext();
|
|
@@ -96459,6 +96806,9 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
96459
96806
|
});
|
|
96460
96807
|
}
|
|
96461
96808
|
};
|
|
96809
|
+
const sleep = async (ms) => {
|
|
96810
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
96811
|
+
};
|
|
96462
96812
|
const TranscriptionApi = {
|
|
96463
96813
|
createTranscription: async (data) => {
|
|
96464
96814
|
try {
|
|
@@ -97127,38 +97477,45 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
97127
97477
|
const LanguageIcon = ({ className, width = 16, height = 17, stroke = "#4A5364" }) => {
|
|
97128
97478
|
return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M7.99967 15.1667C11.6816 15.1667 14.6663 12.1819 14.6663 8.50004C14.6663 4.81814 11.6816 1.83337 7.99967 1.83337C4.31778 1.83337 1.33301 4.81814 1.33301 8.50004C1.33301 12.1819 4.31778 15.1667 7.99967 15.1667Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M7.99967 1.83337C6.28783 3.63081 5.33301 6.01787 5.33301 8.50004C5.33301 10.9822 6.28783 13.3693 7.99967 15.1667C9.71152 13.3693 10.6663 10.9822 10.6663 8.50004C10.6663 6.01787 9.71152 3.63081 7.99967 1.83337Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M1.33301 8.5H14.6663", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
|
|
97129
97479
|
};
|
|
97480
|
+
const ChatIcon = ({ className, width = 16, height = 16, strokeWidth = 1, stroke = "currentColor" }) => {
|
|
97481
|
+
return jsxRuntimeExports.jsxs("svg", { width, height, viewBox: "0 0 16 16", fill: "none", stroke, strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", className, children: [jsxRuntimeExports.jsx("path", { d: "M1.99462 10.8951C2.09265 11.1424 2.11447 11.4133 2.05729 11.6731L1.34729 13.8664C1.32441 13.9777 1.33033 14.0929 1.36447 14.2012C1.39862 14.3095 1.45987 14.4073 1.5424 14.4853C1.62494 14.5633 1.72603 14.6189 1.83609 14.6469C1.94615 14.6749 2.06153 14.6742 2.17129 14.6451L4.44662 13.9798C4.69177 13.9312 4.94564 13.9524 5.17929 14.0411C6.60288 14.7059 8.21553 14.8466 9.73272 14.4383C11.2499 14.0299 12.5741 13.0989 13.4718 11.8094C14.3694 10.5198 14.7827 8.95472 14.6388 7.39015C14.4949 5.82557 13.8031 4.36209 12.6853 3.25791C11.5676 2.15373 10.0958 1.47981 8.52955 1.35504C6.96333 1.23028 5.40338 1.6627 4.12492 2.57601C2.84646 3.48931 1.93164 4.82481 1.54189 6.34687C1.15213 7.86894 1.31247 9.47975 1.99462 10.8951Z" }), jsxRuntimeExports.jsx("path", { d: "M5.3335 8H5.34016" }), jsxRuntimeExports.jsx("path", { d: "M8 8H8.00667" }), jsxRuntimeExports.jsx("path", { d: "M10.6665 8H10.6732" })] });
|
|
97482
|
+
};
|
|
97130
97483
|
const DocumentTemplateIcon = ({ className, width = 16, height = 17, stroke = "#252A32" }) => {
|
|
97131
97484
|
return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M13.3333 2.5H2.66667C2.29848 2.5 2 2.79848 2 3.16667V6.5C2 6.86819 2.29848 7.16667 2.66667 7.16667H13.3333C13.7015 7.16667 14 6.86819 14 6.5V3.16667C14 2.79848 13.7015 2.5 13.3333 2.5Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M6 9.83337H2.66667C2.29848 9.83337 2 10.1319 2 10.5V13.8334C2 14.2016 2.29848 14.5 2.66667 14.5H6C6.36819 14.5 6.66667 14.2016 6.66667 13.8334V10.5C6.66667 10.1319 6.36819 9.83337 6 9.83337Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M13.333 9.83337H9.99967C9.63148 9.83337 9.33301 10.1319 9.33301 10.5V13.8334C9.33301 14.2016 9.63148 14.5 9.99967 14.5H13.333C13.7012 14.5 13.9997 14.2016 13.9997 13.8334V10.5C13.9997 10.1319 13.7012 9.83337 13.333 9.83337Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
|
|
97132
97485
|
};
|
|
97486
|
+
const BookTextIcon = ({ className, width = 16, height = 16, stroke = "currentColor" }) => {
|
|
97487
|
+
return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M2.66699 13V2.99998C2.66699 2.55795 2.84259 2.13403 3.15515 1.82147C3.46771 1.50891 3.89163 1.33331 4.33366 1.33331H12.667C12.8438 1.33331 13.0134 1.40355 13.1384 1.52858C13.2634 1.6536 13.3337 1.82317 13.3337 1.99998V14C13.3337 14.1768 13.2634 14.3464 13.1384 14.4714C13.0134 14.5964 12.8438 14.6666 12.667 14.6666H4.33366C3.89163 14.6666 3.46771 14.4911 3.15515 14.1785C2.84259 13.8659 2.66699 13.442 2.66699 13ZM2.66699 13C2.66699 12.558 2.84259 12.134 3.15515 11.8215C3.46771 11.5089 3.89163 11.3333 4.33366 11.3333H13.3337", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M5.33301 8.66667L7.99967 4L10.6663 8.66667", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M6.06641 7.33331H9.86641", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
|
|
97488
|
+
};
|
|
97133
97489
|
const CONFIG_OPTIONS = [
|
|
97490
|
+
{
|
|
97491
|
+
id: "language",
|
|
97492
|
+
titleId: "Language",
|
|
97493
|
+
descriptionId: "Select the language options.",
|
|
97494
|
+
IconComponent: LanguageIcon
|
|
97495
|
+
},
|
|
97134
97496
|
{
|
|
97135
97497
|
id: "microphone",
|
|
97136
97498
|
titleId: "Microphone",
|
|
97137
|
-
descriptionId: "Select the input microphone to ensure proper functioning
|
|
97138
|
-
IconComponent: MicrophoneIcon
|
|
97139
|
-
isImplemented: true
|
|
97499
|
+
descriptionId: "Select the input microphone to ensure proper functioning",
|
|
97500
|
+
IconComponent: MicrophoneIcon
|
|
97140
97501
|
},
|
|
97141
97502
|
{
|
|
97142
|
-
id: "
|
|
97143
|
-
titleId: "
|
|
97144
|
-
descriptionId: "
|
|
97145
|
-
IconComponent:
|
|
97146
|
-
isImplemented: true
|
|
97503
|
+
id: "chat",
|
|
97504
|
+
titleId: "Chat",
|
|
97505
|
+
descriptionId: "Customize the patient summary and chat sources.",
|
|
97506
|
+
IconComponent: ChatIcon
|
|
97147
97507
|
},
|
|
97148
97508
|
{
|
|
97149
97509
|
id: "template",
|
|
97150
97510
|
titleId: "Clinical note template",
|
|
97151
|
-
descriptionId: "Customize the clinical note
|
|
97152
|
-
IconComponent: DocumentTemplateIcon
|
|
97153
|
-
isImplemented: true
|
|
97154
|
-
// Now implemented
|
|
97511
|
+
descriptionId: "Customize the clinical note depending on the report you are filling out.",
|
|
97512
|
+
IconComponent: DocumentTemplateIcon
|
|
97155
97513
|
},
|
|
97156
97514
|
{
|
|
97157
97515
|
id: "dictionary",
|
|
97158
97516
|
titleId: "Clinical dictionary",
|
|
97159
97517
|
descriptionId: "Customize clinical language and medication format",
|
|
97160
|
-
IconComponent: BookTextIcon
|
|
97161
|
-
isImplemented: true
|
|
97518
|
+
IconComponent: BookTextIcon
|
|
97162
97519
|
}
|
|
97163
97520
|
];
|
|
97164
97521
|
const CONFIG_UI_CONSTANTS = {
|
|
@@ -97188,7 +97545,6 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
97188
97545
|
const IconComponent = option.IconComponent;
|
|
97189
97546
|
return {
|
|
97190
97547
|
id: option.id,
|
|
97191
|
-
isImplemented: option.isImplemented,
|
|
97192
97548
|
title: formatMessage2({ id: option.titleId }),
|
|
97193
97549
|
description: formatMessage2({ id: option.descriptionId }),
|
|
97194
97550
|
icon: reactExports.createElement(IconComponent, {
|
|
@@ -97450,14 +97806,163 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
97450
97806
|
const Language = ({ onBack }) => {
|
|
97451
97807
|
const { formatMessage: formatMessage2 } = useIntl();
|
|
97452
97808
|
const { chatApp } = useApiConfigContext();
|
|
97453
|
-
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-content", children: [jsxRuntimeExports.jsx(SubscreenHeader, { title: formatMessage2({ id: "Language
|
|
97809
|
+
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-content", children: [jsxRuntimeExports.jsx(SubscreenHeader, { title: formatMessage2({ id: "Language" }), onBack }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-subscreen-content", children: [jsxRuntimeExports.jsx(ConfigSection, { description: formatMessage2({
|
|
97454
97810
|
id: "Select the interface language and the language in which the clinical note is generated"
|
|
97455
97811
|
}), children: jsxRuntimeExports.jsx(LanguageSelector, {}) }), !chatApp && jsxRuntimeExports.jsx(ConfigSection, { description: formatMessage2({
|
|
97456
97812
|
id: "Select the language for audio transcription"
|
|
97457
97813
|
}), children: jsxRuntimeExports.jsx(TranscriptionLanguageSelector, {}) })] }), jsxRuntimeExports.jsx(VersionSection, {})] });
|
|
97458
97814
|
};
|
|
97459
|
-
|
|
97460
|
-
|
|
97815
|
+
const Toggle = ({ checked, onChange, label, enabledText = "Enabled", disabledText = "Disabled", disabled = false, className = "", id: id2 }) => {
|
|
97816
|
+
const handleClick = () => {
|
|
97817
|
+
if (!disabled) {
|
|
97818
|
+
onChange(!checked);
|
|
97819
|
+
}
|
|
97820
|
+
};
|
|
97821
|
+
const handleKeyDown = (e) => {
|
|
97822
|
+
if ((e.key === "Enter" || e.key === " ") && !disabled) {
|
|
97823
|
+
e.preventDefault();
|
|
97824
|
+
onChange(!checked);
|
|
97825
|
+
}
|
|
97826
|
+
};
|
|
97827
|
+
return jsxRuntimeExports.jsxs("div", { className: `omniscribe_toggle-container ${className}`.trim(), children: [jsxRuntimeExports.jsx("span", { className: "omniscribe_toggle-label", children: label }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_toggle-wrapper", children: [jsxRuntimeExports.jsx("div", { className: `omniscribe_toggle-switch ${checked ? "omniscribe_toggle-switch-checked" : ""} ${disabled ? "omniscribe_toggle-switch-disabled" : ""}`.trim(), onClick: handleClick, onKeyDown: handleKeyDown, role: "switch", "aria-checked": checked, "aria-labelledby": id2, tabIndex: disabled ? -1 : 0, children: jsxRuntimeExports.jsx("div", { className: "omniscribe_toggle-thumb" }) }), jsxRuntimeExports.jsx("span", { className: "omniscribe_toggle-status", children: checked ? enabledText : disabledText })] })] });
|
|
97828
|
+
};
|
|
97829
|
+
const Separator = (_F) => {
|
|
97830
|
+
var _G = _F, { className = "", orientation = "horizontal", decorative = true } = _G, props = __objRest(_G, ["className", "orientation", "decorative"]);
|
|
97831
|
+
return jsxRuntimeExports.jsx("div", __spreadValues({ className: `omniscribe_separator omniscribe_separator--${orientation} ${className}`.trim(), role: !decorative ? "separator" : void 0, "aria-orientation": !decorative ? orientation : void 0 }, props));
|
|
97832
|
+
};
|
|
97833
|
+
const ExternalLinkIcon = ({ className, onClick }) => jsxRuntimeExports.jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, onClick, style: { cursor: onClick ? "pointer" : "default" }, children: [jsxRuntimeExports.jsx("path", { d: "M7.5 1.5H10.5V4.5", stroke: "#105BDB", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M5 7L10.5 1.5", stroke: "#105BDB", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5", stroke: "#105BDB", strokeLinecap: "round", strokeLinejoin: "round" })] });
|
|
97834
|
+
const SourceItem = ({ source, onToggle }) => {
|
|
97835
|
+
const handleIconClick = () => {
|
|
97836
|
+
if (source.url) {
|
|
97837
|
+
window.open(source.url, "_blank", "noopener,noreferrer");
|
|
97838
|
+
}
|
|
97839
|
+
};
|
|
97840
|
+
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_source-item", children: [jsxRuntimeExports.jsxs("label", { className: "omniscribe_source-label", children: [jsxRuntimeExports.jsx("input", { type: "checkbox", checked: source.selected, onChange: () => onToggle(source.id), className: "omniscribe_source-checkbox" }), jsxRuntimeExports.jsx("span", { className: "omniscribe_source-name", children: source.name })] }), jsxRuntimeExports.jsx(ExternalLinkIcon, { className: "omniscribe_source-external-icon", onClick: handleIconClick })] });
|
|
97841
|
+
};
|
|
97842
|
+
const chatSourceToSource = (chatSource, selected) => __spreadProps(__spreadValues({}, chatSource), {
|
|
97843
|
+
selected
|
|
97844
|
+
});
|
|
97845
|
+
const SourceSelector = ({ sources, onSourceToggle, isPromptActive = false }) => {
|
|
97846
|
+
const { formatMessage: formatMessage2 } = useIntl();
|
|
97847
|
+
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_source-selector", children: [jsxRuntimeExports.jsx("span", { className: "omniscribe_source-selector-title", children: formatMessage2({ id: "Sources" }) }), jsxRuntimeExports.jsx("span", { className: "omniscribe_source-selector-description", children: formatMessage2({
|
|
97848
|
+
id: "Select the sources you want the AI to use for reasoning"
|
|
97849
|
+
}) }), jsxRuntimeExports.jsx("div", { className: `omniscribe_source-list ${isPromptActive ? "omniscribe_source-list--compact" : ""}`.trim(), children: sources.map((source) => jsxRuntimeExports.jsx(SourceItem, { source: {
|
|
97850
|
+
id: source.url || source.title || "unknown",
|
|
97851
|
+
// Use URL as primary ID for toggle functionality
|
|
97852
|
+
name: source.title,
|
|
97853
|
+
// Map title to name
|
|
97854
|
+
selected: source.selected,
|
|
97855
|
+
url: source.url
|
|
97856
|
+
// Pass URL for external links
|
|
97857
|
+
}, onToggle: onSourceToggle }, source.url || source.title || "unknown")) })] });
|
|
97858
|
+
};
|
|
97859
|
+
const PromptCustomization = ({ localPrompt, characterCount, maxCharacters, onPromptChange, onPromptBlur }) => {
|
|
97860
|
+
const { formatMessage: formatMessage2 } = useIntl();
|
|
97861
|
+
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-prompt-section", children: [jsxRuntimeExports.jsx("h3", { className: "omniscribe_chat-prompt-title", children: formatMessage2({ id: "Patient summary customization" }) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-prompt-container", children: [jsxRuntimeExports.jsx("textarea", { className: "omniscribe_chat-prompt-textarea", value: localPrompt, onChange: onPromptChange, onBlur: onPromptBlur, placeholder: formatMessage2({
|
|
97862
|
+
id: "Don't leave out relevant information..."
|
|
97863
|
+
}), rows: 4 }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-character-count", children: [characterCount, "/", maxCharacters, " ", formatMessage2({ id: "{count} characters" }, { count: "" }).replace(/\d+ /, "")] })] })] });
|
|
97864
|
+
};
|
|
97865
|
+
const useDebounce = (value, delay) => {
|
|
97866
|
+
const [debouncedValue, setDebouncedValue] = reactExports.useState(value);
|
|
97867
|
+
reactExports.useEffect(() => {
|
|
97868
|
+
const handler = setTimeout(() => {
|
|
97869
|
+
setDebouncedValue(value);
|
|
97870
|
+
}, delay);
|
|
97871
|
+
return () => {
|
|
97872
|
+
clearTimeout(handler);
|
|
97873
|
+
};
|
|
97874
|
+
}, [value, delay]);
|
|
97875
|
+
return debouncedValue;
|
|
97876
|
+
};
|
|
97877
|
+
const Chat = ({ onBack }) => {
|
|
97878
|
+
const { formatMessage: formatMessage2 } = useIntl();
|
|
97879
|
+
const { summary, updateSummary, availableSources = [], sources: settingsSources = [], updateSources } = useSettingsContext();
|
|
97880
|
+
const [selectedSources, setSelectedSources] = reactExports.useState(() => Array.isArray(settingsSources) && settingsSources.length > 0 ? settingsSources : availableSources);
|
|
97881
|
+
const isSavingSourcesRef = reactExports.useRef(false);
|
|
97882
|
+
const pendingSourcesRef = reactExports.useRef(null);
|
|
97883
|
+
const [characterCount, setCharacterCount] = reactExports.useState(0);
|
|
97884
|
+
const [localPrompt, setLocalPrompt] = reactExports.useState("");
|
|
97885
|
+
const [isInitialized, setIsInitialized] = reactExports.useState(false);
|
|
97886
|
+
const maxCharacters = 1e3;
|
|
97887
|
+
const currentSummary = reactExports.useMemo(() => ({
|
|
97888
|
+
prompt: typeof (summary == null ? void 0 : summary.prompt) === "string" ? summary.prompt : "",
|
|
97889
|
+
isEnabled: typeof (summary == null ? void 0 : summary.isEnabled) === "boolean" ? summary.isEnabled : false
|
|
97890
|
+
}), [summary]);
|
|
97891
|
+
const debouncedPrompt = useDebounce(localPrompt, 500);
|
|
97892
|
+
reactExports.useEffect(() => {
|
|
97893
|
+
setLocalPrompt(currentSummary.prompt);
|
|
97894
|
+
setCharacterCount(currentSummary.prompt.length);
|
|
97895
|
+
setIsInitialized(true);
|
|
97896
|
+
}, [summary]);
|
|
97897
|
+
reactExports.useEffect(() => {
|
|
97898
|
+
if (isInitialized && debouncedPrompt !== currentSummary.prompt && updateSummary && !(debouncedPrompt === "" && currentSummary.prompt !== "")) {
|
|
97899
|
+
const newConfig = __spreadProps(__spreadValues({}, currentSummary), { prompt: debouncedPrompt });
|
|
97900
|
+
updateSummary(newConfig).catch((error) => {
|
|
97901
|
+
logger.settingsError("Error updating summary prompt:", error);
|
|
97902
|
+
});
|
|
97903
|
+
}
|
|
97904
|
+
}, [debouncedPrompt, currentSummary, updateSummary, isInitialized]);
|
|
97905
|
+
const handleToggleChange = async (enabled) => {
|
|
97906
|
+
if (!updateSummary)
|
|
97907
|
+
return;
|
|
97908
|
+
const newConfig = __spreadProps(__spreadValues({}, currentSummary), { isEnabled: enabled });
|
|
97909
|
+
try {
|
|
97910
|
+
await updateSummary(newConfig);
|
|
97911
|
+
} catch (error) {
|
|
97912
|
+
logger.settingsError("Error updating summary toggle:", error);
|
|
97913
|
+
}
|
|
97914
|
+
};
|
|
97915
|
+
const handlePromptChange = (e) => {
|
|
97916
|
+
const value = e.target.value;
|
|
97917
|
+
if (value.length <= maxCharacters) {
|
|
97918
|
+
setLocalPrompt(value);
|
|
97919
|
+
setCharacterCount(value.length);
|
|
97920
|
+
}
|
|
97921
|
+
};
|
|
97922
|
+
const handlePromptBlur = async () => {
|
|
97923
|
+
if (localPrompt !== currentSummary.prompt && updateSummary) {
|
|
97924
|
+
const newConfig = __spreadProps(__spreadValues({}, currentSummary), { prompt: localPrompt });
|
|
97925
|
+
try {
|
|
97926
|
+
await updateSummary(newConfig);
|
|
97927
|
+
} catch (error) {
|
|
97928
|
+
logger.settingsError("Error updating summary on blur:", error);
|
|
97929
|
+
}
|
|
97930
|
+
}
|
|
97931
|
+
};
|
|
97932
|
+
const saveSourcesNow = async (sources) => {
|
|
97933
|
+
isSavingSourcesRef.current = true;
|
|
97934
|
+
try {
|
|
97935
|
+
await updateSources(sources);
|
|
97936
|
+
} catch (error) {
|
|
97937
|
+
logger.settingsError("Error saving sources:", error);
|
|
97938
|
+
} finally {
|
|
97939
|
+
isSavingSourcesRef.current = false;
|
|
97940
|
+
if (pendingSourcesRef.current) {
|
|
97941
|
+
const next = pendingSourcesRef.current;
|
|
97942
|
+
pendingSourcesRef.current = null;
|
|
97943
|
+
saveSourcesNow(next);
|
|
97944
|
+
}
|
|
97945
|
+
}
|
|
97946
|
+
};
|
|
97947
|
+
const handleSourceToggle = (sourceUrl) => {
|
|
97948
|
+
const source = availableSources.find((s2) => s2.url === sourceUrl);
|
|
97949
|
+
if (!source)
|
|
97950
|
+
return;
|
|
97951
|
+
setSelectedSources((prev) => {
|
|
97952
|
+
const isSelected = prev.some((s2) => s2.url === sourceUrl);
|
|
97953
|
+
const next = isSelected ? prev.filter((s2) => s2.url !== sourceUrl) : [...prev, source];
|
|
97954
|
+
if (isSavingSourcesRef.current) {
|
|
97955
|
+
pendingSourcesRef.current = next;
|
|
97956
|
+
} else {
|
|
97957
|
+
saveSourcesNow(next);
|
|
97958
|
+
}
|
|
97959
|
+
return next;
|
|
97960
|
+
});
|
|
97961
|
+
};
|
|
97962
|
+
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-content", children: [jsxRuntimeExports.jsx(SubscreenHeader, { title: formatMessage2({ id: "Chat" }), onBack }), jsxRuntimeExports.jsx("div", { className: "omniscribe_config-subscreen-content", children: jsxRuntimeExports.jsx(ConfigSection, { children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-config", children: [jsxRuntimeExports.jsx(Toggle, { checked: currentSummary.isEnabled, onChange: handleToggleChange, label: formatMessage2({ id: "Show patient summary first" }), enabledText: formatMessage2({ id: "Enabled" }), disabledText: formatMessage2({ id: "Disabled" }) }), currentSummary.isEnabled && jsxRuntimeExports.jsx(PromptCustomization, { localPrompt, characterCount, maxCharacters, onPromptChange: handlePromptChange, onPromptBlur: handlePromptBlur }), availableSources && availableSources.length > 0 && jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Separator, {}), jsxRuntimeExports.jsx(SourceSelector, { sources: availableSources.map((source) => chatSourceToSource(source, selectedSources.some((s2) => s2.url === source.url))), onSourceToggle: handleSourceToggle, isPromptActive: currentSummary.isEnabled })] })] }) }) })] });
|
|
97963
|
+
};
|
|
97964
|
+
function Input(_H) {
|
|
97965
|
+
var _I = _H, { className = "omniscribe_input", type = "text", error, showError = true, errorClassName = "omniscribe_input-error", isValid = true } = _I, props = __objRest(_I, ["className", "type", "error", "showError", "errorClassName", "isValid"]);
|
|
97461
97966
|
const inputClassName = `${className} ${!isValid && error ? "invalid" : ""}`.trim();
|
|
97462
97967
|
return jsxRuntimeExports.jsxs("div", { className: "omniscribe_input-container", children: [jsxRuntimeExports.jsx("input", __spreadValues({ type, "data-slot": "input", className: inputClassName, "aria-invalid": !isValid, "aria-describedby": error && showError ? `${props.id}-error` : void 0 }, props)), showError && error && jsxRuntimeExports.jsx("span", { id: `${props.id}-error`, className: errorClassName, role: "alert", "aria-live": "polite", children: error })] });
|
|
97463
97968
|
}
|
|
@@ -97743,7 +98248,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
97743
98248
|
});
|
|
97744
98249
|
}
|
|
97745
98250
|
const templateString = JSON.stringify(modifiedTemplate);
|
|
97746
|
-
|
|
98251
|
+
const templateId = contextTemplateId;
|
|
97747
98252
|
const settingsToUpdate = {
|
|
97748
98253
|
template: templateString
|
|
97749
98254
|
};
|
|
@@ -97799,6 +98304,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
97799
98304
|
const screenRenderers = reactExports.useMemo(() => ({
|
|
97800
98305
|
microphone: () => jsxRuntimeExports.jsx(Microphone, { onBack: handleBackToMain }),
|
|
97801
98306
|
language: () => jsxRuntimeExports.jsx(Language, { onBack: handleBackToMain }),
|
|
98307
|
+
chat: () => jsxRuntimeExports.jsx(Chat, { onBack: handleBackToMain }),
|
|
97802
98308
|
template: () => jsxRuntimeExports.jsx(Template, { onBack: handleBackToMain }),
|
|
97803
98309
|
dictionary: () => jsxRuntimeExports.jsx(Dictionary, { onBack: handleBackToMain })
|
|
97804
98310
|
}), [handleBackToMain]);
|
|
@@ -97842,7 +98348,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
97842
98348
|
if (showConfig) {
|
|
97843
98349
|
return jsxRuntimeExports.jsx(Configuration, {});
|
|
97844
98350
|
}
|
|
97845
|
-
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(AudioRecorder, { isChat: shouldShowChat }), jsxRuntimeExports.jsx("div", { className: shouldShowChat ? "omniscribe_visible" : "omniscribe_hidden", children: jsxRuntimeExports.jsx(Chat, {}) })] });
|
|
98351
|
+
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(AudioRecorder, { isChat: shouldShowChat }), jsxRuntimeExports.jsx("div", { className: shouldShowChat ? "omniscribe_visible" : "omniscribe_hidden", children: jsxRuntimeExports.jsx(Chat$1, {}) })] });
|
|
97846
98352
|
};
|
|
97847
98353
|
return jsxRuntimeExports.jsx(OmniscribeContainer, { width: WIDTH, height: HEIGHT, children: jsxRuntimeExports.jsxs(OmniscribeLayout, { children: [jsxRuntimeExports.jsx(MinimizeButton, { title }), jsxRuntimeExports.jsx(UtilityButtons, { isChat, setIsChat, showConfig, setShowConfig }), renderContent(), (toast == null ? void 0 : toast.visible) && jsxRuntimeExports.jsx(Toast, {})] }) });
|
|
97848
98354
|
};
|
|
@@ -100120,7 +100626,7 @@ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
|
|
|
100120
100626
|
__proto__: null,
|
|
100121
100627
|
default: zig
|
|
100122
100628
|
}, [zigExports]);
|
|
100123
|
-
const injectedCss = "/* Source: index.css */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');\n\n#Omniscribe {\n font-family: 'Lato', sans-serif;\n /* define colors */\n --active: #0a3785;\n --background-primary: #e7effd;\n --warning: #ffc107;\n --grey-50: #f9fafb;\n --grey-100: #f6f7f9;\n --grey-200: #e5e7eb;\n --grey-700: #6f7d95;\n --grey-800: #4a5364;\n --grey-900: #111827;\n --active-black: #252a32;\n --placeholder: #a4adbc;\n --line: #e5e7ec;\n --custom-black: #13161a;\n --primary: #105bdb;\n --border: #e5e7ec;\n --white: #fdfdfd;\n --omni: #daf2ff;\n --omni-secondary: rgba(219, 219, 219, 0.75);\n --primary-button: #132caa;\n --primary-text: #36a3cf;\n --primary-900: #061044;\n --blue-100: #dbeafe;\n --blue-200: #bfdbfe;\n --blue-500: #105bdb;\n --blue-600: #2563eb;\n --blue-700: #1d4ed8;\n --report: var(--primary-button);\n --gray: #616161;\n --black: #1b2125;\n --sky-blue: #dbecff;\n --blue: #5886ba;\n --blue-600: #0b1962;\n --background: #f3f3f3bb;\n --foreground: oklch(0.145 0 0);\n --primary: #061044;\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --light-border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.87 0 0);\n --radius: 0.625rem;\n /* TEXT */\n --text-3xs: 8px;\n --text-3xs--line-height: calc(0.5 / 0.25);\n --text-2xs: 10px;\n --text-2xs--line-height: calc(0.75 / 0.5);\n --text-xs: 12px;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 14px;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 16px;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 18px;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 20px;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 22px;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 24px;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 26px;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 28px;\n --text-5xl--line-height: 1;\n --text-6xl: 30px;\n --text-6xl--line-height: 1;\n --text-7xl: 32px;\n --text-7xl--line-height: 1;\n --text-8xl: 34px;\n --text-8xl--line-height: 1;\n --text-9xl: 46px;\n --text-9xl--line-height: 1;\n --font-weight-thin: 100;\n --font-weight-extralight: 200;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n --font-weight-black: 900;\n /* custom colors */\n --color-white: var(--white);\n --color-light-border: var(--light-border);\n --color-omni: var(--omni);\n --color-report: var(--report);\n --color-omni-secondary: var(--omni-secondary);\n --color-primary-text: var(--primary-text);\n --color-primary-900: var(--primary-900);\n --color-blue-500: var(--blue-500);\n --color-gray: var(--gray);\n --color-black: var(--black);\n --color-sky-blue: var(--sky-blue);\n --color-cream: var(--cream);\n --color-pink: var(--pink);\n --color-blue: var(--blue);\n --color-blue-600: var(--blue-600);\n --color-sky-blue-100: var(--sky-blue-100);\n --color-white-2: var(--white-2);\n --color-primary-700: var(--primary-700);\n --color-primary-500: var(--primary-500);\n --color-neutral-800: var(--neutral-800);\n --color-blue-2: var(--blue-2);\n --color-light-blue: var(--light-blue);\n --color-primary-100: var(--primary-100);\n --color-primary-300: var(--primary-300);\n --color-black-2: var(--black-2);\n --color-primary-button: var(--primary-button);\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: #f3f4f6;\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n /* rounded */\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n /* spacing */\n --spacing-layout-w: var(--layout-w);\n --spacing-layout-h: var(--layout-h);\n --spacing: 0.25rem;\n /* size */\n --container-md: 28rem;\n --container-xl: 36rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n\n --tracking-tight: -0.025em;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n\n .no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n a,\n p,\n textarea,\n button,\n span,\n h1,\n h2,\n h3,\n h4,\n h5,\n div {\n font-family: 'Lato', sans-serif;\n }\n /* Hide scrollbar for IE, Edge and Firefox */\n .no-scrollbar {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n .shadow-inner-right {\n box-shadow: inset -9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .shadow-inner-left {\n box-shadow: inset 9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .annotation {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-normal);\n }\n .annotation-semi {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .annotation-bold {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .info {\n font-size: var(--text-2xs);\n font-weight: var(--font-weight-normal);\n }\n .info-semi {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .info-bold {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .text-p {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-normal);\n }\n .text-p-semi {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .text-p-bold {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .omniscribe_shadow-xl {\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n }\n .scrollbar-pretty {\n &::-webkit-scrollbar {\n width: 6px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n background-color: var(--omni-secondary);\n }\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n }\n\n .omniscribe_visible {\n visibility: visible;\n display: flex;\n flex: 1;\n }\n .omniscribe_hidden {\n display: none;\n height: 0;\n }\n\n .omniscribe_animate-spin {\n animation: spin 1s linear infinite;\n }\n}\n\n\n/* Source: modules/audio-recorder/components/audio-visualizer/AudioVisualizer.css */\n.omniscribe_audio-visualizer-container {\n display: flex;\n border-radius: var(--radius-md);\n width: calc(var(--spacing) * 60);\n align-items: center;\n justify-content: center;\n height: 60px;\n background: transparent;\n overflow: hidden;\n}\n\n.omniscribe_audio-visualizer-subcontainer {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_audio-visualizer-item-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding-inline: 1px;\n margin-top: 0.25rem;\n}\n\n.omniscribe_audio-visualizer-item {\n width: 2px;\n height: 2px;\n background-color: rgba(48, 54, 68, 0.85);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 50ms;\n}\n\n.lk-audio-bar-visualizer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background: var(--lk-bg);\n gap: var(--lk-va-bar-gap, 24px);\n}\n.lk-audio-bar-visualizer > .lk-audio-bar {\n transform-origin: 'center';\n height: 100%;\n width: var(--lk-va-bar-width, 12px);\n border-radius: var(--lk-va-bar-border-radius, 32px);\n background-color: var(--lk-va-bar-bg, rgba(136, 136, 136, 0.2));\n transition: background-color 0.25s ease-out;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='speaking'] > .lk-audio-bar,\n.lk-audio-bar-visualizer > .lk-audio-bar.lk-highlighted,\n.lk-audio-bar-visualizer > [data-lk-highlighted='true'] {\n background-color: var(--lk-fg, rgb(136, 136, 136));\n transition: none;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='thinking'] {\n transition: background-color 0.15s ease-out;\n}\n\n\n/* Source: modules/audio-recorder/components/content-container/content-containter.css */\n.omniscribe_audio-content-container {\n background-color: var(--white);\n width: -webkit-fill-available;\n flex: 1 1 0 !important;\n min-height: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n overflow: hidden !important;\n}\n\n.omniscribe_audio-content-messages {\n color: var(--black);\n}\n\n.omniscribe_transcription-footer-container {\n position: sticky;\n display: flex;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-bottom: calc(var(--spacing) * 3);\n}\n\n.omniscribe_audio-content-render {\n color: var(--black);\n font-weight: var(--font-weight-medium);\n padding-block: 0.5rem;\n padding-inline: 0.75rem;\n margin-bottom: 0.25rem;\n}\n\n.omniscribe_patient {\n color: #db10c1;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_doctor {\n color: var(--blue-500);\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_speaker {\n color: #28a745;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_transcription {\n color: var(--black);\n}\n\n.omniscribe_transcription-down-btn-container {\n background-color: white;\n}\n\n.omniscribe_transcription-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n/* Chrome, Safari, Edge (Webkit) */\n.omniscribe_audio-content-container > div::-webkit-scrollbar {\n width: 6px !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-thumb {\n border-radius: 10px !important;\n background-color: var(--omni-secondary) !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-track {\n background-color: transparent !important;\n}\n\n/* Firefox */\n.omniscribe_audio-content-container > div {\n scrollbar-width: thin !important;\n scrollbar-color: var(--omni-secondary) transparent !important;\n}\n\n\n/* Source: modules/audio-recorder/components/recorder-counter/RecorderCounter.css */\n.omniscribe_audio-recorder-timer {\n color: var(--blue-500);\n font-weight: 600; /* SemiBold */\n font-style: normal; /* SemiBold is a weight, not a style */\n font-size: var(--font-size-400); /* design token */\n line-height: var(--line-height-400); /* design token */\n letter-spacing: 0;\n text-align: center;\n}\n\n\n/* Source: modules/audio-recorder/components/report-button/ReportButton.css */\n.omniscribe_report-button-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.omniscribe_report-button-width {\n max-height: 32px;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width {\n max-height: 32px;\n background-color: var(--blue-500) !important;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width:hover {\n background-color: #0c48ad !important; /* darker shade of blue */\n}\n\n\n/* Source: modules/audio-recorder/components/toggle-record/ToggleRecord.css */\n.omniscribe_record-button-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.omniscribe_record-button-classname {\n background-color: transparent;\n border: none;\n padding: 4px;\n}\n\n.omniscribe_record-button {\n background-color: var(--primary-button);\n border-radius: 50%;\n cursor: pointer;\n width: 56px;\n height: 56px;\n align-items: center;\n justify-content: center;\n display: flex;\n transition-duration: 300ms;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_record-button-enabled {\n opacity: 100%;\n pointer-events: auto;\n scale: 110%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-not-enabled {\n opacity: 50%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-disabled {\n opacity: 50%;\n background-color: dimgray;\n pointer-events: none;\n}\n\n.omniscribe_record-enabled {\n width: 50px;\n height: 50px;\n background-color: var(--primary-button);\n animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n position: absolute;\n z-index: -1;\n border-radius: calc(infinity * 1px);\n opacity: 100%;\n}\n\n@keyframes ping {\n 75%,\n 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n\n/* Source: modules/audio-recorder/section/AudioRecorder.css */\n.omniscribe_audio-recorder {\n align-items: center;\n padding-block: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n background-color: var(--white);\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n\n[dir='ltr'] .omniscribe_audio-recorder {\n border-bottom-left-radius: 12px;\n}\n\n[dir='rtl'] .omniscribe_audio-recorder {\n border-bottom-right-radius: 12px;\n border-bottom-left-radius: 0px;\n}\n\n.omniscribe_audio-recorder-container {\n display: flex;\n align-items: center;\n border: solid 1px var(--light-border);\n background-color: var(--white);\n max-height: 42px;\n border-radius: 9999px;\n border-width: 1px;\n justify-content: space-between;\n margin-bottom: 5px;\n flex: 1;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n padding-inline: calc(var(--spacing) * 2);\n}\n\n.omniscribe_audio-recorder-audio-container {\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n\n.omniscribe_audio-recorder-refresh-btn {\n cursor: pointer;\n background-color: #f6f7f9;\n border-radius: 100px;\n transition:\n transform 0.3s ease,\n opacity 0.3s ease,\n background-color 0.3s ease;\n transform: scale(1);\n}\n.omniscribe_audio-recorder-refresh-btn-enabled {\n pointer-events: auto;\n opacity: 1;\n\n &:hover {\n transform: scale(1.15);\n }\n}\n.omniscribe_audio-recorder-refresh-btn-disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n.omniscribe_audio-recorder-audio-content-container {\n border: 1px solid #e5e7ec;\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n border-radius: 8px;\n margin-top: 18px;\n padding-top: 8px;\n padding-inline: calc(var(--spacing) * 4);\n padding-bottom: 8px;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n}\n.omniscribe_audio-recorder-footer {\n border-top: 1px solid #e5e7ec;\n padding-top: 16px;\n margin-top: 12px;\n display: flex;\n width: 100%;\n}\n.omniscribe_audio-recorder-footer-content {\n padding-inline: calc(var(--spacing) * 4);\n width: 100%;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n.omniscribe_audio-recorder-audio-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n padding-block: 8px;\n}\n\n.omniscribe_audio-recorder-audio-star-icons {\n display: flex;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_audio-recorder-audio-feedback {\n color: #4a5364;\n}\n\n.omniscribe_audio-recorder-refresh-icon {\n color: #252a32;\n}\n\n.omniscribe_audio-recorder-star-icon {\n cursor: pointer;\n display: inline-block;\n}\n\n.omniscribe_audio-recorder-audio-star-container {\n position: relative;\n}\n\n\n/* Source: modules/chat/components/MicrophoneButton.css */\n/* Microphone Button Styles */\n.microphone-button {\n transition: all 150ms ease;\n border: none !important;\n background-color: white !important;\n box-shadow: none !important;\n margin-right: 3px;\n}\n\n.microphone-button--recording {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n background-color: red !important;\n}\n\n/* Pulse animation for recording state */\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n\n\n/* Source: modules/chat/components/SourcesModal.css */\n/* SourcesModal CSS Styles */\n\n/* Modal container */\n.omniscribe_modal-sources {\n width: 100%;\n right: 10px;\n bottom: 100px;\n}\n\n.omniscribe_header_description {\n font-size: 0.875rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n color: #6b7280;\n margin-top: 0.25rem;\n}\n\n.omniscribe_icon_blue {\n color: var(--blue-500);\n}\n\n/* Filter section */\n.omniscribe_filter_section {\n padding: 1.5rem 0 0 0;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.omniscribe_filter_buttons {\n display: flex;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.omniscribe_button_all {\n padding: 0.25rem 0.75rem;\n color: var(--blue-700);\n border: 1px solid var(--blue-700);\n background-color: var(--blue-100);\n border-radius: 9999px;\n font-size: 0.875rem;\n cursor: pointer;\n transition: all 0.2s;\n font-family: inherit;\n}\n\n.omniscribe_button_all:hover {\n background-color: var(--blue-200);\n color: var(--blue-700);\n}\n\n.omniscribe_button_specialty {\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n font-weight: 700;\n color: #4b5563;\n background-color: #f6f7f9;\n border: 1px solid #d1d5db;\n border-radius: 9999px;\n cursor: not-allowed;\n opacity: 0.6;\n font-family: inherit;\n}\n\n.omniscribe_sources_count {\n font-size: 0.75rem;\n color: #6b7280;\n margin-bottom: 1rem;\n}\n\n/* Sources list section */\n.omniscribe_sources_container {\n padding: 0 0 1rem 0;\n max-height: 20rem;\n overflow-y: auto;\n}\n\n.omniscribe_sources_list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n/* Source item */\n.omniscribe_source_item {\n padding: 0.75rem;\n border-radius: 8px;\n border: 1px solid var(--grey-200);\n cursor: pointer;\n transition: all 0.2s;\n background-color: white;\n margin: 0 0 0.5rem 0;\n}\n\n.omniscribe_source_item_selected {\n border-color: var(--blue-500);\n background-color: #eff6ff;\n}\n\n.omniscribe_source_content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.omniscribe_source_title_container {\n flex: 1;\n}\n\n.omniscribe_source_link {\n font-weight: 700;\n font-size: 14px;\n color: var(--blue-600) !important;\n text-decoration: none;\n transition: color 0.2s;\n}\n\n.omniscribe_source_link:hover {\n color: var(--blue-700) !important;\n}\n\n/* Footer section */\n.omniscribe_footer {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n padding: 1.5rem 0 0 0;\n border-top: 1px solid var(--grey-200);\n margin-top: 1rem;\n}\n\n.omniscribe_button_outline {\n padding: 0.5rem 1rem;\n border: 1px solid #d1d5db;\n background-color: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n font-size: 0.875rem;\n font-weight: 500;\n font-family: inherit;\n}\n\n.omniscribe_button_outline:hover {\n background-color: var(--color-gray-100);\n border-color: #9ca3af;\n}\n\n.omniscribe_button_primary {\n padding: 0.5rem 1rem;\n background-color: var(--blue-500);\n color: white;\n border: 1px solid var(--blue-500);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n font-size: 0.875rem;\n font-weight: 500;\n font-family: inherit;\n}\n\n.omniscribe_button_primary:hover {\n background-color: var(--blue-600);\n border-color: var(--blue-600);\n}\n\n/* Utility classes */\n.omniscribe_hidden {\n display: none;\n}\n\n\n/* Source: modules/chat/components/thread/Thread.css */\n.omniscribe_thread-container {\n flex: 1;\n border-style: none;\n display: flex;\n overflow: hidden;\n background: transparent;\n bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n margin-block: calc(var(--spacing) * 0) /* 0rem = 0px */;\n right: 20px;\n border-bottom-left-radius: 12px;\n width: 100%;\n}\n\n.omniscribe_thread-container-history-cont {\n position: relative;\n display: flex;\n width: 0%;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-container-history-cont-open {\n width: 33%;\n}\n\n.omniscribe_thread-container-history-subcont {\n position: absolute;\n width: 100%;\n height: 100%;\n border-right-width: 1px;\n border-color: var(--color-slate-200)\n /* oklch(92.9% 0.013 255.508) = #e2e8f0 */;\n overflow: hidden;\n z-index: 20;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n.omniscribe_thread-container-history-subcont-open {\n translate: calc(var(--spacing) * 0);\n}\n\n.omniscribe_thread-container-history-subcont-close {\n translate: calc(300px * -1);\n}\n\n.omniscribe_thread-container-history-content {\n position: relative;\n height: 100%;\n width: 100%;\n}\n\n.omniscribe_thread-content-container {\n display: flex;\n flex: 1;\n width: 100%;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-content-btn-container {\n top: 0;\n left: 0;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 3);\n padding: calc(var(--spacing) * 2);\n padding-left: calc(var(--spacing) * 4);\n z-index: 10;\n}\n.omniscribe_absolute {\n position: absolute;\n}\n\n.omniscribe_relative {\n position: relative;\n}\n\n.omniscribe_thread-content-btn {\n background-color: #b2c3d6;\n}\n.omniscribe_thread-content-btn:hover {\n background-color: var(--color-gray-100);\n}\n\n.omniscribe_thread-content-btn-started-container {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: calc(var(--spacing) * 2);\n position: relative;\n}\n\n.omniscribe_thread-content-btn-started-subcontainer {\n position: absolute;\n left: 0;\n z-index: 10;\n top: calc(var(--spacing) * 2);\n}\n\n.omniscribe_thread-stick-to-bottom {\n font-size: 14px;\n}\n.omniscribe_thread-stick-to-bottom-content {\n position: absolute;\n inset: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n display: grid;\n grid-template-rows: 1fr auto;\n}\n\n.omniscribe_thread-stick-to-bottom-content-class {\n padding-bottom: calc(var(--spacing) * 13);\n display: flex;\n flex-direction: column;\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n min-width: 0;\n}\n\n.omniscribe_thread-footer-container {\n position: sticky;\n display: flex;\n background-color: white;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-inline: calc(var(--spacing) * 4);\n padding-top: calc(var(--spacing) * 1);\n border-bottom: 1px solid #e5e7ec;\n border-bottom-left-radius: 0.5rem;\n}\n\n.omniscribe_thread-footer-scroll-to-bottom {\n position: fixed;\n bottom: 17%;\n}\n.omniscribe_thread-footer-form-container {\n background-color: white;\n border-radius: 1rem;\n border: solid 1px var(--border);\n box-shadow: 0px 4px 4px 0px #00000040;\n margin-inline: auto;\n margin-bottom: calc(0.25rem /* 4px */ * 2);\n width: 100%;\n max-width: 48rem;\n position: relative;\n z-index: 10;\n}\n.omniscribe_thread-footer-form {\n display: grid;\n grid-template-rows: 1fr auto;\n max-width: var(--container-3xl) /* 48rem = 768px */;\n margin-inline: auto;\n}\n.omniscribe_thread-footer-textarea {\n resize: none;\n width: 100%;\n min-height: 20px;\n max-height: 56px;\n height: 20px;\n padding: 0 !important;\n overflow-y: auto;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n.omniscribe_thread-footer-form-content {\n position: relative;\n display: flex;\n align-items: center;\n right: 0;\n bottom: 0;\n width: 100%;\n padding-block: 6px;\n}\n.omniscribe_thread-footer-form-btn {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n}\n.omniscribe_thread-footer-form-left-btns {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.omniscribe_thread-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n.omniscribe_thread-footer-btns-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-right: 8px;\n}\n\n.omniscribe_thread-footer-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n margin-bottom: 8px;\n}\n\n.omniscribe_thread-no-sources {\n width: 10px;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenu.css */\n.omniscribe_link-menu-container {\n width: 18rem;\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n border: 1px solid var(--grey-200);\n background-color: #ffffff;\n}\n\n.omniscribe_link-menu-navigation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: var(--grey-50);\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n\n.omniscribe_nav-button {\n height: 1.5rem;\n width: 1.5rem;\n padding: 0.125rem;\n background-color: transparent;\n border: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n color: #6b7280;\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_nav-button:hover {\n background-color: var(--color-gray-100);\n color: #374151;\n}\n\n.omniscribe_nav-button:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px #3b82f6;\n}\n\n.omniscribe_nav-button:active {\n background-color: var(--grey-200);\n}\n\n.omniscribe_nav-icon {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.omniscribe_page-indicator {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: #4b5563;\n}\n\n.omniscribe_link-menu-content {\n padding: 0.375rem;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenuCard.css */\n.omniscribe_card-link {\n display: block;\n border-radius: 0.5rem;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n background-color: #ffffff;\n border: 1px solid var(--grey-200);\n text-decoration: none;\n}\n\n.omniscribe_card {\n border: 0;\n box-shadow: none;\n border-radius: 0.5rem;\n margin: 0;\n padding: 0;\n}\n\n.omniscribe_card:hover {\n background-color: var(--grey-50);\n}\n\n.omniscribe_card-header {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: rgba(249, 250, 251, 0.5);\n}\n\n.omniscribe_favicon {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-icon {\n width: 1rem;\n height: 1rem;\n border-radius: 0.125rem;\n background-color: #d1d5db;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-text {\n font-size: 8px;\n font-weight: 700;\n color: var(--grey-600);\n text-transform: uppercase;\n}\n\n.omniscribe_card-title {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: var(--grey-800);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n min-width: 0;\n margin: 0;\n}\n\n.omniscribe_card-content {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.omniscribe_card-content > * + * {\n margin-top: 0.25rem;\n}\n\n.omniscribe_link-text {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600;\n color: var(--color-activeblack, #000000);\n line-height: 1.375;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.omniscribe_snippet-text {\n font-size: 0.75rem;\n line-height: 1rem;\n color: #4b5563;\n line-height: 1.625;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupPill.css */\n.omniscribe_pill-container {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n\n.omniscribe_pill-button {\n display: inline-flex;\n align-items: center;\n border-radius: 9999px;\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n background-color: var(--blue-100);\n color: var(--blue-700);\n border: 1px solid var(--blue-200);\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.omniscribe_pill-button:hover {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-button:focus {\n background-color: var(--blue-200);\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow:\n 0 0 0 2px #3b82f6,\n 0 0 0 4px rgba(59, 130, 246, 0.1);\n}\n\n.omniscribe_pill-button--active {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-domain {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (min-width: 640px) {\n .omniscribe_pill-domain {\n max-width: 200px;\n }\n}\n\n.omniscribe_pill-counter {\n margin-left: 0.375rem;\n background-color: var(--blue-200);\n color: #1e40af;\n border-radius: 9999px;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n font-size: 10px;\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_menu-portal {\n position: absolute;\n z-index: 100;\n}\n\n\n/* Source: modules/chat/components/thread/components/PredefinedQuestions.css */\n.omniscribe_predefined-questions-container {\n margin-top: calc(var(--spacing) * 2) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n display: flex;\n flex-direction: column;\n}\n.omniscribe_predefined-questions-span {\n color: var(--black);\n}\n\n.omniscribe_predefined-title {\n margin-bottom: 8px;\n}\n\n.omniscribe_predefined-questions-msg-container {\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_predefined-questions-content {\n background-color: #ecf9ff !important;\n text-align: left;\n padding-top: 4px;\n padding-right: 16px;\n padding-bottom: 4px;\n padding-left: 16px;\n border-radius: 4px;\n width: fit-content;\n height: fit-content;\n}\n\n.omniscribe_predefined-questions-btn-rounded {\n border-radius: 8px;\n}\n\n\n/* Source: modules/chat/components/thread/components/history/ThreadHistory.css */\n.omniscribe_thread-list-container {\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-list-content {\n padding-bottom: calc(var(--spacing) * 16);\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.omniscribe_thread-list-item {\n width: 100%;\n padding-inline: 0;\n}\n\n.omniscribe_thread-list-btn {\n text-align: left;\n align-items: center !important;\n justify-content: flex-start !important;\n width: calc(100% - var(--spacing) * 2);\n border-radius: 4px !important;\n margin-bottom: 4px;\n font-weight: var(--font-weight-normal);\n padding-inline: calc(var(--spacing) * 1) !important;\n}\n\n.omniscribe_thread-list-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--Text-Active, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-loading {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2);\n align-items: flex-start;\n justify-content: flex-start;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-history-loading-skeleton {\n width: 100%;\n height: calc(var(--spacing) * 10);\n}\n\n.omniscribe_thread-history-container {\n display: flex;\n flex-direction: column;\n border-right: 1px solid #e5e7ec;\n align-items: flex-start;\n justify-content: flex-start;\n /* gap: calc(var(--spacing) * 6); */\n height: 100%;\n flex-shrink: 0;\n}\n\n.omniscribe_thread-history-button-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n /* space between left group and back button */\n width: 92%;\n /* padding-top: calc(var(--spacing) * 2); */\n background: var(--Greyscale-100, #f6f7f9);\n /* padding-inline: calc(var(--spacing) * 2); */\n padding: 8px;\n}\n\n/* Flex container for the left group */\n.omniscribe_thread-history-left-group {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n /* space between icon and text */\n}\n\n.omniscribe_thread-history-left-text {\n color: var(--Greyscale-900, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n padding-block: calc(var(--spacing) * 1);\n background-color: color-mix(in oklab, var(--blue) 40%, transparent);\n width: stretch;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill-available;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_thread-history-no-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n width: 100%;\n}\n\n.omniscribe_thread-history-chat-started-btn {\n border: none;\n background: transparent;\n padding: 0px;\n display: flex;\n flex-direction: row;\n gap: calc(var(--spacing) * 2);\n align-items: center;\n cursor: pointer;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-history-chat-started-btn-text {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n font-weight: var(--font-weight-semibold);\n letter-spacing: var(--tracking-tight);\n}\n\n.omniscribe_thread-history-title {\n color: var(--Button-Primary-Active, #105bdb);\n font-family: var(--Font-Family-Omniscribe, Lato);\n font-size: var(--Font-Size-font-size-100, 12px) !important;\n font-style: normal;\n line-height: var(--Font-Line-Height-line-height-100, 14.4px) !important;\n /* 120% */\n letter-spacing: var(\n --Font-Letter-Spacing-letter-spacing-100,\n 0.05px\n ) !important;\n cursor: pointer;\n padding-inline: calc(var(--spacing) * 2) !important;\n}\n\n.omniscribe_thread-history-btn {\n border-radius: var(--Radius-radius-small, 4px) !important;\n background-color: var(--Greyscale-300, #e5e7ec) !important;\n cursor: pointer;\n\n &:hover {\n background-color: var(--Greyscale-300, #e5e7ec);\n }\n}\n\n.omniscribe_thread-tooltip {\n padding: calc(0.25rem /* 4px */ * 4);\n}\n\n\n/* Source: modules/chat/components/thread/components/markdown-text.css */\n.omniscribe_markdown-code-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 4) /* 1rem = 16px */;\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--color-zinc-900)\n /* oklch(21% 0.006 285.885) = #18181b */;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n color: var(--white);\n}\n\n.omniscribe_markdown-code-span {\n text-transform: lowercase;\n & > span {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n }\n}\n\n.omniscribe_markdown-h1 {\n margin-bottom: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-4xl) /* 2.25rem = 36px */;\n line-height: var(--text-4xl--line-height) /* calc(2.5 / 2.25) ≈ 1.1111 */;\n font-weight: var(--font-weight-extrabold) /* 800 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h2 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-3xl) /* 1.875rem = 30px */;\n line-height: var(--text-3xl--line-height) /* calc(2.25 / 1.875) ≈ 1.2 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h3 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-2xl);\n line-height: var(--text-2xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h4 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-xl);\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h5 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-size: var(--text-lg);\n line-height: var(--text-lg--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h6 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-p {\n margin-block: calc(var(--spacing) * 2.5);\n line-height: calc(var(--spacing) * 5);\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-a {\n color: var(--primary);\n font-weight: var(--font-weight-medium) /* 500 */;\n text-decoration-line: underline;\n text-underline-offset: 4px;\n overflow-wrap: break-word;\n}\n\n.omniscribe_markdown-blockquote {\n border-left-width: 2px;\n padding-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n font-style: italic;\n}\n\n.omniscribe_markdown-ul {\n list-style-type: disc;\n padding-inline-start: 20px;\n word-break: break-word;\n & > li {\n margin-top: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-ol {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n margin-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n list-style-type: decimal;\n & > li {\n margin-top: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-hr {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n border-bottom-width: 1px;\n}\n.omniscribe_markdown-table {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n width: 100%;\n border-collapse: separate;\n border-spacing: calc(var(--spacing) * 0) /* 0rem = 0px */;\n overflow-y: auto;\n}\n.omniscribe_markdown-th {\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n font-weight: var(--font-weight-bold) /* 700 */;\n &:first-child {\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child {\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-td {\n border-bottom-width: 1px;\n border-left-width: 1px;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n &:last-child {\n border-right-width: 1px;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-tr {\n margin: calc(var(--spacing) * 0) /* 0rem = 0px */;\n &:first-child {\n border-top-width: 1px;\n }\n &:last-child > td:first-child {\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child > td:last-child {\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n}\n\n.omniscribe_markdown-sup {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n & > a {\n text-decoration-line: none;\n }\n}\n\n.omniscribe_markdown-pre {\n overflow-x: auto;\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--black);\n padding: calc(var(--spacing) * 4) /* 1rem = 16px */;\n color: var(--white);\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_markdown-code {\n border-radius: 0.25rem /* 4px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n}\n\n.omniscribe_markdown-link {\n color: var(--color-primary); /* text-primary */\n font-weight: 500; /* font-medium */\n text-decoration: underline; /* underline */\n text-underline-offset: 4px; /* underline-offset-4 */\n word-wrap: break-word; /* break-words */\n}\n\n.omniscribe_markdown-link:hover {\n color: var(--color-primary-dark); /* hover:text-primary-dark */\n}\n\n.omniscribe_assistant-markdown-container strong,\n.omniscribe_assistant-markdown-container b {\n font-weight: bold !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessage.css */\n.omniscribe_assistant-message-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n width: 100%;\n}\n\n.omniscribe_assistant-message-calls-container {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n}\n\n.omniscribe_assistant-markdown-container {\n padding-block: calc(var(--spacing) * 0.5) /* 0.25rem = 4px */;\n}\n\n.omniscribe_assistant-commands-container {\n display: flex;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n align-items: center;\n margin-right: auto;\n}\n.omniscribe_assistant-message-container:hover,\n.omniscribe_assistant-message-container:focus {\n .omniscribe_assistant-commands-container {\n opacity: 100%;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessageLoading.css */\n.omniscribe_assistant-message-loading-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n margin-top: 3px;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_assistant-message-loading {\n display: flex;\n align-items: center;\n border-radius: var(--radius-2xl) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 1);\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n height: calc(var(--spacing) * 8) /* 2rem = 32px */;\n}\n.omniscribe_assistant-message-loading-dot {\n width: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n height: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n border-radius: calc(infinity * 1px);\n animation: loadingFade 2s infinite;\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(1) {\n animation-delay: 0.2s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(2) {\n animation-delay: 0.4s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n@keyframes loadingFade {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 0.8;\n }\n 100% {\n opacity: 0;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/BranchSwitcher.css */\n.omniscribe_brand-switcher-container {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_brand-switcher-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_brand-switcher-btn {\n width: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n height: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n padding: calc(0.25rem /* 4px */ * 1) /* 0.25rem = 4px */;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/CommandBar.css */\n.omniscribe_command-bar-container {\n display: flex;\n align-items: center;\n padding-right: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n transition: opacity 0.2s ease-in-out;\n}\n\n.omniscribe_command-bar-container.omniscribe_command-bar-hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.thumbs.active {\n color: var(--blue-500);\n}\n\n.omniscribe_feedback-button-container {\n position: relative;\n display: inline-block;\n}\n\n.omniscribe_command-bar-container-icon-color,\n.thumbs {\n color: #4a5364;\n}\n\n.omniscribe_command-bar-container svg {\n width: 12px !important;\n height: 12px !important;\n}\n\n.omniscribe_command-bar-container .omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 0.5) !important;\n}\n\n.omniscribe_command-bar-container .tooltip-base {\n padding: 0.25rem 0.5rem;\n}\n\n.omniscribe_command-bar-container .tooltip-trigger {\n padding: 1px;\n margin: 1px;\n}\n\n.omniscribe_command-bar-container .omniscribe_button-size-icon {\n height: calc(var(--spacing) * 3);\n width: calc(var(--spacing) * 3);\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/HumanMessage.css */\n.omniscribe_human-message-container {\n display: flex;\n align-items: center;\n margin-left: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n.omniscribe_human-message-container-editing {\n width: 100%;\n max-width: var(--container-xl) /* 36rem = 576px */;\n}\n.omniscribe_human-message-container-no-editing {\n max-width: 100%;\n}\n\n.omniscribe_human-message-command-container {\n display: flex;\n gap: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n align-items: center;\n margin-left: auto;\n}\n.omniscribe_human-message-command-container-editing {\n opacity: 100%;\n}\n\n.omniscribe_human-message-container:focus,\n.omniscribe_human-message-container:hover {\n .omniscribe_human-message-command-container {\n opacity: 100%;\n }\n}\n\n.omniscribe_human-message-subcontainer {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n.omniscribe_human-message-subcontainer-editing {\n width: 100%;\n}\n\n.omniscribe_human-message-content-text {\n text-align: right;\n padding-top: 4px;\n padding-bottom: 4px;\n padding-inline: calc(var(--spacing) * 2);\n border-radius: var(--radius-3xl);\n background-color: #f6f7f9;\n font-weight: 500;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n margin: 0;\n}\n.omniscribe_human-message-textarea {\n min-height: 2.5rem !important; /* 40px */\n max-height: 12rem !important; /* 192px - Allow more vertical space */\n min-width: 200px !important; /* Minimum width for usability */\n resize: both; /* Allow controlled resizing in both directions */\n width: 100%;\n overflow: auto; /* Enable scroll when content exceeds max dimensions */\n\n &:focus-visible {\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n}\n\n.omniscribe_human-message-textarea-chat-history-close {\n max-width: 100% !important;\n}\n\n.omniscribe_human-message-textarea-chat-history-open {\n max-width: 385px !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ReasoningSection.css */\n.omniscribe_assistant-reasoning-section {\n margin-top: 12px;\n border-left: 3px solid #e5e7eb;\n padding-left: 12px;\n background-color: #f9fafb;\n border-radius: 4px;\n padding: 8px 12px;\n}\n\n.omniscribe_assistant-reasoning-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #6b7280;\n width: 100%;\n text-align: left;\n}\n\n.omniscribe_assistant-reasoning-arrow {\n display: inline-block;\n transition: transform 0.2s ease-in-out;\n transform: rotate(0deg);\n}\n\n.omniscribe_assistant-reasoning-arrow--expanded {\n transform: rotate(90deg);\n}\n\n.omniscribe_assistant-reasoning-summary {\n margin-top: 8px;\n font-size: 14px;\n color: #374151;\n line-height: 1.5;\n}\n\n.omniscribe_assistant-reasoning-summary-item {\n margin: 8px 0;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolCalls.css */\n.omniscribe_tool-calls-container {\n margin-block-start: calc(calc(var(--spacing) * 4) * var(0));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(0)));\n width: 100%;\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_tool-calls-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n gap: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n}\n.omniscribe_tool-calls-h3 {\n font-weight: var(--font-weight-bold);\n color: var(--color-gray-900) /* oklch(21% 0.034 264.665) = #101828 */;\n word-break: break-all;\n font-size: 14px;\n margin: 0;\n}\n\n.omniscribe_tool-calls-item-args {\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.omniscribe_tool-calls-item-args-text {\n word-break: break-all;\n margin-right: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n padding-block: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_tool-calls-item-args-code {\n background-color: var(--color-gray-50);\n border-radius: 0.25rem /* 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n word-break: break-all;\n}\n\n.omniscribe_tool-calls-pre {\n font-size: 12px;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolResults.css */\n/* ToolResult Component Styles */\n\n.omniscribe_tool-result {\n margin-top: 2px;\n border: 1px solid var(--grey-200);\n border-radius: 0.5rem !important; /* !rounded-lg */\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n overflow: hidden; /* overflow-hidden */\n width: 100%;\n}\n\n.omniscribe_tool-result-header {\n background-color: var(--grey-50); /* bg-gray-50 */\n padding-left: 1rem; /* px-4 */\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex; /* flex */\n align-items: center; /* items-center */\n justify-content: space-between; /* justify-between */\n}\n\n.omniscribe_tool-result-header--expanded {\n border-bottom: 1px solid var(--grey-200);\n}\n\n.omniscribe_tool-result-header-content {\n display: flex; /* flex */\n align-items: center; /* items-center */\n gap: 0.5rem; /* gap-2 */\n min-width: 0; /* min-w-0 */\n}\n\n.omniscribe_tool-result-title {\n font-weight: 500; /* font-medium */\n color: var(--grey-900);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; /* truncate */\n margin: 0;\n font-size: 14px;\n}\n\n.omniscribe_expand-button {\n padding: 0.25rem; /* p-1 */\n flex-shrink: 0; /* flex-shrink-0 */\n}\n\n.omniscribe_expand-icon {\n width: 1.25rem; /* w-5 */\n height: 1.25rem; /* h-5 */\n}\n\n.omniscribe_tool-result-content {\n padding: 1rem; /* p-4 */\n background-color: #ffffff; /* bg-white */\n max-height: 24rem; /* max-h-96 */\n overflow-y: auto; /* overflow-y-auto */\n}\n\n.omniscribe_tool-result-content > * + * {\n margin-top: 0.5rem; /* space-y-2 */\n}\n\n/* Scrollbar styles for webkit browsers */\n.omniscribe_tool-result-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-track {\n background: #f1f5f9;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n.omniscribe_result-card {\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n border: 1px solid var(--color-gray-100);\n padding-top: 0.5rem !important; /* !py-2 */\n padding-bottom: 0.5rem !important;\n gap: 0 !important; /* !gap-0 */\n}\n\n.omniscribe_result-card-header {\n padding-top: 0.5rem !important; /* !pt-2 */\n padding-left: 0.5rem !important; /* !px-2 */\n padding-right: 0.5rem !important;\n padding-bottom: 0 !important; /* !pb-0 */\n}\n\n.omniscribe_result-card-title {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n font-weight: 600; /* font-semibold */\n}\n\n.omniscribe_result-link {\n color: var(--blue-600);\n text-decoration: none;\n transition-property: color, text-decoration;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_result-link:hover {\n text-decoration: underline; /* hover:underline */\n color: #1e40af; /* hover:text-blue-800 */\n}\n\n.omniscribe_result-card-content {\n padding: 0.5rem !important; /* !p-2 */\n padding-top: 0 !important; /* !pt-0 */\n}\n\n.omniscribe_result-description {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #374151; /* text-gray-700 */\n line-height: 1.625; /* leading-relaxed */\n word-break: break-all; /* break-all */\n display: -webkit-box;\n -webkit-line-clamp: 2; /* line-clamp-2 */\n -webkit-box-orient: vertical;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms; /* transition-all duration-150 ease-in-out */\n transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1); /* ease-in-out */\n}\n\n.omniscribe_result-description:hover {\n -webkit-line-clamp: unset; /* hover:line-clamp-none */\n display: block;\n}\n\n.omniscribe_result-source {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #6b7280; /* text-gray-500 */\n margin-top: 0.25rem; /* mt-1 */\n padding-top: 0.25rem; /* pt-1 */\n border-top: 1px solid var(--color-gray-100);\n}\n\n.omniscribe_string-result {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n white-space: pre-wrap; /* whitespace-pre-wrap */\n background-color: var(--grey-50);\n padding: 0.75rem; /* p-3 */\n border-radius: 0.375rem; /* rounded-md */\n border: 1px solid var(--grey-200);\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo,\n monospace; /* pre tag font */\n}\n\n\n/* Source: modules/chat/components/thread/components/tooltip-icon-button.css */\n.omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 1);\n /* width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6); */\n}\n\n.omniscribe_tooltip-icon-button-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: none;\n}\n\n\n/* Source: modules/configuration/section/Configuration.css */\n.omniscribe_config-content {\n width: 650px;\n max-height: 590px;\n opacity: 1;\n background-color: #ffffff;\n display: flex;\n flex-direction: column;\n overflow: visible;\n}\n\n.omniscribe_config-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n flex: 1;\n}\n\n.omniscribe_config-item {\n width: 100%;\n height: 75px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n opacity: 1;\n padding: 10px 22px 10px 16px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.omniscribe_config-item:hover {\n background-color: #f9fafb;\n}\n\n.omniscribe_config-item:focus {\n outline: none;\n background-color: #f3f4f6;\n}\n\n.omniscribe_config-item:last-child {\n border-bottom: none;\n}\n\n.omniscribe_config-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n}\n\n.omniscribe_config-icon {\n color: #4a5364;\n}\n\n.omniscribe_config-item-content {\n flex: 1;\n margin-left: 16px;\n margin-right: 16px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_config-item-title {\n margin: 0;\n font-weight: 700;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #252a32;\n}\n\n.omniscribe_config-item-description {\n margin: 0;\n font-weight: 500;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #4a5364;\n}\n\n.omniscribe_config-item-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n color: #9ca3af;\n flex-shrink: 0;\n}\n\n/* Sub-screen styles */\n.omniscribe_config-subscreen-header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 16px 12px;\n color: #13161a;\n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-back-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_config-subscreen-title {\n margin: 0;\n font-size: 14px;\n font-weight: 700;\n color: #13161a;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-subscreen-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 16px;\n border-top: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n}\n\n.omniscribe_config-subscreen-content.no-border {\n border-top: none;\n}\n\n.omniscribe_config-subscreen-content-template {\n flex: 1;\n overflow: hidden;\n}\n\n.omniscribe_config-section-label {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #374151;\n line-height: 1.4;\n}\n\n.omniscribe_config-language-section {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_config-language-section-title {\n font-size: 16px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n}\n\n.omniscribe_config-subscreen-description {\n margin: 0 0 0 0;\n font-size: 14px;\n line-height: 18px;\n color: #13161a;\n font-weight: 400;\n}\n\n/* Dictionary Options View Styles */\n.omniscribe_config-dictionary-section {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.omniscribe_config-dictionary-add-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.omniscribe_config-dictionary-input-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n\n.omniscribe_config-dictionary-input {\n height: 32px;\n border: 1px solid #e5e8eb !important;\n border-radius: 8px !important;\n padding: 0 12px !important;\n font-size: 14px !important;\n line-height: 1.4 !important;\n background-color: #ffffff !important;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease !important;\n}\n\n.omniscribe_config-dictionary-input:focus {\n outline: none !important;\n border-color: #4f46e5 !important;\n box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-input::placeholder {\n color: #9ca3af !important;\n font-size: 14px !important;\n}\n\n.omniscribe_config-dictionary-input.error {\n border-color: #dc3545 !important;\n background-color: #fff5f5 !important;\n}\n\n.omniscribe_config-dictionary-input.error:focus {\n border-color: #dc3545 !important;\n box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-add-btn {\n width: 32px;\n height: 32px;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n border-radius: 8px;\n color: var(--primary-foreground);\n cursor: pointer;\n transition: all 0.2s ease;\n margin-top: 0;\n font-size: 0;\n}\n\n.omniscribe_config-dictionary-add-btn:hover:not(:disabled) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n border-color: color-mix(in oklab, var(--primary) 90%, transparent);\n}\n\n.omniscribe_config-dictionary-add-btn:disabled {\n background-color: #e5e8eb;\n border-color: #e5e8eb;\n color: #9ca3af;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n\n.omniscribe_config-dictionary-list {\n display: flex;\n padding-top: 16px;\n flex-direction: column;\n gap: 8px;\n max-height: 410px;\n overflow-y: auto;\n margin-top: 4px;\n}\n\n.omniscribe_config-dictionary-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background-color: #f9fafb;\n border: 1px solid #e5e8eb;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.omniscribe_config-dictionary-row:hover {\n background-color: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.omniscribe_config-dictionary-cell {\n flex: 1;\n font-size: 14px;\n line-height: 20px;\n color: #374151;\n word-break: break-word;\n font-weight: 500;\n}\n\n.omniscribe_config-dictionary-arrow {\n color: #9ca3af;\n font-size: 16px;\n font-weight: 600;\n flex-shrink: 0;\n margin: 0 4px;\n}\n\n.omniscribe_config-dictionary-delete-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 6px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.omniscribe_config-dictionary-delete-btn:hover {\n background-color: #fee2e2;\n color: #dc2626;\n transform: scale(1.05);\n}\n\n.omniscribe_config-dictionary-empty {\n padding: 40px 16px;\n margin-top: 16px;\n text-align: center;\n color: #6b7280;\n font-size: 14px;\n line-height: 20px;\n background-color: #f9fafb;\n border: 2px dashed #e5e8eb;\n border-radius: 12px;\n font-style: italic;\n}\n\n/* Template specific styles */\n.omniscribe_template-field {\n background: white;\n border-bottom: 1px solid #e1e8ed;\n margin-bottom: 0;\n}\n\n.omniscribe_template-field:last-child {\n border-bottom: none;\n}\n\n.omniscribe_template-field-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n background: #ffffff;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_template-field-icon {\n margin-right: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon svg {\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon.expanded svg {\n transform: rotate(90deg);\n}\n\n.omniscribe_template-field-label {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n color: #2c3e50;\n}\n\n.omniscribe_template-field-content {\n padding: 16px;\n background: white;\n}\n\n.omniscribe_template-textarea {\n width: 100%;\n min-height: 80px;\n max-height: 300px;\n /* Prevent excessive vertical expansion */\n padding: 12px;\n border: 1px solid #e1e8ed;\n border-radius: 6px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n background: white;\n box-sizing: border-box;\n overflow-y: auto;\n /* Enable scroll when content exceeds max height */\n}\n\n.omniscribe_template-textarea:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.omniscribe_template-character-count {\n margin-top: 8px;\n font-size: 12px;\n color: #95a5a6;\n display: flex;\n}\n\n.omniscribe_template-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e1e8ed;\n background: white;\n margin-top: 18px;\n margin-bottom: 50px;\n}\n\n/* Template fields container */\n.omniscribe_template-fields {\n display: flex;\n flex-direction: column;\n max-height: 400px;\n overflow-y: auto;\n background: white;\n}\n\n/* Improved scrollbar for template fields */\n.omniscribe_template-fields::-webkit-scrollbar {\n width: 6px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n}\n\n.omniscribe_config-version-section {\n background: #F6F7F9;\n color: #4A5364;\n padding: 16px 8px 16px 24px;\n font-weight: 500;\n line-height: 16.8px;\n font-size: 12px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n/* Source: modules/layout/components/MinimizeButton/MinimizeButton.css */\n.omniscribe_minimize-button-container {\n position: absolute;\n top: -1px;\n left: 0;\n transform: translateX(-100%);\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n height: auto;\n max-height: 400px;\n min-height: 180px;\n}\n.omniscribe_minimize-button-subcontainer {\n position: relative;\n background-color: color-mix(in oklab, rgb(15, 15, 15) 65%, transparent);\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n backdrop-filter: sepia(1%);\n cursor: pointer;\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 400ms;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_minimize-button-subcontainer:hover {\n background-color: color-mix(in oklab, rgb(15, 15, 15) 85%, transparent);\n}\n.omniscribe_minimize-button-content {\n display: flex;\n rotate: calc(90deg * -2);\n gap: 10px;\n writing-mode: vertical-rl;\n text-orientation: mixed;\n width: 100%;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-wrap: nowrap;\n padding: 12px;\n min-height: 180px;\n max-height: 400px;\n}\n\n.omniscribe_minimize-button-span {\n font-weight: 400;\n font-size: var(--text-lg) /* 1.125rem = 18px */;\n line-height: var(--text-lg--line-height) /* calc(1.75 / 1.125) ≈ 1.5556 */;\n flex-wrap: nowrap;\n color: var(--white);\n display: flex;\n white-space: nowrap;\n text-align: center;\n}\n\n[dir='ltr'] .omniscribe_minimize-button-container {\n left: 0;\n transform: translateX(-100%);\n}\n\n[dir='ltr'] .omniscribe_minimize-button-subcontainer {\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n[dir='rtl'] .omniscribe_minimize-button-container {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n[dir='rtl'] .omniscribe_minimize-button-subcontainer {\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeContainer/OmniscribeContainer.css */\n.omniscribe_container {\n isolation: isolate;\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n z-index: 80;\n}\n\n[dir='ltr'] .omniscribe_container {\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n}\n\n[dir='rtl'] .omniscribe_container {\n left: 0;\n right: auto;\n border-top-right-radius: 30px;\n border-bottom-right-radius: 30px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeLayout/OmniscribeLayout.css */\n.omniscribe_layout {\n position: fixed;\n width: var(--layout-w);\n background: var(--white);\n bottom: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 500ms;\n transition-property: transform, translate, scale, rotate;\n display: flex;\n flex-direction: column;\n height: var(--layout-h);\n min-width: 500px;\n min-height: 500px;\n right: 0;\n}\n\n[dir='rtl'] .omniscribe_layout {\n left: 0;\n right: auto;\n border-bottom-right-radius: 12px;\n}\n\n[dir='ltr'] .omniscribe_layout {\n right: 0;\n border-bottom-left-radius: 12px;\n}\n\n.omniscribe_layout-open {\n background: var(--white);\n translate: 0;\n}\n\n.omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n[dir='rtl'] .omniscribe_layout-close {\n translate: calc(var(--layout-w) * -1);\n}\n\n[dir='ltr'] .omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n\n/* Source: modules/utility-section/section/UtilityButtons.css */\n.omniscribe_utility-btns-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n background-color: #ffffff;\n padding: 16px;\n overflow: hidden;\n background: linear-gradient(90deg, #ffffff 0%, #f5f8fe 50%, #e7effd 100%);\n align-self: stretch;\n}\n\n.omniscribe_utility-btns-left,\n.omniscribe_utility-btns-right {\n display: flex;\n flex-direction: row;\n gap: 4px;\n align-items: center;\n}\n\n.omniscribe_utility-btn-right {\n border-radius: var(--Radius-radius-round, 99999px) !important;\n background-color: var(--Greyscale-100, #f6f7f9) !important;\n border: none !important;\n}\n\n.omniscribe_connected-buttons {\n display: flex;\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n overflow: hidden;\n}\n\n.omniscribe_connected-btn-left,\n.omniscribe_connected-btn-right {\n border: none !important;\n border-radius: 0 !important;\n}\n\n.omniscribe_connected-btn-left {\n border-right: 1px solid var(--Stroke-greyscale-Active, #e5e7ec) !important;\n}\n\n.omniscribe_utility-btns {\n cursor: pointer;\n transition-duration: 300ms;\n background-color: color-mix(in oklab, var(--white) 30%, transparent);\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n position: relative;\n padding: 8px;\n display: flex;\n align-items: center;\n\n &:hover {\n background-color: var(--Greyscale-100, #f6f7f9);\n }\n}\n\n.omniscribe_utility-btns-pointer {\n pointer-events: auto;\n}\n\n.omniscribe_utility-btns-no-pointer {\n pointer-events: none;\n background-color: var(--white);\n}\n\n.omniscribe_utility-btns-no-pointer-opacity {\n pointer-events: none;\n opacity: 50%;\n}\n\n.omniscribe_utility-btns-opacity {\n background-color: var(--white);\n opacity: 100%;\n}\n\n.omniscribe_utility-btns-active {\n background-color: var(--Greyscale-100, #f6f7f9);\n border: 1px solid var(--Stroke-greyscale-Active, #105bdb);\n}\n\n.omniscribe_btn-label {\n margin-left: 6px;\n font-size: 14px;\n color: #212529;\n font-weight: 500;\n}\n\n.omniscribe_btn-label-active {\n color: #105bdb;\n}\n\n.omniscribe_icon {\n color: var(--active-black);\n}\n\n.omniscribe_icon-active {\n color: #105bdb;\n}\n\n.omniscribe_config-view {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.omniscribe_config-close-btn {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n color: #000000;\n width: 32px;\n height: 32px;\n}\n\n.omniscribe_config-title {\n margin: 0;\n color: #000000;\n font-size: 16px;\n font-weight: 700;\n line-height: 19.2px;\n}\n\n\n/* Source: shared/components/Card.css */\n.omniscribe_card {\n background-color: var(--color-card, #ffffff);\n color: var(--color-card-foreground, #000000);\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n border-radius: 0.75rem;\n border: 1px solid var(--color-border, var(--grey-200));\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n}\n\n.omniscribe_card-header {\n container-type: inline-size;\n container-name: card-header;\n display: grid;\n grid-auto-rows: min-content;\n grid-template-rows: auto auto;\n align-items: start;\n gap: 0.375rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n/* When card-header has card-action, adjust grid layout */\n.omniscribe_card-header:has([data-slot='card-action']) {\n grid-template-columns: 1fr auto;\n}\n\n/* When card-header has border-b class, add padding bottom */\n.omniscribe_card-header.border-b {\n padding-bottom: 1.5rem;\n}\n\n.omniscribe_card-title {\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_card-description {\n color: var(--color-muted-foreground, #6b7280);\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.omniscribe_card-action {\n grid-column-start: 2;\n grid-row: span 2 / span 2;\n grid-row-start: 1;\n align-self: start;\n justify-self: end;\n}\n\n.omniscribe_card-content {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer {\n display: flex;\n align-items: center;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer.border-t {\n padding-top: 1.5rem;\n}\n\n\n/* Source: shared/components/button.css */\n.omniscribe_button {\n border: none;\n background: transparent;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(var(--spacing) * 2);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &:disabled {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 50%;\n }\n & svg {\n pointer-events: none;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: calc(var(--spacing) * 4) /* 1rem = 16px */;\n height: calc(var(--spacing) * 4) /* 1rem = 16px */;\n }\n &:focus-visible {\n border-color: var(--ring);\n box-shadow: 0 0 0 calc(3px + var(--tw-ring-offset-width))\n color-mix(in oklab, var(--ring) 50%, transparent);\n }\n &[aria-invalid='true'] {\n border-color: var(--destructive);\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n\n.omniscribe_button-variant-default {\n background-color: var(--primary);\n color: var(--primary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n}\n.omniscribe_button-variant-destructive {\n background-color: var(--destructive);\n color: var(--white);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n.omniscribe_button-variant-outline {\n border: solid 1px var(--input);\n background-color: var(--background);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n }\n}\n.omniscribe_button-variant-icon {\n align-items: center;\n border-radius: 100%;\n padding: 10px;\n & svg {\n pointer-events: auto;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: auto;\n height: auto;\n }\n}\n.omniscribe_button-variant-secondadry {\n background-color: var(--secondary);\n color: var(--secondary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n}\n.omniscribe_button-variant-ghost:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n}\n.omniscribe_button-variant-empty {\n cursor: pointer;\n}\n.omniscribe_button-variant-primary {\n cursor: pointer;\n background-color: color-mix(in oklab, var(--primary-button) 80%, transparent);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px !important;\n color: var(--white);\n &:hover {\n background-color: color-mix(\n in oklab,\n var(--primary-button) 60%,\n transparent\n );\n }\n}\n.omniscribe_button-size-default {\n height: calc(var(--spacing) * 9);\n padding-inline: calc(var(--spacing) * 4);\n padding-block: calc(var(--spacing) * 2);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 3) /* 0.75rem = 12px */;\n }\n}\n.omniscribe_button-size-sm {\n height: calc(var(--spacing) * 8);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n gap: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n padding-inline: calc(var(--spacing) * 3);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n}\n\n.omniscribe_button-size-lg {\n height: calc(var(--spacing) * 10);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n padding-inline: calc(var(--spacing) * 6);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n}\n\n.omniscribe_button-size-icon {\n height: calc(var(--spacing) * 5);\n width: calc(var(--spacing) * 5);\n}\n.omniscribe_button-size-padding {\n padding: calc(var(--spacing) * 2);\n min-width: calc(var(--spacing) * 40);\n}\n\n.omniscribe_button-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n}\n.omniscribe_button-whitespace {\n white-space: nowrap;\n}\n.omniscribe_button-rounded {\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n.omniscribe_button-disabled {\n pointer-events: none;\n}\n.omniscribe_button-loading {\n opacity: 50%;\n}\n.omniscribe_button-animate-spin {\n animation: spin 1s linear infinite;\n}\n.omniscribe_button-variant-report {\n cursor: pointer;\n background-color: var(--report);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px;\n color: var(--white);\n &:hover {\n background-color: color-mix(in oklab, var(--report) 60%, transparent);\n }\n}\n\n\n/* Source: shared/components/feedback-modal.css */\n.omniscribe_feedback-modal {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-top: 8px;\n min-width: 200px;\n width: 200px;\n transform-origin: top left;\n}\n\n.omniscribe_feedback-input-container {\n position: relative;\n display: flex;\n align-items: flex-end;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n}\n\n.omniscribe_feedback-textarea {\n flex: 1;\n border: transparent;\n border-radius: 8px;\n padding: 12px 12px 12px 12px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n resize: none;\n min-height: 20px;\n max-height: 200px;\n overflow-y: auto;\n font-family: inherit;\n line-height: 1.4;\n width: 100%;\n box-sizing: border-box;\n}\n.omniscribe_feedback-textarea-padding {\n margin-bottom: 34px;\n padding-bottom: 0px !important;\n}\n\n.omniscribe_feedback-icons {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.omniscribe_feedback-icons:has(.omniscribe_feedback-send) {\n bottom: 8px;\n top: auto;\n transform: none;\n}\n\n.omniscribe_feedback-close {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-close:hover {\n background-color: #f3f4f6;\n color: #374151;\n}\n\n.omniscribe_feedback-close svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-send {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--blue-500);\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-send:hover {\n background-color: #f0f7ff;\n color: #0d47a1;\n}\n\n.omniscribe_feedback-send svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-confirmation {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-top: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n.omniscribe_feedback-confirmation-icon {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* Right-positioned modal styles */\n.omniscribe_feedback-modal-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-left: 8px;\n width: 200px;\n transform-origin: bottom left;\n}\n\n.omniscribe_feedback-sending-center {\n top: 100%;\n left: 0;\n}\n\n.omniscribe_feedback-sending-right {\n bottom: 0;\n left: 40%;\n}\n\n.omniscribe_feedback-sending {\n position: absolute;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n}\n.omniscribe_feedback-confirmation-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n@keyframes fadeInOut {\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n 10% {\n opacity: 1;\n transform: translateY(0);\n }\n 90% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n\n/* Source: shared/components/gradient-box.css */\n.omniscribe_gradient-box {\n border-radius: 8px;\n padding: 1px;\n width: fit-content;\n}\n\n\n/* Source: shared/components/input.css */\n.omniscribe_input {\n height: calc(var(--spacing) * 9);\n width: 100%;\n display: flex;\n border-radius: calc(var(--radius));\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 1);\n font-size: var(--text-base) /* 1rem = 16px */;\n line-height: var(--text-base--line-height);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &::file-selector-button {\n color: var(--foreground);\n display: inline-flex;\n height: calc(var(--spacing) * 7);\n border: none;\n background-color: transparent;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n font-weight: var(--font-weight-medium);\n }\n &::placeholder {\n color: var(--muted-foreground);\n }\n &::selection {\n background-color: var(--primary);\n color: var(--primary-foreground);\n }\n &:disabled {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 50%;\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n @media (width >= 48rem /* 768px */) {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n }\n}\n\n.omniscribe_input-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_input.invalid {\n border-color: #dc3545;\n background-color: #fff5f5;\n box-shadow: 0 0 0 0.125rem rgba(220, 53, 69, 0.25);\n}\n\n.omniscribe_input-error {\n color: #dc3545;\n font-size: 10px;\n margin-block: 0.25rem;\n display: block;\n line-height: 1;\n}\n\n\n/* Source: shared/components/loading-modal.css */\n.omniscribe_loading-modal-container {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n.omniscribe_loading-modal-subcontainer {\n background-color: var(--white);\n padding: calc(var(--spacing) * 8);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n text-align: center;\n max-width: var(--container-md);\n}\n.omniscribe_loading-modal-msg {\n font-size: var(--text-xl) /* 1.25rem = 20px */;\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.omniscribe_loading-modal-spin {\n display: inline-block;\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n border: solid 4px var(--color-gray-200);\n border-top-color: var(--blue-500);\n border-radius: calc(infinity * 1px);\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n\n/* Source: shared/components/modal.css */\n.omniscribe_modal-overlay {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n\n.omniscribe_modal-container {\n position: relative;\n background-color: var(--white);\n z-index: 100;\n border-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n padding: calc(var(--spacing) * 5);\n transition-duration: 300ms;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n max-width: 90vw;\n max-height: 90vh;\n}\n.omniscribe_modal-container-scroll {\n overflow: auto;\n}\n\n.omniscribe_modal-container-show {\n opacity: 100%;\n}\n\n.omniscribe_modal-container-hide {\n opacity: 0%;\n}\n\n.omniscribe_modal-subcontainer {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_modal-title-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--spacing) * 2);\n}\n\n.omniscribe_modal-title {\n font-size: var(--text-3xl); /* 1.875rem = 30px */\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin: 0;\n}\n\n.omniscribe_modal-button {\n border: none;\n background: transparent;\n line-height: var(--text-2xl--line-height);\n cursor: pointer;\n color: var(--black);\n}\n\n@media (min-width: 768px) {\n .omniscribe_modal-container {\n max-width: 60vw;\n }\n}\n\n/* Large screens: desktop */\n@media (min-width: 1024px) {\n .omniscribe_modal-container {\n max-width: 50vw;\n }\n}\n\n/* Very large screens: large desktop and ultra-wide */\n@media (min-width: 1440px) {\n .omniscribe_modal-container {\n max-width: 40vw;\n }\n}\n\n/* Intermediate breakpoint: large tablets */\n@media (min-width: 640px) and (max-width: 767px) {\n .omniscribe_modal-container {\n max-width: 70vw;\n }\n}\n\n\n/* Source: shared/components/select.css */\n.omniscribe_select-container {\n position: relative;\n width: 100%;\n padding-block: calc(var(--spacing) * 3);\n}\n.omniscribe_select-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: calc(var(--spacing) * 3);\n background-color: var(--white);\n border-radius: var(--Radius-radius-medium, 8px);\n border: solid 1px var(--light-border);\n cursor: pointer;\n}\n.omniscribe_select-text {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n}\n.omniscribe_select-content-container {\n position: absolute;\n width: 100%;\n margin-top: calc(var(--spacing) * 2);\n border: solid 1px var(--light-border);\n background-color: var(--white);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n bottom: calc(var(--spacing) * 15);\n padding-inline: calc(var(--spacing) * 1);\n padding-block: calc(var(--spacing) * 0.5);\n z-index: 9999;\n}\n.omniscribe_select-content-ul {\n overflow-y: scroll;\n max-height: calc(var(--spacing) * 80);\n padding-inline: 5px;\n}\n.omniscribe_select-content-li {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--spacing) * 3);\n cursor: pointer;\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n}\n.omniscribe_select-check-icon {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n color: var(--color-slate-500) /* oklch(55.4% 0.046 257.417) = #62748e */;\n}\n.omniscribe_select-content-li-span {\n display: flex;\n align-items: center;\n gap: calc(0.25rem /* 4px */ * 2);\n}\n\n\n/* Source: shared/components/skeleton.css */\n.omniscribe_skeleton {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n\n\n/* Source: shared/components/textarea.css */\n.omniscribe_textarea-default {\n display: flex;\n min-height: calc(var(--spacing) * 16);\n width: -webkit-fill-available;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 2);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n &::placeholder {\n color: var(--muted-foreground);\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n }\n &:focus-visible {\n border-color: var(--ring);\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n &:disabled {\n cursor: not-allowed;\n opacity: 50%;\n }\n}\n\n.omniscribe_textarea-secondary {\n padding: calc(var(--spacing) * 3.5);\n padding-bottom: calc(var(--spacing) * 0);\n border-style: none;\n background-color: transparent;\n resize: none;\n &:focus {\n outline-style: none;\n }\n}\n.omniscribe_textarea-general {\n font-family: 'Lato', sans-serif;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n\n/* Source: shared/components/toast.css */\n.omniscribe_toast-container {\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n top: calc(var(--spacing) * -30);\n border-radius: var(--radius);\n padding: calc(var(--spacing) * 4);\n height: fit-content;\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n width: calc(var(--spacing) * 120);\n}\n\n.omniscribe_toast-container-danger {\n background-color: var(--color-red-500);\n}\n.omniscribe_toast-container-black {\n background-color: var(--black);\n}\n.omniscribe_toast-container-show {\n right: calc(var(--spacing) * 10);\n}\n.omniscribe_toast-container-hide {\n right: -100%;\n}\n.omniscribe_toast-subcontainer {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 100ms;\n display: flex;\n flex-direction: column;\n color: var(--white);\n}\n.omniscribe_toast-title {\n font-size: 18px;\n font-weight: var(--font-weight-bold);\n}\n.omniscribe_toast-msg {\n font-size: 16px;\n}\n\n\n/* Source: shared/components/tooltip.css */\n.tooltip-base {\n position: fixed;\n z-index: 9999;\n border-radius: 0.375rem; /* rounded-md */\n background-color: #111827;\n padding: 0.5rem 0.75rem; /* px-3 py-2 */\n font-size: 0.875rem; /* text-sm */\n font-family: 'Lato', sans-serif;\n color: #ffffff; /* text-white */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */\n transition: opacity 0.2s ease-in-out; /* transition-opacity duration-200 */\n pointer-events: none;\n user-select: none;\n word-wrap: break-word;\n line-height: 1.4;\n}\n\n/* Tooltip Arrow Styles */\n.tooltip-arrow {\n position: absolute;\n width: 0.5rem; /* w-2 */\n height: 0.5rem; /* h-2 */\n background-color: #111827;\n transform: rotate(45deg);\n}\n\n/* Arrow positioning for each side */\n.tooltip-arrow-top {\n bottom: -0.25rem; /* bottom-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-bottom {\n top: -0.25rem; /* top-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-left {\n right: -0.25rem; /* right-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-right {\n left: -0.25rem; /* left-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n/* Width classes based on message length */\n.tooltip-width-auto {\n width: auto;\n white-space: nowrap;\n}\n\n.tooltip-width-200 {\n width: auto;\n max-width: 200px;\n}\n\n.tooltip-width-xs {\n width: auto;\n max-width: 20rem; /* max-w-xs */\n}\n\n.tooltip-width-sm {\n width: auto;\n max-width: 24rem; /* max-w-sm */\n}\n\n.tooltip-width-400 {\n width: auto;\n max-width: 400px;\n}\n\n/* Trigger container styles */\n.tooltip-trigger {\n display: inline-block;\n}\n\n/* Animation classes */\n.tooltip-enter {\n opacity: 0;\n transform: scale(0.95);\n}\n\n.tooltip-enter-active {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.2s ease-in-out,\n transform 0.2s ease-in-out;\n}\n\n.tooltip-exit {\n opacity: 1;\n transform: scale(1);\n}\n\n.tooltip-exit-active {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 0.15s ease-in-out,\n transform 0.15s ease-in-out;\n}\n\n/* Dark theme variant */\n.tooltip-dark {\n background-color: #1f2937; /* bg-gray-800 */\n color: var(--grey-50);\n}\n\n.tooltip-dark .tooltip-arrow {\n background-color: #1f2937;\n}\n\n/* Light theme variant */\n.tooltip-light {\n background-color: #ffffff;\n color: #374151; /* text-gray-700 */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n}\n\n.tooltip-light .tooltip-arrow {\n background-color: #ffffff;\n}\n\n/* Responsive breakpoints */\n@media (max-width: 640px) {\n .tooltip-base {\n max-width: calc(100vw - 2rem);\n font-size: 0.8125rem; /* Slightly smaller on mobile */\n }\n\n .tooltip-width-400,\n .tooltip-width-sm,\n .tooltip-width-xs {\n max-width: calc(100vw - 2rem);\n }\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n .tooltip-base {\n border: 2px solid #ffffff;\n }\n\n .tooltip-light {\n border: 2px solid #000000;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .tooltip-base,\n .tooltip-enter-active,\n .tooltip-exit-active {\n transition: none;\n }\n}\n";
|
|
100629
|
+
const injectedCss = "/* Source: index.css */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');\n\n#Omniscribe {\n font-family: 'Lato', sans-serif;\n /* define colors */\n --active: #0a3785;\n --background-primary: #e7effd;\n --warning: #ffc107;\n --grey-50: #f9fafb;\n --grey-100: #f6f7f9;\n --grey-200: #e5e7eb;\n --grey-700: #6f7d95;\n --grey-800: #4a5364;\n --grey-900: #111827;\n --active-black: #252a32;\n --placeholder: #a4adbc;\n --line: #e5e7ec;\n --custom-black: #13161a;\n --primary: #105bdb;\n --border: #e5e7ec;\n --white: #fdfdfd;\n --omni: #daf2ff;\n --omni-secondary: rgba(219, 219, 219, 0.75);\n --primary-button: #132caa;\n --primary-text: #36a3cf;\n --primary-900: #061044;\n --blue-100: #dbeafe;\n --blue-200: #bfdbfe;\n --blue-500: #105bdb;\n --blue-600: #2563eb;\n --blue-700: #1d4ed8;\n --report: var(--primary-button);\n --gray: #616161;\n --black: #1b2125;\n --sky-blue: #dbecff;\n --blue: #5886ba;\n --blue-600: #0b1962;\n --background: #f3f3f3bb;\n --foreground: oklch(0.145 0 0);\n --primary: #061044;\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --light-border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.87 0 0);\n --radius: 0.625rem;\n /* TEXT */\n --text-3xs: 8px;\n --text-3xs--line-height: calc(0.5 / 0.25);\n --text-2xs: 10px;\n --text-2xs--line-height: calc(0.75 / 0.5);\n --text-xs: 12px;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 14px;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 16px;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 18px;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 20px;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 22px;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 24px;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 26px;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 28px;\n --text-5xl--line-height: 1;\n --text-6xl: 30px;\n --text-6xl--line-height: 1;\n --text-7xl: 32px;\n --text-7xl--line-height: 1;\n --text-8xl: 34px;\n --text-8xl--line-height: 1;\n --text-9xl: 46px;\n --text-9xl--line-height: 1;\n --font-weight-thin: 100;\n --font-weight-extralight: 200;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n --font-weight-black: 900;\n /* custom colors */\n --color-white: var(--white);\n --color-light-border: var(--light-border);\n --color-omni: var(--omni);\n --color-report: var(--report);\n --color-omni-secondary: var(--omni-secondary);\n --color-primary-text: var(--primary-text);\n --color-primary-900: var(--primary-900);\n --color-blue-500: var(--blue-500);\n --color-gray: var(--gray);\n --color-black: var(--black);\n --color-sky-blue: var(--sky-blue);\n --color-cream: var(--cream);\n --color-pink: var(--pink);\n --color-blue: var(--blue);\n --color-blue-600: var(--blue-600);\n --color-sky-blue-100: var(--sky-blue-100);\n --color-white-2: var(--white-2);\n --color-primary-700: var(--primary-700);\n --color-primary-500: var(--primary-500);\n --color-neutral-800: var(--neutral-800);\n --color-blue-2: var(--blue-2);\n --color-light-blue: var(--light-blue);\n --color-primary-100: var(--primary-100);\n --color-primary-300: var(--primary-300);\n --color-black-2: var(--black-2);\n --color-primary-button: var(--primary-button);\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: #f3f4f6;\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n /* rounded */\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n /* spacing */\n --spacing-layout-w: var(--layout-w);\n --spacing-layout-h: var(--layout-h);\n --spacing: 0.25rem;\n /* size */\n --container-md: 28rem;\n --container-xl: 36rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n\n --tracking-tight: -0.025em;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n\n .no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n a,\n p,\n textarea,\n button,\n span,\n h1,\n h2,\n h3,\n h4,\n h5,\n div {\n font-family: 'Lato', sans-serif;\n }\n /* Hide scrollbar for IE, Edge and Firefox */\n .no-scrollbar {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n .shadow-inner-right {\n box-shadow: inset -9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .shadow-inner-left {\n box-shadow: inset 9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .annotation {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-normal);\n }\n .annotation-semi {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .annotation-bold {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .info {\n font-size: var(--text-2xs);\n font-weight: var(--font-weight-normal);\n }\n .info-semi {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .info-bold {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .text-p {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-normal);\n }\n .text-p-semi {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .text-p-bold {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .omniscribe_shadow-xl {\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n }\n .scrollbar-pretty {\n &::-webkit-scrollbar {\n width: 6px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n background-color: var(--omni-secondary);\n }\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n }\n\n .omniscribe_visible {\n visibility: visible;\n display: flex;\n flex: 1;\n }\n .omniscribe_hidden {\n display: none;\n height: 0;\n }\n\n .omniscribe_animate-spin {\n animation: spin 1s linear infinite;\n }\n}\n\n\n/* Source: modules/audio-recorder/components/audio-visualizer/AudioVisualizer.css */\n.omniscribe_audio-visualizer-container {\n display: flex;\n border-radius: var(--radius-md);\n width: calc(var(--spacing) * 60);\n align-items: center;\n justify-content: center;\n height: 60px;\n background: transparent;\n overflow: hidden;\n}\n\n.omniscribe_audio-visualizer-subcontainer {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_audio-visualizer-item-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding-inline: 1px;\n margin-top: 0.25rem;\n}\n\n.omniscribe_audio-visualizer-item {\n width: 2px;\n height: 2px;\n background-color: rgba(48, 54, 68, 0.85);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 50ms;\n}\n\n.lk-audio-bar-visualizer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background: var(--lk-bg);\n gap: var(--lk-va-bar-gap, 24px);\n}\n.lk-audio-bar-visualizer > .lk-audio-bar {\n transform-origin: 'center';\n height: 100%;\n width: var(--lk-va-bar-width, 12px);\n border-radius: var(--lk-va-bar-border-radius, 32px);\n background-color: var(--lk-va-bar-bg, rgba(136, 136, 136, 0.2));\n transition: background-color 0.25s ease-out;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='speaking'] > .lk-audio-bar,\n.lk-audio-bar-visualizer > .lk-audio-bar.lk-highlighted,\n.lk-audio-bar-visualizer > [data-lk-highlighted='true'] {\n background-color: var(--lk-fg, rgb(136, 136, 136));\n transition: none;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='thinking'] {\n transition: background-color 0.15s ease-out;\n}\n\n\n/* Source: modules/audio-recorder/components/content-container/content-containter.css */\n.omniscribe_audio-content-container {\n background-color: var(--white);\n width: -webkit-fill-available;\n flex: 1 1 0 !important;\n min-height: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n overflow: hidden !important;\n}\n\n.omniscribe_audio-content-messages {\n color: var(--black);\n}\n\n.omniscribe_transcription-footer-container {\n position: sticky;\n display: flex;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-bottom: calc(var(--spacing) * 3);\n}\n\n.omniscribe_audio-content-render {\n color: var(--black);\n font-weight: var(--font-weight-medium);\n padding-block: 0.5rem;\n padding-inline: 0.75rem;\n margin-bottom: 0.25rem;\n}\n\n.omniscribe_patient {\n color: #db10c1;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_doctor {\n color: var(--blue-500);\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_speaker {\n color: #28a745;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_transcription {\n color: var(--black);\n}\n\n.omniscribe_transcription-down-btn-container {\n background-color: white;\n}\n\n.omniscribe_transcription-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n/* Chrome, Safari, Edge (Webkit) */\n.omniscribe_audio-content-container > div::-webkit-scrollbar {\n width: 6px !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-thumb {\n border-radius: 10px !important;\n background-color: var(--omni-secondary) !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-track {\n background-color: transparent !important;\n}\n\n/* Firefox */\n.omniscribe_audio-content-container > div {\n scrollbar-width: thin !important;\n scrollbar-color: var(--omni-secondary) transparent !important;\n}\n\n\n/* Source: modules/audio-recorder/components/recorder-counter/RecorderCounter.css */\n.omniscribe_audio-recorder-timer {\n color: var(--blue-500);\n font-weight: 600; /* SemiBold */\n font-style: normal; /* SemiBold is a weight, not a style */\n font-size: var(--font-size-400); /* design token */\n line-height: var(--line-height-400); /* design token */\n letter-spacing: 0;\n text-align: center;\n}\n\n\n/* Source: modules/audio-recorder/components/report-button/ReportButton.css */\n.omniscribe_report-button-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.omniscribe_report-button-width {\n max-height: 32px;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width {\n max-height: 32px;\n background-color: var(--blue-500) !important;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width:hover {\n background-color: #0c48ad !important; /* darker shade of blue */\n}\n\n\n/* Source: modules/audio-recorder/components/toggle-record/ToggleRecord.css */\n.omniscribe_record-button-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.omniscribe_record-button-classname {\n background-color: transparent;\n border: none;\n padding: 4px;\n}\n\n.omniscribe_record-button {\n background-color: var(--primary-button);\n border-radius: 50%;\n cursor: pointer;\n width: 56px;\n height: 56px;\n align-items: center;\n justify-content: center;\n display: flex;\n transition-duration: 300ms;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_record-button-enabled {\n opacity: 100%;\n pointer-events: auto;\n scale: 110%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-not-enabled {\n opacity: 50%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-disabled {\n opacity: 50%;\n background-color: dimgray;\n pointer-events: none;\n}\n\n.omniscribe_record-enabled {\n width: 50px;\n height: 50px;\n background-color: var(--primary-button);\n animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n position: absolute;\n z-index: -1;\n border-radius: calc(infinity * 1px);\n opacity: 100%;\n}\n\n@keyframes ping {\n 75%,\n 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n\n/* Source: modules/audio-recorder/section/AudioRecorder.css */\n.omniscribe_audio-recorder {\n align-items: center;\n padding-block: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n background-color: var(--white);\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n\n[dir='ltr'] .omniscribe_audio-recorder {\n border-bottom-left-radius: 12px;\n}\n\n[dir='rtl'] .omniscribe_audio-recorder {\n border-bottom-right-radius: 12px;\n border-bottom-left-radius: 0px;\n}\n\n.omniscribe_audio-recorder-container {\n display: flex;\n align-items: center;\n border: solid 1px var(--light-border);\n background-color: var(--white);\n max-height: 42px;\n border-radius: 9999px;\n border-width: 1px;\n justify-content: space-between;\n margin-bottom: 5px;\n flex: 1;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n padding-inline: calc(var(--spacing) * 2);\n}\n\n.omniscribe_audio-recorder-audio-container {\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n\n.omniscribe_audio-recorder-refresh-btn {\n cursor: pointer;\n background-color: #f6f7f9;\n border-radius: 100px;\n transition:\n transform 0.3s ease,\n opacity 0.3s ease,\n background-color 0.3s ease;\n transform: scale(1);\n}\n.omniscribe_audio-recorder-refresh-btn-enabled {\n pointer-events: auto;\n opacity: 1;\n\n &:hover {\n transform: scale(1.15);\n }\n}\n.omniscribe_audio-recorder-refresh-btn-disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n.omniscribe_audio-recorder-audio-content-container {\n border: 1px solid #e5e7ec;\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n border-radius: 8px;\n margin-top: 18px;\n padding-top: 8px;\n padding-inline: calc(var(--spacing) * 4);\n padding-bottom: 8px;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n}\n.omniscribe_audio-recorder-footer {\n border-top: 1px solid #e5e7ec;\n padding-top: 16px;\n margin-top: 12px;\n display: flex;\n width: 100%;\n}\n.omniscribe_audio-recorder-footer-content {\n padding-inline: calc(var(--spacing) * 4);\n width: 100%;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n.omniscribe_audio-recorder-audio-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n padding-block: 8px;\n}\n\n.omniscribe_audio-recorder-audio-star-icons {\n display: flex;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_audio-recorder-audio-feedback {\n color: #4a5364;\n}\n\n.omniscribe_audio-recorder-refresh-icon {\n color: #252a32;\n}\n\n.omniscribe_audio-recorder-star-icon {\n cursor: pointer;\n display: inline-block;\n}\n\n.omniscribe_audio-recorder-audio-star-container {\n position: relative;\n}\n\n\n/* Source: modules/chat/components/MicrophoneButton.css */\n/* Microphone Button Styles */\n.microphone-button {\n transition: all 150ms ease;\n border: none !important;\n background-color: white !important;\n box-shadow: none !important;\n margin-right: 3px;\n}\n\n.microphone-button--recording {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n background-color: red !important;\n}\n\n/* Pulse animation for recording state */\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n\n\n/* Source: modules/chat/components/thread/Thread.css */\n.omniscribe_thread-container {\n flex: 1;\n border-style: none;\n display: flex;\n overflow: hidden;\n background: transparent;\n bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n margin-block: calc(var(--spacing) * 0) /* 0rem = 0px */;\n right: 20px;\n border-bottom-left-radius: 12px;\n width: 100%;\n}\n\n.omniscribe_thread-container-history-cont {\n position: relative;\n display: flex;\n width: 0%;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-container-history-cont-open {\n width: 33%;\n}\n\n.omniscribe_thread-container-history-subcont {\n position: absolute;\n width: 100%;\n height: 100%;\n border-right-width: 1px;\n border-color: var(--color-slate-200)\n /* oklch(92.9% 0.013 255.508) = #e2e8f0 */;\n overflow: hidden;\n z-index: 20;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n.omniscribe_thread-container-history-subcont-open {\n translate: calc(var(--spacing) * 0);\n}\n\n.omniscribe_thread-container-history-subcont-close {\n translate: calc(300px * -1);\n}\n\n.omniscribe_thread-container-history-content {\n position: relative;\n height: 100%;\n width: 100%;\n}\n\n.omniscribe_thread-content-container {\n display: flex;\n flex: 1;\n width: 100%;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-content-btn-container {\n top: 0;\n left: 0;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 3);\n padding: calc(var(--spacing) * 2);\n padding-left: calc(var(--spacing) * 4);\n z-index: 10;\n}\n.omniscribe_absolute {\n position: absolute;\n}\n\n.omniscribe_relative {\n position: relative;\n}\n\n.omniscribe_thread-content-btn {\n background-color: #b2c3d6;\n}\n.omniscribe_thread-content-btn:hover {\n background-color: var(--color-gray-100);\n}\n\n.omniscribe_thread-content-btn-started-container {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: calc(var(--spacing) * 2);\n position: relative;\n}\n\n.omniscribe_thread-content-btn-started-subcontainer {\n position: absolute;\n left: 0;\n z-index: 10;\n top: calc(var(--spacing) * 2);\n}\n\n.omniscribe_thread-stick-to-bottom {\n font-size: 14px;\n}\n.omniscribe_thread-stick-to-bottom-content {\n position: absolute;\n inset: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n display: grid;\n grid-template-rows: 1fr auto;\n}\n\n.omniscribe_thread-stick-to-bottom-content-class {\n padding-bottom: calc(var(--spacing) * 13);\n display: flex;\n flex-direction: column;\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n min-width: 0;\n padding-top: 12px;\n position: relative;\n}\n\n.omniscribe_thread-footer-container {\n position: sticky;\n display: flex;\n background-color: white;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-inline: calc(var(--spacing) * 4);\n padding-top: calc(var(--spacing) * 1);\n border-bottom: 1px solid #e5e7ec;\n border-bottom-left-radius: 0.5rem;\n}\n\n.omniscribe_thread-footer-scroll-to-bottom {\n position: fixed;\n bottom: 17%;\n}\n.omniscribe_thread-footer-form-container {\n background-color: white;\n border-radius: 1rem;\n border: solid 1px var(--border);\n box-shadow: 0px 4px 4px 0px #00000040;\n margin-inline: auto;\n margin-bottom: calc(0.25rem /* 4px */ * 2);\n width: 100%;\n max-width: 48rem;\n position: relative;\n z-index: 10;\n}\n\n.omniscribe_thread-footer-form {\n display: grid;\n grid-template-rows: 1fr auto;\n max-width: var(--container-3xl) /* 48rem = 768px */;\n margin-inline: auto;\n}\n\n.omniscribe_thread-footer-textarea {\n resize: none;\n width: 100%;\n min-height: 20px;\n max-height: 56px;\n height: 20px;\n padding: 0 !important;\n overflow-y: auto;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n.omniscribe_thread-footer-form-content {\n position: relative;\n display: flex;\n align-items: center;\n right: 0;\n bottom: 0;\n width: 100%;\n padding-block: 6px;\n}\n.omniscribe_thread-footer-form-btn {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n}\n.omniscribe_thread-footer-form-left-btns {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.omniscribe_thread-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n.omniscribe_thread-footer-btns-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-right: 8px;\n}\n\n.omniscribe_thread-footer-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n margin-bottom: 8px;\n}\n\n.omniscribe_thread-no-sources {\n width: 10px;\n}\n\n/* Attach file button */\n.omniscribe_thread-attach-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 8px;\n background-color: transparent;\n color: var(--color-gray-500, #6b7280);\n cursor: pointer;\n transition:\n background-color 0.2s ease,\n color 0.2s ease;\n padding: 0;\n margin-left: 8px;\n margin-right: 8px;\n flex-shrink: 0;\n}\n\n.omniscribe_thread-attach-btn:hover {\n background-color: var(--color-gray-100, #f3f4f6);\n color: var(--color-gray-700, #374151);\n}\n\n.omniscribe_thread-attach-btn:disabled {\n background-color: transparent;\n color: var(--color-gray-300, #d1d5db);\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.omniscribe_thread-attach-btn:disabled:hover {\n background-color: transparent;\n color: var(--color-gray-300, #d1d5db);\n}\n\n\n/* Source: modules/chat/components/thread/components/FileLimitBanner.css */\n/* File Limit Banner */\n.omniscribe_file-limit-banner {\n position: fixed;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n background-color: #dc2626;\n color: white;\n border-radius: 12px;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);\n animation:\n slideInFromTop 0.3s ease-out,\n slideOutToTop 0.3s ease-in 4.7s;\n animation-fill-mode: forwards;\n width: auto;\n max-width: 90vw;\n padding: 0;\n margin: 0 auto;\n}\n\n.omniscribe_file-limit-banner-content {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 20px;\n gap: 12px;\n white-space: nowrap;\n}\n\n.omniscribe_file-limit-banner-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: white;\n}\n\n.omniscribe_file-limit-banner-message {\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n text-align: center;\n}\n\n.omniscribe_file-limit-banner-close {\n background: none;\n border: none;\n color: white;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.omniscribe_file-limit-banner-close:hover {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.omniscribe_file-limit-banner-close svg {\n width: 16px;\n height: 16px;\n}\n\n/* Animations */\n@keyframes slideInFromTop {\n 0% {\n opacity: 0;\n transform: translateX(-50%) translateY(-20px);\n }\n 100% {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n@keyframes slideOutToTop {\n 0% {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateX(-50%) translateY(-20px);\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/FilePreview.css */\n/* File Preview Container */\n.omniscribe_file-preview-container {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n gap: 8px;\n width: 580px;\n padding: 12px 16px;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Force scroll in any context */\n position: relative;\n z-index: 1;\n /* Ensure scroll works even with parent containers that have overflow hidden */\n min-height: 104px; /* minimum height for content */\n}\n\n.omniscribe_file-preview-container-history-open {\n width: 372px;\n}\n\n/* Custom scrollbar */\n.omniscribe_file-preview-container::-webkit-scrollbar {\n height: 6px;\n}\n\n.omniscribe_file-preview-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.omniscribe_file-preview-container::-webkit-scrollbar-thumb {\n background-color: #d1d5db;\n border-radius: 3px;\n}\n\n.omniscribe_file-preview-container::-webkit-scrollbar-thumb:hover {\n background-color: #9ca3af;\n}\n\n/* Individual image thumbnail */\n.omniscribe_file-preview-image {\n position: relative;\n width: 80px;\n height: 80px;\n border-radius: 12px;\n background-color: #e8edf5;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.omniscribe_file-preview-image-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 12px;\n}\n\n.omniscribe_file-preview-image-placeholder {\n width: 100%;\n height: 100%;\n background-color: #e8edf5;\n border-radius: 12px;\n}\n\n/* Document card */\n.omniscribe_file-preview-document {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n background-color: white;\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 16px;\n min-width: 220px;\n max-width: 280px;\n max-height: 56px;\n position: relative;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n flex-shrink: 0;\n}\n\n.omniscribe_file-preview-document-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n background-color: #dc2626;\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.omniscribe_file-preview-document-icon svg {\n color: white;\n}\n\n.omniscribe_file-preview-document-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n flex: 1;\n padding-right: 24px;\n}\n\n.omniscribe_file-preview-document-title {\n font-size: 14px;\n font-weight: 500;\n color: var(--color-gray-900, #111827);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 200px;\n}\n\n.omniscribe_file-preview-document-type {\n font-size: 12px;\n color: #dc2626;\n font-weight: 500;\n}\n\n/* Remove button */\n.omniscribe_file-preview-remove-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n border-radius: 50%;\n background-color: #2563eb;\n color: white;\n cursor: pointer;\n padding: 0;\n transition: background-color 0.2s ease;\n z-index: 1;\n}\n\n.omniscribe_file-preview-remove-btn:hover {\n background-color: #1d4ed8;\n}\n\n.omniscribe_file-preview-remove-btn--image {\n top: 6px;\n right: 6px;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenu.css */\n.omniscribe_link-menu-container {\n width: 18rem;\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n border: 1px solid var(--grey-200);\n background-color: #ffffff;\n}\n\n.omniscribe_link-menu-navigation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: var(--grey-50);\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n\n.omniscribe_nav-button {\n height: 1.5rem;\n width: 1.5rem;\n padding: 0.125rem;\n background-color: transparent;\n border: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n color: #6b7280;\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_nav-button:hover {\n background-color: var(--color-gray-100);\n color: #374151;\n}\n\n.omniscribe_nav-button:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px #3b82f6;\n}\n\n.omniscribe_nav-button:active {\n background-color: var(--grey-200);\n}\n\n.omniscribe_nav-icon {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.omniscribe_page-indicator {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: #4b5563;\n}\n\n.omniscribe_link-menu-content {\n padding: 0.375rem;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenuCard.css */\n.omniscribe_card-link {\n display: block;\n border-radius: 0.5rem;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n background-color: #ffffff;\n border: 1px solid var(--grey-200);\n text-decoration: none;\n}\n\n.omniscribe_card {\n border: 0;\n box-shadow: none;\n border-radius: 0.5rem;\n margin: 0;\n padding: 0;\n}\n\n.omniscribe_card:hover {\n background-color: var(--grey-50);\n}\n\n.omniscribe_card-header {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: rgba(249, 250, 251, 0.5);\n}\n\n.omniscribe_favicon {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-icon {\n width: 1rem;\n height: 1rem;\n border-radius: 0.125rem;\n background-color: #d1d5db;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-text {\n font-size: 8px;\n font-weight: 700;\n color: var(--grey-600);\n text-transform: uppercase;\n}\n\n.omniscribe_card-title {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: var(--grey-800);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n min-width: 0;\n margin: 0;\n}\n\n.omniscribe_card-content {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.omniscribe_card-content > * + * {\n margin-top: 0.25rem;\n}\n\n.omniscribe_link-text {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600;\n color: var(--color-activeblack, #000000);\n line-height: 1.375;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.omniscribe_snippet-text {\n font-size: 0.75rem;\n line-height: 1rem;\n color: #4b5563;\n line-height: 1.625;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupPill.css */\n.omniscribe_pill-container {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n\n.omniscribe_pill-button {\n display: inline-flex;\n align-items: center;\n border-radius: 9999px;\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n background-color: var(--blue-100);\n color: var(--blue-700);\n border: 1px solid var(--blue-200);\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.omniscribe_pill-button:hover {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-button:focus {\n background-color: var(--blue-200);\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow:\n 0 0 0 2px #3b82f6,\n 0 0 0 4px rgba(59, 130, 246, 0.1);\n}\n\n.omniscribe_pill-button--active {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-domain {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (min-width: 640px) {\n .omniscribe_pill-domain {\n max-width: 200px;\n }\n}\n\n.omniscribe_pill-counter {\n margin-left: 0.375rem;\n background-color: var(--blue-200);\n color: #1e40af;\n border-radius: 9999px;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n font-size: 10px;\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_menu-portal {\n position: absolute;\n z-index: 100;\n}\n\n\n/* Source: modules/chat/components/thread/components/PredefinedQuestions.css */\n.omniscribe_predefined-questions-container {\n margin-top: calc(var(--spacing) * 2) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n display: flex;\n flex-direction: column;\n}\n.omniscribe_predefined-questions-span {\n color: var(--black);\n}\n\n.omniscribe_predefined-title {\n margin-bottom: 8px;\n}\n\n.omniscribe_predefined-questions-msg-container {\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_predefined-questions-content {\n background-color: #ecf9ff !important;\n text-align: left;\n padding-top: 4px;\n padding-right: 16px;\n padding-bottom: 4px;\n padding-left: 16px;\n border-radius: 4px;\n width: fit-content;\n height: fit-content;\n}\n\n.omniscribe_predefined-questions-btn-rounded {\n border-radius: 8px;\n}\n\n\n/* Source: modules/chat/components/thread/components/SummaryLoading.css */\n/* Auto-summary loading styles */\n.omniscribe_auto-summary-container {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n flex-direction: column;\n padding: 20px;\n z-index: 1000;\n pointer-events: none;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_auto-summary-text {\n font-size: 18px;\n text-align: center;\n margin-bottom: 20px;\n font-weight: 500;\n color: #2b303a;\n}\n\n.omniscribe_auto-summary-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Loading dots animation */\n.omniscribe_loading-dots {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.omniscribe_loading-dots::after {\n content: '';\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #666;\n animation: omniscribe-dot-flashing 1.4s infinite linear;\n}\n\n.omniscribe_loading-dots::before {\n content: '';\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #666;\n animation: omniscribe-dot-flashing 1.4s infinite linear;\n animation-delay: -0.16s;\n margin-right: 4px;\n}\n\n.omniscribe_loading-dots span {\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #666;\n animation: omniscribe-dot-flashing 1.4s infinite linear;\n animation-delay: -0.32s;\n margin-right: 4px;\n}\n\n@keyframes omniscribe-dot-flashing {\n 0%,\n 80%,\n 100% {\n opacity: 0;\n }\n 40% {\n opacity: 1;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/history/ThreadHistory.css */\n.omniscribe_thread-list-container {\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-list-content {\n padding-bottom: calc(var(--spacing) * 16);\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.omniscribe_thread-list-item {\n width: 100%;\n padding-inline: 0;\n}\n\n.omniscribe_thread-list-btn {\n text-align: left;\n align-items: center !important;\n justify-content: flex-start !important;\n width: calc(100% - var(--spacing) * 2);\n border-radius: 4px !important;\n margin-bottom: 4px;\n font-weight: var(--font-weight-normal);\n padding-inline: calc(var(--spacing) * 1) !important;\n}\n\n.omniscribe_thread-list-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--Text-Active, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-loading {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2);\n align-items: flex-start;\n justify-content: flex-start;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-history-loading-skeleton {\n width: 100%;\n height: calc(var(--spacing) * 10);\n}\n\n.omniscribe_thread-history-container {\n display: flex;\n flex-direction: column;\n border-right: 1px solid #e5e7ec;\n align-items: flex-start;\n justify-content: flex-start;\n /* gap: calc(var(--spacing) * 6); */\n height: 100%;\n flex-shrink: 0;\n}\n\n.omniscribe_thread-history-button-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n /* space between left group and back button */\n width: 92%;\n /* padding-top: calc(var(--spacing) * 2); */\n background: var(--Greyscale-100, #f6f7f9);\n /* padding-inline: calc(var(--spacing) * 2); */\n padding: 8px;\n}\n\n/* Flex container for the left group */\n.omniscribe_thread-history-left-group {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n /* space between icon and text */\n}\n\n.omniscribe_thread-history-left-text {\n color: var(--Greyscale-900, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n padding-block: calc(var(--spacing) * 1);\n background-color: color-mix(in oklab, var(--blue) 40%, transparent);\n width: stretch;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill-available;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_thread-history-no-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n width: 100%;\n}\n\n.omniscribe_thread-history-chat-started-btn {\n border: none;\n background: transparent;\n padding: 0px;\n display: flex;\n flex-direction: row;\n gap: calc(var(--spacing) * 2);\n align-items: center;\n cursor: pointer;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-history-chat-started-btn-text {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n font-weight: var(--font-weight-semibold);\n letter-spacing: var(--tracking-tight);\n}\n\n.omniscribe_thread-history-title {\n color: var(--Button-Primary-Active, #105bdb);\n font-family: var(--Font-Family-Omniscribe, Lato);\n font-size: var(--Font-Size-font-size-100, 12px) !important;\n font-style: normal;\n line-height: var(--Font-Line-Height-line-height-100, 14.4px) !important;\n /* 120% */\n letter-spacing: var(\n --Font-Letter-Spacing-letter-spacing-100,\n 0.05px\n ) !important;\n cursor: pointer;\n padding-inline: calc(var(--spacing) * 2) !important;\n}\n\n.omniscribe_thread-history-btn {\n border-radius: var(--Radius-radius-small, 4px) !important;\n background-color: var(--Greyscale-300, #e5e7ec) !important;\n cursor: pointer;\n\n &:hover {\n background-color: var(--Greyscale-300, #e5e7ec);\n }\n}\n\n.omniscribe_thread-tooltip {\n padding: calc(0.25rem /* 4px */ * 4);\n}\n\n\n/* Source: modules/chat/components/thread/components/markdown-text.css */\n.omniscribe_markdown-code-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 4) /* 1rem = 16px */;\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--color-zinc-900)\n /* oklch(21% 0.006 285.885) = #18181b */;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n color: var(--white);\n}\n\n.omniscribe_markdown-code-span {\n text-transform: lowercase;\n & > span {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n }\n}\n\n.omniscribe_markdown-h1 {\n margin-bottom: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-4xl) /* 2.25rem = 36px */;\n line-height: var(--text-4xl--line-height) /* calc(2.5 / 2.25) ≈ 1.1111 */;\n font-weight: var(--font-weight-extrabold) /* 800 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h2 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-3xl) /* 1.875rem = 30px */;\n line-height: var(--text-3xl--line-height) /* calc(2.25 / 1.875) ≈ 1.2 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h3 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-2xl);\n line-height: var(--text-2xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h4 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-xl);\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h5 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-size: var(--text-lg);\n line-height: var(--text-lg--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h6 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-p {\n margin-block: calc(var(--spacing) * 2.5);\n line-height: calc(var(--spacing) * 5);\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-a {\n color: var(--primary);\n font-weight: var(--font-weight-medium) /* 500 */;\n text-decoration-line: underline;\n text-underline-offset: 4px;\n overflow-wrap: break-word;\n}\n\n.omniscribe_markdown-blockquote {\n border-left-width: 2px;\n padding-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n font-style: italic;\n}\n\n.omniscribe_markdown-ul {\n list-style-type: disc;\n padding-inline-start: 20px;\n word-break: break-word;\n & > li {\n margin-top: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-ol {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n margin-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n list-style-type: decimal;\n & > li {\n margin-top: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-hr {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n border-bottom-width: 1px;\n}\n.omniscribe_markdown-table {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n width: 100%;\n border-collapse: separate;\n border-spacing: calc(var(--spacing) * 0) /* 0rem = 0px */;\n overflow-y: auto;\n}\n.omniscribe_markdown-th {\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n font-weight: var(--font-weight-bold) /* 700 */;\n &:first-child {\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child {\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-td {\n border-bottom-width: 1px;\n border-left-width: 1px;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n &:last-child {\n border-right-width: 1px;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-tr {\n margin: calc(var(--spacing) * 0) /* 0rem = 0px */;\n &:first-child {\n border-top-width: 1px;\n }\n &:last-child > td:first-child {\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child > td:last-child {\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n}\n\n.omniscribe_markdown-sup {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n & > a {\n text-decoration-line: none;\n }\n}\n\n.omniscribe_markdown-pre {\n overflow-x: auto;\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--black);\n padding: calc(var(--spacing) * 4) /* 1rem = 16px */;\n color: var(--white);\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_markdown-code {\n border-radius: 0.25rem /* 4px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n}\n\n.omniscribe_markdown-link {\n color: var(--color-primary); /* text-primary */\n font-weight: 500; /* font-medium */\n text-decoration: underline; /* underline */\n text-underline-offset: 4px; /* underline-offset-4 */\n word-wrap: break-word; /* break-words */\n}\n\n.omniscribe_markdown-link:hover {\n color: var(--color-primary-dark); /* hover:text-primary-dark */\n}\n\n.omniscribe_assistant-markdown-container strong,\n.omniscribe_assistant-markdown-container b {\n font-weight: bold !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessage.css */\n.omniscribe_assistant-message-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n width: 100%;\n}\n\n.omniscribe_assistant-message-calls-container {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n}\n\n.omniscribe_assistant-markdown-container {\n padding-block: calc(var(--spacing) * 0.5) /* 0.25rem = 4px */;\n}\n\n.omniscribe_assistant-commands-container {\n display: flex;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n align-items: center;\n margin-right: auto;\n}\n.omniscribe_assistant-message-container:hover,\n.omniscribe_assistant-message-container:focus {\n .omniscribe_assistant-commands-container {\n opacity: 100%;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessageLoading.css */\n.omniscribe_assistant-message-loading-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n margin-top: 3px;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_assistant-message-loading {\n display: flex;\n align-items: center;\n border-radius: var(--radius-2xl) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 1);\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n height: calc(var(--spacing) * 8) /* 2rem = 32px */;\n}\n.omniscribe_assistant-message-loading-dot {\n width: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n height: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n border-radius: calc(infinity * 1px);\n animation: loadingFade 2s infinite;\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(1) {\n animation-delay: 0.2s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(2) {\n animation-delay: 0.4s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n@keyframes loadingFade {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 0.8;\n }\n 100% {\n opacity: 0;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/BranchSwitcher.css */\n.omniscribe_brand-switcher-container {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_brand-switcher-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_brand-switcher-btn {\n width: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n height: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n padding: calc(0.25rem /* 4px */ * 1) /* 0.25rem = 4px */;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/CommandBar.css */\n.omniscribe_command-bar-container {\n display: flex;\n align-items: center;\n padding-right: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n transition: opacity 0.2s ease-in-out;\n}\n\n.omniscribe_command-bar-container.omniscribe_command-bar-hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.thumbs.active {\n color: var(--blue-500);\n}\n\n.omniscribe_feedback-button-container {\n position: relative;\n display: inline-block;\n}\n\n.omniscribe_command-bar-container-icon-color,\n.thumbs {\n color: #4a5364;\n}\n\n.omniscribe_command-bar-container svg {\n width: 12px !important;\n height: 12px !important;\n}\n\n.omniscribe_command-bar-container .omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 0.5) !important;\n}\n\n.omniscribe_command-bar-container .tooltip-base {\n padding: 0.25rem 0.5rem;\n}\n\n.omniscribe_command-bar-container .tooltip-trigger {\n padding: 1px;\n margin: 1px;\n}\n\n.omniscribe_command-bar-container .omniscribe_button-size-icon {\n height: calc(var(--spacing) * 3);\n width: calc(var(--spacing) * 3);\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/HumanMessage.css */\n.omniscribe_human-message-container {\n display: flex;\n align-items: center;\n margin-left: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n.omniscribe_human-message-container-editing {\n width: 100%;\n max-width: var(--container-xl) /* 36rem = 576px */;\n}\n.omniscribe_human-message-container-no-editing {\n max-width: 100%;\n}\n\n.omniscribe_human-message-command-container {\n display: flex;\n gap: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n align-items: center;\n margin-left: auto;\n}\n.omniscribe_human-message-command-container-editing {\n opacity: 100%;\n}\n\n.omniscribe_human-message-container:focus,\n.omniscribe_human-message-container:hover {\n .omniscribe_human-message-command-container {\n opacity: 100%;\n }\n}\n\n.omniscribe_human-message-subcontainer {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n.omniscribe_human-message-subcontainer-editing {\n width: 100%;\n}\n\n.omniscribe_human-message-content {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 8px;\n}\n\n.omniscribe_human-message-content-text {\n text-align: right;\n padding-top: 4px;\n padding-bottom: 4px;\n padding-inline: calc(var(--spacing) * 2);\n border-radius: var(--radius-3xl);\n background-color: #f6f7f9;\n font-weight: 500;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n margin: 0;\n}\n.omniscribe_human-message-textarea {\n min-height: 2.5rem !important; /* 40px */\n max-height: 12rem !important; /* 192px - Allow more vertical space */\n min-width: 200px !important; /* Minimum width for usability */\n resize: both; /* Allow controlled resizing in both directions */\n width: 100%;\n overflow: auto; /* Enable scroll when content exceeds max dimensions */\n\n &:focus-visible {\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n}\n\n.omniscribe_human-message-textarea-chat-history-close {\n max-width: 100% !important;\n}\n\n.omniscribe_human-message-textarea-chat-history-open {\n max-width: 385px !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/MessageImages.css */\n/* Message Files Container (for both images and documents) */\n.omniscribe_message-files {\n margin-top: 8px;\n margin-bottom: 4px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Message Images Container */\n.omniscribe_message-images {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_message-images-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n max-width: 100%;\n}\n\n/* Individual Image Container */\n.omniscribe_message-image-container {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid #e0e0e0;\n cursor: pointer;\n transition:\n transform 0.2s ease,\n box-shadow 0.2s ease;\n}\n\n.omniscribe_message-image-container:hover {\n transform: scale(1.02);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.omniscribe_message-image-container-single {\n max-width: 200px;\n max-height: 200px;\n}\n\n.omniscribe_message-image-container-multiple {\n width: 80px;\n height: 80px;\n flex-shrink: 0;\n}\n\n/* Image Element */\n.omniscribe_message-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.omniscribe_message-image-container-single .omniscribe_message-image {\n max-width: 200px;\n max-height: 200px;\n width: auto;\n height: auto;\n}\n\n/* Loading State */\n.omniscribe_message-image-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 60px;\n background-color: #f8f9fa;\n color: #6c757d;\n font-size: 12px;\n border-radius: 8px;\n}\n\n/* Error State */\n.omniscribe_message-image-error {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 60px;\n background-color: #f8f9fa;\n color: #6c757d;\n font-size: 12px;\n border-radius: 8px;\n text-align: center;\n cursor: default;\n}\n\n.omniscribe_message-image-error span {\n font-size: 20px;\n margin-bottom: 4px;\n}\n\n.omniscribe_message-image-error small {\n font-size: 10px;\n}\n\n/* Image Counter for Multiple Images */\n.omniscribe_message-image-counter {\n position: absolute;\n top: 4px;\n right: 4px;\n background-color: rgba(0, 0, 0, 0.7);\n color: white;\n font-size: 10px;\n font-weight: bold;\n padding: 2px 6px;\n border-radius: 12px;\n min-width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Images Count */\n.omniscribe_message-images-count {\n margin-top: 4px;\n font-size: 11px;\n color: #6c757d;\n font-style: italic;\n}\n\n/* Modal for Full-Size Images */\n.omniscribe_message-image-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 9999;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_message-image-modal-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n}\n\n.omniscribe_message-image-modal-content {\n position: relative;\n max-width: 90vw;\n max-height: 90vh;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_message-image-modal-img {\n max-width: 100%;\n max-height: 100%;\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n}\n\n.omniscribe_message-image-modal-close {\n position: absolute;\n top: -10px;\n right: -10px;\n background-color: #fff;\n border: none;\n border-radius: 50%;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n font-size: 18px;\n font-weight: bold;\n color: #333;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_message-image-modal-close:hover {\n background-color: #f5f5f5;\n}\n\n/* Message Documents Container */\n.omniscribe_message-documents {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.omniscribe_message-document {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border-radius: 8px;\n background-color: #f8f9fa;\n border: 1px solid #e0e0e0;\n transition: background-color 0.2s ease;\n max-width: 280px;\n}\n\n.omniscribe_message-document:hover {\n background-color: #f0f0f0;\n}\n\n.omniscribe_message-document-icon {\n font-size: 24px;\n flex-shrink: 0;\n}\n\n.omniscribe_message-document-info {\n flex: 1;\n min-width: 0;\n}\n\n.omniscribe_message-document-name {\n font-weight: 500;\n font-size: 13px;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.omniscribe_message-document-size {\n font-size: 11px;\n color: #6c757d;\n}\n\n.omniscribe_message-documents-count {\n margin-top: 4px;\n font-size: 11px;\n color: #6c757d;\n font-style: italic;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ReasoningSection.css */\n.omniscribe_assistant-reasoning-section {\n margin-top: 12px;\n border-left: 3px solid #e5e7eb;\n padding-left: 12px;\n background-color: #f9fafb;\n border-radius: 4px;\n padding: 8px 12px;\n}\n\n.omniscribe_assistant-reasoning-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #6b7280;\n width: 100%;\n text-align: left;\n}\n\n.omniscribe_assistant-reasoning-arrow {\n display: inline-block;\n transition: transform 0.2s ease-in-out;\n transform: rotate(0deg);\n}\n\n.omniscribe_assistant-reasoning-arrow--expanded {\n transform: rotate(90deg);\n}\n\n.omniscribe_assistant-reasoning-summary {\n margin-top: 8px;\n font-size: 14px;\n color: #374151;\n line-height: 1.5;\n}\n\n.omniscribe_assistant-reasoning-summary-item {\n margin: 8px 0;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolCalls.css */\n.omniscribe_tool-calls-container {\n margin-block-start: calc(calc(var(--spacing) * 4) * var(0));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(0)));\n width: 100%;\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_tool-calls-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n gap: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n}\n.omniscribe_tool-calls-h3 {\n font-weight: var(--font-weight-bold);\n color: var(--color-gray-900) /* oklch(21% 0.034 264.665) = #101828 */;\n word-break: break-all;\n font-size: 14px;\n margin: 0;\n}\n\n.omniscribe_tool-calls-item-args {\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.omniscribe_tool-calls-item-args-text {\n word-break: break-all;\n margin-right: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n padding-block: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_tool-calls-item-args-code {\n background-color: var(--color-gray-50);\n border-radius: 0.25rem /* 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n word-break: break-all;\n}\n\n.omniscribe_tool-calls-pre {\n font-size: 12px;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolResults.css */\n/* ToolResult Component Styles */\n\n.omniscribe_tool-result {\n margin-top: 2px;\n border: 1px solid var(--grey-200);\n border-radius: 0.5rem !important; /* !rounded-lg */\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n overflow: hidden; /* overflow-hidden */\n width: 100%;\n}\n\n.omniscribe_tool-result-header {\n background-color: var(--grey-50); /* bg-gray-50 */\n padding-left: 1rem; /* px-4 */\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex; /* flex */\n align-items: center; /* items-center */\n justify-content: space-between; /* justify-between */\n}\n\n.omniscribe_tool-result-header--expanded {\n border-bottom: 1px solid var(--grey-200);\n}\n\n.omniscribe_tool-result-header-content {\n display: flex; /* flex */\n align-items: center; /* items-center */\n gap: 0.5rem; /* gap-2 */\n min-width: 0; /* min-w-0 */\n}\n\n.omniscribe_tool-result-title {\n font-weight: 500; /* font-medium */\n color: var(--grey-900);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; /* truncate */\n margin: 0;\n font-size: 14px;\n}\n\n.omniscribe_expand-button {\n padding: 0.25rem; /* p-1 */\n flex-shrink: 0; /* flex-shrink-0 */\n}\n\n.omniscribe_expand-icon {\n width: 1.25rem; /* w-5 */\n height: 1.25rem; /* h-5 */\n}\n\n.omniscribe_tool-result-content {\n padding: 1rem; /* p-4 */\n background-color: #ffffff; /* bg-white */\n max-height: 24rem; /* max-h-96 */\n overflow-y: auto; /* overflow-y-auto */\n}\n\n.omniscribe_tool-result-content > * + * {\n margin-top: 0.5rem; /* space-y-2 */\n}\n\n/* Scrollbar styles for webkit browsers */\n.omniscribe_tool-result-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-track {\n background: #f1f5f9;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n.omniscribe_result-card {\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n border: 1px solid var(--color-gray-100);\n padding-top: 0.5rem !important; /* !py-2 */\n padding-bottom: 0.5rem !important;\n gap: 0 !important; /* !gap-0 */\n}\n\n.omniscribe_result-card-header {\n padding-top: 0.5rem !important; /* !pt-2 */\n padding-left: 0.5rem !important; /* !px-2 */\n padding-right: 0.5rem !important;\n padding-bottom: 0 !important; /* !pb-0 */\n}\n\n.omniscribe_result-card-title {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n font-weight: 600; /* font-semibold */\n}\n\n.omniscribe_result-link {\n color: var(--blue-600);\n text-decoration: none;\n transition-property: color, text-decoration;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_result-link:hover {\n text-decoration: underline; /* hover:underline */\n color: #1e40af; /* hover:text-blue-800 */\n}\n\n.omniscribe_result-card-content {\n padding: 0.5rem !important; /* !p-2 */\n padding-top: 0 !important; /* !pt-0 */\n}\n\n.omniscribe_result-description {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #374151; /* text-gray-700 */\n line-height: 1.625; /* leading-relaxed */\n word-break: break-all; /* break-all */\n display: -webkit-box;\n -webkit-line-clamp: 2; /* line-clamp-2 */\n -webkit-box-orient: vertical;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms; /* transition-all duration-150 ease-in-out */\n transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1); /* ease-in-out */\n}\n\n.omniscribe_result-description:hover {\n -webkit-line-clamp: unset; /* hover:line-clamp-none */\n display: block;\n}\n\n.omniscribe_result-source {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #6b7280; /* text-gray-500 */\n margin-top: 0.25rem; /* mt-1 */\n padding-top: 0.25rem; /* pt-1 */\n border-top: 1px solid var(--color-gray-100);\n}\n\n.omniscribe_string-result {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n white-space: pre-wrap; /* whitespace-pre-wrap */\n background-color: var(--grey-50);\n padding: 0.75rem; /* p-3 */\n border-radius: 0.375rem; /* rounded-md */\n border: 1px solid var(--grey-200);\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo,\n monospace; /* pre tag font */\n}\n\n\n/* Source: modules/chat/components/thread/components/tooltip-icon-button.css */\n.omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 1);\n /* width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6); */\n}\n\n.omniscribe_tooltip-icon-button-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: none;\n}\n\n\n/* Source: modules/configuration/components/chat/Chat.css */\n.omniscribe_chat-config {\n display: flex;\n flex-direction: column;\n gap: 24px;\n min-height: 0; /* Permite que los hijos controlen su altura */\n flex: 1; /* Toma el espacio disponible */\n}\n\n/* Espaciado específico para el separador en el contexto de chat */\n.omniscribe_chat-config .omniscribe_separator {\n margin: 8px 0; /* Margen vertical consistente */\n}\n\n.omniscribe_chat-prompt-container {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-right: 16px;\n}\n\n.omniscribe_chat-prompt-textarea {\n width: 100%;\n height: 74px;\n padding: 8px;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n line-height: 1.5;\n color: #374151;\n background-color: white;\n resize: none;\n outline: none;\n transition: border-color 0.15s ease;\n}\n\n.omniscribe_chat-prompt-textarea::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.omniscribe_chat-character-count {\n font-size: 12px;\n color: #6b7280;\n align-self: flex-start;\n}\n\n\n/* Source: modules/configuration/components/chat/PromptCustomization.css */\n.omniscribe_chat-prompt-title {\n font-size: 14px;\n font-weight: 400;\n color: #252a32;\n line-height: 14.4px;\n margin: 0 0 12px 0;\n}\n\n.omniscribe_chat-prompt-container {\n position: relative;\n}\n\n.omniscribe_chat-prompt-textarea {\n width: 100%;\n min-height: 80px;\n padding: 12px;\n border: 1px solid var(--border-color, #ddd);\n border-radius: 8px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.4;\n resize: none;\n transition: border-color 0.2s ease;\n}\n\n.omniscribe_chat-prompt-textarea:focus {\n outline: none;\n border-color: var(--primary-color, #007bff);\n box-shadow: 0 0 0 2px var(--primary-color-alpha, rgba(0, 123, 255, 0.1));\n}\n\n.omniscribe_chat-character-count {\n font-size: 12px;\n color: var(--text-secondary, #666);\n margin-top: 6px;\n text-align: right;\n}\n\n\n/* Source: modules/configuration/components/chat/SourceItem.css */\n.omniscribe_source-item {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n\n.omniscribe_source-label {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n}\n\n.omniscribe_source-checkbox {\n width: 16px;\n height: 16px;\n accent-color: #105bdb;\n cursor: pointer;\n}\n\n.omniscribe_source-name {\n flex: 1;\n font-size: 12px;\n color: #374151;\n}\n/* Removed link styles for source name - now handled by icon button only */\n.omniscribe_source-external-icon {\n width: 12px;\n height: 12px;\n stroke: #105bdb;\n cursor: pointer;\n transition: stroke 0.2s;\n flex-shrink: 0;\n}\n\n.omniscribe_source-external-icon:hover {\n stroke: #0d47a1;\n}\n\n.omniscribe_source-checkbox:checked + .omniscribe_source-name {\n font-weight: 500;\n color: #1f2937;\n}\n\n\n/* Source: modules/configuration/components/chat/SourceSelector.css */\n.omniscribe_source-selector {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 24px;\n min-height: 0;\n flex: 1;\n max-width: 100%;\n box-sizing: border-box;\n}\n\n.omniscribe_source-selector-title {\n font-size: 16px;\n font-weight: 500;\n color: #252a32;\n margin: 0;\n}\n\n.omniscribe_source-selector-description {\n font-size: 14px;\n color: #6b7280;\n line-height: 1.5;\n margin: 0;\n}\n\n.omniscribe_source-list {\n width: 100%;\n max-width: 100%;\n min-height: 120px;\n max-height: 300px;\n border-radius: 12px;\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n background: #ffffff;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n overflow-y: auto;\n flex: 1;\n box-sizing: border-box;\n}\n\n.omniscribe_source-list--compact {\n max-height: 120px;\n}\n\n\n/* Source: modules/configuration/section/Configuration.css */\n.omniscribe_config-content {\n width: 650px;\n max-height: 590px;\n opacity: 1;\n background-color: #ffffff;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.omniscribe_config-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n flex: 1;\n}\n\n.omniscribe_config-item {\n width: 100%;\n height: 75px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n opacity: 1;\n padding: 10px 22px 10px 16px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.omniscribe_config-item:hover {\n background-color: #f9fafb;\n}\n\n.omniscribe_config-item:focus {\n outline: none;\n background-color: #f3f4f6;\n}\n\n.omniscribe_config-item:last-child {\n border-bottom: none;\n}\n\n.omniscribe_config-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n}\n\n.omniscribe_config-icon {\n color: #4a5364;\n}\n\n.omniscribe_config-item-content {\n flex: 1;\n margin-left: 16px;\n margin-right: 16px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_config-item-title {\n margin: 0;\n font-weight: 700;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #252a32;\n}\n\n.omniscribe_config-item-description {\n margin: 0;\n font-weight: 500;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #4a5364;\n}\n\n.omniscribe_config-item-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n color: #9ca3af;\n flex-shrink: 0;\n}\n\n/* Sub-screen styles */\n.omniscribe_config-subscreen-header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 16px 12px;\n color: #13161a;\n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-back-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_config-subscreen-title {\n margin: 0;\n font-size: 14px;\n font-weight: 700;\n color: #13161a;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-subscreen-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 16px;\n border-top: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n min-height: 0; /* Permite que los hijos se compriman */\n box-sizing: border-box; /* Incluye padding en el cálculo */\n}\n\n.omniscribe_config-subscreen-content.no-border {\n border-top: none;\n}\n\n.omniscribe_config-subscreen-content-template {\n flex: 1;\n}\n\n.omniscribe_config-section-label {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #374151;\n line-height: 1.4;\n}\n\n.omniscribe_config-language-section {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_config-language-section-title {\n font-size: 16px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n}\n\n.omniscribe_config-subscreen-description {\n margin: 0 0 0 0;\n font-size: 14px;\n line-height: 18px;\n color: #13161a;\n font-weight: 400;\n}\n\n/* Dictionary Options View Styles */\n.omniscribe_config-dictionary-section {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.omniscribe_config-dictionary-add-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.omniscribe_config-dictionary-input-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n\n.omniscribe_config-dictionary-input {\n height: 32px;\n border: 1px solid #e5e8eb !important;\n border-radius: 8px !important;\n padding: 0 12px !important;\n font-size: 14px !important;\n line-height: 1.4 !important;\n background-color: #ffffff !important;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease !important;\n}\n\n.omniscribe_config-dictionary-input:focus {\n outline: none !important;\n border-color: #4f46e5 !important;\n box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-input::placeholder {\n color: #9ca3af !important;\n font-size: 14px !important;\n}\n\n.omniscribe_config-dictionary-input.error {\n border-color: #dc3545 !important;\n background-color: #fff5f5 !important;\n}\n\n.omniscribe_config-dictionary-input.error:focus {\n border-color: #dc3545 !important;\n box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-add-btn {\n width: 32px;\n height: 32px;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n border-radius: 8px;\n color: var(--primary-foreground);\n cursor: pointer;\n transition: all 0.2s ease;\n margin-top: 0;\n font-size: 0;\n}\n\n.omniscribe_config-dictionary-add-btn:hover:not(:disabled) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n border-color: color-mix(in oklab, var(--primary) 90%, transparent);\n}\n\n.omniscribe_config-dictionary-add-btn:disabled {\n background-color: #e5e8eb;\n border-color: #e5e8eb;\n color: #9ca3af;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n\n.omniscribe_config-dictionary-list {\n display: flex;\n padding-top: 16px;\n flex-direction: column;\n gap: 8px;\n max-height: 410px;\n overflow-y: auto;\n margin-top: 4px;\n}\n\n.omniscribe_config-dictionary-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background-color: #f9fafb;\n border: 1px solid #e5e8eb;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.omniscribe_config-dictionary-row:hover {\n background-color: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.omniscribe_config-dictionary-cell {\n flex: 1;\n font-size: 14px;\n line-height: 20px;\n color: #374151;\n word-break: break-word;\n font-weight: 500;\n}\n\n.omniscribe_config-dictionary-arrow {\n color: #9ca3af;\n font-size: 16px;\n font-weight: 600;\n flex-shrink: 0;\n margin: 0 4px;\n}\n\n.omniscribe_config-dictionary-delete-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 6px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.omniscribe_config-dictionary-delete-btn:hover {\n background-color: #fee2e2;\n color: #dc2626;\n transform: scale(1.05);\n}\n\n.omniscribe_config-dictionary-empty {\n padding: 40px 16px;\n margin-top: 16px;\n text-align: center;\n color: #6b7280;\n font-size: 14px;\n line-height: 20px;\n background-color: #f9fafb;\n border: 2px dashed #e5e8eb;\n border-radius: 12px;\n font-style: italic;\n}\n\n/* Template specific styles */\n.omniscribe_template-field {\n background: white;\n border-bottom: 1px solid #e1e8ed;\n margin-bottom: 0;\n}\n\n.omniscribe_template-field:last-child {\n border-bottom: none;\n}\n\n.omniscribe_template-field-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n background: #ffffff;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_template-field-icon {\n margin-right: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon svg {\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon.expanded svg {\n transform: rotate(90deg);\n}\n\n.omniscribe_template-field-label {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n color: #2c3e50;\n}\n\n.omniscribe_template-field-content {\n padding: 16px;\n background: white;\n}\n\n.omniscribe_template-textarea {\n width: 100%;\n min-height: 80px;\n max-height: 300px;\n /* Prevent excessive vertical expansion */\n padding: 12px;\n border: 1px solid #e1e8ed;\n border-radius: 6px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n background: white;\n box-sizing: border-box;\n overflow-y: auto;\n /* Enable scroll when content exceeds max height */\n}\n\n.omniscribe_template-textarea:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.omniscribe_template-character-count {\n margin-top: 8px;\n font-size: 12px;\n color: #95a5a6;\n display: flex;\n}\n\n.omniscribe_template-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e1e8ed;\n background: white;\n margin-top: 18px;\n margin-bottom: 50px;\n}\n\n/* Template fields container */\n.omniscribe_template-fields {\n display: flex;\n flex-direction: column;\n max-height: 370px;\n overflow-y: auto;\n background: white;\n}\n\n/* Improved scrollbar for template fields */\n.omniscribe_template-fields::-webkit-scrollbar {\n width: 6px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n}\n\n.omniscribe_config-version-section {\n background: #f6f7f9;\n color: #4a5364;\n padding: 16px 8px 16px 24px;\n font-weight: 500;\n line-height: 16.8px;\n font-size: 12px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n\n/* Source: modules/layout/components/MinimizeButton/MinimizeButton.css */\n.omniscribe_minimize-button-container {\n position: absolute;\n top: -1px;\n left: 0;\n transform: translateX(-100%);\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n height: auto;\n max-height: 400px;\n min-height: 180px;\n}\n.omniscribe_minimize-button-subcontainer {\n position: relative;\n background-color: color-mix(in oklab, rgb(15, 15, 15) 65%, transparent);\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n backdrop-filter: sepia(1%);\n cursor: pointer;\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 400ms;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_minimize-button-subcontainer:hover {\n background-color: color-mix(in oklab, rgb(15, 15, 15) 85%, transparent);\n}\n.omniscribe_minimize-button-content {\n display: flex;\n rotate: calc(90deg * -2);\n gap: 10px;\n writing-mode: vertical-rl;\n text-orientation: mixed;\n width: 100%;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-wrap: nowrap;\n padding: 12px;\n min-height: 180px;\n max-height: 400px;\n}\n\n.omniscribe_minimize-button-span {\n font-weight: 400;\n font-size: var(--text-lg) /* 1.125rem = 18px */;\n line-height: var(--text-lg--line-height) /* calc(1.75 / 1.125) ≈ 1.5556 */;\n flex-wrap: nowrap;\n color: var(--white);\n display: flex;\n white-space: nowrap;\n text-align: center;\n}\n\n[dir='ltr'] .omniscribe_minimize-button-container {\n left: 0;\n transform: translateX(-100%);\n}\n\n[dir='ltr'] .omniscribe_minimize-button-subcontainer {\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n[dir='rtl'] .omniscribe_minimize-button-container {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n[dir='rtl'] .omniscribe_minimize-button-subcontainer {\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeContainer/OmniscribeContainer.css */\n.omniscribe_container {\n isolation: isolate;\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n z-index: 80;\n}\n\n[dir='ltr'] .omniscribe_container {\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n}\n\n[dir='rtl'] .omniscribe_container {\n left: 0;\n right: auto;\n border-top-right-radius: 30px;\n border-bottom-right-radius: 30px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeLayout/OmniscribeLayout.css */\n.omniscribe_layout {\n position: fixed;\n width: var(--layout-w);\n background: var(--white);\n bottom: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 500ms;\n transition-property: transform, translate, scale, rotate;\n display: flex;\n flex-direction: column;\n height: var(--layout-h);\n min-width: 500px;\n min-height: 500px;\n right: 0;\n}\n\n[dir='rtl'] .omniscribe_layout {\n left: 0;\n right: auto;\n border-bottom-right-radius: 12px;\n}\n\n[dir='ltr'] .omniscribe_layout {\n right: 0;\n border-bottom-left-radius: 12px;\n}\n\n.omniscribe_layout-open {\n background: var(--white);\n translate: 0;\n}\n\n.omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n[dir='rtl'] .omniscribe_layout-close {\n translate: calc(var(--layout-w) * -1);\n}\n\n[dir='ltr'] .omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n\n/* Source: modules/utility-section/section/UtilityButtons.css */\n.omniscribe_utility-btns-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n background-color: #ffffff;\n padding: 16px;\n overflow: hidden;\n background: linear-gradient(90deg, #ffffff 0%, #f5f8fe 50%, #e7effd 100%);\n align-self: stretch;\n}\n\n.omniscribe_utility-btns-left,\n.omniscribe_utility-btns-right {\n display: flex;\n flex-direction: row;\n gap: 4px;\n align-items: center;\n}\n\n.omniscribe_utility-btn-right {\n border-radius: var(--Radius-radius-round, 99999px) !important;\n background-color: var(--Greyscale-100, #f6f7f9) !important;\n border: none !important;\n}\n\n.omniscribe_connected-buttons {\n display: flex;\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n overflow: hidden;\n}\n\n.omniscribe_connected-btn-left,\n.omniscribe_connected-btn-right {\n border: none !important;\n border-radius: 0 !important;\n}\n\n.omniscribe_connected-btn-left {\n border-right: 1px solid var(--Stroke-greyscale-Active, #e5e7ec) !important;\n}\n\n.omniscribe_utility-btns {\n cursor: pointer;\n transition-duration: 300ms;\n background-color: color-mix(in oklab, var(--white) 30%, transparent);\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n position: relative;\n padding: 8px;\n display: flex;\n align-items: center;\n\n &:hover {\n background-color: var(--Greyscale-100, #f6f7f9);\n }\n}\n\n.omniscribe_utility-btns-pointer {\n pointer-events: auto;\n}\n\n.omniscribe_utility-btns-no-pointer {\n pointer-events: none;\n background-color: var(--white);\n}\n\n.omniscribe_utility-btns-no-pointer-opacity {\n pointer-events: none;\n opacity: 50%;\n}\n\n.omniscribe_utility-btns-opacity {\n background-color: var(--white);\n opacity: 100%;\n}\n\n.omniscribe_utility-btns-active {\n background-color: var(--Greyscale-100, #f6f7f9);\n border: 1px solid var(--Stroke-greyscale-Active, #105bdb);\n}\n\n.omniscribe_btn-label {\n margin-left: 6px;\n font-size: 14px;\n color: #212529;\n font-weight: 500;\n}\n\n.omniscribe_btn-label-active {\n color: #105bdb;\n}\n\n.omniscribe_icon {\n color: var(--active-black);\n}\n\n.omniscribe_icon-active {\n color: #105bdb;\n}\n\n.omniscribe_config-view {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.omniscribe_config-close-btn {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n color: #000000;\n width: 32px;\n height: 32px;\n}\n\n.omniscribe_config-title {\n margin: 0;\n color: #000000;\n font-size: 16px;\n font-weight: 700;\n line-height: 19.2px;\n}\n\n\n/* Source: shared/components/Card.css */\n.omniscribe_card {\n background-color: var(--color-card, #ffffff);\n color: var(--color-card-foreground, #000000);\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n border-radius: 0.75rem;\n border: 1px solid var(--color-border, var(--grey-200));\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n}\n\n.omniscribe_card-header {\n container-type: inline-size;\n container-name: card-header;\n display: grid;\n grid-auto-rows: min-content;\n grid-template-rows: auto auto;\n align-items: start;\n gap: 0.375rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n/* When card-header has card-action, adjust grid layout */\n.omniscribe_card-header:has([data-slot='card-action']) {\n grid-template-columns: 1fr auto;\n}\n\n/* When card-header has border-b class, add padding bottom */\n.omniscribe_card-header.border-b {\n padding-bottom: 1.5rem;\n}\n\n.omniscribe_card-title {\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_card-description {\n color: var(--color-muted-foreground, #6b7280);\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.omniscribe_card-action {\n grid-column-start: 2;\n grid-row: span 2 / span 2;\n grid-row-start: 1;\n align-self: start;\n justify-self: end;\n}\n\n.omniscribe_card-content {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer {\n display: flex;\n align-items: center;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer.border-t {\n padding-top: 1.5rem;\n}\n\n\n/* Source: shared/components/button.css */\n.omniscribe_button {\n border: none;\n background: transparent;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(var(--spacing) * 2);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &:disabled {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 50%;\n }\n & svg {\n pointer-events: none;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: calc(var(--spacing) * 4) /* 1rem = 16px */;\n height: calc(var(--spacing) * 4) /* 1rem = 16px */;\n }\n &:focus-visible {\n border-color: var(--ring);\n box-shadow: 0 0 0 calc(3px + var(--tw-ring-offset-width))\n color-mix(in oklab, var(--ring) 50%, transparent);\n }\n &[aria-invalid='true'] {\n border-color: var(--destructive);\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n\n.omniscribe_button-variant-default {\n background-color: var(--primary);\n color: var(--primary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n}\n.omniscribe_button-variant-destructive {\n background-color: var(--destructive);\n color: var(--white);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n.omniscribe_button-variant-outline {\n border: solid 1px var(--input);\n background-color: var(--background);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n }\n}\n.omniscribe_button-variant-icon {\n align-items: center;\n border-radius: 100%;\n padding: 10px;\n & svg {\n pointer-events: auto;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: auto;\n height: auto;\n }\n}\n.omniscribe_button-variant-secondadry {\n background-color: var(--secondary);\n color: var(--secondary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n}\n.omniscribe_button-variant-ghost:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n}\n.omniscribe_button-variant-empty {\n cursor: pointer;\n}\n.omniscribe_button-variant-primary {\n cursor: pointer;\n background-color: color-mix(in oklab, var(--primary-button) 80%, transparent);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px !important;\n color: var(--white);\n &:hover {\n background-color: color-mix(\n in oklab,\n var(--primary-button) 60%,\n transparent\n );\n }\n}\n.omniscribe_button-size-default {\n height: calc(var(--spacing) * 9);\n padding-inline: calc(var(--spacing) * 4);\n padding-block: calc(var(--spacing) * 2);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 3) /* 0.75rem = 12px */;\n }\n}\n.omniscribe_button-size-sm {\n height: calc(var(--spacing) * 8);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n gap: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n padding-inline: calc(var(--spacing) * 3);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n}\n\n.omniscribe_button-size-lg {\n height: calc(var(--spacing) * 10);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n padding-inline: calc(var(--spacing) * 6);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n}\n\n.omniscribe_button-size-icon {\n height: calc(var(--spacing) * 5);\n width: calc(var(--spacing) * 5);\n}\n.omniscribe_button-size-padding {\n padding: calc(var(--spacing) * 2);\n min-width: calc(var(--spacing) * 40);\n}\n\n.omniscribe_button-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n}\n.omniscribe_button-whitespace {\n white-space: nowrap;\n}\n.omniscribe_button-rounded {\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n.omniscribe_button-disabled {\n pointer-events: none;\n}\n.omniscribe_button-loading {\n opacity: 50%;\n}\n.omniscribe_button-animate-spin {\n animation: spin 1s linear infinite;\n}\n.omniscribe_button-variant-report {\n cursor: pointer;\n background-color: var(--report);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px;\n color: var(--white);\n &:hover {\n background-color: color-mix(in oklab, var(--report) 60%, transparent);\n }\n}\n\n\n/* Source: shared/components/feedback-modal.css */\n.omniscribe_feedback-modal {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-top: 8px;\n min-width: 200px;\n width: 200px;\n transform-origin: top left;\n}\n\n.omniscribe_feedback-input-container {\n position: relative;\n display: flex;\n align-items: flex-end;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n}\n\n.omniscribe_feedback-textarea {\n flex: 1;\n border: transparent;\n border-radius: 8px;\n padding: 12px 12px 12px 12px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n resize: none;\n min-height: 20px;\n max-height: 200px;\n overflow-y: auto;\n font-family: inherit;\n line-height: 1.4;\n width: 100%;\n box-sizing: border-box;\n}\n.omniscribe_feedback-textarea-padding {\n margin-bottom: 34px;\n padding-bottom: 0px !important;\n}\n\n.omniscribe_feedback-icons {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.omniscribe_feedback-icons:has(.omniscribe_feedback-send) {\n bottom: 8px;\n top: auto;\n transform: none;\n}\n\n.omniscribe_feedback-close {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-close:hover {\n background-color: #f3f4f6;\n color: #374151;\n}\n\n.omniscribe_feedback-close svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-send {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--blue-500);\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-send:hover {\n background-color: #f0f7ff;\n color: #0d47a1;\n}\n\n.omniscribe_feedback-send svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-confirmation {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-top: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n.omniscribe_feedback-confirmation-icon {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* Right-positioned modal styles */\n.omniscribe_feedback-modal-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-left: 8px;\n width: 200px;\n transform-origin: bottom left;\n}\n\n.omniscribe_feedback-sending-center {\n top: 100%;\n left: 0;\n}\n\n.omniscribe_feedback-sending-right {\n bottom: 0;\n left: 40%;\n}\n\n.omniscribe_feedback-sending {\n position: absolute;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n}\n.omniscribe_feedback-confirmation-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n@keyframes fadeInOut {\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n 10% {\n opacity: 1;\n transform: translateY(0);\n }\n 90% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n\n/* Source: shared/components/gradient-box.css */\n.omniscribe_gradient-box {\n border-radius: 8px;\n padding: 1px;\n width: fit-content;\n}\n\n\n/* Source: shared/components/input.css */\n.omniscribe_input {\n height: calc(var(--spacing) * 9);\n width: 100%;\n display: flex;\n border-radius: calc(var(--radius));\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 1);\n font-size: var(--text-base) /* 1rem = 16px */;\n line-height: var(--text-base--line-height);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &::file-selector-button {\n color: var(--foreground);\n display: inline-flex;\n height: calc(var(--spacing) * 7);\n border: none;\n background-color: transparent;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n font-weight: var(--font-weight-medium);\n }\n &::placeholder {\n color: var(--muted-foreground);\n }\n &::selection {\n background-color: var(--primary);\n color: var(--primary-foreground);\n }\n &:disabled {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 50%;\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n @media (width >= 48rem /* 768px */) {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n }\n}\n\n.omniscribe_input-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_input.invalid {\n border-color: #dc3545;\n background-color: #fff5f5;\n box-shadow: 0 0 0 0.125rem rgba(220, 53, 69, 0.25);\n}\n\n.omniscribe_input-error {\n color: #dc3545;\n font-size: 10px;\n margin-block: 0.25rem;\n display: block;\n line-height: 1;\n}\n\n\n/* Source: shared/components/loading-modal.css */\n.omniscribe_loading-modal-container {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n.omniscribe_loading-modal-subcontainer {\n background-color: var(--white);\n padding: calc(var(--spacing) * 8);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n text-align: center;\n max-width: var(--container-md);\n}\n.omniscribe_loading-modal-msg {\n font-size: var(--text-xl) /* 1.25rem = 20px */;\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.omniscribe_loading-modal-spin {\n display: inline-block;\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n border: solid 4px var(--color-gray-200);\n border-top-color: var(--blue-500);\n border-radius: calc(infinity * 1px);\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n\n/* Source: shared/components/modal.css */\n.omniscribe_modal-overlay {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n\n.omniscribe_modal-container {\n position: relative;\n background-color: var(--white);\n z-index: 100;\n border-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n padding: calc(var(--spacing) * 5);\n transition-duration: 300ms;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n max-width: 90vw;\n max-height: 90vh;\n}\n.omniscribe_modal-container-scroll {\n overflow: auto;\n}\n\n.omniscribe_modal-container-show {\n opacity: 100%;\n}\n\n.omniscribe_modal-container-hide {\n opacity: 0%;\n}\n\n.omniscribe_modal-subcontainer {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_modal-title-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--spacing) * 2);\n}\n\n.omniscribe_modal-title {\n font-size: var(--text-3xl); /* 1.875rem = 30px */\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin: 0;\n}\n\n.omniscribe_modal-button {\n border: none;\n background: transparent;\n line-height: var(--text-2xl--line-height);\n cursor: pointer;\n color: var(--black);\n}\n\n@media (min-width: 768px) {\n .omniscribe_modal-container {\n max-width: 60vw;\n }\n}\n\n/* Large screens: desktop */\n@media (min-width: 1024px) {\n .omniscribe_modal-container {\n max-width: 50vw;\n }\n}\n\n/* Very large screens: large desktop and ultra-wide */\n@media (min-width: 1440px) {\n .omniscribe_modal-container {\n max-width: 40vw;\n }\n}\n\n/* Intermediate breakpoint: large tablets */\n@media (min-width: 640px) and (max-width: 767px) {\n .omniscribe_modal-container {\n max-width: 70vw;\n }\n}\n\n\n/* Source: shared/components/select.css */\n.omniscribe_select-container {\n position: relative;\n width: 100%;\n padding-block: calc(var(--spacing) * 3);\n}\n.omniscribe_select-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: calc(var(--spacing) * 3);\n background-color: var(--white);\n border-radius: var(--Radius-radius-medium, 8px);\n border: solid 1px var(--light-border);\n cursor: pointer;\n}\n.omniscribe_select-text {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n}\n.omniscribe_select-content-container {\n position: absolute;\n width: 100%;\n margin-top: calc(var(--spacing) * 2);\n border: solid 1px var(--light-border);\n background-color: var(--white);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n bottom: calc(var(--spacing) * 15);\n padding-inline: calc(var(--spacing) * 1);\n padding-block: calc(var(--spacing) * 0.5);\n z-index: 9999;\n}\n.omniscribe_select-content-ul {\n overflow-y: scroll;\n max-height: calc(var(--spacing) * 80);\n padding-inline: 5px;\n}\n.omniscribe_select-content-li {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--spacing) * 3);\n cursor: pointer;\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n}\n.omniscribe_select-check-icon {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n color: var(--color-slate-500) /* oklch(55.4% 0.046 257.417) = #62748e */;\n}\n.omniscribe_select-content-li-span {\n display: flex;\n align-items: center;\n gap: calc(0.25rem /* 4px */ * 2);\n}\n\n\n/* Source: shared/components/separator.css */\n/* Separator Component Styles */\n.omniscribe_separator {\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n flex-shrink: 0;\n}\n\n.omniscribe_separator--horizontal {\n height: 0;\n width: 100%;\n border-top: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n border-right: none;\n border-bottom: none;\n border-left: none;\n}\n\n.omniscribe_separator--vertical {\n width: 0;\n height: 100%;\n border-left: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n border-top: none;\n border-right: none;\n border-bottom: none;\n}\n\n\n/* Source: shared/components/skeleton.css */\n.omniscribe_skeleton {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n\n\n/* Source: shared/components/textarea.css */\n.omniscribe_textarea-default {\n display: flex;\n min-height: calc(var(--spacing) * 16);\n width: -webkit-fill-available;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 2);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n &::placeholder {\n color: var(--muted-foreground);\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n }\n &:focus-visible {\n border-color: var(--ring);\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n &:disabled {\n cursor: not-allowed;\n opacity: 50%;\n }\n}\n\n.omniscribe_textarea-secondary {\n padding: calc(var(--spacing) * 3.5);\n padding-bottom: calc(var(--spacing) * 0);\n border-style: none;\n background-color: transparent;\n resize: none;\n &:focus {\n outline-style: none;\n }\n}\n.omniscribe_textarea-general {\n font-family: 'Lato', sans-serif;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n\n/* Source: shared/components/toast.css */\n.omniscribe_toast-container {\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n top: calc(var(--spacing) * -30);\n border-radius: var(--radius);\n padding: calc(var(--spacing) * 4);\n height: fit-content;\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n width: calc(var(--spacing) * 120);\n}\n\n.omniscribe_toast-container-danger {\n background-color: var(--color-red-500);\n}\n.omniscribe_toast-container-black {\n background-color: var(--black);\n}\n.omniscribe_toast-container-show {\n right: calc(var(--spacing) * 10);\n}\n.omniscribe_toast-container-hide {\n right: -100%;\n}\n.omniscribe_toast-subcontainer {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 100ms;\n display: flex;\n flex-direction: column;\n color: var(--white);\n}\n.omniscribe_toast-title {\n font-size: 18px;\n font-weight: var(--font-weight-bold);\n}\n.omniscribe_toast-msg {\n font-size: 16px;\n}\n\n\n/* Source: shared/components/toggle.css */\n.omniscribe_toggle-container {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 8px;\n flex-direction: column;\n}\n\n.omniscribe_toggle-label {\n font-size: 14px;\n font-weight: 400;\n color: #374151;\n flex: 1;\n}\n\n.omniscribe_toggle-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.omniscribe_toggle-switch {\n position: relative;\n width: 29px;\n height: 16px;\n background-color: #d1d5db;\n border-radius: 8px;\n border: none;\n cursor: pointer;\n transition: background-color 0.2s ease;\n outline: none;\n}\n\n.omniscribe_toggle-switch:focus-visible {\n box-shadow: 0 0 0 2px #132caa;\n}\n\n.omniscribe_toggle-switch-checked {\n background-color: #132caa;\n}\n\n.omniscribe_toggle-switch-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.omniscribe_toggle-thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 12px;\n height: 12px;\n background-color: white;\n border-radius: 50%;\n transition: transform 0.2s ease;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.omniscribe_toggle-switch-checked .omniscribe_toggle-thumb {\n transform: translateX(13px);\n}\n\n.omniscribe_toggle-status {\n font-size: 14px;\n font-weight: 500;\n color: #6b7280;\n min-width: 70px;\n}\n\n.omniscribe_toggle-switch-checked + .omniscribe_toggle-status {\n color: #4a5364;\n}\n\n\n/* Source: shared/components/tooltip.css */\n.tooltip-base {\n position: fixed;\n z-index: 9999;\n border-radius: 0.375rem; /* rounded-md */\n background-color: #111827;\n padding: 0.5rem 0.75rem; /* px-3 py-2 */\n font-size: 0.875rem; /* text-sm */\n font-family: 'Lato', sans-serif;\n color: #ffffff; /* text-white */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */\n transition: opacity 0.2s ease-in-out; /* transition-opacity duration-200 */\n pointer-events: none;\n user-select: none;\n word-wrap: break-word;\n line-height: 1.4;\n}\n\n/* Tooltip Arrow Styles */\n.tooltip-arrow {\n position: absolute;\n width: 0.5rem; /* w-2 */\n height: 0.5rem; /* h-2 */\n background-color: #111827;\n transform: rotate(45deg);\n}\n\n/* Arrow positioning for each side */\n.tooltip-arrow-top {\n bottom: -0.25rem; /* bottom-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-bottom {\n top: -0.25rem; /* top-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-left {\n right: -0.25rem; /* right-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-right {\n left: -0.25rem; /* left-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n/* Width classes based on message length */\n.tooltip-width-auto {\n width: auto;\n white-space: nowrap;\n}\n\n.tooltip-width-200 {\n width: auto;\n max-width: 200px;\n}\n\n.tooltip-width-xs {\n width: auto;\n max-width: 20rem; /* max-w-xs */\n}\n\n.tooltip-width-sm {\n width: auto;\n max-width: 24rem; /* max-w-sm */\n}\n\n.tooltip-width-400 {\n width: auto;\n max-width: 400px;\n}\n\n/* Trigger container styles */\n.tooltip-trigger {\n display: inline-block;\n}\n\n/* Animation classes */\n.tooltip-enter {\n opacity: 0;\n transform: scale(0.95);\n}\n\n.tooltip-enter-active {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.2s ease-in-out,\n transform 0.2s ease-in-out;\n}\n\n.tooltip-exit {\n opacity: 1;\n transform: scale(1);\n}\n\n.tooltip-exit-active {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 0.15s ease-in-out,\n transform 0.15s ease-in-out;\n}\n\n/* Dark theme variant */\n.tooltip-dark {\n background-color: #1f2937; /* bg-gray-800 */\n color: var(--grey-50);\n}\n\n.tooltip-dark .tooltip-arrow {\n background-color: #1f2937;\n}\n\n/* Light theme variant */\n.tooltip-light {\n background-color: #ffffff;\n color: #374151; /* text-gray-700 */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n}\n\n.tooltip-light .tooltip-arrow {\n background-color: #ffffff;\n}\n\n/* Responsive breakpoints */\n@media (max-width: 640px) {\n .tooltip-base {\n max-width: calc(100vw - 2rem);\n font-size: 0.8125rem; /* Slightly smaller on mobile */\n }\n\n .tooltip-width-400,\n .tooltip-width-sm,\n .tooltip-width-xs {\n max-width: calc(100vw - 2rem);\n }\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n .tooltip-base {\n border: 2px solid #ffffff;\n }\n\n .tooltip-light {\n border: 2px solid #000000;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .tooltip-base,\n .tooltip-enter-active,\n .tooltip-exit-active {\n transition: none;\n }\n}\n";
|
|
100124
100630
|
const injectedCss$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
100125
100631
|
__proto__: null,
|
|
100126
100632
|
default: injectedCss
|