@bikdotai/bik-component-library 0.0.862 → 0.0.863-beta.1
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/cjs/components/bik-copilot/BIKCopilot.js +2 -0
- package/dist/cjs/components/bik-copilot/BIKCopilot.js.map +1 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.js +2 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.js.map +1 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js +27 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.js +2 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.styled.js +42 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.js +2 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js +460 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/copilotPlacement.js +2 -0
- package/dist/cjs/components/bik-copilot/copilotPlacement.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotDb.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotDb.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotPageSession.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotPageSession.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotSseParser.js +7 -0
- package/dist/cjs/components/bik-copilot/services/copilotSseParser.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js +2 -0
- package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
- package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js +2 -0
- package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
- package/dist/cjs/components/bik-copilot/useDraggableFloater.js +2 -0
- package/dist/cjs/components/bik-copilot/useDraggableFloater.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/bik-copilot/BIKCopilot.d.ts +32 -0
- package/dist/esm/components/bik-copilot/BIKCopilot.js +114 -0
- package/dist/esm/components/bik-copilot/BIKCopilot.js.map +1 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.d.ts +14 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.js +170 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.js.map +1 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.d.ts +7 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js +31 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotBall.d.ts +13 -0
- package/dist/esm/components/bik-copilot/CopilotBall.js +50 -0
- package/dist/esm/components/bik-copilot/CopilotBall.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotBall.styled.d.ts +9 -0
- package/dist/esm/components/bik-copilot/CopilotBall.styled.js +46 -0
- package/dist/esm/components/bik-copilot/CopilotBall.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.d.ts +9 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.js +379 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.d.ts +64 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.js +496 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/copilotPlacement.d.ts +24 -0
- package/dist/esm/components/bik-copilot/copilotPlacement.js +38 -0
- package/dist/esm/components/bik-copilot/copilotPlacement.js.map +1 -0
- package/dist/esm/components/bik-copilot/index.d.ts +16 -0
- package/dist/esm/components/bik-copilot/model.d.ts +674 -0
- package/dist/esm/components/bik-copilot/services/copilotDb.d.ts +90 -0
- package/dist/esm/components/bik-copilot/services/copilotDb.js +96 -0
- package/dist/esm/components/bik-copilot/services/copilotDb.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.d.ts +11 -0
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js +54 -0
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.d.ts +23 -0
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js +78 -0
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotPageSession.d.ts +37 -0
- package/dist/esm/components/bik-copilot/services/copilotPageSession.js +35 -0
- package/dist/esm/components/bik-copilot/services/copilotPageSession.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotSseParser.d.ts +22 -0
- package/dist/esm/components/bik-copilot/services/copilotSseParser.js +52 -0
- package/dist/esm/components/bik-copilot/services/copilotSseParser.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.d.ts +31 -0
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.js +103 -0
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.d.ts +17 -0
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js +60 -0
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.d.ts +20 -0
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.js +333 -0
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
- package/dist/esm/components/bik-copilot/useDraggableFloater.d.ts +9 -0
- package/dist/esm/components/bik-copilot/useDraggableFloater.js +118 -0
- package/dist/esm/components/bik-copilot/useDraggableFloater.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +832 -782
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilotStreamClient.js","sources":["../../../../../src/components/bik-copilot/services/copilotStreamClient.ts"],"sourcesContent":["import {\n\tCopilotStreamEvent,\n\tCopilotStreamHandlers,\n\tCopilotStreamRequest,\n\tStreamCopilotChatOptions,\n} from '../model';\nimport { CopilotSseParser } from './copilotSseParser';\n\n/** Default path of the streaming copilot endpoint. */\nexport const COPILOT_ENDPOINT_PATH = '/bik-ai/copilot-chatbot';\n\nconst buildRequestBody = (request: CopilotStreamRequest) => ({\n\tstore_id: request.storeId,\n\tagent: request.agent,\n\troute: request.route,\n\tuser_prompt: request.userPrompt,\n\tsession_id: request.sessionId,\n\t// Trimmed, then left out rather than sent empty: the backend reads a missing\n\t// key as \"no signed-in user\", which a blank string would not.\n\t...(request.email?.trim() ? { email: request.email.trim() } : {}),\n\t// Omitted on the first turn; from the second turn on it is the `responseId`\n\t// of the previous TEXT event, which is how OpenAI keeps the thread's context.\n\t...(request.previousResponseId\n\t\t? { previous_response_id: request.previousResponseId }\n\t\t: {}),\n\t...(request.systemPrompt ? { system_prompt: request.systemPrompt } : {}),\n\t...(request.model ? { model: request.model } : {}),\n\t...(request.maxOutputTokens\n\t\t? { max_output_tokens: request.maxOutputTokens }\n\t\t: {}),\n});\n\n/**\n * Reads an event's `content`, which the backend sends two ways: a bare string on\n * `STREAM` and `ERROR`, and an `{ type, message, followUps }` payload on `TEXT`.\n *\n * Anything unrecognised reads as empty text rather than throwing, so a shape the\n * backend adds later cannot break a turn that is otherwise fine.\n */\nexport const readCopilotEventContent = (\n\tevent: CopilotStreamEvent,\n): { text: string; followUps?: string[] } => {\n\tconst { content } = event;\n\n\tif (typeof content === 'string') {\n\t\treturn { text: content };\n\t}\n\tif (!content || typeof content !== 'object') {\n\t\treturn { text: '' };\n\t}\n\n\tconst followUps = Array.isArray(content.followUps)\n\t\t? content.followUps.filter(\n\t\t\t\t(followUp): followUp is string =>\n\t\t\t\t\ttypeof followUp === 'string' && followUp.trim().length > 0,\n\t\t )\n\t\t: undefined;\n\n\treturn {\n\t\ttext: typeof content.message === 'string' ? content.message : '',\n\t\t...(followUps && followUps.length > 0 ? { followUps } : {}),\n\t};\n};\n\nconst parseEvent = (payload: string): CopilotStreamEvent | null => {\n\ttry {\n\t\tconst parsed = JSON.parse(payload) as unknown;\n\t\tif (typeof parsed !== 'object' || parsed === null) {\n\t\t\treturn null;\n\t\t}\n\t\tconst event = parsed as CopilotStreamEvent;\n\t\treturn event.type ? event : null;\n\t} catch {\n\t\t// A frame that is not JSON is not something this endpoint emits; dropping\n\t\t// it is better than tearing down a stream that is otherwise fine.\n\t\treturn null;\n\t}\n};\n\n/**\n * Opens one streaming copilot turn and drives the handlers until the server\n * closes the stream.\n *\n * The endpoint's `STOP` never reaches the client as a frame — the server breaks\n * out of its generator, which ends the HTTP stream. So \"the reader is done\" is\n * what completion means here, and `onComplete` fires from there.\n *\n * `TEXT` carries the **whole** message, so it is authoritative: a caller should\n * replace the text accumulated from `STREAM` chunks with it rather than append.\n * When a turn fails halfway the server still sends `TEXT` with the partial\n * answer but **without** `responseId` — that intentionally drops the thread, so\n * the next turn must start fresh.\n *\n * @returns a function that aborts the in-flight stream.\n */\nexport const streamCopilotChat = (\n\t{\n\t\tbaseUrl,\n\t\tendpointPath = COPILOT_ENDPOINT_PATH,\n\t\theaders,\n\t\tauthToken,\n\t\tgetAuthToken,\n\t\tfetchImpl,\n\t\t...request\n\t}: StreamCopilotChatOptions,\n\thandlers: CopilotStreamHandlers,\n): (() => void) => {\n\tconst abortController = new AbortController();\n\n\tconst run = async () => {\n\t\tconst url = `${baseUrl.replace(/\\/$/, '')}${endpointPath}`;\n\t\tconst token = getAuthToken ? await getAuthToken() : authToken;\n\t\tconst doFetch = fetchImpl ?? fetch;\n\n\t\tconst response = await doFetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\tAccept: 'text/event-stream',\n\t\t\t\t...(token ? { authorization: token } : {}),\n\t\t\t\t...headers,\n\t\t\t},\n\t\t\tbody: JSON.stringify(buildRequestBody(request)),\n\t\t\tsignal: abortController.signal,\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tconst detail = await response.text().catch(() => '');\n\t\t\tthrow new Error(\n\t\t\t\t`Copilot request failed with ${response.status}${\n\t\t\t\t\tdetail ? `: ${detail}` : ''\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\t\tif (!response.body) {\n\t\t\tthrow new Error('Copilot response carried no stream body');\n\t\t}\n\n\t\tconst reader = response.body.getReader();\n\t\tconst parser = new CopilotSseParser();\n\t\tlet decoder: TextDecoder | undefined;\n\n\t\tconst dispatch = (payloads: string[]) => {\n\t\t\tpayloads.forEach((payload) => {\n\t\t\t\tconst event = parseEvent(payload);\n\t\t\t\tif (event) {\n\t\t\t\t\thandlers.onEvent(event);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// Tests feed strings; the network feeds bytes.\n\t\t\tlet chunk: string;\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tchunk = value;\n\t\t\t} else {\n\t\t\t\tdecoder = decoder ?? new TextDecoder();\n\t\t\t\tchunk = decoder.decode(value, { stream: true });\n\t\t\t}\n\t\t\tdispatch(parser.push(chunk));\n\t\t}\n\n\t\tdispatch(parser.flush());\n\t};\n\n\trun()\n\t\t.then(() => handlers.onComplete?.())\n\t\t.catch((error: unknown) => {\n\t\t\tif (abortController.signal.aborted) {\n\t\t\t\thandlers.onAbort?.();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandlers.onError?.(\n\t\t\t\terror instanceof Error ? error : new Error(String(error)),\n\t\t\t);\n\t\t});\n\n\treturn () => abortController.abort();\n};\n"],"names":["COPILOT_ENDPOINT_PATH","buildRequestBody","request","readCopilotEventContent","event","content","followUps","followUp","parseEvent","payload","parsed","streamCopilotChat","baseUrl","endpointPath","headers","authToken","getAuthToken","fetchImpl","handlers","abortController","url","token","response","detail","reader","parser","CopilotSseParser","decoder","dispatch","payloads","done","value","chunk","error"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),_=require("./services/copilotIcebreakersClient.js"),f="BIK_ASSISTANT_AGENT",g="campaigns/overview",m=({baseUrl:a,icebreakersPath:n,headers:d,authToken:p,getAuthToken:C,fetchImpl:O,agent:c=f,route:i=g,storeId:u,enabled:l=!0})=>{const[o,k]=t.useState(null),[A,s]=t.useState(!1),[E,T]=t.useState(),[I,L]=t.useState(0),b=t.useRef(null);t.useEffect(()=>{if(!l)return;const e=new AbortController;return b.current?.abort(),b.current=e,s(!0),T(void 0),_.fetchCopilotIcebreakers({baseUrl:a,endpointPath:n,headers:d,authToken:p,getAuthToken:C,fetchImpl:O,agent:c,route:i,storeId:u,signal:e.signal}).then(r=>{e.signal.aborted||(k(r),s(!1))}).catch(r=>{e.signal.aborted||(T(r instanceof Error?r.message:String(r)),s(!1))}),()=>e.abort()},[c,i,u,l,a,n,I]);const S=t.useCallback(()=>L(e=>e+1),[]);return{icebreakers:t.useMemo(()=>(o?.icebreakers??[]).map((e,r)=>({id:`copilot-icebreaker-${r}`,text:e})),[o]),pageName:o?.pageName,matchedRoute:o?.route,isLoading:A,error:E,refresh:S}};exports.DEFAULT_COPILOT_AGENT=f;exports.DEFAULT_COPILOT_ROUTE=g;exports.useCopilotIcebreakers=m;
|
|
2
|
+
//# sourceMappingURL=useCopilotIcebreakers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopilotIcebreakers.js","sources":["../../../../src/components/bik-copilot/useCopilotIcebreakers.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n\tCopilotIcebreakersResult,\n\tUseCopilotIcebreakersOptions,\n\tUseCopilotIcebreakersResult,\n} from './model';\nimport { fetchCopilotIcebreakers } from './services/copilotIcebreakersClient';\n\n/** Agent hardcoded until more than one exists server side. */\nexport const DEFAULT_COPILOT_AGENT = 'BIK_ASSISTANT_AGENT';\n\n/**\n * Placeholder route. Replace it with the route the merchant is actually on —\n * the backend resolves both the ice breakers and the turn's page knowledge from\n * it, so a stale value means the copilot answers about the wrong page.\n */\nexport const DEFAULT_COPILOT_ROUTE = 'campaigns/overview';\n\n/**\n * Loads the suggested opening prompts for a route and maps them into the shape\n * the panel's suggestion chips take.\n *\n * Refetches whenever `agent` or `route` changes, so the chips follow the\n * merchant as they navigate, and aborts the in-flight request when they do.\n */\nexport const useCopilotIcebreakers = ({\n\tbaseUrl,\n\ticebreakersPath,\n\theaders,\n\tauthToken,\n\tgetAuthToken,\n\tfetchImpl,\n\tagent = DEFAULT_COPILOT_AGENT,\n\troute = DEFAULT_COPILOT_ROUTE,\n\tstoreId,\n\tenabled = true,\n}: UseCopilotIcebreakersOptions): UseCopilotIcebreakersResult => {\n\tconst [result, setResult] = useState<CopilotIcebreakersResult | null>(null);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [error, setError] = useState<string | undefined>();\n\tconst [reloadToken, setReloadToken] = useState(0);\n\n\tconst abortRef = useRef<AbortController | null>(null);\n\n\tuseEffect(() => {\n\t\tif (!enabled) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst abortController = new AbortController();\n\t\tabortRef.current?.abort();\n\t\tabortRef.current = abortController;\n\n\t\tsetIsLoading(true);\n\t\tsetError(undefined);\n\n\t\tfetchCopilotIcebreakers({\n\t\t\tbaseUrl,\n\t\t\tendpointPath: icebreakersPath,\n\t\t\theaders,\n\t\t\tauthToken,\n\t\t\tgetAuthToken,\n\t\t\tfetchImpl,\n\t\t\tagent,\n\t\t\troute,\n\t\t\tstoreId,\n\t\t\tsignal: abortController.signal,\n\t\t})\n\t\t\t.then((fetched) => {\n\t\t\t\tif (abortController.signal.aborted) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetResult(fetched);\n\t\t\t\tsetIsLoading(false);\n\t\t\t})\n\t\t\t.catch((fetchError: unknown) => {\n\t\t\t\tif (abortController.signal.aborted) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetError(\n\t\t\t\t\tfetchError instanceof Error ? fetchError.message : String(fetchError),\n\t\t\t\t);\n\t\t\t\tsetIsLoading(false);\n\t\t\t});\n\n\t\treturn () => abortController.abort();\n\t\t// The transport options are stable config in practice; re-running on a new\n\t\t// inline `headers` object would refetch on every render.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [agent, route, storeId, enabled, baseUrl, icebreakersPath, reloadToken]);\n\n\tconst refresh = useCallback(() => setReloadToken((token) => token + 1), []);\n\n\tconst icebreakers = useMemo(\n\t\t() =>\n\t\t\t(result?.icebreakers ?? []).map((text, index) => ({\n\t\t\t\tid: `copilot-icebreaker-${index}`,\n\t\t\t\ttext,\n\t\t\t})),\n\t\t[result],\n\t);\n\n\treturn {\n\t\ticebreakers,\n\t\tpageName: result?.pageName,\n\t\tmatchedRoute: result?.route,\n\t\tisLoading,\n\t\terror,\n\t\trefresh,\n\t};\n};\n"],"names":["DEFAULT_COPILOT_AGENT","DEFAULT_COPILOT_ROUTE","useCopilotIcebreakers","baseUrl","icebreakersPath","headers","authToken","getAuthToken","fetchImpl","agent","route","storeId","enabled","result","setResult","useState","isLoading","setIsLoading","error","setError","reloadToken","setReloadToken","abortRef","useRef","useEffect","abortController","fetchCopilotIcebreakers","fetched","fetchError","refresh","useCallback","token","useMemo","text","index"],"mappings":"6JASaA,EAAwB,sBAOxBC,EAAwB,qBASxBC,EAAwB,CAAC,CACrC,QAAAC,EACA,gBAAAC,EACA,QAAAC,EACA,UAAAC,EACA,aAAAC,EACA,UAAAC,EACA,MAAAC,EAAQT,EACR,MAAAU,EAAQT,EACR,QAAAU,EACA,QAAAC,EAAU,EACX,IAAiE,CAChE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAA0C,IAAI,EACpE,CAACC,EAAWC,CAAY,EAAIF,EAAAA,SAAS,EAAK,EAC1C,CAACG,EAAOC,CAAQ,EAAIJ,WAAA,EACpB,CAACK,EAAaC,CAAc,EAAIN,EAAAA,SAAS,CAAC,EAE1CO,EAAWC,EAAAA,OAA+B,IAAI,EAEpDC,EAAAA,UAAU,IAAM,CACf,GAAI,CAACZ,EACJ,OAGD,MAAMa,EAAkB,IAAI,gBAC5B,OAAAH,EAAS,SAAS,MAAA,EAClBA,EAAS,QAAUG,EAEnBR,EAAa,EAAI,EACjBE,EAAS,MAAS,EAElBO,0BAAwB,CACvB,QAAAvB,EACA,aAAcC,EACd,QAAAC,EACA,UAAAC,EACA,aAAAC,EACA,UAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,OAAQc,EAAgB,MAAA,CACxB,EACC,KAAME,GAAY,CACdF,EAAgB,OAAO,UAG3BX,EAAUa,CAAO,EACjBV,EAAa,EAAK,EACnB,CAAC,EACA,MAAOW,GAAwB,CAC3BH,EAAgB,OAAO,UAG3BN,EACCS,aAAsB,MAAQA,EAAW,QAAU,OAAOA,CAAU,CAAA,EAErEX,EAAa,EAAK,EACnB,CAAC,EAEK,IAAMQ,EAAgB,MAAA,CAI9B,EAAG,CAAChB,EAAOC,EAAOC,EAASC,EAAST,EAASC,EAAiBgB,CAAW,CAAC,EAE1E,MAAMS,EAAUC,EAAAA,YAAY,IAAMT,EAAgBU,GAAUA,EAAQ,CAAC,EAAG,EAAE,EAW1E,MAAO,CACN,YAVmBC,EAAAA,QACnB,KACEnB,GAAQ,aAAe,CAAA,GAAI,IAAI,CAACoB,EAAMC,KAAW,CACjD,GAAI,sBAAsBA,CAAK,GAC/B,KAAAD,CAAA,EACC,EACH,CAACpB,CAAM,CAAA,EAKP,SAAUA,GAAQ,SAClB,aAAcA,GAAQ,MACtB,UAAAG,EACA,MAAAE,EACA,QAAAW,CAAA,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),x=require("./services/copilotDb.js"),te=require("./services/copilotMessagesClient.js"),$=require("./services/copilotPageSession.js"),q=require("./services/copilotStreamClient.js"),re=require("./useCopilotIcebreakers.js"),se="Something went wrong. Please try again.",Ce=({storeId:a,agent:w=re.DEFAULT_COPILOT_AGENT,route:f=re.DEFAULT_COPILOT_ROUTE,email:j,messagesPath:z,loadHistory:X=!0,systemPrompt:Y,model:Z,maxOutputTokens:J,sessionId:p,persist:l=!0,onError:M,onResponseComplete:K,onSessionIdChange:A,baseUrl:T,endpointPath:Q,headers:k,authToken:O,getAuthToken:P,fetchImpl:H})=>{const[F,D]=r.useState([]),[ne,V]=r.useState(p??null),[b,y]=r.useState(!1),[oe,W]=r.useState(!0),[ce,h]=r.useState(),[ue,ae]=r.useState(),[ie,L]=r.useState(!1),[G,d]=r.useState(!1),C=r.useRef([]),N=r.useRef(void 0),g=r.useRef(null),c=r.useRef(null),E=r.useRef(p??null),U=r.useRef(f);U.current=f;const I=r.useRef(1),v=r.useRef(!1),u=r.useCallback(e=>{const t=e(C.current);C.current=t,D(t)},[]),m=r.useCallback(e=>{N.current=e,ae(e)},[]),R=r.useCallback(()=>{const e=E.current;!l||!e||x.persistCopilotTurn({route:U.current,sessionId:e,messages:C.current,previousResponseId:N.current,storeId:a,agent:w})},[w,l,a]),B=r.useRef({baseUrl:T,messagesPath:z,headers:k,authToken:O,getAuthToken:P,fetchImpl:H,storeId:a,loadHistory:X});B.current={baseUrl:T,messagesPath:z,headers:k,authToken:O,getAuthToken:P,fetchImpl:H,storeId:a,loadHistory:X};const _=r.useCallback(async e=>{const t=B.current,s=E.current;return!t.loadHistory||!s?null:te.fetchCopilotMessages({baseUrl:t.baseUrl,endpointPath:t.messagesPath,headers:t.headers,authToken:t.authToken,getAuthToken:t.getAuthToken,fetchImpl:t.fetchImpl,storeId:t.storeId,sessionId:s,page:e,pageSize:te.COPILOT_HISTORY_PAGE_SIZE})},[]);r.useEffect(()=>{let e=!1;return(async()=>{c.current?.(),c.current=null,g.current=null,y(!1),h(void 0),W(!0),d(!1),v.current=!1,L(!1);const s=p??(l?await $.resolveCopilotSessionIdForRoute({route:f,storeId:a}):$.getCopilotSessionIdForRoute({route:f,storeId:a})),n=l?await x.loadCopilotSession(f,s):null;if(!e){if(E.current=s,V(s),C.current=n?.messages??[],D(C.current),m(n?.previousResponseId),W(!1),A?.(s),C.current.length>0){I.current=2,d(B.current.loadHistory);return}if(!p){I.current=1,d(!1);return}I.current=1;try{const o=await _(1);if(e||!o)return;I.current=2,u(()=>o.messages),d(o.hasMore)}catch{d(!1)}}})(),()=>{e=!0}},[f,a,p,l,m,u,_]);const le=r.useCallback(()=>{if(v.current||!G)return;v.current=!0,L(!0);const e=I.current;(async()=>{try{const t=await _(e);if(!t){d(!1);return}I.current=e+1,d(t.hasMore),u(s=>{const n=new Set(s.flatMap(i=>i.messageId?[i.id,i.messageId]:[i.id])),o=t.messages.filter(i=>!n.has(i.id));return o.length>0?[...o,...s]:s})}catch(t){M?.(t instanceof Error?t:new Error(String(t)))}finally{v.current=!1,L(!1)}})()},[u,G,M,_]);r.useEffect(()=>{l&&x.pruneCopilotSessions()},[l]),r.useEffect(()=>()=>c.current?.(),[]);const S=r.useCallback(e=>{const t=g.current;g.current=null,t&&u(s=>s.map(n=>{if(n.id!==t)return n;const o={...n,isStreaming:!1};return e?e(o):o}).filter(n=>n.id!==t||n.content.length>0||n.wasInterrupted===!0))},[u]),ee=r.useCallback(e=>{const t=g.current;if(e.type==="STREAM"){const s=q.readCopilotEventContent(e).text;if(!t||!s)return;u(n=>n.map(o=>o.id===t?{...o,content:o.content+s,messageId:e.messageId??o.messageId}:o));return}if(e.type==="TEXT"){const{text:s,followUps:n}=q.readCopilotEventContent(e);S(o=>({...o,content:s,messageId:e.messageId??o.messageId,...n?{followUps:n}:{}})),m(e.responseId),R(),K?.({text:s,responseId:e.responseId,followUps:n});return}e.type==="ERROR"&&(h(q.readCopilotEventContent(e).text||se),S(),R())},[u,S,K,R,m]),fe=r.useCallback(e=>{const t=e.trim(),s=E.current;if(!t||!s||b)return;h(void 0);const n=Date.now(),o=`copilot-a-${n}`;g.current=o,u(i=>[...i,{id:`copilot-u-${n}`,role:"user",content:t,timestamp:n},{id:o,role:"assistant",content:"",timestamp:n+1,isStreaming:!0}]),y(!0),R(),c.current=q.streamCopilotChat({baseUrl:T,endpointPath:Q,headers:k,authToken:O,getAuthToken:P,fetchImpl:H,storeId:a,agent:w,route:f,email:j,userPrompt:t,sessionId:s,previousResponseId:N.current,systemPrompt:Y,model:Z,maxOutputTokens:J},{onEvent:ee,onComplete:()=>{S(),y(!1),c.current=null,R()},onError:i=>{h(i.message||se),S(),y(!1),c.current=null,R(),M?.(i)},onAbort:()=>{S(),y(!1),c.current=null,R()}})},[w,u,O,T,j,Q,H,S,P,ee,k,b,J,Z,M,f,R,a,Y]),de=r.useCallback(()=>{if(!c.current)return;const e=g.current;e&&u(t=>t.map(s=>s.id===e?{...s,wasInterrupted:!0}:s)),c.current(),c.current=null},[u]),Re=r.useCallback(()=>{c.current?.(),c.current=null,g.current=null,y(!1),h(void 0),I.current=1,v.current=!1,L(!1),d(!1);const e=U.current,t=E.current,s=p??$.resetCopilotSessionForRoute({route:e,storeId:a});E.current=s,V(s),C.current=[],D([]),m(void 0),l&&t&&x.deleteCopilotSession(e,t),A?.(s)},[A,l,p,m,a]),pe=r.useMemo(()=>b&&!F.some(e=>e.isStreaming&&e.content),[b,F]);return{messages:F,sessionId:ne,previousResponseId:ue,isStreaming:b,isThinking:pe,isRestoring:oe,isLoadingHistory:ie,hasMoreHistory:G,error:ce,sendMessage:fe,loadOlderMessages:le,stopStreaming:de,startNewConversation:Re}};exports.useCopilotStreamChat=Ce;
|
|
2
|
+
//# sourceMappingURL=useCopilotStreamChat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopilotStreamChat.js","sources":["../../../../src/components/bik-copilot/useCopilotStreamChat.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n\tCopilotMessage,\n\tCopilotStreamEvent,\n\tUseCopilotStreamChatOptions,\n\tUseCopilotStreamChatResult,\n} from './model';\nimport {\n\tdeleteCopilotSession,\n\tloadCopilotSession,\n\tpersistCopilotTurn,\n\tpruneCopilotSessions,\n} from './services/copilotDb';\nimport {\n\tCOPILOT_HISTORY_PAGE_SIZE,\n\tfetchCopilotMessages,\n} from './services/copilotMessagesClient';\nimport {\n\tgetCopilotSessionIdForRoute,\n\tresetCopilotSessionForRoute,\n\tresolveCopilotSessionIdForRoute,\n} from './services/copilotPageSession';\nimport {\n\treadCopilotEventContent,\n\tstreamCopilotChat,\n} from './services/copilotStreamClient';\nimport {\n\tDEFAULT_COPILOT_AGENT,\n\tDEFAULT_COPILOT_ROUTE,\n} from './useCopilotIcebreakers';\n\nconst GENERIC_ERROR = 'Something went wrong. Please try again.';\n\n/**\n * Runs a merchant copilot conversation against the streaming\n * `/bik-ai/copilot-chatbot` endpoint.\n *\n * Owns three things the endpoint's contract requires:\n *\n * 1. **The session id.** One per route. Navigating away and back to the same\n * route continues that conversation, and so does a refresh: the ids live in\n * memory but are recovered from the stored records, which is what keeps them\n * lined up with the history the backend keys by them (see\n * `copilotPageSession`).\n * 2. **`previousResponseId`.** Absent on the first turn; from then on it is the\n * `responseId` of the last `TEXT` event, which is what makes OpenAI replay the\n * earlier turns server side. A turn that breaks halfway returns no\n * `responseId`, and the backend means that — the next turn starts fresh.\n * 3. **The transcript**, stored in IndexedDB under `{sessionId}:{route}` and\n * written every turn, so leaving the page mid-conversation loses nothing.\n */\nexport const useCopilotStreamChat = ({\n\tstoreId,\n\tagent = DEFAULT_COPILOT_AGENT,\n\troute = DEFAULT_COPILOT_ROUTE,\n\temail,\n\tmessagesPath,\n\tloadHistory = true,\n\tsystemPrompt,\n\tmodel,\n\tmaxOutputTokens,\n\tsessionId: pinnedSessionId,\n\tpersist = true,\n\tonError,\n\tonResponseComplete,\n\tonSessionIdChange,\n\tbaseUrl,\n\tendpointPath,\n\theaders,\n\tauthToken,\n\tgetAuthToken,\n\tfetchImpl,\n}: UseCopilotStreamChatOptions): UseCopilotStreamChatResult => {\n\tconst [messages, setMessages] = useState<CopilotMessage[]>([]);\n\tconst [sessionId, setSessionId] = useState<string | null>(\n\t\tpinnedSessionId ?? null,\n\t);\n\tconst [isStreaming, setIsStreaming] = useState(false);\n\tconst [isRestoring, setIsRestoring] = useState(true);\n\tconst [error, setError] = useState<string | undefined>();\n\tconst [previousResponseId, setPreviousResponseId] = useState<\n\t\tstring | undefined\n\t>();\n\tconst [isLoadingHistory, setIsLoadingHistory] = useState(false);\n\tconst [hasMoreHistory, setHasMoreHistory] = useState(false);\n\n\t// Async stream handlers run long after the render that created them, so the\n\t// live values live in refs and state is only the render mirror.\n\tconst messagesRef = useRef<CopilotMessage[]>([]);\n\tconst previousResponseIdRef = useRef<string | undefined>(undefined);\n\tconst streamingIdRef = useRef<string | null>(null);\n\tconst abortRef = useRef<(() => void) | null>(null);\n\tconst sessionIdRef = useRef<string | null>(pinnedSessionId ?? null);\n\t// The active route, for the async handlers that write the transcript.\n\tconst routeRef = useRef<string>(route);\n\trouteRef.current = route;\n\t// Next page of stored history to ask for. Starts at 2 when the local cache\n\t// already holds page 1's worth, which is the steady state.\n\tconst nextHistoryPageRef = useRef(1);\n\tconst isLoadingHistoryRef = useRef(false);\n\n\tconst applyMessages = useCallback(\n\t\t(updater: (previous: CopilotMessage[]) => CopilotMessage[]) => {\n\t\t\tconst next = updater(messagesRef.current);\n\t\t\tmessagesRef.current = next;\n\t\t\tsetMessages(next);\n\t\t},\n\t\t[],\n\t);\n\n\tconst setThreadResponseId = useCallback((responseId: string | undefined) => {\n\t\tpreviousResponseIdRef.current = responseId;\n\t\tsetPreviousResponseId(responseId);\n\t}, []);\n\n\tconst save = useCallback(() => {\n\t\tconst id = sessionIdRef.current;\n\t\tif (!persist || !id) {\n\t\t\treturn;\n\t\t}\n\t\tvoid persistCopilotTurn({\n\t\t\troute: routeRef.current,\n\t\t\tsessionId: id,\n\t\t\tmessages: messagesRef.current,\n\t\t\tpreviousResponseId: previousResponseIdRef.current,\n\t\t\tstoreId,\n\t\t\tagent,\n\t\t});\n\t}, [agent, persist, storeId]);\n\n\t// Transport config for the async readers below. Held in a ref rather than in\n\t// the effect's deps: a host that passes an inline `headers` object would\n\t// otherwise re-run restore on every render and wipe the transcript.\n\tconst transportRef = useRef({\n\t\tbaseUrl,\n\t\tmessagesPath,\n\t\theaders,\n\t\tauthToken,\n\t\tgetAuthToken,\n\t\tfetchImpl,\n\t\tstoreId,\n\t\tloadHistory,\n\t});\n\ttransportRef.current = {\n\t\tbaseUrl,\n\t\tmessagesPath,\n\t\theaders,\n\t\tauthToken,\n\t\tgetAuthToken,\n\t\tfetchImpl,\n\t\tstoreId,\n\t\tloadHistory,\n\t};\n\n\tconst readHistoryPage = useCallback(async (page: number) => {\n\t\tconst transport = transportRef.current;\n\t\tconst id = sessionIdRef.current;\n\t\tif (!transport.loadHistory || !id) {\n\t\t\treturn null;\n\t\t}\n\t\treturn fetchCopilotMessages({\n\t\t\tbaseUrl: transport.baseUrl,\n\t\t\tendpointPath: transport.messagesPath,\n\t\t\theaders: transport.headers,\n\t\t\tauthToken: transport.authToken,\n\t\t\tgetAuthToken: transport.getAuthToken,\n\t\t\tfetchImpl: transport.fetchImpl,\n\t\t\tstoreId: transport.storeId,\n\t\t\tsessionId: id,\n\t\t\tpage,\n\t\t\tpageSize: COPILOT_HISTORY_PAGE_SIZE,\n\t\t});\n\t}, []);\n\n\t// Resolve the conversation for this route and read it back from IndexedDB.\n\t// Runs again when `route` changes, because the route is half of a\n\t// conversation's identity — a different page is a different chat.\n\tuseEffect(() => {\n\t\tlet cancelled = false;\n\n\t\tconst restore = async () => {\n\t\t\t// Chunks from the previous route's turn must not land in this one.\n\t\t\tabortRef.current?.();\n\t\t\tabortRef.current = null;\n\t\t\tstreamingIdRef.current = null;\n\t\t\tsetIsStreaming(false);\n\t\t\tsetError(undefined);\n\t\t\tsetIsRestoring(true);\n\t\t\tsetHasMoreHistory(false);\n\t\t\tisLoadingHistoryRef.current = false;\n\t\t\tsetIsLoadingHistory(false);\n\n\t\t\tconst id =\n\t\t\t\tpinnedSessionId ??\n\t\t\t\t(persist\n\t\t\t\t\t? await resolveCopilotSessionIdForRoute({ route, storeId })\n\t\t\t\t\t: getCopilotSessionIdForRoute({ route, storeId }));\n\t\t\tconst record = persist ? await loadCopilotSession(route, id) : null;\n\t\t\tif (cancelled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsessionIdRef.current = id;\n\t\t\tsetSessionId(id);\n\t\t\tmessagesRef.current = record?.messages ?? [];\n\t\t\tsetMessages(messagesRef.current);\n\t\t\tsetThreadResponseId(record?.previousResponseId);\n\t\t\tsetIsRestoring(false);\n\t\t\tonSessionIdChange?.(id);\n\n\t\t\t// The cache holds at most one page, so what is on screen already *is*\n\t\t\t// page 1 and the reader's first scroll-up wants page 2.\n\t\t\tif (messagesRef.current.length > 0) {\n\t\t\t\tnextHistoryPageRef.current = 2;\n\t\t\t\tsetHasMoreHistory(transportRef.current.loadHistory);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Nothing cached and nothing to scroll, so page 1 has to be fetched for\n\t\t\t// the history to be reachable at all — but only for an id the host\n\t\t\t// pinned. An id this library resolved came out of the local records, so\n\t\t\t// an empty cache for it means an empty conversation, and a freshly\n\t\t\t// minted one has nothing behind it by definition. Asking anyway would\n\t\t\t// put a pointless request on the start of every new conversation.\n\t\t\tif (!pinnedSessionId) {\n\t\t\t\tnextHistoryPageRef.current = 1;\n\t\t\t\tsetHasMoreHistory(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnextHistoryPageRef.current = 1;\n\t\t\ttry {\n\t\t\t\tconst firstPage = await readHistoryPage(1);\n\t\t\t\tif (cancelled || !firstPage) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tnextHistoryPageRef.current = 2;\n\t\t\t\tapplyMessages(() => firstPage.messages);\n\t\t\t\tsetHasMoreHistory(firstPage.hasMore);\n\t\t\t} catch {\n\t\t\t\t// A session the backend has never heard of is the normal case for a\n\t\t\t\t// host-pinned id on its first use; the empty state covers it.\n\t\t\t\tsetHasMoreHistory(false);\n\t\t\t}\n\t\t};\n\n\t\tvoid restore();\n\t\treturn () => {\n\t\t\tcancelled = true;\n\t\t};\n\t\t// onSessionIdChange is event-like: re-running restore because the host\n\t\t// passed a new inline callback would wipe the transcript.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\troute,\n\t\tstoreId,\n\t\tpinnedSessionId,\n\t\tpersist,\n\t\tsetThreadResponseId,\n\t\tapplyMessages,\n\t\treadHistoryPage,\n\t]);\n\n\t/**\n\t * Prepends the page before the oldest message on screen.\n\t *\n\t * Guarded by a ref rather than the state flag because a scroll handler can\n\t * fire many times before React re-renders, and each of those would otherwise\n\t * start its own request for the same page.\n\t */\n\tconst loadOlderMessages = useCallback(() => {\n\t\tif (isLoadingHistoryRef.current || !hasMoreHistory) {\n\t\t\treturn;\n\t\t}\n\t\tisLoadingHistoryRef.current = true;\n\t\tsetIsLoadingHistory(true);\n\n\t\tconst page = nextHistoryPageRef.current;\n\t\tvoid (async () => {\n\t\t\ttry {\n\t\t\t\tconst older = await readHistoryPage(page);\n\t\t\t\tif (!older) {\n\t\t\t\t\tsetHasMoreHistory(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tnextHistoryPageRef.current = page + 1;\n\t\t\t\tsetHasMoreHistory(older.hasMore);\n\t\t\t\tapplyMessages((previous) => {\n\t\t\t\t\tconst known = new Set(\n\t\t\t\t\t\tprevious.flatMap((message) =>\n\t\t\t\t\t\t\tmessage.messageId\n\t\t\t\t\t\t\t\t? [message.id, message.messageId]\n\t\t\t\t\t\t\t\t: [message.id],\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tconst fresh = older.messages.filter(\n\t\t\t\t\t\t(message) => !known.has(message.id),\n\t\t\t\t\t);\n\t\t\t\t\treturn fresh.length > 0 ? [...fresh, ...previous] : previous;\n\t\t\t\t});\n\t\t\t} catch (historyError) {\n\t\t\t\t// Left silent in the transcript on purpose: failing to reach further\n\t\t\t\t// back is not a failure of the conversation on screen. Another\n\t\t\t\t// scroll-up retries the same page.\n\t\t\t\tonError?.(\n\t\t\t\t\thistoryError instanceof Error\n\t\t\t\t\t\t? historyError\n\t\t\t\t\t\t: new Error(String(historyError)),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tisLoadingHistoryRef.current = false;\n\t\t\t\tsetIsLoadingHistory(false);\n\t\t\t}\n\t\t})();\n\t}, [applyMessages, hasMoreHistory, onError, readHistoryPage]);\n\n\t// Records pile up one per route per page load otherwise, since every refresh\n\t// writes under a new key.\n\tuseEffect(() => {\n\t\tif (persist) {\n\t\t\tvoid pruneCopilotSessions();\n\t\t}\n\t}, [persist]);\n\n\t// Abort an in-flight turn if the copilot unmounts.\n\tuseEffect(() => () => abortRef.current?.(), []);\n\n\tconst finishStreamingBubble = useCallback(\n\t\t(mutate?: (message: CopilotMessage) => CopilotMessage) => {\n\t\t\tconst streamingId = streamingIdRef.current;\n\t\t\tstreamingIdRef.current = null;\n\t\t\tif (!streamingId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tapplyMessages((previous) =>\n\t\t\t\tprevious\n\t\t\t\t\t.map((message) => {\n\t\t\t\t\t\tif (message.id !== streamingId) {\n\t\t\t\t\t\t\treturn message;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst settled: CopilotMessage = {\n\t\t\t\t\t\t\t...message,\n\t\t\t\t\t\t\tisStreaming: false,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn mutate ? mutate(settled) : settled;\n\t\t\t\t\t})\n\t\t\t\t\t// An assistant bubble that never received text would render as an\n\t\t\t\t\t// empty balloon; the error banner carries the information instead.\n\t\t\t\t\t// A stopped turn keeps its bubble either way — the interrupted note\n\t\t\t\t\t// is the only trace a turn the reader cut short ever happened.\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(message) =>\n\t\t\t\t\t\t\tmessage.id !== streamingId ||\n\t\t\t\t\t\t\tmessage.content.length > 0 ||\n\t\t\t\t\t\t\tmessage.wasInterrupted === true,\n\t\t\t\t\t),\n\t\t\t);\n\t\t},\n\t\t[applyMessages],\n\t);\n\n\tconst handleEvent = useCallback(\n\t\t(event: CopilotStreamEvent) => {\n\t\t\tconst streamingId = streamingIdRef.current;\n\n\t\t\tif (event.type === 'STREAM') {\n\t\t\t\tconst chunk = readCopilotEventContent(event).text;\n\t\t\t\tif (!streamingId || !chunk) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tapplyMessages((previous) =>\n\t\t\t\t\tprevious.map((message) =>\n\t\t\t\t\t\tmessage.id === streamingId\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...message,\n\t\t\t\t\t\t\t\t\tcontent: message.content + chunk,\n\t\t\t\t\t\t\t\t\tmessageId: event.messageId ?? message.messageId,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: message,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.type === 'TEXT') {\n\t\t\t\t// TEXT carries the whole message, so it replaces the accumulated\n\t\t\t\t// chunks rather than appending — that keeps the bubble correct even if\n\t\t\t\t// a STREAM frame was dropped or duplicated.\n\t\t\t\tconst { text: fullText, followUps } = readCopilotEventContent(event);\n\t\t\t\tfinishStreamingBubble((message) => ({\n\t\t\t\t\t...message,\n\t\t\t\t\tcontent: fullText,\n\t\t\t\t\tmessageId: event.messageId ?? message.messageId,\n\t\t\t\t\t...(followUps ? { followUps } : {}),\n\t\t\t\t}));\n\t\t\t\tsetThreadResponseId(event.responseId);\n\t\t\t\tsave();\n\t\t\t\tonResponseComplete?.({\n\t\t\t\t\ttext: fullText,\n\t\t\t\t\tresponseId: event.responseId,\n\t\t\t\t\tfollowUps,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.type === 'ERROR') {\n\t\t\t\tsetError(readCopilotEventContent(event).text || GENERIC_ERROR);\n\t\t\t\tfinishStreamingBubble();\n\t\t\t\tsave();\n\t\t\t}\n\n\t\t\t// Unknown types (TOOL_STATUS is declared server side but not emitted)\n\t\t\t// are ignored so a new event type cannot break an existing client.\n\t\t},\n\t\t[\n\t\t\tapplyMessages,\n\t\t\tfinishStreamingBubble,\n\t\t\tonResponseComplete,\n\t\t\tsave,\n\t\t\tsetThreadResponseId,\n\t\t],\n\t);\n\n\tconst sendMessage = useCallback(\n\t\t(message: string) => {\n\t\t\tconst userPrompt = message.trim();\n\t\t\tconst id = sessionIdRef.current;\n\t\t\tif (!userPrompt || !id || isStreaming) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetError(undefined);\n\t\t\tconst now = Date.now();\n\t\t\tconst assistantBubbleId = `copilot-a-${now}`;\n\t\t\tstreamingIdRef.current = assistantBubbleId;\n\n\t\t\tapplyMessages((previous) => [\n\t\t\t\t...previous,\n\t\t\t\t{\n\t\t\t\t\tid: `copilot-u-${now}`,\n\t\t\t\t\trole: 'user',\n\t\t\t\t\tcontent: userPrompt,\n\t\t\t\t\ttimestamp: now,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: assistantBubbleId,\n\t\t\t\t\trole: 'assistant',\n\t\t\t\t\tcontent: '',\n\t\t\t\t\ttimestamp: now + 1,\n\t\t\t\t\tisStreaming: true,\n\t\t\t\t},\n\t\t\t]);\n\t\t\tsetIsStreaming(true);\n\t\t\tsave();\n\n\t\t\tabortRef.current = streamCopilotChat(\n\t\t\t\t{\n\t\t\t\t\tbaseUrl,\n\t\t\t\t\tendpointPath,\n\t\t\t\t\theaders,\n\t\t\t\t\tauthToken,\n\t\t\t\t\tgetAuthToken,\n\t\t\t\t\tfetchImpl,\n\t\t\t\t\tstoreId,\n\t\t\t\t\tagent,\n\t\t\t\t\troute,\n\t\t\t\t\temail,\n\t\t\t\t\tuserPrompt,\n\t\t\t\t\tsessionId: id,\n\t\t\t\t\tpreviousResponseId: previousResponseIdRef.current,\n\t\t\t\t\tsystemPrompt,\n\t\t\t\t\tmodel,\n\t\t\t\t\tmaxOutputTokens,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonEvent: handleEvent,\n\t\t\t\t\tonComplete: () => {\n\t\t\t\t\t\t// STOP closes the stream without a frame, so this is where a turn\n\t\t\t\t\t\t// ends. TEXT has usually already settled the bubble.\n\t\t\t\t\t\tfinishStreamingBubble();\n\t\t\t\t\t\tsetIsStreaming(false);\n\t\t\t\t\t\tabortRef.current = null;\n\t\t\t\t\t\tsave();\n\t\t\t\t\t},\n\t\t\t\t\tonError: (streamError) => {\n\t\t\t\t\t\tsetError(streamError.message || GENERIC_ERROR);\n\t\t\t\t\t\tfinishStreamingBubble();\n\t\t\t\t\t\tsetIsStreaming(false);\n\t\t\t\t\t\tabortRef.current = null;\n\t\t\t\t\t\tsave();\n\t\t\t\t\t\tonError?.(streamError);\n\t\t\t\t\t},\n\t\t\t\t\tonAbort: () => {\n\t\t\t\t\t\tfinishStreamingBubble();\n\t\t\t\t\t\tsetIsStreaming(false);\n\t\t\t\t\t\tabortRef.current = null;\n\t\t\t\t\t\tsave();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\tagent,\n\t\t\tapplyMessages,\n\t\t\tauthToken,\n\t\t\tbaseUrl,\n\t\t\temail,\n\t\t\tendpointPath,\n\t\t\tfetchImpl,\n\t\t\tfinishStreamingBubble,\n\t\t\tgetAuthToken,\n\t\t\thandleEvent,\n\t\t\theaders,\n\t\t\tisStreaming,\n\t\t\tmaxOutputTokens,\n\t\t\tmodel,\n\t\t\tonError,\n\t\t\troute,\n\t\t\tsave,\n\t\t\tstoreId,\n\t\t\tsystemPrompt,\n\t\t],\n\t);\n\n\tconst stopStreaming = useCallback(() => {\n\t\tif (!abortRef.current) {\n\t\t\treturn;\n\t\t}\n\t\t// Flagged here rather than in `onAbort`, because an abort that lands between\n\t\t// frames ends the stream through `onComplete` instead. Whichever fires, the\n\t\t// reader stopped this turn, and whatever text had arrived stays.\n\t\tconst streamingId = streamingIdRef.current;\n\t\tif (streamingId) {\n\t\t\tapplyMessages((previous) =>\n\t\t\t\tprevious.map((message) =>\n\t\t\t\t\tmessage.id === streamingId\n\t\t\t\t\t\t? { ...message, wasInterrupted: true }\n\t\t\t\t\t\t: message,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tabortRef.current();\n\t\tabortRef.current = null;\n\t}, [applyMessages]);\n\n\tconst startNewConversation = useCallback(() => {\n\t\tabortRef.current?.();\n\t\tabortRef.current = null;\n\t\tstreamingIdRef.current = null;\n\t\tsetIsStreaming(false);\n\t\tsetError(undefined);\n\t\t// A new conversation has no history behind it; the old session's pages\n\t\t// belong to the old session id.\n\t\tnextHistoryPageRef.current = 1;\n\t\tisLoadingHistoryRef.current = false;\n\t\tsetIsLoadingHistory(false);\n\t\tsetHasMoreHistory(false);\n\n\t\tconst activeRoute = routeRef.current;\n\t\t// The conversation being cleared, so its stored transcript can go with it.\n\t\tconst clearedId = sessionIdRef.current;\n\t\t// A host-pinned id is the host's to change, so only clear its transcript.\n\t\tconst nextId =\n\t\t\tpinnedSessionId ??\n\t\t\tresetCopilotSessionForRoute({ route: activeRoute, storeId });\n\t\tsessionIdRef.current = nextId;\n\t\tsetSessionId(nextId);\n\t\tmessagesRef.current = [];\n\t\tsetMessages([]);\n\t\tsetThreadResponseId(undefined);\n\n\t\t// \"Refresh chat\" wipes the record, not just the screen: the cleared\n\t\t// conversation is deleted from IndexedDB so reopening the tab starts fresh\n\t\t// instead of resuming it. Nothing is written for the new session here — its\n\t\t// first record is stamped when the first turn is sent, which is also what\n\t\t// keeps an untouched refresh from leaving an empty record behind.\n\t\tif (persist && clearedId) {\n\t\t\tvoid deleteCopilotSession(activeRoute, clearedId);\n\t\t}\n\t\tonSessionIdChange?.(nextId);\n\t}, [\n\t\tonSessionIdChange,\n\t\tpersist,\n\t\tpinnedSessionId,\n\t\tsetThreadResponseId,\n\t\tstoreId,\n\t]);\n\n\t// The thinking bubble is only for the wait before the first token; once text\n\t// starts arriving the bubble itself shows progress.\n\tconst isThinking = useMemo(\n\t\t() =>\n\t\t\tisStreaming &&\n\t\t\t!messages.some((message) => message.isStreaming && message.content),\n\t\t[isStreaming, messages],\n\t);\n\n\treturn {\n\t\tmessages,\n\t\tsessionId,\n\t\tpreviousResponseId,\n\t\tisStreaming,\n\t\tisThinking,\n\t\tisRestoring,\n\t\tisLoadingHistory,\n\t\thasMoreHistory,\n\t\terror,\n\t\tsendMessage,\n\t\tloadOlderMessages,\n\t\tstopStreaming,\n\t\tstartNewConversation,\n\t};\n};\n"],"names":["GENERIC_ERROR","useCopilotStreamChat","storeId","agent","DEFAULT_COPILOT_AGENT","route","DEFAULT_COPILOT_ROUTE","email","messagesPath","loadHistory","systemPrompt","model","maxOutputTokens","pinnedSessionId","persist","onError","onResponseComplete","onSessionIdChange","baseUrl","endpointPath","headers","authToken","getAuthToken","fetchImpl","messages","setMessages","useState","sessionId","setSessionId","isStreaming","setIsStreaming","isRestoring","setIsRestoring","error","setError","previousResponseId","setPreviousResponseId","isLoadingHistory","setIsLoadingHistory","hasMoreHistory","setHasMoreHistory","messagesRef","useRef","previousResponseIdRef","streamingIdRef","abortRef","sessionIdRef","routeRef","nextHistoryPageRef","isLoadingHistoryRef","applyMessages","useCallback","updater","next","setThreadResponseId","responseId","save","id","persistCopilotTurn","transportRef","readHistoryPage","page","transport","fetchCopilotMessages","COPILOT_HISTORY_PAGE_SIZE","useEffect","cancelled","resolveCopilotSessionIdForRoute","getCopilotSessionIdForRoute","record","loadCopilotSession","firstPage","loadOlderMessages","older","previous","known","message","fresh","historyError","pruneCopilotSessions","finishStreamingBubble","mutate","streamingId","settled","handleEvent","event","chunk","readCopilotEventContent","fullText","followUps","sendMessage","userPrompt","now","assistantBubbleId","streamCopilotChat","streamError","stopStreaming","startNewConversation","activeRoute","clearedId","nextId","resetCopilotSessionForRoute","deleteCopilotSession","isThinking","useMemo"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),C=4,u=8,g=()=>typeof window>"u"?{width:0,height:0}:{width:window.innerWidth,height:window.innerHeight},p=(r,a,n)=>{if(!n.width||!n.height)return r;const s=Math.max(u,n.width-a-u),c=Math.max(u,n.height-a-u);return{x:Math.min(Math.max(r.x,u),s),y:Math.min(Math.max(r.y,u),c)}},k=(r,a,n,s)=>{const c=s.width-a-n,h=s.height-a-n;switch(r){case"top-left":return{x:n,y:n};case"top-right":return{x:c,y:n};case"bottom-left":return{x:n,y:h};default:return{x:c,y:h}}},E=({size:r,corner:a,offset:n,enabled:s,snapToEdge:c,initialPosition:h,onPositionChange:b})=>{const[R,X]=o.useState(g),[l,x]=o.useState(()=>{const t=g();return p(h??k(a,r,n,t),r,t)}),[D,y]=o.useState(!1),w=o.useRef(null),m=o.useRef(!1);o.useEffect(()=>{const t=()=>{const e=g();X(e),x(i=>p(i,r,e))};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[r]);const I=o.useCallback(t=>{m.current=!1,!(!s||t.button!==0)&&(t.currentTarget.setPointerCapture(t.pointerId),w.current={pointerId:t.pointerId,startX:t.clientX,startY:t.clientY,originX:l.x,originY:l.y,moved:!1,latest:l})},[s,l]),M=o.useCallback(t=>{const e=w.current;if(!e||e.pointerId!==t.pointerId)return;const i=t.clientX-e.startX,d=t.clientY-e.startY;if(!e.moved){if(Math.abs(i)<C&&Math.abs(d)<C)return;e.moved=!0,y(!0)}const f=p({x:e.originX+i,y:e.originY+d},r,g());e.latest=f,x(f)},[r]),P=o.useCallback(t=>{const e=w.current;if(!e||e.pointerId!==t.pointerId||(w.current=null,t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId),!e.moved))return;m.current=!0,y(!1);const i=g(),d=c?p({x:e.latest.x+r/2<i.width/2?n:i.width-r-n,y:e.latest.y},r,i):e.latest;x(d),b?.(d)},[n,b,r,c]),Y=o.useCallback(()=>{const t=m.current;return m.current=!1,t},[]),V=o.useMemo(()=>({onPointerDown:I,onPointerMove:M,onPointerUp:P,onPointerCancel:P}),[P,I,M]);return{position:l,isDragging:D,viewport:R,dragHandlers:V,shouldIgnoreClick:Y}};exports.useDraggableFloater=E;
|
|
2
|
+
//# sourceMappingURL=useDraggableFloater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDraggableFloater.js","sources":["../../../../src/components/bik-copilot/useDraggableFloater.ts"],"sourcesContent":["import {\n\tPointerEvent as ReactPointerEvent,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {\n\tCopilotBallPosition,\n\tCopilotCorner,\n\tCopilotViewport,\n\tUseDraggableFloaterOptions,\n\tUseDraggableFloaterResult,\n} from './model';\n\n/** Movement (px) a gesture must cover before it counts as a drag, not a tap. */\nconst DRAG_THRESHOLD_PX = 4;\n\n/** Smallest gap kept between the dragged element and the viewport edges. */\nconst VIEWPORT_MARGIN_PX = 8;\n\nconst getViewport = (): CopilotViewport =>\n\ttypeof window === 'undefined'\n\t\t? { width: 0, height: 0 }\n\t\t: { width: window.innerWidth, height: window.innerHeight };\n\nconst clampToViewport = (\n\tposition: CopilotBallPosition,\n\tsize: number,\n\tviewport: CopilotViewport,\n): CopilotBallPosition => {\n\tif (!viewport.width || !viewport.height) {\n\t\treturn position;\n\t}\n\tconst maxX = Math.max(\n\t\tVIEWPORT_MARGIN_PX,\n\t\tviewport.width - size - VIEWPORT_MARGIN_PX,\n\t);\n\tconst maxY = Math.max(\n\t\tVIEWPORT_MARGIN_PX,\n\t\tviewport.height - size - VIEWPORT_MARGIN_PX,\n\t);\n\treturn {\n\t\tx: Math.min(Math.max(position.x, VIEWPORT_MARGIN_PX), maxX),\n\t\ty: Math.min(Math.max(position.y, VIEWPORT_MARGIN_PX), maxY),\n\t};\n};\n\nconst getCornerPosition = (\n\tcorner: CopilotCorner,\n\tsize: number,\n\toffset: number,\n\tviewport: CopilotViewport,\n): CopilotBallPosition => {\n\tconst rightEdge = viewport.width - size - offset;\n\tconst bottomEdge = viewport.height - size - offset;\n\tswitch (corner) {\n\t\tcase 'top-left':\n\t\t\treturn { x: offset, y: offset };\n\t\tcase 'top-right':\n\t\t\treturn { x: rightEdge, y: offset };\n\t\tcase 'bottom-left':\n\t\t\treturn { x: offset, y: bottomEdge };\n\t\tcase 'bottom-right':\n\t\tdefault:\n\t\t\treturn { x: rightEdge, y: bottomEdge };\n\t}\n};\n\ninterface DragGesture {\n\tpointerId: number;\n\tstartX: number;\n\tstartY: number;\n\toriginX: number;\n\toriginY: number;\n\tmoved: boolean;\n\tlatest: CopilotBallPosition;\n}\n\n/**\n * Drives a fixed-position element the user can drag anywhere in the viewport.\n *\n * The hook owns the element's coordinates, keeps them inside the viewport as the\n * window resizes, and separates a tap from a drag so the same element can both\n * be dragged and clicked.\n */\nexport const useDraggableFloater = ({\n\tsize,\n\tcorner,\n\toffset,\n\tenabled,\n\tsnapToEdge,\n\tinitialPosition,\n\tonPositionChange,\n}: UseDraggableFloaterOptions): UseDraggableFloaterResult => {\n\tconst [viewport, setViewport] = useState<CopilotViewport>(getViewport);\n\tconst [position, setPosition] = useState<CopilotBallPosition>(() => {\n\t\tconst initialViewport = getViewport();\n\t\treturn clampToViewport(\n\t\t\tinitialPosition ??\n\t\t\t\tgetCornerPosition(corner, size, offset, initialViewport),\n\t\t\tsize,\n\t\t\tinitialViewport,\n\t\t);\n\t});\n\tconst [isDragging, setIsDragging] = useState(false);\n\n\tconst gestureRef = useRef<DragGesture | null>(null);\n\tconst ignoreNextClickRef = useRef(false);\n\n\t// Keep the element reachable when the window is resized around it.\n\tuseEffect(() => {\n\t\tconst handleResize = () => {\n\t\t\tconst nextViewport = getViewport();\n\t\t\tsetViewport(nextViewport);\n\t\t\tsetPosition((previous) => clampToViewport(previous, size, nextViewport));\n\t\t};\n\t\twindow.addEventListener('resize', handleResize);\n\t\treturn () => window.removeEventListener('resize', handleResize);\n\t}, [size]);\n\n\tconst handlePointerDown = useCallback(\n\t\t(event: ReactPointerEvent<HTMLElement>) => {\n\t\t\t// A stale flag would otherwise swallow the next legitimate click.\n\t\t\tignoreNextClickRef.current = false;\n\t\t\tif (!enabled || event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.currentTarget.setPointerCapture(event.pointerId);\n\t\t\tgestureRef.current = {\n\t\t\t\tpointerId: event.pointerId,\n\t\t\t\tstartX: event.clientX,\n\t\t\t\tstartY: event.clientY,\n\t\t\t\toriginX: position.x,\n\t\t\t\toriginY: position.y,\n\t\t\t\tmoved: false,\n\t\t\t\tlatest: position,\n\t\t\t};\n\t\t},\n\t\t[enabled, position],\n\t);\n\n\tconst handlePointerMove = useCallback(\n\t\t(event: ReactPointerEvent<HTMLElement>) => {\n\t\t\tconst gesture = gestureRef.current;\n\t\t\tif (!gesture || gesture.pointerId !== event.pointerId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst deltaX = event.clientX - gesture.startX;\n\t\t\tconst deltaY = event.clientY - gesture.startY;\n\n\t\t\tif (!gesture.moved) {\n\t\t\t\tif (\n\t\t\t\t\tMath.abs(deltaX) < DRAG_THRESHOLD_PX &&\n\t\t\t\t\tMath.abs(deltaY) < DRAG_THRESHOLD_PX\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tgesture.moved = true;\n\t\t\t\tsetIsDragging(true);\n\t\t\t}\n\n\t\t\tconst next = clampToViewport(\n\t\t\t\t{ x: gesture.originX + deltaX, y: gesture.originY + deltaY },\n\t\t\t\tsize,\n\t\t\t\tgetViewport(),\n\t\t\t);\n\t\t\tgesture.latest = next;\n\t\t\tsetPosition(next);\n\t\t},\n\t\t[size],\n\t);\n\n\tconst endGesture = useCallback(\n\t\t(event: ReactPointerEvent<HTMLElement>) => {\n\t\t\tconst gesture = gestureRef.current;\n\t\t\tif (!gesture || gesture.pointerId !== event.pointerId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tgestureRef.current = null;\n\t\t\tif (event.currentTarget.hasPointerCapture(event.pointerId)) {\n\t\t\t\tevent.currentTarget.releasePointerCapture(event.pointerId);\n\t\t\t}\n\t\t\tif (!gesture.moved) {\n\t\t\t\t// A tap: let the click handler run untouched.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tignoreNextClickRef.current = true;\n\t\t\tsetIsDragging(false);\n\n\t\t\tconst currentViewport = getViewport();\n\t\t\tconst settled = snapToEdge\n\t\t\t\t? clampToViewport(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tx:\n\t\t\t\t\t\t\t\tgesture.latest.x + size / 2 < currentViewport.width / 2\n\t\t\t\t\t\t\t\t\t? offset\n\t\t\t\t\t\t\t\t\t: currentViewport.width - size - offset,\n\t\t\t\t\t\t\ty: gesture.latest.y,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsize,\n\t\t\t\t\t\tcurrentViewport,\n\t\t\t\t )\n\t\t\t\t: gesture.latest;\n\n\t\t\tsetPosition(settled);\n\t\t\tonPositionChange?.(settled);\n\t\t},\n\t\t[offset, onPositionChange, size, snapToEdge],\n\t);\n\n\tconst shouldIgnoreClick = useCallback(() => {\n\t\tconst ignore = ignoreNextClickRef.current;\n\t\tignoreNextClickRef.current = false;\n\t\treturn ignore;\n\t}, []);\n\n\tconst dragHandlers = useMemo(\n\t\t() => ({\n\t\t\tonPointerDown: handlePointerDown,\n\t\t\tonPointerMove: handlePointerMove,\n\t\t\tonPointerUp: endGesture,\n\t\t\tonPointerCancel: endGesture,\n\t\t}),\n\t\t[endGesture, handlePointerDown, handlePointerMove],\n\t);\n\n\treturn { position, isDragging, viewport, dragHandlers, shouldIgnoreClick };\n};\n"],"names":["DRAG_THRESHOLD_PX","VIEWPORT_MARGIN_PX","getViewport","clampToViewport","position","size","viewport","maxX","maxY","getCornerPosition","corner","offset","rightEdge","bottomEdge","useDraggableFloater","enabled","snapToEdge","initialPosition","onPositionChange","setViewport","useState","setPosition","initialViewport","isDragging","setIsDragging","gestureRef","useRef","ignoreNextClickRef","useEffect","handleResize","nextViewport","previous","handlePointerDown","useCallback","event","handlePointerMove","gesture","deltaX","deltaY","next","endGesture","currentViewport","settled","shouldIgnoreClick","ignore","dragHandlers","useMemo"],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const J=require("./components/template-preview/constants/regexPatterns.js"),ee=require("./utils/StringUtils.js"),T=require("./constants/Theme.js"),re=require("./constants/zindex.js"),e=require("./components/TypographyStyle.js"),te=require("./components/SearchFilter/index.js"),oe=require("./components/resizeImage/index.js"),ie=require("./utils/validator.js"),ne=require("./components/input-with-vars/customPortal.js"),ae=require("./components/dropdown/MultilevelDropdownPopover/index.js"),ue=require("./components/unsatisfactory-response-list/UnsatisfactoryResponseList.js"),se=require("./components/unsatisfactory-response-list/UnsatisfactoryCountIntentWiseModal.js"),L=require("./components/data-source-panel/model.js"),ce=require("./assets/icons/actionButton.svg.js"),le=require("./components/adbanner/AdBanner.js"),de=require("./assets/icons/aiContentIcon.svg.js"),Te=require("./assets/icons/AiEdit.svg.js"),pe=require("./assets/icons/Ai_event_generating.svg.js"),Ce=require("./assets/icons/alarm.svg.js"),Ae=require("./assets/icons/alert.svg.js"),qe=require("./assets/icons/alert_triangle.svg.js"),Se=require("./assets/icons/arrow_back.svg.js"),Ie=require("./assets/icons/arrow_down.svg.js"),Ee=require("./assets/icons/arrow_left.svg.js"),he=require("./assets/icons/arrow_up.svg.js"),Pe=require("./assets/icons/back_icon.svg.js"),_e=require("./assets/icons/bik_ai_stars_icon.svg.js"),Re=require("./assets/icons/bik_livechat.svg.js"),me=require("./assets/icons/Bik_logo.svg.js"),ge=require("./assets/icons/bold.svg.js"),Oe=require("./assets/icons/box.svg.js"),Be=require("./assets/icons/box_round.svg.js"),fe=require("./assets/icons/box_search.svg.js"),ye=require("./assets/icons/boxV2.svg.js"),Ne=require("./assets/icons/brand_home.svg.js"),De=require("./assets/icons/broken_media_image.svg.js"),ke=require("./assets/icons/calendar.svg.js"),Le=require("./assets/icons/card_footer_arraw.svg.js"),Me=require("./assets/icons/ChartBar.svg.js"),be=require("./assets/icons/ChartPie.svg.js"),Fe=require("./assets/icons/chat.svg.js"),we=require("./assets/icons/chat-channel.svg.js"),Ue=require("./assets/icons/check.svg.js"),Ve=require("./assets/icons/checkCircle.svg.js"),He=require("./assets/icons/CheckSquareOffset.svg.js"),ve=require("./assets/icons/checklistIcon.svg.js"),Ge=require("./assets/icons/chevronDown.svg.js"),We=require("./assets/icons/chevronDownOutline.svg.js"),xe=require("./assets/icons/chevronLeft.svg.js"),Ye=require("./assets/icons/chevronLeft2.svg.js"),ze=require("./assets/icons/chevronRight.svg.js"),Ke=require("./assets/icons/chevronRight2.svg.js"),Qe=require("./assets/icons/chevronRightAlt.svg.js"),Xe=require("./assets/icons/chevronUpOutline.svg.js"),je=require("./assets/icons/circular-cross-icon.svg.js"),$e=require("./assets/icons/click.svg.js"),Ze=require("./assets/icons/clock.svg.js"),Je=require("./assets/icons/copy-code-icon.svg.js"),er=require("./assets/icons/cross.svg.js"),rr=require("./assets/icons/cubeIcon.svg.js"),tr=require("./assets/icons/cursor.svg.js"),or=require("./assets/icons/CustomiseIcon.js"),ir=require("./assets/icons/delete.svg.js"),nr=require("./assets/icons/desktop_custom.svg.js"),ar=require("./assets/icons/DocsIcon.js"),ur=require("./assets/icons/document_pdf.svg.js"),sr=require("./assets/icons/DoubtIcon.js"),cr=require("./assets/icons/drag_handle.svg.js"),lr=require("./assets/icons/edit.svg.js"),dr=require("./assets/icons/EditLabel.js"),Tr=require("./assets/icons/email-channel.svg.js"),pr=require("./assets/icons/emoji.svg.js"),Cr=require("./assets/icons/EnableIcon.js"),Ar=require("./assets/icons/errorIcon.svg.js"),qr=require("./assets/icons/errorInfo.svg.js"),Sr=require("./assets/icons/expressionless_emoji.svg.js"),Ir=require("./assets/icons/facebook_channel.svg.js"),Er=require("./components/feature-announcements/FeatureAnnouncementProvider.js"),hr=require("./assets/icons/file.svg.js"),Pr=require("./assets/icons/filePdf.svg.js"),_r=require("./assets/icons/gift_icon.svg.js"),Rr=require("./assets/icons/gmail.svg.js"),mr=require("./assets/icons/GoLiveIcon.js"),gr=require("./assets/icons/graph.svg.js"),Or=require("./assets/icons/grid.svg.js"),Br=require("./assets/icons/halfRectangle.svg.js"),fr=require("./assets/icons/HeadsetIcon.js"),yr=require("./assets/icons/help.svg.js"),Nr=require("./assets/icons/HelpIcon.svg.js"),Dr=require("./assets/icons/home.svg.js"),kr=require("./assets/icons/horizontal_dots.svg.js"),Lr=require("./assets/icons/hover_home.svg.js"),Mr=require("./assets/icons/Idea.svg.js"),br=require("./assets/icons/image.svg.js"),Fr=require("./assets/icons/info.svg.js"),wr=require("./assets/icons/instagram.svg.js"),Ur=require("./assets/icons/instagram-channel.svg.js"),Vr=require("./assets/icons/italic.svg.js"),Hr=require("./assets/icons/list.svg.js"),vr=require("./assets/icons/ListChecksIcon.js"),Gr=require("./assets/icons/locked.svg.js"),Wr=require("./assets/icons/log_out.svg.js"),xr=require("./assets/icons/lto_icon.svg.js"),Yr=require("./components/feature-announcements/MajorUpdatePopup.js"),zr=require("./components/markdown/MarkdownRender.js"),Kr=require("./assets/icons/MarketingIcon.js"),Qr=require("./assets/icons/maximize.svg.js"),Xr=require("./components/feature-announcements/MinorUpdatePopup.js"),jr=require("./assets/icons/mobile_custom.svg.js"),$r=require("./assets/icons/more_vertical.svg.js"),Zr=require("./assets/icons/NotesIcon.js"),Jr=require("./assets/icons/NudgesIcon.js"),et=require("./assets/icons/OnboardingLogo.js"),rt=require("./assets/icons/openai.svg.js"),tt=require("./assets/icons/OrderTrackingIcon.js"),ot=require("./assets/icons/paperclip.svg.js"),it=require("./assets/icons/percentage_icon.svg.js"),nt=require("./assets/icons/phone.svg.js"),at=require("./assets/icons/phone_round.svg.js"),ut=require("./assets/icons/play.svg.js"),st=require("./assets/icons/plus.svg.js"),ct=require("./assets/icons/PlusIcon.js"),lt=require("./assets/icons/pointer.svg.js"),dt=require("./assets/icons/profile.svg.js"),Tt=require("./components/ProgressChecklist/ProgressChecklist.js"),pt=require("./assets/icons/qrb.svg.js"),Ct=require("./assets/icons/question-mark.svg.js"),At=require("./assets/icons/quotes.svg.js"),qt=require("./assets/icons/RCS_PDF.svg.js"),St=require("./assets/icons/redirect.svg.js"),It=require("./assets/icons/RedirectToNew.svg.js"),Et=require("./assets/icons/refresh.svg.js"),ht=require("./assets/icons/retry.svg.js"),Pt=require("./assets/icons/retryIcon.svg.js"),_t=require("./assets/icons/sad_emoji.svg.js"),Rt=require("./assets/icons/search.svg.js"),mt=require("./assets/icons/searchIcon.svg.js"),gt=require("./assets/icons/send.svg.js"),Ot=require("./assets/icons/send_template.svg.js"),Bt=require("./assets/icons/shipping_icon.svg.js"),ft=require("./assets/icons/ShoppingIcon.js"),yt=require("./assets/icons/similar.svg.js"),Nt=require("./assets/icons/smile_emoji.svg.js"),Dt=require("./assets/icons/smiley_emoji.svg.js"),kt=require("./assets/icons/sparkle.svg.js"),Lt=require("./assets/icons/speedometer.svg.js"),Mt=require("./assets/icons/starEmpty.svg.js"),bt=require("./assets/icons/starFilled.svg.js"),Ft=require("./assets/icons/starFilledV2.svg.js"),wt=require("./assets/icons/state_icon.svg.js"),Ut=require("./assets/icons/StepsIcon.js"),Vt=require("./assets/icons/StoreIcon.js"),Ht=require("./assets/icons/strikeThrough.svg.js"),vt=require("./assets/icons/sub_category.svg.js"),Gt=require("./assets/icons/successIcon.svg.js"),Wt=require("./assets/icons/SupportIcon.js"),xt=require("./assets/icons/sync.svg.js"),Yt=require("./assets/icons/task.svg.js"),zt=require("./assets/icons/text_t9.svg.js"),Kt=require("./assets/icons/ThreeColumnsIcon.js"),Qt=require("./assets/icons/tick.svg.js"),Xt=require("./assets/icons/tick_double.svg.js"),jt=require("./assets/icons/TrainingIcon.js"),$t=require("./assets/icons/triangle_error.svg.js"),Zt=require("./assets/icons/undo.svg.js"),Jt=require("./assets/icons/union.svg.js"),eo=require("./assets/icons/upload.svg.js"),ro=require("./assets/icons/user_icon.svg.js"),to=require("./assets/icons/vertical_dots.svg.js"),oo=require("./components/vertical-full-screen-modal/component.js"),io=require("./assets/icons/video_camcorder.svg.js"),no=require("./assets/icons/videoRecorder.svg.js"),ao=require("./assets/icons/warning.svg.js"),uo=require("./assets/icons/warningIcon.svg.js"),so=require("./assets/icons/website.svg.js"),co=require("./assets/icons/whatsNew.svg.js"),lo=require("./assets/icons/whatsapp-channel.svg.js"),To=require("./assets/icons/whatsapp_color.svg.js"),po=require("./assets/icons/WhiteStarFilled.svg.js"),u=require("./components/template-preview/models/TemplateMeta.js"),r=require("./components/QueryBuilder/types/QueryBuilderOperator.type.js"),Co=require("./components/agent-builder/constants/charLimits.js"),c=require("./components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js"),Ao=require("./components/bik-chatbot/components/AIChat.js"),M=require("./components/bik-chatbot/contexts/AIContext.js"),_=require("./components/WhatsAppTextEditor/ai/aiTag.js"),R=require("./components/alerts/AlertHelper.js"),qo=require("./components/feature-announcements/constants/animations.js"),So=require("./utils/logging/ErrorConstructor/ApiError.js"),p=require("./components/avatar/AvatarHelper.js"),C=require("./components/avatar/Avatar.js"),Io=require("./components/access-token-troubleshoot-dialog/AccessTokenTroubleshootDialog.js"),Eo=require("./components/action-button/ActionButtons.js"),ho=require("./components/ai-modals/ActivateBikAI.js"),Po=require("./assets/icons/ActiveChecklistIcon.js"),_o=require("./components/add-variableV2/AddDataPill.js"),Ro=require("./components/add-variableV2/AddVariableV2.js"),mo=require("./components/add-variableV2/AddVariableV2SideModal.js"),go=require("./components/agent-builder/AgentBuilder.js"),Oo=require("./components/agent-listing/AgentListing.js"),Bo=require("./components/ai-modals/AiCreditsExhausted.js"),fo=require("./components/ai-modals/AiCreditsLow.js"),yo=require("./components/ai-modals/AiSyncProgress.js"),No=require("./components/alerts/Alert.js"),Do=require("./components/analytics-card/AnalyticsCard.js"),ko=require("./components/analytics-chips-and-dropdowns/AnalyticsChip.js"),b=require("./components/analytics-card/AnalyticsCard.styled.js"),m=require("./components/analytics-chips-and-dropdowns/AnalyticsDropdown.js"),A=require("./components/template-context-mapper/modalElements/TemplateAnalyticsComponent.js"),Lo=require("./components/analytics-chips-and-dropdowns/AnalyticsMetric.js"),Mo=require("./components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js"),bo=require("./components/analytics-chips-and-dropdowns/AnalyticsTrend.js"),Fo=require("./components/bik-chatbot/components/BIKChatbot.js"),o=require("./components/markdown/utils.js"),g=require("./components/template-preview/models/WhatsAppTemplate.js"),l=require("./components/whats-new/WhatsNew.styles.js"),O=require("./components/adbanner/model.js"),wo=require("./components/QueryBuilder/components/QueryBuilderNode/Base/BaseQueryBuilderNode.js"),Uo=require("./helpers/BaseWhatsappContentLang.helper.js"),Vo=require("./components/accordion/Accordion.js"),Ho=require("./editor/BikEditor.js"),vo=require("./editor/toolbar/BikEditorToolbar.js"),Go=require("./components/BikGiftedChat/GiftedChat/GiftedChat.js"),Wo=require("./components/bik-layout/BikHeader.js"),xo=require("./components/image-cropper/BikImageCropper.js"),Yo=require("./components/image-cropper/BikImagePipeline/BikImagePipeline.js"),zo=require("./components/bik-layout/BikLayout.js"),Ko=require("./components/bik-layout/BikProfile.js"),Qo=require("./components/shimmer/ShimmerComponent/BikShimmer.js"),Xo=require("./components/bik-layout/BikSidebar.js"),jo=require("./components/bik-layout/BikSidebarV2/BikSidebarV2.js"),$o=require("./components/slider/slider.js"),q=require("./components/plans/SubscriptionPlanSelector.js"),Zo=require("./utils/logging/ErrorConstructor/BroadcastFlowError.js"),Jo=require("./components/BikGiftedChat/Bubble/Bubble.js"),ei=require("./components/button/Button.js"),S=require("./components/states/StateComponent.js"),ri=require("./components/buttonGroup/ButtonGroup.js"),ti=require("./components/template-preview/models/Channels.js"),B=require("./components/bik-chatbot/types/chat.js"),i=require("./components/discount-modal/type.js"),f=require("./components/curtain/CurtainHelper.js"),F=require("./components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js"),oi=require("./components/card-selection-modal/CardSelectionModal.js"),ii=require("./components/card-selector/CardSelector.js"),ni=require("./components/card-selector/CardSelectorGroup.js"),ai=require("./components/carousel/carousel.js"),ui=require("./components/carousel-preview/CarouselPreview.js"),si=require("./components/carousel-secondary/CarouselSecondary.js"),ci=require("./components/carousel-secondary/model.js"),li=require("./components/checkBox/CheckBox.js"),di=require("./assets/icons/CheckIndicatorIcon.js"),Ti=require("./components/checkList/CheckList.js"),pi=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/Chip.js"),w=require("./components/dropdown/ChipDropdown.js"),Ci=require("./components/code-block/CodeBlock.js"),Ai=require("./components/code-block/types.js"),qi=require("./utils/logging/ErrorConstructor/CohortError.js"),Si=require("./components/colourInput/ColourInput.js"),Ii=require("./components/analytics-chips-and-dropdowns/chart/ComparisonBarChart/ComparisonBarChart.js"),Ei=require("./assets/icons/CompletedChecklistIcon.js"),hi=require("./components/connected-app-dialog/ConnectedAppDialog.js"),Pi=require("./components/country-code-picker/CountryCodePicker.modal.js"),_i=require("./components/country-code-picker/CountryCodePicker.js"),Ri=require("./components/country-code-picker/CountryPicker.js"),mi=require("./components/discount-modal/CouponExpiration/CouponExpiration.js"),gi=require("./components/product-picker-v2/constants.js"),Oi=require("./components/curtain/Curtain.js"),Bi=require("./components/custom-date-time/CustomDateTime.js"),fi=require("./utils/logging/ErrorConstructor/CustomError.js"),yi=require("./editor/BikEditor.types.js"),U=require("./components/shimmer-image/ShimmerImage.js"),y=require("./components/bik-chatbot/types/ai.js"),a=require("./components/floating-action-button/FloatingActionButton.styles.js"),Ni=require("./components/dashboard-review-popup/DashboardReviewPopUp.js"),Di=require("./components/data-source-panel/DataSourcePanel.js"),I=require("./components/postPicker/postPicker.js"),ki=require("./components/datePicker/DatePicker.js"),Li=require("./components/datePicker/DatePickerWrapper.js"),Mi=require("./components/states-modal/DeleteConfirmationModal.js"),bi=require("./components/discount-modal/DiscountModal.js"),Fi=require("./components/dot-pulse/DotPulse.js"),wi=require("./components/dropShadow/DropShadow.js"),Ui=require("./components/dropdown/Dropdown.js"),Vi=require("./components/dropdown-button/DropdownButton.js"),Hi=require("./components/dropdown/DropdownPopover/index.js"),vi=require("./components/dual-icon-button/DualIconButton.js"),Gi=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/types.js"),Wi=require("./components/dynamic-tabs/DynamicTabs.js"),N=require("./utils/logging/Logger.js"),xi=require("./utils/logging/ErrorConstructor/ExcelUploadError.js"),Yi=require("./components/fab-menu/FABMenu.js"),zi=require("./components/bik-layout/FeatureModal.js"),Ki=require("./components/bik-layout/FeatureModalV2.js"),Qi=require("./components/file-uploader/FileUploader.js"),Xi=require("./utils/logging/ErrorConstructor/FirebaseCallError.js"),ji=require("./utils/logging/ErrorConstructor/FirebaseSubscriptionError.js"),$i=require("./firebase/firebaseUserFetcher.js"),Zi=require("./components/floater/floater.js"),Ji=require("./components/floating-action-button/FloatingActionButton.js"),en=require("./components/floating-input-dropdown/FloatingInputDropdown.js"),rn=require("./components/analytics-chips-and-dropdowns/chart/FunnelChart/FunnelChart.js"),tn=require("./components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/FunnelVerticalBarGraph.js"),on=require("./components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarDistributionChart.model.js"),E=require("./components/analytics-chips-and-dropdowns/chart/heatmap/HeatMap.js"),h=require("./request-executor/executor.js"),nn=require("./components/half-doughnut-chart/HalfDoughnutChart.js"),V=require("./components/analytics-chips-and-dropdowns/chart/heatmap/HeatMapVertical.js"),an=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/HorizontalBar.js"),un=require("./components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.js"),sn=require("./components/icon-button/IconButton.js"),cn=require("./components/image-compress/ImageCompress.js"),ln=require("./assets/icons/InactiveChecklistIcon.js"),dn=require("./components/input/Input.js"),Tn=require("./components/input-with-vars/InputWithVariables.js"),pn=require("./components/keywords-input/KeywordsInput.js"),d=require("./firebase/lazyFirebaseApp.js"),Cn=require("./components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js"),An=require("./components/analytics-chips-and-dropdowns/chart/linearChipGroupedChart/LinearChipGroupedChart.js"),qn=require("./components/list-item/ListItem.js"),P=require("./components/switch/Switch.js"),Sn=require("./components/dropdown/MenuItem/MenuItem.js"),In=require("./components/multi-level-dropdown/MultiLevelDropdown.js"),H=require("./components/navigation-hyperlink/NavigationHyperlink.js"),En=require("./components/plans/NewSubscriptionPlan.js"),v=require("./components/product-picker-v2/type.js"),hn=require("./components/dropdown/OpenedDropdown/components/OpennedDropdown.js"),Pn=require("./components/feature-announcements/constants/dimensions.js"),_n=require("./components/pagination/Pagination.js"),Rn=require("./components/variable-picker-v3/model.js"),mn=require("./components/analytics-chips-and-dropdowns/chart/Pie/PieChart.js"),gn=require("./components/post-live-checklist/PostLiveChecklist.js"),On=require("./components/post-live-checklist-item/PostLiveChecklistItem.js"),G=require("./components/product-picker/ProductPickerModal.js"),Bn=require("./components/product-picker-v2/modal.js"),fn=require("./assets/icons/ProgressBadgeIcon.js"),W=require("./components/progress-bar/ProgressBarComponent.js"),D=require("./components/progress-bar-v2/ProgressBarV2.js"),x=require("./components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js"),Y=require("./components/spinner/Spinner.js"),yn=require("./components/QueryBuilder/QueryBuilder.js"),Nn=require("./components/QueryBuilder/types/QueryBuilderEnum.type.js"),z=require("./components/thumbnail/Thumbnail.js"),Dn=require("./components/radioButton/RadioButton.js"),kn=require("./components/radioList/RadioList.js"),Ln=require("./utils/logging/ErrorConstructor/RechargeFailure.js"),Mn=require("./assets/icons/Redirect2Icon.js"),bn=require("./components/agent-builder/constants/steps.js"),Fn=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/ScoreBlock.js"),wn=require("./components/searchBar/searchBar.js"),Un=require("./assets/icons/searchIcon.js"),Vn=require("./components/states/ShopifyScopeWrapper.js"),Hn=require("./components/bik-layout/ShowShopifyRestrictedModal.js"),vn=require("./components/side-modal/SideModal.js"),Gn=require("./components/bik-layout/SidebarSkeleton.js"),Wn=require("./components/bik-layout/SimpleSidebar.js"),xn=require("./assets/icons/SmallCheckIcon.js"),Yn=require("./components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarChart.js"),zn=require("./components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarDistributionChart.js"),Kn=require("./components/star-rating/StarRating.js"),Qn=require("./components/states-modal/StateModalComponent.js"),Xn=require("./components/stepper/Stepper.js"),jn=require("./components/modals/styledModal.js"),$n=require("./components/plans/SubscriptionPlan.js"),Zn=require("./components/plans/SubscriptionPlansCollected.js"),Jn=require("./components/feature-announcements/constants/index.js"),K=require("./components/tabs/Tabs.js"),ea=require("./components/TablePagination/TablePagination.js"),Q=require("./components/TablePagination/TablePaginationCard.js"),ra=require("./components/tag/Tag.js"),ta=require("./components/template-context-mapper/modalElements/TemplateAnalyticsSkeleton.js"),oa=require("./components/template-context-mapper/TemplateContextMapper.js"),ia=require("./components/template-preview/TemplatePreview.js"),na=require("./components/testimonial-card/TestimonialCard.js"),aa=require("./components/text-picker/TextPickerModal.js"),ua=require("./components/datePicker/TimePicker.js"),sa=require("./components/toaster/Toaster.js"),ca=require("./components/agent-builder/constants/tools.js"),la=require("./components/tooltips/Tooltip.js"),t=require("./components/analytics-chips-and-dropdowns/chart/utils/calcPercentage.js"),da=require("./components/template-preview/helpers/VariableEditorHelper.js"),Ta=require("./components/variable-picker-v3/VariablePicker.js"),pa=require("./components/analytics-chips-and-dropdowns/chart/VerticalBarAndLinearGraph/VerticalBarAndLinearGraph.js"),Ca=require("./components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.js"),Aa=require("./components/feature-announcements/VideoModal.js"),qa=require("./components/template-preview/helpers/WhatsAppFormatToHTML.js"),Sa=require("./components/WhatsAppTextEditor/WhatsAppTextEditor.js"),Ia=require("./components/whats-new/WhatsNew.js"),Ea=require("./components/whats-new/WhatsNewButton.js"),ha=require("./components/whats-new/WhatsNewPanel.js"),X=require("./components/whats-new/WhatsNewProvider.js"),Pa=require("./utils/logging/ErrorConstructor/WhatsappIntegrationError.js"),_a=require("./components/template-preview/WhatsApp/WhatsAppLikePreview.js"),Ra=require("./components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js"),k=require("./components/agent-builder/utils/mentionSerialization.js"),ma=require("./firebase/environment.js"),n=require("./helpers/sanitize.js"),j=require("./components/template-context-mapper/utils/getDataFromTemplateComponent.js"),s=require("./firebase/lazyFirebaseMethods.js"),$=require("./editor/BikEditor.utils.js"),ga=require("./firebase/lazyFirestore.js"),Oa=require("./firebase/lazyFirestoreLite.js"),Ba=require("./firebase/lazyStorage.js"),Z=require("./components/template-context-mapper/utils/validateIsUrl.js"),fa=require("./components/QueryBuilder/redux/queryBuilderCache.reducer.js"),ya=require("./components/QueryBuilder/redux/queryBuilder.reducer.js"),Na=require("./components/template-preview/helpers/SmsTemplateHelper.js"),Da=require("./utils/resizeImage.js"),ka=require("./editor/serializers/toLiveChatText.js"),La=require("./editor/serializers/toWhatsAppText.js"),Ma=require("./components/dropdown/utils.js"),ba=require("./components/bik-chatbot/services/useAIChat.js"),Fa=require("./components/agent-builder/hooks/useAgentDraft.js"),wa=require("./components/feature-announcements/hooks/useFeatureAnnouncements.js"),Ua=require("./components/whats-new/useWhatsNew.js");exports.regexPatterns=J;exports.StringUtils=ee.default;exports.BASE_COLORS=T.BASE_COLORS;exports.COLORS=T.COLORS;exports.DEFAULT_THEME=T.DEFAULT_THEME;exports.FONTS=T.FONTS;exports.ComponentZindex=re.ComponentZindex;exports.AiBodyCaption=e.AiBodyCaption;exports.AiBodyTiny=e.AiBodyTiny;exports.BodyCaption=e.BodyCaption;exports.BodyLarge=e.BodyLarge;exports.BodyPrimary=e.BodyPrimary;exports.BodyPrimaryLink=e.BodyPrimaryLink;exports.BodyRegular=e.BodyRegular;exports.BodySecondary=e.BodySecondary;exports.BodySecondaryLink=e.BodySecondaryLink;exports.BodySmall=e.BodySmall;exports.BodyTiny=e.BodyTiny;exports.BodyTinySemiBold=e.BodyTinySemiBold;exports.ButtonLarge=e.ButtonLarge;exports.ButtonLargeAI=e.ButtonLargeAI;exports.ButtonRegular=e.ButtonRegular;exports.ButtonRegularAI=e.ButtonRegularAI;exports.Caption=e.Caption;exports.CaptionBold=e.CaptionBold;exports.Display=e.Display;exports.SmallRegular=e.SmallRegular;exports.SubHeading=e.SubHeading;exports.TextPlaceholder=e.TextPlaceholder;exports.Tiny=e.Tiny;exports.TitleFour=e.TitleFour;exports.TitleLarge=e.TitleLarge;exports.TitleMedium=e.TitleMedium;exports.TitleRegular=e.TitleRegular;exports.TitleSmall=e.TitleSmall;exports.TitleTiny=e.TitleTiny;exports.TitleXlarge=e.TitleXlarge;exports.SearchFilter=te.SearchFilter;exports.ResizableImage=oe.ResizableImage;exports.validateURL=ie.validateURL;exports.CustomPortal=ne.CustomPortal;exports.MultilevelDropdownPopover=ae.MultilevelDropdownPopover;exports.UnsatisfactoryResponseList=ue.UnsatisfactoryResponseList;exports.UnsatisfactoryCountIntentWiseModal=se.UnsatisfactoryCountIntentWiseModal;exports.CustomDataCategories=L.CustomDataCategories;exports.CustomDataType=L.CustomDataType;exports.ActionButton=ce.default;exports.AdBanner=le.default;exports.AiContentIcon=de.default;exports.AiEdit=Te.default;exports.AiEventGenerating=pe.default;exports.Alarm=Ce.default;exports.AlertIcon=Ae.default;exports.AlertTriangle=qe.default;exports.ArrowBack=Se.default;exports.ArrowDown=Ie.default;exports.ArrowLeft=Ee.default;exports.ArrowUp=he.default;exports.BackIcon=Pe.default;exports.BikAiStarsIcon=_e.default;exports.BikLivechat=Re.default;exports.BikLogo=me.default;exports.Bold=ge.default;exports.Box=Oe.default;exports.BoxRound=Be.default;exports.BoxSearch=fe.default;exports.BoxV2=ye.default;exports.BrandHome=Ne.default;exports.BrokenMediaImage=De.default;exports.Calendar=ke.default;exports.CardFooterArrow=Le.default;exports.ChartBar=Me.default;exports.ChartPie=be.default;exports.Chat=Fe.default;exports.ChatChannel=we.default;exports.Check=Ue.default;exports.CheckCircle=Ve.default;exports.CheckSquareOffset=He.default;exports.ChecklistIcon=ve.default;exports.ChevronDown=Ge.default;exports.ChevronDownOutline=We.default;exports.ChevronLeft=xe.default;exports.ChevronLeft2=Ye.default;exports.ChevronRight=ze.default;exports.ChevronRight2=Ke.default;exports.ChevronRightAlt=Qe.default;exports.ChevronUpOutline=Xe.default;exports.CircularCrossIcon=je.default;exports.Click=$e.default;exports.Clock=Ze.default;exports.CopyCodeIcon=Je.default;exports.Cross=er.default;exports.CubeIcon=rr.default;exports.Cursor=tr.default;exports.CustomiseIcon=or.default;exports.Delete=ir.default;exports.DesktopCustom=nr.default;exports.Docs=ar.default;exports.DocumentPdf=ur.default;exports.Doubt=sr.default;exports.DragHandle=cr.default;exports.Edit=lr.default;exports.EditLabel=dr.default;exports.EmailChannel=Tr.default;exports.Emoji=pr.default;exports.EnableIcon=Cr.default;exports.ErrorIcon=Ar.default;exports.ErrorInfo=qr.default;exports.ExpressionlessEmoji=Sr.default;exports.FacebookChannel=Ir.default;exports.FeatureAnnouncementProvider=Er.default;exports.File=hr.default;exports.FilePdf=Pr.default;exports.GiftIcon=_r.default;exports.Gmail=Rr.default;exports.GoLiveIcon=mr.default;exports.Graph=gr.default;exports.Grid=Or.default;exports.HalfRectangle=Br.default;exports.HeadsetIcon=fr.default;exports.Help=yr.default;exports.HelpIcon=Nr.default;exports.Home=Dr.default;exports.HorizontalDots=kr.default;exports.HoverHome=Lr.default;exports.Idea=Mr.default;exports.Image=br.default;exports.Info=Fr.default;exports.Instagram=wr.default;exports.InstagramChannel=Ur.default;exports.Italic=Vr.default;exports.List=Hr.default;exports.ListChecksIcon=vr.default;exports.Locked=Gr.default;exports.LogOut=Wr.default;exports.LtoIcon=xr.default;exports.MajorUpdatePopup=Yr.default;exports.MarkdownRender=zr.default;exports.MarketingIcon=Kr.default;exports.Maximize=Qr.default;exports.MinorUpdatePopup=Xr.default;exports.MobileCustom=jr.default;exports.MoreVertical=$r.default;exports.Notes=Zr.default;exports.NudgesIcon=Jr.default;exports.OnboardingLogo=et.default;exports.OpenAI=rt.default;exports.OrderTrackingIcon=tt.default;exports.Paperclip=ot.default;exports.PercentageIcon=it.default;exports.Phone=nt.default;exports.PhoneRound=at.default;exports.Play=ut.default;exports.Plus=st.default;exports.PlusIcon=ct.default;exports.Pointer=lt.default;exports.Profile=dt.default;exports.ProgressChecklist=Tt.default;exports.Qrb=pt.default;exports.QuestionMark=Ct.default;exports.Quotes=At.default;exports.RCSPDF=qt.default;exports.Redirect=St.default;exports.RedirectToNew=It.default;exports.Refresh=Et.default;exports.Retry=ht.default;exports.RetryIcon=Pt.default;exports.SadEmoji=_t.default;exports.Search=Rt.default;exports.SearchIconSvg=mt.default;exports.Send=gt.default;exports.SendTemplate=Ot.default;exports.ShippingIcon=Bt.default;exports.ShoppingIcon=ft.default;exports.Similar=yt.default;exports.SmileEmoji=Nt.default;exports.SmileyEmoji=Dt.default;exports.Sparkle=kt.default;exports.Speedometer=Lt.default;exports.StarEmpty=Mt.default;exports.StarFilled=bt.default;exports.StarFilledV2=Ft.default;exports.StateIcon=wt.default;exports.Steps=Ut.default;exports.Store=Vt.default;exports.StrikeThrough=Ht.default;exports.SubCategory=vt.default;exports.SuccessIcon=Gt.default;exports.SupportIcon=Wt.default;exports.Sync=xt.default;exports.Task=Yt.default;exports.TextT9=zt.default;exports.ThreeColumns=Kt.default;exports.Tick=Qt.default;exports.TickDouble=Xt.default;exports.TrainingIcon=jt.default;exports.TriangleError=$t.default;exports.Undo=Zt.default;exports.Union=Jt.default;exports.Upload=eo.default;exports.UserIcon=ro.default;exports.VerticalDots=to.default;exports.VerticalFullScreenModal=oo.default;exports.VideoCamcorder=io.default;exports.VideoRecorder=no.default;exports.Warning=ao.default;exports.WarningIcon=uo.default;exports.Website=so.default;exports.WhatsNewIcon=co.default;exports.WhatsappChannel=lo.default;exports.WhatsappColor=To.default;exports.WhiteStarFilled=po.default;exports.ACTIONS_TYPES=u.ACTIONS_TYPES;exports.CUSTOM_URL_NAME=u.CUSTOM_URL_NAME;exports.HEADER_TYPES=u.HEADER_TYPES;exports.STATIC_URL_CTA_OPTION=u.STATIC_URL_CTA_OPTION;exports.TEMPLATE_EDITOR=u.TEMPLATE_EDITOR;exports.TEMPLATE_STATUS=u.TEMPLATE_STATUS;exports.UNSUBSCRIBE_URL_OPTION=u.UNSUBSCRIBE_URL_OPTION;exports.AD_STRING_OPERATORS=r.AD_STRING_OPERATORS;exports.ANY_AD_OPERATORS=r.ANY_AD_OPERATORS;exports.ANY_IG_OPERATORS=r.ANY_IG_OPERATORS;exports.BOOLEAN_OPERATORS=r.BOOLEAN_OPERATORS;exports.DATE_OPERATORS=r.DATE_OPERATORS;exports.EVENT_VALUES=r.EVENT_VALUES;exports.EXACTLY_OPERATORS=r.EXACTLY_OPERATORS;exports.FREQUENCY_OPERATORS=r.FREQUENCY_OPERATORS;exports.ICE_BREAKER_OPERATORS=r.ICE_BREAKER_OPERATORS;exports.IG_STRING_OPERATORS=r.IG_STRING_OPERATORS;exports.INTEGER_OPERATORS=r.INTEGER_OPERATORS;exports.MAIL_SUBJECT_OPERATORS=r.MAIL_SUBJECT_OPERATORS;exports.REACTION_OPERATORS=r.REACTION_OPERATORS;exports.SPECIFIC_IG_OPERATORS=r.SPECIFIC_IG_OPERATORS;exports.STRING_OPERATORS=r.STRING_OPERATORS;exports.STRING_RESTRICTED_OPERATORS=r.STRING_RESTRICTED_OPERATORS;exports.STRING_RESTRICTED_OPERATORS_2=r.STRING_RESTRICTED_OPERATORS_2;exports.STRING_RESTRICTED_OPERATORS_3=r.STRING_RESTRICTED_OPERATORS_3;exports.AGENT_CHAR_LIMITS=Co.AGENT_CHAR_LIMITS;exports.AIActionVariant=c.AIActionVariant;exports.AIEditorActionTypes=c.AIEditorActionTypes;exports.CustomRightBorder=c.CustomRightBorder;exports.EditorActionTypes=c.EditorActionTypes;exports.WhatsAppTextEditorHeader=c.WhatsAppTextEditorHeader;exports.AIChat=Ao.AIChat;exports.AIProvider=M.AIProvider;exports.useAIContext=M.useAIContext;exports.AI_TAG_CHANGE_RATIO_THRESHOLD=_.AI_TAG_CHANGE_RATIO_THRESHOLD;exports.computeAiTagOnAccept=_.computeAiTagOnAccept;exports.levenshteinDistance=_.levenshteinDistance;exports.ALERT_TYPES=R.ALERT_TYPES;exports.COLOR_CONFIG_MAP=R.COLOR_CONFIG_MAP;exports.CONTENT_POSITION=R.CONTENT_POSITION;exports.ANIMATION_TIMING=qo.ANIMATION_TIMING;exports.APIError=So.APIError;exports.AVATAR_BACKGROUND=p.AVATAR_BACKGROUND;exports.AVATAR_SIZE_MAP=p.AVATAR_SIZE_MAP;exports.AVATAR_TYPES=p.AVATAR_TYPES;exports.SIZE=p.SIZE;exports.AVATAR_SIZE_VS_ICON_SIZE_MAP=C.AVATAR_SIZE_VS_ICON_SIZE_MAP;exports.Avatar=C.Avatar;exports.BACKGROUND_VS_TEXT_COLOR_MAP=C.BACKGROUND_VS_TEXT_COLOR_MAP;exports.MESSAGE_CHANNELS=C.MESSAGE_CHANNELS;exports.AccessTokenTroubleshootDialog=Io.AccessTokenTroubleshootDialog;exports.ActionButtons=Eo.ActionButtons;exports.ActivateBikAi=ho.ActivateBikAi;exports.ActiveChecklistIcon=Po.ActiveChecklistIcon;exports.AddDataPill=_o.AddDataPill;exports.AddVariableV2=Ro.AddVariableV2;exports.AddVariableV2SideModal=mo.AddVariableV2SideModal;exports.AgentBuilder=go.AgentBuilder;exports.AgentListing=Oo.AgentListing;exports.AiCreditsExhausted=Bo.AiCreditsExhausted;exports.AiCreditsLow=fo.AiCreditsLow;exports.AiSyncProgress=yo.AiSyncProgress;exports.Alert=No.Alert;exports.AnalyticsCard=Do.AnalyticsCard;exports.AnalyticsChip=ko.AnalyticsChip;exports.AnalyticsContainer=b.AnalyticsContainer;exports.CardDataContainer=b.CardDataContainer;exports.AnalyticsDropdown=m.AnalyticsDropdown;exports.EachItem=m.EachItem;exports.formatDate=m.formatDate;exports.AnalyticsItem=A.AnalyticsItem;exports.QualityTimelineChart=A.QualityTimelineChart;exports.RightPanelTemplateAnalytics=A.RightPanelTemplateAnalytics;exports.TemplateAnalyticsComponent=A.TemplateAnalyticsComponent;exports.AnalyticsMetric=Lo.AnalyticsMetric;exports.AnalyticsMultiChip=Mo.AnalyticsMultiChip;exports.AnalyticsTrend=bo.AnalyticsTrend;exports.BIKChatbot=Fo.BIKChatbot;exports.BOLD_TEXT_PATTERN=o.BOLD_TEXT_PATTERN;exports.CODE_TEXT_PATTERN=o.CODE_TEXT_PATTERN;exports.EMAIL_PATTERN=o.EMAIL_PATTERN;exports.ITALIC_TEXT_PATTERN=o.ITALIC_TEXT_PATTERN;exports.MARKDOWN_LINK_PATTERN=o.MARKDOWN_LINK_PATTERN;exports.RAW_PHONE_CANDIDATE_PATTERN=o.RAW_PHONE_CANDIDATE_PATTERN;exports.URL_PATTERN=o.URL_PATTERN;exports.filterPhoneCandidates=o.filterPhoneCandidates;exports.isCompleteFormatting=o.isCompleteFormatting;exports.isCompleteMarkdownLink=o.isCompleteMarkdownLink;exports.isCompleteUrl=o.isCompleteUrl;exports.stripMarkdownFormatting=o.stripMarkdownFormatting;exports.BUTTON_TYPE=g.BUTTON_TYPE;exports.POD=g.POD;exports.TEMPLATE_QUALITY=g.TEMPLATE_QUALITY;exports.BackgroundImageContainer=l.BackgroundImageContainer;exports.MainCardContainer=l.MainCardContainer;exports.MainContainer=l.MainContainer;exports.WhatsNewIconContainer=l.WhatsNewIconContainer;exports.WhatsNewWrapper=l.WhatsNewWrapper;exports.BannerThirdPartyIcon=O.BannerThirdPartyIcon;exports.BannerType=O.BannerType;exports.getUrlForBannerThirdPartyIcon=O.getUrlForBannerThirdPartyIcon;exports.BaseQueryBuilderNode=wo.BaseQueryBuilderNode;exports.BaseWhatsappContentLangHelper=Uo.BaseWhatsappContentLangHelper;exports.BikAccordion=Vo.BikAccordion;exports.BikEditor=Ho.BikEditor;exports.BikEditorToolbar=vo.BikEditorToolbar;exports.BikGiftedChat=Go.default;exports.BikHeader=Wo.BikHeader;exports.BikImageCropper=xo.BikImageCropper;exports.BikImagePipeline=Yo.BikImagePipeline;exports.BikLayout=zo.BikLayout;exports.BikProfile=Ko.BikProfile;exports.BikShimmer=Qo.BikShimmer;exports.BikSidebar=Xo.BikSidebar;exports.BikSidebarV2=jo.BikSidebarV2;exports.BikSlider=$o.BikSlider;exports.BottomWrapper=q.BottomWrapper;exports.HeaderWrapper=q.HeaderWrapper;exports.SubscriptionPlanSelector=q.SubscriptionPlanSelector;exports.defaultTabs=q.defaultTabs;exports.BroadcastFlowError=Zo.BroadcastFlowError;exports.Bubble=Jo.Bubble;exports.Button=ei.Button;exports.ButtonActions=S.ButtonActions;exports.ButtonTypes=S.ButtonTypes;exports.StateComponent=S.StateComponent;exports.StateInterface=S.StateInterface;exports.ButtonGroup=ri.ButtonGroup;exports.CHANNEL_TYPE=ti.CHANNEL_TYPE;exports.CHAT_MESSAGE_ROLES=B.CHAT_MESSAGE_ROLES;exports.DEFAULT_CONVERSATION_ID=B.DEFAULT_CONVERSATION_ID;exports.createSessionRecord=B.createSessionRecord;exports.COUPON_EXPIRATION=i.COUPON_EXPIRATION;exports.DISCOUNT_APPLIES_TO=i.DISCOUNT_APPLIES_TO;exports.DISCOUNT_TARGET_SELECTION=i.DISCOUNT_TARGET_SELECTION;exports.DISCOUNT_TARGET_TYPES=i.DISCOUNT_TARGET_TYPES;exports.DISCOUNT_TYPES=i.DISCOUNT_TYPES;exports.DISCOUNT_VALUE_TYPES=i.DISCOUNT_VALUE_TYPES;exports.MIN_PURCHASE_REQUIREMENT=i.MIN_PURCHASE_REQUIREMENT;exports.OFFER_APPLIES_TO=i.OFFER_APPLIES_TO;exports.initialDynamicCouponErrorState=i.initialDynamicCouponErrorState;exports.initialStaticCouponErrorState=i.initialStaticCouponErrorState;exports.CURTAIN_COLOR_CONFIG_MAP=f.CURTAIN_COLOR_CONFIG_MAP;exports.CURTAIN_MODE=f.CURTAIN_MODE;exports.CURTAIN_TYPES=f.CURTAIN_TYPES;exports.Card=F.Card;exports.PieChartAnalytics=F.PieChartAnalytics;exports.CardSelectionModal=oi.CardSelectionModal;exports.CardSelector=ii.CardSelector;exports.CardSelectorGroup=ni.CardSelectorGroup;exports.Carousel=ai.Carousel;exports.CarouselPreview=ui.CarouselPreview;exports.CarouselSecondary=si.CarouselSecondary;exports.CarouselVersion=ci.CarouselVersion;exports.CheckBox=li.CheckBox;exports.CheckIndicatorIcon=di.CheckIndicatorIcon;exports.CheckList=Ti.CheckList;exports.Chip=pi.Chip;exports.ChipDropdown=w.ChipDropdown;exports.ChipDropdownContainer=w.ChipDropdownContainer;exports.CodeBlock=Ci.CodeBlock;exports.CodeLanguage=Ai.CodeLanguage;exports.CohortError=qi.CohortError;exports.ColourInput=Si.ColourInput;exports.ComparisonBarChart=Ii.ComparisonBarChart;exports.CompletedChecklistIcon=Ei.CompletedChecklistIcon;exports.ConnectedAppDialog=hi.ConnectedAppDialog;exports.CountriesData=Pi.CountriesData;exports.CountryCodePicker=_i.CountryCodePicker;exports.CountryPicker=Ri.CountryPicker;exports.CouponExpiration=mi.CouponExpiration;exports.CurrencySymbols=gi.CurrencySymbols;exports.Curtain=Oi.Curtain;exports.CustomDateTime=Bi.CustomDateTime;exports.CustomError=fi.CustomError;exports.DEFAULT_ACTIVE_FORMATS=yi.DEFAULT_FORMAT_STATE;exports.DEFAULT_IMAGE=U.DEFAULT_IMAGE;exports.ShimmerImage=U.ShimmerImage;exports.DEFAULT_MAX_TOOL_CALLS=y.DEFAULT_MAX_TOOL_CALLS;exports.DEFAULT_RESPONSE_FORMAT=y.DEFAULT_RESPONSE_FORMAT;exports.RESPONSE_FORMATS=y.RESPONSE_FORMATS;exports.DROP_POSITION=a.DROP_POSITION;exports.DropdownToggleContainer=a.DropdownToggleContainer;exports.FAB_POSITION=a.FAB_POSITION;exports.FloatingActionButtonContainer=a.FloatingActionButtonContainer;exports.FloatingActionButtonOuterContainer=a.FloatingActionButtonOuterContainer;exports.MENU_ALIGNMENT=a.MENU_ALIGNMENT;exports.StyledDropdown=a.StyledDropdown;exports.TooltipStyled=a.TooltipStyled;exports.DashboardReviewPopUp=Ni.DashboardReviewPopUp;exports.DataSourcePanel=Di.DataSourcePanel;exports.DateKeys=I.DateKeys;exports.MEDIA_TYPES=I.MEDIA_TYPES;exports.PostPicker=I.PostPicker;exports.dateOptions=I.dateOptions;exports.DatePicker=ki.DatePicker;exports.DatePickerWrapper=Li.DatePickerWrapper;exports.DeleteConfirmationModal=Mi.DeleteConfirmationModal;exports.DiscountModal=bi.DiscountModal;exports.DotPulse=Fi.DotPulse;exports.DropShadow=wi.DropShadow;exports.Dropdown=Ui.Dropdown;exports.DropdownButton=Vi.DropdownButton;exports.DropdownPopover=Hi.DropdownPopover;exports.DualIconButton=vi.DualIconButton;exports.DurationUnit=Gi.DurationUnit;exports.DynamicTabs=Wi.DynamicTabs;exports.ERROR_TYPES=N.ERROR_TYPES;exports.ERROR_TYPE_CLASS_MAP=N.ERROR_TYPE_CLASS_MAP;exports.Logger=N.Logger;exports.ExcelUploadError=xi.ExcelUploadError;exports.FABMenu=Yi.FABMenu;exports.FeatureModal=zi.FeatureModal;exports.FeatureModalV2=Ki.FeatureModalV2;exports.FileUploader=Qi.FileUploader;exports.FirebaseCallError=Xi.FirebaseCallError;exports.FirebaseSubscriptionError=ji.FirebaseSubscriptionError;exports.FirebaseUserFetcher=$i.FirebaseUserFetcher;exports.Floater=Zi.Floater;exports.FloatingActionButton=Ji.FloatingActionButton;exports.FloatingInputDropdown=en.FloatingInputDropdown;exports.FunnelChart=rn.FunnelChart;exports.FunnelVerticalBarGraph=tn.FunnelVerticalBarGraph;exports.GRAPH_ORIENTATION=on.GRAPH_ORIENTATION;exports.HEAT=E.HEAT;exports.HEAT_COLORS=E.HEAT_COLORS;exports.HEAT_GRADING_TYPE=E.HEAT_GRADING_TYPE;exports.HeatMap=E.HeatMap;exports.HTTPMethods=h.HTTPMethods;exports.HTTP_CODE=h.HTTP_CODE;exports.RequestExecutor=h.RequestExecutor;exports.TRANSACTION_ENABLED_STORE_IDS=h.TRANSACTION_ENABLED_STORE_IDS;exports.HalfDoughnutChart=nn.HalfDoughnutChart;exports.HeatBoxStyled=V.HeatBoxStyled;exports.HeatMapVertical=V.HeatMapVertical;exports.HorinzontalBar=an.HorinzontalBar;exports.HorizontalGraph=un.HorizontalGraph;exports.IconButton=sn.IconButton;exports.ImageService=cn.ImageService;exports.InactiveChecklistIcon=ln.InactiveChecklistIcon;exports.Input=dn.Input;exports.InputWithVariables=Tn.InputWithVariables;exports.KeywordsInput=pn.KeywordsInput;exports.LAZY_SECONDARY_APP_NAME=d.SECONDARY_APP_NAME;exports.getOrInitFirebaseChatApp=d.getOrInitFirebaseChatApp;exports.lazyChatConfig=d.chatConfig;exports.lazyStagingConfig=d.stagingConfig;exports.rnSecondaryAuth=d.rnSecondaryAuth;exports.LineChart=Cn.LineChart;exports.LinearChipGroupedChart=An.LinearChipGroupedChart;exports.ListItem=qn.ListItem;exports.Loader=P.Loader;exports.Switch=P.Switch;exports.SwitchContainer=P.SwitchContainer;exports.Thumb=P.Thumb;exports.MenuItemDropdown=Sn.MenuItemDropdown;exports.MultiLevelDropdown=In.MultiLevelDropdown;exports.NaLinkWrapper=H.NaLinkWrapper;exports.NavigationHyperlink=H.NavigationHyperlink;exports.NewSubscriptionPlan=En.NewSubscriptionPlan;exports.OUT_OF_STOCK_ACTION=v.OUT_OF_STOCK_ACTION;exports.ScreenName=v.ScreenName;exports.OpenedDropdown=hn.OpenedDropdown;exports.POPUP_DIMENSIONS=Pn.POPUP_DIMENSIONS;exports.Pagination=_n.Pagination;exports.PickerType=Rn.PickerType;exports.PieChart=mn.PieChart;exports.PostLiveChecklist=gn.PostLiveChecklist;exports.PostLiveChecklistItem=On.PostLiveChecklistItem;exports.PricePleaseProductPicker=G.PricePleaseProductPicker;exports.ProductPickerContent=G.ProductPickerContent;exports.ProductPickerModal=Bn.ProductPickerModal;exports.ProgressBadgeIcon=fn.ProgressBadgeIcon;exports.ProgressBarComponent=W.ProgressBarComponent;exports.ProgressCompletedBar=W.ProgressCompletedBar;exports.ProgressBarType=D.ProgressBarType;exports.ProgressBarV2=D.ProgressBarV2;exports.TextAlignment=D.TextAlignment;exports.PropertyNode=x.PropertyNode;exports.PropertyNodeHeadless=x.PropertyNodeHeadless;exports.PureSpinner=Y.PureSpinner;exports.Spinner=Y.Spinner;exports.QueryBuilder=yn.QueryBuilder;exports.QueryBuilderConnectorType=Nn.QueryBuilderConnectorType;exports.RATIO=z.RATIO;exports.Thumbnail=z.Thumbnail;exports.RadioButton=Dn.RadioButton;exports.RadioList=kn.RadioList;exports.RechargeError=Ln.RechargeError;exports.Redirect2Icon=Mn.Redirect2Icon;exports.STEP_DEFINITIONS=bn.STEP_DEFINITIONS;exports.ScoreBlock=Fn.ScoreBlock;exports.SearchBar=wn.SearchBar;exports.SearchIcon=Un.SearchIcon;exports.ShopifyScopeWrapper=Vn.ShopifyScopeWrapper;exports.ShowShopifyRestrictedModal=Hn.ShowShopifyRestrictedModal;exports.SideModal=vn.SideModal;exports.SidebarSkeleton=Gn.SidebarSkeleton;exports.SimpleSidebar=Wn.SimpleSidebar;exports.SmallCheckIcon=xn.SmallCheckIcon;exports.StackedBarChart=Yn.StackedBarChart;exports.StackedBarDistributionChart=zn.StackedBarDistributionChart;exports.StarRating=Kn.StarRating;exports.StateModalComponent=Qn.StateModalComponent;exports.Stepper=Xn.Stepper;exports.StyledModal=jn.StyledModal;exports.SubscriptionPlan=$n.SubscriptionPlan;exports.SubscriptionPlansCollected=Zn.SubscriptionPlansCollected;exports.TEXT=Jn.TEXT;exports.TabItemComponent=K.TabItemComponent;exports.Tabs=K.Tabs;exports.TablePagination=ea.TablePagination;exports.TablePaginationCard=Q.TablePaginationCard;exports.TablePaginationCardStyled=Q.TablePaginationCardStyled;exports.Tag=ra.Tag;exports.TemplateAnalyticsSkeleton=ta.TemplateAnalyticsSkeleton;exports.TemplateContextMapper=oa.TemplateContextMapper;exports.TemplatePreview=ia.TemplatePreview;exports.TestimonialCard=na.TestimonialCard;exports.TextPickerModal=aa.TextPickerModal;exports.TimePicker=ua.TimePicker;exports.Toaster=sa.Toaster;exports.ToolSource=ca.ToolSource;exports.Tooltip=la.Tooltip;exports.TruncateValue=t.TruncateValue;exports.calculatePercentage=t.calculatePercentage;exports.roundNumber=t.roundNumber;exports.truncateValueForIndianStore=t.truncateValueForIndianStore;exports.truncateValueForInternationalStore=t.truncateValueForInternationalStore;exports.truncateValueTo10K=t.truncateValueTo10K;exports.truncateValueToA=t.truncateValueToA;exports.truncateValueToB=t.truncateValueToB;exports.truncateValueToC=t.truncateValueToC;exports.truncateValueToK=t.truncateValueToK;exports.truncateValueToL=t.truncateValueToL;exports.truncateValueToM=t.truncateValueToM;exports.truncateValueToT=t.truncateValueToT;exports.VariableEditorHelper=da.VariableEditorHelper;exports.VariablePicker=Ta.VariablePicker;exports.VerticalBarAndLinearGraph=pa.VerticalBarAndLinearGraph;exports.VerticalGraph=Ca.VerticalGraph;exports.VideoModal=Aa.VideoModal;exports.WhatsAppFormatToHTML=qa.WhatsAppFormatToHTML;exports.WhatsAppTextEditor=Sa.WhatsAppTextEditor;exports.WhatsNew=Ia.WhatsNew;exports.WhatsNewButton=Ea.WhatsNewButton;exports.WhatsNewPanel=ha.WhatsNewPanel;exports.WhatsNewProvider=X.WhatsNewProvider;exports.useWhatsNewContext=X.useWhatsNewContext;exports.WhatsappIntegrationError=Pa.WhatsappIntegrationError;exports.WhatsappLikePreview=_a.WhatsappLikePreview;exports.WhatsappLikePreviewV2=Ra.WhatsappLikePreviewV2;exports.buildAgentMentionItems=k.buildAgentMentionItems;exports.editorDocToInstructions=k.editorDocToInstructions;exports.instructionsToEditorHtml=k.instructionsToEditorHtml;exports.environment=ma.environment;exports.escapeFormulaInjection=n.escapeFormulaInjection;exports.isAllowedImageUrl=n.isAllowedImageUrl;exports.isAllowedLinkUrl=n.isAllowedLinkUrl;exports.isAllowedUrl=n.isAllowedUrl;exports.sanitizeBasicHtml=n.sanitizeBasicHtml;exports.sanitizeCssProperties=n.sanitizeCssProperties;exports.sanitizeEmailHtml=n.sanitizeEmailHtml;exports.sanitizePlainText=n.sanitizePlainText;exports.stripHtmlTags=n.stripHtmlTags;exports.getAllDataFromTemplateComponent=j.getAllDataFromTemplateComponent;exports.getAllDataFromWebpushTemplateComponent=j.getAllDataFromWebpushTemplateComponent;exports.getAuthMethods=s.getAuthMethods;exports.getFirestoreLiteMethods=s.getFirestoreLiteMethods;exports.getFirestoreMethods=s.getFirestoreMethods;exports.getFunctionsMethods=s.getFunctionsMethods;exports.getMessagingMethods=s.getMessagingMethods;exports.getStorageMethods=s.getStorageMethods;exports.getBodyHtml=$.getBodyHtml;exports.getSectionsHtml=$.getSectionsHtml;exports.getFireStoreDb=ga.getFireStoreDb;exports.getFireStoreLiteDb=Oa.getFireStoreLiteDb;exports.getFirebaseChatStorage=Ba.getFirebaseChatStorage;exports.isVariable=Z.isVariable;exports.validateIsUrl=Z.validateIsUrl;exports.queryBuilderCacheSlice=fa.queryBuilderCacheSlice;exports.queryBuilderSlice=ya.queryBuilderSlice;exports.renderVariableUIForPreview=Na.renderVariableUIForPreview;exports.resizeImage=Da.resizeImage;exports.toLiveChatText=ka.toLiveChatText;exports.toWhatsAppText=La.toWhatsAppText;exports.unwrapDropdownValue=Ma.unwrapDropdownValue;exports.useAIChat=ba.useAIChat;exports.useAgentDraft=Fa.useAgentDraft;exports.useFeatureAnnouncements=wa.useFeatureAnnouncements;exports.useWhatsNew=Ua.useWhatsNew;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ae=require("./components/template-preview/constants/regexPatterns.js"),se=require("./utils/StringUtils.js"),p=require("./constants/Theme.js"),ue=require("./constants/zindex.js"),e=require("./components/TypographyStyle.js"),ce=require("./components/SearchFilter/index.js"),le=require("./components/resizeImage/index.js"),de=require("./utils/validator.js"),Te=require("./components/input-with-vars/customPortal.js"),pe=require("./components/dropdown/MultilevelDropdownPopover/index.js"),Ce=require("./components/unsatisfactory-response-list/UnsatisfactoryResponseList.js"),Se=require("./components/unsatisfactory-response-list/UnsatisfactoryCountIntentWiseModal.js"),w=require("./components/data-source-panel/model.js"),Ae=require("./assets/icons/actionButton.svg.js"),qe=require("./components/adbanner/AdBanner.js"),Ie=require("./assets/icons/aiContentIcon.svg.js"),Ee=require("./assets/icons/AiEdit.svg.js"),Pe=require("./assets/icons/Ai_event_generating.svg.js"),_e=require("./assets/icons/alarm.svg.js"),he=require("./assets/icons/alert.svg.js"),Re=require("./assets/icons/alert_triangle.svg.js"),me=require("./assets/icons/arrow_back.svg.js"),Oe=require("./assets/icons/arrow_down.svg.js"),ge=require("./assets/icons/arrow_left.svg.js"),Be=require("./assets/icons/arrow_up.svg.js"),fe=require("./assets/icons/back_icon.svg.js"),De=require("./assets/icons/bik_ai_stars_icon.svg.js"),Le=require("./assets/icons/bik_livechat.svg.js"),Ne=require("./assets/icons/Bik_logo.svg.js"),ye=require("./assets/icons/bold.svg.js"),ke=require("./assets/icons/box.svg.js"),Me=require("./assets/icons/box_round.svg.js"),be=require("./assets/icons/box_search.svg.js"),Fe=require("./assets/icons/boxV2.svg.js"),we=require("./assets/icons/brand_home.svg.js"),Ue=require("./assets/icons/broken_media_image.svg.js"),He=require("./assets/icons/calendar.svg.js"),Ve=require("./assets/icons/card_footer_arraw.svg.js"),ve=require("./assets/icons/ChartBar.svg.js"),Ge=require("./assets/icons/ChartPie.svg.js"),We=require("./assets/icons/chat.svg.js"),xe=require("./assets/icons/chat-channel.svg.js"),Ye=require("./assets/icons/check.svg.js"),ze=require("./assets/icons/checkCircle.svg.js"),Ke=require("./assets/icons/CheckSquareOffset.svg.js"),Qe=require("./assets/icons/checklistIcon.svg.js"),Xe=require("./assets/icons/chevronDown.svg.js"),je=require("./assets/icons/chevronDownOutline.svg.js"),Ze=require("./assets/icons/chevronLeft.svg.js"),$e=require("./assets/icons/chevronLeft2.svg.js"),Je=require("./assets/icons/chevronRight.svg.js"),er=require("./assets/icons/chevronRight2.svg.js"),rr=require("./assets/icons/chevronRightAlt.svg.js"),tr=require("./assets/icons/chevronUpOutline.svg.js"),or=require("./assets/icons/circular-cross-icon.svg.js"),ir=require("./assets/icons/click.svg.js"),nr=require("./assets/icons/clock.svg.js"),ar=require("./assets/icons/copy-code-icon.svg.js"),sr=require("./assets/icons/cross.svg.js"),ur=require("./assets/icons/cubeIcon.svg.js"),cr=require("./assets/icons/cursor.svg.js"),lr=require("./assets/icons/CustomiseIcon.js"),dr=require("./assets/icons/delete.svg.js"),Tr=require("./assets/icons/desktop_custom.svg.js"),pr=require("./assets/icons/DocsIcon.js"),Cr=require("./assets/icons/document_pdf.svg.js"),Sr=require("./assets/icons/DoubtIcon.js"),Ar=require("./assets/icons/drag_handle.svg.js"),qr=require("./assets/icons/edit.svg.js"),Ir=require("./assets/icons/EditLabel.js"),Er=require("./assets/icons/email-channel.svg.js"),Pr=require("./assets/icons/emoji.svg.js"),_r=require("./assets/icons/EnableIcon.js"),hr=require("./assets/icons/errorIcon.svg.js"),Rr=require("./assets/icons/errorInfo.svg.js"),mr=require("./assets/icons/expressionless_emoji.svg.js"),Or=require("./assets/icons/facebook_channel.svg.js"),gr=require("./components/feature-announcements/FeatureAnnouncementProvider.js"),Br=require("./assets/icons/file.svg.js"),fr=require("./assets/icons/filePdf.svg.js"),Dr=require("./assets/icons/gift_icon.svg.js"),Lr=require("./assets/icons/gmail.svg.js"),Nr=require("./assets/icons/GoLiveIcon.js"),yr=require("./assets/icons/graph.svg.js"),kr=require("./assets/icons/grid.svg.js"),Mr=require("./assets/icons/halfRectangle.svg.js"),br=require("./assets/icons/HeadsetIcon.js"),Fr=require("./assets/icons/help.svg.js"),wr=require("./assets/icons/HelpIcon.svg.js"),Ur=require("./assets/icons/home.svg.js"),Hr=require("./assets/icons/horizontal_dots.svg.js"),Vr=require("./assets/icons/hover_home.svg.js"),vr=require("./assets/icons/Idea.svg.js"),Gr=require("./assets/icons/image.svg.js"),Wr=require("./assets/icons/info.svg.js"),xr=require("./assets/icons/instagram.svg.js"),Yr=require("./assets/icons/instagram-channel.svg.js"),zr=require("./assets/icons/italic.svg.js"),Kr=require("./assets/icons/list.svg.js"),Qr=require("./assets/icons/ListChecksIcon.js"),Xr=require("./assets/icons/locked.svg.js"),jr=require("./assets/icons/log_out.svg.js"),Zr=require("./assets/icons/lto_icon.svg.js"),$r=require("./components/feature-announcements/MajorUpdatePopup.js"),Jr=require("./components/markdown/MarkdownRender.js"),et=require("./assets/icons/MarketingIcon.js"),rt=require("./assets/icons/maximize.svg.js"),tt=require("./components/feature-announcements/MinorUpdatePopup.js"),ot=require("./assets/icons/mobile_custom.svg.js"),it=require("./assets/icons/more_vertical.svg.js"),nt=require("./assets/icons/NotesIcon.js"),at=require("./assets/icons/NudgesIcon.js"),st=require("./assets/icons/OnboardingLogo.js"),ut=require("./assets/icons/openai.svg.js"),ct=require("./assets/icons/OrderTrackingIcon.js"),lt=require("./assets/icons/paperclip.svg.js"),dt=require("./assets/icons/percentage_icon.svg.js"),Tt=require("./assets/icons/phone.svg.js"),pt=require("./assets/icons/phone_round.svg.js"),Ct=require("./assets/icons/play.svg.js"),St=require("./assets/icons/plus.svg.js"),At=require("./assets/icons/PlusIcon.js"),qt=require("./assets/icons/pointer.svg.js"),It=require("./assets/icons/profile.svg.js"),Et=require("./components/ProgressChecklist/ProgressChecklist.js"),Pt=require("./assets/icons/qrb.svg.js"),_t=require("./assets/icons/question-mark.svg.js"),ht=require("./assets/icons/quotes.svg.js"),Rt=require("./assets/icons/RCS_PDF.svg.js"),mt=require("./assets/icons/redirect.svg.js"),Ot=require("./assets/icons/RedirectToNew.svg.js"),gt=require("./assets/icons/refresh.svg.js"),Bt=require("./assets/icons/retry.svg.js"),ft=require("./assets/icons/retryIcon.svg.js"),Dt=require("./assets/icons/sad_emoji.svg.js"),Lt=require("./assets/icons/search.svg.js"),Nt=require("./assets/icons/searchIcon.svg.js"),yt=require("./assets/icons/send.svg.js"),kt=require("./assets/icons/send_template.svg.js"),Mt=require("./assets/icons/shipping_icon.svg.js"),bt=require("./assets/icons/ShoppingIcon.js"),Ft=require("./assets/icons/similar.svg.js"),wt=require("./assets/icons/smile_emoji.svg.js"),Ut=require("./assets/icons/smiley_emoji.svg.js"),Ht=require("./assets/icons/sparkle.svg.js"),Vt=require("./assets/icons/speedometer.svg.js"),vt=require("./assets/icons/starEmpty.svg.js"),Gt=require("./assets/icons/starFilled.svg.js"),Wt=require("./assets/icons/starFilledV2.svg.js"),xt=require("./assets/icons/state_icon.svg.js"),Yt=require("./assets/icons/StepsIcon.js"),zt=require("./assets/icons/StoreIcon.js"),Kt=require("./assets/icons/strikeThrough.svg.js"),Qt=require("./assets/icons/sub_category.svg.js"),Xt=require("./assets/icons/successIcon.svg.js"),jt=require("./assets/icons/SupportIcon.js"),Zt=require("./assets/icons/sync.svg.js"),$t=require("./assets/icons/task.svg.js"),Jt=require("./assets/icons/text_t9.svg.js"),eo=require("./assets/icons/ThreeColumnsIcon.js"),ro=require("./assets/icons/tick.svg.js"),to=require("./assets/icons/tick_double.svg.js"),oo=require("./assets/icons/TrainingIcon.js"),io=require("./assets/icons/triangle_error.svg.js"),no=require("./assets/icons/undo.svg.js"),ao=require("./assets/icons/union.svg.js"),so=require("./assets/icons/upload.svg.js"),uo=require("./assets/icons/user_icon.svg.js"),co=require("./assets/icons/vertical_dots.svg.js"),lo=require("./components/vertical-full-screen-modal/component.js"),To=require("./assets/icons/video_camcorder.svg.js"),po=require("./assets/icons/videoRecorder.svg.js"),Co=require("./assets/icons/warning.svg.js"),So=require("./assets/icons/warningIcon.svg.js"),Ao=require("./assets/icons/website.svg.js"),qo=require("./assets/icons/whatsNew.svg.js"),Io=require("./assets/icons/whatsapp-channel.svg.js"),Eo=require("./assets/icons/whatsapp_color.svg.js"),Po=require("./assets/icons/WhiteStarFilled.svg.js"),u=require("./components/template-preview/models/TemplateMeta.js"),r=require("./components/QueryBuilder/types/QueryBuilderOperator.type.js"),_o=require("./components/agent-builder/constants/charLimits.js"),l=require("./components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js"),ho=require("./components/bik-chatbot/components/AIChat.js"),U=require("./components/bik-chatbot/contexts/AIContext.js"),m=require("./components/WhatsAppTextEditor/ai/aiTag.js"),O=require("./components/alerts/AlertHelper.js"),Ro=require("./components/feature-announcements/constants/animations.js"),mo=require("./utils/logging/ErrorConstructor/ApiError.js"),C=require("./components/avatar/AvatarHelper.js"),S=require("./components/avatar/Avatar.js"),Oo=require("./components/access-token-troubleshoot-dialog/AccessTokenTroubleshootDialog.js"),go=require("./components/action-button/ActionButtons.js"),Bo=require("./components/ai-modals/ActivateBikAI.js"),fo=require("./assets/icons/ActiveChecklistIcon.js"),Do=require("./components/add-variableV2/AddDataPill.js"),Lo=require("./components/add-variableV2/AddVariableV2.js"),No=require("./components/add-variableV2/AddVariableV2SideModal.js"),yo=require("./components/agent-builder/AgentBuilder.js"),ko=require("./components/agent-listing/AgentListing.js"),Mo=require("./components/ai-modals/AiCreditsExhausted.js"),bo=require("./components/ai-modals/AiCreditsLow.js"),Fo=require("./components/ai-modals/AiSyncProgress.js"),wo=require("./components/alerts/Alert.js"),Uo=require("./components/analytics-card/AnalyticsCard.js"),Ho=require("./components/analytics-chips-and-dropdowns/AnalyticsChip.js"),H=require("./components/analytics-card/AnalyticsCard.styled.js"),g=require("./components/analytics-chips-and-dropdowns/AnalyticsDropdown.js"),A=require("./components/template-context-mapper/modalElements/TemplateAnalyticsComponent.js"),Vo=require("./components/analytics-chips-and-dropdowns/AnalyticsMetric.js"),vo=require("./components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js"),Go=require("./components/analytics-chips-and-dropdowns/AnalyticsTrend.js"),Wo=require("./components/bik-chatbot/components/BIKChatbot.js"),xo=require("./components/bik-copilot/BIKCopilot.js"),i=require("./components/markdown/utils.js"),B=require("./components/template-preview/models/WhatsAppTemplate.js"),d=require("./components/whats-new/WhatsNew.styles.js"),f=require("./components/adbanner/model.js"),Yo=require("./components/QueryBuilder/components/QueryBuilderNode/Base/BaseQueryBuilderNode.js"),zo=require("./helpers/BaseWhatsappContentLang.helper.js"),Ko=require("./components/accordion/Accordion.js"),Qo=require("./editor/BikEditor.js"),Xo=require("./editor/toolbar/BikEditorToolbar.js"),jo=require("./components/BikGiftedChat/GiftedChat/GiftedChat.js"),Zo=require("./components/bik-layout/BikHeader.js"),$o=require("./components/image-cropper/BikImageCropper.js"),Jo=require("./components/image-cropper/BikImagePipeline/BikImagePipeline.js"),ei=require("./components/bik-layout/BikLayout.js"),ri=require("./components/bik-layout/BikProfile.js"),ti=require("./components/shimmer/ShimmerComponent/BikShimmer.js"),oi=require("./components/bik-layout/BikSidebar.js"),ii=require("./components/bik-layout/BikSidebarV2/BikSidebarV2.js"),ni=require("./components/slider/slider.js"),q=require("./components/plans/SubscriptionPlanSelector.js"),ai=require("./utils/logging/ErrorConstructor/BroadcastFlowError.js"),si=require("./components/BikGiftedChat/Bubble/Bubble.js"),ui=require("./components/button/Button.js"),I=require("./components/states/StateComponent.js"),ci=require("./components/buttonGroup/ButtonGroup.js"),li=require("./components/template-preview/models/Channels.js"),D=require("./components/bik-chatbot/types/chat.js"),V=require("./components/bik-copilot/CopilotBall.js"),v=require("./components/bik-copilot/services/copilotStreamClient.js"),L=require("./components/bik-copilot/services/copilotMessagesClient.js"),G=require("./components/bik-copilot/services/copilotIcebreakersClient.js"),t=require("./components/bik-copilot/services/copilotDb.js"),n=require("./components/discount-modal/type.js"),N=require("./components/curtain/CurtainHelper.js"),W=require("./components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js"),di=require("./components/card-selection-modal/CardSelectionModal.js"),Ti=require("./components/card-selector/CardSelector.js"),pi=require("./components/card-selector/CardSelectorGroup.js"),Ci=require("./components/carousel/carousel.js"),Si=require("./components/carousel-preview/CarouselPreview.js"),Ai=require("./components/carousel-secondary/CarouselSecondary.js"),qi=require("./components/carousel-secondary/model.js"),Ii=require("./components/checkBox/CheckBox.js"),Ei=require("./assets/icons/CheckIndicatorIcon.js"),Pi=require("./components/checkList/CheckList.js"),_i=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/Chip.js"),x=require("./components/dropdown/ChipDropdown.js"),hi=require("./components/code-block/CodeBlock.js"),Ri=require("./components/code-block/types.js"),mi=require("./utils/logging/ErrorConstructor/CohortError.js"),Oi=require("./components/colourInput/ColourInput.js"),gi=require("./components/analytics-chips-and-dropdowns/chart/ComparisonBarChart/ComparisonBarChart.js"),Bi=require("./assets/icons/CompletedChecklistIcon.js"),fi=require("./components/connected-app-dialog/ConnectedAppDialog.js"),Di=require("./components/bik-copilot/ControlledCopilot.js"),Li=require("./components/bik-copilot/CopilotPanel.js"),Ni=require("./components/bik-copilot/services/copilotSseParser.js"),yi=require("./components/country-code-picker/CountryCodePicker.modal.js"),ki=require("./components/country-code-picker/CountryCodePicker.js"),Mi=require("./components/country-code-picker/CountryPicker.js"),bi=require("./components/discount-modal/CouponExpiration/CouponExpiration.js"),Fi=require("./components/product-picker-v2/constants.js"),wi=require("./components/curtain/Curtain.js"),Ui=require("./components/custom-date-time/CustomDateTime.js"),Hi=require("./utils/logging/ErrorConstructor/CustomError.js"),Vi=require("./editor/BikEditor.types.js"),y=require("./components/bik-copilot/useCopilotIcebreakers.js"),Y=require("./components/shimmer-image/ShimmerImage.js"),k=require("./components/bik-chatbot/types/ai.js"),s=require("./components/floating-action-button/FloatingActionButton.styles.js"),vi=require("./components/dashboard-review-popup/DashboardReviewPopUp.js"),Gi=require("./components/data-source-panel/DataSourcePanel.js"),E=require("./components/postPicker/postPicker.js"),Wi=require("./components/datePicker/DatePicker.js"),xi=require("./components/datePicker/DatePickerWrapper.js"),Yi=require("./components/states-modal/DeleteConfirmationModal.js"),zi=require("./components/discount-modal/DiscountModal.js"),Ki=require("./components/dot-pulse/DotPulse.js"),Qi=require("./components/dropShadow/DropShadow.js"),Xi=require("./components/dropdown/Dropdown.js"),ji=require("./components/dropdown-button/DropdownButton.js"),Zi=require("./components/dropdown/DropdownPopover/index.js"),$i=require("./components/dual-icon-button/DualIconButton.js"),Ji=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/types.js"),en=require("./components/dynamic-tabs/DynamicTabs.js"),M=require("./utils/logging/Logger.js"),rn=require("./utils/logging/ErrorConstructor/ExcelUploadError.js"),tn=require("./components/fab-menu/FABMenu.js"),on=require("./components/bik-layout/FeatureModal.js"),nn=require("./components/bik-layout/FeatureModalV2.js"),an=require("./components/file-uploader/FileUploader.js"),sn=require("./utils/logging/ErrorConstructor/FirebaseCallError.js"),un=require("./utils/logging/ErrorConstructor/FirebaseSubscriptionError.js"),cn=require("./firebase/firebaseUserFetcher.js"),ln=require("./components/floater/floater.js"),dn=require("./components/floating-action-button/FloatingActionButton.js"),Tn=require("./components/floating-input-dropdown/FloatingInputDropdown.js"),pn=require("./components/analytics-chips-and-dropdowns/chart/FunnelChart/FunnelChart.js"),Cn=require("./components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/FunnelVerticalBarGraph.js"),Sn=require("./components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarDistributionChart.model.js"),P=require("./components/analytics-chips-and-dropdowns/chart/heatmap/HeatMap.js"),_=require("./request-executor/executor.js"),An=require("./components/half-doughnut-chart/HalfDoughnutChart.js"),z=require("./components/analytics-chips-and-dropdowns/chart/heatmap/HeatMapVertical.js"),qn=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/HorizontalBar.js"),In=require("./components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.js"),En=require("./components/icon-button/IconButton.js"),Pn=require("./components/image-compress/ImageCompress.js"),_n=require("./assets/icons/InactiveChecklistIcon.js"),hn=require("./components/input/Input.js"),Rn=require("./components/input-with-vars/InputWithVariables.js"),mn=require("./components/keywords-input/KeywordsInput.js"),T=require("./firebase/lazyFirebaseApp.js"),On=require("./components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js"),gn=require("./components/analytics-chips-and-dropdowns/chart/linearChipGroupedChart/LinearChipGroupedChart.js"),Bn=require("./components/list-item/ListItem.js"),h=require("./components/switch/Switch.js"),fn=require("./components/dropdown/MenuItem/MenuItem.js"),Dn=require("./components/multi-level-dropdown/MultiLevelDropdown.js"),K=require("./components/navigation-hyperlink/NavigationHyperlink.js"),Ln=require("./components/plans/NewSubscriptionPlan.js"),Q=require("./components/product-picker-v2/type.js"),Nn=require("./components/dropdown/OpenedDropdown/components/OpennedDropdown.js"),yn=require("./components/feature-announcements/constants/dimensions.js"),kn=require("./components/pagination/Pagination.js"),Mn=require("./components/variable-picker-v3/model.js"),bn=require("./components/analytics-chips-and-dropdowns/chart/Pie/PieChart.js"),Fn=require("./components/post-live-checklist/PostLiveChecklist.js"),wn=require("./components/post-live-checklist-item/PostLiveChecklistItem.js"),X=require("./components/product-picker/ProductPickerModal.js"),Un=require("./components/product-picker-v2/modal.js"),Hn=require("./assets/icons/ProgressBadgeIcon.js"),j=require("./components/progress-bar/ProgressBarComponent.js"),b=require("./components/progress-bar-v2/ProgressBarV2.js"),Z=require("./components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js"),$=require("./components/spinner/Spinner.js"),Vn=require("./components/QueryBuilder/QueryBuilder.js"),vn=require("./components/QueryBuilder/types/QueryBuilderEnum.type.js"),J=require("./components/thumbnail/Thumbnail.js"),Gn=require("./components/radioButton/RadioButton.js"),Wn=require("./components/radioList/RadioList.js"),xn=require("./utils/logging/ErrorConstructor/RechargeFailure.js"),Yn=require("./assets/icons/Redirect2Icon.js"),zn=require("./components/agent-builder/constants/steps.js"),Kn=require("./components/analytics-chips-and-dropdowns/chart/scoreBlock/ScoreBlock.js"),Qn=require("./components/searchBar/searchBar.js"),Xn=require("./assets/icons/searchIcon.js"),jn=require("./components/states/ShopifyScopeWrapper.js"),Zn=require("./components/bik-layout/ShowShopifyRestrictedModal.js"),$n=require("./components/side-modal/SideModal.js"),Jn=require("./components/bik-layout/SidebarSkeleton.js"),ea=require("./components/bik-layout/SimpleSidebar.js"),ra=require("./assets/icons/SmallCheckIcon.js"),ta=require("./components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarChart.js"),oa=require("./components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarDistributionChart.js"),ia=require("./components/star-rating/StarRating.js"),na=require("./components/states-modal/StateModalComponent.js"),aa=require("./components/stepper/Stepper.js"),sa=require("./components/modals/styledModal.js"),ua=require("./components/plans/SubscriptionPlan.js"),ca=require("./components/plans/SubscriptionPlansCollected.js"),la=require("./components/feature-announcements/constants/index.js"),ee=require("./components/tabs/Tabs.js"),da=require("./components/TablePagination/TablePagination.js"),re=require("./components/TablePagination/TablePaginationCard.js"),Ta=require("./components/tag/Tag.js"),pa=require("./components/template-context-mapper/modalElements/TemplateAnalyticsSkeleton.js"),Ca=require("./components/template-context-mapper/TemplateContextMapper.js"),Sa=require("./components/template-preview/TemplatePreview.js"),Aa=require("./components/testimonial-card/TestimonialCard.js"),qa=require("./components/text-picker/TextPickerModal.js"),Ia=require("./components/datePicker/TimePicker.js"),Ea=require("./components/toaster/Toaster.js"),Pa=require("./components/agent-builder/constants/tools.js"),_a=require("./components/tooltips/Tooltip.js"),o=require("./components/analytics-chips-and-dropdowns/chart/utils/calcPercentage.js"),ha=require("./components/template-preview/helpers/VariableEditorHelper.js"),Ra=require("./components/variable-picker-v3/VariablePicker.js"),ma=require("./components/analytics-chips-and-dropdowns/chart/VerticalBarAndLinearGraph/VerticalBarAndLinearGraph.js"),Oa=require("./components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.js"),ga=require("./components/feature-announcements/VideoModal.js"),Ba=require("./components/template-preview/helpers/WhatsAppFormatToHTML.js"),fa=require("./components/WhatsAppTextEditor/WhatsAppTextEditor.js"),Da=require("./components/whats-new/WhatsNew.js"),La=require("./components/whats-new/WhatsNewButton.js"),Na=require("./components/whats-new/WhatsNewPanel.js"),te=require("./components/whats-new/WhatsNewProvider.js"),ya=require("./utils/logging/ErrorConstructor/WhatsappIntegrationError.js"),ka=require("./components/template-preview/WhatsApp/WhatsAppLikePreview.js"),Ma=require("./components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js"),F=require("./components/agent-builder/utils/mentionSerialization.js"),R=require("./components/bik-copilot/services/copilotPageSession.js"),ba=require("./firebase/environment.js"),a=require("./helpers/sanitize.js"),oe=require("./components/template-context-mapper/utils/getDataFromTemplateComponent.js"),c=require("./firebase/lazyFirebaseMethods.js"),ie=require("./editor/BikEditor.utils.js"),Fa=require("./components/bik-copilot/copilotPlacement.js"),wa=require("./firebase/lazyFirestore.js"),Ua=require("./firebase/lazyFirestoreLite.js"),Ha=require("./firebase/lazyStorage.js"),ne=require("./components/template-context-mapper/utils/validateIsUrl.js"),Va=require("./components/QueryBuilder/redux/queryBuilderCache.reducer.js"),va=require("./components/QueryBuilder/redux/queryBuilder.reducer.js"),Ga=require("./components/template-preview/helpers/SmsTemplateHelper.js"),Wa=require("./utils/resizeImage.js"),xa=require("./editor/serializers/toLiveChatText.js"),Ya=require("./editor/serializers/toWhatsAppText.js"),za=require("./components/dropdown/utils.js"),Ka=require("./components/bik-chatbot/services/useAIChat.js"),Qa=require("./components/agent-builder/hooks/useAgentDraft.js"),Xa=require("./components/bik-copilot/useCopilotStreamChat.js"),ja=require("./components/bik-copilot/useDraggableFloater.js"),Za=require("./components/feature-announcements/hooks/useFeatureAnnouncements.js"),$a=require("./components/whats-new/useWhatsNew.js");exports.regexPatterns=ae;exports.StringUtils=se.default;exports.BASE_COLORS=p.BASE_COLORS;exports.COLORS=p.COLORS;exports.DEFAULT_THEME=p.DEFAULT_THEME;exports.FONTS=p.FONTS;exports.ComponentZindex=ue.ComponentZindex;exports.AiBodyCaption=e.AiBodyCaption;exports.AiBodyTiny=e.AiBodyTiny;exports.BodyCaption=e.BodyCaption;exports.BodyLarge=e.BodyLarge;exports.BodyPrimary=e.BodyPrimary;exports.BodyPrimaryLink=e.BodyPrimaryLink;exports.BodyRegular=e.BodyRegular;exports.BodySecondary=e.BodySecondary;exports.BodySecondaryLink=e.BodySecondaryLink;exports.BodySmall=e.BodySmall;exports.BodyTiny=e.BodyTiny;exports.BodyTinySemiBold=e.BodyTinySemiBold;exports.ButtonLarge=e.ButtonLarge;exports.ButtonLargeAI=e.ButtonLargeAI;exports.ButtonRegular=e.ButtonRegular;exports.ButtonRegularAI=e.ButtonRegularAI;exports.Caption=e.Caption;exports.CaptionBold=e.CaptionBold;exports.Display=e.Display;exports.SmallRegular=e.SmallRegular;exports.SubHeading=e.SubHeading;exports.TextPlaceholder=e.TextPlaceholder;exports.Tiny=e.Tiny;exports.TitleFour=e.TitleFour;exports.TitleLarge=e.TitleLarge;exports.TitleMedium=e.TitleMedium;exports.TitleRegular=e.TitleRegular;exports.TitleSmall=e.TitleSmall;exports.TitleTiny=e.TitleTiny;exports.TitleXlarge=e.TitleXlarge;exports.SearchFilter=ce.SearchFilter;exports.ResizableImage=le.ResizableImage;exports.validateURL=de.validateURL;exports.CustomPortal=Te.CustomPortal;exports.MultilevelDropdownPopover=pe.MultilevelDropdownPopover;exports.UnsatisfactoryResponseList=Ce.UnsatisfactoryResponseList;exports.UnsatisfactoryCountIntentWiseModal=Se.UnsatisfactoryCountIntentWiseModal;exports.CustomDataCategories=w.CustomDataCategories;exports.CustomDataType=w.CustomDataType;exports.ActionButton=Ae.default;exports.AdBanner=qe.default;exports.AiContentIcon=Ie.default;exports.AiEdit=Ee.default;exports.AiEventGenerating=Pe.default;exports.Alarm=_e.default;exports.AlertIcon=he.default;exports.AlertTriangle=Re.default;exports.ArrowBack=me.default;exports.ArrowDown=Oe.default;exports.ArrowLeft=ge.default;exports.ArrowUp=Be.default;exports.BackIcon=fe.default;exports.BikAiStarsIcon=De.default;exports.BikLivechat=Le.default;exports.BikLogo=Ne.default;exports.Bold=ye.default;exports.Box=ke.default;exports.BoxRound=Me.default;exports.BoxSearch=be.default;exports.BoxV2=Fe.default;exports.BrandHome=we.default;exports.BrokenMediaImage=Ue.default;exports.Calendar=He.default;exports.CardFooterArrow=Ve.default;exports.ChartBar=ve.default;exports.ChartPie=Ge.default;exports.Chat=We.default;exports.ChatChannel=xe.default;exports.Check=Ye.default;exports.CheckCircle=ze.default;exports.CheckSquareOffset=Ke.default;exports.ChecklistIcon=Qe.default;exports.ChevronDown=Xe.default;exports.ChevronDownOutline=je.default;exports.ChevronLeft=Ze.default;exports.ChevronLeft2=$e.default;exports.ChevronRight=Je.default;exports.ChevronRight2=er.default;exports.ChevronRightAlt=rr.default;exports.ChevronUpOutline=tr.default;exports.CircularCrossIcon=or.default;exports.Click=ir.default;exports.Clock=nr.default;exports.CopyCodeIcon=ar.default;exports.Cross=sr.default;exports.CubeIcon=ur.default;exports.Cursor=cr.default;exports.CustomiseIcon=lr.default;exports.Delete=dr.default;exports.DesktopCustom=Tr.default;exports.Docs=pr.default;exports.DocumentPdf=Cr.default;exports.Doubt=Sr.default;exports.DragHandle=Ar.default;exports.Edit=qr.default;exports.EditLabel=Ir.default;exports.EmailChannel=Er.default;exports.Emoji=Pr.default;exports.EnableIcon=_r.default;exports.ErrorIcon=hr.default;exports.ErrorInfo=Rr.default;exports.ExpressionlessEmoji=mr.default;exports.FacebookChannel=Or.default;exports.FeatureAnnouncementProvider=gr.default;exports.File=Br.default;exports.FilePdf=fr.default;exports.GiftIcon=Dr.default;exports.Gmail=Lr.default;exports.GoLiveIcon=Nr.default;exports.Graph=yr.default;exports.Grid=kr.default;exports.HalfRectangle=Mr.default;exports.HeadsetIcon=br.default;exports.Help=Fr.default;exports.HelpIcon=wr.default;exports.Home=Ur.default;exports.HorizontalDots=Hr.default;exports.HoverHome=Vr.default;exports.Idea=vr.default;exports.Image=Gr.default;exports.Info=Wr.default;exports.Instagram=xr.default;exports.InstagramChannel=Yr.default;exports.Italic=zr.default;exports.List=Kr.default;exports.ListChecksIcon=Qr.default;exports.Locked=Xr.default;exports.LogOut=jr.default;exports.LtoIcon=Zr.default;exports.MajorUpdatePopup=$r.default;exports.MarkdownRender=Jr.default;exports.MarketingIcon=et.default;exports.Maximize=rt.default;exports.MinorUpdatePopup=tt.default;exports.MobileCustom=ot.default;exports.MoreVertical=it.default;exports.Notes=nt.default;exports.NudgesIcon=at.default;exports.OnboardingLogo=st.default;exports.OpenAI=ut.default;exports.OrderTrackingIcon=ct.default;exports.Paperclip=lt.default;exports.PercentageIcon=dt.default;exports.Phone=Tt.default;exports.PhoneRound=pt.default;exports.Play=Ct.default;exports.Plus=St.default;exports.PlusIcon=At.default;exports.Pointer=qt.default;exports.Profile=It.default;exports.ProgressChecklist=Et.default;exports.Qrb=Pt.default;exports.QuestionMark=_t.default;exports.Quotes=ht.default;exports.RCSPDF=Rt.default;exports.Redirect=mt.default;exports.RedirectToNew=Ot.default;exports.Refresh=gt.default;exports.Retry=Bt.default;exports.RetryIcon=ft.default;exports.SadEmoji=Dt.default;exports.Search=Lt.default;exports.SearchIconSvg=Nt.default;exports.Send=yt.default;exports.SendTemplate=kt.default;exports.ShippingIcon=Mt.default;exports.ShoppingIcon=bt.default;exports.Similar=Ft.default;exports.SmileEmoji=wt.default;exports.SmileyEmoji=Ut.default;exports.Sparkle=Ht.default;exports.Speedometer=Vt.default;exports.StarEmpty=vt.default;exports.StarFilled=Gt.default;exports.StarFilledV2=Wt.default;exports.StateIcon=xt.default;exports.Steps=Yt.default;exports.Store=zt.default;exports.StrikeThrough=Kt.default;exports.SubCategory=Qt.default;exports.SuccessIcon=Xt.default;exports.SupportIcon=jt.default;exports.Sync=Zt.default;exports.Task=$t.default;exports.TextT9=Jt.default;exports.ThreeColumns=eo.default;exports.Tick=ro.default;exports.TickDouble=to.default;exports.TrainingIcon=oo.default;exports.TriangleError=io.default;exports.Undo=no.default;exports.Union=ao.default;exports.Upload=so.default;exports.UserIcon=uo.default;exports.VerticalDots=co.default;exports.VerticalFullScreenModal=lo.default;exports.VideoCamcorder=To.default;exports.VideoRecorder=po.default;exports.Warning=Co.default;exports.WarningIcon=So.default;exports.Website=Ao.default;exports.WhatsNewIcon=qo.default;exports.WhatsappChannel=Io.default;exports.WhatsappColor=Eo.default;exports.WhiteStarFilled=Po.default;exports.ACTIONS_TYPES=u.ACTIONS_TYPES;exports.CUSTOM_URL_NAME=u.CUSTOM_URL_NAME;exports.HEADER_TYPES=u.HEADER_TYPES;exports.STATIC_URL_CTA_OPTION=u.STATIC_URL_CTA_OPTION;exports.TEMPLATE_EDITOR=u.TEMPLATE_EDITOR;exports.TEMPLATE_STATUS=u.TEMPLATE_STATUS;exports.UNSUBSCRIBE_URL_OPTION=u.UNSUBSCRIBE_URL_OPTION;exports.AD_STRING_OPERATORS=r.AD_STRING_OPERATORS;exports.ANY_AD_OPERATORS=r.ANY_AD_OPERATORS;exports.ANY_IG_OPERATORS=r.ANY_IG_OPERATORS;exports.BOOLEAN_OPERATORS=r.BOOLEAN_OPERATORS;exports.DATE_OPERATORS=r.DATE_OPERATORS;exports.EVENT_VALUES=r.EVENT_VALUES;exports.EXACTLY_OPERATORS=r.EXACTLY_OPERATORS;exports.FREQUENCY_OPERATORS=r.FREQUENCY_OPERATORS;exports.ICE_BREAKER_OPERATORS=r.ICE_BREAKER_OPERATORS;exports.IG_STRING_OPERATORS=r.IG_STRING_OPERATORS;exports.INTEGER_OPERATORS=r.INTEGER_OPERATORS;exports.MAIL_SUBJECT_OPERATORS=r.MAIL_SUBJECT_OPERATORS;exports.REACTION_OPERATORS=r.REACTION_OPERATORS;exports.SPECIFIC_IG_OPERATORS=r.SPECIFIC_IG_OPERATORS;exports.STRING_OPERATORS=r.STRING_OPERATORS;exports.STRING_RESTRICTED_OPERATORS=r.STRING_RESTRICTED_OPERATORS;exports.STRING_RESTRICTED_OPERATORS_2=r.STRING_RESTRICTED_OPERATORS_2;exports.STRING_RESTRICTED_OPERATORS_3=r.STRING_RESTRICTED_OPERATORS_3;exports.AGENT_CHAR_LIMITS=_o.AGENT_CHAR_LIMITS;exports.AIActionVariant=l.AIActionVariant;exports.AIEditorActionTypes=l.AIEditorActionTypes;exports.CustomRightBorder=l.CustomRightBorder;exports.EditorActionTypes=l.EditorActionTypes;exports.WhatsAppTextEditorHeader=l.WhatsAppTextEditorHeader;exports.AIChat=ho.AIChat;exports.AIProvider=U.AIProvider;exports.useAIContext=U.useAIContext;exports.AI_TAG_CHANGE_RATIO_THRESHOLD=m.AI_TAG_CHANGE_RATIO_THRESHOLD;exports.computeAiTagOnAccept=m.computeAiTagOnAccept;exports.levenshteinDistance=m.levenshteinDistance;exports.ALERT_TYPES=O.ALERT_TYPES;exports.COLOR_CONFIG_MAP=O.COLOR_CONFIG_MAP;exports.CONTENT_POSITION=O.CONTENT_POSITION;exports.ANIMATION_TIMING=Ro.ANIMATION_TIMING;exports.APIError=mo.APIError;exports.AVATAR_BACKGROUND=C.AVATAR_BACKGROUND;exports.AVATAR_SIZE_MAP=C.AVATAR_SIZE_MAP;exports.AVATAR_TYPES=C.AVATAR_TYPES;exports.SIZE=C.SIZE;exports.AVATAR_SIZE_VS_ICON_SIZE_MAP=S.AVATAR_SIZE_VS_ICON_SIZE_MAP;exports.Avatar=S.Avatar;exports.BACKGROUND_VS_TEXT_COLOR_MAP=S.BACKGROUND_VS_TEXT_COLOR_MAP;exports.MESSAGE_CHANNELS=S.MESSAGE_CHANNELS;exports.AccessTokenTroubleshootDialog=Oo.AccessTokenTroubleshootDialog;exports.ActionButtons=go.ActionButtons;exports.ActivateBikAi=Bo.ActivateBikAi;exports.ActiveChecklistIcon=fo.ActiveChecklistIcon;exports.AddDataPill=Do.AddDataPill;exports.AddVariableV2=Lo.AddVariableV2;exports.AddVariableV2SideModal=No.AddVariableV2SideModal;exports.AgentBuilder=yo.AgentBuilder;exports.AgentListing=ko.AgentListing;exports.AiCreditsExhausted=Mo.AiCreditsExhausted;exports.AiCreditsLow=bo.AiCreditsLow;exports.AiSyncProgress=Fo.AiSyncProgress;exports.Alert=wo.Alert;exports.AnalyticsCard=Uo.AnalyticsCard;exports.AnalyticsChip=Ho.AnalyticsChip;exports.AnalyticsContainer=H.AnalyticsContainer;exports.CardDataContainer=H.CardDataContainer;exports.AnalyticsDropdown=g.AnalyticsDropdown;exports.EachItem=g.EachItem;exports.formatDate=g.formatDate;exports.AnalyticsItem=A.AnalyticsItem;exports.QualityTimelineChart=A.QualityTimelineChart;exports.RightPanelTemplateAnalytics=A.RightPanelTemplateAnalytics;exports.TemplateAnalyticsComponent=A.TemplateAnalyticsComponent;exports.AnalyticsMetric=Vo.AnalyticsMetric;exports.AnalyticsMultiChip=vo.AnalyticsMultiChip;exports.AnalyticsTrend=Go.AnalyticsTrend;exports.BIKChatbot=Wo.BIKChatbot;exports.BIKCopilot=xo.BIKCopilot;exports.BOLD_TEXT_PATTERN=i.BOLD_TEXT_PATTERN;exports.CODE_TEXT_PATTERN=i.CODE_TEXT_PATTERN;exports.EMAIL_PATTERN=i.EMAIL_PATTERN;exports.ITALIC_TEXT_PATTERN=i.ITALIC_TEXT_PATTERN;exports.MARKDOWN_LINK_PATTERN=i.MARKDOWN_LINK_PATTERN;exports.RAW_PHONE_CANDIDATE_PATTERN=i.RAW_PHONE_CANDIDATE_PATTERN;exports.URL_PATTERN=i.URL_PATTERN;exports.filterPhoneCandidates=i.filterPhoneCandidates;exports.isCompleteFormatting=i.isCompleteFormatting;exports.isCompleteMarkdownLink=i.isCompleteMarkdownLink;exports.isCompleteUrl=i.isCompleteUrl;exports.stripMarkdownFormatting=i.stripMarkdownFormatting;exports.BUTTON_TYPE=B.BUTTON_TYPE;exports.POD=B.POD;exports.TEMPLATE_QUALITY=B.TEMPLATE_QUALITY;exports.BackgroundImageContainer=d.BackgroundImageContainer;exports.MainCardContainer=d.MainCardContainer;exports.MainContainer=d.MainContainer;exports.WhatsNewIconContainer=d.WhatsNewIconContainer;exports.WhatsNewWrapper=d.WhatsNewWrapper;exports.BannerThirdPartyIcon=f.BannerThirdPartyIcon;exports.BannerType=f.BannerType;exports.getUrlForBannerThirdPartyIcon=f.getUrlForBannerThirdPartyIcon;exports.BaseQueryBuilderNode=Yo.BaseQueryBuilderNode;exports.BaseWhatsappContentLangHelper=zo.BaseWhatsappContentLangHelper;exports.BikAccordion=Ko.BikAccordion;exports.BikEditor=Qo.BikEditor;exports.BikEditorToolbar=Xo.BikEditorToolbar;exports.BikGiftedChat=jo.default;exports.BikHeader=Zo.BikHeader;exports.BikImageCropper=$o.BikImageCropper;exports.BikImagePipeline=Jo.BikImagePipeline;exports.BikLayout=ei.BikLayout;exports.BikProfile=ri.BikProfile;exports.BikShimmer=ti.BikShimmer;exports.BikSidebar=oi.BikSidebar;exports.BikSidebarV2=ii.BikSidebarV2;exports.BikSlider=ni.BikSlider;exports.BottomWrapper=q.BottomWrapper;exports.HeaderWrapper=q.HeaderWrapper;exports.SubscriptionPlanSelector=q.SubscriptionPlanSelector;exports.defaultTabs=q.defaultTabs;exports.BroadcastFlowError=ai.BroadcastFlowError;exports.Bubble=si.Bubble;exports.Button=ui.Button;exports.ButtonActions=I.ButtonActions;exports.ButtonTypes=I.ButtonTypes;exports.StateComponent=I.StateComponent;exports.StateInterface=I.StateInterface;exports.ButtonGroup=ci.ButtonGroup;exports.CHANNEL_TYPE=li.CHANNEL_TYPE;exports.CHAT_MESSAGE_ROLES=D.CHAT_MESSAGE_ROLES;exports.DEFAULT_CONVERSATION_ID=D.DEFAULT_CONVERSATION_ID;exports.createSessionRecord=D.createSessionRecord;exports.COPILOT_BALL_ATTRIBUTE=V.COPILOT_BALL_ATTRIBUTE;exports.CopilotBall=V.CopilotBall;exports.COPILOT_ENDPOINT_PATH=v.COPILOT_ENDPOINT_PATH;exports.streamCopilotChat=v.streamCopilotChat;exports.COPILOT_HISTORY_PAGE_SIZE=L.COPILOT_HISTORY_PAGE_SIZE;exports.COPILOT_MESSAGES_PATH=L.COPILOT_MESSAGES_PATH;exports.fetchCopilotMessages=L.fetchCopilotMessages;exports.COPILOT_ICEBREAKERS_PATH=G.COPILOT_ICEBREAKERS_PATH;exports.fetchCopilotIcebreakers=G.fetchCopilotIcebreakers;exports.COPILOT_SESSION_TTL_MS=t.COPILOT_SESSION_TTL_MS;exports.MAX_PERSISTED_MESSAGES=t.MAX_PERSISTED_MESSAGES;exports.copilotSessionKey=t.copilotSessionKey;exports.createCopilotSession=t.createCopilotSession;exports.createCopilotSessionId=t.createCopilotSessionId;exports.deleteCopilotSession=t.deleteCopilotSession;exports.findLatestCopilotSessionId=t.findLatestCopilotSessionId;exports.isCopilotSessionExpired=t.isCopilotSessionExpired;exports.listCopilotSessionKeys=t.listCopilotSessionKeys;exports.loadCopilotSession=t.loadCopilotSession;exports.persistCopilotTurn=t.persistCopilotTurn;exports.pruneCopilotSessions=t.pruneCopilotSessions;exports.saveCopilotSession=t.saveCopilotSession;exports.COUPON_EXPIRATION=n.COUPON_EXPIRATION;exports.DISCOUNT_APPLIES_TO=n.DISCOUNT_APPLIES_TO;exports.DISCOUNT_TARGET_SELECTION=n.DISCOUNT_TARGET_SELECTION;exports.DISCOUNT_TARGET_TYPES=n.DISCOUNT_TARGET_TYPES;exports.DISCOUNT_TYPES=n.DISCOUNT_TYPES;exports.DISCOUNT_VALUE_TYPES=n.DISCOUNT_VALUE_TYPES;exports.MIN_PURCHASE_REQUIREMENT=n.MIN_PURCHASE_REQUIREMENT;exports.OFFER_APPLIES_TO=n.OFFER_APPLIES_TO;exports.initialDynamicCouponErrorState=n.initialDynamicCouponErrorState;exports.initialStaticCouponErrorState=n.initialStaticCouponErrorState;exports.CURTAIN_COLOR_CONFIG_MAP=N.CURTAIN_COLOR_CONFIG_MAP;exports.CURTAIN_MODE=N.CURTAIN_MODE;exports.CURTAIN_TYPES=N.CURTAIN_TYPES;exports.Card=W.Card;exports.PieChartAnalytics=W.PieChartAnalytics;exports.CardSelectionModal=di.CardSelectionModal;exports.CardSelector=Ti.CardSelector;exports.CardSelectorGroup=pi.CardSelectorGroup;exports.Carousel=Ci.Carousel;exports.CarouselPreview=Si.CarouselPreview;exports.CarouselSecondary=Ai.CarouselSecondary;exports.CarouselVersion=qi.CarouselVersion;exports.CheckBox=Ii.CheckBox;exports.CheckIndicatorIcon=Ei.CheckIndicatorIcon;exports.CheckList=Pi.CheckList;exports.Chip=_i.Chip;exports.ChipDropdown=x.ChipDropdown;exports.ChipDropdownContainer=x.ChipDropdownContainer;exports.CodeBlock=hi.CodeBlock;exports.CodeLanguage=Ri.CodeLanguage;exports.CohortError=mi.CohortError;exports.ColourInput=Oi.ColourInput;exports.ComparisonBarChart=gi.ComparisonBarChart;exports.CompletedChecklistIcon=Bi.CompletedChecklistIcon;exports.ConnectedAppDialog=fi.ConnectedAppDialog;exports.ControlledCopilot=Di.ControlledCopilot;exports.CopilotPanel=Li.CopilotPanel;exports.CopilotSseParser=Ni.CopilotSseParser;exports.CountriesData=yi.CountriesData;exports.CountryCodePicker=ki.CountryCodePicker;exports.CountryPicker=Mi.CountryPicker;exports.CouponExpiration=bi.CouponExpiration;exports.CurrencySymbols=Fi.CurrencySymbols;exports.Curtain=wi.Curtain;exports.CustomDateTime=Ui.CustomDateTime;exports.CustomError=Hi.CustomError;exports.DEFAULT_ACTIVE_FORMATS=Vi.DEFAULT_FORMAT_STATE;exports.DEFAULT_COPILOT_AGENT=y.DEFAULT_COPILOT_AGENT;exports.DEFAULT_COPILOT_ROUTE=y.DEFAULT_COPILOT_ROUTE;exports.useCopilotIcebreakers=y.useCopilotIcebreakers;exports.DEFAULT_IMAGE=Y.DEFAULT_IMAGE;exports.ShimmerImage=Y.ShimmerImage;exports.DEFAULT_MAX_TOOL_CALLS=k.DEFAULT_MAX_TOOL_CALLS;exports.DEFAULT_RESPONSE_FORMAT=k.DEFAULT_RESPONSE_FORMAT;exports.RESPONSE_FORMATS=k.RESPONSE_FORMATS;exports.DROP_POSITION=s.DROP_POSITION;exports.DropdownToggleContainer=s.DropdownToggleContainer;exports.FAB_POSITION=s.FAB_POSITION;exports.FloatingActionButtonContainer=s.FloatingActionButtonContainer;exports.FloatingActionButtonOuterContainer=s.FloatingActionButtonOuterContainer;exports.MENU_ALIGNMENT=s.MENU_ALIGNMENT;exports.StyledDropdown=s.StyledDropdown;exports.TooltipStyled=s.TooltipStyled;exports.DashboardReviewPopUp=vi.DashboardReviewPopUp;exports.DataSourcePanel=Gi.DataSourcePanel;exports.DateKeys=E.DateKeys;exports.MEDIA_TYPES=E.MEDIA_TYPES;exports.PostPicker=E.PostPicker;exports.dateOptions=E.dateOptions;exports.DatePicker=Wi.DatePicker;exports.DatePickerWrapper=xi.DatePickerWrapper;exports.DeleteConfirmationModal=Yi.DeleteConfirmationModal;exports.DiscountModal=zi.DiscountModal;exports.DotPulse=Ki.DotPulse;exports.DropShadow=Qi.DropShadow;exports.Dropdown=Xi.Dropdown;exports.DropdownButton=ji.DropdownButton;exports.DropdownPopover=Zi.DropdownPopover;exports.DualIconButton=$i.DualIconButton;exports.DurationUnit=Ji.DurationUnit;exports.DynamicTabs=en.DynamicTabs;exports.ERROR_TYPES=M.ERROR_TYPES;exports.ERROR_TYPE_CLASS_MAP=M.ERROR_TYPE_CLASS_MAP;exports.Logger=M.Logger;exports.ExcelUploadError=rn.ExcelUploadError;exports.FABMenu=tn.FABMenu;exports.FeatureModal=on.FeatureModal;exports.FeatureModalV2=nn.FeatureModalV2;exports.FileUploader=an.FileUploader;exports.FirebaseCallError=sn.FirebaseCallError;exports.FirebaseSubscriptionError=un.FirebaseSubscriptionError;exports.FirebaseUserFetcher=cn.FirebaseUserFetcher;exports.Floater=ln.Floater;exports.FloatingActionButton=dn.FloatingActionButton;exports.FloatingInputDropdown=Tn.FloatingInputDropdown;exports.FunnelChart=pn.FunnelChart;exports.FunnelVerticalBarGraph=Cn.FunnelVerticalBarGraph;exports.GRAPH_ORIENTATION=Sn.GRAPH_ORIENTATION;exports.HEAT=P.HEAT;exports.HEAT_COLORS=P.HEAT_COLORS;exports.HEAT_GRADING_TYPE=P.HEAT_GRADING_TYPE;exports.HeatMap=P.HeatMap;exports.HTTPMethods=_.HTTPMethods;exports.HTTP_CODE=_.HTTP_CODE;exports.RequestExecutor=_.RequestExecutor;exports.TRANSACTION_ENABLED_STORE_IDS=_.TRANSACTION_ENABLED_STORE_IDS;exports.HalfDoughnutChart=An.HalfDoughnutChart;exports.HeatBoxStyled=z.HeatBoxStyled;exports.HeatMapVertical=z.HeatMapVertical;exports.HorinzontalBar=qn.HorinzontalBar;exports.HorizontalGraph=In.HorizontalGraph;exports.IconButton=En.IconButton;exports.ImageService=Pn.ImageService;exports.InactiveChecklistIcon=_n.InactiveChecklistIcon;exports.Input=hn.Input;exports.InputWithVariables=Rn.InputWithVariables;exports.KeywordsInput=mn.KeywordsInput;exports.LAZY_SECONDARY_APP_NAME=T.SECONDARY_APP_NAME;exports.getOrInitFirebaseChatApp=T.getOrInitFirebaseChatApp;exports.lazyChatConfig=T.chatConfig;exports.lazyStagingConfig=T.stagingConfig;exports.rnSecondaryAuth=T.rnSecondaryAuth;exports.LineChart=On.LineChart;exports.LinearChipGroupedChart=gn.LinearChipGroupedChart;exports.ListItem=Bn.ListItem;exports.Loader=h.Loader;exports.Switch=h.Switch;exports.SwitchContainer=h.SwitchContainer;exports.Thumb=h.Thumb;exports.MenuItemDropdown=fn.MenuItemDropdown;exports.MultiLevelDropdown=Dn.MultiLevelDropdown;exports.NaLinkWrapper=K.NaLinkWrapper;exports.NavigationHyperlink=K.NavigationHyperlink;exports.NewSubscriptionPlan=Ln.NewSubscriptionPlan;exports.OUT_OF_STOCK_ACTION=Q.OUT_OF_STOCK_ACTION;exports.ScreenName=Q.ScreenName;exports.OpenedDropdown=Nn.OpenedDropdown;exports.POPUP_DIMENSIONS=yn.POPUP_DIMENSIONS;exports.Pagination=kn.Pagination;exports.PickerType=Mn.PickerType;exports.PieChart=bn.PieChart;exports.PostLiveChecklist=Fn.PostLiveChecklist;exports.PostLiveChecklistItem=wn.PostLiveChecklistItem;exports.PricePleaseProductPicker=X.PricePleaseProductPicker;exports.ProductPickerContent=X.ProductPickerContent;exports.ProductPickerModal=Un.ProductPickerModal;exports.ProgressBadgeIcon=Hn.ProgressBadgeIcon;exports.ProgressBarComponent=j.ProgressBarComponent;exports.ProgressCompletedBar=j.ProgressCompletedBar;exports.ProgressBarType=b.ProgressBarType;exports.ProgressBarV2=b.ProgressBarV2;exports.TextAlignment=b.TextAlignment;exports.PropertyNode=Z.PropertyNode;exports.PropertyNodeHeadless=Z.PropertyNodeHeadless;exports.PureSpinner=$.PureSpinner;exports.Spinner=$.Spinner;exports.QueryBuilder=Vn.QueryBuilder;exports.QueryBuilderConnectorType=vn.QueryBuilderConnectorType;exports.RATIO=J.RATIO;exports.Thumbnail=J.Thumbnail;exports.RadioButton=Gn.RadioButton;exports.RadioList=Wn.RadioList;exports.RechargeError=xn.RechargeError;exports.Redirect2Icon=Yn.Redirect2Icon;exports.STEP_DEFINITIONS=zn.STEP_DEFINITIONS;exports.ScoreBlock=Kn.ScoreBlock;exports.SearchBar=Qn.SearchBar;exports.SearchIcon=Xn.SearchIcon;exports.ShopifyScopeWrapper=jn.ShopifyScopeWrapper;exports.ShowShopifyRestrictedModal=Zn.ShowShopifyRestrictedModal;exports.SideModal=$n.SideModal;exports.SidebarSkeleton=Jn.SidebarSkeleton;exports.SimpleSidebar=ea.SimpleSidebar;exports.SmallCheckIcon=ra.SmallCheckIcon;exports.StackedBarChart=ta.StackedBarChart;exports.StackedBarDistributionChart=oa.StackedBarDistributionChart;exports.StarRating=ia.StarRating;exports.StateModalComponent=na.StateModalComponent;exports.Stepper=aa.Stepper;exports.StyledModal=sa.StyledModal;exports.SubscriptionPlan=ua.SubscriptionPlan;exports.SubscriptionPlansCollected=ca.SubscriptionPlansCollected;exports.TEXT=la.TEXT;exports.TabItemComponent=ee.TabItemComponent;exports.Tabs=ee.Tabs;exports.TablePagination=da.TablePagination;exports.TablePaginationCard=re.TablePaginationCard;exports.TablePaginationCardStyled=re.TablePaginationCardStyled;exports.Tag=Ta.Tag;exports.TemplateAnalyticsSkeleton=pa.TemplateAnalyticsSkeleton;exports.TemplateContextMapper=Ca.TemplateContextMapper;exports.TemplatePreview=Sa.TemplatePreview;exports.TestimonialCard=Aa.TestimonialCard;exports.TextPickerModal=qa.TextPickerModal;exports.TimePicker=Ia.TimePicker;exports.Toaster=Ea.Toaster;exports.ToolSource=Pa.ToolSource;exports.Tooltip=_a.Tooltip;exports.TruncateValue=o.TruncateValue;exports.calculatePercentage=o.calculatePercentage;exports.roundNumber=o.roundNumber;exports.truncateValueForIndianStore=o.truncateValueForIndianStore;exports.truncateValueForInternationalStore=o.truncateValueForInternationalStore;exports.truncateValueTo10K=o.truncateValueTo10K;exports.truncateValueToA=o.truncateValueToA;exports.truncateValueToB=o.truncateValueToB;exports.truncateValueToC=o.truncateValueToC;exports.truncateValueToK=o.truncateValueToK;exports.truncateValueToL=o.truncateValueToL;exports.truncateValueToM=o.truncateValueToM;exports.truncateValueToT=o.truncateValueToT;exports.VariableEditorHelper=ha.VariableEditorHelper;exports.VariablePicker=Ra.VariablePicker;exports.VerticalBarAndLinearGraph=ma.VerticalBarAndLinearGraph;exports.VerticalGraph=Oa.VerticalGraph;exports.VideoModal=ga.VideoModal;exports.WhatsAppFormatToHTML=Ba.WhatsAppFormatToHTML;exports.WhatsAppTextEditor=fa.WhatsAppTextEditor;exports.WhatsNew=Da.WhatsNew;exports.WhatsNewButton=La.WhatsNewButton;exports.WhatsNewPanel=Na.WhatsNewPanel;exports.WhatsNewProvider=te.WhatsNewProvider;exports.useWhatsNewContext=te.useWhatsNewContext;exports.WhatsappIntegrationError=ya.WhatsappIntegrationError;exports.WhatsappLikePreview=ka.WhatsappLikePreview;exports.WhatsappLikePreviewV2=Ma.WhatsappLikePreviewV2;exports.buildAgentMentionItems=F.buildAgentMentionItems;exports.editorDocToInstructions=F.editorDocToInstructions;exports.instructionsToEditorHtml=F.instructionsToEditorHtml;exports.clearCopilotPageSessions=R.clearCopilotPageSessions;exports.getCopilotSessionIdForRoute=R.getCopilotSessionIdForRoute;exports.resetCopilotSessionForRoute=R.resetCopilotSessionForRoute;exports.resolveCopilotSessionIdForRoute=R.resolveCopilotSessionIdForRoute;exports.environment=ba.environment;exports.escapeFormulaInjection=a.escapeFormulaInjection;exports.isAllowedImageUrl=a.isAllowedImageUrl;exports.isAllowedLinkUrl=a.isAllowedLinkUrl;exports.isAllowedUrl=a.isAllowedUrl;exports.sanitizeBasicHtml=a.sanitizeBasicHtml;exports.sanitizeCssProperties=a.sanitizeCssProperties;exports.sanitizeEmailHtml=a.sanitizeEmailHtml;exports.sanitizePlainText=a.sanitizePlainText;exports.stripHtmlTags=a.stripHtmlTags;exports.getAllDataFromTemplateComponent=oe.getAllDataFromTemplateComponent;exports.getAllDataFromWebpushTemplateComponent=oe.getAllDataFromWebpushTemplateComponent;exports.getAuthMethods=c.getAuthMethods;exports.getFirestoreLiteMethods=c.getFirestoreLiteMethods;exports.getFirestoreMethods=c.getFirestoreMethods;exports.getFunctionsMethods=c.getFunctionsMethods;exports.getMessagingMethods=c.getMessagingMethods;exports.getStorageMethods=c.getStorageMethods;exports.getBodyHtml=ie.getBodyHtml;exports.getSectionsHtml=ie.getSectionsHtml;exports.getCopilotPanelPlacement=Fa.getCopilotPanelPlacement;exports.getFireStoreDb=wa.getFireStoreDb;exports.getFireStoreLiteDb=Ua.getFireStoreLiteDb;exports.getFirebaseChatStorage=Ha.getFirebaseChatStorage;exports.isVariable=ne.isVariable;exports.validateIsUrl=ne.validateIsUrl;exports.queryBuilderCacheSlice=Va.queryBuilderCacheSlice;exports.queryBuilderSlice=va.queryBuilderSlice;exports.renderVariableUIForPreview=Ga.renderVariableUIForPreview;exports.resizeImage=Wa.resizeImage;exports.toLiveChatText=xa.toLiveChatText;exports.toWhatsAppText=Ya.toWhatsAppText;exports.unwrapDropdownValue=za.unwrapDropdownValue;exports.useAIChat=Ka.useAIChat;exports.useAgentDraft=Qa.useAgentDraft;exports.useCopilotStreamChat=Xa.useCopilotStreamChat;exports.useDraggableFloater=ja.useDraggableFloater;exports.useFeatureAnnouncements=Za.useFeatureAnnouncements;exports.useWhatsNew=$a.useWhatsNew;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BIKCopilotProps } from './model';
|
|
3
|
+
/**
|
|
4
|
+
* The copilot ball and panel wired to the streaming `/bik-ai/copilot-chatbot`
|
|
5
|
+
* endpoint, with the transcript persisted in IndexedDB and route-aware ice
|
|
6
|
+
* breakers from `/bik-ai/copilot-icebreakers`.
|
|
7
|
+
*
|
|
8
|
+
* Chunks arrive as `STREAM` events and are appended live; the final `TEXT` event
|
|
9
|
+
* replaces the bubble with the authoritative full message and carries the
|
|
10
|
+
* `responseId` that threads the next turn. A session id is created on first use
|
|
11
|
+
* and restored on reload, so a refresh resumes the same conversation. The
|
|
12
|
+
* header's reset button starts a new session id and a new OpenAI thread.
|
|
13
|
+
*
|
|
14
|
+
* Ice breakers are fetched for the current `agent` + `route` the first time the
|
|
15
|
+
* panel is opened, and refetched when the route changes.
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <BIKCopilot
|
|
19
|
+
* baseUrl={AI_BACKEND_URL}
|
|
20
|
+
* getAuthToken={() => firebaseUser.getIdToken()}
|
|
21
|
+
* headers={{ 'bik-referer': 'dashboard' }}
|
|
22
|
+
* storeId={storeId}
|
|
23
|
+
* email={user.email}
|
|
24
|
+
* route={currentRoute}
|
|
25
|
+
* title="Copilot"
|
|
26
|
+
* badge="New"
|
|
27
|
+
* subtitle="Way smarter, wildly more capable"
|
|
28
|
+
* />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const BIKCopilot: React.FC<BIKCopilotProps>;
|
|
32
|
+
export default BIKCopilot;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as W } from "react/jsx-runtime";
|
|
2
|
+
import { useState as X, useCallback as u } from "react";
|
|
3
|
+
import { ControlledCopilot as Y } from "./ControlledCopilot.js";
|
|
4
|
+
import { useCopilotIcebreakers as Z } from "./useCopilotIcebreakers.js";
|
|
5
|
+
import { useCopilotStreamChat as _ } from "./useCopilotStreamChat.js";
|
|
6
|
+
const es = ({
|
|
7
|
+
// Transport + turn config
|
|
8
|
+
baseUrl: s,
|
|
9
|
+
endpointPath: M,
|
|
10
|
+
icebreakersPath: S,
|
|
11
|
+
headers: e,
|
|
12
|
+
authToken: o,
|
|
13
|
+
getAuthToken: r,
|
|
14
|
+
fetchImpl: t,
|
|
15
|
+
storeId: i,
|
|
16
|
+
agent: a,
|
|
17
|
+
route: n,
|
|
18
|
+
email: f,
|
|
19
|
+
systemPrompt: b,
|
|
20
|
+
model: h,
|
|
21
|
+
maxOutputTokens: H,
|
|
22
|
+
sessionId: O,
|
|
23
|
+
persist: k,
|
|
24
|
+
loadIcebreakers: y = !0,
|
|
25
|
+
onError: L,
|
|
26
|
+
onResponseComplete: R,
|
|
27
|
+
onSessionIdChange: j,
|
|
28
|
+
// Shell
|
|
29
|
+
suggestions: v,
|
|
30
|
+
inputDisabled: w,
|
|
31
|
+
onRefresh: m,
|
|
32
|
+
open: g,
|
|
33
|
+
defaultOpen: l,
|
|
34
|
+
onOpenChange: p,
|
|
35
|
+
...x
|
|
36
|
+
}) => {
|
|
37
|
+
const [B, D] = X(
|
|
38
|
+
l === !0 || g === !0
|
|
39
|
+
), {
|
|
40
|
+
messages: K,
|
|
41
|
+
isThinking: N,
|
|
42
|
+
isStreaming: d,
|
|
43
|
+
isRestoring: q,
|
|
44
|
+
error: z,
|
|
45
|
+
isLoadingHistory: E,
|
|
46
|
+
hasMoreHistory: F,
|
|
47
|
+
sendMessage: G,
|
|
48
|
+
loadOlderMessages: I,
|
|
49
|
+
stopStreaming: J,
|
|
50
|
+
startNewConversation: C
|
|
51
|
+
} = _({
|
|
52
|
+
baseUrl: s,
|
|
53
|
+
endpointPath: M,
|
|
54
|
+
headers: e,
|
|
55
|
+
authToken: o,
|
|
56
|
+
getAuthToken: r,
|
|
57
|
+
fetchImpl: t,
|
|
58
|
+
storeId: i,
|
|
59
|
+
agent: a,
|
|
60
|
+
route: n,
|
|
61
|
+
email: f,
|
|
62
|
+
systemPrompt: b,
|
|
63
|
+
model: h,
|
|
64
|
+
maxOutputTokens: H,
|
|
65
|
+
sessionId: O,
|
|
66
|
+
persist: k,
|
|
67
|
+
onError: L,
|
|
68
|
+
onResponseComplete: R,
|
|
69
|
+
onSessionIdChange: j
|
|
70
|
+
}), { icebreakers: P } = Z({
|
|
71
|
+
baseUrl: s,
|
|
72
|
+
icebreakersPath: S,
|
|
73
|
+
headers: e,
|
|
74
|
+
authToken: o,
|
|
75
|
+
getAuthToken: r,
|
|
76
|
+
fetchImpl: t,
|
|
77
|
+
agent: a,
|
|
78
|
+
route: n,
|
|
79
|
+
storeId: i,
|
|
80
|
+
enabled: y && B
|
|
81
|
+
}), Q = u(
|
|
82
|
+
(c) => {
|
|
83
|
+
c && D(!0), p?.(c);
|
|
84
|
+
},
|
|
85
|
+
[p]
|
|
86
|
+
), V = u(() => {
|
|
87
|
+
C(), m?.();
|
|
88
|
+
}, [m, C]);
|
|
89
|
+
return /* @__PURE__ */ W(
|
|
90
|
+
Y,
|
|
91
|
+
{
|
|
92
|
+
...x,
|
|
93
|
+
open: g,
|
|
94
|
+
defaultOpen: l,
|
|
95
|
+
onOpenChange: Q,
|
|
96
|
+
messages: K,
|
|
97
|
+
onSendMessage: G,
|
|
98
|
+
isThinking: N,
|
|
99
|
+
isStreaming: d,
|
|
100
|
+
onStop: J,
|
|
101
|
+
isLoadingHistory: E,
|
|
102
|
+
hasMoreHistory: F,
|
|
103
|
+
onLoadOlderMessages: I,
|
|
104
|
+
errorMessage: z,
|
|
105
|
+
suggestions: v ?? P,
|
|
106
|
+
inputDisabled: w || q || d,
|
|
107
|
+
onRefresh: V
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
};
|
|
111
|
+
export {
|
|
112
|
+
es as BIKCopilot
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=BIKCopilot.js.map
|