@cossistant/react 0.0.30 → 0.0.32

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 (77) hide show
  1. package/README.md +3 -1
  2. package/hooks/private/use-grouped-messages.d.ts.map +1 -1
  3. package/hooks/private/use-grouped-messages.js +41 -12
  4. package/hooks/private/use-grouped-messages.js.map +1 -1
  5. package/hooks/use-conversation-page.js +4 -2
  6. package/hooks/use-conversation-page.js.map +1 -1
  7. package/hooks/use-conversation-preview.d.ts.map +1 -1
  8. package/hooks/use-conversation-preview.js +2 -1
  9. package/hooks/use-conversation-preview.js.map +1 -1
  10. package/hooks/use-send-message.js +1 -1
  11. package/hooks/use-send-message.js.map +1 -1
  12. package/package.json +5 -4
  13. package/packages/types/src/api/conversation.d.ts +13 -3
  14. package/packages/types/src/api/conversation.d.ts.map +1 -1
  15. package/packages/types/src/api/timeline-item.d.ts +2 -0
  16. package/packages/types/src/api/timeline-item.d.ts.map +1 -1
  17. package/packages/types/src/realtime-events.d.ts +29 -4
  18. package/packages/types/src/realtime-events.d.ts.map +1 -1
  19. package/packages/types/src/schemas.d.ts +4 -1
  20. package/packages/types/src/schemas.d.ts.map +1 -1
  21. package/primitives/avatar/image.d.ts +1 -1
  22. package/primitives/multimodal-input.d.ts +2 -2
  23. package/primitives/multimodal-input.d.ts.map +1 -1
  24. package/primitives/timeline-item.d.ts +2 -2
  25. package/primitives/timeline-item.d.ts.map +1 -1
  26. package/primitives/timeline-item.js +30 -9
  27. package/primitives/timeline-item.js.map +1 -1
  28. package/provider.d.ts.map +1 -1
  29. package/provider.js +6 -3
  30. package/provider.js.map +1 -1
  31. package/support/components/avatar-stack.js +1 -1
  32. package/support/components/avatar-stack.js.map +1 -1
  33. package/support/components/avatar.d.ts +1 -2
  34. package/support/components/avatar.d.ts.map +1 -1
  35. package/support/components/avatar.js +9 -7
  36. package/support/components/avatar.js.map +1 -1
  37. package/support/components/button.d.ts +1 -1
  38. package/support/components/conversation-button-link.js +2 -1
  39. package/support/components/conversation-button-link.js.map +1 -1
  40. package/support/components/conversation-event.js +1 -1
  41. package/support/components/conversation-event.js.map +1 -1
  42. package/support/components/conversation-resolved-feedback.d.ts +21 -0
  43. package/support/components/conversation-resolved-feedback.d.ts.map +1 -0
  44. package/support/components/conversation-resolved-feedback.js +102 -0
  45. package/support/components/conversation-resolved-feedback.js.map +1 -0
  46. package/support/components/conversation-timeline-utils.d.ts +5 -0
  47. package/support/components/conversation-timeline-utils.d.ts.map +1 -0
  48. package/support/components/conversation-timeline-utils.js +10 -0
  49. package/support/components/conversation-timeline-utils.js.map +1 -0
  50. package/support/components/conversation-timeline.d.ts.map +1 -1
  51. package/support/components/conversation-timeline.js +2 -1
  52. package/support/components/conversation-timeline.js.map +1 -1
  53. package/support/components/icons.d.ts +1 -1
  54. package/support/components/icons.d.ts.map +1 -1
  55. package/support/components/icons.js +6 -2
  56. package/support/components/icons.js.map +1 -1
  57. package/support/components/index.d.ts +2 -1
  58. package/support/components/index.js +2 -1
  59. package/support/components/typing-indicator.d.ts.map +1 -1
  60. package/support/components/typing-indicator.js +15 -7
  61. package/support/components/typing-indicator.js.map +1 -1
  62. package/support/pages/conversation-history.js +1 -1
  63. package/support/pages/conversation.d.ts.map +1 -1
  64. package/support/pages/conversation.js +36 -8
  65. package/support/pages/conversation.js.map +1 -1
  66. package/support/pages/home.js +1 -1
  67. package/support/text/locales/en.js +12 -0
  68. package/support/text/locales/en.js.map +1 -1
  69. package/support/text/locales/es.js +12 -0
  70. package/support/text/locales/es.js.map +1 -1
  71. package/support/text/locales/fr.js +12 -0
  72. package/support/text/locales/fr.js.map +1 -1
  73. package/support/text/locales/keys.d.ts +20 -0
  74. package/support/text/locales/keys.d.ts.map +1 -1
  75. package/support/text/locales/keys.js +6 -0
  76. package/support/text/locales/keys.js.map +1 -1
  77. package/utils/use-render-element.d.ts.map +1 -1
@@ -3,10 +3,11 @@ import icons_default from "./icons.js";
3
3
  import { Content } from "./content.js";
4
4
  import { Root } from "./root.js";
5
5
  import { DefaultTrigger } from "./trigger.js";
6
+ import { ConversationResolvedFeedback } from "./conversation-resolved-feedback.js";
6
7
  import { ConversationEvent } from "./conversation-event.js";
7
8
  import { TimelineMessageItem } from "./timeline-message-item.js";
8
9
  import { TimelineMessageGroup } from "./timeline-message-group.js";
9
10
  import { ConversationTimelineList } from "./conversation-timeline.js";
10
11
  import { SendButton } from "./multimodal-input.js";
11
12
 
