@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.
Files changed (119) hide show
  1. package/bin/aigentyc.mjs +10 -4
  2. package/bin/lib/skill.mjs +84 -0
  3. package/claude-skill/README.md +32 -0
  4. package/claude-skill/aigentyc-chat-sdk/SKILL.md +339 -0
  5. package/context7.json +1 -1
  6. package/dist/ChatInterface-B0zbA3Lm.d.cts +64 -0
  7. package/dist/ChatInterface-f8ftS56n.d.ts +64 -0
  8. package/dist/{JsonRenderResult-Ftw4AKwb.d.cts → JsonRenderResult-D6ogds0_.d.cts} +8 -1
  9. package/dist/{JsonRenderResult-Ftw4AKwb.d.ts → JsonRenderResult-D6ogds0_.d.ts} +8 -1
  10. package/dist/JsonRenderResult-GCNFMZYP.js +6 -0
  11. package/dist/{JsonRenderResult-ZFJ6VWMS.js.map → JsonRenderResult-GCNFMZYP.js.map} +1 -1
  12. package/dist/JsonRenderResult-II3IBENS.cjs +15 -0
  13. package/dist/{JsonRenderResult-GQOYPLVH.cjs.map → JsonRenderResult-II3IBENS.cjs.map} +1 -1
  14. package/dist/{SlotsContext-CBtt36al.d.ts → SlotsContext-BjiX1mRx.d.ts} +17 -2
  15. package/dist/{SlotsContext-CHvISDJT.d.cts → SlotsContext-CEOBjzfh.d.cts} +17 -2
  16. package/dist/ai-elements.cjs +114 -393
  17. package/dist/ai-elements.cjs.map +1 -1
  18. package/dist/ai-elements.d.cts +2 -31
  19. package/dist/ai-elements.d.ts +2 -31
  20. package/dist/ai-elements.js +9 -291
  21. package/dist/ai-elements.js.map +1 -1
  22. package/dist/{chunk-5QSXB6UL.cjs → chunk-3HGOLNGG.cjs} +13 -4
  23. package/dist/chunk-3HGOLNGG.cjs.map +1 -0
  24. package/dist/{chunk-KVEJAPWA.js → chunk-3KSMOHNY.js} +48 -62
  25. package/dist/chunk-3KSMOHNY.js.map +1 -0
  26. package/dist/chunk-4WOBNRRB.cjs +540 -0
  27. package/dist/chunk-4WOBNRRB.cjs.map +1 -0
  28. package/dist/{chunk-MC6QDYB6.cjs → chunk-5XF7KH6B.cjs} +166 -67
  29. package/dist/chunk-5XF7KH6B.cjs.map +1 -0
  30. package/dist/chunk-7AZMWPKX.cjs +35 -0
  31. package/dist/chunk-7AZMWPKX.cjs.map +1 -0
  32. package/dist/{chunk-DMGYQ6NN.cjs → chunk-7IFBPXT3.cjs} +95 -8
  33. package/dist/chunk-7IFBPXT3.cjs.map +1 -0
  34. package/dist/{chunk-U3FXVLUK.js → chunk-AD6XWKWB.js} +93 -6
  35. package/dist/chunk-AD6XWKWB.js.map +1 -0
  36. package/dist/chunk-B27JIQ4Z.js +528 -0
  37. package/dist/chunk-B27JIQ4Z.js.map +1 -0
  38. package/dist/{chunk-J2K7EJYP.cjs → chunk-BPV66QNM.cjs} +6 -4
  39. package/dist/chunk-BPV66QNM.cjs.map +1 -0
  40. package/dist/{chunk-FYPJSHCL.js → chunk-FPQ3UCCJ.js} +6 -4
  41. package/dist/chunk-FPQ3UCCJ.js.map +1 -0
  42. package/dist/{chunk-J2H6MLQF.cjs → chunk-H7C3AGA2.cjs} +17 -6
  43. package/dist/chunk-H7C3AGA2.cjs.map +1 -0
  44. package/dist/{chunk-7L4FS6G7.js → chunk-JHWSG5IB.js} +17 -3
  45. package/dist/chunk-JHWSG5IB.js.map +1 -0
  46. package/dist/{chunk-4FBVV64J.js → chunk-M4YRNNGB.js} +13 -4
  47. package/dist/chunk-M4YRNNGB.js.map +1 -0
  48. package/dist/{chunk-QDFPJJ5Y.cjs → chunk-OU5OZKYH.cjs} +50 -65
  49. package/dist/chunk-OU5OZKYH.cjs.map +1 -0
  50. package/dist/{chunk-C24QG43M.cjs → chunk-TZ7EM3EG.cjs} +17 -2
  51. package/dist/chunk-TZ7EM3EG.cjs.map +1 -0
  52. package/dist/chunk-XEAAB5ZM.js +32 -0
  53. package/dist/chunk-XEAAB5ZM.js.map +1 -0
  54. package/dist/{chunk-FOZXDUSZ.js → chunk-YG2COKFR.js} +151 -54
  55. package/dist/chunk-YG2COKFR.js.map +1 -0
  56. package/dist/{chunk-RPDJXB3U.js → chunk-ZXP7IYRC.js} +17 -6
  57. package/dist/chunk-ZXP7IYRC.js.map +1 -0
  58. package/dist/components.cjs +31 -52
  59. package/dist/components.cjs.map +1 -1
  60. package/dist/components.d.cts +4 -34
  61. package/dist/components.d.ts +4 -34
  62. package/dist/components.js +18 -42
  63. package/dist/components.js.map +1 -1
  64. package/dist/core.d.cts +2 -2
  65. package/dist/core.d.ts +2 -2
  66. package/dist/hooks.cjs +6 -6
  67. package/dist/hooks.d.cts +2 -2
  68. package/dist/hooks.d.ts +2 -2
  69. package/dist/hooks.js +2 -2
  70. package/dist/i18n.d.cts +1 -1
  71. package/dist/i18n.d.ts +1 -1
  72. package/dist/index.cjs +45 -23
  73. package/dist/index.cjs.map +1 -1
  74. package/dist/index.d.cts +51 -6
  75. package/dist/index.d.ts +51 -6
  76. package/dist/index.js +17 -10
  77. package/dist/index.js.map +1 -1
  78. package/dist/json-render.cjs +4 -4
  79. package/dist/json-render.d.cts +1 -1
  80. package/dist/json-render.d.ts +1 -1
  81. package/dist/json-render.js +1 -1
  82. package/dist/llms-full.txt +195 -15
  83. package/dist/message-feedback-BFh3-qym.d.cts +92 -0
  84. package/dist/message-feedback-cWR0NVok.d.ts +92 -0
  85. package/dist/normalize-KzCLLqpU.d.cts +42 -0
  86. package/dist/normalize-KzCLLqpU.d.ts +42 -0
  87. package/dist/styles.css +1 -1
  88. package/dist/theme.d.cts +1 -1
  89. package/dist/theme.d.ts +1 -1
  90. package/dist/tools.cjs +16 -7
  91. package/dist/tools.d.cts +4 -3
  92. package/dist/tools.d.ts +4 -3
  93. package/dist/tools.js +4 -3
  94. package/dist/{types-DKJ_-nbG.d.ts → types-DlNwk-bG.d.cts} +33 -3
  95. package/dist/{types-DKJ_-nbG.d.cts → types-DlNwk-bG.d.ts} +33 -3
  96. package/dist/ui.cjs +45 -45
  97. package/dist/ui.js +2 -2
  98. package/llms.txt +175 -5
  99. package/package.json +2 -1
  100. package/dist/JsonRenderResult-GQOYPLVH.cjs +0 -15
  101. package/dist/JsonRenderResult-ZFJ6VWMS.js +0 -6
  102. package/dist/chunk-4FBVV64J.js.map +0 -1
  103. package/dist/chunk-5QSXB6UL.cjs.map +0 -1
  104. package/dist/chunk-7L4FS6G7.js.map +0 -1
  105. package/dist/chunk-A7PCSWIK.js +0 -219
  106. package/dist/chunk-A7PCSWIK.js.map +0 -1
  107. package/dist/chunk-C24QG43M.cjs.map +0 -1
  108. package/dist/chunk-DMGYQ6NN.cjs.map +0 -1
  109. package/dist/chunk-FOZXDUSZ.js.map +0 -1
  110. package/dist/chunk-FYPJSHCL.js.map +0 -1
  111. package/dist/chunk-J2H6MLQF.cjs.map +0 -1
  112. package/dist/chunk-J2K7EJYP.cjs.map +0 -1
  113. package/dist/chunk-KVEJAPWA.js.map +0 -1
  114. package/dist/chunk-MC6QDYB6.cjs.map +0 -1
  115. package/dist/chunk-QDFPJJ5Y.cjs.map +0 -1
  116. package/dist/chunk-RPDJXB3U.js.map +0 -1
  117. package/dist/chunk-RTVEBPAJ.cjs +0 -230
  118. package/dist/chunk-RTVEBPAJ.cjs.map +0 -1
  119. package/dist/chunk-U3FXVLUK.js.map +0 -1
