import React, { createContext, useContext, useMemo, useState } from "react"; import { DEFAULT_AGENT_ID, randomUUID } from "@copilotkitnext/shared"; import { jsx } from "react/jsx-runtime"; //#region src/providers/CopilotChatConfigurationProvider.tsx const CopilotChatDefaultLabels = { chatInputPlaceholder: "Type a message...", chatInputToolbarStartTranscribeButtonLabel: "Transcribe", chatInputToolbarCancelTranscribeButtonLabel: "Cancel", chatInputToolbarFinishTranscribeButtonLabel: "Finish", chatInputToolbarAddButtonLabel: "Add photos or files", chatInputToolbarToolsButtonLabel: "Tools", assistantMessageToolbarCopyCodeLabel: "Copy", assistantMessageToolbarCopyCodeCopiedLabel: "Copied", assistantMessageToolbarCopyMessageLabel: "Copy", assistantMessageToolbarThumbsUpLabel: "Good response", assistantMessageToolbarThumbsDownLabel: "Bad response", assistantMessageToolbarReadAloudLabel: "Read aloud", assistantMessageToolbarRegenerateLabel: "Regenerate", userMessageToolbarCopyMessageLabel: "Copy", userMessageToolbarEditMessageLabel: "Edit", chatDisclaimerText: "AI can make mistakes. Please verify important information.", chatToggleOpenLabel: "Open chat", chatToggleCloseLabel: "Close chat", modalHeaderTitle: "CopilotKit Chat", welcomeMessageText: "How can I help you today?" }; const CopilotChatConfiguration = createContext(null); const CopilotChatConfigurationProvider = ({ children, labels, agentId, threadId, isModalDefaultOpen }) => { const parentConfig = useContext(CopilotChatConfiguration); const mergedLabels = useMemo(() => ({ ...CopilotChatDefaultLabels, ...parentConfig?.labels ?? {}, ...labels ?? {} }), [labels, parentConfig?.labels]); const resolvedAgentId = agentId ?? parentConfig?.agentId ?? DEFAULT_AGENT_ID; const resolvedThreadId = useMemo(() => { if (threadId) return threadId; if (parentConfig?.threadId) return parentConfig.threadId; return randomUUID(); }, [threadId, parentConfig?.threadId]); const [internalModalOpen, setInternalModalOpen] = useState(isModalDefaultOpen ?? true); const resolvedIsModalOpen = parentConfig?.isModalOpen ?? internalModalOpen; const resolvedSetModalOpen = parentConfig?.setModalOpen ?? setInternalModalOpen; const configurationValue = useMemo(() => ({ labels: mergedLabels, agentId: resolvedAgentId, threadId: resolvedThreadId, isModalOpen: resolvedIsModalOpen, setModalOpen: resolvedSetModalOpen }), [ mergedLabels, resolvedAgentId, resolvedThreadId, resolvedIsModalOpen, resolvedSetModalOpen ]); return /* @__PURE__ */ jsx(CopilotChatConfiguration.Provider, { value: configurationValue, children }); }; const useCopilotChatConfiguration = () => { return useContext(CopilotChatConfiguration); }; //#endregion export { CopilotChatConfigurationProvider, CopilotChatDefaultLabels, useCopilotChatConfiguration }; //# sourceMappingURL=CopilotChatConfigurationProvider.mjs.map