@aigentyc/chat-sdk 0.1.3 → 0.2.0
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/AGENTS.md +189 -0
- package/bin/doctor.mjs +255 -0
- package/dist/ai-elements.cjs +119 -162
- package/dist/ai-elements.cjs.map +1 -1
- package/dist/ai-elements.js +5 -60
- package/dist/ai-elements.js.map +1 -1
- package/dist/{chunk-PKGD6CTD.js → chunk-2677FDTG.js} +107 -59
- package/dist/chunk-2677FDTG.js.map +1 -0
- package/dist/{chunk-42ARGQXE.js → chunk-7L4FS6G7.js} +7 -3
- package/dist/chunk-7L4FS6G7.js.map +1 -0
- package/dist/{chunk-VS3NZ7FX.js → chunk-A7PCSWIK.js} +60 -5
- package/dist/chunk-A7PCSWIK.js.map +1 -0
- package/dist/{chunk-WZLWAVSS.cjs → chunk-C24QG43M.cjs} +10 -2
- package/dist/chunk-C24QG43M.cjs.map +1 -0
- package/dist/{chunk-NW2ESHRV.js → chunk-KVEJAPWA.js} +4 -8
- package/dist/chunk-KVEJAPWA.js.map +1 -0
- package/dist/{chunk-X5YEOOPK.cjs → chunk-QDFPJJ5Y.cjs} +5 -13
- package/dist/chunk-QDFPJJ5Y.cjs.map +1 -0
- package/dist/{chunk-FQN6OBGN.cjs → chunk-RTVEBPAJ.cjs} +63 -4
- package/dist/chunk-RTVEBPAJ.cjs.map +1 -0
- package/dist/{chunk-IWIGM3RY.cjs → chunk-WQARQ2FJ.cjs} +109 -61
- package/dist/chunk-WQARQ2FJ.cjs.map +1 -0
- package/dist/components.cjs +14 -14
- package/dist/components.d.cts +5 -0
- package/dist/components.d.ts +5 -0
- package/dist/components.js +4 -4
- package/dist/index.cjs +14 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +769 -0
- package/dist/ui.cjs +51 -51
- package/dist/ui.js +2 -2
- package/llms.txt +323 -0
- package/package.json +10 -2
- package/dist/chunk-42ARGQXE.js.map +0 -1
- package/dist/chunk-FQN6OBGN.cjs.map +0 -1
- package/dist/chunk-IWIGM3RY.cjs.map +0 -1
- package/dist/chunk-NW2ESHRV.js.map +0 -1
- package/dist/chunk-PKGD6CTD.js.map +0 -1
- package/dist/chunk-VS3NZ7FX.js.map +0 -1
- package/dist/chunk-WZLWAVSS.cjs.map +0 -1
- package/dist/chunk-X5YEOOPK.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ai-elements/conversation.tsx","../src/ai-elements/loader.tsx","../src/ai-elements/sources.tsx"],"names":["jsx","StickToBottom","cn","jsxs","Fragment","useStickToBottomContext","useCallback","Button","ArrowDownIcon","Collapsible","CollapsibleTrigger","ChevronDownIcon","CollapsibleContent","BookIcon"],"mappings":"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","file":"chunk-RTVEBPAJ.cjs","sourcesContent":["\"use client\";\n\nimport { Button } from \"../ui/button\";\nimport { cn } from \"../core/utils\";\nimport { ArrowDownIcon } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { useCallback } from \"react\";\nimport { StickToBottom, useStickToBottomContext } from \"use-stick-to-bottom\";\n\nexport type ConversationProps = ComponentProps<typeof StickToBottom>;\n\nexport const Conversation = ({ className, ...props }: ConversationProps) => (\n <StickToBottom\n className={cn(\"relative flex-1 overflow-y-hidden\", className)}\n initial=\"smooth\"\n resize=\"smooth\"\n role=\"log\"\n {...props}\n />\n);\n\nexport type ConversationContentProps = ComponentProps<\n typeof StickToBottom.Content\n>;\n\nexport const ConversationContent = ({\n className,\n ...props\n}: ConversationContentProps) => (\n <StickToBottom.Content\n className={cn(\"flex flex-col gap-8\", className)}\n {...props}\n />\n);\n\nexport type ConversationEmptyStateProps = ComponentProps<\"div\"> & {\n title?: string;\n description?: string;\n icon?: React.ReactNode;\n};\n\nexport const ConversationEmptyState = ({\n className,\n title = \"No messages yet\",\n description = \"Start a conversation to see messages here\",\n icon,\n children,\n ...props\n}: ConversationEmptyStateProps) => (\n <div\n className={cn(\n \"flex size-full flex-col items-center justify-center gap-3 p-8 text-center\",\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n {icon && <div className=\"text-muted-foreground\">{icon}</div>}\n <div className=\"space-y-1\">\n <h3 className=\"font-medium text-sm\">{title}</h3>\n {description && (\n <p className=\"text-muted-foreground text-sm\">{description}</p>\n )}\n </div>\n </>\n )}\n </div>\n);\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({\n className,\n ...props\n}: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn(\n \"absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full\",\n className\n )}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n","\"use client\";\n\nimport { cn } from \"../core/utils\";\nimport type { HTMLAttributes } from \"react\";\n\nexport type LoaderProps = HTMLAttributes<HTMLDivElement> & {\n text?: string;\n};\n\nexport const Loader = ({ className, text = \"Thinking...\", ...props }: LoaderProps) => (\n <div\n className={cn(\n \"flex items-center gap-2 w-full py-3\",\n className\n )}\n style={{ color: \"var(--ac-loader-color, var(--ac-primary, #2f80ed))\" }}\n {...props}\n >\n {/* Circular spinner */}\n <svg\n className=\"animate-spin\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"8\"\n stroke=\"#E5E5E5\"\n strokeWidth=\"2\"\n fill=\"none\"\n />\n <path\n d=\"M10 2C14.4183 2 18 5.58172 18 10\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </svg>\n <span className=\"text-sm text-foreground\">{text}</span>\n </div>\n);\n\n// Spinner loader for other use cases\nexport type SpinnerLoaderProps = HTMLAttributes<HTMLDivElement> & {\n size?: number;\n};\n\nexport const SpinnerLoader = ({ className, size = 16, ...props }: SpinnerLoaderProps) => (\n <div\n className={cn(\n \"inline-flex animate-spin items-center justify-center\",\n className\n )}\n {...props}\n >\n <svg\n height={size}\n strokeLinejoin=\"round\"\n style={{ color: \"currentcolor\" }}\n viewBox=\"0 0 16 16\"\n width={size}\n >\n <title>Loader</title>\n <g clipPath=\"url(#clip0_2393_1490)\">\n <path d=\"M8 0V4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 16V12\" opacity=\"0.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M3.29773 1.52783L5.64887 4.7639\" opacity=\"0.9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12.7023 1.52783L10.3511 4.7639\" opacity=\"0.1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12.7023 14.472L10.3511 11.236\" opacity=\"0.4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M3.29773 14.472L5.64887 11.236\" opacity=\"0.6\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M15.6085 5.52783L11.8043 6.7639\" opacity=\"0.2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M0.391602 10.472L4.19583 9.23598\" opacity=\"0.7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M15.6085 10.4722L11.8043 9.2361\" opacity=\"0.3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M0.391602 5.52783L4.19583 6.7639\" opacity=\"0.8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </g>\n <defs>\n <clipPath id=\"clip0_2393_1490\">\n <rect fill=\"white\" height=\"16\" width=\"16\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n);\n","\"use client\";\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"../ui/collapsible\";\nimport { cn } from \"../core/utils\";\nimport { BookIcon, ChevronDownIcon } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nexport type SourcesProps = ComponentProps<\"div\">;\n\nexport const Sources = ({ className, ...props }: SourcesProps) => (\n <Collapsible\n className={cn(\"not-prose mb-4 text-primary text-xs\", className)}\n {...props}\n />\n);\n\nexport type SourcesTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n count: number;\n};\n\nexport const SourcesTrigger = ({\n className,\n count,\n children,\n ...props\n}: SourcesTriggerProps) => (\n <CollapsibleTrigger\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n >\n {children ?? (\n <>\n <p className=\"font-medium\">Used {count} sources</p>\n <ChevronDownIcon className=\"h-4 w-4\" />\n </>\n )}\n </CollapsibleTrigger>\n);\n\nexport type SourcesContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const SourcesContent = ({\n className,\n ...props\n}: SourcesContentProps) => (\n <CollapsibleContent\n className={cn(\n \"mt-3 flex w-fit flex-col gap-2\",\n \"data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in\",\n className\n )}\n {...props}\n />\n);\n\nexport type SourceProps = ComponentProps<\"a\">;\n\nexport const Source = ({ href, title, children, ...props }: SourceProps) => (\n <a\n className=\"flex items-center gap-2\"\n href={href}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children ?? (\n <>\n <BookIcon className=\"h-4 w-4\" />\n <span className=\"block font-medium\">{title}</span>\n </>\n )}\n </a>\n);\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkNYQSM3EB_cjs = require('./chunk-NYQSM3EB.cjs');
|
|
5
5
|
var chunk7BNYTOTE_cjs = require('./chunk-7BNYTOTE.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkRTVEBPAJ_cjs = require('./chunk-RTVEBPAJ.cjs');
|
|
7
7
|
var chunk3MP2EGEJ_cjs = require('./chunk-3MP2EGEJ.cjs');
|
|
8
8
|
var chunkDMGYQ6NN_cjs = require('./chunk-DMGYQ6NN.cjs');
|
|
9
9
|
var chunkJ2K7EJYP_cjs = require('./chunk-J2K7EJYP.cjs');
|
|
@@ -761,7 +761,38 @@ function CartDrawer({ storeOrigin, isOpen, onClose, onCartUpdate }) {
|
|
|
761
761
|
] })
|
|
762
762
|
] }) });
|
|
763
763
|
}
|
|
764
|
+
function extractKbSources(parts) {
|
|
765
|
+
if (!Array.isArray(parts)) return [];
|
|
766
|
+
const out = [];
|
|
767
|
+
for (const part of parts) {
|
|
768
|
+
const p = part;
|
|
769
|
+
if (typeof p?.type !== "string" || !p.type.startsWith("tool-")) continue;
|
|
770
|
+
const name = p.toolName ?? p.type.replace(/^tool-/, "");
|
|
771
|
+
if (name !== "searchKnowledgeBase") continue;
|
|
772
|
+
let output = p.output;
|
|
773
|
+
if (typeof output === "string") {
|
|
774
|
+
try {
|
|
775
|
+
output = JSON.parse(output);
|
|
776
|
+
} catch {
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
const sources = output?.sources;
|
|
780
|
+
if (Array.isArray(sources)) {
|
|
781
|
+
for (const s of sources) if (s) out.push(s);
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
const seen = /* @__PURE__ */ new Set();
|
|
785
|
+
const deduped = [];
|
|
786
|
+
for (const s of out) {
|
|
787
|
+
const key = s.sourceUrl || `${s.documentName ?? ""}::${s.id ?? ""}`;
|
|
788
|
+
if (seen.has(key)) continue;
|
|
789
|
+
seen.add(key);
|
|
790
|
+
deduped.push(s);
|
|
791
|
+
}
|
|
792
|
+
return deduped;
|
|
793
|
+
}
|
|
764
794
|
function ChatInterface(props) {
|
|
795
|
+
const { showSources = false } = props;
|
|
765
796
|
const { messages, status, sendMessage, sessionId, config, clearMessages } = chunkJ2K7EJYP_cjs.useChatContext();
|
|
766
797
|
const { t, direction } = chunk3MP2EGEJ_cjs.useI18n();
|
|
767
798
|
chunk7BNYTOTE_cjs.useTheme();
|
|
@@ -879,75 +910,92 @@ function ChatInterface(props) {
|
|
|
879
910
|
onCartUpdate: (count) => setCartCount(count)
|
|
880
911
|
}
|
|
881
912
|
),
|
|
882
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
913
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRTVEBPAJ_cjs.Conversation, { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRTVEBPAJ_cjs.ConversationContent, { className: "px-[15px] md:px-[40px] py-6 sm:py-8 w-full space-y-6", children: [
|
|
883
914
|
messages.map((message, messageIndex) => {
|
|
884
915
|
if (hideFirstUserMessage && messageIndex === 0 && message.role === "user") return null;
|
|
885
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
916
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
886
917
|
"div",
|
|
887
918
|
{
|
|
888
919
|
className: `group ${message.role === "assistant" ? "is-assistant" : "is-user"}`,
|
|
889
|
-
children: [
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
if (
|
|
896
|
-
|
|
920
|
+
children: [
|
|
921
|
+
[...message.parts || []].sort((a, b) => {
|
|
922
|
+
if (a.type === "text" && b.type !== "text") return -1;
|
|
923
|
+
if (a.type !== "text" && b.type === "text") return 1;
|
|
924
|
+
return 0;
|
|
925
|
+
}).map((part, i) => {
|
|
926
|
+
if (part.type === "text") {
|
|
927
|
+
if (message.role === "assistant") {
|
|
928
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
929
|
+
"div",
|
|
930
|
+
{
|
|
931
|
+
className: "flex gap-[10px] items-start rounded-2xl",
|
|
932
|
+
style: {
|
|
933
|
+
backgroundColor: "var(--ac-assistant-bubble-bg, transparent)",
|
|
934
|
+
padding: "var(--ac-assistant-bubble-padding, 0)",
|
|
935
|
+
color: "var(--ac-assistant-bubble-text, var(--ac-text))"
|
|
936
|
+
},
|
|
937
|
+
children: [
|
|
938
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SparklesIcon, { className: "mt-[2px] w-4 h-4 shrink-0", style: { color: "var(--ac-primary)" } }),
|
|
939
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0 whitespace-pre-wrap", children: part.text })
|
|
940
|
+
]
|
|
941
|
+
}
|
|
942
|
+
) }, `${message.id}-${i}`);
|
|
943
|
+
}
|
|
944
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
897
945
|
"div",
|
|
898
946
|
{
|
|
899
|
-
className: "
|
|
947
|
+
className: "inline-block rounded-2xl px-3 py-2 max-w-[85%]",
|
|
900
948
|
style: {
|
|
901
|
-
backgroundColor: "var(--ac-
|
|
902
|
-
|
|
903
|
-
color: "var(--ac-assistant-bubble-text, var(--ac-text))"
|
|
949
|
+
backgroundColor: "var(--ac-user-bubble-bg, var(--ac-primary))",
|
|
950
|
+
color: "var(--ac-primary-foreground, #fff)"
|
|
904
951
|
},
|
|
905
|
-
children:
|
|
906
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SparklesIcon, { className: "mt-[2px] w-4 h-4 shrink-0", style: { color: "var(--ac-primary)" } }),
|
|
907
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0 whitespace-pre-wrap", children: part.text })
|
|
908
|
-
]
|
|
909
|
-
}
|
|
910
|
-
) }, `${message.id}-${i}`);
|
|
911
|
-
}
|
|
912
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
913
|
-
"div",
|
|
914
|
-
{
|
|
915
|
-
className: "inline-block rounded-2xl px-3 py-2 max-w-[85%]",
|
|
916
|
-
style: {
|
|
917
|
-
backgroundColor: "var(--ac-user-bubble-bg, var(--ac-primary))",
|
|
918
|
-
color: "var(--ac-primary-foreground, #fff)"
|
|
952
|
+
children: part.text
|
|
919
953
|
},
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
)
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
} catch {
|
|
954
|
+
`${message.id}-${i}`
|
|
955
|
+
);
|
|
956
|
+
}
|
|
957
|
+
if (part.type.startsWith("tool-")) {
|
|
958
|
+
const toolName = part.type.replace("tool-", "");
|
|
959
|
+
if (toolName === "requestHumanChat") return null;
|
|
960
|
+
let output = part.output;
|
|
961
|
+
if (typeof output === "string") {
|
|
962
|
+
try {
|
|
963
|
+
output = JSON.parse(output);
|
|
964
|
+
} catch {
|
|
965
|
+
}
|
|
933
966
|
}
|
|
967
|
+
const result = output && typeof output === "object" && !Array.isArray(output) && ("data" in output || "uiRenderMode" in output) ? output : { data: output };
|
|
968
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
969
|
+
chunkDMGYQ6NN_cjs.ToolRenderer,
|
|
970
|
+
{
|
|
971
|
+
toolName,
|
|
972
|
+
state: part.state ?? "output-available",
|
|
973
|
+
args: part.input ?? {},
|
|
974
|
+
result,
|
|
975
|
+
onSendMessage: handleSubmit,
|
|
976
|
+
isProcessing
|
|
977
|
+
},
|
|
978
|
+
`${message.id}-tool-${i}`
|
|
979
|
+
);
|
|
934
980
|
}
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
981
|
+
return null;
|
|
982
|
+
}),
|
|
983
|
+
showSources && message.role === "assistant" && (() => {
|
|
984
|
+
const kbSources = extractKbSources(message.parts);
|
|
985
|
+
if (kbSources.length === 0) return null;
|
|
986
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkRTVEBPAJ_cjs.Sources, { children: [
|
|
987
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRTVEBPAJ_cjs.SourcesTrigger, { count: kbSources.length }),
|
|
988
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRTVEBPAJ_cjs.SourcesContent, { children: kbSources.map((s, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
989
|
+
chunkRTVEBPAJ_cjs.Source,
|
|
990
|
+
{
|
|
991
|
+
href: s.sourceUrl ?? "#",
|
|
992
|
+
title: s.documentName || s.pageTitle || `Source ${idx + 1}`
|
|
993
|
+
},
|
|
994
|
+
`${message.id}-src-${idx}`
|
|
995
|
+
)) })
|
|
996
|
+
] });
|
|
997
|
+
})()
|
|
998
|
+
]
|
|
951
999
|
},
|
|
952
1000
|
message.id
|
|
953
1001
|
);
|
|
@@ -960,7 +1008,7 @@ function ChatInterface(props) {
|
|
|
960
1008
|
);
|
|
961
1009
|
const allToolsComplete = (lastMessage.parts || []).filter((p) => p.type.startsWith("tool-")).every((p) => p.state === "output-available");
|
|
962
1010
|
return allToolsComplete && !hasText;
|
|
963
|
-
})() && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1011
|
+
})() && /* @__PURE__ */ jsxRuntime.jsx(chunkRTVEBPAJ_cjs.Loader, { text: t("thinking") })
|
|
964
1012
|
] }) }),
|
|
965
1013
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 px-[15px] md:px-[40px] pb-2", style: { backgroundColor: "var(--ac-background)" }, children: [
|
|
966
1014
|
props.pageQuestions && props.pageQuestions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1639,5 +1687,5 @@ exports.MobileLiveChatDrawer = MobileLiveChatDrawer;
|
|
|
1639
1687
|
exports.PreviewEmbedPanel = PreviewEmbedPanel;
|
|
1640
1688
|
exports.QuickQuestions = QuickQuestions;
|
|
1641
1689
|
exports.WelcomePage = WelcomePage;
|
|
1642
|
-
//# sourceMappingURL=chunk-
|
|
1643
|
-
//# sourceMappingURL=chunk-
|
|
1690
|
+
//# sourceMappingURL=chunk-WQARQ2FJ.cjs.map
|
|
1691
|
+
//# sourceMappingURL=chunk-WQARQ2FJ.cjs.map
|