@@ -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-DKJ_-nbG.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-DKJ_-nbG.cjs';
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-DKJ_-nbG.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-DKJ_-nbG.js';
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 chunk5QSXB6UL_cjs = require('./chunk-5QSXB6UL.cjs');
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 chunkJ2K7EJYP_cjs = require('./chunk-J2K7EJYP.cjs');
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 chunk5QSXB6UL_cjs.useAigentycChat; }
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 chunkJ2K7EJYP_cjs.useChatContext; }
307
+ get: function () { return chunkBPV66QNM_cjs.useChatContext; }
308
308
  });
309
309
  Object.defineProperty(exports, "useSlot", {
310
310
  enumerable: true,
311
- get: function () { return chunkJ2K7EJYP_cjs.useSlot; }
311
+ get: function () { return chunkBPV66QNM_cjs.useSlot; }
312
312
  });
313
313
  Object.defineProperty(exports, "useSlots", {
314
314
  enumerable: true,
315
- get: function () { return chunkJ2K7EJYP_cjs.useSlots; }
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, a as UseAigentycChatReturn, u as useAigentycChat, b as useChatContext, c as useLiveChat, d as useSlot, e as useSlots } from './SlotsContext-CHvISDJT.cjs';
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-DKJ_-nbG.cjs';
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, a as UseAigentycChatReturn, u as useAigentycChat, b as useChatContext, c as useLiveChat, d as useSlot, e as useSlots } from './SlotsContext-CBtt36al.js';
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-DKJ_-nbG.js';
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-4FBVV64J.js';
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-FYPJSHCL.js';
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
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
- export { L as Language } from './types-DKJ_-nbG.cjs';
3
+ export { L as Language } from './types-DlNwk-bG.cjs';
4
4
 