12
- export { Content, ConversationEvent, ConversationTimelineList, DefaultTrigger, icons_default as Icon, Root, SendButton, TimelineMessageGroup, TimelineMessageItem, TypingIndicator };
13
+ export { Content, ConversationEvent, ConversationResolvedFeedback, ConversationTimelineList, DefaultTrigger, icons_default as Icon, Root, SendButton, TimelineMessageGroup, TimelineMessageItem, TypingIndicator };
@@ -1 +1 @@
1
- {"version":3,"file":"typing-indicator.d.ts","names":[],"sources":["../../../src/support/components/typing-indicator.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,qBAAA;KAEA,iBAAA;EAFA,EAAA,EAAA,MAAA;EAEA,IAAA,EAEL,qBAFsB;AAK7B,CAAA;AAAwD,KAA5C,oBAAA,GAAuB,OAAA,CAAM,cAAe,CAAA,cAAA,CAAA,GAAA;EAArB,YAAM,EAC1B,iBAD0B,EAAA;EAC1B,iBAAA,CAAA,EACM,gBADN,EAAA;EACM,oBAAA,CAAA,EACG,mBADH,EAAA;EACG,WAAA,CAAA,EAAA,OAAA;CAAmB;AAI9B,cAAA,YAAgB,EAAA,CAAA;EAAA;CAIzB,EAAM;EAuBG,SAAA,CAAA,EAAA,MAwDZ;CAxD2B,EAAA,GAvBxB,OAAA,CAAM,YAuBkB;AAAA,cAAf,eAAe,EAAA,OAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA;EAjCb,YAAA,EAAA,iBAAA,EAAA;EACM,iBAAA,CAAA,EAAA,gBAAA,EAAA;EACG,oBAAA,CAAA,EAAA,mBAAA,EAAA"}
1
+ {"version":3,"file":"typing-indicator.d.ts","names":[],"sources":["../../../src/support/components/typing-indicator.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,qBAAA;KAEA,iBAAA;EAFA,EAAA,EAAA,MAAA;EAEA,IAAA,EAEL,qBAFsB;AAK7B,CAAA;AAAwD,KAA5C,oBAAA,GAAuB,OAAA,CAAM,cAAe,CAAA,cAAA,CAAA,GAAA;EAArB,YAAM,EAC1B,iBAD0B,EAAA;EAC1B,iBAAA,CAAA,EACM,gBADN,EAAA;EACM,oBAAA,CAAA,EACG,mBADH,EAAA;EACG,WAAA,CAAA,EAAA,OAAA;CAAmB;AAI9B,cAAA,YAAgB,EAAA,CAAA;EAAA;CAIzB,EAAM;EAuBG,SAAA,CAAA,EAAA,MAsEZ;CAtE2B,EAAA,GAvBxB,OAAA,CAAM,YAuBkB;AAAA,cAAf,eAAe,EAAA,OAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA;EAjCb,YAAA,EAAA,iBAAA,EAAA;EACM,iBAAA,CAAA,EAAA,gBAAA,EAAA;EACG,oBAAA,CAAA,EAAA,mBAAA,EAAA"}
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../utils/index.js";
2
- import { AvatarStack } from "./avatar-stack.js";
2
+ import { Avatar } from "./avatar.js";
3
3
  import * as React$1 from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
 
@@ -22,12 +22,20 @@ const TypingIndicator = React$1.forwardRef(({ participants, availableAIAgents =
22
22
  className: cn("flex items-center gap-6", className),
23
23
  ref,
24
24
  ...props,
25
- children: [withAvatars && /* @__PURE__ */ jsx(AvatarStack, {
26
- aiAgents: typingAIAgents,
27
- hideDefaultAIAgent: typingAIAgents.length === 0,
28
- humanAgents: typingHumanAgents,
29
- size: 24,
30
- spacing: 16
25
+ children: [withAvatars && /* @__PURE__ */ jsxs("div", {
26
+ className: "flex items-center",
27
+ children: [typingAIAgents.map((agent) => /* @__PURE__ */ jsx(Avatar, {
28
+ className: "size-6",
29
+ image: agent.image,
30
+ isAI: true,
31
+ name: agent.name,
32
+ showBackground: !!agent.image
33
+ }, agent.id)), typingHumanAgents.map((agent) => /* @__PURE__ */ jsx(Avatar, {
34
+ className: "size-6",
35
+ image: agent.image,
36
+ lastSeenAt: agent.lastSeenAt,
37
+ name: agent.name
38
+ }, agent.id))]
31
39
  }), /* @__PURE__ */ jsx(BouncingDots, {})]
32
40
  });
33
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"typing-indicator.js","names":["React"],"sources":["../../../src/support/components/typing-indicator.tsx"],"sourcesContent":["import type { AvailableAIAgent, AvailableHumanAgent } from \"@cossistant/types\";\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\nimport { AvatarStack } from \"./avatar-stack\";\n\nexport type TypingParticipantType = \"visitor\" | \"team_member\" | \"ai\";\n\nexport type TypingParticipant = {\n\tid: string;\n\ttype: TypingParticipantType;\n};\n\nexport type TypingIndicatorProps = React.HTMLAttributes<HTMLDivElement> & {\n\tparticipants: TypingParticipant[];\n\tavailableAIAgents?: AvailableAIAgent[];\n\tavailableHumanAgents?: AvailableHumanAgent[];\n\twithAvatars?: boolean;\n};\n\nexport const BouncingDots = ({\n\tclassName,\n}: {\n\tclassName?: string;\n}): React.ReactElement => (\n\t<div className=\"flex gap-1\">\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"dot-bounce-1 size-1 rounded-full bg-co-primary\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t/>\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"dot-bounce-2 size-1 rounded-full bg-co-primary\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t/>\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"dot-bounce-3 size-1 rounded-full bg-co-primary\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t/>\n\t</div>\n);\n\nexport const TypingIndicator = React.forwardRef<\n\tHTMLDivElement,\n\tTypingIndicatorProps\n>(\n\t(\n\t\t{\n\t\t\tparticipants,\n\t\t\tavailableAIAgents = [],\n\t\t\tavailableHumanAgents = [],\n\t\t\twithAvatars = true,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tif (!participants || participants.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Separate AI and human participants\n\t\tconst humanParticipantIds = participants\n\t\t\t.filter((p) => p.type === \"team_member\")\n\t\t\t.map((p) => p.id);\n\n\t\tconst aiParticipantIds = participants\n\t\t\t.filter((p) => p.type === \"ai\")\n\t\t\t.map((p) => p.id);\n\n\t\t// Get matching agents\n\t\tconst typingHumanAgents = availableHumanAgents.filter((agent) =>\n\t\t\thumanParticipantIds.includes(agent.id)\n\t\t);\n\n\t\tconst typingAIAgents = availableAIAgents.filter((agent) =>\n\t\t\taiParticipantIds.includes(agent.id)\n\t\t);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\"flex items-center gap-6\", className)}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{withAvatars && (\n\t\t\t\t\t<AvatarStack\n\t\t\t\t\t\taiAgents={typingAIAgents}\n\t\t\t\t\t\thideDefaultAIAgent={typingAIAgents.length === 0}\n\t\t\t\t\t\thumanAgents={typingHumanAgents}\n\t\t\t\t\t\tsize={24}\n\t\t\t\t\t\tspacing={16}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<BouncingDots />\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nTypingIndicator.displayName = \"TypingIndicator\";\n"],"mappings":";;;;;;AAmBA,MAAa,gBAAgB,EAC5B,gBAIA,qBAAC;CAAI,WAAU;;EACd,oBAAC,UACA,WAAW,GACV,kDACA,UACA,GACA;EACF,oBAAC,UACA,WAAW,GACV,kDACA,UACA,GACA;EACF,oBAAC,UACA,WAAW,GACV,kDACA,UACA,GACA;;EACG;AAGP,MAAa,kBAAkBA,QAAM,YAKnC,EACC,cACA,oBAAoB,EAAE,EACtB,uBAAuB,EAAE,EACzB,cAAc,MACd,WACA,GAAG,SAEJ,QACI;AACJ,KAAI,CAAC,gBAAgB,aAAa,WAAW,EAC5C,QAAO;CAIR,MAAM,sBAAsB,aAC1B,QAAQ,MAAM,EAAE,SAAS,cAAc,CACvC,KAAK,MAAM,EAAE,GAAG;CAElB,MAAM,mBAAmB,aACvB,QAAQ,MAAM,EAAE,SAAS,KAAK,CAC9B,KAAK,MAAM,EAAE,GAAG;CAGlB,MAAM,oBAAoB,qBAAqB,QAAQ,UACtD,oBAAoB,SAAS,MAAM,GAAG,CACtC;CAED,MAAM,iBAAiB,kBAAkB,QAAQ,UAChD,iBAAiB,SAAS,MAAM,GAAG,CACnC;AAED,QACC,qBAAC;EACA,WAAW,GAAG,2BAA2B,UAAU;EAC9C;EACL,GAAI;aAEH,eACA,oBAAC;GACA,UAAU;GACV,oBAAoB,eAAe,WAAW;GAC9C,aAAa;GACb,MAAM;GACN,SAAS;IACR,EAEH,oBAAC,iBAAe;GACX;EAGR;AAED,gBAAgB,cAAc"}
1
+ {"version":3,"file":"typing-indicator.js","names":["React"],"sources":["../../../src/support/components/typing-indicator.tsx"],"sourcesContent":["import type { AvailableAIAgent, AvailableHumanAgent } from \"@cossistant/types\";\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\nimport { Avatar } from \"./avatar\";\n\nexport type TypingParticipantType = \"visitor\" | \"team_member\" | \"ai\";\n\nexport type TypingParticipant = {\n\tid: string;\n\ttype: TypingParticipantType;\n};\n\nexport type TypingIndicatorProps = React.HTMLAttributes<HTMLDivElement> & {\n\tparticipants: TypingParticipant[];\n\tavailableAIAgents?: AvailableAIAgent[];\n\tavailableHumanAgents?: AvailableHumanAgent[];\n\twithAvatars?: boolean;\n};\n\nexport const BouncingDots = ({\n\tclassName,\n}: {\n\tclassName?: string;\n}): React.ReactElement => (\n\t<div className=\"flex gap-1\">\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"dot-bounce-1 size-1 rounded-full bg-co-primary\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t/>\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"dot-bounce-2 size-1 rounded-full bg-co-primary\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t/>\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t\"dot-bounce-3 size-1 rounded-full bg-co-primary\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t/>\n\t</div>\n);\n\nexport const TypingIndicator = React.forwardRef<\n\tHTMLDivElement,\n\tTypingIndicatorProps\n>(\n\t(\n\t\t{\n\t\t\tparticipants,\n\t\t\tavailableAIAgents = [],\n\t\t\tavailableHumanAgents = [],\n\t\t\twithAvatars = true,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tif (!participants || participants.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Separate AI and human participants\n\t\tconst humanParticipantIds = participants\n\t\t\t.filter((p) => p.type === \"team_member\")\n\t\t\t.map((p) => p.id);\n\n\t\tconst aiParticipantIds = participants\n\t\t\t.filter((p) => p.type === \"ai\")\n\t\t\t.map((p) => p.id);\n\n\t\t// Get matching agents\n\t\tconst typingHumanAgents = availableHumanAgents.filter((agent) =>\n\t\t\thumanParticipantIds.includes(agent.id)\n\t\t);\n\n\t\tconst typingAIAgents = availableAIAgents.filter((agent) =>\n\t\t\taiParticipantIds.includes(agent.id)\n\t\t);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\"flex items-center gap-6\", className)}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{withAvatars && (\n\t\t\t\t\t<div className=\"flex items-center\">\n\t\t\t\t\t\t{typingAIAgents.map((agent) => (\n\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\tclassName=\"size-6\"\n\t\t\t\t\t\t\t\timage={agent.image}\n\t\t\t\t\t\t\t\tisAI\n\t\t\t\t\t\t\t\tkey={agent.id}\n\t\t\t\t\t\t\t\tname={agent.name}\n\t\t\t\t\t\t\t\tshowBackground={!!agent.image}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{typingHumanAgents.map((agent) => (\n\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\tclassName=\"size-6\"\n\t\t\t\t\t\t\t\timage={agent.image}\n\t\t\t\t\t\t\t\tkey={agent.id}\n\t\t\t\t\t\t\t\tlastSeenAt={agent.lastSeenAt}\n\t\t\t\t\t\t\t\tname={agent.name}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<BouncingDots />\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nTypingIndicator.displayName = \"TypingIndicator\";\n"],"mappings":";;;;;;AAmBA,MAAa,gBAAgB,EAC5B,gBAIA,qBAAC;CAAI,WAAU;;EACd,oBAAC,UACA,WAAW,GACV,kDACA,UACA,GACA;EACF,oBAAC,UACA,WAAW,GACV,kDACA,UACA,GACA;EACF,oBAAC,UACA,WAAW,GACV,kDACA,UACA,GACA;;EACG;AAGP,MAAa,kBAAkBA,QAAM,YAKnC,EACC,cACA,oBAAoB,EAAE,EACtB,uBAAuB,EAAE,EACzB,cAAc,MACd,WACA,GAAG,SAEJ,QACI;AACJ,KAAI,CAAC,gBAAgB,aAAa,WAAW,EAC5C,QAAO;CAIR,MAAM,sBAAsB,aAC1B,QAAQ,MAAM,EAAE,SAAS,cAAc,CACvC,KAAK,MAAM,EAAE,GAAG;CAElB,MAAM,mBAAmB,aACvB,QAAQ,MAAM,EAAE,SAAS,KAAK,CAC9B,KAAK,MAAM,EAAE,GAAG;CAGlB,MAAM,oBAAoB,qBAAqB,QAAQ,UACtD,oBAAoB,SAAS,MAAM,GAAG,CACtC;CAED,MAAM,iBAAiB,kBAAkB,QAAQ,UAChD,iBAAiB,SAAS,MAAM,GAAG,CACnC;AAED,QACC,qBAAC;EACA,WAAW,GAAG,2BAA2B,UAAU;EAC9C;EACL,GAAI;aAEH,eACA,qBAAC;GAAI,WAAU;cACb,eAAe,KAAK,UACpB,oBAAC;IACA,WAAU;IACV,OAAO,MAAM;IACb;IAEA,MAAM,MAAM;IACZ,gBAAgB,CAAC,CAAC,MAAM;MAFnB,MAAM,GAGV,CACD,EACD,kBAAkB,KAAK,UACvB,oBAAC;IACA,WAAU;IACV,OAAO,MAAM;IAEb,YAAY,MAAM;IAClB,MAAM,MAAM;MAFP,MAAM,GAGV,CACD;IACG,EAEP,oBAAC,iBAAe;GACX;EAGR;AAED,gBAAgB,cAAc"}
@@ -1,10 +1,10 @@
1
- import { AvatarStack } from "../components/avatar-stack.js";
2
1
  import { useSupportNavigation } from "../store/support-store.js";
3
2
  import { CoButton } from "../components/button.js";
4
3
  import icons_default from "../components/icons.js";
5
4
  import { PENDING_CONVERSATION_ID } from "../../utils/id.js";
6
5
  import { Header } from "../components/header.js";
7
6
  import { Text, useSupportText } from "../text/index.js";
7
+ import { AvatarStack } from "../components/avatar-stack.js";
8
8
  import { Watermark } from "../components/watermark.js";
9
9
  import { useConversationHistoryPage } from "../../hooks/use-conversation-history-page.js";
10
10
  import { ConversationButtonLink } from "../components/conversation-button-link.js";
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","names":[],"sources":["../../../src/support/pages/conversation.tsx"],"sourcesContent":[],"mappings":";;;;KAeK,qBAAA;;AAbiE;AAqCjD;EAQR,MAAA,CAAA,EAAA;;;;;;;;;;;;YAdH;;;;UAMD;;;;;KAMJ,yBAAA,WAAoC,0BAA0B;cAEtD,kBAAkB"}
1
+ {"version":3,"file":"conversation.d.ts","names":[],"sources":["../../../src/support/pages/conversation.tsx"],"sourcesContent":[],"mappings":";;;;KAgBK,qBAAA;;AAd2E;AAsC3D;EAQR,MAAA,CAAA,EAAA;;;;;;;;;;;;YAdH;;;;UAMD;;;;;KAMJ,yBAAA,WAAoC,0BAA0B;cAEtD,kBAAkB"}
@@ -1,15 +1,16 @@
1
1
  import { useStoreSelector } from "../../hooks/private/store/use-store-selector.js";
2
- import { AvatarStack } from "../components/avatar-stack.js";
3
2
  import { useSupportConfig, useSupportNavigation } from "../store/support-store.js";
4
3
  import { useNewMessageSound } from "../../hooks/use-new-message-sound.js";
5
4
  import { Header } from "../components/header.js";
6
5
  import { Text, useSupportText } from "../text/index.js";
7
6
  import { useConversationPage } from "../../hooks/use-conversation-page.js";
7
+ import { AvatarStack } from "../components/avatar-stack.js";
8
+ import { ConversationResolvedFeedback } from "../components/conversation-resolved-feedback.js";
8
9
  import { ConversationTimelineList } from "../components/conversation-timeline.js";
9
10
  import { MultimodalInput } from "../components/multimodal-input.js";
10
11
  import { IdentificationTimelineTool } from "../components/timeline-identification-tool.js";
11
12
  import { useSupport } from "../../provider.js";
12
- import { useEffect, useMemo, useRef } from "react";
13
+ import { useEffect, useMemo, useRef, useState } from "react";
13
14
  import { ConversationStatus } from "@cossistant/types";
14
15
  import { jsx, jsxs } from "react/jsx-runtime";
15
16
 
@@ -27,6 +28,8 @@ const ConversationPage = ({ params, conversationId: legacyConversationId, initia
27
28
  playbackRate: 1
28
29
  });
29
30
  const previousItemsRef = useRef([]);
31
+ const [pendingRating, setPendingRating] = useState(null);
32
+ const [isSubmittingRating, setIsSubmittingRating] = useState(false);
30
33
  const timelineTools = useMemo(() => ({ identification: { component: IdentificationTimelineTool } }), []);
31
34
  const conversation = useConversationPage({
32
35
  conversationId: initialConversationId,
@@ -42,6 +45,31 @@ const ConversationPage = ({ params, conversationId: legacyConversationId, initia
42
45
  });
43
46
  const activeConversation = useStoreSelector(client?.conversationsStore ?? null, (state) => conversation.isPending || !state ? null : state.byId[conversation.conversationId]);
44
47
  const isConversationClosed = Boolean(activeConversation && (activeConversation.status === ConversationStatus.RESOLVED || activeConversation.status === ConversationStatus.SPAM || activeConversation.deletedAt));
48
+ const resolvedRating = activeConversation?.visitorRating ?? pendingRating ?? null;
49
+ useEffect(() => {
50
+ setPendingRating(null);
51
+ setIsSubmittingRating(false);
52
+ }, [activeConversation?.id]);
53
+ const handleRateConversation = async (value, comment) => {
54
+ if (!(client && activeConversation)) return;
55
+ if (activeConversation.status !== ConversationStatus.RESOLVED || activeConversation.visitorRating) return;
56
+ if (isSubmittingRating) return;
57
+ setPendingRating(value);
58
+ setIsSubmittingRating(true);
59
+ try {
60
+ await client.submitConversationRating({
61
+ conversationId: activeConversation.id,
62
+ rating: value,
63
+ comment,
64
+ visitorId: visitor?.id ?? void 0
65
+ });
66
+ } catch (error) {
67
+ console.error("[support] Failed to submit rating", error);
68
+ setPendingRating(null);
69
+ } finally {
70
+ setIsSubmittingRating(false);
71
+ }
72
+ };
45
73
  const handleGoBack = () => {
46
74
  if (canGoBack) goBack();
47
75
  else navigate({ page: "HOME" });
@@ -78,6 +106,7 @@ const ConversationPage = ({ params, conversationId: legacyConversationId, initia
78
106
  }), /* @__PURE__ */ jsx(AvatarStack, {
79
107
  aiAgents: availableAIAgents,
80
108
  gapWidth: 2,
109
+ hideDefaultAIAgent: false,
81
110
  humanAgents: availableHumanAgents,
82
111
  size: 32,
83
112
  spacing: 28
@@ -93,12 +122,11 @@ const ConversationPage = ({ params, conversationId: legacyConversationId, initia
93
122
  items: conversation.items,
94
123
  tools: timelineTools
95
124
  }),
96
- isConversationClosed ? /* @__PURE__ */ jsx("div", {
97
- className: "m-4 flex items-center justify-center text-balance px-4 pb-6 text-center font-medium text-co-muted-foreground text-sm",
98
- children: /* @__PURE__ */ jsx(Text, {
99
- as: "p",
100
- textKey: "component.conversationPage.closedMessage"
101
- })
125
+ isConversationClosed ? /* @__PURE__ */ jsx(ConversationResolvedFeedback, {
126
+ isSubmitting: isSubmittingRating,
127
+ onRate: handleRateConversation,
128
+ rating: resolvedRating,
129
+ status: activeConversation?.status ?? null
102
130
  }) : /* @__PURE__ */ jsx("div", {
103
131
  className: "flex-shrink-0 p-1",
104
132
  children: /* @__PURE__ */ jsx(MultimodalInput, {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.js","names":["ConversationPage: ConversationPageComponent"],"sources":["../../../src/support/pages/conversation.tsx"],"sourcesContent":["import { ConversationStatus } from \"@cossistant/types\";\nimport type { TimelineItem } from \"@cossistant/types/api/timeline-item\";\nimport { type ReactElement, useEffect, useMemo, useRef } from \"react\";\nimport { useStoreSelector } from \"../../hooks/private/store/use-store-selector\";\nimport { useConversationPage } from \"../../hooks/use-conversation-page\";\nimport { useNewMessageSound } from \"../../hooks/use-new-message-sound\";\nimport { useSupport } from \"../../provider\";\nimport { AvatarStack } from \"../components/avatar-stack\";\nimport { ConversationTimelineList } from \"../components/conversation-timeline\";\nimport { Header } from \"../components/header\";\nimport { MultimodalInput } from \"../components/multimodal-input\";\nimport { IdentificationTimelineTool } from \"../components/timeline-identification-tool\";\nimport { useSupportConfig, useSupportNavigation } from \"../store\";\nimport { Text, useSupportText } from \"../text\";\n\ntype ConversationPageProps = {\n\t/**\n\t * Page params object (for compatibility with Page component)\n\t */\n\tparams?: {\n\t\t/**\n\t\t * The conversation ID to display (can be PENDING_CONVERSATION_ID or a real ID).\n\t\t */\n\t\tconversationId: string;\n\n\t\t/**\n\t\t * Optional initial message to send when opening the conversation.\n\t\t */\n\t\tinitialMessage?: string;\n\n\t\t/**\n\t\t * Optional timeline items to display (for optimistic updates or initial state).\n\t\t */\n\t\titems?: TimelineItem[];\n\t};\n\n\t// Legacy direct props support (deprecated but maintained for backward compatibility)\n\tconversationId?: string;\n\tinitialMessage?: string;\n\titems?: TimelineItem[];\n};\n\n/**\n * Conversation page with message timeline and input composer.\n */\ntype ConversationPageComponent = (props: ConversationPageProps) => ReactElement;\n\nexport const ConversationPage: ConversationPageComponent = ({\n\tparams,\n\tconversationId: legacyConversationId,\n\tinitialMessage: legacyInitialMessage,\n\titems: legacyItems,\n}: ConversationPageProps) => {\n\t// Support both params object (new) and direct props (legacy)\n\tconst initialConversationId =\n\t\tparams?.conversationId ?? legacyConversationId ?? \"\";\n\tconst initialMessage = params?.initialMessage ?? legacyInitialMessage;\n\tconst passedItems = params?.items ?? legacyItems ?? [];\n\tconst { website, availableAIAgents, availableHumanAgents, visitor, client } =\n\t\tuseSupport();\n\tconst { navigate, replace, goBack, canGoBack } = useSupportNavigation();\n\tconst { isOpen } = useSupportConfig();\n\tconst text = useSupportText();\n\tconst playNewMessageSound = useNewMessageSound({\n\t\tvolume: 0.7,\n\t\tplaybackRate: 1.0,\n\t});\n\tconst previousItemsRef = useRef<TimelineItem[]>([]);\n\n\tconst timelineTools = useMemo(\n\t\t() => ({\n\t\t\tidentification: { component: IdentificationTimelineTool },\n\t\t}),\n\t\t[]\n\t);\n\n\t// Main conversation hook - handles all logic\n\tconst conversation = useConversationPage({\n\t\tconversationId: initialConversationId,\n\t\titems: passedItems,\n\t\tinitialMessage,\n\t\tautoSeenEnabled: isOpen,\n\t\tonConversationIdChange: (newConversationId) => {\n\t\t\t// Update navigation when conversation is created\n\t\t\treplace({\n\t\t\t\tpage: \"CONVERSATION\",\n\t\t\t\tparams: { conversationId: newConversationId },\n\t\t\t});\n\t\t},\n\t});\n\n\t// Get conversation from store (no API call) to check status\n\tconst activeConversation = useStoreSelector(\n\t\tclient?.conversationsStore ?? null,\n\t\t(state) =>\n\t\t\tconversation.isPending || !state\n\t\t\t\t? null\n\t\t\t\t: state.byId[conversation.conversationId]\n\t);\n\n\tconst isConversationClosed = Boolean(\n\t\tactiveConversation &&\n\t\t\t(activeConversation.status === ConversationStatus.RESOLVED ||\n\t\t\t\tactiveConversation.status === ConversationStatus.SPAM ||\n\t\t\t\tactiveConversation.deletedAt)\n\t);\n\n\tconst handleGoBack = () => {\n\t\tif (canGoBack) {\n\t\t\tgoBack();\n\t\t} else {\n\t\t\tnavigate({ page: \"HOME\" });\n\t\t}\n\t};\n\n\t// Play sound when new messages arrive from agents (not visitor)\n\tuseEffect(() => {\n\t\tconst currentItems = conversation.items;\n\t\tconst previousItems = previousItemsRef.current;\n\n\t\t// Check if there are new items\n\t\tif (currentItems.length > previousItems.length) {\n\t\t\t// Find the new items\n\t\t\tconst newItems = currentItems.slice(previousItems.length);\n\n\t\t\t// Play sound only if new message is from agent (not visitor)\n\t\t\tfor (const item of newItems) {\n\t\t\t\tif (item.type === \"message\" && !item.visitorId) {\n\t\t\t\t\tplayNewMessageSound();\n\t\t\t\t\tbreak; // Only play once per batch\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update the ref\n\t\tpreviousItemsRef.current = currentItems;\n\t}, [conversation.items, playNewMessageSound]);\n\n\treturn (\n\t\t<div className=\"flex h-full flex-col gap-0 overflow-hidden\">\n\t\t\t<Header onGoBack={handleGoBack}>\n\t\t\t\t<div className=\"flex w-full items-center justify-between gap-2 py-3\">\n\t\t\t\t\t<div className=\"flex flex-col\">\n\t\t\t\t\t\t<p className=\"font-medium text-co-primary text-sm\">\n\t\t\t\t\t\t\t{website?.name}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tas=\"p\"\n\t\t\t\t\t\t\tclassName=\"text-co-muted-foreground text-sm\"\n\t\t\t\t\t\t\ttextKey=\"common.labels.supportOnline\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<AvatarStack\n\t\t\t\t\t\taiAgents={availableAIAgents}\n\t\t\t\t\t\tgapWidth={2}\n\t\t\t\t\t\thumanAgents={availableHumanAgents}\n\t\t\t\t\t\tsize={32}\n\t\t\t\t\t\tspacing={28}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Header>\n\n\t\t\t<ConversationTimelineList\n\t\t\t\tavailableAIAgents={availableAIAgents}\n\t\t\t\tavailableHumanAgents={availableHumanAgents}\n\t\t\t\tclassName=\"min-h-0 flex-1 px-4\"\n\t\t\t\tconversationId={conversation.conversationId}\n\t\t\t\tcurrentVisitorId={visitor?.id}\n\t\t\t\titems={conversation.items}\n\t\t\t\ttools={timelineTools}\n\t\t\t/>\n\n\t\t\t{isConversationClosed ? (\n\t\t\t\t<div className=\"m-4 flex items-center justify-center text-balance px-4 pb-6 text-center font-medium text-co-muted-foreground text-sm\">\n\t\t\t\t\t<Text as=\"p\" textKey=\"component.conversationPage.closedMessage\" />\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"flex-shrink-0 p-1\">\n\t\t\t\t\t<MultimodalInput\n\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\tconversation.composer.isSubmitting ||\n\t\t\t\t\t\t\tconversation.composer.isUploading\n\t\t\t\t\t\t}\n\t\t\t\t\t\terror={conversation.error}\n\t\t\t\t\t\tfiles={conversation.composer.files}\n\t\t\t\t\t\tisSubmitting={conversation.composer.isSubmitting}\n\t\t\t\t\t\tisUploading={conversation.composer.isUploading}\n\t\t\t\t\t\tonChange={conversation.composer.setMessage}\n\t\t\t\t\t\tonFileSelect={conversation.composer.addFiles}\n\t\t\t\t\t\tonRemoveFile={conversation.composer.removeFile}\n\t\t\t\t\t\tonSubmit={conversation.composer.submit}\n\t\t\t\t\t\tplaceholder={text(\"component.multimodalInput.placeholder\")}\n\t\t\t\t\t\tvalue={conversation.composer.message}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"mappings":";;;;;;;;;;;;;;;;AA+CA,MAAaA,oBAA+C,EAC3D,QACA,gBAAgB,sBAChB,gBAAgB,sBAChB,OAAO,kBACqB;CAE5B,MAAM,wBACL,QAAQ,kBAAkB,wBAAwB;CACnD,MAAM,iBAAiB,QAAQ,kBAAkB;CACjD,MAAM,cAAc,QAAQ,SAAS,eAAe,EAAE;CACtD,MAAM,EAAE,SAAS,mBAAmB,sBAAsB,SAAS,WAClE,YAAY;CACb,MAAM,EAAE,UAAU,SAAS,QAAQ,cAAc,sBAAsB;CACvE,MAAM,EAAE,WAAW,kBAAkB;CACrC,MAAM,OAAO,gBAAgB;CAC7B,MAAM,sBAAsB,mBAAmB;EAC9C,QAAQ;EACR,cAAc;EACd,CAAC;CACF,MAAM,mBAAmB,OAAuB,EAAE,CAAC;CAEnD,MAAM,gBAAgB,eACd,EACN,gBAAgB,EAAE,WAAW,4BAA4B,EACzD,GACD,EAAE,CACF;CAGD,MAAM,eAAe,oBAAoB;EACxC,gBAAgB;EAChB,OAAO;EACP;EACA,iBAAiB;EACjB,yBAAyB,sBAAsB;AAE9C,WAAQ;IACP,MAAM;IACN,QAAQ,EAAE,gBAAgB,mBAAmB;IAC7C,CAAC;;EAEH,CAAC;CAGF,MAAM,qBAAqB,iBAC1B,QAAQ,sBAAsB,OAC7B,UACA,aAAa,aAAa,CAAC,QACxB,OACA,MAAM,KAAK,aAAa,gBAC5B;CAED,MAAM,uBAAuB,QAC5B,uBACE,mBAAmB,WAAW,mBAAmB,YACjD,mBAAmB,WAAW,mBAAmB,QACjD,mBAAmB,WACrB;CAED,MAAM,qBAAqB;AAC1B,MAAI,UACH,SAAQ;MAER,UAAS,EAAE,MAAM,QAAQ,CAAC;;AAK5B,iBAAgB;EACf,MAAM,eAAe,aAAa;EAClC,MAAM,gBAAgB,iBAAiB;AAGvC,MAAI,aAAa,SAAS,cAAc,QAAQ;GAE/C,MAAM,WAAW,aAAa,MAAM,cAAc,OAAO;AAGzD,QAAK,MAAM,QAAQ,SAClB,KAAI,KAAK,SAAS,aAAa,CAAC,KAAK,WAAW;AAC/C,yBAAqB;AACrB;;;AAMH,mBAAiB,UAAU;IACzB,CAAC,aAAa,OAAO,oBAAoB,CAAC;AAE7C,QACC,qBAAC;EAAI,WAAU;;GACd,oBAAC;IAAO,UAAU;cACjB,qBAAC;KAAI,WAAU;gBACd,qBAAC;MAAI,WAAU;iBACd,oBAAC;OAAE,WAAU;iBACX,SAAS;QACP,EACJ,oBAAC;OACA,IAAG;OACH,WAAU;OACV,SAAQ;QACP;OACG,EACN,oBAAC;MACA,UAAU;MACV,UAAU;MACV,aAAa;MACb,MAAM;MACN,SAAS;OACR;MACG;KACE;GAET,oBAAC;IACmB;IACG;IACtB,WAAU;IACV,gBAAgB,aAAa;IAC7B,kBAAkB,SAAS;IAC3B,OAAO,aAAa;IACpB,OAAO;KACN;GAED,uBACA,oBAAC;IAAI,WAAU;cACd,oBAAC;KAAK,IAAG;KAAI,SAAQ;MAA6C;KAC7D,GAEN,oBAAC;IAAI,WAAU;cACd,oBAAC;KACA,UACC,aAAa,SAAS,gBACtB,aAAa,SAAS;KAEvB,OAAO,aAAa;KACpB,OAAO,aAAa,SAAS;KAC7B,cAAc,aAAa,SAAS;KACpC,aAAa,aAAa,SAAS;KACnC,UAAU,aAAa,SAAS;KAChC,cAAc,aAAa,SAAS;KACpC,cAAc,aAAa,SAAS;KACpC,UAAU,aAAa,SAAS;KAChC,aAAa,KAAK,wCAAwC;KAC1D,OAAO,aAAa,SAAS;MAC5B;KACG;;GAEF"}
1
+ {"version":3,"file":"conversation.js","names":["ConversationPage: ConversationPageComponent"],"sources":["../../../src/support/pages/conversation.tsx"],"sourcesContent":["import { ConversationStatus } from \"@cossistant/types\";\nimport type { TimelineItem } from \"@cossistant/types/api/timeline-item\";\nimport { type ReactElement, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useStoreSelector } from \"../../hooks/private/store/use-store-selector\";\nimport { useConversationPage } from \"../../hooks/use-conversation-page\";\nimport { useNewMessageSound } from \"../../hooks/use-new-message-sound\";\nimport { useSupport } from \"../../provider\";\nimport { AvatarStack } from \"../components/avatar-stack\";\nimport { ConversationResolvedFeedback } from \"../components/conversation-resolved-feedback\";\nimport { ConversationTimelineList } from \"../components/conversation-timeline\";\nimport { Header } from \"../components/header\";\nimport { MultimodalInput } from \"../components/multimodal-input\";\nimport { IdentificationTimelineTool } from \"../components/timeline-identification-tool\";\nimport { useSupportConfig, useSupportNavigation } from \"../store\";\nimport { Text, useSupportText } from \"../text\";\n\ntype ConversationPageProps = {\n\t/**\n\t * Page params object (for compatibility with Page component)\n\t */\n\tparams?: {\n\t\t/**\n\t\t * The conversation ID to display (can be PENDING_CONVERSATION_ID or a real ID).\n\t\t */\n\t\tconversationId: string;\n\n\t\t/**\n\t\t * Optional initial message to send when opening the conversation.\n\t\t */\n\t\tinitialMessage?: string;\n\n\t\t/**\n\t\t * Optional timeline items to display (for optimistic updates or initial state).\n\t\t */\n\t\titems?: TimelineItem[];\n\t};\n\n\t// Legacy direct props support (deprecated but maintained for backward compatibility)\n\tconversationId?: string;\n\tinitialMessage?: string;\n\titems?: TimelineItem[];\n};\n\n/**\n * Conversation page with message timeline and input composer.\n */\ntype ConversationPageComponent = (props: ConversationPageProps) => ReactElement;\n\nexport const ConversationPage: ConversationPageComponent = ({\n\tparams,\n\tconversationId: legacyConversationId,\n\tinitialMessage: legacyInitialMessage,\n\titems: legacyItems,\n}: ConversationPageProps) => {\n\t// Support both params object (new) and direct props (legacy)\n\tconst initialConversationId =\n\t\tparams?.conversationId ?? legacyConversationId ?? \"\";\n\tconst initialMessage = params?.initialMessage ?? legacyInitialMessage;\n\tconst passedItems = params?.items ?? legacyItems ?? [];\n\tconst { website, availableAIAgents, availableHumanAgents, visitor, client } =\n\t\tuseSupport();\n\tconst { navigate, replace, goBack, canGoBack } = useSupportNavigation();\n\tconst { isOpen } = useSupportConfig();\n\tconst text = useSupportText();\n\tconst playNewMessageSound = useNewMessageSound({\n\t\tvolume: 0.7,\n\t\tplaybackRate: 1.0,\n\t});\n\tconst previousItemsRef = useRef<TimelineItem[]>([]);\n\tconst [pendingRating, setPendingRating] = useState<number | null>(null);\n\tconst [isSubmittingRating, setIsSubmittingRating] = useState(false);\n\n\tconst timelineTools = useMemo(\n\t\t() => ({\n\t\t\tidentification: { component: IdentificationTimelineTool },\n\t\t}),\n\t\t[]\n\t);\n\n\t// Main conversation hook - handles all logic\n\tconst conversation = useConversationPage({\n\t\tconversationId: initialConversationId,\n\t\titems: passedItems,\n\t\tinitialMessage,\n\t\tautoSeenEnabled: isOpen,\n\t\tonConversationIdChange: (newConversationId) => {\n\t\t\t// Update navigation when conversation is created\n\t\t\treplace({\n\t\t\t\tpage: \"CONVERSATION\",\n\t\t\t\tparams: { conversationId: newConversationId },\n\t\t\t});\n\t\t},\n\t});\n\n\t// Get conversation from store (no API call) to check status\n\tconst activeConversation = useStoreSelector(\n\t\tclient?.conversationsStore ?? null,\n\t\t(state) =>\n\t\t\tconversation.isPending || !state\n\t\t\t\t? null\n\t\t\t\t: state.byId[conversation.conversationId]\n\t);\n\n\tconst isConversationClosed = Boolean(\n\t\tactiveConversation &&\n\t\t\t(activeConversation.status === ConversationStatus.RESOLVED ||\n\t\t\t\tactiveConversation.status === ConversationStatus.SPAM ||\n\t\t\t\tactiveConversation.deletedAt)\n\t);\n\tconst resolvedRating =\n\t\tactiveConversation?.visitorRating ?? pendingRating ?? null;\n\n\tuseEffect(() => {\n\t\tsetPendingRating(null);\n\t\tsetIsSubmittingRating(false);\n\t}, [activeConversation?.id]);\n\n\tconst handleRateConversation = async (value: number, comment?: string) => {\n\t\tif (!(client && activeConversation)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tactiveConversation.status !== ConversationStatus.RESOLVED ||\n\t\t\tactiveConversation.visitorRating\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSubmittingRating) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetPendingRating(value);\n\t\tsetIsSubmittingRating(true);\n\n\t\ttry {\n\t\t\tawait client.submitConversationRating({\n\t\t\t\tconversationId: activeConversation.id,\n\t\t\t\trating: value,\n\t\t\t\tcomment,\n\t\t\t\tvisitorId: visitor?.id ?? undefined,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[support] Failed to submit rating\", error);\n\t\t\tsetPendingRating(null);\n\t\t} finally {\n\t\t\tsetIsSubmittingRating(false);\n\t\t}\n\t};\n\n\tconst handleGoBack = () => {\n\t\tif (canGoBack) {\n\t\t\tgoBack();\n\t\t} else {\n\t\t\tnavigate({ page: \"HOME\" });\n\t\t}\n\t};\n\n\t// Play sound when new messages arrive from agents (not visitor)\n\tuseEffect(() => {\n\t\tconst currentItems = conversation.items;\n\t\tconst previousItems = previousItemsRef.current;\n\n\t\t// Check if there are new items\n\t\tif (currentItems.length > previousItems.length) {\n\t\t\t// Find the new items\n\t\t\tconst newItems = currentItems.slice(previousItems.length);\n\n\t\t\t// Play sound only if new message is from agent (not visitor)\n\t\t\tfor (const item of newItems) {\n\t\t\t\tif (item.type === \"message\" && !item.visitorId) {\n\t\t\t\t\tplayNewMessageSound();\n\t\t\t\t\tbreak; // Only play once per batch\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update the ref\n\t\tpreviousItemsRef.current = currentItems;\n\t}, [conversation.items, playNewMessageSound]);\n\n\treturn (\n\t\t<div className=\"flex h-full flex-col gap-0 overflow-hidden\">\n\t\t\t<Header onGoBack={handleGoBack}>\n\t\t\t\t<div className=\"flex w-full items-center justify-between gap-2 py-3\">\n\t\t\t\t\t<div className=\"flex flex-col\">\n\t\t\t\t\t\t<p className=\"font-medium text-co-primary text-sm\">\n\t\t\t\t\t\t\t{website?.name}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tas=\"p\"\n\t\t\t\t\t\t\tclassName=\"text-co-muted-foreground text-sm\"\n\t\t\t\t\t\t\ttextKey=\"common.labels.supportOnline\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<AvatarStack\n\t\t\t\t\t\taiAgents={availableAIAgents}\n\t\t\t\t\t\tgapWidth={2}\n\t\t\t\t\t\thideDefaultAIAgent={false}\n\t\t\t\t\t\thumanAgents={availableHumanAgents}\n\t\t\t\t\t\tsize={32}\n\t\t\t\t\t\tspacing={28}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Header>\n\n\t\t\t<ConversationTimelineList\n\t\t\t\tavailableAIAgents={availableAIAgents}\n\t\t\t\tavailableHumanAgents={availableHumanAgents}\n\t\t\t\tclassName=\"min-h-0 flex-1 px-4\"\n\t\t\t\tconversationId={conversation.conversationId}\n\t\t\t\tcurrentVisitorId={visitor?.id}\n\t\t\t\titems={conversation.items}\n\t\t\t\ttools={timelineTools}\n\t\t\t/>\n\n\t\t\t{isConversationClosed ? (\n\t\t\t\t<ConversationResolvedFeedback\n\t\t\t\t\tisSubmitting={isSubmittingRating}\n\t\t\t\t\tonRate={handleRateConversation}\n\t\t\t\t\trating={resolvedRating}\n\t\t\t\t\tstatus={activeConversation?.status ?? null}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"flex-shrink-0 p-1\">\n\t\t\t\t\t<MultimodalInput\n\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\tconversation.composer.isSubmitting ||\n\t\t\t\t\t\t\tconversation.composer.isUploading\n\t\t\t\t\t\t}\n\t\t\t\t\t\terror={conversation.error}\n\t\t\t\t\t\tfiles={conversation.composer.files}\n\t\t\t\t\t\tisSubmitting={conversation.composer.isSubmitting}\n\t\t\t\t\t\tisUploading={conversation.composer.isUploading}\n\t\t\t\t\t\tonChange={conversation.composer.setMessage}\n\t\t\t\t\t\tonFileSelect={conversation.composer.addFiles}\n\t\t\t\t\t\tonRemoveFile={conversation.composer.removeFile}\n\t\t\t\t\t\tonSubmit={conversation.composer.submit}\n\t\t\t\t\t\tplaceholder={text(\"component.multimodalInput.placeholder\")}\n\t\t\t\t\t\tvalue={conversation.composer.message}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAgDA,MAAaA,oBAA+C,EAC3D,QACA,gBAAgB,sBAChB,gBAAgB,sBAChB,OAAO,kBACqB;CAE5B,MAAM,wBACL,QAAQ,kBAAkB,wBAAwB;CACnD,MAAM,iBAAiB,QAAQ,kBAAkB;CACjD,MAAM,cAAc,QAAQ,SAAS,eAAe,EAAE;CACtD,MAAM,EAAE,SAAS,mBAAmB,sBAAsB,SAAS,WAClE,YAAY;CACb,MAAM,EAAE,UAAU,SAAS,QAAQ,cAAc,sBAAsB;CACvE,MAAM,EAAE,WAAW,kBAAkB;CACrC,MAAM,OAAO,gBAAgB;CAC7B,MAAM,sBAAsB,mBAAmB;EAC9C,QAAQ;EACR,cAAc;EACd,CAAC;CACF,MAAM,mBAAmB,OAAuB,EAAE,CAAC;CACnD,MAAM,CAAC,eAAe,oBAAoB,SAAwB,KAAK;CACvE,MAAM,CAAC,oBAAoB,yBAAyB,SAAS,MAAM;CAEnE,MAAM,gBAAgB,eACd,EACN,gBAAgB,EAAE,WAAW,4BAA4B,EACzD,GACD,EAAE,CACF;CAGD,MAAM,eAAe,oBAAoB;EACxC,gBAAgB;EAChB,OAAO;EACP;EACA,iBAAiB;EACjB,yBAAyB,sBAAsB;AAE9C,WAAQ;IACP,MAAM;IACN,QAAQ,EAAE,gBAAgB,mBAAmB;IAC7C,CAAC;;EAEH,CAAC;CAGF,MAAM,qBAAqB,iBAC1B,QAAQ,sBAAsB,OAC7B,UACA,aAAa,aAAa,CAAC,QACxB,OACA,MAAM,KAAK,aAAa,gBAC5B;CAED,MAAM,uBAAuB,QAC5B,uBACE,mBAAmB,WAAW,mBAAmB,YACjD,mBAAmB,WAAW,mBAAmB,QACjD,mBAAmB,WACrB;CACD,MAAM,iBACL,oBAAoB,iBAAiB,iBAAiB;AAEvD,iBAAgB;AACf,mBAAiB,KAAK;AACtB,wBAAsB,MAAM;IAC1B,CAAC,oBAAoB,GAAG,CAAC;CAE5B,MAAM,yBAAyB,OAAO,OAAe,YAAqB;AACzE,MAAI,EAAE,UAAU,oBACf;AAGD,MACC,mBAAmB,WAAW,mBAAmB,YACjD,mBAAmB,cAEnB;AAGD,MAAI,mBACH;AAGD,mBAAiB,MAAM;AACvB,wBAAsB,KAAK;AAE3B,MAAI;AACH,SAAM,OAAO,yBAAyB;IACrC,gBAAgB,mBAAmB;IACnC,QAAQ;IACR;IACA,WAAW,SAAS,MAAM;IAC1B,CAAC;WACM,OAAO;AACf,WAAQ,MAAM,qCAAqC,MAAM;AACzD,oBAAiB,KAAK;YACb;AACT,yBAAsB,MAAM;;;CAI9B,MAAM,qBAAqB;AAC1B,MAAI,UACH,SAAQ;MAER,UAAS,EAAE,MAAM,QAAQ,CAAC;;AAK5B,iBAAgB;EACf,MAAM,eAAe,aAAa;EAClC,MAAM,gBAAgB,iBAAiB;AAGvC,MAAI,aAAa,SAAS,cAAc,QAAQ;GAE/C,MAAM,WAAW,aAAa,MAAM,cAAc,OAAO;AAGzD,QAAK,MAAM,QAAQ,SAClB,KAAI,KAAK,SAAS,aAAa,CAAC,KAAK,WAAW;AAC/C,yBAAqB;AACrB;;;AAMH,mBAAiB,UAAU;IACzB,CAAC,aAAa,OAAO,oBAAoB,CAAC;AAE7C,QACC,qBAAC;EAAI,WAAU;;GACd,oBAAC;IAAO,UAAU;cACjB,qBAAC;KAAI,WAAU;gBACd,qBAAC;MAAI,WAAU;iBACd,oBAAC;OAAE,WAAU;iBACX,SAAS;QACP,EACJ,oBAAC;OACA,IAAG;OACH,WAAU;OACV,SAAQ;QACP;OACG,EACN,oBAAC;MACA,UAAU;MACV,UAAU;MACV,oBAAoB;MACpB,aAAa;MACb,MAAM;MACN,SAAS;OACR;MACG;KACE;GAET,oBAAC;IACmB;IACG;IACtB,WAAU;IACV,gBAAgB,aAAa;IAC7B,kBAAkB,SAAS;IAC3B,OAAO,aAAa;IACpB,OAAO;KACN;GAED,uBACA,oBAAC;IACA,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,QAAQ,oBAAoB,UAAU;KACrC,GAEF,oBAAC;IAAI,WAAU;cACd,oBAAC;KACA,UACC,aAAa,SAAS,gBACtB,aAAa,SAAS;KAEvB,OAAO,aAAa;KACpB,OAAO,aAAa,SAAS;KAC7B,cAAc,aAAa,SAAS;KACpC,aAAa,aAAa,SAAS;KACnC,UAAU,aAAa,SAAS;KAChC,cAAc,aAAa,SAAS;KACpC,cAAc,aAAa,SAAS;KACpC,UAAU,aAAa,SAAS;KAChC,aAAa,KAAK,wCAAwC;KAC1D,OAAO,aAAa,SAAS;MAC5B;KACG;;GAEF"}
@@ -1,10 +1,10 @@
1
- import { AvatarStack } from "../components/avatar-stack.js";
2
1
  import { useSupportNavigation } from "../store/support-store.js";
3
2
  import { CoButton } from "../components/button.js";
4
3
  import icons_default from "../components/icons.js";
5
4
  import { PENDING_CONVERSATION_ID } from "../../utils/id.js";
6
5
  import { Header } from "../components/header.js";
7
6
  import { Text, useSupportText } from "../text/index.js";
7
+ import { AvatarStack } from "../components/avatar-stack.js";
8
8
  import { Watermark } from "../components/watermark.js";
9
9
  import { ConversationButtonLink } from "../components/conversation-button-link.js";
10
10
  import { useHomePage } from "../../hooks/use-home-page.js";
@@ -70,6 +70,18 @@ const en = {
70
70
  "component.identificationTool.inputLabel": "Email address",
71
71
  "component.identificationTool.eventLog": "Visitor confirmed their email address",
72
72
  "component.conversationPage.closedMessage": "This conversation is closed, start a new one to talk with us",
73
+ "component.conversationPage.spamMessage": "This conversation was marked as spam.",
74
+ "component.conversationPage.ratingPrompt": "How did we do?",
75
+ "component.conversationPage.ratingThanks": "Thanks for your feedback!",
76
+ "component.conversationPage.ratingLabel": ({ variables, utils }) => {
77
+ const noun = utils.pluralize(variables.rating, {
78
+ one: "star",
79
+ other: "stars"
80
+ });
81
+ return `Rate ${variables.rating} ${noun}`;
82
+ },
83
+ "component.conversationPage.commentPlaceholder": "Tell us more about your experience (optional)",
84
+ "component.conversationPage.submitFeedback": "Submit feedback",
73
85
  "component.multimodalInput.placeholder": "Type your message...",
74
86
  "component.multimodalInput.remove": ({ variables }) => `Remove ${variables.fileName}`,
75
87
  "component.navigation.articles": "Articles",
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","names":["en: SupportLocaleMessages","phrases: Record<typeof period.token, string>"],"sources":["../../../../src/support/text/locales/en.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst en: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Ask us a question\",\n\t\"common.actions.attachFiles\": \"Attach files\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"common.brand.watermark\": \"We run on\",\n\t\"common.fallbacks.aiAssistant\": \"AI assistant\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Someone\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Unknown\",\n\t\"common.fallbacks.you\": \"You\",\n\t\"common.labels.aiAgentIndicator\": \"AI agent\",\n\t\"common.labels.supportOnline\": \"Support online\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} more`,\n\t\"page.conversationHistory.title\": \"Conversation history\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst phrases: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Morning\",\n\t\t\tafternoon: \"Afternoon\",\n\t\t\tevening: \"Evening\",\n\t\t};\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${phrases[period.token]}${visitorName ? ` ${visitorName}` : \"\"}, how can we help?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation\",\n\t\t\tother: \"conversations\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} more ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\tconst formatted = websiteName\n\t\t\t? `${utils.titleCase(websiteName)} support`\n\t\t\t: \"Support\";\n\t\treturn formatted;\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Untitled conversation\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`You - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} is typing...`,\n\t\"component.conversationButtonLink.status.open\": \"Open\",\n\t\"component.conversationButtonLink.status.resolved\": \"Resolved\",\n\t\"component.conversationButtonLink.status.spam\": \"Spam\",\n\t\"component.conversationButtonLink.status.closed\": \"closed\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} assigned the conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} unassigned the conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} performed an action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} joined the conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} left the conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} requested a team member to join`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} changed the priority`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reopened the conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolved the conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} changed the status`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} added a tag`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} removed a tag`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} blocked the visitor`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} unblocked the visitor`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Contact details confirmed\",\n\t\"component.identificationTool.title\": \"Let us keep in touch\",\n\t\"component.identificationTool.description\":\n\t\t\"Leave your email so we can follow up on this conversation.\",\n\t\"component.identificationTool.cta\": \"Share email\",\n\t\"component.identificationTool.loading\": \"Saving...\",\n\t\"component.identificationTool.success\":\n\t\t\"Thanks! We'll reach out to you at this email if we need to.\",\n\t\"component.identificationTool.error\":\n\t\t\"We couldn't save your email. Please try again.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Enter an email address to continue.\",\n\t\"component.identificationTool.inputPlaceholder\": \"you@example.com\",\n\t\"component.identificationTool.inputLabel\": \"Email address\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"Visitor confirmed their email address\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"This conversation is closed, start a new one to talk with us\",\n\t\"component.multimodalInput.placeholder\": \"Type your message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Home\",\n\t\"component.message.timestamp.aiIndicator\": \"• AI agent\",\n};\n\nexport default en;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,UAAU,UAAU;CACrB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EACxD,MAAM,SAAS,MAAM,WAAW;EAChC,MAAMC,UAA+C;GACpD,SAAS;GACT,WAAW;GACX,SAAS;GACT;EACD,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,QAAQ,OAAO,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAExE,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,QAAQ;;CAE/C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AAIvE,SAHkB,cACf,GAAG,MAAM,UAAU,YAAY,CAAC,YAChC;;CAGJ,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,SAAS,UAAU;CACpB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,gDAAgD;CAChD,kDAAkD;CAClD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,UAAU,UAAU;CACrB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
1
+ {"version":3,"file":"en.js","names":["en: SupportLocaleMessages","phrases: Record<typeof period.token, string>"],"sources":["../../../../src/support/text/locales/en.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst en: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Ask us a question\",\n\t\"common.actions.attachFiles\": \"Attach files\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"common.brand.watermark\": \"We run on\",\n\t\"common.fallbacks.aiAssistant\": \"AI assistant\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Someone\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Unknown\",\n\t\"common.fallbacks.you\": \"You\",\n\t\"common.labels.aiAgentIndicator\": \"AI agent\",\n\t\"common.labels.supportOnline\": \"Support online\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} more`,\n\t\"page.conversationHistory.title\": \"Conversation history\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst phrases: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Morning\",\n\t\t\tafternoon: \"Afternoon\",\n\t\t\tevening: \"Evening\",\n\t\t};\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${phrases[period.token]}${visitorName ? ` ${visitorName}` : \"\"}, how can we help?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation\",\n\t\t\tother: \"conversations\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} more ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\tconst formatted = websiteName\n\t\t\t? `${utils.titleCase(websiteName)} support`\n\t\t\t: \"Support\";\n\t\treturn formatted;\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Untitled conversation\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`You - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} is typing...`,\n\t\"component.conversationButtonLink.status.open\": \"Open\",\n\t\"component.conversationButtonLink.status.resolved\": \"Resolved\",\n\t\"component.conversationButtonLink.status.spam\": \"Spam\",\n\t\"component.conversationButtonLink.status.closed\": \"closed\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} assigned the conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} unassigned the conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} performed an action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} joined the conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} left the conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} requested a team member to join`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} changed the priority`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reopened the conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolved the conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} changed the status`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} added a tag`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} removed a tag`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} blocked the visitor`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} unblocked the visitor`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Contact details confirmed\",\n\t\"component.identificationTool.title\": \"Let us keep in touch\",\n\t\"component.identificationTool.description\":\n\t\t\"Leave your email so we can follow up on this conversation.\",\n\t\"component.identificationTool.cta\": \"Share email\",\n\t\"component.identificationTool.loading\": \"Saving...\",\n\t\"component.identificationTool.success\":\n\t\t\"Thanks! We'll reach out to you at this email if we need to.\",\n\t\"component.identificationTool.error\":\n\t\t\"We couldn't save your email. Please try again.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Enter an email address to continue.\",\n\t\"component.identificationTool.inputPlaceholder\": \"you@example.com\",\n\t\"component.identificationTool.inputLabel\": \"Email address\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"Visitor confirmed their email address\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"This conversation is closed, start a new one to talk with us\",\n\t\"component.conversationPage.spamMessage\":\n\t\t\"This conversation was marked as spam.\",\n\t\"component.conversationPage.ratingPrompt\": \"How did we do?\",\n\t\"component.conversationPage.ratingThanks\": \"Thanks for your feedback!\",\n\t\"component.conversationPage.ratingLabel\": ({ variables, utils }) => {\n\t\tconst noun = utils.pluralize(variables.rating, {\n\t\t\tone: \"star\",\n\t\t\tother: \"stars\",\n\t\t});\n\t\treturn `Rate ${variables.rating} ${noun}`;\n\t},\n\t\"component.conversationPage.commentPlaceholder\":\n\t\t\"Tell us more about your experience (optional)\",\n\t\"component.conversationPage.submitFeedback\": \"Submit feedback\",\n\t\"component.multimodalInput.placeholder\": \"Type your message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Home\",\n\t\"component.message.timestamp.aiIndicator\": \"• AI agent\",\n};\n\nexport default en;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,UAAU,UAAU;CACrB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EACxD,MAAM,SAAS,MAAM,WAAW;EAChC,MAAMC,UAA+C;GACpD,SAAS;GACT,WAAW;GACX,SAAS;GACT;EACD,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,QAAQ,OAAO,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAExE,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,QAAQ;;CAE/C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AAIvE,SAHkB,cACf,GAAG,MAAM,UAAU,YAAY,CAAC,YAChC;;CAGJ,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,SAAS,UAAU;CACpB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,gDAAgD;CAChD,kDAAkD;CAClD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,0CACC;CACD,2CAA2C;CAC3C,2CAA2C;CAC3C,2CAA2C,EAAE,WAAW,YAAY;EACnE,MAAM,OAAO,MAAM,UAAU,UAAU,QAAQ;GAC9C,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,QAAQ,UAAU,OAAO,GAAG;;CAEpC,iDACC;CACD,6CAA6C;CAC7C,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,UAAU,UAAU;CACrB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
@@ -69,6 +69,18 @@ const es = {
69
69
  "component.identificationTool.inputLabel": "Correo electrónico",
70
70
  "component.identificationTool.eventLog": "El visitante confirmó su correo electrónico",
71
71
  "component.conversationPage.closedMessage": "Esta conversación está cerrada, inicia una nueva para hablar con nosotros",
72
+ "component.conversationPage.spamMessage": "Esta conversación fue marcada como spam.",
73
+ "component.conversationPage.ratingPrompt": "¿Cómo lo hicimos?",
74
+ "component.conversationPage.ratingThanks": "¡Gracias por tu comentario!",
75
+ "component.conversationPage.ratingLabel": ({ variables, utils }) => {
76
+ const noun = utils.pluralize(variables.rating, {
77
+ one: "estrella",
78
+ other: "estrellas"
79
+ });
80
+ return `Calificar con ${variables.rating} ${noun}`;
81
+ },
82
+ "component.conversationPage.commentPlaceholder": "Cuéntanos más sobre tu experiencia (opcional)",
83
+ "component.conversationPage.submitFeedback": "Enviar comentario",
72
84
  "component.multimodalInput.placeholder": "Escribe tu mensaje...",
73
85
  "component.multimodalInput.remove": ({ variables }) => `Eliminar ${variables.fileName}`,
74
86
  "component.navigation.articles": "Artículos",
@@ -1 +1 @@
1
- {"version":3,"file":"es.js","names":["es: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/es.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst es: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Haznos una pregunta\",\n\t\"common.actions.attachFiles\": \"Adjuntar archivos\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Impulsado por\",\n\t\"common.fallbacks.aiAssistant\": \"Asistente de IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Alguien\",\n\t\"common.fallbacks.supportTeam\": \"Soporte\",\n\t\"common.fallbacks.unknown\": \"Desconocido\",\n\t\"common.fallbacks.you\": \"Tú\",\n\t\"common.labels.aiAgentIndicator\": \"Agente IA\",\n\t\"common.labels.supportOnline\": \"Soporte en línea\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} más`,\n\t\"page.conversationHistory.title\": \"Historial de conversaciones\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Buenos días\",\n\t\t\tafternoon: \"Buenas tardes\",\n\t\t\tevening: \"Buenas noches\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, ¿en qué podemos ayudarte?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversación más\",\n\t\t\tother: \"conversaciones más\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Soporte ${utils.titleCase(websiteName)}` : \"Soporte\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversación sin título\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Tú - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} está escribiendo...`,\n\t\"component.conversationButtonLink.status.open\": \"Abierta\",\n\t\"component.conversationButtonLink.status.resolved\": \"Resuelta\",\n\t\"component.conversationButtonLink.status.spam\": \"Spam\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} asignó la conversación`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} retiró la asignación de la conversación`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} realizó una acción`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} se unió a la conversación`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} salió de la conversación`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} solicitó que un miembro del equipo se uniera`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió la prioridad`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reabrió la conversación`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolvió la conversación`,\n\t\"component.conversationButtonLink.status.closed\": \"Cerrada\",\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió el estado`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} agregó una etiqueta`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} quitó una etiqueta`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} bloqueó al visitante`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} desbloqueó al visitante`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Detalles de contacto confirmados\",\n\t\"component.identificationTool.title\": \"Comparte tu correo\",\n\t\"component.identificationTool.description\":\n\t\t\"Déjanos tu correo electrónico para que podamos continuar la conversación.\",\n\t\"component.identificationTool.cta\": \"Compartir correo\",\n\t\"component.identificationTool.loading\": \"Guardando...\",\n\t\"component.identificationTool.success\":\n\t\t\"¡Gracias! Usaremos este correo si necesitamos contactarte.\",\n\t\"component.identificationTool.error\":\n\t\t\"No pudimos guardar tu correo. Inténtalo de nuevo.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Ingresa un correo electrónico para continuar.\",\n\t\"component.identificationTool.inputPlaceholder\": \"tu@ejemplo.com\",\n\t\"component.identificationTool.inputLabel\": \"Correo electrónico\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"El visitante confirmó su correo electrónico\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"Esta conversación está cerrada, inicia una nueva para hablar con nosotros\",\n\t\"component.multimodalInput.placeholder\": \"Escribe tu mensaje...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Artículos\",\n\t\"component.navigation.home\": \"Inicio\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agente IA\",\n};\n\nexport default es;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,YAAY,UAAU;CACvB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,QAAQ,UAAU;CACnB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,gDAAgD;CAChD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,kDAAkD;CAClD,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,YAAY,UAAU;CACvB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
1
+ {"version":3,"file":"es.js","names":["es: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/es.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst es: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Haznos una pregunta\",\n\t\"common.actions.attachFiles\": \"Adjuntar archivos\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Impulsado por\",\n\t\"common.fallbacks.aiAssistant\": \"Asistente de IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Alguien\",\n\t\"common.fallbacks.supportTeam\": \"Soporte\",\n\t\"common.fallbacks.unknown\": \"Desconocido\",\n\t\"common.fallbacks.you\": \"Tú\",\n\t\"common.labels.aiAgentIndicator\": \"Agente IA\",\n\t\"common.labels.supportOnline\": \"Soporte en línea\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} más`,\n\t\"page.conversationHistory.title\": \"Historial de conversaciones\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Buenos días\",\n\t\t\tafternoon: \"Buenas tardes\",\n\t\t\tevening: \"Buenas noches\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, ¿en qué podemos ayudarte?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversación más\",\n\t\t\tother: \"conversaciones más\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Soporte ${utils.titleCase(websiteName)}` : \"Soporte\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversación sin título\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Tú - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} está escribiendo...`,\n\t\"component.conversationButtonLink.status.open\": \"Abierta\",\n\t\"component.conversationButtonLink.status.resolved\": \"Resuelta\",\n\t\"component.conversationButtonLink.status.spam\": \"Spam\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} asignó la conversación`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} retiró la asignación de la conversación`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} realizó una acción`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} se unió a la conversación`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} salió de la conversación`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} solicitó que un miembro del equipo se uniera`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió la prioridad`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reabrió la conversación`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolvió la conversación`,\n\t\"component.conversationButtonLink.status.closed\": \"Cerrada\",\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió el estado`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} agregó una etiqueta`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} quitó una etiqueta`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} bloqueó al visitante`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} desbloqueó al visitante`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Detalles de contacto confirmados\",\n\t\"component.identificationTool.title\": \"Comparte tu correo\",\n\t\"component.identificationTool.description\":\n\t\t\"Déjanos tu correo electrónico para que podamos continuar la conversación.\",\n\t\"component.identificationTool.cta\": \"Compartir correo\",\n\t\"component.identificationTool.loading\": \"Guardando...\",\n\t\"component.identificationTool.success\":\n\t\t\"¡Gracias! Usaremos este correo si necesitamos contactarte.\",\n\t\"component.identificationTool.error\":\n\t\t\"No pudimos guardar tu correo. Inténtalo de nuevo.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Ingresa un correo electrónico para continuar.\",\n\t\"component.identificationTool.inputPlaceholder\": \"tu@ejemplo.com\",\n\t\"component.identificationTool.inputLabel\": \"Correo electrónico\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"El visitante confirmó su correo electrónico\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"Esta conversación está cerrada, inicia una nueva para hablar con nosotros\",\n\t\"component.conversationPage.spamMessage\":\n\t\t\"Esta conversación fue marcada como spam.\",\n\t\"component.conversationPage.ratingPrompt\": \"¿Cómo lo hicimos?\",\n\t\"component.conversationPage.ratingThanks\": \"¡Gracias por tu comentario!\",\n\t\"component.conversationPage.ratingLabel\": ({ variables, utils }) => {\n\t\tconst noun = utils.pluralize(variables.rating, {\n\t\t\tone: \"estrella\",\n\t\t\tother: \"estrellas\",\n\t\t});\n\t\treturn `Calificar con ${variables.rating} ${noun}`;\n\t},\n\t\"component.conversationPage.commentPlaceholder\":\n\t\t\"Cuéntanos más sobre tu experiencia (opcional)\",\n\t\"component.conversationPage.submitFeedback\": \"Enviar comentario\",\n\t\"component.multimodalInput.placeholder\": \"Escribe tu mensaje...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Artículos\",\n\t\"component.navigation.home\": \"Inicio\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agente IA\",\n};\n\nexport default es;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,YAAY,UAAU;CACvB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,QAAQ,UAAU;CACnB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,gDAAgD;CAChD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,kDAAkD;CAClD,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,0CACC;CACD,2CAA2C;CAC3C,2CAA2C;CAC3C,2CAA2C,EAAE,WAAW,YAAY;EACnE,MAAM,OAAO,MAAM,UAAU,UAAU,QAAQ;GAC9C,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,iBAAiB,UAAU,OAAO,GAAG;;CAE7C,iDACC;CACD,6CAA6C;CAC7C,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,YAAY,UAAU;CACvB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
@@ -69,6 +69,18 @@ const fr = {
69
69
  "component.identificationTool.inputLabel": "Adresse e-mail",
70
70
  "component.identificationTool.eventLog": "Le visiteur a confirmé son adresse e-mail",
71
71
  "component.conversationPage.closedMessage": "Cette conversation est close, commencez-en une nouvelle pour discuter avec nous",
72
+ "component.conversationPage.spamMessage": "Cette conversation a été marquée comme indésirable.",
73
+ "component.conversationPage.ratingPrompt": "Comment avons-nous fait ?",
74
+ "component.conversationPage.ratingThanks": "Merci pour votre retour !",
75
+ "component.conversationPage.ratingLabel": ({ variables, utils }) => {
76
+ const noun = utils.pluralize(variables.rating, {
77
+ one: "étoile",
78
+ other: "étoiles"
79
+ });
80
+ return `Noter ${variables.rating} ${noun}`;
81
+ },
82
+ "component.conversationPage.commentPlaceholder": "Dites-nous en plus sur votre expérience (optionnel)",
83
+ "component.conversationPage.submitFeedback": "Envoyer le retour",
72
84
  "component.multimodalInput.placeholder": "Écrivez votre message...",
73
85
  "component.multimodalInput.remove": ({ variables }) => `Supprimer ${variables.fileName}`,
74
86
  "component.navigation.articles": "Articles",
@@ -1 +1 @@
1
- {"version":3,"file":"fr.js","names":["fr: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/fr.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst fr: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Posez-nous une question\",\n\t\"common.actions.attachFiles\": \"Joindre des fichiers\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Propulsé par\",\n\t\"common.fallbacks.aiAssistant\": \"Assistant IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Quelqu'un\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Inconnu\",\n\t\"common.fallbacks.you\": \"Vous\",\n\t\"common.labels.aiAgentIndicator\": \"Agent IA\",\n\t\"common.labels.supportOnline\": \"Support en ligne\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} de plus`,\n\t\"page.conversationHistory.title\": \"Historique des conversations\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Bonjour\",\n\t\t\tafternoon: \"Bon après-midi\",\n\t\t\tevening: \"Bonsoir\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, comment pouvons-nous vous aider ?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation supplémentaire\",\n\t\t\tother: \"conversations supplémentaires\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Support ${utils.titleCase(websiteName)}` : \"Support\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversation sans titre\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Vous - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} est en train d'écrire...`,\n\t\"component.conversationButtonLink.status.open\": \"Ouverte\",\n\t\"component.conversationButtonLink.status.resolved\": \"Résolue\",\n\t\"component.conversationButtonLink.status.closed\": \"Fermée\",\n\t\"component.conversationButtonLink.status.spam\": \"Indésirable\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} a attribué la conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré l'attribution de la conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} a effectué une action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} a rejoint la conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} a quitté la conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} a demandé à un membre de l'équipe de rejoindre`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié la priorité`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} a rouvert la conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} a résolu la conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié le statut`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} a ajouté une étiquette`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré une étiquette`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} a bloqué le visiteur`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} a débloqué le visiteur`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Coordonnées confirmées\",\n\t\"component.identificationTool.title\": \"Partagez votre e-mail\",\n\t\"component.identificationTool.description\":\n\t\t\"Laissez-nous votre adresse e-mail afin que nous puissions vous recontacter.\",\n\t\"component.identificationTool.cta\": \"Partager l'e-mail\",\n\t\"component.identificationTool.loading\": \"Enregistrement...\",\n\t\"component.identificationTool.success\":\n\t\t\"Merci ! Nous utiliserons cette adresse si nous devons vous recontacter.\",\n\t\"component.identificationTool.error\":\n\t\t\"Impossible d'enregistrer votre e-mail. Veuillez réessayer.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Veuillez saisir une adresse e-mail pour continuer.\",\n\t\"component.identificationTool.inputPlaceholder\": \"vous@example.com\",\n\t\"component.identificationTool.inputLabel\": \"Adresse e-mail\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"Le visiteur a confirmé son adresse e-mail\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"Cette conversation est close, commencez-en une nouvelle pour discuter avec nous\",\n\t\"component.multimodalInput.placeholder\": \"Écrivez votre message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Accueil\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agent IA\",\n};\n\nexport default fr;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,aAAa,UAAU;CACxB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,UAAU,UAAU;CACrB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,kDAAkD;CAClD,gDAAgD;CAChD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,aAAa,UAAU;CACxB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
1
+ {"version":3,"file":"fr.js","names":["fr: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/fr.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst fr: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Posez-nous une question\",\n\t\"common.actions.attachFiles\": \"Joindre des fichiers\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Propulsé par\",\n\t\"common.fallbacks.aiAssistant\": \"Assistant IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Quelqu'un\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Inconnu\",\n\t\"common.fallbacks.you\": \"Vous\",\n\t\"common.labels.aiAgentIndicator\": \"Agent IA\",\n\t\"common.labels.supportOnline\": \"Support en ligne\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} de plus`,\n\t\"page.conversationHistory.title\": \"Historique des conversations\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Bonjour\",\n\t\t\tafternoon: \"Bon après-midi\",\n\t\t\tevening: \"Bonsoir\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, comment pouvons-nous vous aider ?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation supplémentaire\",\n\t\t\tother: \"conversations supplémentaires\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Support ${utils.titleCase(websiteName)}` : \"Support\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversation sans titre\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Vous - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} est en train d'écrire...`,\n\t\"component.conversationButtonLink.status.open\": \"Ouverte\",\n\t\"component.conversationButtonLink.status.resolved\": \"Résolue\",\n\t\"component.conversationButtonLink.status.closed\": \"Fermée\",\n\t\"component.conversationButtonLink.status.spam\": \"Indésirable\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} a attribué la conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré l'attribution de la conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} a effectué une action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} a rejoint la conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} a quitté la conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} a demandé à un membre de l'équipe de rejoindre`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié la priorité`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} a rouvert la conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} a résolu la conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié le statut`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} a ajouté une étiquette`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré une étiquette`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} a bloqué le visiteur`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} a débloqué le visiteur`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Coordonnées confirmées\",\n\t\"component.identificationTool.title\": \"Partagez votre e-mail\",\n\t\"component.identificationTool.description\":\n\t\t\"Laissez-nous votre adresse e-mail afin que nous puissions vous recontacter.\",\n\t\"component.identificationTool.cta\": \"Partager l'e-mail\",\n\t\"component.identificationTool.loading\": \"Enregistrement...\",\n\t\"component.identificationTool.success\":\n\t\t\"Merci ! Nous utiliserons cette adresse si nous devons vous recontacter.\",\n\t\"component.identificationTool.error\":\n\t\t\"Impossible d'enregistrer votre e-mail. Veuillez réessayer.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Veuillez saisir une adresse e-mail pour continuer.\",\n\t\"component.identificationTool.inputPlaceholder\": \"vous@example.com\",\n\t\"component.identificationTool.inputLabel\": \"Adresse e-mail\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"Le visiteur a confirmé son adresse e-mail\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"Cette conversation est close, commencez-en une nouvelle pour discuter avec nous\",\n\t\"component.conversationPage.spamMessage\":\n\t\t\"Cette conversation a été marquée comme indésirable.\",\n\t\"component.conversationPage.ratingPrompt\": \"Comment avons-nous fait ?\",\n\t\"component.conversationPage.ratingThanks\": \"Merci pour votre retour !\",\n\t\"component.conversationPage.ratingLabel\": ({ variables, utils }) => {\n\t\tconst noun = utils.pluralize(variables.rating, {\n\t\t\tone: \"étoile\",\n\t\t\tother: \"étoiles\",\n\t\t});\n\t\treturn `Noter ${variables.rating} ${noun}`;\n\t},\n\t\"component.conversationPage.commentPlaceholder\":\n\t\t\"Dites-nous en plus sur votre expérience (optionnel)\",\n\t\"component.conversationPage.submitFeedback\": \"Envoyer le retour\",\n\t\"component.multimodalInput.placeholder\": \"Écrivez votre message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Accueil\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agent IA\",\n};\n\nexport default fr;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,aAAa,UAAU;CACxB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,UAAU,UAAU;CACrB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,kDAAkD;CAClD,gDAAgD;CAChD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,0CACC;CACD,2CAA2C;CAC3C,2CAA2C;CAC3C,2CAA2C,EAAE,WAAW,YAAY;EACnE,MAAM,OAAO,MAAM,UAAU,UAAU,QAAQ;GAC9C,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,SAAS,UAAU,OAAO,GAAG;;CAErC,iDACC;CACD,6CAA6C;CAC7C,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,aAAa,UAAU;CACxB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
@@ -225,6 +225,26 @@ declare const supportTextDefinitions: {
225
225
  readonly "component.conversationPage.closedMessage": {
226
226
  readonly variables: undefined;
227
227
  };
228
+ readonly "component.conversationPage.spamMessage": {
229
+ readonly variables: undefined;
230
+ };
231
+ readonly "component.conversationPage.ratingPrompt": {
232
+ readonly variables: undefined;
233
+ };
234
+ readonly "component.conversationPage.ratingThanks": {
235
+ readonly variables: undefined;
236
+ };
237
+ readonly "component.conversationPage.ratingLabel": {
238
+ readonly variables: {
239
+ readonly rating: number;
240
+ };
241
+ };
242
+ readonly "component.conversationPage.commentPlaceholder": {
243
+ readonly variables: undefined;
244
+ };
245
+ readonly "component.conversationPage.submitFeedback": {
246
+ readonly variables: undefined;
247
+ };
228
248
  readonly "component.multimodalInput.placeholder": {
229
249
  readonly variables: undefined;
230
250
  };
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","names":[],"sources":["../../../../src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.d.ts","names":[],"sources":["../../../../src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":"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"}
@@ -60,6 +60,12 @@ const supportTextDefinitions = {
60
60
  "component.identificationTool.inputLabel": { variables: void 0 },
61
61
  "component.identificationTool.eventLog": { variables: void 0 },
62
62
  "component.conversationPage.closedMessage": { variables: void 0 },
63
+ "component.conversationPage.spamMessage": { variables: void 0 },
64
+ "component.conversationPage.ratingPrompt": { variables: void 0 },
65
+ "component.conversationPage.ratingThanks": { variables: void 0 },
66
+ "component.conversationPage.ratingLabel": { variables: { rating: 0 } },
67
+ "component.conversationPage.commentPlaceholder": { variables: void 0 },
68
+ "component.conversationPage.submitFeedback": { variables: void 0 },
63
69
  "component.multimodalInput.placeholder": { variables: void 0 },
64
70
  "component.multimodalInput.remove": { variables: { fileName: "" } },
65
71
  "component.navigation.articles": { variables: void 0 },
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","names":[],"sources":["../../../../src/support/text/locales/keys.ts"],"sourcesContent":["import type {\n\tAvailableAIAgent,\n\tAvailableHumanAgent,\n\tPublicWebsiteResponse,\n} from \"@cossistant/types\";\n\nexport type SupportLocale = \"en\" | \"fr\" | \"es\";\n\nexport type SupportTimeOfDayToken = \"morning\" | \"afternoon\" | \"evening\";\n\nexport type SupportTimeOfDayValue = {\n\ttoken: SupportTimeOfDayToken;\n\tlabel: string;\n};\n\nexport type SupportTextUtils = {\n\tformatNumber: (value: number, options?: Intl.NumberFormatOptions) => string;\n\tpluralize: (count: number, options: { one: string; other: string }) => string;\n\ttitleCase: (value: string) => string;\n\ttimeOfDay: () => SupportTimeOfDayValue;\n};\n\nexport type SupportTextContext = {\n\twebsite: PublicWebsiteResponse | null;\n\tvisitor: PublicWebsiteResponse[\"visitor\"] | null;\n\thumanAgents: AvailableHumanAgent[];\n\taiAgents: AvailableAIAgent[];\n};\n\ntype SupportTextDefinition<Vars> =\n\t| {\n\t\t\tvariables: Vars;\n\t\t\toptional?: false;\n\t }\n\t| {\n\t\t\tvariables: Vars;\n\t\t\toptional: true;\n\t };\n\nexport const supportTextDefinitions = {\n\t\"common.actions.askQuestion\": { variables: undefined },\n\t\"common.actions.attachFiles\": { variables: undefined },\n\t\"common.actions.removeFile\": { variables: { fileName: \"\" as string } },\n\t\"common.brand.watermark\": { variables: undefined },\n\t\"common.fallbacks.aiAssistant\": { variables: undefined },\n\t\"common.fallbacks.cossistant\": { variables: undefined },\n\t\"common.fallbacks.someone\": { variables: undefined },\n\t\"common.fallbacks.supportTeam\": { variables: undefined },\n\t\"common.fallbacks.unknown\": { variables: undefined },\n\t\"common.fallbacks.you\": { variables: undefined },\n\t\"common.labels.aiAgentIndicator\": { variables: undefined },\n\t\"common.labels.supportOnline\": { variables: undefined },\n\t\"page.conversationHistory.showMore\": { variables: { count: 0 as number } },\n\t\"page.conversationHistory.title\": { variables: undefined },\n\t\"page.home.greeting\": {\n\t\tvariables: { visitorName: \"\" as string | undefined },\n\t\toptional: true,\n\t},\n\t\"page.home.history.more\": { variables: { count: 0 as number } },\n\t\"page.home.tagline\": {\n\t\tvariables: { websiteName: \"\" as string | null },\n\t\toptional: true,\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.lastMessage.agent\": {\n\t\tvariables: { name: \"\" as string, time: \"\" as string },\n\t},\n\t\"component.conversationButtonLink.lastMessage.visitor\": {\n\t\tvariables: { time: \"\" as string },\n\t},\n\t\"component.conversationButtonLink.typing\": {\n\t\tvariables: { name: \"\" as string },\n\t},\n\t\"component.conversationButtonLink.status.open\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.status.resolved\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.status.closed\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.status.spam\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationEvent.assigned\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.unassigned\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.default\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.participantJoined\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.participantLeft\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.participantRequested\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.priorityChanged\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.reopened\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.resolved\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.statusChanged\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.tagAdded\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.tagRemoved\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.visitorBlocked\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.visitorUnblocked\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.visitorIdentified\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.identificationTool.title\": { variables: undefined },\n\t\"component.identificationTool.description\": { variables: undefined },\n\t\"component.identificationTool.cta\": { variables: undefined },\n\t\"component.identificationTool.loading\": { variables: undefined },\n\t\"component.identificationTool.success\": { variables: undefined },\n\t\"component.identificationTool.error\": { variables: undefined },\n\t\"component.identificationTool.validation\": { variables: undefined },\n\t\"component.identificationTool.inputPlaceholder\": { variables: undefined },\n\t\"component.identificationTool.inputLabel\": { variables: undefined },\n\t\"component.identificationTool.eventLog\": { variables: undefined },\n\t\"component.conversationPage.closedMessage\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.multimodalInput.placeholder\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.multimodalInput.remove\": {\n\t\tvariables: { fileName: \"\" as string },\n\t},\n\t\"component.navigation.articles\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.navigation.home\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.message.timestamp.aiIndicator\": {\n\t\tvariables: undefined,\n\t},\n} as const satisfies Record<string, SupportTextDefinition<unknown>>;\n\nexport type SupportTextDefinitions = typeof supportTextDefinitions;\nexport type SupportTextKey = keyof SupportTextDefinitions;\n\nexport type SupportTextVariables<K extends SupportTextKey> =\n\tSupportTextDefinitions[K][\"variables\"];\n\ntype OptionalFlag<K extends SupportTextKey> =\n\tSupportTextDefinitions[K] extends { optional: true } ? true : false;\n\ntype MessageVariables<\n\tK extends SupportTextKey,\n\tVars = SupportTextVariables<K>,\n> = Vars extends undefined\n\t? undefined\n\t: OptionalFlag<K> extends true\n\t\t? Vars | undefined\n\t\t: Vars;\n\nexport type SupportTextMessage<\n\tK extends SupportTextKey,\n\tVars = SupportTextVariables<K>,\n> =\n\t| string\n\t| ((args: {\n\t\t\tvariables: MessageVariables<K, Vars>;\n\t\t\tcontext: SupportTextContext;\n\t\t\tutils: SupportTextUtils;\n\t }) => string);\n\nexport type SupportLocaleMessages = {\n\t[K in SupportTextKey]: SupportTextMessage<K>;\n};\n\nexport type SupportTextContentOverrides<Locale extends string = SupportLocale> =\n\tPartial<{\n\t\t[K in SupportTextKey]:\n\t\t\t| SupportTextMessage<K>\n\t\t\t| Partial<Record<SupportLocale | Locale, SupportTextMessage<K>>>;\n\t}>;\n\nexport type SupportTextFormatter = {\n\t<K extends SupportTextKey>(\n\t\tkey: K,\n\t\tvariables: SupportTextVariables<K>\n\t): string;\n\t// biome-ignore lint/style/useUnifiedTypeSignatures: overload needed for strict variable checking\n\t<K extends SupportTextKey>(key: K): string;\n};\n\ntype KeysWithVariables = {\n\t[K in SupportTextKey]: SupportTextVariables<K> extends undefined\n\t\t? never\n\t\t: OptionalFlag<K> extends true\n\t\t\t? never\n\t\t\t: K;\n}[SupportTextKey];\n\nexport type StrictSupportTextFormatter = {\n\t<K extends KeysWithVariables>(\n\t\tkey: K,\n\t\tvariables: SupportTextVariables<K>\n\t): string;\n\t<K extends Exclude<SupportTextKey, KeysWithVariables>>(\n\t\tkey: K,\n\t\tvariables?: SupportTextVariables<K>\n\t): string;\n};\n\nexport type SupportTextResolvedFormatter = StrictSupportTextFormatter &\n\tSupportTextFormatter;\n\nexport type SupportTextProviderValue = {\n\tformat: SupportTextResolvedFormatter;\n\tlocale: string;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","names":[],"sources":["../../../../src/support/text/locales/keys.ts"],"sourcesContent":["import type {\n\tAvailableAIAgent,\n\tAvailableHumanAgent,\n\tPublicWebsiteResponse,\n} from \"@cossistant/types\";\n\nexport type SupportLocale = \"en\" | \"fr\" | \"es\";\n\nexport type SupportTimeOfDayToken = \"morning\" | \"afternoon\" | \"evening\";\n\nexport type SupportTimeOfDayValue = {\n\ttoken: SupportTimeOfDayToken;\n\tlabel: string;\n};\n\nexport type SupportTextUtils = {\n\tformatNumber: (value: number, options?: Intl.NumberFormatOptions) => string;\n\tpluralize: (count: number, options: { one: string; other: string }) => string;\n\ttitleCase: (value: string) => string;\n\ttimeOfDay: () => SupportTimeOfDayValue;\n};\n\nexport type SupportTextContext = {\n\twebsite: PublicWebsiteResponse | null;\n\tvisitor: PublicWebsiteResponse[\"visitor\"] | null;\n\thumanAgents: AvailableHumanAgent[];\n\taiAgents: AvailableAIAgent[];\n};\n\ntype SupportTextDefinition<Vars> =\n\t| {\n\t\t\tvariables: Vars;\n\t\t\toptional?: false;\n\t }\n\t| {\n\t\t\tvariables: Vars;\n\t\t\toptional: true;\n\t };\n\nexport const supportTextDefinitions = {\n\t\"common.actions.askQuestion\": { variables: undefined },\n\t\"common.actions.attachFiles\": { variables: undefined },\n\t\"common.actions.removeFile\": { variables: { fileName: \"\" as string } },\n\t\"common.brand.watermark\": { variables: undefined },\n\t\"common.fallbacks.aiAssistant\": { variables: undefined },\n\t\"common.fallbacks.cossistant\": { variables: undefined },\n\t\"common.fallbacks.someone\": { variables: undefined },\n\t\"common.fallbacks.supportTeam\": { variables: undefined },\n\t\"common.fallbacks.unknown\": { variables: undefined },\n\t\"common.fallbacks.you\": { variables: undefined },\n\t\"common.labels.aiAgentIndicator\": { variables: undefined },\n\t\"common.labels.supportOnline\": { variables: undefined },\n\t\"page.conversationHistory.showMore\": { variables: { count: 0 as number } },\n\t\"page.conversationHistory.title\": { variables: undefined },\n\t\"page.home.greeting\": {\n\t\tvariables: { visitorName: \"\" as string | undefined },\n\t\toptional: true,\n\t},\n\t\"page.home.history.more\": { variables: { count: 0 as number } },\n\t\"page.home.tagline\": {\n\t\tvariables: { websiteName: \"\" as string | null },\n\t\toptional: true,\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.lastMessage.agent\": {\n\t\tvariables: { name: \"\" as string, time: \"\" as string },\n\t},\n\t\"component.conversationButtonLink.lastMessage.visitor\": {\n\t\tvariables: { time: \"\" as string },\n\t},\n\t\"component.conversationButtonLink.typing\": {\n\t\tvariables: { name: \"\" as string },\n\t},\n\t\"component.conversationButtonLink.status.open\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.status.resolved\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.status.closed\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationButtonLink.status.spam\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationEvent.assigned\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.unassigned\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.default\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.participantJoined\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.participantLeft\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.participantRequested\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.priorityChanged\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.reopened\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.resolved\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.statusChanged\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.tagAdded\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.tagRemoved\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.visitorBlocked\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.visitorUnblocked\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.conversationEvent.visitorIdentified\": {\n\t\tvariables: { actorName: \"\" as string },\n\t},\n\t\"component.identificationTool.title\": { variables: undefined },\n\t\"component.identificationTool.description\": { variables: undefined },\n\t\"component.identificationTool.cta\": { variables: undefined },\n\t\"component.identificationTool.loading\": { variables: undefined },\n\t\"component.identificationTool.success\": { variables: undefined },\n\t\"component.identificationTool.error\": { variables: undefined },\n\t\"component.identificationTool.validation\": { variables: undefined },\n\t\"component.identificationTool.inputPlaceholder\": { variables: undefined },\n\t\"component.identificationTool.inputLabel\": { variables: undefined },\n\t\"component.identificationTool.eventLog\": { variables: undefined },\n\t\"component.conversationPage.closedMessage\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationPage.spamMessage\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationPage.ratingPrompt\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationPage.ratingThanks\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationPage.ratingLabel\": {\n\t\tvariables: { rating: 0 as number },\n\t},\n\t\"component.conversationPage.commentPlaceholder\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.conversationPage.submitFeedback\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.multimodalInput.placeholder\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.multimodalInput.remove\": {\n\t\tvariables: { fileName: \"\" as string },\n\t},\n\t\"component.navigation.articles\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.navigation.home\": {\n\t\tvariables: undefined,\n\t},\n\t\"component.message.timestamp.aiIndicator\": {\n\t\tvariables: undefined,\n\t},\n} as const satisfies Record<string, SupportTextDefinition<unknown>>;\n\nexport type SupportTextDefinitions = typeof supportTextDefinitions;\nexport type SupportTextKey = keyof SupportTextDefinitions;\n\nexport type SupportTextVariables<K extends SupportTextKey> =\n\tSupportTextDefinitions[K][\"variables\"];\n\ntype OptionalFlag<K extends SupportTextKey> =\n\tSupportTextDefinitions[K] extends { optional: true } ? true : false;\n\ntype MessageVariables<\n\tK extends SupportTextKey,\n\tVars = SupportTextVariables<K>,\n> = Vars extends undefined\n\t? undefined\n\t: OptionalFlag<K> extends true\n\t\t? Vars | undefined\n\t\t: Vars;\n\nexport type SupportTextMessage<\n\tK extends SupportTextKey,\n\tVars = SupportTextVariables<K>,\n> =\n\t| string\n\t| ((args: {\n\t\t\tvariables: MessageVariables<K, Vars>;\n\t\t\tcontext: SupportTextContext;\n\t\t\tutils: SupportTextUtils;\n\t }) => string);\n\nexport type SupportLocaleMessages = {\n\t[K in SupportTextKey]: SupportTextMessage<K>;\n};\n\nexport type SupportTextContentOverrides<Locale extends string = SupportLocale> =\n\tPartial<{\n\t\t[K in SupportTextKey]:\n\t\t\t| SupportTextMessage<K>\n\t\t\t| Partial<Record<SupportLocale | Locale, SupportTextMessage<K>>>;\n\t}>;\n\nexport type SupportTextFormatter = {\n\t<K extends SupportTextKey>(\n\t\tkey: K,\n\t\tvariables: SupportTextVariables<K>\n\t): string;\n\t// biome-ignore lint/style/useUnifiedTypeSignatures: overload needed for strict variable checking\n\t<K extends SupportTextKey>(key: K): string;\n};\n\ntype KeysWithVariables = {\n\t[K in SupportTextKey]: SupportTextVariables<K> extends undefined\n\t\t? never\n\t\t: OptionalFlag<K> extends true\n\t\t\t? never\n\t\t\t: K;\n}[SupportTextKey];\n\nexport type StrictSupportTextFormatter = {\n\t<K extends KeysWithVariables>(\n\t\tkey: K,\n\t\tvariables: SupportTextVariables<K>\n\t): string;\n\t<K extends Exclude<SupportTextKey, KeysWithVariables>>(\n\t\tkey: K,\n\t\tvariables?: SupportTextVariables<K>\n\t): string;\n};\n\nexport type SupportTextResolvedFormatter = StrictSupportTextFormatter &\n\tSupportTextFormatter;\n\nexport type SupportTextProviderValue = {\n\tformat: SupportTextResolvedFormatter;\n\tlocale: string;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-render-element.d.ts","names":[],"sources":["../../src/utils/use-render-element.tsx"],"sourcesContent":[],"mappings":";;;;AAI+B,KA8B1B,YAAA,GAAY,MAAS,GAAA,CAAI,iBAAA;AAAiB,KAE1C,SAAA,CAAA,KAAS,CAAA,GAAA,MAAA,GAAA,CAA4B,CAAA,KAAK,EAAL,KAAK,EAAA,GAAA,MAAA,CAAA;AAAA,KAE1C,QAAA,CAAA,KAAQ,EAAA,KAAA,CAAA,GAAA,CAAA,KAAA,EACL,KADK,EAAA,KAAA,EAEL,KAFK,EAAA,GAGR,OAAA,CAAM,YAHE;KAKR,WAJG,CAAA,KAAA,EAAA,YAI4B,YAJ5B,CAAA,GAAA;EACA,MAAA,CAAA,EAIE,OAAA,CAAM,YAJR,GAIuB,QAJvB,CAIgC,GAAA,CAAI,iBAJpC,CAIsD,GAJtD,CAAA,EAI4D,KAJ5D,CAAA;EACH,SAAM,CAAA,EAIE,SAJF,CAIY,KAJZ,CAAA;EAAY,OAAA,CAAA,EAAA,OAAA;AAAA,CAAA;KAQlB,YAN+B,CAAA,KAAA,EAAA,YAMC,YAND,CAAA,GAAA;EAC1B,KAAM,CAAA,EAMP,KANO;EAAwB,GAAI,CAAA,EAOrC,OAAA,CAAM,GAP+B,CAAA,GAAA,CAAA;EAAkB,KAAA,CAAA,EAQrD,OARqD,CAQ7C,GAAA,CAAI,iBARyC,CAQvB,GARuB,CAAA,CAAA;EAAM,OAAA,CAAA,EAAA,OAAA;CAArC;;;;AAK1B,iBAqCW,gBArCC,CAAA,cAsCF,MAtCE,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,YAuCJ,YAvCI,CAAA,CAAA,GAAA,EAyCX,GAzCW,EAAA,cAAA,EA0CA,WA1CA,CA0CY,KA1CZ,EA0CmB,GA1CnB,CAAA,EAAA,MAAA,CAAA,EA2CP,YA3CO,CA2CM,KA3CN,EA2Ca,GA3Cb,CAAA,CAAA,EA4Cd,OAAA,CAAM,YA5CQ,GAAA,IAAA"}
1
+ {"version":3,"file":"use-render-element.d.ts","names":[],"sources":["../../src/utils/use-render-element.tsx"],"sourcesContent":[],"mappings":";;;;AAI+B,KA8B1B,YAAA,GAAY,MAAS,GAAA,CAAI,iBAAA;AAAiB,KAE1C,SAAA,CAAA,KAAS,CAAA,GAAA,MAAA,GAA4B,CAAA,CAAA,KAAK,EAAL,KAAK,EAAA,GAAA,MAAA,CAAA;AAAA,KAE1C,QAAA,CAAA,KAAQ,EAAA,KAAA,CAAA,GAAA,CAAA,KAAA,EACL,KADK,EAAA,KAAA,EAEL,KAFK,EAAA,GAGR,OAAA,CAAM,YAHE;KAKR,WAJG,CAAA,KAAA,EAAA,YAI4B,YAJ5B,CAAA,GAAA;EACA,MAAA,CAAA,EAIE,OAAA,CAAM,YAJR,GAIuB,QAJvB,CAIgC,GAAA,CAAI,iBAJpC,CAIsD,GAJtD,CAAA,EAI4D,KAJ5D,CAAA;EACH,SAAM,CAAA,EAIE,SAJF,CAIY,KAJZ,CAAA;EAAY,OAAA,CAAA,EAAA,OAAA;AAAA,CAAA;KAQlB,YAN+B,CAAA,KAAA,EAAA,YAMC,YAND,CAAA,GAAA;EAC1B,KAAM,CAAA,EAMP,KANO;EAAwB,GAAI,CAAA,EAOrC,OAAA,CAAM,GAP+B,CAAA,GAAA,CAAA;EAAkB,KAAA,CAAA,EAQrD,OARqD,CAQ7C,GAAA,CAAI,iBARyC,CAQvB,GARuB,CAAA,CAAA;EAAM,OAAA,CAAA,EAAA,OAAA;CAArC;;;;AAK1B,iBAqCW,gBArCC,CAAA,cAsCF,MAtCE,CAAA,MAAA,EAAA,GAAA,CAAA,EAAA,YAuCJ,YAvCI,CAAA,CAAA,GAAA,EAyCX,GAzCW,EAAA,cAAA,EA0CA,WA1CA,CA0CY,KA1CZ,EA0CmB,GA1CnB,CAAA,EAAA,MAAA,CAAA,EA2CP,YA3CO,CA2CM,KA3CN,EA2Ca,GA3Cb,CAAA,CAAA,EA4Cd,OAAA,CAAM,YA5CQ,GAAA,IAAA"}