@aigentyc/chat-sdk 0.2.5 → 0.3.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/bin/aigentyc.mjs +10 -4
- package/bin/lib/skill.mjs +84 -0
- package/claude-skill/README.md +32 -0
- package/claude-skill/aigentyc-chat-sdk/SKILL.md +339 -0
- package/context7.json +1 -1
- package/dist/ChatInterface-B0zbA3Lm.d.cts +64 -0
- package/dist/ChatInterface-f8ftS56n.d.ts +64 -0
- package/dist/{JsonRenderResult-Ftw4AKwb.d.cts → JsonRenderResult-D6ogds0_.d.cts} +8 -1
- package/dist/{JsonRenderResult-Ftw4AKwb.d.ts → JsonRenderResult-D6ogds0_.d.ts} +8 -1
- package/dist/JsonRenderResult-GCNFMZYP.js +6 -0
- package/dist/{JsonRenderResult-ZFJ6VWMS.js.map → JsonRenderResult-GCNFMZYP.js.map} +1 -1
- package/dist/JsonRenderResult-II3IBENS.cjs +15 -0
- package/dist/{JsonRenderResult-GQOYPLVH.cjs.map → JsonRenderResult-II3IBENS.cjs.map} +1 -1
- package/dist/{SlotsContext-CBtt36al.d.ts → SlotsContext-BjiX1mRx.d.ts} +17 -2
- package/dist/{SlotsContext-CHvISDJT.d.cts → SlotsContext-CEOBjzfh.d.cts} +17 -2
- package/dist/ai-elements.cjs +114 -393
- package/dist/ai-elements.cjs.map +1 -1
- package/dist/ai-elements.d.cts +2 -31
- package/dist/ai-elements.d.ts +2 -31
- package/dist/ai-elements.js +9 -291
- package/dist/ai-elements.js.map +1 -1
- package/dist/{chunk-5QSXB6UL.cjs → chunk-3HGOLNGG.cjs} +13 -4
- package/dist/chunk-3HGOLNGG.cjs.map +1 -0
- package/dist/{chunk-KVEJAPWA.js → chunk-3KSMOHNY.js} +48 -62
- package/dist/chunk-3KSMOHNY.js.map +1 -0
- package/dist/chunk-4WOBNRRB.cjs +540 -0
- package/dist/chunk-4WOBNRRB.cjs.map +1 -0
- package/dist/{chunk-MC6QDYB6.cjs → chunk-5XF7KH6B.cjs} +166 -67
- package/dist/chunk-5XF7KH6B.cjs.map +1 -0
- package/dist/chunk-7AZMWPKX.cjs +35 -0
- package/dist/chunk-7AZMWPKX.cjs.map +1 -0
- package/dist/{chunk-DMGYQ6NN.cjs → chunk-7IFBPXT3.cjs} +95 -8
- package/dist/chunk-7IFBPXT3.cjs.map +1 -0
- package/dist/{chunk-U3FXVLUK.js → chunk-AD6XWKWB.js} +93 -6
- package/dist/chunk-AD6XWKWB.js.map +1 -0
- package/dist/chunk-B27JIQ4Z.js +528 -0
- package/dist/chunk-B27JIQ4Z.js.map +1 -0
- package/dist/{chunk-J2K7EJYP.cjs → chunk-BPV66QNM.cjs} +6 -4
- package/dist/chunk-BPV66QNM.cjs.map +1 -0
- package/dist/{chunk-FYPJSHCL.js → chunk-FPQ3UCCJ.js} +6 -4
- package/dist/chunk-FPQ3UCCJ.js.map +1 -0
- package/dist/{chunk-J2H6MLQF.cjs → chunk-H7C3AGA2.cjs} +17 -6
- package/dist/chunk-H7C3AGA2.cjs.map +1 -0
- package/dist/{chunk-7L4FS6G7.js → chunk-JHWSG5IB.js} +17 -3
- package/dist/chunk-JHWSG5IB.js.map +1 -0
- package/dist/{chunk-4FBVV64J.js → chunk-M4YRNNGB.js} +13 -4
- package/dist/chunk-M4YRNNGB.js.map +1 -0
- package/dist/{chunk-QDFPJJ5Y.cjs → chunk-OU5OZKYH.cjs} +50 -65
- package/dist/chunk-OU5OZKYH.cjs.map +1 -0
- package/dist/{chunk-C24QG43M.cjs → chunk-TZ7EM3EG.cjs} +17 -2
- package/dist/chunk-TZ7EM3EG.cjs.map +1 -0
- package/dist/chunk-XEAAB5ZM.js +32 -0
- package/dist/chunk-XEAAB5ZM.js.map +1 -0
- package/dist/{chunk-FOZXDUSZ.js → chunk-YG2COKFR.js} +151 -54
- package/dist/chunk-YG2COKFR.js.map +1 -0
- package/dist/{chunk-RPDJXB3U.js → chunk-ZXP7IYRC.js} +17 -6
- package/dist/chunk-ZXP7IYRC.js.map +1 -0
- package/dist/components.cjs +31 -52
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.cts +4 -34
- package/dist/components.d.ts +4 -34
- package/dist/components.js +18 -42
- package/dist/components.js.map +1 -1
- package/dist/core.d.cts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/hooks.cjs +6 -6
- package/dist/hooks.d.cts +2 -2
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +2 -2
- package/dist/i18n.d.cts +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/index.cjs +45 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +51 -6
- package/dist/index.d.ts +51 -6
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/json-render.cjs +4 -4
- package/dist/json-render.d.cts +1 -1
- package/dist/json-render.d.ts +1 -1
- package/dist/json-render.js +1 -1
- package/dist/llms-full.txt +195 -15
- package/dist/message-feedback-BFh3-qym.d.cts +92 -0
- package/dist/message-feedback-cWR0NVok.d.ts +92 -0
- package/dist/normalize-KzCLLqpU.d.cts +42 -0
- package/dist/normalize-KzCLLqpU.d.ts +42 -0
- package/dist/styles.css +1 -1
- package/dist/theme.d.cts +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/tools.cjs +16 -7
- package/dist/tools.d.cts +4 -3
- package/dist/tools.d.ts +4 -3
- package/dist/tools.js +4 -3
- package/dist/{types-DKJ_-nbG.d.ts → types-DlNwk-bG.d.cts} +33 -3
- package/dist/{types-DKJ_-nbG.d.cts → types-DlNwk-bG.d.ts} +33 -3
- package/dist/ui.cjs +45 -45
- package/dist/ui.js +2 -2
- package/llms.txt +175 -5
- package/package.json +2 -1
- package/dist/JsonRenderResult-GQOYPLVH.cjs +0 -15
- package/dist/JsonRenderResult-ZFJ6VWMS.js +0 -6
- package/dist/chunk-4FBVV64J.js.map +0 -1
- package/dist/chunk-5QSXB6UL.cjs.map +0 -1
- package/dist/chunk-7L4FS6G7.js.map +0 -1
- package/dist/chunk-A7PCSWIK.js +0 -219
- package/dist/chunk-A7PCSWIK.js.map +0 -1
- package/dist/chunk-C24QG43M.cjs.map +0 -1
- package/dist/chunk-DMGYQ6NN.cjs.map +0 -1
- package/dist/chunk-FOZXDUSZ.js.map +0 -1
- package/dist/chunk-FYPJSHCL.js.map +0 -1
- package/dist/chunk-J2H6MLQF.cjs.map +0 -1
- package/dist/chunk-J2K7EJYP.cjs.map +0 -1
- package/dist/chunk-KVEJAPWA.js.map +0 -1
- package/dist/chunk-MC6QDYB6.cjs.map +0 -1
- package/dist/chunk-QDFPJJ5Y.cjs.map +0 -1
- package/dist/chunk-RPDJXB3U.js.map +0 -1
- package/dist/chunk-RTVEBPAJ.cjs +0 -230
- package/dist/chunk-RTVEBPAJ.cjs.map +0 -1
- package/dist/chunk-U3FXVLUK.js.map +0 -1
package/dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ChatInputWithAttachments.tsx","../src/ui/sheet.tsx","../src/components/ChatDrawer.tsx","../src/components/SystemMessage.tsx","../src/components/VisitorIdentityForm.tsx","../src/components/LiveChatHeader.tsx","../src/components/LiveChatQueueBanner.tsx","../src/components/SatisfactionRating.tsx"],"names":["jsx","jsxs","X","useState"],"mappings":"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","file":"components.js","sourcesContent":["\"use client\";\n\n/**\n * Chat Input with Image Attachments - Enhanced input for kitchen image analysis\n */\n\nimport { useRef, useState } from \"react\";\nimport { ImageIcon, Square, X } from \"lucide-react\";\n// TODO: `FileUIPart` imported from \"ai\" (Vercel AI SDK). Make sure `ai` is installed as peer dependency.\nimport type { FileUIPart } from \"ai\";\n\ninterface Attachment extends FileUIPart {\n\tid: string;\n}\n\ninterface ChatInputWithAttachmentsProps {\n\tvalue: string;\n\tonChange: (value: string) => void;\n\tonSubmit: (text: string, attachments?: FileUIPart[]) => void;\n\tisProcessing?: boolean;\n\tplaceholder?: string;\n}\n\nexport function ChatInputWithAttachments({\n\tvalue,\n\tonChange,\n\tonSubmit,\n\tisProcessing = false,\n\tplaceholder = \"Ask anything or upload an image...\",\n}: ChatInputWithAttachmentsProps) {\n\tconst [attachments, setAttachments] = useState<Attachment[]>([]);\n\tconst fileInputRef = useRef<HTMLInputElement>(null);\n\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (e.key === \"Enter\" && (value.trim() || attachments.length > 0) && !isProcessing) {\n\t\t\te.preventDefault();\n\t\t\thandleSubmit();\n\t\t}\n\t};\n\n\tconst handleSubmit = () => {\n\t\tif ((!value.trim() && attachments.length === 0) || isProcessing) return;\n\t\tconst fileParts: FileUIPart[] = attachments.map(({ id: _id, ...rest }) => rest);\n\t\tonSubmit(value, fileParts.length > 0 ? fileParts : undefined);\n\t\tsetAttachments([]);\n\t};\n\n\tconst handleFileSelect = async (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = e.target.files;\n\t\tif (!files) return;\n\n\t\tconst newAttachments: Attachment[] = [];\n\n\t\tfor (const file of Array.from(files)) {\n\t\t\tif (!file.type.startsWith(\"image/\")) continue;\n\t\t\tconst dataUrl = await fileToDataUrl(file);\n\t\t\tnewAttachments.push({\n\t\t\t\tid: `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n\t\t\t\ttype: \"file\",\n\t\t\t\turl: dataUrl,\n\t\t\t\tmediaType: file.type,\n\t\t\t\tfilename: file.name,\n\t\t\t});\n\t\t}\n\n\t\tsetAttachments((prev) => [...prev, ...newAttachments]);\n\t\te.target.value = \"\";\n\t};\n\n\tconst removeAttachment = (id: string) => {\n\t\tsetAttachments((prev) => prev.filter((a) => a.id !== id));\n\t};\n\n\tconst openFileDialog = () => {\n\t\tfileInputRef.current?.click();\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t{attachments.length > 0 && (\n\t\t\t\t<div className=\"flex flex-wrap gap-2 px-4\">\n\t\t\t\t\t{attachments.map((attachment) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={attachment.id}\n\t\t\t\t\t\t\tclassName=\"relative group rounded-lg overflow-hidden border bg-secondary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={attachment.url}\n\t\t\t\t\t\t\t\talt={attachment.filename || \"Attachment\"}\n\t\t\t\t\t\t\t\tclassName=\"h-16 w-16 object-cover\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tonClick={() => removeAttachment(attachment.id)}\n\t\t\t\t\t\t\t\tclassName=\"absolute top-1 right-1 w-5 h-5 rounded-full bg-black/60 text-white flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X className=\"w-3 h-3\" />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName=\"flex items-center gap-2 backdrop-blur-xl border shadow-xl rounded-full pl-3 md:pl-4 pr-1.5 md:pr-[6px]\"\n\t\t\t\tstyle={{ backgroundColor: \"var(--ac-background)\", borderColor: \"var(--ac-border)\" }}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={openFileDialog}\n\t\t\t\t\tdisabled={isProcessing}\n\t\t\t\t\tclassName=\"flex items-center justify-center w-9 h-9 rounded-full text-muted-foreground hover:text-foreground hover:bg-secondary transition-colors disabled:opacity-50\"\n\t\t\t\t\ttitle=\"Upload image\"\n\t\t\t\t>\n\t\t\t\t\t<ImageIcon className=\"w-5 h-5\" />\n\t\t\t\t</button>\n\n\t\t\t\t<input\n\t\t\t\t\tref={fileInputRef}\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tonChange={handleFileSelect}\n\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t/>\n\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tonChange={(e) => onChange(e.target.value)}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tdisabled={isProcessing}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tclassName=\"flex-1 bg-transparent outline-none text-base min-h-[56px] md:min-h-[69px] disabled:opacity-50\"\n\t\t\t\t\tstyle={{ color: \"var(--ac-text)\" }}\n\t\t\t\t/>\n\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={handleSubmit}\n\t\t\t\t\tdisabled={(!value.trim() && attachments.length === 0) || isProcessing}\n\t\t\t\t\tclassName=\"flex items-center justify-center w-11 h-11 md:w-[55px] md:h-[55px] rounded-full disabled:opacity-50 disabled:cursor-not-allowed transition-colors shrink-0\"\n\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary)\", color: \"var(--ac-primary-foreground, #fff)\" }}\n\t\t\t\t>\n\t\t\t\t\t{isProcessing ? (\n\t\t\t\t\t\t<Square className=\"w-5 h-5 fill-white\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<svg className=\"w-6 h-6 md:w-7 md:h-7\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t<path d=\"M2 15C1.44772 15 1 14.5523 1 14C1 13.4477 1.44772 13 2 13V14L2 15ZM26.7071 13.2929C27.0976 13.6834 27.0976 14.3166 26.7071 14.7071L20.3431 21.0711C19.9526 21.4616 19.3195 21.4616 18.9289 21.0711C18.5384 20.6805 18.5384 20.0474 18.9289 19.6569L24.5858 14L18.9289 8.34315C18.5384 7.95262 18.5384 7.31946 18.9289 6.92893C19.3195 6.53841 19.9526 6.53841 20.3431 6.92893L26.7071 13.2929ZM2 14V13L26 13V14V15L2 15L2 14Z\" fill=\"white\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t)}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nasync function fileToDataUrl(file: File): Promise<string> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst reader = new FileReader();\n\t\treader.onload = () => resolve(reader.result as string);\n\t\treader.onerror = reject;\n\t\treader.readAsDataURL(file);\n\t});\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../core/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n overlayVariant?: \"default\" | \"light\";\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, overlayVariant: _overlayVariant, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { Sheet, SheetContent, SheetTrigger, SheetTitle } from \"../ui/sheet\";\nimport { ChatInterface } from \"./ChatInterface\";\nimport { MessageCircle } from \"lucide-react\";\n// TODO: @radix-ui/react-visually-hidden — keep as peer dep.\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\n\ninterface ChatDrawerProps {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\ttrigger?: React.ReactNode;\n\thideTrigger?: boolean;\n}\n\nexport function ChatDrawer({\n\tdefaultOpen = false,\n\topen: controlledOpen,\n\tonOpenChange,\n\ttrigger,\n\thideTrigger = false,\n}: ChatDrawerProps) {\n\tconst [internalOpen, setInternalOpen] = useState(defaultOpen);\n\n\tconst isControlled = controlledOpen !== undefined;\n\tconst isOpen = isControlled ? controlledOpen : internalOpen;\n\n\tconst handleOpenChange = (open: boolean) => {\n\t\tif (!isControlled) setInternalOpen(open);\n\t\tonOpenChange?.(open);\n\t};\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst handleCloseChat = () => handleOpenChange(false);\n\t\tdocument.addEventListener(\"aigentyc:close-chat\", handleCloseChat);\n\t\treturn () => document.removeEventListener(\"aigentyc:close-chat\", handleCloseChat);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\treturn (\n\t\t<Sheet open={isOpen} onOpenChange={handleOpenChange}>\n\t\t\t{!hideTrigger && (\n\t\t\t\t<SheetTrigger asChild>\n\t\t\t\t\t{trigger || (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full shadow-lg transition-transform hover:scale-105 focus:outline-none focus:ring-2 focus:ring-offset-2\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary)\", color: \"var(--ac-primary-foreground, #fff)\" }}\n\t\t\t\t\t\t\taria-label=\"Open chat\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MessageCircle className=\"h-6 w-6\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t</SheetTrigger>\n\t\t\t)}\n\t\t\t<SheetContent\n\t\t\t\tside=\"right\"\n\t\t\t\tclassName=\"w-full sm:w-[450px] sm:max-w-[450px] p-0 flex flex-col [&>button]:hidden\"\n\t\t\t>\n\t\t\t\t<VisuallyHidden.Root>\n\t\t\t\t\t<SheetTitle>Chat Assistant</SheetTitle>\n\t\t\t\t</VisuallyHidden.Root>\n\t\t\t\t<ChatInterface />\n\t\t\t</SheetContent>\n\t\t</Sheet>\n\t);\n}\n","\"use client\";\n\ninterface SystemMessageProps {\n\tmessage: string;\n\ttype?: string;\n}\n\nconst TRANSLATIONS: Record<string, string> = {\n\toperator_joined: \"הנציג הצטרף לשיחה\",\n\tchat_ended: \"השיחה הסתיימה\",\n\thanded_to_ai: \"השיחה הועברה חזרה לעוזר AI\",\n\toperator_disconnected: \"הנציג התנתק. ממתין לחיבור מחדש...\",\n\toperator_offline: \"הנציג לא זמין כרגע\",\n\toperator_online: \"הנציג חזר לשיחה\",\n\treassigned: \"השיחה הועברה לנציג אחר\",\n\tidle_warning: \"הנציג לא פעיל כרגע\",\n};\n\nfunction translateMessage(message: string, type?: string): string {\n\tif (type && TRANSLATIONS[type]) {\n\t\tconst nameMatch = message.match(/^([A-Za-z\\u0590-\\u05FF\\s]+?) (joined|left|ended|disconnected)/);\n\t\tif (nameMatch && type === \"operator_joined\") {\n\t\t\treturn `${nameMatch[1]} הצטרף/ה לשיחה`;\n\t\t}\n\t\treturn TRANSLATIONS[type];\n\t}\n\treturn message;\n}\n\nexport function SystemMessage({ message, type }: SystemMessageProps) {\n\tconst displayMessage = translateMessage(message, type);\n\n\treturn (\n\t\t<div className=\"flex justify-center my-3\">\n\t\t\t<span className=\"text-[11px] text-gray-500 bg-gray-100 px-4 py-1.5 rounded-full border border-gray-200/50\">\n\t\t\t\t{displayMessage}\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useI18n } from \"../hooks/use-i18n\";\n\ninterface VisitorIdentityFormProps {\n\tonSubmit: (name: string, email: string) => void;\n\tonCancel: () => void;\n}\n\nexport function VisitorIdentityForm({ onSubmit, onCancel }: VisitorIdentityFormProps) {\n\tconst [name, setName] = useState(\"\");\n\tconst [email, setEmail] = useState(\"\");\n\tconst { t, direction } = useI18n();\n\tconst isRTL = direction === \"rtl\";\n\n\treturn (\n\t\t<div className=\"border-t bg-blue-50/80 px-4 py-4\" dir={isRTL ? \"rtl\" : \"ltr\"}>\n\t\t\t<p className=\"text-sm text-blue-800 font-medium mb-3\">{t(\"liveChatIdentityTitle\")}</p>\n\t\t\t<div className=\"space-y-2\">\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={name}\n\t\t\t\t\tonChange={(e) => setName(e.target.value)}\n\t\t\t\t\tplaceholder={t(\"liveChatIdentityName\")}\n\t\t\t\t\tclassName=\"w-full text-sm p-2.5 border rounded-lg bg-white focus:outline-none focus:ring-2 focus:ring-blue-300\"\n\t\t\t\t\tautoFocus\n\t\t\t\t/>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\tvalue={email}\n\t\t\t\t\tonChange={(e) => setEmail(e.target.value)}\n\t\t\t\t\tplaceholder={t(\"liveChatIdentityEmail\")}\n\t\t\t\t\tclassName=\"w-full text-sm p-2.5 border rounded-lg bg-white focus:outline-none focus:ring-2 focus:ring-blue-300\"\n\t\t\t\t/>\n\t\t\t\t<div className=\"flex gap-2 justify-end\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\tclassName=\"text-sm text-gray-500 hover:text-gray-700 px-4 py-2 rounded-lg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"liveChatCancel\")}\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={() => onSubmit(name, email)}\n\t\t\t\t\t\tdisabled={!name.trim() || !email.trim()}\n\t\t\t\t\t\tclassName=\"text-sm text-white px-5 py-2 rounded-lg disabled:opacity-40\"\n\t\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary, #2f80ed)\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"liveChatIdentityConnect\")}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\ninterface LiveChatHeaderProps {\n\toperatorName: string;\n\tonEndChat: () => void;\n}\n\nexport function LiveChatHeader({ operatorName, onEndChat }: LiveChatHeaderProps) {\n\treturn (\n\t\t<div className=\"bg-green-50 border-b border-green-200 px-4 py-2 flex items-center justify-between\">\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<div className=\"h-2 w-2 rounded-full bg-green-500\" />\n\t\t\t\t<span className=\"text-sm text-green-800 font-medium\">Chatting with {operatorName}</span>\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={onEndChat}\n\t\t\t\tclassName=\"text-xs text-red-600 hover:text-red-800 bg-red-50 px-2 py-1 rounded\"\n\t\t\t>\n\t\t\t\tEnd Chat\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\ninterface QueueBannerProps {\n\tposition: number;\n\tonCancel: () => void;\n}\n\nexport function LiveChatQueueBanner({ position, onCancel }: QueueBannerProps) {\n\treturn (\n\t\t<div className=\"bg-blue-50 border-b border-blue-200 px-4 py-3 flex items-center justify-between\">\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<div className=\"h-2 w-2 rounded-full bg-blue-500 animate-pulse\" />\n\t\t\t\t<span className=\"text-sm text-blue-800\">\n\t\t\t\t\tConnecting you with an operator...\n\t\t\t\t\t{position > 0 && <span className=\"font-medium\"> Position #{position}</span>}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={onCancel}\n\t\t\t\tclassName=\"text-xs text-blue-600 hover:text-blue-800 underline\"\n\t\t\t>\n\t\t\t\tCancel\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { ThumbsUp, ThumbsDown } from \"lucide-react\";\n\ninterface SatisfactionRatingProps {\n\tonSubmit: (rating: \"positive\" | \"negative\", comment?: string) => void;\n\tonSkip: () => void;\n}\n\nexport function SatisfactionRating({ onSubmit, onSkip }: SatisfactionRatingProps) {\n\tconst [selected, setSelected] = useState<\"positive\" | \"negative\" | null>(null);\n\tconst [comment, setComment] = useState(\"\");\n\tconst [submitted, setSubmitted] = useState(false);\n\n\tif (submitted) {\n\t\treturn (\n\t\t\t<div className=\"bg-gray-50 border-t px-4 py-3 text-center\">\n\t\t\t\t<p className=\"text-sm text-gray-600\">Thank you for your feedback!</p>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={onSkip}\n\t\t\t\t\tclassName=\"text-xs text-blue-600 hover:underline mt-1\"\n\t\t\t\t>\n\t\t\t\t\tBack to AI Assistant\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"bg-gray-50 border-t px-4 py-3\">\n\t\t\t<p className=\"text-sm text-gray-700 text-center mb-2\">How was your experience?</p>\n\t\t\t<div className=\"flex justify-center gap-4 mb-2\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => setSelected(\"positive\")}\n\t\t\t\t\tclassName={`p-2 rounded-full transition-colors ${\n\t\t\t\t\t\tselected === \"positive\" ? \"bg-green-100 text-green-600\" : \"hover:bg-gray-200 text-gray-400\"\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t<ThumbsUp className=\"h-5 w-5\" />\n\t\t\t\t</button>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => setSelected(\"negative\")}\n\t\t\t\t\tclassName={`p-2 rounded-full transition-colors ${\n\t\t\t\t\t\tselected === \"negative\" ? \"bg-red-100 text-red-600\" : \"hover:bg-gray-200 text-gray-400\"\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t<ThumbsDown className=\"h-5 w-5\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t{selected && (\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tvalue={comment}\n\t\t\t\t\t\tonChange={(e) => setComment(e.target.value)}\n\t\t\t\t\t\tplaceholder=\"Any additional feedback? (optional)\"\n\t\t\t\t\t\tclassName=\"w-full text-xs p-2 border rounded resize-none h-16\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex justify-center gap-2\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tonSubmit(selected, comment || undefined);\n\t\t\t\t\t\t\t\tsetSubmitted(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"text-xs text-white px-3 py-1 rounded\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary)\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={onSkip}\n\t\t\t\t\t\t\tclassName=\"text-xs text-gray-500 hover:underline px-3 py-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSkip\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!selected && (\n\t\t\t\t<div className=\"text-center\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onSkip}\n\t\t\t\t\t\tclassName=\"text-xs text-gray-500 hover:underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSkip\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ChatInputWithAttachments.tsx","../src/ui/sheet.tsx","../src/components/ChatDrawer.tsx","../src/components/VisitorIdentityForm.tsx","../src/components/LiveChatHeader.tsx","../src/components/LiveChatQueueBanner.tsx","../src/components/SatisfactionRating.tsx"],"names":["jsx","jsxs","X","useState"],"mappings":"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","file":"components.js","sourcesContent":["\"use client\";\n\n/**\n * Chat Input with Image Attachments - Enhanced input for kitchen image analysis\n */\n\nimport { useRef, useState } from \"react\";\nimport { ImageIcon, Square, X } from \"lucide-react\";\n// TODO: `FileUIPart` imported from \"ai\" (Vercel AI SDK). Make sure `ai` is installed as peer dependency.\nimport type { FileUIPart } from \"ai\";\n\ninterface Attachment extends FileUIPart {\n\tid: string;\n}\n\ninterface ChatInputWithAttachmentsProps {\n\tvalue: string;\n\tonChange: (value: string) => void;\n\tonSubmit: (text: string, attachments?: FileUIPart[]) => void;\n\tisProcessing?: boolean;\n\tplaceholder?: string;\n}\n\nexport function ChatInputWithAttachments({\n\tvalue,\n\tonChange,\n\tonSubmit,\n\tisProcessing = false,\n\tplaceholder = \"Ask anything or upload an image...\",\n}: ChatInputWithAttachmentsProps) {\n\tconst [attachments, setAttachments] = useState<Attachment[]>([]);\n\tconst fileInputRef = useRef<HTMLInputElement>(null);\n\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (e.key === \"Enter\" && (value.trim() || attachments.length > 0) && !isProcessing) {\n\t\t\te.preventDefault();\n\t\t\thandleSubmit();\n\t\t}\n\t};\n\n\tconst handleSubmit = () => {\n\t\tif ((!value.trim() && attachments.length === 0) || isProcessing) return;\n\t\tconst fileParts: FileUIPart[] = attachments.map(({ id: _id, ...rest }) => rest);\n\t\tonSubmit(value, fileParts.length > 0 ? fileParts : undefined);\n\t\tsetAttachments([]);\n\t};\n\n\tconst handleFileSelect = async (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = e.target.files;\n\t\tif (!files) return;\n\n\t\tconst newAttachments: Attachment[] = [];\n\n\t\tfor (const file of Array.from(files)) {\n\t\t\tif (!file.type.startsWith(\"image/\")) continue;\n\t\t\tconst dataUrl = await fileToDataUrl(file);\n\t\t\tnewAttachments.push({\n\t\t\t\tid: `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n\t\t\t\ttype: \"file\",\n\t\t\t\turl: dataUrl,\n\t\t\t\tmediaType: file.type,\n\t\t\t\tfilename: file.name,\n\t\t\t});\n\t\t}\n\n\t\tsetAttachments((prev) => [...prev, ...newAttachments]);\n\t\te.target.value = \"\";\n\t};\n\n\tconst removeAttachment = (id: string) => {\n\t\tsetAttachments((prev) => prev.filter((a) => a.id !== id));\n\t};\n\n\tconst openFileDialog = () => {\n\t\tfileInputRef.current?.click();\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t{attachments.length > 0 && (\n\t\t\t\t<div className=\"flex flex-wrap gap-2 px-4\">\n\t\t\t\t\t{attachments.map((attachment) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={attachment.id}\n\t\t\t\t\t\t\tclassName=\"relative group rounded-lg overflow-hidden border bg-secondary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={attachment.url}\n\t\t\t\t\t\t\t\talt={attachment.filename || \"Attachment\"}\n\t\t\t\t\t\t\t\tclassName=\"h-16 w-16 object-cover\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tonClick={() => removeAttachment(attachment.id)}\n\t\t\t\t\t\t\t\tclassName=\"absolute top-1 right-1 w-5 h-5 rounded-full bg-black/60 text-white flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X className=\"w-3 h-3\" />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName=\"flex items-center gap-2 backdrop-blur-xl border shadow-xl rounded-full pl-3 md:pl-4 pr-1.5 md:pr-[6px]\"\n\t\t\t\tstyle={{ backgroundColor: \"var(--ac-background)\", borderColor: \"var(--ac-border)\" }}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={openFileDialog}\n\t\t\t\t\tdisabled={isProcessing}\n\t\t\t\t\tclassName=\"flex items-center justify-center w-9 h-9 rounded-full text-muted-foreground hover:text-foreground hover:bg-secondary transition-colors disabled:opacity-50\"\n\t\t\t\t\ttitle=\"Upload image\"\n\t\t\t\t>\n\t\t\t\t\t<ImageIcon className=\"w-5 h-5\" />\n\t\t\t\t</button>\n\n\t\t\t\t<input\n\t\t\t\t\tref={fileInputRef}\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tonChange={handleFileSelect}\n\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t/>\n\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tonChange={(e) => onChange(e.target.value)}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tdisabled={isProcessing}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tclassName=\"flex-1 bg-transparent outline-none text-base min-h-[56px] md:min-h-[69px] disabled:opacity-50\"\n\t\t\t\t\tstyle={{ color: \"var(--ac-text)\" }}\n\t\t\t\t/>\n\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={handleSubmit}\n\t\t\t\t\tdisabled={(!value.trim() && attachments.length === 0) || isProcessing}\n\t\t\t\t\tclassName=\"flex items-center justify-center w-11 h-11 md:w-[55px] md:h-[55px] rounded-full disabled:opacity-50 disabled:cursor-not-allowed transition-colors shrink-0\"\n\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary)\", color: \"var(--ac-primary-foreground, #fff)\" }}\n\t\t\t\t>\n\t\t\t\t\t{isProcessing ? (\n\t\t\t\t\t\t<Square className=\"w-5 h-5 fill-white\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<svg className=\"w-6 h-6 md:w-7 md:h-7\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t<path d=\"M2 15C1.44772 15 1 14.5523 1 14C1 13.4477 1.44772 13 2 13V14L2 15ZM26.7071 13.2929C27.0976 13.6834 27.0976 14.3166 26.7071 14.7071L20.3431 21.0711C19.9526 21.4616 19.3195 21.4616 18.9289 21.0711C18.5384 20.6805 18.5384 20.0474 18.9289 19.6569L24.5858 14L18.9289 8.34315C18.5384 7.95262 18.5384 7.31946 18.9289 6.92893C19.3195 6.53841 19.9526 6.53841 20.3431 6.92893L26.7071 13.2929ZM2 14V13L26 13V14V15L2 15L2 14Z\" fill=\"white\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t)}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nasync function fileToDataUrl(file: File): Promise<string> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst reader = new FileReader();\n\t\treader.onload = () => resolve(reader.result as string);\n\t\treader.onerror = reject;\n\t\treader.readAsDataURL(file);\n\t});\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../core/utils\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n overlayVariant?: \"default\" | \"light\";\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, overlayVariant: _overlayVariant, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { Sheet, SheetContent, SheetTrigger, SheetTitle } from \"../ui/sheet\";\nimport { ChatInterface } from \"./ChatInterface\";\nimport { MessageCircle } from \"lucide-react\";\n// TODO: @radix-ui/react-visually-hidden — keep as peer dep.\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\n\ninterface ChatDrawerProps {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\ttrigger?: React.ReactNode;\n\thideTrigger?: boolean;\n}\n\nexport function ChatDrawer({\n\tdefaultOpen = false,\n\topen: controlledOpen,\n\tonOpenChange,\n\ttrigger,\n\thideTrigger = false,\n}: ChatDrawerProps) {\n\tconst [internalOpen, setInternalOpen] = useState(defaultOpen);\n\n\tconst isControlled = controlledOpen !== undefined;\n\tconst isOpen = isControlled ? controlledOpen : internalOpen;\n\n\tconst handleOpenChange = (open: boolean) => {\n\t\tif (!isControlled) setInternalOpen(open);\n\t\tonOpenChange?.(open);\n\t};\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst handleCloseChat = () => handleOpenChange(false);\n\t\tdocument.addEventListener(\"aigentyc:close-chat\", handleCloseChat);\n\t\treturn () => document.removeEventListener(\"aigentyc:close-chat\", handleCloseChat);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\treturn (\n\t\t<Sheet open={isOpen} onOpenChange={handleOpenChange}>\n\t\t\t{!hideTrigger && (\n\t\t\t\t<SheetTrigger asChild>\n\t\t\t\t\t{trigger || (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"fixed bottom-6 right-6 z-40 flex h-14 w-14 items-center justify-center rounded-full shadow-lg transition-transform hover:scale-105 focus:outline-none focus:ring-2 focus:ring-offset-2\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary)\", color: \"var(--ac-primary-foreground, #fff)\" }}\n\t\t\t\t\t\t\taria-label=\"Open chat\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MessageCircle className=\"h-6 w-6\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t</SheetTrigger>\n\t\t\t)}\n\t\t\t<SheetContent\n\t\t\t\tside=\"right\"\n\t\t\t\tclassName=\"w-full sm:w-[450px] sm:max-w-[450px] p-0 flex flex-col [&>button]:hidden\"\n\t\t\t>\n\t\t\t\t<VisuallyHidden.Root>\n\t\t\t\t\t<SheetTitle>Chat Assistant</SheetTitle>\n\t\t\t\t</VisuallyHidden.Root>\n\t\t\t\t<ChatInterface />\n\t\t\t</SheetContent>\n\t\t</Sheet>\n\t);\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { useI18n } from \"../hooks/use-i18n\";\n\ninterface VisitorIdentityFormProps {\n\tonSubmit: (name: string, email: string) => void;\n\tonCancel: () => void;\n}\n\nexport function VisitorIdentityForm({ onSubmit, onCancel }: VisitorIdentityFormProps) {\n\tconst [name, setName] = useState(\"\");\n\tconst [email, setEmail] = useState(\"\");\n\tconst { t, direction } = useI18n();\n\tconst isRTL = direction === \"rtl\";\n\n\treturn (\n\t\t<div className=\"border-t bg-blue-50/80 px-4 py-4\" dir={isRTL ? \"rtl\" : \"ltr\"}>\n\t\t\t<p className=\"text-sm text-blue-800 font-medium mb-3\">{t(\"liveChatIdentityTitle\")}</p>\n\t\t\t<div className=\"space-y-2\">\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={name}\n\t\t\t\t\tonChange={(e) => setName(e.target.value)}\n\t\t\t\t\tplaceholder={t(\"liveChatIdentityName\")}\n\t\t\t\t\tclassName=\"w-full text-sm p-2.5 border rounded-lg bg-background focus:outline-none focus:ring-2 focus:ring-blue-300\"\n\t\t\t\t\tautoFocus\n\t\t\t\t/>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\tvalue={email}\n\t\t\t\t\tonChange={(e) => setEmail(e.target.value)}\n\t\t\t\t\tplaceholder={t(\"liveChatIdentityEmail\")}\n\t\t\t\t\tclassName=\"w-full text-sm p-2.5 border rounded-lg bg-background focus:outline-none focus:ring-2 focus:ring-blue-300\"\n\t\t\t\t/>\n\t\t\t\t<div className=\"flex gap-2 justify-end\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\tclassName=\"text-sm text-muted-foreground hover:text-foreground px-4 py-2 rounded-lg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"liveChatCancel\")}\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={() => onSubmit(name, email)}\n\t\t\t\t\t\tdisabled={!name.trim() || !email.trim()}\n\t\t\t\t\t\tclassName=\"text-sm text-white px-5 py-2 rounded-lg disabled:opacity-40\"\n\t\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary, #2f80ed)\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"liveChatIdentityConnect\")}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\ninterface LiveChatHeaderProps {\n\toperatorName: string;\n\tonEndChat: () => void;\n}\n\nexport function LiveChatHeader({ operatorName, onEndChat }: LiveChatHeaderProps) {\n\treturn (\n\t\t<div className=\"bg-green-50 border-b border-green-200 px-4 py-2 flex items-center justify-between\">\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<div className=\"h-2 w-2 rounded-full bg-green-500\" />\n\t\t\t\t<span className=\"text-sm text-green-800 font-medium\">Chatting with {operatorName}</span>\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={onEndChat}\n\t\t\t\tclassName=\"text-xs text-red-600 hover:text-red-800 bg-red-50 px-2 py-1 rounded\"\n\t\t\t>\n\t\t\t\tEnd Chat\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\ninterface QueueBannerProps {\n\tposition: number;\n\tonCancel: () => void;\n}\n\nexport function LiveChatQueueBanner({ position, onCancel }: QueueBannerProps) {\n\treturn (\n\t\t<div className=\"bg-blue-50 border-b border-blue-200 px-4 py-3 flex items-center justify-between\">\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<div className=\"h-2 w-2 rounded-full bg-blue-500 animate-pulse\" />\n\t\t\t\t<span className=\"text-sm text-blue-800\">\n\t\t\t\t\tConnecting you with an operator...\n\t\t\t\t\t{position > 0 && <span className=\"font-medium\"> Position #{position}</span>}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={onCancel}\n\t\t\t\tclassName=\"text-xs text-blue-600 hover:text-blue-800 underline\"\n\t\t\t>\n\t\t\t\tCancel\n\t\t\t</button>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport { ThumbsUp, ThumbsDown } from \"lucide-react\";\n\ninterface SatisfactionRatingProps {\n\tonSubmit: (rating: \"positive\" | \"negative\", comment?: string) => void;\n\tonSkip: () => void;\n}\n\nexport function SatisfactionRating({ onSubmit, onSkip }: SatisfactionRatingProps) {\n\tconst [selected, setSelected] = useState<\"positive\" | \"negative\" | null>(null);\n\tconst [comment, setComment] = useState(\"\");\n\tconst [submitted, setSubmitted] = useState(false);\n\n\tif (submitted) {\n\t\treturn (\n\t\t\t<div className=\"bg-secondary/50 border-t px-4 py-3 text-center\">\n\t\t\t\t<p className=\"text-sm text-muted-foreground\">Thank you for your feedback!</p>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={onSkip}\n\t\t\t\t\tclassName=\"text-xs text-blue-600 hover:underline mt-1\"\n\t\t\t\t>\n\t\t\t\t\tBack to AI Assistant\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"bg-secondary/50 border-t px-4 py-3\">\n\t\t\t<p className=\"text-sm text-foreground/80 text-center mb-2\">How was your experience?</p>\n\t\t\t<div className=\"flex justify-center gap-4 mb-2\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => setSelected(\"positive\")}\n\t\t\t\t\tclassName={`p-2 rounded-full transition-colors ${\n\t\t\t\t\t\tselected === \"positive\" ? \"bg-green-100 text-green-600\" : \"hover:bg-muted text-muted-foreground\"\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t<ThumbsUp className=\"h-5 w-5\" />\n\t\t\t\t</button>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => setSelected(\"negative\")}\n\t\t\t\t\tclassName={`p-2 rounded-full transition-colors ${\n\t\t\t\t\t\tselected === \"negative\" ? \"bg-red-100 text-red-600\" : \"hover:bg-muted text-muted-foreground\"\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t<ThumbsDown className=\"h-5 w-5\" />\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t{selected && (\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tvalue={comment}\n\t\t\t\t\t\tonChange={(e) => setComment(e.target.value)}\n\t\t\t\t\t\tplaceholder=\"Any additional feedback? (optional)\"\n\t\t\t\t\t\tclassName=\"w-full text-xs p-2 border rounded resize-none h-16\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex justify-center gap-2\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tonSubmit(selected, comment || undefined);\n\t\t\t\t\t\t\t\tsetSubmitted(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"text-xs text-white px-3 py-1 rounded\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"var(--ac-primary)\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={onSkip}\n\t\t\t\t\t\t\tclassName=\"text-xs text-muted-foreground hover:underline px-3 py-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSkip\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!selected && (\n\t\t\t\t<div className=\"text-center\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={onSkip}\n\t\t\t\t\t\tclassName=\"text-xs text-muted-foreground hover:underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSkip\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
package/dist/core.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as ChatConfig } from './types-
|
|
2
|
-
export { b as ChatEventCallbacks, c as ChatMessage, C as ChatProviderProps, d as ComponentAction, L as Language, e as LiveChatMessage, f as LiveChatState, Q as QuestionConfig, S as SlotMap, i as SlotProps, T as ThemeConfig, g as ToolRendererProps, h as ToolResult } from './types-
|
|
1
|
+
import { a as ChatConfig } from './types-DlNwk-bG.cjs';
|
|
2
|
+
export { b as ChatEventCallbacks, c as ChatMessage, C as ChatProviderProps, d as ComponentAction, L as Language, e as LiveChatMessage, f as LiveChatState, Q as QuestionConfig, S as SlotMap, i as SlotProps, T as ThemeConfig, g as ToolRendererProps, h as ToolResult } from './types-DlNwk-bG.cjs';
|
|
3
3
|
import { ClassValue } from 'clsx';
|
|
4
4
|
import * as ai from 'ai';
|
|
5
5
|
export { I as InteractionMetadata, a as InteractionType, T as TrackInteractionParams, U as UseInteractionTrackerOptions, g as generateSessionId, u as useInteractionTracker } from './interaction-tracker-D9P1Oq4j.cjs';
|
package/dist/core.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as ChatConfig } from './types-
|
|
2
|
-
export { b as ChatEventCallbacks, c as ChatMessage, C as ChatProviderProps, d as ComponentAction, L as Language, e as LiveChatMessage, f as LiveChatState, Q as QuestionConfig, S as SlotMap, i as SlotProps, T as ThemeConfig, g as ToolRendererProps, h as ToolResult } from './types-
|
|
1
|
+
import { a as ChatConfig } from './types-DlNwk-bG.js';
|
|
2
|
+
export { b as ChatEventCallbacks, c as ChatMessage, C as ChatProviderProps, d as ComponentAction, L as Language, e as LiveChatMessage, f as LiveChatState, Q as QuestionConfig, S as SlotMap, i as SlotProps, T as ThemeConfig, g as ToolRendererProps, h as ToolResult } from './types-DlNwk-bG.js';
|
|
3
3
|
import { ClassValue } from 'clsx';
|
|
4
4
|
import * as ai from 'ai';
|
|
5
5
|
export { I as InteractionMetadata, a as InteractionType, T as TrackInteractionParams, U as UseInteractionTrackerOptions, g as generateSessionId, u as useInteractionTracker } from './interaction-tracker-D9P1Oq4j.js';
|
package/dist/hooks.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunk3HGOLNGG_cjs = require('./chunk-3HGOLNGG.cjs');
|
|
5
5
|
var chunkKBGPBUTI_cjs = require('./chunk-KBGPBUTI.cjs');
|
|
6
6
|
require('./chunk-NG7OTWXQ.cjs');
|
|
7
7
|
var chunkNYQSM3EB_cjs = require('./chunk-NYQSM3EB.cjs');
|
|
8
8
|
var chunkP3RPAI4F_cjs = require('./chunk-P3RPAI4F.cjs');
|
|
9
9
|
require('./chunk-X7R334SB.cjs');
|
|
10
10
|
var chunk3MP2EGEJ_cjs = require('./chunk-3MP2EGEJ.cjs');
|
|
11
|
-
var
|
|
11
|
+
var chunkBPV66QNM_cjs = require('./chunk-BPV66QNM.cjs');
|
|
12
12
|
var react = require('react');
|
|
13
13
|
|
|
14
14
|
function useImageLoader() {
|
|
@@ -276,7 +276,7 @@ function useMultiOrderTracking() {
|
|
|
276
276
|
|
|
277
277
|
Object.defineProperty(exports, "useAigentycChat", {
|
|
278
278
|
enumerable: true,
|
|
279
|
-
get: function () { return
|
|
279
|
+
get: function () { return chunk3HGOLNGG_cjs.useAigentycChat; }
|
|
280
280
|
});
|
|
281
281
|
Object.defineProperty(exports, "useInteractionTracker", {
|
|
282
282
|
enumerable: true,
|
|
@@ -304,15 +304,15 @@ Object.defineProperty(exports, "useI18n", {
|
|
|
304
304
|
});
|
|
305
305
|
Object.defineProperty(exports, "useChatContext", {
|
|
306
306
|
enumerable: true,
|
|
307
|
-
get: function () { return
|
|
307
|
+
get: function () { return chunkBPV66QNM_cjs.useChatContext; }
|
|
308
308
|
});
|
|
309
309
|
Object.defineProperty(exports, "useSlot", {
|
|
310
310
|
enumerable: true,
|
|
311
|
-
get: function () { return
|
|
311
|
+
get: function () { return chunkBPV66QNM_cjs.useSlot; }
|
|
312
312
|
});
|
|
313
313
|
Object.defineProperty(exports, "useSlots", {
|
|
314
314
|
enumerable: true,
|
|
315
|
-
get: function () { return
|
|
315
|
+
get: function () { return chunkBPV66QNM_cjs.useSlots; }
|
|
316
316
|
});
|
|
317
317
|
exports.useImageLoader = useImageLoader;
|
|
318
318
|
exports.useMultiImageLoader = useMultiImageLoader;
|
package/dist/hooks.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { L as LiveChatReturn, U as UseAigentycChatOptions,
|
|
1
|
+
export { L as LiveChatReturn, U as UseAigentycChatOptions, b as UseAigentycChatReturn, u as useAigentycChat, c as useChatContext, d as useLiveChat, e as useSlot, f as useSlots } from './SlotsContext-CEOBjzfh.cjs';
|
|
2
2
|
export { useTheme } from './theme.cjs';
|
|
3
3
|
export { useI18n } from './i18n.cjs';
|
|
4
4
|
import { RefObject } from 'react';
|
|
5
5
|
export { u as useInteractionTracker } from './interaction-tracker-D9P1Oq4j.cjs';
|
|
6
|
-
import './types-
|
|
6
|
+
import './types-DlNwk-bG.cjs';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
/** Information about a preview to display in an embedded panel. */
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { L as LiveChatReturn, U as UseAigentycChatOptions,
|
|
1
|
+
export { L as LiveChatReturn, U as UseAigentycChatOptions, b as UseAigentycChatReturn, u as useAigentycChat, c as useChatContext, d as useLiveChat, e as useSlot, f as useSlots } from './SlotsContext-BjiX1mRx.js';
|
|
2
2
|
export { useTheme } from './theme.js';
|
|
3
3
|
export { useI18n } from './i18n.js';
|
|
4
4
|
import { RefObject } from 'react';
|
|
5
5
|
export { u as useInteractionTracker } from './interaction-tracker-D9P1Oq4j.js';
|
|
6
|
-
import './types-
|
|
6
|
+
import './types-DlNwk-bG.js';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
/** Information about a preview to display in an embedded panel. */
|
package/dist/hooks.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { useAigentycChat } from './chunk-
|
|
2
|
+
export { useAigentycChat } from './chunk-M4YRNNGB.js';
|
|
3
3
|
export { useInteractionTracker } from './chunk-MT2AMINB.js';
|
|
4
4
|
import './chunk-BKDV2H6Z.js';
|
|
5
5
|
export { useIsMobile, useLiveChat, usePreviewEmbed } from './chunk-5F3O3ZJH.js';
|
|
6
6
|
export { useTheme } from './chunk-IU7Q7O5G.js';
|
|
7
7
|
import './chunk-MZQKGNWF.js';
|
|
8
8
|
export { useI18n } from './chunk-QYCEHFAB.js';
|
|
9
|
-
export { useChatContext, useSlot, useSlots } from './chunk-
|
|
9
|
+
export { useChatContext, useSlot, useSlots } from './chunk-FPQ3UCCJ.js';
|
|
10
10
|
import { useState, useCallback, useMemo, useEffect } from 'react';
|
|
11
11
|
|
|
12
12
|
function useImageLoader() {
|
package/dist/i18n.d.cts
CHANGED
package/dist/i18n.d.ts
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunk3HGOLNGG_cjs = require('./chunk-3HGOLNGG.cjs');
|
|
5
5
|
require('./chunk-NG7OTWXQ.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunk5XF7KH6B_cjs = require('./chunk-5XF7KH6B.cjs');
|
|
7
7
|
var chunkNYQSM3EB_cjs = require('./chunk-NYQSM3EB.cjs');
|
|
8
8
|
var chunkP3RPAI4F_cjs = require('./chunk-P3RPAI4F.cjs');
|
|
9
|
-
require('./chunk-
|
|
9
|
+
require('./chunk-4WOBNRRB.cjs');
|
|
10
10
|
require('./chunk-X7R334SB.cjs');
|
|
11
11
|
var chunk3MP2EGEJ_cjs = require('./chunk-3MP2EGEJ.cjs');
|
|
12
|
-
require('./chunk-
|
|
13
|
-
|
|
12
|
+
var chunk7AZMWPKX_cjs = require('./chunk-7AZMWPKX.cjs');
|
|
13
|
+
require('./chunk-7IFBPXT3.cjs');
|
|
14
|
+
var chunkBPV66QNM_cjs = require('./chunk-BPV66QNM.cjs');
|
|
14
15
|
require('./chunk-JOO6C3XT.cjs');
|
|
15
|
-
require('./chunk-
|
|
16
|
+
require('./chunk-TZ7EM3EG.cjs');
|
|
16
17
|
require('./chunk-JI5KCSOI.cjs');
|
|
17
18
|
require('./chunk-AWAJOSFP.cjs');
|
|
18
19
|
var chunk525KS5HM_cjs = require('./chunk-525KS5HM.cjs');
|
|
@@ -34,6 +35,9 @@ var CALLBACK_KEYS = [
|
|
|
34
35
|
"onLiveChatConnected",
|
|
35
36
|
"onLiveChatEnded",
|
|
36
37
|
"onError",
|
|
38
|
+
"onNewConversation",
|
|
39
|
+
"onStopGeneration",
|
|
40
|
+
"onClearMessages",
|
|
37
41
|
"onInteraction"
|
|
38
42
|
];
|
|
39
43
|
function pickCallbacks(props) {
|
|
@@ -76,8 +80,8 @@ function ChatProvider(props) {
|
|
|
76
80
|
children: /* @__PURE__ */ jsxRuntime.jsx(chunkNYQSM3EB_cjs.PreviewEmbedProvider, { children })
|
|
77
81
|
}
|
|
78
82
|
) : /* @__PURE__ */ jsxRuntime.jsx(chunkNYQSM3EB_cjs.PreviewEmbedProvider, { children });
|
|
79
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunk3MP2EGEJ_cjs.I18nProvider, { language, translations: translationOverrides, children: /* @__PURE__ */ jsxRuntime.jsx(chunkP3RPAI4F_cjs.ThemeProvider, { theme, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
80
|
-
|
|
83
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunk3MP2EGEJ_cjs.I18nProvider, { language, translations: translationOverrides, children: /* @__PURE__ */ jsxRuntime.jsx(chunkP3RPAI4F_cjs.ThemeProvider, { theme, children: /* @__PURE__ */ jsxRuntime.jsx(chunkBPV66QNM_cjs.SlotsProvider, { slots, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
84
|
+
chunkBPV66QNM_cjs.ChatContextProvider,
|
|
81
85
|
{
|
|
82
86
|
config,
|
|
83
87
|
callbacks,
|
|
@@ -85,9 +89,9 @@ function ChatProvider(props) {
|
|
|
85
89
|
}
|
|
86
90
|
) }) }) });
|
|
87
91
|
}
|
|
88
|
-
function Chat({ className, children, showSources, ...providerProps }) {
|
|
92
|
+
function Chat({ className, children, showSources, messagePartOrder, ...providerProps }) {
|
|
89
93
|
return /* @__PURE__ */ jsxRuntime.jsx(ChatProvider, { ...providerProps, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className, children: [
|
|
90
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
94
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.ChatInterface, { showSources, messagePartOrder }),
|
|
91
95
|
children
|
|
92
96
|
] }) });
|
|
93
97
|
}
|
|
@@ -206,12 +210,13 @@ function ChatWidgetInner({
|
|
|
206
210
|
questionsLayout,
|
|
207
211
|
questionsLayoutMobile,
|
|
208
212
|
showSources,
|
|
213
|
+
messagePartOrder,
|
|
209
214
|
language
|
|
210
215
|
}) {
|
|
211
216
|
const [internalIsOpen, setInternalIsOpen] = react.useState(false);
|
|
212
217
|
const [pendingMessage, setPendingMessage] = react.useState(initialPendingMessage ?? null);
|
|
213
218
|
const isMobile = chunkNYQSM3EB_cjs.useIsMobile();
|
|
214
|
-
const slots =
|
|
219
|
+
const slots = chunkBPV66QNM_cjs.useSlots();
|
|
215
220
|
react.useEffect(() => {
|
|
216
221
|
if (controlledIsOpen === true) setInternalIsOpen(true);
|
|
217
222
|
}, [controlledIsOpen]);
|
|
@@ -254,13 +259,14 @@ function ChatWidgetInner({
|
|
|
254
259
|
questionsLayout,
|
|
255
260
|
questionsLayoutMobile,
|
|
256
261
|
showSources,
|
|
262
|
+
messagePartOrder,
|
|
257
263
|
pendingMessage,
|
|
258
264
|
onPendingMessageConsumed: () => setPendingMessage(null)
|
|
259
265
|
}),
|
|
260
|
-
[isOpen, handleClose, logoUrl, welcomeTitle, welcomeSubtitle, hideWelcomeHeader, footerText, hideHeader, showFirstMessage, questionsLayout, questionsLayoutMobile, showSources, pendingMessage]
|
|
266
|
+
[isOpen, handleClose, logoUrl, welcomeTitle, welcomeSubtitle, hideWelcomeHeader, footerText, hideHeader, showFirstMessage, questionsLayout, questionsLayoutMobile, showSources, messagePartOrder, pendingMessage]
|
|
261
267
|
);
|
|
262
268
|
if (mode === "inline") {
|
|
263
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col w-full h-full", dir: dirRTL ? "rtl" : "ltr", style: { backgroundColor: "var(--ac-background)" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
269
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col w-full h-full", dir: dirRTL ? "rtl" : "ltr", style: { backgroundColor: "var(--ac-background)" }, children: /* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.ChatInterface, { ...chatInterfaceProps }) });
|
|
264
270
|
}
|
|
265
271
|
const panelZIndex = zIndex || 9999;
|
|
266
272
|
const floatingButtonProps = {
|
|
@@ -304,8 +310,8 @@ function ChatWidgetInner({
|
|
|
304
310
|
onClick: handleClose
|
|
305
311
|
}
|
|
306
312
|
),
|
|
307
|
-
!isMobile && /* @__PURE__ */ jsxRuntime.jsx(
|
|
308
|
-
!isMobile && /* @__PURE__ */ jsxRuntime.jsx(
|
|
313
|
+
!isMobile && /* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.PreviewEmbedPanel, { isOpen, isRightSide, zIndex: panelZIndex - 1 }),
|
|
314
|
+
!isMobile && /* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.LiveChatPanel, { isWidgetOpen: isOpen, isRightSide, zIndex: panelZIndex - 1 }),
|
|
309
315
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
310
316
|
"div",
|
|
311
317
|
{
|
|
@@ -334,15 +340,15 @@ function ChatWidgetInner({
|
|
|
334
340
|
},
|
|
335
341
|
children: [
|
|
336
342
|
isMobile && /* @__PURE__ */ jsxRuntime.jsx(MobilePreviewDrawer, {}),
|
|
337
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
338
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
343
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.MobileLiveChatDrawer, {}),
|
|
344
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.ChatInterface, { ...chatInterfaceProps })
|
|
339
345
|
]
|
|
340
346
|
}
|
|
341
347
|
),
|
|
342
|
-
!isOpen &&
|
|
348
|
+
!isOpen && chunkBPV66QNM_cjs.renderSlot(
|
|
343
349
|
"floatingButton",
|
|
344
350
|
floatingButtonProps,
|
|
345
|
-
|
|
351
|
+
chunk5XF7KH6B_cjs.FloatingButton,
|
|
346
352
|
slots
|
|
347
353
|
)
|
|
348
354
|
] });
|
|
@@ -435,7 +441,11 @@ function ChatWidget(props) {
|
|
|
435
441
|
|
|
436
442
|
Object.defineProperty(exports, "useAigentycChat", {
|
|
437
443
|
enumerable: true,
|
|
438
|
-
get: function () { return
|
|
444
|
+
get: function () { return chunk3HGOLNGG_cjs.useAigentycChat; }
|
|
445
|
+
});
|
|
446
|
+
Object.defineProperty(exports, "ChatErrorBoundary", {
|
|
447
|
+
enumerable: true,
|
|
448
|
+
get: function () { return chunk5XF7KH6B_cjs.ChatErrorBoundary; }
|
|
439
449
|
});
|
|
440
450
|
Object.defineProperty(exports, "useLiveChat", {
|
|
441
451
|
enumerable: true,
|
|
@@ -449,17 +459,29 @@ Object.defineProperty(exports, "useI18n", {
|
|
|
449
459
|
enumerable: true,
|
|
450
460
|
get: function () { return chunk3MP2EGEJ_cjs.useI18n; }
|
|
451
461
|
});
|
|
462
|
+
Object.defineProperty(exports, "getToolDisplayData", {
|
|
463
|
+
enumerable: true,
|
|
464
|
+
get: function () { return chunk7AZMWPKX_cjs.getToolDisplayData; }
|
|
465
|
+
});
|
|
466
|
+
Object.defineProperty(exports, "normalizeToolRows", {
|
|
467
|
+
enumerable: true,
|
|
468
|
+
get: function () { return chunk7AZMWPKX_cjs.normalizeToolRows; }
|
|
469
|
+
});
|
|
470
|
+
Object.defineProperty(exports, "renderSlot", {
|
|
471
|
+
enumerable: true,
|
|
472
|
+
get: function () { return chunkBPV66QNM_cjs.renderSlot; }
|
|
473
|
+
});
|
|
452
474
|
Object.defineProperty(exports, "useChatContext", {
|
|
453
475
|
enumerable: true,
|
|
454
|
-
get: function () { return
|
|
476
|
+
get: function () { return chunkBPV66QNM_cjs.useChatContext; }
|
|
455
477
|
});
|
|
456
478
|
Object.defineProperty(exports, "useSlot", {
|
|
457
479
|
enumerable: true,
|
|
458
|
-
get: function () { return
|
|
480
|
+
get: function () { return chunkBPV66QNM_cjs.useSlot; }
|
|
459
481
|
});
|
|
460
482
|
Object.defineProperty(exports, "useSlots", {
|
|
461
483
|
enumerable: true,
|
|
462
|
-
get: function () { return
|
|
484
|
+
get: function () { return chunkBPV66QNM_cjs.useSlots; }
|
|
463
485
|
});
|
|
464
486
|
exports.Chat = Chat;
|
|
465
487
|
exports.ChatProvider = ChatProvider;
|