5
5
  /**
6
6
  * All supported translation keys.
package/dist/i18n.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
- export { L as Language } from './types-DKJ_-nbG.js';
3
+ export { L as Language } from './types-DlNwk-bG.js';
4
4
 
5
5
  /**
6
6
  * All supported translation keys.
package/dist/index.cjs CHANGED
@@ -1,18 +1,19 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk5QSXB6UL_cjs = require('./chunk-5QSXB6UL.cjs');
4
+ var chunk3HGOLNGG_cjs = require('./chunk-3HGOLNGG.cjs');
5
5
  require('./chunk-NG7OTWXQ.cjs');
6
- var chunkMC6QDYB6_cjs = require('./chunk-MC6QDYB6.cjs');
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-RTVEBPAJ.cjs');
9
+ require('./chunk-4WOBNRRB.cjs');
10
10
  require('./chunk-X7R334SB.cjs');
11
11
  var chunk3MP2EGEJ_cjs = require('./chunk-3MP2EGEJ.cjs');
12
- require('./chunk-DMGYQ6NN.cjs');
13
- var chunkJ2K7EJYP_cjs = require('./chunk-J2K7EJYP.cjs');
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-C24QG43M.cjs');
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(chunkJ2K7EJYP_cjs.SlotsProvider, { slots, children: /* @__PURE__ */ jsxRuntime.jsx(
80
- chunkJ2K7EJYP_cjs.ChatContextProvider,
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(chunkMC6QDYB6_cjs.ChatInterface, { showSources }),
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 = chunkJ2K7EJYP_cjs.useSlots();
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(chunkMC6QDYB6_cjs.ChatInterface, { ...chatInterfaceProps }) });
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(chunkMC6QDYB6_cjs.PreviewEmbedPanel, { isOpen, isRightSide, zIndex: panelZIndex - 1 }),
308
- !isMobile && /* @__PURE__ */ jsxRuntime.jsx(chunkMC6QDYB6_cjs.LiveChatPanel, { isWidgetOpen: isOpen, isRightSide, zIndex: panelZIndex - 1 }),
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(chunkMC6QDYB6_cjs.MobileLiveChatDrawer, {}),
338
- /* @__PURE__ */ jsxRuntime.jsx(chunkMC6QDYB6_cjs.ChatInterface, { ...chatInterfaceProps })
343
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.MobileLiveChatDrawer, {}),
344
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5XF7KH6B_cjs.ChatInterface, { ...chatInterfaceProps })
339
345
  ]
340
346
  }
341
347
  ),
342
- !isOpen && chunkJ2K7EJYP_cjs.renderSlot(
348
+ !isOpen && chunkBPV66QNM_cjs.renderSlot(
343
349
  "floatingButton",
344
350
  floatingButtonProps,
345
- chunkMC6QDYB6_cjs.FloatingButton,
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 chunk5QSXB6UL_cjs.useAigentycChat; }
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 chunkJ2K7EJYP_cjs.useChatContext; }
476
+ get: function () { return chunkBPV66QNM_cjs.useChatContext; }
455
477
  });
456
478
  Object.defineProperty(exports, "useSlot", {
457
479
  enumerable: true,
458
- get: function () { return chunkJ2K7EJYP_cjs.useSlot; }
480
+ get: function () { return chunkBPV66QNM_cjs.useSlot; }
459
481
  });
460
482
  Object.defineProperty(exports, "useSlots", {
461
483
  enumerable: true,
462
- get: function () { return chunkJ2K7EJYP_cjs.useSlots; }
484
+ get: function () { return chunkBPV66QNM_cjs.useSlots; }
463
485
  });
464
486
  exports.Chat = Chat;
465
487
  exports.ChatProvider = ChatProvider;