langgraph-ui-components 0.0.17 → 0.0.18
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/index.es100.js +20 -354
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +172 -127
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +231 -60
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +352 -34
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +134 -34
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +65 -161
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +30 -196
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js +36 -13
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js +162 -26
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js +196 -27
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es110.js +13 -3156
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +27 -34
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +34 -5
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +3145 -61
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +33 -33
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +5 -21
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +69 -64
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +37 -3
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es12.js +1 -1
- package/dist/index.es121.js +9 -9
- package/dist/index.es122.js +1 -1
- package/dist/index.es126.js +1 -1
- package/dist/index.es128.js +2 -2
- package/dist/index.es13.js +9 -3
- package/dist/index.es13.js.map +1 -1
- package/dist/index.es136.js +1 -1
- package/dist/index.es137.js +6 -6
- package/dist/index.es139.js +1 -1
- package/dist/index.es14.js +6 -6
- package/dist/index.es140.js +1 -1
- package/dist/index.es143.js +1 -1
- package/dist/index.es144.js +1 -1
- package/dist/index.es145.js +1 -1
- package/dist/index.es146.js +1 -1
- package/dist/index.es147.js +1 -1
- package/dist/index.es148.js +1 -1
- package/dist/index.es149.js +1 -1
- package/dist/index.es150.js +1 -1
- package/dist/index.es151.js +1 -1
- package/dist/index.es152.js +1 -1
- package/dist/index.es153.js +1 -1
- package/dist/index.es154.js +1 -1
- package/dist/index.es155.js +1 -1
- package/dist/index.es156.js +1 -1
- package/dist/index.es157.js +1 -1
- package/dist/index.es158.js +1 -1
- package/dist/index.es159.js +1 -1
- package/dist/index.es16.js +10 -5
- package/dist/index.es16.js.map +1 -1
- package/dist/index.es160.js +1 -1
- package/dist/index.es161.js +1 -1
- package/dist/index.es162.js +1 -1
- package/dist/index.es163.js +1 -1
- package/dist/index.es164.js +1 -1
- package/dist/index.es165.js +1 -1
- package/dist/index.es166.js +1 -1
- package/dist/index.es167.js +1 -1
- package/dist/index.es168.js +1 -1
- package/dist/index.es169.js +1 -1
- package/dist/index.es170.js +1 -1
- package/dist/index.es171.js +1 -1
- package/dist/index.es172.js +1 -1
- package/dist/index.es173.js +1 -1
- package/dist/index.es174.js +1 -1
- package/dist/index.es175.js +1 -1
- package/dist/index.es176.js +1 -1
- package/dist/index.es177.js +1 -1
- package/dist/index.es178.js +1 -1
- package/dist/index.es179.js +1 -1
- package/dist/index.es18.js +7 -7
- package/dist/index.es180.js +1 -1
- package/dist/index.es181.js +1 -1
- package/dist/index.es182.js +1 -1
- package/dist/index.es183.js +1 -1
- package/dist/index.es184.js +1 -1
- package/dist/index.es185.js +1 -1
- package/dist/index.es186.js +1 -1
- package/dist/index.es187.js +1 -1
- package/dist/index.es191.js +2 -56
- package/dist/index.es191.js.map +1 -1
- package/dist/index.es192.js +2 -100
- package/dist/index.es192.js.map +1 -1
- package/dist/index.es193.js +2 -191
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +2 -110
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es195.js +2 -35
- package/dist/index.es195.js.map +1 -1
- package/dist/index.es196.js +2 -10
- package/dist/index.es196.js.map +1 -1
- package/dist/index.es197.js +2 -11
- package/dist/index.es197.js.map +1 -1
- package/dist/index.es198.js +2 -12
- package/dist/index.es198.js.map +1 -1
- package/dist/index.es199.js +2 -91
- package/dist/index.es199.js.map +1 -1
- package/dist/index.es2.js +96 -11
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +2 -2
- package/dist/index.es200.js +2 -275
- package/dist/index.es200.js.map +1 -1
- package/dist/index.es201.js +2 -2
- package/dist/index.es202.js +2 -164
- package/dist/index.es202.js.map +1 -1
- package/dist/index.es203.js +2 -51
- package/dist/index.es203.js.map +1 -1
- package/dist/index.es204.js +2 -40
- package/dist/index.es204.js.map +1 -1
- package/dist/index.es205.js +2 -35
- package/dist/index.es205.js.map +1 -1
- package/dist/index.es206.js +2 -40
- package/dist/index.es206.js.map +1 -1
- package/dist/index.es207.js +2 -24
- package/dist/index.es207.js.map +1 -1
- package/dist/index.es208.js +2 -591
- package/dist/index.es208.js.map +1 -1
- package/dist/index.es209.js +2 -125
- package/dist/index.es209.js.map +1 -1
- package/dist/index.es210.js +2 -164
- package/dist/index.es210.js.map +1 -1
- package/dist/index.es211.js +2 -2
- package/dist/index.es212.js +2 -2
- package/dist/index.es213.js +2 -2
- package/dist/index.es214.js +2 -2
- package/dist/index.es215.js +2 -2
- package/dist/index.es216.js +2 -2
- package/dist/index.es217.js +2 -2
- package/dist/index.es218.js +2 -2
- package/dist/index.es219.js +2 -2
- package/dist/index.es22.js +35 -119
- package/dist/index.es22.js.map +1 -1
- package/dist/index.es220.js +2 -2
- package/dist/index.es221.js +2 -2
- package/dist/index.es222.js +2 -2
- package/dist/index.es223.js +2 -2
- package/dist/index.es224.js +2 -2
- package/dist/index.es225.js +2 -2
- package/dist/index.es226.js +2 -2
- package/dist/index.es227.js +2 -2
- package/dist/index.es228.js +2 -2
- package/dist/index.es229.js +2 -2
- package/dist/index.es23.js +66 -36
- package/dist/index.es23.js.map +1 -1
- package/dist/index.es230.js +2 -2
- package/dist/index.es231.js +2 -2
- package/dist/index.es232.js +2 -2
- package/dist/index.es233.js +2 -2
- package/dist/index.es234.js +2 -2
- package/dist/index.es235.js +2 -2
- package/dist/index.es236.js +56 -2
- package/dist/index.es236.js.map +1 -1
- package/dist/index.es237.js +100 -2
- package/dist/index.es237.js.map +1 -1
- package/dist/index.es238.js +191 -2
- package/dist/index.es238.js.map +1 -1
- package/dist/index.es239.js +110 -2
- package/dist/index.es239.js.map +1 -1
- package/dist/index.es24.js +30 -64
- package/dist/index.es24.js.map +1 -1
- package/dist/index.es240.js +35 -2
- package/dist/index.es240.js.map +1 -1
- package/dist/index.es241.js +10 -2
- package/dist/index.es241.js.map +1 -1
- package/dist/index.es242.js +11 -2
- package/dist/index.es242.js.map +1 -1
- package/dist/index.es243.js +12 -2
- package/dist/index.es243.js.map +1 -1
- package/dist/index.es244.js +91 -2
- package/dist/index.es244.js.map +1 -1
- package/dist/index.es245.js +275 -2
- package/dist/index.es245.js.map +1 -1
- package/dist/index.es246.js +2 -2
- package/dist/index.es247.js +164 -2
- package/dist/index.es247.js.map +1 -1
- package/dist/index.es248.js +51 -2
- package/dist/index.es248.js.map +1 -1
- package/dist/index.es249.js +40 -2
- package/dist/index.es249.js.map +1 -1
- package/dist/index.es25.js +120 -29
- package/dist/index.es25.js.map +1 -1
- package/dist/index.es250.js +35 -2
- package/dist/index.es250.js.map +1 -1
- package/dist/index.es251.js +40 -2
- package/dist/index.es251.js.map +1 -1
- package/dist/index.es252.js +24 -2
- package/dist/index.es252.js.map +1 -1
- package/dist/index.es253.js +591 -2
- package/dist/index.es253.js.map +1 -1
- package/dist/index.es254.js +125 -2
- package/dist/index.es254.js.map +1 -1
- package/dist/index.es255.js +164 -2
- package/dist/index.es255.js.map +1 -1
- package/dist/index.es256.js +2 -2
- package/dist/index.es26.js +102 -123
- package/dist/index.es26.js.map +1 -1
- package/dist/index.es267.js +1 -1
- package/dist/index.es27.js +66 -101
- package/dist/index.es27.js.map +1 -1
- package/dist/index.es28.js +139 -66
- package/dist/index.es28.js.map +1 -1
- package/dist/index.es29.js +295 -131
- package/dist/index.es29.js.map +1 -1
- package/dist/index.es30.js +114 -298
- package/dist/index.es30.js.map +1 -1
- package/dist/index.es305.js +1 -1
- package/dist/index.es307.js +1 -1
- package/dist/index.es319.js +1 -1
- package/dist/index.es32.js +7 -7
- package/dist/index.es33.js +1 -1
- package/dist/index.es339.js +2 -2
- package/dist/index.es36.js +4 -4
- package/dist/index.es37.js +289 -114
- package/dist/index.es37.js.map +1 -1
- package/dist/index.es38.js +44 -70
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es39.js +145 -19
- package/dist/index.es39.js.map +1 -1
- package/dist/index.es40.js +5 -261
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +247 -38
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +110 -207
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +68 -64
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +17 -141
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +251 -14
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +36 -223
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +213 -7
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es48.js +55 -1180
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +141 -6
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es50.js +21 -144
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +230 -5
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js +8 -292
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es53.js +1190 -43
- package/dist/index.es53.js.map +1 -1
- package/dist/index.es54.js +7 -144
- package/dist/index.es54.js.map +1 -1
- package/dist/index.es55.js +136 -241
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es59.js +1 -1
- package/dist/index.es6.js +21 -8
- package/dist/index.es6.js.map +1 -1
- package/dist/index.es60.js +1 -1
- package/dist/index.es61.js +1 -1
- package/dist/index.es62.js +7 -7
- package/dist/index.es67.js +3 -3
- package/dist/index.es69.js +2 -2
- package/dist/index.es70.js +1 -1
- package/dist/index.es71.js +1 -1
- package/dist/index.es72.js +1 -1
- package/dist/index.es77.js +7 -7
- package/dist/index.es78.js +17 -17
- package/dist/index.es82.js +1 -1
- package/dist/index.es83.js +4 -4
- package/dist/index.es84.js +20 -11
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +66 -38
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js +3 -34
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +10 -230
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es88.js +39 -29
- package/dist/index.es88.js.map +1 -1
- package/dist/index.es89.js +32 -73
- package/dist/index.es89.js.map +1 -1
- package/dist/index.es90.js +200 -44
- package/dist/index.es90.js.map +1 -1
- package/dist/index.es91.js +15 -37
- package/dist/index.es91.js.map +1 -1
- package/dist/index.es92.js +71 -26
- package/dist/index.es92.js.map +1 -1
- package/dist/index.es93.js +72 -39
- package/dist/index.es93.js.map +1 -1
- package/dist/index.es94.js +48 -53
- package/dist/index.es94.js.map +1 -1
- package/dist/index.es95.js +30 -13
- package/dist/index.es95.js.map +1 -1
- package/dist/index.es96.js +40 -134
- package/dist/index.es96.js.map +1 -1
- package/dist/index.es97.js +56 -20
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +11 -180
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +129 -233
- package/dist/index.es99.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.es150.js
CHANGED
package/dist/index.es151.js
CHANGED
package/dist/index.es152.js
CHANGED
package/dist/index.es153.js
CHANGED
package/dist/index.es154.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as base16Ateliersulphurpool_light } from "./index.
|
|
1
|
+
import { __exports as base16Ateliersulphurpool_light } from "./index.es202.js";
|
|
2
2
|
var hasRequiredBase16Ateliersulphurpool_light;
|
|
3
3
|
function requireBase16Ateliersulphurpool_light() {
|
|
4
4
|
if (hasRequiredBase16Ateliersulphurpool_light) return base16Ateliersulphurpool_light;
|
package/dist/index.es155.js
CHANGED
package/dist/index.es156.js
CHANGED
package/dist/index.es157.js
CHANGED
package/dist/index.es158.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as coyWithoutShadows } from "./index.
|
|
1
|
+
import { __exports as coyWithoutShadows } from "./index.es206.js";
|
|
2
2
|
var hasRequiredCoyWithoutShadows;
|
|
3
3
|
function requireCoyWithoutShadows() {
|
|
4
4
|
if (hasRequiredCoyWithoutShadows) return coyWithoutShadows;
|
package/dist/index.es159.js
CHANGED
package/dist/index.es16.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Paperclip, Square, Mic, Loader2, MoveUp } from "lucide-react";
|
|
3
3
|
import { useState, useRef } from "react";
|
|
4
|
-
import { useAudioRecorder } from "./index.
|
|
4
|
+
import { useAudioRecorder } from "./index.es28.js";
|
|
5
5
|
function ChatInput({
|
|
6
6
|
input,
|
|
7
7
|
inputFileAccept = ".png,.jpg,.jpeg,.pdf,.docx",
|
|
@@ -22,17 +22,22 @@ function ChatInput({
|
|
|
22
22
|
const handleMicClick = async () => {
|
|
23
23
|
if (isRecording) {
|
|
24
24
|
const audioBlob = await stopRecording();
|
|
25
|
-
console.log("Audio blob received:", audioBlob?.size, "bytes");
|
|
26
25
|
if (audioBlob) {
|
|
27
26
|
try {
|
|
28
|
-
console.log("Sending audio to backend for transcription...");
|
|
29
27
|
const transcribedText = await transcribeAudio(audioBlob);
|
|
30
|
-
console.log("Transcription received:", transcribedText);
|
|
31
28
|
if (transcribedText) {
|
|
32
29
|
setInput(transcribedText);
|
|
30
|
+
if (textareaRef.current) {
|
|
31
|
+
setTimeout(() => {
|
|
32
|
+
if (textareaRef.current) {
|
|
33
|
+
textareaRef.current.style.height = "auto";
|
|
34
|
+
const maxHeight = 300;
|
|
35
|
+
textareaRef.current.style.height = Math.min(textareaRef.current.scrollHeight, maxHeight) + "px";
|
|
36
|
+
}
|
|
37
|
+
}, 0);
|
|
38
|
+
}
|
|
33
39
|
}
|
|
34
40
|
} catch (error) {
|
|
35
|
-
console.error("Error processing audio:", error);
|
|
36
41
|
alert("Failed to transcribe audio. Please try again.");
|
|
37
42
|
}
|
|
38
43
|
}
|
package/dist/index.es16.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es16.js","sources":["../src/components/sidebar/ChatInput.tsx"],"sourcesContent":["import type { FileInfo } from \"@/types/fileInput\";\nimport { MoveUp, Paperclip, Loader2, Mic, Square } from \"lucide-react\";\nimport {\n type ChangeEvent,\n type Dispatch,\n type FormEvent,\n type SetStateAction,\n useState,\n type DragEvent,\n useRef,\n} from \"react\";\nimport { useAudioRecorder } from \"@/hooks/useAudioRecorder\";\n\nexport default function ChatInput({\n input,\n inputFileAccept = \".png,.jpg,.jpeg,.pdf,.docx\",\n setInput,\n supportSpeechToText = false,\n handleSubmit,\n fileInput,\n setFileInput,\n handleFileSelect,\n isLoading = false,\n onCancel,\n filePreview,\n}: {\n input: string;\n setInput: (value: string) => void;\n supportSpeechToText?: boolean;\n handleSubmit: (e: FormEvent<HTMLFormElement>) => void;\n fileInput: FileInfo[];\n setFileInput: Dispatch<SetStateAction<FileInfo[]>>;\n handleFileSelect: (event: ChangeEvent<HTMLInputElement>) => void;\n inputFileAccept?: string;\n isLoading?: boolean;\n onCancel?: () => void;\n filePreview?: (files: FileInfo[], setFileInput: Dispatch<SetStateAction<FileInfo[]>>) => React.ReactNode;\n}) {\n const canSubmit =\n (input.trim().length > 0 || fileInput.length > 0) && !isLoading;\n\n const [isDragOver, setIsDragOver] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n // Audio recording and transcription\n const { isRecording, recordingTime, isTranscribing, startRecording, stopRecording, transcribeAudio } = useAudioRecorder();\n\n const handleMicClick = async () => {\n if (isRecording) {\n // Stop recording and transcribe\n const audioBlob = await stopRecording();\n console.log(\"Audio blob received:\", audioBlob?.size, \"bytes\");\n\n if (audioBlob) {\n try {\n console.log(\"Sending audio to backend for transcription...\");\n const transcribedText = await transcribeAudio(audioBlob);\n console.log(\"Transcription received:\", transcribedText);\n\n if (transcribedText) {\n setInput(transcribedText);\n }\n } catch (error) {\n console.error(\"Error processing audio:\", error);\n alert(\"Failed to transcribe audio. Please try again.\");\n }\n }\n } else {\n // Start recording\n await startRecording();\n }\n };\n\n const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n handleSubmit(e);\n // Reset textarea height to initial size\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n }\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(true);\n };\n\n const handleDragLeave = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n };\n\n const handleDrop = async (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n\n const files = Array.from(e.dataTransfer.files);\n if (files.length === 0) return;\n\n const acceptedFiles = files.filter(file => {\n if (!inputFileAccept) return true;\n const acceptTypes = inputFileAccept.split(',').map(type => type.trim());\n return acceptTypes.some(type => {\n if (type.startsWith('.')) {\n return file.name.toLowerCase().endsWith(type.toLowerCase());\n }\n return file.type.match(type.replace('*', '.*'));\n });\n });\n\n if (acceptedFiles.length === 0) return;\n\n const fileDetails: FileInfo[] = await Promise.all(\n acceptedFiles.map(async (file) => {\n const base64Data = await new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result.split(\",\")[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n\n return {\n fileName: file.name,\n fileType: file.type,\n file: file,\n fileData: base64Data,\n };\n })\n );\n\n setFileInput((prevFile) => [...prevFile, ...fileDetails]);\n };\n\n return (\n <form\n onSubmit={onSubmit}\n className={`relative flex flex-col border rounded-xl m-2 bg-zinc-900 border-zinc-800 transition-colors ${isDragOver ? 'border-blue-500 bg-zinc-800' : ''\n }`}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {/* File attachments preview */}\n {filePreview && filePreview(fileInput, setFileInput)}\n\n {/* Text input */}\n <textarea\n ref={textareaRef}\n placeholder=\"Type your message...\"\n value={input}\n onChange={(e) => {\n setInput(e.target.value)\n const maxHeight = 300; // max height in pixels\n e.target.style.height = \"auto\"; // reset height\n e.target.style.height = Math.min(e.target.scrollHeight, maxHeight) + \"px\";\n }}\n onKeyDown={(e) => {\n if (\n e.key === \"Enter\" &&\n !e.shiftKey &&\n !e.metaKey &&\n !e.nativeEvent.isComposing\n ) {\n e.preventDefault();\n if (canSubmit) {\n e.currentTarget.form?.requestSubmit();\n }\n }\n }}\n disabled={isLoading}\n className=\"w-full field-sizing-content resize-none px-2.5 pt-2.5 bg-transparent text-white placeholder-zinc-500 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed overflow-y-auto thread-scrollbar\"\n rows={1}\n />\n\n {/* Footer with controls */}\n <div className=\"flex justify-between items-center px-1 pb-2\">\n <div className=\"flex gap-1 m-2\">\n <label\n htmlFor=\"file-input\"\n className={`cursor-pointer ${isLoading ? \"opacity-50 cursor-not-allowed\" : \"\"\n }`}\n >\n <Paperclip\n size={30}\n className=\"text-zinc-400 hover:text-white hover:bg-zinc-800 rounded p-1 transition-colors\"\n />\n </label>\n <input\n id=\"file-input\"\n type=\"file\"\n multiple\n disabled={isLoading}\n accept={inputFileAccept}\n className=\"hidden\"\n onChange={handleFileSelect}\n />\n\n {/* Microphone Button */}\n {supportSpeechToText && (\n <button\n type=\"button\"\n onClick={handleMicClick}\n disabled={isLoading || isTranscribing}\n className={`${isRecording\n ? \"text-red-500 hover:bg-red-900/20\"\n : \"text-zinc-400 hover:text-white hover:bg-zinc-800\"\n } rounded p-1 transition-colors disabled:opacity-50 disabled:cursor-not-allowed`}\n title={isRecording ? `Recording... ${recordingTime}s` : \"Record audio\"}\n >\n {isRecording ? <Square size={24} className=\"animate-pulse\" /> : <Mic size={24} />}\n </button>\n )}\n </div>\n\n <div className=\"flex gap-2 items-center\">\n {isTranscribing && (\n <span className=\"text-xs text-zinc-400 flex items-center gap-1\">\n <Loader2 size={14} className=\"animate-spin\" />\n Transcribing...\n </span>\n )}\n\n {isLoading && onCancel && (\n <button\n type=\"button\"\n onClick={onCancel}\n className=\"px-3 py-1 text-xs text-zinc-400 hover:text-white hover:bg-zinc-800 rounded transition-colors\"\n >\n Cancel\n </button>\n )}\n\n <button\n type=\"submit\"\n disabled={!canSubmit}\n className=\"focus:outline-none transition-all bg-zinc-300 border rounded-full p-1 mx-2 cursor-pointer\"\n style={{ border: \"none\" }}\n >\n {isLoading ? (\n <Loader2 size={24} className=\"animate-spin text-black p-1\" />\n ) : (\n <MoveUp size={24} className=\"text-black p-1\" />\n )}\n </button>\n </div>\n </div>\n </form>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es16.js","sources":["../src/components/sidebar/ChatInput.tsx"],"sourcesContent":["import type { FileInfo } from \"@/types/fileInput\";\nimport { MoveUp, Paperclip, Loader2, Mic, Square } from \"lucide-react\";\nimport {\n type ChangeEvent,\n type Dispatch,\n type FormEvent,\n type SetStateAction,\n useState,\n type DragEvent,\n useRef,\n} from \"react\";\nimport { useAudioRecorder } from \"@/hooks/useAudioRecorder\";\n\nexport default function ChatInput({\n input,\n inputFileAccept = \".png,.jpg,.jpeg,.pdf,.docx\",\n setInput,\n supportSpeechToText = false,\n handleSubmit,\n fileInput,\n setFileInput,\n handleFileSelect,\n isLoading = false,\n onCancel,\n filePreview,\n}: {\n input: string;\n setInput: (value: string) => void;\n supportSpeechToText?: boolean;\n handleSubmit: (e: FormEvent<HTMLFormElement>) => void;\n fileInput: FileInfo[];\n setFileInput: Dispatch<SetStateAction<FileInfo[]>>;\n handleFileSelect: (event: ChangeEvent<HTMLInputElement>) => void;\n inputFileAccept?: string;\n isLoading?: boolean;\n onCancel?: () => void;\n filePreview?: (files: FileInfo[], setFileInput: Dispatch<SetStateAction<FileInfo[]>>) => React.ReactNode;\n}) {\n const canSubmit =\n (input.trim().length > 0 || fileInput.length > 0) && !isLoading;\n\n const [isDragOver, setIsDragOver] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n // Audio recording and transcription\n const { isRecording, recordingTime, isTranscribing, startRecording, stopRecording, transcribeAudio } = useAudioRecorder();\n\n const handleMicClick = async () => {\n if (isRecording) {\n // Stop recording and transcribe\n const audioBlob = await stopRecording();\n\n if (audioBlob) {\n try {\n const transcribedText = await transcribeAudio(audioBlob);\n\n if (transcribedText) {\n setInput(transcribedText);\n // Expand textarea to fit content\n if (textareaRef.current) {\n setTimeout(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n const maxHeight = 300;\n textareaRef.current.style.height = Math.min(textareaRef.current.scrollHeight, maxHeight) + \"px\";\n }\n }, 0);\n }\n }\n } catch (error) {\n alert(\"Failed to transcribe audio. Please try again.\");\n }\n }\n } else {\n // Start recording\n await startRecording();\n }\n };\n\n const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n handleSubmit(e);\n // Reset textarea height to initial size\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n }\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(true);\n };\n\n const handleDragLeave = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n };\n\n const handleDrop = async (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n\n const files = Array.from(e.dataTransfer.files);\n if (files.length === 0) return;\n\n const acceptedFiles = files.filter(file => {\n if (!inputFileAccept) return true;\n const acceptTypes = inputFileAccept.split(',').map(type => type.trim());\n return acceptTypes.some(type => {\n if (type.startsWith('.')) {\n return file.name.toLowerCase().endsWith(type.toLowerCase());\n }\n return file.type.match(type.replace('*', '.*'));\n });\n });\n\n if (acceptedFiles.length === 0) return;\n\n const fileDetails: FileInfo[] = await Promise.all(\n acceptedFiles.map(async (file) => {\n const base64Data = await new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result.split(\",\")[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n\n return {\n fileName: file.name,\n fileType: file.type,\n file: file,\n fileData: base64Data,\n };\n })\n );\n\n setFileInput((prevFile) => [...prevFile, ...fileDetails]);\n };\n\n return (\n <form\n onSubmit={onSubmit}\n className={`relative flex flex-col border rounded-xl m-2 bg-zinc-900 border-zinc-800 transition-colors ${isDragOver ? 'border-blue-500 bg-zinc-800' : ''\n }`}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {/* File attachments preview */}\n {filePreview && filePreview(fileInput, setFileInput)}\n\n {/* Text input */}\n <textarea\n ref={textareaRef}\n placeholder=\"Type your message...\"\n value={input}\n onChange={(e) => {\n setInput(e.target.value)\n const maxHeight = 300; // max height in pixels\n e.target.style.height = \"auto\"; // reset height\n e.target.style.height = Math.min(e.target.scrollHeight, maxHeight) + \"px\";\n }}\n onKeyDown={(e) => {\n if (\n e.key === \"Enter\" &&\n !e.shiftKey &&\n !e.metaKey &&\n !e.nativeEvent.isComposing\n ) {\n e.preventDefault();\n if (canSubmit) {\n e.currentTarget.form?.requestSubmit();\n }\n }\n }}\n disabled={isLoading}\n className=\"w-full field-sizing-content resize-none px-2.5 pt-2.5 bg-transparent text-white placeholder-zinc-500 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed overflow-y-auto thread-scrollbar\"\n rows={1}\n />\n\n {/* Footer with controls */}\n <div className=\"flex justify-between items-center px-1 pb-2\">\n <div className=\"flex gap-1 m-2\">\n <label\n htmlFor=\"file-input\"\n className={`cursor-pointer ${isLoading ? \"opacity-50 cursor-not-allowed\" : \"\"\n }`}\n >\n <Paperclip\n size={30}\n className=\"text-zinc-400 hover:text-white hover:bg-zinc-800 rounded p-1 transition-colors\"\n />\n </label>\n <input\n id=\"file-input\"\n type=\"file\"\n multiple\n disabled={isLoading}\n accept={inputFileAccept}\n className=\"hidden\"\n onChange={handleFileSelect}\n />\n\n {/* Microphone Button */}\n {supportSpeechToText && (\n <button\n type=\"button\"\n onClick={handleMicClick}\n disabled={isLoading || isTranscribing}\n className={`${isRecording\n ? \"text-red-500 hover:bg-red-900/20\"\n : \"text-zinc-400 hover:text-white hover:bg-zinc-800\"\n } rounded p-1 transition-colors disabled:opacity-50 disabled:cursor-not-allowed`}\n title={isRecording ? `Recording... ${recordingTime}s` : \"Record audio\"}\n >\n {isRecording ? <Square size={24} className=\"animate-pulse\" /> : <Mic size={24} />}\n </button>\n )}\n </div>\n\n <div className=\"flex gap-2 items-center\">\n {isTranscribing && (\n <span className=\"text-xs text-zinc-400 flex items-center gap-1\">\n <Loader2 size={14} className=\"animate-spin\" />\n Transcribing...\n </span>\n )}\n\n {isLoading && onCancel && (\n <button\n type=\"button\"\n onClick={onCancel}\n className=\"px-3 py-1 text-xs text-zinc-400 hover:text-white hover:bg-zinc-800 rounded transition-colors\"\n >\n Cancel\n </button>\n )}\n\n <button\n type=\"submit\"\n disabled={!canSubmit}\n className=\"focus:outline-none transition-all bg-zinc-300 border rounded-full p-1 mx-2 cursor-pointer\"\n style={{ border: \"none\" }}\n >\n {isLoading ? (\n <Loader2 size={24} className=\"animate-spin text-black p-1\" />\n ) : (\n <MoveUp size={24} className=\"text-black p-1\" />\n )}\n </button>\n </div>\n </div>\n </form>\n );\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.es160.js
CHANGED
package/dist/index.es161.js
CHANGED
package/dist/index.es162.js
CHANGED
package/dist/index.es163.js
CHANGED
package/dist/index.es164.js
CHANGED
package/dist/index.es165.js
CHANGED
package/dist/index.es166.js
CHANGED
package/dist/index.es167.js
CHANGED
package/dist/index.es168.js
CHANGED
package/dist/index.es169.js
CHANGED
package/dist/index.es170.js
CHANGED
package/dist/index.es171.js
CHANGED
package/dist/index.es172.js
CHANGED
package/dist/index.es173.js
CHANGED
package/dist/index.es174.js
CHANGED
package/dist/index.es175.js
CHANGED
package/dist/index.es176.js
CHANGED
package/dist/index.es177.js
CHANGED
package/dist/index.es178.js
CHANGED
package/dist/index.es179.js
CHANGED
package/dist/index.es18.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { __export } from "./index.es56.js";
|
|
2
2
|
import { parseMimeType, parseBase64DataUrl, isURLContentBlock, isPlainTextContentBlock, isIDContentBlock, isDataContentBlock, isBase64ContentBlock, convertToProviderContentBlock, convertToOpenAIImageBlock } from "./index.es57.js";
|
|
3
3
|
import { isMessage } from "./index.es58.js";
|
|
4
|
-
import { mergeContent, isOpenAIToolCallArray, isBaseMessageChunk, isBaseMessage, _mergeStatus, _mergeObj, _mergeLists, _mergeDicts, _isMessageFieldWithRole, BaseMessageChunk, BaseMessage } from "./index.
|
|
4
|
+
import { mergeContent, isOpenAIToolCallArray, isBaseMessageChunk, isBaseMessage, _mergeStatus, _mergeObj, _mergeLists, _mergeDicts, _isMessageFieldWithRole, BaseMessageChunk, BaseMessage } from "./index.es45.js";
|
|
5
5
|
import { mergeUsageMetadata, mergeResponseMetadata } from "./index.es59.js";
|
|
6
|
-
import { isToolMessageChunk, isToolMessage, isDirectToolOutput, defaultToolCallParser, ToolMessageChunk, ToolMessage } from "./index.
|
|
6
|
+
import { isToolMessageChunk, isToolMessage, isDirectToolOutput, defaultToolCallParser, ToolMessageChunk, ToolMessage } from "./index.es49.js";
|
|
7
7
|
import { isChatMessageChunk, isChatMessage, ChatMessageChunk, ChatMessage } from "./index.es60.js";
|
|
8
8
|
import { isFunctionMessageChunk, isFunctionMessage, FunctionMessageChunk, FunctionMessage } from "./index.es61.js";
|
|
9
|
-
import { isHumanMessageChunk, isHumanMessage, HumanMessageChunk, HumanMessage } from "./index.
|
|
10
|
-
import { RemoveMessage } from "./index.
|
|
11
|
-
import { isSystemMessageChunk, isSystemMessage, SystemMessageChunk, SystemMessage } from "./index.
|
|
12
|
-
import { mapStoredMessagesToChatMessages, mapStoredMessageToChatMessage, mapChatMessagesToStoredMessages, iife, getBufferString, convertToChunk, collapseToolCallChunks, coerceMessageLikeToMessage } from "./index.
|
|
13
|
-
import { isAIMessageChunk, isAIMessage, AIMessageChunk, AIMessage } from "./index.
|
|
9
|
+
import { isHumanMessageChunk, isHumanMessage, HumanMessageChunk, HumanMessage } from "./index.es46.js";
|
|
10
|
+
import { RemoveMessage } from "./index.es50.js";
|
|
11
|
+
import { isSystemMessageChunk, isSystemMessage, SystemMessageChunk, SystemMessage } from "./index.es48.js";
|
|
12
|
+
import { mapStoredMessagesToChatMessages, mapStoredMessageToChatMessage, mapChatMessagesToStoredMessages, iife, getBufferString, convertToChunk, collapseToolCallChunks, coerceMessageLikeToMessage } from "./index.es51.js";
|
|
13
|
+
import { isAIMessageChunk, isAIMessage, AIMessageChunk, AIMessage } from "./index.es47.js";
|
|
14
14
|
import { trimMessages, mergeMessageRuns, filterMessages, defaultTextSplitter } from "./index.es62.js";
|
|
15
15
|
import { KNOWN_BLOCK_TYPES as KNOWN_BLOCK_TYPES$2 } from "./index.es63.js";
|
|
16
16
|
var messages_exports = {};
|
package/dist/index.es180.js
CHANGED
package/dist/index.es181.js
CHANGED
package/dist/index.es182.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as solarizedDarkAtom } from "./index.
|
|
1
|
+
import { __exports as solarizedDarkAtom } from "./index.es230.js";
|
|
2
2
|
var hasRequiredSolarizedDarkAtom;
|
|
3
3
|
function requireSolarizedDarkAtom() {
|
|
4
4
|
if (hasRequiredSolarizedDarkAtom) return solarizedDarkAtom;
|
package/dist/index.es183.js
CHANGED
package/dist/index.es184.js
CHANGED
package/dist/index.es185.js
CHANGED
package/dist/index.es186.js
CHANGED
package/dist/index.es187.js
CHANGED
package/dist/index.es191.js
CHANGED
|
@@ -1,59 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var env_exports = {};
|
|
3
|
-
__export(env_exports, {
|
|
4
|
-
getEnv: () => getEnv,
|
|
5
|
-
getEnvironmentVariable: () => getEnvironmentVariable,
|
|
6
|
-
getRuntimeEnvironment: () => getRuntimeEnvironment,
|
|
7
|
-
isBrowser: () => isBrowser,
|
|
8
|
-
isDeno: () => isDeno,
|
|
9
|
-
isJsDom: () => isJsDom,
|
|
10
|
-
isNode: () => isNode,
|
|
11
|
-
isWebWorker: () => isWebWorker
|
|
12
|
-
});
|
|
13
|
-
const isBrowser = () => typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
14
|
-
const isWebWorker = () => typeof globalThis === "object" && globalThis.constructor && globalThis.constructor.name === "DedicatedWorkerGlobalScope";
|
|
15
|
-
const isJsDom = () => typeof window !== "undefined" && window.name === "nodejs" || typeof navigator !== "undefined" && navigator.userAgent.includes("jsdom");
|
|
16
|
-
const isDeno = () => typeof Deno !== "undefined";
|
|
17
|
-
const isNode = () => typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.versions.node !== "undefined" && !isDeno();
|
|
18
|
-
const getEnv = () => {
|
|
19
|
-
let env;
|
|
20
|
-
if (isBrowser()) env = "browser";
|
|
21
|
-
else if (isNode()) env = "node";
|
|
22
|
-
else if (isWebWorker()) env = "webworker";
|
|
23
|
-
else if (isJsDom()) env = "jsdom";
|
|
24
|
-
else if (isDeno()) env = "deno";
|
|
25
|
-
else env = "other";
|
|
26
|
-
return env;
|
|
27
|
-
};
|
|
28
|
-
let runtimeEnvironment;
|
|
29
|
-
function getRuntimeEnvironment() {
|
|
30
|
-
if (runtimeEnvironment === void 0) {
|
|
31
|
-
const env = getEnv();
|
|
32
|
-
runtimeEnvironment = {
|
|
33
|
-
library: "langchain-js",
|
|
34
|
-
runtime: env
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return runtimeEnvironment;
|
|
38
|
-
}
|
|
39
|
-
function getEnvironmentVariable(name) {
|
|
40
|
-
try {
|
|
41
|
-
if (typeof process !== "undefined") return process.env?.[name];
|
|
42
|
-
else if (isDeno()) return Deno?.env.get(name);
|
|
43
|
-
else return void 0;
|
|
44
|
-
} catch {
|
|
45
|
-
return void 0;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
var interopRequireDefault = { exports: {} };
|
|
48
2
|
export {
|
|
49
|
-
|
|
50
|
-
getEnv,
|
|
51
|
-
getEnvironmentVariable,
|
|
52
|
-
getRuntimeEnvironment,
|
|
53
|
-
isBrowser,
|
|
54
|
-
isDeno,
|
|
55
|
-
isJsDom,
|
|
56
|
-
isNode,
|
|
57
|
-
isWebWorker
|
|
3
|
+
interopRequireDefault as __module
|
|
58
4
|
};
|
|
59
5
|
//# sourceMappingURL=index.es191.js.map
|
package/dist/index.es191.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es191.js","sources":[
|
|
1
|
+
{"version":3,"file":"index.es191.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index.es192.js
CHANGED
|
@@ -1,103 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import { get_lc_unique_name, Serializable } from "./index.es69.js";
|
|
3
|
-
import { getEnvironmentVariable } from "./index.es191.js";
|
|
4
|
-
import * as uuid from "uuid";
|
|
5
|
-
var base_exports = {};
|
|
6
|
-
__export(base_exports, {
|
|
7
|
-
BaseCallbackHandler: () => BaseCallbackHandler,
|
|
8
|
-
callbackHandlerPrefersStreaming: () => callbackHandlerPrefersStreaming,
|
|
9
|
-
isBaseCallbackHandler: () => isBaseCallbackHandler
|
|
10
|
-
});
|
|
11
|
-
var BaseCallbackHandlerMethodsClass = class {
|
|
12
|
-
};
|
|
13
|
-
function callbackHandlerPrefersStreaming(x) {
|
|
14
|
-
return "lc_prefer_streaming" in x && x.lc_prefer_streaming;
|
|
15
|
-
}
|
|
16
|
-
var BaseCallbackHandler = class extends BaseCallbackHandlerMethodsClass {
|
|
17
|
-
lc_serializable = false;
|
|
18
|
-
get lc_namespace() {
|
|
19
|
-
return [
|
|
20
|
-
"langchain_core",
|
|
21
|
-
"callbacks",
|
|
22
|
-
this.name
|
|
23
|
-
];
|
|
24
|
-
}
|
|
25
|
-
get lc_secrets() {
|
|
26
|
-
return void 0;
|
|
27
|
-
}
|
|
28
|
-
get lc_attributes() {
|
|
29
|
-
return void 0;
|
|
30
|
-
}
|
|
31
|
-
get lc_aliases() {
|
|
32
|
-
return void 0;
|
|
33
|
-
}
|
|
34
|
-
get lc_serializable_keys() {
|
|
35
|
-
return void 0;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* The name of the serializable. Override to provide an alias or
|
|
39
|
-
* to preserve the serialized module name in minified environments.
|
|
40
|
-
*
|
|
41
|
-
* Implemented as a static method to support loading logic.
|
|
42
|
-
*/
|
|
43
|
-
static lc_name() {
|
|
44
|
-
return this.name;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* The final serialized identifier for the module.
|
|
48
|
-
*/
|
|
49
|
-
get lc_id() {
|
|
50
|
-
return [...this.lc_namespace, get_lc_unique_name(this.constructor)];
|
|
51
|
-
}
|
|
52
|
-
lc_kwargs;
|
|
53
|
-
ignoreLLM = false;
|
|
54
|
-
ignoreChain = false;
|
|
55
|
-
ignoreAgent = false;
|
|
56
|
-
ignoreRetriever = false;
|
|
57
|
-
ignoreCustomEvent = false;
|
|
58
|
-
raiseError = false;
|
|
59
|
-
awaitHandlers = getEnvironmentVariable("LANGCHAIN_CALLBACKS_BACKGROUND") === "false";
|
|
60
|
-
constructor(input) {
|
|
61
|
-
super();
|
|
62
|
-
this.lc_kwargs = input || {};
|
|
63
|
-
if (input) {
|
|
64
|
-
this.ignoreLLM = input.ignoreLLM ?? this.ignoreLLM;
|
|
65
|
-
this.ignoreChain = input.ignoreChain ?? this.ignoreChain;
|
|
66
|
-
this.ignoreAgent = input.ignoreAgent ?? this.ignoreAgent;
|
|
67
|
-
this.ignoreRetriever = input.ignoreRetriever ?? this.ignoreRetriever;
|
|
68
|
-
this.ignoreCustomEvent = input.ignoreCustomEvent ?? this.ignoreCustomEvent;
|
|
69
|
-
this.raiseError = input.raiseError ?? this.raiseError;
|
|
70
|
-
this.awaitHandlers = this.raiseError || (input._awaitHandler ?? this.awaitHandlers);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
copy() {
|
|
74
|
-
return new this.constructor(this);
|
|
75
|
-
}
|
|
76
|
-
toJSON() {
|
|
77
|
-
return Serializable.prototype.toJSON.call(this);
|
|
78
|
-
}
|
|
79
|
-
toJSONNotImplemented() {
|
|
80
|
-
return Serializable.prototype.toJSONNotImplemented.call(this);
|
|
81
|
-
}
|
|
82
|
-
static fromMethods(methods) {
|
|
83
|
-
class Handler extends BaseCallbackHandler {
|
|
84
|
-
name = uuid.v7();
|
|
85
|
-
constructor() {
|
|
86
|
-
super();
|
|
87
|
-
Object.assign(this, methods);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return new Handler();
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
const isBaseCallbackHandler = (x) => {
|
|
94
|
-
const callbackHandler = x;
|
|
95
|
-
return callbackHandler !== void 0 && typeof callbackHandler.copy === "function" && typeof callbackHandler.name === "string" && typeof callbackHandler.awaitHandlers === "boolean";
|
|
96
|
-
};
|
|
1
|
+
var coy = {};
|
|
97
2
|
export {
|
|
98
|
-
|
|
99
|
-
base_exports,
|
|
100
|
-
callbackHandlerPrefersStreaming,
|
|
101
|
-
isBaseCallbackHandler
|
|
3
|
+
coy as __exports
|
|
102
4
|
};
|
|
103
5
|
//# sourceMappingURL=index.es192.js.map
|
package/dist/index.es192.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es192.js","sources":[
|
|
1
|
+
{"version":3,"file":"index.es192.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|